Переглянути джерело

修改弹窗类型和推送类型的关联逻辑

DESKTOP-SVI9JE1\muzen 2 роки тому
батько
коміт
5e89790645
1 змінених файлів з 25 додано та 20 видалено
  1. 25 20
      src/views/push/dialog/detail.vue

+ 25 - 20
src/views/push/dialog/detail.vue

@@ -20,14 +20,14 @@
           <el-option v-for="item in dialogTypeOptions" :key="item.value" :value="item.value" :label="item.label" />
         </el-select>
       </el-form-item>
-      <el-form-item label="推送类型:" prop="pushType">
-        <el-select v-model="form.pushType" placeholder="请选择推送类型">
+      <el-form-item v-if="form.type !== 2" label="推送类型:" prop="pushType">
+        <el-select v-model="form.pushType" placeholder="请选择推送类型" @change="handleChangePushType">
           <el-option v-for="item in pushTypeOptions" :key="item.value" :value="item.value" :label="item.label" />
         </el-select>
       </el-form-item>
       <el-form-item v-if="form.pushType === 1" label="用户列表:" prop="user">
         <el-input v-model="form.user" type="textarea" :autosize="{ minRows: 5, maxRows: 10 }"
-          placeholder="请输入用户ID, 一行一个" />
+          placeholder="请输入用户Id, 一行一个" />
       </el-form-item>
       <el-form-item v-if="form.pushType === 2" label="用户列表:" prop="fileUrl">
         <el-input v-model="form.fileUrl" readonly style="width: calc(100% - 120px); margin-right: 20px" />
@@ -85,7 +85,16 @@ export default {
         label: '新用户弹窗'
       }],
       // 推送类型
-      pushTypeOptions: [],
+      pushTypeOptions: [{
+        value: 0,
+        label: '全部用户'
+      }, {
+        value: 1,
+        label: '指定用户-输入'
+      }, {
+        value: 2,
+        label: '指定用户-上传'
+      }],
       // 只读
       disabled: false,
       // 校验
@@ -139,24 +148,18 @@ export default {
       })
     },
 
-    // 推送类型改变
-    handleChangeType(val) {
-      this.pushTypeOptions = [{
-        value: 0,
-        label: '全部用户'
-      }, {
-        value: 1,
-        label: '指定用户-输入'
-      }, {
-        value: 2,
-        label: '指定用户-上传'
-      }]
-      if (val === 2) {
-        this.pushTypeOptions.splice(0, 1)
-        this.$set(this.form, 'pushType', '')
+    // 弹窗类型
+    handleChangeType(e) {
+      if (e === 2) {
+        delete this.form.pushType
       }
     },
 
+    // 推送类型
+    handleChangePushType() {
+      this.$refs.form.clearValidate(['user', 'fileUrl'])
+    },
+
     // 上传
     upload(e, key) {
       this.form[key] = e.file
@@ -171,7 +174,9 @@ export default {
     getSubmit() {
       this.$refs.form.validate((valid) => {
         if (valid) {
-          this.form.pushType === 0 ? [delete this.form.user, delete this.form.fileUrl] : this.form.pushType === 1 ? delete this.form.fileUrl : delete this.form.user
+          // 删掉不需要的传参
+          !this.form.pushType || this.form.pushType === 0 ? [delete this.form.user, delete this.form.fileUrl]
+            : this.form.pushType === 1 ? delete this.form.fileUrl : delete this.form.user
           submit(this.form).then(res => {
             if (res.code === 0) {
               this.$message.success('提交成功!')