ソースを参照

feature:更新会员套餐的界面,接口

zeng.chen 3 ヶ月 前
コミット
dec1d165af

+ 24 - 3
src/api/service/package.js

@@ -1,7 +1,7 @@
 import request from '@/utils/request'
 
 // 列表
-export function list(data){
+export function list(data) {
   return request({
     url: `/admin/goods/list`,
     method: 'post',
@@ -18,7 +18,7 @@ export function detail(id) {
 }
 
 // 修改
-export function edit(data){
+export function edit(data) {
   return request({
     url: `/admin/goods/edit`,
     method: 'put',
@@ -27,7 +27,7 @@ export function edit(data){
 }
 
 // 新增
-export function create(data){
+export function create(data) {
   return request({
     url: `/admin/goods/add`,
     method: 'post',
@@ -57,4 +57,25 @@ export function goodsList(type) {
     url: `/admin/goods/queryPackageList?platform=${type}`,
     method: 'get'
   })
+}
+// 流量套餐
+export function newGoodsList(type, businessType) {
+  return request({
+    url: `/admin/goods/queryList/${type}/${businessType}`,
+    method: 'get'
+  })
+}
+
+// 查询设备下对应的赠送的商品列表
+export function deviceGoodsList(type, businessType, deviceIds) {
+  // /?deviceIds=${deviceIds}&businessType=${businessType}&type=${type}
+  return request({
+    url: `/admin/goods/listByDevice/admin/goods/listByDevice`,
+    method: 'post',
+    data: {
+      deviceIds,
+      businessType,
+      type
+    }
+  })
 }

+ 9 - 8
src/router/index.js

@@ -185,19 +185,20 @@ export const dynamicRoutes = [{
 },
 // 流量套餐
 {
-  path: '/flowpackage',
+  path: '/vippackage',
   component: Layout,
   hidden: true,
-  permissions: ['flowpackage:package:list'],
+  permissions: ['vip:package:list'],
   children: [{
-    path: 'flow/detail',
-    component: () => import('@/views/flowpackage/list/detail'),
-    name: 'flowDetail',
+    path: 'vippackage/detail',
+    component: () => import('@/views/vippackage/list/detail'),
+    name: 'vipDetail',
     meta: {
-      title: '流量套餐',
-      activeMenu: '/flowpackage/list'
+      title: '会员套餐',
+      activeMenu: '/vippackage/list'
     }
-  }]
+  },
+  ]
 },
 // 文章管理
 {

+ 77 - 233
src/views/device/list/detail.vue

@@ -1,12 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form
-      :model="form"
-      :rules="rules"
-      ref="form"
-      label-width="auto"
-      :disabled="disabled"
-    >
+    <el-form :model="form" :rules="rules" ref="form" label-width="auto" :disabled="disabled">
       <!-- <el-form-item label="应用类型:" prop="applicationType">
         <el-select v-model="form.applicationType" placeholder="请选择设备分类">
           <el-option
@@ -22,12 +16,7 @@
       <el-form-item label="应用类型:" prop="applicationType">
         <input type="checkbox" v-model="isChecked1" :disabled="disabled" />
         小程序
-        <input
-          type="checkbox"
-          style="margin-left: 30px"
-          v-model="isChecked2"
-          :disabled="disabled"
-        />
+        <input type="checkbox" style="margin-left: 30px" v-model="isChecked2" :disabled="disabled" />
         APP
       </el-form-item>
 
@@ -42,293 +31,148 @@
         <el-input v-model="form.bluetoothName" disabled />
       </el-form-item>
       <el-form-item label="蓝牙名称:" prop="bluetoothNames">
-        <el-tag
-          v-for="(item, index) in form.bluetoothNames"
-          :key="item"
-          :closable="!disabled"
-          :disable-transition="false"
-          @close="handleClose(index)"
-          style="margin-right: 10px"
-          >{{ item }}</el-tag
-        >
-        <el-input
-          v-if="inputVisible"
-          v-model="bluetoothName"
-          ref="saveTagInput"
-          @input="handleInput"
-          @keyup.enter.native="handleInputConfirm"
-          @blur="handleInputConfirm"
-          style="width: 100px"
-        />
+        <el-tag v-for="(item, index) in form.bluetoothNames" :key="item" :closable="!disabled"
+          :disable-transition="false" @close="handleClose(index)" style="margin-right: 10px">{{ item }}</el-tag>
+        <el-input v-if="inputVisible" v-model="bluetoothName" ref="saveTagInput" @input="handleInput"
+          @keyup.enter.native="handleInputConfirm" @blur="handleInputConfirm" style="width: 100px" />
         <el-button v-else @click="showInput" size="mini">+ 新增</el-button>
       </el-form-item>
       <el-form-item label="制造商:" prop="manufacturer">
-        <el-select
-          v-model="form.manufacturer"
-          placeholder="请选择设备制造商"
-          clearable
-        >
-          <el-option
-            v-for="item in manuOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+        <el-select v-model="form.manufacturer" placeholder="请选择设备制造商" clearable>
+          <el-option v-for="item in manuOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item label="多频多台:" prop="isChannelsPlatforms">
-        <el-switch
-          v-model="form.isChannelsPlatforms"
-          :active-value="1"
-          :inactive-value="0"
-        />
+        <el-switch v-model="form.isChannelsPlatforms" :active-value="1" :inactive-value="0" />
       </el-form-item>
       <el-form-item label="扫码授权:" prop="isScanAuth">
-        <el-switch
-          v-model="form.isScanAuth"
-          :active-value="1"
-          :inactive-value="0"
-        />
+        <el-switch v-model="form.isScanAuth" :active-value="1" :inactive-value="0" />
       </el-form-item>
       <el-form-item label="流量平台:">
         <el-select v-model="form.platform" placeholder="请选择流量平台">
-          <el-option
-            v-for="item in typeOptions"
-            :key="item.value"
-            :value="item.value"
-            :label="item.label"
-          />
+          <el-option v-for="item in typeOptions" :key="item.value" :value="item.value" :label="item.label" />
         </el-select>
       </el-form-item>
 
       <el-form-item label="设备分类:" prop="categoryId">
         <el-select v-model="form.categoryId" placeholder="请选择设备分类">
-          <el-option
-            v-for="item in categoryOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
+          <el-option v-for="item in categoryOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
 
       <el-form-item label="设备类型:" prop="deviceType">
         <el-select v-model="form.deviceType" placeholder="请选择设备类型">
-          <el-option
-            v-for="item in devTypeOptions"
-            :key="item.value"
-            :value="item.value"
-            :label="item.label"
-          />
+          <el-option v-for="item in devTypeOptions" :key="item.value" :value="item.value" :label="item.label" />
         </el-select>
       </el-form-item>
       <el-form-item label="是否热门:" prop="isHot">
         <el-select v-model="form.isHot" placeholder="请选择是否热门">
-          <el-option
-            v-for="item in yesOrNoOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="Number(item.value)"
-          />
+          <el-option v-for="item in yesOrNoOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="设备会员收费时间:" prop="vipTime">
+        <el-select v-model="form.vipTime" placeholder="默认关闭">
+          <el-option v-for="item in yesOrNoOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-row>
         <el-col :span="12">
           <el-form-item label="在线图片:" prop="img">
-            <Upload
-              listType="picture-card"
-              :url="form.img"
-              @upload="handleUploadImg($event, 'online')"
-              :disabled="disabled"
-            />
+            <Upload listType="picture-card" :url="form.img" @upload="handleUploadImg($event, 'online')"
+              :disabled="disabled" />
           </el-form-item>
         </el-col>
         <el-col :span="12">
-          <el-form-item
-            label="离线图片:"
-            prop="offlineImg"
-            style="float: right"
-          >
-            <Upload
-              listType="picture-card"
-              :url="form.offlineImg"
-              @upload="handleUploadImg($event, 'offline')"
-              :disabled="disabled"
-            />
+          <el-form-item label="离线图片:" prop="offlineImg" style="float: right">
+            <Upload listType="picture-card" :url="form.offlineImg" @upload="handleUploadImg($event, 'offline')"
+              :disabled="disabled" />
           </el-form-item>
         </el-col>
       </el-row>
       <!-- 子表单 -->
-      <el-button
-        v-if="disabled === false && form.typeList.length < 4"
-        type="primary"
-        icon="el-icon-plus"
-        @click="getAdd"
-        >新增</el-button
-      >
-      <div
-        class="sub-form"
-        v-for="(item, index) in form.typeList"
-        :key="item.id"
-      >
-        <el-form-item
-          label="设备模式:"
-          :prop="`typeList.${index}.type`"
-          :rules="{
-            required: true,
-            message: '请选择设备模式',
-            trigger: 'change',
-          }"
-        >
-          <el-select
-            v-model="item.type"
-            placeholder="请选择设备模式"
-            @change="getTypeChange(item)"
-          >
-            <el-option
-              v-for="item in devModeOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="Number(item.value)"
-              :disabled="item.disabled"
-            />
+      <el-button v-if="disabled === false && form.typeList.length < 4" type="primary" icon="el-icon-plus"
+        @click="getAdd">新增</el-button>
+      <div class="sub-form" v-for="(item, index) in form.typeList" :key="item.id">
+        <el-form-item label="设备模式:" :prop="`typeList.${index}.type`" :rules="{
+          required: true,
+          message: '请选择设备模式',
+          trigger: 'change',
+        }">
+          <el-select v-model="item.type" placeholder="请选择设备模式" @change="getTypeChange(item)">
+            <el-option v-for="item in devModeOptions" :key="item.value" :label="item.label" :value="Number(item.value)"
+              :disabled="item.disabled" />
           </el-select>
         </el-form-item>
-        <el-form-item
-          v-if="item.type !== 3"
-          label="功能权限:"
-          :prop="`typeList.${index}.functionList`"
-          :rules="{
-            type: 'array',
-            required: true,
-            message: '请选择功能权限',
-            trigger: 'change',
-          }"
-        >
-          <el-select
-            v-model="item.functionList"
-            placeholder="请选择功能权限"
-            multiple
-          >
-            <el-option
-              v-for="item in devFucOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
+        <el-form-item v-if="item.type !== 3" label="功能权限:" :prop="`typeList.${index}.functionList`" :rules="{
+          type: 'array',
+          required: true,
+          message: '请选择功能权限',
+          trigger: 'change',
+        }">
+          <el-select v-model="item.functionList" placeholder="请选择功能权限" multiple>
+            <el-option v-for="item in devFucOptions" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
-        <el-form-item
-          v-if="item.type == 2"
-          label="芯片方案:"
-          :prop="`typeList.${index}.is5g`"
-          :rules="{
-            required: true,
-            message: '请选择芯片方案',
-            trigger: 'change',
-          }"
-        >
+        <el-form-item v-if="item.type == 2" label="芯片方案:" :prop="`typeList.${index}.is5g`" :rules="{
+          required: true,
+          message: '请选择芯片方案',
+          trigger: 'change',
+        }">
           <el-select v-model="item.is5g" placeholder="请选择芯片方案">
-            <el-option
-              v-for="item in planOptions"
-              :key="item.value"
-              :value="item.value"
-              :label="item.label"
-            />
+            <el-option v-for="item in planOptions" :key="item.value" :value="item.value" :label="item.label" />
           </el-select>
         </el-form-item>
-        <el-form-item
-          v-if="item.type == 2"
-          label="连接方式:"
-          :prop="`typeList.${index}.connectType`"
-          :rules="{
-            required: true,
-            message: '请选择连接方式',
-            trigger: 'change',
-          }"
-        >
+        <el-form-item v-if="item.type == 2" label="连接方式:" :prop="`typeList.${index}.connectType`" :rules="{
+          required: true,
+          message: '请选择连接方式',
+          trigger: 'change',
+        }">
           <el-select v-model="item.connectType" placeholder="请选择连接方式">
-            <el-option
-              v-for="item in connectTypeOptions"
-              :key="item.value"
-              :label="item.label"
-              :value="Number(item.value)"
-            />
+            <el-option v-for="item in connectTypeOptions" :key="item.value" :label="item.label"
+              :value="Number(item.value)" />
           </el-select>
         </el-form-item>
         <el-row>
           <el-col :span="12">
-            <el-form-item
-              :label="
-                item.type === 1 || item.type === 3
-                  ? '连接引导图:'
-                  : '开机引导图:'
-              "
-              :prop="`typeList.${index}.icon1`"
-              :rules="{
+            <el-form-item :label="item.type === 1 || item.type === 3
+                ? '连接引导图:'
+                : '开机引导图:'
+              " :prop="`typeList.${index}.icon1`" :rules="{
                 required: true,
                 message: '请上传引导图片',
                 trigger: 'change',
-              }"
-            >
-              <Upload
-                listType="picture-card"
-                :url="item.icon1"
-                @upload="handleUploadIcon($event, index, 'icon1')"
-                :disabled="disabled"
-              />
+              }">
+              <Upload listType="picture-card" :url="item.icon1" @upload="handleUploadIcon($event, index, 'icon1')"
+                :disabled="disabled" />
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item
-              label="配对键引导图:"
-              :prop="`typeList.${index}.icon2`"
-              style="float: right"
-              :rules="{
-                required: true,
-                message: '请上传配对键引导图',
-                trigger: 'change',
-              }"
-            >
-              <Upload
-                listType="picture-card"
-                :url="item.icon2"
-                @upload="handleUploadIcon($event, index, 'icon2')"
-                :disabled="disabled"
-              />
+            <el-form-item label="配对键引导图:" :prop="`typeList.${index}.icon2`" style="float: right" :rules="{
+              required: true,
+              message: '请上传配对键引导图',
+              trigger: 'change',
+            }">
+              <Upload listType="picture-card" :url="item.icon2" @upload="handleUploadIcon($event, index, 'icon2')"
+                :disabled="disabled" />
             </el-form-item>
           </el-col>
         </el-row>
