Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

xgb 1 день назад
Родитель
Сommit
e4b928c3d8

+ 3 - 0
.env.prod-heyantang

@@ -20,3 +20,6 @@ VUE_APP_COURSE_DEFAULT = 1
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
+
+# 直播webSocket地址
+VUE_APP_LIVE_WS_URL = wss://liveapp.yytcdta.com/ws

+ 2 - 0
.env.prod-ylrz

@@ -21,3 +21,5 @@ VUE_APP_PROJECT_FROM=ylrz
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
+# 直播webSocket地址
+VUE_APP_LIVE_WS_URL = wss://websocket.scrm.ylrzcloud.com/ws

+ 21 - 0
src/views/adv/promotionAccount/index.vue

@@ -225,6 +225,14 @@
                 clearable
               />
             </el-form-item>
+            <el-form-item v-if="form.advertiserId == 10001" label="百度账户用户名" prop="extendedField" class="slide-fade">
+              <el-input 
+                v-model="form.extendedField" 
+                placeholder="请输入百度账户用户名"
+                prefix-icon="el-icon-connection"
+                clearable
+              />
+            </el-form-item>
           </template>
         </div>
       </el-form>
@@ -286,6 +294,15 @@ export default {
         10005: 'https://probe.bjmantis.net/msp/prmt/help/api/VIVO.pdf',
         10006: 'https://probe.bjmantis.net/msp/prmt/help/api/AIQIYI.pdf'
       },
