Pārlūkot izejas kodu

feat: 系统赠送和后台手动赠送

Damon 11 mēneši atpakaļ
vecāks
revīzija
296bc254b8

+ 174 - 71
src/views/operation/activity/detail.vue

@@ -1,55 +1,141 @@
+<!-- 活动管理 详情 -->
 <template>
-  <div class='app-container'>
-    <el-form :model="form" :rules="rules" ref="form" label-width="100px" :disabled="disabled">
+  <div class="app-container">
+    <el-form
+      :model="form"
+      :rules="rules"
+      ref="form"
+      label-width="100px"
+      :disabled="disabled"
+    >
       <el-form-item label="活动名称:">
         <el-input v-model="form.name" placeholder="请输入活动名称" />
       </el-form-item>
+
+      <el-form-item label="活动类型:">
+        <el-select placeholder="请选择活动类型" :disabled="disabledActivity">
+        </el-select>
+        <!-- v-model="scope.row.indate" -->
+        <!-- <el-option v-for="item in serviceTimeOptions" :key="item.value" :value="item.value"
+                    :label="item.label" /> -->
+
+        <!-- <el-form-item :prop="`deviceRespList.${scope.$index}.indate`"
+                :rules="{ required: true, trigger: 'change' }">
+      
+              </el-form-item> -->
+      </el-form-item>
+
       <el-form-item label="活动图片:" prop="pic">
         <Upload listType="picture-card" :url="form.pic" @upload="upload" />
       </el-form-item>
       <el-form-item label="有效时间:" prop="timeList">
-        <el-date-picker type="datetimerange" v-model="form.timeList" start-placeholder="开始日期" end-placeholder="结束日期"
-          value-format="yyyy-MM-dd HH:mm:ss" />
+        <el-date-picker
+          type="datetimerange"
+          v-model="form.timeList"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd HH:mm:ss"
+        />
       </el-form-item>
-      <el-form-item label="活动设备:" style="width: 1000px" prop="deviceRespList">
-        <el-button type="primary" icon="el-icon-plus" @click="handlePush" :disabled="disabledActivity">添加</el-button>
+      <el-form-item
+        label="活动设备:"
+        style="width: 1000px"
+        prop="deviceRespList"
+      >
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          @click="handlePush"
+          :disabled="disabledActivity"
+          >添加</el-button
+        >
         <el-table :data="form.deviceRespList">
-          <el-table-column label="关联设备" align="center" show-overflow-tooltip>
+          <el-table-column
+            label="关联设备"
+            align="center"
+            show-overflow-tooltip
+          >
             <template slot-scope="scope">
-              <el-form-item :prop="`deviceRespList.${scope.$index}.deviceId`"
-                :rules="{ required: true, trigger: 'change' }">
-                <span v-if="disabledActivity">{{ devOptions.find(i => i.value == scope.row.deviceId).label }}</span>
-                <el-select v-else v-model="scope.row.deviceId" filterable placeholder="请选择关联设备" :disabled="disabledActivity">
-                  <el-option v-for="item in devOptions" :key="item.value" :value="item.value" :label="item.label"
-                    :disabled="item.disabled" />
+              <el-form-item
+                :prop="`deviceRespList.${scope.$index}.deviceId`"
+                :rules="{ required: true, trigger: 'change' }"
+              >
+                <span v-if="disabledActivity">{{
+                  devOptions.find((i) => i.value == scope.row.deviceId).label
+                }}</span>
+                <el-select
+                  v-else
+                  v-model="scope.row.deviceId"
+                  filterable
+                  placeholder="请选择关联设备"
+                  :disabled="disabledActivity"
+                >
+                  <el-option
+                    v-for="item in devOptions"
+                    :key="item.value"
+                    :value="item.value"
+                    :label="item.label"
+                    :disabled="item.disabled"
+                  />
                 </el-select>
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column label="活动权益" align="center">
             <template slot-scope="scope">
-              <el-form-item :prop="`deviceRespList.${scope.$index}.indate`"
-                :rules="{ required: true, trigger: 'change' }">
-                <el-select v-model="scope.row.indate" placeholder="请选择活动权益" :disabled="disabledActivity">
-                  <el-option v-for="item in serviceTimeOptions" :key="item.value" :value="item.value"
-                    :label="item.label" />
+              <el-form-item
+                :prop="`deviceRespList.${scope.$index}.indate`"
+                :rules="{ required: true, trigger: 'change' }"
+              >
+                <el-select
+                  v-model="scope.row.indate"
+                  placeholder="请选择活动权益"
+                  :disabled="disabledActivity"
+                >
+                  <el-option
+                    v-for="item in serviceTimeOptions"
+                    :key="item.value"
+                    :value="item.value"
+                    :label="item.label"
+                  />
                 </el-select>
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column label="领取数量" align="center">
             <template slot-scope="scope">
