Bläddra i källkod

添加生成群短链

吴树波 22 timmar sedan
förälder
incheckning
4874901e27
2 ändrade filer med 326 tillägg och 222 borttagningar
  1. 8 0
      src/api/qw/sopUserLogs.js
  2. 318 222
      src/views/qw/sopUserLogs/sopUserLogsSchedule.vue

+ 8 - 0
src/api/qw/sopUserLogs.js

@@ -60,6 +60,14 @@ export function repairSopUserLogs(data) {
     data: data
   })
 }
+//修复营期
+export function getShortLink(data) {
+  return request({
+    url: '/qwSop/sopUserLogs/getShortLink',
+    method: 'get',
+    params: data
+  })
+}
 
 // 修改sopUserLogs
 export function updateLogDate(data) {

+ 318 - 222
src/views/qw/sopUserLogs/sopUserLogsSchedule.vue

@@ -2,9 +2,10 @@
   <div class="app-container">
     <div style="margin-bottom: 10px">
       <el-card>
-        <span class="custom-style" style="display: block; margin-bottom: 10px">自动化规则名称:{{sopName}}</span>
-        <span class="custom-style" style="display: block; margin-bottom: 10px">自动化规则编号:{{queryParams.sopId}}</span>
-        <span class="custom-style" style="display: block;">模板编号:{{tempId}}</span>
+        <span class="custom-style" style="display: block; margin-bottom: 10px">自动化规则名称:{{ sopName }}</span>
+        <span class="custom-style" style="display: block; margin-bottom: 10px"
+        >自动化规则编号:{{ queryParams.sopId }}</span>
+        <span class="custom-style" style="display: block;">模板编号:{{ tempId }}</span>
       </el-card>
     </div>
 
@@ -32,19 +33,20 @@
                         v-model="queryParams.startTime"
                         type="date"
                         value-format="yyyy-MM-dd"
-                        placeholder="选择营期时间">
+                        placeholder="选择营期时间"
+        >
         </el-date-picker>
       </el-form-item>
-<!--      <el-form-item label="状态" prop="status">-->
-<!--        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">-->
-<!--          <el-option-->
-<!--            v-for="dict in sopUserLogsDelStatus"-->
-<!--            :key="dict.dictValue"-->
-<!--            :label="dict.dictLabel"-->
-<!--            :value="dict.dictValue"-->
-<!--          />-->
-<!--        </el-select>-->
-<!--      </el-form-item>-->
+      <!--      <el-form-item label="状态" prop="status">-->
+      <!--        <el-select v-model="queryParams.status" placeholder="请选择状态" clearable size="small">-->
+      <!--          <el-option-->
+      <!--            v-for="dict in sopUserLogsDelStatus"-->
+      <!--            :key="dict.dictValue"-->
+      <!--            :label="dict.dictLabel"-->
+      <!--            :value="dict.dictValue"-->
+      <!--          />-->
+      <!--        </el-select>-->
+      <!--      </el-form-item>-->
       <el-form-item label="客户名称" prop="externalUserName">
         <el-input
           v-model="queryParams.externalUserName"
@@ -72,7 +74,9 @@
     <el-row :gutter="10" class="mb8" v-if="filterMode == 1">
 
       <el-col :span="1.5">
-        <el-tooltip class="item" effect="dark" content="此功能用于给 选中的 营期 内【所有的】客户发送 消息【或者发送草稿-/-清楚草稿】" placement="top">
+        <el-tooltip class="item" effect="dark"
+                    content="此功能用于给 选中的 营期 内【所有的】客户发送 消息【或者发送草稿-/-清楚草稿】" placement="top"
+        >
           <el-button
             type="warning"
             icon="el-icon-s-promotion"
@@ -80,24 +84,27 @@
             :disabled="multiple"
             @click="handleCampSendMsg"
             v-hasPermi="['qw:sopUserLogsInfo:msgSchedule']"
-          >营期一键群发(或草稿)</el-button>
+          >营期一键群发(或草稿)
+          </el-button>
         </el-tooltip>
       </el-col>
 
-<!--      <el-col :span="1.5">-->
-<!--        <el-tooltip class="item" effect="dark" content="修改选择的群聊营期时间" placement="top">-->
-<!--          <el-button-->
-<!--            type="danger"-->
-<!--            icon="el-icon-edit"-->
-<!--            size="medium"-->
-<!--            :disabled="multiple"-->
-<!--            @click="updateGroupTime"-->
-<!--          >批量修改营期时间</el-button>-->
-<!--        </el-tooltip>-->
-<!--      </el-col>-->
+      <!--      <el-col :span="1.5">-->
+      <!--        <el-tooltip class="item" effect="dark" content="修改选择的群聊营期时间" placement="top">-->
+      <!--          <el-button-->
+      <!--            type="danger"-->
+      <!--            icon="el-icon-edit"-->
+      <!--            size="medium"-->
+      <!--            :disabled="multiple"-->
+      <!--            @click="updateGroupTime"-->
+      <!--          >批量修改营期时间</el-button>-->
+      <!--        </el-tooltip>-->
+      <!--      </el-col>-->
 
       <el-col :span="1.5">
-        <el-tooltip class="item" effect="dark" content="删除营期之后,将不会在给原营期的客户发送消息,ps:删除之后不可恢复" placement="top">
+        <el-tooltip class="item" effect="dark" content="删除营期之后,将不会在给原营期的客户发送消息,ps:删除之后不可恢复"
+                    placement="top"
+        >
           <el-button
             type="danger"
             icon="el-icon-s-promotion"
@@ -105,7 +112,8 @@
             :disabled="multiple"
             @click="handleDeleteUserLogs"
             v-hasPermi="['qw:sopUserLogs:remove']"
-          >批量删除营期</el-button>
+          >批量删除营期
+          </el-button>
 
         </el-tooltip>
       </el-col>
@@ -119,7 +127,8 @@
             icon="el-icon-plus"
             size="medium"
             @click="addGroup"
-          >追加群聊</el-button>
+          >追加群聊
+          </el-button>
         </el-tooltip>
       </el-col>
 
@@ -131,11 +140,14 @@
             size="medium"
             :disabled="multiple"
             @click="updateGroupTime"
-          >批量修改营期时间</el-button>
+          >批量修改营期时间
+          </el-button>
         </el-tooltip>
       </el-col>
       <el-col :span="1.5">
-        <el-tooltip class="item" effect="dark" content="删除营期之后,将不会在给原营期的群发送消息,ps:删除之后不可恢复" placement="top">
+        <el-tooltip class="item" effect="dark" content="删除营期之后,将不会在给原营期的群发送消息,ps:删除之后不可恢复"
+                    placement="top"
+        >
           <el-button
             type="danger"
             icon="el-icon-s-promotion"
@@ -143,47 +155,55 @@
             :disabled="multiple"
             @click="handleDeleteUserLogs"
             v-hasPermi="['qw:sopUserLogs:remove']"
-          >批量删除营期</el-button>
+          >批量删除营期
+          </el-button>
         </el-tooltip>
       </el-col>
-                  <el-col :span="1.5">
-        <el-tooltip class="item" effect="dark" content="批量更换实际发送人" placement="top" >
+      <el-col :span="1.5">
+        <el-tooltip class="item" effect="dark" content="批量更换实际发送人" placement="top">
           <el-button
             type="primary"
             icon="el-icon-s-custom"
             size="medium"
             :disabled="multiple"
             @click="handleUpdateSender"
-          >批量更换实际发送人</el-button>
+          >批量更换实际发送人
+          </el-button>
         </el-tooltip>
       </el-col>
     </el-row>
-    <div style="color: #999;font-size: 14px;display: flex;align-items: center;margin-bottom: 5px" v-if="filterMode == 1">
+    <div style="color: #999;font-size: 14px;display: flex;align-items: center;margin-bottom: 5px"
+         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">
+    <div style="color: #999;font-size: 14px;display: flex;align-items: center;margin-bottom: 5px"
+         v-if="filterMode == 1"
+    >
       <i class="el-icon-info"></i>
       【批量删除营期】:此功能用于删除选中的【整个营期】,删除之后将不会在给原营期的客户发送消息,ps:删除之后不可恢复
     </div>
-    <div style="color: #999;font-size: 14px;display: flex;align-items: center;margin-bottom: 5px" v-if="filterMode == 1">
+    <div style="color: #999;font-size: 14px;display: flex;align-items: center;margin-bottom: 5px"
+         v-if="filterMode == 1"
+    >
       <i class="el-icon-info"></i>
       【天数】:【列表:营期时间】对应列表中的天数是几 就代表着 插件助手 会发送【任务模板】里的第几天的消息
     </div>
     <el-table border v-loading="loading" :data="sopUserLogsList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="营期编号" align="center" prop="id" />
-      <el-table-column label="企微员工账号" align="center" prop="qwUserId" />
-      <el-table-column label="企微员工名称" align="center" prop="qwUserName" />
-      <el-table-column label="实际发送人" align="center" prop="actualQwUserName" />
-      <el-table-column label="群聊" align="center" prop="chatName" v-if="filterMode == 2" />
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="营期编号" align="center" prop="id"/>
+      <el-table-column label="企微员工账号" align="center" prop="qwUserId"/>
+      <el-table-column label="企微员工名称" align="center" prop="qwUserName"/>
+      <el-table-column label="实际发送人" align="center" prop="actualQwUserName"/>
+      <el-table-column label="群聊" align="center" prop="chatName" v-if="filterMode == 2"/>
       <el-table-column label="营期时间" align="center" prop="startTime" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="天数" align="center" prop="countDays" />
-      <el-table-column label="状态" align="center" prop="status" >
+      <el-table-column label="天数" align="center" prop="countDays"/>
+      <el-table-column label="状态" align="center" prop="status">
         <template slot-scope="scope">
           <div v-if="scope.row.userId && scope.row.userId.includes('null')">
             <span style="color: orange;">营期异常</span>
@@ -204,7 +224,8 @@
             icon="el-icon-edit"
             @click="handleSelect(scope.row)"
             v-hasPermi="['qw:sop:list']"
-          >营期详情</el-button>
+          >营期详情
+          </el-button>
           <el-button
             v-if="scope.row.userId && scope.row.userId.includes('null')"
             size="mini"
@@ -212,7 +233,8 @@
             icon="el-icon-s-check"
             @click="handleRepairLogs(scope.row)"
             v-hasPermi="['qw:sop:list']"
-          >修复营期</el-button>
+          >修复营期
+          </el-button>
           <!--          <el-button-->
           <!--            size="mini"-->
           <!--            type="text"-->
@@ -222,6 +244,17 @@
         </template>
       </el-table-column>
 
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="filterMode == 2">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            @click="getLink(scope.row)"
+          >获取当天群链接
+          </el-button>
+        </template>
+      </el-table-column>
+
     </el-table>
 
     <pagination
@@ -234,15 +267,19 @@
 
 
     <!--  执行详情  -->
-    <el-drawer :title="logsInfoDetailsOpen.title" :visible.sync="logsInfoDetailsOpen.open" size="88%" style="font-weight: bolder">
-      <sop-user-logs-info-details ref="SopUserLogsInfoDetails" :rowDetailFrom="logsInfoDetailsOpen.item" @flashNotify="flashNotify"></sop-user-logs-info-details>
+    <el-drawer :title="logsInfoDetailsOpen.title" :visible.sync="logsInfoDetailsOpen.open" size="88%"
+               style="font-weight: bolder"
+    >
+      <sop-user-logs-info-details ref="SopUserLogsInfoDetails" :rowDetailFrom="logsInfoDetailsOpen.item"
+                                  @flashNotify="flashNotify"
+      ></sop-user-logs-info-details>
     </el-drawer>
 
-    <send-msg-open-tool ref="sendMsgOpenTool" ></send-msg-open-tool>
-    <el-dialog title="修改营期时间" :visible.sync="updateTimeData.open"  width="800px" append-to-body>
+    <send-msg-open-tool ref="sendMsgOpenTool"></send-msg-open-tool>
+    <el-dialog title="修改营期时间" :visible.sync="updateTimeData.open" width="800px" append-to-body>
       <p>
         <span>选择群聊:</span>
-        <el-tag v-for="name in chatNames">{{name}}</el-tag>
+        <el-tag v-for="name in chatNames">{{ name }}</el-tag>
       </p>
       <el-form ref="msgForm" :model="updateTimeData.form" label-width="100px">
         <el-form-item label="日期">
@@ -250,7 +287,8 @@
             v-model="updateTimeData.form.date"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择日期">
+            placeholder="选择日期"
+          >
           </el-date-picker>
         </el-form-item>
       </el-form>
@@ -259,15 +297,15 @@
         <el-button @click="updateTimeData.open = false">取 消</el-button>
       </div>
     </el-dialog>
-    <el-dialog title="选择企微" :visible.sync="addGroupData.userOpen" width="1300px"   append-to-body>
+    <el-dialog title="选择企微" :visible.sync="addGroupData.userOpen" width="1300px" append-to-body>
       <qwUserList ref="QwUserList" @selectUserList="selectUserList"></qwUserList>
     </el-dialog>
 
-        <el-dialog :title="listUser.title" :visible.sync="listUser.open" width="1300px"   append-to-body>
+    <el-dialog :title="listUser.title" :visible.sync="listUser.open" width="1300px" append-to-body>
       <qwUserSelectOne ref="QwUserListSender" @selectUser="selectSenderSingle"></qwUserSelectOne>
     </el-dialog>
 
-    <el-dialog title="追加群聊" :visible.sync="addGroupData.open"  width="800px" append-to-body>
+    <el-dialog title="追加群聊" :visible.sync="addGroupData.open" width="800px" append-to-body>
       <el-form ref="msgForm" :model="addGroupData.form" label-width="100px">
         <el-form-item label="选择员工" prop="qwUserIds" style="margin-top: 2%">
           <div>
@@ -275,7 +313,9 @@
               size="medium"
               icon="el-icon-circle-plus-outline"
               plain
-              @click="handleCompanyUser">请选择使用员工</el-button>
+              @click="handleCompanyUser"
+            >请选择使用员工
+            </el-button>
           </div>
           <div>
             <el-tag
@@ -285,14 +325,18 @@
               v-for="id in userSelectList"
               closable
               :disable-transitions="false"
-              @close="handleClosegroupUser(id)">
-              <span v-for="list in companyUserLists " :key="list.userId" v-if="list.id == id">{{list.qwUserName}}</span>
+              @close="handleClosegroupUser(id)"
+            >
+              <span v-for="list in companyUserLists " :key="list.userId" v-if="list.id == id"
+              >{{ list.qwUserName }}</span>
             </el-tag>
           </div>
         </el-form-item>
         <el-form-item label="群聊">
           <el-select multiple filterable clearable v-model="addGroupData.form.chatIds">
-            <el-option v-for="item in addGroupData.selectChat" :key="item.chatId" :label="item.name" :value="item.chatId"/>
+            <el-option v-for="item in addGroupData.selectChat" :key="item.chatId" :label="item.name"
+                       :value="item.chatId"
+            />
           </el-select>
         </el-form-item>
         <el-form-item label="日期">
@@ -300,7 +344,8 @@
             v-model="addGroupData.form.date"
             type="date"
             value-format="yyyy-MM-dd"
-            placeholder="选择日期">
+            placeholder="选择日期"
+          >
           </el-date-picker>
         </el-form-item>
       </el-form>
@@ -309,6 +354,29 @@
         <el-button @click="addGroupData.open = false">取 消</el-button>
       </div>
     </el-dialog>
+
+    <el-dialog title="链接" :visible.sync="mini.open" width="800px" append-to-body>
+
+      <el-form ref="msgForm" :model="addGroupData.form" label-width="100px">
+        <el-form-item label="小程序" prop="qwUserIds" style="margin-top: 2%">
+          <el-select v-model="mini.appId" placeholder="选择小程序" size="small">
+            <el-option
+              v-for="miniApp in companyMiniAppList"
+              :key="miniApp.appid"
+              :label="miniApp.name"
+              :value="miniApp.appid"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item label="链接" prop="qwUserIds" style="margin-top: 2%" :loading="mini.loading">
+          {{ mini.link || "无" }}
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="genMiniLink">生 成</el-button>
+        <el-button @click="mini.open = false">取 消</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
@@ -318,37 +386,46 @@ import {
   exportSopUserLogs,
   listSopUserLogs,
   repairSopUserLogs,
+  getShortLink,
   getSelectChat,
   addGroupChat,
-  updateLogDate,UpdateTimeSopUserLogs,replaceUser
-} from "../../../api/qw/sopUserLogs";
-import sopLogsDetails from "@/views/qw/sopLogs/sopLogsList.vue";
-import SopUserLogsInfoDetails from "@/views/qw/sopUserLogsInfo/sopUserLogsInfoDetails.vue";
-import sendMsgOpenTool from "../../../views/qw/sopUserLogsInfo/sendMsgOpenTool.vue";
-import {listAll as chatListAll} from "@/api/qw/groupChat";
-import companyUserList from "@/views/company/companyUser/companyUserList.vue";
-import qwUserList from "@/views/qw/user/qwUserList.vue";
-import qwUserSelectOne from "@/views/qw/user/qwUserSelectOne.vue";
-import {getQwAllUserList, listUser} from "@/api/company/companyUser";
+  updateLogDate, UpdateTimeSopUserLogs, replaceUser
+} from '@/api/qw/sopUserLogs'
+import {
+  getCompanyMiniAppList
+} from '@/api/company/companyConfig'
+import sopLogsDetails from '@/views/qw/sopLogs/sopLogsList.vue'
+import SopUserLogsInfoDetails from '@/views/qw/sopUserLogsInfo/sopUserLogsInfoDetails.vue'
+import sendMsgOpenTool from '../../../views/qw/sopUserLogsInfo/sendMsgOpenTool.vue'
+import { listAll as chatListAll } from '@/api/qw/groupChat'
+import companyUserList from '@/views/company/companyUser/companyUserList.vue'
+import qwUserList from '@/views/qw/user/qwUserList.vue'
+import qwUserSelectOne from '@/views/qw/user/qwUserSelectOne.vue'
+import { getQwAllUserList, listUser } from '@/api/company/companyUser'
 
 export default {
-  name: "sopUserLogsSchedule",
-  components: {qwUserList, qwUserSelectOne, companyUserList, SopUserLogsInfoDetails, sopLogsDetails,sendMsgOpenTool},
-  props:{
-    rowDetailFrom:{},
+  name: 'sopUserLogsSchedule',
+  components: { qwUserList, qwUserSelectOne, companyUserList, SopUserLogsInfoDetails, sopLogsDetails, sendMsgOpenTool },
+  props: {
+    rowDetailFrom: {}
   },
 
   data() {
     return {
       qwUserIds: [],
-      sopUserLogId:null,
-      companyUserLists:[],
-      sopName:'',
-      tempId:'',
+      sopUserLogId: null,
+      companyUserLists: [],
+      sopName: '',
+      tempId: '',
       listUser: {
         title: '选择发送人',
         open: false
       },
+      mini: {
+        open: false,
+        loading: false,
+        row: {},
+      },
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -366,17 +443,17 @@ export default {
       showSearch: true,
       // 总条数
       total: 0,
-      logsInfoDetailsOpen:{
-        title:"",
-        open:false,
+      logsInfoDetailsOpen: {
+        title: '',
+        open: false
       },
-      sysQwSopAiContentType:[],
-      userSelectList:[],
+      sysQwSopAiContentType: [],
+      userSelectList: [],
       // sopUserLogs表格数据
       sopUserLogsList: [],
-      sopUserLogsDelStatus:[],
+      sopUserLogsDelStatus: [],
       // 弹出层标题
-      title: "",
+      title: '',
       // 是否显示弹出层
       open: false,
       // 查询参数
@@ -385,22 +462,22 @@ export default {
         userOpen: false,
         selectChat: [],
         form: {
-          chatIds: [],
-        },
+          chatIds: []
+        }
       },
       updateTimeData: {
         open: false,
         form: {
-          date: null,
-        },
+          date: null
+        }
       },
       queryParams: {
         pageNum: 1,
         pageSize: 10,
         sopId: null,
-        userLogsId:null,
-        externalUserName:null,
-        externalId:null,
+        userLogsId: null,
+        externalUserName: null,
+        externalId: null,
         sopTempId: null,
         qwUserId: null,
         qwUserName: null,
@@ -408,85 +485,103 @@ export default {
         startTime: null,
         status: null,
         userId: null,
-        type:null,
+        type: null
       },
-      sendMsgOpen:{
-        title:'营期一键批量群发',
-        open:false,
-        ids:null,
+      sendMsgOpen: {
+        title: '营期一键批量群发',
+        open: false,
+        ids: null
       },
-      setting:[],
+      setting: [],
+      companyMiniAppList: [],
       // 表单参数
       form: {},
       tempForm: {
-        setting:null,
-        videoIdSet:null,
-        courseIdSet:null,
+        setting: null,
+        videoIdSet: null,
+        courseIdSet: null
       },
       // 表单校验
-      rules: {
-      }
-    };
+      rules: {}
+    }
   },
   created() {
 
-    this.getDicts("sys_company_status").then(response => {
-      this.statusOptions = response.data;
-    });
-
-    this.getDicts("sop_user_logs_del_status").then(response => {
-      this.sopUserLogsDelStatus = response.data;
-    });
-    this.getDicts("sys_qwSopAi_contentType").then(response => {
-      this.sysQwSopAiContentType = response.data;
-    });
-    this.queryParams.sopId = this.$route.params.id;
-    this.sopName = this.$route.query.name;
-    this.filterMode = this.$route.query.filterMode;
-    this.tempId = this.$route.query.tempId;
-    this.queryParams.corpId= this.$route.query.corpId;
-    this.queryParams.type= this.$route.query.type;
+    this.getDicts('sys_company_status').then(response => {
+      this.statusOptions = response.data
+    })
+
+    this.getDicts('sop_user_logs_del_status').then(response => {
+      this.sopUserLogsDelStatus = response.data
+    })
+    this.getDicts('sys_qwSopAi_contentType').then(response => {
+      this.sysQwSopAiContentType = response.data
+    })
+    this.queryParams.sopId = this.$route.params.id
+    this.sopName = this.$route.query.name
+    this.filterMode = this.$route.query.filterMode
+    this.tempId = this.$route.query.tempId
+    this.queryParams.corpId = this.$route.query.corpId
+    this.queryParams.type = this.$route.query.type
     getQwAllUserList(this.queryParams.corpId).then(response => {
-      this.companyUserLists = response.data;
-    });
+      this.companyUserLists = response.data
+    })
     this.getList()
 
   },
   methods: {
-        selectSenderSingle(user){
-      this.listUser.open=false;
-      const data = { ids: this.ids };
+    selectSenderSingle(user) {
+      this.listUser.open = false
+      const data = { ids: this.ids }
       // 仅在选中员工时携带 actualQwUserId 与 actualQwId,否则两字段均不传,后端按清空处理
       if (user && user.qwUserId) {
-        data.actualQwUserId = user.qwUserId;
-        data.actualQwId     = user.id;
+        data.actualQwUserId = user.qwUserId
+        data.actualQwId = user.id
       }
       replaceUser(data).then(res => {
-        this.msgSuccess(user && user.qwUserId ? "修改成功" : "已清空实际发送人");
-        this.getList();
+        this.msgSuccess(user && user.qwUserId ? '修改成功' : '已清空实际发送人')
+        this.getList()
+      })
+    },
+    getLink(row) {
+      getCompanyMiniAppList().then(res => {
+        this.companyMiniAppList = res.data
+        this.mini.open = true;
+        this.mini.row = row;
+      }).catch(res => {
+        console.log(res)
+      })
+    },
+    genMiniLink() {
+      this.mini.loading = true;
+      getShortLink({ id: this.mini.row.id, sopId: this.mini.row.sopId, appId: this.mini.appId }).then(response => {
+        this.mini.link = response.urlLink;
+        this.$forceUpdate();
+      }).finally(e =>{
+        this.mini.loading = false;
       })
     },
     /** 查询sopUserLogs列表 */
     getList() {
-      this.loading = true;
+      this.loading = true
       listSopUserLogs(this.queryParams).then(response => {
-        this.sopUserLogsList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
+        this.sopUserLogsList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
     },
     // 取消按钮
     cancel() {
-      this.open = false;
-      this.reset();
+      this.open = false
+      this.reset()
     },
-    addSetList(){
+    addSetList() {
       const newSetting = {
-        contentType:'1',
-        value: '',
-      };
+        contentType: '1',
+        value: ''
+      }
       // 将新设置项添加到 content.setting 数组中
-      this.setting.push(newSetting);
+      this.setting.push(newSetting)
 
     },
     // 表单重置
@@ -496,189 +591,190 @@ export default {
         sopId: null,
         sopTempId: null,
         qwUserId: null,
-        externalId:null,
+        externalId: null,
         corpId: null,
         startTime: null,
         status: 0,
         userId: null
-      };
-      this.resetForm("form");
+      }
+      this.resetForm('form')
     },
 
     /**
      * 营期一键群发
      */
-    handleCampSendMsg(){
+    handleCampSendMsg() {
 
       setTimeout(() => {
-        this.$refs.sendMsgOpenTool.oneClickGroupSending(this.ids,2,this.queryParams.corpId);
-      }, 500);
+        this.$refs.sendMsgOpenTool.oneClickGroupSending(this.ids, 2, this.queryParams.corpId)
+      }, 500)
 
     },
 
-        /**
+    /**
      * 批量更换实际发送人
      */
     handleUpdateSender() {
-      this.listUser.open = true;
+      this.listUser.open = true
       this.$nextTick(() => {
-        this.$refs.QwUserListSender.getDetails(this.queryParams.corpId);
+        this.$refs.QwUserListSender.getDetails(this.queryParams.corpId)
       })
     },
     /**
      *  删除营期
      */
-    handleDeleteUserLogs(){
-      const ids =  this.ids;
-      this.$confirm('是否确认删除编号为"' + ids + '"的数据项【注意!!删除后不可恢复,请谨慎操作】?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
+    handleDeleteUserLogs() {
+      const ids = this.ids
+      this.$confirm('是否确认删除编号为"' + ids + '"的数据项【注意!!删除后不可恢复,请谨慎操作】?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
       }).then(function() {
-        return delSopUserLogs(ids);
+        return delSopUserLogs(ids)
       }).then(() => {
-        this.getList();
-        this.msgSuccess("删除成功");
-      }).catch(() => {});
+        this.getList()
+        this.msgSuccess('删除成功')
+      }).catch(() => {
+      })
     },
 
     /** 搜索按钮操作 */
     handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
+      this.queryParams.pageNum = 1
+      this.getList()
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
+      this.resetForm('queryForm')
+      this.handleQuery()
     },
 
