소스 검색

修改订单

YY 2 년 전
부모
커밋
4e1f33f848
29개의 변경된 파일1843개의 추가작업 그리고 659개의 파일을 삭제
  1. 4 1
      src/components/orderParts/card-1.vue
  2. 1 1
      src/components/orderParts/card-2.vue
  3. 127 0
      src/components/orderParts/card/card-1.vue
  4. 129 0
      src/components/orderParts/card/card-2.vue
  5. 69 0
      src/components/orderParts/card/card-3.vue
  6. 69 0
      src/components/orderParts/card/card-4.vue
  7. 84 0
      src/components/orderParts/deliver/card-1.vue
  8. 443 0
      src/components/orderParts/deliver/card-2.vue
  9. 0 226
      src/components/orderParts/detail/detail_sales_order.vue
  10. 112 0
      src/components/orderParts/detail/order.vue
  11. 2 2
      src/components/orderParts/detail/detail_orderDetail.vue
  12. 0 261
      src/components/orderParts/detail/parts/card-1.vue
  13. 43 57
      src/components/orderParts/detail/detail_order.vue
  14. 12 52
      src/components/orderParts/detail/detail_sales_orderDetail.vue
  15. 111 0
      src/components/orderParts/parts/act-1.vue
  16. 54 0
      src/components/orderParts/parts/add-1.vue
  17. 1 1
      src/components/orderParts/parts/detail-1.vue
  18. 1 1
      src/components/orderParts/parts/detail-3.vue
  19. 96 0
      src/components/orderParts/parts/goodsSet-1.vue
  20. 155 0
      src/components/orderParts/parts/order/goods-1.vue
  21. 81 0
      src/components/orderParts/parts/order/pay-1.vue
  22. 105 0
      src/components/orderParts/parts/orderDetail/goods-1.vue
  23. 97 0
      src/components/orderParts/parts/orderDetail/pay-1.vue
  24. 0 0
      src/components/orderParts/search/search-1.vue
  25. 0 0
      src/components/orderParts/search/search-2.vue
  26. 0 0
      src/components/orderParts/search/search-3.vue
  27. 1 1
      src/views/platGroup/order/index.vue
  28. 24 22
      src/views/platmanag/order/index.vue
  29. 22 34
      src/views/selfShop/order/index.vue

+ 4 - 1
src/components/orderParts/card-1.vue

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

+ 1 - 1
src/components/orderParts/card-2.vue

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

+ 127 - 0
src/components/orderParts/card/card-1.vue

@@ -0,0 +1,127 @@
+<template>
+  <div id="card-1">
+    <el-row>
+      <!-- 平台订单待付款列表 -->
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="one">
+          <search-1 :form="searchForm" @onSubmit="toSearch" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+        </el-col>
+        <data-table ref="dataTable" :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('order');
+const { mapActions: shop } = createNamespacedHelpers('shop');
+export default {
+  name: 'card-1',
+  props: { statusList: { type: Array } },
+  components: {
+    search1: () => import('@/components/orderParts/search/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: 'goods', format: (i) => this.getShopName(i) },
+        // { label: '店铺名称', model: 'g' },
+        { label: '需支付金额', model: 'real_pay' },
+        { label: '商品数量', model: 'buy_num_total' },
+      ],
+      shopList: [],
+      // 查询条件
+      searchQuery: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...shop({ shopQuery: 'query' }),
+    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
+    toSearch() {
+      this.$refs.dataTable.resetPage();
+      let res = this.$refs.dataTable.getPageConfig();
+      this.search(res);
+    },
+    // 查询
+    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 = '0';
+      let query = { skip, limit, ...info };
+      if (Object.keys(condition).length > 0) query = { ...query, ...condition };
+      let res = await this.query(query);
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, 'total', res.total);
+        this.$set(this, `searchQuery`, query);
+      }
+    },
+    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);
+    },
+  },
+  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>

+ 129 - 0
src/components/orderParts/card/card-2.vue

