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

手机号授权和素材分享SOP,一键群发

wjj 3 недель назад
Родитель
Сommit
5b7326485d

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

@@ -181,6 +181,8 @@
                 <span v-if="item.contentType == 4"><el-button size="mini" type="primary" @click="generateShortLink(item)" style="margin-left: 330px;">生成短链</el-button></span>
                 <span v-if="item.contentType == 14">授权红包</span>
                 <span v-if="item.contentType == 15">打卡文章</span>
+                <span v-if="item.contentType == 16">素材分享</span>
+                <span v-if="item.contentType == 17">手机授权</span>
                 <span v-if="item.contentType == 21">发看课短信</span>
               </div>
               <div v-if="item.sendStatus">
@@ -214,7 +216,7 @@
                 </div>
               </div>
             </div>
-            <div v-if="item.contentType == 4 || item.contentType == 10 || item.contentType == 14 || item.contentType == 15" class="message-style">
+            <div v-if="item.contentType == 4 || item.contentType == 10 || item.contentType == 14 || item.contentType == 15 || item.contentType == 16 || item.contentType == 17"  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

+ 35 - 0
src/views/qw/sopTemp/updateSopTemp.vue

@@ -552,6 +552,25 @@
                                              </el-card>
                                           </div> 
 
+                                          <div v-if="setList.contentType == 16 || setList.contentType == 17">
+                                             <el-card class="box-card">
+                                               <el-form-item label="素材" >
+                                                 <el-select :disabled="formType == 3"    v-model="setList.shareMaterialId"
+                                                             placeholder="请选择素材" size="mini"
+                                                             @change="getShareMaterialImgUrl(setList)" >
+                                                   <el-option
+                                                     v-for="dict in shareMaterialList"
+                                                     :key="dict.dictValue"
+                                                     :label="dict.dictLabel"
+                                                     :value="dict.dictValue"
+                                                   />
+                                                 </el-select>
+                                               </el-form-item>
+                                             </el-card>
+                                          </div> 
+
+
+
                                           <div v-if="setList.contentType == 21">
                                             <el-card class="box-card">
                                               <el-form-item label="短信模板" >
