Explorar o código

分账详情1

JXDS18FUJT hai 1 ano
pai
achega
ecfc993384
Modificáronse 5 ficheiros con 581 adicións e 114 borrados
  1. 1 1
      .env.development
  2. 17 0
      src/api/order.js
  3. 18 0
      src/api/wxorder.js
  4. 75 113
      src/views/mobile/order/index.vue
  5. 470 0
      src/views/mobile/wxorder/index.vue

+ 1 - 1
.env.development

@@ -2,7 +2,7 @@
 ENV = 'development'
 
 # 若依管理系统/开发环境
-VUE_APP_BASE_API = '/dev-api'
+VUE_APP_BASE_API = 'https://107j18o08.vicp.fun'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 17 - 0
src/api/order.js

@@ -20,3 +20,20 @@ export function refundOrder(params) {
     }
   });
 }
+//发起分账
+export function shareProfitOrder(params) {
+  return request({
+    url: "order/info/shareProfit/" + params.outTradeNo,
+    method: "put",
+  });
+}
+//查询分账记录列表
+export function getSplitList(params) {
+  return request({
+    url: "order/split/list",
+    params,
+    method: "get",
+  });
+}
+
+

+ 18 - 0
src/api/wxorder.js

@@ -0,0 +1,18 @@
+import request from "@/utils/request";
+
+// 查询订单列表
+export function getList(params) {
+  return request({
+    url: "/order/info/wxlist",
+    method:'get',
+    params
+  });
+}
+
+// 订单退款
+export function shareProfitOrder(params) {
+  return request({
+    url: "order/info/shareProfit/" + params.outTradeNo,
+    method: "put",
+  });
+}

+ 75 - 113
src/views/mobile/order/index.vue

@@ -1,68 +1,32 @@
 <template>
   <div class="app-container">
-    <el-form
-      :model="queryParams"
-      ref="queryForm"
-      :inline="true"
-      v-show="showSearch"
-      label-width="68px"
-    >
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="开始时间" label-width="120px" prop="outTradeNo">
-        <el-date-picker
-          format="yyyy-MM-dd HH:mm:ss"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          v-model="queryParams.startTime"
-          type="datetime"
-          placeholder="默认是当前月份第一天"
-        >
+        <el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" v-model="queryParams.startTime"
+          type="datetime" placeholder="默认是当前月份第一天">
         </el-date-picker>
       </el-form-item>
       <el-form-item label="结束时间" label-width="120px" prop="outTradeNo">
-        <el-date-picker
-          format="yyyy-MM-dd HH:mm:ss"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          v-model="queryParams.endTime"
-          type="datetime"
-          placeholder="默认是当前月份最后一天"
-        >
+        <el-date-picker format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" v-model="queryParams.endTime"
+          type="datetime" placeholder="默认是当前月份最后一天">
         </el-date-picker>
       </el-form-item>
       <el-form-item label="商品ID" label-width="120px" prop="goodsId">
-        <el-input
-          v-model="queryParams.userId"
-          placeholder="商品ID"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.userId" placeholder="商品ID" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="订单号" label-width="120px" prop="outTradeNo">
-        <el-input
-          v-model="queryParams.outTradeNo"
-          placeholder="订单号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.outTradeNo" placeholder="订单号" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
 
       <el-form-item label="商品名称" label-width="120px" prop="goodsName">
-        <el-input
-          v-model="queryParams.goodsName"
-          placeholder="请输入名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.goodsName" placeholder="请输入名称" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="退款订单号" label-width="120px" prop="outTradeNo">
-        <el-input
-          v-model="queryParams.outRefundNo"
-          placeholder="退款订单号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.outRefundNo" placeholder="退款订单号" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
       <!-- <el-form-item label="是否分成" label-width="120px" prop="phoneType">
                 <el-select v-model="queryParams.isShare" placeholder="">
@@ -105,16 +69,8 @@
                     @keyup.enter.native="handleQuery" />
             </el-form-item> -->
       <el-form-item>
-        <el-button
-          type="cyan"
-          icon="el-icon-search"
-          size="mini"
-          @click="handleQuery"
-          >搜索</el-button
-        >
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
-          >重置</el-button
-        >
+        <el-button type="cyan" 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>
 
@@ -134,22 +90,13 @@
             <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
         </el-row> -->
 
