4 Коміти 852aebb064 ... d6a708ca5c

Автор SHA1 Опис Дата
  lmx d6a708ca5c cid改动 2 днів тому
  lmx 9404e91a34 Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_companyUI 2 днів тому
  lmx 573d9bb572 Merge branch 'master' of http://1.14.104.71:10880/root/ylrz_his_scrm_companyUI 3 днів тому
  lmx 7f8a466e83 cid回调改动 3 днів тому

+ 5 - 2
src/views/company/companyConfig/index.vue

@@ -46,7 +46,9 @@
              <el-form-item label="是否允许重复客户导入" prop="allowRepeatCustomer">
              <el-form-item label="是否允许重复客户导入" prop="allowRepeatCustomer">
               <el-switch v-model="cidConfig.allowRepeatCustomer"></el-switch>
               <el-switch v-model="cidConfig.allowRepeatCustomer"></el-switch>
             </el-form-item>
             </el-form-item>
-
+            <el-form-item label="回调地址" prop="callbackUrl">
+               <el-input v-model="cidConfig.callbackUrl" style="width:800px"></el-input>
+            </el-form-item>
             <div class="line"></div>
             <div class="line"></div>
             <div style="float:right;margin-right:20px">
             <div style="float:right;margin-right:20px">
               <el-button type="primary" @click="onSubmitCidConfig">提交</el-button>
               <el-button type="primary" @click="onSubmitCidConfig">提交</el-button>
