Bläddra i källkod

0731-0118-h01

Zory 5 dagar sedan
förälder
incheckning
8499f2a6a0

+ 12 - 0
src/api/model/merVerify.js

@@ -0,0 +1,12 @@
+import config from "@/config";
+import http from "@/utils/request";
+
+export default {
+    list: {
+        url: `${config.API_URL}/merchant/verify/list`,
+        name: "-",
+        get: async function (params) {
+            return await http.get(this.url, params);
+        },
+    },
+}

+ 12 - 0
src/api/model/verify.js

@@ -0,0 +1,12 @@
+import config from "@/config";
+import http from "@/utils/request";
+
+export default {
+    list: {
+        url: `${config.API_URL}/verify/list`,
+        name: "-",
+        get: async function (params) {
+            return await http.get(this.url, params);
+        },
+    },
+}

+ 1 - 1
src/components/imFloat/order.vue

@@ -77,7 +77,7 @@
                             <div class="right">{{ orderData.mobile?orderData.mobile:'-' }}</div>
                         </div>
                         <div class="info-item">
-                            <div class="name">订单编号</div>
+                            <div class="name">系统单号</div>
                             <div class="right">{{ orderData.out_order_no }}</div>
                         </div>
                         <div class="info-item">

+ 70 - 0
src/views/manage/finance/index/components/option.vue

