From 7098c24f7553a747871d8d9ddfe804872e598758 Mon Sep 17 00:00:00 2001
From: qushaowei <qushaowei@163.com>
Date: 星期五, 26 一月 2024 10:50:08 +0800
Subject: [PATCH] 班组分配必填取消

---
 src/views/system/modules/UserModal.vue | 1130 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 642 insertions(+), 488 deletions(-)

diff --git a/src/views/system/modules/UserModal.vue b/src/views/system/modules/UserModal.vue
index e095ec0..5543680 100644
--- a/src/views/system/modules/UserModal.vue
+++ b/src/views/system/modules/UserModal.vue
@@ -7,604 +7,758 @@
     :closable="true"
     @close="handleCancel"
     :visible="visible"
-    style="height: 100%;overflow: auto;padding-bottom: 53px;">
+    style="height: 100%;overflow: auto;padding-bottom: 53px;"
+  >
 
     <template slot="title">
       <div style="width: 100%;">
         <span>{{ title }}</span>
         <span style="display:inline-block;width:calc(100% - 51px);padding-right:10px;text-align: right">
-          <a-button @click="toggleScreen" icon="appstore" style="height:20px;width:20px;border:0px"></a-button>
+          <a-button
+            @click="toggleScreen"
+            icon="appstore"
+            style="height:20px;width:20px;border:0px"
+          ></a-button>
         </span>
       </div>
 
     </template>
 
     <a-spin :spinning="confirmLoading">
-      <a-form-model ref="form" :model="model" :rules="validatorRules">
+      <a-form-model
+        ref="form"
+        :model="model"
+        :rules="validatorRules"
+      >
 
-        <a-form-model-item label="鐢ㄦ埛璐﹀彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="username">
-          <a-input placeholder="璇疯緭鍏ョ敤鎴疯处鍙�" v-model="model.username" :readOnly="!!model.id"/>
+        <a-form-model-item
+          label="鐢ㄦ埛璐﹀彿"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="username"
+        >
+          <a-input
+            placeholder="璇疯緭鍏ョ敤鎴疯处鍙�"
+            v-model="model.username"
+            :readOnly="!!model.id"
+          />
         </a-form-model-item>
 
         <template v-if="!model.id">
-          <a-form-model-item label="鐧诲綍瀵嗙爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="password" >
-            <a-input type="password" placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�" v-model="model.password" />
+          <a-form-model-item
+            label="鐧诲綍瀵嗙爜"
+            :labelCol="labelCol"
+            :wrapperCol="wrapperCol"
+            prop="password"
+          >
+            <a-input
+              type="password"
+              placeholder="璇疯緭鍏ョ櫥褰曞瘑鐮�"
+              v-model="model.password"
+            />
           </a-form-model-item>
 
-          <a-form-model-item label="纭瀵嗙爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmpassword" >
-            <a-input type="password" @blur="handleConfirmBlur" placeholder="璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�" v-model="model.confirmpassword"/>
+          <a-form-model-item
+            label="纭瀵嗙爜"
+            :labelCol="labelCol"
+            :wrapperCol="wrapperCol"
+            prop="confirmpassword"
+          >
+            <a-input
+              type="password"
+              @blur="handleConfirmBlur"
+              placeholder="璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�"
+              v-model="model.confirmpassword"
+            />
           </a-form-model-item>
         </template>
 
-        <a-form-model-item label="鐢ㄦ埛濮撳悕" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="realname">
-          <a-input placeholder="璇疯緭鍏ョ敤鎴峰鍚�" v-model="model.realname" />
+        <a-form-model-item
+          label="鐢ㄦ埛濮撳悕"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="realname"
+        >
+          <a-input
+            placeholder="璇疯緭鍏ョ敤鎴峰鍚�"
+            v-model="model.realname"
+          />
         </a-form-model-item>
 
-        <a-form-model-item label="宸ュ彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workNo">
-          <a-input placeholder="璇疯緭鍏ュ伐鍙�" v-model="model.workNo" />
+        <a-form-model-item
+          label="宸ュ彿"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="workNo"
+        >
+          <a-input
+            placeholder="璇疯緭鍏ュ伐鍙�"
+            v-model="model.workNo"
+          />
         </a-form-model-item>
 
         <!--<a-form-model-item label="鑱屽姟" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
-          <!--<j-select-position placeholder="璇烽�夋嫨鑱屽姟" :multiple="false" v-model="model.post"/>-->
+        <!--<j-select-position placeholder="璇烽�夋嫨鑱屽姟" :multiple="false" v-model="model.post"/>-->
         <!--</a-form-model-item>-->
 
-        <a-form-model-item label="瑙掕壊鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!roleDisabled" >
+        <a-form-model-item
+          label="瑙掕壊鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-show="!roleDisabled"
+        >
           <j-multi-select-tag
             :disabled="disableSubmit"
             v-model="model.selectedroles"
             :options="rolesOptions"
-            placeholder="璇烽�夋嫨瑙掕壊">
+            placeholder="璇烽�夋嫨瑙掕壊"
+          >
           </j-multi-select-tag>
         </a-form-model-item>
 
         <!--閮ㄩ棬鍒嗛厤-->
