lrf 2 jaren geleden
bovenliggende
commit
7b3479850c

+ 7 - 1
src/layout/data/menu.js

@@ -32,11 +32,17 @@ export const adminMenu = [
         name: '商品标签',
         index: '2-3',
       },
+      {
+        icon: 'icon-rencai',
+        path: '/system/order',
+        name: '平台订单管理',
+        index: '2-4',
+      },
       {
         icon: 'icon-rencai',
         path: '/system/coupon',
         name: '优惠券管理',
-        index: '2-4',
+        index: '2-5',
       },
     ],
   },

+ 6 - 0
src/router/module/system.js

@@ -29,6 +29,12 @@ export default [
     meta: { title: '平台管理-首页图标设置' },
     component: () => import(/* webpackChunkName: "system_goodsTags" */ '@/views/system/goodsTags/index.vue'),
   },
+  {
+    path: '/system/order',
+    name: 'system_order',
+    meta: { title: '平台管理-平台订单管理' },
+    component: () => import(/* webpackChunkName: "system_goodsTags" */ '@/views/system/order/index.vue'),
+  },
   {
     path: '/system/coupon',
     name: 'system_coupon',

+ 11 - 7
src/views/selfShop/order/index.vue

@@ -4,18 +4,18 @@
       <el-col :span="24" class="main animate__animated animate__backInRight">
         <el-col :span="24" class="one"> <span>订单管理</span> </el-col>
         <el-col :span="24" class="four">
-          <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick">
+          <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick" v-if="shop && shop._id">
             <el-tab-pane label="待付款" name="1">
-              <card-1 @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-1>
+              <card-1 :shop="shop" @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-1>
             </el-tab-pane>
             <el-tab-pane label="待发货" name="2">
-              <card-2 @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-2>
+              <card-2 :shop="shop" @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-2>
             </el-tab-pane>
             <el-tab-pane label="待收货" name="3">
-              <card-3 @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-3>
+              <card-3 :shop="shop" @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-3>
             </el-tab-pane>
             <el-tab-pane label="已收货" name="4">
-              <card-4 @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-4>
+              <card-4 :shop="shop" @toEdit="toEdit" @toDel="toDel" :statusList="statusList"></card-4>
             </el-tab-pane>
           </el-tabs>
         </el-col>
@@ -27,9 +27,8 @@
 <script>
 const _ = require('lodash');
 import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('order');
-const { mapActions: orderDetail } = createNamespacedHelpers('orderDetail');
 const { mapActions: dictData } = createNamespacedHelpers('dictData');
+const { mapActions: selfShop } = createNamespacedHelpers('selfShop');
 
 export default {
   name: 'index',
@@ -50,6 +49,8 @@ export default {
       selected: [],
       // 类型列表
       statusList: [],
+      // 自营店铺信息
+      shop: {},
     };
   },
   async created() {
@@ -57,6 +58,7 @@ export default {
   },
   methods: {
     ...dictData({ dictQuery: 'query' }),
+    ...selfShop(['getInfo']),
     handleClick(tab, event) {
       this.search();
     },
@@ -85,6 +87,8 @@ export default {
       if (this.$checkRes(res)) {
         this.$set(this, `statusList`, res.data);
       }
+      res = await this.getInfo();
+      if (this.$checkRes(res)) this.$set(this, `shop`, res.data);
     },
   },
   computed: {

+ 22 - 13
src/views/selfShop/order/parts/card-1.vue

@@ -3,7 +3,7 @@
     <el-row>
       <el-col :span="24" class="main">
         <el-col :span="24" class="one">
-          <search-1 :form="searchForm" :statusList="statusList" @onSubmit="search" @toReset="toClose" :total="total"></search-1>
+          <search-1 :form="searchForm" :statusList="statusList" @onSubmit="search" @toReset="toClose" :total="total"> </search-1>
         </el-col>
         <data-table
           :select="true"
@@ -30,7 +30,7 @@ const { mapActions } = createNamespacedHelpers('order');
 export default {
   name: 'card-1',
   // props: { list: { type: Array }, total: { type: Number }, statusList: { type: Array }  },
-  props: { statusList: { type: Array } },
+  props: { statusList: { type: Array }, shop: { type: Object } },
   components: { search1: () => import('./search-1.vue') },
   data: function () {
     return {
@@ -42,16 +42,13 @@ export default {
         { label: '删除', method: 'del', confirm: true, type: 'danger' },
       ],
       fields: [
-        { label: '店铺名称', model: 'goods[0].shop_name' },
-        { label: '支付金额', model: 'pay.pay_money' },
+        { label: '订单号', model: 'no' },
+        { label: '下单时间', model: 'buy_time' },
+        { label: '顾客', model: 'customer.name' },
         {
-          label: '订单状态',
-          model: 'status',
-          format: (i) => {
-            let data = this.statusList.find((f) => f.value == i);
-            if (data) return data.label;
-            else return '暂无';
-          },
+          label: '需支付金额',
+          model: 'total_detail',
+          format: (i) => this.computedNeedPay(i),
         },
       ],
       // 多选值
@@ -63,11 +60,23 @@ export default {
   },
   methods: {
     ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
+    computedNeedPay(details) {
+      let total = 0;
+      for (const key in details) {
+        total += details[key];
+      }
+      return _.floor(total, 2);
+    },
     // 查询
     async search({ skip = 0, limit = 10, ...info } = {}) {
-      const condition = _.cloneDeep(this.searchForm);
+      let condition = _.cloneDeep(this.searchForm);
+      if (condition.buy_time) {
+        condition[`buy_time@start`] = _.head(condition.buy_time);
+        condition[`buy_time@end`] = _.last(condition.buy_time);
+        delete condition.buy_time;
+      }
       info.status = '0';
-      let res = await this.query({ skip, limit, ...condition, ...info });
+      let res = await this.query({ skip, limit, ...condition, ...info, shop: _.get(this.shop, '_id') });
       if (this.$checkRes(res)) {
         this.$set(this, 'list', res.data);
         this.$set(this, 'total', res.total);

+ 1 - 1
src/views/selfShop/order/parts/card-2.vue

@@ -31,7 +31,7 @@ const { mapActions } = createNamespacedHelpers('orderDetail');
 
 export default {
   name: 'card-1',
-  props: { statusList: { type: Array } },
+  props: { statusList: { type: Array }, shop: { type: Object } },
   components: { search1: () => import('./search-1.vue') },
   data: function () {
     return {

+ 1 - 1
src/views/selfShop/order/parts/card-3.vue

@@ -31,7 +31,7 @@ const { mapActions } = createNamespacedHelpers('orderDetail');
 
 export default {
   name: 'card-1',
-  props: { statusList: { type: Array } },
+  props: { statusList: { type: Array }, shop: { type: Object } },
   components: { search1: () => import('./search-1.vue') },
   data: function () {
     return {

+ 1 - 1
src/views/selfShop/order/parts/card-4.vue

@@ -31,7 +31,7 @@ const { mapActions } = createNamespacedHelpers('orderDetail');
 
 export default {
   name: 'card-1',
-  props: { statusList: { type: Array } },
+  props: { statusList: { type: Array }, shop: { type: Object } },
   components: { search1: () => import('./search-1.vue') },
   data: function () {
     return {

+ 18 - 6
src/views/selfShop/order/parts/search-1.vue

@@ -4,17 +4,30 @@
       <el-col :span="24" class="main">
         <el-form :model="form" ref="form" label-width="130px">
           <el-col :span="6">
-            <el-form-item label="名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入名称" size="small"></el-input>
+            <el-form-item label="订单号" prop="no">
+              <el-input v-model="form.no" placeholder="请输入订单号" size="small"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="6">
+          <el-col :span="7">
+            <el-form-item label="下单日期" prop="buy_time">
+              <el-date-picker
+                v-model="form.buy_time"
+                type="daterange"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="6">
             <el-form-item label="订单状态" prop="type">
               <el-select v-model="form.type" clearable filterable placeholder="请选择" style="width: 100%" size="small">
                 <el-option v-for="i in statusList" :key="i.label" :label="i.label" :value="i.value"></el-option>
               </el-select>
             </el-form-item>
-          </el-col>
+          </el-col> -->
           <el-col :span="24" class="btn">
             <el-button type="primary" icon="el-icon-search" size="mini" @click="onSubmit('form')">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="toReset('form')">重置</el-button>
@@ -44,8 +57,7 @@ export default {
       this.$emit('toReset');
     },
   },
-  computed: {
-  },
+  computed: {},
   metaInfo() {
     return { title: this.$route.meta.title };
   },

+ 27 - 0
src/views/system/order/index.vue

@@ -0,0 +1,27 @@
+<template>
+  <div id="index">
+    <p>index</p>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'index',
+  props: {},
+  components: {},
+  data: function () {
+    return {};
+  },
+  computed: {
+    ...mapState(['user']),
+  },
+  created() {},
+  methods: {},
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>