From d20654ba067e5c0621d4d7d95915cbe47a10fe87 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期四, 08 八月 2024 17:23:48 +0800
Subject: [PATCH] 1.正清和  增加页面缓存处理

---
 src/views/makeModel/processRoute.vue |  336 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 309 insertions(+), 27 deletions(-)

diff --git a/src/views/makeModel/processRoute.vue b/src/views/makeModel/processRoute.vue
index 07931f3..7d37dd8 100644
--- a/src/views/makeModel/processRoute.vue
+++ b/src/views/makeModel/processRoute.vue
@@ -41,11 +41,14 @@
             <el-form-item label="宸ヨ壓鎻忚堪" style=" display: flex;">
               <el-input v-model="form.description" placeholder="璇疯緭鍏�" style="width: 200px" />
             </el-form-item>
-            <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;">
+            <el-form-item v-if="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;">
               <el-input v-model="form.createuser" style="width: 200px" placeholder="璇疯緭鍏�" />
             </el-form-item>
           </div>
-          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+          <div
+            class="bodySearchReset"
+            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+          >
             <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
             <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
           </div>
@@ -102,7 +105,21 @@
             :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
           >
             <template slot-scope="{row}">
-              <div v-if="!row[item.prop]">/</div>
+
+              <div v-if="item.prop==='isrolepart'">
+                <i
+                  v-if="row[item.prop]!==''"
+                  :style="{color:$store.state.settings.theme}"
+                  class="el-icon-share"
+                  @click="routeClick(row)"
+                />
+                <i
+                  v-if="row[item.prop]===''"
+                  style="color:rgb(180 ,181, 185)"
+                  class="el-icon-share"
+                  @click="routeClick(row)"
+                />
+              </div>
               <div v-else-if="item.prop==='enable'">
                 <div v-if="row[item.prop]==='Y'">
                   <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
@@ -113,7 +130,9 @@
                   鍚�
                 </div>
               </div>
+              <div v-else-if="!row[item.prop]">/</div>
               <div v-else>{{ row[item.prop] }}</div>
+
             </template>
           </el-table-column>
 
@@ -196,10 +215,20 @@
                   />
                 </el-tooltip>
                 <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
-                  <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" style="margin-right:15px;" @click="del(row)" />
+                  <i
+                    :style="{color:$store.state.settings.theme}"
+                    class="el-icon-delete"
+                    style="margin-right:15px;"
+                    @click="del(row)"
+                  />
                 </el-tooltip>
                 <el-tooltip v-del-tab-index class="item" effect="dark" content="澶嶅埗" placement="top">
-                  <i :style="{color:$store.state.settings.theme}" class="el-icon-document-copy" style="cursor: pointer;color:#42b983" @click="copy('copy',row)" />
+                  <i
+                    :style="{color:$store.state.settings.theme}"
+                    class="el-icon-document-copy"
+                    style="cursor: pointer;color:#42b983"
+                    @click="copy('copy',row)"
+                  />
                 </el-tooltip>
               </div>
             </template>
@@ -273,7 +302,7 @@
               :popper-append-to-body="false"
               style="width: 220px"
               placeholder="璇烽�夋嫨"
-              @change="wkshopcodeChange"
+              @change="getStepSelectArr"
             >
               <el-option
                 v-for="item in WorkShopArr"
@@ -396,21 +425,158 @@
         </div>
       </span>
     </el-dialog>
