فهرست منبع

app课程/直播跳转短链支持

hulin 13 ساعت پیش
والد
کامیت
59fe98bcda

+ 1 - 2
src/views/qw/sop/sop.vue

@@ -141,7 +141,7 @@
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-tooltip class="item" effect="dark" content="此功能用于给 选中的 SOP任务营期 内【所有的】客户发送 消息【或者发送草稿-/-清草稿】" placement="top">
+        <el-tooltip class="item" effect="dark" content="此功能用于给 选中的 SOP任务营期 内【所有的】客户发送 消息【或者发送草稿-/-清草稿】" placement="top">
           <el-button
             type="warning"
             icon="el-icon-s-promotion"
@@ -1162,7 +1162,6 @@ export default {
      * SOP任务营期一键群发
      */
     handleCampSendMsg(){
-
       setTimeout(() => {
         this.$refs.sendMsgSopOpenTool.oneClickGroupSending(this.ids,2,this.queryParams.corpId,0);
       }, 500);

+ 3 - 1
src/views/qw/sopLogs/sopLogsList.vue

@@ -193,6 +193,8 @@
                 <span v-if="item.contentType == 4 || item.contentType == 17"><el-button size="mini" type="primary" @click="generateShortLink(item)" style="margin-left: 330px;">生成短链</el-button></span>
                 <span v-if="item.contentType == 18 || item.contentType == 19"><el-button size="mini" type="primary" @click="generateLiveShortLink(item)" style="margin-left: 330px;">复制短链</el-button></span>
                 <span v-if="item.contentType == 21">发看课短信</span>
+                <span v-if="item.contentType == 23">APP看课跳转短链</span>
+                <span v-if="item.contentType == 24">APP直播跳转短链</span>
               </div>
               <div v-if="item.sendStatus">
                 <span>发送状态:</span>
@@ -225,7 +227,7 @@
                 </div>
               </div>
             </div>
-            <div v-if="item.contentType == 4 || item.contentType == 10 || item.contentType == 18 || item.contentType == 17" class="message-style">
+            <div v-if="item.contentType == 4 || item.contentType == 10 || item.contentType == 18 || item.contentType == 17 || item.contentType == 23 || item.contentType == 24" class="message-style">
                 <div style="display: flex; justify-content: space-between; width: 100%">
                   <span style="font-size: 13px; flex: 1">{{ item.miniprogramTitle }}</span>
                   <el-image

+ 11 - 11
src/views/qw/sopTemp/updateSopTemp.vue

@@ -481,7 +481,7 @@
                                             </el-card>
                                           </div>
 
-                                          <div v-if="setList.contentType == 4 || setList.contentType == 10">
+                                          <div v-if="setList.contentType == 4 || setList.contentType == 10 || setList.contentType == 17  || setList.contentType == 23">
                                             <el-card class="box-card miniprogram-card">
                                               <div slot="header" class="card-header-mini">
                                                 <i class="el-icon-mobile-phone"></i>
@@ -514,7 +514,7 @@
                                               </el-form-item>
                                             </el-card>
                                           </div>
-                                          <div v-if="setList.contentType == 12 || setList.contentType == 18 || setList.contentType == 19">
+                                          <div v-if="setList.contentType == 12 || setList.contentType == 18 || setList.contentType == 19 || setList.contentType == 24">
                                             <el-card class="box-card miniprogram-card">
                                               <div slot="header" class="card-header-mini">
                                                 <i class="el-icon-video-camera"></i>
@@ -2449,15 +2449,15 @@ export default {
                 this.$message.error("图片不能为空")
                 return false;
               }
-              if ((data.content[j].setting[k].contentType == 3 || data.content[j].setting[k].contentType == 9 || data.content[j].setting[k].contentType == 10) && (data.content[j].setting[k].linkTitle == null || data.content[j].setting[k].linkTitle == "")) {
+              if ((data.content[j].setting[k].contentType == 3 || data.content[j].setting[k].contentType == 9 || data.content[j].setting[k].contentType == 10 || data.content[j].setting[k].contentType == 17|| data.content[j].setting[k].contentType == 23) && (data.content[j].setting[k].linkTitle == null || data.content[j].setting[k].linkTitle == "")) {
                 this.$message.error("链接标题不能为空")
                 return false;
               }
-              if ((data.content[j].setting[k].contentType == 3 || data.content[j].setting[k].contentType == 9 || data.content[j].setting[k].contentType == 10) && (data.content[j].setting[k].linkDescribe == null || data.content[j].setting[k].linkDescribe == "")) {
+              if ((data.content[j].setting[k].contentType == 3 || data.content[j].setting[k].contentType == 9 || data.content[j].setting[k].contentType == 10|| data.content[j].setting[k].contentType == 17|| data.content[j].setting[k].contentType == 23) && (data.content[j].setting[k].linkDescribe == null || data.content[j].setting[k].linkDescribe == "")) {
                 this.$message.error("链接描述不能为空")
                 return false;
               }
-              if ((data.content[j].setting[k].contentType == 3 || data.content[j].setting[k].contentType == 9 || data.content[j].setting[k].contentType == 10) && (data.content[j].setting[k].linkImageUrl == null || data.content[j].setting[k].linkImageUrl == "")) {
+              if ((data.content[j].setting[k].contentType == 3 || data.content[j].setting[k].contentType == 9 || data.content[j].setting[k].contentType == 10|| data.content[j].setting[k].contentType == 17|| data.content[j].setting[k].contentType == 23) && (data.content[j].setting[k].linkImageUrl == null || data.content[j].setting[k].linkImageUrl == "")) {
                 this.$message.error("链接图片不能为空")
                 return false;
               }
@@ -2466,11 +2466,11 @@ export default {
                 return false;
               }
 
-              if ((data.content[j].setting[k].contentType == 4 || data.content[j].setting[k].contentType == 10) && (data.content[j].setting[k].miniprogramTitle == null || data.content[j].setting[k].miniprogramTitle == "")) {
+              if ((data.content[j].setting[k].contentType == 4 || data.content[j].setting[k].contentType == 10 || data.content[j].setting[k].contentType == 17 || data.content[j].setting[k].contentType == 23) && (data.content[j].setting[k].miniprogramTitle == null || data.content[j].setting[k].miniprogramTitle == "")) {
                 this.$message.error("小程序消息标题不能为空")
                 return false;
               }
-              if ((data.content[j].setting[k].contentType == 4 || data.content[j].setting[k].contentType == 10) && data.content[j].isOfficial !== '1' && (data.content[j].setting[k].miniprogramPicUrl == null || data.content[j].setting[k].miniprogramPicUrl == "")) {
+              if ((data.content[j].setting[k].contentType == 4 || data.content[j].setting[k].contentType == 10 || data.content[j].setting[k].contentType == 17 || data.content[j].setting[k].contentType == 23) && data.content[j].isOfficial !== '1' && (data.content[j].setting[k].miniprogramPicUrl == null || data.content[j].setting[k].miniprogramPicUrl == "")) {
                 this.$message.error("小程序封面地址不能为空")
                 return false;
               }
@@ -2769,7 +2769,7 @@ export default {
             this.$set(content.setting[i], 'linkTitle', selectedCourse.dictLabel);
             this.$set(content.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
           }
-          if (content.setting[i].contentType == 4 || content.setting[i].contentType == 10) {
+          if (content.setting[i].contentType == 4 || content.setting[i].contentType == 10 || content.setting[i].contentType == 17  || content.setting[i].contentType == 23) {
             this.$set(content.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
           }
 
@@ -2932,7 +2932,7 @@ export default {
               this.$set(content.setting[i], 'linkTitle', selectedCourse.dictLabel);
               this.$set(content.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
             }
-            if ((content.setting[i].contentType == 4 || content.setting[i].contentType == 10) && (content.isOfficial == '0' || content.isOfficial == null)) {
+            if ((content.setting[i].contentType == 4 || content.setting[i].contentType == 10 || content.setting[i].contentType == 17 || content.setting[i].contentType == 23) && (content.isOfficial == '0' || content.isOfficial == null)) {
               this.$set(content.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
             }
 
@@ -2957,7 +2957,7 @@ export default {
               }
 
             }
-            if (content.setting[i].contentType == 4 || content.setting[i].contentType == 10 ) {
+            if (content.setting[i].contentType == 4 || content.setting[i].contentType == 10 || content.setting[i].contentType == 17 || content.setting[i].contentType == 23) {
               this.$set(content.setting[i], 'miniprogramTitle', this.truncateTextByByteLength(selectedVideo.dictLabel, 60));
 
               if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {
@@ -3002,7 +3002,7 @@ export default {
 
           }
 
-          if (content.setting[i].contentType == 4 || content.setting[i].contentType == 10) {
+          if (content.setting[i].contentType == 4 || content.setting[i].contentType == 10 || content.setting[i].contentType == 17 || content.setting[i].contentType == 23 ) {
             this.$set(content.setting[i], 'miniprogramTitle', this.truncateTextByByteLength(selectedVideo.dictLabel, 60));
 
             if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {

+ 1 - 1
src/views/qw/sopUserLogs/sopUserLogsSchedule.vue

@@ -177,7 +177,7 @@
          v-if="filterMode == 1"
     >
       <i class="el-icon-info"></i>
-      【营期一键群发】:此功能用于给 选中的 营期 内【所有的】客户发送 消息【或者发送草稿-/-清草稿】
+      【营期一键群发】:此功能用于给 选中的 营期 内【所有的】客户发送 消息【或者发送草稿-/-清草稿】
     </div>
     <div style="color: #999;font-size: 14px;display: flex;align-items: center;margin-bottom: 5px"
          v-if="filterMode == 1"

+ 11 - 18
src/views/qw/sopUserLogsInfo/sendMsgOpenTool.vue

@@ -101,7 +101,7 @@
                     </el-card>
                   </div> -->
                   <el-form-item label="内容" style="margin-bottom: 2%" >
-                    <div v-if="item.contentType == 12 || item.contentType == 18 || item.contentType == 19">
+                    <div v-if="item.contentType == 12 || item.contentType == 18 || item.contentType == 19 || item.contentType == 24">
                       <el-card class="box-card">
                         <el-form-item label="直播间" >
                           <el-select  v-model="item.liveId"
@@ -179,7 +179,7 @@
                         </el-form-item>
                       </el-card>
                     </div>
-                    <div v-if="item.contentType == 4 || item.contentType == 10  || item.contentType == 17 ">
+                    <div v-if="item.contentType == 4 || item.contentType == 10  || item.contentType == 17 || item.contentType == 23">
                       <el-card class="box-card">
                         <el-form-item label="标题" prop="miniprogramTitle">
                           <el-input v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字"  />
@@ -602,7 +602,6 @@ export default {
 
     },
     oneClickGroupSending(val,type,corpId){
-
       this.sendMsgOpen.open= true;
       this.msgForm.ids = val;
       this.msgForm.type = type;
@@ -620,7 +619,7 @@ export default {
               this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
             }
 
-            if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 10  || this.setting[i].contentType == 17 ){
+            if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 10  || this.setting[i].contentType == 17 || this.setting[i].contentType == 23){
               this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
             }
           }
@@ -651,7 +650,7 @@ export default {
 
             }
 
-            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10  || this.setting[i].contentType == 17 ){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10  || this.setting[i].contentType == 17 || this.setting[i].contentType == 23){
               this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
 
               if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {
@@ -877,15 +876,12 @@ export default {
               this.$set(this.setting[i], 'linkTitle', selectedCourse.dictLabel);
               this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
             }
-            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 ){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 
+              || this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填封面
               this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
             }
-
-
           }
-
         }
-
       }
       if (this.msgForm.videoId != null ) {
         // 查找选中的课节对应的 label
@@ -902,7 +898,8 @@ export default {
                 this.$set(this.setting[i], 'linkImageUrl', selectedVideo.dictImgUrl);
               }
             }
-            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 
+              || this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填标题
               this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
 
               if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {
@@ -986,12 +983,9 @@ export default {
     },
 
     submitMsgForm(){
-
       this.$refs["msgForm"].validate(valid => {
         if (valid) {
 
-
-
           if (this.msgForm.draftStrategy==1) {
 
             if (!!hasLiveSetting && (this.msgForm.courseId != null && this.msgForm.courseId != '')) {
@@ -1049,10 +1043,10 @@ export default {
                 return this.$message.error("链接地址不能为空")
               }
 
-              if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17) && (this.setting[i].miniprogramTitle == null || this.setting[i].miniprogramTitle == "")) {
+              if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 || this.setting[i].contentType == 23 || this.setting[i].contentType == 24) && (this.setting[i].miniprogramTitle == null || this.setting[i].miniprogramTitle == "")) {
                 return this.$message.error("小程序消息标题不能为空")
               }
-              if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17) && (this.setting[i].miniprogramPicUrl == null || this.setting[i].miniprogramPicUrl == "")) {
+              if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 || this.setting[i].contentType == 23 || this.setting[i].contentType == 24) && (this.setting[i].miniprogramPicUrl == null || this.setting[i].miniprogramPicUrl == "")) {
                 return this.$message.error("小程序封面地址不能为空")
               }
 
@@ -1073,7 +1067,7 @@ export default {
               if (this.setting[i].contentType == 14 && (this.setting[i].luckyBagId == null || this.setting[i].luckyBagId === "")) {
                 return this.$message.error("福袋不能为空")
               }
-              if (this.setting[i].contentType == 12 && (this.setting[i].liveId == null || this.setting[i].liveId == "")) {
+              if ((this.setting[i].contentType == 12 || this.setting[i].contentType == 24) && (this.setting[i].liveId == null || this.setting[i].liveId == "")) {
                 return this.$message.error("直播间不能为空");
               }
               // 短信模板验证
@@ -1117,7 +1111,6 @@ export default {
               spinner: 'el-icon-loading',
               background: 'rgba(0, 0, 0, 0.7)'
             });
-
             sendMsgSopType(this.msgForm).then(response => {
               this.msgSuccess("一键群发成功");
               loading.close();

+ 42 - 12
src/views/qw/sopUserLogsInfo/sendMsgSopOpenTool.vue

@@ -104,7 +104,7 @@
                         </el-form-item>
                       </el-card>
                     </div>
-                    <div v-if="item.contentType == 4 || item.contentType == 10 || item.contentType == 17">
+                    <div v-if="item.contentType == 4 || item.contentType == 10 || item.contentType == 17 || item.contentType == 23">
                       <el-card class="box-card">
                         <el-form-item label="标题" prop="miniprogramTitle">
                           <el-input v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字"  />
@@ -204,7 +204,7 @@
                       </el-card>
                     </div>
 
-                    <div v-if="item.contentType == 12 || item.contentType == 18 || item.contentType == 19">
+                    <div v-if="item.contentType == 12 || item.contentType == 18 || item.contentType == 19 || item.contentType == 24">
                       <el-card class="box-card">
                         <el-form-item label="直播间" >
                           <el-select  v-model="item.liveId"
@@ -521,7 +521,8 @@ export default {
               this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
             }
 
-            if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17){
+            if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 
+              || this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填封面
               this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
             }
           }
@@ -551,7 +552,8 @@ export default {
               }
             }
 
-            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 
+              || this.setting[i].contentType == 23){//新增APP 看课 跳转短链回填标题
               this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
 
               if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {
@@ -779,7 +781,8 @@ export default {
               this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
 
             }
-            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 
+              || this.setting[i].contentType == 23){
               this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
 
             }
@@ -806,7 +809,8 @@ export default {
               }
 
             }
-            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17 
+              || this.setting[i].contentType == 23){
               this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
 
               if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {
@@ -847,16 +851,35 @@ export default {
 
           if (this.msgForm.draftStrategy==1){
 
-            this.msgForm.setting=JSON.stringify(this.setting)
-
+            this.msgForm.setting = JSON.stringify(this.setting);
+            let jsonSetting = JSON.parse(this.msgForm.setting);
+            let hasLiveSetting = false;
+            let count = 0;
+            for (let index = 0; index < jsonSetting.length; index++) {
+              if (jsonSetting[index] && [12, 18, 19, 24].includes(Number(jsonSetting[index].contentType))) {
+                hasLiveSetting = true;
+                count++;
+              }
+            }
+            if (hasLiveSetting) {
+              if (this.msgForm.courseId) {
+                return this.$message.error("直播间不能选取课程");
+              }
+              if (this.msgForm.videoId) {
+                return this.$message.error("直播间不能选取课节");
+              }
+              if (count > 1) {
+                return this.$message.error("直播间一次只能发送一条");
+              }
+            }
             if (this.setting.length <= 0) {
               return this.$message.error("请添加规则")
             }
-            if (this.msgForm.courseId===null || this.msgForm.courseId===''){
+            if (!hasLiveSetting && !this.msgForm.courseId){
               return this.$message.error("课程不能为空")
             }
 
-            if (this.msgForm.videoId===null || this.msgForm.videoId===''){
+            if (!hasLiveSetting && !this.msgForm.videoId){
               return this.$message.error("课节不能为空")
             }
 
@@ -884,10 +907,10 @@ export default {
                 return this.$message.error("链接地址不能为空")
               }
 
-              if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 10  || this.setting[i].contentType == 17) && (this.setting[i].miniprogramTitle == null || this.setting[i].miniprogramTitle == "")) {
+              if ([4, 10, 17, 23, 24].includes(Number(this.setting[i].contentType)) && (this.setting[i].miniprogramTitle == null || this.setting[i].miniprogramTitle == "")) {
                 return this.$message.error("小程序消息标题不能为空")
               }
-              if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 10 || this.setting[i].contentType == 17) && (this.setting[i].miniprogramPicUrl == null || this.setting[i].miniprogramPicUrl == "")) {
+              if ([4, 10, 17, 23, 24].includes(Number(this.setting[i].contentType)) && (this.setting[i].miniprogramPicUrl == null || this.setting[i].miniprogramPicUrl == "")) {
                 return this.$message.error("小程序封面地址不能为空")
               }
 
@@ -904,6 +927,13 @@ export default {
               if (this.setting[i].contentType == 7 && (this.setting[i].value == null || this.setting[i].value == "")) {
                 return this.$message.error("语音不能为空")
               }
+              // 添加对福袋的验证
+              if (this.setting[i].contentType == 14 && (this.setting[i].luckyBagId == null || this.setting[i].luckyBagId === "")) {
+                return this.$message.error("福袋不能为空")
+              }
+              if ((this.setting[i].contentType == 12 || this.setting[i].contentType == 24) && (this.setting[i].liveId == null || this.setting[i].liveId == "")) {
+                return this.$message.error("直播间不能为空");
+              }
             }
           }
 

+ 7 - 7
src/views/qw/sopUserLogsInfo/sopUserLogsInfoDetails.vue

@@ -348,7 +348,7 @@
                         </el-form-item>
                       </el-card>
                     </div>
-                    <div v-if="item.contentType == 4">
+                    <div v-if="item.contentType == 4 || item.contentType == 23">
                       <el-card class="box-card">
                         <el-form-item label="标题" prop="miniprogramTitle">
                           <el-input v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字"  />
@@ -407,7 +407,7 @@
                         placeholder="输入要转为语音的内容" style="width: 90%;margin-top: 10px;"
                         @input="handleInputVideoText(item.value,item)"/>
                     </div>
-                    <div v-if="item.contentType == 12 || item.contentType == 18 || item.contentType == 19">
+                    <div v-if="item.contentType == 12 || item.contentType == 24">
                       <!--                                           <div >-->
                       <el-card class="box-card">
                         <el-form-item label="直播间" >
@@ -1012,7 +1012,7 @@ export default {
               this.$set(this.setting[i], 'linkImageUrl', selectedCourse.dictImgUrl);
             }
 
-            if ( this.setting[i].contentType == 4 ){
+            if ( this.setting[i].contentType == 4 || this.setting[i].contentType == 23){
               this.$set(this.setting[i], 'miniprogramPicUrl', selectedCourse.dictImgUrl);
             }
           }
@@ -1042,7 +1042,7 @@ export default {
               }
             }
 
-            if (this.setting[i].contentType == 4){
+            if (this.setting[i].contentType == 4 || this.setting[i].contentType == 23){
               this.$set(this.setting[i], 'miniprogramTitle', selectedVideo.dictLabel);
 
               if (this.projectFrom == 'sxjz' && selectedVideo.dictImgUrl) {
@@ -1476,7 +1476,7 @@ export default {
           let hasLiveSetting = false;
           let jsonSetting = JSON.parse(this.msgForm.setting);
           for(let index=0;index < jsonSetting.length;index++){
-           if(!!jsonSetting[index] && (jsonSetting[index].contentType == "12" || jsonSetting[index].contentType == "18" || jsonSetting[index].contentType == "19") ) {
+           if(!!jsonSetting[index] && (jsonSetting[index].contentType == "12") ) {
             if(!!hasLiveSetting){
                return this.$message.error("发送直播间只能一次只能发送一条");
             }
@@ -1525,10 +1525,10 @@ export default {
               return this.$message.error("链接地址不能为空")
             }
 
-            if (this.setting[i].contentType == 4 && (this.setting[i].miniprogramTitle == null || this.setting[i].miniprogramTitle == "")) {
+            if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 23 || this.setting[i].contentType == 24) && (this.setting[i].miniprogramTitle == null || this.setting[i].miniprogramTitle == "")) {
               return this.$message.error("小程序消息标题不能为空")
             }
-            if (this.setting[i].contentType == 4 && (this.setting[i].miniprogramPicUrl == null || this.setting[i].miniprogramPicUrl == "")) {
+            if ((this.setting[i].contentType == 4 || this.setting[i].contentType == 23 || this.setting[i].contentType == 24) && (this.setting[i].miniprogramPicUrl == null || this.setting[i].miniprogramPicUrl == "")) {
               return this.$message.error("小程序封面地址不能为空")
             }
             if (this.setting[i].contentType == 5 && (this.setting[i].fileUrl == null || this.setting[i].fileUrl == "")) {