From 664db98c9e8595ce4dd636a27f480e3a08b81ff5 Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期五, 21 二月 2025 11:13:51 +0800
Subject: [PATCH] 新增可忽略的维修时间

---
 web/src/views/modules/taskReliability/OperatConditModel.vue |  168 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 134 insertions(+), 34 deletions(-)

diff --git a/web/src/views/modules/taskReliability/OperatConditModel.vue b/web/src/views/modules/taskReliability/OperatConditModel.vue
index 7966756..81f7506 100644
--- a/web/src/views/modules/taskReliability/OperatConditModel.vue
+++ b/web/src/views/modules/taskReliability/OperatConditModel.vue
@@ -1,56 +1,156 @@
 <template>
-    <div class="mod-taskReliability-operatConditModel}">
-      <zt-table-wraper 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-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="id"
-                  :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
-                  :default-expand-all="true">
-          <el-table-column prop="product" label="浜у搧鑺傜偣1" 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="openSelectModel(row)">閫夋嫨妯″瀷</zt-table-button>
-            </template>
-          </zt-table-column-handle>
-        </el-table>
-        <select-model-rbd ref="SelectModelRbd" ></select-model-rbd>
-      </zt-table-wraper>
-    </div>
+  <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:30}" 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
+                         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="105px">
+          <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="title" top="1vh" width='95%' :visible.sync="dialogVisible2" v-if="dialogVisible2">-->
+<!--        <model-view ref="modelView"></model-view>-->
+<!--      </el-dialog>-->
+    </zt-table-wraper>
+  </div>
 </template>
 
 <script>
-  import SelectModelRbd from "./SelectModelRbd";
+  import ModelView from "./ModelView";
+  import cloneDeep from 'lodash/cloneDeep'
+
   export default {
     name: 'OperaConditModel',
     data() {
       return {
         dataForm: {
-          operatConditId:'',
-          productId:'',
-        }
+          id: '',
+          operatConditId: '',
+          productId: '',
+        },
+        mapModelNodes: {},
+        modelList: [],
+        dialogVisible2: false,
+        isChange: false,
+        title: ''
       }
     },
     components: {
-      SelectModelRbd
+      ModelView
     },
-    methods:{
+    mounted() {
+      this.getModelNodes()
+    },
+    methods: {
       init(param) {
         console.log(param, '')
         this.dataForm.operatConditId = param.row.id
         this.dataForm.productId = param.productId
         this.$refs.tableObj.query()
       },
-      openSelectModel(row) {
-        console.log(row, 'selectModel');
-        if (!row.operatConditId)
-          row.operatConditId = this.dataForm.operatConditId
-        this.$refs.SelectModelRbd.$refs.dialog.init(row)
+      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) {
+        let param = {
+          id: row.modelId,
+          modelName: row.modelName,
+          collapseTransition:0,
+          title:row.modelName + '妯″瀷璁捐'
+        }
+        this.$emit('collapseTransitionChange', param)
       }
     }
   }

--
Gitblit v1.9.1