-    <el-table
-      v-loading="loading"
-      :data="errorList"
-      @selection-change="handleSelectionChange"
-    >
+    <el-table v-loading="loading" :data="errorList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
 
       <el-table-column label="用户id" align="center" prop="userId" />
       <!-- <el-table-column label="姓名" align="center" prop="userName" /> -->
       <!-- <el-table-column label="身份证" align="center" prop="logincode" /> -->
-      <el-table-column
-        label="支付时间"
-        align="center"
-        width="180px"
-        prop="createTime"
-      />
+      <el-table-column label="支付时间" align="center" width="180px" prop="createTime" />
       <el-table-column label="商品名称" align="center" prop="goodsName" />
       <!-- <el-table-column label="是否分成" align="center" prop="isShare">
         <template slot-scope="scope">
@@ -158,11 +105,7 @@
           <span v-else>其他</span>
         </template>
       </el-table-column> -->
-      <el-table-column
-        label="极速驾培订单ID"
-        align="center"
-        prop="outTradeNo"
-      />
+      <el-table-column label="极速驾培订单ID" align="center" prop="outTradeNo" />
 
       <el-table-column label="支付方式" align="center" prop="goodsName">
         <template slot-scope="scope">{{
@@ -192,42 +135,27 @@
       <el-table-column label="订单价格" align="center" prop="total">
         <template slot-scope="scope"> {{ scope.row.total / 100 }}元 </template>
       </el-table-column>
-      <el-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-      >
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            v-if="!scope.row.outRefundNo"
-            :disabled="scope.row.outRefundNo"
-            size="mini"
-            type="text"
-            icon="el-icon-remove-outline"
-            @click="handleRefund(scope.row)"
-            >退款</el-button
-          >
-          <el-popover
-            v-else
-            placement="bottom"
-            title="极速驾培订单退款ID"
-            width="200"
-            trigger="click"
-            :content="scope.row.outRefundNo"
-          >
+          <el-button v-if="!scope.row.outRefundNo" :disabled="scope.row.outRefundNo" size="mini" type="text"
+            icon="el-icon-remove-outline" @click="handleRefund(scope.row)">退款</el-button>
+
+          <el-popover v-else placement="bottom" title="极速驾培订单退款ID" width="200" trigger="click"
+            :content="scope.row.outRefundNo">
             <el-link type="danger" slot="reference">已退款</el-link>
           </el-popover>
+          <el-button disabled size="mini" type="text" v-if="scope.row.profitSharing == 0">不分账</el-button>
+          <el-button size="mini" type="text" v-if="scope.row.profitSharing == 1" :disabled="scope.row.outRefundNo" 
+            icon="el-icon-money" @click="handleShareBill(scope.row)">分账</el-button>
+            <el-button @click="handleShareDatail(scope.row)" size="mini" type="text" v-if="scope.row.profitSharing == 2">分账完成</el-button>
+          <el-button disabled size="mini" type="text" style="color: red;" v-if="scope.row.profitSharing == 3">分账失败</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"
-    />
+    <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="500px" append-to-body>
@@ -244,6 +172,14 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog :visible.sync="shareVisible" title="分帐详情">
+      <el-table :data="shareList">
+        <el-table-column label="昵称" prop="nickName"></el-table-column>
+        <el-table-column label="金额(分)" prop="amount"></el-table-column>
+      </el-table>
+      <!-- <div v-for="(item,index) in shareList" :key="index">
+     昵称:{{ item.nickName }}/{{ item.amount }}</div> -->
+    </el-dialog>
   </div>
 </template>
 
@@ -256,14 +192,14 @@ import {
   addError,
   updateError,
   exportError,
+  shareProfitOrder,
+  getSplitList
 } from "@/api/order";
 let date = new Date();
-let defaultStartTime = `${date.getFullYear()}-${
-  date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1
-}-01 00:00:00`;
-let defaultEndTime = `${date.getFullYear()}-${
-  date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1
-}-${new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()} 23:59:59`;
+let defaultStartTime = `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1
+  }-01 00:00:00`;
+let defaultEndTime = `${date.getFullYear()}-${date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1
+  }-${new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()} 23:59:59`;
 export default {
   name: "Order",
   data() {
@@ -286,6 +222,9 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+
+      //弹出分账详情
+      shareVisible:false,
       // 查询参数
       queryParams: {
         startTime: defaultStartTime,
@@ -312,6 +251,8 @@ export default {
       form: {},
       // 表单校验
       rules: {},
+      //分账详情
+      shareList:[]
     };
   },
   created() {
@@ -356,12 +297,11 @@ export default {
     },
     handleRefund(row) {
 
-      
+
       const outTradeNo = row.outTradeNo;
       this.$prompt(
         `确认退款${row.goodsName}吗?
-            请附带退款理由: <div>用户ID:${row.userId}</div><div>退款金额:${
-          row.total / 100
+            请附带退款理由: <div>用户ID:${row.userId}</div><div>退款金额:${row.total / 100
         }元</div> <div>订单号:${row.outTradeNo}</div> `,
         "警告",
         {
@@ -385,6 +325,28 @@ export default {
           this.msgSuccess("退款成功");
         });
     },
+    handleShareBill(row) {
+      this.$confirm('是否对订单ID为:' + row.outTradeNo + '的订单进行分账?', "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(res => {
+        shareProfitOrder({
+          outTradeNo: row.outTradeNo
+        }).then(result => {
+          this.getList()
+        })
+      })
+
+
+    },
+    handleShareDatail(row){
+      this.shareVisible=true
+      getSplitList({outTradeNo:row.outTradeNo}).then(res=>{
+        this.shareList = res.rows
+      })
+
+    },
     /** 搜索按钮操作 */
     handleQuery() {
       this.queryParams.pageNum = 1;

+ 470 - 0
src/views/mobile/wxorder/index.vue

@@ -0,0 +1,470 @@
+<template>
+    <div class="app-container">
+      <el-form
+        :model="queryParams"
+        ref="queryForm"
+        :inline="true"
+        v-show="showSearch"
+        label-width="68px"
+      >
+        <el-form-item label="开始时间" label-width="120px" prop="outTradeNo">
+          <el-date-picker
+            format="yyyy-MM-dd HH:mm:ss"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            v-model="queryParams.startTime"
+            type="datetime"
+            placeholder="默认是当前月份第一天"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="结束时间" label-width="120px" prop="outTradeNo">
+          <el-date-picker
+            format="yyyy-MM-dd HH:mm:ss"
+            value-format="yyyy-MM-dd HH:mm:ss"
+            v-model="queryParams.endTime"
+            type="datetime"
+            placeholder="默认是当前月份最后一天"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="商品ID" label-width="120px" prop="goodsId">
+          <el-input
+            v-model="queryParams.userId"
+            placeholder="商品ID"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="订单号" label-width="120px" prop="outTradeNo">
+          <el-input
+            v-model="queryParams.outTradeNo"
+            placeholder="订单号"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+  
+        <el-form-item label="商品名称" label-width="120px" prop="goodsName">
+          <el-input
+            v-model="queryParams.goodsName"
+            placeholder="请输入名称"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="退款订单号" label-width="120px" prop="outTradeNo">
+          <el-input
+            v-model="queryParams.outRefundNo"
+            placeholder="退款订单号"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <!-- <el-form-item label="是否分成" label-width="120px" prop="phoneType">
+                  <el-select v-model="queryParams.isShare" placeholder="">
+                      <el-option value="" label="全部"></el-option>
+                      <el-option :value="1" label="是"></el-option>
+                      <el-option :value="0" label="否"></el-option>
+                  </el-select>
+              </el-form-item> -->
+        <!-- <el-form-item label="支付状态" label-width="120px" prop="tradeType">
+                  <el-select v-model="queryParams.tradeType">
+                      <el-option value="" key="4" label="全部"></el-option>
+                      <el-option value="1" key="1" label="支付成功">支付成功</el-option>
+                      <el-option value="2" key="2" label="支付失败">支付失败</el-option>
+                      <el-option value="3" key="3" label="已退款"></el-option>
+  
+                  </el-select>
+              </el-form-item> -->
+        <!-- <el-form-item label="支付类型" prop="payType">
+                  <el-select v-model="queryParams.payType" placeholder="">
+                      <el-option :value="1" label="微信"></el-option>
+                      <el-option :value="2" label="支付宝"></el-option>
+                  </el-select>
+              </el-form-item>
+              <el-form-item label="手机类型" prop="payType">
+                  <el-select v-model="queryParams.payType" placeholder="">
+                      <el-option :value="1" label="苹果"></el-option>
+                      <el-option :value="2" label="安卓"></el-option>
+                  </el-select>
+              </el-form-item>
+              <el-form-item label="驾校名称" prop="school">
+                  <el-input v-model="queryParams.school" placeholder="请输入驾校名称" clearable size="small"
+                      @keyup.enter.native="handleQuery" />
+              </el-form-item>
+              <el-form-item label="驾校提成" prop="questionId">
+                  <el-input v-model="queryParams.schoolCommission" placeholder="请输入驾校提成" clearable size="small"
+                      @keyup.enter.native="handleQuery" />
+              </el-form-item>
+              <el-form-item label="驾校名称" prop="schoolName">
+                  <el-input v-model="queryParams.schoolName" placeholder="请输入驾校名称" clearable size="small"
+                      @keyup.enter.native="handleQuery" />
+              </el-form-item> -->
+        <el-form-item>
+          <el-button
+            type="cyan"
+            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" icon="el-icon-plus" size="mini" @click="handleAdd"
+                      v-hasPermi="['question:error:add']">新增</el-button>
+              </el-col>
+              <el-col :span="1.5">
+                  <el-button type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+                      v-hasPermi="['question:error:edit']">修改</el-button>
+              </el-col>
+              <el-col :span="1.5">
+                  <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+                      v-hasPermi="['question:error:remove']">删除</el-button>
+              </el-col>
+              <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+          </el-row> -->
+  
+      <el-table
+        v-loading="loading"
+        :data="errorList"
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55" align="center" />
+  
+        <el-table-column label="用户id" align="center" prop="userId" />
+        <!-- <el-table-column label="姓名" align="center" prop="userName" /> -->
+        <!-- <el-table-column label="身份证" align="center" prop="logincode" /> -->
+        <el-table-column
+          label="支付时间"
+          align="center"
+          width="180px"
+          prop="createTime"
+        />
+        <el-table-column label="商品名称" align="center" prop="goodsName" />
+        <!-- <el-table-column label="是否分成" align="center" prop="isShare">
+          <template slot-scope="scope">
+            <span v-if="scope.row.isShare == 1">是</span>
+            <span v-else-if="scope.row.isShare == 0">否</span>
+            <span v-else>其他</span>
+          </template>
+        </el-table-column> -->
+        <el-table-column
+          label="极速驾培订单ID"
+          align="center"
+          prop="outTradeNo"
+        />
+  
+        <el-table-column label="支付方式" align="center" prop="goodsName">
+          <template slot-scope="scope">{{
+            scope.row.payType == 1 ? "微信" : "支付宝"
+          }}</template>
+        </el-table-column>
+        <el-table-column label="手机类型" align="center" prop="goodsName">
+          <template slot-scope="scope">
+            <span v-if="scope.row.phoneType == 1">苹果</span>
+            <span v-else-if="scope.row.phoneType == 2">安卓</span>
+            <span v-else>其他</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="客户端类型" align="center" prop="goodsName">
+          <template slot-scope="scope">
+            <span v-if="scope.row.foreType == 1">app</span>
+            <span v-if="scope.row.foreType == 2">小程序</span>
+            <span v-if="scope.row.foreType == 3">公众号</span>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column label="驾校名称" align="center" prop="schoolName" /> -->
+        <!-- <el-table-column label="驾校提成" align="center" prop="schoolName">
+          <template slot-scope="scope">
+            {{ scope.row.schoolCommission / 100 }}元
+          </template>
+        </el-table-column> -->
+        <el-table-column label="订单价格" align="center" prop="total">
+          <template slot-scope="scope"> {{ scope.row.total / 100 }}元 </template>
+        </el-table-column>
+        <el-table-column
+          label="操作"
+          align="center"
+          class-name="small-padding fixed-width"
+        >
+          <template slot-scope="scope">
+            <el-button
+              v-if="!scope.row.outRefundNo"
+              :disabled="scope.row.outRefundNo"
+              size="mini"
+              type="text"
+              icon="el-icon-money"
+              @click="handleRefund(scope.row)"
+              >分账</el-button
+            >
+            <el-popover
+              v-else
+              placement="bottom"
+              title="极速驾培订单退款ID"
+              width="200"
+              trigger="click"
+              :content="scope.row.outRefundNo"
+            >
+              <el-link type="danger" slot="reference">已退款</el-link>
+            </el-popover>
+          </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="500px" append-to-body>
+        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+          <el-form-item label="用户id" prop="userId">
+            <el-input v-model="form.userId" placeholder="请输入用户id" />
+          </el-form-item>
+          <el-form-item label="题目id" prop="questionId">
+            <el-input v-model="form.questionId" placeholder="请输入题目id" />
+          </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 {
+    getList,
+    shareProfitOrder,
+    refundOrder,
+ 
+  } from "@/api/wxorder";
+  let date = new Date();
+  let defaultStartTime = `${date.getFullYear()}-${
+    date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1
+  }-01 00:00:00`;
+  let defaultEndTime = `${date.getFullYear()}-${
+    date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1
+  }-${new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()} 23:59:59`;
+  export default {
+    name: "Order",
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 错题表格数据
+        errorList: [],
+        // 弹出层标题
+        title: "",
+        // 是否显示弹出层
+        open: false,
+        // 查询参数
+        queryParams: {
+          startTime: defaultStartTime,
+          endTime: defaultEndTime,
+          tradeType: "",
+          userId: null,
+          isShare: "",
+          userName: "",
+          logincode: "",
+          outTradeNo: null,
+          pageNum: 1,
+          pageSize: 10,
+  
+          // id: null,
+          // outRefundNo: null,
+          // payType: 1,
+          // phoneType: 1,
+          // school: "",
+          // schoolCommission: 0,
+          // schoolName: "",
+          // isShare: 0,
+        },
+        // 表单参数
+        form: {},
+        // 表单校验
+        rules: {},
+      };
+    },
+    created() {
+      this.getList();
+    },
+    methods: {
+      /** 查询错题列表 */
+      getList() {
+        this.loading = true;
+        getList(this.queryParams).then((response) => {
+          this.errorList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          tradeType: "",
+          userId: null,
+          isShare: "",
+          userName: "",
+          logincode: "",
+          outTradeNo: null,
+          pageNum: 1,
+          pageSize: 10,
+          // id: null,
+          // outRefundNo: null,
+          // payType: 1,
+          // phoneType: 1,
+          // school: "",
+          // schoolCommission: 0,
+          // schoolName: "",
+          // ,
+        };
+        this.resetForm("form");
+      },
+      handleRefund(row) {
+  
+        
+        const outTradeNo = row.outTradeNo;
+        this.$prompt(
+          `确认退款${row.goodsName}吗?
+              请附带退款理由: <div>用户ID:${row.userId}</div><div>退款金额:${
+            row.total / 100
+          }元</div> <div>订单号:${row.outTradeNo}</div> `,
+          "警告",
+          {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning",
+            inputPlaceholder: "请输入退款理由",
+            dangerouslyUseHTMLString: true,
+            inputPattern: /[\u4E00-\u9FA5]/,
+            inputErrorMessage: "至少输入一个中文",
+          }
+        )
+          .then(function (obj) {
+            return refundOrder({
+              outTradeNo,
+              reason: obj.value,
+            });
+          })
+          .then(() => {
+            this.getList();
+            this.msgSuccess("退款成功");
+          });
+      },
+      /** 搜索按钮操作 */
+      handleQuery() {
+        this.queryParams.pageNum = 1;
+        this.getList();
+      },
+      /** 重置按钮操作 */
+      resetQuery() {
+        this.resetForm("queryForm");
+        this.handleQuery();
+      },
+      // 多选框选中数据
+      handleSelectionChange(selection) {
+        this.ids = selection.map((item) => item.id);
+        this.single = selection.length !== 1;
+        this.multiple = !selection.length;
+      },
+      /** 新增按钮操作 */
+      handleAdd() {
+        this.reset();
+        this.open = true;
+        this.title = "添加错题";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids;
+        getError(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) {
+              updateError(this.form).then((response) => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addError(this.form).then((response) => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除错题编号为"' + ids + '"的数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(function () {
+            return delError(ids);
+          })
+          .then(() => {
+            this.getList();
+            this.msgSuccess("删除成功");
+          });
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm("是否确认导出所有错题数据项?", "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(function () {
+            return exportError(queryParams);
+          })
+          .then((response) => {
+            this.download(response.data);
+          });
+      },
+    },
+  };
+  </script>