瀏覽代碼

发货清单

YY 2 年之前
父節點
當前提交
1bdeaa8964

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

@@ -47,6 +47,12 @@ export default [
     meta: { title: '自营店铺-订单管理-详细信息' },
     component: () => import(/* webpackChunkName: "system_order_detail_orderDetail" */ '@/views/system/order/detail_orderDetail.vue'),
   },
+  {
+    path: '/system/order/deliver',
+    name: 'system_order_deliver',
+    meta: { title: '自营店铺-订单管理-发货清单' },
+    component: () => import(/* webpackChunkName: "system_order_deliver" */ '@/views/system/order/deliver.vue'),
+  },
   {
     path: '/system/coupon',
     name: 'system_coupon',

+ 6 - 7
src/views/system/coupon/detail.vue

@@ -212,12 +212,12 @@ export default {
           data.tags = _.get(data, 'use_limit_config.tags');
           data.time = _.get(data, 'expire_config.fixed[0]');
           data.days = _.get(data, 'expire_config.days');
-          if (data.shop) {
-            let res = await this.shopFetch(data.shop);
-            if (this.$checkRes(res)) {
-              data.shop = res.data.name;
-            }
-          }
+          // if (data.shop) {
+          //   let res = await this.shopFetch(data.shop);
+          //   if (this.$checkRes(res)) {
+          //     data.shop = res.data.name;
+          //   }
+          // }
           this.$set(this, `form`, data);
         }
       } else {
@@ -251,7 +251,6 @@ export default {
           else res = await this.create(data);
           if (this.$checkRes(res, '维护信息成功', `${res.errmsg}`)) this.toBack();
         } else {
-          console.log('error submit!!');
           return false;
         }
       });

+ 125 - 0
src/views/system/order/deliver.vue

@@ -0,0 +1,125 @@
+<template>
+  <div id="form-1">
+    <el-row>
+      <el-col :span="24" class="main animate__animated animate__backInRight">
+        <el-col class="top_btn">
+          <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
+        </el-col>
+        <el-col :span="24" class="one" v-if="data"> <span>发货清单</span> </el-col>
+        <el-col :span="24" class="two" v-if="data">
+          <el-col :span="12" v-for="(item, index) in data" :key="index">
+            <el-card class="box-card">
+              <div slot="header" class="clearfix">
+                <el-col class="shop">{{ item.shop.name }}</el-col>
+                <el-col>买家:{{ item.customer.name }}</el-col>
+                <el-col>收货人:{{ item.address.name }},{{ item.address.phone }}</el-col>
+                <el-col>收货人地址:{{ item.address.province }},{{ item.address.city }},{{ item.address.area }},{{ item.address.address }}</el-col>
+                <el-button style="float: right" type="primary" @click="toFile()">导出</el-button>
+              </div>
+              <el-table border :data="item.goods" style="width: 100%">
+                <el-table-column prop="goods.name" label="商品姓名" width="180"> </el-table-column>
+                <el-table-column prop="name" label="商品规格"> </el-table-column>
+                <el-table-column prop="buy_num" label="商品数量"> </el-table-column>
+              </el-table>
+              <el-col>
+                <!-- <data-table :fields="fields" :data="item.goods"> </data-table> -->
+              </el-col>
+            </el-card>
+          </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: {},
+  components: {},
+  data: function () {
+    return {
+      fields: [
+        { label: '商品名称', model: 'goods.name' },
+        { label: '商品规格', model: 'name' },
+        { label: '商品数量', model: 'buy_num' },
+      ],
+    };
+  },
+  async created() {
+    await this.search();
+  },
+  methods: {
+    ...mapActions(['query', 'fetch', 'create', 'update']),
+    // 查询
+    async search() {
+      console.log(this.data);
+    },
+    toFile() {
+      this.$message({ message: '导出成功', type: 'success' });
+    },
+    // 返回
+    toBack() {
+      window.history.go('-1');
+    },
+  },
+  computed: {
+    data() {
+      return this.$route.query.data;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+  watch: {
+    test: {
+      deep: true,
+      immediate: true,
+      handler(val) {},
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  .top_btn {
+    margin: 0 0 10px 0;
+  }
+  .one {
+    margin: 0 0 10px 0;
+
+    span:nth-child(1) {
+      font-size: 20px;
+      font-weight: 700;
+      margin-right: 10px;
+    }
+  }
+  .two {
+    // margin: 5px;
+    .box-card {
+      margin: 5px;
+    }
+    .shop {
+      text-align: center;
+      font-size: 18px;
+    }
+    .item {
+      margin-bottom: 18px;
+    }
+
+    .clearfix:before,
+    .clearfix:after {
+      display: table;
+      content: '';
+    }
+    .clearfix:after {
+      clear: both;
+    }
+  }
+}
+</style>

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

@@ -41,7 +41,7 @@ export default {
   data: function () {
     const that = this;
     return {
-      activeName: '1',
+      activeName: '2',
       // 类型列表
       statusList: [],
       // 店铺列表

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

@@ -5,6 +5,7 @@
         <el-col :span="24" class="one">
           <search-1 :form="searchForm" @onSubmit="search" @querySearch="querySearch" @toReset="toClose" :shopList="shopList"> </search-1>
         </el-col>
+        <el-col :span="24" class="one"> <el-button type="primary" size="mini" @click="toDeliver()">生成发货清单</el-button> </el-col>
         <data-table
           :select="true"
           :selected="selected"
@@ -48,6 +49,9 @@ export default {
       // 多选值
       selected: [],
       shopList: [],
+      // 发货清单
+      deliverList: [],
+      deliver: '0',
     };
   },
   async created() {
@@ -71,6 +75,7 @@ export default {
         this.$set(this, 'total', res.total);
       }
     },
+    // 详情
     toDetail({ data }) {
       this.$router.push({ path: '/system/order/detail_orderDetail', query: { id: data.id } });
     },
@@ -80,7 +85,15 @@ export default {
     },
     // 多选
     handleSelect(data) {
-      this.$emit('handleSelect');
+      this.$set(this, 'deliverList', data);
+    },
+    // 生成发货清单
+    toDeliver() {
+      // if (this.deliver == '1') {
+      this.$router.push({ path: '/system/order/deliver', query: { data: this.deliverList } });
+      // } else {
+      //   this.$message('请选择订单');
+      // }
     },
     // 店铺名称远程查询
     async querySearch(value) {

+ 12 - 2
src/views/system/service/index.vue

@@ -1,5 +1,6 @@
 <template>
   <div id="goods">
+    <el-col :span="24" class="one"> <span>客服</span> </el-col>
     <template v-if="view === 'list'">
       <data-table ref="dataTable" :fields="fields" :opera="opera" :data="list" :total="total" :limit="limit" @query="search" @edit="toEdit"></data-table>
     </template>
@@ -59,7 +60,6 @@ export default {
     async search({ skip = 0, limit = this.limit, ...info } = {}) {
       const res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
-        console.log(res);
         this.$set(this, `list`, res.data);
         this.$set(this, `total`, res.total);
       }
@@ -69,4 +69,14 @@ export default {
 };
 </script>
 
-<style lang="less" scoped></style>
+<style lang="less" scoped>
+.one {
+    margin: 0 0 10px 0;
+
+    span:nth-child(1) {
+      font-size: 20px;
+      font-weight: 700;
+      margin-right: 10px;
+    }
+  }
+</style>