From f8c92594757c7a3db7188bb384f4fd2fb841604a Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 29 六月 2022 08:43:54 +0800
Subject: [PATCH] 1.完成存货档案2.修改以前bug

---
 src/views/zzmx/chda.vue              |  310 ++++++++++++++++++++++++++++---------------
 public/static/theme/radio-button.css |    2 
 src/api/zzmx.js                      |   31 ++++
 src/views/jcsz/wldw.vue              |    8 
 src/views/jcsz/yhqd.vue              |   10 
 src/views/jcsz/jsqd.vue              |   14 +
 src/views/sbgl/sbqd.vue              |   27 ++-
 public/static/theme/loading.css      |    2 
 8 files changed, 266 insertions(+), 138 deletions(-)

diff --git a/public/static/theme/loading.css b/public/static/theme/loading.css
index 042f7ce..734e892 100644
--- a/public/static/theme/loading.css
+++ b/public/static/theme/loading.css
@@ -1 +1 @@
-.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#42B983;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#42B983;stroke-linecap:round}.el-loading-spinner i{color:#42B983}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}
\ No newline at end of file
+.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:rgba(255,255,255,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-loading-spinner .el-loading-text{color:#42B983;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#42B983;stroke-linecap:round}.el-loading-spinner i{color:#42B983}.el-loading-fade-enter,.el-loading-fade-leave-active{opacity:0}@-webkit-keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes loading-rotate{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}100%{stroke-dasharray:90,150;stroke-dashoffset:-120px}}
diff --git a/public/static/theme/radio-button.css b/public/static/theme/radio-button.css
index ea1bb9b..ac4640c 100644
--- a/public/static/theme/radio-button.css
+++ b/public/static/theme/radio-button.css
@@ -1 +1 @@
-@charset "UTF-8";.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#FFF;border:1px solid #DCDFE6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#42B983}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#FFF;background-color:#42B983;border-color:#42B983;-webkit-box-shadow:-1px 0 0 0 #42B983;box-shadow:-1px 0 0 0 #42B983}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#F2F6FC}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #42B983;box-shadow:0 0 2px 2px #42B983}
\ No newline at end of file
+@charset "UTF-8";.el-radio-button,.el-radio-button__inner{display:inline-block;position:relative;outline:0}.el-radio-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;background:#FFF;border:1px solid #DCDFE6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#42B983}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #DCDFE6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#FFF;background-color:#42B983;border-color:#42B983;-webkit-box-shadow:-1px 0 0 0 #42B983;box-shadow:-1px 0 0 0 #42B983}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#C0C4CC;cursor:not-allowed;background-image:none;background-color:#FFF;border-color:#EBEEF5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#F2F6FC}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #42B983;box-shadow:0 0 2px 2px #42B983}
diff --git a/src/api/zzmx.js b/src/api/zzmx.js
index 525cb93..712e51e 100644
--- a/src/api/zzmx.js
+++ b/src/api/zzmx.js
@@ -237,3 +237,34 @@
     params: data
   })
 }
+// 鑺傛媿宸ヤ环鎻愪氦
+export function SaveBeatRate(data) {
+  return request({
+    url: 'BasicSetting/SaveBeatRate',
+    method: 'post',
+    data
+  })
+}
+// 鑺傛媿宸ヤ环鍒犻櫎
+export function DeleteBeatRate(data) {
+  return request({
+    url: 'BasicSetting/DeleteBeatRate',
+    method: 'post',
+    params: data
+  })
+}
+
+// 瀛樿揣妗f浣跨敤鍗曚綅涓嬫媺
+export function UomSelect() {
+  return request({
+    url: 'BasicSetting/UomSelect',
+    method: 'get'
+  })
+}
+// 宸ヨ壓璺嚎宸ヨ壓璁剧疆涓嬫媺
+export function RouteSelect() {
+  return request({
+    url: 'BasicSetting/RouteSelect',
+    method: 'get'
+  })
+}
diff --git a/src/views/jcsz/jsqd.vue b/src/views/jcsz/jsqd.vue
index a3325dc..a828cbb 100644
--- a/src/views/jcsz/jsqd.vue
+++ b/src/views/jcsz/jsqd.vue
@@ -193,7 +193,7 @@
     </el-dialog>
     <!--    璁剧疆鎸夐挳瀵硅瘽妗�-->
     <el-dialog
-      title="瑙掕壊绫诲瀷"
+      title="璁剧疆"
       :visible.sync="settingDialogVisible"
       width="50%"
       top="15vh"
@@ -207,12 +207,14 @@
       <el-table
         :data="RoleTypeCodeArr"
         border
+        height="400"
         highlight-current-row
-        :style="{width: 100+'%',height:tableHeight-300+'px'}"
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
         @sort-change="sortChangeOfSetting"
       >
