Ver código fonte

sop发送直播间

lmx 1 dia atrás
pai
commit
7765940972
1 arquivos alterados com 61 adições e 5 exclusões
  1. 61 5
      src/views/qw/sopTemp/updateSopTemp.vue

+ 61 - 5
src/views/qw/sopTemp/updateSopTemp.vue

@@ -153,13 +153,26 @@
                                 <el-form-item label="消息类别" v-if="form.sendType != 4 && form.sendType != 5">
                                 <el-form-item label="消息类别" v-if="form.sendType != 4 && form.sendType != 5">
                                   <el-radio-group v-model="content.type"
                                   <el-radio-group v-model="content.type"
                                                   :disabled="formType == 3 || content.isOfficial === '1'"
                                                   :disabled="formType == 3 || content.isOfficial === '1'"
-                                                  @change="updateHtml(() => content.contentType = '1')">
+                                                  @change="updateHtml(() => content.contentType = '1',content)">
                                     <el-radio :label="1">普通</el-radio>
                                     <el-radio :label="1">普通</el-radio>
                                     <el-radio :label="2">课程</el-radio>
                                     <el-radio :label="2">课程</el-radio>
                                     <el-radio :label="4">AI触达</el-radio>
                                     <el-radio :label="4">AI触达</el-radio>
                                     <el-radio :label="5">打标签</el-radio>
                                     <el-radio :label="5">打标签</el-radio>
+                                    <el-radio :label="20">直播间</el-radio>
                                   </el-radio-group>
                                   </el-radio-group>
                                 </el-form-item>
                                 </el-form-item>
+                                <el-form-item label="直播间" v-if="content.type == 20">
+                                      <el-select  v-model="content.liveId"
+                                                  placeholder="请选择直播间" size="mini"
+                                                  @change="liveChangeContent(content)" >
+                                        <el-option
+                                          v-for="dict in liveList"
+                                          :key="dict.liveId"
+                                          :label="dict.liveName"
+                                          :value="dict.liveId"
+                                        />
+                                      </el-select>
+                                </el-form-item>
                                 <el-form-item label="课程" v-if="content.type == 2 && form.sendType != 5" required>
                                 <el-form-item label="课程" v-if="content.type == 2 && form.sendType != 5" required>
                                   <el-select :disabled="formType == 3 || form.sendType == 11 || !roles.includes('edit_sop_temp_content')" v-model="content.courseId"
                                   <el-select :disabled="formType == 3 || form.sendType == 11 || !roles.includes('edit_sop_temp_content')" v-model="content.courseId"
                                              placeholder="请选择课程" style=" margin-right: 10px;" size="mini" remote
                                              placeholder="请选择课程" style=" margin-right: 10px;" size="mini" remote
@@ -424,6 +437,7 @@
                                               <el-form-item label="直播间" >
                                               <el-form-item label="直播间" >
                                                 <el-select  v-model="setList.liveId"
                                                 <el-select  v-model="setList.liveId"
                                                             placeholder="请选择直播间" size="mini"
                                                             placeholder="请选择直播间" size="mini"
+                                                            :disabled="content.type==20"
                                                             @change="liveChange(setList)" >
                                                             @change="liveChange(setList)" >
                                                   <el-option
                                                   <el-option
                                                     v-for="dict in liveList"
                                                     v-for="dict in liveList"
@@ -435,11 +449,11 @@
                                               </el-form-item>
                                               </el-form-item>
 
 
                                               <el-form-item label="标题" prop="miniprogramTitle">
                                               <el-form-item label="标题" prop="miniprogramTitle">
-                                                <el-input v-model="setList.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
+                                                <el-input  :disabled="content.type==20" v-model="setList.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
                                                           type="textarea" @input="checkByteLength(content,setList.contentType,content.isOfficial)"   />
                                                           type="textarea" @input="checkByteLength(content,setList.contentType,content.isOfficial)"   />
                                               </el-form-item>
                                               </el-form-item>
                                               <el-form-item label="封面" prop="miniprogramPicUrl">
                                               <el-form-item label="封面" prop="miniprogramPicUrl">
