zory 1 долоо хоног өмнө
parent
commit
6574061afa
63 өөрчлөгдсөн 1196 нэмэгдсэн , 4453 устгасан
  1. 35 0
      src/api/model/merOrder.js
  2. 7 0
      src/api/model/merStore.js
  3. 0 0
      src/views/manage/life/components/form.vue
  4. 0 0
      src/views/manage/life/components/option.vue
  5. 0 0
      src/views/manage/life/components/search.vue
  6. 0 0
      src/views/manage/life/components/table.vue
  7. 0 0
      src/views/manage/life/index.vue
  8. 0 232
      src/views/manage/order/before/components/table.vue
  9. 6 5
      src/views/manage/order/before/index.vue
  10. 56 55
      src/views/manage/order/components/option.vue
  11. 56 53
      src/views/manage/order/components/search.vue
  12. 238 231
      src/views/manage/order/components/table.vue
  13. 0 56
      src/views/manage/order/done/components/option.vue
  14. 0 54
      src/views/manage/order/done/components/search.vue
  15. 6 5
      src/views/manage/order/done/index.vue
  16. 0 232
      src/views/manage/order/refund/components/table.vue
  17. 6 5
      src/views/manage/order/refund/index.vue
  18. 0 56
      src/views/manage/order/send/components/option.vue
  19. 0 232
      src/views/manage/order/send/components/table.vue
  20. 7 5
      src/views/manage/order/send/index.vue
  21. 0 86
      src/views/merchant/order/before/components/form.vue
  22. 0 54
      src/views/merchant/order/before/components/search.vue
  23. 0 232
      src/views/merchant/order/before/components/table.vue
  24. 6 6
      src/views/merchant/order/before/index.vue
  25. 0 0
      src/views/merchant/order/components/form.vue
  26. 1 1
      src/views/merchant/order/components/log.vue
  27. 75 59
      src/views/merchant/order/components/option.vue
  28. 56 53
      src/views/merchant/order/components/search.vue
  29. 232 231
      src/views/merchant/order/components/table.vue
  30. 0 86
      src/views/merchant/order/done/components/form.vue
  31. 0 56
      src/views/merchant/order/done/components/option.vue
  32. 0 54
      src/views/merchant/order/done/components/search.vue
  33. 6 5
      src/views/merchant/order/done/index.vue
  34. 0 86
      src/views/merchant/order/refund/components/form.vue
  35. 0 56
      src/views/merchant/order/refund/components/option.vue
  36. 0 54
      src/views/merchant/order/refund/components/search.vue
  37. 0 230
      src/views/merchant/order/refund/components/table.vue
  38. 6 5
      src/views/merchant/order/refund/index.vue
  39. 0 56
      src/views/merchant/order/send/components/option.vue
  40. 0 54
      src/views/merchant/order/send/components/search.vue
  41. 0 232
      src/views/merchant/order/send/components/table.vue
  42. 7 5
      src/views/merchant/order/send/index.vue
  43. 20 30
      src/views/merchant/refund/components/table.vue
  44. 4 0
      src/views/merchant/shop/index/components/table.vue
  45. 0 60
      src/views/store/order/before/components/option.vue
  46. 0 54
      src/views/store/order/before/components/search.vue
  47. 0 232
      src/views/store/order/before/components/table.vue
  48. 6 6
      src/views/store/order/before/index.vue
  49. 1 1
      src/views/store/order/components/log.vue
  50. 56 55
      src/views/store/order/components/option.vue
  51. 56 53
      src/views/store/order/components/search.vue
  52. 228 231
      src/views/store/order/components/table.vue
  53. 0 56
      src/views/store/order/done/components/option.vue
  54. 0 54
      src/views/store/order/done/components/search.vue
  55. 6 5
      src/views/store/order/done/index.vue
  56. 0 56
      src/views/store/order/refund/components/option.vue
  57. 0 54
      src/views/store/order/refund/components/search.vue
  58. 0 232
      src/views/store/order/refund/components/table.vue
  59. 6 5
      src/views/store/order/refund/index.vue
  60. 0 56
      src/views/store/order/send/components/option.vue
  61. 0 54
      src/views/store/order/send/components/search.vue
  62. 0 232
      src/views/store/order/send/components/table.vue
  63. 7 5
      src/views/store/order/send/index.vue

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

@@ -23,4 +23,39 @@ export default {
             return await http.get(this.url, params);
             return await http.get(this.url, params);
         },
         },
     },
     },
+    batchState: {
+        url: `${config.API_URL}/merchant/order/batch`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
+    agree: {
+        url: `${config.API_URL}/merchant/order/agree`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
+    refuse: {
+        url: `${config.API_URL}/merchant/order/refuse`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
+    end: {
+        url: `${config.API_URL}/merchant/order/end`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
+    express: {
+        url: `${config.API_URL}/merchant/order/express`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
 }
 }

+ 7 - 0
src/api/model/merStore.js

@@ -23,6 +23,13 @@ export default {
             return await http.post(this.url, params);
             return await http.post(this.url, params);
         },
         },
     },
     },
