소스 검색

修改订单组件

YY 2 년 전
부모
커밋
66d5711820
36개의 변경된 파일253개의 추가작업 그리고 3740개의 파일을 삭제
  1. 0 0
      src/components/orderParts/card-1.vue
  2. 0 0
      src/components/orderParts/card-2.vue
  3. 0 0
      src/components/orderParts/detail/detail_order.vue
  4. 0 0
      src/components/orderParts/detail/detail_orderDetail.vue
  5. 0 0
      src/components/orderParts/detail/detail_sales_order.vue
  6. 0 0
      src/components/orderParts/detail/detail_sales_orderDetail.vue
  7. 0 0
      src/components/orderParts/detail/parts/card-1.vue
  8. 0 0
      src/components/orderParts/detail/parts/card-2.vue
  9. 0 0
      src/components/orderParts/search-1.vue
  10. 0 0
      src/components/orderParts/search-2.vue
  11. 129 31
      src/views/platmanag/order/index.vue
  12. 0 107
      src/views/platmanag/order/parts/card-2.vue
  13. 0 126
      src/views/platmanag/order/parts/card-3.vue
  14. 0 109
      src/views/platmanag/order/parts/card-4.vue
  15. 0 98
      src/views/platmanag/order/parts/card-5.vue
  16. 0 95
      src/views/platmanag/order/parts/card-6.vue
  17. 0 95
      src/views/platmanag/order/parts/card-7.vue
  18. 0 95
      src/views/platmanag/order/parts/card-8.vue
  19. 0 95
      src/views/platmanag/order/parts/card-9.vue
  20. 124 31
      src/views/selfShop/order/index.vue
  21. 0 66
      src/views/selfShop/order/parts/card-2.vue
  22. 0 126
      src/views/selfShop/order/parts/card-3.vue
  23. 0 100
      src/views/selfShop/order/parts/card-4.vue
  24. 0 100
      src/views/selfShop/order/parts/card-5.vue
  25. 0 95
      src/views/selfShop/order/parts/card-6.vue
  26. 0 95
      src/views/selfShop/order/parts/card-7.vue
  27. 0 95
      src/views/selfShop/order/parts/card-8.vue
  28. 0 95
      src/views/selfShop/order/parts/card-9.vue
  29. 0 232
      src/views/selfShop/order/parts/detail/detail_order.vue
  30. 0 165
      src/views/selfShop/order/parts/detail/detail_orderDetail.vue
  31. 0 210
      src/views/selfShop/order/parts/detail/detail_sales_order.vue
  32. 0 417
      src/views/selfShop/order/parts/detail/detail_sales_orderDetail.vue
  33. 0 221
      src/views/selfShop/order/parts/detail/parts/card-1.vue
  34. 0 430
      src/views/selfShop/order/parts/detail/parts/card-2.vue
  35. 0 148
      src/views/selfShop/order/parts/parts/detail-1.vue
  36. 0 263
      src/views/selfShop/order/parts/parts/detail-2.vue

src/views/platmanag/order/parts/card-1.vue → src/components/orderParts/card-1.vue


src/views/selfShop/order/parts/card-1.vue → src/components/orderParts/card-2.vue


src/views/platmanag/order/parts/detail/detail_order.vue → src/components/orderParts/detail/detail_order.vue


src/views/platmanag/order/parts/detail/detail_orderDetail.vue → src/components/orderParts/detail/detail_orderDetail.vue


src/views/platmanag/order/parts/detail/detail_sales_order.vue → src/components/orderParts/detail/detail_sales_order.vue


src/views/platmanag/order/parts/detail/detail_sales_orderDetail.vue → src/components/orderParts/detail/detail_sales_orderDetail.vue


src/views/platmanag/order/parts/detail/parts/card-1.vue → src/components/orderParts/detail/parts/card-1.vue


src/views/platmanag/order/parts/detail/parts/card-2.vue → src/components/orderParts/detail/parts/card-2.vue


src/views/platmanag/order/parts/search-1.vue → src/components/orderParts/search-1.vue


src/views/selfShop/order/parts/search-1.vue → src/components/orderParts/search-2.vue


+ 129 - 31
src/views/platmanag/order/index.vue

@@ -1,37 +1,67 @@
 <template>
   <div id="index">
     <el-row>
-      <el-col :span="24" class="main animate__animated animate__backInRight">
+      <el-col
+        :span="24"
+        class="main animate__animated animate__backInRight"
+        v-loading="loadings"
+        element-loading-text="拼命加载中"
+        element-loading-spinner="el-icon-loading"
+      >
         <span v-show="view === 'list'">
           <el-col :span="24" class="one"> <span>订单管理</span> </el-col>
           <el-col :span="24" class="four">
-            <el-tabs v-model="activeName" type="border-card">
+            <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card">
               <el-tab-pane label="待付款" name="1">
                 <card-1 :statusList="statusList" @toDetail="toDetail" @toSales="toSales"></card-1>
               </el-tab-pane>
               <el-tab-pane label="待发货" name="2">
-                <card-2 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-2>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
-              <el-tab-pane label="部分发货" name="5">
-                <card-5 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-5>
+              <el-tab-pane label="部分发货" name="3">
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
-              <el-tab-pane label="待收货" name="3">
-                <card-3 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-3>
+              <el-tab-pane label="待收货" name="4">
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
-              <el-tab-pane label="已收货" name="4">
-                <card-4 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-4>
+              <el-tab-pane label="已收货" name="5">
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="取消订单" name="6">
-                <card-6 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-6>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="申请售后" name="7">
-                <card-7 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-7>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="正在处理售后" name="8">
-                <card-8 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-8>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="售后结束" name="9">
-                <card-9 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-9>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
             </el-tabs>
           </el-col>
@@ -50,27 +80,22 @@ const _ = require('lodash');
 import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
 const { mapActions: dictData } = createNamespacedHelpers('dictData');
 const { mapActions: shop } = createNamespacedHelpers('shop');