-        <el-form-item
-          v-if="item.type === 1 || item.type === 3"
-          label="引导页内容:"
-          :prop="`typeList.${index}.guidePageContent`"
-          :rules="{
+        <el-form-item v-if="item.type === 1 || item.type === 3" label="引导页内容:"
+          :prop="`typeList.${index}.guidePageContent`" :rules="{
             required: true,
             message: '请输入引导页内容',
             trigger: 'blur',
-          }"
-        >
-          <Editor
-            v-model="item.guidePageContent"
-            :min-height="250"
-            :readOnly="disabled"
-          />
+          }">
+          <Editor v-model="item.guidePageContent" :min-height="250" :readOnly="disabled" />
         </el-form-item>
         <!-- 删除按钮 -->
-        <el-link
-          class="el-icon-close"
-          v-if="form.typeList.length > 1"
-          :underline="false"
-          @click="getDelete(item.type, index)"
-        />
+        <el-link class="el-icon-close" v-if="form.typeList.length > 1" :underline="false"
+          @click="getDelete(item.type, index)" />
       </div>
     </el-form>
     <div>
       <el-button @click="getCancel">取消</el-button>
-      <el-button v-if="disabled === false" type="primary" @click="getSubmit"
-        >提交</el-button
-      >
+      <el-button v-if="disabled === false" type="primary" @click="getSubmit">提交</el-button>
     </div>
   </div>
 </template>

