|  |  |  | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import cloneDeep from 'lodash/cloneDeep' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | name: 'TaskPhaseModel', | 
|---|
|  |  |  | 
|---|
|  |  |  | operatConditId: '', | 
|---|
|  |  |  | operatConditDurationRate: '', | 
|---|
|  |  |  | dataList: [], | 
|---|
|  |  |  | isCheck: '' | 
|---|
|  |  |  | isCheck: '', | 
|---|
|  |  |  | dataThreeList:[] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | lastSaveData: [], | 
|---|
|  |  |  | isChange: false, | 
|---|
|  |  |  | editingCell: null, | 
|---|
|  |  |  | dataList: [], | 
|---|
|  |  |  | originalTableData: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | //批量保存 | 
|---|
|  |  |  | 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数据') | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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} | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|