DESKTOP-O04BTUJ\muzen 2 年之前
父節點
當前提交
6092c9f695

+ 0 - 60
src/api/service/musicPackage.js

@@ -1,60 +0,0 @@
-import request from '@/utils/request'
-
-// 列表
-export function list(data){
-  return request({
-    url: `/admin/goods/list`,
-    method: 'post',
-    data
-  })
-}
-
-// 详情
-export function detail(id) {
-  return request({
-    url: `/admin/goods/queryGoodById/${id}`,
-    method: 'get'
-  })
-}
-
-// 修改
-export function edit(data){
-  return request({
-    url: `/admin/goods/edit`,
-    method: 'put',
-    data
-  })
-}
-
-// 新增
-export function create(data){
-  return request({
-    url: `/admin/goods/add`,
-    method: 'post',
-    data
-  })
-}
-
-// 删除
-export function remove(id) {
-  return request({
-    url: `/admin/goods/remove/${id}`,
-    method: 'get'
-  })
-}
-
-// 下架
-export function shelve(id) {
-  return request({
-    url: `/admin/goods/unshelve/${id}`,
-    method: 'get'
-  })
-}
-
-// 流量套餐
-export function goodsList() {
-  return request({
-    url: `/admin/goods/queryPackageList`,
-    method: 'get'
-  })
-}

+ 0 - 73
src/views/service/flowPackage/detail.vue

