瀏覽代碼

一键群发可发视频号

yfh 3 天之前
父節點
當前提交
2360ab16a3

+ 110 - 2
src/views/course/courseFinishTemp/index.vue

@@ -270,7 +270,44 @@
                         @input="handleInputVideoText(item.value,item)"/>
                     </div>
                     <div v-if="item.contentType == 8">
+                      <el-button type="primary"
+                                 style="margin-bottom: 1%"
+                                 @click="hanldeSelectVideoNum(setting,index)">
+                        选择视频号
+                      </el-button>
+                      <el-card class="box-card" v-if="item.coverUrl">
+                        <el-form-item label="封面标题:" label-width="100px">
+                          <el-input v-model="item.nickname"
+                                    style="width: 90%;margin-bottom: 1%" disabled/>
+                        </el-form-item>
+                        <el-form-item label="头像:" label-width="100px">
+                          <el-image
+                            v-if="item.avatar != null"
+                            :src="item.avatar"
+                            :preview-src-list="[item.avatar]"
+                            :style="{ width: '50px', height: '50px' }"
+                          ></el-image>
+                        </el-form-item>
+                        <el-form-item label="封面:" label-width="100px">
+                          <el-image
+                            v-if="item.coverUrl != null"
+                            :src="item.coverUrl"
+                            :preview-src-list="[item.coverUrl]"
+                            :style="{ width: '200px', height: '200px' }"
+                          ></el-image>
 
+                        </el-form-item>
+                        <el-form-item label="简介:" label-width="100px">
+                          <el-input type="textarea" :rows="3"
+                                    v-model="item.desc"
+                                    style="width: 90%;margin-top: 1%;" disabled/>
+                        </el-form-item>
+                        <el-form-item label="视频地址:" label-width="100px"
+                                      style="margin-top: 1%">
+                          <el-input v-model="item.url"
+                                    style="width: 90%;" disabled/>
+                        </el-form-item>
+                      </el-card>
                     </div>
 
                   </el-form-item>
@@ -370,7 +407,44 @@
                         @input="handleInputVideoText(item.value,item)"/>
                     </div>
                     <div v-if="item.contentType == 8">
+                      <el-button type="primary"
+                                 style="margin-bottom: 1%"
+                                 @click="hanldeSelectVideoNum(setting,index)">
+                        选择视频号
+                      </el-button>
+                      <el-card class="box-card" v-if="item.coverUrl">
+                        <el-form-item label="封面标题:" label-width="100px">
+                          <el-input v-model="item.nickname"
+                                    style="width: 90%;margin-bottom: 1%" disabled/>
+                        </el-form-item>
+                        <el-form-item label="头像:" label-width="100px">
+                          <el-image
+                            v-if="item.avatar != null"
+                            :src="item.avatar"
+                            :preview-src-list="[item.avatar]"
+                            :style="{ width: '50px', height: '50px' }"
+                          ></el-image>
+                        </el-form-item>
+                        <el-form-item label="封面:" label-width="100px">
+                          <el-image
+                            v-if="item.coverUrl != null"
+                            :src="item.coverUrl"
+                            :preview-src-list="[item.coverUrl]"
+                            :style="{ width: '200px', height: '200px' }"
+                          ></el-image>
 
+                        </el-form-item>
+                        <el-form-item label="简介:" label-width="100px">
+                          <el-input type="textarea" :rows="3"
+                                    v-model="item.desc"
+                                    style="width: 90%;margin-top: 1%;" disabled/>
+                        </el-form-item>
+                        <el-form-item label="视频地址:" label-width="100px"
+                                      style="margin-top: 1%">
+                          <el-input v-model="item.url"
+                                    style="width: 90%;" disabled/>
+                        </el-form-item>
+                      </el-card>
                     </div>
 
                   </el-form-item>
@@ -414,6 +488,9 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
+      <userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
+    </el-dialog>
   </div>
 </template>
 
@@ -430,12 +507,18 @@ import { getUserList } from '@/api/company/companyUser'
 import { courseList, videoList } from '@/api/qw/sop'
 import ImageUpload from '@/views/qw/sop/ImageUpload.vue'
 import Tip from "../../../components/Tip/index.vue";
