From c85ea17d45adac17b780992e049685d72168fdda Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期日, 27 四月 2025 14:38:48 +0800
Subject: [PATCH] 工艺文件缓存

---
 src/permission.js                               |    8 
 src/views/technology/routing/routing-form.vue   |   85 +++---
 src/router/views/index.js                       |    8 
 src/views/technology/document/document-form.vue |  491 +++++++++++++---------------------------
 src/views/technology/document/index.vue         |   91 ++----
 src/store/modules/tags.js                       |   25 +
 6 files changed, 261 insertions(+), 447 deletions(-)

diff --git a/src/permission.js b/src/permission.js
index 4692ede..e3b8e6f 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -21,14 +21,6 @@
     } else {
       const value = to.query.src || to.fullPath
       const label = to.query.name || to.name
-      // 妫�鏌ュ綋鍓嶈杩涘叆鐨勯〉闈㈡槸鍚﹀湪鏍囩鍒楄〃涓�
-      const existingTag = store.getters.tagList.find(
-        (tag) => tag.label === label
-      )
-      if (existingTag) {
-        // 濡傛灉瀛樺湪锛屽垹闄よ鏍囩
-        store.commit('DEL_TAG', existingTag)
-      }
       if (
         meta.isTab !== false &&
         !validatenull(value) &&
diff --git a/src/router/views/index.js b/src/router/views/index.js
index 9e11678..259f54a 100644
--- a/src/router/views/index.js
+++ b/src/router/views/index.js
@@ -48,7 +48,7 @@
     children: [
       {
         path: 'routing-form',
-        name: '宸ヨ壓璇︽儏',
+        name: '宸ヨ壓璺嚎璇︽儏',
         component: () =>
           import(/* webpackChunkName: "views" */ '@/views/technology/routing/routing-form'),
         meta: {
@@ -116,12 +116,12 @@
     children: [
       {
         path: 'document-form',
-        name: 'documentForm',
+        name: '宸ヨ壓鏂囦欢璇︽儏',
         component: () =>
           import(/* webpackChunkName: "views" */ '@/views/technology/document/document-form'),
         meta: {
-          keepAlive: false,
-          isTab: false,
+          keepAlive: true,
+          isTab: true,
           isAuth: false
         }
       }
diff --git a/src/store/modules/tags.js b/src/store/modules/tags.js
index d173fa5..841b5db 100644
--- a/src/store/modules/tags.js
+++ b/src/store/modules/tags.js
@@ -1,6 +1,7 @@
 import { getStore, setStore } from '@/util/store'
 import { diff } from '@/util/util'
 import website from '@/const/website'
+import Vue from 'vue'
 
 const isFirstPage = website.isFirstPage
 const tagWel = website.fistPage
@@ -17,7 +18,7 @@
   if (list.length === 1) {
     list[0].close = false
   } else {
-    list.forEach(ele => {
+    list.forEach((ele) => {
       if (ele.value === tagWel.value && isFirstPage === false) {
         ele.close = false
       } else {
@@ -36,15 +37,24 @@
   actions: {},
   mutations: {
     ADD_TAG: (state, action) => {
+      if (state.tagList.some((ele) => diff(ele, action))) return
+      Vue.prototype.$nextTick(() => {
+        const index = state.tagList.findIndex(
+          (ele) => ele.label == action.label
+        )
+        if (index > -1) {
+          state.tagList[index] = action
+        } else {
+          state.tagList.push(action)
+        }
+      })
       state.tag = action
       setStore({ name: 'tag', content: state.tag, type: 'session' })
-      if (state.tagList.some(ele => diff(ele, action))) return
-      state.tagList.push(action)
       setFistTag(state.tagList)
       setStore({ name: 'tagList', content: state.tagList, type: 'session' })
     },
     DEL_TAG: (state, action) => {
-      state.tagList = state.tagList.filter(item => {
+      state.tagList = state.tagList.filter((item) => {
         return !diff(item, action)
       })
       setFistTag(state.tagList)
@@ -55,10 +65,13 @@
       setStore({ name: 'tagList', content: state.tagList, type: 'session' })
     },
     DEL_TAG_OTHER: (state) => {
-      state.tagList = state.tagList.filter(item => {
+      state.tagList = state.tagList.filter((item) => {
         if (item.value === state.tag.value) {
           return true
-        } else if (!website.isFirstPage && item.value === website.fistPage.value) {
+        } else if (
+          !website.isFirstPage &&
+          item.value === website.fistPage.value
+        ) {
           return true
         }
       })
diff --git a/src/views/technology/document/document-form.vue b/src/views/technology/document/document-form.vue
index e101abb..6a8bcda 100644
--- a/src/views/technology/document/document-form.vue
+++ b/src/views/technology/document/document-form.vue
@@ -12,23 +12,13 @@
     </div>
     <div class="page-main">
       <div class="document-basic" style="height: 28%;">
-        <el-form
-          :model="dataForm"
-          :rules="dataRule"
-          ref="dataForm"
-          style="width: 100%"
-          class="l-mes"
-          :disabled="!editable"
-          label-width="110px"
-        >
+        <el-form :model="dataForm" :rules="dataRule" ref="dataForm" style="width: 100%" class="l-mes"
+          :disabled="!editable" label-width="110px">
           <el-row>
             <el-col :span="6">
               <el-form-item prop="name" label="鏂囦欢鍚嶇О">
-                <el-tooltip class="item" effect="dark" :content="dataForm.name" >
-                <el-input
-                  v-model="dataForm.name"
-                  placeholder="鏂囦欢鍚嶇О"
-                ></el-input>
+                <el-tooltip class="item" effect="dark" :content="dataForm.name">
+                  <el-input v-model="dataForm.name" placeholder="鏂囦欢鍚嶇О"></el-input>
                 </el-tooltip>
               </el-form-item>
             </el-col>
@@ -105,145 +95,74 @@
             <el-col :span="6">
               <el-form-item label="浜у搧闆朵欢鍙�" prop="partNo">
                 <el-input disabled v-model="dataForm.partNo" placeholder="璇烽�夋嫨闆朵欢">
-                  <el-button
-                    slot="append"
-                    icon="el-icon-search"
-                    @click="openPartDialog()"
-                  ></el-button>
+                  <el-button slot="append" icon="el-icon-search" @click="openPartDialog()"></el-button>
                 </el-input>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="浜у搧闆朵欢鎻忚堪" prop="partName">
-                <el-tooltip class="item" effect="dark" :content="dataForm.partName" >
-                <el-input v-model="dataForm.partName" disabled> </el-input>
+                <el-tooltip class="item" effect="dark" :content="dataForm.partName">
+                  <el-input v-model="dataForm.partName" disabled> </el-input>
                 </el-tooltip>
               </el-form-item>
             </el-col>
           </el-row>
           <el-row>
-              <el-col :span="6">
-                <el-form-item prop="version" label="鐗堟湰鍙�">
-                  <el-input
-                    v-model="dataForm.version"
-                    placeholder="鐗堟湰鍙�"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="6">
-                <el-form-item label="BOM" prop="bomId">
-                  <el-select
-                    :disabled="dataForm.id != null"
-                    v-model="dataForm.bomId"
-                    placeholder=""
-                    style="width: 100%;"
-                    filterable>
-                    <el-option
-                      v-for="item in bomList"
-                      :key="item.id"
-                      :label="item.number"
-                      :value="item.id"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="6">
-                <el-form-item label="宸ヨ壓璺嚎缂栧彿" prop="routingList">
-                  <el-select
-                    :disabled="dataForm.id != null"
-                    v-model="dataForm.routingId"
-                    placeholder=""
-                    style="width: 100%;"
-                    filterable>
-                    <el-option
-                      v-for="item in routingList"
-                      :key="item.id"
-                      :label="item.routing_no"
-                      :value="item.id"
-                    />
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="6">
-              <el-form-item label="椤圭洰鍙�" prop="projectNo">
-                <el-input
-                  v-model="dataForm.projectNo"
-                  placeholder="椤圭洰鍙�"
-                  style="width:100%"
-                ></el-input>
+            <el-col :span="6">
+              <el-form-item prop="version" label="鐗堟湰鍙�">
+                <el-input v-model="dataForm.version" placeholder="鐗堟湰鍙�"></el-input>
               </el-form-item>
             </el-col>
-              <el-col :span="6">
-                <el-form-item label="澶囨敞" prop="remark">
-                  <el-input
-                    type="textarea"
-                    v-model="dataForm.remark"
-                    placeholder="澶囨敞"
-                    style="width:100%"
-                  ></el-input>
-                </el-form-item>
-              </el-col>
+            <el-col :span="6">
+              <el-form-item label="BOM" prop="bomId">
+                <el-select :disabled="dataForm.id != null" v-model="dataForm.bomId" placeholder="" style="width: 100%;"
+                  filterable>
+                  <el-option v-for="item in bomList" :key="item.id" :label="item.number" :value="item.id" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="宸ヨ壓璺嚎缂栧彿" prop="routingList">
+                <el-select :disabled="dataForm.id != null" v-model="dataForm.routingId" placeholder=""
+                  style="width: 100%;" filterable>
+                  <el-option v-for="item in routingList" :key="item.id" :label="item.routing_no" :value="item.id" />
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="椤圭洰鍙�" prop="projectNo">
+                <el-input v-model="dataForm.projectNo" placeholder="椤圭洰鍙�" style="width:100%"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="澶囨敞" prop="remark">
+                <el-input type="textarea" v-model="dataForm.remark" placeholder="澶囨敞" style="width:100%"></el-input>
+              </el-form-item>
+            </el-col>
           </el-row>
         </el-form>
       </div>
 
       <div class="document-detail">
         <el-tabs type="card" style="width: 100%;height: 100%">
-          <el-tab-pane
-            label="鍘熸潗鏂欑敤閲�"
-            style="height: 100%"
-            class="orimaterial-quantity"
-          >
-            <el-card
-              shadow="never"
-              style="margin-top: 12px;border: 1px solid #cfd5de;"
-            >
+          <el-tab-pane label="鍘熸潗鏂欑敤閲�" style="height: 100%" class="orimaterial-quantity">
+            <el-card shadow="never" style="margin-top: 12px;border: 1px solid #cfd5de;">
               <div slot="header">
                 <div>
-                  <el-button
-                    type="text"
-                    size="small"
-                    class="blue-but"
-                    v-if="editable"
-                    @click="calcMaterialCost()"
-                    >璁$畻鐢ㄩ噺
+                  <el-button type="text" size="small" class="blue-but" v-if="editable" @click="calcMaterialCost()">璁$畻鐢ㄩ噺
                   </el-button>
-                  <el-button
-                    type="text"
-                    size="small"
-                    @click="exportMaterialCost()"
-                    >瀵煎嚭
+                  <el-button type="text" size="small" @click="exportMaterialCost()">瀵煎嚭
                   </el-button>
                 </div>
               </div>
-              <el-table
-                :data="materialCostList"
-                border
-                height="650"
-                :span-method="objectSpanMethod"
-                :header-cell-style="{ color: '#999' }"
-                class="document-materialcost-table"
-                show-summary
-                :summary-method="getSummaries"
-                ref="summeryTable"
-              >
-                <el-table-column
-                  label="鎴愬搧"
-                  prop="finishedProduct"
-                  align="center"
-                >
+              <el-table :data="materialCostList" border height="650" :span-method="objectSpanMethod"
+                :header-cell-style="{ color: '#999' }" class="document-materialcost-table" show-summary
+                :summary-method="getSummaries" ref="summeryTable">
+                <el-table-column label="鎴愬搧" prop="finishedProduct" align="center">
                 </el-table-column>
-                <el-table-column
-                  label="Bom缂栧彿"
-                  prop="bomNumber"
-                  align="center"
-                >
+                <el-table-column label="Bom缂栧彿" prop="bomNumber" align="center">
                 </el-table-column>
-                <el-table-column
-                  label="宸ュ簭"
-                  prop="operationName"
-                  align="center"
-                >
+                <el-table-column label="宸ュ簭" prop="operationName" align="center">
                 </el-table-column>
                 <el-table-column label="鐗╂枡缂栧彿" prop="partNo" align="center">
                 </el-table-column>
@@ -256,104 +175,38 @@
               </el-table>
             </el-card>
           </el-tab-pane>
-          <el-tab-pane
-            class="final-product-checkout"
-            label="鎴愬搧妫�娴�"
-            style="height: 100%"
-          >
-            <TeststandardDialog
-              :editable="editable"
-              :key="dataForm.id"
-              :documentId="dataForm.id"
-            >
+          <el-tab-pane class="final-product-checkout" label="鎴愬搧妫�娴�" style="height: 100%">
+            <TeststandardDialog :editable="editable" :key="dataForm.id" :documentId="dataForm.id">
             </TeststandardDialog>
           </el-tab-pane>
           <el-tab-pane label="浜у搧缁撴瀯宸ュ簭鍙傛暟" style="height: 100%">
             <div class="document-related-stock-part">
-              <div
-                style="padding-left:18px;font-size:14px;font-weight:700;color:#000;height:20px;line-height:20px;"
-              >
+              <div style="padding-left:18px;font-size:14px;font-weight:700;color:#000;height:20px;line-height:20px;">
                 <span>鐩稿叧搴撳瓨闆朵欢</span>
               </div>
-              <el-table
-                :data="relatedStockPartList"
-                @row-click="clickRelatedStockPart"
-                highlight-current-row
-                height="188px"
-                :header-cell-style="relatedStockPartTableHeaderCellStyle"
-                :row-style="{ height: '0' }"
-                :cell-style="{ padding: '1px' }"
-              >
-                <el-table-column
-                  label="闆朵欢缂栧彿"
-                  prop="partNo"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+              <el-table :data="relatedStockPartList" @row-click="clickRelatedStockPart" highlight-current-row
+                height="188px" :header-cell-style="relatedStockPartTableHeaderCellStyle" :row-style="{ height: '0' }"
+                :cell-style="{ padding: '1px' }">
+                <el-table-column label="闆朵欢缂栧彿" prop="partNo" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="闆朵欢鎻忚堪"
-                  prop="partName"
-                  align="center"
-                  width="400"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="闆朵欢鎻忚堪" prop="partName" align="center" width="400" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="宸ヨ壓璺嚎缂栧彿"
-                  prop="routingNo"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="宸ヨ壓璺嚎缂栧彿" prop="routingNo" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="宸ヨ壓璺嚎鐗堟湰"
-                  prop="routingVersion"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="宸ヨ壓璺嚎鐗堟湰" prop="routingVersion" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="宸ヨ壓鏇夸唬鍙�"
-                  prop="routingAlternativeNo"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="宸ヨ壓鏇夸唬鍙�" prop="routingAlternativeNo" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="宸ヨ壓鏇夸唬鎻忚堪"
-                  prop="routingAlternativeDesc"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="宸ヨ壓鏇夸唬鎻忚堪" prop="routingAlternativeDesc" align="center"
+                  :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="BOM鍙�"
-                  prop="bomNo"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="BOM鍙�" prop="bomNo" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="BOM鐗堟湰"
-                  prop="bomVersion"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="BOM鐗堟湰" prop="bomVersion" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="BOM鏇夸唬鍙�"
-                  prop="bomAlternativeNo"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="BOM鏇夸唬鍙�" prop="bomAlternativeNo" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
-                <el-table-column
-                  label="BOM鏇夸唬鎻忚堪"
-                  prop="bomAlternativeDesc"
-                  align="center"
-                  :show-overflow-tooltip="true"
-                >
+                <el-table-column label="BOM鏇夸唬鎻忚堪" prop="bomAlternativeDesc" align="center" :show-overflow-tooltip="true">
                 </el-table-column>
               </el-table>
             </div>
@@ -390,30 +243,14 @@
                   </el-button>
                 </el-tooltip>
               </div> -->
-              <el-collapse
-                v-model="currTechnologyBomPartName"
-                accordion
-                @change="handleCompleteproductstructureChange"
-              >
-                <el-collapse-item
-                  v-for="(item, i) in completeproductstructureData"
-                  :key="i"
-                  :name="item.bomRoutingId"
-                >
+              <el-collapse v-model="currTechnologyBomPartName" accordion @change="handleCompleteproductstructureChange">
+                <el-collapse-item v-for="(item, i) in completeproductstructureData" :key="i" :name="item.bomRoutingId">
                   <template slot="title">
-                    <el-checkbox
-                      class="completeproductstructure-checkout"
-                      v-model="item.expand"
-                      disabled
-                    >
-                      <span style="font-weight:bold">宸ヨ壓璺嚎缂栧彿锛�</span
-                      >{{ item.routingNo }}&nbsp;&nbsp;&nbsp;&nbsp;
-                      <span style="font-weight:bold">闆朵欢鍙凤細</span
-                      >{{ item.partNo }}&nbsp;&nbsp;&nbsp;&nbsp;
-                      <span style="font-weight:bold">闆朵欢鍚嶇О锛�</span
-                      >{{ item.partName }}&nbsp;&nbsp;&nbsp;&nbsp;
-                      <span style="font-weight:bold">Bom缂栧彿锛�</span
-                      >{{ item.number == null ? '鏃�' : item.number }}
+                    <el-checkbox class="completeproductstructure-checkout" v-model="item.expand" disabled>
+                      <span style="font-weight:bold">宸ヨ壓璺嚎缂栧彿锛�</span>{{ item.routingNo }}&nbsp;&nbsp;&nbsp;&nbsp;
+                      <span style="font-weight:bold">闆朵欢鍙凤細</span>{{ item.partNo }}&nbsp;&nbsp;&nbsp;&nbsp;
+                      <span style="font-weight:bold">闆朵欢鍚嶇О锛�</span>{{ item.partName }}&nbsp;&nbsp;&nbsp;&nbsp;
+                      <span style="font-weight:bold">Bom缂栧彿锛�</span>{{ item.number == null ? '鏃�' : item.number }}
                     </el-checkbox>
                   </template>
                   <div style="display:flex;">
@@ -430,13 +267,12 @@
                     </div> -->
                     <div
                       style="font-size:13px;font-weight:bold;cursor: pointer;margin-left: 10px;border-radius:2px 2px 0px 0px;width:80px;text-align:center;"
-                      :class="['highlight-tab-class']"
-                    >
+                      :class="['highlight-tab-class']">
                       宸ュ簭鍙傛暟
                     </div>
                   </div>
 
-                 <!-- <div class="document-bom-div" v-show="item.showBom">
+                  <!-- <div class="document-bom-div" v-show="item.showBom">
                     <el-tooltip
                       class="item"
                       effect="dark"
@@ -476,57 +312,30 @@
                   </div> -->
 
                   <div class="document-technology-div" v-show="item.showBom">
-                    <div
-                      style="border: 1px solid #ebeef5;height: 440px;overflow: auto;"
-                    >
-                      <el-collapse
-                        v-model="currTechnologyOperationName"
-                        accordion
-                        @change="
-                          handleTechnologyOperationChange(
-                            $event,
-                            item.bomRoutingId
-                          )
-                        "
-                      >
-                        <el-collapse-item
-                          v-for="(ele, j) in item.technologyOperationData"
-                          :key="j"
-                          :name="ele.id"
-                        >
-                          <template slot="title"
-                            ><span style="font-weight:300"
-                              >&nbsp;&nbsp;宸ュ簭鍚嶇О锛�</span
-                            >{{ ele.operationName }}&nbsp;&nbsp;&nbsp;&nbsp;
-                            <span style="font-weight:300">宸ュ簭缂栧彿锛�</span
-                            >{{ ele.operationNo }}
+                    <div style="border: 1px solid #ebeef5;height: 440px;overflow: auto;">
+                      <el-collapse v-model="currTechnologyOperationName" accordion @change="
+                        handleTechnologyOperationChange(
+                          $event,
+                          item.bomRoutingId
+                        )
+                        ">
+                        <el-collapse-item v-for="(ele, j) in item.technologyOperationData" :key="j" :name="ele.id">
+                          <template slot="title"><span style="font-weight:300">&nbsp;&nbsp;宸ュ簭鍚嶇О锛�</span>{{
+                            ele.operationName }}&nbsp;&nbsp;&nbsp;&nbsp;
+                            <span style="font-weight:300">宸ュ簭缂栧彿锛�</span>{{ ele.operationNo }}
                           </template>
                           <el-tabs v-model="activeTemplateName" type="card">
-                            <el-tab-pane
-                              v-for="(paramTab, index) in paramTabs"
-                              :key="index"
-                              :label="paramTab.label"
-                              :name="paramTab.name"
-                            >
+                            <el-tab-pane v-for="(paramTab, index) in paramTabs" :key="index" :label="paramTab.label"
+                              :name="paramTab.name">
                               <el-table :data="paramTab.params">
-                                <el-table-column
-                                  prop="parameterItem"
-                                  label="鍚嶇О"
-                                  align="center"
-                                >
+                                <el-table-column prop="parameterItem" label="鍚嶇О" align="center">
                                   <template slot-scope="scope">
-                                    <span
-                                      >{{ scope.row.parameterItem }}({{
-                                        scope.row.unit
-                                      }})</span
-                                    >
+                                    <span>{{ scope.row.parameterItem }}({{
+                                      scope.row.unit
+                                    }})</span>
                                   </template>
                                 </el-table-column>
-                                <el-table-column
-                                  prop="paramValue"
-                                  label="鍊�"
-                                  align="center"
-                                ></el-table-column>
+                                <el-table-column prop="paramValue" label="鍊�" align="center"></el-table-column>
                               </el-table>
                             </el-tab-pane>
                             <!-- <el-tab-pane label="澶囨敞" style="height: 100%">
@@ -741,33 +550,18 @@
         </el-tabs>
       </div>
     </div>
-    <completeproductstructureDialog
-      :currshowlist.sync="showCompleteproductstructure"
-      :queryParam="bomQueryParam"
-      @listenToCompleteproductstructureEvent="selectCompleteproductstructure"
-    />
-    <routingDialog
-      :currshowlist.sync="showTechnology"
-      :queryParam="queryParam"
-      @listenToRoutingEvent="selectTechnology"
-    />
-    <qualityStandardDialog
-      :currshowlist.sync="showQualityStandard"
-      @listenToSelectTestStandardEvent="selectQualityStandard"
-    />
+    <completeproductstructureDialog :currshowlist.sync="showCompleteproductstructure" :queryParam="bomQueryParam"
+      @listenToCompleteproductstructureEvent="selectCompleteproductstructure" />
+    <routingDialog :currshowlist.sync="showTechnology" :queryParam="queryParam"
+      @listenToRoutingEvent="selectTechnology" />
+    <qualityStandardDialog :currshowlist.sync="showQualityStandard"
+      @listenToSelectTestStandardEvent="selectQualityStandard" />
     <partDialog :currshowlist.sync="showPart" @listenToPartEvent="selectPart" />
-    <spotCheckRule
-      :currshowlist.sync="spotCheckRuleShow"
-      :docBomId="currDocBomId"
-      :routingOperationId="currRoutingOperationId"
-      :routingOperationName="currRoutingOperationName"
-      @refreshSpotCheckRuleList="refreshSpotCheckRuleList"
-    />
-    <spotCheckRuleEdit
-      :currshowlist.sync="editSpotCheckRuleShow"
-      :documentSamplingRuleId="currDocumentSamplingRuleId"
-      @refreshSpotCheckRuleList="refreshSpotCheckRuleList"
-    />
+    <spotCheckRule :currshowlist.sync="spotCheckRuleShow" :docBomId="currDocBomId"
+      :routingOperationId="currRoutingOperationId" :routingOperationName="currRoutingOperationName"
+      @refreshSpotCheckRuleList="refreshSpotCheckRuleList" />
+    <spotCheckRuleEdit :currshowlist.sync="editSpotCheckRuleShow" :documentSamplingRuleId="currDocumentSamplingRuleId"
+      @refreshSpotCheckRuleList="refreshSpotCheckRuleList" />
   </div>
 </template>
 
@@ -926,7 +720,7 @@
     spotCheckRuleEdit
   },
   computed: {
-    editable: function() {
+    editable: function () {
       if (!this.dataForm.id) {
         return true
       }
@@ -937,7 +731,7 @@
     }
   },
 
-  created() {
+  activated() {
     this.dataForm.id = this.$route.query.id
     this.init()
     this.getDict()
@@ -962,9 +756,9 @@
   },
   watch: {
     'dataForm.partId'(newValue, oldValue) {
-      if (oldValue) {
-        this.dataForm.bomId = null
-      }
+      // if (oldValue) {
+      //   this.dataForm.bomId = null
+      // }
       if (newValue) {
         getBomList(
           Object.assign({
@@ -994,6 +788,52 @@
       } else {
         this.routingList = []
       }
+    },
+    '$route.query.id': {
+      immediate: true,
+      handler(newVal, oldVal) {
+        if (this.$route.name == '宸ヨ壓鏂囦欢璇︽儏') {
+          if (newVal) {
+            this.dataForm.id = this.$route.query.id
+            this.init()
+            this.getDict()
+            this.getBomTypeDbOptions()
+            this.initReportTypeSelect()
+          } else {
+            this.dataForm.id = null
+            this.init()
+            this.getDict()
+            this.getBomTypeDbOptions()
+            this.initReportTypeSelect()
+            this.dataForm = {
+              id: null,
+              bomId: null,
+              routingId: null,
+              number: null,
+              name: null,
+              version: null,
+              projectNo: null,
+              projectType: null,
+              country: null,
+              state: null,
+              remark: null,
+              partNo: null,
+              partId: null,
+              partName: null,
+              docType: 'M',
+              insulationColor: null,
+              sheathColor: null,
+              testStandard: false,
+              updateRealUser: null,
+              updateRealTime: null
+            }
+            this.materialCostList = []
+            this.relatedStockPartList = []
+            this.currTechnologyBomPartName = null;
+            this.completeproductstructureData = []
+          }
+        }
+      },
     },
   },
   methods: {
@@ -1051,15 +891,15 @@
       }
       // flowTemp.loadData(jsondata)
       // 淇濆瓨鎸夐挳浜嬩欢
-      _this.flowTemp.onBtnSaveClick = function() {
+      _this.flowTemp.onBtnSaveClick = function () {
         _this.saveFlow()
       }
       // 閲嶇疆鎸夐挳浜嬩欢
-      _this.flowTemp.onFreshClick = function() {
+      _this.flowTemp.onFreshClick = function () {
         _this.getFlow()
       }
       // 鎵撳嵃鎸夐挳浜嬩欢
-      _this.flowTemp.onPrintClick = function() {
+      _this.flowTemp.onPrintClick = function () {
         _this.flowTemp.exportDiagram('娴佺▼鍥�')
       }
     },
@@ -1960,8 +1800,7 @@
     },
     handleFlowExceed(files, fileList) {
       this.$message.warning(
-        `褰撳墠闄愬埗閫夋嫨 1 涓祦绋嬪浘鏂囦欢锛屾湰娆¢�夋嫨浜� ${
-          files.length
+        `褰撳墠闄愬埗閫夋嫨 1 涓祦绋嬪浘鏂囦欢锛屾湰娆¢�夋嫨浜� ${files.length
         } 涓祦绋嬪浘鏂囦欢锛屽叡閫夋嫨浜� ${files.length + fileList.length} 涓祦绋嬪浘鏂囦欢`
       )
     },
@@ -2150,30 +1989,22 @@
 }
 
 /*鑷畾涔塪isabled鐘舵�佷笅checkbox鐨勬牱寮�*/
-.completeproductstructure-checkout
-  .el-checkbox__input.is-disabled.is-checked
-  .el-checkbox__inner {
+.completeproductstructure-checkout .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner {
   background-color: #006eff;
   border-color: #006eff;
 }
 
-.completeproductstructure-checkout
-  .el-checkbox__input.is-disabled.is-checked
-  + span.el-checkbox__label {
+.completeproductstructure-checkout .el-checkbox__input.is-disabled.is-checked+span.el-checkbox__label {
   color: #006eff;
   border-color: #006eff;
 }
 
-.completeproductstructure-checkout
-  .el-checkbox__input.is-disabled
-  .el-checkbox__inner {
+.completeproductstructure-checkout .el-checkbox__input.is-disabled .el-checkbox__inner {
   background-color: #ffffff;
   cursor: pointer;
 }
 
-.completeproductstructure-checkout
-  .el-checkbox__input.is-disabled
-  + span.el-checkbox__label {
+.completeproductstructure-checkout .el-checkbox__input.is-disabled+span.el-checkbox__label {
   color: #606266;
   cursor: pointer;
 }
@@ -2242,11 +2073,13 @@
 .GooFlow .ico .ico_start:before {
   color: red;
 }
+
 .highlight-tab-class {
   color: #006eff;
   background: #e4e7ed;
   border-top: 1px solid #006eff;
 }
+
 .unhighlight-tab-class {
   border: 1px solid #e4e7ed;
   border-bottom: none;
diff --git a/src/views/technology/document/index.vue b/src/views/technology/document/index.vue
index 0f9485e..1a436cd 100644
--- a/src/views/technology/document/index.vue
+++ b/src/views/technology/document/index.vue
@@ -1,15 +1,8 @@
 <template>
   <div class="mod-config">
     <basic-container>
-      <ttable
-        :table="table"
-        @handleSelectionChange="handleSelectionChange"
-        @tableRowClassName="tableRowClassName"
-        :prelang="prelang"
-        :options="options"
-        :ajaxFun="ajaxFun"
-        ref="documentTable"
-      >
+      <ttable :table="table" @handleSelectionChange="handleSelectionChange" @tableRowClassName="tableRowClassName"
+        :prelang="prelang" :options="options" :ajaxFun="ajaxFun" ref="documentTable">
         <template #toolbar>
           <!-- <el-button
             type="primary"
@@ -19,38 +12,18 @@
           > -->
         </template>
       </ttable>
-      <el-dialog
-        title="瀵煎叆"
-        :visible.sync="importTestStandardVisible"
-        width="50%"
-      >
+      <el-dialog title="瀵煎叆" :visible.sync="importTestStandardVisible" width="50%">
         <div>
-          <el-upload
-            style="margin-left:8px;display: inline;"
-            class="upload-demo"
-            drag
-            :headers="headers"
-            :action="testStandardUploadInfo.url"
-            :beforeUpload="beforeAvatarUpload"
-            :limit="1"
-            :show-file-list="false"
-            :file-list="testStandardFileList"
-            :on-success="testStandardFileSuccessUploadScan"
-            :on-error="handleError"
+          <el-upload style="margin-left:8px;display: inline;" class="upload-demo" drag :headers="headers"
+            :action="testStandardUploadInfo.url" :beforeUpload="beforeAvatarUpload" :limit="1" :show-file-list="false"
+            :file-list="testStandardFileList" :on-success="testStandardFileSuccessUploadScan" :on-error="handleError"
             accept=".xlsx,.xls,.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
-            :auto-upload="true"
-            ref="testStandardUploadScan"
-            multiple
-          >
+            :auto-upload="true" ref="testStandardUploadScan" multiple>
             <i class="el-icon-upload"></i>
             <div class="el-upload__text"><em>瀵煎叆鏁版嵁</em></div>
             <div class="el-upload__tip" slot="tip">
-              鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button
-                type="text"
-                style="font-size:12px;"
-                @click="downTestStandardDataTemplate"
-                >涓嬭浇妯℃澘</el-button
-              >
+              鍙兘涓婁紶xlsx/xls鏂囦欢锛屼笖涓嶈秴杩�10M<el-button type="text" style="font-size:12px;"
+                @click="downTestStandardDataTemplate">涓嬭浇妯℃澘</el-button>
             </div>
           </el-upload>
         </div>
@@ -384,37 +357,37 @@
   activated() {
     this.getData()
   },
-  created() {  
-    if(this.permissions.technology_document_add){
+  created() {
+    if (this.permissions.technology_document_add) {
       this.table.toolbar.push({
         text: '鏂板',
         type: 'primary',
         disabled: false,
-        fun: ()=>{this.addOrUpdateHandle()},
+        fun: () => { this.addOrUpdateHandle() },
         permitArr: [],
       })
     }
-    if(this.permissions.technology_document_accept){
+    if (this.permissions.technology_document_accept) {
       this.table.toolbar.push({
         text: '鎵瑰噯',
         disabled: true,
-        fun: ()=>{this.changeState('accept')},
+        fun: () => { this.changeState('accept') },
         permitArr: ['01draft', '03accepted', '04reject'],
       })
     }
-    if(this.permissions.technology_document_reject){
+    if (this.permissions.technology_document_reject) {
       this.table.toolbar.push({
         text: '鎷掔粷',
         disabled: true,
-        fun: () => {this.changeState('reject')},
+        fun: () => { this.changeState('reject') },
         permitArr: ['01draft', '03accepted', '04reject'],
       })
     }
-    if(this.permissions.technology_document_cancel){
+    if (this.permissions.technology_document_cancel) {
       this.table.toolbar.push({
         text: '鎾ら攢',
         disabled: true,
-        fun: ()=>{this.changeState('cancel')},
+        fun: () => { this.changeState('cancel') },
         permitArr: ['01draft', '03accepted', '04reject'],
       })
     }
@@ -423,10 +396,10 @@
         text: '鎵归噺鍒犻櫎',
         type: 'primary',
         disabled: false,
-        fun: ()=>{this.deleteBatch()},
+        fun: () => { this.deleteBatch() },
         permitArr: [],
       })
-    } 
+    }
     if (this.permissions.technology_document_del) {
       this.table.operator = [{
         text: '鍒犻櫎',
@@ -438,14 +411,14 @@
           key: 'state'
         }
       }]
-    } 
+    }
     this.getBomTypeDbOptions()
   },
-  watch:{
-    multipleSelection(newVal){
-      if(newVal.length==0){
-        this.table.toolbar.forEach(ele=>{
-          if(ele.text=='鎷掔粷' || ele.text=='鎵瑰噯' || ele.text=='鎾ら攢'){
+  watch: {
+    multipleSelection(newVal) {
+      if (newVal.length == 0) {
+        this.table.toolbar.forEach(ele => {
+          if (ele.text == '鎷掔粷' || ele.text == '鎵瑰噯' || ele.text == '鎾ら攢') {
             ele.disabled = true
           }
         })
@@ -478,7 +451,7 @@
         that.multipleSelection.forEach((item) => {
           ids.push(item.id)
         })
-        changeState(ids, event).then(function() {
+        changeState(ids, event).then(function () {
           that.getData()
         })
       } else {
@@ -492,12 +465,12 @@
     },
     // 鏂板 / 淇敼
     addOrUpdateHandle(row) {
-      if(!this.permissions.technology_document_edit && row.id!=null){
+      if (!this.permissions.technology_document_edit && row.id != null) {
         this.$message.error("璇ヨ鑹叉病鏈夋搷浣滄潈闄�")
         return
       }
       this.$router.push({
-        name: 'documentForm',
+        path: '/technology/document/document-form',
         query: { id: row == null ? null : row.id }
       })
     },
@@ -509,7 +482,7 @@
         closeOnClickModal: false,
         type: 'warning'
       })
-        .then(function() {
+        .then(function () {
           return delObj(row.id)
         })
         .then((response) => {
@@ -548,7 +521,7 @@
     handleSelectionChange(val) {
       // 鏍规嵁鐘舵�侊紝绂佺敤琛ㄥご鎸夐挳
       // 绛涢�夊嚭閫変腑璁板綍鐨勭姸鎬�
-      var stateArr = val.map(function(value, index) {
+      var stateArr = val.map(function (value, index) {
         return value.state
       })
       // 閫変腑鐘舵�佹暟缁勫厓绱犲幓閲�
@@ -582,7 +555,7 @@
       var selectVals = []
       if (val != null) {
         selectVals.push(val)
-        var stateArr = selectVals.map(function(value, index) {
+        var stateArr = selectVals.map(function (value, index) {
           return value.state
         })
         // 閫変腑鐘舵�佹暟缁勫厓绱犲幓閲�
diff --git a/src/views/technology/routing/routing-form.vue b/src/views/technology/routing/routing-form.vue
index b8b272c..b2f7ee1 100644
--- a/src/views/technology/routing/routing-form.vue
+++ b/src/views/technology/routing/routing-form.vue
@@ -1,5 +1,5 @@
 <template>
-  <div style="height: 100%">
+  <div style="height: 100%" :key="itemKey">
     <div class="page-header">
       <div class="header-left">
         <a @click="$router.go(-1)"><i class="icon-btn-back"></i></a>
@@ -584,47 +584,49 @@
     '$route.query.id': {
       immediate: true,
       handler(newVal, oldVal) {
-        if (newVal) {
-          this.dataForm.id = this.$route.query.id
-          this.getParamType()
-          this.init()
-          this.itemKey = Math.random()
-          this.getBomTypeDbOptions()
-          this.getWorkCenterOptions()
-          this.getRunTimeCodeDbOptions()
-          this.getLaborClassNo()
-        } else {
-          this.dataForm.id = null
-          this.getParamType()
-          this.init()
-          this.dataForm = {
-            id: null,
-            routingNo: null,
-            name: null,
-            partId: null,
-            partNo: null,
-            partName: null,
-            description: null,
-            state: null,
-            master: false,
-            bomId: null,
-            operations: [],
-            refs: [],
-            bomTypeDb: 'M',
-            alternativeNo: '*',
-            alternativeDesc: null,
-            ifsSync: false,
-            phaseInDate: null,
-            phaseOutDate: null,
-            version: null,
-            wireCore: null
+        if (this.$route.name == '宸ヨ壓璺嚎璇︽儏') {
+          if (newVal) {
+            this.dataForm.id = this.$route.query.id
+            this.getParamType()
+            this.init()
+            this.itemKey = Math.random()
+            this.getBomTypeDbOptions()
+            this.getWorkCenterOptions()
+            this.getRunTimeCodeDbOptions()
+            this.getLaborClassNo()
+          } else {
+            this.dataForm.id = null
+            this.getParamType()
+            this.init()
+            this.dataForm = {
+              id: null,
+              routingNo: null,
+              name: null,
+              partId: null,
+              partNo: null,
+              partName: null,
+              description: null,
+              state: null,
+              master: false,
+              bomId: null,
+              operations: [],
+              refs: [],
+              bomTypeDb: 'M',
+              alternativeNo: '*',
+              alternativeDesc: null,
+              ifsSync: false,
+              phaseInDate: null,
+              phaseOutDate: null,
+              version: null,
+              wireCore: null
+            }
+            this.operationPart = {}
+            this.itemKey = Math.random()
+            this.getBomTypeDbOptions()
+            this.getWorkCenterOptions()
+            this.getRunTimeCodeDbOptions()
+            this.getLaborClassNo()
           }
-          this.operationPart = {}
-          this.itemKey = Math.random()
-          this.getBomTypeDbOptions()
-          this.getWorkCenterOptions()
-          this.getRunTimeCodeDbOptions()
-          this.getLaborClassNo()
         }
       },
     },
@@ -649,6 +651,7 @@
     this.getWorkCenterOptions()
     this.getRunTimeCodeDbOptions()
     this.getLaborClassNo()
+    console.log(4444)
   },
   methods: {
     // 鏌ヨ缁撴瀯绫诲瀷瀛楀吀

--
Gitblit v1.9.3