@@ -0,0 +1,129 @@
+<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="toSearch" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
+        </el-col>
+        <data-table ref="dataTable" :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('order');
+const { mapActions: shop } = createNamespacedHelpers('shop');
+export default {
+  name: 'card-1',
+  props: { statusList: { type: Array } },
+  components: { search1: () => import('@/components/orderParts/search/search-2.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: 'goods', format: (i) => this.getShopName(i) },
+        { label: '店铺名称', model: 'shop.name' },
+        { label: '需支付金额', model: 'real_pay' },
+        { label: '商品数量', model: 'buy_num_total' },
+      ],
+      shopList: [],
+      skip: 0,
+      loadings: true,
+      // 查询条件
+      searchQuery: {},
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...shop({ shopQuery: 'query' }),
+    ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
+    toSearch() {
+      this.$refs.dataTable.resetPage();
+      let res = this.$refs.dataTable.getPageConfig();
+      this.search(res);
+    },
+    // 查询
+    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 = '0';
+      info.shop = this.user.shop.id;
+      let query = { skip, limit, ...info };
+      if (Object.keys(condition).length > 0) query = { ...query, ...condition };
+      let res = await this.query(query);
+      if (this.$checkRes(res)) {
+        this.$set(this, 'list', res.data);
+        this.$set(this, 'total', res.total);
+        this.$set(this, `searchQuery`, query);
+      }
+      this.loadings = false;
+    },
+    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);
+    },
+  },
+  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>

+ 69 - 0
src/components/orderParts/card/card-3.vue

@@ -0,0 +1,69 @@
+<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>

+ 69 - 0
src/components/orderParts/card/card-4.vue

@@ -0,0 +1,69 @@
+<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-3.vue'),
+    detail2: () => import('./parts/detail-4.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', val);
+    },
+  },
+  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>

+ 84 - 0
src/components/orderParts/deliver/card-1.vue

@@ -0,0 +1,84 @@
+<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">
+            <add-1 :address="address"></add-1>
+          </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">
+            <goods-1 v-if="!item.set_id" :list="list" :form="form"></goods-1>
+            <goodsSet-1 v-else-if="item.is_set == '0'" :list="list"></goodsSet-1>
+            <act-1 v-if="item.act" :list="list"></act-1>
+          </el-col>
+        </el-col>
+        <el-col :span="12" class="main_one">
+          <pay-1 :form="form" :total_detail="total_detail" :pay="pay"></pay-1>
+        </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: {
+    add1: () => import('@/components/orderParts/parts/add-1.vue'),
+    pay1: () => import('@/components/orderParts/parts/orderDetail/pay-1.vue'),
+    goods1: () => import('@/components/orderParts/parts/orderDetail/goods-1.vue'),
+    goodsSet1: () => import('@/components/orderParts/parts/goodsSet-1.vue'),
+    act1: () => import('@/components/orderParts/parts/act-1.vue'),
+  },
+  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 {
+  .main_one {
+    padding: 0 5%;
+  }
+  .shop {
+    padding: 4px 0;
+    font-size: 18px;
+    border-bottom: 1px solid #ccc;
+  }
+}
+</style>

+ 443 - 0
src/components/orderParts/deliver/card-2.vue

@@ -0,0 +1,443 @@
+<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)" v-if="form.status == '1' || form.status == '2' || form.status == '2-' || form.status == '3'">
+                  删除
+                </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="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 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>
+                <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);
+      console.log(this.goodsList);
+      this.toClose();
+    },
+    onstatus(status) {
+      this.status = status;
+    },
+    // 选择商品
+    goodsChange(value) {
+      let name = this.form.goods.find((i) => i._id == value);
+      if (name.set_num) this.$set(this, `buy_num`, name.set_num);
+      else if (name.buy_num) this.$set(this, `buy_num`, name.buy_num);
+    },
+    getName(i) {
+      let name = '';
+      if (i.name && i.goods.name) name = i.name + ',' + i.goods.name;
+      else if (i.name) name = i.name;
+      else name = '套装名称';
+      return name;
+    },
+    getNames(val) {
+      let goods = this.form.goods.find((i) => i._id == val);
+      let name = '';
+      if (goods.name && goods.goods.name) name = goods.name + ',' + goods.goods.name;
+      else if (goods.name) name = goods.name;
+      else 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;
+        console.log(form);
+        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 - 226
src/components/orderParts/detail/detail_sales_order.vue

@@ -1,226 +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="10" 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 in list" :key="item._id || item.set_id">
-            <el-col :span="24" v-if="!item.is_set">
-              <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" v-if="goods.file && goods.file.length != 0"><el-image class="image" :src="goods.file[0].url"></el-image></el-col>
-                  <el-col :span="6" v-else><el-image class="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" class="goods bode" v-else-if="item.is_set == '0'">
-              <el-col :span="24" style="text-align: center; font-size: 18px">{{ item.name || '套装名称' }}</el-col>
-              <el-col :span="24" v-for="i in item.goods" :key="i.spec._id">
-                <el-col :span="6" class="image" v-if="i.spec.file && i.spec.file.length != 0"><el-image :src="i.spec.file[0].url"></el-image></el-col>
-                <el-col :span="6" class="image" v-else-if="i.goods.file && i.goods.file.length != 0"><el-image :src="i.goods.file[0].url"></el-image></el-col>
-                <el-col :span="18">
-                  <el-col :span="12">
-                    <el-col :span="24"> {{ i.goods_name }} </el-col>
-                    <el-col :span="24"> 规格:{{ i.spec_name }} </el-col>
-                  </el-col>
-                  <el-col :span="12" class="money">
-                    <el-col :span="24"> X{{ i.set_num }} </el-col>
-                    <el-col :span="24">
-                      <span class="spanfour" style="color: blue" @click="toUrl(i.goods.url)"> 查看商品来源:{{ i.goods.source }}</span>
-                    </el-col>
-                    <el-button type="danger" @click="toSales()"> 取消订单 </el-button>
-                  </el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24" style="text-align: right; font-size: 18px"> X{{ item.buy_num }} </el-col>
-              <el-col :span="24" style="text-align: right; font-size: 18px"> X{{ item.buy_num }} </el-col>
-            </el-col>
-          </el-col>
-          <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 :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;
-      .image {
-        padding: 0 10px 0 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>

+ 112 - 0
src/components/orderParts/detail/order.vue

@@ -0,0 +1,112 @@
+<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="11" class="one">
+          <add-1 :address="address"></add-1>
+          <el-col :span="24" v-for="item in list" :key="item._id || item.set_id">
+            <goods-1 v-if="!item.set_id" :list="list" :info="info"></goods-1>
+            <goodsSet-1 v-else-if="item.is_set == '0'" :list="list"></goodsSet-1>
+          </el-col>
+          <el-col :span="24">
+            <pay-1 :info="info" :total_detail="total_detail" :pay="pay"></pay-1>
+          </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: {
+    add1: () => import('@/components/orderParts/parts/add-1.vue'),
+    pay1: () => import('@/components/orderParts/parts/order/pay-1.vue'),
+    goods1: () => import('@/components/orderParts/parts/order/goods-1.vue'),
+    goodsSet1: () => import('@/components/orderParts/parts/goodsSet-1.vue'),
+  },
+  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;
+    .el-col {
+      margin: 4px 0;
+    }
+  }
+  .bode {
+    border-bottom: 1px solid rgb(238, 237, 237);
+  }
+}
+</style>