+
+    <el-dialog
+      v-el-drag-dialog
+      title="宸ヨ壓璺嚎缁戝畾浜у搧"
+      :visible.sync="routerDialogVisible"
+      width="1200px"
+      :close-on-click-modal="false"
+      top="12vh"
+      class="userDialogVisible"
+      @closed="handleCloseRouter"
+      @close="handleCloseRouter"
+    >
+      <div class="bodyTopFormGroup" style="margin-bottom: 10px">
+        <el-form
+          ref="routerForm"
+          :model="routerForm"
+          label-width="100px"
+          inline
+          style="display: flex;"
+        >
+          <div class="elForm">
+            <el-form-item label="鐗╂枡缂栫爜" style=" display: flex;">
+              <el-input v-model="routerForm.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="鐗╂枡鍚嶇О" style=" display: flex;">
+              <el-input v-model="routerForm.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="鐗╂枡瑙勬牸" style=" display: flex;">
+              <el-input v-model="routerForm.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="瀛樿揣绫诲瀷" style=" display: flex;">
+              <el-cascader
+                ref="cascader"
+                :options="stocktypeArr"
+                filterable
+                :props="defaultProps"
+                @change="val=>cascaderChange(val)"
+              />
+            </el-form-item>
+          </div>
+          <div
+            class="bodySearchReset"
+            :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+          >
+            <el-button v-waves type="primary" icon="el-icon-search" @click="getInventoryFileSelect">鏌ヨ</el-button>
+            <el-button v-waves type="info" icon="el-icon-refresh" @click="resetRouter">閲嶇疆</el-button>
+          </div>
+        </el-form>
+      </div>
+
+      <el-table
+        ref="multipleTableRef"
+        :data="routerTableData"
+        border
+        :row-class-name="tableRowClassName"
+        highlight-current-row
+        height="450"
+        :header-cell-style="this.$headerCellStyle"
+        :cell-style="this.$cellStyle"
+        :row-key="getRowKey"
+        @selection-change="handleSelectionChange"
+      >
+
+        <el-table-column
+          type="selection"
+          width="50"
+          :reserve-selection="true"
+          fixed
+        />
+        <!--        <el-table-column-->
+        <!--          prop="RowNum"-->
+        <!--          width="50"-->
+        <!--          label="搴忓彿"-->
+        <!--        />-->
+        <el-table-column
+          prop="partcode"
+          label="浜у搧缂栫爜"
+        />
+        <el-table-column
+          prop="partname"
+          label="浜у搧鍚嶇О"
+        />
+        <el-table-column
+          prop="partspec"
+          label="瑙勬牸鍨嬪彿"
+        >
+          <template slot-scope="{row}">
+            {{ row.partspec?row.partspec:'/' }}
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="stocktypename"
+          label="瀛樿揣绫诲瀷"
+        >
+          <template slot-scope="{row}">
+            {{ row.stocktypename?row.stocktypename:'/' }}
+          </template>
+        </el-table-column>
+
+      </el-table>
+
+      <!--鍒嗛〉-->
+      <!--      <pagination-->
+      <!--        :total="routerTotal"-->
+      <!--        :page.sync="routerForm.page"-->
+      <!--        :limit.sync="routerForm.rows"-->
+      <!--        align="right"-->
+      <!--        style="margin-top: 10px"-->
+      <!--        layout="total ,prev, pager, next,sizes"-->
+      <!--        popper-class="select_bottom"-->
+      <!--        @pagination="getInventoryFileSelect"-->
+      <!--      />-->
+
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button v-waves @click="routerDialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button
+            v-waves
+            type="primary"
+            :loading="$store.state.app.buttonIsDisabled"
+            :disabled="$store.state.app.buttonIsDisabled"
+            @click="routerDialogVisibleConfirm"
+          >纭� 瀹�</el-button>
+        </div>
+      </span>
+
+    </el-dialog>
+
   </div>
 </template>
 
 <script>
 import Pagination from '@/components/Pagination'
-import { AddUpdateRoute, DeleteRoute, RouteSearch, StepSelect, ViewRoute } from '@/api/makeModel'
+import {
+  AddUpdateRoute,
+  DeleteRoute,
+  InventoryFileSelect, RouteBatchPartSave,
+  RouteSearch, RputeInventorySearch,
+  StepSelect,
+  StockTypeSelect,
+  ViewRoute
+} from '@/api/makeModel'
 import { validateCode } from '@/utils/global'
 import elDragDialog from '@/directive/el-drag-dialog'
 import waves from '@/directive/waves'
 import TableColumnSettings from '@/components/TableColumnSettings'
 import { WorkShopSelect } from '@/api/deviceManager'
 import { getCookie } from '@/utils/auth'