-        <a-form-model-item v-if="isDepartType== 0" label="閮ㄩ棬鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!departDisabled">
-          <j-select-depart v-model="model.selecteddeparts" :multi="true" @back="backDepartInfo" :backDepart="true" :treeOpera="true">></j-select-depart>
+        <a-form-model-item
+          v-if="isDepartType== 0"
+          label="閮ㄩ棬鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-show="!departDisabled"
+        >
+          <j-select-depart
+            v-model="model.selecteddeparts"
+            :multi="true"
+            @back="backDepartInfo"
+            :backDepart="true"
+            :treeOpera="true"
+          >></j-select-depart>
         </a-form-model-item>
 
         <!--杞﹂棿鍒嗛厤-->
-        <a-form-model-item label="杞﹂棿鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled">
-          <j-select-production  v-model="model.selectedProduction" :multi="true" @back="backProductionInfo" :backProduction="true" :treeProductOpera="true"></j-select-production>
+        <a-form-model-item
+          label="杞﹂棿鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-show="!productionDisabled"
+        >
+          <j-select-production
+            v-model="model.selectedProduction"
+            :multi="true"
+            @back="backProductionInfo"
+            :backProduction="true"
+            :treeProductOpera="true"
+          ></j-select-production>
         </a-form-model-item>
-        <a-form-model-item label="鐝粍鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamId">
+        <a-form-model-item
+          label="鐝粍鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="teamId"
+        >
           <j-dict-select-tag
-          v-model="model.teamId"
-          :triggerChange="true"
-          dictCode="mom_base_team,name,id,del_flag = 0"
-          placeholder="璇风淮鎶ょ彮缁�"
+            v-model="model.teamId"
+            :triggerChange="true"
+            dictCode="mom_base_team,name,id,del_flag = 0"
+            placeholder="璇风淮鎶ょ彮缁�"
           ></j-dict-select-tag>
         </a-form-model-item>
-        <a-form-model-item label="涓績鍒嗛厤" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="areaId">
+        <a-form-model-item
+          label="涓績鍒嗛厤"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="areaId"
+        >
           <j-dict-select-tag
-          v-model="model.areaId"
-          :triggerChange="true"
-          dictCode="mom_base_area,name,id,del_flag = 0"
-          placeholder="璇风淮鎶や腑蹇�"
+            v-model="model.areaId"
+            :triggerChange="true"
+            dictCode="mom_base_area,name,id,del_flag = 0"
+            placeholder="璇风淮鎶や腑蹇�"
           ></j-dict-select-tag>
         </a-form-model-item>
-        <a-form-model-item label="璐熻矗閮ㄩ棬" :labelCol="labelCol" :wrapperCol="wrapperCol"  v-if="departIdShow==true">
+        <a-form-model-item
+          label="璐熻矗閮ㄩ棬"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          v-if="departIdShow==true"
+        >
           <j-multi-select-tag
             :disabled="disableSubmit"
             v-model="model.departIds"
             :options="nextDepartOptions"
-            placeholder="璇烽�夋嫨璐熻矗閮ㄩ棬">
+            placeholder="璇烽�夋嫨璐熻矗閮ㄩ棬"
+          >
           </j-multi-select-tag>
         </a-form-model-item>
 
-        <a-form-model-item label="澶村儚" :labelCol="labelCol" :wrapperCol="wrapperCol">
-          <j-image-upload class="avatar-uploader" text="涓婁紶" v-model="model.avatar" ></j-image-upload>
+        <a-form-model-item
+          label="澶村儚"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+        >
+          <j-image-upload
+            class="avatar-uploader"
+            text="涓婁紶"
+            v-model="model.avatar"
+          ></j-image-upload>
         </a-form-model-item>
 
-        <a-form-model-item label="鐢熸棩" :labelCol="labelCol" :wrapperCol="wrapperCol">
+        <a-form-model-item
+          label="鐢熸棩"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+        >
           <a-date-picker
             style="width: 100%"
             placeholder="璇烽�夋嫨鐢熸棩"
             v-model="model.birthday"
             :format="dateFormat"
-            :getCalendarContainer="node => node.parentNode"/>
+            :getCalendarContainer="node => node.parentNode"
+          />
         </a-form-model-item>
 
-        <a-form-model-item label="鎬у埆" :labelCol="labelCol" :wrapperCol="wrapperCol">
-          <a-select  v-model="model.sex"  placeholder="璇烽�夋嫨鎬у埆" :getPopupContainer= "(target) => target.parentNode">
+        <a-form-model-item
+          label="鎬у埆"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+        >
+          <a-select
+            v-model="model.sex"
+            placeholder="璇烽�夋嫨鎬у埆"
+            :getPopupContainer="(target) => target.parentNode"
+          >
             <a-select-option :value="1">鐢�</a-select-option>
             <a-select-option :value="2">濂�</a-select-option>
           </a-select>
         </a-form-model-item>
 
-        <a-form-model-item label="閭" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="email">
-          <a-input placeholder="璇疯緭鍏ラ偖绠�" v-model="model.email" />
+        <a-form-model-item
+          label="閭"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="email"
+        >
+          <a-input
+            placeholder="璇疯緭鍏ラ偖绠�"
+            v-model="model.email"
+          />
         </a-form-model-item>
 
-        <a-form-model-item label="鎵嬫満鍙风爜" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phone">
-          <a-input placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" v-model="model.phone" />
+        <a-form-model-item
+          label="鎵嬫満鍙风爜"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="phone"
+        >
+          <a-input
+            placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�"
+            v-model="model.phone"
+          />
         </a-form-model-item>
 
