DESKTOP-SVI9JE1\muzen 2 jaren geleden
bovenliggende
commit
3c4b1c45b5

+ 0 - 63
src/api/service/qqmusic.js

@@ -1,63 +0,0 @@
-import request from '@/utils/request'
-
-// 分页
-export function page(data) {
-  return request({
-    url: `/qqService/page`,
-    method: 'post',
-    data
-  })
-}
-
-// 批量导入推送短信
-export function importData(data){
-  return request({
-    url: `/qqService/sendMsgList`,
-    method: 'post',
-    data
-  })
-}
-
-// 批量发送短信
-export function send(data){
-  return request({
-    url: `/qqService/batchSendMsg`,
-    method: 'post',
-    data
-  })
-}
-
-// 详情
-export function detail(query){
-  return request({
-    url: `/qqService/get`,
-    method: 'get',
-    params: query
-  })
-}
-
-// 强制过期
-export function past(data){
-  return request({
-    url: `/qqServiceBatch/updateStatus`,
-    method: 'post',
-    data
-  })
-}
-
-// 批次列表
-export function batchList(){
-  return request({
-    url: `/qqServiceBatch/pageAll`,
-    method: 'post'
-  })
-}
-
-// 批次分页列表
-export function batchPage(data){
-  return request({
-    url: `/qqServiceBatch/page`,
-    method: 'post',
-    data
-  })
-}

+ 0 - 58
src/views/content/autoFM/detail.vue

