ysy 1 an în urmă
părinte
comite
6df29391aa

+ 11 - 0
src/api/material/BOM.js

@@ -120,6 +120,17 @@ export async function getBomTreeList(params) {
   return Promise.reject(new Error(res.data.message));
 }
 
+
+// 查询BOM树 详情
+export async function getBomGetById(id) {
+  const res = await request.get(`/main/bomCategory/getById/${id}`);
+  if (res.data.code == 0) {
+    return res.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+ 
+
 // 新增BOM树节点
 export async function saveBomTreeList(data) {
   const res = await request.post(`/main/bomCategory/save`, data);

+ 1 - 1
src/layout/components/header-tools.vue

@@ -84,7 +84,7 @@
     computed: {
       // 当前用户信息
       loginUser () {
-        return this.$store.state.user.info;
+        return this.$store.state.user?.info;
       }
     },
     methods: {

+ 2 - 5
src/utils/request.js

@@ -46,14 +46,11 @@ service.interceptors.request.use(
  * 添加响应拦截器
  */
 service.interceptors.response.use(
-
-
-
-  
   (res) => {
     // token 自动续期
-    if (res.data.code == '-1' && res.config?.showErrorToast !== false) {
+    if (res.data.code == -1 && res.config?.showErrorToast !== false) {
       Message.error(res.data.message);
+      return false;
     }
     const token = res.headers[TOKEN_HEADER_NAME.toLowerCase()];
     if (token) {

+ 5 - 0
src/views/classifyManage/treeClassify/components/list-edit.vue

@@ -177,6 +177,11 @@
             value: '4',
             label: '资产组'
           },
+
+          { 
+            value: '5',
+            label: '物品组(去产品)'
+          },
      
         
         ],

+ 1 - 1
src/views/factoryModel/factoryManagement/components/edit.vue

@@ -283,7 +283,7 @@ export default {
           })
           .catch((e) => {
             this.loading = false;
-            this.$message.error(e.message);
+            // this.$message.error(e.message);
           });
       });
     },

+ 9 - 0
src/views/material/BOMmanage/components/routing.vue

@@ -28,6 +28,10 @@
         <template v-slot:routeType="{ row }">
           {{ row.routeType == 2 ? '委外' : '生产' }}
         </template>
+
+        <template v-slot:action="{ row, $index }">
+          <el-link type="primary" @click="handleDel(row, $index)">删除</el-link>
+        </template>
       </ele-pro-table>
     </el-card>
     <routingDialog ref="routingDialogRef" @reload="reload"></routingDialog>
@@ -140,6 +144,11 @@
           return [];
         }
       },
+
+
+      handleDel(row, index) {
+        
+      },
       checkStatus(row) {
         let obj = this.statusList.find((it) => it.value == row.status);
         return obj.label;

+ 18 - 12
src/views/material/BOMmanage/details.vue

@@ -131,6 +131,7 @@
 <script>
   import {
     getBomTreeList,
+    getBomGetById,
     convert,
     deleteBomTreeList
   } from '@/api/material/BOM.js';
@@ -287,24 +288,29 @@
             return this.treeList;
           }
         } catch (error) {
-          console.log('error--------------');
           console.log(error);
         }
         this.treeLoading = false;
       },
 
       handleNodeClick(data) {
-        if (data) {
-          this.versions = data.versions;
-          this.currentNodeData = data;
-          if (
-            this.activeName == '工艺' &&
-            this.currentNodeData.children?.length < 1
-          ) {
-            this.$nextTick(() => {
-              this.$refs.workmanshipRef.reload();
-            });
-          }
+        this.handBomDetails(data.id);
+      },
+
+      handBomDetails(id) {
+        if (id) {
+          getBomGetById(id).then((res) => {
+            this.versions = res.data.versions;
+            this.currentNodeData = res.data;
+            if (
+              this.activeName == '工艺' &&
+              this.currentNodeData.children?.length < 1
+            ) {
+              this.$nextTick(() => {
+                this.$refs.workmanshipRef.reload();
+              });
+            }
+          });
         } else {
           this.currentNodeData = {
             bomType: 1,

+ 1 - 1
src/views/material/BOMmanage/index.vue

@@ -129,7 +129,7 @@
             pageNum: 1,
             size: 10
           }).then((data) => {
-            console.log(data);
+     
             if (data.count > 1) {
               this.$refs.table.setData(data.list || []);
             } else {

+ 14 - 3
src/views/material/product/components/CategoryDialog.vue

@@ -7,14 +7,14 @@
       </el-tree>
     </div>
     <template v-slot:footer>
-      <el-button @click="handleClose">关闭</el-button>
+      <el-button @click="handleClose">关闭 </el-button>
       <el-button type="primary" @click="selected">选择</el-button>
     </template>
   </ele-modal>
 </template>
 
 <script>
-import { getTreeByGroup } from '@/api/classifyManage';
+import { getTreeByGroup, getTreeByPid } from '@/api/classifyManage';
 export default {
   data() {
     return {
@@ -24,6 +24,8 @@ export default {
       title: '选择分类',
       pathList: [],
 
+      oneProduct: null,
+
       treeLoading: false,
       nodeKey: 'id',
       defaultProps: {
@@ -40,6 +42,7 @@ export default {
   methods: {
     open() {
       this.treeVisible = true
+      this.oneProduct = this.$route.query.oneProduct;
       this.getTreeData()
     },
     handleClose() {
@@ -50,8 +53,16 @@ export default {
     async getTreeData() {
       try {
         this.treeLoading = true;
+         let res 
+        if(this.oneProduct == 'false') {
+           res = await getTreeByGroup({ type: 5 });
+        } else if(this.oneProduct == 'true') {
+           res = await getTreeByPid(9)
+        } else {
+           res = await getTreeByGroup({ type: 1 });
+        }
 
-        const res = await getTreeByGroup({ type: 1 });
+      
         this.treeLoading = false;
         if (res?.code === '0') {
           this.treeList = res.data;

+ 6 - 1
src/views/material/product/components/index-data.vue

@@ -243,7 +243,10 @@
       data: Object,
       rootId: [Number, String],
 
-      rootTreeId: [Number, String]
+      rootTreeId: [Number, String],
+
+      oneProduct: Boolean
+
     },
     data() {
       return {
@@ -371,6 +374,7 @@
           query: {
             categoryId: row.id,
             code: row.code
+
           }
         });
       },
@@ -430,6 +434,7 @@
             id: row.id ? row.id : null,
             status: status,
             rootId: this.rootId,
+            oneProduct:this.oneProduct,
             t: new Date().getTime()
           }
         });

+ 3 - 1
src/views/material/product/detail.vue

@@ -332,11 +332,13 @@
         ruleCode: null,
         codeShow: false,
 
-        status: null
+        status: null,
+
       };
     },
     async created() {
       this.status = this.$route.query.status;
+
       if (this.$route.query.id) {
         this._getDetails();
       }

+ 2 - 2
src/views/material/product/index.vue

@@ -66,7 +66,7 @@
 
             <IndexSearch @search="reload" />
 
-            <IndexData ref="listData" v-if="current" :current-id="current.id" :data="current" :rootTreeId="rootTreeId" :rootId="rootId">
+            <IndexData ref="listData" v-if="current" :current-id="current.id" :data="current" :rootTreeId="rootTreeId" :rootId="rootId" :oneProduct="false" >
             </IndexData>
           </div>
         </template>
@@ -140,7 +140,7 @@ export default {
       try {
         this.treeLoading = true;
 
-        const res = await getTreeByGroup({ type: 1 });
+        const res = await getTreeByGroup({ type: 5 });
         this.treeLoading = false;
         if (res?.code === '0') {
           this.treeList = res.data;

+ 1 - 1
src/views/material/product/oneProduct.vue

@@ -66,7 +66,7 @@
   
               <IndexSearch @search="reload" />
   
-              <IndexData ref="listData" v-if="current" :current-id="current.id" :data="current" :rootTreeId="rootTreeId" :rootId="rootId">
+              <IndexData ref="listData" v-if="current" :current-id="current.id" :data="current" :rootTreeId="rootTreeId" :rootId="rootId" :oneProduct="true">
               </IndexData>
             </div>
           </template>

+ 29 - 22
src/views/system/organization/components/org-user-edit.vue

@@ -5,7 +5,7 @@
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
         <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
-          <el-form-item label="所属机构:">
+          <el-form-item label="所属机构:" prop="groupId">
             <org-select :data="institutionList" placeholder="请选择所属机构" v-model="form.groupId"
                         @checkedKeys="checkedKeys"/>
           </el-form-item>
@@ -20,6 +20,16 @@
 
           </el-form-item>
 
+          <el-form-item label="所属工厂:">
+            <el-select style="width: 100%" clearable v-model="form.factoryId" multiple  filterable placeholder="请选择所属工厂">
+              <el-option
+                v-for="item in factoryList"
+                :label="item.name"
+                :value="item.id"
+                :key="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
 
           <el-form-item label="性别:" prop="sex">
             <el-select clearable class="ele-block" v-model="form.sex" placeholder="请选择性别">
@@ -51,17 +61,7 @@
                             placeholder="请选择日期">
             </el-date-picker>
           </el-form-item>
-          <el-form-item label="入职时间:" prop="joinDate">
-            <el-date-picker style="width: 100%" clearable v-model="form.joinDate" type="date" value-format="yyyy-MM-dd"
-                            placeholder="请选择日期">
-            </el-date-picker>
-          </el-form-item>
-          <el-form-item label="毕业院校:" prop="school">
-            <el-input clearable :maxlength="100" v-model="form.school" placeholder="请输入毕业院校"/>
-          </el-form-item>
-          <el-form-item label="微信号:" prop="wxId">
-            <el-input clearable :maxlength="100" v-model="form.wxId" placeholder="请输入微信号"/>
-          </el-form-item>
+
         </el-col>
         <el-col v-bind="styleResponsive ? { sm: 12 } : { span: 12 }">
           <el-form-item label="工号:" prop="jobNumber">
@@ -89,16 +89,21 @@
             <el-input type="number" clearable :maxlength="100" v-model="form.age" placeholder="请输入年龄"
                       onkeyup="value=value.replace(/[^\d.]/g,'')"/>
           </el-form-item>
-          <el-form-item label="所属工厂:">
-            <el-select style="width: 100%" clearable v-model="form.factoryId" filterable placeholder="请选择所属工厂">
-              <el-option
-                v-for="item in factoryList"
-                :label="item.name"
-                :value="item.id"
-                :key="item.id"
-              ></el-option>
-            </el-select>
+
+
+          <el-form-item label="入职时间:" prop="joinDate">
+            <el-date-picker style="width: 100%" clearable v-model="form.joinDate" type="date" value-format="yyyy-MM-dd"
+                            placeholder="请选择日期">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="毕业院校:" prop="school">
+            <el-input clearable :maxlength="100" v-model="form.school" placeholder="请输入毕业院校"/>
           </el-form-item>
+          <el-form-item label="微信号:" prop="wxId">
+            <el-input clearable :maxlength="100" v-model="form.wxId" placeholder="请输入微信号"/>
+          </el-form-item>
+   
+
         </el-col>
       </el-row>
     </el-form>
@@ -154,7 +159,7 @@ export default {
       phone: '',
       age: '',
       accountId: '',
-      factoryId: '',
+      factoryId: [],
       workTypeId: ''
     };
     return {
@@ -163,8 +168,10 @@ export default {
       form: {...defaultForm},
       // 表单验证规则
       rules: {
+        groupId: [{required: true, message: '请选择所属机构', trigger: 'blur'}],
         name: [{required: true, message: '请输入姓名', trigger: 'blur'}],
         sex: [{required: true, message: '请选择性别', trigger: 'blur'}],
+
         email: [
           {pattern: emailReg, message: '邮箱格式不正确', trigger: 'blur'}
         ],

+ 22 - 17
src/views/technology/stepManagement/index.vue

@@ -153,10 +153,17 @@
             width: 55,
             align: 'center'
           },
+
           {
-            prop: 'sort',
-            label: '排序',
-            // sortable: 'custom',
+            align: 'center',
+            prop: 'code',
+            label: '编码',
+            showOverflowTooltip: true,
+            minWidth: 110
+          },
+          {
+            slot: 'name',
+            label: '名称',
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 110
@@ -172,20 +179,7 @@
                 .label;
             }
           },
-          {
-            align: 'center',
-            prop: 'code',
-            label: '编码',
-            showOverflowTooltip: true,
-            minWidth: 110
-          },
-          {
-            slot: 'name',
-            label: '名称',
-            showOverflowTooltip: true,
-            align: 'center',
-            minWidth: 110
-          },
+
           {
             prop: 'status',
             label: '状态',
@@ -196,6 +190,17 @@
               return ['生效', '失效'][_row.status];
             }
           },
+     
+          {
+            prop: 'sort',
+            label: '排序',
+            // sortable: 'custom',
+            showOverflowTooltip: true,
+            align: 'center',
+            minWidth: 110
+          },
+       
+  
           {
             columnKey: 'action',
             label: '操作',

+ 1 - 0
src/views/technology/work/components/user-edit.vue

@@ -160,6 +160,7 @@
           let title = this.isUpdate ? '修改' : '保存';
           saveOrUpdate(this.form)
             .then((msg) => {
+              console.log(999,msg)
               this.form = {};
               this.loading = false;
               this.$message.success(title + msg);

+ 344 - 272
src/views/workforceManagement/team/components/edit.vue

@@ -1,57 +1,116 @@
 <!-- 用户编辑弹窗 -->
 <template>
-  <el-dialog class="ele-dialog-form" :title="title" :visible.sync="visible" :before-close="handleClose"
-    :close-on-click-modal="false" :close-on-press-escape="false" width="1000px">
+  <el-dialog
+    class="ele-dialog-form"
+    :title="title"
+    :visible.sync="visible"
+    :before-close="handleClose"
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+    width="1000px"
+  >
     <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-      <el-card shadow="never" header="基本信息" body-style="padding: 22px 22px 0 22px;">
+      <el-card
+        shadow="never"
+        header="基本信息"
+        body-style="padding: 22px 22px 0 22px;"
+      >
         <el-row>
           <el-col :span="8">
             <el-form-item label="编码:" prop="code" style="margin-bottom: 22px">
-              <el-input clearable :maxlength="20" v-model="form.code" placeholder="请输入" />
+              <el-input
+                clearable
+                :maxlength="20"
+                v-model="form.code"
+                placeholder="请输入"
+              />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="名称:" prop="name" style="margin-bottom: 22px">
-              <el-input clearable :maxlength="20" v-model="form.name" placeholder="请输入" />
+              <el-input
+                clearable
+                :maxlength="20"
+                v-model="form.name"
+                placeholder="请输入"
+              />
             </el-form-item>
           </el-col>
 
           <el-col :span="8" style="margin-bottom: 22px">
-            <el-form-item label="是否首工序:" prop="isFirst">
-              <el-radio-group v-model="form.isFirst">
-                <el-radio-button :label="1">是</el-radio-button>
-                <el-radio-button :label="0">否</el-radio-button>
-              </el-radio-group>
+            <el-form-item label="所属工厂:" prop="factoryId">
+              <el-select
+                style="width: 100%"
+                clearable
+                v-model="form.factoryId"
+                @change="change_factoryId"
+                filterable
+                placeholder="请选择所属工厂"
+              >
+                <el-option
+                  v-for="item in factoryList"
+                  :label="item.name"
+                  :value="item.id"
+                  :key="item.id"
+                ></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
 
-
-
           <el-col :span="8" style="margin-bottom: 22px">
             <el-form-item label="所属厂房:" prop="workshopPlanId">
-              <el-select v-model="form.workshopPlanId" @change="change_factoryId" filterable placeholder="请选择">
-                <el-option v-for="item in factoryList" :key="item.id" :label="item.pathName" :value="item.id">
+              <el-select
+                v-model="form.workshopPlanId"
+                @change="change_workshopPlanId"
+                filterable
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in workshopPlanList"
+                  :key="item.id"
+                  :label="item.pathName"
+                  :value="item.id"
+                >
                 </el-option>
-
               </el-select>
             </el-form-item>
           </el-col>
 
-
-
           <el-col :span="8">
-            <el-form-item label="车间:" prop="workshopId" style="margin-bottom: 22px">
-              <el-select v-model="form.workshopId" @change="change_workshopId" multiple placeholder="请选择">
-                <el-option v-for="item in options.workshopId" :key="item.value" :label="item.label" :value="item.value">
+            <el-form-item
+              label="车间:"
+              prop="workshopId"
+              style="margin-bottom: 22px"
+            >
+              <el-select
+                v-model="form.workshopId"
+                @change="change_workshopId"
+                multiple
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in options.workshopId"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8" style="margin-bottom: 22px">
             <el-form-item label="产线:" prop="productionLineId">
-              <el-select v-model="form.productionLineId" multiple placeholder="请选择">
-                <el-option v-for="item in options.productionLineId" :key="item.value" :label="item.label"
-                  :value="item.value">
+              <el-select
+                v-model="form.productionLineId"
+                multiple
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in options.productionLineId"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
@@ -59,39 +118,50 @@
           <el-col :span="8" style="margin-bottom: 22px">
             <el-form-item label="工作中心:" prop="workCenterIds">
               <div class="location-warp">
-                <el-select v-model="form.workCenterIds" multiple filterable placeholder="请选择">
-                  <el-option v-for="item in options.workCenterIds" :key="item.value" :label="item.label"
-                    :value="item.value">
+                <el-select
+                  v-model="form.workCenterIds"
+                  multiple
+                  clearable
+                  filterable
+                  placeholder="请选择"
+                >
+                  <el-option
+                    v-for="item in options.workCenterIds"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
                   </el-option>
                 </el-select>
               </div>
             </el-form-item>
           </el-col>
 
-
-
-
-
-
           <el-col :span="8" style="margin-bottom: 22px">
             <el-form-item label="生产版本:" prop="produceVersionId">
-              <el-select v-model="form.produceVersionId" filterable placeholder="请选择">
-                <el-option v-for="item in versionList" :key="item.id" :label="item.code + '-' + item.name"
-                  :value="item.id" @click.native="form.produceVersionName = item.name">
+              <el-select
+                v-model="form.produceVersionId"
+                filterable
+                placeholder="请选择"
+              >
+                <el-option
+                  v-for="item in versionList"
+                  :key="item.id"
+                  :label="item.code + '-' + item.name"
+                  :value="item.id"
+                  @click.native="form.produceVersionName = item.name"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
-
-
-
-
-
-
-
         </el-row>
       </el-card>
-      <el-card shadow="never" header="员工配置" body-style="padding: 22px 22px 0 22px;">
+      <el-card
+        shadow="never"
+        header="员工配置"
+        body-style="padding: 22px 22px 0 22px;"
+      >
         <userTable ref="userTable"></userTable>
       </el-card>
     </el-form>
@@ -105,259 +175,261 @@
 </template>
 
 <script>
-import {
-  listWorkshopByParentId,
-  listFactoryLine,
-  saveteam,
-  updateteam
-} from '@/api/workforceManagement/team';
-import { pageList } from '@/api/technology/version/version.js';
-import work from '@/api/technology/work';
-import userTable from './userTable.vue';
-import { getFactoryarea } from '@/api/factoryModel';
-export default {
-  components: {
-    userTable
-  },
-  data() {
-
-    var checkVersion = (rule, value, callback) => {
-      if (this.form.isFirst == 1 && this.form.produceVersionId == '') {
-        callback(new Error('请选择生产版本'));
-      } else {
-        callback();
-      }
-    };
-
-
-    const defaultForm = function () {
+  import {
+    listWorkshopByParentId,
+    listFactoryLine,
+    saveteam,
+    updateteam
+  } from '@/api/workforceManagement/team';
+  import { pageList } from '@/api/technology/version/version.js';
+  import work from '@/api/technology/work';
+  import userTable from './userTable.vue';
+  import { getFactoryarea } from '@/api/factoryModel';
+  export default {
+    components: {
+      userTable
+    },
+    data() {
+      const defaultForm = function () {
+        return {
+          id: '',
+          code: '',
+          leaderUserId: '',
+          name: '',
+          productionLineId: [],
+          userIds: '',
+          userNumber: '',
+          workshopPlanId: null,
+          workCenterIds: [],
+          workshopId: [],
+          factoryId: '',
+          produceVersionId: ''
+        };
+      };
       return {
-        id: '',
-        code: '',
-        leaderUserId: '',
-        name: '',
-        productionLineId: [],
-        userIds: '',
-        userNumber: '',
-        workshopPlanId: null,
-        workCenterIds: [],
-        workshopId: [],
-        isFirst: 0,
-        produceVersionId: ''
+        defaultForm,
+        factoryList: [],
+
+        // 表单数据
+        form: { ...defaultForm() },
+        // 表单验证规则
+        rules: {
+          code: [{ required: true, message: '请输入', trigger: 'blur' }],
+          name: [{ required: true, message: '请输入', trigger: 'blur' }],
+          factoryId: [
+            { required: true, message: '请选择所属工厂', trigger: 'change' }
+          ],
+          workshopPlanId: [
+            { required: true, message: '请选择', trigger: 'change' }
+          ],
+          workshopId: [
+            { required: true, message: '请输入', trigger: 'change' }
+          ],
+          productionLineId: [
+            { required: true, message: '请输入', trigger: 'change' }
+          ],
+
+          workCenterIds: [
+            { required: true, message: '请选择工作中心', trigger: 'change' }
+          ]
+        },
+        visible: false,
+        type: '', // add/edit
+        loading: false,
+        options: {
+          workshopId: [],
+          productionLineId: [],
+          workCenterIds: []
+        },
+
+        versionList: [],
+        workshopPlanList: []
       };
-    };
-    return {
-      defaultForm,
-      // 表单数据
-      form: { ...defaultForm() },
-      // 表单验证规则
-      rules: {
-        code: [{ required: true, message: '请输入', trigger: 'blur' }],
-        name: [{ required: true, message: '请输入', trigger: 'blur' }],
-        workshopPlanId: [
-          { required: true, message: '请选择', trigger: 'change' }
-        ],
-        workshopId: [{ required: true, message: '请输入', trigger: 'change' }],
-        productionLineId: [
-          { required: true, message: '请输入', trigger: 'change' }
-        ],
-        produceVersionId: [
-          { validator: checkVersion, trigger: 'blur' }
+    },
+    computed: {
+      title() {
+        switch (this.type) {
+          case 'add':
+            return '新增班组';
+            break;
+          case 'edit':
+            return '编辑班组';
+            break;
+          default:
+            break;
+        }
+      }
+    },
+    created() {
+      this.getFactoryList();
+    },
+    methods: {
+      async open(type, row) {
+        this.type = type;
+        this.visible = true;
+        if (type == 'edit') {
+          for (const key of Object.keys(this.form)) {
+            if (row[key]) {
+              this.form[key] = row[key];
+            }
+          }
 
-        ],
-        workCenterIds: [
-          { required: true, message: '请选择工作中心', trigger: 'change' }
-        ]
-      },
-      visible: false,
-      type: '', // add/edit
-      loading: false,
-      options: {
-        workshopId: [],
-        productionLineId: [],
-        workCenterIds: []
+          // 人员反显
+          this.$nextTick(() => {
+            if (row.userVOList) {
+              this.$refs.userTable.confirmStaffSelection(
+                JSON.parse(JSON.stringify(row.userVOList))
+              );
+            }
+            // 班组长
+            this.$refs.userTable.setLeaderId(row.leaderUserId);
+          });
+
+          // 获取下拉列表
+          await this.getlistWorkshopByParentId();
+          await this.getlistFactoryLineByParentId();
+        }
+        this.getVersionList();
+        this.getlistByProductionLineId();
       },
+      /* 保存编辑 */
+      save() {
+        this.$refs.form.validate((valid) => {
+          if (!valid) {
+            return false;
+          }
+          this.loading = true;
+          let userIds = this.$refs.userTable.datasource.map((n) => n.id);
+          if (userIds.length <= 0) {
+            this.$message.error('请选择员工');
+            this.loading = false;
+            return false;
+          }
 
-      versionList: [],
-      factoryList: []
-    };
-  },
-  computed: {
-    title() {
-      switch (this.type) {
-        case 'add':
-          return '新增班组';
-          break;
-        case 'edit':
-          return '编辑班组';
-          break;
-        default:
-          break;
-      }
-    }
-  },
-  created() {
-    this.getFactoryarea()
-  },
-  methods: {
-    async open(type, row) {
-      this.type = type;
-      this.visible = true;
-      if (type == 'edit') {
-        for (const key of Object.keys(this.form)) {
-          if (row[key]) {
-            this.form[key] = row[key];
+          let par = this.form;
+          par.userIds = userIds;
+          par.leaderUserId = this.$refs.userTable.getTwi();
+          par.userNumber = par.userIds.length;
+          if (this.type == 'add') {
+            delete par.id;
           }
-        }
+          const saveOrUpdate = this.type == 'add' ? saveteam : updateteam;
+          saveOrUpdate(par)
+            .then((msg) => {
+              this.loading = false;
+              this.$message.success(msg);
+              this.handleClose();
+              this.$emit('done');
+            })
+            .catch((e) => {
+              this.loading = false;
+              // this.$message.error(e.message);
+            });
+        });
+      },
 
-        // 人员反显
+      // 重置表单
+      restForm() {
+        this.form = { ...this.defaultForm() };
         this.$nextTick(() => {
-          if (row.userVOList) {
-            this.$refs.userTable.confirmStaffSelection(
-              JSON.parse(JSON.stringify(row.userVOList))
-            );
-          }
-          // 班组长
-          this.$refs.userTable.setLeaderId(row.leaderUserId);
+          this.$refs.form.clearValidate();
         });
+      },
+      handleClose() {
+        this.restForm();
+        this.$refs.userTable.restTable();
+        this.visible = false;
+        this.loading = false;
+      },
 
-        // 获取下拉列表
-        await this.getlistWorkshopByParentId();
-        await this.getlistFactoryLineByParentId();
+      async getFactoryList() {
+        const { list } = await getFactoryarea({
+          pageNum: 1,
+          size: 999,
+          type: 1
+        });
+        this.factoryList = list || [];
+      },
 
-      }
-      this.getVersionList()
-      this.getlistByProductionLineId();
-    },
-    /* 保存编辑 */
-    save() {
-      this.$refs.form.validate((valid) => {
-        if (!valid) {
-          return false;
-        }
-        this.loading = true;
-        let userIds = this.$refs.userTable.datasource.map((n) => n.id);
-        if (userIds.length <= 0) {
-          this.$message.error('请选择员工');
-          this.loading = false;
-          return false;
-        }
+      // 获取厂房
+      change_factoryId() {
+        let par = {
+          type: 2,
+          parentId: this.form.factoryId,
+          size: 9999
+        };
+        getFactoryarea(par).then((res) => {
+          this.workshopPlanList = res.list;
+        });
+      },
 
-        let par = this.form;
-        par.userIds = userIds;
-        par.leaderUserId = this.$refs.userTable.getTwi();
-        par.userNumber = par.userIds.length;
-        if (this.type == 'add') {
-          delete par.id;
-        }
-        const saveOrUpdate = this.type == 'add' ? saveteam : updateteam
-        saveOrUpdate(par)
-          .then((msg) => {
-            this.loading = false;
-            this.$message.success(msg);
-            this.handleClose();
-            this.$emit('done');
-          })
-          .catch((e) => {
-            this.loading = false;
-            // this.$message.error(e.message);
+      // 获取车间
+      getlistWorkshopByParentId() {
+        return listWorkshopByParentId(this.form.workshopPlanId).then((res) => {
+          this.options.workshopId = res.map((n) => {
+            return {
+              value: n.id,
+              label: n.name
+            };
           });
-      });
-    },
-    // 重置表单
-    restForm() {
-      this.form = { ...this.defaultForm() };
-      this.$nextTick(() => {
-        this.$refs.form.clearValidate();
-      });
-    },
-    handleClose() {
-      this.restForm();
-      this.$refs.userTable.restTable();
-      this.visible = false;
-      this.loading = false;
-    },
-
-    // 获取厂房
-    getFactoryarea() {
-      let par = {
-        type: 2,
-        size: 9999
-      };
-      getFactoryarea(par).then((res) => {
-        this.factoryList = res.list;
-      });
-    },
-
-
-    // 获取车间
-    getlistWorkshopByParentId() {
-      return listWorkshopByParentId(this.form.workshopPlanId).then((res) => {
-        this.options.workshopId = res.map((n) => {
-          return {
-            value: n.id,
-            label: n.name
-          };
         });
-      });
-    },
-    // 获取产线
-    getlistFactoryLineByParentId() {
-      return listFactoryLine(this.form.workshopId).then((res) => {
-        this.options.productionLineId = res.map((n) => {
-          return {
-            value: n.id,
-            label: n.name
-          };
+      },
+      // 获取产线
+      getlistFactoryLineByParentId() {
+        return listFactoryLine(this.form.workshopId).then((res) => {
+          this.options.productionLineId = res.map((n) => {
+            return {
+              value: n.id,
+              label: n.name
+            };
+          });
         });
-      });
-    },
-    // 获取工位
-    getlistByProductionLineId() {
-      return work.list({ pageNum: 1, size: -1 }).then((res) => {
-        this.options.workCenterIds = res.list.map((n) => {
-          return {
-            value: n.id,
-            label: n.name
-          };
+      },
+      // 获取工位
+      getlistByProductionLineId() {
+        return work.list({ pageNum: 1, size: -1 }).then((res) => {
+          this.options.workCenterIds = res.list.map((n) => {
+            return {
+              value: n.id,
+              label: n.name
+            };
+          });
         });
-      });
-    },
-
-    change_factoryId() {
-      this.form.workshopId = ''
-      this.options.workshopId = []
-      this.form.productionLineId = '';
-      this.options.productionLineId = [];
+      },
 
-      this.getlistWorkshopByParentId()
-    },
-    // 选择车间
-    change_workshopId() {
-      this.form.productionLineId = '';
+      change_workshopPlanId() {
+        this.form.workshopId = '';
+        this.options.workshopId = [];
+        this.form.productionLineId = '';
+        this.options.productionLineId = [];
 
-      this.options.productionLineId = [];
+        this.getlistWorkshopByParentId();
+      },
+      // 选择车间
+      change_workshopId() {
+        this.form.productionLineId = '';
 
-      this.getlistFactoryLineByParentId();
-    },
+        this.options.productionLineId = [];
 
-    async getVersionList() {
-      const res = await pageList({
-        pageNum: 1,
-        size: 100
-      });
-      this.versionList = res.list
-    },
+        this.getlistFactoryLineByParentId();
+      },
 
-  }
-};
+      async getVersionList() {
+        const res = await pageList({
+          pageNum: 1,
+          size: 100
+        });
+        this.versionList = res.list;
+      }
+    }
+  };
 </script>
 <style lang="scss" scoped>
-.location-warp {
-  display: flex;
+  .location-warp {
+    display: flex;
 
-  .detail {
-    margin-left: 10px;
+    .detail {
+      margin-left: 10px;
+    }
   }
-}
 </style>