소스 검색

Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_companyUI

caoliqin 19 시간 전
부모
커밋
55f16f1b62

+ 49 - 7
src/views/company/companyVoiceRobotic/index.vue

@@ -168,7 +168,7 @@
     />
 
     <!-- 添加或修改机器人外呼任务对话框 -->
-    <el-drawer size="60%" :title="title" :visible.sync="open" width="500px" append-to-body class="task-form-drawer">
+    <el-drawer size="45%" :title="title" :visible.sync="open" width="500px" append-to-body class="task-form-drawer">
       <div class="drawer-content">
         <el-form ref="form" :model="form" :rules="rules" label-width="90px" class="task-form">
           <div class="form-section">
@@ -192,6 +192,38 @@
                 <el-option v-for="item in workflowList" :key="item.value" :label="item.label" :value="item.value"/>
               </el-select>
             </el-form-item>
+              <!-- <el-form-item label="运行时间" required>
+                <el-col :span="11">
+                  <el-form-item prop="runTimeRangeStart">
+                     <el-time-select
+                  placeholder="任务运行开始时间"
+                   style="width: 100%;"
+                  v-model="form.runTimeRangeStart"
+                  :picker-options="{
+                    start: '07:30',
+                    step: '00:10',
+                    end: '20:00'
+                  }">
+                </el-time-select>
+                  </el-form-item>
+                </el-col>
+                <el-col class="line" :span="2" style="text-align: center">-</el-col>
+                <el-col :span="11">
+                  <el-form-item prop="runTimeRangeEnd">
+                     <el-time-select
+                      style="width: 100%;"
+                  placeholder="任务运行结束时间"
+                  v-model="form.runTimeRangeEnd"
+                  :picker-options="{
+                    start: '08:30',
+                    step: '00:10',
+                    end: '21:00',
+                    minTime: startTime
+                  }">
+                </el-time-select>
+                  </el-form-item>
+                </el-col>
+              </el-form-item> -->
           </div>
 
           <div class="form-section">
@@ -277,7 +309,7 @@
             </el-select>
           </el-form-item> -->
         </el-form>
-        <div slot="footer" class="dialog-footer">
+        <div slot="footer" class="dialog-footer" style="text-align:right">
           <el-button type="primary" @click="submitForm">确 定</el-button>
           <el-button @click="cancel">取 消</el-button>
         </div>
@@ -418,7 +450,7 @@
                         </div>
                       </div>
                     </div>
-                    <div class="record-right">
+                    <!-- <div class="record-right">
                       <div class="progress-info">
                         <span class="progress-label">执行进度</span>
                         <span class="progress-value">{{ getProgress(record) }}%</span>
@@ -428,7 +460,7 @@
                         :color="getProgressColor(record)"
                         :stroke-width="10"
                         :show-text="false"></el-progress>
-                    </div>
+                    </div> -->
                   </div>
                 </template>
 
@@ -626,6 +658,12 @@ export default {
         companyAiWorkflowId: [
             { required: true, message: '请选择流程', trigger: 'change' }
           ],
+        // runTimeRangeStart:[
+        //      { required: true, message: '请选择任务运行开始时间', trigger: 'change' }
+        //   ],
+        // runTimeRangeEnd:[
+        //      { required: true, message: '请选择任务运行结束时间', trigger: 'change' }
+        //   ]
       },
       smsTempList:[]
     };
@@ -725,7 +763,9 @@ export default {
         userIds: [],
         userNames: [],
         userTableList: [],
-        companyAiWorkflowId: null
+        companyAiWorkflowId: null,
+        // runTimeRangeStart:null,
+        // runTimeRangeEnd:null
       };
       this.resetForm("form");
     },
@@ -981,7 +1021,8 @@ export default {
         '执行成功': '#52c41a',
         '执行中': '#1890ff',
         '执行失败': '#f5222d',
-        '等待执行': '#d9d9d9'
+        '等待执行': '#d9d9d9',
+        '执行超时':'#f5222d'
       };
       return colorMap[statusName] || '#d9d9d9';
     },
@@ -991,7 +1032,8 @@ export default {
         '执行成功': 'success',
         '执行中': 'warning',
         '执行失败': 'danger',
-        '等待执行': 'info'
+        '等待执行': 'info',
+        '执行超时':'danger'
       };
       return typeMap[statusName] || 'info';
     },

+ 7 - 7
src/views/company/companyWorkflow/design.vue

@@ -462,13 +462,13 @@
                     <el-button type="danger" size="mini" icon="el-icon-delete" circle @click="removeCondition(index)"></el-button>
                   </div>
                   <div class="condition-content">
