miaofuhao 5 months ago
parent
commit
8a8b91742b

+ 24 - 6
.env.development

@@ -4,20 +4,38 @@ VITE_APP_TITLE = 智能客服系统
4 4
 # 开发环境配置
5 5
 VITE_APP_ENV = 'development'
6 6
 
7
+# 是否在打包时开启压缩,支持 gzip 和 brotli
8
+# VITE_BUILD_COMPRESS = gzip
7 9
 
10
+# 后端接口地址
8 11
 VITE_APP_BASE_API = 'http://192.168.1.15:8320/'
12
+# 话务websocket地址
9 13
 VITE_APP_BASE_WS = 'ws://192.168.1.19:9000/ws'
10 14
 
11
-VITE_APP_PHONE_TYPE = 'SIP'  # SIP 网页电话 或PHONE 实体话机、软电话
12
-# VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或 PHONE 实体话机、软电话
15
+# 呼入电话类型(视频、语音,目前只有语音)
13 16
 VITE_APP_CALL_TYPE = 'VIOCE'
17
+
18
+# 电话类型(SIP:网页电话   PHONE:实体话机、软电话)
19
+VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或PHONE 实体话机、软电话
20
+# VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或 PHONE 实体话机、软电话
21
+
22
+
23
+### 网页电话配置-strt
14 24
 VITE_APP_SIP_URL = 'ws://192.168.1.19:5066'
15 25
 VITE_APP_SIP_IP = '192.168.1.19'
26
+# 分机注册密码
16 27
 VITE_APP_SIP_PASSWORD = '12345'
17 28
 VITE_APP_SIP_CONTACT_URL = "@192.168.1.19;transport=ws"
29
+### 网页电话配置-end
30
+
18 31
 
19
-# AI相关功能开启或关闭
32
+### AI相关配置-strt
33
+# ASR是否开启,true开启,false关闭
20 34
 VITE_APP_AI_ASR = true
21
-VITE_APP_AI_SEARCH = true
22
-VITE_APP_AI_API = 'http://222.213.23.249:3000/api/chat/completions'
23
-VITE_APP_AI_API_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ5YjBkZTIxLTNhZDQtNGJjNC05OTNkLTFhN2I2NDk1ZmU5ZCJ9.7PHjU1Pgg7-UPlLdbUm5pGGINkwxmKta96jlDXPCKu8'
35
+# openwebui接口地址
36
+VITE_APP_AI_API = 'http://xxx:3000/api/chat/completions'
37
+# openwebui接口密钥
38
+VITE_APP_AI_API_KEY = ''
39
+# AI搜索聊天是否开启,true开启,false关闭
40
+VITE_APP_AI_SEARCH = false
41
+### AI相关配置-end

+ 28 - 3
.env.production

@@ -4,13 +4,38 @@ VITE_APP_TITLE = 智能客服系统
4 4
 # 生产环境配置
5 5
 VITE_APP_ENV = 'production'
6 6
 
7
-# 若依管理系统/生产环境
7
+# 是否在打包时开启压缩,支持 gzip 和 brotli
8
+VITE_BUILD_COMPRESS = gzip
9
+
10
+# 后端接口地址
8 11
 VITE_APP_BASE_API = 'http://192.168.1.15:8320/'
12
+# 话务websocket地址
9 13
 VITE_APP_BASE_WS = 'ws://192.168.1.19:9000/ws'
10 14
 
11
-VITE_APP_PHONE_TYPE = 'PHONE'
15
+# 呼入电话类型(视频、语音,目前只有语音)
12 16
 VITE_APP_CALL_TYPE = 'VIOCE'
17
+
18
+# 电话类型(SIP:网页电话   PHONE:实体话机、软电话)
19
+VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或PHONE 实体话机、软电话
20
+# VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或 PHONE 实体话机、软电话
21
+
22
+
23
+### 网页电话配置-strt
13 24
 VITE_APP_SIP_URL = 'ws://192.168.1.19:5066'
14 25
 VITE_APP_SIP_IP = '192.168.1.19'
15
-VITE_APP_SIP_PASSWORD = '1234'
26
+# 分机注册密码
27
+VITE_APP_SIP_PASSWORD = '12345'
16 28
 VITE_APP_SIP_CONTACT_URL = "@192.168.1.19;transport=ws"
