Browse Source

feat: 添加设备升级弹窗

Damon 9 months atrás
parent
commit
ce5368311e
2 changed files with 192 additions and 80 deletions
  1. 178 72
      src/views/device/version/detail.vue
  2. 14 8
      src/views/device/version/index.vue

+ 178 - 72
src/views/device/version/detail.vue

@@ -1,14 +1,29 @@
+<!-- 设备升级 -->
 <template>
   <div class="app-container" v-loading="loading">
     <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-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-select>
       </el-form-item>
       <el-form-item prop="type" label="设备模式:">
         <el-select v-model="form.type" placeholder="请选择设备模式">
-          <el-option v-for="item in devModeOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
+          <el-option
+            v-for="item in devModeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="Number(item.value)"
+          />
         </el-select>
       </el-form-item>
       <el-form-item prop="version" label="版本号:">
@@ -16,13 +31,22 @@
       </el-form-item>
       <el-form-item prop="fileType" label="上传类型:">
         <el-select v-model="form.fileType" placeholder="请选择上传类型">
-          <el-option v-for="item in updateOptions" :key="item.value" :value="item.value" :label="item.label" />
+          <el-option
+            v-for="item in updateOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <el-form-item prop="url" label="下载路径:">
         <el-row>
           <el-col :span="18">
-            <el-input v-model="form.url" placeholder="请输入 或 上传下载路径" clearable />
+            <el-input
+              v-model="form.url"
+              placeholder="请输入 或 上传下载路径"
+              clearable
+            />
           </el-col>
           <el-col :span="6">
             <Upload :listType="listType" :accept="accept" @upload="getUpload" />
@@ -33,30 +57,63 @@
         <el-input v-model="form.title" placeholder="请输入升级标题" />
       </el-form-item>
       <el-form-item prop="content" label="升级描述:">
-        <el-input v-model="form.content" type="textarea" rows="4" placeholder="请输入升级描述" />
+        <el-input
+          v-model="form.content"
+          type="textarea"
+          rows="4"
+          placeholder="请输入升级描述"
+        />
       </el-form-item>
       <el-form-item prop="isEnforcement" label="设备升级:">
-        <el-select v-model="form.deviceIsEnforcement" placeholder="是否强制设备升级">
-          <el-option v-for="item in statusOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
+        <el-select
+          v-model="form.deviceIsEnforcement"
+          placeholder="是否强制设备升级"
+        >
+          <el-option
+            v-for="item in statusOptions"
+            :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 statusOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
+          <el-option
+            v-for="item in statusOptions"
+            :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 statusOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
+          <el-option
+            v-for="item in statusOptions"
+            :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 pushOptions" :key="item.value" :label="item.label" :value="Number(item.value)" />
+          <el-option
+            v-for="item in pushOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="Number(item.value)"
+          />
         </el-select>
       </el-form-item>
       <el-form-item :prop="user" v-if="form.userType === 3" label="指定用户:">
-        <el-input v-model="user" type="textarea" rows="4" placeholder="请输入指定用户手机号,一行一个" />
+        <el-input
+          v-model="user"
+          type="textarea"
+          rows="4"
+          placeholder="请输入指定用户手机号,一行一个"
+        />
       </el-form-item>
     </el-form>
     <div class="form-btn">
@@ -67,8 +124,8 @@
 </template>
 
 <script>