@@ -1,73 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="form" :rules="rules" ref="form" label-width="100px">
-      <el-form-item label="关联设备:">
-        <el-select v-model="deviceIds" multiple placeholder="请选择关联设备">
-          <el-option v-for="item in devOptions" :key="item.value" :label="item.label"
-            :value="item.value.toString()" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="流量名称:">
-        <el-input v-model="form.name" placeholder="请输入套餐名称" />
-      </el-form-item>
-      <el-form-item label="服务类型:">
-        <el-select v-model="form.businessType" placeholder="请选择服务类型" :disabled="form.id ? true : false">
-          <el-option v-for="item in businessOptions" :key="item.value" :value="item.value"
-            :label="item.label" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="流量套餐:">
-        <el-select v-model="form.goodsId" placeholder="请选择流量套餐" :disabled="form.id ? true : false">
-          <el-option v-for="(item, index) in goodsOptions" :key="index" :label="item" :value="index" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="原价:" prop="price">
-        <el-input v-model="form.price" placeholder="请输入原价" />
-      </el-form-item>
-      <el-form-item label="活动价:" prop="discount">
-        <el-input v-model="form.discount" placeholder="请输入活动价" />
-      </el-form-item>
-      <el-form-item label="是否推荐:">
-        <el-select v-model="form.isRecommend">
-          <el-option v-for="item in recommendOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="排序:" v-if="form.businessType === 5">
-        <el-input-number v-model="form.sort" :min="1" />
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="cancel">取消</el-button>
-        <el-button type="primary" @click="getSubmit">提交</el-button>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script>
-import { devMixin } from '@/mixin/index'
-import { mixin, detailMixin, goodsMixin } from '../mixin/index'
-export default {
-  mixins: [devMixin, mixin, detailMixin, goodsMixin],
-  data() {
-    return {
-      // 表单
-      form: {
-        type: 12
-      },
-    }
-  },
-  methods: {
-    // 取消
-    cancel() {
-      this.$tab.closeOpenPage("/service/flowPackage");
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-form {
-  width: 500px;
-}
-</style>

+ 0 - 102
src/views/service/flowPackage/index.vue

@@ -1,102 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 搜索 -->
-    <el-form inline size="mini">
-      <el-form-item label="流量名称:">
-        <el-input v-model="form.name" placeholder="请输入套餐名称" clearable />
-      </el-form-item>
-      <el-form-item label="流量套餐:">
-        <el-select v-model="form.goodsId" placeholder="请选择流量套餐" clearable>
-          <el-option v-for="(item, index) in goodsOptions" :key="index" :label="item" :value="index" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="关联设备:">
-        <el-select v-model="form.deviceIds" placeholder="请选择关联设备" clearable>
-          <el-option v-for="item in devOptions" :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>
-        <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" plain icon="el-icon-plus" @click="getDetail()"
-          v-hasPermi="['service:flowPackage:add']">新增</el-button>
-      </el-form-item>
-    </el-form>
-    <!-- 列表 -->
-    <el-table :data="tableData" v-loading="loading" :default-sort="{prop: 'sort'}">
-      <el-table-column label="排序" align="center" prop="sort" :formatter="sortFormatter" />
-      <el-table-column label="流量名称" align="center" prop="name" show-overflow-tooltip />
-      <el-table-column label="关联设备" align="center" prop="deviceIds" :formatter="devFormatter"
-        show-overflow-tooltip />
-      <el-table-column label="原价/元" align="center" prop="price" />
-      <el-table-column label="活动价/元" align="center" prop="discount" />
-      <el-table-column label="流量套餐" align="center" prop="intro" show-overflow-tooltip />
-      <el-table-column label="当前状态" align="center" prop="status" :formatter="statusFormatter" />
-      <el-table-column label="是否推荐" align="center" prop="isRecommend" :formatter="recommendFormatter" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center">
-        <template slot-scope="scope">
-          <span v-if="scope.row.status === 1">
-            <el-button type="text" @click="getDetail(scope.row.id)" v-hasPermi="['service:flowPackage:edit']">
-              编辑
-            </el-button>
-            <el-button type="text" @click="getChange(scope.row)" v-hasPermi="['service:flowPackage:down']">
-              下架
-            </el-button>
-          </span>
-          <el-button v-else type="delete" @click="getDelete(scope.row)"
-            v-hasPermi="['service:flowPackage:delete']">删除</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" />
-  </div>
-</template>
-
-<script>
-import { devMixin } from '@/mixin/index'
-import { mixin, indexMixin, goodsMixin } from '../mixin/index'
-export default {
-  mixins: [devMixin, mixin, goodsMixin, indexMixin],
-  data() {
-    return {
-      // 表单
-      form: {
-        pageNum: 1,
-        pageSize: 10,
-        type: 12
-      },
-    }
-  },
-  methods: {
-    // 重置
-    getRefresh() {
-      this.form = {
-        pageNum: 1,
-        pageSize: 10,
-        type: 12
-      }
-      this.getList()
-    },
-
-    // 新增 / 编辑
-    getDetail(id) {
-      this.$router.push({
-        path: `/service/flowPackage/detail`,
-        query: {
-          id: id
-        }
-      })
-    },
-    
-
-  }
-}
-</script>

+ 0 - 277
src/views/service/mixin/index.js

@@ -1,277 +0,0 @@
-const mixin = {
-  data() {
-    return {
-      // 是否推荐
-      recommendOptions: [{
-        value: 0,
-        label: '是'
-      }, {
-        value: 1,
-        label: '否'
-      }],
-      // 当前状态
-      statusOptions: [{
-        value: 1,
-        label: '上架'
-      }, {
-        value: 4,
-        label: '下架'
-      }]
-    }
-  }
-}
-
-const flowPackageMixin = {
-  data() {
-    return {
-      // 运营商
-      operatorOptions: [{
-        value: 0,
-        label: '移动'
-      }, {
-        value: 1,
-        label: '联通'
-      }, {
-        value: 2,
-        label: '双网双号'
-      }]
-    }
-  }
-}
-
-const musicPackageMixin = {
-  data() {
-    return {
-      // 资源平台
-      platformOptions: [{
-        value: 1,
-        label: 'QQ音乐'
-      }]
-    }
-  }
-}
-
-import {
-  goodsList
-} from '@/api/service/musicPackage'
-const goodsMixin = {
-  data() {
-    return {
-      // 流量套餐
-      goodsOptions: []
-    }
-  },
-  mounted() {
-    goodsList().then(res => {
-      if (res.code === 0) {
-        this.goodsOptions = res.data
-      }
-    })
-  },
-}
-
-import {
-  list,
-  remove,
-  shelve
-} from '@/api/service/musicPackage'
-const indexMixin = {
-  data() {
-    return {
-      // 遮罩层
-      loading: false,
-      // 列表
-      tableData: [],
-      total: 0
-    }
-  },
-  mounted() {
-    this.getList()
-  },
-  methods: {
-    // 列表
-    getList() {
-      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
-        }
-      })
-    },
-
-    // 搜索
-    getSearch() {
-      this.form.pageNum = 1
-      this.getList()
-    },
-
-    // 删除
-    getDelete(row) {
-      this.$confirm(`是否删除${row.name}?`, '提示', {
-        'confirmButtonText': '确定',
-        'cancelButtonText': '取消',
-        type: 'warning'
-      }).then(() => {
-        remove(row.id).then(res => {
-          if (res.code === 0) {
-            this.$message.success('删除成功!')
-            this.getList()
-          }
-        })
-      }).catch(() => {})
-    },
-
-    // 下架
-    getChange(row) {
-      this.$confirm(`是否下架${row.name}?`, '提示', {
-        'confirmButtonText': '确定',
-        'cancelButtonText': '取消',
-        type: 'warning'
-      }).then(() => {
-        shelve(row.id).then(res => {
-          if (res.code === 0) {
-            this.$message.success('下架成功!')
-            this.getList()
-          }
-        })
-      }).catch(() => {})
-    },
-
-    // 当前状态
-    statusFormatter(row) {
-      return this.selectDictLabel(this.statusOptions, row.status)
-    },
-    // 是否推荐
-    recommendFormatter(row) {
-      return this.selectDictLabel(this.recommendOptions, row.isRecommend)
-    },
-    // 关联设备
-    devFormatter(row) {
-      return row.deviceIds ? row.deviceIds.split(',').map(i => this.selectDictLabel(this.devOptions, i)).join(',') : ''
-    },
-
-    // 字典翻译
-    sortFormatter(row) {
-      return row.businessType === 5 ? row.sort : '/'
-    }
-  },
-}
-
-import {
-  detail,
-  edit,
-  create
-} from '@/api/service/musicPackage'
-const detailMixin = {
-  data() {
-    let checkedPrice = (rule, value, callback) => {
-      if (Number(value) > 500) {
-        callback(new Error('原价不得超过500'))
-      } else {
-        if (this.form.discount !== undefined) {
-          this.$refs.form.validateField('discount')
-        }
-        callback()
-      }
-    }
-    let checkedDiscount = (rule, value, callback) => {
-      if (Number(value) > Number(this.form.price)) {
-        callback(new Error('活动价不得大于原价!'))
-      } else {
-        callback()
-      }
-    }
-    return {
-      // 关联设备
-      deviceIds: [],
-      // 校验
-      rules: {
-        price: [{
-          validator: checkedPrice,
-          trigger: 'blur'
-        }],
-        discount: [{
-          validator: checkedDiscount,
-          trigger: 'blur'
-        }]
-      },
-      // 服务类型
-      businessOptions: [{
-        value: 0,
-        label: '签到'
-      }, {
-        value: 1,
-        label: '收听奖励'
-      }, {
-        value: 2,
-        label: '积分抽奖'
-      }, {
-        value: 3,
-        label: '打开手机通知'
-      }, {
-        value: 4,
-        label: '积分兑换'
-      }, {
-        value: 5,
-        label: '服务中心'
-      }]
-    }
-  },
-  watch: {
-    deviceIds(val) {
-      this.form.deviceIds = val.join(',')
-    }
-  },
-  mounted() {
-    if (this.$route.query.id) {
-      this.form.id = this.$route.query.id
-      this.getList()
-    }
-  },
-  methods: {
-    // 详情
-    getList() {
-      detail(this.form.id).then(res => {
-        if (res.code === 0) {
-          this.form = res.data
-          this.deviceIds = res.data.deviceIds.split(',')
-        }
-      })
-    },
-    // 提交
-    getSubmit() {
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          if (this.form.id) {
-            edit(this.form).then(res => {
-              if (res.code === 0) {
-                this.$message.success('修改成功!')
-                this.cancel()
-              }
-            })
-          } else {
-            create(this.form).then(res => {
-              if (res.code === 0) {
-                this.$message.success('新增成功!')
-                this.cancel()
-              }
-            })
-          }
-        } else {
-          return false
-        }
-      })
-    }
-  }
-}
-
-export {
-  mixin,
-  flowPackageMixin,
-  musicPackageMixin,
-  indexMixin,
-  detailMixin,
-  goodsMixin
-}

