Forráskód Böngészése

feat: 解决导出文件还未创建或失败不能下载的问题

332777428@qq.com 1 hónapja
szülő
commit
21f40cf844
1 módosított fájl, 291 hozzáadás és 64 törlés
  1. 291 64
      src/views/order/list/index.vue

+ 291 - 64
src/views/order/list/index.vue

@@ -5,126 +5,332 @@
     <!-- 搜索 -->
     <el-form inline size="mini">
       <el-form-item label="订单编号:">
-        <el-input v-model="form.orderCode" placeholder="请输入订单编号" clearable />
+        <el-input
+          v-model="form.orderCode"
+          placeholder="请输入订单编号"
+          clearable
+        />
       </el-form-item>
       <el-form-item label="用户账号:">
-        <el-input v-model="form.userName" placeholder="请输入用户账户" clearable />
+        <el-input
+          v-model="form.userName"
+          placeholder="请输入用户账户"
+          clearable
+        />
       </el-form-item>
       <el-form-item label="用户手机号:">
-        <el-input type="number" v-model.number="form.phone" placeholder="请输入用户手机号" clearable />
+        <el-input
+          type="number"
+          v-model.number="form.phone"
+          placeholder="请输入用户手机号"
+          clearable
+        />
       </el-form-item>
       <!-- 流量订单 -->
       <span v-if="form.searchType === '2'">
         <el-form-item label="SIM卡号:">
-          <el-input v-model="form.simCode" placeholder="请输入SIM卡号" clearable />
+          <el-input
+            v-model="form.simCode"
+            placeholder="请输入SIM卡号"
+            clearable
+          />
         </el-form-item>
         <el-form-item label="生效状态">
-          <el-select v-model="form.flowStatus" placeholder="请选择生效状态" clearable>
-            <el-option v-for="item in flowOptions" :key="item.value" :value="item.value" :label="item.label" />
+          <el-select
+            v-model="form.flowStatus"
+            placeholder="请选择生效状态"
+            clearable
+          >
+            <el-option
+              v-for="item in flowOptions"
+              :key="item.value"
+              :value="item.value"
+              :label="item.label"
+            />
           </el-select>
         </el-form-item>
       </span>
       <!-- 除充值订单 -->
       <span v-if="form.searchType !== '3'">
         <el-form-item label="商品ID:">
-          <el-input v-model="form.goodsid" placeholder="请输入商品ID" clearable />
+          <el-input
+            v-model="form.goodsid"
+            placeholder="请输入商品ID"
+            clearable
+          />
         </el-form-item>
         <el-form-item label="商品名称:">
-          <el-input v-model="form.goodsName" placeholder="请输入商品名称" clearable />
+          <el-input
+            v-model="form.goodsName"
+            placeholder="请输入商品名称"
+            clearable
+          />
         </el-form-item>
       </span>
       <el-form-item label="操作系统" v-else>
-        <el-select v-model="form.platform" placeholder="请选择操作系统" clearable>
-          <el-option v-for="item in systemOptions" :key="item.value" :value="item.value" :label="item.label" />
+        <el-select
+          v-model="form.platform"
+          placeholder="请选择操作系统"
+          clearable
+        >
+          <el-option
+            v-for="item in systemOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <!-- 会员订单  int  platformId  字段平台ID:灵活配置多个平台的 0-vip会员 1-联通  -->
-      <el-form-item v-if="form.searchType === '1' || form.searchType === '4'" label="资源平台:">
-        <el-select v-model="form.platformId" placeholder="请选择资源平台" clearable>
-          <el-option v-for="item in platformOptions" :key="item.value" :value="item.value" :label="item.label" />
+      <el-form-item
+        v-if="form.searchType === '1' || form.searchType === '4'"
+        label="资源平台:"
+      >
+        <el-select
+          v-model="form.platformId"
+          placeholder="请选择资源平台"
+          clearable
+        >
+          <el-option
+            v-for="item in platformOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="支付状态:">
         <el-select v-model="form.status" placeholder="请选择支付状态" clearable>
-          <el-option v-for="item in statusOptions" :key="item.value" :value="item.value" :label="item.label" />
+          <el-option
+            v-for="item in statusOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="支付方式:">
-        <el-select v-model="form.payType" placeholder="请选择支付方式" clearable>
-          <el-option v-for="item in payOptions" :key="item.value" :value="item.value" :label="item.label" />
+        <el-select
+          v-model="form.payType"
+          placeholder="请选择支付方式"
+          clearable
+        >
+          <el-option
+            v-for="item in payOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <!-- 商品订单 -->
       <el-form-item v-if="form.searchType === '1'" label="订单内容类型:">
-        <el-select v-model="form.goodsType" placeholder="请选择订单内容类型" clearable>
-          <el-option v-for="item in goodsTypeOptions" :key="item.value" :value="item.value" :label="item.label" />
+        <el-select
+          v-model="form.goodsType"
+          placeholder="请选择订单内容类型"
+          clearable
+        >
+          <el-option
+            v-for="item in goodsTypeOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="下单时间:">
-        <el-date-picker v-model="form.listDate" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
-          format="yyyy-MM-dd HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptions" />
+        <el-date-picker
+          v-model="form.listDate"
+          type="datetimerange"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          format="yyyy-MM-dd HH:mm:ss"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          :picker-options="pickerOptions"
+        />
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" @click="getSearch">搜索</el-button>
+        <el-button type="primary" icon="el-icon-search" @click="getSearch"
+          >搜索</el-button
+        >
         <el-button icon="el-icon-refresh" @click="getRefresh">重置</el-button>
