From 98810eb52a46ec72f2bc3d89be8ea42c33d55c5f Mon Sep 17 00:00:00 2001
From: gaoluyang <gaoluyang@rengu.cc>
Date: 星期三, 17 七月 2024 10:14:49 +0800
Subject: [PATCH] 日工时管理的辅助工时的录入数据,完成一个数据的录入后页面不跳转,但是弹窗的内容清空继续新增录入

---
 src/components/do/b6-device-management/b6-data-acquisition-config.vue |  254 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 249 insertions(+), 5 deletions(-)

diff --git a/src/components/do/b6-device-management/b6-data-acquisition-config.vue b/src/components/do/b6-device-management/b6-data-acquisition-config.vue
index 70414f4..80b9a92 100644
--- a/src/components/do/b6-device-management/b6-data-acquisition-config.vue
+++ b/src/components/do/b6-device-management/b6-data-acquisition-config.vue
@@ -3,11 +3,86 @@
     <div>
       <el-row class="title">
         <el-col :span="6" style="padding-left: 20px;text-align: left;">鏁伴噰閰嶇疆</el-col>
+        <el-col :span="18" style="text-align: right;">
+          <el-button size="medium" @click="$parent.closeDataVue()">
+            <span style="color: #3A7BFA;">杩斿洖</span>
+          </el-button>
+        </el-col>
       </el-row>
     </div>
-    <div>
-      <el-table></el-table>
+    <div class="table">
+      <el-table :data="tableList.slice((page.current - 1) * page.size, page.current * page.size)"
+                border tooltip-effect="dark" style="width: 100%;" height="100%">
+        <el-table-column type="index" label="搴忓彿" align="center" width="65"></el-table-column>
+        <el-table-column prop="insProductItem" align="center" label="妫�楠岄」鐩�">
+        </el-table-column>
+        <el-table-column prop="section" label="鎿嶄綔" width="120">
+          <template slot-scope="scope">
+            <el-button type="text" @click="dataConfig(scope.row)">鏁伴噰閰嶇疆</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
     </div>
+    <div class="page" v-if="tableList.length > 0">
+      <el-pagination @size-change="sizeChange" @current-change="currentChange" :current-page="page.current"
+                     :page-sizes="[10, 20, 30, 50, 100]" :page-size="page.size" layout="total, sizes, prev, pager, next, jumper"
+                     :total="tableList.length">
+      </el-pagination>
+    </div>
+    <el-dialog title="鏁伴噰閰嶇疆" :visible.sync="dialogVisible3" width="920px" :before-close="closeForm">
+      <el-form :model="configForm" label-position="top" size="small"
+               ref="configForm" label-width="100px" class="demo-ruleForm">
+        <!-- <div class="fomItem1"> -->
+          <!-- <el-form-item class="fomItemInput" label="妫�娴嬬殑鏂囦欢绫诲瀷:" prop="fileType">
+            <el-select v-model="configForm.fileType" placeholder="璇烽�夋嫨鏂囦欢绫诲瀷">
+              <el-option v-for="item in fileTypeOptions"
+                         :key="item.value"
+                         :label="item.label"
+                         :value="item.value"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item class="fomItemInput" label="閲囬泦鍦板潃:" prop="collectUrl">
+            <el-input v-model="configForm.collectUrl"></el-input>
+          </el-form-item>
+          <el-form-item class="fomItemInput" label="鍌ㄥ瓨鍦板潃:" prop="storageUrl">
+            <el-input v-model="configForm.storageUrl"></el-input>
+          </el-form-item> -->
+        <!-- </div> -->
+        <div class="fomItem1"
+             v-for="(domain, index) in domains"
+             :key="index">
+          <el-form-item class="fomItemInput" label="鍙傜収X:">
+            <el-input v-model="domain.referx"></el-input>
+          </el-form-item>
+          <el-form-item class="fomItemInput" label="X:">
+            <el-input v-model="domain.x" onkeyup="value=value.replace(/[^-0-9]/g,'')"></el-input>
+          </el-form-item>
+          <el-form-item class="fomItemInput" label="鍙傜収Y:">
+            <el-input v-model="domain.refery"></el-input>
+          </el-form-item>
+          <el-form-item class="fomItemInput" label="Y:">
+            <el-input v-model="domain.y" onkeyup="value=value.replace(/[^-0-9]/g,'')"></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button style="position: absolute; bottom: -65px" @click.prevent="removeDomain(domain)" size="small">鍒犻櫎</el-button>
+          </el-form-item>
+          <el-form-item>
+            <el-button @click="addDomain" size="small" type="primary" style="position: absolute; bottom: -65px;left: 62px" v-if="index === domains.length-1">鏂板鍩熷悕</el-button>
+          </el-form-item>
+        </div>
+        <div class="fomItem1">
+          <el-form-item class="fomItemInput" label="鍏紡:">
+            <el-input v-model="configForm.formula" @change="evalResult"></el-input>
+          </el-form-item>
+        </div>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+				<el-row>
+					<el-button @click="closeForm">鍙� 娑�</el-button>
+					<el-button type="primary" @click="submitForm3" :loading="upLoad3">纭� 瀹�</el-button>
+				</el-row>
+			</span>
+    </el-dialog>
   </div>
 </template>
 
