Sfoglia il codice sorgente

卓美,财务审核管理、订单相关导出显示审核信息

yjwang 2 settimane fa
parent
commit
0c1491facb

+ 47 - 0
src/api/hisStore/orderRefundReason.js

@@ -0,0 +1,47 @@
+import request from '@/utils/request'
+
+export function listOrderRefundReason(query) {
+  return request({
+    url: '/store/store/orderRefundReason/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getOrderRefundReason(id) {
+  return request({
+    url: '/store/store/orderRefundReason/' + id,
+    method: 'get'
+  })
+}
+
+export function getByOrderCode(orderCode) {
+  return request({
+    url: '/store/store/orderRefundReason/getByOrderCode',
+    method: 'get',
+    params: { orderCode }
+  })
+}
+
+export function addOrderRefundReason(data) {
+  return request({
+    url: '/store/store/orderRefundReason',
+    method: 'post',
+    data: data
+  })
+}
+
+export function updateOrderRefundReason(data) {
+  return request({
+    url: '/store/store/orderRefundReason',
+    method: 'put',
+    data: data
+  })
+}
+
+export function delOrderRefundReason(ids) {
+  return request({
+    url: '/store/store/orderRefundReason/' + ids,
+    method: 'delete'
+  })
+}

+ 53 - 0
src/api/hisStore/refundReason.js

@@ -0,0 +1,53 @@
+import request from '@/utils/request'
+
+export function listRefundReason(query) {
+  return request({
+    url: '/store/store/refundReason/list',
+    method: 'get',
+    params: query
+  })
+}
+
+export function getChildrenByParentId(parentId) {
+  return request({
+    url: '/store/store/refundReason/children/' + parentId,
+    method: 'get'
+  })
+}
+
+export function getRefundReasonTree() {
+  return request({
+    url: '/store/store/refundReason/tree',
+    method: 'get'
+  })
+}
+
+export function getRefundReason(id) {
+  return request({
+    url: '/store/store/refundReason/' + id,
+    method: 'get'
+  })
+}
+
+export function addRefundReason(data) {
+  return request({
+    url: '/store/store/refundReason',
+    method: 'post',
+    data: data
+  })
+}
+
+export function updateRefundReason(data) {
+  return request({
+    url: '/store/store/refundReason',
+    method: 'put',
+    data: data
+  })
+}
+
+export function delRefundReason(id) {
+  return request({
+    url: '/store/store/refundReason/' + id,
+    method: 'delete'
+  })
+}

+ 39 - 0
src/views/hisStore/components/productAfterSalesOrder.vue

@@ -73,6 +73,16 @@
                   <el-tag  v-for="(item, index) in salesStatusOptions"    v-if="afterSales.salesStatus==item.dictValue" >{{item.dictLabel}}</el-tag>
                 </span>
             </el-descriptions-item>
+            <el-descriptions-item label="财务审核原因"  v-if="afterSales!=null && afterSales.status >= 4">
+                <span>
+                  {{afterSales.auditReasonName}}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="财务审核备注"  v-if="afterSales!=null && afterSales.status >= 4">
+                <span>
+                  {{afterSales.auditRemark}}
+                </span>
+            </el-descriptions-item>
 
         </el-descriptions>
         <div style="margin: 20px 0px">
@@ -193,9 +203,38 @@
         <el-form-item label="退款金额" prop="refundAmount"  >
           <el-input-number v-model="form.refundAmount" :min="0"  />
         </el-form-item>
+        <el-form-item label="一级原因" prop="reasonId1">
+          <el-select v-model="form.reasonId1" placeholder="请选择一级原因" @change="handleReason1Change" style="width: 100%">
+            <el-option
+              v-for="item in reasonList"
+              :key="item.id"
+              :label="item.reasonName"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="二级原因" prop="reasonId2">
+          <el-select v-model="form.reasonId2" placeholder="请选择二级原因" style="width: 100%">
+            <el-option
+              v-for="item in reason2List"
+              :key="item.id"
+              :label="item.reasonName"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="审核备注" prop="auditRemark">
+          <el-input
+            type="textarea"
+            :rows="3"
+            placeholder="请输入审核备注"
+            v-model="form.auditRemark">
+          </el-input>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitAuditForm">确 定</el-button>
+        <el-button @click="audit.open = false">取 消</el-button>
       </div>
     </el-dialog>
     <el-drawer

+ 12 - 0
src/views/hisStore/components/productOrder.vue

@@ -184,6 +184,16 @@
                       {{ order.videoName }}
                     </span>
             </el-descriptions-item>
+            <el-descriptions-item label="财务审核原因" v-if="afterSales!=null && afterSales.auditReasonName">
+                <span>
+                  {{ afterSales.auditReasonName }}
+                </span>
+            </el-descriptions-item>
+            <el-descriptions-item label="财务审核备注" v-if="afterSales!=null && afterSales.auditRemark">
+                <span>
+                  {{ afterSales.auditRemark }}
+                </span>
+            </el-descriptions-item>
       </el-descriptions>
       <div style="margin: 20px 0px"  v-if="order!=null">
         <span class="font-small">
@@ -972,6 +982,7 @@ export default {
       tuiMoneyLogs:[],
       erpOrder:null,
       auditLogs: [],
+      afterSales: null,
       // 数量修改弹窗相关数据
       quantityDialog: {
         title: "修改商品数量",
@@ -1560,6 +1571,7 @@ export default {
             this.payments=response.payments;
             this.tuiMoneyLogs=response.tuiMoneyLogs;
             this.auditLogs = response.auditLogs;
+            this.afterSales = response.afterSales;
         });
      },
     editPayDeliveryHandle() {

+ 342 - 0
src/views/hisStore/refundReason/index.vue

@@ -0,0 +1,342 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="一级原因" prop="reasonName">
+        <el-input
+          v-model="queryParams.reasonName"
+          placeholder="请输入一级原因名称"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['store:refundReason:add']"
+        >新增一级原因</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table
+      v-loading="loading"
+      :data="refundReasonList"
+      row-key="id"
+      @expand-change="handleExpandChange"
+    >
+      <el-table-column type="expand">
+        <template slot-scope="props">
+          <el-table
+            :data="props.row.children"
+            style="margin-left: 50px; width: calc(100% - 50px)"
+            v-loading="props.row.loading"
+          >
+            <el-table-column label="序号" type="index" width="80" align="center" />
+            <el-table-column label="二级原因" prop="reasonName" />
+            <el-table-column label="状态" align="center" prop="status" width="100">
+              <template slot-scope="scope">
+                <el-tag v-if="scope.row.status === 1" type="success">正常</el-tag>
+                <el-tag v-else type="danger">禁用</el-tag>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" width="200">
+              <template slot-scope="scope">
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit"
+                  @click="handleUpdateChild(scope.row, props.row)"
+                  v-hasPermi="['store:refundReason:edit']"
+                >修改</el-button>
+                <el-button
+                  size="mini"
+                  type="text"
+                  icon="el-icon-delete"
+                  @click="handleDeleteChild(scope.row, props.row)"
+                  v-hasPermi="['store:refundReason:remove']"
+                >删除</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </template>
+      </el-table-column>
+      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="一级原因" prop="reasonName" />
+      <el-table-column label="二级原因数量" align="center" width="120">
+        <template slot-scope="scope">
+          {{ scope.row.childrenCount || 0 }}
+        </template>
+      </el-table-column>
+      <el-table-column label="状态" align="center" prop="status" width="100">
+        <template slot-scope="scope">
+          <el-tag v-if="scope.row.status === 1" type="success">正常</el-tag>
+          <el-tag v-else type="danger">禁用</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="280">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['store:refundReason:edit']"
+          >编辑</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-plus"
+            @click="handleAddChild(scope.row)"
+            v-hasPermi="['store:refundReason:add']"
+          >新增二级原因</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['store:refundReason:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="原因名称" prop="reasonName">
+          <el-input v-model="form.reasonName" placeholder="请输入原因名称" />
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="form.status" placeholder="请选择状态">
+            <el-option label="正常" :value="1" />
+            <el-option label="禁用" :value="0" />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="二级原因" v-if="form.typeLevel === 1 && form.id == null">
+          <el-button type="primary" size="mini" @click="addChildReason">添加二级原因</el-button>
+          <div v-for="(item, index) in form.childrenReasons" :key="index" style="margin-top: 10px;">
+            <el-input v-model="item.reasonName" placeholder="请输入二级原因名称" style="width: 400px;" />
+            <el-button type="danger" size="mini" @click="removeChildReason(index)" style="margin-left: 10px;">删除</el-button>
+          </div>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listRefundReason, getChildrenByParentId, getRefundReason, addRefundReason, updateRefundReason, delRefundReason } from "@/api/hisStore/refundReason";
+
+export default {
+  name: "RefundReason",
+  data() {
+    return {
+      loading: true,
+      showSearch: true,
+      total: 0,
+      refundReasonList: [],
+      title: "",
+      open: false,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        reasonName: null,
+        typeLevel: 1
+      },
+      form: {},
+      rules: {
+        reasonName: [
+          { required: true, message: "原因名称不能为空", trigger: "blur" }
+        ],
+        status: [
+          { required: true, message: "请选择状态", trigger: "change" }
+        ]
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    getList() {
+      this.loading = true;
+      listRefundReason(this.queryParams).then(response => {
+        this.refundReasonList = response.rows.map(item => {
+          return {
+            ...item,
+            children: [],
+            loading: false
+          };
+        });
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    handleExpandChange(row, expandedRows) {
+      if (expandedRows.find(item => item.id === row.id)) {
+        row.loading = true;
+        getChildrenByParentId(row.id).then(response => {
+          row.children = response.data;
+          row.childrenCount = response.data.length;
+          row.loading = false;
+        });
+      }
+    },
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    reset() {
+      this.form = {
+        id: null,
+        parentId: 0,
+        reasonName: null,
+        typeLevel: 1,
+        status: 1,
+        childrenReasons: []
+      };
+      this.resetForm("form");
+    },
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    handleAdd() {
+      this.reset();
+      this.form.childrenReasons = [];
+      this.open = true;
+      this.title = "新增一级原因";
+    },
+    handleAddChild(row) {
+      this.reset();
+      this.form.parentId = row.id;
+      this.form.typeLevel = 2;
+      this.open = true;
+      this.title = "新增二级原因";
+    },
+    addChildReason() {
+      this.form.childrenReasons.push({
+        reasonName: '',
+        status: 1
+      });
+    },
+    removeChildReason(index) {
+      this.form.childrenReasons.splice(index, 1);
+    },
+    handleUpdate(row) {
+      this.reset();
+      getRefundReason(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "编辑一级原因";
+      });
+    },
+    handleUpdateChild(row, parent) {
+      this.reset();
+      getRefundReason(row.id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "编辑二级原因";
+      });
+    },
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateRefundReason(this.form).then(response => {
+              this.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRefundReason(this.form).then(response => {
+              if (this.form.typeLevel === 1 && this.form.childrenReasons && this.form.childrenReasons.length > 0) {
+                const parentId = response.data;
+                const promises = this.form.childrenReasons
+                  .filter(item => item.reasonName && item.reasonName.trim() !== '')
+                  .map(item => {
+                    return addRefundReason({
+                      parentId: parentId,
+                      reasonName: item.reasonName,
+                      typeLevel: 2,
+                      status: item.status
+                    });
+                  });
+                if (promises.length > 0) {
+                  Promise.all(promises).then(() => {
+                    this.msgSuccess("新增成功");
+                    this.open = false;
+                    this.getList();
+                  });
+                } else {
+                  this.msgSuccess("新增成功");
+                  this.open = false;
+                  this.getList();
+                }
+              } else {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              }
+            });
+          }
+        }
+      });
+    },
+    handleDelete(row) {
+      this.$confirm('确定删除该一级原因吗,删除将影响其下属二级原因都被同步删除,请谨慎操作。', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return delRefundReason(row.id);
+      }).then(() => {
+        this.getList();
+        this.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    handleDeleteChild(row, parent) {
+      this.$confirm('是否确认删除该二级原因?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(() => {
+        return delRefundReason(row.id);
+      }).then(() => {
+        getChildrenByParentId(parent.id).then(response => {
+          parent.children = response.data;
+          parent.childrenCount = response.data.length;
+        });
+        this.msgSuccess("删除成功");
+      }).catch(() => {});
+    }
+  }
+};
+</script>

+ 6 - 0
src/views/hisStore/storeAfterSales/index.vue

@@ -188,6 +188,9 @@
               <div prop="serviceType" v-for="(item, index) in serviceTypeOptions"    v-if="scope.row.serviceType==item.dictValue">{{item.dictLabel}}</div>
           </template>
       </el-table-column>
+      <el-table-column label="售后原因一级" align="center" prop="reasonValue1" />
+      <el-table-column label="售后原因二级" align="center" prop="reasonValue2" />
+      <el-table-column label="售后备注" align="center" prop="auditRemark" />
       <el-table-column label="申请原因" align="center" prop="reasons" />
       <el-table-column label="说明" align="center" prop="explains" />
       <el-table-column label="状态" align="center" prop="status" >
@@ -216,6 +219,9 @@
       <el-table-column label="客户退回物流单号" align="center" prop="deliverySn" />
 
       <el-table-column label="提交时间" align="center" prop="createTime" />
+      <el-table-column label="售后原因一级" align="center" prop="reasonValue1" />
+      <el-table-column label="售后原因二级" align="center" prop="reasonValue2" />
+      <el-table-column label="售后备注" align="center" prop="auditRemark" />
 
       <el-table-column label="操作" align="center" fixed="right" width="100px" class-name="small-padding fixed-width">
         <template slot-scope="scope">

+ 6 - 0
src/views/hisStore/storeOrder/healthStoreList.vue

@@ -548,6 +548,9 @@
         </template>
       </el-table-column>
 
+      <el-table-column label="售后原因一级" align="center" prop="reasonValue1" width="120px" />
+      <el-table-column label="售后原因二级" align="center" prop="reasonValue2" width="120px" />
+      <el-table-column label="售后备注" align="center" prop="auditRemark" width="150px" />
       <el-table-column align="center" fixed="right" label="操作" width="80px">
         <template slot-scope="scope">
           <el-button
@@ -1120,6 +1123,9 @@ export default {
         { key: 'deliveryName', label: '快递公司', checked: false },
         { key: 'deliveryId', label: '快递单号', checked: false },
         { key: 'remark', label: '备注', checked: false },
+        { key: 'reasonValue1', label: '售后原因一级', checked: false },
+        { key: 'reasonValue2', label: '售后原因二级', checked: false },
+        { key: 'auditRemark', label: '售后备注', checked: false },
 
       ],
       appMallOptions:[],

+ 6 - 0
src/views/hisStore/storeOrder/index.vue

@@ -600,6 +600,9 @@
           </template>
       </el-table-column>
 
+      <el-table-column label="售后原因一级" align="center" prop="reasonValue1" width="120px" />
+      <el-table-column label="售后原因二级" align="center" prop="reasonValue2" width="120px" />
+      <el-table-column label="售后备注" align="center" prop="auditRemark" width="150px" />
       <el-table-column label="操作" fixed="right" width="80px" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -1218,6 +1221,9 @@ export default {
         { key: 'isAudit', label: '是否审核', checked: false },
         { key: 'userNickName', label: '用户昵称', checked: false },
         { key: 'orderRemark', label: '订单备注', checked: false },
+        { key: 'reasonValue1', label: '售后原因一级', checked: false },
+        { key: 'reasonValue2', label: '售后原因二级', checked: false },
+        { key: 'auditRemark', label: '售后备注', checked: false },
       ],
 
       itemlist : [],

+ 73 - 23
src/views/live/components/productAfterSalesOrder.vue

@@ -80,6 +80,16 @@
                   <el-tag  v-for="(item, index) in salesStatusOptions"    v-if="afterSales.salesStatus==item.dictValue" >{{item.dictLabel}}</el-tag>
                 </span>
           </el-descriptions-item>
+          <el-descriptions-item label="财务审核原因"  v-if="afterSales!=null && afterSales.status >= 4">
+                <span>
+                  {{afterSales.auditReasonName}}
+                </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="财务审核备注"  v-if="afterSales!=null && afterSales.status >= 4">
+                <span>
+                  {{afterSales.auditRemark}}
+                </span>
+          </el-descriptions-item>
         </el-descriptions>
         <div style="margin: 20px 0px">
           <span class="font-small">收货信息</span>
@@ -198,18 +208,38 @@
         <el-form-item label="退款金额" prop="refundAmount"  >
           <el-input-number v-model="form.refundAmount"  />
         </el-form-item>
-<!--        <el-form-item label="退货联系人" prop="consignee"  v-if="form.serviceType==1" >-->
-<!--          <el-input v-model="form.consignee" placeholder="请输入收货人" />-->
-<!--        </el-form-item>-->
-<!--        <el-form-item label="退货手机号" prop="phoneNumber"  v-if="form.serviceType==1">-->
-<!--          <el-input v-model="form.phoneNumber" placeholder="请输入手机号" />-->
-<!--        </el-form-item>-->
-<!--        <el-form-item label="退货地址" prop="address" v-if="form.serviceType==1">-->
-<!--          <el-input v-model="form.address" placeholder="请输入地址" />-->
-<!--        </el-form-item>-->
+        <el-form-item label="一级原因" prop="reasonId1">
+          <el-select v-model="form.reasonId1" placeholder="请选择一级原因" @change="handleReason1Change" style="width: 100%">
+            <el-option
+              v-for="item in reasonList"
+              :key="item.id"
+              :label="item.reasonName"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="二级原因" prop="reasonId2">
+          <el-select v-model="form.reasonId2" placeholder="请选择二级原因" style="width: 100%">
+            <el-option
+              v-for="item in reason2List"
+              :key="item.id"
+              :label="item.reasonName"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="审核备注" prop="auditRemark">
+          <el-input
+            type="textarea"
+            :rows="3"
+            placeholder="请输入审核备注"
+            v-model="form.auditRemark">
+          </el-input>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitAuditForm">确 定</el-button>
+        <el-button @click="audit.open = false">取 消</el-button>
       </div>
     </el-dialog>
     <el-dialog :title="show.title" v-if="show.open" :visible.sync="show.open" width="1000px" append-to-body>
@@ -238,6 +268,7 @@
 
 <script>
 import {getLiveAfterSales,cancel,refund,audit,updateLiveAfterSales,audit1,audit2,handleImmediatelyRefund } from "@/api/live/liveAfterSales";
+import {getRefundReasonTree} from "@/api/hisStore/refundReason";
 
 import productOrder from "./productOrder";
 export default {
@@ -250,7 +281,7 @@ export default {
         title:"订单详情"
       },
       audit:{
-        title:"审核",
+        title:"财务审核",
         open:false,
       },
       add:{
@@ -284,7 +315,9 @@ export default {
         consignee:null,
         phoneNumber:null,
         address:null,
-
+        reasonId1: null,
+        reasonId2: null,
+        auditRemark: ''
       },
       rules:{
         status: [
@@ -293,17 +326,15 @@ export default {
         refundAmount: [
           { required: true, message: "退款金额不能为空", trigger: "blur" }
         ],
-        consignee: [
-          { required: true, message: "退货联系人不能为空", trigger: "blur" }
+        reasonId1: [
+          { required: true, message: "请选择一级原因", trigger: "change" }
         ],
-        phoneNumber: [
-          { required: true, message: "退货手机号不能为空", trigger: "blur" }
-        ],
-        address: [
-          { required: true, message: "退货地址不能为空", trigger: "blur" }
-        ],
-
-      }
+        reasonId2: [
+          { required: true, message: "请选择二级原因", trigger: "change" }
+        ]
+      },
+      reasonList: [],
+      reason2List: []
 
     };
   },
@@ -317,6 +348,7 @@ export default {
     this.getDicts("store_after_sales_service_type").then((response) => {
       this.serviceTypeOptions = response.data;
     });
+    this.getRefundReasonTree();
   },
   computed: {
     goodsTotal() {
@@ -365,8 +397,21 @@ export default {
     handleRefund(){
       this.audit.open=true;
       this.form.salesId=this.afterSales.id;
-      //this.form.refundAmount=this.afterSales.refundAmount;
-      this.form.refundAmount=this.order.payMoney; //实付金额
+      this.form.refundAmount=this.order.payMoney;
+      this.form.reasonId1 = null;
+      this.form.reasonId2 = null;
+      this.form.auditRemark = '';
+      this.reason2List = [];
+    },
+    handleReason1Change(val) {
+      this.form.reasonId2 = null;
+      this.reason2List = [];
+      if (val) {
+        const selected = this.reasonList.find(item => item.id === val);
+        if (selected && selected.children) {
+          this.reason2List = selected.children;
+        }
+      }
     },
     handleImmediatelyRefund(){
       let _this = this;
@@ -471,6 +516,11 @@ export default {
         this.user=response.user;
         this.order=response.order;
       });
+    },
+    getRefundReasonTree() {
+      getRefundReasonTree().then(response => {
+        this.reasonList = response.data;
+      });
     }
   }
 };

+ 3 - 2
src/views/live/liveAfteraSales/index.vue

@@ -211,8 +211,9 @@
       <el-table-column label="客户退货物流名称" align="center" prop="deliveryName" />
 
       <el-table-column label="提交时间" align="center" prop="createTime" />
-
-
+      <el-table-column label="售后原因一级" align="center" prop="reasonValue1" />
+      <el-table-column label="售后原因二级" align="center" prop="reasonValue2" />
+      <el-table-column label="售后备注" align="center" prop="auditRemark" />
 
       <el-table-column label="操作" align="center" fixed="right" width="100px" class-name="small-padding fixed-width">
         <template slot-scope="scope">

+ 3 - 0
src/views/live/liveOrder/index.vue

@@ -264,6 +264,9 @@
           <dict-tag :options="orderStatusOptions" :value="scope.row.status"/>
         </template>
       </el-table-column>
+      <el-table-column label="售后原因一级" align="center" prop="reasonValue1" />
+      <el-table-column label="售后原因二级" align="center" prop="reasonValue2" />
+      <el-table-column label="售后备注" align="center" prop="auditRemark" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
         <template slot-scope="scope">
           <el-button

+ 18 - 4
src/views/live/liveOrder/liveOrderDetails.vue

@@ -73,6 +73,16 @@
           <el-descriptions-item label=" 公众号/渠道" ><span v-if="item!=null">{{item.channel}}</span></el-descriptions-item>
           <el-descriptions-item label=" 渠道" ><span v-if="item!=null"><dict-tag :options="channelOptions" :value="item.orderChannel"/></span></el-descriptions-item>
           <el-descriptions-item label=" 企微主体" ><span v-if="item!=null"><dict-tag :options="qwSubjectOptions" :value="item.qwSubject"/></span></el-descriptions-item>
+          <el-descriptions-item label="财务审核原因" v-if="afterSales!=null && afterSales.auditReasonName">
+              <span>
+                {{ afterSales.auditReasonName }}
+              </span>
+          </el-descriptions-item>
+          <el-descriptions-item label="财务审核备注" v-if="afterSales!=null && afterSales.auditRemark">
+              <span>
+                {{ afterSales.auditRemark }}
+              </span>
+          </el-descriptions-item>
         </el-descriptions>
       </el-card>
     </div>
@@ -406,6 +416,7 @@
 <script>
 import {
   getLiveOrder,
+  getLiveOrderAll,
   syncExpress,
   updateLiveOrder,
   updateErp,
@@ -500,6 +511,7 @@ export default {
       orderBuyTypeOptions:[],
       scheduleOptions:[],
       item:null,
+      afterSales:null,
       tuiMoneyLogs:[],
       erpOrder:null,
       prod:null,
@@ -925,12 +937,13 @@ export default {
       this.storeName=storeName;
       this.item=null;
       this.tuiMoneyLogs=null;
-      getLiveOrder(orderId).then(response => {
-        this.item = response.data;
+      this.afterSales=null;
+      getLiveOrderAll(orderId).then(response => {
+        this.item = response.order;
         console.log(this.tuiMoneyLogs)
         this.tuiMoneyLogs = response.tuiMoneyLogs;
-        this.msgForm.userId=response.data.userId;
-        this.msgForm.followDoctorId=response.data.followDoctorId;
+        this.msgForm.userId=response.order.userId;
+        this.msgForm.followDoctorId=response.order.followDoctorId;
         this.getlistOrderitem(this.item.orderId);
         getOrderExpress(orderId).then(response => {
           this.deliverList = response.data;
@@ -948,6 +961,7 @@ export default {
         tuiMoneyLogs(this.item.orderId).then(response => {
           this.tuiMoneyLogs = response.data
         })
+        this.afterSales = response.afterSales;
       });
 
     },