From 9b5a856a2cfe378f5ca7304a0af17b3d7b06ff69 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期一, 07 七月 2025 11:41:17 +0800
Subject: [PATCH] 1、工厂建模和维修班组页面新增机构编码必填校验

---
 src/utils/authFilter.js                                         |   25 ----
 src/views/eam/base/EamProductionUserManagement.vue              |   22 +--
 src/views/eam/base/EamRepairDepartList.vue                      |   43 ++----
 src/mixins/JeecgListMixin.js                                    |    4 
 src/views/eam/base/modules/EamRepairDepartModal.vue             |  141 +++++++++++-----------
 src/views/eam/base/modules/EamProductionModal.vue               |    7 
 src/views/eam/base/EamMaintenanceStandardList.vue               |    4 
 src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue |   56 ++++----
 8 files changed, 128 insertions(+), 174 deletions(-)

diff --git a/src/mixins/JeecgListMixin.js b/src/mixins/JeecgListMixin.js
index 02254b4..686383d 100644
--- a/src/mixins/JeecgListMixin.js
+++ b/src/mixins/JeecgListMixin.js
@@ -8,7 +8,6 @@
 import Vue from 'vue'
 import { ACCESS_TOKEN, TENANT_ID } from "@/store/mutation-types"
 import store from '@/store'