@@ -16,12 +91,158 @@
   name: "dataAcquisitionConfig",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: {},
+  props: {
+    tableList: {
+      type: Array,
+      default: () => []
+    }
+  },
+  mounted() {
+    this.tableList.forEach(i => {
+      let data = i.insProductItem.split(',')
+      i.insProductItem = data[data.length - 1]
+    })
+  },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
-    return {}
+    return {
+      page: {
+        current: 1,
+        size: 20,
+      },
+      dialogVisible3:false,
+      configForm:{
+        formula: '',
+      },
+      domains: [
+        {
+          referx: '',
+          refery: '',
+          x: '',
+          y: ''
+        }
+      ],
+      upLoad3:false,
+      fileTypeOptions: [
+        {label: 'csv', value: '.csv'},
+        {label: 'db', value: '.db'},
+        {label: 'mdb', value: '.mdb'},
+        {label: 'word', value: '.docx'},
+        {label: 'excel', value: '.xlsx'},
+        {label: 'txt', value: '.txt'},
+        {label: 'png', value: '.png'},
+      ]
+    }
   },
   // 鏂规硶闆嗗悎
-  methods: {},
+  methods: {
+    dataConfig (row) {
+      this.configForm = {
+        deviceId: row.deviceId,
+        insProductItem: row.insProductItem.trim()
+      }
+      this.dialogVisible3 = true
+      this.$axios.get(this.$api.deviceScope.queryDataAcquisitionConfiguration + "?deviceId=" + row.deviceId + "&insProductItem=" + row.insProductItem.trim()).then(res => {
+        const data = res.data
+        if(data[0]) {
+          this.domains.splice(0, 1)
+          this.$set(this.configForm, 'formula', data[0].formula)
+          data.forEach(i => {
+            this.domains.push({
+              referx: i.referx,
+              refery: i.refery,
+              x: i.x,
+              y: i.y,
+              id: i.id
+            });
+          })
+        }
+      })
+    },
+    submitForm3() {
+      this.$refs.configForm.validate((valid) => { // 琛ㄥ崟鏍¢獙
+        if (valid) {
+          this.domains.forEach(item => {
+            const isEmpty = Object.values(item).every(val => val === '')
+            if (isEmpty) {
+              this.$message.error('璇峰~鍐欏弬鐓ф暟鎹�')
+            }
+          })
+          this.domains.forEach(i => {
+            if(i.x == '') {
+              i.x = null
+            }
+            if(i.y == '') {
+              i.y = null
+            }
+            i.formula = this.configForm.formula
+            i.deviceId = this.configForm.deviceId
+            i.insProductItem = this.configForm.insProductItem
+          })
+          this.$axios.post(this.$api.deviceScope.saveDataAcquisitionConfiguration, {dataConfigList: this.domains},{headers: {
+            'Content-Type': 'application/json'
+          }}).then(res => {
+            this.dialogVisible3 = false
+            this.domains = [
+              {
+                referx: '',
+                refery: '',
+                x: '',
+                y: '',
+                id: ''
+              }
+            ]
+            this.$message.success('娣诲姞鎴愬姛')
+          })
+        } else {
+          return false;
+        }
+      });
+    },
+    removeDomain(item) {
+      // 鍒犻櫎鍏紡formItem
+      const index = this.domains.indexOf(item)
+      if (index !== -1 && this.domains.length > 1) {
+        this.$axios.get(this.$api.deviceScope.deleteDataAcquisitionConfiguration + "?id=" + item.id).then(res => {
+          if(res.code == 200) {
+            this.domains.splice(index, 1)
+          }
+        })
+      } else {
+        this.$message.error('涓嶅厑璁稿垹闄ゆ渶鍚庝竴鏉℃暟鎹紒');
+      }
+    },
+    addDomain() {
+      // 娣诲姞鍏紡formItem
+      this.domains.push({
+        referx: '',
+        refery: '',
+        x: '',
+        y: '',
+        id: ''
+      });
+    },
+    evalResult () {
+      // 鏍规嵁鍏紡璁$畻鍑虹粨鏋�
+    },
+    sizeChange(val) {
+      this.page.size = val
+    },
+    currentChange(val) {
+      this.page.current = val
+    },
+    closeForm () {
+      this.domains = [{
+        referx: '',
+        refery: '',
+        x: '',
+        y: '',
+        id: ''
+      }]
+      this.dialogVisible3 = false
+      this.$refs.configForm.resetFields();
+    }
+  },
 }
 </script>
 
@@ -30,10 +251,33 @@
   width: 100%;
   height: 100%;
   overflow-y: auto;
-  //overflow-x: hidden;
   .title {
     height: 60px;
     line-height: 60px;
   }
 }
+.page {
+  width: 100%;
+  height: 30px;
+  text-align: right;
+  margin-top: 10px;
+}
+.table {
+  margin-top: 10px;
+  background-color: #fff;
+  width: calc(100% - 40px);
+  height: calc(100% - 60px - 80px - 10px - 40px);
+  padding: 20px;
+}
+.fomItem1 {
+  display: flex;
+  height: 74px;
+}
+.fomItemInput {
+  width: 180px;
+  margin-right: 6px;
+}
+>>>.el-form-item__label {
+  padding-bottom: 0 !important;
+}
 </style>

--
Gitblit v1.9.3