Zory преди 3 седмици
родител
ревизия
e3421e0a50

+ 47 - 0
src/api/model/black.js

@@ -0,0 +1,47 @@
+import config from "@/config";
+import http from "@/utils/request";
+
+export default {
+    list: {
+        url: `${config.API_URL}/merchant/black/list`,
+        name: "-",
+        get: async function (data = {}) {
+            return await http.get(this.url, data);
+        },
+    },
+    undel: {
+        url: `${config.API_URL}/merchant/black/undel`,
+        name: "-",
+        post: async function (data = {}) {
+            return await http.post(this.url, data);
+        },
+    },
+    area: {
+        url: `${config.API_URL}/merchant/black/area`,
+        name: "-",
+        get: async function (data = {}) {
+            return await http.get(this.url, data);
+        },
+    },
+    city: {
+        url: `${config.API_URL}/merchant/black/city`,
+        name: "-",
+        get: async function (data = {}) {
+            return await http.get(this.url, data);
+        },
+    },
+    areaSave: {
+        url: `${config.API_URL}/merchant/black/area/save`,
+        name: "-",
+        post: async function (data = {}) {
+            return await http.post(this.url, data);
+        },
+    },
+    areaDel: {
+        url: `${config.API_URL}/merchant/black/area/del`,
+        name: "-",
+        post: async function (data = {}) {
+            return await http.post(this.url, data);
+        },
+    },
+}

+ 14 - 0
src/api/model/merOrder.js

@@ -51,4 +51,18 @@ export default {
             return await http.post(this.url, params);
         },
     },