-                                                <ImageUpload v-model="setList.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
+                                                <ImageUpload  :disabled="content.type==20" v-model="setList.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
                                               </el-form-item>
                                               </el-form-item>
                                               <el-form-item label="appid" prop="miniprogramAppid" v-show="false">
                                               <el-form-item label="appid" prop="miniprogramAppid" v-show="false">
                                                 <el-input v-model="setList.miniprogramAppid='wx503cf8ab31f83dd4' " disabled />
                                                 <el-input v-model="setList.miniprogramAppid='wx503cf8ab31f83dd4' " disabled />
@@ -954,6 +968,20 @@ export default {
         content.miniprogramPicUrl = '';
         content.miniprogramPicUrl = '';
       }
       }
     },
     },
+    liveChangeContent(e){
+      //循环修改当前content下面的直播间内容
+      //并且禁用直播间编辑
+      if(!!e && !!e.setting){
+        for(let i=0;i<e.setting.length;i++){
+          if(!!e.liveId){
+             this.$set(e.setting[i], 'liveId', e.liveId);
+             this.liveChange(e.setting[i]);
+          }
+          //直播间变为不可编辑
+           this.$set(e.setting[i], 'setListDisabled', true);
+        }
+      }
+    },
     handleClose(index, tag, content) {
     handleClose(index, tag, content) {
       content.addTag.splice(content.addTag.indexOf(tag), 1);
       content.addTag.splice(content.addTag.indexOf(tag), 1);
     },
     },
@@ -1314,6 +1342,14 @@ export default {
             this.$message.error("时间不能为空")
             this.$message.error("时间不能为空")
             return false;
             return false;
           }
           }
+  
+          if (data.content[j].type == 20){
+            if (data.content[j].liveId == null || data.content[j].liveId == "") {
+              this.$message.error("请选择直播间")
+              return false;
+            }
+          }
+
           if (data.content[j].type == 2) {
           if (data.content[j].type == 2) {
             if (data.content[j].courseId == null || data.content[j].courseId == "") {
             if (data.content[j].courseId == null || data.content[j].courseId == "") {
               this.$message.error("请选择课程")
               this.$message.error("请选择课程")
@@ -1785,6 +1821,24 @@ export default {
       }
       }
     },
     },
     handleContentTypeChange(content, index, countIndex, setIndex, item, fieldName, val) {
     handleContentTypeChange(content, index, countIndex, setIndex, item, fieldName, val) {
+      
+      //消息类别是直播间&&选择了发送直播间
+   
+      if(content.type == 20 && val == 12){
+          //如果选择了直播间 直接赋值
+          if(!!content.liveId){
+             this.$set(content.setting[setIndex], 'liveId', content.liveId);
+             this.liveChange(content.setting[setIndex]);
+          }
+          //直播间变为不可编辑
+          this.$set(content.setting[setIndex], 'setListDisabled', true);
+      }else{
+        //取消禁用
+        for (let i = 0; i < content.setting.length; i++) {
+            this.$set(content.setting[i], 'setListDisabled', true);
+        }
+      }
+
       //如果是链接的才上
       //如果是链接的才上
       if (content.courseId != null && content.type == 2) {
       if (content.courseId != null && content.type == 2) {
         const selectedCourse = this.courseList.find(course => parseInt(course.dictValue) === content.courseId);
         const selectedCourse = this.courseList.find(course => parseInt(course.dictValue) === content.courseId);
@@ -2120,9 +2174,11 @@ export default {
       });
       });
 
 
     },
     },
-    updateHtml(val) {
+    updateHtml(val,content) {
       val || val();
       val || val();
-
+      if(!!content  && !!content.liveId ){
+        content.liveId = null;
+      }
     },
     },
     updateAll(setIndex, list, fieldName, newVal) {
     updateAll(setIndex, list, fieldName, newVal) {
       if(this.form.sendType == 11 && setIndex == 0) {
       if(this.form.sendType == 11 && setIndex == 0) {