+    auth: {
+        url: `${config.API_URL}/merchant/store/auth`,
+        name: "-",
+        post: async function (params) {
+            return await http.post(this.url, params);
+        },
+    },
     batch: {
     batch: {
         url: `${config.API_URL}/merchant/store/batch`,
         url: `${config.API_URL}/merchant/store/batch`,
         name: "-",
         name: "-",

+ 0 - 0
src/views/manage/order/life/components/form.vue → src/views/manage/life/components/form.vue


+ 0 - 0
src/views/manage/order/before/components/option.vue → src/views/manage/life/components/option.vue


+ 0 - 0
src/views/manage/order/life/components/search.vue → src/views/manage/life/components/search.vue


+ 0 - 0
src/views/manage/order/life/components/table.vue → src/views/manage/life/components/table.vue


+ 0 - 0
src/views/manage/order/life/index.vue → src/views/manage/life/index.vue


+ 0 - 232
src/views/manage/order/before/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.order.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:2
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 6 - 5
src/views/manage/order/before/index.vue

@@ -2,20 +2,20 @@
     <el-container class="flex-column">
     <el-container class="flex-column">
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="2" name="服务中订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="2"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -37,6 +37,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 56 - 55
src/views/manage/order/refund/components/option.vue → src/views/manage/order/components/option.vue

@@ -1,56 +1,57 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
+<template>
+    <fieldset>
+        <legend>
+            <el-tag type="info">按需操作</el-tag>
+        </legend>
+        <div class="op-header">
+            <div class="left-panel">
+                <sc-file-export :apiObj="$API.order.export" :data="searchKey" :fileName="name+'_'+(new Date().getTime())" async>
+                    <template #default="{ open }">
+                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
+                    </template>
+                </sc-file-export>
+            </div>
+        </div>
+    </fieldset>
+</template>
+
+<script>
+import scFileExport from '@/components/scFileExport'
+export default {
+    components: {
+        scFileExport
+    },
+    props: {
+        status: { type: String, default: "1" },
+        name: { type: String, default: "已预约订单" },
+        dataSelect: { type: Array, default: () => [] },
+        searchKey: { type: Object, default: () => {} },
+        dataSelectFull: { type: Array, default: () => [] }
+    },
+    data(){
+        return {
+
+        }
+    },
+    methods: {
+        table_export(){
+            
+        },
+        async table_batch_status(status){
+            if (this.dataSelect.length == 0) {
+                return this.$message.error("请选择修改数据")
+            }
+            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
+            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");
+        },
+        handleSuccess(){
+            this.$emit("success");
+        },
+    }
+}
 </script>
 </script>

+ 56 - 53
src/views/manage/order/before/components/search.vue → src/views/manage/order/components/search.vue

@@ -1,54 +1,57 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:2
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
+<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 :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>订单编号</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>商品ID</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>商品标题</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12: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 {
+    props: {
+        status: { type: String, default: "1" },
+    },
+    data(){
+        return {
+            searchKey:{
+                ex_status:this.status
+            }
+        }
+    },
+    methods: {
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
 </script>
 </script>

+ 238 - 231
src/views/manage/order/done/components/table.vue → src/views/manage/order/components/table.vue

@@ -1,232 +1,239 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.order.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:3
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
+<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="order_id" width="220" fixed="left">
+            <template #default="scope">
+                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="所属代理" prop="status" width="160">
+            <template #default="scope">
+                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="所属店铺" prop="status" width="160">
+            <template #default="scope">
+                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单类型" prop="status" width="120">
+            <template #default="scope">
+                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
+                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="收货地址" prop="company_id" width="120">
+            <template #default="scope">
+                <el-popover :width="200" placement="top-start" v-if="scope.row.service_type==2">
+                    <template #reference>
+                        <div class="el-text">
+                            {{ scope.row.mobile }}
+                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
+                        </div>
+                    </template>
+                    <div class="flex-tags-size">
+                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
+                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
+                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
+                    </div>
+                </el-popover>
+                <span v-else>-</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品ID" prop="out_id" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品信息" prop="product_name" width="220">
+            <template #default="scope">
+                <div class="el-text" v-if="scope.row.product_name">
+                    {{ scope.row.product_name }}
+                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
+                </div>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="数量" prop="count" width="100">
+            <template #default="scope">
+                <span>{{ scope.row.parent.count }}件</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单金额" prop="order_amount" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="支付金额" prop="pay_amount" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="状态" prop="status" width="180">
+            <template #default="scope">
+                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
+                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
+                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
+                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
+                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
+                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
+                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="操作" width="240" align="right" fixed="right">
+            <template #default="scope">
+                <el-button-group>
+                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
+                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
+                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
+                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
+                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
+                </el-button-group>
+            </template>
+        </el-table-column>
+    </scTable>
+    <addMain ref="addMain" @success="handleSuccess"></addMain>
+    <logMain ref="logMain" @success="handleSuccess"></logMain>
+</template>
+
+<script>
+import addMain from "@/views/manage/components/send";
+import logMain from '@/views/manage/order/components/log'
+export default {
+    components: {
+        addMain,logMain
+    },
+    props: {
+        status: { type: String, default: "1" }
+    },
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.order.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{
+                ex_status:this.status
+            }
+        }
+    },
+    methods: {
+        async table_print(data){
+            var resp = await this.$API.store.hook.get();
+            var url = resp.data.url+"print/view?order="+data.order_id
+            window.open(url,"_blank")
+        },
+        table_passwd(row){
+            return this.$message.success("暂未开放");
+            this.$nextTick(() => {
+                this.$refs.formMain.open("edit").setData(row)
+            })
+        },
+        table_end(data){
+            return this.$message.success("暂未开放");
+            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading();
+                var resp = await this.$API.order.end.post({"order_id":data.order_id});
+                loading.close();
+                if (resp.code !== 1) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(() => {
+
+            })
+        },
+        table_express(data){
+            return this.$message.success("暂未开放");
+            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading();
+                var resp = await this.$API.merOrder.express.post({"id":data.id});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.warning(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_log(data){
+            this.$nextTick(() => {
+                this.$refs.logMain.open("edit").setData(data)
+            })
+        },
+        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);
+        },
+    }
+}
+</script>
+
+<style>
+.desc{
+    color: #999;
+    font-size: 12px;
+}
+.flex-btn{
+    display: flex;
+    flex-wrap: wrap;
+    gap: 5px;
+}
+.flex-tags {
+    display: flex;
+    gap: 2px;
+    flex-wrap: wrap;
+}
+.flex-btn .el-button.is-text{
+    margin-left: 0;
+}
+.flex-tags-size{
+    font-size: 12px;
+}
+.flex-tags-size span{
+    display: block;
+    margin-bottom: 5px;
+    color: #999;
+}
 </style>
 </style>

+ 0 - 56
src/views/manage/order/done/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/manage/order/done/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:3
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 6 - 5
src/views/manage/order/done/index.vue

@@ -2,20 +2,20 @@
     <el-container class="flex-column">
     <el-container class="flex-column">
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="3" name="已核销订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="3"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -37,6 +37,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 232
src/views/manage/order/refund/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.order.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:4
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 6 - 5
src/views/manage/order/refund/index.vue

@@ -3,20 +3,20 @@
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
             <el-alert type="warning" show-icon title="栏目提醒" description="已解锁并不代表用户该笔订单已退款,用户可以再次进入小程序进行预约" :closable="false" style="margin-bottom: 10px;"></el-alert>
             <el-alert type="warning" show-icon title="栏目提醒" description="已解锁并不代表用户该笔订单已退款,用户可以再次进入小程序进行预约" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="4" name="已解锁订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="4"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +38,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 56
src/views/manage/order/send/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 232
src/views/manage/order/send/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.order.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:1
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 7 - 5
src/views/manage/order/send/index.vue

@@ -3,20 +3,21 @@
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
             <el-alert type="warning" show-icon title="栏目提醒" description="已预约栏目的订单,用户如取消订单,无需商家同意,产品如已发货,请尽快修改订单状态到服务中,如造成经济损失,本核销系统不负法律责任(使用自动呼叫快递功能的商家忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
             <el-alert type="warning" show-icon title="栏目提醒" description="已预约栏目的订单,用户如取消订单,无需商家同意,产品如已发货,请尽快修改订单状态到服务中,如造成经济损失,本核销系统不负法律责任(使用自动呼叫快递功能的商家忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="1" name="已预约订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="1"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +39,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 86
src/views/merchant/order/before/components/form.vue

@@ -1,86 +0,0 @@
-<template>
-    <el-dialog :title="titleMap[mode]" v-model="visible" :width="600" destroy-on-close @closed="$emit('closed')" :close-on-click-modal="false" :close-on-press-escape="false">
-        <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
-            <el-form-item label="联系人" prop="username">
-                <el-input v-model="formData.username" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="联系电话" prop="mobile">
-                <el-input v-model="formData.mobile" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="详细地址" prop="address">
-                <el-input v-model="formData.address" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-        </el-form>
-		<template #footer>
-			<el-button @click="visible=false" >取 消</el-button>
-			<el-button type="primary" :loading="isSaveing" @click="submit()">提交</el-button>
-		</template>
-    </el-dialog>
-</template>
-<script>
-export default {
-    data(){
-        return {
-            loading: false,
-            mode:"add",
-            titleMap:{
-                add:"更新地址",
-                edit:"更新地址"
-            },
-            visible: false,
-            isSaveing: false,
-            formData:{},
-            submitState:false,
-            disabled:false,
-            rules:{
-                username: [
-                    {required: true, message: '请输入'}
-                ],
-                mobile: [
-                    {required: true, message: '请输入'}
-                ],
-                address: [
-                    {required: true, message: '请输入'}
-                ]
-            },
-            sms:""
-        }
-    },
-    methods:{
-        open(mode = 'add'){
-            this.mode = mode;
-            this.visible = true;
-            return this
-        },
-        //表单注入数据
-        setData(data){
-            data.address = data.region+data.address;
-            this.formData = data;
-        },
-        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.order.save.post(submitData);
-            this.isSaveing = false;
-            if (resp.code !== 1) {
-                return this.$message.error(resp.msg);
-            }
-            this.$message.success(resp.msg);
-            this.visible = false;
-            this.formData = {};
-            this.submitState = false;
-            this.$emit("success");
-        }
-    }
-}
-</script>
-<style>
-.mt20 {margin-top: 20px;}
-.login-msg-yzm {display: flex;width: 100%;}
-.login-msg-yzm .el-button {margin-left: 10px;--el-button-size:42px;}
-</style>

+ 0 - 54
src/views/merchant/order/before/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:2
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 232
src/views/merchant/order/before/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.merOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:2
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 6 - 6
src/views/merchant/order/before/index.vue

@@ -2,21 +2,20 @@
     <el-container class="flex-column">
     <el-container class="flex-column">
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
-            <el-alert type="warning" show-icon title="打印面单提醒" description="电脑中必须先安装打印插件,点击下方【下载打印插件】按钮下载插件安装文件(使用云打印商家可忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="2" name="服务中订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="2"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/merchant/order/components/search';
+import optionBtn from '@/views/merchant/order/components/option';
+import tablePage from '@/views/merchant/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +37,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 0
src/views/merchant/order/send/components/form.vue → src/views/merchant/order/components/form.vue


+ 1 - 1
src/views/merchant/order/components/log.vue

@@ -55,7 +55,7 @@ export default {
         },
         },
         async getLogData(order){
         async getLogData(order){
             this.loading = true;
             this.loading = true;
-            var resp = await this.$API.order.log.get({"order":order.order_id});
+            var resp = await this.$API.order.log.get({"order":order.order_sn});
             this.loading = false;
             this.loading = false;
             this.logData = resp.data;
             this.logData = resp.data;
         }
         }