+ 57 - 48
src/views/flowpackage/list/detail.vue

@@ -1,39 +1,40 @@
 <template>
   <div class="app-container">
-    <el-form :model="form" :rules="rules" ref="form" label-width="100px">
-      <el-form-item label="流量平台:">
+    <el-form :model="form" :rules="rules" ref="form" label-width="120px">
+      <!-- <el-form-item v-if="typeList[0] === '18'" label="流量平台:">
         <el-select v-model="form.platform" placeholder="请选择流量平台" :disabled="disabled()">
           <el-option v-for="item in typeOptions" :key="item.value" :value="item.value" :label="item.label" />
         </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="deviceIds" filterable 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 label="资源平台:">
+        <el-select v-model="form.platformId" filterable multiple placeholder="请选择资源平台" :disabled="disabled()">
+          <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.businessType" placeholder="请选择服务类型" :disabled="disabled()">
           <el-option v-for="item in serviceTypeOptions" :key="item.value" :value="item.value" :label="item.label" />
         </el-select>
       </el-form-item>
-      <el-form-item v-if="typeList[0] === '13'" label="资源平台:">
-        <el-select v-model="form.platformId" placeholder="请选择资源平台" :disabled="disabled()">
-          <el-option v-for="item in platformOptions" :key="item.value" :label="item.label" :value="item.value" />
-        </el-select>
-      </el-form-item>
-      <el-form-item v-else label="流量套餐:">
+
+      <!-- <el-form-item v-else label="流量套餐:">
         <el-select v-model="form.goodsId" placeholder="请选择流量套餐" :disabled="disabled()">
           <el-option v-for="(item, index) in goodsOptions" :key="index" :label="item" :value="index" />
         </el-select>