-
+import userVideo from "@/views/qw/userVideo/userVideo.vue";
 export default {
   name: "CourseFinishTemp",
-  components: {Tip, ImageUpload},
+  components: {Tip, ImageUpload,userVideo},
   data() {
     return {
+      videoNumOptions: {
+        title: '选择视频号',
+        open: false,
+        content: null,
+        contentIndex: null,
+      },
       //上传语音的遮罩层
       voiceLoading: false,
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS2",
@@ -531,6 +614,25 @@ export default {
     this.getList();
   },
   methods: {
+
+    qwUserVideoResult(val) {
+
+      // 根据选中的内容,将返回的数据更新到相应的表单项
+      const content = this.videoNumOptions.content;
+      const setList = content[this.videoNumOptions.contentIndex];
+      setList.nickname = val.nickname;
+      setList.avatar = val.avatar;
+      setList.coverUrl = val.coverUrl;
+      setList.thumbUrl = val.thumbUrl;
+      setList.desc = val.desc;
+      setList.url = val.url;
+      setList.extras = val.extras;
+      setList.videoId = val.id;
+      console.info(setList)
+
+      this.videoNumOptions.open = false;
+
+    },
     courseChange() {
 
       videoList(this.form.courseId).then(response => {
@@ -673,6 +775,12 @@ export default {
       this.open = true;
       this.title = "添加完课模板";
     },
+    //选择视频号
+    hanldeSelectVideoNum(content, index) {
+      this.videoNumOptions.content = content;
+      this.videoNumOptions.contentIndex = index;
+      this.videoNumOptions.open = true;
+    },
 
     /**
      * 查看完课模板

+ 110 - 1
src/views/course/courseFinishTempParent/index.vue

@@ -224,7 +224,44 @@
                         @input="handleInputVideoText(item.value,item)"/>
                     </div>
                     <div v-if="item.contentType == 8">
+                      <el-button type="primary"
+                                 style="margin-bottom: 1%"
+                                 @click="hanldeSelectVideoNum(setting,index)">
+                        选择视频号
+                      </el-button>
+                      <el-card class="box-card" v-if="item.coverUrl">
+                        <el-form-item label="封面标题:" label-width="100px">
+                          <el-input v-model="item.nickname"
+                                    style="width: 90%;margin-bottom: 1%" disabled/>
+                        </el-form-item>
+                        <el-form-item label="头像:" label-width="100px">
+                          <el-image
+                            v-if="item.avatar != null"
+                            :src="item.avatar"
+                            :preview-src-list="[item.avatar]"
+                            :style="{ width: '50px', height: '50px' }"
+                          ></el-image>
+                        </el-form-item>
+                        <el-form-item label="封面:" label-width="100px">
+                          <el-image
+                            v-if="item.coverUrl != null"
+                            :src="item.coverUrl"
+                            :preview-src-list="[item.coverUrl]"
+                            :style="{ width: '200px', height: '200px' }"
+                          ></el-image>
 
+                        </el-form-item>
+                        <el-form-item label="简介:" label-width="100px">
+                          <el-input type="textarea" :rows="3"
+                                    v-model="item.desc"
+                                    style="width: 90%;margin-top: 1%;" disabled/>
+                        </el-form-item>
+                        <el-form-item label="视频地址:" label-width="100px"
+                                      style="margin-top: 1%">
+                          <el-input v-model="item.url"
+                                    style="width: 90%;" disabled/>
+                        </el-form-item>
+                      </el-card>
                     </div>
 
                   </el-form-item>
@@ -324,7 +361,44 @@
                         @input="handleInputVideoText(item.value,item)"/>
                     </div>
                     <div v-if="item.contentType == 8">
+                      <el-button type="primary"
+                                 style="margin-bottom: 1%"
+                                 @click="hanldeSelectVideoNum(setting,index)">
+                        选择视频号
+                      </el-button>
+                      <el-card class="box-card" v-if="item.coverUrl">
+                        <el-form-item label="封面标题:" label-width="100px">
+                          <el-input v-model="item.nickname"
+                                    style="width: 90%;margin-bottom: 1%" disabled/>
+                        </el-form-item>
+                        <el-form-item label="头像:" label-width="100px">
+                          <el-image
+                            v-if="item.avatar != null"
+                            :src="item.avatar"
+                            :preview-src-list="[item.avatar]"
+                            :style="{ width: '50px', height: '50px' }"
+                          ></el-image>
+                        </el-form-item>
+                        <el-form-item label="封面:" label-width="100px">
+                          <el-image
+                            v-if="item.coverUrl != null"
+                            :src="item.coverUrl"
+                            :preview-src-list="[item.coverUrl]"
+                            :style="{ width: '200px', height: '200px' }"
+                          ></el-image>
 
+                        </el-form-item>
+                        <el-form-item label="简介:" label-width="100px">
+                          <el-input type="textarea" :rows="3"
+                                    v-model="item.desc"
+                                    style="width: 90%;margin-top: 1%;" disabled/>
+                        </el-form-item>
+                        <el-form-item label="视频地址:" label-width="100px"
+                                      style="margin-top: 1%">
+                          <el-input v-model="item.url"
+                                    style="width: 90%;" disabled/>
+                        </el-form-item>
+                      </el-card>
                     </div>
 
                   </el-form-item>
@@ -367,6 +441,9 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    <el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
+      <userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
+    </el-dialog>
   </div>
 </template>
 
@@ -375,13 +452,20 @@ import { listCourseFinishTempParent, getCourseFinishTempParent, delCourseFinishT
 import {courseList} from '@/api/qw/sop'
 import ImageUpload from '@/views/qw/sop/ImageUpload.vue'
 import { getUserList } from '@/api/company/companyUser'
+import userVideo from "@/views/qw/userVideo/userVideo.vue";
 
 
 export default {
   name: "CourseFinishTempParent",
-  components: { ImageUpload },
+  components: { ImageUpload ,userVideo},
   data() {
     return {
+      videoNumOptions: {
+        title: '选择视频号',
+        open: false,
+        content: null,
+        contentIndex: null,
+      },
       voiceLoading: false,
       uploadUrl: process.env.VUE_APP_BASE_API + "/common/uploadOSS2",
       uploadUrlByVoice: process.env.VUE_APP_BASE_API + "/common/uploadOSSByHOOKVoice",
@@ -514,6 +598,31 @@ export default {
       this.open = true;
       this.title = "添加完课模板";
     },
+    //选择视频号
+    hanldeSelectVideoNum(content, index) {
+      this.videoNumOptions.content = content;
+      this.videoNumOptions.contentIndex = index;
+      this.videoNumOptions.open = true;
+    },
+
+    qwUserVideoResult(val) {
+
+      // 根据选中的内容,将返回的数据更新到相应的表单项
+      const content = this.videoNumOptions.content;
+      const setList = content[this.videoNumOptions.contentIndex];
+      setList.nickname = val.nickname;
+      setList.avatar = val.avatar;
+      setList.coverUrl = val.coverUrl;
+      setList.thumbUrl = val.thumbUrl;
+      setList.desc = val.desc;
+      setList.url = val.url;
+      setList.extras = val.extras;
+      setList.videoId = val.id;
+      console.info(setList)
+
+      this.videoNumOptions.open = false;
+
+    },
     /** 修改按钮操作 */
     handleUpdate(row) {
       this.reset();

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

@@ -314,7 +314,11 @@
       :limit.sync="queryParams.pageSize"
       @pagination="getList"
     />
+    <el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
+      <userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
+    </el-dialog>
   </div>
+
 </template>
 
 <script>
@@ -327,11 +331,12 @@ import {
   generateShortLink
 } from '../../../api/qw/sopLogs'
 import {delSopUserLogsInfo} from "@/api/qw/sopUserLogsInfo";
+import userVideo from "@/views/qw/userVideo/userVideo";
 
 export default {
   name: "sopLogsList",
   props:{
-    rowDetailFrom:{},
+    rowDetailFrom:{userVideo},
   },
 
   watch:{
@@ -345,6 +350,12 @@ export default {
   },
   data() {
     return {
+      videoNumOptions: {
+        title: '选择视频号',
+        open: false,
+        content: null,
+        contentIndex: null,
+      },
       copyText:"",
       shortLoading:false,
       shortLinkDialogVisible:false,
@@ -432,6 +443,25 @@ export default {
 
   },
   methods: {
+
+    qwUserVideoResult(val) {
+
+      // 根据选中的内容,将返回的数据更新到相应的表单项
+      const content = this.videoNumOptions.content;
+      const setList = content[this.videoNumOptions.contentIndex];
+      setList.nickname = val.nickname;
+      setList.avatar = val.avatar;
+      setList.coverUrl = val.coverUrl;
+      setList.thumbUrl = val.thumbUrl;
+      setList.desc = val.desc;
+      setList.url = val.url;
+      setList.extras = val.extras;
+      setList.videoId = val.id;
+      console.info(setList)
+
+      this.videoNumOptions.open = false;
+
+    },
     /** 查询企业微信SOP  定时任务列表 */
     getList(val) {
       this.queryParams.sopId = val.id || this.rowDetailFrom.id;

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

@@ -164,7 +164,44 @@
                           @input="handleInputVideoText(item.value,item)"/>
                       </div>
                       <div v-if="item.contentType == 8">
+                        <el-button type="primary"
+                                   style="margin-bottom: 1%"
+                                   @click="hanldeSelectVideoNum(setting,index)">
+                          选择视频号
+                        </el-button>
+                        <el-card class="box-card" v-if="item.coverUrl">
+                          <el-form-item label="封面标题:" label-width="100px">
+                            <el-input v-model="item.nickname"
+                                      style="width: 90%;margin-bottom: 1%" disabled/>
+                          </el-form-item>
+                          <el-form-item label="头像:" label-width="100px">
+                            <el-image
+                              v-if="item.avatar != null"
+                              :src="item.avatar"
+                              :preview-src-list="[item.avatar]"
+                              :style="{ width: '50px', height: '50px' }"
+                            ></el-image>
+                          </el-form-item>
+                          <el-form-item label="封面:" label-width="100px">
+                            <el-image
+                              v-if="item.coverUrl != null"
+                              :src="item.coverUrl"
+                              :preview-src-list="[item.coverUrl]"
+                              :style="{ width: '200px', height: '200px' }"
+                            ></el-image>
 
+                          </el-form-item>
+                          <el-form-item label="简介:" label-width="100px">
+                            <el-input type="textarea" :rows="3"
+                                      v-model="item.desc"
+                                      style="width: 90%;margin-top: 1%;" disabled/>
+                          </el-form-item>
+                          <el-form-item label="视频地址:" label-width="100px"
+                                        style="margin-top: 1%">
+                            <el-input v-model="item.url"
+                                      style="width: 90%;" disabled/>
+                          </el-form-item>
+                        </el-card>
                       </div>
 
                     </el-form-item>
@@ -226,6 +263,9 @@
           <el-button @click="cancelMsgForm">取 消</el-button>
         </div>
     </el-dialog>
+    <el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
+      <userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
+    </el-dialog>
   </div>
 </template>
 
@@ -233,13 +273,20 @@
 import { sendMsgSopType,} from "../../../api/qw/sopUserLogsInfo";
 import ImageUpload from "@/views/qw/sop/ImageUpload.vue";
 import {courseList, videoList} from "@/api/qw/sop";
+import userVideo from "@/views/qw/userVideo/userVideo";
 
 
 export default {
   name: "sendMsgOpenTool",
-  components: {ImageUpload},
+  components: {ImageUpload,userVideo},
   data() {
     return {
+      videoNumOptions: {
+        title: '选择视频号',
+        open: false,
+        content: null,
+        contentIndex: null,
+      },
       //上传语音的遮罩层
       voiceLoading :false,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
@@ -341,6 +388,24 @@ export default {
   },
   methods: {
 
+    qwUserVideoResult(val) {
+
+      // 根据选中的内容,将返回的数据更新到相应的表单项
+      const content = this.videoNumOptions.content;
+      const setList = content[this.videoNumOptions.contentIndex];
+      setList.nickname = val.nickname;
+      setList.avatar = val.avatar;
+      setList.coverUrl = val.coverUrl;
+      setList.thumbUrl = val.thumbUrl;
+      setList.desc = val.desc;
+      setList.url = val.url;
+      setList.extras = val.extras;
+      setList.videoId = val.id;
+      console.info(setList)
+
+      this.videoNumOptions.open = false;
+
+    },
     oneClickGroupSending(val,type,corpId){
 
       this.sendMsgOpen.open= true;
@@ -452,6 +517,12 @@ export default {
       this.$set(content, 'value', filteredValue);
 
     },
+    //选择视频号
+    hanldeSelectVideoNum(content, index) {
+      this.videoNumOptions.content = content;
+      this.videoNumOptions.contentIndex = index;
+      this.videoNumOptions.open = true;
+    },
 
     delSetList(index){
       this.setting.splice(index,1)

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

@@ -164,7 +164,44 @@
                           @input="handleInputVideoText(item.value,item)"/>
                       </div>
                       <div v-if="item.contentType == 8">
+                        <el-button type="primary"
+                                   style="margin-bottom: 1%"
+                                   @click="hanldeSelectVideoNum(setting,index)">
+                          选择视频号
+                        </el-button>
+                        <el-card class="box-card" v-if="item.coverUrl">
+                          <el-form-item label="封面标题:" label-width="100px">
+                            <el-input v-model="item.nickname"
+                                      style="width: 90%;margin-bottom: 1%" disabled/>
+                          </el-form-item>
+                          <el-form-item label="头像:" label-width="100px">
+                            <el-image
+                              v-if="item.avatar != null"
+                              :src="item.avatar"
+                              :preview-src-list="[item.avatar]"
+                              :style="{ width: '50px', height: '50px' }"
+                            ></el-image>
+                          </el-form-item>
+                          <el-form-item label="封面:" label-width="100px">
+                            <el-image
+                              v-if="item.coverUrl != null"
+                              :src="item.coverUrl"
+                              :preview-src-list="[item.coverUrl]"
+                              :style="{ width: '200px', height: '200px' }"
+                            ></el-image>
 
+                          </el-form-item>
+                          <el-form-item label="简介:" label-width="100px">
+                            <el-input type="textarea" :rows="3"
+                                      v-model="item.desc"
+                                      style="width: 90%;margin-top: 1%;" disabled/>
+                          </el-form-item>
+                          <el-form-item label="视频地址:" label-width="100px"
+                                        style="margin-top: 1%">
+                            <el-input v-model="item.url"
+                                      style="width: 90%;" disabled/>
+                          </el-form-item>
+                        </el-card>
                       </div>
 
                     </el-form-item>
@@ -226,6 +263,9 @@
           <el-button @click="cancelMsgForm">取 消</el-button>
         </div>
     </el-dialog>
+    <el-dialog :title="videoNumOptions.title" :visible.sync="videoNumOptions.open" width="1500px" append-to-body>
+      <userVideo ref="QwUserVideo" @videoResult="qwUserVideoResult"></userVideo>
+    </el-dialog>
   </div>
 </template>
 
@@ -233,13 +273,20 @@
 import { sendMsg,} from "../../../api/qw/sopUserLogsInfo";
 import ImageUpload from "@/views/qw/sop/ImageUpload.vue";
 import {courseList, videoList} from "@/api/qw/sop";
+import userVideo from "@/views/qw/userVideo/userVideo";
 
 
 export default {
   name: "sendMsgSopOpenTool",
-  components: {ImageUpload},
+  components: {ImageUpload,userVideo},
   data() {
     return {
+      videoNumOptions: {
+        title: '选择视频号',
+        open: false,
+        content: null,
+        contentIndex: null,
+      },
       //上传语音的遮罩层
       voiceLoading :false,
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
@@ -342,6 +389,24 @@ export default {
   },
   methods: {
 
+    qwUserVideoResult(val) {
+
+      // 根据选中的内容,将返回的数据更新到相应的表单项
+      const content = this.videoNumOptions.content;
+      const setList = content[this.videoNumOptions.contentIndex];
+      setList.nickname = val.nickname;
+      setList.avatar = val.avatar;
+      setList.coverUrl = val.coverUrl;
+      setList.thumbUrl = val.thumbUrl;
+      setList.desc = val.desc;
+      setList.url = val.url;
+      setList.extras = val.extras;
+      setList.videoId = val.id;
+      console.info(setList)
+
+      this.videoNumOptions.open = false;
+
+    },
     oneClickGroupSending(val,type,corpId){
 
       this.sendMsgOpen.open= true;
@@ -467,6 +532,12 @@ export default {
 
     },
 
+    //选择视频号
+    hanldeSelectVideoNum(content, index) {
+      this.videoNumOptions.content = content;
+      this.videoNumOptions.contentIndex = index;
+      this.videoNumOptions.open = true;
+    },
 
     handleKeydown(event, index) {
       const item = this.setting[index];