+    refundUser: {
+        url: `${config.API_URL}/merchant/order/refund`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
+    black: {
+        url: `${config.API_URL}/merchant/order/black`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
 }

+ 8 - 0
src/views/manage/order/index/components/table.vue

@@ -100,6 +100,14 @@
                     <span>部分退款</span>
                     <span class="dec">已退款 <em style="color: #f00;">{{ scope.row.refund_num }}</em> 份</span>
                 </div>
+                <div class="order-name" v-if="scope.row.status == 7">
+                    <span>履约中</span>
+                    <span class="dec">货物运输中</span>
+                </div>
+                <div class="order-name" v-if="scope.row.status == 8">
+                    <span>退款审核中</span>
+                    <span class="dec">已发快递,等待审核拦截</span>
+                </div>
             </template>
         </el-table-column>
         <el-table-column label="佣金" prop="types" width="140" align="right">

+ 4 - 0
src/views/merchant/order/index/components/table.vue

@@ -83,6 +83,10 @@
                     <span>履约中</span>
                     <span class="dec">货物运输中</span>
                 </div>
+                <div class="order-name" v-if="scope.row.status == 8">
+                    <span>退款审核中</span>
+                    <span class="dec">已发快递,等待审核拦截</span>
+                </div>
             </template>
         </el-table-column>
         <el-table-column label="佣金" prop="types" width="140" align="right">

+ 4 - 3
src/views/service/chat/components/asideRight.vue

@@ -16,7 +16,8 @@
                                 <div class="m-order-item" @click="viewOrder(item)">
                                     <div class="order-img"><el-image style="width: 80px;height: 80px;" :src="item.img" fit="fit"></el-image></div>
                                     <div class="order-info">
-                                        <div class="title">{{item.product.product_name}}</div>
+                                        <div class="title" v-if="item.product.is_new == 1">{{item.product.price}}元代{{item.product.line_price}}元商场权益券{{item.product.product_name}}</div>
+                                        <div class="title" v-else>{{item.product.product_name}}</div>
                                         <div class="desc" v-if="item.sku_name">规格:{{item.sku_name}}</div>
                                         <div class="desc">{{item.order_sn}}</div>
                                         <div class="price">
@@ -187,8 +188,8 @@ export default {
         },
         async getOrderList(){
             this.orderData.loading = true;
-            var resp = await this.$API.merOrder.list.get({"page":this.orderData.page,"pageSize":this.orderData.size,"order":this.orderData.order});
-            // var resp = await this.$API.merOrder.list.get({"page":this.orderData.page,"pageSize":this.orderData.size,"order":this.orderData.order,"openid":this.chatData.openid});
+            // var resp = await this.$API.merOrder.list.get({"page":this.orderData.page,"pageSize":this.orderData.size,"order":this.orderData.order});
+            var resp = await this.$API.merOrder.list.get({"page":this.orderData.page,"pageSize":this.orderData.size,"order":this.orderData.order,"openid":this.chatData.openid});
             this.orderData.loading = false;
             if (resp.code == 0) {
                 return ;

+ 42 - 7
src/views/service/order/index/components/table.vue

@@ -30,7 +30,8 @@
                         fit="cover"></el-image>
                     </div>
                     <div class="name">
-                        <span>{{ scope.row.product?scope.row.product.product_name:'-' }}</span>
+                        <span v-if="scope.row.product.is_new == 1">{{ scope.row.product?scope.row.product.product_name:'-' }}</span>
+                        <span v-else>{{ scope.row.product?scope.row.product.product_name:'-' }}</span>
                         <span class="dec">商品编码:{{ scope.row.product?scope.row.product.product_id:'-' }}</span>
                     </div>
                 </div>
@@ -110,6 +111,10 @@
                     <span>履约中</span>
                     <span class="dec">货物运输中</span>
                 </div>
+                <div class="order-name" v-if="scope.row.status == 8">
+                    <span>退款审核中</span>
+                    <span class="dec">已发快递,等待审核拦截</span>
+                </div>
             </template>
         </el-table-column>
         <el-table-column label="发货状态" prop="types" width="160" align="left">
@@ -155,13 +160,11 @@
             <template #default="scope">
                 <el-button-group>
                     <el-button size="small" text @click="table_view(scope.row)">详情</el-button>
-                    <el-button type="danger" size="small" text @click="table_error(scope.row)" v-if="trade==2 && scope.row.status==2 && scope.row.is_error==0 && scope.row.express_status==2">标记异常</el-button>
+                    <el-button type="danger" size="small" text @click="table_refund(scope.row)" v-if="scope.row.status==1">退款</el-button>
+                </el-button-group>
+                <el-button-group>
+                    <el-button type="danger" size="small" text @click="table_black(scope.row)">拉黑</el-button>
                 </el-button-group>
-                <template v-if="scope.row.is_error==0">
-                    <el-button-group>
-                        <el-button type="danger" size="small" text @click="table_cancel(scope.row)" v-if="trade==2 && scope.row.status==2 && scope.row.express_status==1">取消</el-button>
-                    </el-button-group>
-                </template>
             </template>
         </el-table-column>
     </scTable>
@@ -204,6 +207,38 @@ export default {
                 this.$refs.orderDetail.open("edit").setData(data)
             })
         },
+        table_black(data){
+            this.$confirm(`拉黑该用户后,用户再整个系统将无法再次下单`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading();
+                var resp = await this.$API.merOrder.black.post({"order":data.out_order_no,});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(() => {
+
+            })
+        },
+        table_refund(data){
+            this.$confirm(`该操作退款为直接为订单申请退款,无需用户二次操作`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading();
+                var resp = await this.$API.merOrder.refundUser.post({"order":data.out_order_no,});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(() => {
+
+            })
+        },
         table_del(data){
             
         },

+ 84 - 0
src/views/service/other/area/components/form.vue

@@ -0,0 +1,84 @@
+<template>
+    <el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')">
+        <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
+            <el-form-item label="选择区域" prop="name">
+                <el-cascader ref="cascaderRef" v-model="formData.category" :options="categoryData" :props="deptsProps" @change="getTemplate" clearable style="width: 100%;" />
+                <div class="el-form-item-msg">设置区域后,该区域用户无法下单</div>
+            </el-form-item>
+        </el-form>
+		<template #footer>
+            <el-button @click="visible=false" size="large">取 消</el-button>
+            <el-button v-if="mode!='show'" size="large" type="primary" :loading="isSaveing" @click="submit()">保 存</el-button>
+		</template>
+    </el-dialog>
+    
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            loading: false,
+            isSaveing: false,
+            mode:"add",
+            titleMap:{
+                add:"新增限制区域",
+                edit:"绑定达人"
+            },
+            categoryData:[],
+            deptsProps:{
+                value: "value",
+                label: "text"
+            },
+            visible:false,
+            formData:{},
+            rules:{
+                category: [
+                    {required: true, message: '请输入'}
+                ],
+                name: [
+                    {required: true, message: '请输入'}
+                ]
+            }
+        }
+    },
+    methods:{
+        open(mode = 'add'){
+            this.mode = mode;
+            this.visible = true;
+            this.getCity()
+            return this
+        },
+        //表单注入数据
+        setData(data){
+            this.formData = JSON.parse(JSON.stringify(data));
+        },
+        async getCity(){
+            var resp = await this.$API.black.city.get();
+            this.categoryData = resp.data;
+        },
+        async getTemplate(v){
+            const nodes = this.$refs.cascaderRef.getCheckedNodes()
+            this.formData.name = nodes[0].label;
+        },
+        async submit(){
+            var validate = await this.$refs.dialogForm.validate().catch(()=>{});
+            if(!validate){ return false }
+            this.isSaveing = true;
+            let submitData = JSON.parse(JSON.stringify(this.formData));
+            var resp = await this.$API.black.areaSave.post(submitData);
+            this.isSaveing = false;
+            if (resp.code == 0) {
+                return this.$message.error(resp.msg);
+            }
+            this.$message.success(resp.msg);
+            this.visible = false;
+            this.$emit("success");
+        }
+    }
+}
+</script>
+
+<style>
+.text-center{text-align: center;}
+</style>

