From d3a486a2f3ae5e76b7bbf9e3d6a8c1e36ed73de7 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 01 三月 2024 17:38:10 +0800
Subject: [PATCH] 包装台账

---
 src/views/basic/part/index.vue |  174 ++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 121 insertions(+), 53 deletions(-)

diff --git a/src/views/basic/part/index.vue b/src/views/basic/part/index.vue
index 576a443..f4b3331 100644
--- a/src/views/basic/part/index.vue
+++ b/src/views/basic/part/index.vue
@@ -12,7 +12,12 @@
         :ajaxFun="ajaxFun"
         ref="partTable"
       >
-        <template #toolbar></template>
+        <template #toolbar>
+          <!-- <el-button type="primary" @click="addOrUpdateHandle"
+          v-if="permissions.basic_part_add">鏂板</el-button> -->
+          <!-- <el-button text="鍚屾MDM" type="primary" @click=""
+          v-if="permissions.basic_part_mdm">鍚屾MDM</el-button> -->
+        </template>
       </ttable>
       <!-- 寮圭獥, 鏂板 / 淇敼 -->
       <table-form
@@ -25,11 +30,36 @@
         :printLabelInfo="printLabelInfo"
       />
     </basic-container>
+    <el-dialog title="閫夋嫨鍚屾鏃ユ湡" :visible.sync="syncDateVisible" width="21%">
+      <div style="display: flex;justify-content: center">
+        <el-form
+          :model="dataForm"
+          :inline="true"
+          :rules="dataRule"
+          ref="dataForm"
+          class="l-mes"
+        >
+          <el-form-item label="鏃ユ湡" prop="selectTime">
+            <el-date-picker
+              v-model="dataForm.selectTime"
+              type="datetime"
+              placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+              value-format="yyyy-MM-dd HH:mm:ss"
+            >
+            </el-date-picker>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="syncDateVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="syncIfs">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { fetchList, delObj, syncIfs, syncPart } from '@/api/basic/part'
+import { fetchList, delObj, syncPart } from '@/api/basic/part'
 import TableForm from './part-form'
 import { mapGetters } from 'vuex'
 import ttable from '@/views/common/ztt-table.vue'