+import arrayToTree from 'array-to-tree'
 
 export default {
-  name: 'GYLX',
+  name: 'ProcessRoute',
   components: {
     Pagination, TableColumnSettings
   },
@@ -506,9 +672,19 @@
         {
           minWidth: 110,
           width: false,
+          prop: 'isrolepart',
+          label: '鍏宠仈浜у搧',
+          id: 9,
+          show: true,
+          fixed: false,
+          sortable: true
+        },
+        {
+          minWidth: 110,
+          width: false,
           prop: 'lm_user',
           label: '鍒涘缓浜哄憳',
-          id: 9,
+          id: 10,
           show: true,
           fixed: false,
           sortable: true
@@ -518,7 +694,7 @@
           width: false,
           prop: 'lm_date',
           label: '鍒涘缓鏃堕棿',
-          id: 10,
+          id: 11,
           show: true,
           fixed: false,
           sortable: true
@@ -565,19 +741,118 @@
         // Data: [
         //   { required: true, message: '璇疯缃伐鑹�', trigger: ['blur', 'change'] }
         // ]
-      }
+      },
+      routerDialogVisible: false,
+      routerForm: {
+        partcode: '', // 鐗╂枡缂栫爜
+        partname: '', // 鐗╂枡鍚嶇О
+        partspec: '', // 鐗╂枡瑙勬牸
+        stocktypecode: '', // 瀛樿揣绫诲瀷缂栫爜
+        materialtypecode: '', // 鐗╂枡绫诲瀷缂栫爜
+        storehousecode: '' // 鎵�灞炰粨搴撶紪鐮�
+        // prop: 'lm_date', // 鎺掑簭瀛楁
+        // order: 'desc', // 鎺掑簭瀛楁
+        // page: 1, // 绗嚑椤�
+        // rows: 20 // 姣忛〉澶氬皯鏉�
+      },
+      routerTableData: [],
+      routerTotal: 10,
+      stocktypeArr: [],
+      defaultProps: {
+        checkStrictly: true,
+        expandTrigger: 'hover',
+        value: 'code',
+        label: 'name'
+      },
+      multipleSelection: [],
+      selectedRouterCode: '',
+      selectedisrolepart: ''
 
     }
   },
   created() {
     this.getRouteSearch()
     this.getWorkShopSelect()
+
+    // this.getInventoryFileSelect()
+    this.getStockTypeSelect()
   },
   mounted() {
     window.addEventListener('resize', this.getHeight)
     this.getHeight()
   },
   methods: {
+    handleCloseRouter() {
+      this.$refs.multipleTableRef.clearSelection()
+    },
+    async getInventoryFileSelect() {
+      const res = await RputeInventorySearch(this.routerForm)
+      this.routerTableData = res.data
+      this.routerTotal = res.count
+
+      this.$nextTick(() => {
+        this.routerTableData.forEach((item, index) => {
+          if (this.selectedisrolepart.split(',').includes(item.partcode)) {
+            this.$refs.multipleTableRef.toggleRowSelection(this.routerTableData[index], true)
+          }
+        })
+      })
+    },
+    async getStockTypeSelect() {
+      const { data: res } = await StockTypeSelect()
+      this.stocktypeArr = arrayToTree(res, {
+        parentProperty: 'iparent_id',
+        customID: 'code',
+        childrenProperty: 'children'
+      })
+    },
+    resetRouter() {
+      this.routerForm.partcode = ''
+      this.routerForm.partname = ''
+      this.routerForm.partspec = ''
+      this.routerForm.stocktypecode = ''
+      this.routerForm.materialtypecode = ''
+      this.routerForm.storehousecode = ''
+      this.$refs.cascader.checkedValue = ''
+      this.getInventoryFileSelect()
+    },
+    cascaderChange(val) {
+      this.routerForm.stocktypecode = val[val.length - 1]
+    },
+    routeClick(row) {
+      this.selectedRouterCode = row.code
+      this.selectedisrolepart = row.isrolepart
+      this.routerDialogVisible = true
+
+      this.getInventoryFileSelect()
+    },
+    getRowKey(row) {
+      return row.partcode
+    },
+    handleSelectionChange(val) {
+      this.multipleSelection = val
+    },
+    routerDialogVisibleCancel() {
+      this.routerDialogVisible = false
+    },
+    async   routerDialogVisibleConfirm() {
+      const data = {
+        'routecode': this.selectedRouterCode,
+        'routepart': this.multipleSelection.length > 0 ? this.multipleSelection.map(i => i.partcode).join(',') : ''
+      }
+
+      this.$store.state.app.buttonIsDisabled = true
+      const res = await RouteBatchPartSave(data)
+      if (res.code === '200') {
+        this.routerDialogVisible = false
+        this.$message.success('缁戝畾鎴愬姛锛�')
+        await this.getRouteSearch()
+        this.$store.state.app.buttonIsDisabled = false
+      } else {
+        this.$message.error('缁戝畾澶辫触锛�')
+      }
+    },
+
     // 鑾峰彇鎵�灞炶溅闂翠笅鎷�
     async getWorkShopSelect() {
       const { data: res } = await WorkShopSelect()
@@ -606,13 +881,11 @@
         return (res.value.toLowerCase().indexOf(queryString.toLowerCase()) !== -1)
       }
     },
