Преглед на файлове

修改商品评价,添加售后详细信息

YY преди 2 години
родител
ревизия
9d20a4678f
променени са 3 файла, в които са добавени 69 реда и са изтрити 7 реда
  1. 19 0
      src/components/salesParts/detail.vue
  2. 48 5
      src/views/selfShop/goodsRate/detail.vue
  3. 2 2
      src/views/selfShop/goodsRate/index.vue

+ 19 - 0
src/components/salesParts/detail.vue

@@ -12,6 +12,19 @@
           <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
         </el-col>
         <el-col :span="8" class="one">
+          <el-col :span="24" class="add">
+            <el-col :span="4">买家:</el-col>
+            <el-col :span="20"> {{ customers.name }},{{ customers.phone }} </el-col>
+          </el-col>
+          <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 v-if="info.type == '1' || info.type == '2' || info.type == '3'">
             <el-col :span="24" class="goods">
@@ -162,6 +175,10 @@ export default {
       goods: {},
       // 规格
       good: {},
+      // 地址
+      address: {},
+      // 购买人
+      customers: {},
       transport: {},
       typeList: [],
       statusList: [],
@@ -198,6 +215,8 @@ export default {
         if (status) res.data.zhStatus = status.label;
         this.$set(this, `info`, res.data);
         this.$set(this, `shop`, res.data.shop);
+        this.$set(this, `address`, res.data.order_detail.address);
+        this.$set(this, `customers`, res.data.order_detail.customer);
         if (res.data.type == '4' || res.data.type == '5') this.$set(this, `list`, res.data.order_detail.goods); // 商品
         else if (res.data.type == '1' || res.data.type == '2' || res.data.type == '3') {
           if (res.data.transport) this.$set(this, `transport`, res.data.transport);

+ 48 - 5
src/views/selfShop/goodsRate/detail.vue

@@ -1,10 +1,22 @@
 <template>
   <div id="form-1">
     <el-row>
-      <el-col :span="24" class="main animate__animated animate__backInRight">
+      <el-col
+        :span="24"
+        class="main animate__animated animate__backInRight"
+        v-loading="loadings"
+        element-loading-text="拼命加载中"
+        element-loading-spinner="el-icon-loading"
+      >
         <el-col class="top-btn">
           <el-button type="primary" size="mini" @click="toBack()">返回</el-button>
         </el-col>
+        <el-col :span="24" class="goods">
+          <el-col :span="24" class="goods_name">{{ goods.name }}</el-col>
+          <el-col v-for="(item, index) in goods.file" :key="index" :span="2">
+            <el-image :src="item.url" class="image" :preview-src-list="getUrl()"></el-image>
+          </el-col>
+        </el-col>
         <el-col :span="24" v-if="total == 0">
           <el-empty description="该商品暂无评价"></el-empty>
         </el-col>
@@ -59,7 +71,7 @@
               @size-change="handleCurrentChange"
               @current-change="currentChange"
               :current-page.sync="skip"
-              :page-sizes="[10, 50, 100, 150, 200]"
+              :page-sizes="[1, 10, 50, 100, 150, 200]"
               :page-size="limit"
               layout="sizes,total, prev, pager, next"
               :total="total"
@@ -77,6 +89,7 @@ const _ = require('lodash');
 const moment = require('moment');
 import { mapState, mapGetters, createNamespacedHelpers } from 'vuex';
 const { mapActions } = createNamespacedHelpers('goodsRate');
+const { mapActions: goods } = createNamespacedHelpers('goods');
 
 export default {
   name: 'form-1',
@@ -84,6 +97,7 @@ export default {
   components: {},
   data: function () {
     return {
+      loadings: true,
       list: [],
       goods: {},
       skip: 1,
@@ -98,19 +112,22 @@ export default {
   },
   methods: {
     ...mapActions(['query', 'fetch', 'create', 'update', 'delete']),
+    ...goods({ goodsFetch: 'fetch' }),
     // 查询
     async search({ skip = 0, limit = this.limit, ...info } = {}) {
       info.goods = this.id;
       let res;
+      res = await this.goodsFetch(this.id);
+      if (this.$checkRes(res)) {
+        this.$set(this, 'goods', res.data);
+      }
       res = await this.query({ skip, limit, ...info });
       if (this.$checkRes(res)) {
         for (const p1 of res.data) {
           for (const p2 of p1.reply) {
             let url = [];
             if (p2.file) {
-              for (const p3 of p2.file) {
-                url.push(p3.url);
-              }
+              for (const p3 of p2.file) url.push(p3.url);
               p2.url = url;
             }
           }
@@ -118,12 +135,21 @@ export default {
         this.$set(this, 'list', res.data);
         this.$set(this, 'total', res.total);
       }
+      this.loadings = false;
     },
     getCheck() {
       for (const p1 of this.list) {
         return _.get(p1.customer, 'icon[0].url');
       }
     },
+    getUrl() {
+      let goods = this.goods;
+      let list = [];
+      for (const p1 of goods.file) {
+        list.push(p1.url);
+      }
+      return list;
+    },
     getName() {
       for (const p1 of this.list) {
         return _.get(p1.customer, 'name');
@@ -192,6 +218,23 @@ export default {
 .el-col {
   margin: 2px 0;
 }
+.goods {
+  border: 1px solid rgb(255, 181, 181);
+  margin: 10px 0;
+  padding: 0 10px 10px 10px;
+  text-align: center;
+  .goods_name {
+    margin: 10px;
+    font-size: 20px;
+    color: rgb(210, 69, 30);
+  }
+  .image {
+    width: 100px;
+    height: 100px;
+    border: 1px solid #ccc;
+  }
+}
+
 .one {
   margin: 20px 0 0 0;
   .one_1 {

+ 2 - 2
src/views/selfShop/goodsRate/index.vue

@@ -70,9 +70,9 @@ export default {
       }
       this.loadings = false;
     },
-    // 修改
+    // 查看评价
     async toEdit({ data }) {
-      this.$set(this, `id`, data.id);
+      this.$set(this, `id`, data._id);
       this.$set(this, `view`, 'info');
     },
     toBack() {