+ 2 - 2
src/components/orderParts/detail/detail_orderDetail.vue

@@ -47,8 +47,8 @@ export default {
   name: 'form-1',
   props: { id: { type: String } },
   components: {
-    card1: () => import('./parts/card-1.vue'),
-    card2: () => import('./parts/card-2.vue'),
+    card1: () => import('@/components/orderParts/deliver/card-1.vue'),
+    card2: () => import('@/components/orderParts/deliver/card-2.vue'),
   },
   data: function () {
     return {

+ 0 - 261
src/components/orderParts/detail/parts/card-1.vue

@@ -1,261 +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" v-if="!item.is_set">
-              <el-col :span="6" class="image" v-if="item.file && item.file.length != 0"><el-image :src="item.file[0].url"></el-image></el-col>
-              <el-col :span="6" class="image" v-else-if="item.goods.file && item.goods.file"><el-image :src="item.goods.file[0].url"></el-image></el-col>
-              <el-col :span="6" class="image" 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 :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="goods bode" v-if="item.is_set == '0'">
-              <el-col :span="24">{{ item.name || '套装名称' }}</el-col>
-              <el-col :span="24" v-for="i in item.goods" :key="i.spec._id">
-                <el-col :span="6" class="image" v-if="i.spec.file && i.spec.file.length != 0"><el-image :src="i.spec.file[0].url"></el-image></el-col>
-                <el-col :span="6" class="image" v-else-if="i.goods.file && i.goods.file.length != 0"><el-image :src="i.goods.file[0].url"></el-image></el-col>
-                <el-col :span="18">
-                  <el-col :span="12">
-                    <el-col :span="24"> {{ i.goods_name }} </el-col>
-                    <el-col :span="24"> 规格:{{ i.spec_name }} </el-col>
-                  </el-col>
-                  <el-col :span="12" class="money">
-                    <el-col :span="24"> X{{ i.set_num }} </el-col>
-                    <el-col :span="24">
-                      <span class="spanfour" style="color: blue" @click="toUrl(i.goods.url)"> 查看商品来源:{{ i.goods.source }}</span>
-                    </el-col>
-                    <el-col :span="24" style="text-align: right">
-                      <el-col :span="24"> {{ i.is_afterSale == true ? '已申请售后' : '未申请售后' }} </el-col>
-                      <el-col :span="24">{{ i.is_rate == true ? '已评价' : '未评价' }}</el-col>
-                    </el-col>
-                  </el-col>
-                </el-col>
-              </el-col>
-              <el-col :span="24">
-                <el-col :span="6">运费</el-col>
-                <el-col :span="18" class="other" v-if="!item.freight == '0'">{{ item.freight }}</el-col>
-                <el-col :span="18" class="other" v-else>包邮</el-col>
-              </el-col>
-              <el-col :span="24" class="money">
-                <el-col :span="24" style="color: red; font-size: 20px">
-                  <p>¥{{ item.sell_money }}</p>
-                </el-col>
-                <el-col :span="24"> X{{ item.buy_num }} </el-col>
-              </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;
-    .image {
-      padding: 0 10px 0 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>

+ 43 - 57
src/components/orderParts/detail/detail_order.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="form-1">
     <el-row>
-      <!-- 待付款订单详情 -->
+      <!-- 待付款申请售后 -->
       <el-col
         :span="24"
         class="main animate__animated animate__backInRight"
@@ -12,45 +12,31 @@
         <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="10" class="one">
+          <add-1 :address="address"></add-1>
           <el-col :span="24" v-for="item in list" :key="item._id || item.set_id">
-            <el-col :span="24" v-if="!item.set_id">
+            <el-col :span="24" v-if="!item.is_set">
               <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 in item.goods" :key="goods._id">
-                <el-col :span="24" class="goods bode">
-                  <el-col :span="6"><el-image class="image" :src="goods.goods.file[0].url"></el-image></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" v-if="goods.file && goods.file.length != 0"><el-image class="image" :src="goods.file[0].url"></el-image></el-col>
+                  <el-col :span="6" v-else><el-image class="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 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" 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">
@@ -90,10 +76,16 @@
                     </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 :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" class="goods bode" v-else-if="item.is_set == '0'">
@@ -111,34 +103,15 @@
                     <el-col :span="24">
                       <span class="spanfour" style="color: blue" @click="toUrl(i.goods.url)"> 查看商品来源:{{ i.goods.source }}</span>
                     </el-col>
+                    <el-button type="danger" @click="toSales()"> 取消订单 </el-button>
                   </el-col>
                 </el-col>
               </el-col>
               <el-col :span="24" style="text-align: right; font-size: 18px"> X{{ item.buy_num }} </el-col>
+              <el-col :span="24" style="text-align: right; font-size: 18px"> X{{ item.buy_num }} </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>
+          <pay-1 :info="info" :total_detail="total_detail" :pay="pay"></pay-1>
         </el-col>
       </el-col>
     </el-row>
@@ -153,7 +126,10 @@ const { mapActions } = createNamespacedHelpers('order');
 export default {
   name: 'form-1',
   props: { id: { type: String } },
-  components: {},
+  components: {
+    add1: () => import('@/components/orderParts/parts/add-1.vue'),
+    pay1: () => import('@/components/orderParts/parts/order/pay-1.vue'),
+  },
   data: function () {
     return {
       info: {},
@@ -170,7 +146,7 @@ export default {
     await this.search();
   },
   methods: {
-    ...mapActions(['query', 'fetch', 'create', 'update']),
+    ...mapActions(['query', 'fetch', 'create', 'cancel', 'update']),
     // 查询
     async search() {
       let res = await this.fetch(this.id);
@@ -190,6 +166,20 @@ export default {
       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');
@@ -238,7 +228,6 @@ export default {
       word-break: break-all;
       p {
         color: red;
-        font-size: 20px;
       }
       .spanfour {
         color: blue;
@@ -248,8 +237,5 @@ export default {
       margin: 4px 0;
     }
   }
-  .bode {
-    border-bottom: 1px solid rgb(238, 237, 237);
-  }
 }
 </style>

+ 12 - 52
src/components/orderParts/detail/detail_sales_orderDetail.vue

@@ -13,19 +13,7 @@
           <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
         </el-col>
         <el-col :span="10" 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>
+          <add-1 :address="address"></add-1>
           <el-col :span="24" class="shop"> <i class="el-icon-s-shop"></i>{{ shop.name }}</el-col>
           <el-col :span="24" v-for="item in list" :key="item._id || item.set_id">
             <el-col :span="24" class="goods bode" v-if="!item.is_set">
@@ -65,12 +53,13 @@
                 <p>{{ item.is_afterSale == true ? '已申请售后' : '未申请售后' }}</p>
                 <p>{{ item.is_rate == true ? '已评价' : '未评价' }}</p>
               </el-col>
-              <el-col :span="24" class="bode">
+              <el-col :span="24">
                 <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>
+            <act-1 v-if="item.act" :list="list"></act-1>
             <el-col :span="24" class="goods bode" v-if="item.is_set == '0'">
               <el-col :span="24" style="text-align: center; font-size: 18px">{{ item.name || '套装名称' }}</el-col>
               <el-col :span="24" v-for="i in item.goods" :key="i.spec._id">
@@ -111,42 +100,8 @@
               </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" 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 :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 :span="24">
+            <pay-1 :form="info" :total_detail="total_detail" :pay="pay"></pay-1>
           </el-col>
         </el-col>
       </el-col>
@@ -212,7 +167,12 @@ 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') },
+  components: {
+    add1: () => import('@/components/orderParts/parts/add-1.vue'),
+    pay1: () => import('@/components/orderParts/parts/orderDetail/pay-1.vue'),
+    cUpload: () => import('@/components/usual/c-upload.vue'),
+    act1: () => import('@/components/orderParts/parts/act-1.vue'),
+  },
   data: function () {
     return {
       info: {},
@@ -430,7 +390,7 @@ export default {
 <style lang="less" scoped>
 .main {
   .one {
-    margin: 10px 0 0 5%;
+    margin: 10px 0 0 15%;
     padding: 5px;
     .add {
       border-bottom: 2px dashed #ccc;

+ 111 - 0
src/components/orderParts/parts/act-1.vue

@@ -0,0 +1,111 @@
+<template>
+  <div id="goodsSet-1">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" v-for="item in list" :key="item._id || item.set_id">
+          <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-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'goodsSet-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.goods {
+  padding: 10px 0;
+  .image {
+    padding: 0 10px 0 0;
+
+    height: 100px;
+    width: 150px;
+  }
+  .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>

+ 54 - 0
src/components/orderParts/parts/add-1.vue

@@ -0,0 +1,54 @@
+<template>
+  <div id="add-1">
+    <el-row>
+      <el-col :span="24" class="main">
+        <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>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'add-1',
+  props: {
+    address: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.add {
+  border-bottom: 2px dashed #ccc;
+  margin: 0 0 5px 0;
+  padding: 5px 0;
+}
+</style>

+ 1 - 1
src/components/orderParts/parts/detail-1.vue

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

+ 1 - 1
src/components/orderParts/parts/detail-3.vue

@@ -56,7 +56,7 @@ const { mapActions: goods } = createNamespacedHelpers('goods');
 export default {
   name: 'card-1',
   props: { statusList: { type: Array } },
-  components: { search1: () => import('../search-3.vue') },
+  components: { search1: () => import('@/components/orderParts/search/search-3.vue') },
   data: function () {
     return {
       loadings: true,

+ 96 - 0
src/components/orderParts/parts/goodsSet-1.vue

@@ -0,0 +1,96 @@
+<template>
+  <div id="goodsSet-1">
+    <!-- <el-row> -->
+    <!-- <el-col :span="24" class="main"> -->
+    <el-col :span="24" v-for="item in list" :key="item._id || item.set_id">
+      <el-col :span="24" class="goods bode" v-if="item.is_set == '0'">
+        <el-col :span="24" style="text-align: center; font-size: 18px">{{ item.name || '套装名称' }}</el-col>
+        <el-col :span="24" v-for="i in item.goods" :key="i.spec._id">
+          <el-col :span="24" class="bode">
+            <el-col :span="6" class="image">
+              <el-image v-if="i.spec.file && i.spec.file.length != 0" :src="i.spec.file[0].url" style="width: 120px; height: 100px"></el-image>
+              <el-image v-else-if="i.goods.file && i.goods.file.length != 0" :src="i.goods.file[0].url" style="width: 120px; height: 100px"></el-image>
+            </el-col>
+            <el-col :span="18">
+              <el-col :span="12">
+                <el-col :span="24"> {{ i.goods_name }} </el-col>
+                <el-col :span="24"> 规格:{{ i.spec_name }} </el-col>
+              </el-col>
+              <el-col :span="12" class="money">
+                <el-col :span="24"> X{{ i.set_num }} </el-col>
+                <el-col :span="24">
+                  <span class="spanfour" style="color: blue" @click="toUrl(i.goods.url)"> 查看商品来源:{{ i.goods.source }}</span>
+                </el-col>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="24" style="text-align: right; font-size: 18px"> X{{ item.buy_num }} </el-col>
+      </el-col>
+    </el-col>
+    <!-- </el-col>
+    </el-row> -->
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'goodsSet-1',
+  props: {
+    list: { type: Array },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.goods {
+  padding: 10px 0;
+  .image {
+    padding: 0 10px 0 0;
+    margin: 4px 0;
+    // height: 100px;
+    // width: 150px;
+  }
+  .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>

+ 155 - 0
src/components/orderParts/parts/order/goods-1.vue

@@ -0,0 +1,155 @@
+<template>
+  <div id="goods-1">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" v-for="item in list" :key="item._id || item.set_id">
+          <el-col :span="24" v-if="!item.set_id">
+            <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 in item.goods" :key="goods._id">
+              <el-col :span="24" class="goods bode">
+                <el-col :span="6">
+                  <el-image class="image" v-if="goods.file && goods.file.length != 0" :src="goods.file[0].url" style="width: 120px; height: 100px"></el-image>
+                  <el-image
+                    class="image"
+                    v-else-if="goods.goods.file && goods.goods.file.length != 0"
+                    :src="goods.goods.file[0].url"
+                    style="width: 120px; height: 100px"
+                  ></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>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'goods-1',
+  props: {
+    list: { type: Array },
+    info: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.shop {
+  padding: 4px 0;
+  font-size: 18px;
+  border-bottom: 1px solid #ccc;
+}
+.goods {
+  padding: 10px 0;
+  .image {
+    padding: 0 10px 0 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>

+ 81 - 0
src/components/orderParts/parts/order/pay-1.vue

@@ -0,0 +1,81 @@
+<template>
+  <div id="pay-1">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="24" class="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="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-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'pay-1',
+  props: {
+    info: { type: Object },
+    total_detail: { type: Array },
+    pay: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.bode {
+  border-bottom: 1px solid rgb(238, 237, 237);
+}
+.el-col {
+  margin: 4px 0;
+}
+.other {
+  text-align: right;
+  word-break: break-all;
+  p {
+    color: red;
+    font-size: 20px;
+  }
+  .spanfour {
+    color: blue;
+  }
+}
+</style>

+ 105 - 0
src/components/orderParts/parts/orderDetail/goods-1.vue

@@ -0,0 +1,105 @@
+<template>
+  <div id="goods-1">
+    <!-- <el-row>
+      <el-col :span="24" class="main"> -->
+    <el-col :span="24" v-for="(item, index) in list" :key="index">
+      <el-col :span="24" class="goods" v-if="!item.is_set">
+        <el-col :span="6" class="image">
+          <el-image v-if="item.file && item.file.length != 0" :src="item.file[0].url" style="width: 120px; height: 100px"></el-image>
+          <el-image v-else-if="item.goods.file && item.goods.file" :src="item.goods.file[0].url" style="width: 120px; height: 100px"></el-image>
+          <el-image v-else-if="item.url" :src="item.url" style="width: 120px; height: 100px"> </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 :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>
+    <!-- </el-col>
+    </el-row> -->
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'goods-1',
+  props: {
+    list: { type: Array },
+    form: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.shop {
+  padding: 4px 0;
+  font-size: 18px;
+  border-bottom: 1px solid #ccc;
+}
+.goods {
+  padding: 10px 0;
+  .image {
+    padding: 0 10px 0 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>

+ 97 - 0
src/components/orderParts/parts/orderDetail/pay-1.vue

@@ -0,0 +1,97 @@
+<template>
+  <div id="pay-1">
+    <el-row>
+      <el-col :span="24" class="main">
+        <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 :span="24" class="bode" v-if="form.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="form.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-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'pay-1',
+  props: {
+    form: { type: Object },
+    total_detail: { type: Array },
+    pay: { type: Object },
+  },
+  components: {},
+  data: function () {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.bode {
+  border-bottom: 1px solid rgb(238, 237, 237);
+}
+.el-col {
+  margin: 4px 0;
+}
+.other {
+  text-align: right;
+  word-break: break-all;
+  p {
+    color: red;
+    font-size: 20px;
+  }
+  .spanfour {
+    color: blue;
+  }
+}
+</style>

src/components/orderParts/search-1.vue → src/components/orderParts/search/search-1.vue


src/components/orderParts/search-2.vue → src/components/orderParts/search/search-2.vue


src/components/orderParts/search-3.vue → src/components/orderParts/search/search-3.vue


+ 1 - 1
src/views/platGroup/order/index.vue

@@ -66,7 +66,7 @@ export default {
     card2: () => import('@/components/orderParts/card-4.vue'),
     group_order: () => import('@/components/orderParts/detail/group_order.vue'),
     group_sales: () => import('@/components/orderParts/detail/group_sales.vue'),
-    search1: () => import('@/components/orderParts/search-3.vue'),
+    search1: () => import('@/components/orderParts/search/search-3.vue'),
   },
   data: function () {
     return {

+ 24 - 22
src/views/platmanag/order/index.vue

@@ -18,9 +18,6 @@
               <el-tab-pane name="4" label="待收货"> </el-tab-pane>
               <el-tab-pane name="5" label="已收货"> </el-tab-pane>
               <el-tab-pane name="6" label="取消订单"> </el-tab-pane>
-              <el-tab-pane name="7" label="申请售后"> </el-tab-pane>
-              <el-tab-pane name="8" label="正在处理售后"> </el-tab-pane>
-              <el-tab-pane name="9" label="售后结束"> </el-tab-pane>
               <!-- 待付款 -->
               <el-col :span="24" v-if="activeName == '1'">
                 <card-1 :statusList="statusList" @toDetail="toDetail" @toSales="toSales"></card-1>
@@ -50,10 +47,10 @@
             </el-tabs>
           </el-col>
         </span>
-        <detail_order v-if="view === 'card1_detail'" :id="order_id" @toBack="toBack"></detail_order>
-        <detail_sales_order v-else-if="view === 'card1_sales'" :id="sales_id" @toBack="toBack"></detail_sales_order>
-        <detail_orderDetail v-else-if="view === 'card_detail'" :id="order_id" @toBack="toBack"></detail_orderDetail>
-        <detail_sales_orderDetail v-else-if="view === 'card_sales'" :id="sales_id" :status="status" @toBack="toBack"></detail_sales_orderDetail>
+        <order v-if="view === 'order'" :id="order_id" @toBack="toBack"></order>
+        <orderDetaile v-else-if="view === 'orderDetaile'" :id="order_id" @toBack="toBack"></orderDetaile>
+        <salseOrder v-else-if="view === 'salseOrder'" :id="sales_id" @toBack="toBack"></salseOrder>
+        <salseOrderDetail v-else-if="view === 'salseOrderDetail'" :id="sales_id" :status="status" @toBack="toBack"></salseOrderDetail>
       </el-col>
     </el-row>
   </div>
@@ -71,12 +68,17 @@ export default {
   name: 'index',
   props: {},
   components: {
-    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'),
+    // 未付款---列表
+    card1: () => import('@/components/orderParts/card/card-1.vue'),
+    // 未付款---详情
+    order: () => import('@/components/orderParts/detail/order.vue'),
+    // 待发货,待收货,已收货---详情
+    orderDetaile: () => import('@/components/orderParts/detail/orderDetaile.vue'),
+    // 未付款----申请售后
+    salseOrder: () => import('@/components/orderParts/detail/salseOrder.vue'),
+    // 待发货,待收货,已收货----申请售后
+    salseOrderDetail: () => import('@/components/orderParts/detail/salseOrderDetail.vue'),
+    search1: () => import('@/components/orderParts/search/search-1.vue'),
   },
   data: function () {
     return {
@@ -136,13 +138,11 @@ export default {
         delete condition.buy_time;
       }
       if (this.activeName == '2') info.status = '1';
+      else if (this.activeName == '1') info.status = '0';
       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 query = { skip, limit, ...info };
       if (Object.keys(condition).length > 0) query = { ...query, ...condition };
       let res = await this.query(query);
@@ -167,24 +167,26 @@ export default {
         }
       });
     },
-    // 未付款
+    // 未付款---详情
     toDetail(val) {
       this.$set(this, `order_id`, val);
-      this.$set(this, `view`, 'card1_detail');
+      this.$set(this, `view`, 'order');
     },
+    // 未付款----申请售后
     toSales(val) {
       this.$set(this, `sales_id`, val);
-      this.$set(this, `view`, 'card1_sales');
+      this.$set(this, `view`, 'salseOrder');
     },
-    // 待发货,待收货,已收货
+    // 待发货,待收货,已收货---详情
     toDetails({ data }) {
       this.$set(this, `order_id`, data._id);
-      this.$set(this, `view`, 'card_detail');
+      this.$set(this, `view`, 'orderDetaile');
     },
+    // 待发货,待收货,已收货-----申请售后
     toSaless({ data }) {
       this.$set(this, `sales_id`, data._id);
       this.$set(this, `status`, data.status);
-      this.$set(this, `view`, 'card_sales');
+      this.$set(this, `view`, 'salseOrderDetail');
     },
     handleClick(tab) {
       this.loadings = true;

+ 22 - 34
src/views/selfShop/order/index.vue

@@ -18,9 +18,6 @@
               <el-tab-pane name="4" label="待收货"> </el-tab-pane>
               <el-tab-pane name="5" label="已收货"> </el-tab-pane>
               <el-tab-pane name="6" label="取消订单"> </el-tab-pane>
-              <el-tab-pane name="7" label="申请售后"> </el-tab-pane>
-              <el-tab-pane name="8" label="正在处理售后"> </el-tab-pane>
-              <el-tab-pane name="9" label="售后结束"> </el-tab-pane>
               <!-- 待付款 -->
               <el-col :span="24" v-if="activeName == '1'">
                 <card-1 :statusList="statusList" @toDetail="toDetail" @toSales="toSales"></card-1>
@@ -29,18 +26,7 @@
               <el-col :span="24" v-else-if="activeName == '2'">
                 <card-2 :statusList="statusList" @toDetails="toDetail_t" @toSaless="toSales_t"></card-2>
               </el-col>
-              <el-col
-                :span="24"
-                v-else-if="
-                  activeName == '3' ||
-                  activeName == '4' ||
-                  activeName == '5' ||
-                  activeName == '6' ||
-                  activeName == '7' ||
-                  activeName == '8' ||
-                  activeName == '9'
-                "
-              >
+              <el-col :span="24" v-else-if="activeName == '3' || activeName == '4' || activeName == '5' || activeName == '6'">
                 <el-col :span="24" class="one">
                   <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
                 </el-col>
@@ -55,10 +41,10 @@
             </el-tabs>
           </el-col>
         </span>
-        <detail_order v-if="view === 'card1_detail'" :id="order_id" @toBack="toBack"></detail_order>
-        <detail_sales_order v-else-if="view === 'card1_sales'" :id="sales_id" @toBack="toBack"></detail_sales_order>
-        <detail_orderDetail v-else-if="view === 'card_detail'" :id="order_id" @toBack="toBack"></detail_orderDetail>
-        <detail_sales_orderDetail v-else-if="view === 'card_sales'" :id="sales_id" :status="status" @toBack="toBack"></detail_sales_orderDetail>
+        <order v-if="view === 'order'" :id="order_id" @toBack="toBack"></order>
+        <orderDetaile v-else-if="view === 'orderDetaile'" :id="order_id" @toBack="toBack"></orderDetaile>
+        <salseOrder v-else-if="view === 'salseOrder'" :id="sales_id" @toBack="toBack"></salseOrder>
+        <salseOrderDetail v-else-if="view === 'salseOrderDetail'" :id="sales_id" :status="status" @toBack="toBack"></salseOrderDetail>
       </el-col>
     </el-row>
   </div>
@@ -76,11 +62,15 @@ export default {
   components: {
     card1: () => import('@/components/orderParts/card-2.vue'),
     card2: () => import('@/components/orderParts/card-3.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'),
+    // 未付款---详情
+    order: () => import('@/components/orderParts/detail/order.vue'),
+    // 待发货,待收货,已收货---详情
+    orderDetaile: () => import('@/components/orderParts/detail/orderDetaile.vue'),
+    // 未付款----申请售后
+    salseOrder: () => import('@/components/orderParts/detail/salseOrder.vue'),
+    // 待发货,待收货,已收货----申请售后
+    salseOrderDetail: () => import('@/components/orderParts/detail/salseOrderDetail.vue'),
+    search1: () => import('@/components/orderParts/search/search-2.vue'),
   },
   data: function () {
     const that = this;
@@ -95,7 +85,6 @@ export default {
       order_id: '',
       sales_id: '',
       status: '',
-
       searchForm: {},
       list: [],
       total: 0,
@@ -136,12 +125,11 @@ export default {
           delete condition.buy_time;
         }
         if (this.activeName == '3') info.status = '2-';
+        else if (this.activeName == '2') info.status = '1';
+        else if (this.activeName == '1') info.status = '0';
         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)) {
@@ -154,31 +142,31 @@ export default {
     // 未付款
     toDetail(val) {
       this.$set(this, `order_id`, val);
-      this.$set(this, `view`, 'card1_detail');
+      this.$set(this, `view`, 'order');
     },
     toSales(val) {
       this.$set(this, `sales_id`, val);
-      this.$set(this, `view`, 'card1_sales');
+      this.$set(this, `view`, 'salseOrder');
     },
     // 待收货,已收货
     toDetails({ data }) {
       this.$set(this, `order_id`, data._id);
-      this.$set(this, `view`, 'card_detail');
+      this.$set(this, `view`, 'orderDetaile');
     },
     toSaless({ data }) {
       this.$set(this, `sales_id`, data._id);
       this.$set(this, `status`, data.status);
-      this.$set(this, `view`, 'card_sales');
+      this.$set(this, `view`, 'salseOrderDetail');
     },
     // 待发货
     toDetail_t(data) {
       this.$set(this, `order_id`, data);
-      this.$set(this, `view`, 'card_detail');
+      this.$set(this, `view`, 'orderDetaile');
     },
     toSales_t(data) {
       this.$set(this, `sales_id`, data.id);
       this.$set(this, `status`, data.status);
-      this.$set(this, `view`, 'card_sales');
+      this.$set(this, `view`, 'salseOrderDetail');
     },
     handleClick(tab) {
       this.loadings = true;