From 0a1d2fe85a280f5543b9b3241aaf8d8a39a32f8c Mon Sep 17 00:00:00 2001
From: mg <maokecheng@163.com>
Date: 星期四, 27 十月 2022 18:26:40 +0800
Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_ui

---
 src/views/operate/fivepack/shop/components/updateUser/index.vue |  162 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 118 insertions(+), 44 deletions(-)

diff --git a/src/views/operate/fivepack/shop/components/updateUser/index.vue b/src/views/operate/fivepack/shop/components/updateUser/index.vue
index 5bfb804..cd071e1 100644
--- a/src/views/operate/fivepack/shop/components/updateUser/index.vue
+++ b/src/views/operate/fivepack/shop/components/updateUser/index.vue
@@ -1,13 +1,16 @@
 <template>
-    <div class="createUser">
+    <div class="createUser" v-if="showFlag">
         <main>
             <div class="mainContent">
                 <el-form ref="user" label-width="140px" autoComplete="on" :model="store" :rules="createUserRules"
                     label-position="right">
                     <!-- 搴楅摵绫诲瀷 -->
-                    <el-form-item class="optionItem" label="搴楅摵绫诲瀷:" prop="storetype">
-                        <el-select v-model="store.storetype" placeholder="搴楅摵/闂ㄥ簵绫诲瀷">
-                            <el-option v-for="item in shopTypeList" :key="item.name" :label="item.name" :value="item.value">
+                    <el-form-item class="optionItem" label="搴楅摵绫诲瀷:" prop="type">
+                        <el-select v-model="store.type" placeholder="璇烽�夋嫨搴楅摵绫诲瀷">
+                            <el-option value="1">
+                                <el-tree ref="tree" :check-strictly="true" :data="shopTypeList" :props="defaultProps"
+                                    show-checkbox @check-change="handleCheck" :default-checked-keys="[selectOrg.orgsid[0]]" default-expand-all node-key="id">
+                                </el-tree>
                             </el-option>
                         </el-select>
                     </el-form-item>
@@ -21,7 +24,7 @@
                     </el-form-item>
                     <!-- 搴楅摵鎻忚堪 -->
                     <el-form-item class="optionItem" label="搴楅摵鎻忚堪:" prop="storeDesc">
-                        <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4}" maxlength="300" show-word-limit
+                        <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="300" show-word-limit
                             v-model="store.storeDesc" placeholder="杈撳叆搴楅摵鎻忚堪"></el-input>
                         <!-- <el-input type="textarea" v-model="user.storedesc" placeholder="杈撳叆閮ㄩ棬鎻忚堪"></el-input> -->
                     </el-form-item>
@@ -45,6 +48,7 @@
     </div>
 </template>
 <script>
