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 | 337 ++++++++++++++++++++++++++++++-------------------------
1 files changed, 182 insertions(+), 155 deletions(-)
diff --git a/src/views/operate/fivepack/shop/components/createUser/index.vue b/src/views/operate/fivepack/shop/components/createUser/index.vue
index df0021d..6a17d2b 100644
--- a/src/views/operate/fivepack/shop/components/createUser/index.vue
+++ b/src/views/operate/fivepack/shop/components/createUser/index.vue
@@ -2,77 +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="nickName">
- <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-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="password">
- <el-input v-model="user.password" type="password" placeholder="璇峰~鍐欏簵閾哄悕绉�"></el-input>
+ <el-form-item class="optionItems" label="搴楅摵鍚嶇О:" prop="storename">
+ <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("璇峰~鍐欑敤鎴峰悕绉�"));
+ callback(new Error("璐熻矗浜轰笉鑳戒负绌�"));
+ } else {
+ callback();
}
};
- const validatePass = (rule, value, callback) => {
+ const validateShopName = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'));
} else {
- const rep = /^\w+$/;
- if (!rep.test(value)) {
- callback(new Error("瀵嗙爜鍙兘鏄互鏁板瓧銆�26涓嫳鏂囧瓧姣嶆垨鑰呬笅鍒掔嚎缁勬垚鐨勫瓧绗︿覆"));
- }
+ callback();
}
};
const validateTruename = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑敤鎴峰鍚�"));
+ callback(new Error('搴楅摵鍦板潃涓嶈兘涓虹┖'));
} else {
- const rep = /^[\u4E00-\u9FA5]{2,4}$/;
- if (!rep.test(value)) {
- callback("璇疯緭鍏ユ纭殑鐢ㄦ埛濮撳悕");
- }
+ callback()
}
};
const validatePhone = (rule, value, callback) => {
@@ -82,162 +79,182 @@
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 rep = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;
- if (!rep.test(value)) {
- callback(new Error("璇疯緭鍏ユ纭殑閭"))
- }
- }
- };
- const validateRole = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
- } else {
- callback();
- }
- };
+ // 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("璇峰~鍐欑櫥褰曞瘑鐮�"));
+ callback(new Error('闂ㄥ簵绫诲瀷涓嶈兘涓虹┖'));
} else {
callback();
}
};
- const validateDepartment = (rule, value, callback) => {
+ const validateDesc = (rule, value, callback) => {
if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
- } else {
callback();
- }
- };
- const validateWork = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
- } else {
- callback();
- }
- };
- const validateMac = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
- } else {
- callback();
- }
- };
- const validateIp = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欑櫥褰曞瘑鐮�"));
} else {
callback();
}
};
return {
- user: {
- nickName: '',
- password: '',
- username: '',
- // gender: 1,
- isDy: 0,
- mobile: '',
- email: '',
- // role: null,
- userType: null,
- zj: {
- areaNumber: '',
- phoneNumber: "",
- moreNumber: "",
- },
- departmentId: null,
- jobTitle: null,
- // mac: '',
- // ip: '',
+ store: {
+ contact: '',
+ idcardinfo: '',
+ owner: '',
+ storeaddr: '',
+ storename: '',
+ storedesc: '',
+ type: '',
},
createUserRules: {
- nickName: [
+ owner: [
{ required: true, trigger: "blur", validator: validateNickname },
],
- password: [
- { required: true, trigger: "blur", validator: validatePass },
+ type: [
+ {
+ required: true, trigger: 'change', validator: validateType,
+ }
],
- username: [
+ // idcardinfo: [
+ // { required: true, trigger: "blur", validator: validatePass },
+ // ],
+ storeaddr: [
{ required: true, trigger: "blur", validator: validateTruename },
],
- // gender: [
- // { required: true, trigger: "blur" },
- // ],
- isDy: [
- { required: true, trigger: "blur" },
- ],
- mobile: [
+ contact: [
{ required: true, trigger: "blur", validator: validatePhone },
],
- email: [
- { required: false, trigger: "blur", validator: validateMail },
+ description: [
+ { required: false, trigger: "blur", validator: validateDesc },
],
- // role: [
- // { required: true, trigger: "blur", validator: validateRole },
- // ],
- userType: [
- { required: true, trigger: "blur", validator: validateType },
- ],
- zj: [
- { required: false, trigger: "blur" },
- ],
- departmentId: [
- { required: true, trigger: "blur", validator: validateDepartment },
- ],
- jobTitle: [
- { required: true, trigger: "blur", validator: validateWork },
- ],
- // mac: [
- // { required: false, trigger: "blur", validator: validateMac },
- // ],
- // ip: [
- // { required: false, trigger: "blur", validator: validateIp },
- // ],
+ storename: [
+ { 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']
@@ -303,6 +320,7 @@
display: flex;
justify-content: flex-end;
padding: 0 20px;
+
.optionBtn {
display: flex;
margin-top: 20px;
@@ -312,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