+ 75 - 59
src/views/merchant/order/before/components/option.vue → src/views/merchant/order/components/option.vue

@@ -1,60 +1,76 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-                <el-button type="danger" icon="el-icon-download" @click="table_download()">下载打印插件</el-button>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_download(){
-            window.location.href="https://scp-tcdn.sf-express.com/scp/soft/SCPPrint_Win32NT_6.570CN.exe"
-        },
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
+<template>
+    <fieldset>
+        <legend>
+            <el-tag type="info">按需操作</el-tag>
+        </legend>
+        <div class="op-header">
+            <div class="left-panel">
+                <sc-file-export :apiObj="$API.merOrder.export" :data="searchKey" :fileName="name+'_'+(new Date().getTime())" async>
+                    <template #default="{ open }">
+                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
+                    </template>
+                </sc-file-export>
+                <template v-if="status==1">
+                    <el-button type="danger" icon="el-icon-document-checked" @click="batch_send" :disabled="dataSelect.length>0?false:true">批量确认</el-button>
+                </template>
+            </div>
+        </div>
+    </fieldset>
+</template>
+
+<script>
+import scFileExport from '@/components/scFileExport'
+export default {
+    components: {
+        scFileExport
+    },
+    props: {
+        status: { type: String, default: "1" },
+        name: { type: String, default: "已预约订单" },
+        dataSelect: { type: Array, default: () => [] },
+        searchKey: { type: Object, default: () => {} },
+        dataSelectFull: { type: Array, default: () => [] }
+    },
+    data(){
+        return {
+
+        }
+    },
+    methods: {
+        table_export(){
+            
+        },
+        batch_send(){
+            this.$confirm(`确认订单后,所勾选的订单状态将自动调整为【服务中】,用户取消服务需要在【解锁审核】中进行处理`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading();
+                var resp = await this.$API.merOrder.batchState.post({"order":this.dataSelect});
+                loading.close();
+                if (resp.code !== 1) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$emit("success");
+            }).catch(() => {
+
+            })
+        },
+        async table_batch_status(status){
+            if (this.dataSelect.length == 0) {
+                return this.$message.error("请选择修改数据")
+            }
+            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
+            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");
+        },
+        handleSuccess(){
+            this.$emit("success");
+        },
+    }
+}
 </script>
 </script>

+ 56 - 53
src/views/manage/order/refund/components/search.vue → src/views/merchant/order/components/search.vue

