natasha před 1 rokem
rodič
revize
4f21f8282d

+ 1 - 1
src/App.vue

@@ -58,7 +58,7 @@ export default {
             this.$store.commit('setOrgType',typeLists)
             let provinceCityListAll = [{
                 label: '全部',
-                value: 0,
+                value: '0',
                 leaf: true
             }]
             let provinceCityList = []

+ 24 - 15
src/components/Setting.vue

@@ -61,7 +61,7 @@
                     <el-form-item label="所在省市" prop="selectedOptions">
                         <el-cascader
                             size="medium"
-                            :options="provinceAndCityData"
+                            :options="$provinceCityList"
                             v-model="infoForm.selectedOptions"
                             @change="handleCity">
                         </el-cascader>
@@ -184,7 +184,7 @@
                                     :props="props"
                                     collapse-tags
                                     clearable
-                                    :options="provinceAndCityData"
+                                    :options="$provinceCityListAll"
                                     v-model="financeAuth.selectedOptions"
                                     @change="handleCity">
                                 </el-cascader>
@@ -298,11 +298,9 @@
 //这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 //例如:import 《组件名称》from ‘《组件路径》';
 import Upload from "./Upload.vue"
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { getLogin } from "@/api/ajax";
 import { getToken } from '@/utils/auth'
+import { mapState } from 'vuex';
 export default {
   //import引入的组件需要注入到对象中才能使用
   components: { Upload },
@@ -358,8 +356,20 @@ 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();
+        }
+    };
     return {
-        provinceAndCityData,
         show: false, // 编辑头像flag
         tabsIndex: 0,
         infoForm:{
@@ -369,19 +379,16 @@ export default {
             name:this.page==='editPerson'||this.page==='personal'?JSON.parse(JSON.stringify(this.info.sys_user.user_name)):JSON.parse(JSON.stringify(this.info.user_name)),
             realName:this.page==='editPerson'||this.page==='personal'?JSON.parse(JSON.stringify(this.info.sys_user.real_name)):JSON.parse(JSON.stringify(this.info.real_name)),
             sex:this.page==='editPerson'||this.page==='personal'?JSON.parse(JSON.stringify(this.info.sys_user.sex)):JSON.parse(JSON.stringify(this.info.sex)),
-            // selectedOptions: JSON.parse(JSON.stringify(this.info.sys_user.city_id)),
+            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',
+            // selectedOptions: '0302',
         },
         rules: {
             name: [
                 { required: true, message: '请输入用户名', trigger: 'blur' }
             ],
-            // selectedOptions: [
-            //     { type: 'array', required: true, message: '请选择所在省市', trigger: 'change' }
-            // ],
-            realName:[
-                { required: true, message: '请输入真实姓名', trigger: 'blur' },
+            selectedOptions: [
+                { type: 'array', required: true, validator: validateProvince, trigger: 'change' }
             ],
             sex:[
                 { required: true, message: '请选择性别', trigger: 'change' },
@@ -455,7 +462,9 @@ export default {
     }
   },
   //计算属性 类似于data概念
-  computed: {},
+  computed: {
+    ...mapState(['$provinceCityList','$provinceCityListAll']),
+  },
   //监控data中数据变化
   watch: {
 
@@ -528,7 +537,7 @@ export default {
                 user_name: this.infoForm.name,
                 real_name: this.infoForm.realName,
                 sex: this.infoForm.sex,
-                city_id: this.infoForm.selectedOptions,
+                city_id: this.infoForm.selectedOptions[1],
                 memo: this.infoForm.desc
             }
             getLogin(MethodName, data)

+ 0 - 4
src/views/content_manage/newspaper_manage/index.vue

@@ -197,9 +197,6 @@ import Header from "../../../components/Header.vue";
 import NavMenu from "../../../components/NavMenu.vue"
 import Breadcrumb from '../../../components/Breadcrumb.vue';
 import { mapState } from 'vuex'; 
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { getLogin } from "@/api/ajax";
 export default {
   //import引入的组件需要注入到对象中才能使用
@@ -208,7 +205,6 @@ export default {
   data() {
     //这里存放数据
     return {
-        provinceAndCityData,
         activeMenuIndex: "newspaper_manage",
         breadcrumbList:[
             {

+ 26 - 30
src/views/organize_manage/CreateOrganize.vue

@@ -45,16 +45,13 @@
                         </el-select>
                     </el-form-item>
                     <el-form-item label="所在地区" prop="selectedOptions">
-                        <!-- <el-cascader
+                        <el-cascader
                             size="medium"
-                            :options="province_list"
-                            :props="props"
+                            :options="$provinceCityList"
                             v-model="organizeForm.selectedOptions"
                             @change="handleCity">
-                            <template slot-scope="{ data }">
-                                <span>{{ data.name }}</span>
-                            </template>
-                        </el-cascader> -->
+                            
+                        </el-cascader>
                     </el-form-item>
                     <el-form-item label="人员上限" prop="personalCeil">
                         <el-input-number v-model="organizeForm.personalCeil" @change="handleChange" :min="1" size="small" class="personal-ceil"></el-input-number>
@@ -127,9 +124,6 @@ import Header from "../../components/Header.vue";
 import NavMenu from "../../components/NavMenu.vue"
 import Breadcrumb from '../../components/Breadcrumb.vue';
 import { getLogin } from "@/api/ajax";
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { mapState } from 'vuex';
 
 export default {
@@ -217,14 +211,13 @@ export default {
         ],
         id:this.$route.query.id?this.$route.query.id:'',
         stepIndex:0, // 步骤索引
-        provinceAndCityData,
         newPwdFlag: false, // 查看新密码
         comfirmPwdFlag: false, // 查看确认密码
         organizeForm:{
             name: '',
             sn: '',
             orgType: '',
-            selectedOptions: '0305',
+            selectedOptions: [],
             personalCeil: 50,
             validity:''
         },
@@ -247,11 +240,8 @@ export default {
             orgType: [
                 { required: true, message: '请选择机构类型', trigger: 'change' }
             ],
-            // selectedOptions: [
-            //     { type: 'array', required: true, message: '请选择所在地区', trigger: 'change' }
-            // ],
             selectedOptions: [
-                { required: true, message: '请选择所在地区', trigger: 'change' }
+                { type: 'array', required: true, message: '请选择所在地区', trigger: 'change' }
             ],
             personalCeil:[
                 { required: true, message: '请输入人员上限', trigger: 'blur' }
@@ -285,16 +275,20 @@ export default {
           lazyLoad (node, resolve) {
             let MethodName = "/OrgServer/DictManager/GetCityList";
             let list = []
-            getLogin(MethodName, {province_id:node.data.id})
-            .then((res) => {
-                if(res.status===1){
-                    res.city_list.forEach(item=>{
-                        item.leaf = true
-                    })
-                    list = res.city_list
-                    resolve(list);
-                }
-            })
+            if(node&&node.data){
+                getLogin(MethodName, {province_id:node.data.id})
+                .then((res) => {
+                    if(res.status===1){
+                        res.city_list.forEach(item=>{
+                            item.leaf = true
+                            item.label = item.name
+                            item.value = item.id
+                        })
+                        list = res.city_list
+                        resolve(list);
+                    }
+                })
+            }
           }
         },
         loading: false
@@ -302,7 +296,7 @@ export default {
   },
   //计算属性 类似于data概念
   computed: {
-    ...mapState(['$orgType']),
+    ...mapState(['$orgType','$provinceCityList']),
   },
   //监控data中数据变化
   watch: {
@@ -385,6 +379,8 @@ export default {
             if(res.status===1){
                res.province_list.forEach(item => {
                     item.children = []
+                    item.label = item.name
+                    item.value = item.id
                });
                this.province_list = res.province_list
             }
@@ -402,7 +398,7 @@ export default {
                 name: this.organizeForm.name,
                 sn: this.organizeForm.sn,
                 type: this.organizeForm.orgType,
-                city_id: this.organizeForm.selectedOptions,
+                city_id: this.organizeForm.selectedOptions[1],
                 max_person_count: this.organizeForm.personalCeil*1,
                 effective_date_begin: this.organizeForm.validity[0],
                 effective_date_end: this.organizeForm.validity[1]
@@ -444,7 +440,7 @@ export default {
                 form.name = result.name
                 form.sn = result.sn
                 form.orgType = result.type
-                form.selectedOptions = result.city_id
+                form.selectedOptions = [result.province_id,result.city_id]
                 form.personalCeil = result.max_person_count
                 form.validity = [result.effective_date_begin,result.effective_date_end]
             }
@@ -462,7 +458,7 @@ export default {
             name: this.organizeForm.name,
             sn: this.organizeForm.sn,
             type: this.organizeForm.orgType,
-            city_id: this.organizeForm.selectedOptions,
+            city_id: this.organizeForm.selectedOptions[1],
             max_person_count: this.organizeForm.personalCeil*1,
             effective_date_begin: this.organizeForm.validity[0],
             effective_date_end: this.organizeForm.validity[1]

+ 0 - 4
src/views/organize_manage/EditPerson.vue

@@ -18,9 +18,6 @@ import Header from "../../components/Header.vue";
 import NavMenu from "../../components/NavMenu.vue"
 import Breadcrumb from '../../components/Breadcrumb.vue';
 import Setting from "../../components/Setting.vue"
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { getLogin } from "@/api/ajax";
 
 export default {
@@ -30,7 +27,6 @@ export default {
   data() {
     //这里存放数据
     return {
-        provinceAndCityData,
         activeMenuIndex: "organize_manage",
         breadcrumbList:[],
         tableHeight: "", // 表格高度

+ 0 - 4
src/views/organize_manage/PersonList.vue

@@ -349,9 +349,6 @@ import Header from "../../components/Header.vue";
 import NavMenu from "../../components/NavMenu.vue"
 import Breadcrumb from '../../components/Breadcrumb.vue';
 import BatchImport from './BatchImport.vue'
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { getLogin } from "@/api/ajax";
 
 export default {
@@ -361,7 +358,6 @@ export default {
   data() {
     //这里存放数据
     return {
-        provinceAndCityData,
         activeMenuIndex: "organize_manage",
         breadcrumbList:[
             {

+ 58 - 10
src/views/organize_manage/index.vue

@@ -47,10 +47,20 @@
                         <label>所在地区</label>
                         <el-cascader
                             size="medium"
-                            :options="provinceAndCityData"
+                            :options="$provinceCityList"
                             v-model="searchArea"
                             @change="getList(1)">
                         </el-cascader>
+                        <!-- <el-cascader
+                            size="medium"
+                            :options="province_list"
+                            :props="props"
+                            v-model="searchArea"
+                            @change="getList(1)">
+                            <template slot-scope="{ data }">
+                                <span>{{ data.name }}</span>
+                            </template>
+                        </el-cascader> -->
                     </div>
                     <div class="search-item">
                         <label>创建人</label>
@@ -190,9 +200,6 @@ import Header from "../../components/Header.vue";
 import NavMenu from "../../components/NavMenu.vue"
 import Breadcrumb from '../../components/Breadcrumb.vue';
 import { getLogin } from "@/api/ajax";
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { mapState } from 'vuex';
 
 export default {
@@ -202,7 +209,6 @@ export default {
   data() {
     //这里存放数据
     return {
-        provinceAndCityData,
         activeMenuIndex: "organize_manage",
         breadcrumbList:[
             {
@@ -220,7 +226,7 @@ export default {
         searchType: -1,
         searchStatus: -1,
         searchCreator: '', 
-        searchArea:"",
+        searchArea:[],
         searchStatusList:[
             {
                 value:-1,
@@ -258,12 +264,35 @@ export default {
         pageNumber: window.localStorage.getItem('pageNumber')?Number(window.localStorage.getItem('pageNumber')):1,
         tableHeight: "", // 表格高度
         total_count: 0,
-        dataSort: {}
+        dataSort: {},
+        province_list:[],
+        props: {
+          lazy: true,
+          lazyLoad (node, resolve) {
+            let MethodName = "/OrgServer/DictManager/GetCityList";
+            let list = []
+            if(node&&node.data){
+                getLogin(MethodName, {province_id:node.data.id})
+                .then((res) => {
+                    if(res.status===1){
+                        res.city_list.forEach(item=>{
+                            item.leaf = true
+                            item.label = item.name
+                            item.value = item.id
+                        })
+                        list = res.city_list
+                        resolve(list);
+                    }
+                })
+            }
+          }
+        },
+        loading: false
     }
   },
   //计算属性 类似于data概念
   computed: {
-    ...mapState(['$orgTypeAll']),
+    ...mapState(['$orgTypeAll','$provinceCityList']),
   },
   //监控data中数据变化
   watch: {},
@@ -300,7 +329,7 @@ export default {
             name: this.searchInput.trim(),
             type: this.searchType,
             status: this.searchStatus,
-            area_id: this.searchArea,
+            area_id: this.searchArea[1],
             creator_id: this.searchCreator,
             page_capacity:this.pageSize,
             cur_page:this.pageNumber,
@@ -401,12 +430,31 @@ export default {
                 this.searchCreatorList = list.concat(res.index_list)
             }
         });
-    }
+    },
+    // 获取省份列表
+    getProvinceList(){
+        let MethodName = "/OrgServer/DictManager/GetProvinceList";
+        getLogin(MethodName, {})
+        .then((res) => {
+            if(res.status===1){
+               res.province_list.forEach(item => {
+                    item.children = []
+                    item.label = item.name
+                    item.value = item.id
+               });
+               this.province_list = res.province_list
+            }
+        })
+        .catch(() => {
+            this.loading = false
+        });
+    },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {
     this.getCreatorList()
     this.getTableHeight();
+    this.getProvinceList()
     this.getList()
   },
   //生命周期 - 挂载完成(可以访问DOM元素)

+ 30 - 18
src/views/people_manage/CreatePerson.vue

@@ -49,7 +49,7 @@
                     <el-form-item label="所在省市" prop="selectedOptions">
                         <el-cascader
                             size="medium"
-                            :options="provinceAndCityData"
+                            :options="$provinceCityList"
                             v-model="registerForm.selectedOptions"
                             @change="handleCity">
                         </el-cascader>
@@ -152,7 +152,7 @@
                                     :props="props"
                                     collapse-tags
                                     clearable
-                                    :options="provinceAndCityData"
+                                    :options="$provinceCityListAll"
                                     v-model="financeAuth.selectedOptions"
                                     @change="handleCity">
                                 </el-cascader>
@@ -180,11 +180,9 @@
 import Header from "../../components/Header.vue";
 import NavMenu from "../../components/NavMenu.vue"
 import Breadcrumb from '../../components/Breadcrumb.vue';
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import Upload from "../../components/Upload.vue"
 import { getLogin } from "@/api/ajax";
+import { mapState } from 'vuex';
 
 export default {
   //import引入的组件需要注入到对象中才能使用
@@ -269,8 +267,7 @@ export default {
             }
         ],
         id:this.$route.query.id?this.$route.query.id:'',
-        stepIndex:0, // 步骤索引
-        provinceAndCityData,
+        stepIndex:1, // 步骤索引
         props: { multiple: true },
         registerForm:{
             cover_image_url: '',
@@ -279,7 +276,7 @@ export default {
             name:'',
             realName:'',
             sex:1,
-            selectedOptions:'0305',
+            selectedOptions:[],
             desc:'',
             phone:'',
             email:'',
@@ -299,9 +296,9 @@ export default {
             sex:[
                 { required: true, message: '请选择性别', trigger: 'change' },
             ],
-            // selectedOptions: [
-            //     { type: 'array', required: true, message: '请选择所在省市', trigger: 'change' }
-            // ],
+            selectedOptions: [
+                { type: 'array', required: true, message: '请选择所在省市', trigger: 'change' }
+            ],
             phone:[
                 { required: true, validator: validatePhone, trigger: 'blur' }
             ],
@@ -332,14 +329,14 @@ export default {
         }, // 兑换码权限
         financeAuth:{
             auth: [],
-            selectedOptions:''
+            selectedOptions:[]
         }, // 财务权限
         coverFlag: false,
     }
   },
   //计算属性 类似于data概念
   computed: {
-    
+    ...mapState(['$provinceCityList','$provinceCityListAll']),
   },
   //监控data中数据变化
   watch: {
@@ -413,13 +410,31 @@ export default {
     handleAdd(){
         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'){
+                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 => {
+                    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 = {
             sys_user:{
                 image_id: form.cover_image_id,
                 user_name: form.name,
                 real_name: form.realName,
                 sex: form.sex,
-                city_id: form.selectedOptions,
+                city_id: form.selectedOptions[1],
                 email: form.email,
                 phone: form.phone,
                 memo: form.desc,
@@ -428,10 +443,7 @@ export default {
             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:['05'],
-                }
+                finance_popedom_data_scope: finance_popedom_data_scope
             }
         }
         getLogin(MethodName, data)

+ 0 - 4
src/views/people_manage/EditPerson.vue

@@ -18,9 +18,6 @@ import Header from "../../components/Header.vue";
 import NavMenu from "../../components/NavMenu.vue"
 import Breadcrumb from '../../components/Breadcrumb.vue';
 import Setting from "../../components/Setting.vue"
-import {
-  provinceAndCityData
-} from "element-china-area-data";
 import { getLogin } from "@/api/ajax";
 
 export default {
@@ -30,7 +27,6 @@ export default {
   data() {
     //这里存放数据
     return {
-        provinceAndCityData,
         activeMenuIndex: "people_manage",
         breadcrumbList:[
             {