-                    <el-form-item label="发送状态">
-                      <el-select v-model="item.sendStatus" placeholder="请选择">
-                        <el-option :value="false" label="发送成功" />
-                        <el-option :value="true" label="发送失败" />
-                      </el-select>
-                    </el-form-item>
-                    <el-form-item label="等待时间" v-if="item.sendStatus == false">
+<!--                    <el-form-item label="发送状态">-->
+<!--                      <el-select v-model="item.sendStatus" placeholder="请选择">-->
+<!--                        <el-option :value="true" label="发送成功" />-->
+<!--                        <el-option :value="false" label="发送失败" />-->
+<!--                      </el-select>-->
+<!--                    </el-form-item>-->
+                    <el-form-item label="等待时间">
                       <el-input v-model="item.waitTime" placeholder="请输入时间">
                         <template slot="append">分钟</template>
                       </el-input>

+ 33 - 2
src/views/qw/qwUserVoiceLogTotal/index.vue

@@ -186,13 +186,23 @@
       <el-table-column label="时长秒" align="center"  prop="duration" />
       <el-table-column label="标签" align="center" prop="tagIdsName" width="250px">
         <template slot-scope="scope">
-          <div v-for="name in scope.row.tagIdsName" style="display: inline;">
-            <el-tag type="success">{{ name }}</el-tag>
+          <div class="tag-container">
+            <div class="tag-list">
+              <el-tag
+                v-for="name in scope.row.tagIdsName"
+                :key="name"
+                type="success"
+                size="small"
+              >
+                {{ name }}
+              </el-tag>
+            </div>
           </div>
         </template>
       </el-table-column>
       <el-table-column label="接通数量" align="center"  prop="connectCount" />
       <el-table-column label="未接通数量" align="center"  prop="noConnectCount" />
+      <el-table-column label="部门编号" align="center"  prop="deptId" />
       <!--      <el-table-column label="标题" align="center" width="80" prop="title" />-->
       <!--      <el-table-column label="通话状态" align="center" prop="status">
               <template slot-scope="scope">
@@ -827,4 +837,25 @@ export default {
   background: rgba(0, 0, 0, 0.2);
   border-radius: 3px;
 }
+
+/* CSS 样式 */
+.tag-container {
+  display: flex;
+  flex-wrap: wrap; /* 超出宽度时自动换行 */
+  gap: 8px; /* 设置标签之间的间距 */
+}
+
+.tag-container {
+  max-height: 200px;
+  overflow-y: auto;
+  padding: 1px;
+  border: 1px solid #ebeef5;
+  border-radius: 1px;
+  background-color: #fafafa;
+}
+.tag-list {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 8px;
+}
 </style>

+ 9 - 0
src/views/qw/sop/sop.vue

@@ -867,6 +867,15 @@
                         </el-form-item>
                       </el-card>
                     </div>
+                    <div v-if="item.contentType == 11">
+                      <el-input
+                        v-model="item.value"
+                        type="textarea"
+                        :rows="5"
+                        placeholder="请输入群公告内容"
+                        style="width: 90%;margin-top: 10px;"
+                      />
+                    </div>
                   </el-form-item>
 
                   <el-form-item label="添加短链" v-if="item.contentType == 1 "  >

+ 24 - 6
src/views/qw/sopLogs/sopLogsList.vue

@@ -142,6 +142,11 @@
           <dict-tag :options="sysQwSopLogsStatus" :value="scope.row.sendStatus"/>
         </template>
       </el-table-column>
+      <el-table-column label="APP发送状态" align="center" prop="appSendStatus">
+        <template slot-scope="scope">
+          <dict-tag :options="sysQwAppSendStatusOptions" :value="scope.row.appSendStatus"/>
+        </template>
+      </el-table-column>
       <el-table-column label="预计发送时间" align="center" prop="sendTime" width="180"/>
       <el-table-column label="实际发送时间" align="center" prop="realSendTime" width="180"/>
 <!--      <el-table-column label="获取记录" align="center" prop="takeRecords" width="180">-->
@@ -159,6 +164,7 @@
       <el-table-column label="生成时间" align="createTime" prop="createTime" width="180" />
       <el-table-column label="消息ID" align="center" prop="msgId" />
       <el-table-column label="备注" align="center" prop="remark" />
+      <el-table-column label="APP备注" align="center" prop="appSendRemark" />
     </el-table>
 
     <el-dialog :visible.sync="contentDialog.isDialogVisible" title="消息详情" width="30%" append-to-body>
@@ -178,6 +184,9 @@
                 <span v-if="item.contentType == 8">视频号</span>
                 <span v-if="item.contentType == 9">APP</span>
                 <span v-if="item.contentType == 10">自定义小程序</span>
+                <span v-if="item.contentType == 15">APP文本</span>
+                <span v-if="item.contentType == 16">APP语音</span>
+                <span v-if="item.contentType == 11">群公告</span>
                 <span v-if="item.contentType == 4"><el-button size="mini" type="primary" @click="generateShortLink(item)" style="margin-left: 330px;">生成短链</el-button></span>
               </div>
               <div v-if="item.sendStatus">