@@ -1,54 +1,57 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:4
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
+<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 :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>订单编号</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>商品ID</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>商品标题</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12: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 {
+    props: {
+        status: { type: String, default: "1" },
+    },
+    data(){
+        return {
+            searchKey:{
+                ex_status:this.status
+            }
+        }
+    },
+    methods: {
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
 </script>
 </script>

+ 232 - 231
src/views/merchant/order/done/components/table.vue → src/views/merchant/order/components/table.vue

@@ -1,232 +1,233 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.merOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:3
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
+<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="order_id" width="220" fixed="left">
+            <template #default="scope">
+                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="所属店铺" prop="status" width="160">
+            <template #default="scope">
+                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单类型" prop="status" width="120">
+            <template #default="scope">
+                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
+                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="收货地址" prop="company_id" width="120">
+            <template #default="scope">
+                <el-popover :width="200" placement="top-start" v-if="scope.row.service_type==2">
+                    <template #reference>
+                        <div class="el-text">
+                            {{ scope.row.mobile }}
+                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
+                        </div>
+                    </template>
+                    <div class="flex-tags-size">
+                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
+                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
+                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
+                    </div>
+                </el-popover>
+                <span v-else>-</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品ID" prop="out_id" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品信息" prop="product_name" width="220">
+            <template #default="scope">
+                <div class="el-text" v-if="scope.row.product_name">
+                    {{ scope.row.product_name }}
+                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
+                </div>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="数量" prop="count" width="100">
+            <template #default="scope">
+                <span>{{ scope.row.parent.count }}件</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单金额" prop="order_amount" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="支付金额" prop="pay_amount" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="状态" prop="status" width="180">
+            <template #default="scope">
+                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
+                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
+                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
+                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
+                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
+                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
+                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="操作" width="240" align="right" fixed="right">
+            <template #default="scope">
+                <el-button-group>
+                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
+                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
+                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
+                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
+                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
+                </el-button-group>
+            </template>
+        </el-table-column>
+    </scTable>
+    <addMain ref="addMain" @success="handleSuccess"></addMain>
+    <logMain ref="logMain" @success="handleSuccess"></logMain>
+    <formMain ref="formMain" @success="handleSuccess"></formMain>
+</template>
+
+<script>
+import addMain from "@/views/manage/components/send";
+import formMain from "./form";
+import logMain from '@/views/manage/order/components/log'
+export default {
+    components: {
+        addMain,logMain,formMain
+    },
+    props: {
+        status: { type: String, default: "1" }
+    },
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.merOrder.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{
+                ex_status:this.status
+            }
+        }
+    },
+    methods: {
+        async table_print(data){
+            var resp = await this.$API.store.hook.get();
+            var url = resp.data.url+"print/view?order="+data.order_sn
+            window.open(url,"_blank")
+        },
+        table_passwd(row){
+            this.$nextTick(() => {
+                this.$refs.formMain.open("edit").setData(row)
+            })
+        },
+        table_end(data){
+            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading();
+                var resp = await this.$API.order.end.post({"order":data.order_sn});
+                loading.close();
+                if (resp.code !== 1) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(() => {
+
+            })
+        },
+        table_express(data){
+            this.$confirm(`呼叫快递成功后,可进入【服务中】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading();
+                var resp = await this.$API.merOrder.express.post({"order":data.order_sn});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.warning(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_log(data){
+            this.$nextTick(() => {
+                this.$refs.logMain.open("edit").setData(data)
+            })
+        },
+        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.order_sn;
+                arrCompany[index] = val;
+            });
+            this.dataSelectFull = arrCompany;
+            this.dataSelect = arr;
+            this.$emit("success",this.dataSelect);
+            this.$emit("successFull",this.dataSelectFull);
+        },
+    }
+}
+</script>
+
+<style>
+.desc{
+    color: #999;
+    font-size: 12px;
+}
+.flex-btn{
+    display: flex;
+    flex-wrap: wrap;
+    gap: 5px;
+}
+.flex-tags {
+    display: flex;
+    gap: 2px;
+    flex-wrap: wrap;
+}
+.flex-btn .el-button.is-text{
+    margin-left: 0;
+}
+.flex-tags-size{
+    font-size: 12px;
+}
+.flex-tags-size span{
+    display: block;
+    margin-bottom: 5px;
+    color: #999;
+}
 </style>
 </style>

+ 0 - 86
src/views/merchant/order/done/components/form.vue

@@ -1,86 +0,0 @@
-<template>
-    <el-dialog :title="titleMap[mode]" v-model="visible" :width="600" destroy-on-close @closed="$emit('closed')" :close-on-click-modal="false" :close-on-press-escape="false">
-        <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
-            <el-form-item label="联系人" prop="username">
-                <el-input v-model="formData.username" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="联系电话" prop="mobile">
-                <el-input v-model="formData.mobile" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="详细地址" prop="address">
-                <el-input v-model="formData.address" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-        </el-form>
-		<template #footer>
-			<el-button @click="visible=false" >取 消</el-button>
-			<el-button type="primary" :loading="isSaveing" @click="submit()">提交</el-button>
-		</template>
-    </el-dialog>
-</template>
-<script>
-export default {
-    data(){
-        return {
-            loading: false,
-            mode:"add",
-            titleMap:{
-                add:"更新地址",
-                edit:"更新地址"
-            },
-            visible: false,
-            isSaveing: false,
-            formData:{},
-            submitState:false,
-            disabled:false,
-            rules:{
-                username: [
-                    {required: true, message: '请输入'}
-                ],
-                mobile: [
-                    {required: true, message: '请输入'}
-                ],
-                address: [
-                    {required: true, message: '请输入'}
-                ]
-            },
-            sms:""
-        }
-    },
-    methods:{
-        open(mode = 'add'){
-            this.mode = mode;
-            this.visible = true;
-            return this
-        },
-        //表单注入数据
-        setData(data){
-            data.address = data.region+data.address;
-            this.formData = data;
-        },
-        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.order.save.post(submitData);
-            this.isSaveing = false;
-            if (resp.code !== 1) {
-                return this.$message.error(resp.msg);
-            }
-            this.$message.success(resp.msg);
-            this.visible = false;
-            this.formData = {};
-            this.submitState = false;
-            this.$emit("success");
-        }
-    }
-}
-</script>
-<style>
-.mt20 {margin-top: 20px;}
-.login-msg-yzm {display: flex;width: 100%;}
-.login-msg-yzm .el-button {margin-left: 10px;--el-button-size:42px;}
-</style>

+ 0 - 56
src/views/merchant/order/done/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/merchant/order/done/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:3
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 6 - 5
src/views/merchant/order/done/index.vue

@@ -2,20 +2,20 @@
     <el-container class="flex-column">
     <el-container class="flex-column">
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="3" name="已核销订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="3"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/merchant/order/components/search';
+import optionBtn from '@/views/merchant/order/components/option';
+import tablePage from '@/views/merchant/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -37,6 +37,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 86
src/views/merchant/order/refund/components/form.vue

@@ -1,86 +0,0 @@
-<template>
-    <el-dialog :title="titleMap[mode]" v-model="visible" :width="600" destroy-on-close @closed="$emit('closed')" :close-on-click-modal="false" :close-on-press-escape="false">
-        <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
-            <el-form-item label="联系人" prop="username">
-                <el-input v-model="formData.username" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="联系电话" prop="mobile">
-                <el-input v-model="formData.mobile" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-            <el-form-item label="详细地址" prop="address">
-                <el-input v-model="formData.address" clearable placeholder="请输入"></el-input>
-                <div class="el-form-item-msg"></div>
-            </el-form-item>
-        </el-form>
-		<template #footer>
-			<el-button @click="visible=false" >取 消</el-button>
-			<el-button type="primary" :loading="isSaveing" @click="submit()">提交</el-button>
-		</template>
-    </el-dialog>
-</template>
-<script>
-export default {
-    data(){
-        return {
-            loading: false,
-            mode:"add",
-            titleMap:{
-                add:"更新地址",
-                edit:"更新地址"
-            },
-            visible: false,
-            isSaveing: false,
-            formData:{},
-            submitState:false,
-            disabled:false,
-            rules:{
-                username: [
-                    {required: true, message: '请输入'}
-                ],
-                mobile: [
-                    {required: true, message: '请输入'}
-                ],
-                address: [
-                    {required: true, message: '请输入'}
-                ]
-            },
-            sms:""
-        }
-    },
-    methods:{
-        open(mode = 'add'){
-            this.mode = mode;
-            this.visible = true;
-            return this
-        },
-        //表单注入数据
-        setData(data){
-            data.address = data.region+data.address;
-            this.formData = data;
-        },
-        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.order.save.post(submitData);
-            this.isSaveing = false;
-            if (resp.code !== 1) {
-                return this.$message.error(resp.msg);
-            }
-            this.$message.success(resp.msg);
-            this.visible = false;
-            this.formData = {};
-            this.submitState = false;
-            this.$emit("success");
-        }
-    }
-}
-</script>
-<style>
-.mt20 {margin-top: 20px;}
-.login-msg-yzm {display: flex;width: 100%;}
-.login-msg-yzm .el-button {margin-left: 10px;--el-button-size:42px;}
-</style>

+ 0 - 56
src/views/merchant/order/refund/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/merchant/order/refund/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:4
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 230
src/views/merchant/order/refund/components/table.vue

@@ -1,230 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.merOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{}
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 6 - 5
src/views/merchant/order/refund/index.vue

@@ -3,20 +3,20 @@
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
             <el-alert type="warning" show-icon title="栏目提醒" description="已解锁并不代表用户该笔订单已退款,用户可以再次进入小程序进行预约" :closable="false" style="margin-bottom: 10px;"></el-alert>
             <el-alert type="warning" show-icon title="栏目提醒" description="已解锁并不代表用户该笔订单已退款,用户可以再次进入小程序进行预约" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="4" name="已解锁订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="4"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/merchant/order/components/search';
+import optionBtn from '@/views/merchant/order/components/option';
+import tablePage from '@/views/merchant/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +38,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 56
src/views/merchant/order/send/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/merchant/order/send/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:1
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 232
src/views/merchant/order/send/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.merOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:1
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 7 - 5
src/views/merchant/order/send/index.vue

@@ -3,20 +3,21 @@
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
             <el-alert type="warning" show-icon title="栏目提醒" description="已预约栏目的订单,用户如取消订单,无需商家同意,产品如已发货,请尽快修改订单状态到服务中,如造成经济损失,本核销系统不负法律责任(使用自动呼叫快递功能的商家忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
             <el-alert type="warning" show-icon title="栏目提醒" description="已预约栏目的订单,用户如取消订单,无需商家同意,产品如已发货,请尽快修改订单状态到服务中,如造成经济损失,本核销系统不负法律责任(使用自动呼叫快递功能的商家忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="1" name="已预约订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="1"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/merchant/order/components/search';
+import optionBtn from '@/views/merchant/order/components/option';
+import tablePage from '@/views/merchant/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +39,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 20 - 30
src/views/merchant/refund/components/table.vue

@@ -86,28 +86,24 @@
         <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
         <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
         <el-table-column label="操作" width="200" align="right" fixed="right">
         <el-table-column label="操作" width="200" align="right" fixed="right">
             <template #default="scope">
             <template #default="scope">
-                <el-button-group>
+                <el-button-group v-if="scope.row.express_status == 4">
                     <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
                     <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
+                    <el-button text type="success" size="small" @click="table_send(scope.row)">通过</el-button>
+                    <el-button text type="warning" size="small" @click="table_pass(scope.row)">拒绝</el-button>
                 </el-button-group>
                 </el-button-group>
             </template>
             </template>
         </el-table-column>
         </el-table-column>
     </scTable>
     </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
     <addMain ref="addMain" @success="handleSuccess"></addMain>
     <addMain ref="addMain" @success="handleSuccess"></addMain>
     <logMain ref="logMain" @success="handleSuccess"></logMain>
     <logMain ref="logMain" @success="handleSuccess"></logMain>
 </template>
 </template>
 
 
 <script>
 <script>
-import formMain from './form';
 import addMain from "@/views/manage/components/send";
 import addMain from "@/views/manage/components/send";
 import logMain from '@/views/manage/order/components/log'
 import logMain from '@/views/manage/order/components/log'
 export default {
 export default {
     components: {
     components: {
-        formMain,addMain,logMain
+        addMain,logMain
     },
     },
     data(){
     data(){
         return {
         return {
@@ -117,48 +113,42 @@ export default {
             dataSelect:[],
             dataSelect:[],
             dataSelectFull:[],
             dataSelectFull:[],
             searchKey:{
             searchKey:{
-                ex_status:2
+                ex_status:5
             }
             }
         }
         }
     },
     },
     methods: {
     methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
+        table_pass(data){
+            this.$confirm(`拒绝申请后,该笔订单状态变为原来的服务中,如已开通短信通知能力则系统自动发送短信至用户`, '提示', {
                 type: 'warning'
                 type: 'warning'
             }).then(async () => {
             }).then(async () => {
                 var loading = this.$loading();
                 var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
+                var resp = await this.$API.merOrder.refuse.post({"order":data.order_sn});
                 loading.close();
                 loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
+                if (resp.code == 0) {
+                    return this.$message.error(resp.msg)
                 }
                 }
-                this.$message.success(resp.msg);
+                this.$message.success(resp.msg)
                 this.$refs.table.refresh()
                 this.$refs.table.refresh()
             }).catch(() => {
             }).catch(() => {
 
 
             })
             })
         },
         },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
+        table_send(data){
+            this.$confirm(`通过审核后,系统将自动对该订单进行解锁,用户可在抖音团购订单中申请退款`, '提示', {
                 type: 'warning'
                 type: 'warning'
-            }).then(async ()=>{
+            }).then(async () => {
                 var loading = this.$loading();
                 var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
+                var resp = await this.$API.merOrder.agree.post({"order":data.order_sn});
                 loading.close();
                 loading.close();
                 if (resp.code == 0) {
                 if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
+                    return this.$message.error(resp.msg)
                 }
                 }
-                this.$message.success(resp.msg);
+                this.$message.success(resp.msg)
                 this.$refs.table.refresh()
                 this.$refs.table.refresh()
-            }).catch(()=>{})
+            }).catch(() => {
+
+            })
         },
         },
         table_log(data){
         table_log(data){
             this.$nextTick(() => {
             this.$nextTick(() => {

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

@@ -84,7 +84,9 @@ export default {
             this.$confirm(`【必须】设置小程序全量用户订单按钮以及跳转路径`, '提示', {
             this.$confirm(`【必须】设置小程序全量用户订单按钮以及跳转路径`, '提示', {
                 type: 'warning'
                 type: 'warning'
             }).then(async ()=>{
             }).then(async ()=>{
+                var loading = this.$loading()
                 var resp = await this.$API.merStore.auth.post({"id":data.id});
                 var resp = await this.$API.merStore.auth.post({"id":data.id});
+                loading.close();
                 if (resp.code == 0) {
                 if (resp.code == 0) {
                     return this.$message.error(resp.msg);
                     return this.$message.error(resp.msg);
                 }
                 }
@@ -101,7 +103,9 @@ export default {
             this.$confirm(`删除店铺后,所有有关该店铺的门店、订单等信息都将删除,不可恢复,确定要执行删除吗`, '提示', {
             this.$confirm(`删除店铺后,所有有关该店铺的门店、订单等信息都将删除,不可恢复,确定要执行删除吗`, '提示', {
                 type: 'warning'
                 type: 'warning'
             }).then(async ()=>{
             }).then(async ()=>{
+                var loading = this.$loading()
                 var resp = await this.$API.merStore.del.post({"id":data.id});
                 var resp = await this.$API.merStore.del.post({"id":data.id});
+                loading.close();
                 if (resp.code == 0) {
                 if (resp.code == 0) {
                     return this.$message.error(resp.msg);
                     return this.$message.error(resp.msg);
                 }
                 }

+ 0 - 60
src/views/store/order/before/components/option.vue

@@ -1,60 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-                <el-button type="danger" icon="el-icon-download" @click="table_download()">下载打印插件</el-button>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        table_download(){
-            window.location.href="https://scp-tcdn.sf-express.com/scp/soft/SCPPrint_Win32NT_6.570CN.exe"
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/store/order/before/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:2
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 232
src/views/store/order/before/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.storeOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:2
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 6 - 6
src/views/store/order/before/index.vue

@@ -2,21 +2,20 @@
     <el-container class="flex-column">
     <el-container class="flex-column">
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
-            <el-alert type="warning" show-icon title="打印面单提醒" description="电脑中必须先安装打印插件,点击下方【下载打印插件】按钮下载插件安装文件(使用云打印商家可忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="2" name="服务中订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="2"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +37,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 1 - 1
src/views/store/order/components/log.vue

@@ -55,7 +55,7 @@ export default {
         },
         },
         async getLogData(order){
         async getLogData(order){
             this.loading = true;
             this.loading = true;
-            var resp = await this.$API.order.log.get({"order":order.order_id});
+            var resp = await this.$API.order.log.get({"order":order.order_sn});
             this.loading = false;
             this.loading = false;
             this.logData = resp.data;
             this.logData = resp.data;
         }
         }

+ 56 - 55
src/views/manage/order/life/components/option.vue → src/views/store/order/components/option.vue

@@ -1,56 +1,57 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
+<template>
+    <fieldset>
+        <legend>
+            <el-tag type="info">按需操作</el-tag>
+        </legend>
+        <div class="op-header">
+            <div class="left-panel">
+                <sc-file-export :apiObj="$API.storeOrder.export" :data="searchKey" :fileName="name+'_'+(new Date().getTime())" async>
+                    <template #default="{ open }">
+                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
+                    </template>
+                </sc-file-export>
+            </div>
+        </div>
+    </fieldset>
+</template>
+
+<script>
+import scFileExport from '@/components/scFileExport'
+export default {
+    components: {
+        scFileExport
+    },
+    props: {
+        status: { type: String, default: "1" },
+        name: { type: String, default: "已预约订单" },
+        dataSelect: { type: Array, default: () => [] },
+        searchKey: { type: Object, default: () => {} },
+        dataSelectFull: { type: Array, default: () => [] }
+    },
+    data(){
+        return {
+
+        }
+    },
+    methods: {
+        table_export(){
+            
+        },
+        async table_batch_status(status){
+            if (this.dataSelect.length == 0) {
+                return this.$message.error("请选择修改数据")
+            }
+            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
+            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");
+        },
+        handleSuccess(){
+            this.$emit("success");
+        },
+    }
+}
 </script>
 </script>

+ 56 - 53
src/views/manage/order/send/components/search.vue → src/views/store/order/components/search.vue

@@ -1,54 +1,57 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:1
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
+<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 :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>订单编号</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>商品ID</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12:4">
+                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
+                                <template #prepend>商品标题</template>
+                            </el-input>
+                        </el-col>
+                        <el-col :span="this.$store.state.global.ismobile?12: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 {
+    props: {
+        status: { type: String, default: "1" },
+    },
+    data(){
+        return {
+            searchKey:{
+                ex_status:this.status
+            }
+        }
+    },
+    methods: {
+        searchForm(){
+            this.$emit("success",this.searchKey);
+        }
+    }
+}
 </script>
 </script>

+ 228 - 231
src/views/store/order/done/components/table.vue → src/views/store/order/components/table.vue

@@ -1,232 +1,229 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.storeOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:3
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
+<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="order_id" width="220" fixed="left">
+            <template #default="scope">
+                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单类型" prop="status" width="120">
+            <template #default="scope">
+                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
+                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="收货地址" prop="company_id" width="120">
+            <template #default="scope">
+                <el-popover :width="200" placement="top-start" v-if="scope.row.service_type==2">
+                    <template #reference>
+                        <div class="el-text">
+                            {{ scope.row.mobile }}
+                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
+                        </div>
+                    </template>
+                    <div class="flex-tags-size">
+                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
+                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
+                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
+                    </div>
+                </el-popover>
+                <span v-else>-</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品ID" prop="out_id" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="商品信息" prop="product_name" width="220">
+            <template #default="scope">
+                <div class="el-text" v-if="scope.row.product_name">
+                    {{ scope.row.product_name }}
+                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
+                </div>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="数量" prop="count" width="100">
+            <template #default="scope">
+                <span>{{ scope.row.parent.count }}件</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="订单金额" prop="order_amount" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="支付金额" prop="pay_amount" width="150">
+            <template #default="scope">
+                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
+                <span class="status-danger" v-else>未设置</span>
+            </template>
+        </el-table-column>
+        <el-table-column label="状态" prop="status" width="180">
+            <template #default="scope">
+                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
+                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
+                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
+                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
+                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
+                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
+                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
+            </template>
+        </el-table-column>
+        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
+        <el-table-column label="操作" width="240" align="right" fixed="right">
+            <template #default="scope">
+                <el-button-group>
+                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
+                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
+                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
+                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
+                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
+                </el-button-group>
+            </template>
+        </el-table-column>
+    </scTable>
+    <addMain ref="addMain" @success="handleSuccess"></addMain>
+    <logMain ref="logMain" @success="handleSuccess"></logMain>
+</template>
+
+<script>
+import addMain from "@/views/manage/components/send";
+import logMain from '@/views/manage/order/components/log'
+export default {
+    components: {
+        addMain,logMain
+    },
+    props: {
+        status: { type: String, default: "1" }
+    },
+    data(){
+        return {
+            list: {
+                apiObj: this.$API.storeOrder.list
+            },
+            dataSelect:[],
+            dataSelectFull:[],
+            searchKey:{
+                ex_status:this.status
+            }
+        }
+    },
+    methods: {
+        async table_print(data){
+            var resp = await this.$API.store.hook.get();
+            var url = resp.data.url+"print/view?order="+data.order_id
+            window.open(url,"_blank")
+        },
+        table_passwd(row){
+            return this.$message.success("暂未开放");
+            this.$nextTick(() => {
+                this.$refs.formMain.open("edit").setData(row)
+            })
+        },
+        table_end(data){
+            return this.$message.success("暂未开放");
+            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
+                type: 'warning'
+            }).then(async () => {
+                var loading = this.$loading();
+                var resp = await this.$API.order.end.post({"order_id":data.order_id});
+                loading.close();
+                if (resp.code !== 1) {
+                    return this.$message.error(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(() => {
+
+            })
+        },
+        table_express(data){
+            return this.$message.success("暂未开放");
+            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
+                type: 'warning'
+            }).then(async ()=>{
+                var loading = this.$loading();
+                var resp = await this.$API.merOrder.express.post({"id":data.id});
+                loading.close();
+                if (resp.code == 0) {
+                    return this.$message.warning(resp.msg);
+                }
+                this.$message.success(resp.msg);
+                this.$refs.table.refresh()
+            }).catch(()=>{})
+        },
+        table_log(data){
+            this.$nextTick(() => {
+                this.$refs.logMain.open("edit").setData(data)
+            })
+        },
+        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);
+        },
+    }
+}
+</script>
+
+<style>
+.desc{
+    color: #999;
+    font-size: 12px;
+}
+.flex-btn{
+    display: flex;
+    flex-wrap: wrap;
+    gap: 5px;
+}
+.flex-tags {
+    display: flex;
+    gap: 2px;
+    flex-wrap: wrap;
+}
+.flex-btn .el-button.is-text{
+    margin-left: 0;
+}
+.flex-tags-size{
+    font-size: 12px;
+}
+.flex-tags-size span{
+    display: block;
+    margin-bottom: 5px;
+    color: #999;
+}
 </style>
 </style>

+ 0 - 56
src/views/store/order/done/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/store/order/done/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:3
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 6 - 5
src/views/store/order/done/index.vue

@@ -2,20 +2,20 @@
     <el-container class="flex-column">
     <el-container class="flex-column">
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="3" name="已核销订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="3"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -37,6 +37,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 56
src/views/store/order/refund/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/store/order/refund/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:4
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 232
src/views/store/order/refund/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.storeOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:4
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 6 - 5
src/views/store/order/refund/index.vue

@@ -3,20 +3,20 @@
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
             <el-alert type="warning" show-icon title="栏目提醒" description="已解锁并不代表用户该笔订单已退款,用户可以再次进入小程序进行预约" :closable="false" style="margin-bottom: 10px;"></el-alert>
             <el-alert type="warning" show-icon title="栏目提醒" description="已解锁并不代表用户该笔订单已退款,用户可以再次进入小程序进行预约" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="4" name="已解锁订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="4"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +38,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){

+ 0 - 56
src/views/store/order/send/components/option.vue

@@ -1,56 +0,0 @@
-<template>
-    <fieldset>
-        <legend>
-            <el-tag type="info">按需操作</el-tag>
-        </legend>
-        <div class="op-header">
-            <div class="left-panel">
-                <sc-file-export :apiObj="$API.orderlife.export" :data="searchKey" :fileName="'来客订单_'+(new Date().getTime())" async>
-                    <template #default="{ open }">
-                        <el-button type="primary" icon="sc-icon-download" @click="open">导出</el-button>
-                    </template>
-                </sc-file-export>
-            </div>
-        </div>
-    </fieldset>
-</template>
-
-<script>
-import scFileExport from '@/components/scFileExport'
-export default {
-    components: {
-        scFileExport
-    },
-    props: {
-        type: { type: String, default: "1" },
-        dataSelect: { type: Array, default: () => [] },
-        searchKey: { type: Object, default: () => {} },
-        dataSelectFull: { type: Array, default: () => [] }
-    },
-    data(){
-        return {
-
-        }
-    },
-    methods: {
-        table_export(){
-            
-        },
-        async table_batch_status(status){
-            if (this.dataSelect.length == 0) {
-                return this.$message.error("请选择修改数据")
-            }
-            let submitData = {"id":this.dataSelect,"value":status,"field":"status","type":"batch"};
-            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");
-        },
-        handleSuccess(){
-            this.$emit("success");
-        },
-    }
-}
-</script>

+ 0 - 54
src/views/store/order/send/components/search.vue

@@ -1,54 +0,0 @@
-<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 :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.orderid" placeholder="订单编号" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>订单编号</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.product" placeholder="商品ID" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品ID</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12:4">
-                            <el-input v-model="searchKey.name" placeholder="商品标题" clearable :style="{ width: '100%' }" @keyup.enter="searchForm()">
-                                <template #prepend>商品标题</template>
-                            </el-input>
-                        </el-col>
-                        <el-col :span="this.$store.state.global.ismobile?12: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:{
-                ex_status:1
-            }
-        }
-    },
-    methods: {
-        searchForm(){
-            this.$emit("success",this.searchKey);
-        }
-    }
-}
-</script>

+ 0 - 232
src/views/store/order/send/components/table.vue

@@ -1,232 +0,0 @@
-<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="order_id" width="220" fixed="left">
-            <template #default="scope">
-                <span v-if="scope.row.order_id">{{ scope.row.order_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属代理" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.agent?scope.row.agent.name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="所属店铺" prop="status" width="160">
-            <template #default="scope">
-                <span>{{ scope.row.store?scope.row.store.store_name:'-' }}</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单类型" prop="status" width="120">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.service_type==1"><sc-status-indicator type="danger"></sc-status-indicator> 预约</div>
-                <div class="status-success" v-if="scope.row.service_type==2"><sc-status-indicator type="success"></sc-status-indicator> 快递</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="收货地址" prop="company_id" width="120">
-            <template #default="scope">
-                <el-popover :width="200" placement="top-start">
-                    <template #reference>
-                        <div class="el-text">
-                            {{scope.row.username?scope.row.username:'-'}}
-                            <div class="desc" v-copy="'联系人:'+scope.row.username+'联系电话:'+scope.row.mobile+'联系地址:'+scope.row.region+scope.row.address"><span>一键复制</span></div>
-                        </div>
-                    </template>
-                    <div class="flex-tags-size">
-                        <span>联系人</span>{{scope.row.username?scope.row.username:'-'}}<br><br>
-                        <span>联系电话</span>{{scope.row.mobile?scope.row.mobile:'-'}}<br><br>
-                        <span>联系地址</span>{{scope.row.region?scope.row.region:'-'}}{{scope.row.address?scope.row.address:'-'}}
-                    </div>
-                </el-popover>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品ID" prop="out_id" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.product_id">{{ scope.row.product_id }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="商品信息" prop="product_name" width="220">
-            <template #default="scope">
-                <div class="el-text" v-if="scope.row.product_name">
-                    {{ scope.row.product_name }}
-                    <div class="desc"><span>{{ scope.row.sku }}</span></div>
-                </div>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="数量" prop="count" width="100">
-            <template #default="scope">
-                <span>{{ scope.row.parent.count }}件</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="订单金额" prop="order_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.order_amount">¥{{ scope.row.parent.order_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="支付金额" prop="pay_amount" width="150">
-            <template #default="scope">
-                <span v-if="scope.row.parent.pay_amount">¥{{ scope.row.parent.pay_amount }}</span>
-                <span class="status-danger" v-else>未设置</span>
-            </template>
-        </el-table-column>
-        <el-table-column label="状态" prop="status" width="180">
-            <template #default="scope">
-                <div class="status-danger" v-if="scope.row.express_status==0"><sc-status-indicator type="danger"></sc-status-indicator> 待发货</div>
-                <div class="status-success" v-if="scope.row.express_status==1"><sc-status-indicator type="success"></sc-status-indicator> 待核销</div>
-                <div class="status-danger" v-if="scope.row.express_status==2"><sc-status-indicator type="danger"></sc-status-indicator> 已完成</div>
-                <div class="status-info" v-if="scope.row.express_status==3"><sc-status-indicator type="info"></sc-status-indicator> 已取消</div>
-                <div class="status-info" v-if="scope.row.express_status==4"><sc-status-indicator type="info"></sc-status-indicator> 退款审核</div>
-                <div class="status-info" v-if="scope.row.express_status==5"><sc-status-indicator type="info"></sc-status-indicator> 拒绝退款</div>
-                <div v-if="scope.row.status==5 && scope.row.remark">{{ scope.row.remark }}</div>
-            </template>
-        </el-table-column>
-        <el-table-column label="创建时间" prop="create_at" width="180"></el-table-column>
-        <el-table-column label="操作" width="200" align="right" fixed="right">
-            <template #default="scope">
-                <el-button-group>
-                    <el-button text type="warning" size="small" @click="table_log(scope.row)">订单记录</el-button>
-                    <el-button text type="warning" size="small" @click="table_express(scope.row)" v-if="scope.row.express_status==0">呼叫快递</el-button>
-                    <el-button text type="warning" size="small" v-if="scope.row.express_status==1" @click="table_print(scope.row)">打印面单</el-button>
-                    <el-button text type="success" size="small" @click="table_end(scope.row)" v-if="scope.row.express_status==1">手动核销</el-button>
-                    <el-button text type="success" size="small" @click="table_passwd(scope.row)" v-if="scope.row.express_status==0 && scope.row.service_type==2">更新地址</el-button>
-                </el-button-group>
-            </template>
-        </el-table-column>
-    </scTable>
-    <formMain ref="formMain" @success="handleSuccess"></formMain>
-    <addMain ref="addMain" @success="handleSuccess"></addMain>
-    <logMain ref="logMain" @success="handleSuccess"></logMain>
-</template>
-
-<script>
-import formMain from './form';
-import addMain from "@/views/manage/components/send";
-import logMain from '@/views/manage/order/components/log'
-export default {
-    components: {
-        formMain,addMain,logMain
-    },
-    data(){
-        return {
-            list: {
-                apiObj: this.$API.storeOrder.list
-            },
-            dataSelect:[],
-            dataSelectFull:[],
-            searchKey:{
-                ex_status:1
-            }
-        }
-    },
-    methods: {
-        table_passwd(row){
-            return this.$message.success("暂未开放");
-            this.$nextTick(() => {
-                this.$refs.formMain.open("edit").setData(row)
-            })
-        },
-        table_end(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`核销后该笔订单即为完成,如客户需退款只能通过来客后台进行操作,当前后台不支持核销后退款操作,确定要执行吗?`, '提示', {
-                type: 'warning'
-            }).then(async () => {
-                var loading = this.$loading();
-                var resp = await this.$API.order.end.post({"order_id":data.order_id});
-                loading.close();
-                if (resp.code !== 1) {
-                    return this.$message.error(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(() => {
-
-            })
-        },
-        table_express(data){
-            return this.$message.success("暂未开放");
-            this.$confirm(`呼叫快递成功后,可进入【待核销】栏目进行打印快递面单,如已接通云打印可忽略`, '提示', {
-                type: 'warning'
-            }).then(async ()=>{
-                var loading = this.$loading();
-                var resp = await this.$API.merOrder.express.post({"id":data.id});
-                loading.close();
-                if (resp.code == 0) {
-                    return this.$message.warning(resp.msg);
-                }
-                this.$message.success(resp.msg);
-                this.$refs.table.refresh()
-            }).catch(()=>{})
-        },
-        table_log(data){
-            this.$nextTick(() => {
-                this.$refs.logMain.open("edit").setData(data)
-            })
-        },
-        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);
-        },
-    }
-}
-</script>
-
-<style>
-.desc{
-    color: #999;
-    font-size: 12px;
-}
-.flex-btn{
-    display: flex;
-    flex-wrap: wrap;
-    gap: 5px;
-}
-.flex-tags {
-    display: flex;
-    gap: 2px;
-    flex-wrap: wrap;
-}
-.flex-btn .el-button.is-text{
-    margin-left: 0;
-}
-.flex-tags-size{
-    font-size: 12px;
-}
-.flex-tags-size span{
-    display: block;
-    margin-bottom: 5px;
-    color: #999;
-}
-</style>

+ 7 - 5
src/views/store/order/send/index.vue

@@ -3,20 +3,21 @@
         <div class="table-search">
         <div class="table-search">
             <search @success="handleSuccess"></search>
             <search @success="handleSuccess"></search>
             <el-alert type="warning" show-icon title="栏目提醒" description="已预约栏目的订单,用户如取消订单,无需商家同意,产品如已发货,请尽快修改订单状态到服务中,如造成经济损失,本核销系统不负法律责任(使用自动呼叫快递功能的商家忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
             <el-alert type="warning" show-icon title="栏目提醒" description="已预约栏目的订单,用户如取消订单,无需商家同意,产品如已发货,请尽快修改订单状态到服务中,如造成经济损失,本核销系统不负法律责任(使用自动呼叫快递功能的商家忽略)" :closable="false" style="margin-bottom: 10px;"></el-alert>
-            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" type="3"></optionBtn>
+            
+            <optionBtn @success="handleSuccess" :dataSelect="dataSelect" :dataSelectFull="dataSelectFull" status="1" name="已预约订单" :searchKey="searchKey"></optionBtn>
         </div>
         </div>
         <el-main class="nopadding">
         <el-main class="nopadding">
             <div class="table-container">
             <div class="table-container">
-                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" type="3"></tablePage>
+                <tablePage ref="tablePage" @success="tableHandle" @successFull="tableHandleFull" status="1"></tablePage>
             </div>
             </div>
         </el-main>
         </el-main>
     </el-container>  
     </el-container>  
 </template>
 </template>
 
 
 <script>
 <script>
-import search from './components/search';
-import optionBtn from './components/option';
-import tablePage from './components/table';
+import search from '@/views/manage/order/components/search';
+import optionBtn from '@/views/manage/order/components/option';
+import tablePage from '@/views/manage/order/components/table';
 export default {
 export default {
     components: {
     components: {
         search,tablePage,optionBtn
         search,tablePage,optionBtn
@@ -38,6 +39,7 @@ export default {
             this.dataSelectFull = data;
             this.dataSelectFull = data;
         },
         },
         handleSuccess(data){
         handleSuccess(data){
+            this.searchKey = data;
             this.$refs.tablePage.upData(data)
             this.$refs.tablePage.upData(data)
         },
         },
         handleClick(name){
         handleClick(name){