فهرست منبع

add 一键群发次日发送

ct 2 روز پیش
والد
کامیت
ea7b53f4aa

+ 37 - 1
src/views/qw/sopUserLogsInfo/sendMsgOpenTool.vue

@@ -358,6 +358,14 @@
           <el-link type="primary" class="el-icon-plus" :underline="false" @click='addSetList()'  >添加内容</el-link>
 
         </el-form-item>
+
+        <el-form-item label="发送时间类型" prop="sendTimeType" v-if="msgForm.draftStrategy==1 || msgForm.draftStrategy==4" >
+          <el-radio-group v-model="msgForm.sendTimeType" @change="handleSendTimeTypeChange">
+            <el-radio :label="1">当天发送</el-radio>
+            <el-radio :label="2">次日发送</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
         <el-form-item label="发送时间" prop="sendTime" v-if="msgForm.draftStrategy==1" >
           <el-time-picker
             class="custom-input"
@@ -367,7 +375,8 @@
             placeholder="时间"
             style="width: 100px;height: 20px;">
           </el-time-picker>
-          <span class="tip" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
+          <span class="tip" v-if="msgForm.sendTimeType === 1" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
+          <span class="tip" v-if="msgForm.sendTimeType === 2" style="margin-left: 2%; color: #E6A23C;"> 次日发送时,发送时间必填</span>
         </el-form-item>
 
       </el-form>
@@ -486,6 +495,7 @@ export default {
         startTime: null,
         sendTime: null,
         draftStrategy:1,
+        sendTimeType: 1, // 添加字段:1-当天发送,2-次日发送
       },
       // 表单校验
       rules: {},
@@ -507,6 +517,12 @@ export default {
       this.sysFsSopWatchStatus = response.data;
     });
 
+    this.msgRules = {
+      sendTime: [
+        { validator: this.validateSendTimeRule, trigger: 'change' }
+      ]
+    };
+
     courseList().then(response => {
       this.courseList = response.list;
     });
