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