29
+### 网页电话配置-end
30
+
31
+
32
+### AI相关配置-strt
33
+# ASR是否开启,true开启,false关闭
34
+VITE_APP_AI_ASR = true
35
+# openwebui接口地址
36
+VITE_APP_AI_API = 'http://xxx:3000/api/chat/completions'
37
+# openwebui接口密钥
38
+VITE_APP_AI_API_KEY = ''
39
+# AI搜索聊天是否开启,true开启,false关闭
40
+VITE_APP_AI_SEARCH = false
41
+### AI相关配置-end

+ 28 - 6
.env.staging

@@ -4,16 +4,38 @@ VITE_APP_TITLE = 智能客服系统
4 4
 # 生产环境配置
5 5
 VITE_APP_ENV = 'staging'
6 6
 
7
-# 若依管理系统/生产环境
8
-VITE_APP_BASE_API = 'http://192.168.1.15:8320/'
7
+# 是否在打包时开启压缩,支持 gzip 和 brotli
8
+VITE_BUILD_COMPRESS = gzip
9 9
 
10
+# 后端接口地址
11
+VITE_APP_BASE_API = 'http://192.168.1.15:8320/'
12
+# 话务websocket地址
10 13
 VITE_APP_BASE_WS = 'ws://192.168.1.19:9000/ws'
11 14
 
12
-VITE_APP_PHONE_TYPE = 'PHONE'
15
+# 呼入电话类型(视频、语音,目前只有语音)
13 16
 VITE_APP_CALL_TYPE = 'VIOCE'
17
+
18
+# 电话类型(SIP:网页电话   PHONE:实体话机、软电话)
19
+VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或PHONE 实体话机、软电话
20
+# VITE_APP_PHONE_TYPE = 'PHONE'  # SIP 网页电话 或 PHONE 实体话机、软电话
21
+
22
+
23
+### 网页电话配置-strt
14 24
 VITE_APP_SIP_URL = 'ws://192.168.1.19:5066'
15 25
 VITE_APP_SIP_IP = '192.168.1.19'
16
-VITE_APP_SIP_PASSWORD = '1234'
26
+# 分机注册密码
27
+VITE_APP_SIP_PASSWORD = '12345'
17 28
 VITE_APP_SIP_CONTACT_URL = "@192.168.1.19;transport=ws"
18
-# 是否在打包时开启压缩,支持 gzip 和 brotli
19
-VITE_BUILD_COMPRESS = gzip
29
+### 网页电话配置-end
30
+
31
+
32
+### AI相关配置-strt
33
+# ASR是否开启,true开启,false关闭
34
+VITE_APP_AI_ASR = true
35
+# openwebui接口地址
36
+VITE_APP_AI_API = 'http://xxx:3000/api/chat/completions'
37
+# openwebui接口密钥
38
+VITE_APP_AI_API_KEY = ''
39
+# AI搜索聊天是否开启,true开启,false关闭
40
+VITE_APP_AI_SEARCH = false
41
+### AI相关配置-end

+ 0 - 22
.env.zzprod

@@ -1,22 +0,0 @@
1
-# 页面标题
2
-VITE_APP_TITLE = 智能客服系统
3
-
4
-# 生产环境配置
5
-VITE_APP_ENV = 'zzprod'
6
-
7
-# 若依管理系统/生产环境
8
-VITE_APP_BASE_API = 'http://1.194.161.64:8120/'
9
-VITE_APP_BASE_WS = 'ws://1.194.161.64:9000/ws'
10
-
11
-VITE_APP_PHONE_TYPE = 'PHONE'
12
-VITE_APP_CALL_TYPE = 'VIOCE'
13
-VITE_APP_SIP_URL = 'ws://1.194.161.64:5066'
14
-VITE_APP_SIP_IP = '1.194.161.64'
15
-VITE_APP_SIP_PASSWORD = '1234'
16
-VITE_APP_SIP_CONTACT_URL = "@1.194.161.64;transport=ws"
17
-
18
-# AI相关功能开启或关闭
19
-VITE_APP_AI_ASR = true
20
-VITE_APP_AI_SEARCH = true
21
-VITE_APP_AI_API = 'http://222.213.23.249:3000/api/chat/completions'
22
-VITE_APP_AI_API_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ5YjBkZTIxLTNhZDQtNGJjNC05OTNkLTFhN2I2NDk1ZmU5ZCJ9.7PHjU1Pgg7-UPlLdbUm5pGGINkwxmKta96jlDXPCKu8'

