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/createUser/index.vue | 254 +++++++++++++++++++++++++++++++++++---------------
1 files changed, 178 insertions(+), 76 deletions(-)
diff --git a/src/views/operate/fivepack/shop/components/createUser/index.vue b/src/views/operate/fivepack/shop/components/createUser/index.vue
index f6b3f2c..6a17d2b 100644
--- a/src/views/operate/fivepack/shop/components/createUser/index.vue
+++ b/src/views/operate/fivepack/shop/components/createUser/index.vue
@@ -2,73 +2,74 @@
<div class="createUser">
<main>
<div class="mainContent">
- <el-form ref="user" label-width="140px" autoComplete="on" :model="user" :rules="createUserRules"
+ <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="user.storetype" placeholder="閫夋嫨搴楅摵/闂ㄥ簵绫诲瀷">
- <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
- :disabled="item.disabled">
+ <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-expand-all node-key="id">
+ </el-tree>
</el-option>
</el-select>
</el-form-item>
<!-- 搴楅摵鍚嶇О -->
<el-form-item class="optionItems" label="搴楅摵鍚嶇О:" prop="storename">
- <el-input v-model="user.password" type="password" placeholder="璇峰~鍐欏簵閾哄悕绉�"></el-input>
+ <el-input v-model="store.storename" placeholder="璇峰~鍐欏簵閾哄悕绉�"></el-input>
</el-form-item>
<!-- 璐熻矗浜� -->
- <el-form-item class="optionItem" label="璐熻矗浜�:" prop="username">
- <el-input v-model="user.username" placeholder="璇峰~鍐欑敤鎴峰鍚�"></el-input>
+ <el-form-item class="optionItem" label="璐熻矗浜�:" prop="owner">
+ <el-input v-model="store.owner" placeholder="璇峰~鍐欏簵閾鸿礋璐d汉鍚嶅瓧"></el-input>
</el-form-item>
<!-- 搴楅摵鎻忚堪 -->
- <el-form-item class="optionItem" label="搴楅摵鎻忚堪:" prop="mobile">
- <el-input type="textarea" v-model="user.mobile" placeholder="杈撳叆閮ㄩ棬鎻忚堪"></el-input>
+ <el-form-item class="optionItem" label="搴楅摵鎻忚堪:" prop="description">
+ <el-input type="textarea" :autosize="{ minRows: 4, maxRows: 8 }" maxlength="300" show-word-limit
+ v-model="store.description" placeholder="杈撳叆搴楅摵鎻忚堪"></el-input>
+ <!-- <el-input type="textarea" v-model="user.storedesc" placeholder="杈撳叆閮ㄩ棬鎻忚堪"></el-input> -->
</el-form-item>
<!-- 鑱旂郴鏂瑰紡 -->
- <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="email">
- <el-input v-model="user.email" placeholder="璇峰~鍐欏簵閾鸿仈绯绘柟寮�"></el-input>
+ <el-form-item class="optionItem" label="鑱旂郴鏂瑰紡:" prop="contact">
+ <el-input v-model="store.contact" placeholder="璇峰~鍐欏簵閾鸿仈绯绘柟寮�"></el-input>
</el-form-item>
<!-- 搴楅摵鍦板潃 -->
- <el-form-item class="optionItem" label="搴楅摵鍦板潃:" prop="userType">
- <el-select v-model="user.userType" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�">
- <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
- :disabled="item.disabled">
- </el-option>
- </el-select>
+ <el-form-item class="optionItem" label="搴楅摵鍦板潃:" prop="storeaddr">
+ <el-input v-model="store.storeaddr" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�"></el-input>
</el-form-item>
</el-form>
</div>
</main>
<footer>
<div class="optionBtn">
- <el-button class="btn reset">鍙栨秷</el-button>
- <el-button type="primary" class="btn submit" @click="handleUser">纭畾</el-button>
+ <el-button class="btn reset" @click="handleBack">鍙栨秷</el-button>
+ <el-button type="primary" class="btn submit" @click="handleStore">纭畾</el-button>
</div>
</footer>
</div>
</template>
<script>
+import { getCodeList } from '@/utils/helper'
export default {
data() {
const validateNickname = (rule, value, callback) => {
if (!value) {
callback(new Error("璐熻矗浜轰笉鑳戒负绌�"));
- }else{
+ } else {
callback();
}
};
- const validatePass = (rule, value, callback) => {
+ const validateShopName = (rule, value, callback) => {
if (!value) {
- callback();
+ callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'));
} else {
callback();
}
};
const validateTruename = (rule, value, callback) => {
if (!value) {
- callback();
+ callback(new Error('搴楅摵鍦板潃涓嶈兘涓虹┖'));
} else {
- callback(new Error('搴楅摵鍦板潃涓嶈兘涓虹┖'))
+ callback()
}
};
const validatePhone = (rule, value, callback) => {
@@ -78,17 +79,27 @@
const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
if (!rep.test(value)) {
callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+ } else {
+ callback();
}
}
};
- const validateMail = (rule, value, callback) => {
- if (value) {
+ // const validateMail = (rule, value, callback) => {
+ // if (value) {
+ // callback();
+ // } else {
+ // callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'))
+ // }
+ // };
+ const validateType = (rule, value, callback) => {
+ console.log(value)
+ if (!value) {
+ callback(new Error('闂ㄥ簵绫诲瀷涓嶈兘涓虹┖'));
+ } else {
callback();
- }else{
- callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'))
}
};
- const validateType = (rule, value, callback) => {
+ const validateDesc = (rule, value, callback) => {
if (!value) {
callback();
} else {
@@ -96,73 +107,154 @@
}
};
return {
- user: {
- contact:'',
- idcardinfo:'',
- owner:'',
- storeaddr:'',
- storename:'',
- storedesc:'',
- storetype:'',
+ store: {
+ contact: '',
+ idcardinfo: '',
+ owner: '',
+ storeaddr: '',
+ storename: '',
+ storedesc: '',
+ type: '',
},
createUserRules: {
owner: [
{ required: true, trigger: "blur", validator: validateNickname },
],
- idcardinfo: [
- { required: true, trigger: "blur", validator: validatePass },
+ type: [
+ {
+ required: true, trigger: 'change', validator: validateType,
+ }
],
+ // idcardinfo: [
+ // { required: true, trigger: "blur", validator: validatePass },
+ // ],
storeaddr: [
{ required: true, trigger: "blur", validator: validateTruename },
],
contact: [
{ required: true, trigger: "blur", validator: validatePhone },
],
+ description: [
+ { required: false, trigger: "blur", validator: validateDesc },
+ ],
storename: [
- { required: false, trigger: "blur", validator: validateMail },
- ],
- storedesc: [
- { required: true, trigger: "blur", validator: validateType },
- ],
+ { required: true, trigger: "blur", validator: validateShopName },
+ ]
},
- roleList: [
- { name: '瑙掕壊1', value: 1 }, { name: '瑙掕壊2', value: 2 }
+ shopTypeList: [
+ { name: '绫诲瀷1', value: 1 }, { name: '绫诲瀷2', value: 2 }
],
- typeList: []
+ defaultProps: {
+ children: 'children',
+ label: 'name',
+ disabled: (data, node) => {
+ if (node.level === 1 && node.childNodes.length !== 0) {
+ return !data.leaf
+ }
+ }
+ },
+ selectOrg: {
+ orgsid: []
+ },
}
},
created() {
- const that = this;
- // 鑾峰彇瑙掕壊鍒楄〃
- // this.$axios.get('')
- // 鑾峰彇鐢ㄦ埛绫诲瀷鍒楄〃
- // this.$axios.get('sccg/admin/list',{userType:0}).then(res=>{
- // console.log(res);
- // })
- // 鑾峰彇鍏ㄩ儴閮ㄩ棬鍒楄〃
- this.$axios.get('sccg/depart/page').then(res => {
- that.typeList = res.data.records;
- })
+ this.getShopTypeList();
},
methods: {
- handleUser() {
- const { user } = this;
- this.$axios.post('sccg/store/storeinfo/add',{
- contact:'18728108911',
- idcardinfo:'511025199910028213',
- owner:'娴嬭瘯浜哄憳',
- storeaddr:'鍥涘窛鐪�',
- storename:'娴嬭瘯搴椾竴',
- storephoto:'111',
- storescore:0,
+ handleStore() {
+ const { store,selectOrg } = this;
+ this.$refs.user.validate((valid) => {
+ console.log(valid);
+ if (valid) {
+ this.$axios({
+ method: 'post',
+ url: 'sccg/store/storeinfo/add',
+ data: {
+ contact: store.contact,
+ owner: store.owner,
+ storeaddr: store.storeaddr,
+ storename: store.storename,
+ description: store.description,
+ type: selectOrg.orgsid[0],
+ }
+ })
+ .then(res => {
+ console.log(res);
+ if (res.code === 200) {
+ this.$message({
+ type: 'success',
+ message: '娣诲姞鎴愬姛',
+ })
+ this.$emit('sendDialog', { flag: false });
+ } else {
+ this.$message({
+ type: 'error',
+ message: res.message,
+ })
+ }
+ })
+ } else {
+ return false;
+ }
})
- .then(res => {
- console.log(res);
- // if (res.code === 200) {
- // console.log(1);
- // this.$emit('sendDialog', { flag: false });
- // }
- })
+ },
+ handleBack() {
+ this.$emit('sendDialog', { flag: false })
+ },
+ // 鑾峰彇瀛楀吀
+ async getShopTypeList() {
+ let arr = await getCodeList('16');
+ 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 = ''
+ }
},
},
props: ['sendDialog']
@@ -228,6 +320,7 @@
display: flex;
justify-content: flex-end;
padding: 0 20px;
+
.optionBtn {
display: flex;
margin-top: 20px;
@@ -237,5 +330,14 @@
}
}
}
+
+ ::v-deep .el-textarea__inner {
+ background-color: #09152f;
+ border: 1px solid #17324c;
+ }
+
+ ::v-deep .el-input__count {
+ background-color: #09152f;
+ }
}
</style>
\ No newline at end of file
--
Gitblit v1.8.0