+        <!--        :style="{width: 100+'%',height:tableHeight-300+'px'}"-->
+
         <!--        <el-table-column-->
         <!--          type="selection"-->
         <!--          width="50"-->
@@ -348,7 +350,7 @@
         :data="dialogFormUserTable"
         border
         highlight-current-row
-        :style="{width: 100+'%',height:tableHeight-300+'px'}"
+        height="300"
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
         :row-key="getRowKey"
@@ -804,7 +806,9 @@
     },
     // 娣诲姞鎸夐挳
     addSetting() {
-      const data = { roletype_code: '', roletype_name: '', isVisible: 1 }
+      let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+      number = number === 0 ? Math.random() * Math.random() : number
+      const data = { roletype_code: '', roletype_name: '', isVisible: 1, number: number }
       this.RoleTypeCodeArr.unshift(data)
     },
     // 鍒犻櫎鎸夐挳
@@ -845,7 +849,7 @@
     // 璁剧疆琛ㄥ崟鍙栨秷浜嬩欢
     formSettingCancel(row) {
       this.RoleTypeCodeArr.forEach((item, index) => {
-        if (item.isVisible === 1 && item.roletype_code === row.roletype_code) {
+        if (item.isVisible === 1 && item.number === row.number) {
           this.RoleTypeCodeArr.splice(index, 1)
         }
       })
diff --git a/src/views/jcsz/wldw.vue b/src/views/jcsz/wldw.vue
index 269afb5..4084e51 100644
--- a/src/views/jcsz/wldw.vue
+++ b/src/views/jcsz/wldw.vue
@@ -95,7 +95,7 @@
               width="120"
             >
               <template slot-scope="{row}">
-                <div v-if="row.btype==='WX'">澶栨枩渚涙柟</div>
+                <div v-if="row.btype==='WX'">澶栧崗渚涙柟</div>
                 <div v-else>/</div>
               </template>
             </el-table-column>
@@ -170,13 +170,13 @@
       @close="handleClose"
     >
       <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
-        <el-form-item label="渚涙柟缂栫爜" prop="unitcode">
+        <el-form-item label="鍗曚綅缂栫爜" prop="unitcode">
           <el-input v-model="dialogForm.unitcode" :disabled="operation!=='add'" style="width: 220px" />
         </el-form-item>
-        <el-form-item label="渚涙柟鍚嶇О" prop="unitname">
+        <el-form-item label="鍗曚綅鍚嶇О" prop="unitname">
           <el-input v-model="dialogForm.unitname" style="width: 220px" />
         </el-form-item>
-        <el-form-item style="width: 100%" label="渚涙柟灞炴��" prop="checkboxIsSelected">
+        <el-form-item style="width: 100%" label="鍗曚綅灞炴��" prop="checkboxIsSelected">
           <el-checkbox-group v-model="dialogForm.checkboxIsSelected" @change="checkboxGroupChange">
             <el-checkbox key="WG" value="WG" label="澶栬喘渚涙柟" />
             <el-checkbox key="WX" value="WX" label="澶栧崗渚涙柟" />
diff --git a/src/views/jcsz/yhqd.vue b/src/views/jcsz/yhqd.vue
index 4af174c..a4ac8ea 100644
--- a/src/views/jcsz/yhqd.vue
+++ b/src/views/jcsz/yhqd.vue
@@ -744,12 +744,12 @@
             this.dialogFormRoles.roleTreeSelectedArr.forEach((it, ind) => {
               if (it.Code === checkedFatherCode) {
                 console.log(it.Code, 9)
-                console.log(this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1), 7)
+                this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1)
               }
             })
             this.dialogFormRoles.rolesArrSelectedArr.forEach((i, i1) => {
               if (i === checkedFatherCode) {
-                console.log(this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1), 8)
+                this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1)
               }
             })
           }