@@ -519,6 +535,20 @@ export default {
     });
   },
   methods: {
+    validateSendTimeRule(rule, value, callback) {
+      if (this.msgForm.draftStrategy == 1 && this.msgForm.sendTimeType === 2 && !value) {
+        callback(new Error('次日发送时,发送时间不能为空'));
+      } else {
+        callback();
+      }
+    },
+    handleSendTimeTypeChange() {
+      this.$nextTick(() => {
+        if (this.$refs.msgForm) {
+          this.$refs.msgForm.validateField('sendTime');
+        }
+      });
+    },
     getLuckyBagStatus(content) {
       const selectedLuckyBag = this.luckyBagList.find(item => item.id === content.luckyBagId);
       if (selectedLuckyBag) {
@@ -698,6 +728,7 @@ export default {
       const newSetting = {
         contentType:'1',
         value: '',
+        sendTimeType: 1, // 为每个规则项添加发送时间类型
       };
       // 将新设置项添加到 content.setting 数组中
       this.setting.push(newSetting);
@@ -886,6 +917,7 @@ export default {
         setting:null,
         sendTime:null,
         draftStrategy:1,
+        sendTimeType: 1, // 添加默认值
       };
       this.resetForm("msgForm");
     },
@@ -940,6 +972,10 @@ export default {
               return this.$message.error("消息类型不能为空")
             }
 
+            if (this.msgForm.sendTimeType === 2 && !this.msgForm.sendTime) {
+              return this.$message.error("次日发送时,发送时间不能为空")
+            }
+
             for (let i = 0; i < this.setting.length; i++) {
               if (this.setting[i].contentType == 1 && (this.setting[i].value == null || this.setting[i].value == "")) {
                 return this.$message.error("内容不能为空")

+ 35 - 1
src/views/qw/sopUserLogsInfo/sendMsgSopOpenTool.vue

@@ -298,6 +298,12 @@
           <el-link type="primary" class="el-icon-plus" :underline="false" @click='addSetList()'  >添加内容</el-link>
 
         </el-form-item>
+        <el-form-item label="发送时间类型" prop="sendTimeType" v-if="msgForm.draftStrategy==1 || msgForm.draftStrategy==4" >
+          <el-radio-group v-model="msgForm.sendTimeType" @change="handleSendTimeTypeChange">
+            <el-radio :label="1">当天发送</el-radio>
+            <el-radio :label="2">次日发送</el-radio>
+          </el-radio-group>
+        </el-form-item>
         <el-form-item label="发送时间" prop="sendTime" v-if="msgForm.draftStrategy==1" >
           <el-time-picker
             class="custom-input"
@@ -307,7 +313,8 @@
             placeholder="时间"
             style="width: 100px;height: 20px;">
           </el-time-picker>
-          <span class="tip" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
+          <span class="tip" v-if="msgForm.sendTimeType === 1" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
+          <span class="tip" v-if="msgForm.sendTimeType === 2" style="margin-left: 2%; color: #E6A23C;"> 次日发送时,发送时间必填</span>
         </el-form-item>
 
       </el-form>
@@ -426,6 +433,7 @@ export default {
         startTime: null,
         sendTime: null,
         draftStrategy:1,
+        sendTimeType: 1, // 添加字段:1-当天发送,2-次日发送
       },
       // 表单校验
       rules: {},
@@ -446,6 +454,12 @@ export default {
       this.sysFsSopWatchStatus = response.data;
     });
 
+    this.msgRules = {
+      sendTime: [
+        { validator: this.validateSendTimeRule, trigger: 'change' }
+      ]
+    };
+
     courseList().then(response => {
       this.courseList = response.list;
     });
@@ -454,6 +468,20 @@ export default {
     });
   },
   methods: {
+    validateSendTimeRule(rule, value, callback) {
+      if (this.msgForm.draftStrategy == 1 && this.msgForm.sendTimeType === 2 && !value) {
+        callback(new Error('次日发送时,发送时间不能为空'));
+      } else {
+        callback();
+      }
+    },
+    handleSendTimeTypeChange() {
+      this.$nextTick(() => {
+        if (this.$refs.msgForm) {
+          this.$refs.msgForm.validateField('sendTime');
+        }
+      });
+    },
     getLuckyBagStatus(content) {
       const selectedLuckyBag = this.luckyBagList.find(item => item.id === content.luckyBagId);
       if (selectedLuckyBag) {
@@ -612,6 +640,7 @@ export default {
       const newSetting = {
         contentType:'1',
         value: '',
+        sendTimeType: 1, // 为每个规则项添加发送时间类型
       };
       // 将新设置项添加到 content.setting 数组中
       this.setting.push(newSetting);
@@ -810,6 +839,7 @@ export default {
         setting:null,
         sendTime:null,
         draftStrategy:1,
+        sendTimeType: 1, // 添加默认值
       };
       this.resetForm("msgForm");
     },
@@ -844,6 +874,10 @@ export default {
               return this.$message.error("消息类型不能为空")
             }
 
+            if (this.msgForm.sendTimeType === 2 && !this.msgForm.sendTime) {
+              return this.$message.error("次日发送时,发送时间不能为空")
+            }
+
             for (let i = 0; i < this.setting.length; i++) {
               if (this.setting[i].contentType == 1 && (this.setting[i].value == null || this.setting[i].value == "")) {
                 return this.$message.error("内容不能为空")

+ 49 - 0
src/views/qw/sopUserLogsInfo/sopUserLogsInfoDetails.vue

@@ -518,6 +518,26 @@
           <el-link type="primary" class="el-icon-plus" :underline="false" @click='addSetList()'  >添加内容</el-link>
 
         </el-form-item>
+
+        <el-form-item label="发送时间类型" prop="sendTimeType">
+          <el-radio-group v-model="msgForm.sendTimeType" @change="handleSendTimeTypeChange">
+            <el-radio :label="1">当天发送</el-radio>
+            <el-radio :label="2">次日发送</el-radio>
+          </el-radio-group>
+        </el-form-item>
+
+        <el-form-item label="发送时间" prop="sendTime">
+          <el-time-picker
+            class="custom-input"
+            v-model="msgForm.sendTime"
+            value-format="HH:mm"
+            format="HH:mm"
+            placeholder="时间"
+            style="width: 100px;height: 20px;">
+          </el-time-picker>
+          <span class="tip" v-if="msgForm.sendTimeType === 1" style="margin-left: 2%"> 不填时,默认为系统当前时间(立即发送)</span>
+          <span class="tip" v-if="msgForm.sendTimeType === 2" style="margin-left: 2%; color: #E6A23C;"> 次日发送时,发送时间必填</span>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitMsgForm">确 定</el-button>
@@ -723,6 +743,8 @@ export default {
         ids:null,
         sopId: null,
         startTime: null,
+        sendTime: null,
+        sendTimeType: 1,
       },
       // 表单校验
       rules: {},
@@ -766,11 +788,30 @@ export default {
       this.luckyBagList = response.rows;
     });
 
+    this.msgRules = {
+      sendTime: [
+        { validator: this.validateSendTimeRule, trigger: 'change' }
+      ]
+    };
 
     console.log("listToLiveNoEnd",this.projectFrom);
 
   },
   methods: {
+    validateSendTimeRule(rule, value, callback) {
+      if (this.msgForm.sendTimeType === 2 && !value) {
+        callback(new Error('次日发送时,发送时间不能为空'));
+      } else {
+        callback();
+      }
+    },
+    handleSendTimeTypeChange() {
+      this.$nextTick(() => {
+        if (this.$refs.msgForm) {
+          this.$refs.msgForm.validateField('sendTime');
+        }
+      });
+    },
     getLuckyBagStatus(content) {
       const selectedLuckyBag = this.luckyBagList.find(item => item.id === content.luckyBagId);
       if (selectedLuckyBag) {
@@ -1305,6 +1346,8 @@ export default {
         courseType:null,
         setting:null,
         ids:null,
+        sendTime:null,
+        sendTimeType: 1,
       };
       this.resetForm("msgForm");
     },
@@ -1392,6 +1435,10 @@ export default {
             return this.$message.error("消息类型不能为空")
           }
 
+          if (this.msgForm.sendTimeType === 2 && !this.msgForm.sendTime) {
+            return this.$message.error("次日发送时,发送时间不能为空")
+          }
+
           for (let i = 0; i < this.setting.length; i++) {
             if (this.setting[i].contentType == 1 && (this.setting[i].value == null || this.setting[i].value == "")) {
               return this.$message.error("内容不能为空")
@@ -1447,6 +1494,8 @@ export default {
               courseId:null,
               courseType:null,
               setting:null,
+              sendTime:null,
+              sendTimeType: 1,
             }
             this.getList();
           }).finally(()=>{