-      </el-form-item>
-      <el-form-item v-if="form.platformId === 10" label="栏目:">
+      </el-form-item> -->
+      <!-- <el-form-item v-if="form.platformId === 10" label="栏目:">
         <el-select v-model="form.groupId" placeholder="请选择爱听栏目">
           <el-option v-for="item in sceneOptions" :key="item.value" :value="item.value" :label="item.label" />
         </el-select>
-      </el-form-item>
+      </el-form-item> -->
       <el-form-item label="原价:" prop="price">
         <el-input-number v-model="form.price" :min="0" :max="500" :controls="false" :precision="2"
           placeholder="请输入原价" />
@@ -55,8 +56,13 @@
       <el-form-item label="排序:" v-if="form.businessType === 5">
         <el-input-number v-model="form.sort" :min="1" />
       </el-form-item>
-      <el-form-item label="赠送流量:">
-        <el-switch v-model="form.isGift" />
+      <el-form-item label='赠送流量:'>
+        <el-switch v-model="form.isFreeContentVip" />
+      </el-form-item>
+      <el-form-item v-if="form.isFreeContentVip" label="关联流量套餐:">
+        <el-select v-model="form.freeOptions" placeholder="请选择流量套餐:">
+          <el-option v-for="item in form.freeOptions" :key="item.value" :label="item.label" :value="item.value" />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button @click="cancel">取消</el-button>
@@ -68,8 +74,8 @@
 
 <script>
 import { devMixin, serviceTimeMixin, serviceTypeMixin } from '@/mixin/index'