-              <el-form-item :prop="`deviceRespList.${scope.$index}.totalNum`"
-                :rules="[{ type: 'number', required: true, min: disabledActivity && num[scope.$index] ? num[scope.$index] : 1, trigger: 'blur' }]">
-                <el-input-number v-model="scope.row.totalNum" :controls="false" :min="1" placeholder="请输入领取数量"
-                  @change="handleChange($event, scope.$index)" />
+              <el-form-item
+                :prop="`deviceRespList.${scope.$index}.totalNum`"
+                :rules="[
+                  {
+                    type: 'number',
+                    required: true,
+                    min:
+                      disabledActivity && num[scope.$index]
+                        ? num[scope.$index]
+                        : 1,
+                    trigger: 'blur',
+                  },
+                ]"
+              >
+                <el-input-number
+                  v-model="scope.row.totalNum"
+                  :controls="false"
+                  :min="1"
+                  placeholder="请输入领取数量"
+                  @change="handleChange($event, scope.$index)"
+                />
               </el-form-item>
             </template>
           </el-table-column>
           <el-table-column label="操作" align="center">
             <template slot-scope="scope">
-              <el-button type="delete" @click="getDelete(scope.row.deviceId, scope.$index)"
-                :disabled="disabledActivity">删除</el-button>
+              <el-button
+                type="delete"
+                @click="getDelete(scope.row.deviceId, scope.$index)"
+                :disabled="disabledActivity"
+                >删除</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
@@ -57,21 +143,23 @@
     </el-form>
     <div class="form-btn">
       <el-button @click="cancel">取消</el-button>
-      <el-button v-if="!disabled" type="primary" @click="getSubmit">确定</el-button>
+      <el-button v-if="!disabled" type="primary" @click="getSubmit"
+        >确定</el-button
+      >
     </div>
   </div>
 </template>
 
 <script>
-import { detail, submit } from "@/api/operation/activity"
-import { serviceTimeMixin, devMixin } from '@/mixin/index'
+import { detail, submit } from "@/api/operation/activity";
+import { devMixin, serviceTimeMixin } from "@/mixin/index";
 export default {
   mixins: [serviceTimeMixin, devMixin],
   data() {
     return {
       // 表单
       form: {
-        deviceRespList: []
+        deviceRespList: [],
       },
       // 除蓝牙设备
       types: [2, 4],
@@ -83,103 +171,118 @@ export default {
       disabled: Boolean(this.$route.query.boolean),
       // 校验
       rules: {
-        pic: [{
-          required: true, message: '请上传活动图片', trigger: 'change'
-        }],
-        timeList: [{
-          required: true, message: '请选择有效时间', trigger: 'change'
-        }],
-        deviceRespList: [{
-          type: 'array', required: true, message: '请添加活动设备', trigger: 'change'
-        }]
-      }
-    }
+        pic: [
+          {
+            required: true,
+            message: "请上传活动图片",
+            trigger: "change",
+          },
+        ],
+        timeList: [
+          {
+            required: true,
+            message: "请选择有效时间",
+            trigger: "change",
+          },
+        ],
+        deviceRespList: [
+          {
+            type: "array",
+            required: true,
+            message: "请添加活动设备",
+            trigger: "change",
+          },
+        ],
+      },
+    };
   },
   watch: {
-    'form.deviceRespList': {
+    "form.deviceRespList": {
       handler(val) {
         for (let i in this.devOptions) {
-          this.devOptions[i].disabled = false
+          this.devOptions[i].disabled = false;
         }
         // 禁用已关联设备
         val.map((i, index) => {
           if (i.deviceId) {
-            let index = this.devOptions.findIndex(j => j.value === i.deviceId)
-            this.devOptions[index].disabled = true
+            let index = this.devOptions.findIndex(
+              (j) => j.value === i.deviceId
+            );
+            this.devOptions[index].disabled = true;
           }
-        })
+        });
       },
-      deep: true
-    }
+      deep: true,
+    },
   },
   mounted() {
-    this.getDevList()
+    this.getDevList();
     if (this.$route.query.id) {
-      this.getDetail()
+      this.getDetail();
     }
   },
   methods: {
     // 详情
     getDetail() {
-      detail(this.$route.query.id).then(res => {
+      detail(this.$route.query.id).then((res) => {
         if (res.code === 0) {
-          this.form = res.data
-          res.data.deviceRespList.map(i => {
-            this.num.push(i.totalNum)
-          })
+          this.form = res.data;
+          res.data.deviceRespList.map((i) => {
+            this.num.push(i.totalNum);
+          });
         }
-      })
+      });
     },
 
     // 上传图片
     upload(e) {
-      this.form.pic = e.file
+      this.form.pic = e.file;
     },
 
     // 添加
     handlePush() {
-      this.form.deviceRespList.push({})
+      this.form.deviceRespList.push({});
     },
 
     // 已生效的活动 设备数量不能修改的比之前小
     handleChange(e, index) {
       if (this.disabledActivity && this.num[index] > e) {
-        this.$message.error('已生效活动,当前领取数量不可减少')
+        this.$message.error("已生效活动,当前领取数量不可减少");
       }
     },
 
     // 删除
     getDelete(deviceId, index) {
-      this.form.deviceRespList.splice(index, 1)
-      this.devOptions.map(i => {
+      this.form.deviceRespList.splice(index, 1);
+      this.devOptions.map((i) => {
         if (i.value === deviceId) {
-          i.disabled = false
+          i.disabled = false;
         }
-      })
+      });
     },
 
     // 取消
     cancel() {
-      this.$tab.closeOpenPage('/operation/activity')
+      this.$tab.closeOpenPage("/operation/activity");
     },
 
     // 确定
     getSubmit() {
       this.$refs.form.validate((valid) => {
         if (valid) {
-          submit(this.form).then(res => {
+          submit(this.form).then((res) => {
             if (res.code === 0) {
-              this.$message.success('提交成功!')
-              this.cancel()
+              this.$message.success("提交成功!");
+              this.cancel();
             }
-          })
+          });
         } else {
-          return false
+          return false;
         }
-      })
-    }
-  }
-}
+      });
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>

