DESKTOP-SVI9JE1\muzen 1 рік тому
батько
коміт
a9cb9c8f79
2 змінених файлів з 19 додано та 31 видалено
  1. 15 30
      src/views/device/list/detail.vue
  2. 4 1
      src/views/device/version/detail.vue

+ 15 - 30
src/views/device/list/detail.vue

@@ -25,6 +25,8 @@
       <el-form-item label="设备分类:" prop="categoryId">
         <el-select v-model="data.form.categoryId" placeholder="请选择设备分类">
           <el-option v-for="item in deviceClassOptions" :key="item.id" :label="item.name" :value="item.id" />
+          <el-option v-if="data.form.categoryId && !deviceClassOptions.some(i => i.id == data.form.categoryId)"
+            label="分类不存在" :value="data.form.categoryId" />
         </el-select>
       </el-form-item>
       <el-form-item label="设备类型:" prop="deviceType">
@@ -52,13 +54,13 @@
         </el-col>
       </el-row>
       <!-- 子表单 -->
-      <el-button v-if="disabled === false && data.form.typeList.length < 4" type="primary" icon="Plus" style="margin-bottom: 20px;"
-        @click="getAdd">新增</el-button>
+      <el-button v-if="disabled === false && data.form.typeList.length < 4" type="primary" icon="Plus"
+        style="margin-bottom: 20px;" @click="getAdd">新增</el-button>
       <div class="sub-form" v-for="(item, index) in data.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 data.devModeOptions" :key="item.value" :label="item.label"
+            <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>
@@ -103,8 +105,8 @@
           <Editor v-model="item.guidePageContent" :min-height="250" :readOnly="disabled" />
         </el-form-item>
         <!-- 删除按钮 -->
-        <el-link class="el-icon-close" icon="Close" v-if="data.form.typeList.length > 1" :underline="false" :disabled="disabled"
-          @click="getDelete(item.type, index)" />
+        <el-link class="el-icon-close" icon="Close" v-if="data.form.typeList.length > 1" :underline="false"
+          :disabled="disabled" @click="getDelete(item.type, index)" />
       </div>
     </el-form>
     <div>
@@ -116,11 +118,12 @@
 
 <script setup>
 import { create, detail, edit } from "@/api/device/list";
-import { useDeviceClass, useDeviceType, useHot, useDeviceFun } from '../hooks/index'
+import { useDeviceClass, useDeviceType, useHot, useDeviceFun, useDeviceMode } from '../hooks/index'
 const { deviceClassOptions } = useDeviceClass()
 const { deviceTypeOptions } = useDeviceType()
 const { hotOptions } = useHot()
 const { deviceFunOptions } = useDeviceFun()
+const { devModeOptions } = useDeviceMode()
 
 const { proxy } = getCurrentInstance();
 
@@ -172,24 +175,6 @@ const data = reactive({
   }, {
     value: 0,
     label: '不兼容5GHZ频段芯片方案'
-  }],
-  // 设备模式
-  devModeOptions: [{
-    value: 1,
-    label: '蓝牙',
-    disabled: false
-  }, {
-    value: 2,
-    label: 'WIFI',
-    disabled: false
-  }, {
-    value: 3,
-    label: '传统蓝牙',
-    disabled: false
-  }, {
-    value: 4,
-    label: '4G',
-    disabled: false
   }]
 })
 
@@ -209,7 +194,7 @@ const getList = () => {
       if (res.code === 0) {
         data.form = res.data;
         data.form.typeList.map((i) => {
-          data.devModeOptions[i.type - 1].disabled = true;
+          devModeOptions[i.type - 1].disabled = true;
         })
       }
     })
@@ -259,14 +244,14 @@ const handleUploadIcon = (e, index, obj) => {
 
 // 选中一个设备类型就从数组中去掉
 const getTypeChange = (i) => {
-  for (let key in data.devModeOptions) {
-    data.devModeOptions[key].disabled = false
+  for (let key in devModeOptions) {
+    devModeOptions[key].disabled = false
   }
   // 选中的设备模式禁止再选
   data.form.typeList.map(item => {
     if (item.type) {
-      let index = data.devModeOptions.findIndex(j => j.value == item.type)
-      data.devModeOptions[index].disabled = true
+      let index = devModeOptions.findIndex(j => j.value == item.type)
+      devModeOptions[index].disabled = true
     }
   })
   // 除了设备模式都为空
@@ -293,7 +278,7 @@ const getAdd = () => {
 const getDelete = (type, index) => {
   data.form.typeList.splice(index, 1);
   if (type) {
-    data.devModeOptions.find(i => i.value == type).disabled = false
+    devModeOptions.find(i => i.value == type).disabled = false
   }
 }
 

+ 4 - 1
src/views/device/version/detail.vue

@@ -5,6 +5,8 @@
         <el-select v-model="data.form.deviceTypeId" placeholder="请选择设备型号" filterable>
           <el-option v-for="item in deviceOptions" :key="item.clientTypeId" :label="item.name"
             :value="item.clientTypeId" />
+          <el-option label="设备不存在" :value="data.form.deviceTypeId"
+            v-if="data.form.deviceTypeId && !deviceOptions.some(i => i.clientTypeId === data.form.deviceTypeId)" />
         </el-select>
       </el-form-item>
       <el-form-item prop="type" label="设备模式:">
@@ -22,7 +24,8 @@
       </el-form-item>
       <el-form-item prop="url" label="下载路径:">
         <div style="display: flex; width: 100%">
-          <el-input v-model="data.form.url" placeholder="请输入 或 上传下载路径" clearable style="width: 100%; margin-right: 10px" />
+          <el-input v-model="data.form.url" placeholder="请输入 或 上传下载路径" clearable
+            style="width: 100%; margin-right: 10px" />
           <CustomUpload :url="url" :accept="accept" @upload="getUpload" />
         </div>
       </el-form-item>