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