+ 75 - 0
src/views/service/other/area/components/option.vue

@@ -0,0 +1,75 @@
+<template>
+    <fieldset>
+        <legend>
+            <el-tag type="info">按需操作</el-tag>
+        </legend>
+        <div class="op-header">
+            <div class="left-panel">
+                <el-button type="primary" icon="el-icon-plus" @click="table_add()">新增地区</el-button>
+            </div>
+        </div>
+    </fieldset>
+    <formMain ref="formMain" @success="handleSuccess"></formMain>
+</template>
+
+<script>
+import formMain from './form';
+export default {
+    components: {
+        formMain
+    },
+    props: {
+        dataSelect: { type: Array, default: () => [] },
+        dataSelectFull: { type: Array, default: () => [] }
+    },
+    data(){
+        return {
+
+        }
+    },
+    methods: {
+        table_add(){
+            this.$nextTick(() => {
+                this.$refs.formMain.open("add")
+            })
+        },
+        table_sync(){
+            this.$confirm(`发起同步后,请耐心等待1-2分钟后再刷新当前数据列表`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var resp = await this.$API.category.sync.get();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$emit("success");
+            }).catch(() => {
+
+            })
+        },
+        table_batch_status(status){
+            if (this.dataSelect.length == 0) {
+                return this.$message.error("请选择修改数据")
+            }
+            this.$confirm(`审核中的商品不支持该操作,请确认是否有勾选审核中的商品`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading()
+                let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
+                loading.close()
+                var resp = await this.$API.merGoods.batch.post(submitData);
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$emit("success");
+            }).catch(() => {
+
+            })
+        },
+        handleSuccess(){
+            this.$emit("success");
+        }
+    }
+}
+</script>

+ 42 - 0
src/views/service/other/area/components/search.vue