@@ -783,6 +802,7 @@ import {
 import { getSmsTempList } from "@/api/company/companySmsTemp";
 import { listPacket } from "@/api/qw/packet";
 import { secondNameOptionList } from "@/api/qw/signArticle";
+import { shareMaterialOptions } from "@/api/his/shareMaterial";
 
 export default {
   name: "updateSopTemp",
@@ -790,6 +810,8 @@ export default {
   data() {
     return {
 
+      shareMaterialList: [],
+
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -896,6 +918,9 @@ export default {
     };
   },
   created() {
+    shareMaterialOptions().then(res=>{
+      this.shareMaterialList = res.data;
+    });
     secondNameOptionList().then(res=>{
       this.signArticleList = res.data;
     });
@@ -952,6 +977,16 @@ export default {
       }
     },
 
+    getShareMaterialImgUrl(content){
+      const selectedShareMaterial = this.shareMaterialList.find(item => item.dictValue == content.shareMaterialId);
+      if (selectedSignArticle) {
+        content.shareMaterialUrl = selectedShareMaterial.dictImgUrl; // 自动填充标题
+      } else {
+        // 若未找到对应直播间,清空标题和封面(可选)
+        content.shareMaterialUrl = null;
+      }
+    },
+
     getRedPacketStatus(content){
       const selectedRedPacket = this.packetList.find(item => item.id === content.redPacketId);
       if (selectedRedPacket) {

+ 32 - 0
src/views/qw/sopUserLogsInfo/sendMsgOpenTool.vue

@@ -188,6 +188,23 @@
                                                </el-form-item>
                                              </el-card>
                     </div> 
+                    <div v-if="item.contentType == 16 || item.contentType == 17"> 
+
+                                             <el-card class="box-card">
+                                               <el-form-item label="素材" >
+                                                 <el-select :disabled="formType == 3"    v-model="item.shareMaterialId"
+                                                             placeholder="请选择素材" size="mini"
+                                                             @change="getShareMaterialImgUrl(item)" >
+                                                   <el-option
+                                                     v-for="dict in shareMaterialList"
+                                                     :key="dict.dictValue"
+                                                     :label="dict.dictLabel"
+                                                     :value="dict.dictValue"
+                                                   />
+                                                 </el-select>
+                                               </el-form-item>
+                                             </el-card>
+                                          </div> 
                     <div v-if="item.contentType == 21">
                       <el-card class="box-card">
                         <el-form-item label="短信模板">
@@ -269,12 +286,14 @@ import userVideo from "@/views/qw/userVideo/userVideo";
 import { getSmsTempList } from "@/api/company/companySmsTemp";
 import { listPacket } from "@/api/qw/packet";
 import { secondNameOptionList } from "@/api/qw/signArticle";
+import { shareMaterialOptions } from "@/api/his/shareMaterial";
 
 export default {
   name: "sendMsgOpenTool",
   components: { ImageUpload, userVideo },
   data() {
     return {
+      shareMaterialList: [],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -378,6 +397,9 @@ export default {
   },
 
   created() {
+    shareMaterialOptions().then(res=>{
+      this.shareMaterialList = res.data;
+    });
     secondNameOptionList().then(res=>{
       this.signArticleList = res.data;
     });
@@ -404,6 +426,16 @@ export default {
         content.signArticleImgUrl = null;
       }
     },
+
+    getShareMaterialImgUrl(content){
+      const selectedShareMaterial = this.shareMaterialList.find(item => item.dictValue == content.shareMaterialId);
+      if (selectedShareMaterial) {
+        content.shareMaterialUrl = selectedShareMaterial.dictImgUrl; // 自动填充标题
+      } else {
+        // 若未找到对应直播间,清空标题和封面(可选)
+        content.shareMaterialUrl = null;
+      }
+    },
     getRedPacketStatus(content){
       const selectedRedPacket = this.packetList.find(item => item.id === content.redPacketId);
       if (selectedRedPacket) {

+ 30 - 1
src/views/qw/sopUserLogsInfo/sopUserLogsInfoDetails.vue

@@ -455,7 +455,22 @@
                         </el-form-item>
                       </el-card>
                     </div> 
-
+                    <div v-if="item.contentType == 16 || item.contentType == 17">
+                                             <el-card class="box-card">
+                                               <el-form-item label="素材" >
+                                                 <el-select :disabled="formType == 3"    v-model="item.shareMaterialId"
+                                                             placeholder="请选择素材" size="mini"
+                                                             @change="getShareMaterialImgUrl(item)" >
+                                                   <el-option
+                                                     v-for="dict in shareMaterialList"
+                                                     :key="dict.dictValue"
+                                                     :label="dict.dictLabel"
+                                                     :value="dict.dictValue"
+                                                   />
+                                                 </el-select>
+                                               </el-form-item>
+                                             </el-card>
+                                          </div>
                     <div v-if="item.contentType == 21">
                       <el-card class="box-card">
                         <el-form-item label="短信模板" >
@@ -609,12 +624,14 @@ import PaginationMore from "../../../components/PaginationMore/index.vue";
 import { getSmsTempList } from "@/api/company/companySmsTemp";
 import { listPacket } from "@/api/qw/packet";
 import { secondNameOptionList } from "@/api/qw/signArticle";
+import { shareMaterialOptions } from "@/api/his/shareMaterial";
 
 export default {
   name: "sopUserLogsInfoDetails",
   components: {PaginationMore, userVideo, ImageUpload},
   data() {
     return {
+      shareMaterialList: [],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -736,6 +753,9 @@ export default {
   },
 
   created() {
+    shareMaterialOptions().then(res=>{
+      this.shareMaterialList = res.data;
+    });
     secondNameOptionList().then(res=>{
       this.signArticleList = res.data;
     });
@@ -773,6 +793,15 @@ export default {
         content.signArticleImgUrl = null;
       }
     },
+    getShareMaterialImgUrl(content){
+      const selectedShareMaterial = this.shareMaterialList.find(item => item.dictValue == content.shareMaterialId);
+      if (selectedShareMaterial) {
+        content.shareMaterialUrl = selectedShareMaterial.dictImgUrl; // 自动填充标题
+      } else {
+        // 若未找到对应直播间,清空标题和封面(可选)
+        content.shareMaterialUrl = null;
+      }
+    },
     getRedPacketStatus(content){
       const selectedRedPacket = this.packetList.find(item => item.id === content.redPacketId);
       if (selectedRedPacket) {