+const { mapActions } = createNamespacedHelpers('orderDetail');
 export default {
   name: 'index',
   props: {},
   components: {
-    card1: () => import('./parts/card-1.vue'),
-    card2: () => import('./parts/card-2.vue'),
-    card3: () => import('./parts/card-3.vue'),
-    card4: () => import('./parts/card-4.vue'),
-    card5: () => import('./parts/card-6.vue'),
-    card6: () => import('./parts/card-5.vue'),
-    card7: () => import('./parts/card-7.vue'),
-    card8: () => import('./parts/card-8.vue'),
-    card9: () => import('./parts/card-9.vue'),
-    detail_order: () => import('./parts/detail/detail_order.vue'),
-    detail_orderDetail: () => import('./parts/detail/detail_orderDetail.vue'),
-    detail_sales_order: () => import('./parts/detail/detail_sales_order.vue'),
-    detail_sales_orderDetail: () => import('./parts/detail/detail_sales_orderDetail.vue'),
+    card1: () => import('@/components/orderParts/card-1.vue'),
+    detail_order: () => import('@/components/orderParts/detail/detail_order.vue'),
+    detail_orderDetail: () => import('@/components/orderParts/detail/detail_orderDetail.vue'),
+    detail_sales_order: () => import('@/components/orderParts/detail/detail_sales_order.vue'),
+    detail_sales_orderDetail: () => import('@/components/orderParts/detail/detail_sales_orderDetail.vue'),
+    search1: () => import('@/components/orderParts/search-1.vue'),
   },
   data: function () {
     const that = this;
     return {
+      loadings: true,
       view: 'list',
       activeName: '2',
       // 类型列表
@@ -80,14 +105,57 @@ export default {
       order_id: '',
       sales_id: '',
       status: '',
+
+      searchForm: {},
+      list: [],
+      total: 0,
+      opera: [
+        { label: '详情', method: 'detail' },
+        { label: '售后', method: 'sales', type: 'danger', display: (i) => i.status == '1' || i.status == '2' || i.status == '2-' || i.status == '3' },
+      ],
+      fields: [
+        { label: '订单号', model: 'no', showTip: false },
+        { label: '下单时间', model: 'buy_time' },
+        { label: '顾客', model: 'customer.name' },
+        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
+        { label: '支付金额', model: 'real_pay' },
+        { label: '商品数量', model: 'buy_num_total' },
+        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
+      ],
     };
   },
   async created() {
     await this.searchOther();
+    await this.search();
   },
   methods: {
     ...dictData({ dictQuery: 'query' }),
     ...shop({ shopQuery: 'query' }),
+    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
+    // 查询
+    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
+      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;
+      }
+      if (this.activeName == '2') info.status = '1';
+      else if (this.activeName == '3') info.status = '2-';
+      else if (this.activeName == '4') info.status = '2';
+      else if (this.activeName == '5') info.status = '3';
+      else if (this.activeName == '6') info.status = '-1';
+      else if (this.activeName == '7') info.status = '-2';
+      else if (this.activeName == '8') info.status = '-3';
+      else if (this.activeName == '9') info.status = '-4';
+      let res = await this.query({ skip, limit, ...condition, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, 'total', res.total);
+      }
+      this.loadings = false;
+    },
+
     // 未付款
     toDetail(val) {
       this.$set(this, `order_id`, val);
@@ -98,18 +166,48 @@ export default {
       this.$set(this, `view`, 'card1_sales');
     },
     // 待发货,待收货,已收货
-    toDetails(val) {
-      this.$set(this, `order_id`, val);
+    toDetails({ data }) {
+      this.$set(this, `order_id`, data._id);
       this.$set(this, `view`, 'card_detail');
     },
-    toSaless(val) {
-      this.$set(this, `sales_id`, val.id);
-      this.$set(this, `status`, val.status);
+    toSaless({ data }) {
+      this.$set(this, `sales_id`, data._id);
+      this.$set(this, `status`, data.status);
       this.$set(this, `view`, 'card_sales');
     },
+    handleClick(tab) {
+      this.loadings = true;
+      this.search();
+    },
     toBack() {
       this.view = 'list';
     },
+    getAddress(i) {
+      let name = i.name + ',' + i.phone;
+      return name;
+    },
+    // 店铺名称
+    getShopName(i) {
+      let shopname = i.map((e) => e.shop_name);
+      return shopname.join(',');
+    },
+    // // 详情
+    // toDetail({ data }) {
+    //   this.$emit('toDetail', data._id);
+    // },
+    // toSales({ data }) {
+    //   this.$emit('toSales', data._id);
+    // },
+    // 重置
+    toClose() {
+      this.searchForm = {};
+      this.search();
+    },
+    // 店铺名称远程查询
+    async querySearch(value) {
+      let res = await this.shopQuery({ name: value });
+      if (this.$checkRes(res)) this.$set(this, 'shopList', res.data);
+    },
     // 查询其他信息
     async searchOther() {
       let res;

+ 0 - 107
src/views/platmanag/order/parts/card-2.vue

@@ -1,107 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-const { mapActions: shop } = createNamespacedHelpers('shop');
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-      shopList: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...shop({ shopQuery: 'query' }),
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '1';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    // 详情
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '1' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-    // 店铺名称远程查询
-    async querySearch(value) {
-      let res = await this.shopQuery({ name: value });
-      if (this.$checkRes(res)) this.$set(this, 'shopList', res.data);
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 126
src/views/platmanag/order/parts/card-3.vue

@@ -1,126 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main" v-loading="loadings" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales" @confirm="toConfirm">
-        </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-const { mapActions: shop } = createNamespacedHelpers('shop');
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      loadings: true,
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-        { label: '确认收货', method: 'confirm', type: 'warning' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-      shopList: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...shop({ shopQuery: 'query' }),
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '2';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-      this.loadings = false;
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toConfirm({ data }) {
-      this.$confirm('是否确认收货', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(async () => {
-        let res;
-        if (data._id) res = await this.update({ _id: data._id, status: '3' });
-        if (this.$checkRes(res)) {
-          this.$message({ type: `success`, message: `确认收货成功` });
-          this.search();
-        }
-      });
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-    // 店铺名称远程查询
-    async querySearch(value) {
-      let res = await this.shopQuery({ name: value });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'shopList', res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 109
src/views/platmanag/order/parts/card-4.vue

@@ -1,109 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-const { mapActions: shop } = createNamespacedHelpers('shop');
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'confirm', type: 'danger' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-      shopList: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...shop({ shopQuery: 'query' }),
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '3';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '3' });
-    },
-
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-    // 店铺名称远程查询
-    async querySearch(value) {
-      let res = await this.shopQuery({ name: value });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'shopList', res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 98
src/views/platmanag/order/parts/card-5.vue

@@ -1,98 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '2-';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/platmanag/order/parts/card-6.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-1';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/platmanag/order/parts/card-7.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-2';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/platmanag/order/parts/card-8.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-3';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/platmanag/order/parts/card-9.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-4';
-      let res = await this.query({ skip, limit, ...condition, ...info });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 124 - 31
src/views/selfShop/order/index.vue

@@ -1,37 +1,68 @@
 <template>
   <div id="index">
     <el-row>
-      <el-col :span="24" class="main animate__animated animate__backInRight">
+      <el-col
+        :span="24"
+        class="main animate__animated animate__backInRight"
+        v-loading="loadings"
+        element-loading-text="拼命加载中"
+        element-loading-spinner="el-icon-loading"
+      >
         <span v-show="view === 'list'">
           <el-col :span="24" class="one"> <span>订单管理</span> </el-col>
           <el-col :span="24" class="four">
-            <el-tabs v-model="activeName" type="border-card">
+            <el-tabs v-model="activeName" @tab-click="handleClick" type="border-card">
               <el-tab-pane label="待付款" name="1">
                 <card-1 :statusList="statusList" @toDetail="toDetail" @toSales="toSales"></card-1>
               </el-tab-pane>
+
               <el-tab-pane label="待发货" name="2">
-                <card-2 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-2>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
-              <el-tab-pane label="部分发货" name="5">
-                <card-5 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-5>
+              <el-tab-pane label="部分发货" name="3">
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
-              <el-tab-pane label="待收货" name="3">
-                <card-3 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-3>
+              <el-tab-pane label="待收货" name="4">
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
-              <el-tab-pane label="已收货" name="4">
-                <card-4 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-4>
+              <el-tab-pane label="已收货" name="5">
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="取消订单" name="6">
-                <card-6 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-6>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="申请售后" name="7">
-                <card-7 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-7>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="正在处理售后" name="8">
-                <card-8 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-8>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
               <el-tab-pane label="售后结束" name="9">
-                <card-9 :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></card-9>
+                <el-col :span="24" class="one">
+                  <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+                </el-col>
+                <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetails" @sales="toSaless"> </data-table>
               </el-tab-pane>
             </el-tabs>
           </el-col>
@@ -50,27 +81,22 @@ const _ = require('lodash');
 import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
 const { mapActions: dictData } = createNamespacedHelpers('dictData');
 const { mapActions: shop } = createNamespacedHelpers('shop');
+const { mapActions } = createNamespacedHelpers('orderDetail');
 export default {
   name: 'index',
   props: {},
   components: {
-    card1: () => import('./parts/card-1.vue'),
-    card2: () => import('./parts/card-2.vue'),
-    card3: () => import('./parts/card-3.vue'),
-    card4: () => import('./parts/card-4.vue'),
-    card5: () => import('./parts/card-5.vue'),
-    card6: () => import('./parts/card-5.vue'),
-    card7: () => import('./parts/card-7.vue'),
-    card8: () => import('./parts/card-8.vue'),
-    card9: () => import('./parts/card-9.vue'),
-    detail_order: () => import('./parts/detail/detail_order.vue'),
-    detail_orderDetail: () => import('./parts/detail/detail_orderDetail.vue'),
-    detail_sales_order: () => import('./parts/detail/detail_sales_order.vue'),
-    detail_sales_orderDetail: () => import('./parts/detail/detail_sales_orderDetail.vue'),
+    card1: () => import('@/components/orderParts/card-2.vue'),
+    detail_order: () => import('@/components/orderParts/detail/detail_order.vue'),
+    detail_orderDetail: () => import('@/components/orderParts/detail/detail_orderDetail.vue'),
+    detail_sales_order: () => import('@/components/orderParts/detail/detail_sales_order.vue'),
+    detail_sales_orderDetail: () => import('@/components/orderParts/detail/detail_sales_orderDetail.vue'),
+    search1: () => import('@/components/orderParts/search-2.vue'),
   },
   data: function () {
     const that = this;
     return {
+      loadings: true,
       view: 'list',
       activeName: '2',
       // 类型列表
@@ -80,14 +106,58 @@ export default {
       order_id: '',
       sales_id: '',
       status: '',
+
+      searchForm: {},
+      list: [],
+      total: 0,
+      opera: [
+        { label: '详情', method: 'detail' },
+        { label: '售后', method: 'sales', type: 'danger', display: (i) => i.status == '1' || i.status == '2' || i.status == '2-' || i.status == '3' },
+      ],
+      fields: [
+        { label: '订单号', model: 'no', showTip: false },
+        { label: '下单时间', model: 'buy_time' },
+        { label: '顾客', model: 'customer.name' },
+        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
+        { label: '支付金额', model: 'real_pay' },
+        { label: '商品数量', model: 'buy_num_total' },
+        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
+      ],
     };
   },
   async created() {
     await this.searchOther();
+    await this.search();
   },
   methods: {
     ...dictData({ dictQuery: 'query' }),
     ...shop({ shopQuery: 'query' }),
+    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
+    // 查询
+    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
+      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;
+      }
+      if (this.activeName == '2') info.status = '1';
+      else if (this.activeName == '3') info.status = '2-';
+      else if (this.activeName == '4') info.status = '2';
+      else if (this.activeName == '5') info.status = '3';
+      else if (this.activeName == '6') info.status = '-1';
+      else if (this.activeName == '7') info.status = '-2';
+      else if (this.activeName == '8') info.status = '-3';
+      else if (this.activeName == '9') info.status = '-4';
+      info.shop = this.user.shop.id;
+      let res = await this.query({ skip, limit, ...condition, ...info });
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, 'total', res.total);
+      }
+      this.loadings = false;
+    },
+
     // 未付款
     toDetail(val) {
       this.$set(this, `order_id`, val);
@@ -98,18 +168,41 @@ export default {
       this.$set(this, `view`, 'card1_sales');
     },
     // 待发货,待收货,已收货
-    toDetails(val) {
-      this.$set(this, `order_id`, val);
+    toDetails({ data }) {
+      this.$set(this, `order_id`, data._id);
       this.$set(this, `view`, 'card_detail');
     },
-    toSaless(val) {
-      this.$set(this, `sales_id`, val.id);
-      this.$set(this, `status`, val.status);
+    toSaless({ data }) {
+      this.$set(this, `sales_id`, data._id);
+      this.$set(this, `status`, data.status);
       this.$set(this, `view`, 'card_sales');
     },
+    handleClick(tab) {
+      this.loadings = true;
+      this.search();
+    },
     toBack() {
       this.view = 'list';
     },
+    getAddress(i) {
+      let name = i.name + ',' + i.phone;
+      return name;
+    },
+    // 店铺名称
+    getShopName(i) {
+      let shopname = i.map((e) => e.shop_name);
+      return shopname.join(',');
+    },
+    // 重置
+    toClose() {
+      this.searchForm = {};
+      this.search();
+    },
+    // 店铺名称远程查询
+    async querySearch(value) {
+      let res = await this.shopQuery({ name: value });
+      if (this.$checkRes(res)) this.$set(this, 'shopList', res.data);
+    },
     // 查询其他信息
     async searchOther() {
       let res;

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

@@ -1,66 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <detail-1 v-if="num == '1'" @toDeliver="toDeliver" :statusList="statusList" @toDetails="toDetails" @toSaless="toSaless"></detail-1>
-        <detail-2 v-else-if="num == '2'" :deliverList="list" @toBack="toBack"></detail-2>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { detail1: () => import('./parts/detail-1.vue'), detail2: () => import('./parts/detail-2.vue') },
-  data: function () {
-    return {
-      num: '1',
-      list: [],
-    };
-  },
-  async created() {},
-  methods: {
-    // 生成发货清单
-    toDeliver({ data }) {
-      if (data.length == '0') {
-        this.$message('请选择订单');
-      } else {
-        this.$set(this, 'list', data);
-        this.$set(this, 'num', '2');
-      }
-    },
-    toBack() {
-      this.$set(this, 'num', '1');
-    },
-    toDetails(val) {
-      this.$emit('toDetails', val);
-    },
-    toSaless(val) {
-      this.$emit('toSaless', { id: val.id, status: val.status });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

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

@@ -1,126 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main" v-loading="loadings" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales" @confirm="toConfirm">
-        </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-const { mapActions: shop } = createNamespacedHelpers('shop');
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      loadings: true,
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-        { label: '确认收货', method: 'confirm', type: 'warning' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-      shopList: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...shop({ shopQuery: 'query' }),
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '2';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-      this.loadings = false;
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toConfirm({ data }) {
-      this.$confirm('是否确认收货', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(async () => {
-        let res;
-        if (data._id) res = await this.update({ _id: data._id, status: '3' });
-        if (this.$checkRes(res)) {
-          this.$message({ type: `success`, message: `确认收货成功` });
-          this.search();
-        }
-      });
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-    // 店铺名称远程查询
-    async querySearch(value) {
-      let res = await this.shopQuery({ name: value });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'shopList', res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

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

@@ -1,100 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main" v-loading="loadings" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      loadings: true,
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '3';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-      this.loadings = false;
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '3' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 100
src/views/selfShop/order/parts/card-5.vue

@@ -1,100 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main" v-loading="loadings" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      loadings: true,
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '2-';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-      this.loadings = false;
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/selfShop/order/parts/card-6.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-1';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/selfShop/order/parts/card-7.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-2';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/selfShop/order/parts/card-8.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-3';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 95
src/views/selfShop/order/parts/card-9.vue

@@ -1,95 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="24" class="one">
-          <search-1 :form="searchForm" @onSubmit="search" @toReset="toClose"></search-1>
-        </el-col>
-        <data-table :fields="fields" :opera="opera" @query="search" :data="list" :total="total" @detail="toDetail" @sales="toSales"> </data-table>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('./search-1.vue') },
-  data: function () {
-    return {
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [{ label: '详情', method: 'detail' }],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '-4';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '2-' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-}
-</style>

+ 0 - 232
src/views/selfShop/order/parts/detail/detail_order.vue

@@ -1,232 +0,0 @@
-<template>
-  <div id="form-1">
-    <el-row>
-      <el-col
-        :span="24"
-        class="main animate__animated animate__backInRight"
-        v-loading="loadings"
-        element-loading-text="拼命加载中"
-        element-loading-spinner="el-icon-loading"
-      >
-        <el-col class="top-btn">
-          <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
-        </el-col>
-        <el-col :span="12" class="one">
-          <el-col :span="24" class="add">
-            <el-col :span="2">
-              <i class="el-icon-location"></i>
-            </el-col>
-            <el-col :span="22">
-              <p>{{ address.name }},{{ address.phone }}</p>
-              <p>{{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" v-for="(item, index) in list" :key="index">
-            <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ item.shop_name }}</el-col>
-            <el-col :span="24" v-for="(goods, index) in item.goods" :key="index">
-              <el-col :span="24" class="goods bode">
-                <el-col :span="6"><el-image :src="goods.goods.file[0].url"></el-image></el-col>
-                <el-col :span="18">
-                  <el-col :span="12">
-                    <p>{{ goods.goods.name }}</p>
-                    <p>规格:{{ goods.name }}</p>
-                  </el-col>
-                  <el-col :span="12" class="money">
-                    <el-col :span="24" style="color: red; font-size: 20px">
-                      <p v-if="info.type == '0' && goods.price">¥{{ goods.price }}</p>
-                      <p v-else-if="info.type == '0' && !goods.price">¥{{ goods.sell_money }}</p>
-                      <p v-else-if="info.type == '1'">¥{{ goods.group_config.money }}</p>
-                    </el-col>
-                    <p>X{{ goods.buy_num }}</p>
-                    <el-col>
-                      <span class="spanfour" style="color: blue" @click="toUrl(goods.goods.url)"> 查看商品来源:{{ goods.goods.source }}</span>
-                    </el-col>
-                  </el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24" class="bode">
-                <el-col :span="6">运费</el-col>
-                <el-col :span="18" class="other" v-if="!goods.freight == '0'">{{ goods.freight }}</el-col>
-                <el-col :span="18" class="other" v-else>包邮</el-col>
-              </el-col>
-              <el-col :span="24" class="bode" v-if="goods.act">
-                <el-col :span="24">平台活动优惠</el-col>
-                <el-col :span="24" v-for="(act, index) in goods.act" :key="index">
-                  <el-col :span="8">
-                    {{
-                      act.platform_act_type == '0'
-                        ? '优惠商品合集'
-                        : act.platform_act_type == '1'
-                        ? '按单返现'
-                        : act.platform_act_type == '2'
-                        ? '买赠'
-                        : act.platform_act_type == '3'
-                        ? '特价'
-                        : act.platform_act_type == '4'
-                        ? ''
-                        : act.platform_act_type == '5'
-                        ? '满减'
-                        : act.platform_act_type == '6'
-                        ? '满减折扣'
-                        : '套装促销'
-                    }}
-                  </el-col>
-                  <el-col :span="16" class="other" v-if="act.platform_act_type == '4'">加价购 </el-col>
-                  <el-col :span="16" class="other" v-if="act.platform_act_type == '3'">
-                    <p>{{ act.sp_price }} 元</p>
-                  </el-col>
-                  <el-col :span="16" class="other" v-if="act.platform_act_type == '5' || act.platform_act_type == '6'">
-                    <p>{{ act.discount }} 元</p>
-                  </el-col>
-                  <el-col :span="24" class="other" v-if="act.platform_act_type == '2'">
-                    <el-table :data="act.gift" border style="width: 100%">
-                      <el-table-column prop="goods_name" label="商品" width="180"> </el-table-column>
-                      <el-table-column prop="spec_name" label="规格" width="180"> </el-table-column>
-                      <el-table-column prop="num" label="数量"> </el-table-column>
-                      <el-table-column prop="desc" label="备注"> </el-table-column>
-                    </el-table>
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="bode">
-              <el-col :span="6">订单备注</el-col>
-              <el-col :span="18" class="other">{{ item.remarks || '' }}</el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total bode">
-            <el-col :span="24" v-for="(item, index) in total_detail" :key="index">
-              <el-col :span="8">{{ item.zh }}</el-col>
-              <el-col :span="16" class="other">
-                <p>¥{{ item.money }}</p>
-              </el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total bode">
-            <el-col :span="8">优惠后应付金额</el-col>
-            <el-col :span="16" class="other">
-              <p>¥{{ pay.pay_money }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">下单时间</el-col>
-            <el-col :span="18" class="other">{{ info.buy_time }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">支付时间</el-col>
-            <el-col :span="18" class="other">{{ info.pay_time || '未支付' }}</el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-const moment = require('moment');
-import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('order');
-export default {
-  name: 'form-1',
-  props: { id: { type: String } },
-  components: {},
-  data: function () {
-    return {
-      info: {},
-      address: {},
-      list: [],
-      total_detail: [],
-      typeList: [],
-      statusList: [],
-      pay: {},
-      loadings: true,
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update']),
-    // 查询
-    async search() {
-      let res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `info`, res.data);
-        // 地址
-        this.$set(this, `address`, res.data.address);
-        // 商品
-        this.$set(this, `list`, res.data.goods);
-        // 实付金额
-        this.$set(this, `total_detail`, res.data.total_detail);
-        this.$set(this, `pay`, res.data.pay);
-      }
-      this.loadings = false;
-    },
-    toUrl(url) {
-      if (url) {
-        window.open(url, '_blank');
-      } else {
-        this.$message.error('该商品还未添加来源网址,无法跳转');
-      }
-    },
-    // 返回
-    toBack() {
-      this.$emit('toBack');
-    },
-  },
-  computed: {},
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .one {
-    margin: 10px 0 0 20%;
-    padding: 5px;
-    .add {
-      border-bottom: 2px dashed #ccc;
-      margin: 0 0 5px 0;
-      padding: 5px 0;
-    }
-    .shop {
-      padding: 4px 0;
-      font-size: 18px;
-      border-bottom: 1px solid #ccc;
-    }
-    .goods {
-      padding: 10px 0;
-      .money {
-        text-align: right;
-      }
-    }
-    .other {
-      text-align: right;
-      word-break: break-all;
-      p {
-        color: red;
-        font-size: 20px;
-      }
-      .spanfour {
-        color: blue;
-      }
-    }
-    .el-col {
-      margin: 4px 0;
-    }
-  }
-  .bode {
-    border-bottom: 1px solid rgb(238, 237, 237);
-  }
-}
-</style>

+ 0 - 165
src/views/selfShop/order/parts/detail/detail_orderDetail.vue

@@ -1,165 +0,0 @@
-<template>
-  <div id="form-1">
-    <el-row>
-      <el-col :span="24" class="top-btn">
-        <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
-      </el-col>
-      <el-col
-        :span="24"
-        class="main animate__animated animate__backInRight"
-        v-loading="loadings"
-        element-loading-text="拼命加载中"
-        element-loading-spinner="el-icon-loading"
-      >
-        <el-tabs type="border-card">
-          <el-tab-pane label="订单详情">
-            <card-1 :address="address" :list="list" :pay="pay" :form="form" :total_detail="total_detail" :shop="shop"></card-1>
-          </el-tab-pane>
-          <el-tab-pane label="发货信息">
-            <card-2
-              :transport="transport"
-              :list="list"
-              :address="address"
-              :form="form"
-              :activities="activities"
-              :shop_transport_typeList="shop_transport_typeList"
-              :transport_typeList="transport_typeList"
-              @querySearch="querySearch"
-              @search="search"
-            ></card-2>
-          </el-tab-pane>
-        </el-tabs>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-const moment = require('moment');
-import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-const { mapActions: dictData } = createNamespacedHelpers('dictData');
-const { mapActions: sot } = createNamespacedHelpers('sot');
-
-export default {
-  name: 'form-1',
-  props: { id: { type: String } },
-  components: {
-    card1: () => import('./parts/card-1.vue'),
-    card2: () => import('./parts/card-2.vue'),
-  },
-  data: function () {
-    return {
-      loadings: true,
-      form: {},
-      // 地址
-      address: {},
-      // 实付金额
-      total_detail: [],
-      // 商铺
-      shop: {},
-      // 运单号
-      transport: [],
-      pay: {},
-      // 商品列表
-      list: [],
-      activities: [],
-      // 订单状态
-      order_processList: [],
-      // 快递公司
-      shop_transport_typeList: [],
-      // 快递类型
-      transport_typeList: [],
-    };
-  },
-  async created() {
-    await this.searchOther();
-    await this.search();
-  },
-  methods: {
-    ...dictData({ dictQuery: 'query' }),
-    ...sot({ sotCreate: 'create' }),
-    ...mapActions(['query', 'fetch', 'create', 'update']),
-    // 查询
-    async search() {
-      let res;
-      res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        let name = this.transport_typeList.find((i) => i.value == res.data.transport_type);
-        if (name) res.data.transport_type_name = name.label;
-        if (res.data.transport_type == undefined) res.data.transport_type = '0';
-        this.$set(this, `form`, res.data);
-        // 地址
-        this.$set(this, `address`, res.data.address);
-        this.$set(this, `shop`, res.data.shop);
-        // 商品
-        this.$set(this, `list`, res.data.goods);
-        // 应付金额
-        this.$set(this, `total_detail`, res.data.total_detail);
-        this.$set(this, `pay`, res.data.order.pay);
-        if (res.data.transport != undefined || res.data.transport.length > 0) {
-          for (const p1 of res.data.transport) {
-            if (p1.goods) {
-              for (const p2 of p1.goods) {
-                let goods = this.form.goods.find((i) => i.id == p2.goods_id);
-                if (goods) p2.goods_name = goods.goods.name + ',' + goods.name;
-              }
-            }
-            let arr = await this.dictQuery({ code: 'transport_company', value: p1.shop_transport_type });
-            if (this.$checkRes(arr)) {
-              let type = arr.data.find((i) => i.value == p1.shop_transport_type);
-              if (type) {
-                p1.shop_transport_name = type.label;
-                this.querySearch(type.label);
-              }
-            }
-          }
-          this.$set(this, `transport`, res.data.transport);
-          let info = { id: this.id };
-          res = await this.sotCreate(info);
-          if (this.$checkRes(res)) {
-            if (res.errcode == '0') this.$set(this, `activities`, res.data);
-          }
-        }
-      }
-      this.loadings = false;
-    },
-    async querySearch(value) {
-      let res = await this.dictQuery({ code: 'transport_company', label: value });
-      if (this.$checkRes(res)) this.$set(this, 'shop_transport_typeList', res.data);
-    },
-    // 返回
-    toBack() {
-      this.$emit('toBack');
-    },
-    // 查询其他信息
-    async searchOther() {
-      let res;
-      // 减免方式
-      res = await this.dictQuery({ code: 'order_process' });
-      if (this.$checkRes(res)) this.$set(this, `order_processList`, res.data);
-      // 快递类型
-      res = await this.dictQuery({ code: 'transport_type' });
-      if (this.$checkRes(res)) this.$set(this, `transport_typeList`, res.data);
-    },
-  },
-  computed: {},
-  metaform() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.top-btn {
-  margin: 20px 0;
-}
-</style>

+ 0 - 210
src/views/selfShop/order/parts/detail/detail_sales_order.vue

@@ -1,210 +0,0 @@
-<template>
-  <div id="form-1">
-    <el-row>
-      <el-col
-        :span="24"
-        class="main animate__animated animate__backInRight"
-        v-loading="loadings"
-        element-loading-text="拼命加载中"
-        element-loading-spinner="el-icon-loading"
-      >
-        <el-col class="top-btn">
-          <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
-        </el-col>
-        <el-col :span="8" class="one">
-          <el-col :span="24" class="add">
-            <el-col :span="2">
-              <i class="el-icon-location"></i>
-            </el-col>
-            <el-col :span="22">
-              <p>{{ address.name }},{{ address.phone }}</p>
-              <p>{{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" v-for="(item, index) in list" :key="index">
-            <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ item.shop_name }}</el-col>
-            <el-col :span="24" v-for="(goods, index) in item.goods" :key="index">
-              <el-col :span="24" class="goods">
-                <el-col :span="6"><el-image :src="goods.goods.file[0].url"></el-image></el-col>
-                <el-col :span="18">
-                  <el-col :span="12">
-                    <p>{{ goods.goods.name }}</p>
-                    <p>规格:{{ goods.name }}</p>
-                  </el-col>
-                  <el-col :span="12" class="money">
-                    <p v-if="info.type == '0'">¥{{ goods.sell_money }}</p>
-                    <p v-else-if="info.type == '1'">¥{{ goods.group_config.money }}</p>
-                    <p>X{{ goods.buy_num }}</p>
-                    <el-col>
-                      <span class="spanfour" style="color: blue" @click="toUrl(goods.goods.url)"> 查看商品来源:{{ goods.goods.source }}</span>
-                    </el-col>
-                    <el-button type="danger" @click="toSales()"> 取消订单 </el-button>
-                  </el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24">
-                <el-col :span="6">运费</el-col>
-                <el-col :span="18" class="other" v-if="!goods.freight == '0'">{{ goods.freight }}</el-col>
-                <el-col :span="18" class="other" v-else>包邮</el-col>
-              </el-col>
-              <el-col :span="24">
-                <el-col :span="6">订单备注</el-col>
-                <el-col :span="18" class="other" v-if="item.remarks">{{ item.remarks }}</el-col>
-                <el-col :span="18" class="other" v-else>暂无备注</el-col>
-              </el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24">
-            <el-col :span="6">配送方式</el-col>
-            <el-col :span="18" class="other">快递配送</el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total">
-            <el-col :span="6">商品金额</el-col>
-            <el-col :span="18" class="other">
-              <p>¥{{ total_detail.goods_total }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total">
-            <el-col :span="6">快递费</el-col>
-            <el-col :span="18" class="other">
-              <p>¥{{ total_detail.freight_total }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total">
-            <el-col :span="8">优惠后应付金额</el-col>
-            <el-col :span="16" class="other">
-              <p>¥{{ pay.pay_money }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24">
-            <el-col :span="6">下单时间</el-col>
-            <el-col :span="18" class="other">{{ info.buy_time }}</el-col>
-          </el-col>
-          <el-col :span="24">
-            <el-col :span="6">支付时间</el-col>
-            <el-col :span="18" class="other">{{ info.pay_time || '未支付' }}</el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-const moment = require('moment');
-import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('order');
-export default {
-  name: 'form-1',
-  props: { id: { type: String } },
-  components: {},
-  data: function () {
-    return {
-      info: {},
-      address: {},
-      list: [],
-      total_detail: {},
-      typeList: [],
-      statusList: [],
-      pay: {},
-      loadings: true,
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'cancel', 'update']),
-    // 查询
-    async search() {
-      let res = await this.fetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `info`, res.data);
-        // 地址
-        this.$set(this, `address`, res.data.address);
-        // 商品
-        this.$set(this, `list`, res.data.goods);
-        // 实付金额
-        this.$set(this, `total_detail`, res.data.total_detail);
-        this.$set(this, `pay`, res.data.pay);
-      }
-      this.loadings = false;
-    },
-    toUrl(url) {
-      if (url) {
-        window.open(url, '_blank');
-      } else {
-        this.$message.error('该商品还未添加来源网址,无法跳转');
-      }
-    },
-    async toSales() {
-      this.$confirm('是否确认申请售后', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(async () => {
-        let info = { order_id: this.id };
-        let res = await this.cancel(info);
-        if (this.$checkRes(res)) {
-          this.$message({ type: `success`, message: `取消订单成功` });
-          this.toBack();
-        }
-      });
-    },
-    // 返回
-    toBack() {
-      this.$emit('toBack');
-    },
-  },
-  computed: {},
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .one {
-    margin: 10px 0 0 20%;
-    padding: 5px;
-    .add {
-      border-bottom: 2px dashed #ccc;
-      margin: 0 0 5px 0;
-      padding: 5px 0;
-    }
-    .shop {
-      padding: 4px 0;
-      font-size: 18px;
-      border-bottom: 1px solid #ccc;
-    }
-    .goods {
-      padding: 10px 0;
-      .money {
-        text-align: right;
-      }
-    }
-    .other {
-      text-align: right;
-      word-break: break-all;
-      p {
-        color: red;
-      }
-      .spanfour {
-        color: blue;
-      }
-    }
-    .el-col {
-      margin: 4px 0;
-    }
-  }
-}
-</style>

+ 0 - 417
src/views/selfShop/order/parts/detail/detail_sales_orderDetail.vue

@@ -1,417 +0,0 @@
-<template>
-  <div id="form-1">
-    <el-row>
-      <el-col
-        :span="24"
-        class="main animate__animated animate__backInRight"
-        v-loading="loadings"
-        element-loading-text="拼命加载中"
-        element-loading-spinner="el-icon-loading"
-      >
-        <el-col class="top-btn">
-          <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
-        </el-col>
-        <el-col :span="9" class="one">
-          <el-col :span="24" class="add">
-            <el-col :span="2">
-              <i class="el-icon-location"></i>
-            </el-col>
-            <el-col :span="22">
-              <el-col>
-                <p>{{ address.name }},{{ address.phone }}</p>
-              </el-col>
-              <el-col>
-                <p>{{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }}</p>
-              </el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
-          <el-col :span="24" v-for="(item, index) in list" :key="index">
-            <el-col :span="24" class="goods bode">
-              <el-col :span="6"><el-image :src="item.goods.file[0].url"></el-image></el-col>
-              <el-col :span="18">
-                <el-col :span="12">
-                  <el-col>
-                    <p>{{ item.goods.name }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>规格:{{ item.name }}</p>
-                  </el-col>
-                </el-col>
-                <el-col :span="12" class="money">
-                  <el-col>
-                    <p v-if="info.type == '0'">¥{{ item.sell_money }}</p>
-                    <p v-else-if="info.type == '1'">¥{{ item.group_config.money }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>X{{ item.buy_num }}</p>
-                  </el-col>
-                  <el-col>
-                    <span class="spanfour" style="color: blue" @click="toUrl(item.goods.url)"> 查看商品来源:{{ item.goods.source }}</span>
-                  </el-col>
-                  <el-col>
-                    <p>{{ item.is_afterSale == true ? '已申请售后' : '未申请售后' }}</p>
-                  </el-col>
-                  <el-col>
-                    <p>{{ item.is_rate == true ? '已评价' : '未评价' }}</p>
-                  </el-col>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="bode">
-              <el-col :span="6">运费</el-col>
-              <el-col :span="18" class="other" v-if="!item.goods.freight == '0'">{{ item.goods.freight }}</el-col>
-              <el-col :span="18" class="other" v-else>包邮</el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">订单备注</el-col>
-            <el-col :span="18" class="other" v-if="info.remarks">{{ info.remarks }}</el-col>
-            <el-col :span="18" class="other" v-else>暂无备注</el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">配送方式</el-col>
-            <el-col :span="18" class="other">快递配送</el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total bode">
-            <el-col :span="6">快递费</el-col>
-            <el-col :span="18" class="other">
-              <p>¥{{ total_detail.freight_total }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total bode">
-            <el-col :span="8">优惠后实付金额</el-col>
-            <el-col :span="16" class="other">
-              <p>¥{{ pay.pay_money }}</p>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">下单时间</el-col>
-            <el-col :span="18" class="other">{{ info.buy_time }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">支付时间</el-col>
-            <el-col :span="18" class="other">{{ info.pay_time }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode" v-if="info.status == '3'">
-            <el-col :span="6">寄出运单号</el-col>
-            <el-col :span="18" class="other">{{ transport.shop_transport_no || '暂无单号' }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode" v-if="info.status == '3'">
-            <el-col :span="6">寄出快递公司</el-col>
-            <el-col :span="18" class="other">{{ transport.shop_transport_name || '暂无快递信息' }}</el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="9" class="one">
-          <el-button type="danger" @click="toSales('1')" v-if="this.status == '1'"> 取消订单 </el-button>
-          <el-button type="danger" @click="toSales('2')" v-if="this.status == '2' || this.status == '2-'"> 拒收 </el-button>
-          <el-col v-if="this.status == '3'">
-            <el-form :model="form" :rules="rules" ref="form" label-width="180px">
-              <el-col :span="24">
-                <el-form-item label="售后商品" prop="goods">
-                  <el-select v-model="form.goods" clearable filterable placeholder="请选择售后商品" size="small" style="width: 100%" @change="goodsChange">
-                    <el-option v-for="i in list" :key="i.goods.name" :label="i.goods.name" :value="i.id"> </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="售后类型" prop="type">
-                  <el-select v-model="form.type" clearable filterable placeholder="请选择售后类型" size="small" style="width: 100%" @change="typeChange">
-                    <el-option v-for="i in typeList" :key="i.value" :label="i.label" :value="i.value"> </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24" v-if="this.form.type == '1' || this.form.type == '2'">
-                <el-form-item label="退款金额" prop="money">
-                  <el-input v-model="form.money" placeholder="请输入退款金额" size="small" type="Number" @input="toMoney"></el-input>
-                  <p>
-                    退款金额不得超过<span style="color: red">{{ payMoney.payTotal || '' }}</span
-                    >元
-                    <span @click="allMoney" style="color: blue; margin: 0 0 0 10px">全部退款</span>
-                  </p>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="申请理由" prop="reason">
-                  <el-select v-model="form.reason" clearable filterable placeholder="请选择申请理由" size="small" style="width: 100%">
-                    <el-option v-for="i in reasonList" :key="i.value" :label="i.label" :value="i.value"> </el-option>
-                  </el-select>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="售后描述" prop="desc">
-                  <el-input v-model="form.desc" placeholder="请输入售后描述" size="small" type="textarea"></el-input>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24">
-                <el-form-item label="附件" prop="file">
-                  <c-upload :url="url" v-model="form.file" :limit="6"></c-upload>
-                </el-form-item>
-              </el-col>
-              <el-col :span="24" class="btn">
-                <el-button type="primary" size="mini" @click="onSubmit('form')">提交</el-button>
-                <el-button type="danger" size="mini" @click="toBack()">取消</el-button>
-              </el-col>
-            </el-form>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-const moment = require('moment');
-
-import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
-const { mapActions: orderDetail } = createNamespacedHelpers('orderDetail');
-const { mapActions } = createNamespacedHelpers('afterSale');
-const { mapActions: dictData } = createNamespacedHelpers('dictData');
-const { mapActions: sot } = createNamespacedHelpers('sot');
-
-export default {
-  name: 'form-1',
-  props: { id: { type: String }, status: { type: String } },
-  components: { cUpload: () => import('@/components/usual/c-upload.vue') },
-  data: function () {
-    return {
-      info: {},
-      // 地址
-      address: {},
-      // 实付金额
-      total_detail: {},
-      // 商铺
-      shop: {},
-      // 运单号
-      transport: {},
-      pay: {},
-      // 商品列表
-      list: [],
-      // 物流
-      reverse: false,
-      activities: [],
-      activit: {},
-      // 订单状态
-      order_processList: [],
-      // 快递公司
-      shop_transport_typeList: [],
-      loading: false,
-      rules: {
-        goods: [{ required: true, message: '请选择商品', trigger: 'change' }],
-        type: [{ required: true, message: '请选择售后类型', trigger: 'change' }],
-        money: [{ required: true, message: '请输入金额', trigger: 'blur' }],
-      },
-      // 售后表单
-      form: {},
-      // 售后类型
-      typeList: [],
-      // 售后申请理由
-      reasonList: [],
-      // 退款金额
-      payMoney: {},
-      url: '/files/point/afterSale/upload',
-      loadings: true,
-    };
-  },
-  async created() {
-    await this.searchOther();
-    await this.search();
-  },
-  methods: {
-    ...dictData({ dictQuery: 'query' }),
-    ...orderDetail({ orderFetch: 'fetch' }),
-    ...sot({ sotFetch: 'fetch' }),
-    ...mapActions(['query', 'cgfr', 'fetch', 'create', 'update']),
-    // 查询
-    async search() {
-      let res;
-      res = await this.orderFetch(this.id);
-      if (this.$checkRes(res)) {
-        this.$set(this, `info`, res.data);
-        // 地址
-        this.$set(this, `address`, res.data.address);
-        this.$set(this, `shop`, res.data.shop);
-        // 商品
-        this.$set(this, `list`, res.data.goods);
-        // 应付金额
-        this.$set(this, `total_detail`, res.data.total_detail);
-        this.$set(this, `pay`, res.data.order.pay);
-      }
-      this.loadings = false;
-    },
-    toUrl(url) {
-      if (url) {
-        window.open(url, '_blank');
-      } else {
-        this.$message.error('该商品还未添加来源网址,无法跳转');
-      }
-    },
-    handleSelect(value) {},
-    async toSales(status) {
-      if (status == '1') {
-        var info = { order_detail: this.id, type: '4' };
-      } else if (status == '2') {
-        var info = { order_detail: this.id, type: '5' };
-      }
-      this.$confirm('是否确认申请售后', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(async () => {
-        let res = await this.create(info);
-        if (this.$checkRes(res)) {
-          this.$message({ type: `success`, message: `申请售后成功` });
-          this.search();
-        }
-      });
-    },
-    // 选择商品
-    goodsChange(value) {
-      this.$set(this.form, `goods`, value);
-      this.typeChange(this.form.type || '');
-    },
-    // 选择类型
-    async typeChange(value) {
-      this.$set(this.form, `type`, value);
-      if (value != '3') {
-        let info = {
-          order_detail: this.id,
-          goods_id: this.form.goods,
-        };
-        let res = await this.cgfr(info);
-        if (this.$checkRes(res)) {
-          this.$set(this, `payMoney`, res.data);
-          this.allMoney();
-        }
-      }
-    },
-    // 全部退款
-    allMoney() {
-      this.$set(this.form, `money`, this.payMoney.payTotal);
-    },
-    // 输入金额
-    toMoney(val) {
-      if (val > this.payMoney.payTotal) {
-        this.$message.error('超过退款最大金额');
-        this.$set(this.form, `money`, '');
-      }
-    },
-    // 提交
-    async onSubmit(formName, val) {
-      this.$refs[formName].validate(async (valid) => {
-        if (valid) {
-          this.$confirm('是否确认保存', '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning',
-          }).then(async () => {
-            let form = this.form;
-            form.order_detail = this.id;
-
-            let res = await this.create(form);
-            if (this.$checkRes(res)) {
-              this.$message({ type: `success`, message: `申请售后成功` });
-              this.search();
-            }
-          });
-        } else {
-          console.log('error submit!!');
-          return false;
-        }
-      });
-    },
-    // 返回
-    toBack() {
-      this.$emit('toBack');
-    },
-    // 查询其他信息
-    async searchOther() {
-      let res;
-      // 减免方式
-      res = await this.dictQuery({ code: 'order_process' });
-      if (this.$checkRes(res)) {
-        this.$set(this, `order_processList`, res.data);
-      }
-      // 售后类型
-      res = await this.dictQuery({ code: 'afterSale_type' });
-      if (this.$checkRes(res)) {
-        let type = res.data.filter((i) => i.value != '4' && i.value != '5');
-        this.$set(this, `typeList`, type);
-      }
-      // 售后申请理由
-      res = await this.dictQuery({ code: 'afterSale_reason' });
-      if (this.$checkRes(res)) {
-        let type = res.data.filter((i) => i.value != '4' && i.value != '5');
-        this.$set(this, `reasonList`, res.data);
-      }
-    },
-  },
-  computed: {},
-  metaform() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .one {
-    margin: 10px 0 0 5%;
-    padding: 5px;
-    .add {
-      border-bottom: 2px dashed #ccc;
-      margin: 0 0 5px 0;
-      padding: 5px 0;
-    }
-    .shop {
-      padding: 4px 0;
-      font-size: 18px;
-      border-bottom: 1px solid #ccc;
-    }
-    .goods {
-      padding: 10px 0;
-      .money {
-        text-align: right;
-      }
-    }
-    .other {
-      text-align: right;
-      word-break: break-all;
-      p {
-        color: red;
-      }
-      .spanfour {
-        color: blue;
-      }
-    }
-    .el-col {
-      margin: 3px 0;
-    }
-    .bode {
-      border-bottom: 1px solid rgb(238, 237, 237);
-    }
-    .form {
-      margin: 20px 0 0 0;
-    }
-  }
-}
-.btn {
-  text-align: center;
-}
-
-/deep/.el-timeline {
-  margin: 20px 0 0 0;
-  font-size: 16px;
-}
-/deep/.el-timeline-item__node:nth-child(1) {
-  background-color: green;
-}
-</style>

+ 0 - 221
src/views/selfShop/order/parts/detail/parts/card-1.vue

@@ -1,221 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="12" class="main_one">
-          <el-col :span="24" class="add">
-            <el-col :span="2">
-              <i class="el-icon-location"></i>
-            </el-col>
-            <el-col :span="22">
-              <el-col :span="24"> {{ address.name }},{{ address.phone }} </el-col>
-              <el-col :span="24"> {{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }} </el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
-          <el-col :span="24" v-for="(item, index) in list" :key="index">
-            <el-col :span="24" class="goods bode">
-              <el-col :span="6" v-if="item.goods.file"><el-image :src="item.goods.file[0].url"></el-image></el-col>
-              <el-col :span="6" v-if="item.url"><el-image :src="item.url"></el-image></el-col>
-              <el-col :span="18">
-                <el-col :span="12">
-                  <el-col :span="24"> {{ item.goods.name }} </el-col>
-                  <el-col :span="24"> 规格:{{ item.name }} </el-col>
-                </el-col>
-                <el-col :span="12" class="money">
-                  <el-col :span="24" style="color: red; font-size: 20px">
-                    <p v-if="form.type == '0' && item.price">¥{{ item.price }}</p>
-                    <p v-else-if="form.type == '0' && !item.price">¥{{ item.sell_money }}</p>
-                    <p v-else-if="form.type == '1'">¥{{ item.group_config.money }}</p>
-                  </el-col>
-                  <el-col :span="24"> X{{ item.buy_num }} </el-col>
-                  <el-col :span="24">
-                    <span class="spanfour" style="color: blue" @click="toUrl(item.goods.url)"> 查看商品来源:{{ item.goods.source }}</span>
-                  </el-col>
-                  <el-col :span="24"> {{ item.is_afterSale == true ? '已申请售后' : '未申请售后' }} </el-col>
-                  <el-col :span="24">{{ item.is_rate == true ? '已评价' : '未评价' }}</el-col>
-                </el-col>
-              </el-col>
-            </el-col>
-            <el-col :span="24" class="bode">
-              <el-col :span="6">运费</el-col>
-              <el-col :span="18" class="other" v-if="!item.goods.freight == '0'">{{ item.goods.freight }}</el-col>
-              <el-col :span="18" class="other" v-else>包邮</el-col>
-            </el-col>
-            <el-col :span="24" class="bode" v-if="item.act">
-              <el-col :span="24">平台活动优惠</el-col>
-              <el-col :span="24" v-for="(item, index) in item.act" :key="index">
-                <el-col :span="8">
-                  {{
-                    item.platform_act_type == '0'
-                      ? '优惠商品合集'
-                      : item.platform_act_type == '1'
-                      ? '按单返现'
-                      : item.platform_act_type == '2'
-                      ? '买赠'
-                      : item.platform_act_type == '3'
-                      ? '特价'
-                      : item.platform_act_type == '4'
-                      ? ''
-                      : item.platform_act_type == '5'
-                      ? '满减'
-                      : item.platform_act_type == '6'
-                      ? '满减折扣'
-                      : '套装促销'
-                  }}
-                </el-col>
-                <el-col :span="16" class="other" v-if="item.platform_act_type == '4'">加价购 </el-col>
-                <el-col :span="16" class="other" v-if="item.platform_act_type == '3'">
-                  <p>{{ item.sp_price }} 元</p>
-                </el-col>
-                <el-col :span="16" class="other" v-if="item.platform_act_type == '5' || item.platform_act_type == '6'">
-                  <p>-{{ item.discount }} 元</p>
-                </el-col>
-                <el-col :span="24" class="other" v-if="item.platform_act_type == '2'">
-                  <el-table :data="item.gift" border style="width: 100%">
-                    <el-table-column prop="goods_name" label="商品" width="180"> </el-table-column>
-                    <el-table-column prop="spec_name" label="规格" width="180"> </el-table-column>
-                    <el-table-column prop="num" label="数量"> </el-table-column>
-                    <el-table-column prop="desc" label="备注"> </el-table-column>
-                  </el-table>
-                </el-col>
-              </el-col>
-            </el-col>
-          </el-col>
-        </el-col>
-        <el-col :span="12" class="main_one">
-          <el-col :span="24" class="bode">
-            <el-col :span="6">下单时间</el-col>
-            <el-col :span="18" class="other">{{ form.buy_time }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">支付时间</el-col>
-            <el-col :span="18" class="other">{{ form.pay_time }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">订单备注</el-col>
-            <el-col :span="18" class="other">{{ form.remarks || '' }}</el-col>
-          </el-col>
-          <el-col :span="24" class="bode">
-            <el-col :span="6">配送方式</el-col>
-            <el-col :span="18" class="other">{{ form.transport_type_name || '' }}</el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total bode">
-            <el-col :span="24" v-for="(item, index) in total_detail" :key="index">
-              <el-col :span="8">{{ item.zh }}</el-col>
-              <el-col :span="16" class="other">
-                <p>¥{{ item.money }}</p>
-              </el-col>
-            </el-col>
-          </el-col>
-          <el-col :span="24" class="goods_total bode">
-            <el-col :span="8">优惠后实付金额</el-col>
-            <el-col :span="16" class="other">
-              <p>¥{{ pay.pay_money }} 元</p>
-            </el-col>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-import { mapState, createNamespacedHelpers } from 'vuex';
-export default {
-  name: 'card-1',
-  props: {
-    address: { type: Object },
-    list: { type: Array },
-    pay: { type: Object },
-    form: { type: Object },
-    total_detail: { type: Array },
-    shop: { type: Object },
-  },
-  components: {},
-  data: function () {
-    return {};
-  },
-  created() {},
-  methods: {
-    toUrl(url) {
-      if (url) window.open(url, '_blank');
-      else this.$message.error('该商品还未添加来源网址,无法跳转');
-    },
-    getActLength() {
-      return _.get(this.total_detail, 'act.length');
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  // padding: 0 5%;
-  .main_one {
-    padding: 0 5%;
-  }
-  .add {
-    border-bottom: 2px dashed #ccc;
-    margin: 0 0 5px 0;
-    padding: 5px 0;
-  }
-  .shop {
-    padding: 4px 0;
-    font-size: 18px;
-    border-bottom: 1px solid #ccc;
-  }
-  .goods {
-    padding: 10px 0;
-    .money {
-      text-align: right;
-    }
-  }
-  .transport {
-    margin: 50px;
-    padding: 5px;
-    border: 1px solid rgb(254, 195, 195);
-  }
-  .other {
-    text-align: right;
-    word-break: break-all;
-    p {
-      color: red;
-      font-size: 20px;
-    }
-    .spanfour {
-      color: blue;
-    }
-  }
-  .el-col {
-    margin: 3px 0;
-  }
-  .bode {
-    border-bottom: 1px solid rgb(238, 237, 237);
-  }
-  .form {
-    margin: 20px 0 0 0;
-  }
-}
-
-/deep/.el-timeline {
-  margin: 20px 0 0 0;
-  font-size: 16px;
-}
-/deep/.el-timeline-item__node:nth-child(1) {
-  background-color: green;
-}
-</style>

+ 0 - 430
src/views/selfShop/order/parts/detail/parts/card-2.vue

@@ -1,430 +0,0 @@
-<template>
-  <div id="card-2">
-    <el-row>
-      <el-col :span="24" class="main">
-        <el-col :span="9" class="one">
-          <!-- 快递列表 -->
-          <el-col :span="24" v-if="form.transport_type == '0'">
-            <el-col v-for="(item, index) in transport" :key="index" class="transport">
-              <el-col v-for="(good, index) in item.goods" :key="index">
-                <el-col :span="24" class="bode">
-                  <el-col :span="6">发货商品{{ index + 1 }}</el-col>
-                  <el-col :span="18" class="other">{{ good.goods_name }}</el-col>
-                </el-col>
-                <el-col :span="24" class="bode">
-                  <el-col :span="6">发货数量</el-col>
-                  <el-col :span="18" class="other">{{ good.num }}</el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24" class="bode">
-                <el-col :span="6">寄出运单号</el-col>
-                <el-col :span="18" class="other">{{ item.shop_transport_no || '暂无单号' }}</el-col>
-              </el-col>
-              <el-col :span="24" class="bode">
-                <el-col :span="6">寄出快递公司</el-col>
-                <el-col :span="18" class="other">{{ item.shop_transport_name || '暂无快递信息' }}</el-col>
-              </el-col>
-              <el-col :span="24" style="text-align: center">
-                <el-button type="danger" @click="toDel(item)"> 删除 </el-button>
-                <!-- <el-button type="success" @click="toExpre(item)"> 修改快递信息 </el-button> -->
-                <el-button type="primary" @click="toLog(item)"> 查看物流 </el-button>
-              </el-col>
-            </el-col>
-          </el-col>
-          <!-- 添加修改快递信息 -->
-          <el-col v-if="(form.status == '1' || form.status == '2-' || form.status == '2') && form.transport_type == '0'">
-            <el-radio-group v-model="status" @change="onstatus">
-              <el-radio :label="0" border>全部发货</el-radio>
-              <el-radio :label="1" border>部分发货</el-radio>
-            </el-radio-group>
-          </el-col>
-          <el-col :span="24" v-if="status == '1' && form.transport_type == '0'">
-            <el-col>发货商品</el-col>
-            <el-col :span="24" style="margin: 0 0 10px 0">
-              <el-button type="primary" size="mini" @click="toAdd()">添加</el-button>
-            </el-col>
-            <data-table :usePage="false" :fields="fieldsList" :opera="opera" :data="goodsList" @edit="toEdit" @del="toDelete"> </data-table>
-          </el-col>
-          <el-col :span="24" class="form" v-if="form.status == '1' || form.status == '2' || form.status == '2-'">
-            <el-form :model="form" ref="form" :rules="rules" label-width="100px" class="demo-ruleForm">
-              <el-form-item label="寄出运单号" prop="shop_transport_no" v-if="form.transport_type == '0'">
-                <el-input v-model="form.shop_transport_no" placeholder="请输入运单号,快递公司,同时填入" size="small"></el-input>
-              </el-form-item>
-              <el-form-item label="快递公司" prop="shop_transport_type" v-if="form.transport_type == '0'">
-                <el-select
-                  v-model="form.shop_transport_type"
-                  filterable
-                  remote
-                  reserve-keyword
-                  placeholder="请选择快递公司,运单号,同时填入"
-                  :remote-method="querySearch"
-                  :loading="loading"
-                  @change="handleSelect"
-                  size="small"
-                  style="width: 100%"
-                >
-                  <el-option v-for="item in shop_transport_typeList" :key="item.id" :label="item.label" :value="item.value"> </el-option>
-                </el-select>
-              </el-form-item>
-              <el-form-item label="快递类型" prop="transport_type">
-                <el-select v-model="form.transport_type" clearable filterable placeholder="请选择快递类型" size="small" style="width: 100%">
-                  <el-option v-for="i in transport_typeList" :key="i.label" :label="i.label" :value="i.value"> </el-option>
-                </el-select>
-              </el-form-item>
-              <el-form-item>
-                <el-col>
-                  <el-button type="primary" @click="onSubmit('form', '2')" v-if="(form.status == '1' || form.status == '2-') && status == '0'">
-                    保存
-                  </el-button>
-                  <el-button type="primary" @click="onSubmit('form', '2-')" v-if="(form.status == '1' || form.status == '2-') && status == '1'">
-                    添加保存
-                  </el-button>
-                  <el-button type="primary" @click="onSubmit('form', '2')" v-if="form.status == '2'"> 保存 </el-button>
-                  <el-button type="warning" @click="onConfirm('3', '是否确认收货')" v-if="form.status == '2'"> 确认收货 </el-button>
-                  <el-button type="warning" @click="onConfirm('2', '是否确认全部发货')" v-if="form.status == '2-'"> 确认全部发货 </el-button>
-                </el-col>
-              </el-form-item>
-            </el-form>
-          </el-col>
-        </el-col>
-        <!-- 物流信息 -->
-        <el-col :span="9" class="one" v-if="form.transport_type == '0' && logList.length != 0">
-          <el-col :span="24">{{ activit.is_check || '暂无快递信息' }}</el-col>
-          <el-col :span="24">{{ shop.shop_transport_name || '暂无快递信息' }}: {{ activit.no || '暂无快递信息' }}</el-col>
-          <el-col :span="24">
-            <p>收货地址:{{ address.province }} , {{ address.city }} , {{ address.area }} , {{ address.address }}</p>
-          </el-col>
-          <el-col :span="24">
-            <el-timeline :reverse="reverse">
-              <el-timeline-item v-for="(activity, index) in logList" :key="index" :timestamp="activity.time" :color="activity.color">
-                {{ activity.context }}
-              </el-timeline-item>
-            </el-timeline>
-          </el-col>
-        </el-col>
-        <el-col :span="9" class="one" v-else-if="form.transport_type == '1'"> 本单由商家派送 </el-col>
-      </el-col>
-    </el-row>
-    <e-dialog :dialog="dialog" @toClose="toClose">
-      <template v-slot:info>
-        <el-form :model="fieldform" ref="fieldform" label-width="100px" class="demo-ruleForm">
-          <el-form-item label="发货商品" prop="goods_name" v-if="status == '1' && form.transport_type == '0'">
-            <el-select v-model="fieldform.goods_id" clearable filterable placeholder="请选择发货商品" size="small" style="width: 100%" @change="goodsChange">
-              <el-option v-for="i in list" :key="i._id" :label="getName(i)" :value="i._id"> </el-option>
-            </el-select>
-            <p>
-              <span style="color: red">用于部分发货 </span>
-            </p>
-          </el-form-item>
-          <el-form-item label="发货商品数量" prop="num" v-if="status == '1' && form.transport_type == '0'">
-            <el-input v-model="fieldform.num" placeholder="请输入发货商品数量" size="small" @input="toNum"></el-input>
-            <p>
-              用于部分发货:发货最大数量不得超过购买商品最大数量 <span style="color: red"> {{ buy_num }}</span>
-            </p>
-          </el-form-item>
-          <el-form-item>
-            <el-col>
-              <el-button type="primary" @click="toSave()"> 保存 </el-button>
-            </el-col>
-          </el-form-item>
-        </el-form>
-      </template>
-    </e-dialog>
-  </div>
-</template>
-
-<script>
-const moment = require('moment');
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-export default {
-  name: 'card-2',
-  props: {
-    transport: { type: Array },
-    list: { type: Array },
-    shop_transport_typeList: { type: Array },
-    activities: { type: Array },
-    transport_typeList: { type: Array },
-    form: { type: Object },
-    address: { type: Object },
-  },
-  components: {},
-  data: function () {
-    return {
-      activit: {},
-      logList: [],
-      shop: {},
-      status: 0,
-      // 物流
-      reverse: false,
-      // 加载
-      loading: false,
-      rules: {
-        shop_transport_no: [{ required: true, message: '请输入快递单号', trigger: 'blur' }],
-        shop_transport_type: [{ required: true, message: '请选择快递公司', trigger: 'change' }],
-        transport_type: [{ required: true, message: '请选择快递类型', trigger: 'change' }],
-      },
-      listForm: {},
-      buy_num: '',
-      // 商品
-      goodsList: [],
-      // 添加发货商品表单
-      fieldform: {},
-      // 底部菜单
-      opera: [
-        { label: '修改', method: 'edit' },
-        { label: '删除', method: 'del', confirm: true, type: 'danger' },
-      ],
-      fieldsList: [
-        { label: '商品名称', model: 'goods_id', format: (i) => this.getNames(i) },
-        { label: '发货数量', model: 'num' },
-      ],
-      // 弹框
-      dialog: { title: '信息管理', show: false, type: '1' },
-    };
-  },
-  created() {},
-  methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update']),
-    search() {
-      this.$emit('search');
-    },
-    // 远程查询
-    async querySearch(value) {
-      this.loading = true;
-      this.$emit('querySearch', value);
-      this.loading = false;
-    },
-    handleSelect(value) {},
-    // 添加
-    async toAdd() {
-      this.dialog = { title: '信息管理', show: true, type: '1' };
-    },
-    // 关闭
-    toClose() {
-      this.fieldform = {};
-      this.dialog = { title: '信息管理', show: false, type: '1' };
-    },
-    // 修改
-    toEdit(index, data) {
-      this.$set(this, `fieldform`, index.data);
-      this.dialog = { title: '信息管理', show: true, type: '1' };
-    },
-    // 添加发货商品提交
-    toSave() {
-      let data = this.fieldform;
-      data.id = moment(new Date()).valueOf();
-      let info = this.goodsList.find((f) => f.id == data.id);
-      if (info == '' || info == undefined) this.goodsList.push(data);
-      this.toClose();
-    },
-    onstatus(status) {
-      this.status = status;
-    },
-    // 选择商品
-    goodsChange(value) {
-      let name = this.form.goods.find((i) => i.id == value);
-      this.$set(this, `buy_num`, name.buy_num);
-    },
-    getName(i) {
-      let name = i.name + ',' + i.goods.name;
-      return name;
-    },
-    getNames(val) {
-      let goods = this.form.goods.find((i) => i.id == val);
-      let name = goods.name + ',' + goods.goods.name;
-      return name;
-    },
-    // 删除
-    toDelete({ data }) {
-      let newList = this.goodsList.filter((i) => i.id != data.id);
-      this.$set(this, `goodsList`, newList);
-    },
-    // 发货最大数量
-    toNum(val) {
-      if (val > this.buy_num) {
-        this.$message.error('超过发货最大数量');
-        this.$set(this.form, `num`, '');
-      }
-    },
-    // 修改快递信息
-    // toExpre(data) {
-    //   this.$set(this.form, `shop_transport_no`, data.shop_transport_no);
-    //   this.querySearch(data.shop_transport_type);
-    //   this.$set(this.form, `shop_transport_type`, data.shop_transport_type);
-    //   if (data.goods) this.$set(this, `status`, 1);
-    //   this.$set(this, `goodsList`, data.goods);
-    // },
-    // 查看物流
-    toLog(value) {
-      this.$set(this, `shop`, value);
-      let info = this.activities.find((f) => f.no == value.shop_transport_no);
-      if (info) {
-        info.list[0].color = '#0bbd87';
-        this.$set(this, `logList`, info.list);
-        this.$set(this, `activit`, info);
-      }
-    },
-    // 删除快递信息
-    toDel(data) {
-      this.$confirm('是否确认删除', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(async () => {
-        let list = this.transport;
-        let form = this.form;
-        let newList = list.filter((i) => i.id != data.id);
-        form.transport = newList;
-        let res;
-        if (form.id) res = await this.update(form);
-        if (this.$checkRes(res)) {
-          this.$message({ type: `success`, message: `维护信息成功` });
-          this.search();
-        }
-      });
-    },
-    // 确认收货-确认全部发货
-    async onConfirm(val, text = '是否确认') {
-      this.$confirm(text, '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(async () => {
-        var form = this.form;
-        var res;
-        form.status = val;
-        if (form.id) res = await this.update(form);
-        if (this.$checkRes(res)) {
-          this.$message({ type: `success`, message: `维护信息成功` });
-          this.search();
-        }
-      });
-    },
-    // 提交
-    async onSubmit(formName, val) {
-      this.$refs[formName].validate(async (valid) => {
-        if (valid) {
-          this.$confirm('是否确认保存', '提示', {
-            confirmButtonText: '确定',
-            cancelButtonText: '取消',
-            type: 'warning',
-          }).then(async () => {
-            var form = this.form;
-            if (form.transport_type == '0') {
-              var shop_transport_no = form.shop_transport_no;
-              var shop_transport_type = form.shop_transport_type;
-              if (form.transport != undefined && val == '2-') {
-                let goods = this.goodsList;
-                form.transport.push({ id: moment(new Date()).valueOf(), goods, shop_transport_no, shop_transport_type });
-              } else if (form.transport == undefined && val == '2-') {
-                let goods = this.goodsList;
-                let transport = [];
-                transport.push({ id: moment(new Date()).valueOf(), goods, shop_transport_no, shop_transport_type });
-                form.transport = transport;
-              } else if (val == '2' && !form.transport && form.transport_type == '0') {
-                let transport = [];
-                transport.push({ shop_transport_no, shop_transport_type });
-                form.transport = transport;
-              } else if (val == '2' && form.transport && form.transport_type == '0' && this.status == '1') {
-                let goods = this.goodsList;
-                form.transport.push({ id: moment(new Date()).valueOf(), goods, shop_transport_no, shop_transport_type });
-              } else if (val == '2' && form.transport && form.transport_type == '0' && this.status == '0') {
-                let transport = [];
-                transport.push({ shop_transport_no, shop_transport_type });
-                form.transport = transport;
-              }
-            } else if (form.transport_type == '1' && form.transport) delete form.transport;
-            var res;
-            if (val != undefined || val != '') {
-              if (this.goodsList.length == 0) form.status = '2';
-              else form.status = val;
-            }
-            if (form.id) res = await this.update(form);
-            if (this.$checkRes(res)) {
-              this.$message({ type: `success`, message: `维护信息成功` });
-              this.goodsList = [];
-              this.search();
-            }
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .one {
-    margin: 10px 0 0 2%;
-    padding: 5px;
-    .add {
-      border-bottom: 2px dashed #ccc;
-      margin: 0 0 5px 0;
-      padding: 5px 0;
-    }
-    .shop {
-      padding: 4px 0;
-      font-size: 18px;
-      border-bottom: 1px solid #ccc;
-    }
-    .goods {
-      padding: 10px 0;
-      .money {
-        text-align: right;
-      }
-    }
-    .transport {
-      margin: 50px;
-      padding: 5px;
-      border: 1px solid rgb(254, 195, 195);
-    }
-    .other {
-      text-align: right;
-      word-break: break-all;
-      p {
-        color: red;
-      }
-      .spanfour {
-        color: blue;
-      }
-    }
-    .el-col {
-      margin: 3px 0;
-    }
-    .bode {
-      border-bottom: 1px solid rgb(238, 237, 237);
-    }
-    .form {
-      margin: 20px 0 0 0;
-    }
-  }
-}
-
-.el-radio.is-bordered.is-checked {
-  border-color: rgb(24, 145, 243);
-}
-/deep/.el-timeline {
-  margin: 20px 0 0 0;
-  font-size: 16px;
-}
-/deep/.el-timeline-item__node:nth-child(1) {
-  background-color: green;
-}
-</style>

+ 0 - 148
src/views/selfShop/order/parts/parts/detail-1.vue

@@ -1,148 +0,0 @@
-<template>
-  <div id="card-1">
-    <el-row>
-      <el-col :span="24" class="main" v-loading="loadings" element-loading-text="拼命加载中" element-loading-spinner="el-icon-loading">
-        <el-col :span="24" v-if="num == '1'">
-          <el-col :span="24" class="one">
-            <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
-          </el-col>
-          <el-col :span="24" class="one">
-            <el-button type="primary" size="mini" @click="toDeliver()">生成发货清单</el-button>
-            <p>(发货清单里不显示售后的订单)</p>
-          </el-col>
-          <data-table
-            :select="true"
-            :selected="selected"
-            @handleSelect="handleSelect"
-            :fields="fields"
-            :opera="opera"
-            @query="search"
-            :data="list"
-            :total="total"
-            @detail="toDetail"
-            @sales="toSales"
-          >
-          </data-table>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-
-import { mapState, createNamespacedHelpers } from 'vuex';
-const { mapActions } = createNamespacedHelpers('orderDetail');
-const { mapActions: shop } = createNamespacedHelpers('shop');
-export default {
-  name: 'card-1',
-  props: { statusList: { type: Array } },
-  components: { search1: () => import('../search-1.vue') },
-  data: function () {
-    return {
-      loadings: true,
-      num: '1',
-      searchForm: {},
-      list: [],
-      total: 0,
-      opera: [
-        { label: '详情', method: 'detail' },
-        { label: '售后', method: 'sales', type: 'danger' },
-      ],
-      fields: [
-        { label: '订单号', model: 'no', showTip: false },
-        { label: '下单时间', model: 'buy_time' },
-        { label: '顾客', model: 'customer.name' },
-        { label: '收货人', model: 'address', showTip: false, format: (i) => this.getAddress(i) },
-        // { label: '店铺名称', model: 'shop.name' },
-        { label: '支付金额', model: 'real_pay' },
-        { label: '商品数量', model: 'buy_num_total' },
-        { label: '是否售后', model: 'is_afterSale', format: (i) => (i === true ? '该订单有商品申请售后' : '未申请售后') },
-      ],
-      // 多选值
-      selected: [],
-      shopList: [],
-      // 发货清单
-      deliverList: [],
-      deliver: '0',
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    ...shop({ shopQuery: 'query' }),
-    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
-    // 查询
-    async search({ skip = 0, limit = this.$limit, ...info } = {}) {
-      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 = '1';
-      let res = await this.query({ skip, limit, ...condition, ...info, shop: this.user.shop.id });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'list', res.data);
-        this.$set(this, 'total', res.total);
-      }
-      this.loadings = false;
-    },
-    getAddress(i) {
-      let name = i.name + ',' + i.phone;
-      return name;
-    },
-    // 详情
-    toDetail({ data }) {
-      this.$emit('toDetails', data._id);
-    },
-    toSales({ data }) {
-      this.$emit('toSaless', { id: data._id, status: '1' });
-    },
-    toClose() {
-      this.searchForm = {};
-      this.search();
-    },
-    // 多选
-    handleSelect(data) {
-      this.$set(this, 'deliverList', data);
-    },
-    // 生成发货清单
-    toDeliver() {
-      this.$emit('toDeliver', { data: this.deliverList });
-    },
-    // 店铺名称远程查询
-    async querySearch(value) {
-      let res = await this.shopQuery({ name: value });
-      if (this.$checkRes(res)) {
-        this.$set(this, 'shopList', res.data);
-      }
-    },
-  },
-  computed: {
-    ...mapState(['user']),
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.one {
-  margin: 0 0 10px 0;
-  p {
-    font-size: 12px;
-    color: #777;
-  }
-}
-</style>

+ 0 - 263
src/views/selfShop/order/parts/parts/detail-2.vue

@@ -1,263 +0,0 @@
-<template>
-  <div id="form-1">
-    <el-row>
-      <el-col :span="24" class="main animate__animated animate__backInRight">
-        <el-col class="top_btn"><el-button type="primary" size="mini" @click="toBack()">返回</el-button></el-col>
-        <el-col :span="24" class="one"> <span>发货清单</span> </el-col>
-        <el-col class="top_btn"> <el-button type="primary" @click="toFile()">导出清单</el-button></el-col>
-        <el-col :span="24" class="two">
-          <el-col :span="15" v-for="(item, index) in list" :key="index">
-            <el-card class="box-card">
-              <el-col class="clearfix">
-                <el-col>收货人:{{ item.address.name }},{{ item.address.phone }}</el-col>
-                <el-col>收货人地址:{{ item.address.province }},{{ item.address.city }},{{ item.address.area }},{{ item.address.address }}</el-col>
-              </el-col>
-              <el-col class="two_1">
-                <data-table
-                  :select="true"
-                  :selected="selected"
-                  @handleSelect="(e) => handleSelect(e, item.address)"
-                  rowKey="index"
-                  :usePage="false"
-                  :fields="fields"
-                  :data="item.goodsList"
-                >
-                </data-table>
-              </el-col>
-            </el-card>
-          </el-col>
-        </el-col>
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-const _ = require('lodash');
-import FileSaver from 'file-saver';
-const ExcelJS = require('exceljs');
-import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
-export default {
-  name: 'form-1',
-  props: { deliverList: { type: Array } },
-  components: {},
-  data: function () {
-    return {
-      list: [],
-      fields: [
-        { label: '订单编号', model: 'order_no' },
-        { label: '商品名称', model: 'goods.name' },
-        { label: '商品规格', model: 'name' },
-        { label: '商品数量', model: 'buy_num' },
-      ],
-      selected: [],
-      fileList: [],
-    };
-  },
-  async created() {
-    await this.search();
-  },
-  methods: {
-    // 查询
-    async search() {
-      let data = this.deliverList;
-      if (data) {
-        let test = _(data).groupBy('address._id').values().value();
-        let list = [];
-        for (const p1 of test) {
-          let goodsList = [];
-          for (const p2 of p1) {
-            if (p2.is_afterSale == false) {
-              for (let p3 of p2.goods) {
-                // _.pick(p3, ['goods', 'name', 'buy_num']);
-                // let p3_2 = (({ goods, name, buy_num }) => ({ goods, name, buy_num }))(p3);
-                delete p3.flow_money;
-                delete p3.freight;
-                delete p3.id;
-                delete p3.status;
-                delete p3._id;
-                delete p3.meta;
-                delete p3.num;
-                delete p3.sell_money;
-                delete p3.__v;
-                delete p3.tags;
-                delete p3.cart_id;
-                delete p3.can_group;
-                delete p3.group_config;
-                delete p3.url;
-                let good = (({ name }) => ({ name }))(p3.goods);
-                p3.goods = good;
-                p3.order_no = p2.no;
-              }
-              goodsList.push(...p2.goods);
-              let i = 0;
-              for (const p4 of goodsList) {
-                p4.index = i;
-                i++;
-              }
-            }
-          }
-          let address = _.pick(p1[0].address, ['name', 'phone', 'province', 'city', 'area', 'address', '_id']);
-          // let address = (({ name, phone, province, city, area, address, _id }) => ({ name, phone, province, city, area, address, _id }))(p1[0].address);
-          list.push({ goodsList, address });
-        }
-        this.$set(this, 'list', list);
-      }
-    },
-    // 选中要导出的商品
-    handleSelect(goodsList, address) {
-      let fileList = this.fileList;
-      if (fileList.length == 0) {
-        fileList.push({ goodsList, address });
-      } else {
-        if (goodsList.length > 0) {
-          for (const val of fileList) {
-            if (address._id == val.address._id) {
-              val.goodsList = goodsList;
-            } else {
-              fileList.push({ goodsList, address });
-            }
-          }
-        } else {
-          let p1 = fileList.filter((i) => i.address._id != address._id);
-          fileList = p1;
-        }
-      }
-      let list = _.uniqBy(fileList, 'address._id');
-      this.$set(this, 'fileList', list);
-    },
-    // 导出清单
-    toFile() {
-      const workbook = new ExcelJS.Workbook();
-      let list = this.fileList;
-      for (let [index, p1] of list.entries()) {
-        let name = p1.address.name + index;
-        const worksheet = workbook.addWorksheet(name);
-        // 设置标题-start
-        // 获取单元格位置
-        let titleCell = worksheet.getCell('A1');
-        // 合并单元格
-        worksheet.mergeCells('A1:D1');
-        // 单元格内容
-        titleCell.value = '发货清单';
-        worksheet.columns.forEach(function (column, i) {
-          column.font = {
-            size: 14,
-          };
-          column.width = 38;
-          column.alignment = {
-            wrapText: true,
-            vertical: 'middle',
-            horizontal: 'left',
-          };
-          column.border = {
-            top: { style: 'thin' },
-            left: { style: 'thin' },
-            bottom: { style: 'thin' },
-            right: { style: 'thin' },
-          };
-        });
-        // 单元格内容样式
-        titleCell.style = {
-          alignment: {
-            vertical: 'middle',
-            horizontal: 'center',
-          },
-          font: {
-            size: 20,
-            bold: true,
-          },
-          border: {
-            top: { style: 'thin' },
-            left: { style: 'thin' },
-            bottom: { style: 'thin' },
-            right: { style: 'thin' },
-          },
-        };
-        // 设置标题-end
-        let data = [
-          ['收获人', p1.address.name],
-          ['联系电话', p1.address.phone],
-          ['收货地址', p1.address.province + p1.address.city + p1.address.area + p1.address.address],
-          ['订单号', '产品名称', '产品规格', '购买数量'],
-        ];
-        for (const p2 of p1.goodsList) {
-          let p4 = [[p2.order_no, p2.goods.name, p2.name, p2.buy_num]];
-          data.push(...p4);
-        }
-        const row = worksheet.getRow(1);
-        row.height = 40;
-        for (const val of data) {
-          worksheet.addRow(val);
-        }
-      }
-      workbook.xlsx.writeBuffer().then((buffer) => {
-        FileSaver.saveAs(
-          new Blob([buffer], {
-            type: 'application/octet-stream',
-          }),
-          `发货清单.xlsx`
-        );
-      });
-    },
-    // 返回
-    toBack() {
-      this.$emit('toBack');
-    },
-  },
-  computed: {
-    data() {
-      return this.$route.query.data;
-    },
-  },
-  metaInfo() {
-    return { title: this.$route.meta.title };
-  },
-  watch: {
-    test: {
-      deep: true,
-      immediate: true,
-      handler(val) {},
-    },
-  },
-};
-</script>
-
-<style lang="less" scoped>
-.main {
-  .top_btn {
-    margin: 0 0 10px 0;
-  }
-  .one {
-    margin: 0 0 10px 0;
-    span:nth-child(1) {
-      font-size: 20px;
-      font-weight: 700;
-      margin-right: 10px;
-    }
-  }
-  .two {
-    margin: 5px 10%;
-    .data-table {
-      margin: 5px 0;
-    }
-    .clearfix {
-      margin: 4px 0;
-      .el-col {
-        margin: 4px 0;
-      }
-    }
-    .box-card {
-      margin: 5px;
-      padding: 5px 0 20px 0;
-    }
-    .shop {
-      text-align: center;
-      font-size: 18px;
-    }
-    .item {
-      margin-bottom: 18px;
-    }
-  }
-}
-</style>