@@ -784,7 +784,7 @@
         } else { // 褰撶埗绫荤敱鍗婂彾鍙樹负鍏ㄥ彾鏃�
           this.dialogFormRoles.roleTreeSelectedArr.forEach((i1, ind) => {
             if (i1.Code === checkedFatherCode) { // i1娌℃壘瀵�
-              console.log(i1, this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1), 8)
+              this.dialogFormRoles.roleTreeSelectedArr.splice(ind, 1)
               temp.forEach(it => {
                 this.dialogFormRoles.roleTreeSelectedArr.push({
                   Code: it.code,
@@ -847,12 +847,12 @@
             console.log(this.dialogFormRoles.rolesArrSelectedArr, 78)
             this.dialogFormRoles.rolesArrSelectedArr.forEach((i, i1) => {
               if (i === it.code) {
-                console.log(this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1), 6664)
+                this.dialogFormRoles.rolesArrSelectedArr.splice(i1, 1)
               }
             })
             this.dialogFormRoles.roleTreeSelectedArr.forEach((i, i1) => {
               if (i.Code === it.code) {
-                console.log(i1, this.dialogFormRoles.roleTreeSelectedArr.splice(i1, 1), 6665)
+                this.dialogFormRoles.roleTreeSelectedArr.splice(i1, 1)
               }
             })
           }
diff --git a/src/views/sbgl/sbqd.vue b/src/views/sbgl/sbqd.vue
index ad2373f..22f286a 100644
--- a/src/views/sbgl/sbqd.vue
+++ b/src/views/sbgl/sbqd.vue
@@ -224,7 +224,7 @@
         <el-form-item label="璁惧缁�" prop="devicegroupcode">
           <el-select v-model="dialogForm.devicegroupcode" :popper-append-to-body="false" :disabled="dialogForm.devicetypecode===''" style="width: 220px" placeholder="璇烽�夋嫨">
             <el-option
-              v-for="item in DeviceGroupArr"
+              v-for="item in DeviceGroupDialogArr"
               :key="item.code"
               :label="item.name"
               :value="item.code"
@@ -289,6 +289,7 @@
       :visible.sync="DeviceTypeDialogVisible"
       width="50%"
       top="15vh"
+
       class="DeviceTypeDialogVisible"
       @close="handleCloseDeviceType"
     >
@@ -299,8 +300,8 @@
       <el-table
         :data="DeviceTypeArray"
         border
+        height="400"
         highlight-current-row
-        :style="{width: 100+'%',height:tableHeight-300+'px'}"
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
         @sort-change="sortChangeOfDeviceType"
@@ -385,7 +386,7 @@
         :data="DeviceGroupArray"
         border
         highlight-current-row
-        :style="{width: 100+'%',height:tableHeight-300+'px'}"
+        height="400"
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
         @sort-change="sortChangeOfDeviceGroup"
@@ -547,6 +548,7 @@
         status: '',
         ratio: ''
       },
+      DeviceGroupDialogArr: [], // 璁惧缁勬暟缁�
       WorkLineArr: [], // 鎵�灞炰骇绾挎暟缁�
       operation: '',
       dialogFormRules: {
@@ -626,7 +628,7 @@
     },
     // 璁惧绫诲瀷鏀瑰彉鏃�
     async deviceTypeChange(val) {
-      this.form.DeviceType = val
+      this.form.DeviceGroup = ''
       const { data: res } = await DeviceTypeSelectGroup({ eqptypecode: val })
       this.DeviceGroupArr = res
     },
@@ -670,10 +672,11 @@
       this.dialogVisible = true
     },
     // 淇敼鎸夐挳
-    edit(operation, row) {
+    async edit(operation, row) {
       this.operation = operation
       this.dialogVisible = true
-      // console.log(row)
+      await this.devicetypecodeChange(row.eqptype_code)
+      await this.workshopcodeChange(row.wksp_code)
       this.$nextTick(() => {
         this.dialogForm.id = row.id
         this.dialogForm.devicecode = row.code
@@ -727,7 +730,7 @@
     // 瀵硅瘽妗嗚澶囩被鍨嬩笅鎷夐�夋嫨鏀瑰彉鏃�
     async devicetypecodeChange(val) {
       const { data: res } = await DeviceTypeSelectGroup({ eqptypecode: val })
-      this.DeviceGroupArr = res
+      this.DeviceGroupDialogArr = res
       this.dialogForm.devicegroupcode = ''
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -809,7 +812,8 @@
     },
     // 鏂板鎸夐挳
     addDeviceType() {
-      this.DeviceTypeArray.unshift({ code: '', name: '', group: '', remark: '', isVisible: 1 })
+      const number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+      this.DeviceTypeArray.unshift({ code: '', name: '', group: '', remark: '', isVisible: 1, number: number })
     },
     // 鍒犻櫎
     DeviceTypeDel(row) {
@@ -854,7 +858,7 @@
     // 鍙栨秷
     DeviceTypeCancel(row) {
       this.DeviceTypeArray.forEach((item, index) => {
-        if (item.isVisible === 1 && item.code === row.code) {
+        if (item.isVisible === 1 && item.number === row.number) {
           this.DeviceTypeArray.splice(index, 1)
         }
       })
@@ -884,7 +888,8 @@
     },
     // 鏂板
     addDeviceGroup() {
-      this.DeviceGroupArray.unshift({ code: '', name: '', eqptype_code: '', eqptype_name: '', remark: '', isVisible: 1 })
+      const number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+      this.DeviceGroupArray.unshift({ code: '', name: '', eqptype_code: '', eqptype_name: '', remark: '', isVisible: 1, number: number })
     },
     // 鎺掑簭
     sortChangeOfDeviceGroup({ column, prop, order }) {
@@ -958,7 +963,7 @@
     // 鍙栨秷鎸夐挳
     DeviceGroupCancel(row) {
       this.DeviceGroupArray.forEach((item, index) => {
-        if (item.isVisible === 1 && item.code === row.code) {
+        if (item.isVisible === 1 && item.number === row.number) {
           this.DeviceGroupArray.splice(index, 1)
         }
       })
diff --git a/src/views/zzmx/chda.vue b/src/views/zzmx/chda.vue
index efadb39..8d917a7 100644
--- a/src/views/zzmx/chda.vue
+++ b/src/views/zzmx/chda.vue
@@ -25,6 +25,7 @@
                 :popper-append-to-body="false"
                 style="width: 200px"
                 placeholder="璇烽�夋嫨"
+                @change="val=>stocktypecodeChange(val,'form')"
               >
                 <el-option
                   v-for="item in stocktypeArr"
@@ -37,6 +38,7 @@
             <el-form-item label="鐗╂枡绫诲瀷" style=" display: flex;">
               <el-select
                 v-model="form.materialtypecode"
+                :disabled="form.stocktypecode===''"
                 :popper-append-to-body="false"
                 style="width: 200px"
                 placeholder="璇烽�夋嫨"
@@ -83,7 +85,7 @@
           :data="tableData"
           border
           :height="tableHeight"
-          :style="{width: 100+'%',height:tableHeight+'px',}"
+          width="100%"
           highlight-current-row
           :header-cell-style="this.$headerCellStyle"
           :cell-style="this.$cellStyle"
@@ -100,23 +102,27 @@
           />
           <el-table-column
             prop="partcode"
+            show-overflow-tooltip
             label="鐗╂枡缂栫爜"
             sortable="custom"
           />
           <el-table-column
             prop="partname"
+            show-overflow-tooltip
             label="鐗╂枡鍚嶇О"
             sortable="custom"
           />
           <el-table-column
             prop="partspec"
             label="鐗╂枡瑙勬牸"
+            show-overflow-tooltip
+            width="110"
             sortable="custom"
           />
           <el-table-column
             prop="uom_name"
             label="鍗曚綅"
-            width="120"
+            width="75"
             sortable="custom"
           />
           <el-table-column
@@ -132,24 +138,26 @@
           <el-table-column
             prop="stck_name"
             label="浠撳簱鍚嶇О"
+            show-overflow-tooltip
             sortable="custom"
           />
           <el-table-column
             prop="maxqty"
             label="搴撳瓨涓婇檺"
-            width="120"
+            width="110"
             sortable="custom"
           />
           <el-table-column
             prop="minqty"
             label="搴撳瓨涓嬮檺"
-            width="120"
+            width="110"
             sortable="custom"
           />
           <el-table-column
             prop="lm_user"
             label="鍒涘缓浜哄憳"
             sortable="custom"
+            width="110"
           />
           <el-table-column
             prop="lm_date"
@@ -162,10 +170,18 @@
             width="80"
           >
             <template slot-scope="{row}">
-              <div class="operationClass" style="justify-content: center;width: 100%">
+              <div class="operationClass">
                 <i class="el-icon-share" @click="routeClick(row)" />
-
-                <!--                <el-button type="text" @click="edit('edit',row)">淇敼</el-button>-->
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="鎿嶄綔"
+          >
+            <template slot-scope="{row}">
+              <div class="operationClass">
+                <el-button type="text" @click="edit('edit',row)">淇敼</el-button>
+                <el-button type="text" @click="del(row)">鍒犻櫎</el-button>
               </div>
             </template>
           </el-table-column>
@@ -183,6 +199,7 @@
         @pagination="getInventoryFileSelect"
       />
     </div>
+
     <!--鏂板缂栬緫瀵硅瘽妗�-->
     <el-dialog
       :title="operation==='add'?'鏂板':'淇敼'"
@@ -193,18 +210,33 @@
       @close="handleClose"
     >
       <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
-        <el-form-item label="鐗╂枡缂栫爜" prop="OrgCode">
-          <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 220px" />
+        <el-form-item label="鐗╂枡缂栫爜" prop="materialcode">
+          <el-input v-model="dialogForm.materialcode" :disabled="operation!=='add'" style="width: 220px" />
         </el-form-item>
-        <el-form-item label="鐗╂枡鍚嶇О" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+        <el-form-item label="鐗╂枡鍚嶇О" prop="materialname">
+          <el-input v-model="dialogForm.materialname" style="width: 220px" />
         </el-form-item>
-        <el-form-item label="鐗╂枡瑙勬牸" prop="OrgName">
-          <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+        <el-form-item label="鐗╂枡瑙勬牸" prop="materialspec">
+          <el-input v-model="dialogForm.materialspec" style="width: 220px" />
         </el-form-item>
-        <el-form-item label="浣跨敤鍗曚綅">
+        <el-form-item label="浣跨敤鍗曚綅" prop="uomcode">
           <el-select
-            v-model="dialogForm.stockcode"
+            v-model="dialogForm.uomcode"
+            :popper-append-to-body="false"
+            style="width: 220px"
+            placeholder="璇烽�夋嫨"
+          >
+            <el-option
+              v-for="item in uomArr"
+              :key="item.code"
+              :label="item.name"
+              :value="item.code"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="鎵�灞炰粨搴�" prop="warehousecode">
+          <el-select
+            v-model="dialogForm.warehousecode"
             :popper-append-to-body="false"
             style="width: 220px"
             placeholder="璇烽�夋嫨"
@@ -217,27 +249,13 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="鎵�灞炰粨搴�">
+        <el-form-item label="瀛樿揣绫诲瀷" prop="stocktypecode">
           <el-select
-            v-model="dialogForm.stockcode"
+            v-model="dialogForm.stocktypecode"
             :popper-append-to-body="false"
             style="width: 220px"
             placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in storehouseArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="瀛樿揣绫诲瀷">
-          <el-select
-            v-model="dialogForm.stockcode"
-            :popper-append-to-body="false"
-            style="width: 220px"
-            placeholder="璇烽�夋嫨"
+            @change="val=>stocktypecodeChange(val,'dialogForm')"
           >
             <el-option
               v-for="item in stocktypeArr"
@@ -247,26 +265,27 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="鐗╂枡绫诲瀷">
+        <el-form-item label="鐗╂枡绫诲瀷" prop="materialtypecode">
           <el-select
-            v-model="dialogForm.stockcode"
+            v-model="dialogForm.materialtypecode"
             :popper-append-to-body="false"
             style="width: 220px"
+            :disabled="dialogForm.stocktypecode===''"
             placeholder="璇烽�夋嫨"
           >
             <el-option
-              v-for="item in materialtypeArr"
+              v-for="item in materialtypeDialogArr"
               :key="item.code"
               :label="item.name"
               :value="item.code"
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="鏈�灏忓簱瀛�" prop="SupUnit">
-          <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+        <el-form-item label="鏈�灏忓簱瀛�" prop="minstockqty">
+          <el-input v-model="dialogForm.minstockqty" style="width: 220px" />
         </el-form-item>
-        <el-form-item label="鏈�澶у簱瀛�" prop="SupUnit">
-          <el-input v-model="dialogForm.OrgName" style="width: 220px" />
+        <el-form-item label="鏈�澶у簱瀛�" prop="maxstockqty">
+          <el-input v-model="dialogForm.maxstockqty" style="width: 220px" />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -294,7 +313,7 @@
         :data="officeTableData"
         border
         highlight-current-row
-        :style="{width: 100+'%',height:tableHeight-300+'px'}"
+        height="400"
         :header-cell-style="this.$headerCellStyle"
         :cell-style="this.$cellStyle"
         @sort-change="sortChangeOfOffice"
@@ -344,8 +363,8 @@
           label="鍙栨暣瑙勫垯"
           sortable="custom"
         >
+
           <template slot-scope="{row}">
-            <!--            <el-input v-if="row.isVisible===1" v-model="row.r_ule" placeholder="璇疯緭鍏�" />-->
             <el-select
               v-if="row.isVisible===1"
               v-model="row.r_ule"
@@ -361,7 +380,9 @@
                 :value="item.code"
               />
             </el-select>
-            <div v-else> {{ row.r_ule }}</div>
+            <div v-else-if="row.isVisible===0&&row.r_ule==='RU'">鍚戜笂鍙栨暣</div>
+            <div v-else-if="row.isVisible===0&&row.r_ule==='RD'">鍚戜笅鍙栨暣</div>
+            <div v-else-if="row.isVisible===0&&row.r_ule==='RO'">鍥涜垗浜斿叆</div>
           </template>
         </el-table-column>
 
@@ -440,8 +461,7 @@
         <el-table
           :data="projectTableData"
           border
-          :height="tableHeight"
-          :style="{width: 100+'%',height:tableHeight+'px',}"
+          height="400"
           highlight-current-row
           :header-cell-style="this.$headerCellStyle"
           :cell-style="this.$cellStyle"
@@ -488,7 +508,15 @@
 } from '@/api/jcsz'
 import { getCookie } from '@/utils/auth'
 import { WareHouseSelect } from '@/api/wlgl'
-import { InventoryFileSelect, StockTypeSelect, UomAdd, UomSearch } from '@/api/zzmx'
+import {
+  AddUpdateInventoryFile, DeleteInventoryFile, InventoryFileAssociationRoute,
+  InventoryFileSelect, SaveInventoryFile,
+  StockTypeSelect,
+  StockTypeSelectMaterialType,
+  UomAdd,
+  UomDelete,
+  UomSearch, UomSelect
+} from '@/api/zzmx'
 import $ from 'jquery'
 
 const SER_HZ = /^[\u4e00-\u9fa5]+$/
@@ -500,20 +528,13 @@
   data() {
     const validateName = (rule, value, callback) => {
       if (!value) {
-        return callback(new Error('璇疯緭鍏ョ紪鐮�'))
+        return callback(new Error('璇疯緭鍏ョ墿鏂欑紪鐮�'))
       } else {
         if (SER_HZ.test(value)) {
           return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�'))
         } else {
           callback()
         }
-      }
-    }
-    const validateTypeCode = (rule, value, callback) => {
-      if (!value) {
-        return callback(new Error('璇烽�夋嫨涓婄骇'))
-      } else {
-        callback()
       }
     }
     return {
@@ -538,24 +559,50 @@
       tableData: [],
       dialogVisible: false,
       dialogForm: {
-        OrgType: '',
-        OrgCode: '',
-        OrgName: ''
+        id: '', // 鐗╂枡id
+        materialcode: '', // 鐗╂枡缂栫爜
+        materialname: '', // 鐗╂枡鍚嶇О
+        materialspec: '', // 鐗╂枡瑙勬牸
+        uomcode: '', // 鍗曚綅缂栫爜
+        warehousecode: '', // 鎵�灞炰粨搴撶紪鐮�
+        stocktypecode: '', // 瀛樿揣绫诲瀷缂栫爜
+        materialtypecode: '', // 鐗╂枡绫诲瀷缂栫爜
+        minstockqty: '', // 鏈�灏忓簱瀛�
+        maxstockqty: '', // 鏈�澶у簱瀛�
+        OperType: '' // 鎿嶄綔绫诲瀷
       },
+      uomArr: [], // 鍗曚綅鏁扮粍缂栫爜
+      materialtypeDialogArr: [], // 瀵硅瘽妗嗕腑鐗╂枡绫诲瀷鏁扮粍
       operation: '',
       dialogFormRules: {
-        OrgType: [
-          { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
-        ],
-        OrgCode: [
+        materialcode: [
           { required: true, validator: validateName, trigger: ['blur', 'change'] }
         ],
-        OrgName: [
-          { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+        materialname: [
+          { required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉�', trigger: ['blur', 'change'] }
         ],
-        SupUnit: [
-          { required: true, validator: validateTypeCode, trigger: ['blur', 'change'] }
+        materialspec: [
+          { required: true, message: '璇疯緭鍏ョ墿鏂欒鏍�', trigger: ['blur', 'change'] }
+        ],
+        uomcode: [
+          { required: true, message: '璇烽�夋嫨浣跨敤鍗曚綅', trigger: ['blur', 'change'] }
+        ],
+        warehousecode: [
+          { required: true, message: '璇烽�夋嫨鎵�灞炰粨搴�', trigger: ['blur', 'change'] }
+        ],
+        stocktypecode: [
+          { required: true, message: '璇烽�夋嫨瀛樿揣绫诲瀷', trigger: ['blur', 'change'] }
+        ],
+        materialtypecode: [
+          { required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨�', trigger: ['blur', 'change'] }
+        ],
+        minstockqty: [
+          { required: true, message: '璇疯緭鍏ユ渶灏忓簱瀛�', trigger: ['blur', 'change'] }
+        ],
+        maxstockqty: [
+          { required: true, message: '璇疯緭鍏ユ渶澶у簱瀛�', trigger: ['blur', 'change'] }
         ]
+
       },
       officeDialogVisible: false,
       officeForm: {
@@ -599,9 +646,24 @@
     async getStockTypeSelect() {
       const { data: res } = await StockTypeSelect()
       this.stocktypeArr = res
-    }, async getWareHouseSelect() {
+    },
+    async getWareHouseSelect() {
       const { data: res } = await WareHouseSelect()
       this.storehouseArr = res
+    },
+    async getuomSelect() {
+      const { data: res } = await UomSelect()
+      this.uomArr = res
+    },
+    async stocktypecodeChange(val, param) {
+      const { data: res } = await StockTypeSelectMaterialType({ stocktypecode: val })
+      if (param === 'form') {
+        this.form.materialtypecode = ''
+        this.materialtypeArr = res
+      } else if (param === 'dialogForm') {
+        this.dialogForm.materialtypecode = ''
+        this.materialtypeDialogArr = res
+      }
     },
     // 鎺掑簭鏀瑰彉鏃�
     sortChange({ column, prop, order }) {
@@ -637,26 +699,34 @@
     add(operation) {
       this.operation = operation
       this.dialogVisible = true
+      this.getuomSelect()
     },
     // 淇敼鎸夐挳
-    edit(operation, row) {
+    async   edit(operation, row) {
       this.operation = operation
       this.dialogVisible = true
-
+      await this.stocktypecodeChange(row.stocktypecode, 'dialogForm')
       this.$nextTick(() => {
-        this.dialogForm.OrgCode = row.org_code
-        this.dialogForm.OrgName = row.org_name
-        this.dialogForm.SupUnit = row.parent_id
+        this.dialogForm.id = row.id
+        this.dialogForm.materialcode = row.partcode
+        this.dialogForm.materialname = row.partname
+        this.dialogForm.materialspec = row.partspec
+        this.dialogForm.uomcode = row.uom_code
+        this.dialogForm.warehousecode = row.stck_code
+        this.dialogForm.stocktypecode = row.stocktypecode
+        this.dialogForm.materialtypecode = row.materialtypecode
+        this.dialogForm.minstockqty = row.maxqty
+        this.dialogForm.maxstockqty = row.minqty
       })
     },
     // 鍒犻櫎鎸夐挳
-    async del(id) {
+    async del(row) {
       this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        DeleteOrganization({ orgid: id }).then(res => {
+        DeleteInventoryFile({ materialcode: row.partcode }).then(res => {
           if (res.code === '200') {
             this.$message.success('鍒犻櫎鎴愬姛!')
             this.getInventoryFileSelect()
@@ -668,10 +738,15 @@
     },
     // 瀵硅瘽妗嗗叧闂簨浠�
     handleClose() {
-      this.dialogForm.OrgType = ''
-      this.dialogForm.OrgCode = ''
-      this.dialogForm.OrgName = ''
-      this.dialogForm.SupUnit = ''
+      this.dialogForm.materialcode = ''
+      this.dialogForm.materialname = ''
+      this.dialogForm.materialspec = ''
+      this.dialogForm.uomcode = ''
+      this.dialogForm.warehousecode = ''
+      this.dialogForm.stocktypecode = ''
+      this.dialogForm.materialtypecode = ''
+      this.dialogForm.minstockqty = ''
+      this.dialogForm.maxstockqty = ''
       this.$refs.dialogForm.clearValidate()
     },
     // 瀵硅瘽妗嗗彇娑�
@@ -683,12 +758,19 @@
       this.$refs.dialogForm.validate(valid => {
         if (valid) {
           const data = {
-            OrganCode: this.dialogForm.OrgCode,
-            OrganName: this.dialogForm.OrgName,
-            OperType: this.operation === 'add' ? 'Add' : 'Update',
-            Operator: getCookie('admin')
+            id: this.dialogForm.id,
+            materialcode: this.dialogForm.materialcode,
+            materialname: this.dialogForm.materialname,
+            materialspec: this.dialogForm.materialspec,
+            uomcode: this.dialogForm.uomcode,
+            warehousecode: this.dialogForm.warehousecode,
+            stocktypecode: this.dialogForm.stocktypecode,
+            materialtypecode: this.dialogForm.materialtypecode,
+            minstockqty: this.dialogForm.minstockqty,
+            maxstockqty: this.dialogForm.maxstockqty,
+            OperType: this.operation === 'add' ? 'Add' : 'Update'
           }
-          AddUpdateOrganization(data).then(res => {
+          AddUpdateInventoryFile(data).then(res => {
             if (res.code === '200') {
               this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
               this.dialogVisible = false
@@ -709,13 +791,17 @@
     },
     /* 鐐瑰嚮鍏宠仈宸ヨ壓璺嚎妯″潡*/
     // 宸ヨ壓璺嚎鐐瑰嚮
-    async  routeClick(row) {
+    async routeClick(row) {
       console.log(row)
       this.dialogFormRoute.projectCode = row.partcode
       this.dialogFormRoute.projectName = row.partname
       this.dialogVisibleRoute = true
-      this.dialogFormRoute.routeOperationArr = [
-        { 'flag': 'Y', code: '001', name: '娴嬭瘯1 ',
+      const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
+      this.dialogFormRoute.routeOperationArr = res
+      // let waitFlag = false// 鍥炴樉绛夊緟鏄惁鏀捐
+      this.dialogFormRoute.routeOperationArrTest = [
+        {
+          'flag': 'Y', code: '001', name: '娴嬭瘯1 ',
           'Data': [
             {
               'seq': 1,
@@ -735,7 +821,8 @@
             }
           ]
         },
-        { 'flag': 'N', code: '002', name: '娴嬭瘯2 ',
+        {
+          'flag': 'Y', code: '002', name: '娴嬭瘯2 ',
           'Data': [
             {
               'seq': 1,
@@ -765,7 +852,8 @@
             }
           ]
         },
-        { 'flag': 'N', code: '003', name: '娴嬭瘯3 ',
+        {
+          'flag': 'N', code: '003', name: '娴嬭瘯3 ',
           'Data': [
             {
               'seq': 1,
@@ -776,7 +864,8 @@
           ]
 
         },
-        { 'flag': 'N', code: '004', name: '娴嬭瘯4 ',
+        {
+          'flag': 'Y', code: '004', name: '娴嬭瘯4 ',
           'Data': [
             {
               'seq': 1,
@@ -792,9 +881,6 @@
           ]
         }
       ]
-      // const res = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
-
-      // let waitFlag = false// 鍥炴樉绛夊緟鏄惁鏀捐
 
       this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
         item.isSelected1 = false
@@ -829,27 +915,27 @@
     },
     // 鍙栨秷
     routeDialogVisibleCancel() {
-
+      this.dialogVisibleRoute = false
     },
     // 纭畾
-    async  routeDialogVisibleConfirm() {
+    async routeDialogVisibleConfirm() {
       const data = []
       this.dialogFormRoute.routeOperationArr.forEach(item => {
         if (item.isSelected2) {
           data.push({ code: item.code, name: item.name })
         }
       })
-    // const res=await xxx()
+      const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, data)
+      if (res.code === '200') {
+        this.$message.success('淇濆瓨鎴愬姛锛�')
+        this.dialogVisibleRoute = false
+      }
     },
     // 澶х洅瀛愮偣鍑讳簨浠�
     myCheckboxClick(val) {
       console.log(val, 1)
       this.dialogFormRoute.routeOperationArr.forEach(item => {
-        if (val.code === item.code) {
-          item.isSelected1 = true
-        } else {
-          item.isSelected1 = false
-        }
+        item.isSelected1 = val.code === item.code
       })
 
       this.projectTableData = val.Data
@@ -875,7 +961,9 @@
     },
     // 鏂板
     addOffice() {
-      const data = { code: '', name: '', digdect: '', r_ule: '', isVisible: 1 }
+      let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+      number = number === 0 ? Math.random() * Math.random() : number
+      const data = { code: '', name: '', digdect: '', r_ule: '', isVisible: 1, number: number }
       this.officeTableData.unshift(data)
     },
     // 鍒犻櫎
@@ -885,12 +973,12 @@
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        // RoleTypeDelete({ RoleTypeCode: row.code }).then(res => {
-        //   if (res.code === '200') {
-        //     this.$message.success('鍒犻櫎鎴愬姛!')
-        //     this.getRoleTypeSearch()
-        //   }
-        // })
+        UomDelete({ uomcode: row.code }).then(res => {
+          if (res.code === '200') {
+            this.$message.success('鍒犻櫎鎴愬姛!')
+            this.getRoleTypeSearch()
+          }
+        })
       }).catch(() => {
         this.$message.info('宸插彇娑堝垹闄�')
       })
@@ -915,7 +1003,7 @@
         digdect: row.digdect,
         r_ule: row.r_ule
       }
-      const res = await UomAdd(data)
+      const res = await UomAdd([data])
       if (res.code === '200') {
         this.$message.success('淇濆瓨鎴愬姛锛�')
         await this.getUomSearch()
@@ -924,7 +1012,7 @@
     // 鍙栨秷
     cancelOffice(row) {
       this.officeTableData.forEach((item, index) => {
-        if (item.isVisible === 1 && item.code === row.code) {
+        if (item.isVisible === 1 && item.number === row.number) {
           this.officeTableData.splice(index, 1)
         }
       })
@@ -1012,13 +1100,13 @@
   padding: 20px 100px !important;
 }
 
-.dialogVisibleRoute{
+.dialogVisibleRoute {
   ::v-deep .el-dialog__body {
     padding: 20px 20px !important;
   }
 }
 
-.officeDialogVisible{
+.officeDialogVisible {
   ::v-deep .el-dialog__body {
     padding: 20px 20px !important;
   }
@@ -1127,13 +1215,13 @@
   color: $main_color;
 }
 
-::v-deep .el-select .el-input .el-select__caret{
+::v-deep .el-select .el-input .el-select__caret {
   display: flex;
   align-items: center;
   justify-content: center;
 }
 
-.dialogVisibleRoute{
+.dialogVisibleRoute {
   .myCheckboxGroup {
     display: flex;
     flex-wrap: wrap;

--
Gitblit v1.9.3