| | |
| | | <div class="mod-taskReliability-taskPhaseModel fa-card-a" style="margin-left: 5px;"> |
| | | <zt-table-wraper ref="tableObj" defaultNotQuery="true" query-url="/taskReliability/TaskPhaseModel/page" |
| | | :paging='false' |
| | | @dataLoaded="dataLoaded" |
| | | delete-url="/taskReliability/TaskPhaseModel/" v-slot="{ table }"> |
| | | <el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()"> |
| | | <el-form-item> |
| | | <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 @selection-change="table.selectionChangeHandle" |
| | | row-key="id" |
| | | :cell-style="cellStyle" |
| | | :tree-props="{children: 'children', hasChildren: 'hasChildren'}" |
| | | :default-expand-all="true"> |
| | | <el-table-column prop="system" label="系统" width="160"/> |
| | | <el-table-column prop="modelName" label="系统模型"/> |
| | | <zt-table-column-handle :table="table" edit-perm="taskReliability:update" |
| | | delete-perm="taskReliability::delete" :has-view="false"> |
| | | <template v-slot="{ row }"> |
| | | <zt-table-button @click="selectModel(row)">选择模型</zt-table-button> |
| | | v-adaptive="{bottomOffset:30}" border |
| | | @cell-click="handleCellClick" |
| | | @selection-change="table.selectionChangeHandle"> |
| | | <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="工况时长比" @input="change()"></el-input> |
| | | </span> |
| | | <span v-else>{{scope.row.operatConditDurationRate}}</span> |
| | | </template> |
| | | </zt-table-column-handle> |
| | | </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" @change="change"></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <select-model-rbd ref="SelectModelRbd" @setModel="selectModelRbd"></select-model-rbd> |
| | | </zt-table-wraper> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import SelectModelRbd from "./SelectModelRbd"; |
| | | import cloneDeep from 'lodash/cloneDeep' |
| | | |
| | | export default { |
| | | name: 'TaskPhaseModel', |
| | | data() { |
| | | return { |
| | | dataForm: { |
| | | phaseId: '', |
| | | modelName: '', |
| | | productId: '', |
| | | modelId: '', |
| | | } |
| | | phaseId: '', |
| | | operatConditName: '', |
| | | operatConditId: '', |
| | | operatConditDurationRate: '', |
| | | dataList: [], |
| | | isCheck: '', |
| | | dataThreeList:[] |
| | | }, |
| | | lastSaveData: [], |
| | | isChange: false, |
| | | editingCell: null, |
| | | dataList: [], |
| | | originalTableData: [], |
| | | originalData: null, |
| | | } |
| | | }, |
| | | components: { |
| | | SelectModelRbd |
| | | }, |
| | | components: {}, |
| | | methods: { |
| | | init(param) { |
| | | console.log(param, '') |
| | |
| | | this.dataForm.productId = param.productId |
| | | this.$refs.tableObj.query() |
| | | }, |
| | | cellStyle({column}) { |
| | | if (column.label === '系统') { |
| | | return 'text-align: left !important;' |
| | | //批量保存 |
| | | async handleSaveRows() { |
| | | 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++) { |
| | | 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 |
| | | } |
| | | // 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 |
| | | } |
| | | list.push(this.dataForm.dataThreeList[i]) |
| | | } |
| | | this.dataForm.dataThreeList = list |
| | | /*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数据') |
| | | } |
| | | }, |
| | | selectModel(row) { |
| | | console.log(row, 'selectModel'); |
| | | let param = { |
| | | row: row, |
| | | phaseId: this.dataForm.phaseId |
| | | dataLoaded(data) { |
| | | this.dataList = data |
| | | for (let i = 0; i < this.dataList.length; i++) { |
| | | this.dataList[i].productId = this.dataForm.productId |
| | | this.dataList[i].phaseId = this.dataForm.phaseId |
| | | } |
| | | this.$refs.SelectModelRbd.$refs.dialog.init(param) |
| | | this.lastSaveData = cloneDeep(this.$refs.tableObj.dataList) |
| | | console.log(this.lastSaveData) |
| | | }, |
| | | selectModelRbd(row) { |
| | | console.log(row, 'selectModelRbd') |
| | | this.$refs.tableObj.query() |
| | | } |
| | | handleCellClick(row, column) { |
| | | this.editingCell = {row, column} |
| | | this.$nextTick(() => { |
| | | if (this.$refs.editInput) { |
| | | this.$refs.editInput.focus() |
| | | } |
| | | }) |
| | | 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 |
| | | } |
| | | this.isChange = false |
| | | }, |
| | | |
| | | } |
| | | } |
| | | </script> |