<template>
|
<div class="mod-taskReliability-operatConditModel}">
|
<zt-table-wraper @dataLoaded="dataLoaded" ref="tableObj" :paging='false' defaultNotQuery="true"
|
query-url="/taskReliability/OperatConditModel/page"
|
delete-url="/taskReliability/OperatConditModel/" v-slot="{ table }">
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="table.query()">
|
<el-form-item>
|
<el-button v-if="dataForm.productId" type="primary" @click="save()">保存</el-button>
|
</el-form-item>
|
</el-form>
|
<el-table v-loading="table.dataLoading" :data="table.dataList" height="100px"
|
v-adaptive="{bottomOffset:70}" border @selection-change="table.selectionChangeHandle"
|
row-key="iid"
|
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
:default-expand-all="true">
|
<el-table-column prop="productName" label="产品节点"/>
|
<el-table-column prop="modelId" label="产品模型">
|
<template slot-scope="scope">
|
<el-select v-model="scope.row.modelId" :disabled="scope.row.isDisabled == 1" placeholder="请选择"
|
style="width:100%" @change="modelChanged(scope.row)">
|
<el-option on
|
v-for="item in scope.row.modelList"
|
:key="item.id"
|
:label="item.modelName"
|
:value="item.id"
|
/>
|
</el-select>
|
</template>
|
</el-table-column>
|
<el-table-column label="操作" width="100px">
|
<template v-slot="{ row }">
|
<el-button v-if="row.modelId" type="primary" size="small" @click="drawRBD(row)">查看模型</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<el-dialog v-dialogDrag title="模型设计" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">
|
<RBDEditImg ref="rbdEditImg"></RBDEditImg>
|
</el-dialog>
|
</zt-table-wraper>
|
</div>
|
</template>
|
|
<script>
|
import RBDEditImg from './RBD-edit-img'
|
import cloneDeep from 'lodash/cloneDeep'
|
|
export default {
|
name: 'OperaConditModel',
|
data() {
|
return {
|
dataForm: {
|
id: '',
|
operatConditId: '',
|
productId: '',
|
},
|
mapModelNodes: {},
|
modelList: [],
|
dialogVisible2: false,
|
isChange: false,
|
}
|
},
|
components: {
|
RBDEditImg
|
},
|
mounted() {
|
this.getModelNodes()
|
},
|
methods: {
|
init(param) {
|
console.log(param, '')
|
this.dataForm.operatConditId = param.row.id
|
this.dataForm.productId = param.productId
|
this.$refs.tableObj.query()
|
},
|
dataLoaded(dataList) {
|
dataList[0].isDisabled = 0
|
if (!dataList[0].modelId && dataList[0].modelList.length == 1) {
|
console.log(dataList[0].modelList[0].id, ' dataList[0].modelList[0].modelId')
|
dataList[0].modelId = dataList[0].modelList[0].id
|
console.log(dataList[0], 'dataLoaded(dataList)')
|
this.modelChangedProess(dataList[0])
|
}
|
},
|
async save() {
|
let res = await this.$http.post('/taskReliability/OperatConditModel/', this.$refs.tableObj.dataList[0])
|
if (res.success) {
|
this.$tip.success()
|
this.isChange = false
|
this.$refs.tableObj.query()
|
}
|
},
|
async getModelNodes() {
|
let res = await this.$http.get(`/taskReliability/OperatConditModel/getModelNodes?shipId=0`)
|
console.log(res, 'res taskReliability')
|
console.log(res.data, 'res.data taskReliability')
|
if (res.data) {
|
this.mapModelNodes = res.data
|
|
}
|
},
|
modelChanged(row) {
|
this.isChange = true
|
this.modelChangedProess(row)
|
},
|
modelChangedProess(row) {
|
let modelId = row.modelId
|
let modelNodes = this.mapModelNodes[modelId]
|
console.log(modelId, 'modelChanged modelId')
|
console.log(modelNodes, 'modelChanged modelNodes')
|
console.log(row.children, 'row.children')
|
|
for (let subRow of row.children) {
|
console.log(subRow,'subRow')
|
console.log(subRow.productId,'subRow.productId')
|
if (modelNodes.indexOf(subRow.productId) != -1) {
|
subRow.isDisabled = 0
|
if (subRow.modelList.length == 1) {
|
subRow.modelId = subRow.modelList[0].id
|
console.log(subRow.modelId, 'subRow.modelId 111')
|
console.log(this.mapModelNodes[subRow.modelId], 'this.mapModelNodes[subRow.modelId] 111')
|
} else {
|
//subRow.modelId = null
|
}
|
} else {
|
subRow.isDisabled = 1
|
subRow.modelId = null
|
}
|
this.nodeIteration(subRow)
|
}
|
},
|
nodeIteration(parentRow) {
|
for (let subRow of parentRow.children) {
|
if (parentRow.modelId) {
|
subRow.isDisabled = 0
|
if (subRow.modelList.length == 1) {
|
subRow.modelId = subRow.modelList[0].id
|
}
|
} else {
|
subRow.isDisabled = 1
|
subRow.modelId = null
|
}
|
this.nodeIteration(subRow)
|
}
|
},
|
drawRBD(row) {
|
this.dialogVisible2 = true
|
let param = {
|
id: row.modelId,
|
model: row.modelName,
|
productId: row.productId
|
}
|
this.$nextTick(() => {
|
this.$refs.rbdEditImg.init(param)
|
})
|
}
|
}
|
}
|
</script>
|