@@ -1,58 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form label-width="auto">
-      <el-form-item label="海外电台ID:">
-        <span>123</span>
-      </el-form-item>
-      <el-form-item label="电台名称:">
-        <span>猫王吟游乡村之旅</span>
-      </el-form-item>
-      <el-form-item label="电台网址:">
-        <el-link :underline="false" href="">www.baidu.com</el-link>
-      </el-form-item>
-      <el-form-item label="当前状态:">
-        <span>下线</span>
-      </el-form-item>
-      <el-form-item label="故障次数:">
-        <span>3</span>
-      </el-form-item>
-      <el-form-item label="最新故障时间:">
-        <span>2022-05-10 18:00:00</span>
-      </el-form-item>
-      <el-form-item label="监控:">
-        <el-select placeholder="是否开启监控">
-          <el-option />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="故障日志:">
-        <el-input type="textarea" rows="10" readonly />
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="cancel">取消</el-button>
-        <el-button type="primary">确定</el-button>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-
-    }
-  },
-  methods:{
-    // 取消
-    cancel(){
-      this.$tab.closeOpenPage("/content/autoFM");
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-form{
-  width: 500px;
-}
-</style>

+ 0 - 61
src/views/content/autoFM/index.vue

@@ -1,61 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
-      <el-form-item label="当前状态:">
-        <el-select placeholder="请选择当前状态">
-          <el-option />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="电台名称:">
-        <el-input placeholder="请输入电台名称" />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" @click="getSearch">搜索</el-button>
-        <el-button icon="el-icon-refresh" @click="getRefresh">重置</el-button>
-      </el-form-item>
-    </el-form>
-    <!-- 列表 -->
-    <el-table :data="tableData">
-      <el-table-column label="海外电台ID" align="center" />
-      <el-table-column label="电台名称" align="center" />
-      <el-table-column label="当前状态" align="center" />
-      <el-table-column label="监控" align="center" />
-      <el-table-column label="故障次数" align="center" />
-      <el-table-column label="最新故障时间" align="center" />
-      <el-table-column label="操作" align="center">
-        <el-button type="text" @click="getEdit">编辑</el-button>
-      </el-table-column>
-    </el-table>
-  </div>
-</template>
-
-<script>
-export default {
-  data() {
-    return {
-      tableData:[{
-        id: 1
-      }]
-    }
-  },
-  methods:{
-    // 搜索
-    getSearch(){
-
-    },
-    // 重置
-    getRefresh(){
-
-    },
-    getEdit(){
-      this.$router.push({
-        path: `/content/autoFM/detail`
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-</style>

+ 0 - 150
src/views/content/banner/detail.vue

@@ -1,150 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="form" label-width="110px">
-      <el-form-item label="Banner位置:">
-        <el-select v-model="form.type" placeholder="请选择Banner位置">
-          <el-option v-for="item in locationOptions" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="Banner名称:">
-        <el-input v-model="form.name" placeholder="请输入Banner名称" />
-      </el-form-item>
-      <el-form-item label="展示顺序:">
-        <el-input-number v-model="form.sort" :min="1" />
-      </el-form-item>
-      <el-form-item label="跳转地址:">
-        <el-radio-group v-model="form.forwardType">
-          <el-radio :label="0">内部</el-radio>
-          <el-radio :label="1">外部</el-radio>
-        </el-radio-group>
-        <el-select v-model="form.forwardLocation" v-if="form.forwardType === 0" placeholder="请选择跳转位置"
-          style="margin: 15px 0 20px 0">
-          <el-option v-for="item in addressOptions" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
-        </el-select>
-        <el-input v-model="form.forwardUrl" placeholder="请输入跳转链接地址"></el-input>
-      </el-form-item>
-      <el-form-item label="时间:">
-        <el-date-picker v-model="date" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间"
-          value-format="yyyy-MM-dd HH:mm:ss" />
-      </el-form-item>
-      <el-form-item label="图片上传:">
-        <Upload listType="picture-card" :url="form.pic" @upload="getUpload" />
-      </el-form-item>
-    </el-form>
-    <div class="form-btn">
-      <el-button @click="cancel">取消</el-button>
-      <el-button type="primary" @click="getSubmit">提交</el-button>
-    </div>
-  </div>
-</template>
-
-<script>
-import { submit, detail, edit } from '@/api/content/banner'
-export default {
-  data() {
-    return {
-      date: '',
-      form: {
-        sort: 1,
-        forwardType: 0
-      },
-      // 展示位置
-      locationOptions: [{
-        value: 1,
-        label: '首页-推荐'
-      }, {
-        value: 2,
-        label: '电台-首页'
-      }, {
-        value: 3,
-        label: '音乐-首页'
-      }, {
-        value: 5,
-        label: '喵舍-推荐'
-      }, {
-        value: 4,
-        label: '服务中心-音乐'
-      }, {
-        value: 6,
-        label: '服务中心-流量'
-      }, {
-        value: 7,
-        label: '服务中心-底部热门专辑'
-      }],
-      // 跳转地址
-      addressOptions:[{
-        value: 1,
-        label: '服务中心'
-      }, {
-        value: 2,
-        label: '喵舍'
-      }, {
-        value: 3,
-        label: '签到'
-      }]
-    }
-  },
-  watch: {
-    date(val) {
-      this.form.startTime = val[0]
-      this.form.endTime = val[1]
-    }
-  },
-  mounted() {
-    if (this.$route.query.id) {
-      this.getList()
-    }
-  },
-  methods: {
-    // 详情
-    getList() {
-      detail({
-        id: this.$route.query.id
-      }).then(res => {
-        if (res.code === 0) {
-          this.form = res.data
-          this.date = [res.data.startTime, res.data.endTime]
-        }
-      })
-    },
-    // 上传
-    getUpload(e) {
-      this.form.pic = e.file
-    },
-    // 取消
-    cancel() {
-      this.$tab.closeOpenPage("/content/banner");
-    },
-    // 提交
-    getSubmit() {
-      if (this.$route.query.id) {
-        edit(this.form).then(res => {
-          if (res.code === 0) {
-            this.$message.success('修改成功!')
-            this.cancel()
-          }
-        })
-      } else {
-        submit(this.form).then(res => {
-          if (res.code === 0) {
-            this.$message.success('新增成功!')
-            this.cancel()
-          }
-        })
-      }
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-form {
-  width: 500px;
-}
-
-.form-btn {
-  margin-left: 110px;
-}
-</style>

+ 0 - 198
src/views/content/banner/index.vue

@@ -1,198 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 搜索 -->
-    <el-form inline label-width="110px" size="mini">
-      <el-form-item label="Banner名称:">
-        <el-input v-model="form.name" placeholder="请输入名称" />
-      </el-form-item>
-      <el-form-item label="展示位置:">
-        <el-select v-model="form.type" placeholder="请选择展示位置">
-          <el-option v-for="item in locationOptions" :key="item.value" :label="item.label" :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="当前状态:">
-        <el-select v-model="form.status" placeholder="请选择当前状态">
-          <el-option v-for="item in currentOptions" :key="item.value" :label="item.label" :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="上/下架:">
-        <el-select v-model="form.shelfStatus" placeholder="请选择上/下架状态">
-          <el-option v-for="item in disabledOptions" :key="item.value" :label="item.label" :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <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="['content:banner:add']">新增</el-button>
-      </el-form-item>
-    </el-form>
-    <!-- 列表 -->
-    <el-table :data="tableData" v-loading="loading">
-      <el-table-column label="Banner名称" prop="name" align="center" />
-      <el-table-column label="Banner位置" prop="type" align="center" :formatter="typeFormatter" />
-      <el-table-column label="轮播顺序" prop="sort" align="center" />
-      <el-table-column label="图片" align="center" width="100px">
-        <template slot-scope="scope">
-          <el-image :src="scope.row.pic" />
-        </template>
-      </el-table-column>
-      <el-table-column label="当前状态" prop="currentStatus" align="center" :formatter="currentFormatter" />
-      <el-table-column label="上/下架" prop="status" align="center" :formatter="statusFormatter" />
-      <el-table-column label="开始时间" prop="startTime" align="center" />
-      <el-table-column label="结束时间" prop="endTime" align="center" />
-      <el-table-column label="操作" align="center">
-        <template slot-scope="scope">
-          <el-button v-if="scope.row.status === 1" type="text" @click="getChange(scope.row, 0)"
-            v-hasPermi="['content:banner:down']">下架</el-button>
-          <div v-else>
-            <el-button type="text" @click="getDetail(scope.row)" v-hasPermi="['content:banner:edit']">
-              编辑
-            </el-button>
-            <el-button type="text" @click="getChange(scope.row, 1)" v-hasPermi="['content:banner:up']">
-              上架
-            </el-button>
-            <el-button v-if="scope.row.status === 0" type="delete" @click="getDelete(scope.row)"
-              v-hasPermi="['content:banner:delete']">
-              删除
-            </el-button>
-          </div>
-        </template>
-      </el-table-column>
-    </el-table>
-    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
-      @pagination="getList" />
-  </div>
-</template>
-
-<script>
-import { page, changeStatus, remove } from '@/api/content/banner'
-import { disabledMixin, currentMixin } from '@/mixin/index'
-export default {
-  mixins: [disabledMixin, currentMixin],
-  data() {
-    return {
-      // 遮罩层
-      loading: false,
-      // 表单
-      form: {
-        pageNum: 1,
-        pageSize: 10
-      },
-      total: 0,
-      // 列表
-      tableData: [],
-      // 展示位置
-      locationOptions: [{
-        value: 1,
-        label: '首页-推荐'
-      }, {
-        value: 2,
-        label: '电台-首页'
-      }, {
-        value: 3,
-        label: '音乐-首页'
-      }, {
-        value: 5,
-        label: '喵舍-推荐'
-      }, {
-        value: 4,
-        label: '服务中心-音乐'
-      }, {
-        value: 6,
-        label: '服务中心-流量'
-      }, {
-        value: 7,
-        label: '服务中心-底部热门专辑'
-      }]
-    }
-  },
-  mounted() {
-    this.getList()
-  },
-  methods: {
-    // 搜索
-    getSearch() {
-      this.form.pageNum = 1
-      this.form.pageSize = 10
-      this.getList()
-    },
-
-    // 重置
-    getRefresh() {
-      this.form = {
-        pageNum: 1,
-        pageSize: 10
-      }
-      this.getList()
-    },
-
-    // 分页
-    getList() {
-      this.loading = true
-      page(this.form).then(res => {
-        if (res.code === 0) {
-          this.tableData = res.data.records
-          this.total = res.data.total
-          this.loading = false
-        }
-      })
-    },
-
-    // 上下架
-    getChange(row, status) {
-      let tips = status === 0 ? '下架' : '上架'
-      changeStatus({
-        id: row.id,
-        status: status
-      }).then(res => {
-        if (res.code === 0) {
-          this.$message.success(`${tips}成功!`)
-          this.getList()
-        }
-      })
-    },
-
-    // 删除
-    getDelete(row) {
-      this.$confirm(`是否删除${row.name}`, '提示', {
-        confirmButtonText: '确认',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        remove({
-          id: row.id
-        }).then(res => {
-          if (res.code === 0) {
-            this.$message.success('删除成功!')
-            this.getList()
-          }
-        })
-      }).catch(() => {
-        this.$message.info('取消删除!')
-      })
-    },
-
-    // 新增 编辑
-    getDetail(row) {
-      this.$router.push({
-        path: '/content/banner/detail',
-        query: {
-          id: row.id
-        }
-      })
-    },
-
-    // 字典翻译
-    statusFormatter(row) {
-      return this.selectDictLabel(this.disabledOptions, row.status)
-    },
-    typeFormatter(row) {
-      return this.selectDictLabel(this.locationOptions, row.type)
-    },
-    currentFormatter(row) {
-      return this.selectDictLabel(this.currentOptions, row.currentStatus)
-    }
-  }
-}
-</script>

+ 0 - 342
src/views/service/qqmusic/index.vue

@@ -1,342 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 搜索 -->
-    <el-form inline size="mini">
-      <el-form-item label="批次:">
-        <el-input v-model="form.no" placeholder="请输入批次" clearable />
-      </el-form-item>
-      <el-form-item label="服务时长:">
-        <el-select v-model="form.serviceTime" placeholder="请选择服务时长" clearable>
-          <el-option v-for="item in serviceTimeOptions" :key="item.value" :label="item.label" :value="item.value" />
-        </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" :label="item.label" :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="用户姓名:">
-        <el-input v-model="form.userName" placeholder="请输入用户姓名" clearable />
-      </el-form-item>
-      <el-form-item label="手机号:">
-        <el-input v-model="form.phone" placeholder="请输入手机号" clearable />
-      </el-form-item>
-      <el-form-item label="激活状态:">
-        <el-select v-model="form.activeStatus" placeholder="请选择激活状态" clearable>
-          <el-option v-for="item in activeOptions" :key="item.value" :value="item.value" :label="item.label" />
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" @click="getSearch">搜索</el-button>
-        <el-button icon="el-icon-refresh" @click="getRefresh">重置</el-button>
-        <Upload action="/qqService/importData" @upload="getUpload" style="margin: 0 10px"
-          v-hasPermi="['service:qqmusic:push']">批量推送短信</Upload>
-        <el-button type="danger" @click="getDialog()" v-hasPermi="['service:qqmusic:over']">批量过期</el-button>
-        <el-button type="text" @click="getTemplate">模板下载</el-button>
-      </el-form-item>
-    </el-form>
-    <!-- 列表 -->
-    <el-table :data="tableData" v-loading="loading">
-      <el-table-column label="批次" prop="no" align="center" show-overflow-tooltip />
-      <el-table-column label="购买套餐" prop="name" align="center" :formatter="nameFormatter" />
-      <el-table-column label="用户姓名" prop="userName" align="center" :formatter="userNameFormatter" />
-      <el-table-column label="用户手机号" prop="phone" align="center" :formatter="phoneFormatter" />
-      <el-table-column label="服务时长" prop="serviceTime" align="center" :formatter="timeFormatter" />
-      <el-table-column label="Key" prop="key" align="center" show-overflow-tooltip />
-      <el-table-column label="发送时间" prop="sendTime" align="center" show-overflow-tooltip />
-      <el-table-column label="当前状态" prop="codeStatus" align="center" :formatter="statusFormatter" />
-      <el-table-column label="是否激活" prop="activeStatus" align="center" :formatter="activeStatusFormatter" />
-      <el-table-column label="操作">
-        <template slot-scope="scope">
-          <el-button type="text" @click="getDialog(scope.row)">查看</el-button>
-          <el-button v-if="scope.row.codeStatus === 2" type="text">重新发送</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <!-- 分页 -->
-    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
-      @pagination="getList" />
-    <!-- 弹窗 -->
-    <el-dialog :visible.sync="dialogVisible" :title="title">
-      <!-- 批量发送短信 批量过期 -->
-      <el-form v-if="title === '批量推送短信'">
-        <el-form-item label="服务时长:" label-width="100px" style="width: 300px">
-          <el-select v-model="dialogForm.serviceTime" placeholder="请选择服务时长">
-            <el-option v-for="item in serviceTimeOptions" :key="item.value" :label="item.label" :value="item.value" />
-          </el-select>
-        </el-form-item>
-        <el-form-item>
-          <el-table :data="dialogData" ref="dialogData" :row-key="rowKey" @selection-change="selectionChange"
-            height="497">
-            <el-table-column type="selection" align="center" />
-            <el-table-column label="购买套餐" prop="name" align="center" />
-            <el-table-column label="收货地址" prop="receiveAddress" align="center" />
-            <el-table-column label="用户姓名" prop="userName" align="center" />
-            <el-table-column label="用户手机号" prop="phone" align="center" />
-          </el-table>
-        </el-form-item>
-        <el-form-item>
-          <el-button @click="cancel">取消</el-button>
-          <el-button v-if="title === '批量推送短信'" type="primary" @click="getSend">发送</el-button>
-          <el-button v-else type="primary">确定</el-button>
-        </el-form-item>
-      </el-form>
-
-      <!-- 批量过期 -->
-      <div v-else-if="title === '批量过期'">
-        <el-table :data="dialogData" height="429">
-          <el-table-column label="批次" prop="no" align="center" />
-          <el-table-column label="批次状态" prop="status" align="center" :formatter="batchFormatter" />
-          <el-table-column label="批次人数" prop="num" align="center" />
-          <el-table-column label="成功" prop="successNum" align="center" />
-          <el-table-column label="失败" prop="failNum" align="center" />
-          <el-table-column label="添加日期" prop="createTime" align="center" show-overflow-tooltip />
-          <el-table-column label="操作" align="center">
-            <template slot-scope="scope">
-              <el-button type="delete" @click="getPast(scope.row)">强制过期</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <!-- 分页 -->
-        <pagination v-show="batchTotal > 0" :total="batchTotal" :page.sync="batchForm.pageNum"
-          :limit.sync="batchForm.pageSize" @pagination="getBatchPage" />
-      </div>
-
-      <!-- 查看详情 -->
-      <div v-else>
-        <el-descriptions title="基础信息" :column="1">
-          <el-descriptions-item label="收货地址">{{ dialogDetail.receiveAddress }}</el-descriptions-item>
-          <el-descriptions-item label="用户姓名">{{ dialogDetail.userName }}</el-descriptions-item>
-          <el-descriptions-item label="用户手机号">{{ dialogDetail.phone }}</el-descriptions-item>
-          <el-descriptions-item label="购买套餐">{{ dialogDetail.name }}</el-descriptions-item>
-        </el-descriptions>
-        <el-descriptions title="服务信息" :column="1">
-          <el-descriptions-item label="批次">{{ dialogDetail.batchNo }}</el-descriptions-item>
-          <el-descriptions-item label="Key">{{ dialogDetail.key }}</el-descriptions-item>
-          <el-descriptions-item label="发送时间">{{ dialogDetail.sendTime }}</el-descriptions-item>
-          <el-descriptions-item label="激活账号">{{ dialogDetail.activeAccount }}</el-descriptions-item>
-        </el-descriptions>
-        <el-button type="danger" @click="getPast(dialogDetail)" v-hasPermi="['service:qqmusic:over']">
-          强制过期
-        </el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { page, send, importData, detail, past, batchList, batchPage } from '@/api/service/qqmusic'
-import { serviceTimeMixin } from '@/mixin/index'
-export default {
-  mixins: [serviceTimeMixin],
-  data() {
-    return {
-      // 遮罩层
-      loading: false,
-      // 表单
-      form: {
-        pageNum: 1,
-        pageSize: 10
-      },
-      // 列表
-      tableData: [],
-      total: 0,
-      // 弹窗
-      dialogVisible: false,
-      title: '',
-      dialogData: [],
-      // 弹窗详情
-      dialogDetail: {},
-      // 发送表单
-      dialogForm: {
-        serviceTime: ''
-      },
-      // 批次分页
-      batchForm: {
-        pageNum: 1,
-        pageSize: 10
-      },
-      batchTotal: 0,
-      // 批次状态
-      batchStatusOptions: [{
-        value: 0,
-        label: '有效'
-      }, {
-        value: 1,
-        label: '已被强制过期'
-      }, {
-        value: 2,
-        label: '删除'
-      }],
-      // batchOptions: [], (3.0.6版本舍弃)
-      // 当前状态
-      statusOptions: [
-        { value: 0, label: '已发送' },
-        { value: 1, label: '未发送' },
-        { value: 2, label: '发送失败' }
-      ],
-      activeOptions: [
-        { value: 0, label: '未激活' },
-        { value: 1, label: '已激活' }
-      ]
-    }
-  },
-  mounted() {
-    // this.getBatchList() (3.0.6版本舍弃)
-    this.getList()
-  },
-  methods: {
-    // 列表
-    getList() {
-      this.loading = true
-      page(this.form).then(res => {
-        if (res.code === 0) {
-          this.tableData = res.data.records
-          this.total = res.data.total
-          this.loading = false
-        }
-      })
-    },
-    
-    // 搜索
-    getSearch() {
-      this.form.pageNum = 1
-      this.form.pageSize = 10
-      this.getList()
-    },
-
-    // 重置
-    getRefresh() {
-      this.form = {
-        pageNum: 1,
-        pageSize: 10
-      }
-      this.getList()
-    },
-
-    // 下载模板
-    getTemplate() {
-      this.download('qqService/importTemplate', {
-      }, `推送短信模板.xlsx`)
-    },
-
-    // 批量推送短信
-    getUpload(e) {
-      importData({
-        batchId: e.file
-      }).then(res => {
-        if (res.code === 0) {
-          this.dialogVisible = true
-          this.title = '批量推送短信'
-          this.dialogData = res.data
-          this.$nextTick(() => {
-            this.$refs.dialogData.toggleAllSelection()
-          })
-        }
-      })
-    },
-
-    rowKey(row) {
-      return row.id
-    },
-
-    // 多选 
-    selectionChange(e) {
-      this.dialogForm.ids = []
-      e.map(i => {
-        this.dialogForm.ids.push(i.id)
-      })
-    },
-
-    // 弹窗
-    getDialog(row) {
-      this.dialogVisible = true
-      if (row) {
-        this.title = row.name
-        detail({
-          id: row.id
-        }).then(res => {
-          if (res.code === 0) {
-            this.dialogDetail = res.data
-          }
-        })
-      } else {
-        this.title = '批量过期'
-        this.getBatchPage()
-      }
-    },
-
-    // 批次分页
-    getBatchPage() {
-      batchPage(this.batchForm).then(res => {
-        if (res.code === 0) {
-          this.dialogData = res.data.records
-          this.batchTotal = res.data.total
-        }
-      })
-    },
-
-    // 发送
-    getSend() {
-      if (this.dialogForm.serviceTime !== '') {
-        send(this.dialogForm).then(res => {
-          if (res.code === 0) {
-            this.$message.success('发送成功!')
-            this.dialogVisible = false
-            this.getList()
-          }
-        })
-      } else {
-        this.$message.error('请选择服务时长!')
-      }
-    },
-
-    // 强制过期
-    getPast(row) {
-      this.$confirm('确定强制过期吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        past({
-          id: row.id,
-          status: 1
-        }).then(() => {
-          this.$message.success('操作成功!')
-          this.getBatchPage()
-        })
-      }).catch(() => {
-        this.$message.info('已取消!')
-      })
-    },
-
-    // 取消
-    cancel() {
-      this.dialogVisible = false
-    },
-
-    // 字典翻译
-    statusFormatter(row) {
-      return row.codeStatus === null ? '/' : this.selectDictLabel(this.statusOptions, row.codeStatus)
-    },
-    timeFormatter(row) {
-      return row.serviceTime === null ? '/' : this.selectDictLabel(this.serviceTimeOptions, row.serviceTime)
-    },
-    batchFormatter(row) {
-      return this.selectDictLabel(this.batchStatusOptions, row.status)
-    },
-    nameFormatter(row) {
-      return row.name === null ? '/' : row.name
-    },
-    userNameFormatter(row) {
-      return row.userName === null ? '/' : row.userName
-    },
-    phoneFormatter(row) {
-      return row.phone === null ? '/' : row.phone
-    },
-    activeStatusFormatter(row) {
-      return this.selectDictLabel(this.activeOptions, row.activeStatus)
-    }
-  }
-}
-</script>