Jelajahi Sumber

将字典同步到本地文件中

DESKTOP-2S67K1S\31396 2 tahun lalu
induk
melakukan
c0ad2591a9

+ 38 - 4
src/views/content/banner/detail.vue

@@ -3,7 +3,7 @@
     <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 dict.type.show_the_location" :key="item.value" :label="item.label"
+          <el-option v-for="item in locationOptions" :key="item.value" :label="item.label"
             :value="Number(item.value)" />
         </el-select>
       </el-form-item>
@@ -20,7 +20,7 @@
         </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 dict.type.nav_address_url" :key="item.value" :label="item.label"
+          <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>
@@ -44,7 +44,6 @@
 import Upload from '@/components/Upload/index'
 import { submit, detail, edit } from '@/api/content/banner'
 export default {
-  dicts: ['nav_address_url', 'show_the_location'],
   components: {
     Upload
   },
@@ -54,7 +53,41 @@ export default {
       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: {
@@ -114,6 +147,7 @@ export default {
 .el-form {
   width: 500px;
 }
+
 .form-btn {
   margin-left: 110px;
 }

+ 39 - 12
src/views/content/banner/index.vue

@@ -7,20 +7,17 @@
       </el-form-item>
       <el-form-item label="展示位置:">
         <el-select v-model="form.type" placeholder="请选择展示位置">
-          <el-option v-for="item in dict.type.show_the_location" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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 dict.type.on_off_out" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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-select v-model="form.shelfStatus" placeholder="请选择上/下架状态">
-          <el-option v-for="item in dict.type.top_bottom_shelves" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <el-option v-for="item in disabledOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -63,15 +60,16 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
+    <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 } from '@/mixin/index'
 export default {
-  dicts: ['on_off_out', 'top_bottom_shelves', 'show_the_location'],
+  mixins: [disabledMixin],
   data() {
     return {
       // 遮罩层
@@ -83,7 +81,36 @@ export default {
       },
       total: 0,
       // 列表
-      tableData: []
+      tableData: [],
+      // 当前状态
+      statusOptions: [
+        { value: 0, label: '进行中' },
+        { value: 1, label: '未开始' },
+        { value: 2, label: '已过期' }
+      ],
+      // 展示位置
+      locationOptions: [{
+        value: 1,
+        label: '首页-推荐'
+      }, {
+        value: 2,
+        label: '电台-首页'
+      }, {
+        value: 3,
+        label: '音乐-首页'
+      }, {
+        value: 5,
+        label: '喵舍-推荐'
+      }, {
+        value: 4,
+        label: '服务中心-音乐'
+      }, {
+        value: 6,
+        label: '服务中心-流量'
+      }, {
+        value: 7,
+        label: '服务中心-底部热门专辑'
+      }]
     }
   },
   mounted() {
@@ -164,13 +191,13 @@ export default {
 
     // 字典翻译
     statusFormatter(row) {
-      return this.selectDictLabel(this.dict.type.top_bottom_shelves, row.status)
+      return this.selectDictLabel(this.disabledOptions, row.status)
     },
     typeFormatter(row) {
-      return this.selectDictLabel(this.dict.type.show_the_location, row.type)
+      return this.selectDictLabel(this.locationOptions, row.type)
     },
     currentFormatter(row) {
-      return this.selectDictLabel(this.dict.type.on_off_out, row.currentStatus)
+      return this.selectDictLabel(this.statusOptions, row.currentStatus)
     }
   }
 }

+ 9 - 3
src/views/device/category/index.vue

@@ -14,7 +14,7 @@
       <el-table-column label="分类名称" prop="name" align="center" />
       <el-table-column label="状态" align="center">
         <template slot-scope="scope">
-          <dict-tag :options="dict.type.dev_normal_disable" :value="scope.row.status" />
+          <el-tag :type="scope.row.status === 1 ? '' : 'danger'">{{ selectDictLabel(statusOptions, scope.row.status) }}</el-tag>
         </template>
       </el-table-column>
       <el-table-column label="操作" align="center">
@@ -57,9 +57,7 @@ import {
   categoryEdit,
   categoryDelete,
 } from "@/api/device/category";
-
 export default {
-  dicts: ["dev_normal_disable"],
   data() {
     return {
       // 遮罩层
@@ -91,6 +89,14 @@ export default {
           },
         ],
       },
+      // 设备状态
+      statusOptions: [{
+        value: 1,
+        label: '正常'
+      }, {
+        value: 2,
+        label: '停用'
+      }]
     };
   },
   mounted() {

+ 76 - 100
src/views/device/list/detail.vue

@@ -12,7 +12,7 @@
       </el-form-item>
       <el-form-item label="升级方式:" prop="upgradeType">
         <el-select v-model="form.upgradeType" placeholder="请选择升级方式">
-          <el-option v-for="item in dict.type.dev_upgrade_type" :key="item.value" :label="item.label"
+          <el-option v-for="item in upgradeTypeOptions" :key="item.value" :label="item.label"
             :value="Number(item.value)" />
         </el-select>
       </el-form-item>
@@ -21,8 +21,7 @@
       </el-form-item>
       <el-form-item label="制造商:" prop="manufacturer">
         <el-select v-model="form.manufacturer" placeholder="请选择设备制造商" clearable>
-          <el-option v-for="item in dict.type.dev_manu_facturer" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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="categoryId">
@@ -32,8 +31,7 @@
       </el-form-item>
       <el-form-item label="是否热门:" prop="isHot">
         <el-select v-model="form.isHot" placeholder="请选择是否热门">
-          <el-option v-for="item in dict.type.hot_yes_no" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in hotOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-row>
@@ -45,8 +43,8 @@
         </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" />
+            <Upload listType="picture-card" :url="form.offlineImg" @upload="handleUploadImg($event, 'offline')"
+              :disabled="disabled" />
           </el-form-item>
         </el-col>
       </el-row>
@@ -54,58 +52,53 @@
       <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-form-item label="设备模式:" :prop="`typeList.${index}.type`"
+          :rules="{ required: true, message: '请选择设备模式', trigger: 'change' }">
           <el-select v-model="item.type" placeholder="请选择设备模式" @change="getTypeChange($event, index)">
-            <el-option v-for="item in dict.type.dev_list_type" :key="item.value" :label="item.label"
-              :value="Number(item.value)" :disabled="item.disabled" />
+            <el-option v-for="item in typeOptions" :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'}">
+          :rules="{ type: 'array', required: true, message: '请选择功能权限', trigger: 'change' }">
           <el-select v-model="item.functionList" placeholder="请选择功能权限" multiple>
             <el-option v-for="item in functionOptions" :key="item.id" :label="item.name" :value="item.type" />
           </el-select>
         </el-form-item>
         <el-form-item v-if="item.type == 2" label="连接方式:" :prop="`typeList.${index}.connectType`"
-          :rules="{required: true, message: '请选择连接方式', trigger: 'change'}">
+          :rules="{ required: true, message: '请选择连接方式', trigger: 'change' }">
           <el-select v-model="item.connectType" placeholder="请选择连接方式">
-            <el-option v-for="item in dict.type.dev_connect_type" :key="item.value" :label="item.label"
+            <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 || 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" />
+              :rules="{ required: true, message: '请上传引导图片', trigger: 'change' }">
+              <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" />
+              :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}.guideUrl`"
-          :rules="{ required: true, message: '请输入引导页网址' , trigger: 'blur'}">
+        <el-form-item v-if="item.type === 1 || item.type === 3" label="引导页:" :prop="`typeList.${index}.guideUrl`"
+          :rules="{ required: true, message: '请输入引导页网址', trigger: 'blur' }">
           <el-input v-model="item.guideUrl" placeholder="请输入引导页网址" />
         </el-form-item>
         <el-form-item v-if="item.type === 1 || item.type === 3" label="引导页内容:"
           :prop="`typeList.${index}.guidePageContent`"
-          :rules="{required: true, message: '请输入引导页内容', trigger: 'blur'}">
+          :rules="{ required: true, message: '请输入引导页内容', trigger: 'blur' }">
           <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(index)" />
+        <el-link class="el-icon-close" v-if="form.typeList.length > 1" :underline="false" @click="getDelete(index)" />
       </div>
     </el-form>
     <div class="form-btn">
@@ -117,19 +110,12 @@
 
 <script>
 import { Add, Detail, Edit } from "@/api/device/list";
-import { category, functions } from "../mixin/index";
+import { category, functions, devType } from "../mixin/index";
 import Upload from "@/components/Upload/index";
 import Editor from "@/components/Editor/index";
 
 export default {
-  dicts: [
-    "dev_upgrade_type",
-    "hot_yes_no",
-    "dev_list_type",
-    "dev_connect_type",
-    "dev_manu_facturer",
-  ],
-  mixins: [category, functions],
+  mixins: [category, functions, devType],
   components: {
     Upload,
     Editor
@@ -149,63 +135,53 @@ export default {
       },
       // 表单验证
       rules: {
-        clientType: [
-          {
-            required: true,
-            message: "请输入设备型号",
-            trigger: "blur",
-          },
-        ],
-        name: [
-          {
-            required: true,
-            message: "请输入设备名称",
-            trigger: "blur",
-          },
-        ],
-        firstVersion: [
-          {
-            required: true,
-            message: "请输入初始版本号",
-            trigger: "blur",
-          },
-        ],
-        upgradeType: [
-          {
-            required: true,
-            message: "请选择升级方式",
-            trigger: "change",
-          },
-        ],
-        isHot: [
-          {
-            required: true,
-            message: "是否热门",
-            trigger: "change",
-          },
-        ],
-        categoryId: [
-          {
-            required: true,
-            message: "请选择设备类型",
-            trigger: "change",
-          },
-        ],
-        img: [
-          {
-            required: true,
-            message: "请上传在线图片",
-            trigger: "change",
-          },
-        ],
-        offlineImg: [
-          {
-            required: true,
-            message: "请上传离线图片",
-            trigger: "change",
-          },
-        ],
+        clientType: [{ required: true, message: "请输入设备型号", trigger: "blur" }],
+        name: [{ required: true, message: "请输入设备名称", trigger: "blur" }],
+        firstVersion: [{ required: true, message: "请输入初始版本号", trigger: "blur" }],
+        upgradeType: [{ required: true, message: "请选择升级方式", trigger: "change" }],
+        isHot: [{ required: true, message: "是否热门", trigger: "change" }],
+        categoryId: [{ required: true, message: "请选择设备类型", trigger: "change" }],
+        img: [{ required: true, message: "请上传在线图片", trigger: "change" }],
+        offlineImg: [{ required: true, message: "请上传离线图片", trigger: "change" }],
       },
+      // 是否热门
+      hotOptions: [{
+        value: 0,
+        label: '否'
+      }, {
+        value: 1,
+        label: '是'
+      }],
+      // 是否强制
+      upgradeTypeOptions: [{
+        value: 1,
+        label: '强制'
+      }, {
+        value: 2,
+        label: '指定'
+      }],
+      // 设备连接
+      connectTypeOptions: [{
+        value: 2,
+        label: 'UPnP'
+      }, {
+        value: 3,
+        label: 'MQTT'
+      }],
+      // 制造商
+      manuOptions: [{
+        value: 'ShanJing',
+        label: 'ShanJing'
+      }, {
+        value: 'JieLi',
+        label: 'JieLi'
+      }, {
+        value: 'LingXin',
+        label: 'LingXin'
+      }, {
+        value: 'QiXinWei',
+        label: 'QiXinWei'
+      }]
     };
   },
   mounted() {
@@ -222,7 +198,7 @@ export default {
           if (res.code === 0) {
             this.form = res.data;
             this.form.typeList.map((i) => {
-              this.dict.type.dev_list_type[i.type - 1].disabled = true;
+              this.typeOptions[i.type - 1].disabled = true;
             });
           }
         });
@@ -243,13 +219,13 @@ export default {
 
     // 选中一个设备类型就从数组中去掉
     getTypeChange() {
-      for (let i in this.dict.type.dev_list_type) {
-        this.dict.type.dev_list_type[i].disabled = false
+      for (let i in this.typeOptions) {
+        this.typeOptions[i].disabled = false
       }
       this.form.typeList.map(i => {
         if (i.type) {
-          let index = this.dict.type.dev_list_type.findIndex(j => j.value == i.type)
-          this.dict.type.dev_list_type[index].disabled = true
+          let index = this.typeOptions.findIndex(j => j.value == i.type)
+          this.typeOptions[index].disabled = true
         }
       })
     },
@@ -267,7 +243,7 @@ export default {
     // 删除子表单
     getDelete(index) {
       this.form.typeList.splice(index, 1);
-      this.dict.type.dev_list_type[index].disabled = false;
+      this.typeOptions[index].disabled = false;
     },
 
     // 取消

+ 23 - 10
src/views/device/list/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索表单 -->
-    <el-form inline label-width="100px" size="mini" @submit.native.prevent>
+    <el-form inline size="mini">
       <el-form-item label="设备名称:">
         <el-input v-model="form.name" placeholder="请输入设备名称" clearable />
       </el-form-item>
@@ -13,8 +13,7 @@
       <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="getChange()"
-          v-hasPermi="['device:list:add']">
+        <el-button type="primary" icon="el-icon-plus" plain @click="getChange()" v-hasPermi="['device:list:add']">
           新增
         </el-button>
         <el-button type="primary" icon="el-icon-top" @click="getShelves(1)" :disabled="isDisabled()"
@@ -53,8 +52,7 @@
             v-hasPermi="['device:list:up']">
             上架
           </el-button>
-          <el-button v-else type="text" @click="getShelves(2, scope.row.id)"
-            v-hasPermi="['device:list:down']">
+          <el-button v-else type="text" @click="getShelves(2, scope.row.id)" v-hasPermi="['device:list:down']">
             下架
           </el-button>
           <el-button v-if="scope.row.status === 2" type="delete" @click="getDelete(scope.row.id)"
@@ -64,7 +62,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
+    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
       @pagination="getList" />
   </div>
 </template>
@@ -73,7 +71,6 @@
 import { List, Delete, upDown } from '@/api/device/list'
 import { devMixin } from '@/mixin/index'
 export default {
-  dicts: ['hot_yes_no', 'dev_upgrade_type'],
   mixins: [devMixin],
   data() {
     return {
@@ -92,7 +89,23 @@ export default {
       changeForm: {
         ids: '',
         type: null
-      }
+      },
+      // 是否热门
+      hotOptions: [{
+        value: 0,
+        label: '否'
+      }, {
+        value: 1,
+        label: '是'
+      }],
+      // 是否强制
+      upgradeTypeOptions: [{
+        value: 1,
+        label: '强制'
+      }, {
+        value: 2,
+        label: '指定'
+      }],
     }
   },
   mounted() {
@@ -186,11 +199,11 @@ export default {
 
     // 字典翻译
     hotFormatter(row) {
-      return this.selectDictLabel(this.dict.type.hot_yes_no, row.isHot)
+      return this.selectDictLabel(this.hotOptions, row.isHot)
     },
 
     upgradeTypeFormatter(row) {
-      return this.selectDictLabel(this.dict.type.dev_upgrade_type, row.upgradeType)
+      return this.selectDictLabel(this.upgradeTypeOptions, row.upgradeType)
     }
   }
 }

+ 23 - 1
src/views/device/mixin/index.js

@@ -41,7 +41,29 @@ const functions = {
   }
 }
 
+// 设备模式
+const devType = {
+  data() {
+    return {
+      typeOptions: [{
+        value: 1,
+        label: '蓝牙'
+      }, {
+        value: 2,
+        label: 'WIFI'
+      }, {
+        value: 3,
+        label: '传统蓝牙'
+      }, {
+        value: 4,
+        label: '4G'
+      }]
+    }
+  }
+}
+
 export {
   category,
-  functions
+  functions,
+  devType
 }

+ 24 - 14
src/views/device/version/detail.vue

@@ -3,14 +3,12 @@
     <el-form :model="form" :rules="rules" ref="form" label-width="100px">
       <el-form-item prop="deviceTypeId" label="设备型号:">
         <el-select v-model="form.deviceTypeId" placeholder="请选择设备型号" filterable>
-          <el-option v-for="item in devOptions" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in devOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item prop="type" label="设备模式:">
         <el-select v-model="form.type" placeholder="请选择设备模式">
-          <el-option v-for="item in dict.type.dev_list_type" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item prop="version" label="版本号:">
@@ -34,25 +32,22 @@
       </el-form-item>
       <el-form-item prop="isEnforcement" label="设备升级:">
         <el-select v-model="form.deviceIsEnforcement" placeholder="是否强制设备升级">
-          <el-option v-for="item in dict.type.dev_yes_no" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item prop="isEnforcement" label="APP升级:">
         <el-select v-model="form.isEnforcement" placeholder="是否强制APP升级">
-          <el-option v-for="item in dict.type.dev_yes_no" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item prop="isPush" label="同步推送:">
         <el-select v-model="form.isPush" placeholder="是否同步推送">
-          <el-option v-for="item in dict.type.dev_yes_no" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item prop="userType" label="升级对象:">
         <el-select v-model="form.userType" placeholder="请选择升级对象">
-          <el-option v-for="item in dict.type.push_user_type" :key="item.value" :label="item.label"
+          <el-option v-for="item in pushOptions" :key="item.value" :label="item.label"
             :value="Number(item.value)" />
         </el-select>
       </el-form-item>
@@ -71,9 +66,9 @@
 import { getDetailInfo, updateEdit, getVersionAdd } from "@/api/device/version";
 import Upload from "@/components/Upload/index";
 import { devMixin } from '@/mixin/index'
+import { devType } from '../mixin/index'
 export default {
-  dicts: ["dev_list_type", "dev_yes_no", "push_user_type"],
-  mixins: [devMixin],
+  mixins: [devMixin, devType],
   components: {
     Upload,
   },
@@ -153,6 +148,22 @@ export default {
           },
         ],
       },
+      // 设备是否
+      typeOptions: [{
+        value: 1,
+        label: '是'
+      }, {
+        value: 2,
+        label: '否'
+      }],
+      // 升级对象
+      pushOptions: [{
+        value: 1,
+        label: '全部'
+      }, {
+        value: 3,
+        label: '指定'
+      }]
     };
   },
   mounted() {
@@ -166,7 +177,6 @@ export default {
         }
       });
     }
-    console.log(this.devOptions);
   },
   methods: {
     // 上传文件

+ 4 - 4
src/views/device/version/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form :model="form" inline label-width="100px" size="mini">
+    <el-form :model="form" inline size="mini">
       <el-form-item label="升级标题:">
         <el-input v-model="form.title" placeholder="请输入升级标题" clearable />
       </el-form-item>
@@ -54,9 +54,9 @@
 <script>
 import { getPageList, getVersionDelete } from '@/api/device/version'
 import { devMixin } from '@/mixin/index'
+import { devType } from '../mixin/index'
 export default {
-  dicts: ['dev_list_type'],
-  mixins: [devMixin],
+  mixins: [devMixin, devType],
   data() {
     return {
       // 遮罩层
@@ -130,7 +130,7 @@ export default {
 
     // 字典翻译
     typeFormatter(row) {
-      return row.listType.map(i => this.selectDictLabel(this.dict.type.dev_list_type, i)).join(',')
+      return row.listType.map(i => this.selectDictLabel(this.typeOptions, i)).join(',')
     }
   }
 }

+ 12 - 15
src/views/device/yxw/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="设备号:">
         <el-input v-model="form1.dsn" placeholder="请输入设备号" clearable />
       </el-form-item>
@@ -10,23 +10,21 @@
       </el-form-item>
       <el-form-item label="设备类型:">
         <el-select v-model="form1.deviceType" placeholder="请选择设备类型" clearable>
-          <el-option v-for="item in dict.type.dev_list_type" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
       <el-form-item label="当前状态:">
         <el-select v-model="form1.status" placeholder="请选择当前状态" clearable>
-          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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-date-picker v-model="createTime" type="datetimerange" start-placeholder="开始日期"
-          end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" clearable />
+        <el-date-picker v-model="createTime" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
+          value-format="yyyy-MM-dd HH:mm:ss" clearable />
       </el-form-item>
       <el-form-item label="激活时间:">
-        <el-date-picker v-model="updateTime" type="datetimerange" start-placeholder="开始日期"
-          end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" clearable />
+        <el-date-picker v-model="updateTime" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
+          value-format="yyyy-MM-dd HH:mm:ss" clearable />
       </el-form-item>
       <el-form-item>
         <el-button icon="el-icon-search" type="primary" @click="getSearch">搜索</el-button>
@@ -39,7 +37,7 @@
     </el-form>
     <!-- 列表 -->
     <el-table :data="tableData" v-loading="loading">
-      <el-table-column prop="id" label="设备号" align="center" show-overflow-tooltip/>
+      <el-table-column prop="id" label="设备号" align="center" show-overflow-tooltip />
       <el-table-column prop="deviceMac" label="设备标识" align="center" />
       <el-table-column prop="clientType" label="设备型号" align="center" />
       <el-table-column prop="type" label="设备类型" align="center" />
@@ -47,14 +45,12 @@
       <el-table-column prop="updateTimeStr" label="激活时间" align="center" />
       <el-table-column prop="statusStr" label="当前状态" align="center" />
     </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="form1.pageIndex" :limit.sync="form1.pageSize"
+    <pagination v-show="total > 0" :total="total" :page.sync="form1.pageIndex" :limit.sync="form1.pageSize"
       @pagination="getList" />
     <!-- 弹窗 -->
     <el-dialog title="新增" :visible.sync="dialogVisible" width="500px">
       <el-form :model="form2" ref="form" label-width="100px">
-        <el-form-item prop="num" label="设备数量:" :rules="[{
-          required: true, message: '请输入设备数量', trigger: 'blur'
-        }]">
+        <el-form-item prop="num" label="设备数量:" :rules="[{ required: true, message: '请输入设备数量', trigger: 'blur' }]">
           <el-input v-model="form2.num" placeholder="请输入设备数量" />
         </el-form-item>
       </el-form>
@@ -68,8 +64,9 @@
 
 <script>
 import { getYxwPage, getYxwAdd } from "@/api/device/yxw";
+import { devType } from '../mixin/index'
 export default {
-  dicts: ['dev_list_type'],
+  mixins: [devType],
   data() {
     return {
       // 遮罩层

+ 4 - 7
src/views/goods/list/index.vue

@@ -1,17 +1,15 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="推荐位置:">
         <el-select v-model="form.position" placeholder="请选择推荐位置" clearable>
-          <el-option v-for="item in locationOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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="请选择当前状态" clearable>
-          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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="商品名称:">
@@ -53,7 +51,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
+    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
       @pagination="getList" />
   </div>
 </template>
@@ -62,7 +60,6 @@
 import { list, remove } from '@/api/goods/list'
 import { locMixin } from './mixin'
 export default {
-  dicts: ['on_off_out'],
   mixins: [locMixin],
   data() {
     return {

+ 5 - 8
src/views/ohplay/content/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="内容类型:">
         <el-select v-model="form.contentType" placeholder="请选择内容类型" clearable>
           <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
@@ -14,8 +14,7 @@
       </el-form-item>
       <el-form-item label="当前状态:">
         <el-select v-model="form.typeStatus" placeholder="请选择当前状态" clearable>
-          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
-            :value='item.value' />
+          <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="内容或回复:">
@@ -36,8 +35,7 @@
       <el-table-column label="图片" align="center" width="170px">
         <template slot-scope="scope">
           <div class="image-box" v-if="scope.row.images">
-            <el-image class="image" v-for="item in scope.row.images.split(',').slice(0, 6)" :key="item"
-              :src="item" />
+            <el-image class="image" v-for="item in scope.row.images.split(',').slice(0, 6)" :key="item" :src="item" :preview-src-list="scope.row.images.split(',').slice(0, 6)" />
           </div>
         </template>
       </el-table-column>
@@ -62,7 +60,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
+    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
       @pagination="getList" />
     <!-- 弹窗 -->
     <el-dialog :visible.sync="dialogVisible" :title="title" :before-close="cancel" width="600px">
@@ -79,8 +77,7 @@
           </el-form-item>
           <el-form-item label="权重唯一:" prop="isOnlyWeight">
             <el-select v-model="dialogForm.isOnlyWeight" placeholder="权重是否唯一">
-              <el-option v-for="item in onlyOptions" :key="item.value" :label="item.label"
-                :value="item.value" />
+              <el-option v-for="item in onlyOptions" :key="item.value" :label="item.label" :value="item.value" />
             </el-select>
           </el-form-item>
           <el-form-item label="推荐日期:" prop="dialogDate">

+ 9 - 2
src/views/ohplay/operation/index.vue

@@ -26,7 +26,7 @@
           </el-form-item>
           <el-form-item label="跳转:">
             <el-select v-model="item.skip" placeholder="请选择跳转页面">
-              <el-option v-for="item in dict.type.nav_address_type" :key="item.value" :label="item.label"
+              <el-option v-for="item in typeOptions" :key="item.value" :label="item.label"
                 :value="Number(item.value)" />
             </el-select>
           </el-form-item>
@@ -50,7 +50,6 @@ export default {
   components: {
     Upload
   },
-  dicts: ['nav_address_type'],
   data() {
     return {
       img: [{
@@ -68,6 +67,14 @@ export default {
       pic: '',
       // 列表
       list: [],
+      // 跳转类型
+      typeOptions: [{
+        value: 0,
+        label: '指定页面'
+      }, {
+        value: 1,
+        label: '指定URL'
+      }]
     }
   },
   mounted() {

+ 13 - 5
src/views/ohplay/programa/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item>
         <el-button type="primary" icon="el-icon-plus" @click="getDialog()"
           v-hasPermi="['ohplay:programa:add']">新增</el-button>
@@ -32,7 +32,7 @@
         </el-form-item>
         <el-form-item label="栏目状态:" prop="type">
           <el-select v-model="form.type" placeholder="请选择栏目状态">
-            <el-option v-for="item in dict.type.valid_yes_not" :key="item.value" :label="item.label"
+            <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
               :value="Number(item.value)" />
           </el-select>
         </el-form-item>
@@ -51,7 +51,6 @@
 <script>
 import { list, create, edit, detail } from '@/api/ohplay/programa'
 export default {
-  dicts: ['valid_yes_not'],
   data() {
     return {
       // 遮罩层
@@ -77,7 +76,15 @@ export default {
         location: [{
           required: true, message: '请输入栏目定位', trigger: 'blur'
         }]
-      }
+      },
+      // 是否有效
+      statusOptions: [{
+        value: 0,
+        label: '有效'
+      }, {
+        value: 1,
+        label: '无效'
+      }]
     }
   },
   mounted() {
@@ -142,11 +149,12 @@ export default {
 
     // 字典翻译
     typeFormatter(row) {
-      return this.selectDictLabel(this.dict.type.valid_yes_not, row.type)
+      return this.selectDictLabel(this.statusOptions, row.type)
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
+
 </style>

+ 6 - 9
src/views/ohplay/recommend/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="内容:">
         <el-input v-model="form.content" placeholder="请输入内容" clearable />
       </el-form-item>
@@ -17,13 +17,11 @@
       </el-form-item>
       <el-form-item label="当前状态:">
         <el-select v-model="form.recommendStatus" placeholder="请选择当前状态" clearable>
-          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
-            :value='item.value' />
+          <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-date-picker v-model="date" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间"
-          clearable />
+        <el-date-picker v-model="date" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间" clearable />
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" @click="getSearch">搜索</el-button>
@@ -33,11 +31,10 @@
     <!-- 列表 -->
     <el-table :data="tableData" v-loading="loading">
       <el-table-column label="内容" prop="content" align="center" show-overflow-tooltip />
-      <el-table-column label="图片" align="center" width="100px">
+      <el-table-column label="图片" align="center" width="170px">
         <template slot-scope="scope">
           <div class="image-box" v-if="scope.row.images">
-            <el-image class="image" v-for="item in scope.row.images.split(',').slice(0, 6)" :key="item"
-              :src="item" />
+            <el-image class="image" v-for="item in scope.row.images.split(',').slice(0, 6)" :key="item" :src="item" :preview-src-list="scope.row.images.split(',').slice(0, 6)" />
           </div>
         </template>
       </el-table-column>
@@ -58,7 +55,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
+    <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
       @pagination="getList" />
 
     <!-- 弹窗 -->

+ 18 - 19
src/views/operation/channel/index.vue

@@ -10,8 +10,7 @@
       <el-table-column label="序号" align="center" type="index" />
       <el-table-column label="频道配置名称" prop="name" align="center" />
       <el-table-column label="部署形式" prop="type" align="center" :formatter="typeFormatter" />
-      <el-table-column label="设备" prop="deviceIds" align="center" :formatter="devFormatter"
-        show-overflow-tooltip />
+      <el-table-column label="设备" prop="deviceIds" align="center" :formatter="devFormatter" show-overflow-tooltip />
       <el-table-column label="操作" align="center">
         <template slot-scope="scope">
           <el-button type="text" @click="getDialog(scope.row, scope.$index)"
@@ -31,12 +30,12 @@
         </el-form-item>
         <el-form-item v-if="index !== 1" label="关联设备:">
           <el-select v-model="ids" multiple placeholder="请选择关联设备">
-            <el-option v-for="item in devOptions" :key="item.clientTypeId"
-              :value="item.clientTypeId.toString()" :label="item.name" />
+            <el-option v-for="item in devOptions" :key="item.clientTypeId" :value="item.clientTypeId.toString()"
+              :label="item.name" />
           </el-select>
         </el-form-item>
-        <el-form-item v-if="title === '编辑'" label="内容列表:">
-          <el-table :data="list" v-loading="dialog_loading" lazy :default-sort="{prop: 'sort'}">
+        <el-form-item v-if="title === '编辑'" label="内容列表:" style="height: 500px; overflow-y: auto;">
+          <el-table :data="list" v-loading="dialog_loading" lazy :default-sort="{ prop: 'sort' }">
             <el-table-column label="序号" prop="sort" align="center" width="100px" />
             <el-table-column label="频道数" prop="channelId" align="center" width="100px" />
             <el-table-column label="频道名称" prop="aliasName" align="center" show-overflow-tooltip />
@@ -51,8 +50,8 @@
                 <el-button type="text" @click="edit(scope)">编辑</el-button>
                 <el-button v-if="scope.row.sort > 3" type="text" icon="el-icon-caret-top"
                   @click="getChange(scope.row.id, scope.row.sort - 1)" />
-                <el-button v-if="scope.row.sort > 2 && scope.row.sort < 12" type="text"
-                  icon="el-icon-caret-bottom" @click="getChange(scope.row.id, scope.row.sort + 1)" />
+                <el-button v-if="scope.row.sort > 2 && scope.row.sort < 12" type="text" icon="el-icon-caret-bottom"
+                  @click="getChange(scope.row.id, scope.row.sort + 1)" />
               </template>
             </el-table-column>
           </el-table>
@@ -70,7 +69,6 @@
 import { channelPage, page, create, editPage, getRemove, devList, change } from '@/api/operation/channel'
 export default {
   name: 'Channel',
-  dicts: ['deployment_form'],
   data() {
     return {
       // 遮罩层
@@ -94,7 +92,15 @@ export default {
       dialogForm: {},
       ids: [],
       // 频道规则Id
-      obj: {}
+      obj: {},
+      // 部署形式
+      typeOptions: [{
+        value: 0,
+        label: '注册用户-默认'
+      }, {
+        value: 1,
+        label: '绑定特定设备'
+      }]
     };
   },
   watch: {
@@ -245,18 +251,11 @@ export default {
 
     // 字典翻译
     typeFormatter(row) {
-      return this.selectDictLabel(this.dict.type.deployment_form, row.type)
+      return this.selectDictLabel(this.typeOptions, row.type)
     },
     devFormatter(row) {
       return row.deviceIds ? row.deviceIds.split(',').map(i => this.selectDictLabel(this.allDevOptions, i)).join(',') : ''
     }
   },
 };
-</script>
-
-<style lang="scss" scoped>
-::v-deep .el-dialog__body {
-  height: 700px;
-  overflow-y: auto;
-}
-</style>
+</script>

+ 35 - 27
src/views/operation/recommend/index.vue

@@ -8,7 +8,7 @@
     <div style="display: flex; position: relative; align-items: flex-start">
       <el-image class="bg" :src="img" />
       <div :class="['item', active === index ? 'active' : '']"
-        :style="{top: item.top + 'px', height: item.height + 'px'}" v-for="(item, index) in style[tabIndex]"
+        :style="{ top: item.top + 'px', height: item.height + 'px' }" v-for="(item, index) in style[tabIndex]"
         :key="index" @click="getActive(index)" />
 
       <div class="form">
@@ -32,8 +32,7 @@
           <el-form label-width="auto" v-for="(item, index) in timeList" :key="item.id">
             <el-form-item label-width="0">
               <span style="font-weight: bold">场景电台时间设置</span>
-              <el-link icon="el-icon-close" :underline="false" style="float:right"
-                @click="getChangeTime(item.id, 2)" />
+              <el-link icon="el-icon-close" :underline="false" style="float:right" @click="getChangeTime(item.id, 2)" />
             </el-form-item>
             <el-form-item label="时间段:">
               <el-time-picker is-range v-model="item.date" start-placeholder="开始时间" end-placeholder="结束时间"
@@ -68,16 +67,16 @@
         </el-form>
 
         <!-- 内容列表模块 -->
-        <div v-else :style="{'display': tabIndex === 1 && active === 0 ? 'inline-block' : 'block'}">
+        <div v-else :style="{ 'display': tabIndex === 1 && active === 0 ? 'inline-block' : 'block' }">
           <el-form label-width="auto" v-for="(item, index) in list" :key="item.id">
             <el-form-item label-width="0" :label="(index + 1).toString()">
-              <el-link v-if="tabIndex === 2 && active === 1" icon="el-icon-close" :underline="false"
-                style="float:right" @click="getRemoveList(item, index)" />
+              <el-link v-if="tabIndex === 2 && active === 1" icon="el-icon-close" :underline="false" style="float:right"
+                @click="getRemoveList(item, index)" />
             </el-form-item>
 
             <el-form-item label="时间:" v-if="time()">
-              <el-date-picker v-model="item.date" type="datetimerange" start-placeholder="开始日期"
-                end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss" />
+              <el-date-picker v-model="item.date" type="datetimerange" start-placeholder="开始日期" end-placeholder="结束日期"
+                value-format="yyyy-MM-dd HH:mm:ss" />
             </el-form-item>
 
             <el-form-item label="标题:" v-if="title()">
@@ -86,7 +85,7 @@
 
             <el-form-item label="模式:" v-if="model()">
               <el-select v-model="item.model" placeholder="请选择模式">
-                <el-option v-for="item in dict.type.content_model" :key="item.value" :label="item.label"
+                <el-option v-for="item in contentOptions" :key="item.value" :label="item.label"
                   :value="Number(item.value)" />
               </el-select>
             </el-form-item>
@@ -113,7 +112,7 @@
 
             <el-form-item label="封面模式:" v-if="isCustom(item)">
               <el-select v-model="item.isCustom" placeholder="选择封面模式">
-                <el-option v-for="item in dict.type.is_custom" :key="item.value" :label="item.label"
+                <el-option v-for="item in customOptions" :key="item.value" :label="item.label"
                   :value="Number(item.value)" />
               </el-select>
             </el-form-item>
@@ -154,8 +153,8 @@
                 v-hasPermi="['operation:recommend:down']">下架</el-button>
             </el-form-item>
           </el-form>
-          <el-button v-if="tabIndex === 2 && active === 1" type="primary" style="margin-left: 30px"
-            @click="getAdd" v-hasPermi="['operation:recommend:add']">新增</el-button>
+          <el-button v-if="tabIndex === 2 && active === 1" type="primary" style="margin-left: 30px" @click="getAdd"
+            v-hasPermi="['operation:recommend:add']">新增</el-button>
         </div>
       </div>
     </div>
@@ -165,14 +164,12 @@
       <el-form inline size="mini">
         <el-form-item label="音频类型:">
           <el-select v-model="form.audioType" placeholder="请选择类型" :disabled="disabled">
-            <el-option v-for="item in audioOptions" :key="item.value" :label="item.label"
-              :value="item.value" />
+            <el-option v-for="item in audioOptions" :key="item.value" :label="item.label" :value="item.value" />
           </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-option v-for="item in platformOptions" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="内容:">
@@ -193,13 +190,11 @@
             <el-image :src="scope.row.audioPic" />
           </template>
         </el-table-column>
-        <el-table-column label="音频类型" prop="audioType" align="center" key="audioType"
-          :formatter="audioFormatter" />
+        <el-table-column label="音频类型" prop="audioType" align="center" key="audioType" :formatter="audioFormatter" />
         <el-table-column label="音频数量" prop="programCount" align="center" key="programCount" />
         <el-table-column label="付费类型" align="center" key="isFree" :formatter="freeFormatter" width="100px" />
         <el-table-column label="当前状态" align="center" key="status" :formatter="statusFormatter" />
-        <el-table-column label="操作" align="center" key="change"
-          v-if="tabIndex === 2 && active === 1 ? false : true">
+        <el-table-column label="操作" align="center" key="change" v-if="tabIndex === 2 && active === 1 ? false : true">
           <template slot-scope="scope">
             <el-button type="text" @click="getSelect(scope.row)">
               选择
@@ -207,7 +202,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination v-show="total>0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
+      <pagination v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
         @pagination="getContentList" />
     </el-dialog>
 
@@ -236,11 +231,6 @@ import Upload from '@/components/Upload/index'
 import { isFreeMixin, audioMixin, platformMixin, onOrOffMixin } from '@/mixin/index'
 
 export default {
-  dicts: [
-    'platform_type',
-    'is_custom',
-    'content_model'
-  ],
   mixins: [isFreeMixin, audioMixin, platformMixin, onOrOffMixin],
   components: {
     Upload
@@ -385,12 +375,26 @@ export default {
       }, {
         value: 6,
         label: 'H5外链'
+      }],
+      customOptions: [{
+        value: 0,
+        label: '自定义封面'
+      }, {
+        value: 1,
+        label: '内容封面'
+      }],
+      contentOptions: [{
+        value: 0,
+        label: '自动推荐内容'
+      }, {
+        value: 1,
+        label: '手动推荐内容'
       }]
     }
   },
   watch: {
     async 'form.audioType'(val) {
-      if (this.tabIndex !== 1 && this.active !== 12) {
+      if (this.tabIndex !== 1 || this.active !== 12) {
         await this.getPlatform({
           audioType: val
         })
@@ -541,6 +545,9 @@ export default {
         this.form.audioType = this.audioOptions[0].value
       } else {
         this.form.audioType = this.list[index].forwardType ? this.typeOptions.find(i => i.value === this.list[index].forwardType).type : 2
+        // await this.getPlatform({
+        //   audioType: this.form.audioType
+        // })
         this.disabled = this.tabIndex == 2 && this.active === 1 || this.list[index].forwardType !== null ? true : false
       }
       this.getContentList()
@@ -858,6 +865,7 @@ export default {
 <style lang="scss" scoped>
 .bg {
   width: 365px;
+
   .el-image__error,
   .el-image__placeholder,
   .el-image__inner {

+ 51 - 9
src/views/operation/startPage/detail.vue

@@ -5,24 +5,22 @@
         <el-input v-model="form.name" placeholder="请输入启动页名称" />
       </el-form-item>
       <el-form-item label="生效期:" prop="date">
-        <el-date-picker v-model="form.date" type="datetimerange" start-placeholder="开始时间"
-          end-placeholder="结束时间" value-format="yyyy-MM-dd HH:mm:ss" @change="getchecked" />
+        <el-date-picker v-model="form.date" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间"
+          value-format="yyyy-MM-dd HH:mm:ss" @change="getchecked" />
       </el-form-item>
       <el-form-item label="跳转方式:" prop="forwardType">
         <el-select v-model="form.forwardType" placeholder="请选择跳转方式">
-          <el-option v-for="item in dict.type.nav_address_type" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item label="持续时间:" prop="time">
         <el-select v-model="form.time" placeholder="请选择持续时间">
-          <el-option v-for="item in dict.type.time_of_duration" :key="item.value" :label="item.label"
-            :value="Number(item.value)" />
+          <el-option v-for="item in timeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
         </el-select>
       </el-form-item>
       <el-form-item label="能否跳过:" prop="isStep">
         <el-select v-model="form.isStep" placeholder="请选择能否跳过" :disabled="disabled">
-          <el-option v-for="item in dict.type.yes_no_pass" :key="item.value" :label="item.label"
+          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label"
             :value="Number(item.value)" />
         </el-select>
       </el-form-item>
@@ -44,7 +42,6 @@
 import Upload from '@/components/Upload/index'
 import { submit, detail, edit, checked } from '@/api/operation/startPage'
 export default {
-  dicts: ['time_of_duration', 'nav_address_type', 'yes_no_pass'],
   components: {
     Upload
   },
@@ -76,7 +73,52 @@ export default {
         pic: [{
           required: true, message: '请上传启动页图片', trigger: 'change'
         }]
-      }
+      },
+      // 跳转类型
+      typeOptions: [{
+        value: 0,
+        label: '指定页面'
+      }, {
+        value: 1,
+        label: '指定URL'
+      }],
+      // 持续时间
+      timeOptions: [{
+        value: 3,
+        label: '3秒'
+      }, {
+        value: 4,
+        label: '4秒'
+      }, {
+        value: 5,
+        label: '5秒'
+      }, {
+        value: 6,
+        label: '6秒'
+      }, {
+        value: 7,
+        label: '7秒'
+      }, {
+        value: 8,
+        label: '8秒'
+      }, {
+        value: 9,
+        label: '9秒'
+      }, {
+        value: 10,
+        label: '10秒'
+      }, {
+        value: 0,
+        label: '手动关闭'
+      }],
+      // 是否允许
+      statusOptions: [{
+        value: 0,
+        label: '允许'
+      }, {
+        value: 1,
+        label: '不允许'
+      }]
     }
   },
   watch: {

+ 23 - 10
src/views/operation/startPage/index.vue

@@ -1,16 +1,15 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="当前状态:">
         <el-select v-model="form.status" placeholder="请选择当前状态" clearable>
-          <el-option v-for="item in dict.type.on_off_out" :key="item.value" :label="item.label"
-            :value="item.value" />
+          <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-select v-model="form.forwardType" placeholder="请选择跳转页面" clearable>
-          <el-option v-for="item in dict.type.nav_address_type" :key="item.value" :label="item.label"
+          <el-option v-for="item in typeOptions" :key="item.value" :label="item.label"
             :value="item.value" />
         </el-select>
       </el-form-item>
@@ -31,7 +30,7 @@
       </el-table-column>
       <el-table-column label="生效期" align="center" show-overflow-tooltip>
         <template slot-scope="scope">
-          <div>{{ scope.row.startTime}} 至 {{ scope.row.endTime }}</div>
+          <div>{{ scope.row.startTime }} 至 {{ scope.row.endTime }}</div>
         </template>
       </el-table-column>
       <el-table-column label="跳转" prop="forwardType" align="center" :formatter="forwardFomatter" />
@@ -39,11 +38,12 @@
       <el-table-column label="操作" align="center">
         <template slot-scope="scope">
           <el-button type="text" @click="getDetail(scope.row)" v-hasPermi="['operation:startPage:edit']">编辑</el-button>
-          <el-button type="delete" @click="getDelete(scope.row)" v-hasPermi="['operation:startPage:delete']">删除</el-button>
+          <el-button type="delete" @click="getDelete(scope.row)"
+            v-hasPermi="['operation:startPage: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 v-show="total > 0" :total="total" :page.sync="form.pageNum" :limit.sync="form.pageSize"
       @pagination="getList" />
   </div>
 </template>
@@ -51,7 +51,6 @@
 <script>
 import { page, remove } from '@/api/operation/startPage'
 export default {
-  dicts: ['nav_address_type', 'on_off_out'],
   data() {
     return {
       // 遮罩层
@@ -64,6 +63,20 @@ export default {
       // 列表
       tableData: [],
       total: 0,
+      // 当前状态
+      statusOptions: [
+        { value: 0, label: '进行中' },
+        { value: 1, label: '未开始' },
+        { value: 2, label: '已过期' }
+      ],
+      // 跳转类型
+      typeOptions: [{
+        value: 0,
+        label: '指定页面'
+      }, {
+        value: 1,
+        label: '指定URL'
+      }]
     }
   },
   mounted() {
@@ -130,10 +143,10 @@ export default {
 
     // 字典翻译
     forwardFomatter(row) {
-      return this.selectDictLabel(this.dict.type.nav_address_type, row.forwardType)
+      return this.selectDictLabel(this.typeOptions, row.forwardType)
     },
     currentFormatter(row) {
-      return this.selectDictLabel(this.dict.type.on_off_out, row.currentStatus)
+      return this.selectDictLabel(this.statusOptions, row.currentStatus)
     }
   }
 }

+ 22 - 9
src/views/project/list/detail.vue

@@ -22,8 +22,7 @@
           </el-table-column>
           <el-table-column prop="os" label="系统类型" align="center" width="100px" />
           <el-table-column prop="updateTimeText" label="更新时间" align="center" />
-          <el-table-column prop="status" label="当前状态" align="center" :formatter="statusFormatter"
-            width="100px" />
+          <el-table-column prop="status" label="当前状态" align="center" :formatter="statusFormatter" width="100px" />
           <el-table-column label="操作" align="center">
             <template slot-scope="scope">
               <el-button v-if="scope.row.status === 0" type="text" @click="getShelves(scope.row, 1)">上架
@@ -42,7 +41,7 @@
             </template>
           </el-table-column>
         </el-table>
-        <pagination v-show="total>0" :total="total" :page.sync="versionForm.pageNum"
+        <pagination v-show="total > 0" :total="total" :page.sync="versionForm.pageNum"
           :limit.sync="versionForm.pageSize" @pagination="getList" />
       </el-form-item>
     </el-form>
@@ -59,8 +58,7 @@
         </el-form-item>
         <el-form-item v-if="title === '新增'" label="系统类型:">
           <el-select v-model="addForm.os" placeholder="请选择系统类型">
-            <el-option v-for="item in dict.type.phone_sys_type" :key="item.value" :label="item.label"
-              :value="item.value" />
+            <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item v-if="title !== '更新'" label="应用Logo:">
@@ -103,7 +101,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination v-show="historyTotal>0" :total="historyTotal" :page.sync="historyForm.pageNum"
+      <pagination v-show="historyTotal > 0" :total="historyTotal" :page.sync="historyForm.pageNum"
         :limit.sync="historyForm.pageSize" @pagination="getHistoryPage" />
     </el-dialog>
   </div>
@@ -114,7 +112,6 @@ import { add, edit, update, appEdit, updateAdd, updatePage, historyPage, shelves
 import Upload from "@/components/Upload/index";
 import Editor from "@/components/Editor";
 export default {
-  dicts: ["phone_sys_type", "app_status_type"],
   components: {
     Upload,
     Editor,
@@ -147,7 +144,23 @@ export default {
       dialogVisible: false,
       title: "",
       // 历史记录弹窗
-      dialogVisible_history: false
+      dialogVisible_history: false,
+      // 手机系统
+      typeOptions: [{
+        value: 'IOS',
+        label: 'IOS'
+      }, {
+        value: 'Android',
+        label: 'Android'
+      }],
+      // 当前状态
+      statusOptions: [{
+        value: 0,
+        lable: '未发布'
+      }, {
+        value: 1,
+        label: '已发布'
+      }]
     };
   },
   mounted() {
@@ -305,7 +318,7 @@ export default {
 
     // 字典翻译
     statusFormatter(row) {
-      return this.selectDictLabel(this.dict.type.app_status_type, row.status);
+      return this.selectDictLabel(this.statusOptions, row.status);
     },
   },
 };

+ 1 - 1
src/views/project/list/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="项目名称:">
         <el-input v-model="form.name" placeholder="请输入项目名称" />
       </el-form-item>

+ 1 - 1
src/views/push/message/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- 搜索 -->
-    <el-form inline label-width="100px" size="mini">
+    <el-form inline size="mini">
       <el-form-item label="消息类型:">
         <el-select v-model="form.messageType" placeholder="请选择消息类型" clearable>
           <el-option v-for="item in typeOptions" :key="item.value" :label="item.label" :value="item.value" />