+import { getCodeList } from '@/utils/helper'
 export default {
     data() {
         const validateNickname = (rule, value, callback) => {
@@ -75,7 +79,7 @@
                 const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
                 if (!rep.test(value)) {
                     callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
-                }else{
+                } else {
                     callback();
                 }
             }
@@ -90,7 +94,7 @@
         const validateType = (rule, value, callback) => {
             if (!value) {
                 callback(new Error('闂ㄥ簵绫诲瀷涓嶈兘涓虹┖'));
-            } else { 
+            } else {
                 callback();
             }
         };
@@ -108,9 +112,9 @@
                 owner: [
                     { required: true, trigger: "blur", validator: validateNickname },
                 ],
-                storetype:[
+                storetype: [
                     {
-                        required:true,trigger:'change', validator:validateType,
+                        required: true, trigger: 'change', validator: validateType,
                     }
                 ],
                 idcardinfo: [
@@ -130,60 +134,130 @@
                 ],
             },
             shopTypeList: [
-                { name: '绫诲瀷1', value: 1 }, { name: '绫诲瀷2', value: 2 }
+
             ],
+            defaultProps: {
+                children: 'children',
+                label: 'name',
+            },
+            selectOrg: {
+                orgsid: []
+            },
+            showFlag:false
         }
     },
     created() {
-        const {userInfo} = this;
-        console.log(userInfo)
+        const { userInfo } = this;
+        // console.log(userInfo)
         this.store = userInfo
+        this.getShopTypeList();
+        // console.log(this.store)
     },
     methods: {
+        // 鑾峰彇瀛楀吀
+        async getShopTypeList() {
+            let arr = await getCodeList('16');
+            this.selectOrg.orgsid[0] = this.store.type
+            console.log(this.selectOrg.orgsid)
+            arr.forEach(item=>{
+                item.id === this.store.type ? this.store.type = item.name : '鏆傛棤鍒嗙被'
+            })
+            this.showFlag = true
+            this.shopTypeList = this.createShopTypeTree(arr);
+        },
+        createShopTypeTree(arr) {
+            if (arr.length && arr.length !== 0) {
+                // 鑾峰彇椤剁骇鑿滃崟
+                let treeRoot = arr.filter(item => {
+                    return item.parentId === 0
+                })
+                console.log(treeRoot);
+                // 娣诲姞child
+                treeRoot.forEach(item => {
+                    item.children = []
+                    arr.forEach(child => {
+                        if (child.parentId === item.id) {
+                            item.children.push(child)
+                        }
+                    })
+                })
+                return treeRoot;
+            }
+        },
+        handleCheck(data, checked) {
+            // console.log(data)
+            this.store.type = data.name;
+            // 鑾峰彇褰撳墠閫夋嫨鐨刬d鍦ㄦ暟缁勪腑鐨勭储寮�
+            const indexs = this.selectOrg.orgsid.indexOf(data.id)
+            // 濡傛灉涓嶅瓨鍦ㄦ暟缁勪腑锛屽苟涓旀暟缁勪腑宸茬粡鏈変竴涓猧d骞朵笖checked涓簍rue鐨勬椂鍊欙紝浠h〃涓嶈兘鍐嶆閫夋嫨銆�
+            if (indexs < 0 && this.selectOrg.orgsid.length === 1 && checked) {
+                this.$message({
+                    message: '鍙兘閫夋嫨涓�涓儴闂紒',
+                    type: 'warning',
+                    showClose: true
+                })
+                // 璁剧疆宸查�夋嫨鐨勮妭鐐逛负false 寰堥噸瑕�
+                this.$refs.tree.setChecked(data, false)
+            } else if (this.selectOrg.orgsid.length === 0 && checked) {
+                // 鍙戠幇鏁扮粍涓虹┖ 骞朵笖鏄凡閫夋嫨
+                // 闃叉鏁扮粍鏈夊�硷紝棣栧厛娓呯┖锛屽啀push
+                this.selectOrg.orgsid = []
+                this.selectOrg.orgsid.push(data.id)
+            } else if (
+                indexs >= 0 &&
+                this.selectOrg.orgsid.length === 1 &&
+                !checked
+            ) {
+                // 鍐嶆鐩存帴杩涜璧嬪�间负绌烘搷浣�
+                this.selectOrg.orgsid = []
+                this.store.storetype = ''
+            }
+        },
         handleUser() {
             const { store } = this;
-            this.$refs.user.validate((valid)=>{
+            this.$refs.user.validate((valid) => {
                 console.log(valid);
-                if(valid){
+                if (valid) {
                     this.$axios({
-                        method:'put',
-                        url:'sccg/store/storeinfo/update',
-                        data:{
-                            contact:store.contact,
-                            idcardinfo:store.idCardInfo,
-                            owner:store.owner,
-                            storeAddress:store.storeAddress,
-                            storeName:store.storeName,
-                            id:store.id,
-                            storePhoto:store.storePhoto,
-                            storeScore:store.storeScore,
+                        method: 'put',
+                        url: 'sccg/store/storeinfo/update',
+                        data: {
+                            contact: store.contact,
+                            idcardinfo: store.idCardInfo,
+                            owner: store.owner,
+                            storeAddress: store.storeAddress,
+                            storeName: store.storeName,
+                            id: store.id,
+                            storePhoto: store.storePhoto,
+                            storeScore: store.storeScore,
+                            type:this.selectOrg.orgsid[0]
                         }
                     })
-                    .then(res=>{
-                        console.log(res);
-                        if(res.code===200){
-                            this.$message({
-                                type:'success',
-                                message:'淇敼鎴愬姛',
-                            })
-                            this.$emit('changeDialog',{flag:false});
-                        }else{
-                            this.$message({
-                                type:'error',
-                                message:res.message,
-                            })
-                        }
-                    })
-                }else{
+                        .then(res => {
+                            console.log(res);
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: '淇敼鎴愬姛',
+                                })
+                                this.$emit('changeDialog', { flag: false });
+                            } else {
+                                this.$message({
+                                    type: 'error',
+                                    message: res.message,
+                                })
+                            }
+                        })
+                } else {
                     return false;
                 }
             })
         },
-        handleBack(){
-            this.$emit('changeDialog',{flag:false})
+        handleBack() {
+            this.$emit('changeDialog', { flag: false })
         }
     },
-    props: ['userInfo','changeDialog']
+    props: ['userInfo', 'changeDialog']
 }
 </script>
 <style lang="scss" scoped>

--
Gitblit v1.8.0