+ 6 - 3
src/views/operation/activity/index.vue

@@ -1,3 +1,4 @@
+<!-- 活动管理ß -->
 <template>
   <div class='app-container'>
     <!-- 搜索 -->
@@ -19,7 +20,9 @@
         <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-plus" plain @click="getDetail"
-          v-hasPermi="['operation:activity:add']">新增</el-button>
+        v-hasPermi="['operation:activity:add']">新增赠送流量</el-button>
+        <el-button type="primary" icon="el-icon-plus" plain @click="getDetail"
+          v-hasPermi="['operation:activity:add']">新增活动</el-button>
       </el-form-item>
     </el-form>
     <!-- 列表 -->
@@ -64,8 +67,8 @@
 </template>
 
 <script>
-import { list, change } from '@/api/operation/activity'
-import { currentMixin, disabledMixin } from '@/mixin/index'
+import { change, list } from '@/api/operation/activity';
+import { currentMixin, disabledMixin } from '@/mixin/index';
 export default {
   mixins: [currentMixin, disabledMixin],
   data() {

+ 432 - 164
src/views/order/list/index.vue

@@ -1,133 +1,356 @@
+<!-- 流量订单 -->
 <template>
   <div class="app-container">
     <!-- 搜索 -->
     <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>
       <!-- 会员订单 -->
-      <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>
+            <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
+        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
+      >
         <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) }}</span>
+            <span>{{
+              scope.row.effectTime | empty(scope.row.effectTime)
+            }}</span>
           </template>
         </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">
@@ -139,20 +362,32 @@
         <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)"