-import { getDetailInfo, updateEdit, getVersionAdd } from "@/api/device/version";
-import { devMixin, devModeMixin } from '@/mixin/index'
+import { getDetailInfo, getVersionAdd, updateEdit } from "@/api/device/version";
+import { devMixin, devModeMixin } from "@/mixin/index";
 export default {
   mixins: [devMixin, devModeMixin],
   data() {
@@ -84,74 +141,123 @@ export default {
       user: "",
       // 表单验证
       rules: {
-        deviceTypeId: [{
-          required: true, message: "请选择设备型号", trigger: "change"
-        }],
-        type: [{
-          required: true, message: "请选择设备类型", trigger: "change"
-        }],
-        version: [{
-          required: true, message: "请输入版本号", trigger: "blur"
-        }],
-        fileType: [{
-          required: true, message: '请选择上传类型', trigger: 'change'
-        }],
-        url: [{
-          required: true, message: "请输入 或 上传下载路径", trigger: "change"
-        }],
-        title: [{
-          required: true, message: "请输入升级标题", trigger: "blur"
-        }],
-        content: [{
-          required: true, message: "请输入升级描述", trigger: "blur"
-        }],
-        isEnforcement: [{
-          required: true, message: "是否强制升级", trigger: "change"
-        }],
-        isPush: [{
-          required: true, message: "是否同步推送", trigger: "change"
-        }],
-        userType: [{
-          required: true, message: "请选择推送类型", trigger: "change"
-        }],
+        deviceTypeId: [
+          {
+            required: true,
+            message: "请选择设备型号",
+            trigger: "change",
+          },
+        ],
+        type: [
+          {
+            required: true,
+            message: "请选择设备类型",
+            trigger: "change",
+          },
+        ],
+        version: [
+          {
+            required: true,
+            message: "请输入版本号",
+            trigger: "blur",
+          },
+        ],
+        fileType: [
+          {
+            required: true,
+            message: "请选择上传类型",
+            trigger: "change",
+          },
+        ],
+        url: [
+          {
+            required: true,
+            message: "请输入 或 上传下载路径",
+            trigger: "change",
+          },
+        ],
+        title: [
+          {
+            required: true,
+            message: "请输入升级标题",
+            trigger: "blur",
+          },
+        ],
+        content: [
+          {
+            required: true,
+            message: "请输入升级描述",
+            trigger: "blur",
+          },
+        ],
+        isEnforcement: [
+          {
+            required: true,
+            message: "是否强制升级",
+            trigger: "change",
+          },
+        ],
+        isPush: [
+          {
+            required: true,
+            message: "是否同步推送",
+            trigger: "change",
+          },
+        ],
+        userType: [
+          {
+            required: true,
+            message: "请选择推送类型",
+            trigger: "change",
+          },
+        ],
       },
       // 设备是否
-      statusOptions: [{
-        value: 1,
-        label: '是'
-      }, {
-        value: 2,
-        label: '否'
-      }],
+      statusOptions: [
+        {
+          value: 1,
+          label: "是",
+        },
+        {
+          value: 2,
+          label: "否",
+        },
+      ],
       // 升级对象
-      pushOptions: [{
-        value: 1,
-        label: '全部'
-      }, {
-        value: 3,
-        label: '指定'
-      }],
+      pushOptions: [
+        {
+          value: 1,
+          label: "全部",
+        },
+        {
+          value: 3,
+          label: "指定",
+        },
+      ],
       // 上传类型
-      updateOptions: [{
-        value: 1,
-        label: '文件'
-      }, {
-        value: 2,
-        label: '文件夹'
-      }],
-      listType: 'text',
+      updateOptions: [
+        {
+          value: 1,
+          label: "文件",
+        },
+        {
+          value: 2,
+          label: "文件夹",
+        },
+      ],
+      listType: "text",
       // 文件类型
-      accept: '.bin'
+      accept: ".bin",
     };
   },
   watch: {
-    'form.fileType'(val) {
-      this.listType = val === 1 ? 'text' : 'zip'
-      this.accept = val === 1 ? '.bin' : '.zip'
-    }
+    "form.fileType"(val) {
+      this.listType = val === 1 ? "text" : "zip";
+      this.accept = val === 1 ? ".bin" : ".zip";
+    },
   },
   mounted() {
-    this.getDevList()
+    this.getDevList();
     if (this.form.id) {
       getDetailInfo({
         id: this.form.id,

+ 14 - 8
src/views/device/version/index.vue

@@ -1,6 +1,6 @@
 
 
-   <!-- 设备升级 -->
+<!-- 设备升级 -->
 <template>
   <div class="app-container">
     <!-- 搜索 -->
@@ -178,13 +178,19 @@ export default {
     },
     // 删除
     getDelete(id) {
-      this.loading = true;
-      getVersionDelete({ id: id }).then((res) => {
-        if (res.code === 0) {
-          this.$message.success("删除成功!");
-          this.getList();
-          this.loading = false;
-        }
+      this.$confirm("是否删除?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(() => {
+        this.loading = true;
+        getVersionDelete({ id: id }).then((res) => {
+          if (res.code === 0) {
+            this.$message.success("删除成功!");
+            this.getList();
+            this.loading = false;
+          }
+        });
       });
     },