-    wkshopcodeChange() {
-      this.getStepSelectArr()
-    },
     // 宸ヨ壓璁剧疆 涓嬫媺鑾峰彇鎵�鏈�
     async getStepSelectArr() {
       const { data: res } = await StepSelect({ WorkShop: this.dialogForm.wkshopcode })
       this.routeArr = res
+      console.log('鎵ц浜嗭紒')
     },
     // 澶勭悊涓嬫媺閫夋嫨
     handleSelect(item, tag) {
@@ -843,9 +1116,9 @@
       this.operation = operation
       this.dialogVisible = true
 
-      if (this.$store.state.settings.orgType === 'W') {
-        this.getStepSelectArr()
-      }
+      // if (this.$store.state.settings.orgType === 'W') {
+      this.getStepSelectArr()
+      // }
     },
     // 宸ヨ壓璺嚎棰勮
     async edit(operation, row) {
@@ -895,23 +1168,32 @@
       this.operation = operation
       this.dialogVisible = true
 
-      if (this.$store.state.settings.orgType === 'W') {
-        await this.getStepSelectArr()
-      }
+      // if (this.$store.state.settings.orgType === 'W') {
+
+      // }
 
       const { data: res } = await ViewRoute({ routecode: row.code })
       // 寰呮敼
       this.dynamicTags = []
       this.routeSelectedArr = []
+
+      this.dialogForm.code = res[0].code
+      this.dialogForm.name = res[0].name
+      this.dialogForm.enable = res[0].enable
+      this.dialogForm.description = res[0].description
+      this.dialogForm.wkshopcode = res[0].wkshopcode
+      await this.getStepSelectArr()
+
       this.$nextTick(() => {
-        this.dialogForm.code = res[0].code
-        this.dialogForm.name = res[0].name
-        this.dialogForm.enable = res[0].enable
-        this.dialogForm.description = res[0].description
-        this.dialogForm.wkshopcode = res[0].wkshopcode
         res[0].Data.forEach((item, index) => {
           this.dynamicTags.push(
-            { seq: item.seq, stepname: item.stepname, stepcode: item.stepcode, editDisabled: true, effect: index === res[0].Data.length - 1 ? 'dark' : 'light' }
+            {
+              seq: item.seq,
+              stepname: item.stepname,
+              stepcode: item.stepcode,
+              editDisabled: true,
+              effect: index === res[0].Data.length - 1 ? 'dark' : 'light'
+            }
           )
           this.routeSelectedArr.push({
             stepcode: item.stepcode,
@@ -931,7 +1213,7 @@
       this.dialogForm.name = ''
       this.dialogForm.enable = 'Y'
       this.dialogForm.description = ''
-      this.dialogForm.wkshopcode = this.$store.state.settings.orgType !== 'W' ? '' : getCookie('stu_torgcode'), // 鎵�灞炶溅闂�
+      this.dialogForm.wkshopcode = this.$store.state.settings.orgType !== 'W' ? '' : getCookie('stu_torgcode') // 鎵�灞炶溅闂�
       this.dialogForm.Data = []
 
       this.dynamicTags = [

--
Gitblit v1.9.3