+              >下载</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, dialogList, download, downLoadHistory } from '@/api/order/list'
-import { list as sceneList } from '@/api/operation/scene'
-import { payTypeMixin, systemMixin, serviceTimeMixin, platformMixin } from '@/mixin/index'
+import { list as sceneList } from "@/api/operation/scene";
+import { dialogList, download, downLoadHistory, list } from "@/api/order/list";
+import {
+  payTypeMixin,
+  platformMixin,
+  serviceTimeMixin,
+  systemMixin,
+} from "@/mixin/index";
 export default {
   mixins: [payTypeMixin, systemMixin, serviceTimeMixin, platformMixin],
   data() {
@@ -164,7 +399,7 @@ export default {
       form: {
         pageNum: 1,
         pageSize: 10,
-        searchType: this.$route.query.searchType
+        searchType: this.$route.query.searchType,
       },
       // 列表
       tableData: [],
@@ -176,98 +411,123 @@ export default {
       dialogForm: {
         pageNum: 1,
         pageSize: 10,
-        searchType: this.$route.query.searchType
+        searchType: this.$route.query.searchType,
       },
       // 弹窗列表
       dialogTable: [],
       // 历史数据
       dialogTotal: 0,
       // 支付方式
-      payOptions: [{
-        value: 1,
-        label: '微信'
-      }, {
-        value: 2,
-        label: '支付宝'
-      }],
+      payOptions: [
+        {
+          value: 1,
+          label: "微信",
+        },
+        {
+          value: 2,
+          label: "支付宝",
+        },
+        {
+          value: 6,
+          label: "系统赠送",
+        },
+        {
+          value: 7,
+          label: "后台手动赠送",
+        },
+      ],
       // 支付状态
-      statusOptions: [{
-        value: 2,
-        label: '支付成功'
-      }, {
-        value: 3,
-        label: '支付失败'
-      }],
+      statusOptions: [
+        {
+          value: 2,
+          label: "支付成功",
+        },
+        {
+          value: 3,
+          label: "支付失败",
+        },
+      ],
       // 栏目
       sceneOptions: [],
       // 生效状态
-      flowOptions: [{
-        value: 0,
-        label: '已生效'
-      }, {
-        value: 1,
-        label: '待生效'
-      }, {
-        value: 2,
-        label: '已失效'
-      }],
+      flowOptions: [
+        {
+          value: 0,
+          label: "已生效",
+        },
+        {
+          value: 1,
+          label: "待生效",
+        },
+        {
+          value: 2,
+          label: "已失效",
+        },
+      ],
       // 订单内容类型
-      goodsTypeOptions: [{
-        value: 4,
-        label: '播客专辑'
-      }, {
-        value: 17,
-        label: '歌单'
-      }],
+      goodsTypeOptions: [
+        {
+          value: 4,
+          label: "播客专辑",
+        },
+        {
+          value: 17,
+          label: "歌单",
+        },
+      ],
       // 时间搜索不超过1个月
-      selectDate: '',
+      selectDate: "",
       pickerOptions: {
         onPick: ({ maxDate, minDate }) => {
-          this.selectDate = minDate.getTime()
+          this.selectDate = minDate.getTime();
           if (maxDate) {
-            this.selectDate = ''
+            this.selectDate = "";
           }
         },
         disabledDate: (time) => {
-          if (this.selectDate !== '') {
-            const one = 30 * 24 * 3600 * 1000
-            const minTime = this.selectDate - one
-            const maxTime = this.selectDate + one
-            return time.getTime() < minTime || time.getTime() > maxTime
+          if (this.selectDate !== "") {
+            const one = 30 * 24 * 3600 * 1000;
+            const minTime = this.selectDate - one;
+            const maxTime = this.selectDate + one;
+            return time.getTime() < minTime || time.getTime() > maxTime;
           }
-        }
-      }
-    }
+        },
+      },
+    };
   },
   mounted() {
-    this.getScene()
-    this.getList()
-    this.getPlatform({})
-    this.payOptions.push(this.form.searchType === '3' ? {
-      value: 3,
-      label: '苹果支付'
-    } : {
-      value: 4,
-      label: '猫币支付'
-    })
+    this.getScene();
+    this.getList();
+    this.getPlatform({});
+    this.payOptions.push(
+      this.form.searchType === "3"
+        ? {
+            value: 3,
+            label: "苹果支付",
+          }
+        : {
+            value: 4,
+            label: "猫币支付",
+          }
+    );
   },
   methods: {
     // 列表
     getList() {
-      this.loading = true
-      list(this.form).then(res => {
+      this.loading = true;
+      list(this.form).then((res) => {
         if (res.code === 0) {
-          this.tableData = res.data.records
-          this.total = res.data.total
-          this.loading = false
+          this.tableData = res.data.records;
+          this.total = res.data.total;
+          this.loading = false;
         }
-      })
+      });
     },
 
     // 搜索
     getSearch() {
-      this.form.pageNum = 1
-      this.getList()
+      this.form.pageNum = 1;
+      this.getList();
     },
 
     // 重置
@@ -275,113 +535,121 @@ export default {
       this.form = {
         pageNum: 1,
         pageSize: 10,
-        searchType: this.$route.query.searchType
-      }
-      this.getList()
+        searchType: this.$route.query.searchType,
+      };
+      this.getList();
     },
 
     // 导出
     handleExport() {
-      download(this.form).then(res => {
+      download(this.form).then((res) => {
         if (res.code === 0) {
-          this.$message.success(`${res.data}`)
+          this.$message.success(`${res.data}`);
         }
-      })
+      });
     },
 
     // 弹窗
     getDialog() {
-      this.dialogVisible = true
-      this.getDialogList()
+      this.dialogVisible = true;
+      this.getDialogList();
     },
 
     // 历史列表
     getDialogList() {
-      this.dialogLoading = true
-      dialogList(this.dialogForm).then(res => {
+      this.dialogLoading = true;
+      dialogList(this.dialogForm).then((res) => {
         if (res.code === 0) {
-          this.dialogTable = res.data.records
-          this.dialogTotal = res.data.total
-          this.dialogLoading = false
+          this.dialogTable = res.data.records;
+          this.dialogTotal = res.data.total;
+          this.dialogLoading = false;
         }
-      })
+      });
     },
 
     // 历史下载
     getDownLoad(row) {
-      this.$confirm(`是否下载${row.jobName}?`, '提示', {
-        type: 'warning'
-      }).then(() => {
-        downLoadHistory(row.msgId).then(res => {
-          if (res.code === 0) {
-            this.$message.success('下载成功!')
-            window.location.href = res.data
-            this.getDialogList()
-          }
+      this.$confirm(`是否下载${row.jobName}?`, "提示", {
+        type: "warning",
+      })
+        .then(() => {
+          downLoadHistory(row.msgId).then((res) => {
+            if (res.code === 0) {
+              this.$message.success("下载成功!");
+              window.location.href = res.data;
+              this.getDialogList();
+            }
+          });
         })
-      }).catch(() => { })
+        .catch(() => {});
     },
 
     // 栏目
     getScene() {
-      sceneList().then(res => {
+      sceneList().then((res) => {
         if (res.code === 0) {
-          res.data.map(i => {
+          res.data.map((i) => {
             this.sceneOptions.push({
               value: i.id,
-              label: i.name
-            })
-          })
+              label: i.name,
+            });
+          });
         }
-      })
+      });
     },
 
     // 字典翻译
     payTypeFormatter(row) {
-      return this.selectDictLabel(this.payOptions, row.payType)
+      return this.selectDictLabel(this.payOptions, row.payType);
     },
 
     statusFormatter(row) {
-      return this.selectDictLabel(this.statusOptions, row.status)
+      return this.selectDictLabel(this.statusOptions, row.status);
     },
 
     groupFormatter(row) {
-      return row.groupId === null ? '-' : this.selectDictLabel(this.sceneOptions, row.groupId)
+      return row.groupId === null
+        ? "-"
+        : this.selectDictLabel(this.sceneOptions, row.groupId);
     },
 
     chargingFormatter(row) {
-      return this.selectDictLabel(this.payTypeOptions, row.charging)
+      return this.selectDictLabel(this.payTypeOptions, row.charging);
     },
 
     platformFormatter(row) {
-      return this.selectDictLabel(this.systemOptions, row.platform)
+      return this.selectDictLabel(this.systemOptions, row.platform);
     },
 
     platformIdFormatter(row) {
-      return row.platformId === null ? '-' : this.selectDictLabel(this.platformOptions, row.platformId)
+      return row.platformId === null
+        ? "-"
+        : this.selectDictLabel(this.platformOptions, row.platformId);
     },
 
     flowFormatter(row) {
-      return row.flowStatus === null ? '-' : this.selectDictLabel(this.flowOptions, row.flowStatus)
+      return row.flowStatus === null
+        ? "-"
+        : this.selectDictLabel(this.flowOptions, row.flowStatus);
     },
 
     amountFormatter(row) {
-      return row.amount.toFixed(2)
+      return row.amount.toFixed(2);
     },
 
     timeFormatter(row) {
-      return this.selectDictLabel(this.serviceTimeOptions, row.expirationTime)
+      return this.selectDictLabel(this.serviceTimeOptions, row.expirationTime);
     },
 
     goodsTypeFormatter(row) {
-      return this.selectDictLabel(this.goodsTypeOptions, row.goodsType)
-    }
+      return this.selectDictLabel(this.goodsTypeOptions, row.goodsType);
+    },
   },
   // 过滤器
   filters: {
     empty(row) {
-      return !row ? '-' : row
-    }
-  }
-}
+      return !row ? "-" : row;
+    },
+  },
+};
 </script>