@@ -0,0 +1,70 @@
+<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>
+</template>
+
+<script>
+export default {
+    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>

+ 67 - 0
src/views/manage/finance/index/components/search.vue

@@ -0,0 +1,67 @@
+<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="6">
+                            <el-input v-model="searchKey.poi_name" placeholder="请选择商家" clearbale readonly :style="{width:'100%'}" @click="selectStore">
+                                <template #append>
+                                    <el-tooltip effect="dark" content="点这里,清除选择" placement="top-start">
+                                        <div class="remove-a" @click="clearStore">清除</div>
+                                    </el-tooltip>
+                                </template>
+                                <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>
+    <storeData ref="storeData" :multiple="false" @success="handleStore"></storeData>
+</template>
+
+<script>
+import storeData from '@/views/manage/components/agent';
+export default {
+    components: {
+        storeData
+    },
+    data(){
+        return {
+            searchKey:{}
+        }
+    },
+    methods: {
+        selectStore(){
+            this.$nextTick(()=>{
+                this.$refs.storeData.open()
+            })
+        },
+        handleStore(data){
+            this.searchKey.poi_id = data.poi_id;
+            this.searchKey.poi_name = data.poi_name;
+            this.$emit("success",this.searchKey);
+        },
+        clearStore(){
+            this.searchKey.poi_id = "";
+            this.searchKey.poi_name = "";
+            this.$emit("success",this.searchKey);
+        },
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
+</script>

+ 193 - 0
src/views/manage/finance/index/components/table.vue

@@ -0,0 +1,193 @@
+<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="220" fixed="left" prop="goods_id">
+            <template #default="scope">
+                <div class="order-name">
+                    <span>{{ scope.row.order_sn }}</span>
+                </div>
+            </template>
+        </el-table-column>
+        
+        <el-table-column label="所属商家" prop="id" width="260">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="name" v-if="scope.row.poi">
+                        <span>{{ scope.row.poi.poi_name }}</span>
+                        <span class="dec">{{ scope.row.poi.poi_address }}</span>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="核销状态" prop="enable" width="120" align="center">
+            <template #default="scope">
+                <div class="status-success" v-if="scope.row.status==0"><sc-status-indicator type="success"></sc-status-indicator> 已核销</div>
+                <div class="status-danger" v-if="scope.row.status==1"><sc-status-indicator type="danger"></sc-status-indicator> 已退款</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="核销时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="商品名称" prop="id" width="210">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="name" v-if="scope.row.orders">
+                        <span>{{ scope.row.orders.product.product_name }}</span>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品类型" prop="id" width="140">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="name" v-if="scope.row.orders">
+                        <span>{{ scope.row.orders.product.types }}</span>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单实收(元)" prop="id" width="140">
+            <template #default="scope">
+                <span>{{ scope.row.money?$TOOL.money(scope.row.money):'-' }}</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="券码" prop="id" width="260">
+            <template #default="scope">
+                <span>{{ scope.row.verify_id }}</span>
+            </template>
+        </el-table-column>
+
+    </scTable>
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.verify.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{}
+        }
+    },
+    
+    methods: {
+        table_rate(data){
+            this.$nextTick(() => {
+                this.$refs.editForm.open("goods").setData(data)
+            })
+        },
+        table_star(data){
+            this.$nextTick(() => {
+                this.$refs.editForm.open("star").setData(data)
+            })
+        },
+        table_auth(data){
+            this.$nextTick(() => {
+                this.$refs.comboMain.open("edit").setData(data)
+            })
+        },
+        table_update(data){
+            this.$confirm(`更新后可能数据没有变化,确定更新该达人的基础数据吗?`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var resp = await this.$API.merStar.update.post({"id":data.id});
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_del(data){
+            this.$confirm(`删除后,所有该计划对应的数据将一并被删除`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading()
+                var resp = await this.$API.merPlan.merPlan.post({"id":data.id});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_close(data){
+            this.$confirm(`关闭该定向计划后,达人无法勾选对应商品进行直播`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading()
+                var resp = await this.$API.merPlan.close.post({"id":data.id});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$emit("success");
+            }).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;}
+.flex{display: flex;align-items: center;gap: 5px;}
+</style>

+ 46 - 3
src/views/manage/finance/index/index.vue

@@ -1,3 +1,46 @@
-<template>
-
-</template>
+<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 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>

+ 139 - 0
src/views/merchant/finance/bills/components/search.vue

@@ -0,0 +1,139 @@
+<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="8" :lg="8" :xl="8">
+                            <el-date-picker v-model="searchKey.create" :style="{width: '100%'}" placeholder="请选择创建时间" start-placeholder="开始时间" end-placeholder="结束时间" type="daterange" range-separator="至" @change="searchForm" :shortcuts="shortcutsDay" unlink-panels v-if="type=='1'" />
+                            <el-date-picker v-model="searchKey.create" :style="{width: '100%'}" placeholder="请选择创建时间" start-placeholder="开始时间" end-placeholder="结束时间" type="monthrange" range-separator="至" @change="searchForm" :shortcuts="shortcutsMon" unlink-panels v-if="type=='2'" />
+                        </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 {
+    props: {
+        type: { type: String, default: "1" },
+    },
+    data(){
+        return {
+            searchKey:{},
+            shortcutsDay:[
+                {
+                    text: '近7天',
+                    value: () => {
+                        const end = new Date()
+                        const start = new Date()
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+                        return [start, end]
+                    },
+                },
+                {
+                    text: '近14天',
+                    value: () => {
+                        const end = new Date()
+                        const start = new Date()
+                        start.setTime(start.getTime() - 3600 * 1000 * 24 * 14)
+                        return [start, end]
+                    },
+                },
+                {
+                    text: '本月',
+                    value: () => {
+                        const now = new Date();
+                        const year = now.getFullYear();
+                        const month = now.getMonth(); // 当前月份(0-11)
+                        // 上个月第一天
+                        const start = new Date(year, month, 1);
+                        // 上个月最后一天(当前月份的第0天)
+                        const end = new Date(year, month+1, 0);
+                        return [start, end];
+                    },
+                },
+                {
+                    text: '上月',
+                    value: () => {
+                        const now = new Date();
+                        const year = now.getFullYear();
+                        const month = now.getMonth(); // 当前月份(0-11)
+                        // 上个月第一天
+                        const start = new Date(year, month - 1, 1);
+                        // 上个月最后一天(当前月份的第0天)
+                        const end = new Date(year, month, 0);
+                        return [start, end];
+                    },
+                },
+                {
+                    text: '近3月',
+                    value: () => {
+                        const end = new Date()
+                        const start = new Date()
+                        start.setMonth(start.getMonth() - 3)
+                        return [start, end]
+                    },
+                }
+            ],
+            shortcutsMon:[
+                {
+                    text: '本月',
+                    value: [new Date(), new Date()],
+                },
+                {
+                    text: '上月',
+                    value: () => {
+                        const now = new Date();
+                        const year = now.getFullYear();
+                        const month = now.getMonth(); // 当前月份(0-11)
+                        // 上个月第一天
+                        const start = new Date(year, month - 1, 1);
+                        // 上个月最后一天(当前月份的第0天)
+                        const end = new Date(year, month, 0);
+                        return [start, end];
+                    },
+                },
+                {
+                    text: '近3月',
+                    value: () => {
+                        const end = new Date()
+                        const start = new Date()
+                        start.setMonth(start.getMonth() - 3)
+                        return [start, end]
+                    },
+                }
+            ]
+        }
+    },
+    methods: {
+        selectStore(){
+            this.$nextTick(()=>{
+                this.$refs.storeData.open()
+            })
+        },
+        handleStore(data){
+            this.searchKey.poi_id = data.poi_id;
+            this.searchKey.poi_name = data.poi_name;
+            this.$emit("success",this.searchKey);
+        },
+        clearStore(){
+            this.searchKey.poi_id = "";
+            this.searchKey.poi_name = "";
+            this.$emit("success",this.searchKey);
+        },
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
+</script>

+ 57 - 0
src/views/merchant/finance/bills/index.vue

@@ -0,0 +1,57 @@
+<template>
+    <el-container class="flex-column">
+        <div class="table-search">
+            <div class="first-title">财务对账</div>
+            <el-tabs v-model="activeName" class="demo-tabs" @tab-change="handleClick">
+                <el-tab-pane label="日汇总" name="day"></el-tab-pane>
+                <el-tab-pane label="月汇总" name="mon"></el-tab-pane>
+                <el-tab-pane label="自定义汇总" name="custom"></el-tab-pane>
+            </el-tabs>
+            <search @success="handleSuccess" :type="elType"></search>
+        </div>
+        <el-main class="nopadding">
+            
+        </el-main>
+    </el-container>
+</template>
+
+<script>
+import search from './components/search';
+export default {
+    components: {
+        search
+    },
+    data() {
+        return {
+            activeName:"day",
+            elType:"1"
+        }
+    },
+    methods: {
+        handleClick(event){
+            this.activeName = event;
+            if (event=='mon') {
+                this.elType = 2
+            } else {
+                this.elType = 1
+            }
+        },
+        handleSuccess(){
+            
+        }
+    }
+}
+</script>
+
+<style>
+.table-search{border-bottom: 0;}
+.first-title{
+    align-items: center;
+    color: #1d2129;
+    display: flex;
+    font-size: 20px;
+    font-weight: 600;
+    justify-content: space-between;
+    line-height: 28px;
+    margin-bottom: 20px;}
+</style>

+ 70 - 0
src/views/merchant/finance/logs/components/option.vue

@@ -0,0 +1,70 @@
+<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>
+</template>
+
+<script>
+export default {
+    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>

+ 52 - 0
src/views/merchant/finance/logs/components/search.vue

@@ -0,0 +1,52 @@
+<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="8" :lg="8" :xl="8">
+                            <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: {
+        selectStore(){
+            this.$nextTick(()=>{
+                this.$refs.storeData.open()
+            })
+        },
+        handleStore(data){
+            this.searchKey.poi_id = data.poi_id;
+            this.searchKey.poi_name = data.poi_name;
+            this.$emit("success",this.searchKey);
+        },
+        clearStore(){
+            this.searchKey.poi_id = "";
+            this.searchKey.poi_name = "";
+            this.$emit("success",this.searchKey);
+        },
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
+</script>

+ 181 - 0
src/views/merchant/finance/logs/components/table.vue

@@ -0,0 +1,181 @@
+<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="220" fixed="left" prop="goods_id">
+            <template #default="scope">
+                <div class="order-name">
+                    <span>{{ scope.row.order_sn }}</span>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="核销状态" prop="enable" width="120" align="center">
+            <template #default="scope">
+                <div class="status-success" v-if="scope.row.status==0"><sc-status-indicator type="success"></sc-status-indicator> 已核销</div>
+                <div class="status-danger" v-if="scope.row.status==1"><sc-status-indicator type="danger"></sc-status-indicator> 已退款</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="核销时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="商品名称" prop="id">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="name" v-if="scope.row.orders">
+                        <span>{{ scope.row.orders.product.product_name }}</span>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品类型" prop="id" width="140">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="name" v-if="scope.row.orders">
+                        <span>{{ scope.row.orders.product.types }}</span>
+                    </div>
+                    <div v-else>-</div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单实收(元)" prop="id" width="140">
+            <template #default="scope">
+                <span>{{ scope.row.money?$TOOL.money(scope.row.money):'-' }}</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="券码" prop="id" width="260">
+            <template #default="scope">
+                <span>{{ scope.row.verify_id }}</span>
+            </template>
+        </el-table-column>
+
+    </scTable>
+</template>
+
+<script>
+export default {
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.merVerify.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{}
+        }
+    },
+    
+    methods: {
+        table_rate(data){
+            this.$nextTick(() => {
+                this.$refs.editForm.open("goods").setData(data)
+            })
+        },
+        table_star(data){
+            this.$nextTick(() => {
+                this.$refs.editForm.open("star").setData(data)
+            })
+        },
+        table_auth(data){
+            this.$nextTick(() => {
+                this.$refs.comboMain.open("edit").setData(data)
+            })
+        },
+        table_update(data){
+            this.$confirm(`更新后可能数据没有变化,确定更新该达人的基础数据吗?`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var resp = await this.$API.merStar.update.post({"id":data.id});
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_del(data){
+            this.$confirm(`删除后,所有该计划对应的数据将一并被删除`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading()
+                var resp = await this.$API.merPlan.merPlan.post({"id":data.id});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_close(data){
+            this.$confirm(`关闭该定向计划后,达人无法勾选对应商品进行直播`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading()
+                var resp = await this.$API.merPlan.close.post({"id":data.id});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$emit("success");
+            }).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;}
+.flex{display: flex;align-items: center;gap: 5px;}
+</style>

+ 46 - 3
src/views/merchant/finance/logs/index.vue

@@ -1,3 +1,46 @@
-<template>
-
-</template>
+<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 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>