From 3286dd82b83adf92cc576300e9e73a4dfb2aa880 Mon Sep 17 00:00:00 2001
From: luobisheng <727299681@qq.com>
Date: 星期四, 10 十一月 2022 11:12:03 +0800
Subject: [PATCH] 店铺管理
---
src/views/operate/fivepack/threepack/components/updateUser/index.vue | 119 ++++++-
/dev/null | 340 ------------------------
src/views/operate/fivepack/shop/index.vue | 27 -
src/views/operate/fivepack/threepack/components/content.vue | 256 ++++++++++++++++++
src/views/operate/fivepack/threepack/index.vue | 71 ----
5 files changed, 356 insertions(+), 457 deletions(-)
diff --git a/src/views/operate/fivepack/shop/components/createUser/index.vue b/src/views/operate/fivepack/shop/components/createUser/index.vue
deleted file mode 100644
index 6a17d2b..0000000
--- a/src/views/operate/fivepack/shop/components/createUser/index.vue
+++ /dev/null
@@ -1,343 +0,0 @@
-<template>
- <div class="createUser">
- <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="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="store.storename" placeholder="璇峰~鍐欏簵閾哄悕绉�"></el-input>
- </el-form-item>
- <!-- 璐熻矗浜� -->
- <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="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="contact">
- <el-input v-model="store.contact" placeholder="璇峰~鍐欏簵閾鸿仈绯绘柟寮�"></el-input>
- </el-form-item>
- <!-- 搴楅摵鍦板潃 -->
- <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" @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 {
- callback();
- }
- };
- const validateShopName = (rule, value, callback) => {
- if (!value) {
- callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'));
- } else {
- callback();
- }
- };
- const validateTruename = (rule, value, callback) => {
- if (!value) {
- callback(new Error('搴楅摵鍦板潃涓嶈兘涓虹┖'));
- } else {
- callback()
- }
- };
- const validatePhone = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
- } else {
- 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) {
- // callback();
- // } else {
- // callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'))
- // }
- // };
- const validateType = (rule, value, callback) => {
- console.log(value)
- if (!value) {
- callback(new Error('闂ㄥ簵绫诲瀷涓嶈兘涓虹┖'));
- } else {
- callback();
- }
- };
- const validateDesc = (rule, value, callback) => {
- if (!value) {
- callback();
- } else {
- callback();
- }
- };
- return {
- store: {
- contact: '',
- idcardinfo: '',
- owner: '',
- storeaddr: '',
- storename: '',
- storedesc: '',
- type: '',
- },
- createUserRules: {
- owner: [
- { required: true, trigger: "blur", validator: validateNickname },
- ],
- 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: true, trigger: "blur", validator: validateShopName },
- ]
- },
- shopTypeList: [
- { name: '绫诲瀷1', value: 1 }, { name: '绫诲瀷2', value: 2 }
- ],
- defaultProps: {
- children: 'children',
- label: 'name',
- disabled: (data, node) => {
- if (node.level === 1 && node.childNodes.length !== 0) {
- return !data.leaf
- }
- }
- },
- selectOrg: {
- orgsid: []
- },
- }
- },
- created() {
- this.getShopTypeList();
- },
- methods: {
- 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;
- }
- })
- },
- 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']
-}
-</script>
-<style lang="scss" scoped>
-.createUser {
- border-radius: 1px;
- background-color: #09152f;
- padding-bottom: 50px;
-
- main {
- text-align: left;
- padding: 0 55px;
- background-color: #09152f;
- padding-top: 20px;
-
- .mainContent {
- display: flex;
- justify-content: center;
- margin-top: 50px;
-
- &::v-deep .el-form-item__label {
- color: #4b9bb7;
- }
-
- &::v-deep .el-input__inner {
- background-color: #09152f;
- border: 1px solid #17324c;
- }
-
- &::v-deep .el-textarea__inner {
- background-color: #09152f;
- border: 1px solid #17324c;
- }
-
- .el-form-item__content {
- width: 400px;
-
- .el-select {
- width: 100%;
- }
- }
-
- .optionHandleSp {
- display: flex;
-
- .areaNumber,
- .moreNumber {
- flex: 1;
- }
-
- .telNumber {
- flex: 2;
- }
- }
-
- }
- }
-
- footer {
- border-top: 1px solid #4b9bb7;
- display: flex;
- justify-content: flex-end;
- padding: 0 20px;
-
- .optionBtn {
- display: flex;
- margin-top: 20px;
-
- .btn {
- padding: 12px 50px;
- }
- }
- }
-
- ::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
diff --git a/src/views/operate/fivepack/shop/components/header/index.vue b/src/views/operate/fivepack/shop/components/header/index.vue
deleted file mode 100644
index bdda097..0000000
--- a/src/views/operate/fivepack/shop/components/header/index.vue
+++ /dev/null
@@ -1,131 +0,0 @@
-<template>
- <header>
- <div class="headerContent">
- <div class="find">
- <div class="search">
- <span>杈撳叆鏌ヨ:</span>
- <el-input placeholder="搴楅摵(闂ㄥ簵)鍚嶇О" v-model="search"></el-input>
- </div>
- <!-- <div class="status">
- <span>搴楅摵鐘舵��:</span>
- <el-input placeholder="閫夋嫨搴楅摵鐘舵��" v-model="shopStatus"></el-input>
- </div> -->
- <div class="findBtn">
- <el-button type="primary" @click="setSearch" icon="el-icon-search">鏌ヨ</el-button>
- <el-button icon="el-icon-delete-solid" @click="clearSearch">閲嶇疆</el-button>
- </div>
- </div>
- <div class="add">
- <el-button class="addBtn" type="primary" @click="dialogCreate = true" icon="el-icon-plus">娣诲姞</el-button>
- </div>
-
- </div>
- <div class="footer">
- <el-dialog :visible.sync="dialogCreate" title="娣诲姞搴楅摵" width="45%" v-if="dialogCreate" :before-close="handleClose">
- <createUser @sendDialog="sendDialog" />
- </el-dialog>
- </div>
- </header>
-</template>
-<script>
-import createUser from "../createUser";
-export default {
- components: {
- createUser,
- },
- data() {
- return {
- dialogCreate: false,
- search: '',
- shopStatus:'',
- }
- },
- methods: {
- // 杩斿洖缁欑埗绾ф悳绱㈠唴瀹�
- setSearch() {
- this.$emit('getSearch', { text: this.search })
- },
- // 鐖剁骇鍏抽棴dialog
- sendDialog(flag) {
- console.log(flag);
- this.dialogCreate = flag.flag;
- this.$emit('setDialog', { flag: true })
- },
- //鍏抽棴dialog
- handleClose(done){
- console.log(done);
- this.$confirm('纭畾鍏抽棴锛�')
- .then(_=>{
- done();
- })
- .catch(err=>{
- })
- },
- // 娓呯┖search
- clearSearch(){
- this.search = '';
- this.$emit('getSearch',{text:this.search});
- },
- },
- props: ['setDialog', 'getSearch', 'flag'],
-}
-</script>
-<style lang="scss" scoped>
-header {
- background-color: #09152f;
- border: 1pox solid #fff;
-
- .headerContent {
- padding: 0 40px;
- display: flex;
- line-height: 100px;
- justify-content: space-between;
- align-items: center;
- .find{
- display: flex;
- }
- .search,
- .status {
- display: flex;
- justify-content: flex-start;
-
- span {
- flex: 1;
- }
-
- .el-input {
- flex: 2;
- color: #1d3f57;
-
- &::v-deep .el-input__inner {
- background-color: #09152f;
- border: 1px solid #17324c;
- }
- }
-
- }
-
- .status {
- margin-left: 20px;
- }
-
- .findBtn {
- line-height: 100px;
- margin-left: 15px;
- display: flex;
- align-items: center;
-
- .el-button {
- padding: 12px 25px;
- }
- }
-
- .addBtn {
- padding: 12px 30px;
- margin-left: 20%;
- }
-
-
- }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/operate/fivepack/shop/components/main/index.vue b/src/views/operate/fivepack/shop/components/main/index.vue
deleted file mode 100644
index 337323f..0000000
--- a/src/views/operate/fivepack/shop/components/main/index.vue
+++ /dev/null
@@ -1,285 +0,0 @@
-<template>
- <main>
- <div class="mainContent">
- <!-- 鏁版嵁灞曠ず -->
- <el-table ref="multipleTable"
- :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
- :data="tableData" style="width: 100%" :row-class-name="tableRowClassName">
- <el-table-column type="selection" min-width="5">
- </el-table-column>
- <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10">
- </el-table-column>
- <el-table-column label="搴楅摵鍚嶇О" min-width="10">
- <template slot-scope="scope">{{ scope.row.storeName }}</template>
- </el-table-column>
- <el-table-column prop="owner" label="搴楅摵璐熻矗浜�" min-width="10">
- </el-table-column>
- <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10">
- </el-table-column>
- <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10">
- </el-table-column>
- <el-table-column prop="operation" label="鎿嶄綔" min-width="15">
- <template slot-scope="scope">
- <div class="operation">
- <el-link icon="el-icon-edit" :underline="false" @click.native.prevent='handleEdit(scope.row)'>缂栬緫</el-link>
- <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false"
- @click.native.prevent="hadnleDelete(scope.row)">鍒犻櫎</el-link>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <!-- 鏌ョ湅淇敼椤甸潰 -->
- <el-dialog :visible.sync="dialogUpdate" width="45%" v-if="dialogUpdate"
- title="缂栬緫鍟嗛摵淇℃伅" :before-close="handleClose">
- <updateUser :userInfo=userInfo @changeDialog="changeDialog" />
- </el-dialog>
- <!-- 鍒嗛〉 -->
- <div class="pagination">
- <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
- :page-size="pageSize" @current-change="changeCurrentPage" @prev-click="handlePrev"
- @next-click="handleNext">
- </el-pagination>
- </div>
- </div>
- </main>
-</template>
-<script>
-import helper from '@/utils/mydate'
-import updateUser from '../updateUser';
-export default {
- components: {
- updateUser
- },
- data() {
- return {
- tableData: [],
- search: "",
- dialogUpdate: false,
- userInfo: '',
- totalNum: 0,
- pageSize: 10,
- currentPage: 1,
- renderFlag: false,
- }
- },
- created() {
- this.getUserList();
- },
- methods: {
- // 鍏抽棴寮圭獥
- handleClose(done){
- this.$confirm('纭鍏抽棴')
- .then(_=>{
- done();
- })
- .catch(err=>{
- console.log(err);
- })
- },
- // 鏀瑰彉寮圭獥鐘舵��
- changeDialog({flag}){
- this.dialogUpdate = flag;
- this.getUserList();
- },
- // 鍒犻櫎
- hadnleDelete({id}) {
- console.log(id);
- this.$confirm('纭畾鍒犻櫎锛�')
- .then(_=>{
- this.$axios({
- method:'get',
- url:`sccg/store/storeinfo/delete/${id}`
- })
- .then(res=>{
- if(res.code === 200){
- this.$message({
- type:'success',
- message:'鍒犻櫎鎴愬姛',
- })
- this.getUserList();
- }
- })
- .catch(err=>{
- console.log(err,2)
- })
- })
- .catch(err=>{
- console.log(err,1);
- })
- },
- // 缂栬緫
- async handleEdit({id}){
- this.userInfo = await this.getShopInfo(id);
- this.dialogUpdate = true;
- },
- // 鑾峰彇闂ㄥ簵淇℃伅
- async getShopInfo(id){
- let obj = {};
- await this.$axios({
- method:'get',
- url:`sccg/store/storeinfo/${id}`,
- })
- .then(res=>{
- obj = res.data
- })
- return obj;
- },
- // 褰撳墠椤垫敼鍙樿Е鍙戜簨浠�
- changeCurrentPage(page) {
- this.currentPage = page;
- this.getUserList();
- },
- // 涓婁竴椤电偣鍑讳簨浠�
- handlePrev(page) {
- this.currentPage = page;
- this.getUserList();
- },
- // 涓嬩竴椤电偣鍑讳簨浠�
- handleNext(page) {
- this.currentPage = page;
- this.getUserList();
- },
- // 鑾峰彇鐢ㄦ埛鍒楄〃
- getUserList() {
- const that = this;
- const { currentPage, pageSize, search } = this;
- this.$axios.get(`sccg/store/storeinfo/list?keyword=${search}&pageNum=${currentPage}&pageSize=${pageSize}`)
- .then(res => {
- if (res.code === 200) {
- res.data.list.forEach(item => {
- item.createTime = helper(item.createTime);
- item.status == 1 ? item.status = true : item.status = false;
- })
- that.totalNum = res.data.total;
- that.tableData = res.data.list;
- this.renderFlag = true;
- }
- })
- },
- // 璁剧疆琛ㄦ牸鏂戦┈绾�
- tableRowClassName({ row, rowIndex }) {
- if ((rowIndex + 1) % 2 == 0) {
- return 'warning-row';
- } else {
- return 'success-row';
- }
- return '';
- },
- },
- props: ['refresh', 'keyword', 'resetFresh'],
- watch: {
- refresh: {
- handler(newValue, oldValue) {
- if (newValue == true) {
- this.search = '';
- if (this.keyword != '') {
- this.search = this.keyword;
- }
- this.getUserList();
- this.$emit('resetFresh', { flag: false })
- }
- },
- immediate: true
- }
- }
-}
-</script>
-<style lang="scss" scoped>
-main {
- background-color: #09152f;
- margin-top: 20px;
- padding-bottom: 50px;
-
- .mainTitle {
- line-height: 60px;
- }
-
- .el-link {
- color: #4b9bb7;
- }
-
- .leftPx {
- margin-left: 10px;
- }
-
- .pagination {
- margin-top: 50px;
- display: flex;
- line-height: 50px;
- justify-content: center;
-
- .el-pagination {
-
- &::v-deep li,
- &::v-deep .btn-prev,
- &::v-deep .btn-next {
- background-color: #071f39;
- color: #4b9bb7;
- }
- }
- }
-
- .el-table {
- color: #4b9bb7;
- font-size: 10px;
-
- &::v-deep .el-table__empty-block {
- background-color: #09152f;
- color: #4b9bb7;
- }
-
- .operation {
- display: flex;
-
- .line {
- padding: 0 5px;
- }
-
- .el-button {
- border: none;
- }
-
- span:hover {
- cursor: pointer;
- }
- }
- }
-
- .el-table::v-deep .warning-row {
- background: #06122c;
- }
-
- .el-table::v-deep .success-row {
- background: #071f39;
- }
-
- &::v-deep .switchStyle .el-switch__label {
- position: absolute;
- display: none;
- color: #fff;
- }
-
- &::v-deep .el-switch__core {
- background-color: rgba(166, 166, 166, 1);
- }
-
- &::v-deep .switchStyle .el-switch__label--left {
- z-index: 9;
- left: 20px;
- }
-
- &::v-deep .switchStyle .el-switch__label--right {
- z-index: 9;
- left: 4px;
- }
-
- &::v-deep .switchStyle .el-switch__label.is-active {
- display: block;
- }
-
- &::v-deep .switchStyle.el-switch .el-switch__core,
- &::v-deep .el-switch .el-switch__label {
- width: 50px !important;
- }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/operate/fivepack/shop/components/updateUser/index.vue b/src/views/operate/fivepack/shop/components/updateUser/index.vue
deleted file mode 100644
index bc4e04d..0000000
--- a/src/views/operate/fivepack/shop/components/updateUser/index.vue
+++ /dev/null
@@ -1,340 +0,0 @@
-<template>
- <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="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>
- <!-- 搴楅摵鍚嶇О -->
- <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="owner">
- <el-input v-model="store.owner" placeholder="璇峰~鍐欏簵閾鸿礋璐d汉鍚嶅瓧"></el-input>
- </el-form-item>
- <!-- 搴楅摵鎻忚堪 -->
- <el-form-item class="optionItem" label="搴楅摵鎻忚堪:" prop="description">
- <el-input type="textarea" :autosize="{ minRows: 2, maxRows: 4 }" maxlength="300" show-word-limit
- v-model="store.description" placeholder="杈撳叆搴楅摵鎻忚堪"></el-input>
- </el-form-item>
- <!-- 鑱旂郴鏂瑰紡 -->
- <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="storeAddress">
- <el-input v-model="store.storeAddress" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�"></el-input>
- </el-form-item>
- </el-form>
- </div>
- </main>
- <footer>
- <div class="optionBtn">
- <el-button class="btn reset" @click="handleBack">鍙栨秷</el-button>
- <el-button type="primary" class="btn submit" @click="handleUser">纭畾</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 {
- callback();
- }
- };
- const validatePass = (rule, value, callback) => {
- if (!value) {
- callback();
- } else {
- callback();
- }
- };
- const validateTruename = (rule, value, callback) => {
- if (!value) {
- callback(new Error('搴楅摵鍦板潃涓嶈兘涓虹┖'));
- } else {
- callback()
- }
- };
- const validatePhone = (rule, value, callback) => {
- if (!value) {
- callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
- } else {
- 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) {
- callback();
- } else {
- callback(new Error('搴楅摵鍚嶇О涓嶈兘涓虹┖'))
- }
- };
- const validateType = (rule, value, callback) => {
- if (!value) {
- callback(new Error('闂ㄥ簵绫诲瀷涓嶈兘涓虹┖'));
- } else {
- callback();
- }
- };
- const validateDesc = (rule, value, callback) => {
- if (!value) {
- callback();
- } else {
- callback();
- }
- };
- return {
- store: {
- },
- createUserRules: {
- owner: [
- { required: true, trigger: "blur", validator: validateNickname },
- ],
- storetype: [
- {
- required: true, trigger: 'change', validator: validateType,
- }
- ],
- idcardinfo: [
- { required: true, trigger: "blur", validator: validatePass },
- ],
- storeAddress: [
- { required: true, trigger: "blur", validator: validateTruename },
- ],
- contact: [
- { required: true, trigger: "blur", validator: validatePhone },
- ],
- storeName: [
- { required: true, trigger: "blur", validator: validateMail },
- ],
- description: [
- { required: false, trigger: "blur", validator: validateDesc },
- ],
- },
- shopTypeList: [
-
- ],
- defaultProps: {
- children: 'children',
- label: 'name',
- },
- selectOrg: {
- orgsid: []
- },
- showFlag:false
- }
- },
- created() {
- const { userInfo } = this;
- this.store = userInfo
- this.getShopTypeList();
- },
- 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) => {
- console.log(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,
- 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 {
- return false;
- }
- })
- },
- handleBack() {
- this.$emit('changeDialog', { flag: false })
- }
- },
- props: ['userInfo', 'changeDialog']
-}
-</script>
-<style lang="scss" scoped>
-.createUser {
- border-radius: 1px;
- background-color: #09152f;
- padding-bottom: 50px;
-
- main {
- text-align: left;
- padding: 0 55px;
- background-color: #09152f;
- padding-top: 20px;
-
- .mainContent {
- display: flex;
- justify-content: center;
- margin-top: 50px;
-
- &::v-deep .el-form-item__label {
- color: #4b9bb7;
- }
-
- &::v-deep .el-input__inner {
- background-color: #09152f;
- border: 1px solid #17324c;
- }
-
- &::v-deep .el-textarea__inner {
- background-color: #09152f;
- border: 1px solid #17324c;
- }
-
- .el-form-item__content {
- width: 400px;
-
- .el-select {
- width: 100%;
- }
- }
-
- .optionHandleSp {
- display: flex;
-
- .areaNumber,
- .moreNumber {
- flex: 1;
- }
-
- .telNumber {
- flex: 2;
- }
- }
-
- }
- }
-
- footer {
- border-top: 1px solid #4b9bb7;
- display: flex;
- justify-content: flex-end;
- padding: 0 20px;
-
- .optionBtn {
- display: flex;
- margin-top: 20px;
-
- .btn {
- padding: 12px 50px;
- }
- }
- }
-
- ::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
diff --git a/src/views/operate/fivepack/shop/index.vue b/src/views/operate/fivepack/shop/index.vue
index 96b7aad..8cbb6a1 100644
--- a/src/views/operate/fivepack/shop/index.vue
+++ b/src/views/operate/fivepack/shop/index.vue
@@ -1,17 +1,12 @@
<template>
<div class="userList">
- <myHeader @setDialog="changeDialog" @getSearch="getSearch"></myHeader>
- <myMain :refresh="isFresh" :keyword="keyword" @resetFresh="resetFresh" />
+ <store-content :model="'store'" />
</div>
</template>
<script>
-import myHeader from "./components/header"
-import myMain from "./components/main"
+import storeContent from "@/views/operate/fivepack/threepack/components/content";
export default {
- components: {
- myHeader,
- myMain
- },
+ components: { storeContent },
data() {
return {
isFresh: false,
@@ -19,21 +14,6 @@
}
},
methods: {
- // 鑾峰彇鎼滅储杩斿洖缁撴灉
- getSearch({ text }) {
- this.keyword = text;
- this.isFresh = true;
- },
- // 鑾峰彇鍒锋柊缁撴灉
- changeDialog({ flag }) {
- console.log(flag);
- this.isFresh = flag;
- },
- // 閲嶇疆isFresh
- resetFresh({ flag }) {
- this.isFresh = flag;
- console.log(this.isFresh);
- }
}
}
</script>
@@ -63,7 +43,6 @@
&::v-deep .el-dialog__close {
width: 20px;
height: 20px;
- // color: #fff;
}
&::v-deep .el-dialog__body {
diff --git a/src/views/operate/fivepack/threepack/components/content.vue b/src/views/operate/fivepack/threepack/components/content.vue
new file mode 100644
index 0000000..5efe156
--- /dev/null
+++ b/src/views/operate/fivepack/threepack/components/content.vue
@@ -0,0 +1,256 @@
+<template>
+ <div class="content">
+ <header>
+ <div class="headerContent">
+ <div class="find">
+ <div class="search-item">
+ <span>杈撳叆鏌ヨ:</span>
+ <el-input style="flex: 1" :placeholder="isStorePage() ? '搴楅摵锛堥棬搴楋級鍚嶇О' : '璇疯緭鍏ュ簵閾虹紪鍙�'" v-model="storeCode" />
+ </div>
+ <div class="search-item">
+ <span>搴楅摵鐘舵��:</span>
+ <el-select v-model="storeStatus" placeholder="閫夋嫨搴楅摵鐘舵��">
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+ </el-select>
+ </div>
+ <div class="findBtn">
+ <el-button type="primary" @click="search" icon="el-icon-search">鏌ヨ</el-button>
+ <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button>
+ </div>
+ </div>
+ <el-button v-if="isStorePage()" type="primary" icon="el-icon-plus" @click="handleView(null, 'add')">娣诲姞</el-button>
+ </div>
+ </header>
+ <main>
+ <!-- 鏁版嵁灞曠ず -->
+ <el-table ref="multipleTable"
+ :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
+ :data="tableData" style="width: 100%" :row-class-name="tableRowClassName">
+ <el-table-column type="selection" min-width="5">
+ </el-table-column>
+ <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10">
+ </el-table-column>
+ <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10">
+ </el-table-column>
+ <el-table-column prop="owner" label="搴楅摵鑱旂郴浜�" min-width="10">
+ </el-table-column>
+ <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10">
+ </el-table-column>
+ <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10">
+ </el-table-column>
+ <el-table-column prop="relationVideo" label="鍏宠仈鎽勫儚鏈�" min-width="10">
+ </el-table-column>
+ <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
+ <template slot-scope="scope">
+ <div v-if="!isStorePage()" class="operation">
+ <el-link icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'update')">缂栬緫</el-link>
+ <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete(scope.row.id)">鍒犻櫎</el-link>
+ <el-link class="leftPx" icon="el-icon-edit" :underline="false">鎺ㄩ�佷俊鎭�</el-link>
+ <el-link class="leftPx" icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'view')">鏌ョ湅</el-link>
+ </div>
+ <div v-else class="operation">
+ <el-link icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'update')">缂栬緫</el-link>
+ <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false"
+ @click="handleDelete(scope.row.id)">鍒犻櫎</el-link>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ <!-- 鏌ョ湅淇敼椤甸潰 -->
+ <el-dialog :visible.sync="dialogUpdate" width="45%"
+ :title="dialogType ? '淇敼搴楅摵淇℃伅' : '鏌ョ湅搴楅摵淇℃伅'" :before-close="handleClose">
+ <updateUser :dialogType="dialogType" :storeInfo="storeInfo" :isStorePage="isStorePage()" @closeDialog="closeDialog" />
+ </el-dialog>
+ <!-- 鍒嗛〉 -->
+ <div class="pagination">
+ <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
+ :page-size="pageSize" @current-change="changeCurrentPage">
+ </el-pagination>
+ </div>
+ </main>
+ </div>
+</template>
+<script>
+import updateUser from "@/views/operate/fivepack/threepack/components/updateUser";
+import { getStoreInfoList, deleteStoreInfo } from "@/api/operate/storeManagement";
+
+export default {
+ components: { updateUser },
+
+ created() {
+ this.search();
+ },
+
+ props: ['model'],
+
+ data() {
+ return {
+ storeCode: null,
+ storeStatus: null,
+ options: [{ label: '缁忚惀', value: 1 }, { label: '鍊掗棴', value: 2 }],
+ tableData: [],
+ dialogUpdate: false,
+ currentPage: 1,
+ totalNum: 0,
+ pageSize: 10,
+ userInfo: null,
+ dialogType: '',
+ storeInfo: null
+ }
+ },
+
+ methods: {
+ search() {
+ getStoreInfoList({ keyword: this.storeCode })
+ .then(({ list, pageSize, totalPage }) => {
+ this.tableData = list;
+ this.pageSize = pageSize;
+ this.totalNum = totalPage;
+ })
+ .catch(err => this.$message({ type: 'error', message: err }));
+ },
+
+ handleReset() {
+ this.storeCode = '';
+ this.storeStatus = null;
+ this.search();
+ },
+
+ handleView(row, type) {
+ this.dialogUpdate = true;
+ this.storeInfo = row;
+ this.dialogType = type;
+ },
+
+ handleDelete(id) {
+ deleteStoreInfo(id)
+ .then(() => {
+ this.$message({ type: 'success', message });
+ this.search();
+ })
+ .catch(err => this.$message({ type: 'error', message: err }));
+ },
+
+ handleClose() {
+ this.dialogUpdate = false;
+ },
+
+ closeDialog() {
+ this.dialogUpdate = false;
+ this.search();
+ },
+
+ changeCurrentPage(currentPage) {
+ this.currentPage = currentPage;
+ this.search();
+ },
+
+ tableRowClassName({ row, rowIndex }) {
+ if ((rowIndex + 1) % 2 === 0) {
+ return "warning-row";
+ } else {
+ return "success-row";
+ }
+ },
+
+ isStorePage() {
+ return this.model === 'store';
+ }
+ }
+}
+</script>
+<style lang="scss" scoped>
+.content{
+ flex: 1;
+ height: 100%;
+ padding-left: 20px;
+
+ .headerContent {
+ display: flex;
+ line-height: 100px;
+ justify-content: space-between;
+ align-items: center;
+
+ .find {
+ display: flex;
+ }
+
+ .search-item {
+ display: flex;
+ padding: 10px;
+ }
+
+ .findBtn {
+ line-height: 100px;
+ margin-left: 15px;
+ display: flex;
+ align-items: center;
+
+ .el-button {
+ padding: 12px 25px;
+ }
+ }
+
+ .addBtn {
+ padding: 12px 30px;
+ margin-left: 20%;
+ }
+ }
+
+ main {
+ background-color: #09152f;
+ margin-top: 20px;
+ padding-bottom: 50px;
+
+ .mainTitle {
+ line-height: 60px;
+ }
+
+ .el-link {
+ color: #4b9bb7;
+ }
+
+ .leftPx {
+ margin-left: 10px;
+ }
+
+ .pagination {
+ margin-top: 50px;
+ display: flex;
+ line-height: 50px;
+ justify-content: center;
+
+ .el-pagination {
+ &::v-deep li,
+ &::v-deep .btn-prev,
+ &::v-deep .btn-next {
+ background-color: #071f39;
+ color: #4b9bb7;
+ }
+ }
+ }
+
+ .el-table {
+ color: #4b9bb7;
+ font-size: 10px;
+
+ &::v-deep .el-table__empty-block {
+ background-color: #09152f;
+ color: #4b9bb7;
+ }
+
+ .operation {
+ display: flex;
+
+ .el-button {
+ border: none;
+ }
+
+ span:hover {
+ cursor: pointer;
+ }
+ }
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/src/views/operate/fivepack/threepack/components/updateUser/index.vue b/src/views/operate/fivepack/threepack/components/updateUser/index.vue
index 2607fba..b4c5f9a 100644
--- a/src/views/operate/fivepack/threepack/components/updateUser/index.vue
+++ b/src/views/operate/fivepack/threepack/components/updateUser/index.vue
@@ -4,31 +4,35 @@
<div class="mainContent">
<el-form ref="store" label-width="140px" autoComplete="on" :model="store" :rules="rules"
label-position="right">
+ <!-- 搴楅摵绫诲瀷 -->
+ <el-form-item v-if="isStorePage" class="optionItem" label="搴楅摵绫诲瀷:" prop="type">
+ <el-cascader :options="shopTypeList" v-model="store.type" />
+ </el-form-item>
<!-- 搴楅摵缂栧彿 -->
<el-form-item class="optionItem" label="搴楅摵缂栧彿:" prop="storeNumber">
- <el-input v-model="store.storeNumber" placeholder="璇峰~鍐欏簵閾虹紪鍙�" :disabled="!updateFlag"></el-input>
+ <el-input v-model="store.storeNumber" placeholder="璇峰~鍐欏簵閾虹紪鍙�" :disabled="isView()"></el-input>
</el-form-item>
<!-- 搴楅摵鍚嶇О -->
- <el-form-item class="optionItem" label="搴楅摵鍚嶇О:" prop="storeName">
- <el-input v-model="store.storeName" placeholder="璇峰~鍐欏簵鍚嶇О" :disabled="!updateFlag"></el-input>
+ <el-form-item class="optionItem" label="搴楅摵鍚嶇О:" prop="storename">
+ <el-input v-model="store.storename" placeholder="璇峰~鍐欏簵鍚嶇О" :disabled="isView()"></el-input>
</el-form-item>
<!-- 搴楅摵鑱旂郴浜� -->
<el-form-item class="optionItem" label="搴楅摵鑱旂郴浜�:" prop="owner">
- <el-input v-model="store.owner" placeholder="璇峰~鍐欏簵閾鸿仈绯讳汉" :disabled="!updateFlag"></el-input>
+ <el-input v-model="store.owner" placeholder="璇峰~鍐欏簵閾鸿仈绯讳汉" :disabled="isView()"></el-input>
</el-form-item>
<!-- 搴楅摵鑱旂郴鐢佃瘽 -->
<el-form-item class="optionItem" label="搴楅摵鑱旂郴鐢佃瘽:" prop="contact">
- <el-input v-model="store.contact" placeholder="璇峰~鍐欏簵閾鸿仈绯荤數璇�" :disabled="!updateFlag"></el-input>
+ <el-input v-model="store.contact" placeholder="璇峰~鍐欏簵閾鸿仈绯荤數璇�" :disabled="isView()"></el-input>
</el-form-item>
<!-- 搴楅摵璇︾粏鍦板潃 -->
- <el-form-item class="optionItem" label="搴楅摵璇︾粏鍦板潃:" prop="storeAddress">
- <el-input v-model="store.storeAddress" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�" :disabled="!updateFlag"></el-input>
+ <el-form-item class="optionItem" label="搴楅摵璇︾粏鍦板潃:" prop="storeaddr">
+ <el-input v-model="store.storeaddr" placeholder="璇峰~鍐欏簵閾鸿缁嗗湴鍧�" :disabled="isView()"></el-input>
</el-form-item>
<!-- 鍏宠仈鎽勫儚鏈� -->
- <el-form-item class="optionItem" label="鍏宠仈鎽勫儚鏈�:" prop="relationVideo">
- <el-input v-model="store.relationVideo" placeholder="璇峰~鍐欏叧鑱旀憚鍍忔満" :disabled="!updateFlag"></el-input>
+ <el-form-item v-if="!isStorePage" class="optionItem" label="鍏宠仈鎽勫儚鏈�:" prop="relationVideo">
+ <el-input v-model="store.relationVideo" placeholder="璇峰~鍐欏叧鑱旀憚鍍忔満" :disabled="isView()"></el-input>
</el-form-item>
- <el-form-item v-if="updateFlag">
+ <el-form-item v-if="!isView()">
<div class="optionBtn">
<el-button type="primary" class="btn submit" @click.native.prevent="onSubmit">鎻愪氦</el-button>
</div>
@@ -39,52 +43,115 @@
</div>
</template>
<script>
-import { deepClone } from "@/utils/helper";
-import { updateStoreInfo } from "@/api/operate/storeManagement";
-import { SUCCESS_CODE } from "@/utils";
+import {deepClone, getCodeList} from "@/utils/helper";
+import {addStoreInfo, updateStoreInfo} from "@/api/operate/storeManagement";
export default {
data() {
+ const validatePhone = (rule, value, callback) => {
+ if (!value) {
+ callback(new Error("璇峰~鍐欐墜鏈哄彿鐮�"));
+ } else {
+ const rep = /(^1[3|4|5|7|8|9]\d{9}$)|(^09\d{8}$)/
+ if (!rep.test(value)) {
+ callback("璇疯緭鍏ユ纭殑鎵嬫満鍙风爜");
+ } else {
+ callback();
+ }
+ }
+ };
return {
store: {
storeNumber: '',
- storeName: '',
+ storename: '',
owner: '',
contact: '',
- storeAddress: '',
- relationVideo: ''
+ storeaddr: '',
+ relationVideo: '',
+ type: null
},
rules: {
+ type: [{ required: true, trigger: ['blue', 'change'], message: '璇烽�夋嫨搴楅摵绫诲瀷' }],
storeNumber: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾虹紪鍙�' }],
- storeName: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾哄悕绉�' }],
- owner: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿仈绯讳汉' }],
- contact: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿仈绯荤數璇�:' }],
- storeAddress: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿缁嗗湴鍧�' }],
+ storename: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾哄悕绉�' }],
+ owner: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿仈绯讳汉' }],
+ contact: [{ required: true, trigger:'blur', validator: validatePhone }],
+ storeaddr: [{ required: true, trigger:'blur', message: '璇疯緭鍏ュ簵閾鸿缁嗗湴鍧�' }],
relationVideo: [{ required: false, trigger:'blur', message: '璇疯緭鍏ュ叧鑱旀憚鍍忔満' }]
},
+ shopTypeList: []
}
},
created() {
this.store = deepClone(this.storeInfo);
+ if (this.isCreated()) {
+ this.getShopTypeList();
+ }
},
methods: {
onSubmit() {
this.$refs.store.validate(valid => {
if (valid) {
- updateStoreInfo(this.store)
- .then(() => {
+ if (this.isCreated()) {
+ this.store.type = this.store.type[1];
+ addStoreInfo(this.store)
+ .then(() => {
this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
this.$emit('closeDialog');
- })
- .catch(err => this.$message({ type: 'error', message: err }));
+ })
+ .catch(err => this.$message({ type: 'error', message: err }));
+ } else {
+ updateStoreInfo(this.store)
+ .then(() => {
+ this.$message({ type: 'success', message: '鎿嶄綔鎴愬姛' });
+ this.$emit('closeDialog');
+ })
+ .catch(err => this.$message({ type: 'error', message: err }));
+ }
} else {
this.$message({ type: 'warning', message: '璇锋鏌ュ繀濉」' });
}
});
+ },
+
+ isView() {
+ return this.dialogType === 'view';
+ },
+
+ isCreated() {
+ return this.dialogType === 'add';
+ },
+
+ // 鑾峰彇瀛楀吀
+ 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
+ })
+ // 娣诲姞child
+ treeRoot.forEach(item => {
+ item.children = []
+ arr.forEach(child => {
+ child.value = child.id;
+ child.label = child.name;
+ if (child.parentId === item.id) {
+ item.children.push(child)
+ }
+ })
+ })
+ return treeRoot;
+ }
}
},
- props: ['storeInfo', 'updateFlag']
+ props: ['storeInfo', 'dialogType', 'isStorePage']
}
</script>
<style lang="scss" scoped>
@@ -96,7 +163,6 @@
text-align: left;
padding: 0 55px;
background-color: #09152f;
- padding-bottom: 50px;
.mainContent {
display: flex;
@@ -145,4 +211,5 @@
background-color: #09152f;
border: 1px solid #17324c;
}
+
</style>
\ No newline at end of file
diff --git a/src/views/operate/fivepack/threepack/index.vue b/src/views/operate/fivepack/threepack/index.vue
index 7c4b16e..188f628 100644
--- a/src/views/operate/fivepack/threepack/index.vue
+++ b/src/views/operate/fivepack/threepack/index.vue
@@ -1,80 +1,17 @@
<template>
<div class="userList">
- <myAside />
- <div class="right">
- <header>
- <div class="headerContent">
- <div class="find">
- <div class="search-item">
- <span>杈撳叆鏌ヨ:</span>
- <el-input style="flex: 1" placeholder="璇疯緭鍏ュ簵閾虹紪鍙�" v-model="storeCode" slot="prefix"></el-input>
- </div>
- <div class="search-item">
- <span>搴楅摵鐘舵��:</span>
- <el-select v-model="storeStatus" placeholder="閫夋嫨搴楅摵鐘舵��">
- <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
- </el-select>
- </div>
- <div class="findBtn">
- <el-button type="primary" @click="search" icon="el-icon-search">鏌ヨ</el-button>
- <el-button icon="el-icon-delete-solid" @click="handleReset">閲嶇疆</el-button>
- </div>
- </div>
- </div>
- </header>
- <main>
- <!-- 鏁版嵁灞曠ず -->
- <el-table ref="multipleTable"
- :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}"
- :data="tableData" style="width: 100%" :row-class-name="tableRowClassName">
- <el-table-column type="selection" min-width="5">
- </el-table-column>
- <el-table-column prop="storeNumber" label="搴楅摵缂栧彿" min-width="10">
- </el-table-column>
- <el-table-column prop="storeName" label="搴楅摵鍚嶇О" min-width="10">
- </el-table-column>
- <el-table-column prop="owner" label="搴楅摵鑱旂郴浜�" min-width="10">
- </el-table-column>
- <el-table-column prop="contact" label="搴楅摵鑱旂郴鐢佃瘽" min-width="10">
- </el-table-column>
- <el-table-column prop="storeAddress" label="搴楅摵璇︾粏鍦板潃" min-width="10">
- </el-table-column>
- <el-table-column prop="relationVideo" label="鍏宠仈鎽勫儚鏈�" min-width="10">
- </el-table-column>
- <el-table-column prop="operation" label="鎿嶄綔" min-width="20">
- <template slot-scope="scope">
- <div class="operation">
- <el-link icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'update')">缂栬緫</el-link>
- <el-link class="leftPx" icon="el-icon-delete-solid" :underline="false" @click="handleDelete(scope.row.id)">鍒犻櫎</el-link>
- <el-link class="leftPx" icon="el-icon-edit" :underline="false">鎺ㄩ�佷俊鎭�</el-link>
- <el-link class="leftPx" icon="el-icon-edit" :underline="false" @click="handleView(scope.row, 'view')">鏌ョ湅</el-link>
- </div>
- </template>
- </el-table-column>
- </el-table>
- <!-- 鏌ョ湅淇敼椤甸潰 -->
- <el-dialog :visible.sync="dialogUpdate" width="45%"
- :title="updateFlag ? '淇敼搴楅摵淇℃伅' : '鏌ョ湅搴楅摵淇℃伅'" :before-close="handleClose">
- <updateUser :updateFlag="updateFlag" :storeInfo="storeInfo" @closeDialog="closeDialog" />
- </el-dialog>
- <!-- 鍒嗛〉 -->
- <div class="pagination">
- <el-pagination background :current-page="currentPage" layout="prev, pager, next" :total="totalNum"
- :page-size="pageSize" @current-change="changeCurrentPage">
- </el-pagination>
- </div>
- </main>
- </div>
+ <myAside />
+ <store-content :model="'three-pack'" />
</div>
</template>
<script>
import myAside from "./components/aside";
import updateUser from "@/views/operate/fivepack/threepack/components/updateUser";
+import storeContent from "@/views/operate/fivepack/threepack/components/content";
import { getStoreInfoList, deleteStoreInfo } from "@/api/operate/storeManagement";
-import { SUCCESS_CODE } from "@/utils";
export default {
- components: { myAside, updateUser },
+ components: { myAside, storeContent, updateUser },
created() {
this.search();
--
Gitblit v1.8.0