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