-        <a-form-model-item label="搴ф満" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="telephone">
-          <a-input placeholder="璇疯緭鍏ュ骇鏈�" v-model="model.telephone" />
+        <a-form-model-item
+          label="搴ф満"
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="telephone"
+        >
+          <a-input
+            placeholder="璇疯緭鍏ュ骇鏈�"
+            v-model="model.telephone"
+          />
         </a-form-model-item>
 
         <!--<a-form-model-item label="宸ヤ綔娴佸紩鎿�" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
-          <!--<j-dict-select-tag  v-model="model.activitiSync"  placeholder="璇烽�夋嫨鏄惁鍚屾宸ヤ綔娴佸紩鎿�" :type="'radio'" dictCode="activiti_sync"/>-->
+        <!--<j-dict-select-tag  v-model="model.activitiSync"  placeholder="璇烽�夋嫨鏄惁鍚屾宸ヤ綔娴佸紩鎿�" :type="'radio'" dictCode="activiti_sync"/>-->
         <!--</a-form-model-item>-->
 
       </a-form-model>
     </a-spin>
 
-
-    <div class="drawer-bottom-button" v-show="!disableSubmit">
-      <a-popconfirm title="纭畾鏀惧純缂栬緫锛�" @confirm="handleCancel" okText="纭畾" cancelText="鍙栨秷">
+    <div
+      class="drawer-bottom-button"
+      v-show="!disableSubmit"
+    >
+      <a-popconfirm
+        title="纭畾鏀惧純缂栬緫锛�"
+        @confirm="handleCancel"
+        okText="纭畾"
+        cancelText="鍙栨秷"
+      >
         <a-button style="margin-right: .8rem">鍙栨秷</a-button>
       </a-popconfirm>
-      <a-button @click="handleSubmit" type="primary" :loading="confirmLoading">鎻愪氦</a-button>
+      <a-button
+        @click="handleSubmit"
+        type="primary"
+        :loading="confirmLoading"
+      >鎻愪氦</a-button>
     </div>
   </a-drawer>
 </template>
 
 <script>
-  import moment from 'moment'
-  import Vue from 'vue'
-  import { ACCESS_TOKEN } from "@/store/mutation-types"
-  import { getAction } from '@/api/manage'
-  import { addUser,editUser,queryUserRole,queryall } from '@/api/api'
-  import { disabledAuthFilter } from "@/utils/authFilter"
-  import { duplicateCheck } from '@/api/api'
-  import JSelectProduction from '../../../components/jeecgbiz/JSelectProduction'
-  import {mapActions} from 'vuex'
-  import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
+import moment from 'moment'
+import Vue from 'vue'
+import { ACCESS_TOKEN } from "@/store/mutation-types"
+import { getAction } from '@/api/manage'
+import { addUser, editUser, queryUserRole, queryall } from '@/api/api'
+import { disabledAuthFilter } from "@/utils/authFilter"
+import { duplicateCheck } from '@/api/api'
+import JSelectProduction from '../../../components/jeecgbiz/JSelectProduction'
+import { mapActions } from 'vuex'
+import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
 