+ 8 - 4
README.md

@@ -1,22 +1,26 @@
1 1
 
2
-<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">12356心理援助热线</h1>
2
+<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">智能客服系统</h1>
3 3
 
4 4
 ## 前端运行
5 5
 
6 6
 ```bash
7 7
 # 克隆项目
8
-git clone http://localhost:3000/jiayi/base-callcenter-web.git
8
+git clone http://localhost:3000/jiayi/callcenter-web.git
9 9
 
10 10
 # 进入项目目录
11
-cd base-callcenter-web/
11
+cd callcenter-web/
12 12
 
13 13
 # 安装依赖
14 14
 yarn --registry=https://registry.npmmirror.com
15 15
 
16 16
 # 启动服务
17
-yarn dev --port 81
17
+yarn dev
18
+
19
+# 实时生成 tailwindcss 样式
20
+yarn css
18 21
 
19 22
 # 构建测试环境 yarn build:stage
20 23
 # 构建生产环境 yarn build:prod
21 24
 # 前端访问地址 http://localhost:80
25
+
22 26
 ```

+ 9 - 97
nginx.conf

@@ -48,97 +48,29 @@ http {
48 48
 	gzip on;
49 49
 	server {
50 50
 		listen       8081;
51
-			server_name  12.34.56.78;
51
+		server_name  12.34.56.78; # 修改为自己的域名或IP地址
52 52
 
53 53
 		location / {
54
-			root   /home/nuoyi/dist;
54
+			root   /home/website/web; # 修改为自己的网站目录
55 55
 			try_files $uri $uri/ /index.html;
56 56
 			index  index.html index.htm;
57
-			}
58
-			
59
-		location /prod-api/{
60
-			proxy_set_header Host $http_host;
61
-			proxy_set_header X-Real-IP $remote_addr;
62
-			proxy_set_header REMOTE-HOST $remote_addr;
63
-			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
64
-			proxy_pass http://localhost:8080/;
65 57
 		}
66
-		
67
-		error_page   500 502 503 504  /50x.html;
68
-			location = /50x.html {
69
-				root   html;
70
-			}
71
-	}
72
-	server {
73
-		listen       8111;
74
-			server_name  12.34.56.78;
75
-	
76
-		location / { 
77
-			root   /home/website/zxdt/web;
78
-			try_files $uri $uri/ /index.html;
79
-			index  index.html index.htm;
80
-			}
81
-			
82
-		location /wav/{
83
-			proxy_set_header Host $http_host;
84
-			proxy_set_header X-Real-IP $remote_addr;
85
-			proxy_set_header REMOTE-HOST $remote_addr;
86
-			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
87
-			proxy_pass http://192.168.1.10:9000/;
88
-		}
89
-		
90
-		error_page   500 502 503 504  /50x.html;
91
-			location = /50x.html {
92
-				root   html;
93
-			}
94
-	}
95
-	server {
96
-		listen       8011;
97
-			server_name  12.34.56.78;
98
-	
99
-		location / { 
100
-			root   /home/website/zxkf/UI;
101
-			try_files $uri $uri/ /index.html;
102
-			index  index.html index.htm;
103
-			}
104
-			
105
-		location /wav/{
106
-			proxy_set_header Host $http_host;
107
-			proxy_set_header X-Real-IP $remote_addr;
108
-			proxy_set_header REMOTE-HOST $remote_addr;
109
-			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
110
-			proxy_pass http://192.168.1.10:9000/;
111
-		}
112
-		
113
-		error_page   500 502 503 504  /50x.html;
114
-			location = /50x.html {
115
-				root   html;
116
-			}
117
-	}
118
-	server {
119
-		listen       9001;
120
-			server_name  12.34.56.78;
121
-	
122
-		location / {
123
-			root   /home/nuoyi/distFlow;
124
-			try_files $uri $uri/ /index.html;
125
-			index  index.html index.htm;
126
-			}
127 58
 			
128 59
 		location /prod-api/{
129 60
 			proxy_set_header Host $http_host;
130 61
 			proxy_set_header X-Real-IP $remote_addr;
131 62
 			proxy_set_header REMOTE-HOST $remote_addr;
132 63
 			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
133
-			proxy_pass http://localhost:8080/;
64
+			proxy_pass http://127.0.0.1:8080/; # 修改为自己的后端服务地址和端口
134 65
 		}
135 66
 		
136 67
 		error_page   500 502 503 504  /50x.html;
137
-			location = /50x.html {
138
-				root   html;
139
-			}
68
+		location = /50x.html {
69
+			root   html;
70
+		}
140 71
 	}
141 72
 	
73
+<<<<<<< HEAD
142 74
 	server {
143 75
 		listen       8091;
144 76
 			server_name  localhost;
@@ -427,6 +359,8 @@ http {
427 359
 	                            root   html;
428 360
 	                    }
429 361
 	    }
362
+=======
363
+>>>>>>> 8e11c447ddca117cb48dda325031fedf785a0ebe
430 364
 	# gzip_vary on;
431 365
 	# gzip_proxied any;
432 366
 	# gzip_comp_level 6;
@@ -441,25 +375,3 @@ http {
441 375
 	include /etc/nginx/conf.d/*.conf;
442 376
 	include /etc/nginx/sites-enabled/*;
443 377
 }
444
-
445
-
446
-#mail {
447
-#	# See sample authentication script at:
448
-#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
449
-# 
450
-#	# auth_http localhost/auth.php;
451
-#	# pop3_capabilities "TOP" "USER";
452
-#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
453
-# 
454
-#	server {
455
-#		listen     localhost:110;
456
-#		protocol   pop3;
457
-#		proxy      on;
458
-#	}
459
-# 
460
-#	server {
461
-#		listen     localhost:143;
462
-#		protocol   imap;
463
-#		proxy      on;
464
-#	}
465
-#}

+ 1 - 1
package.json

@@ -1,7 +1,7 @@
1 1
 {
2 2
   "name": "jiayi",
3 3
   "version": "1.0.0",
4
-  "description": "在线客服管理系统",
4
+  "description": "智能客服系统",
5 5
   "author": "加一",
6 6
   "license": "MIT",
7 7
   "scripts": {

+ 0 - 262
project-remark1.md

@@ -1,262 +0,0 @@
1
->微信公众号排版工具。问题或建议,请公众号留言。**[程序员翻身](#jump_8)**
2
-
3
-建议使用 **Chrome** 浏览器,体验最佳效果。
4
-
5
-使用微信公众号编辑器有一个十分头疼的问题:粘贴出来的代码,格式错乱,空间小还带行号,而且特别丑。Markdown.com.cn编辑器能够解决这个问题。
6
-
7
-Markdown是一种轻量级的「标记语言」。
8
-
9
-请阅读下方文本熟悉工具使用方法,本文可直接拷贝到微信中预览。
10
-
11
-## 1 Markdown.com.cn 简介
12
-
13
-- 支持自定义样式的 Markdown 编辑器
14
-- 支持微信公众号、知乎和稀土掘金
15
-- 点击右上方对应图标,一键复制到各平台
16
-
17
-## 2 Markdown语法教程
18
-
19
-### 2.1 标题
20
-
21
-不同数量的`#`可以完成不同的标题,如下:
22
-
23
-# 一级标题
24
-
25
-## 二级标题
26
-
27
-### 三级标题
28
-
29
-### 2.2 字体
30
-
31
-粗体、斜体、粗体和斜体,删除线,需要在文字前后加不同的标记符号。如下:
32
-
33
-**这个是粗体**
34
-
35
-*这个是斜体*
36
-
37
-***这个是粗体加斜体***
38
-
39
-~这里想用删除线~~
40
-
41
-注:如果想给字体换颜色、字体或者居中显示,需要使用内嵌HTML来实现。
42
-
43
-### 2.3 无序列表
44
-
45
-无序列表的使用,在符号`-`后加空格使用。如下:
46
-
47
-- 无序列表 1
48
-- 无序列表 2
49
-- 无序列表 3
50
-
51
-如果要控制列表的层级,则需要在符号`-`前使用空格。如下:
52
-
53
-- 无序列表 1
54
-- 无序列表 2
55
-  - 无序列表 2.1
56
-  - 无序列表 2.2
57
-
58
-**由于微信原因,最多支持到二级列表**。
59
-
60
-### 2.4 有序列表
61
-
62
-有序列表的使用,在数字及符号`.`后加空格后输入内容,如下:
63
-
64
-1. 有序列表 1
65
-2. 有序列表 2
66
-3. 有序列表 3
67
-
68
-### 2.5 引用
69
-
70
-引用的格式是在符号`>`后面书写文字。如下:
71
-
72
-> 读一本好书,就是在和高尚的人谈话。 ——歌德
73
-
74
-> 雇用制度对工人不利,但工人根本无力摆脱这个制度。 ——阮一峰
75
-
76
-### 2.7 链接
77
-
78
-微信公众号仅支持公众号文章链接,即域名为`https://mp.weixin.qq.com/`的合法链接。使用方法如下所示:
79
-
80
-对于该论述,欢迎读者查阅之前发过的文章,[你是《未来世界的幸存者》么?](https://mp.weixin.qq.com/s/s5IhxV2ooX3JN_X416nidA)
81
-<a id="jump_8"></a>
82
-### 2.8 图片
83
-
84
-插入图片,格式如下:
85
-
86
-![这里写图片描述](https://www.nginx.cn/wp-content/uploads/2020/03/qrcode_for_gh_82cf87d482f0_258.jpg)
87
-
88
-支持 jpg、png、gif、svg 等图片格式,**其中 svg 文件仅可在微信公众平台中使用**,svg 文件示例如下:
89
-
90
-![](https://markdown.com.cn/images/i-am-svg.svg)
91
-
92
-支持图片**拖拽和截图粘贴**到编辑器中。
93
-
94
-注:支持图片 ***拖拽和截图粘贴*** 到编辑器中,仅支持 https 的图片,图片粘贴到微信时会自动上传微信服务器。
95
-
96
-### 2.9 分割线
97
-
98
-可以在一行中用三个以上的减号来建立一个分隔线,同时需要在分隔线的上面空一行。如下:
99
-
100
----
101
-
102
-### 2.10 表格
103
-
104
-可以使用冒号来定义表格的对齐方式,如下:
105
-
106
-| 姓名       | 年龄  |         工作 |
107
-| :--------- | :---: | -----------: |
108
-| 小可爱     |  18   |     吃可爱多 |
109
-| 小小勇敢   |  20   |   爬棵勇敢树 |
110
-| 小小小机智 |  22   | 看一本机智书 |
111
-
112
-
113
-
114
-## 3. 特殊语法
115
-
116
-### 3.1 脚注
117
-
118
-> 支持平台:微信公众号、知乎。
119
-
120
-脚注与链接的区别如下所示:
121
-
122
-```markdown
123
-链接:[文字](链接)
124
-脚注:[文字](脚注解释 "脚注名字")
125
-```
126
-
127
-有人认为在[大前端时代](https://en.wikipedia.org/wiki/Front-end_web_development "Front-end web development")的背景下,移动端开发(Android、IOS)将逐步退出历史舞台。
128
-
129
-[全栈工程师](是指掌握多种技能,并能利用多种技能独立完成产品的人。 "什么是全栈工程师")在业务开发流程中起到了至关重要的作用。
130
-
131
-脚注内容请拉到最下面观看。
132
-
133
-### 3.2 代码块
134
-
135
-> 支持平台:微信代码主题仅支持微信公众号!其他主题无限制。
136
-
137
-如果在一个行内需要引用代码,只要用反引号引起来就好,如下:
138
-
139
-Use the `printf()` function.
140
-
141
-在需要高亮的代码块的前一行及后一行使用三个反引号,同时**第一行反引号后面表示代码块所使用的语言**,如下:
142
-
143
-```java
144
-// FileName: HelloWorld.java
145
-public class HelloWorld {
146
-  // Java 入口程序,程序从此入口
147
-  public static void main(String[] args) {
148
-    System.out.println("Hello,World!"); // 向控制台打印一条语句
149
-  }
150
-}
151
-```
152
-
153
-支持以下语言种类:
154
-
155
-```
156
-bash
157
-clojure,cpp,cs,css
158
-dart,dockerfile, diff
159
-erlang
160
-go,gradle,groovy
161
-haskell
162
-java,javascript,json,julia
163
-kotlin
164
-lisp,lua
165
-makefile,markdown,matlab
166
-objectivec
167
-perl,php,python
168
-r,ruby,rust
169
-scala,shell,sql,swift
170
-tex,typescript
171
-verilog,vhdl
172
-xml
173
-yaml
174
-```
175
-
176
-如果想要更换代码高亮样式,可在上方**代码主题**中挑选。
177
-
178
-其中**微信代码主题与微信官方一致**,有以下注意事项:
179
-
180
-- 带行号且不换行,代码大小与官方一致
181
-- 需要在代码块处标志语言,否则无法高亮
182
-- 粘贴到公众号后,用鼠标点代码块内外一次,完成高亮
183
-
184
-diff 不能同时和其他语言的高亮同时显示,且需要调整代码主题为微信代码主题以外的代码主题才能看到 diff 效果,使用效果如下:
185
-
186
-```diff
187
-+ 新增项
188
-- 删除项
189
-```
190
-
191
-**其他主题不带行号,可自定义是否换行,代码大小与当前编辑器一致**
192
-
193
-### 3.3 数学公式
194
-
195
-> 支持平台:微信公众号、知乎。
196
-
197
-行内公式使用方法,比如这个化学公式:$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$
198
-
199
-块公式使用方法如下:
200
-
201
-$$H(D_2) = -\left(\frac{2}{4}\log_2 \frac{2}{4} + \frac{2}{4}\log_2 \frac{2}{4}\right) = 1$$
202
-
203
-矩阵:
204
-
205
-$$
206
-  \begin{pmatrix}
207
-  1 & a_1 & a_1^2 & \cdots & a_1^n \\
208
-  1 & a_2 & a_2^2 & \cdots & a_2^n \\
209
-  \vdots & \vdots & \vdots & \ddots & \vdots \\
210
-  1 & a_m & a_m^2 & \cdots & a_m^n \\
211
-  \end{pmatrix}
212
-$$
213
-
214
-公式由于微信不支持,目前的解决方案是转成 svg 放到微信中,无需调整,矢量不失真。
215
-
216
-目前测试如果公式量过大,在 Chrome 下会存在粘贴后无响应,但是在 Firefox 中始终能够成功。
217
-
218
-### 3.4 TOC
219
-
220
-> 支持平台:微信公众号、知乎。
221
-
222
-TOC 全称为 Table of Content,列出全部标题。
223
-
224
-[TOC]
225
-
226
-由于微信只支持到二级列表,本工具仅支持二级标题和三级标题的显示。
227
-
228
-### 3.5 注音符号
229
-
230
-> 支持平台:微信公众号。
231
-
232
-支持注音符号,用法如下:
233
-
234
-Markdown Nice 这么好用,简直是{喜大普奔|hē hē hē hē}呀!
235
-
236
-### 3.6 横屏滑动幻灯片
237
-
238
-> 支持平台:微信公众号。
239
-
240
-通过`<![](url),![](url)>`这种语法设置横屏滑动滑动片,具体用法如下:
241
-
242
-<![蓝1](https://markdown.com.cn/images/blue.jpg),![绿2](https://markdown.com.cn/images/green.jpg),![红3](https://markdown.com.cn.jpg)>
243
-
244
-## 4 其他语法
245
-
246
-### 4.1 HTML
247
-
248
-支持原生 HTML 语法,请写内联样式,如下:
249
-
250
-<span style="display:block;text-align:right;color:orangered;">橙色居右</span>
251
-<span style="display:block;text-align:center;color:orangered;">橙色居中</span>
252
-
253
-### 4.2 UML
254
-
255
-不支持,推荐使用开源工具`https://draw.io/`制作后再导入图片
256
-
257
-
258
-## 5 致谢
259
-
260
-* 歌词经理 [wechat-fromat](https://github.com/lyricat/wechat-format "灵感来源")
261
-* 颜家大少 [MD2All](http://md.aclickall.com/ "MdA2All")
262
-

+ 1 - 1
src/views/main/workflow/ivr/LFComponents/NodePanel.vue

@@ -1,7 +1,7 @@
1 1
 <template>
2 2
   <div class="node-panel">
3 3
     <div class="node-type" v-for="(item, index) in treeList" :key="index" @mousedown="mousedownFunc(item)">
4
-      <SvgIcon style="width: 30px;height: 30px" :icon-class="item.type" color="#67C23A"/>
4
+      <SvgIcon style="width: 30px;height: 30px;margin-left: 15px;" :icon-class="item.type" color="#67C23A"/>
5 5
       <span style="display: block;">{{ item.name }}</span>
6 6
     </div>
7 7
    

+ 7 - 4
src/views/main/workflow/ivr/LFComponents/top.vue

@@ -27,9 +27,9 @@
27 27
     <template #footer>
28 28
       <div class="dialog-footer">
29 29
         <el-button @click="centerDialogVisible = false">取消</el-button>
30
-        <!-- <el-button type="primary" @click="savePlan">
30
+        <el-button type="primary" @click="savePlan">
31 31
           保存
32
-        </el-button> -->
32
+        </el-button>
33 33
       </div>
34 34
     </template>
35 35
   </el-dialog>
@@ -111,10 +111,13 @@ const savePlan = () => {
111 111
     if (valid) {
112 112
       saveLoading.value = true;
113 113
       const graphData = props.lf.getGraphData();
114
-      createPageData('/cycle/cycleplan', {
114
+      createPageData('/call/ivr', {
115 115
         name: form.name,
116 116
         content: form.content ?? '',
117
-        planDetails: JSON.stringify(graphData),
117
+        json: JSON.stringify({
118
+          flowName: form.name,
119
+          flowJson: graphData,
120
+        }),
118 121
       }).then((res) => {
119 122
         saveLoading.value = false;
120 123
         centerDialogVisible.value = false;

+ 7 - 4
src/views/main/workflow/ivr/index.vue

@@ -44,7 +44,7 @@ import NodePanel from './LFComponents/NodePanel.vue';
44 44
 import Control from './LFComponents/Control.vue';
45 45
 import top from './LFComponents/top.vue';
46 46
 import { ElMessage } from 'element-plus';
47
-// import { getPageListData } from '@/api/main/system/system';
47
+import { getPageListData } from '@/api/main/system/system';
48 48
 
49 49
 const props = defineProps({
50 50
   title: {
@@ -177,15 +177,18 @@ const $_registerNode = () => {
177 177
   $_render();
178 178
 };
179 179
 
180
+
180 181
 const $_render = async () => {
181 182
 
182 183
   let flowJson = {};
183 184
   if (cycleId.value) {
184 185
     // 获取数据
185
-    const result = null;//await getPageListData(`/cycle/cycleplan/${cycleId.value}`);
186
+    const result = await getPageListData(`/call/ivr`);
186 187
     console.log(result)
187
-    if (result && result.data?.planDetails) {
188
-      const details = JSON.parse(result.data.planDetails);
188
+    if (result && result.data?.length > 0) {
189
+      const flowDataInfo = result.data[0];
190
+      
191
+      const details = JSON.parse(flowDataInfo?.json)?.flowJson || {};
189 192
       // successNodes
190 193
       if (details.nodes && successNodes.value && successNodes.value.length > 0) {
191 194
         details.nodes = details.nodes.map((item) => {

+ 1 - 1
src/views/main/workflow/ivr/registerNode/sms/smsProperty.vue

@@ -104,7 +104,7 @@
104 104
   const tempList = ref(null);
105 105
 
106 106
   const getSmsTemplate = async () => {
107
-    getPageListData('/sms/template1', {
107
+    getPageListData('/sms/template', {
108 108
       // offset: 0,
109 109
       // size: 999,
110 110
     }).then(res => {

+ 12 - 0
src/views/main/workflow/ivr/registerNode/sql/sqlProperty.vue

@@ -254,6 +254,18 @@ onMounted(() => {
254 254
   propertyForm.name = props.nodeData.properties.name;
255 255
   propertyForm.desc = props.nodeData.properties.desc ? props.nodeData.properties.desc : '';
256 256
   propertyForm.attr = props.nodeData.properties.attr ? props.nodeData.properties.attr : {};
257
+  propertyForm.anchors = props.nodeData.properties.anchors? props.nodeData.properties.anchors : [];
258
+  console.log('props.nodeData.properties', props.nodeData.properties);
259
+
260
+  if (propertyForm.anchors.length) {
261
+    branchParams.show = true;
262
+    branchParams.showAdd = true;
263
+    propertyForm.nodeVars = [{
264
+      name: `${propertyForm.desc}结果`,
265
+      key: propertyForm.attr.id,
266
+      type: propertyForm.anchors[0].outParams.type,
267
+    }];
268
+  }
257 269
 
258 270
   // vars = [];
259 271
   // for (let key in propertyForm.attr) {