-    flashNotify(){
-      this.getList();
+    flashNotify() {
+      this.getList()
     },
     // 多选框选中数据
     handleSelectionChange(selection) {
       this.ids = selection.map(item => item.id)
-      if(this.filterMode == 2){
-        this.chatNames = selection.map(item => item.chatName);
+      if (this.filterMode == 2) {
+        this.chatNames = selection.map(item => item.chatName)
       }
-      this.single = selection.length!==1
+      this.single = selection.length !== 1
       this.multiple = !selection.length
     },
 
-    handleSelect(val){
-      val.filterMode = this.filterMode;
-      this.logsInfoDetailsOpen.title='企微账号:'+val.qwUserId+'  '+'营期时间:'+val.startTime+'  '+'天数:' + val.countDays;
-      this.logsInfoDetailsOpen.open=true;
-      const externalUserName = this.queryParams.externalUserName;
+    handleSelect(val) {
+      val.filterMode = this.filterMode
+      this.logsInfoDetailsOpen.title = '企微账号:' + val.qwUserId + '  ' + '营期时间:' + val.startTime + '  ' + '天数:' + val.countDays
+      this.logsInfoDetailsOpen.open = true
+      const externalUserName = this.queryParams.externalUserName
       setTimeout(() => {
-        this.$refs.SopUserLogsInfoDetails.selectSopUserLogsInfo(val, externalUserName);
-      }, 500);
+        this.$refs.SopUserLogsInfoDetails.selectSopUserLogsInfo(val, externalUserName)
+      }, 500)
 
     },
 
     handleRepairLogs(val) {
-      this.loading = true;
+      this.loading = true
       let loadingRock = this.$loading({
         lock: true,
         text: '正在修复中请稍后~~!!',
         spinner: 'el-icon-loading',
         background: 'rgba(0, 0, 0, 0.7)'
-      });
+      })
 
       repairSopUserLogs(val).then(res => {
-        this.msgSuccess("修复成功成功");
+        this.msgSuccess('修复成功成功')
       }).catch(res => {
       }).finally(res => {
-        loadingRock.close();
-        this.loading = false;
-        this.getList();
+        loadingRock.close()
+        this.loading = false
+        this.getList()
       })
 
     },
     /** 导出按钮操作 */
     handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm('是否确认导出所有sopUserLogs数据项?', "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有sopUserLogs数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
       }).then(() => {
-        this.exportLoading = true;
-        return exportSopUserLogs(queryParams);
+        this.exportLoading = true
+        return exportSopUserLogs(queryParams)
       }).then(response => {
-        this.download(response.msg);
-        this.exportLoading = false;
+        this.download(response.msg)
+        this.exportLoading = false
       }).catch(() => {
-      });
+      })
     },
     addGroup() {
-      this.addGroupData.open = true;
-      this.addGroupData.form = {date: new Date(), chatIds: []};
+      this.addGroupData.open = true
+      this.addGroupData.form = { date: new Date(), chatIds: [] }
     },
     updateGroupTime() {
-      this.updateTimeData.open = true;
-      this.updateTimeData.form = {date: new Date()};
+      this.updateTimeData.open = true
+      this.updateTimeData.form = { date: new Date() }
     },
     submitUpdateTimeForm() {
       let form = {
         date: this.updateTimeData.form.date,
-        ids: this.ids,
+        ids: this.ids
       }
       updateLogDate(form).then(response => {
-        if (response.data!=null){
-          this.msgInfo("部分时间已有营期:"+response.data);
+        if (response.data != null) {
+          this.msgInfo('部分时间已有营期:' + response.data)
         }
 
-        this.updateTimeData.open = false;
-        this.getList();
-      });
+        this.updateTimeData.open = false
+        this.getList()
+      })
     },
     submitAddGroupForm() {
       let form = {
         id: this.queryParams.sopId,
         qwUserIds: this.userSelectList.join(),
         chatIds: this.addGroupData.form.chatIds.join(),
-        date: this.addGroupData.form.date,
+        date: this.addGroupData.form.date
       }
       addGroupChat(form).then(e => {
-        this.addGroupData.open = false;
-        this.getList();
-      });
+        this.addGroupData.open = false
+        this.getList()
+      })
     },
     handleCompanyUser() {
       setTimeout(() => {
-        this.$refs.QwUserList.getDetails(this.queryParams.corpId, this.queryParams.type, 2);
-      }, 1);
-      this.addGroupData.userOpen = true;
+        this.$refs.QwUserList.getDetails(this.queryParams.corpId, this.queryParams.type, 2)
+      }, 1)
+      this.addGroupData.userOpen = true
     },
     handleClosegroupUser(list) {
-      const index = this.userSelectList.findIndex(t => t === list);
+      const index = this.userSelectList.findIndex(t => t === list)
       if (index !== -1) {
-        this.userSelectList.splice(index, 1);
-        this.qwUserIds.splice(index, 1);
+        this.userSelectList.splice(index, 1)
+        this.qwUserIds.splice(index, 1)
         this.loadChatList()
       }
     },
     loadChatList() {
       chatListAll(this.qwUserIds.join(), this.queryParams.corpId, this.queryParams.sopId).then(e => {
-        this.addGroupData.selectChat = e.data;
+        this.addGroupData.selectChat = e.data
       })
     },
     selectUserList(list) {
-      this.addGroupData.userOpen = false;
+      this.addGroupData.userOpen = false
       list.forEach(obj => {
         if (!this.userSelectList.some(item => item == obj.id)) {
           console.info(this.userSelectList)
-          this.userSelectList.push(obj.id);
-          this.qwUserIds.push(obj.qwUserId);
+          this.userSelectList.push(obj.id)
+          this.qwUserIds.push(obj.qwUserId)
         }
-      });
+      })
       this.loadChatList()
 
-    },
+    }
   }
-};
+}
 </script>
 
 <style>