@@ -365,7 +367,8 @@ export default {
       userIsDefaultBlack: null,
       userIsDefaultBlack: null,
       redPacketConfig:{},
       redPacketConfig:{},
 
 
-      redPacketConfigForm:{}
+      redPacketConfigForm:{},
+      cidConfigForm:{}
     };
     };
   },
   },
   created() {
   created() {

+ 18 - 8
src/views/company/companyVoiceRobotic/index.vue

@@ -665,7 +665,7 @@
                             <i class="el-icon-s-operation"></i>
                             <i class="el-icon-s-operation"></i>
                             当前节点:<strong>{{ record.currentNodeTypeName }}</strong>
                             当前节点:<strong>{{ record.currentNodeTypeName }}</strong>
 
 
-                            <el-button
+                            <!-- <el-button
                               v-if="hasContent(record)"
                               v-if="hasContent(record)"
                               size="mini"
                               size="mini"
                               type="primary"
                               type="primary"
@@ -674,7 +674,7 @@
                               style="margin-left: 8px;"
                               style="margin-left: 8px;"
                               @click.stop="handleShowContent(record)">
                               @click.stop="handleShowContent(record)">
                                 查看对话内容
                                 查看对话内容
-                            </el-button>
+                            </el-button> -->
                             <!-- 外呼未执行标识 -->
                             <!-- 外呼未执行标识 -->
                             <el-button
                             <el-button
                                 v-if="record.waitCallNode"
                                 v-if="record.waitCallNode"
@@ -718,6 +718,16 @@
                           <div class="node-info">
                           <div class="node-info">
                             <i :class="getNodeIcon(log.nodeKey)" class="node-icon"></i>
                             <i :class="getNodeIcon(log.nodeKey)" class="node-icon"></i>
                             <span class="node-name">{{ log.nodeName }}</span>
                             <span class="node-name">{{ log.nodeName }}</span>
+                            <el-button
+                              v-if="hasContent(log)"
+                              size="mini"
+                              type="primary"
+                              plain
+                              icon="el-icon-chat-dot-round"
+                              style="margin-left: 8px;"
+                              @click.stop="handleShowContent(record,log)">
+                                查看对话内容
+                            </el-button>
                           </div>
                           </div>
                           <el-tag
                           <el-tag
                             :type="getStatusTagType(log.statusName)"
                             :type="getStatusTagType(log.statusName)"
@@ -1629,10 +1639,10 @@ export default {
       this.manualCallDialog.companyUserId = null;
       this.manualCallDialog.companyUserId = null;
       this.manualCallDialog.workflowInstanceId = null;
       this.manualCallDialog.workflowInstanceId = null;
     },
     },
-    handleShowContent(record) {
+     handleShowContent(record,log) {
       this.contentDialog.customerName = record.customerName || '';
       this.contentDialog.customerName = record.customerName || '';
       this.contentDialog.customerPhone = record.customerPhone || '';
       this.contentDialog.customerPhone = record.customerPhone || '';
-      this.contentDialog.content = record.contentList || '';
+      this.contentDialog.content = log.nodeContentList || '';
       this.contentDialog.visible = true;
       this.contentDialog.visible = true;
     },
     },
 
 
@@ -1660,12 +1670,12 @@ export default {
       }
       }
     },
     },
     hasContent(record) {
     hasContent(record) {
-      if (!record || !record.contentList) return false
+      if (!record || !record.nodeContentList) return false
 
 
       try {
       try {
-          const parsed = typeof record.contentList === 'string'
-              ? JSON.parse(record.contentList)
-              : record.contentList
+          const parsed = typeof record.nodeContentList === 'string'
+              ? JSON.parse(record.nodeContentList)
+              : record.nodeContentList
 
 
           if (!Array.isArray(parsed)) return false
           if (!Array.isArray(parsed)) return false
 
 

+ 24 - 0
src/views/company/companyWorkflow/design.vue

@@ -1430,6 +1430,12 @@ export default {
     startConnect(e, node, anchor) {
     startConnect(e, node, anchor) {
         if (this.readonlyMode) return
         if (this.readonlyMode) return
 
 
+        // 结束节点不能作为连线的起点(不允许结束节点有出边)
+        if (this.isEndNodeType(node.nodeType)) {
+          this.$message.warning('结束节点不能作为连线的起点')
+          return
+        }
+
         this.connecting = true
         this.connecting = true
         const anchorPos = this.getAnchorPos(node, anchor)
         const anchorPos = this.getAnchorPos(node, anchor)
         this.connectStart = {
         this.connectStart = {
@@ -1471,6 +1477,13 @@ export default {
         e.sourceNodeKey === sourceKey && e.targetNodeKey === targetKey)
         e.sourceNodeKey === sourceKey && e.targetNodeKey === targetKey)
       if (exists) return
       if (exists) return
 
 
+      // 不允许结束节点作为连线的起点(结束节点不能有出边)
+      const sourceNode = this.nodes.find(n => n.nodeKey === sourceKey)
+      if (sourceNode && this.isEndNodeType(sourceNode.nodeType)) {
+        this.$message.warning('结束节点不能作为连线的起点')
+        return
+      }
+
       this.edges.push({
       this.edges.push({
         edgeKey: 'edge_' + Date.now(),
         edgeKey: 'edge_' + Date.now(),
         sourceNodeKey: sourceKey,
         sourceNodeKey: sourceKey,
@@ -1659,6 +1672,17 @@ export default {
         }
         }
       }
       }
 
 
+      // 校验除结束节点外,其他节点都必须有出边(只有结束节点才能作为最后一个节点)
+      const sourceNodeKeys = new Set(this.edges.map(e => e.sourceNodeKey))
+      const tailNodes = this.nodes.filter(node =>
+        !this.isEndNodeType(node.nodeType) && !sourceNodeKeys.has(node.nodeKey)
+      )
+      if (tailNodes.length > 0) {
+        const tailNames = tailNodes.map(n => n.nodeName).join('、')
+        this.$message.warning(`以下节点没有出线连接,只有结束节点才能作为最后一个节点:${tailNames}`)
+        return
+      }
+
       // 校验短信节点和外呼节点配置
       // 校验短信节点和外呼节点配置
       for (const node of this.nodes) {
       for (const node of this.nodes) {
         // 短信节点校验:短信模版必选
         // 短信节点校验:短信模版必选