+      // 回调地址映射
+      callbackUrlUrls: {
+        10001: 'https://ad.scrm.ylrzcloud.com/callBack/baidu/getAuthCode',
+        10002: 'https://ad.scrm.ylrzcloud.com/callBack/oceanEngine/getAuthCode',
+        10003: 'https://ad.scrm.ylrzcloud.com/callBack/tencent/getAuthCode',
+        10004: 'https://ad.scrm.ylrzcloud.com/callBack/oppo/getAuthCode',
+        10005: 'https://ad.scrm.ylrzcloud.com/callBack/vivo/getAuthCode',
+        10006: 'https://ad.scrm.ylrzcloud.com/callBack/iqiyi/getAuthCode'
+      },
       // 表单校验
       rules: {
         promotionType: [
@@ -472,6 +489,10 @@ export default {
         if (advertiser) {
           this.form.advertiserName = advertiser.advertiserName;
         }
+        // 新增时给回调地址给个默认值
+        if (!this.isEdit) {
+          this.form.callbackUrl = this.callbackUrlUrls[advertiserId] || "";
+        }
       }
     },
     /** 打开API帮助文档 */

+ 104 - 50
src/views/hisStore/components/productOrder.vue

@@ -368,9 +368,9 @@
              <el-select @change="provinceChange" v-model="editAddressForm.provinceId" placeholder="请选择">
                 <el-option
                   v-for="item in province"
-                  :key="item.cityId"
-                  :label="item.name"
-                  :value="item.cityId">
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
           </el-col>
@@ -378,9 +378,9 @@
             <el-select @change="cityChange" v-model="editAddressForm.cityId" placeholder="请选择">
                 <el-option
                   v-for="item in city"
-                  :key="item.cityId"
-                  :label="item.name"
-                  :value="item.cityId">
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
           </el-col>
@@ -388,9 +388,9 @@
              <el-select @change="districtChange" v-model="editAddressForm.districtId" placeholder="请选择">
                 <el-option
                   v-for="item in district"
-                  :key="item.cityId"
-                  :label="item.name"
-                  :value="item.cityId">
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value">
                 </el-option>
               </el-select>
           </el-col>
@@ -725,67 +725,121 @@ export default {
 
     },
     districtChange(val){
-      var item=this.citys.find((item)=>{
-        return item.cityId==val&&item.level==2;
+      var item=this.district.find((item)=>{
+        return item.value==val;
       })
-      this.editAddressForm.district=item.name;
+
+      this.editAddressForm.district=item.label;
 
     },
     cityChange(val){
-      this.district=this.citys.filter(item => item.parentId===val )
+      // this.district=this.citys.filter(item => item.value===val )
       this.editAddressForm.districtId=null;
-      var item=this.citys.find((item)=>{
-        return item.cityId==val&&item.level==1;
+      var item=this.city.find((item)=>{
+        return item.value==val;
       })
-      this.editAddressForm.city=item.name;
+      console.log(item)
+      this.district = item.children;
+      this.editAddressForm.city=item.label;
 
 
     },
     provinceChange(val){
-      this.city=this.citys.filter(item => item.parentId===val )
+      // this.city=this.citys.filter(item => item.value===val )
       this.district=[];
       this.editAddressForm.cityId=null;
       this.editAddressForm.districtId=null;
       var item=this.citys.find((item)=>{
-        return item.cityId==val&&item.level==0;
+        return item.value==val;
       })
-      this.editAddressForm.province=item.name;
+      this.city = item.children;
+      this.editAddressForm.province=item.label;
     },
-    getCityList(){
-      getCitys().then(res => {
-          this.citys=res.data;
-          this.province=res.data.filter(item => item.level===0 )
-        })
+    async getCityList() {
+      try {
+        const res = await getCitys();
+        this.citys = res.data;
+        this.province = res.data.filter(item => item.pid === 0);
+        // 可选:返回数据以便链式调用
+        return res.data;
+      } catch (error) {
+        console.error('获取城市列表失败:', error);
+      }
     },
-    handleEditAddress() {
-        this.getCityList();
-        this.editAddressForm.id=this.order.id;
-        this.editAddressForm.realName=this.order.realName;
-        this.editAddressForm.userPhone=this.order.userPhone;
-        var address=this.order.userAddress.split(' ')
-        var province=this.citys.find((item)=>{
-          return item.name==address[0]&&item.level==0;
-        })
-        if(province!=null){
-          this.editAddressForm.provinceId=province.cityId;
-          this.city=this.citys.filter(item => item.parentId===province.cityId&&item.level==1 )
-        }
-        var city=this.citys.find((item)=>{
-          return item.name==address[1]&&item.level==1;
-        })
+    async handleEditAddress() {
+      // 等待城市数据加载完成
+      await this.getCityList();
 
-        if(city!=null){
-          this.editAddressForm.cityId=city.cityId;
-          this.district=this.citys.filter(item => item.parentId===city.cityId&&item.level==2 )
-        }
-        var district=this.citys.find((item)=>{
-          return item.name==address[2]&&item.level==2;
-        })
-        if(district!=null){
-          this.editAddressForm.districtId=district.cityId;
-        }
+      // 初始化表单数据
+      this.editAddressForm.id = this.order.id;
+      this.editAddressForm.realName = this.order.realName;
+      this.editAddressForm.userPhone = this.order.userPhone;
+
+      // 初始化表单中的地址字段
+      this.editAddressForm.provinceId = '';
+      this.editAddressForm.cityId = '';
+      this.editAddressForm.districtId = '';
+      this.editAddressForm.detail = '';
+
+      // 初始化级联数据
+      this.city = [];
+      this.district = [];
+
+      // 检查是否有地址数据
+      if (!this.order?.userAddress) {
+        this.editAddress.open = true;
+        return;
+      }
+
+      // 分割地址
+      const addressParts = this.order.userAddress.trim().split(/\s+/);
 
+      // 如果地址格式不正确,将整个地址作为详情
+      if (addressParts.length < 4) {
+        this.editAddressForm.detail = this.order.userAddress;
         this.editAddress.open = true;
+        return;
+      }
+
+      // 解析省份
+      const provinceName = addressParts[0];
+      const province = this.citys?.find(item => item.label === provinceName);
+
+      if (province) {
+        this.editAddressForm.provinceId = province.value;
+
+        // 获取城市列表
+        if (Array.isArray(province.children)) {
+          this.city = province.children.filter(item => item.pid === province.value);
+
+          // 解析城市
+          const cityName = addressParts[1];
+          const city = this.city.find(item => item.label === cityName);
+
+          if (city) {
+            this.editAddressForm.cityId = city.value;
+
+            // 获取区县列表
+            if (Array.isArray(city.children)) {
+              this.district = city.children.filter(item => item.pid === city.value);
+
+              // 解析区县
+              const districtName = addressParts[2];
+              const district = this.district.find(item => item.label === districtName);
+
+              if (district) {
+                this.editAddressForm.districtId = district.value;
+              }
+            }
+          }
+        }
+      }
+
+      // 详细地址是剩余部分
+      this.editAddressForm.detail = addressParts.slice(3).join(' ');
+
+      // 打开编辑对话框
+      this.editAddress.open = true;
     },
     /** 提交按钮 */
     submitEditAddressForm() {

+ 13 - 3
src/views/live/live/index.vue

@@ -304,9 +304,14 @@
           </el-radio-group>
         </el-form-item>
         <el-form-item label="直播类型" prop="liveType">
-          <el-radio-group v-model="form.liveType" :disabled="isViewOnly">
-<!--            <el-radio :label="1">直播</el-radio>-->
-            <el-radio :label="2">录播</el-radio>
+          <el-radio-group v-model="form.liveType">
+            <el-radio
+              v-for="item in liveTypeDictList"
+              :key="item.dictValue"
+              :label="parseInt(item.dictValue)"
+            >
+              {{ item.dictLabel }}
+            </el-radio>
           </el-radio-group>
         </el-form-item>
 <!--        <el-form-item label="直播达人" prop="talentId">-->
@@ -436,6 +441,7 @@ export default {
   components: { Editor,VideoUpload },
   data() {
     return {
+      liveTypeDictList: [],
       // 是否只读
       isViewOnly:false,
       baseUrl: process.env.VUE_APP_BASE_API,
@@ -535,6 +541,10 @@ export default {
   },
   created() {
     this.getList();
+    // 新增:获取直播类型字典
+    this.getDicts("live_type").then((response) => {
+      this.liveTypeDictList = response.data;
+    });
   },
   watch: {
     'form.startTime': {

+ 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-radio-group v-model="content.type"
                                                   :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="2">课程</el-radio>
                                     <el-radio :label="4">AI触达</el-radio>
                                     <el-radio :label="5">打标签</el-radio>
+                                    <el-radio :label="20">直播间</el-radio>
                                   </el-radio-group>
                                 </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-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
@@ -424,6 +437,7 @@
                                               <el-form-item label="直播间" >
                                                 <el-select  v-model="setList.liveId"
                                                             placeholder="请选择直播间" size="mini"
+                                                            :disabled="content.type==20"
                                                             @change="liveChange(setList)" >
                                                   <el-option
                                                     v-for="dict in liveList"
@@ -435,11 +449,11 @@
                                               </el-form-item>
 
                                               <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)"   />
                                               </el-form-item>
                                               <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 label="appid" prop="miniprogramAppid" v-show="false">
                                                 <el-input v-model="setList.miniprogramAppid='wx503cf8ab31f83dd4' " disabled />
@@ -954,6 +968,20 @@ export default {
         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) {
       content.addTag.splice(content.addTag.indexOf(tag), 1);
     },
@@ -1314,6 +1342,14 @@ export default {
             this.$message.error("时间不能为空")
             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].courseId == null || data.content[j].courseId == "") {
               this.$message.error("请选择课程")
@@ -1785,6 +1821,24 @@ export default {
       }
     },
     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) {
         const selectedCourse = this.courseList.find(course => parseInt(course.dictValue) === content.courseId);
@@ -2120,9 +2174,11 @@ export default {
       });
 
     },
-    updateHtml(val) {
+    updateHtml(val,content) {
       val || val();
-
+      if(!!content  && !!content.liveId ){
+        content.liveId = null;
+      }
     },
     updateAll(setIndex, list, fieldName, newVal) {
       if(this.form.sendType == 11 && setIndex == 0) {

+ 33 - 6
src/views/qw/sopUserLogsInfo/sendMsgOpenTool.vue

@@ -45,6 +45,19 @@
               :value="parseInt(dict.dictValue)"
             />
           </el-select>
+        </el-form-item>
+         <el-form-item label="选择直播间">
+             <el-select  v-model="msgForm.liveId"
+                                      placeholder="请选择直播间" size="mini"
+                                       style=" margin-right: 10px;"
+                                      @change="liveChangemsgForm(msgForm.liveId)" clearable >
+                            <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="规则" prop="setting" v-if="msgForm.draftStrategy==1"  >
           <div v-for="(item, index) in setting" :key="index" style="background-color: #fdfdfd; border: 1px solid #e6e6e6; margin-bottom: 20px;">
@@ -92,7 +105,7 @@
                         <el-form-item label="直播间" >
                           <el-select  v-model="item.liveId"
                                       placeholder="请选择直播间" size="mini"
-                                      @change="liveChange(item)" >
+                                      @change="liveChange(item)" :disabled="liveDisabled()">
                             <el-option
                               v-for="dict in liveList"
                               :key="dict.liveId"
@@ -103,11 +116,11 @@
                         </el-form-item>
 
                         <el-form-item label="标题" prop="miniprogramTitle">
-                          <el-input v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
+                          <el-input :disabled="liveDisabled()" v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
                                     type="textarea"   />
                         </el-form-item>
                         <el-form-item label="封面" prop="miniprogramPicUrl">
-                          <ImageUpload v-model="item.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
+                          <ImageUpload :disabled="liveDisabled()" v-model="item.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
                         </el-form-item>
                         <el-form-item label="appid" prop="miniprogramAppid" v-show="false">
                           <el-input v-model="item.miniprogramAppid='wx503cf8ab31f83dd4' " disabled />
@@ -474,6 +487,7 @@ export default {
       form: {},
       setting:[{contentType:'1', value: '',}],
       msgForm:{
+        liveId:null,
         videoId:null,
         courseId:null,
         courseType:null,
@@ -880,6 +894,7 @@ export default {
 
     resetSendMsgSop() {
       this.msgForm = {
+        liveId:null,
         videoId:null,
         courseId:null,
         courseType:null,
@@ -928,11 +943,11 @@ export default {
             if (this.setting.length <= 0) {
               return this.$message.error("请添加规则")
             }
-            if ((this.msgForm.courseId===null || this.msgForm.courseId==='') && !hasLiveSetting){
+            if ((this.msgForm.courseId===null || this.msgForm.courseId==='') && !hasLiveSetting && this.msgForm.liveId===null){
               return this.$message.error("课程不能为空")
             }
 
-            if ((this.msgForm.videoId===null || this.msgForm.videoId==='') && !hasLiveSetting){
+            if ((this.msgForm.videoId===null || this.msgForm.videoId==='') && !hasLiveSetting && this.msgForm.liveId===null){
               return this.$message.error("课节不能为空")
             }
 
@@ -1017,7 +1032,19 @@ export default {
       this.sendMsgOpen.open = false;
       this.resetSendMsgSop();
     },
-
+    liveChangemsgForm(liveId){
+      console.log(liveId);
+      console.log(this.setting);
+      if(!!liveId){
+        for(let i =0;i<this.setting.length;i++){
+           this.$set(this.setting[i], 'liveId', liveId);
+           this.liveChange(this.setting[i]);
+        }
+      }
+    },
+    liveDisabled(){
+      return !!this.msgForm && !!this.msgForm.liveId ;
+    }
   }
 };
 </script>

+ 61 - 5
src/views/qw/sopUserLogsInfo/sopUserLogsInfoDetails.vue

@@ -266,6 +266,28 @@
               :value="parseInt(dict.dictValue)"
             />
           </el-select>
+           
+        </el-form-item>
+        <el-form-item label="选择直播间">
+             <el-select  v-model="msgForm.liveId"
+                                      placeholder="请选择直播间" size="mini"
+                                       style=" margin-right: 10px;"
+                                      @change="liveChangemsgForm(msgForm.liveId)" clearable >
+                            <el-option
+                              v-for="dict in liveList"
+                              :key="dict.liveId"
+                              :label="dict.liveName"
+                              :value="dict.liveId"
+                            />
+              </el-select> 
+            <!-- <el-select  v-model="msgForm.liveMsgType" placeholder="请选择直播间消息类型" size="mini" style=" margin-right: 10px;" clearable>
+            <el-option
+              v-for="dict in sysFsSopWatchStatus"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="parseInt(dict.dictValue)"
+            />
+          </el-select> -->
         </el-form-item>
         <el-form-item label="规则" prop="setting"  >
           <div v-for="(item, index) in setting" :key="index" style="background-color: #fdfdfd; border: 1px solid #e6e6e6; margin-bottom: 20px;">
@@ -390,7 +412,7 @@
                         <el-form-item label="直播间" >
                           <el-select  v-model="item.liveId"
                                       placeholder="请选择直播间" size="mini"
-                                      @change="liveChange(item)" >
+                                      @change="liveChange(item)" :disabled="liveDisabled()" >
                             <el-option
                               v-for="dict in liveList"
                               :key="dict.liveId"
@@ -401,11 +423,11 @@
                         </el-form-item>
 
                         <el-form-item label="标题" prop="miniprogramTitle">
-                          <el-input v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
+                          <el-input :disabled="liveDisabled()" v-model="item.miniprogramTitle" placeholder="请输入小程序消息标题,最长为64字节" :rows="2" maxlength="64"
                                     type="textarea"   />
                         </el-form-item>
                         <el-form-item label="封面" prop="miniprogramPicUrl">
-                          <ImageUpload v-model="item.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
+                          <ImageUpload :disabled="liveDisabled()" v-model="item.miniprogramPicUrl" type="image" :num="10" :width="150" :height="150" />
                         </el-form-item>
                         <el-form-item label="appid" prop="miniprogramAppid" v-show="false">
                           <el-input v-model="item.miniprogramAppid='wx503cf8ab31f83dd4' " disabled />
@@ -715,6 +737,8 @@ export default {
       updateLogsInfoFrom:{},
       setting:[{contentType:'1', value: '',}],
       msgForm:{
+        liveId:null,
+        // liveMsgType:null,
         videoId:null,
         courseId:null,
         courseType:null,
@@ -1297,6 +1321,8 @@ export default {
 
     resetSendMsgSop() {
       this.msgForm = {
+        liveId:null,
+        // liveMsgType:null,
         videoId:null,
         courseId:null,
         courseType:null,
@@ -1374,14 +1400,31 @@ export default {
           this.msgForm.corpId=this.queryParams.corpIdParam;
           this.msgForm.filterMode=this.queryParams.filterMode;
 
+          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") {
+            if(!!hasLiveSetting){
+               return this.$message.error("发送直播间只能一次只能发送一条");
+            }
+            hasLiveSetting = true;
+           }
+          }
+          if(!!hasLiveSetting && (this.msgForm.courseId!=null && this.msgForm.courseId!='')){
+              return this.$message.error("直播间不能选取课程");
+          }
+          if(!!hasLiveSetting && (this.msgForm.videoId!=null && this.msgForm.videoId!='')){
+              return this.$message.error("直播间不能选取课节");
+          }
+
           if (this.setting.length <= 0) {
             return this.$message.error("请添加规则")
           }
-          if (this.msgForm.courseId===null || this.msgForm.courseId===''){
+          if ((this.msgForm.courseId===null || this.msgForm.courseId==='')&& !hasLiveSetting && this.msgForm.liveId===null){
             return this.$message.error("课程不能为空")
           }
 
-          if (this.msgForm.videoId===null || this.msgForm.videoId===''){
+          if ((this.msgForm.videoId===null || this.msgForm.videoId==='') && !hasLiveSetting && this.msgForm.liveId===null){
             return this.$message.error("课节不能为空")
           }
 
@@ -1544,6 +1587,19 @@ export default {
       this.videoNumOptions.open = false;
 
     },
+    liveChangemsgForm(liveId){
+      console.log(liveId);
+      console.log(this.setting);
+      if(!!liveId){
+        for(let i =0;i<this.setting.length;i++){
+           this.$set(this.setting[i], 'liveId', liveId);
+           this.liveChange(this.setting[i]);
+        }
+      }
+    },
+    liveDisabled(){
+      return !!this.msgForm && !!this.msgForm.liveId ;
+    }
   }
 };
 </script>