@@ -187,7 +196,7 @@
               </div>
             </div>
             <div v-if="item.sendStatus && item.sendStatus == 2">发送失败原因:<span style="color: #ff4949">{{item.sendRemarks}}</span></div>
-            <div v-if="item.contentType == 1" v-html="item.value"></div>
+            <div v-if="item.contentType == 1 || item.contentType == 15" v-html="item.value"></div>
             <div v-if="item.contentType == 2">
               <el-image
                 style="width: 100px; height: 100px"
@@ -233,11 +242,9 @@
                 style="width: 200px; height: 100px">
               </video>
             </div>
-            <div v-if="item.contentType == 7">
-              <span>
-                {{ item.value }}
-              </span>
-              <div v-if="!item.voiceUrl" style="margin-top: 3px"  >
+            <div v-if="item.contentType == 7 || item.contentType == 16">
+              <span>{{ item.value }}</span>
+              <div v-if="!item.voiceUrl" style="margin-top: 3px">
                 <span style="color: red">无语音地址</span>
               </div>
             </div>
@@ -271,6 +278,9 @@
                 </el-form-item >
               </el-card>
             </div>
+            <div v-if="item.contentType == 11">
+              <div v-html="item.value"></div>
+            </div>
 
           </el-card>
         </div>
@@ -391,6 +401,14 @@ export default {
       //企微SOP发送类型
       sysQwSopType: [],
 
+      //APP发送状态
+      sysQwAppSendStatusOptions: [
+        { dictValue: '0', dictLabel: '未发送', listClass: 'default' },
+        { dictValue: '1', dictLabel: '成功', listClass: 'success' },
+        { dictValue: '2', dictLabel: '失败', listClass: 'danger' },
+        { dictValue: '3', dictLabel: '不发送', listClass: 'warning' }
+      ],
+
       //发送的消息
       contentDialog:{
         isDialogVisible:false,

+ 12 - 2
src/views/qw/sopTemp/updateSopTemp.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="app-container sop-temp-container" 
+  <div class="app-container sop-temp-container"
        v-loading="!form.id"
        element-loading-text="页面加载中..."
        element-loading-background="rgba(255, 255, 255, 0.95)">
@@ -678,6 +678,16 @@
                                               </el-form-item>
                                             </el-card>
                                           </div>
+                                          <div v-if="setList.contentType == 11">
+                                            <el-input
+                                              :disabled="formType == 3 || !roles.includes('edit_sop_temp_content')"
+                                              v-model="setList.value"
+                                              type="textarea"
+                                              :rows="5"
+                                              placeholder="请输入群公告内容"
+                                              style="width: 90%;margin-top: 10px;"
+                                            />
+                                          </div>
                                         </el-form-item>
                                         <!--                                        <el-form-item label="添加短链"-->
                                         <!--                                                      v-if="content.type == 2 && setList.contentType == 1  ">-->
@@ -1807,7 +1817,7 @@ export default {
       ruleList: [],
       ids: [],
       // startTimeRange: [],
-      courseTypeList: ['1','2', '4','5','6', '7','8','9','10','14','15'],
+      courseTypeList: ['1','2', '4','5','6', '7','8','9','10','14','15','11'],
       sysFsSopWatchStatus: [],
       //消息内容类型 企微版
       sysQwSopContentType: [],

+ 7 - 2
src/views/store/user/list.vue

@@ -102,8 +102,13 @@
          </template>
       </el-table-column>
       <el-table-column label="注册时间" align="center" prop="createTime" width="100px" />
-      <el-table-column label="APP来源" align="center" prop="source"/>
-      <el-table-column label="登录设备" align="center" prop="loginDevice"/>
+      <el-table-column label="是否下载APP" align="center">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.source || scope.row.loginDevice ? 'success' : 'info'">
+            {{ scope.row.source || scope.row.loginDevice ? '已下载' : '未下载' }}
+          </el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="最后一次登录IP" align="center" prop="lastIp"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">

+ 7 - 2
src/views/store/user/myList.vue

@@ -102,8 +102,13 @@
          </template>
       </el-table-column>
       <el-table-column label="注册时间" align="center" prop="createTime" width="100px" />
-      <el-table-column label="APP来源" align="center" prop="source"/>
-      <el-table-column label="登录设备" align="center" prop="loginDevice"/>
+      <el-table-column label="是否下载APP" align="center">
+        <template slot-scope="scope">
+          <el-tag :type="scope.row.source || scope.row.loginDevice ? 'success' : 'info'">
+            {{ scope.row.source || scope.row.loginDevice ? '已下载' : '未下载' }}
+          </el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="最后一次登录IP" align="center" prop="lastIp"/>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">