@@ -0,0 +1,42 @@
+<template>
+    <fieldset>
+        <legend>
+            <el-tag type="info">条件筛选</el-tag>
+        </legend>
+        <el-form class="lv-form-inline" ref="searchForm" :model="searchKey" label-position="right" label-width="100px">
+            <div class="search-form">
+                <div class="form-left">
+                    <el-row :gutter="10">
+                        <el-col :xs="12" :sm="12" :md="12" :lg="6" :xl="4">
+                            <el-input v-model="searchKey.name" placeholder="地区名称" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>地区名称</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :xs="12" :sm="6" :md="6" :lg="6" :xl="4">
+                            <el-date-picker v-model="searchKey.create" :style="{width: '100%'}" placeholder="请选择创建时间" start-placeholder="开始时间" end-placeholder="结束时间" type="daterange" range-separator="至" @change="searchForm" />
+                        </el-col>
+                    </el-row>
+                </div>
+                <div class="form-line"></div>
+                <div class="form-right">
+                    <el-button type="primary" icon="el-icon-search" @click="searchForm">搜索</el-button>
+                </div>
+            </div>
+        </el-form>
+    </fieldset>
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            searchKey:{}
+        }
+    },
+    methods: {
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
+</script>

+ 102 - 0
src/views/service/other/area/components/table.vue

@@ -0,0 +1,102 @@
+<template>
+    <scTable ref="table" :apiObj="list.apiObj" :params="searchKey" @selectionChange="selectionChange" row-key="id">
+        <el-table-column type="selection" width="50" fixed="left"></el-table-column>
+        <el-table-column label="限制区域" prop="name"></el-table-column>
+        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="操作" width="180" align="left" fixed="right">
+            <template #default="scope">
+                <el-button-group>
+                    <el-button size="small" text @click="table_update(scope.row)" v-if="scope.row.status == 1">更新</el-button>
+                    <el-button type="danger" text size="small" @click="table_del(scope.row)">删除</el-button>
+                </el-button-group>
+            </template>
+        </el-table-column>
+    </scTable>
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.black.area
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{}
+        }
+    },
+    
+    methods: {
+        table_del(data){
+            this.$confirm(`删除后,该地区恢复正常下单`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var resp = await this.$API.black.areaDel.post({"id":data.id});
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        refresh(){
+            this.$refs.table.refresh()
+        },
+        upData(data){
+            this.$refs.table.upData(data)
+        },
+        handleSuccess(){
+            this.$refs.table.refresh()
+        },
+        sortChange(event){
+            if (event.order) {
+                var data = {
+                    "field":event.prop,
+                    "order":event.order
+                }
+                this.$refs.table.upData(data)
+            } else {
+                this.$refs.table.reload(this.searchKey)
+            }
+            return ;
+        },
+        selectionChange(event){
+            this.dataSelect = [];
+            var arr = [];
+            var arrCompany = [];
+            event.forEach(function(val,index){
+                arr[index] = val.id;
+                arrCompany[index] = val;
+            });
+            this.dataSelectFull = arrCompany;
+            this.dataSelect = arr;
+            this.$emit("success",this.dataSelect);
+            this.$emit("successFull",this.dataSelectFull);
+        },
+        table_passwd(row){
+            this.$nextTick(() => {
+                this.$refs.userPasswd.open("edit").setData(row)
+            })
+        }
+    }
+}
+</script>
+
+<style>
+.goods-img{display: flex;gap: 5px;}
+.goods-img .name span{display: block;}
+.goods-img .name span.dec{color: #999;font-size: 12px;}
+.goods-price,.price{display: flex;align-items: center;gap: 5px;font-size: 14px;}
+.goods-price .del{text-decoration: line-through;}
+.goods-price span{background-color: #fff !important;
+    border: 1px solid #d3d9e0 !important;
+    border-radius: 4px;
+    box-sizing: border-box;
+    color: #6c737a !important;
+    display: inline-flex;
+    flex: none;
+    font-size: 12px;
+    line-height: 18px !important;
+    padding: 1px 6px !important;text-decoration: none;}
+</style>

+ 47 - 0
src/views/service/other/area/index.vue

@@ -0,0 +1,47 @@
+<template>
+    <el-container class="flex-column">
+        <div class="table-search">
+            <search @success="handleSuccess"></search>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+        </div>
+        <el-main class="nopadding">
+            <div class="table-container">
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+            </div>
+        </el-main>
+    </el-container>  
+</template>
+
+<script>
+import search from './components/search';
+import optionBtn from './components/option';
+import tablePage from './components/table';
+export default {
+    components: {
+        search,tablePage,optionBtn
+    },
+    data(){
+        return {
+            searchKey:{},
+            dataSelect:[],
+            dataSelectFull:[],
+        }
+    },
+    methods: {
+        tableHandle(data){
+            this.dataSelect = data;
+        },
+        tableHandleFull(data){
+            this.dataSelectFull = data;
+        },
+        handleSuccess(data){
+            this.$refs.tablePage.upData(data)
+        },
+        handleClick(name){
+            this.activeName = name;
+            this.searchKey.type = name;
+            this.$refs.tablePage.upData(this.searchKey)
+        }
+    }
+}
+</script>

+ 42 - 0
src/views/service/other/index/components/search.vue

@@ -0,0 +1,42 @@
+<template>
+    <fieldset>
+        <legend>
+            <el-tag type="info">条件筛选</el-tag>
+        </legend>
+        <el-form class="lv-form-inline" ref="searchForm" :model="searchKey" label-position="right" label-width="100px">
+            <div class="search-form">
+                <div class="form-left">
+                    <el-row :gutter="10">
+                        <el-col :xs="12" :sm="12" :md="12" :lg="6" :xl="4">
+                            <el-input v-model="searchKey.name" placeholder="用户昵称" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>用户昵称</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :xs="12" :sm="6" :md="6" :lg="6" :xl="4">
+                            <el-date-picker v-model="searchKey.create" :style="{width: '100%'}" placeholder="请选择创建时间" start-placeholder="开始时间" end-placeholder="结束时间" type="daterange" range-separator="至" @change="searchForm" />
+                        </el-col>
+                    </el-row>
+                </div>
+                <div class="form-line"></div>
+                <div class="form-right">
+                    <el-button type="primary" icon="el-icon-search" @click="searchForm">搜索</el-button>
+                </div>
+            </div>
+        </el-form>
+    </fieldset>
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            searchKey:{}
+        }
+    },
+    methods: {
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
+</script>

+ 132 - 0
src/views/service/other/index/components/table.vue

@@ -0,0 +1,132 @@
+<template>
+    <scTable ref="table" :apiObj="list.apiObj" :params="searchKey" @selectionChange="selectionChange" row-key="id">
+        <el-table-column type="selection" width="50" fixed="left"></el-table-column>
+        <el-table-column label="基础信息" width="340" prop="name" fixed="left">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="img">
+                        <el-image 
+                        style="width: 54px; height: 54px"
+                        :src="scope.row.avatar"
+                        :zoom-rate="1.2"
+                        :max-scale="7"
+                        :min-scale="0.2"
+                        :preview-src-list="[scope.row.avatar]"
+                        preview-teleported
+                        z-index="999"
+                        fit="cover"></el-image>
+                    </div>
+                    <div class="name">
+                        <span>{{ scope.row.nickname }}</span>
+                    </div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="OpenId" prop="id">
+            <template #default="scope">
+                <div class="price">{{ scope.row.openid }}</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="手机号码" width="120" prop="id">
+            <template #default="scope">
+                <div class="price">{{ scope.row.mobile }}</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="注册时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="操作" width="160" align="left" fixed="right">
+            <template #default="scope">
+                <el-button-group>
+                    <el-button type="danger" text size="small" @click="table_del(scope.row)">解除拉黑</el-button>
+                </el-button-group>
+            </template>
+        </el-table-column>
+    </scTable>
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.black.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{}
+        }
+    },
+    
+    methods: {
+        
+        table_del(data){
+            this.$confirm(`解除拉黑后,恢复该用户的下单权限`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var resp = await this.$API.black.undel.post({"id":data.id});
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        refresh(){
+            this.$refs.table.refresh()
+        },
+        upData(data){
+            this.$refs.table.upData(data)
+        },
+        handleSuccess(){
+            this.$refs.table.refresh()
+        },
+        sortChange(event){
+            if (event.order) {
+                var data = {
+                    "field":event.prop,
+                    "order":event.order
+                }
+                this.$refs.table.upData(data)
+            } else {
+                this.$refs.table.reload(this.searchKey)
+            }
+            return ;
+        },
+        selectionChange(event){
+            this.dataSelect = [];
+            var arr = [];
+            var arrCompany = [];
+            event.forEach(function(val,index){
+                arr[index] = val.id;
+                arrCompany[index] = val;
+            });
+            this.dataSelectFull = arrCompany;
+            this.dataSelect = arr;
+            this.$emit("success",this.dataSelect);
+            this.$emit("successFull",this.dataSelectFull);
+        },
+        table_passwd(row){
+            this.$nextTick(() => {
+                this.$refs.userPasswd.open("edit").setData(row)
+            })
+        }
+    }
+}
+</script>
+
+<style>
+.goods-img{display: flex;gap: 5px;}
+.goods-img .name span{display: block;}
+.goods-img .name span.dec{color: #999;font-size: 12px;}
+.goods-price,.price{display: flex;align-items: center;gap: 5px;font-size: 14px;}
+.goods-price .del{text-decoration: line-through;}
+.goods-price span{background-color: #fff !important;
+    border: 1px solid #d3d9e0 !important;
+    border-radius: 4px;
+    box-sizing: border-box;
+    color: #6c737a !important;
+    display: inline-flex;
+    flex: none;
+    font-size: 12px;
+    line-height: 18px !important;
+    padding: 1px 6px !important;text-decoration: none;}
+</style>

+ 45 - 0
src/views/service/other/index/index.vue

@@ -0,0 +1,45 @@
+<template>
+    <el-container class="flex-column">
+        <div class="table-search">
+            <search @success="handleSuccess"></search>
+        </div>
+        <el-main class="nopadding">
+            <div class="table-container">
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+            </div>
+        </el-main>
+    </el-container>  
+</template>
+
+<script>
+import search from './components/search';
+import tablePage from './components/table';
+export default {
+    components: {
+        search,tablePage
+    },
+    data(){
+        return {
+            searchKey:{},
+            dataSelect:[],
+            dataSelectFull:[],
+        }
+    },
+    methods: {
+        tableHandle(data){
+            this.dataSelect = data;
+        },
+        tableHandleFull(data){
+            this.dataSelectFull = data;
+        },
+        handleSuccess(data){
+            this.$refs.tablePage.upData(data)
+        },
+        handleClick(name){
+            this.activeName = name;
+            this.searchKey.type = name;
+            this.$refs.tablePage.upData(this.searchKey)
+        }
+    }
+}
+</script>