@@ -40,12 +70,23 @@
 export default {
   data() {
     return {
+      dataRule: {
+        selectTime: [
+          { required: true, message: '鍚屾鏃ユ湡涓嶈兘涓虹┖', trigger: 'change' }
+        ]
+      },
+      dataForm: {
+        selectTime: null
+      },
+      syncDateVisible: false,
       ajaxFun: fetchList,
       addOrUpdateVisible: false,
       multipleSelection: [],
       uploadInfo: {
         // 鏄惁灞曠ず涓婁紶EXCEL浠ュ強瀵瑰簲鐨剈rl
         isShow: true,
+        download: true,
+        fileName: '宸茬敵璇风墿鏂欑紪鐮佹ā鏉�',
         url: '/mes/part/upload'
       },
       prelang: 'operation',
@@ -59,7 +100,8 @@
         multiSelect: true, //
         seqNo: true,
         isShowHide: true, // 鏄惁鏄剧ず鏄惧奖鎸夐挳
-        isSearch: false, // 楂樼骇鏌ヨ鎸夐挳
+        isSearch: false, // 楂樼骇鏌ヨ鎸夐挳,
+        isRefresh: true, // 鏄惁鏄剧ず鍒锋柊鎸夐挳
         defaultOrderBy: { column: 'id', direction: 'desc' }
       },
       table: {
@@ -135,7 +177,7 @@
           {
             minWidth: '120',
             prop: 'sunit',
-            label: '鍗曚綅2',
+            label: '閲嶉噺鍗曚綅',
             sort: true,
             isTrue: true,
             isSearch: true,
@@ -156,7 +198,7 @@
             searchInfoType: 'text'
           },
           // 涓�绾у垎绫�
-          {
+           {
             minWidth: '120',
             prop: 'assortment',
             label: '涓�绾у垎绫�',
@@ -205,7 +247,7 @@
             searchInfoType: 'text'
           },
           // 鍨嬪彿
-          {
+          /* {
             minWidth: '140',
             prop: 'partModel',
             label: '鍨嬪彿',
@@ -267,7 +309,7 @@
             optList: () => {
               return this.lotTrackingIfsOptions
             }
-          },
+          }, */
           // 鐗堟湰鍙�
           {
             minWidth: '140',
@@ -277,7 +319,7 @@
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
-          },
+          }/* ,
           // 璁″垝鏂规硶
           {
             minWidth: '140',
@@ -291,9 +333,9 @@
             optList: () => {
               return this.planningMethodOptions
             }
-          },
+          }, */
           // 鍥惧彿
-          {
+         /*  {
             minWidth: '140',
             prop: 'drawingNumber',
             label: '鍥惧彿',
@@ -321,9 +363,9 @@
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
-          },
+          }, */
           // 妫�楠屽憳
-          {
+          /* {
             minWidth: '140',
             prop: 'examiner',
             label: '妫�楠屽憳',
@@ -354,35 +396,17 @@
             isTrue: true,
             isSearch: true,
             searchInfoType: 'text'
-          }
+          } */
         ],
         toolbar: [
-          {
-            text: '鏂板',
-            type: 'primary',
-            fun: this.addOrUpdateHandle
-          },
-          {
-            text: '鍚屾ERP',
-            type: 'primary',
-            fun: this.syncIfs,
-            loading: false
-          },
-          {
-            text: '澶ф爣绛�',
-            type: 'primary',
-            fun: this.printLabel,
-            loading: false
-          }
+          // {
+          //   text: '澶ф爣绛�',
+          //   type: 'primary',
+          //   fun: this.printLabel,
+          //   loading: false
+          // }
         ],
-        operator: [
-          {
-            text: '鍒犻櫎',
-            type: 'text',
-            size: 'small',
-            fun: this.deleteHandle
-          }
-        ],
+        operator: null,
         operatorConfig: {
           fixed: 'right',
           label: '鎿嶄綔',
@@ -412,16 +436,39 @@
     PrintLabelForm
   },
   created() {
+if(this.permissions.basic_part_mdm){
+        this.table.toolbar.push(
+          {
+            text: '鍚屾MDM',
+            type: 'primary',
+            fun: () => this.syncDateVisible = true,
+            loading: false
+          }
+        )
+    }
+    if(this.permissions.basic_part_del){
+      this.table.operator = [
+          {
+            text: '鍒犻櫎',
+            type: 'text',
+            size: 'small',
+            fun: this.deleteHandle
+          }
+        ]
+    }
+    this.uploadInfo.isShow = this.permissions.basic_part_upload
     this.table.column.find((e) => e.label === 'IFS鍚敤鎵规绠$悊').isTrue = false
     this.table.column.find((e) => e.label === '璁″垝鏂规硶').isTrue = false
-    this.getUnitType('unit')
-    this.getMaterialType('material_type')
     this.getCategoryType('category')
     this.getAssortmentType('assortment')
     this.getPlanningMethodType('planning_method_type')
     this.getThreeLevelClassificationType('three_classification_type')
-    this.getMaterialAttributeType()
     this.getExaminerDict('examiner_type')
+  },
+  mounted(){
+    this.getUnitType('unit')
+    this.getMaterialType('material_type')
+    this.getMaterialAttributeType()
   },
   computed: {
     ...mapGetters(['permissions'])
@@ -433,6 +480,10 @@
     },
     // 鏂板 / 淇敼
     addOrUpdateHandle(row) {
+      if(!this.permissions.basic_part_edit && row.id!=null){
+        this.$message.error("璇ヨ鑹叉病鏈夋搷浣滄潈闄�")
+        return
+      }
       this.addOrUpdateVisible = true
       this.$nextTick(() => {
         this.$refs.addOrUpdate.init(row == null ? null : row.id)
@@ -628,18 +679,28 @@
     //   }
     // },
     syncIfs() {
-      syncPart({})
-        .then((res) => {
-          const data = res.data
-          if (data.code === 0) {
-            this.$message.success('寮�濮嬪悓姝�')
-          } else {
-            this.$message.error('鍚屾ERP澶辫触')
-          }
-        })
-        .catch((e) => {
-          // this.$message.error('鍚屾ERP澶辫触:' + e)
-        })
+      this.$refs.dataForm.validate((valid) => {
+        if (valid) {
+          this.syncDateVisible = false
+          this.table.toolbar.find((e) => e.text === '鍚屾MDM').loading = true
+          syncPart({ updateTime: this.dataForm.selectTime })
+            .then((res) => {
+              const data = res.data
+              if (data.code === 0) {
+                this.$message.success(data.msg)
+              } else {
+                this.$message.error('鍚屾MDM澶辫触')
+              }
+              this.getData()
+              this.table.toolbar.find(
+                (e) => e.text === '鍚屾MDM'
+              ).loading = false
+            })
+            .catch((e) => {
+              this.$message.error('鍚屾MDM澶辫触:' + e)
+            })
+        }
+      })
     },
     printLabel() {
       if (this.multipleSelection && this.multipleSelection.length > 0) {
@@ -677,6 +738,13 @@
         this.$message.error('璇烽�夋嫨闆朵欢')
       }
     }
+  },
+  watch: {
+    syncDateVisible(newVal) {
+      if (!newVal) {
+        this.$refs.dataForm.resetFields()
+      }
+    }
   }
 }
 </script>

--
Gitblit v1.9.3