natasha 1 year ago
parent
commit
320228593d

+ 44 - 9
src/components/Setting.vue

@@ -381,7 +381,6 @@ export default {
             sex:this.page==='editPerson'||this.page==='personal'?JSON.parse(JSON.stringify(this.info.sys_user.sex)):JSON.parse(JSON.stringify(this.info.sex)),
             selectedOptions: this.page==='editPerson'||this.page==='personal'?[JSON.parse(JSON.stringify(this.info.sys_user.province_id)),JSON.parse(JSON.stringify(this.info.sys_user.city_id))]:[JSON.parse(JSON.stringify(this.info.province_id)),JSON.parse(JSON.stringify(this.info.city_id))],
             desc:this.page==='editPerson'||this.page==='personal'?JSON.parse(JSON.stringify(this.info.sys_user.memo)):JSON.parse(JSON.stringify(this.info.memo)),
-            // selectedOptions: '0302',
         },
         rules: {
             name: [
@@ -521,7 +520,7 @@ export default {
     },
     // 级联选择器
     handleCity(value){
-        console.log(value)
+        // console.log(value)
     },
     // 提交表单
     onSubmit(formName){
@@ -712,15 +711,30 @@ export default {
     onSubmitAuth(){
         this.loading = true
         let MethodName = "/OrgServer/Manager/SysUserManager/UpdateSysUser_Popedom";
+        let finance_popedom_data_scope = {}
+        if(this.financeAuth.selectedOptions.length>0){
+            if(this.financeAuth.selectedOptions[0][0]&&this.financeAuth.selectedOptions[0][0]==='0'){
+                finance_popedom_data_scope.is_all = 'true'
+            }else{
+                finance_popedom_data_scope.is_all = 'false'
+                let province_id_list = []
+                let city_id_list = []
+                this.financeAuth.selectedOptions.forEach(item => {
+                    if(province_id_list.indexOf(item[0])===-1){
+                        province_id_list.push(item[0])
+                    }
+                    city_id_list.push(item[1]?item[1]:'')
+                });
+                finance_popedom_data_scope.province_id_list = province_id_list
+                finance_popedom_data_scope.city_id_list = city_id_list
+            }
+        }
         let data = {
             id: this.page==='personal'?JSON.parse(getToken()).user_id:this.id,
             popedom_code_list: this.manageAuth,
             data_scope:{
                 discount_code_view_scope:this.codeAuth.viewCode,
-                finance_popedom_data_scope:{
-                    province_id_list:['03'],
-                    city_id_list:['02'],
-                }
+                finance_popedom_data_scope: finance_popedom_data_scope
             }
         }
         getLogin(MethodName, data)
@@ -735,9 +749,26 @@ export default {
     },
     // 取消权限
     onCancelAuth(){
-        this.manageAuth = []
-        this.codeAuth.viewCode = 0
-        this.financeAuth.selectedOptions = []
+        this.handleUserAuth()
+        // this.manageAuth = []
+        // this.codeAuth.viewCode = 0
+        // this.financeAuth.selectedOptions = []
+    },
+    // 赋值权限
+    handleUserAuth(){
+        if(this.page==='editPerson'||this.page==='personal'){
+            this.manageAuth = this.info.popedom_code_list?JSON.parse(JSON.stringify(this.info.popedom_code_list)):[]
+            this.codeAuth.viewCode = this.info.data_scope.discount_code_view_scope?JSON.parse(JSON.stringify(this.info.data_scope.discount_code_view_scope)):0
+            if(this.info.data_scope.finance_popedom_data_scope&&this.info.data_scope.finance_popedom_data_scope.is_all==='true'){
+                this.financeAuth.selectedOptions = ['0']
+            }else{
+                let arr = []
+                this.info.data_scope.finance_popedom_data_scope.city_id_list.forEach(item=>{
+                    arr.push([item.substring(0,2),item])
+                })
+                this.financeAuth.selectedOptions = arr
+            }
+        }
     },
     // 修改管理员权限
     onSubmitManager(){
@@ -777,9 +808,13 @@ export default {
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {
+    if(this.info){
+        this.handleUserAuth()
+    }
   },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {
+    
   },
   //生命周期-创建之前
   beforeCreated() { },

+ 6 - 0
src/styles/index.scss

@@ -525,4 +525,10 @@ div:focus {
 
 .color-green {
     color: #3FC47C !important;
+}
+
+.el-cascader-node.in-active-path,
+.el-cascader-node.is-active,
+.el-cascader-node.is-selectable.in-checked-path {
+    color: #165DFF;
 }

+ 29 - 3
src/views/organize_manage/CreateOrganize.vue

@@ -195,6 +195,32 @@ export default {
             
         }
     };
+    const validateProvince = (rule, value, callback) => {
+        if(value===[]){
+            callback(new Error('请选择所在省市'));
+        }else if(value.length===2){
+            if(value[0]===''||value[1]===''){
+                callback(new Error('请选择所在省市'));
+            }else{
+                callback();
+            }
+        }else {
+            callback();
+        }
+    };
+    const validateName = (rule, value, callback) => {
+        if (value === '') {
+            callback(new Error('请输入用户名'));
+        } else {
+            let reg = /^[a-zA-Z0-9_]{1,20}$/;
+            let result = reg.test(value);
+            if (result) {
+                callback();
+            } else {
+                callback(new Error('不超过 20 位,可包含英文字符、数字、下划线'));
+            }
+        }
+    };
     return {
         activeMenuIndex: "organize_manage",
         breadcrumbList:[
@@ -241,7 +267,7 @@ export default {
                 { required: true, message: '请选择机构类型', trigger: 'change' }
             ],
             selectedOptions: [
-                { type: 'array', required: true, message: '请选择所在地区', trigger: 'change' }
+                { type: 'array', required: true, validator: validateProvince, message: '请选择所在地区', trigger: 'change' }
             ],
             personalCeil:[
                 { required: true, message: '请输入人员上限', trigger: 'blur' }
@@ -252,8 +278,8 @@ export default {
         },
         rulesManager:{
             name:[
-                { required: true, message: '请输入用户名', trigger: 'blur' },
-                { max: 10, message: '用户名最多10位', trigger:'change' },
+                { required: true, validator: validateName, trigger: 'blur' },
+                { max: 20, message: '用户名最多20位', trigger:'change' },
             ],
             phone:[
                 { required: true, validator: validatePhone, trigger: 'blur' }

+ 2 - 2
src/views/organize_manage/index.vue

@@ -47,7 +47,7 @@
                         <label>所在地区</label>
                         <el-cascader
                             size="medium"
-                            :options="$provinceCityList"
+                            :options="$provinceCityListAll"
                             v-model="searchArea"
                             @change="getList(1)">
                         </el-cascader>
@@ -292,7 +292,7 @@ export default {
   },
   //计算属性 类似于data概念
   computed: {
-    ...mapState(['$orgTypeAll','$provinceCityList']),
+    ...mapState(['$orgTypeAll','$provinceCityListAll']),
   },
   //监控data中数据变化
   watch: {},

+ 8 - 7
src/views/people_manage/CreatePerson.vue

@@ -153,8 +153,7 @@
                                     collapse-tags
                                     clearable
                                     :options="$provinceCityListAll"
-                                    v-model="financeAuth.selectedOptions"
-                                    @change="handleCity">
+                                    v-model="financeAuth.selectedOptions">
                                 </el-cascader>
                             </td>
                         </tr>
@@ -267,7 +266,7 @@ export default {
             }
         ],
         id:this.$route.query.id?this.$route.query.id:'',
-        stepIndex:1, // 步骤索引
+        stepIndex:0, // 步骤索引
         props: { multiple: true },
         registerForm:{
             cover_image_url: '',
@@ -364,7 +363,9 @@ export default {
     },
     // 级联选择器
     handleCity(value){
-        console.log(value)
+        if(this.financeAuth.selectedOptions.length===0){
+            this.financeAuth.selectedOptions = [value]
+        }
     },
     changeIcon(flag){
         this[flag] = !this[flag]
@@ -411,14 +412,14 @@ export default {
         let MethodName = "/OrgServer/Manager/SysUserManager/AddSysUser";
         let form = this.registerForm
         let finance_popedom_data_scope = {}
-        if(form.selectedOptions.length>0){
-            if(form.selectedOptions[0][0]&&form.selectedOptions[0][0]==='0'){
+        if(this.financeAuth.selectedOptions.length>0){
+            if(this.financeAuth.selectedOptions[0][0]&&this.financeAuth.selectedOptions[0][0]==='0'){
                 finance_popedom_data_scope.is_all = 'true'
             }else{
                 finance_popedom_data_scope.is_all = 'false'
                 let province_id_list = []
                 let city_id_list = []
-                form.selectedOptions.forEach(item => {
+                this.financeAuth.selectedOptions.forEach(item => {
                     if(province_id_list.indexOf(item[0])===-1){
                         province_id_list.push(item[0])
                     }