From 41dabb0db9619b8dbb8a311966e0b9920f67f7c8 Mon Sep 17 00:00:00 2001
From: “dzb” <2632970487@qq.com>
Date: 星期四, 03 十一月 2022 16:10:40 +0800
Subject: [PATCH] 门前三包和趋势分析
---
src/views/operate/fivepack/shop/components/updateUser/index.vue | 164 +++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 119 insertions(+), 45 deletions(-)
diff --git a/src/views/operate/fivepack/shop/components/updateUser/index.vue b/src/views/operate/fivepack/shop/components/updateUser/index.vue
index 306e887..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)
- this.store = 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