+ 0 - 80
src/views/service/musicPackage/detail.vue

@@ -1,80 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="form" :rules="rules" ref="form" label-width="100px">
-      <el-form-item label="关联设备:">
-        <el-select v-model="deviceIds" multiple placeholder="请选择关联设备">
-          <el-option v-for="item in devOptions" :key="item.value" :label="item.label"
-            :value="item.value.toString()" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="套餐名称:">
-        <el-input v-model="form.name" placeholder="请输入套餐名称" />
-      </el-form-item>
-      <el-form-item label="服务类型:">
-        <el-select v-model="form.businessType" placeholder="请选择服务类型">
-          <el-option v-for="item in businessOptions" :key="item.value" :value="item.value"
-            :label="item.label" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="资源平台:">
-        <el-select v-model="form.platformId" placeholder="请选择资源平台">
-          <el-option v-for="item in platformOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="原价:" prop="price">
-        <el-input v-model="form.price" placeholder="请输入原价" />
-      </el-form-item>
-      <el-form-item label="活动价:" prop="discount">
-        <el-input v-model="form.discount" placeholder="请输入活动价" />
-      </el-form-item>
-      <el-form-item label="服务时长:">
-        <el-select v-model="form.indate" 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 label="是否推荐:">
-        <el-select v-model="form.isRecommend">
-          <el-option v-for="item in recommendOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="排序:" v-if="form.businessType === 5">
-        <el-input-number v-model="form.sort" :min="1" />
-      </el-form-item>
-      <el-form-item>
-        <el-button @click="cancel">取消</el-button>
-        <el-button type="primary" @click="getSubmit">提交</el-button>
-      </el-form-item>
-    </el-form>
-  </div>
-</template>
-
-<script>
-import { devMixin, serviceTimeMixin } from '@/mixin/index'
-import { mixin, musicPackageMixin, detailMixin } from '../mixin/index'
-export default {
-  mixins: [devMixin, serviceTimeMixin, mixin, musicPackageMixin, detailMixin],
-  data() {
-    return {
-      // 表单
-      form: {
-        type: 13
-      }
-    }
-  },
-  methods: {
-    // 取消
-    cancel() {
-      this.$tab.closeOpenPage("/service/musicPackage");
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-form {
-  width: 500px;
-}
-</style>

+ 0 - 114
src/views/service/musicPackage/index.vue

@@ -1,114 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 搜索 -->
-    <el-form inline size="mini">
-      <el-form-item label="套餐名称:">
-        <el-input v-model="form.name" placeholder="请输入套餐名称" clearable />
-      </el-form-item>
-      <el-form-item label="资源平台:">
-        <el-select v-model="form.platformId" placeholder="请选择资源平台" clearable>
-          <el-option v-for="item in platformOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="关联设备:">
-        <el-select v-model="form.deviceIds" placeholder="请选择关联设备" clearable>
-          <el-option v-for="item in devOptions" :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>
-        <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" plain icon="el-icon-plus" @click="getDetail()"
-          v-hasPermi="['service:musicPackage:add']">新增</el-button>
-      </el-form-item>
-    </el-form>
-    <!-- 列表 -->
-    <el-table :data="tableData" v-loading="loading" :default-sort="{prop: 'sort'}">
-      <el-table-column label="排序" align="center" prop="sort" :formatter="sortFormatter" />
-      <el-table-column label="套餐名称" align="center" prop="name" show-overflow-tooltip />
-      <el-table-column label="关联设备" align="center" prop="deviceIds" :formatter="devFormatter"
-        show-overflow-tooltip />
-      <el-table-column label="原价/元" align="center" prop="price" />
-      <el-table-column label="活动价/元" align="center" prop="discount" />
-      <el-table-column label="有效期" align="center" prop="indate" :formatter="timeFormatter" />
-      <el-table-column label="资源平台" align="center" prop="platformId" :formatter="platformFormatter" />
-      <el-table-column label="当前状态" align="center" prop="status" :formatter="statusFormatter" />
-      <el-table-column label="是否推荐" align="center" prop="isRecommend" :formatter="recommendFormatter" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center">
-        <template slot-scope="scope">
-          <el-button type="text" @click="getDetail(scope.row.id)" v-hasPermi="['service:musicPackage:edit']">
-            编辑
-          </el-button>
-          <el-button v-if="scope.row.status === 1" type="text" @click="getChange(scope.row)"
-            v-hasPermi="['service:musicPackage:down']">下架</el-button>
-          <el-button v-else type="delete" @click="getDelete(scope.row)"
-            v-hasPermi="['service:musicPackage:delete']">删除</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" />
-  </div>
-</template>
-
-<script>
-import { devMixin, serviceTimeMixin } from '@/mixin/index'
-import { mixin, musicPackageMixin, indexMixin } from '../mixin/index'
-export default {
-  mixins: [devMixin, mixin, serviceTimeMixin, musicPackageMixin, indexMixin],
-  data() {
-    return {
-      // 遮罩层
-      loading: false,
-      // 表单
-      form: {
-        pageNum: 1,
-        pageSize: 10,
-        type: 13
-      },
-      // 列表
-      tableData: [],
-      total: 0
-    }
-  },
-  methods: {
-    // 重置
-    getRefresh() {
-      this.form = {
-        pageNum: 1,
-        pageSize: 10,
-        type: 13
-      }
-      this.getList()
-    },
-
-    // 新增 / 编辑
-    getDetail(id) {
-      this.$router.push({
-        path: `/service/musicPackage/detail`,
-        query: {
-          id: id
-        }
-      })
-    },
-
-    // 字典翻译
-    // 资源平台
-    platformFormatter(row) {
-      return this.selectDictLabel(this.platformOptions, row.platformId)
-    },
-    // 有效期
-    timeFormatter(row) {
-      return this.selectDictLabel(this.serviceTimeOptions, row.indate)
-    }
-  }
-}
-</script>