-import { list } from '@/api/operation/scene'
-import { detail, edit, create, goodsList } from '@/api/service/package'
+// import { list } from '@/api/operation/scene'
+import { detail, edit, create, goodsList, newGoodsList, deviceGoodsList } from '@/api/service/package'
 export default {
   mixins: [devMixin, serviceTimeMixin, serviceTypeMixin],
   data() {
@@ -99,19 +105,31 @@ export default {
       typeList: [],
       // 流量套餐
       goodsOptions: [],
-      // 爱听专区
-      sceneOptions: [],
+      // 赠送套餐
+      freeOptions: [],
       // 资源平台
       platformOptions: [{
         value: 6,
         label: 'QQ音乐'
       }, {
-        value: 9,
-        label: '酷狗音乐'
-      }, {
-        value: 10,
-        label: '爱听音乐'
+        value: 11,
+        label: '喜马拉雅'
       }],
+      // 设备会员收费时间
+      vipTimeOptions: [
+        {
+          value: -1,
+          label: "默认关闭",
+        },
+        {
+          value: 0,
+          label: "开机激活收取",
+        },
+        {
+          value: 1,
+          label: "联通",
+        },
+      ],
       // 是否推荐
       recommendOptions: [{
         value: 0,
@@ -142,27 +160,27 @@ export default {
     }
   },
   watch: {
-    typeList(val) {
-      if (val[0] !== '12') {
-        this.getSceneList()
-      }
-    },
+
     'form.businessType'(val) {
       if (val !== 5) {
         delete this.form.sort
       }
+      this.getDeviceGoodsList()
     },
     'form.platform'(val) {
       this.getDevList({ type: val })
-      this.getGoodSList(val)
+      this.getDeviceGoodsList()
+
     }
   },
   mounted() {
     this.typeList = this.$route.query.typeList.split(',')
+    console.log(this.$route.query)
     if (this.$route.query.id) {
       this.form.id = this.$route.query.id
       this.getList()
     }
+    this.getDevList();
   },
   methods: {
     // 详情
@@ -176,26 +194,17 @@ export default {
     },
 
     // 流量套餐
-    getGoodSList(e) {
-      goodsList(e).then(res => {
-        if (res.code === 0) {
-          this.goodsOptions = res.data
-        }
-      })
-    },
+    getDeviceGoodsList() {
+      if (this.form.deviceIds.length === 0 || (this.form.businessType ?? 0) <= 0) {
+        return
+      }
 
-    // 爱听专区
-    getSceneList() {
-      list().then(res => {
+      deviceGoodsList(this.form.typeList[0], this.form.businessType, this.form.deviceIds).then((res) => {
         if (res.code === 0) {
-          res.data.map(i => {
-            this.sceneOptions.push({
-              value: i.id,
-              label: i.name
-            })
-          })
+          console.log(res.data)
+          this.freeOptions = res.data;
         }
-      })
+      });
     },
 
     // 提交
@@ -228,7 +237,7 @@ export default {
     cancel() {
       // let url = this.typeList[0] === '13' ? 'musicPackage' : 'flowPackage'
       // this.$tab.closeOpenPage(`/flowpackage/${url}?typeList=${this.typeList}`);
-      this.$tab.closeOpenPage(`/flowpackage/list?typeList=${this.typeList}`);
+      this.$tab.closeOpenPage(`/vippackage/vippackage?typeList=${this.typeList}`);
     },
 
     // 禁止修改

+ 50 - 34
src/views/flowpackage/list/index.vue

@@ -3,10 +3,10 @@
   <div class="app-container">
     <!-- 搜索 -->
     <el-form inline size="mini">
-      <el-form-item :label="form.typeList[0] === '13' ? '套餐名称:' : '流量名称:'">
-        <el-input v-model="form.name" placeholder="请输入套餐名称" clearable />
+      <el-form-item :label="form.typeList[0] === '19' ? '套餐名称:' : '流量名称:'">
+        <el-input v-model="form.name" placeholder="请输入名称" clearable />
       </el-form-item>
-      <el-form-item v-if="form.typeList[0] !== '12'" label="资源平台:">
+      <el-form-item v-if="form.typeList[0] !== '18'" 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>
@@ -30,7 +30,7 @@
         <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="['flow:package:add']">新增</el-button>
+          v-hasPermi="['vip:package:add']">新增</el-button>
       </el-form-item>
     </el-form>
     <!-- 列表 -->
@@ -42,28 +42,31 @@
         show-overflow-tooltip />
       <el-table-column label="原价/元" align="center" prop="price" key="price" />
       <el-table-column label="活动价/元" align="center" prop="discount" key="discount" />
-      <el-table-column v-if="form.typeList[0] === '12'" label="流量套餐" align="center" prop="intro" key="intro"
+      <el-table-column v-if="form.typeList[0] === '18'" label="流量套餐" align="center" prop="intro" key="intro"
         show-overflow-tooltip />
-      <el-table-column v-if="form.typeList[0] !== '12'" label="有效期" align="center" prop="indate" key="indate"
+      <el-table-column v-if="form.typeList[0] !== '18'" label="服务时长" align="center" prop="indate" key="indate"
         :formatter="timeFormatter" />
-      <el-table-column v-if="form.typeList[0] !== '12'" label="资源平台" align="center" prop="platformId" key="platformId"
+      <el-table-column v-if="form.typeList[0] !== '18'" label="资源平台" align="center" prop="platformId" key="platformId"
         :formatter="platformFormatter" />
-      <el-table-column v-if="form.typeList[0] !== '12'" label="栏目" align="center" prop="groupId" key="groupId"
-        :formatter="sceneFormatter" />
-      <el-table-column label="当前状态" align="center" prop="status" key="status" :formatter="statusFormatter" />
+      <!-- <el-table-column v-if="form.typeList[0] !== '18'" label="栏目" align="center" prop="groupId" key="groupId"
+        :formatter="sceneFormatter" /> -->
+      <!-- <el-table-column label="当前状态" align="center" prop="status" key="status" :formatter="statusFormatter" /> -->
       <el-table-column label="是否推荐" align="center" prop="isRecommend" key="isRecommend"
         :formatter="recommendFormatter" />
-      <el-table-column label="是否赠送流量" align="center" prop="isGift" key="isGift" :formatter="giftFormatter" />
+      <el-table-column v-if="form.typeList[0] === '18'" label="是否赠送流量" align="center" prop="isFreeFlow" key="isFreeFlow"
+        :formatter="freeFlowFormatter" />
+      <el-table-column v-else-if="form.typeList[0] === '19'" label="是否赠送会员" align="center" prop="isFreeContentVip"
+        key="isFreeContentVip" :formatter="freeVipFormatter" />
       <el-table-column label="创建时间" align="center" prop="createTime" key="createTime" />
       <el-table-column label="操作" align="center">
         <template slot-scope="scope">
-          <el-button type="text" @click="getDetail(scope.row.id)" v-hasPermi="['service:package:edit']">
+          <el-button type="text" @click="getDetail(scope.row.id)" v-hasPermi="['vip:package:edit']">
             编辑
           </el-button>
           <el-button v-if="scope.row.status === 1" type="text" @click="getChange(scope.row)"
-            v-hasPermi="['service:package:down']">下架</el-button>
+            v-hasPermi="['vip:package:down']">下架</el-button>
           <el-button v-else type="delete" @click="getDelete(scope.row)"
-            v-hasPermi="['service:package:delete']">删除</el-button>
+            v-hasPermi="['vip:package:delete']">删除</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -73,8 +76,8 @@
 </template>
 
 <script>
-import { list as sceneList } from "@/api/operation/scene";
-import { goodsList, list, remove, shelve } from "@/api/service/package";
+// import { list as sceneList } from "@/api/operation/scene";
+import { goodsList, list, remove, shelve, deviceGoodsList, newGoodsList } from "@/api/service/package";
 import { devMixin, serviceTimeMixin } from "@/mixin/index";
 import { dialogCallBack } from "@/utils/DialogUtil";
 export default {
@@ -104,6 +107,17 @@ export default {
           label: "否",
         },
       ],
+      // 是否赠送流量,会员
+      freeOptions: [
+        {
+          value: 0,
+          label: "否",
+        },
+        {
+          value: 1,
+          label: "是",
+        },
+      ],
       // 当前状态
       statusOptions: [
         {
@@ -137,10 +151,12 @@ export default {
     };
   },
   mounted() {
-    if (this.form.typeList[0] === "12") {
+    if (this.form.typeList[0] === "18") {
+      // 流量套餐
       this.getGoodSList(2);
-    } else {
-      this.getSceneList();
+    } else if (this.form.typeList[0] === "19") {
+      // 会员使用权套餐
+      // this.getVipList();
     }
     this.getDevList();
     this.getList();
@@ -167,16 +183,11 @@ export default {
       });
     },
 
-    // 爱听专区
-    getSceneList() {
-      sceneList().then((res) => {
+    // 会员使用权套餐
+    getVipList(e) {
+      newGoodsList(e).then((res) => {
         if (res.code === 0) {
-          res.data.map((i) => {
-            this.sceneOptions.push({
-              value: i.id,
-              label: i.name,
-            });
-          });
+          this.freeOptions = res.data;
         }
       });
     },
@@ -192,7 +203,8 @@ export default {
       this.form = {
         pageNum: 1,
         pageSize: 10,
-        typeList: this.$route.query.typeList.split(","),
+        // typeList: this.$route.query.typeList.split(","),
+        typeList: ["18"],
       };
       this.getList();
     },
@@ -200,13 +212,14 @@ export default {
     // 新增 / 编辑
     getDetail(id) {
       this.$router.push({
-        path: `/flowpackage/flow/detail`,
+        path: `/vippackage/vippackage/detail`,
         query: {
           id: id,
-          typeList: this.form.typeList.join(","),
+          // typeList: this.form.typeList.join(","),
+          typeList: ["18"],
         },
       });
-      this.$route.meta.activeMenu = "flowpackage/list";
+      this.$route.meta.activeMenu = "vippackage/list";
     },
 
     // 删除
@@ -266,8 +279,11 @@ export default {
       return this.selectDictLabel(this.recommendOptions, row.isRecommend);
     },
     // 是否赠送流量
-    giftFormatter(row) {
-      return this.selectDictLabel(this.recommendOptions, row.isGift ?? 1);
+    freeFlowFormatter(row) {
+      return this.selectDictLabel(this.freeOptions, row.isFreeFlow ?? 0);
+    },
+    freeVipFormatter(row) {
+      return this.selectDictLabel(this.freeOptions, row.isFreeContentVip ?? 0);
     },
     // 关联设备
     devFormatter(row) {