From 9b7ee2b8d22f14a0fffefb2ee371e9a655b05c54 Mon Sep 17 00:00:00 2001 From: jinlin <jinlin> Date: 星期五, 26 七月 2024 14:28:25 +0800 Subject: [PATCH] 修改 --- web/src/views/modules/taskReliability/TaskPhaseModel.vue | 76 ++++++++++++++++++++++++++++---------- 1 files changed, 56 insertions(+), 20 deletions(-) diff --git a/web/src/views/modules/taskReliability/TaskPhaseModel.vue b/web/src/views/modules/taskReliability/TaskPhaseModel.vue index 7218eab..19dfd04 100644 --- a/web/src/views/modules/taskReliability/TaskPhaseModel.vue +++ b/web/src/views/modules/taskReliability/TaskPhaseModel.vue @@ -6,28 +6,28 @@ delete-url="/taskReliability/TaskPhaseModel/" v-slot="{ table }"> <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> <el-form-item> - <zt-button type="warning" @click="handleSaveRows">淇濆瓨</zt-button> + <zt-button v-if="dataForm.phaseId" type="warning" @click="handleSaveRows">淇濆瓨</zt-button> </el-form-item> </el-form> <el-table v-loading="table.dataLoading" :data="table.dataList" height="100px" v-adaptive="{bottomOffset:30}" border @cell-click="handleCellClick" @selection-change="table.selectionChangeHandle"> - <el-table-column prop="operatConditName" label="宸ュ喌鍚嶇О" width="160"/> - <el-table-column prop="operatConditDurationRate" label="宸ュ喌鏃堕暱姣�"> + <el-table-column prop="operatConditName" label="宸ュ喌鍚嶇О" width="140" align="center"/> + <el-table-column prop="operatConditDurationRate" label="宸ュ喌鏃堕暱姣�" align="right" width="120"> <template slot-scope="scope"> <span v-if="editingCell && editingCell.row === scope.row && editingCell.column.property === scope.column.property"> <el-input ref="editInput" autosize v-model="scope.row.operatConditDurationRate" - placeholder="宸ュ喌鏃堕暱姣�"></el-input> + placeholder="宸ュ喌鏃堕暱姣�" @input="change()"></el-input> </span> <span v-else>{{scope.row.operatConditDurationRate}}</span> </template> </el-table-column> <el-table-column align="center" label="閫夌敤"> <template v-slot="{ row }"> - <el-checkbox true-label="1" false-label="0" v-model="row.isCheck"></el-checkbox> + <el-checkbox true-label="1" false-label="0" v-model="row.isCheck" @change="change"></el-checkbox> </template> </el-table-column> </el-table> @@ -36,6 +36,7 @@ </template> <script> + import cloneDeep from 'lodash/cloneDeep' export default { name: 'TaskPhaseModel', @@ -48,8 +49,11 @@ operatConditId: '', operatConditDurationRate: '', dataList: [], - isCheck: '' + isCheck: '', + dataThreeList:[] }, + lastSaveData: [], + isChange: false, editingCell: null, dataList: [], originalTableData: [], @@ -66,40 +70,48 @@ }, //鎵归噺淇濆瓨 async handleSaveRows() { - let time = null + let operatConditDurationRate = null let flag = true let list = [] + let reg = /^(-?\d+)\.?(\d*)$/; this.dataForm.dataThreeList = this.$refs.tableObj.dataList for (let i = 0; i < this.dataForm.dataThreeList.length; i++) { - time = time + Number(this.dataForm.dataThreeList[i].operatConditDurationRate) - if (this.dataForm.dataThreeList[i].isCheck === '0' && this.dataForm.dataThreeList[i].operatConditDurationRate != null) { - this.$alert("鏈夋湭鍕鹃�夌殑宸ュ喌") + operatConditDurationRate = this.dataForm.dataThreeList[i].operatConditDurationRate + console.log(operatConditDurationRate) + if (this.dataForm.dataThreeList[i].operatConditDurationRate == null) + this.dataForm.dataThreeList[i].operatConditDurationRate = '0' + if (this.dataForm.dataThreeList[i].isCheck === '0') + this.dataForm.dataThreeList[i].operatConditDurationRate = '0' + if (String(operatConditDurationRate).match(reg) == null && operatConditDurationRate !== null) { + this.$alert("杈撳叆鐨勬暟鎹牸寮忔湁璇�") flag = false - } else if (this.dataForm.dataThreeList[i].isCheck === '1' && this.dataForm.dataThreeList[i].operatConditDurationRate == null) { + } + // time = time + Number(this.dataForm.dataThreeList[i].operatConditDurationRate) + if (this.dataForm.dataThreeList[i].isCheck === '1' && (this.dataForm.dataThreeList[i].operatConditDurationRate == null || this.dataForm.dataThreeList[i].operatConditDurationRate == 0)) { this.$alert("鏈夋湭濉啓鐨勫伐鍐垫椂闀�") flag = false } - - if (this.dataForm.dataThreeList[i].isCheck==='1'){ - list.push(this.dataForm.dataThreeList[i]) - } + list.push(this.dataForm.dataThreeList[i]) } this.dataForm.dataThreeList = list - console.log(time, 'async handleSaveRows') - if (time!== 1) { + /*console.log(time, 'async handleSaveRows') + if (time > 1) { this.$alert("璇烽噸鏂拌缃綋鍓嶆椂闀挎瘮鍒嗛厤") return - } + }*/ if (!flag) { return } let res = await this.$http.post('/taskReliability/TaskPhaseModel/save', this.dataForm) if (res.success) { + this.isChange = false; + this.lastSaveData = cloneDeep(list) console.log(res.data) await this.$tip.success() this.originalData = null this.dataForm.dataThreeList = null this.$refs.tableObj.query() + this.$emit('getList') this.originalTableData = JSON.parse(JSON.stringify(this.dataList)); // 鏇存柊鍒濆鏁版嵁涓哄綋鍓嶆暟鎹� console.log(this.originalTableData, 'this.originalTableData 褰撳墠琛ㄦ牸json鏁版嵁') } @@ -110,6 +122,8 @@ this.dataList[i].productId = this.dataForm.productId this.dataList[i].phaseId = this.dataForm.phaseId } + this.lastSaveData = cloneDeep(this.$refs.tableObj.dataList) + console.log(this.lastSaveData) }, handleCellClick(row, column) { this.editingCell = {row, column} @@ -119,8 +133,30 @@ } }) console.log(this.editingCell, 'this.editingCell') - } - , + }, + change() { + console.log(this.$refs.tableObj.dataList, "this.$refs.tableObj.dataList") + console.log(this.lastSaveData, "this.lastSaveData") + + let r = JSON.stringify(this.$refs.tableObj.dataList); + let l = JSON.stringify(this.lastSaveData); + console.log(r,'this.$refs.tableObj.dataList[i]') + console.log(l,'this.lastSaveData[i]') + if (r!==l){ + this.isChange = true + return + } + /* for (let i = 0; i < this.$refs.tableObj.dataList.length; i++) { + if (this.$refs.tableObj.dataList[i] != this.lastSaveData[i]) { + console.log(i,'no') + console.log(this.$refs.tableObj.dataList[i],'this.$refs.tableObj.dataList[i]') + console.log(this.lastSaveData[i],'this.lastSaveData[i]') + this.isChange = true + return + } + }*/ + this.isChange = false + }, } } -- Gitblit v1.9.1