-        <el-button type="primary" icon="el-icon-download" @click="handleExport"
-          v-hasPermi="['order:list:export']">导出</el-button>
-        <el-button type="primary" @click="getDialog" v-hasPermi="['order:list:export']">查看</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-download"
+          @click="handleExport"
+          v-hasPermi="['order:list:export']"
+          >导出</el-button
+        >
+        <el-button
+          type="primary"
+          @click="getDialog"
+          v-hasPermi="['order:list:export']"
+          >查看</el-button
+        >
       </el-form-item>
     </el-form>
     <!-- 列表 -->
     <el-table :data="tableData" v-loading="loading">
-      <el-table-column label="订单编号" prop="orderCode" key="orderCode" align="center" show-overflow-tooltip />
+      <el-table-column
+        label="订单编号"
+        prop="orderCode"
+        key="orderCode"
+        align="center"
+        show-overflow-tooltip
+      />
       <!-- 流量订单 -->
       <span v-if="form.searchType === '2'">
-        <el-table-column label="第三方订单编号" key="thirdOrderId" align="center" show-overflow-tooltip>
+        <el-table-column
+          label="第三方订单编号"
+          key="thirdOrderId"
+          align="center"
+          show-overflow-tooltip
+        >
           <template slot-scope="scope">
             <span>{{
               scope.row.thirdOrderId | empty(scope.row.thirdOrderId)
             }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="SIM卡号" prop="simCode" key="simCode" align="center" show-overflow-tooltip>
+        <el-table-column
+          label="SIM卡号"
+          prop="simCode"
+          key="simCode"
+          align="center"
+          show-overflow-tooltip
+        >
           <template slot-scope="scope">
             <span>{{ scope.row.simCode | empty(scope.row.simCode) }}</span>
           </template>
         </el-table-column>
       </span>
-      <el-table-column label="商品ID" prop="goodsid" key="goodsid" align="center" show-overflow-tooltip />
-      <el-table-column label="商品名称" prop="goodsName" key="goodsName" align="center" show-overflow-tooltip />
-      <el-table-column label="订单金额 / 元" prop="amount" key="amount" align="center" :formatter="amountFormatter" />
+      <el-table-column
+        label="商品ID"
+        prop="goodsid"
+        key="goodsid"
+        align="center"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="商品名称"
+        prop="goodsName"
+        key="goodsName"
+        align="center"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="订单金额 / 元"
+        prop="amount"
+        key="amount"
+        align="center"
+        :formatter="amountFormatter"
+      />
       <!-- 商品订单 -->
       <span v-if="form.searchType === '1'">
-        <el-table-column label="购买类型" prop="charging" key="charging" align="center" :formatter="chargingFormatter" />
-        <el-table-column label="订单内容类型" prop="goodsType" key="goodsType" align="center"
-          :formatter="goodsTypeFormatter" />
+        <el-table-column
+          label="购买类型"
+          prop="charging"
+          key="charging"
+          align="center"
+          :formatter="chargingFormatter"
+        />
+        <el-table-column
+          label="订单内容类型"
+          prop="goodsType"
+          key="goodsType"
+          align="center"
+          :formatter="goodsTypeFormatter"
+        />
       </span>
       <!-- 充值订单 -->
-      <el-table-column v-if="form.searchType === '3'" label="订单来源" prop="platform" key="platform" align="center"
-        :formatter="platformFormatter" />
+      <el-table-column
+        v-if="form.searchType === '3'"
+        label="订单来源"
+        prop="platform"
+        key="platform"
+        align="center"
+        :formatter="platformFormatter"
+      />
       <!-- 会员订单 -->
       <span v-if="form.searchType === '4'">
-        <el-table-column label="栏目" prop="groupId" key="groupId" align="center" :formatter="groupFormatter" />
-        <el-table-column label="服务时长" prop="expirationTime" key="expirationTime" align="center"
-          :formatter="timeFormatter" />
+        <el-table-column
+          label="栏目"
+          prop="groupId"
+          key="groupId"
+          align="center"
+          :formatter="groupFormatter"
+        />
+        <el-table-column
+          label="服务时长"
+          prop="expirationTime"
+          key="expirationTime"
+          align="center"
+          :formatter="timeFormatter"
+        />
       </span>
       <!-- 商品订单 或 会员订单 -->
       <!-- <el-table-column v-if="['1', '4'].includes(form.searchType)" label="资源平台" prop="platformId" key="platformId"
         align="center" :formatter="platformIdFormatter" /> -->
-      <el-table-column label="下单时间" prop="createTime" key="createTime" align="center" show-overflow-tooltip />
-      <el-table-column label="支付方式" prop="payType" key="payType" align="center" :formatter="payTypeFormatter" />
-      <el-table-column label="支付状态" prop="status" key="status" align="center" :formatter="statusFormatter" />
-      <el-table-column label="支付时间" prop="goodsUpdateTime" key="goodsUpdateTime" align="center" show-overflow-tooltip />
-      <el-table-column label="用户账号" prop="userName" key="userName" align="center" show-overflow-tooltip />
-      <el-table-column label="支付流水号" key="payId" align="center" show-overflow-tooltip>
+      <el-table-column
+        label="下单时间"
+        prop="createTime"
+        key="createTime"
+        align="center"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="支付方式"
+        prop="payType"
+        key="payType"
+        align="center"
+        :formatter="payTypeFormatter"
+      />
+      <el-table-column
+        label="支付状态"
+        prop="status"
+        key="status"
+        align="center"
+        :formatter="statusFormatter"
+      />
+      <el-table-column
+        label="支付时间"
+        prop="goodsUpdateTime"
+        key="goodsUpdateTime"
+        align="center"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="用户账号"
+        prop="userName"
+        key="userName"
+        align="center"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="支付流水号"
+        key="payId"
+        align="center"
+        show-overflow-tooltip
+      >
         <template slot-scope="scope">
           <span>{{ scope.row.payId | empty(scope.row.payId) }}</span>
         </template>
       </el-table-column>
       <!-- 流量订单 -->
       <span v-if="form.searchType === '2'">
-        <el-table-column label="生效状态" prop="flowStatus" key="flowStatus" align="center" :formatter="flowFormatter" />
-        <el-table-column label="生效时间" key="effectTime" align="center" show-overflow-tooltip>
+        <el-table-column
+          label="生效状态"
+          prop="flowStatus"
+          key="flowStatus"
+          align="center"
+          :formatter="flowFormatter"
+        />
+        <el-table-column
+          label="生效时间"
+          key="effectTime"
+          align="center"
+          show-overflow-tooltip
+        >
           <template slot-scope="scope">
             <span>{{
               scope.row.effectTime | empty(scope.row.effectTime)
@@ -133,8 +339,13 @@
         </el-table-column>
       </span>
     </el-table>
-    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
-      @pagination="getList" />
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="form.pageNum"
+      :limit.sync="form.pageSize"
+      @pagination="getList"
+    />
     <!-- 弹窗 -->
     <el-dialog :visible.sync="dialogVisible" title="导出历史" width="1000px">
       <el-table :data="dialogTable" v-loading="dialogLoading">
@@ -143,30 +354,42 @@
         <el-table-column label="任务名称" prop="jobName" align="center" />
         <el-table-column label="任务类型" prop="jobType" align="center" />
         <el-table-column label="导出时间" prop="updateTime" align="center" />
+        <el-table-column label="状态" align="center" :formatter="getStatus" />
         <el-table-column label="操作人" prop="useName" align="center" />
+
         <el-table-column label="操作" align="center">
           <template slot-scope="scope">
-            <el-button type="text" @click="getDownLoad(scope.row)">下载</el-button>
+            <el-button
+              type="text"
+              @click="getDownLoad(scope.row)"
+              :disabled="scope.row.status == 2 ? false : true"
+              >下载</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
-      <pagination v-show="dialogTotal > 0" :total="dialogTotal" :page.sync="dialogForm.pageNum"
-        :limit.sync="dialogForm.pageSize" @pagination="getDialogList" />
+      <pagination
+        v-show="dialogTotal > 0"
+        :total="dialogTotal"
+        :page.sync="dialogForm.pageNum"
+        :limit.sync="dialogForm.pageSize"
+        @pagination="getDialogList"
+      />
     </el-dialog>
   </div>
 </template>
 
 <script>
 import { list as sceneList } from "@/api/operation/scene";
+import { list as sceneList } from "@/api/operation/scene";
 import { dialogList, download, downLoadHistory, list } from "@/api/order/list";
 import {
-  payTypeMixin,
-  platformMixin,
-  serviceTimeMixin,
-  systemMixin,
+payTypeMixin,
+platformMixin,
+serviceTimeMixin,
+systemMixin,
 } from "@/mixin/index";
-export default {
-  name:"OrderList1",
+  name: "OrderList1",
   mixins: [payTypeMixin, systemMixin, serviceTimeMixin, platformMixin],
   data() {
     return {
@@ -280,16 +503,20 @@ export default {
     this.payOptions.push(
       this.form.searchType === "3"
         ? {
-          value: 3,
-          label: "苹果支付",
-        }
+            value: 3,
+            label: "苹果支付",
+          }
         : {
-          value: 4,
-          label: "猫币支付",
-        }
+            value: 4,
+            label: "猫币支付",
+          }
     );
   },
   methods: {
+    getStatus(row) {
+      return row.status == 1 ? "已创建" : row.status == 2 ? "成功" : "失败";
+    },
+
     // 列表
     getList() {
       this.loading = true;
@@ -364,7 +591,7 @@ export default {
             }
           });
         })
-        .catch(() => { });
+        .catch(() => {});
     },
 
     // 栏目