-  export default {
-    name: "UserModal",
-    components: {
-      JSelectProduction
-    },
-    data () {
-      return {
-        departDisabled: false, //鏄惁鏄垜鐨勯儴闂ㄨ皟鐢ㄨ椤甸潰
-        productionDisabled: false, //鏄惁鏄垜鐨勮溅闂磋皟鐢ㄨ椤甸潰
-        roleDisabled: false, //鏄惁鏄鑹茬淮鎶よ皟鐢ㄨ椤甸潰
-        modalWidth:800,
-        drawerWidth:700,
-        modaltoggleFlag:true,
-        confirmDirty: false,
-        userId:"", //淇濆瓨鐢ㄦ埛id
-        disableSubmit:false,
-        dateFormat:"YYYY-MM-DD",
-        validatorRules:{
-          username:[{required: true, message: '璇疯緭鍏ョ敤鎴疯处鍙�!'},
-                    {validator: this.validateUsername,}],
-          password: [{required: true,pattern:/^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/,message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!'},
-                     {validator: this.validateToNextPassword,trigger: 'change'}],
-          confirmpassword: [{required: true, message: '璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�!',},
-                            { validator: this.compareToFirstPassword,}],
-          realname:[{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕绉�!' }],
-          phone: [{required: false, message: '璇疯緭鍏ユ墜鏈哄彿!'}, {validator: this.validatePhone}],
-          email: [{validator: this.validateEmail}],
-          roles:{},
-          workNo:[ { required: true, message: '璇疯緭鍏ュ伐鍙�' },
-                  { validator: this.validateWorkNo }],
-          telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' },],
-          teamId:[ { required: true, message: '璇风淮鎶ょ彮缁�' }]
+export default {
+  name: "UserModal",
+  components: {
+    JSelectProduction
+  },
+  data() {
+    return {
+      departDisabled: false, //鏄惁鏄垜鐨勯儴闂ㄨ皟鐢ㄨ椤甸潰
+      productionDisabled: false, //鏄惁鏄垜鐨勮溅闂磋皟鐢ㄨ椤甸潰
+      roleDisabled: false, //鏄惁鏄鑹茬淮鎶よ皟鐢ㄨ椤甸潰
+      modalWidth: 800,
+      drawerWidth: 700,
+      modaltoggleFlag: true,
+      confirmDirty: false,
+      userId: "", //淇濆瓨鐢ㄦ埛id
+      disableSubmit: false,
+      dateFormat: "YYYY-MM-DD",
+      validatorRules: {
+        username: [{ required: true, message: '璇疯緭鍏ョ敤鎴疯处鍙�!' },
+        { validator: this.validateUsername, }],
+        password: [{ required: true, pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, message: '瀵嗙爜鐢�8浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!' },
+        { validator: this.validateToNextPassword, trigger: 'change' }],
+        confirmpassword: [{ required: true, message: '璇烽噸鏂拌緭鍏ョ櫥褰曞瘑鐮�!', },
+        { validator: this.compareToFirstPassword, }],
+        realname: [{ required: true, message: '璇疯緭鍏ョ敤鎴峰悕绉�!' }],
+        phone: [{ required: false, message: '璇疯緭鍏ユ墜鏈哄彿!' }, { validator: this.validatePhone }],
+        email: [{ validator: this.validateEmail }],
+        roles: {},
+        workNo: [{ required: true, message: '璇疯緭鍏ュ伐鍙�' },
+        { validator: this.validateWorkNo }],
+        telephone: [{ pattern: /^0\d{2,3}-[1-9]\d{6,7}$/, message: '璇疯緭鍏ユ纭殑搴ф満鍙风爜' },],
+        teamId: [{ required: false, message: '璇风淮鎶ょ彮缁�' }]
 
-        },
-        departIdShow:false,
-        title:"鎿嶄綔",
-        visible: false,
-        model: {},
-        labelCol: {
-          xs: { span: 24 },
-          sm: { span: 5 },
-        },
-        wrapperCol: {
-          xs: { span: 24 },
-          sm: { span: 16 },
-        },
-        uploadLoading:false,
-        confirmLoading: false,
-        headers:{},
-        url: {
-          fileUpload: window._CONFIG['domianURL']+"sys/common/upload",
-          userWithDepart: "/sys/user/userDepartList", // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url
-          //寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬭溅闂翠俊鎭渶瑕佺殑url
-          userProductionList: '/sys/user/userProductionList',
-          userId:"/sys/user/generateUserId", // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
-          syncUserByUserName:"/act/process/extActProcess/doSyncUserByUserName",//鍚屾鐢ㄦ埛鍒板伐浣滄祦
-          queryTenantList: '/sys/tenant/queryList'
-        },
-        tenantsOptions: [],
-        rolesOptions:[],
-        nextDepartOptions:[],
-        nextProductionOptions:[],
-        isDepartType:'',
+      },
+      departIdShow: false,
+      title: "鎿嶄綔",
+      visible: false,
+      model: {},
+      labelCol: {
+        xs: { span: 24 },
+        sm: { span: 5 },
+      },
+      wrapperCol: {
+        xs: { span: 24 },
+        sm: { span: 16 },
+      },
+      uploadLoading: false,
+      confirmLoading: false,
+      headers: {},
+      url: {
+        fileUpload: window._CONFIG['domianURL'] + "sys/common/upload",
+        userWithDepart: "/sys/user/userDepartList", // 寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬮儴闂ㄤ俊鎭渶瑕佺殑url
+        //寮曞叆涓烘寚瀹氱敤鎴锋煡鐪嬭溅闂翠俊鎭渶瑕佺殑url
+        userProductionList: '/sys/user/userProductionList',
+        userId: "/sys/user/generateUserId", // 寮曞叆鐢熸垚娣诲姞鐢ㄦ埛鎯呭喌涓嬬殑url
+        syncUserByUserName: "/act/process/extActProcess/doSyncUserByUserName",//鍚屾鐢ㄦ埛鍒板伐浣滄祦
+        queryTenantList: '/sys/tenant/queryList'
+      },
+      tenantsOptions: [],
+      rolesOptions: [],
+      nextDepartOptions: [],
+      nextProductionOptions: [],
+      isDepartType: '',
 
+    }
+  },
+  watch: {
+    visible: {
+      handler(value) {
+        if (value) this.initDictData('password_length')
       }
-    },
-    watch:{
-      visible:{
-        handler(value){
-          if(value) this.initDictData('password_length')
-        }
-      }
-    },
-    created () {
-      const token = Vue.ls.get(ACCESS_TOKEN);
-      this.headers = {"X-Access-Token":token}
-      this.initRoleList()
-      this.initTenantList()
-      this.queryTreeData()
-    },
-    computed:{
-      uploadAction:function () {
-        return this.url.fileUpload;
-      }
-    },
-    methods: {
-      ...mapActions(['QueryDepartTree']),
-      queryTreeData() {
-        this.QueryDepartTree().then(res => {
-          if (res.success) {
-            this.isDepartType = res.result[0].value
-          } else {
-            // this.$message.warn(res.message)
-            this.$notification.warning({
-              message:'娑堟伅',
-              description:res.message
-            });
-          }
-        }).finally(() =>{
-        })
-      },
-      add () {
-        this.refresh();
-        this.edit({activitiSync:'1',userIdentity:1});
-      },
-      edit (record) {
-        let that = this;
-        that.visible = true;
-        //鏍规嵁灞忓箷瀹藉害鑷�傚簲鎶藉眽瀹藉害
-        this.resetScreenSize();
-        that.userId = record.id;
-
-        that.model = Object.assign({},{selectedroles:'',selecteddeparts:''}, record);
-        that.model = Object.assign({},{selectedroles:'',selectedProduction:''}, record);
-        //韬唤涓轰笂绾ф樉绀鸿礋璐i儴闂紝鍚﹀垯涓嶆樉绀�
-        if(this.model.userIdentity==2){
-          this.departIdShow=true;
-        }else{
-          this.departIdShow=false;
-        }
-
-        if(record.hasOwnProperty("id")){
-          that.getUserRoles(record.id);
-          that.getUserDeparts(record.id);
-        }
-        console.log('that.model',that.model)
-      },
-      isDisabledAuth(code){
-        return disabledAuthFilter(code);
-      },
-      //绐楀彛鏈�澶у寲鍒囨崲
-      toggleScreen(){
-        if(this.modaltoggleFlag){
-          this.modalWidth = window.innerWidth;
-        }else{
-          this.modalWidth = 800;
-        }
-        this.modaltoggleFlag = !this.modaltoggleFlag;
-      },
-      // 鏍规嵁灞忓箷鍙樺寲,璁剧疆鎶藉眽灏哄
-      resetScreenSize(){
-        let screenWidth = document.body.clientWidth;
-        if(screenWidth < 500){
-          this.drawerWidth = screenWidth;
-        }else{
-          this.drawerWidth = 700;
-        }
-      },
-      //鍒濆鍖栫鎴峰瓧鍏�
-      initTenantList(){
-        getAction(this.url.queryTenantList).then(res=>{
-          if(res.success){
-            this.tenantsOptions = res.result.map((item,index,arr)=>{
-              let c = {label:item.name, value: item.id+""}
-              return c;
-            })
-            console.log('this.tenantsOptions: ',this.tenantsOptions)
-          }
-        })
-      },
-      //鍒濆鍖栬鑹插瓧鍏�
-      initRoleList(){
-        queryall().then((res)=>{
-          if(res.success){
-            this.rolesOptions = res.result.map((item,index,arr)=>{
-              let c = {label:item.roleName, value:item.id}
-              return c;
-            })
-            console.log('this.rolesOptions: ',this.rolesOptions)
-          }
-        });
-      },
-      getUserRoles(userid){
-        queryUserRole({userid:userid}).then((res)=>{
-          if(res.success){
-            this.model.selectedroles = res.result.join(",");
-            console.log('that.model.selectedroles=',this.model.selectedroles)
-          }
-        });
-      },
-      getUserDeparts(userid){
-        let that = this;
-        //閮ㄩ棬鐨剈rl
-        getAction(that.url.userWithDepart,{userId:userid}).then((res)=>{
-          if(res.success){
-            let departOptions=[];
-            let selectDepartKeys=[]
-            for (let i = 0; i < res.result.length; i++) {
-              selectDepartKeys.push(res.result[i].key);
-              //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
-              departOptions.push({
-                value: res.result[i].key,
-                label: res.result[i].title
-              })
-            }
-
-            that.model.selecteddeparts = selectDepartKeys.join(",")
-            that.model.selectedProduction = selectDepartKeys.join(",")
-
-            that.nextDepartOptions=departOptions;
-            console.log('that.nextDepartOptions=',that.nextDepartOptions)
-          }
-        })
-
-        getAction(that.url.userProductionList,{userId:userid}).then((res)=>{
-          if(res.success){
-            let ProductionOptions=[];
-            let selectProductKeys=[]
-            for (let i = 0; i < res.result.length; i++) {
-              selectProductKeys.push(res.result[i].key);
-              //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
-              ProductionOptions.push({
-                value: res.result[i].key,
-                label: res.result[i].title
-              })
-            }
-
-            that.model.selectedProduction = selectProductKeys.join(",")
-
-            that.nextProductionOptions=ProductionOptions;
-            console.log('that.nextProductionOptions=',that.nextProductionOptions)
-          }
-        })
-      //杞﹂棿鐨剈rl
-      },
-      backDepartInfo(info) {
-        this.model.departIds = this.model.selecteddeparts;
-        this.nextDepartOptions = info.map((item,index,arr)=>{
-          let c = {label:item.text, value: item.value+""}
-          return c;
-        })
-      },
-      backProductionInfo(info) {
-        this.model.productionIds = this.model.selectedProduction;
-        this.nextProductionOptions = info.map((item,index,arr)=>{
-          let c = {label:item.text, value: item.value+""}
-          return c;
-        })
-      },
-
-      refresh () {
-        this.userId=""
-        this.nextDepartOptions=[];
-        this.nextProductionOptions = [];
-        this.departIdShow=false;
-      },
-      close () {
-        this.$emit('close');
-        this.visible = false;
-        this.disableSubmit = false;
-        this.nextDepartOptions=[];
-        this.nextProductionOptions = []
-        this.departIdShow=false;
-        this.$refs.form.resetFields();
-      },
-      moment,
-      handleSubmit () {
-        const that = this;
-        // 瑙﹀彂琛ㄥ崟楠岃瘉
-        this.$refs.form.validate(valid => {
-          if (valid) {
-            that.confirmLoading = true;
-            //濡傛灉鏄笂绾ф嫨浼犲叆departIds,鍚﹀垯涓虹┖
-            if(this.model.userIdentity!==2){
-              this.model.departIds="";
-            }
-            let obj;
-            if(!this.model.id){
-              this.model.id = this.userId;
-              obj=addUser(this.model);
-            }else{
-              obj=editUser(this.model);
-            }
-            obj.then((res)=>{
-              if(res.success){
-                that.$message.success(res.message);
-                that.$emit('ok');
-              }else{
-                that.$message.warning(res.message);
-              }
-            }).finally(() => {
-              that.confirmLoading = false;
-              that.close();
-            })
-          }else{
-            return false;
-          }
-        })
-      },
-      handleCancel () {
-        this.close()
-      },
-      validateToNextPassword (rule, value, callback) {
-        const confirmpassword=this.model.confirmpassword;
-        if (value && confirmpassword && value !== confirmpassword) {
-          callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒');
-        }
-        if (value && this.confirmDirty) {
-          this.$refs.form.validateField(['confirmpassword']);
-        }
-        callback();
-      },
-      compareToFirstPassword (rule, value, callback) {
-        if (value && value !== this.model.password) {
-          callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒');
+    }
+  },
+  created() {
+    const token = Vue.ls.get(ACCESS_TOKEN);
+    this.headers = { "X-Access-Token": token }
+    this.initRoleList()
+    this.initTenantList()
+    this.queryTreeData()
+  },
+  computed: {
+    uploadAction: function () {
+      return this.url.fileUpload;
+    }
+  },
+  methods: {
+    ...mapActions(['QueryDepartTree']),
+    queryTreeData() {
+      this.QueryDepartTree().then(res => {
+        if (res.success) {
+          this.isDepartType = res.result[0].value
         } else {
-          callback()
+          // this.$message.warn(res.message)
+          this.$notification.warning({
+            message: '娑堟伅',
+            description: res.message
+          });
         }
-      },
-      validatePhone(rule, value, callback){
-        if(!value){
-          callback()
-        }else{
-          if(new RegExp(/^1[3|4|5|7|8|9][0-9]\d{8}$/).test(value)){
-            var params = {
-              tableName: 'sys_user',
-              fieldName: 'phone',
-              fieldVal: value,
-              dataId: this.userId
-            };
-            duplicateCheck(params).then((res) => {
-              if (res.success) {
-                callback()
-              } else {
-                callback("鎵嬫満鍙峰凡瀛樺湪!")
-              }
+      }).finally(() => {
+      })
+    },
+    add() {
+      this.refresh();
+      this.edit({ activitiSync: '1', userIdentity: 1 });
+    },
+    edit(record) {
+      let that = this;
+      that.visible = true;
+      //鏍规嵁灞忓箷瀹藉害鑷�傚簲鎶藉眽瀹藉害
+      this.resetScreenSize();
+      that.userId = record.id;
+
+      that.model = Object.assign({}, { selectedroles: '', selecteddeparts: '' }, record);
+      that.model = Object.assign({}, { selectedroles: '', selectedProduction: '' }, record);
+      //韬唤涓轰笂绾ф樉绀鸿礋璐i儴闂紝鍚﹀垯涓嶆樉绀�
+      if (this.model.userIdentity == 2) {
+        this.departIdShow = true;
+      } else {
+        this.departIdShow = false;
+      }
+
+      if (record.hasOwnProperty("id")) {
+        that.getUserRoles(record.id);
+        that.getUserDeparts(record.id);
+      }
+      console.log('that.model', that.model)
+    },
+    isDisabledAuth(code) {
+      return disabledAuthFilter(code);
+    },
+    //绐楀彛鏈�澶у寲鍒囨崲
+    toggleScreen() {
+      if (this.modaltoggleFlag) {
+        this.modalWidth = window.innerWidth;
+      } else {
+        this.modalWidth = 800;
+      }
+      this.modaltoggleFlag = !this.modaltoggleFlag;
+    },
+    // 鏍规嵁灞忓箷鍙樺寲,璁剧疆鎶藉眽灏哄
+    resetScreenSize() {
+      let screenWidth = document.body.clientWidth;
+      if (screenWidth < 500) {
+        this.drawerWidth = screenWidth;
+      } else {
+        this.drawerWidth = 700;
+      }
+    },
+    //鍒濆鍖栫鎴峰瓧鍏�
+    initTenantList() {
+      getAction(this.url.queryTenantList).then(res => {
+        if (res.success) {
+          this.tenantsOptions = res.result.map((item, index, arr) => {
+            let c = { label: item.name, value: item.id + "" }
+            return c;
+          })
+          console.log('this.tenantsOptions: ', this.tenantsOptions)
+        }
+      })
+    },
+    //鍒濆鍖栬鑹插瓧鍏�
+    initRoleList() {
+      queryall().then((res) => {
+        if (res.success) {
+          this.rolesOptions = res.result.map((item, index, arr) => {
+            let c = { label: item.roleName, value: item.id }
+            return c;
+          })
+          console.log('this.rolesOptions: ', this.rolesOptions)
+        }
+      });
+    },
+    getUserRoles(userid) {
+      queryUserRole({ userid: userid }).then((res) => {
+        if (res.success) {
+          this.model.selectedroles = res.result.join(",");
+          console.log('that.model.selectedroles=', this.model.selectedroles)
+        }
+      });
+    },
+    getUserDeparts(userid) {
+      let that = this;
+      //閮ㄩ棬鐨剈rl
+      getAction(that.url.userWithDepart, { userId: userid }).then((res) => {
+        if (res.success) {
+          let departOptions = [];
+          let selectDepartKeys = []
+          for (let i = 0; i < res.result.length; i++) {
+            selectDepartKeys.push(res.result[i].key);
+            //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
+            departOptions.push({
+              value: res.result[i].key,
+              label: res.result[i].title
             })
-          }else{
-            callback("璇疯緭鍏ユ纭牸寮忕殑鎵嬫満鍙风爜!");
           }
+
+          that.model.selecteddeparts = selectDepartKeys.join(",")
+          that.model.selectedProduction = selectDepartKeys.join(",")
+
+          that.nextDepartOptions = departOptions;
+          console.log('that.nextDepartOptions=', that.nextDepartOptions)
         }
-      },
-      validateEmail(rule, value, callback){
-        if(!value){
-          callback()
-        }else{
-          if(new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(value)){
-            var params = {
-              tableName: 'sys_user',
-              fieldName: 'email',
-              fieldVal: value,
-              dataId: this.userId
-            };
-            duplicateCheck(params).then((res) => {
-              console.log(res)
-              if (res.success) {
-                callback()
-              } else {
-                callback("閭宸插瓨鍦�!")
-              }
+      })
+
+      getAction(that.url.userProductionList, { userId: userid }).then((res) => {
+        if (res.success) {
+          let ProductionOptions = [];
+          let selectProductKeys = []
+          for (let i = 0; i < res.result.length; i++) {
+            selectProductKeys.push(res.result[i].key);
+            //鏂板璐熻矗閮ㄩ棬閫夋嫨涓嬫媺妗�
+            ProductionOptions.push({
+              value: res.result[i].key,
+              label: res.result[i].title
             })
-          }else{
-            callback("璇疯緭鍏ユ纭牸寮忕殑閭!")
           }
+
+          that.model.selectedProduction = selectProductKeys.join(",")
+
+          that.nextProductionOptions = ProductionOptions;
+          console.log('that.nextProductionOptions=', that.nextProductionOptions)
         }
-      },
-      validateUsername(rule, value, callback){
-        var params = {
-          tableName: 'sys_user',
-          fieldName: 'username',
-          fieldVal: value,
-          dataId: this.userId
-        };
-        duplicateCheck(params).then((res) => {
-          if (res.success) {
+      })
+      //杞﹂棿鐨剈rl
+    },
+    backDepartInfo(info) {
+      this.model.departIds = this.model.selecteddeparts;
+      this.nextDepartOptions = info.map((item, index, arr) => {
+        let c = { label: item.text, value: item.value + "" }
+        return c;
+      })
+    },
+    backProductionInfo(info) {
+      this.model.productionIds = this.model.selectedProduction;
+      this.nextProductionOptions = info.map((item, index, arr) => {
+        let c = { label: item.text, value: item.value + "" }
+        return c;
+      })
+    },
+
+    refresh() {
+      this.userId = ""
+      this.nextDepartOptions = [];
+      this.nextProductionOptions = [];
+      this.departIdShow = false;
+    },
+    close() {
+      this.$emit('close');
+      this.visible = false;
+      this.disableSubmit = false;
+      this.nextDepartOptions = [];
+      this.nextProductionOptions = []
+      this.departIdShow = false;
+      this.$refs.form.resetFields();
+    },
+    moment,
+    handleSubmit() {
+      const that = this;
+      // 瑙﹀彂琛ㄥ崟楠岃瘉
+      this.$refs.form.validate(valid => {
+        if (valid) {
+          that.confirmLoading = true;
+          //濡傛灉鏄笂绾ф嫨浼犲叆departIds,鍚﹀垯涓虹┖
+          if (this.model.userIdentity !== 2) {
+            this.model.departIds = "";
+          }
+          let obj;
+          if (!this.model.id) {
+            this.model.id = this.userId;
+            obj = addUser(this.model);
+          } else {
+            obj = editUser(this.model);
+          }
+          obj.then((res) => {
+            if (res.success) {
+              that.$message.success(res.message);
+              that.$emit('ok');
+            } else {
+              that.$message.warning(res.message);
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            that.close();
+          })
+        } else {
+          return false;
+        }
+      })
+    },
+    handleCancel() {
+      this.close()
+    },
+    validateToNextPassword(rule, value, callback) {
+      const confirmpassword = this.model.confirmpassword;
+      if (value && confirmpassword && value !== confirmpassword) {
+        callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒');
+      }
+      if (value && this.confirmDirty) {
+        this.$refs.form.validateField(['confirmpassword']);
+      }
+      callback();
+    },
+    compareToFirstPassword(rule, value, callback) {
+      if (value && value !== this.model.password) {
+        callback('涓ゆ杈撳叆鐨勫瘑鐮佷笉涓�鏍凤紒');
+      } else {
+        callback()
+      }
+    },
+    validatePhone(rule, value, callback) {
+      if (!value) {
+        callback()
+      } else {
+        if (new RegExp(/^1[3|4|5|7|8|9][0-9]\d{8}$/).test(value)) {
+          var params = {
+            tableName: 'sys_user',
+            fieldName: 'phone',
+            fieldVal: value,
+            dataId: this.userId
+          };
+          duplicateCheck(params).then((res) => {
+            if (res.success) {
+              callback()
+            } else {
+              callback("鎵嬫満鍙峰凡瀛樺湪!")
+            }
+          })
+        } else {
+          callback("璇疯緭鍏ユ纭牸寮忕殑鎵嬫満鍙风爜!");
+        }
+      }
+    },
+    validateEmail(rule, value, callback) {
+      if (!value) {
+        callback()
+      } else {
+        if (new RegExp(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/).test(value)) {
+          var params = {
+            tableName: 'sys_user',
+            fieldName: 'email',
+            fieldVal: value,
+            dataId: this.userId
+          };
+          duplicateCheck(params).then((res) => {
+            console.log(res)
+            if (res.success) {
+              callback()
+            } else {
+              callback("閭宸插瓨鍦�!")
+            }
+          })
+        } else {
+          callback("璇疯緭鍏ユ纭牸寮忕殑閭!")
+        }
+      }
+    },
+    validateUsername(rule, value, callback) {
+      var params = {
+        tableName: 'sys_user',
+        fieldName: 'username',
+        fieldVal: value,
+        dataId: this.userId
+      };
+      duplicateCheck(params).then((res) => {
+        if (res.success) {
           callback()
         } else {
           callback("鐢ㄦ埛鍚嶅凡瀛樺湪!")
         }
       })
-      },
-      validateWorkNo(rule, value, callback){
-        var params = {
-          tableName: 'sys_user',
-          fieldName: 'work_no',
-          fieldVal: value,
-          dataId: this.userId
-        };
-        duplicateCheck(params).then((res) => {
-          if (res.success) {
-            callback()
-          } else {
-            callback("宸ュ彿宸插瓨鍦�!")
-          }
-        })
-      },
-      handleConfirmBlur(e) {
-        const value = e.target.value;
-        this.confirmDirty = this.confirmDirty || !!value
-      },
-      beforeUpload: function(file){
-        var fileType = file.type;
-        if(fileType.indexOf('image')<0){
-          this.$message.warning('璇蜂笂浼犲浘鐗�');
-          return false;
+    },
+    validateWorkNo(rule, value, callback) {
+      var params = {
+        tableName: 'sys_user',
+        fieldName: 'work_no',
+        fieldVal: value,
+        dataId: this.userId
+      };
+      duplicateCheck(params).then((res) => {
+        if (res.success) {
+          callback()
+        } else {
+          callback("宸ュ彿宸插瓨鍦�!")
         }
-        //TODO 楠岃瘉鏂囦欢澶у皬
-      },
-      identityChange(e){
-        if(e.target.value===1){
-            this.departIdShow=false;
-        }else{
-            this.departIdShow=true;
-        }
-      },
-      initDictData(dictCode) {
-        //鏍规嵁瀛楀吀Code, 鍒濆鍖栧瓧鍏告暟缁�
-        ajaxGetDictItems(dictCode, null).then((res) => {
-          if (res.success) {
-            const regExp = new RegExp("^(?=.*[a-zA-Z])(?=.*\\\d)(?=.*[~!@#$%^&*()_+`\\-={}:\";'<>?,./]).{"+Number(res.result[0].value)+",}$");
+      })
+    },
+    handleConfirmBlur(e) {
+      const value = e.target.value;
+      this.confirmDirty = this.confirmDirty || !!value
+    },
+    beforeUpload: function (file) {
+      var fileType = file.type;
+      if (fileType.indexOf('image') < 0) {
+        this.$message.warning('璇蜂笂浼犲浘鐗�');
+        return false;
+      }
+      //TODO 楠岃瘉鏂囦欢澶у皬
+    },
+    identityChange(e) {
+      if (e.target.value === 1) {
+        this.departIdShow = false;
+      } else {
+        this.departIdShow = true;
+      }
+    },
+    initDictData(dictCode) {
+      //鏍规嵁瀛楀吀Code, 鍒濆鍖栧瓧鍏告暟缁�
+      ajaxGetDictItems(dictCode, null).then((res) => {
+        if (res.success) {
+          const regExp = new RegExp("^(?=.*[a-zA-Z])(?=.*\\\d)(?=.*[~!@#$%^&*()_+`\\-={}:\";'<>?,./]).{" + Number(res.result[0].value) + ",}$");
 
-            this.validatorRules.password[0]={
-              required:true,
-              pattern: regExp,
-              message: `瀵嗙爜鐢�${res.result[0].value}浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!`,
-            }
-
+          this.validatorRules.password[0] = {
+            required: true,
+            pattern: regExp,
+            message: `瀵嗙爜鐢�${res.result[0].value}浣嶆暟瀛椼�佸ぇ灏忓啓瀛楁瘝鍜岀壒娈婄鍙风粍鎴�!`,
           }
-        })
-      },
-    }
+
+        }
+      })
+    },
   }
+}
 </script>
 
 <style scoped>
-  .avatar-uploader > .ant-upload {
-    width:104px;
-    height:104px;
-  }
-  .ant-upload-select-picture-card i {
-    font-size: 49px;
-    color: #999;
-  }
+.avatar-uploader > .ant-upload {
+  width: 104px;
+  height: 104px;
+}
+.ant-upload-select-picture-card i {
+  font-size: 49px;
+  color: #999;
+}
 
-  .ant-upload-select-picture-card .ant-upload-text {
-    margin-top: 8px;
-    color: #666;
-  }
+.ant-upload-select-picture-card .ant-upload-text {
+  margin-top: 8px;
+  color: #666;
+}
 
-  .ant-table-tbody .ant-table-row td{
-    padding-top:10px;
-    padding-bottom:10px;
-  }
+.ant-table-tbody .ant-table-row td {
+  padding-top: 10px;
+  padding-bottom: 10px;
+}
 
-  .drawer-bottom-button {
-    position: absolute;
-    bottom: -8px;
-    width: 100%;
-    border-top: 1px solid #e8e8e8;
-    padding: 10px 16px;
-    text-align: right;
-    left: 0;
-    background: #fff;
-    border-radius: 0 0 2px 2px;
-  }
+.drawer-bottom-button {
+  position: absolute;
+  bottom: -8px;
+  width: 100%;
+  border-top: 1px solid #e8e8e8;
+  padding: 10px 16px;
+  text-align: right;
+  left: 0;
+  background: #fff;
+  border-radius: 0 0 2px 2px;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3