Browse Source

231230999

Zory 1 week ago
parent
commit
893da052f8

+ 1 - 1
src/views/merchant/goods/add.vue

@@ -554,7 +554,7 @@ export default {
     data(){
         return {
             isSaveing:false,
-            showNext:true,
+            showNext:false,
             formData:{
                 settle_type:1,
                 show_channel:1,

+ 58 - 0
src/views/merchant/order/index/components/search.vue

@@ -0,0 +1,58 @@
+<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.order_sn" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>订单编号</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="6" :xl="4">
+                            <el-input v-model="searchKey.out_order_no" placeholder="系统单号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>系统单号</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="6" :xl="4">
+                            <el-select v-model="searchKey.status" clearable placeholder="请选择状态" @change="searchForm" :style="{width: '100%'}" class="diy-select">
+                                <el-option value="1" label="待支付"></el-option>
+                                <el-option value="2" label="待使用"></el-option>
+                                <el-option value="3" label="已完成"></el-option>
+                                <el-option value="4" label="已退款"></el-option>
+                                <el-option value="5" label="退款中"></el-option>
+                                <el-option value="6" label="已关闭"></el-option>
+                                <template #prefix>状态</template>
+                            </el-select>
+                        </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>

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

@@ -0,0 +1,137 @@
+<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="260" fixed="left" prop="goods_id">
+            <template #default="scope">
+                <div class="order-name">
+                    <span>{{ scope.row.order_sn }}</span>
+                    <span class="dec">系统单号:{{ scope.row.out_order_no }}</span>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品类型" prop="types" width="100">
+            <template #default="scope">
+                {{ scope.row.product?scope.row.product.types:'-' }}
+            </template>
+        </el-table-column>
+        <el-table-column label="商品信息" width="340" prop="name">
+            <template #default="scope">
+                <div class="goods-img">
+                    <div class="img">
+                        <el-image 
+                        style="width: 54px; height: 54px"
+                        :src="scope.row.img"
+                        :zoom-rate="1.2"
+                        :max-scale="7"
+                        :min-scale="0.2"
+                        :preview-src-list="[scope.row.img]"
+                        preview-teleported
+                        z-index="999"
+                        fit="cover"></el-image>
+                    </div>
+                    <div class="name">
+                        <span>{{ scope.row.product.product_name }}</span>
+                        <span class="dec">商品编码:{{ scope.row.product.product_id }}</span>
+                    </div>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品售价" prop="types" width="120" align="right">
+            <template #default="scope">
+                <div class="order-name">
+                    <span>{{ scope.row.price?$TOOL.money(scope.row.price):'-' }}</span>
+                    <span class="dec">{{ scope.row.number }}份</span>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="顾客支付" prop="types" width="120" align="right">
+            <template #default="scope">
+                {{ scope.row.pay_money?$TOOL.money(scope.row.pay_money):'-' }}
+            </template>
+        </el-table-column>
+        <el-table-column label="订单状态" prop="types" width="160" align="left">
+            <template #default="scope">
+                <div class="order-name" v-if="scope.row.status == 0">
+                    <span>待支付</span>
+                    <span class="dec" v-if="scope.row.end_time.min == 0 && scope.row.end_time.sec == 0">已超时,取消支付</span>
+                    <span class="dec" v-else>剩余{{ scope.row.end_time.min }}:{{ scope.row.end_time.sec }}</span>
+                </div>
+                <div class="order-name" v-if="scope.row.status == 1">
+                    <span>待使用</span>
+                </div>
+                <div class="order-name" v-if="scope.row.status == 2">
+                    <span>已完成</span>
+                </div>
+                <div class="order-name" v-if="scope.row.status == 3">
+                    <span>已退款</span>
+                    <span class="dec">款项已原路退回</span>
+                </div>
+                <div class="order-name" v-if="scope.row.status == 4">
+                    <span>退款中</span>
+                    <span class="dec">款项已原路退回</span>
+                </div>
+                <div class="order-name" v-if="scope.row.status == 5">
+                    <span>已关闭</span>
+                    <span class="dec">用户已取消</span>
+                </div>
+            </template>
+        </el-table-column>
+        <el-table-column label="下单时间" prop="create_at" width="160"></el-table-column>
+        <el-table-column label="支付时间" prop="pay_at" width="160">
+            <template #default="scope">
+                {{ scope.row.pay_at?scope.row.pay_at:'未支付' }}
+            </template>
+        </el-table-column>
+        <el-table-column label="操作" width="140" align="left" fixed="right">
+            <template #default="scope">
+                <el-button-group>
+                    <el-button size="small" text @click="table_view(scope.row)">详情</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.merOrder.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{}
+        }
+    },
+    methods: {
+        table_view(data){
+
+        },
+        table_del(data){
+            
+        }
+    }
+}
+</script>
+
+<style>
+.order-name span{display: block;}
+.order-name span.dec{color: #999;font-size: 12px;}
+.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 - 3
src/views/merchant/order/index/index.vue

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