-import { buttonShowAuthFilter } from '@/utils/authFilter'
 
 export const JeecgListMixin = {
   data(){
@@ -75,9 +74,6 @@
     }
   },
   methods:{
-    isShowAuth(code){
-      return buttonShowAuthFilter(code);
-    },
     loadData(arg) {
       if(!this.url.list){
         this.$message.error("璇疯缃畊rl.list灞炴��!")
diff --git a/src/utils/authFilter.js b/src/utils/authFilter.js
index 447965f..ed910bb 100644
--- a/src/utils/authFilter.js
+++ b/src/utils/authFilter.js
@@ -274,29 +274,4 @@
 
 function substrPre(str,pre) {
   return str.substr(pre.length);
-}
-/**
- * 鏄剧ず鏉冮檺
- * @param {*} code
- * @returns
- */
-export function buttonShowAuthFilter(code) {
-  if(code){
-    if(nodeShowAuth(code)){
-      return true;
-    }else{
-      return false;
-    }
-  }else{
-    return false;
-  }
-}
-function nodeShowAuth(code){
-  let authList = JSON.parse(sessionStorage.getItem(USER_AUTH) || "[]");
-  for (let auth of authList) {
-    if(auth.action == code) {
-      return true;
-    }
-  }
-  return false;
 }
\ No newline at end of file
diff --git a/src/views/eam/base/EamMaintenanceStandardList.vue b/src/views/eam/base/EamMaintenanceStandardList.vue
index 440ec2e..cdb138f 100644
--- a/src/views/eam/base/EamMaintenanceStandardList.vue
+++ b/src/views/eam/base/EamMaintenanceStandardList.vue
@@ -129,7 +129,7 @@
         <a-tab-pane tab='淇濆吇鏍囧噯鏄庣粏椤�' key="1">
           <div class="table-operator" style="margin:-16px">
             <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"
-                                                  :selectionRows="selectionRows"/>
+                                                  :pageSelectionRow="selectionRows[0]"/>
           </div>
         </a-tab-pane>
 
@@ -138,7 +138,7 @@
     <!-- table鍖哄煙-end -->
 
     <!-- 琛ㄥ崟鍖哄煙 -->
-    <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"></eamMaintenanceStandard-modal>
+    <eamMaintenanceStandard-modal ref="modalForm" @ok="modalFormOk"/>
   </a-card>
 </template>
 
diff --git a/src/views/eam/base/EamProductionUserManagement.vue b/src/views/eam/base/EamProductionUserManagement.vue
index f26c4ef..2f67b52 100644
--- a/src/views/eam/base/EamProductionUserManagement.vue
+++ b/src/views/eam/base/EamProductionUserManagement.vue
@@ -21,18 +21,9 @@
           <a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="璇疯緭鍏ヨ溅闂村悕绉�"/>
           <!-- 鏍�-->
           <a-col :md="10" :sm="24">
-            <a-tree
-              checkable
-              multiple
-              @select="onSelect"
-              @check="onCheck"
-              :selectedKeys="selectedKeys"
-              :checkedKeys="checkedKeys"
-              :treeData="departTree"
-              :checkStrictly="checkStrictly"
-              :expandedKeys="expandedKeys"
-              :autoExpandParent="autoExpandParent"
-              @expand="onExpand"/>
+            <a-tree checkable multiple @select="onSelect" @check="onCheck" :selectedKeys="selectedKeys"
+                    :checkedKeys="checkedKeys" :treeData="departTree" :checkStrictly="checkStrictly"
+                    :expandedKeys="expandedKeys" :autoExpandParent="autoExpandParent" @expand="onExpand"/>
           </a-col>
         </div>
       </a-card>
@@ -61,10 +52,10 @@
             <template v-if="selectedKeys.length>0">
               <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol"
                             :wrapperCol="wrapperCol">
-                <a-form-model-item label="鏈烘瀯缂栫爜">
+                <a-form-model-item label="鏈烘瀯缂栫爜" prop="factoryCode">
                   <a-input placeholder="璇疯緭鍏ユ満鏋勭紪鐮�" v-model="model.factoryCode"/>
                 </a-form-model-item>
-                <a-form-model-item expandedKeys prop="factoryName" label="鏈烘瀯鍚嶇О">
+                <a-form-model-item prop="factoryName" label="鏈烘瀯鍚嶇О">
                   <a-input placeholder="璇疯緭鍏ユ満鏋勫悕绉�" v-model="model.factoryName"/>
                 </a-form-model-item>
                 <a-form-model-item expandedKeys label="涓婄骇杞﹂棿">
@@ -143,7 +134,8 @@
           sm: { span: 16 }
         },
         validatorRules: {
-          factoryName: [{ required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�!', trigger: 'change' }]
+          factoryCode: [{ required: true, message: '璇疯緭鍏ユ満鏋勭紪鍙�', trigger: 'change' }],
+          factoryName: [{ required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'change' }]
         },
         url: {
           getProductionTreeList: '/eam/BaseFactory/queryTreeList',
diff --git a/src/views/eam/base/EamRepairDepartList.vue b/src/views/eam/base/EamRepairDepartList.vue
index 665b4f8..43ff9d5 100644
--- a/src/views/eam/base/EamRepairDepartList.vue
+++ b/src/views/eam/base/EamRepairDepartList.vue
@@ -27,19 +27,10 @@
           <a-input-search @search="onSearch" style="width:100%;margin-top: 10px" placeholder="璇疯緭鍏ョ淮淇儴闂ㄥ悕绉�"/>
           <!-- 鏍�-->
           <a-col :md="10" :sm="24">
-            <a-tree
-              checkable
-              multiple
-              @select="onSelect"
-              @check="onCheck"
-              @rightClick="rightHandle"
-              :selectedKeys="selectedKeys"
-              :checkedKeys="checkedKeys"
-              :treeData="departTree"
-              :checkStrictly="checkStrictly"
-              :expandedKeys="iExpandedKeys"
-              :autoExpandParent="autoExpandParent"
-              @expand="onExpand"/>
+            <a-tree checkable multiple @select="onSelect" @check="onCheck" @rightClick="rightHandle"
+                    :selectedKeys="selectedKeys" :checkedKeys="checkedKeys" :treeData="departTree"
+                    :checkStrictly="checkStrictly" :expandedKeys="iExpandedKeys" :autoExpandParent="autoExpandParent"
+                    @expand="onExpand"/>
           </a-col>
         </div>
       </a-card>
@@ -68,20 +59,15 @@
           <a-card :bordered="false" v-if="selectedKeys.length>0">
             <a-form-model ref="form" :model="model" :rules="validatorRules">
               <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departCode" label="缁翠慨閮ㄩ棬缂栧彿">
-                <a-input placeholder="璇疯緭鍏ヤ骇绾�/缁翠慨閮ㄩ棬缂栧彿" v-model="model.departCode"/>
+                <a-input placeholder="璇疯緭鍏ョ淮淇儴闂�/鐝粍缂栧彿" v-model="model.departCode"/>
               </a-form-model-item>
               <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departName" label="缁翠慨閮ㄩ棬鍚嶇О">
-                <a-input placeholder="璇疯緭鍏ヤ骇绾�/缁翠慨閮ㄩ棬鍚嶇О" v-model="model.departName"/>
+                <a-input placeholder="璇疯緭鍏ョ淮淇儴闂�/鐝粍鍚嶇О" v-model="model.departName"/>
               </a-form-model-item>
               <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="涓婄骇缁翠慨閮ㄩ棬">
-                <a-tree-select
-                  style="width:100%"
-                  :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
-                  :treeData="treeData"
-                  :disabled="disable"
-                  v-model="model.parentId"
-                  placeholder="鏃�">
-                </a-tree-select>
+                <a-tree-select style="width:100%" :dropdownStyle="{maxHeight:'200px',overflow:'auto'}"
+                               :treeData="treeData" :disabled="disable" v-model="model.parentId"
+                               placeholder="鏃�"/>
               </a-form-model-item>
               <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="鎺掑簭">
                 <a-input-number v-model="model.departOrder"/>
@@ -109,10 +95,10 @@
   </a-row>
 </template>
 <script>
-import { queryRepairDepartTreeList, queryRepDepIdTree, deleteByRepairDepartId } from '@api/api'
-import { httpAction, deleteAction } from '@api/manage'
-import { JeecgListMixin } from '@/mixins/JeecgListMixin'
-import EamRepairDepartModal from './modules/EamRepairDepartModal'
+  import { queryRepairDepartTreeList, queryRepDepIdTree, deleteByRepairDepartId } from '@api/api'
+  import { httpAction, deleteAction } from '@api/manage'
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import EamRepairDepartModal from './modules/EamRepairDepartModal'
 
   export default {
     name: 'EamRepairDepartList',
@@ -157,7 +143,8 @@
           edges: []
         },
         validatorRules: {
-          departName: [{ required: true, message: '璇疯緭鍏ヤ骇绾�/缁翠慨閮ㄩ棬鍚嶇О!' }]
+          departCode: [{ required: true, message: '璇疯緭鍏ョ淮淇儴闂�/鐝粍缂栧彿' }],
+          departName: [{ required: true, message: '璇疯緭鍏ョ淮淇儴闂�/鐝粍鍚嶇О' }]
         },
         url: {
           delete: '/eam/eamBaseRepairDepart/delete',
diff --git a/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue b/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
index 507d728..214e801 100644
--- a/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
+++ b/src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
@@ -1,27 +1,21 @@
 <template>
   <a-card :bordered="false">
-    <!-- table鍖哄煙-begin -->
-    <div>
-      <a-table
-        ref="detailTable"
-        size="middle"
-        bordered
-        rowKey="id"
-        :columns="columns"
-        :dataSource="dataSource"
-        :pagination="ipagination"
-        :loading="loading"
-        class="j-table-force-nowrap"
-        @change="handleTableChange">
-      </a-table>
-    </div>
-    <!-- table鍖哄煙-end -->
-
+    <a-table
+      ref="detailTable"
+      size="middle"
+      bordered
+      rowKey="id"
+      :columns="columns"
+      :dataSource="dataSource"
+      :pagination="ipagination"
+      :loading="loading"
+      class="j-table-force-nowrap"
+      @change="handleTableChange">
+    </a-table>
   </a-card>
 </template>
 
 <script>
-  import '@/assets/less/TableExpand.less'
   import { JeecgListMixin } from '@/mixins/JeecgListMixin'
   import { getAction } from '@api/manage'
 
@@ -34,13 +28,18 @@
         required: true,
         default: '-1'
       },
-      selectionRows:{}
+      pageSelectionRow: {
+        type: Object,
+        default: () => {
+        }
+      }
     },
     data() {
       return {
         description: '淇濆吇鏍囧噯鏄庣粏绠$悊椤甸潰',
         // 琛ㄥご
-        columns: [
+        columns: [],
+        defaultColumns: [
           {
             title: '搴忓彿',
             align: 'center',
@@ -57,7 +56,7 @@
             title: '淇濆吇椤瑰垎绫�',
             align: 'center',
             dataIndex: 'itemCategory_dictText',
-            ellipsis: true
+            width: 150
           },
           {
             title: '淇濆吇椤圭洰',
@@ -87,9 +86,15 @@
             this.clearList()
           }
         }
+      },
+      pageSelectionRow: {
+        handler(val) {
+          if (val) {
+            if (val.maintenanceCategory != 'THIRD_MAINTENANCE') this.columns = [...this.defaultColumns.filter(item => item.dataIndex != 'itemPart')]
+            else this.columns = [...this.defaultColumns.filter(item => item.dataIndex != 'itemCategory_dictText')]
+          }
+        }
       }
-    },
-    created() {
     },
     computed: {},
     methods: {
@@ -138,7 +143,4 @@
       }
     }
   }
-</script>
-<style scoped>
-  @import '~@assets/less/common.less';
-</style>
\ No newline at end of file
+</script>
\ No newline at end of file
diff --git a/src/views/eam/base/modules/EamProductionModal.vue b/src/views/eam/base/modules/EamProductionModal.vue
index 7f15578..b7b0ad2 100644
--- a/src/views/eam/base/modules/EamProductionModal.vue
+++ b/src/views/eam/base/modules/EamProductionModal.vue
@@ -8,7 +8,7 @@
     @cancel="handleCancel"
     cancelText="鍏抽棴">
     <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
-      <a-form-model-item label="鏈烘瀯缂栫爜">
+      <a-form-model-item label="鏈烘瀯缂栫爜" hasFeedback prop="factoryCode">
         <a-input placeholder="璇疯緭鍏ユ満鏋勭紪鐮�" v-model="model.factoryCode"/>
       </a-form-model-item>
       <a-form-model-item label="鏈烘瀯鍚嶇О" hasFeedback prop="factoryName">
@@ -60,8 +60,9 @@
         },
         confirmLoading: false,
         validatorRules: {
-          factoryName: [{ required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�!', trigger: 'change' }],
-          factoryCategory: [{ required: true, message: '璇烽�夋嫨鏈烘瀯绫诲瀷!', trigger: 'change' }]
+          factoryCode: [{ required: true, message: '璇疯緭鍏ユ満鏋勭紪鐮�', trigger: 'change' }],
+          factoryName: [{ required: true, message: '璇疯緭鍏ユ満鏋勫悕绉�', trigger: 'change' }],
+          factoryCategory: [{ required: true, message: '璇烽�夋嫨鏈烘瀯绫诲瀷', trigger: 'change' }]
         },
         url: {
           queryById: '/eam/BaseFactory/queryIdTree',
diff --git a/src/views/eam/base/modules/EamRepairDepartModal.vue b/src/views/eam/base/modules/EamRepairDepartModal.vue
index dfbb9b7..f6bcf23 100644
--- a/src/views/eam/base/modules/EamRepairDepartModal.vue
+++ b/src/views/eam/base/modules/EamRepairDepartModal.vue
@@ -12,13 +12,12 @@
 
     <a-spin :spinning="confirmLoading">
       <a-form-model ref="form" :model="model" :rules="validatorRules">
-        <a-form-model-item
-          :labelCol="labelCol"
-          :wrapperCol="wrapperCol"
-          label="缁翠慨閮ㄩ棬/鐝粍鍚嶇О"
-          prop="departName"
-          :hidden="false"
-          hasFeedback >
+        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="缁翠慨閮ㄩ棬/鐝粍缂栧彿" prop="departCode"
+                           hasFeedback>
+          <a-input placeholder="璇疯緭鍏ョ淮淇儴闂�/鐝粍缂栧彿" v-model="model.departCode"/>
+        </a-form-model-item>
+        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="缁翠慨閮ㄩ棬/鐝粍鍚嶇О" prop="departName"
+                           hasFeedback>
           <a-input id="departName" placeholder="璇疯緭鍏ョ淮淇儴闂�/鐝粍鍚嶇О" v-model="model.departName"/>
         </a-form-model-item>
         <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" :hidden="seen" label="涓婄骇閮ㄩ棬" hasFeedback>
@@ -54,115 +53,117 @@
   import { queryRepDepIdTree } from '@/api/api'
   import pick from 'lodash.pick'
   import ATextarea from 'ant-design-vue/es/input/TextArea'
+
   export default {
-    name: "EamRepairDepartModal",
+    name: 'EamRepairDepartModal',
     components: { ATextarea },
-    data () {
+    data() {
       return {
-        departTree:[],
-        orgTypeData:[],
-        phoneWarning:'',
-        departName:"",
-        title:"鎿嶄綔",
-        seen:false,
+        departTree: [],
+        orgTypeData: [],
+        phoneWarning: '',
+        departName: '',
+        title: '鎿嶄綔',
+        seen: false,
         visible: false,
-        condition:true,
-        disableSubmit:false,
+        condition: true,
+        disableSubmit: false,
         model: {},
-        menuhidden:false,
-        menuusing:true,
+        menuhidden: false,
+        menuusing: true,
         labelCol: {
           xs: { span: 24 },
-          sm: { span: 5 },
+          sm: { span: 5 }
         },
         wrapperCol: {
           xs: { span: 24 },
-          sm: { span: 16 },
+          sm: { span: 16 }
         },
 
         confirmLoading: false,
-        validatorRules:{
-          departName:[{ required: true, message: '璇疯緭鍏ョ淮淇儴闂�/鐝粍鍚嶇О!' }],
+        validatorRules: {
+          departCode: [{ required: true, message: '璇疯緭鍏ョ淮淇儴闂�/鐝粍缂栧彿' }],
+          departName: [{ required: true, message: '璇疯緭鍏ョ淮淇儴闂�/鐝粍鍚嶇О' }]
         },
         url: {
-          add: "/eam/eamBaseRepairDepart/add",
+          add: '/eam/eamBaseRepairDepart/add'
         },
-        dictDisabled:true,
+        dictDisabled: true
       }
     },
-    created () {
+    created() {
     },
     methods: {
-      loadTreeData(){
-        var that = this;
-        queryRepDepIdTree().then((res)=>{
-          if(res.success){
-            that.departTree = [];
+      loadTreeData() {
+        var that = this
+        queryRepDepIdTree().then((res) => {
+          if (res.success) {
+            that.departTree = []
             for (let i = 0; i < res.result.length; i++) {
-              let temp = res.result[i];
-              that.departTree.push(temp);
+              let temp = res.result[i]
+              that.departTree.push(temp)
             }
           }
 
         })
       },
-      add (depart) {
-        if(depart){
-          this.seen = false;
-          this.dictDisabled = false;
-        }else{
-          this.seen = true;
-          this.dictDisabled = true;
+      add(depart) {
+        if (depart) {
+          this.seen = false
+          this.dictDisabled = false
+        } else {
+          this.seen = true
+          this.dictDisabled = true
         }
-        this.edit(depart);
+        this.edit(depart)
       },
-      edit (record) {
-        this.visible = true;
+      edit(record) {
+        this.visible = true
         this.model = Object.assign({}, this.defaultModel, record)
-        this.loadTreeData();
-        this.model.parentId = record!=null?record.toString():null;
+        this.loadTreeData()
+        this.model.parentId = record != null ? record.toString() : null
       },
-      close () {
-        this.$emit('close');
-        this.disableSubmit = false;
-        this.visible = false;
-        this.$refs.form.resetFields();
+      close() {
+        this.$emit('close')
+        this.disableSubmit = false
+        this.visible = false
+        this.$refs.form.resetFields()
       },
-      handleOk () {
-        const that = this;
+      handleOk() {
+        const that = this
         // 瑙﹀彂琛ㄥ崟楠岃瘉
         this.$refs.form.validate(valid => {
           if (valid) {
-            that.confirmLoading = true;
-            httpAction(this.url.add,this.model,"post").then((res)=>{
-              if(res.success){
+            that.confirmLoading = true
+            httpAction(this.url.add, this.model, 'post').then((res) => {
+              if (res.success) {
                 // that.$message.success(res.message);
                 that.$notification.warning({
-                  message:'娑堟伅',
-                  description:res.message
-                });
-                that.loadTreeData();
-                that.$emit('ok');
-              }else{
+                  message: '娑堟伅',
+                  description: res.message
+                })
+                that.loadTreeData()
+                that.$emit('ok')
+              } else {
                 // that.$message.warning(res.message);
                 that.$notification.warning({
-                  message:'娑堟伅',
-                  description:res.message
-                });
+                  message: '娑堟伅',
+                  description: res.message
+                })
               }
             }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
+              that.confirmLoading = false
+              that.close()
             })
 
-          }else{
-            return false;
+          } else {
+            return false
           }
         })
       },
-      handleCancel () {
+      handleCancel() {
         this.close()
-      },
+      }
     }
   }
 </script>

--
Gitblit v1.9.3