فهرست منبع

cid优化调整

lmx 11 ساعت پیش
والد
کامیت
7f84a21905

+ 8 - 0
src/api/crm/customer.js

@@ -22,6 +22,14 @@ export function listCustomerAll(query) {
     params: query
   })
 }
+export function listNoPage(query) {
+  return request({
+    url: '/crm/customer/listNoPage',
+    method: 'get',
+    params: query
+  })
+}
+
 export function getCustomerList(query) {
   return request({
     url: '/crm/customer/getCustomerList',

+ 20 - 3
src/views/company/companyWorkflow/design.scss

@@ -314,11 +314,28 @@
       .edge-group {
         cursor: pointer;
 
-        path {
+        // 交互路径 - 扩大点击区域
+        .edge-interaction {
+          pointer-events: stroke;
+        }
+
+        .edge-path {
           transition: all 0.2s;
+          pointer-events: none; // 让点击事件穿透到交互路径
+        }
 
-          &.selected {
-            stroke-width: 4;
+        // 悬停效果
+        &:hover {
+          .edge-path {
+            stroke-width: 3;
+            filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.2));
+          }
+        }
+
+        // 选中效果
+        &.selected {
+          .edge-path {
+            stroke-width: 3;
             filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.3));
           }
         }

+ 16 - 4
src/views/company/companyWorkflow/design.vue

@@ -110,14 +110,26 @@
               v-for="edge in edges"
               :key="edge.edgeKey"
               class="edge-group"
+              :class="{ selected: selectedEdge === edge }"
               @click.stop="selectEdge(edge)"
             >
+              <!-- 不可见的交互路径,用于扩大点击区域 -->
+              <path
+                :d="getEdgePath(edge)"
+                stroke="transparent"
+                stroke-width="16"
+                fill="none"
+                class="edge-interaction"
+                style="cursor: pointer"
+              />
+              <!-- 可见的连线路径 -->
               <path
                 :d="getEdgePath(edge)"
                 :stroke="edge.edgeColor || '#999'"
                 stroke-width="2"
                 fill="none"
                 :marker-end="selectedEdge === edge ? 'url(#arrowhead-selected)' : 'url(#arrowhead)'"
+                class="edge-path"
                 :class="{ selected: selectedEdge === edge }"
               />
               <text
@@ -383,7 +395,7 @@
                   />
                 </el-select>
               </el-form-item>
-              <el-form-item label="技能组">
+              <!-- <el-form-item label="技能组">
                 <el-select
                   v-model="selectedNode.nodeConfig.busiGroupId"
                   filterable
@@ -397,7 +409,7 @@
                     :value="item.groupId"
                   />
                 </el-select>
-              </el-form-item>
+              </el-form-item> -->
             </div>
 
             <!-- AI短信配置 -->
@@ -901,8 +913,8 @@ export default {
 
       const categoryMap = {
         basic: { key: 'basic', name: '基础节点', types: [] },
-        logic: { key: 'logic', name: '逻辑节点', types: [] },
-        aiCell: { key: 'aiCell', name: '外呼节点', types: [] },
+        // logic: { key: 'logic', name: '逻辑节点', types: [] },
+        aiCell: { key: 'aiCell', name: '动作节点', types: [] },
       }
       this.nodeTypes.forEach(t => {
         // 如果节点类型没有颜色,使用默认颜色

+ 60 - 2
src/views/crm/components/CustomerSelect.vue

@@ -89,7 +89,18 @@
           <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
         </el-form-item>
       </el-form>
-
+      <el-row :gutter="10" class="mb8" v-if="designatedCompany">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          @click="checkWithCondition()"
+        >按筛选条件选中
+        </el-button>
+      </el-col>
+    </el-row>
       <el-table border v-loading="loading" :data="customerList" :row-key="getRowKeys" @selection-change="handleSelectionChange" size="mini" ref="table" height="450">
         <el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
         <el-table-column label="ID" align="center" prop="customerId" />
@@ -153,7 +164,7 @@
 </template>
 
 <script>
-import { listCustomerAll  } from "@/api/crm/customer";
+import { listCustomerAll,listNoPage } from "@/api/crm/customer";
 import { getCompanyList } from "@/api/company/company";
 import customerDetails from '@/views/crm/components/customerDetails.vue';
 import editCustomerSource from '@/views/crm/components/editSource.vue';
@@ -451,6 +462,53 @@ export default {
         this.$refs.table.clearSelection();
       })
     },
+    //按照筛选条件选择客户
+    checkWithCondition(){
+
+    let queryParamNoPage = {};
+    queryParamNoPage = this.queryParams;
+    if(this.receiveTimeRange!=null&&this.receiveTimeRange.length==2){
+        queryParamNoPage.receiveTimeRange=this.receiveTimeRange[0]+"--"+this.receiveTimeRange[1]
+      }
+      else{
+        queryParamNoPage.receiveTimeRange=null;
+      }
+      if(this.ctsTypeArr.length>0){
+        queryParamNoPage.customerType=this.ctsTypeArr.toString();
+      }
+      else{
+        queryParamNoPage.customerType=null
+      }
+
+      if(this.sourceArr.length>0){
+        queryParamNoPage.source=this.sourceArr.toString();
+      }
+      else{
+        queryParamNoPage.source=null
+      }
+      if(this.tagIds.length>0){
+        queryParamNoPage.tags=this.tagIds.toString();
+      }
+      else{
+        queryParamNoPage.tags=null
+      }
+      listNoPage(this.addDateRange(queryParamNoPage, this.dateRange)).then(response => {
+        let resList = response.rows; 
+        this.ids = [];
+        this.names = [];
+        this.rows = [];
+        if(!!resList){
+          this.ids = resList.map(item => item.customerId);
+          this.names = resList.map(item => item.customerName);
+          this.rows = resList;
+        }
+        this.$nextTick(() => {
+        this.$emit("success", {ids: this.ids, names: this.names, rows: this.rows})
+        this.shows = false;
+        this.$refs.table.clearSelection();
+      })
+      });
+    }
   }
 };
 </script>

+ 1 - 1
src/views/crm/components/aiCallVoiceLog.vue

@@ -101,7 +101,7 @@ export default {
                 });
             },
             handleRecordPath(url){
-                let path = 'http://118.24.138.129/recordFile/listen?file=' + url;
+                let path = 'http://129.28.164.235:8899/recordings/files?filename=' + url;
                 console.log(path);
                 return path;
             }