Compare commits

237 Commits
Author SHA1 Message Date
lianlonggang 4c30187435 feat(急救服务平台): 附近资源聚合展示与路径规划优化
- 新增 Map.createClusterOverlay:30m 内点位合并为带数字徽标的聚合
  marker,聚合点与独立 marker 按距离用户统一编号 1, 2, 3...
- 聚合徽标使用纯色圆 + 数量 N + 左上角位置编号角标,hover 显示簇内
  数量与最近资源名称
- 点击聚合 marker 弹 isCustom InfoWindow 列表,自带关闭按钮 + 选中
  触发原有路径规划回调
- 独立 marker 用 typeToIcon 纯 url 同步渲染,canvas 角标异步叠加
  失败不影响主渲染
- 修复 removeOverlayGroup 未关闭簇列表弹窗的 bug
- confirmHelp 加 createOverlay1 fallback,聚合层异常时回退原渲染
2026-09-16 09:52:47 +08:00
weixinandClaude Opus 4.7 9431553951 feat(新疆大屏): 新增体温异常预警提示音
- public:新增 temperature.mp3 体温异常告警音效
- src/utils/socket.ts:体温异常告警接入语音播报,播放提示音,停止告警时关闭音效

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-08-28 18:14:59 +08:00
lianlonggang 5293b509b2 fix(all): 去客户化处理 2026-08-06 18:01:00 +08:00
weixin f55544321b feat(应急就医): 新增摔倒预警提示音文件
- public:添加 fall_down.mp3 摔倒检测告警音效
2026-07-23 16:58:13 +08:00
weixin ecd1e5cd46 chore(config): 更新心理咨询热线
- 7*24小时心理咨询热线更新为400-6633-330
2026-07-01 10:55:27 +08:00
weixin a22c59f220 feat(应急就医):
三个预警的音效,心率和血氧只响一遍,一键报警不变
2026-06-29 15:21:41 +08:00
weixin c33ad0d807 feat(应急就医): WebSocket告警消息接入语音播报
心率异常/一键告警/血氧异常分别触发对应提示音,确认帮助后自动停止当前告警音效。
2026-06-17 14:43:29 +08:00
lianlonggang 7b6d6e52b2 fix(indexSun): 修复表单重置逻辑顺序问题
- 调整 getField() 调用时机以确保表单状态正确重置
- 优化表单记录和状态对象的初始化流程
- 确保字段获取在表单数据清空后执行
2026-04-14 10:47:15 +08:00
lianlonggang 336a881855 feat(indexSun): 添加年份输入字段
- 在表单中新增年份输入框配置
- 设置默认值为当前年份
- 使用 dayjs 获取当前年份作为默认值
- 配置字段类型为 input,标签显示为 年份
2026-04-14 10:34:39 +08:00
lianlonggang 9f6deb49a0 fix(healthConsultation): 修复医生头像图片加载问题
- 将 a-image 组件替换为原生 img 标签以解决图片显示问题
- 移除 ant-design-vue 的 Image 组件依赖
- 添加图片加载失败时的错误处理函数
- 设置默认头像图片路径并实现错误回退机制
- 更新图片获取逻辑使用新的默认头像资源
2026-04-10 18:23:06 +08:00
lianlonggang 4d9b1ac3cb 性别字典翻译问题修正 2026-04-10 12:38:05 +08:00
weixin e021bad791 update
1.修改新疆应急图例等问题
2026-01-22 14:48:32 +08:00
weixin 8095b6b503 update
1.关爱人员、急救人员名称超出后,替换为...
2026-01-21 09:15:52 +08:00
weixin 8cc8945b68 update
1.更换咨询大屏咨询电话
2026-01-15 17:48:14 +08:00
weixin bbb2cdc04e update 2026-01-08 16:49:21 +08:00
weixin c583f85516 update 2026-01-08 14:57:41 +08:00
weixin 849fc8778d update 2026-01-06 09:04:10 +08:00
weixin 49597a4dd2 update 2026-01-05 16:47:31 +08:00
weixin 1c908284e6 update 2025-12-29 16:41:28 +08:00
weixin 6241504095 update 2025-12-29 15:37:36 +08:00
17792275749 4f9d79461c 视频改为接口获取 2025-12-29 15:03:11 +08:00
17792275749 bb0536c7e4 首屏添加视频播放 2025-12-29 13:34:44 +08:00
weixin d95a6942cb update 2025-12-29 09:24:43 +08:00
weixin bbc5685be0 update
1.修改新疆反馈问题(12.24)
2.修改健康咨询大屏不定时刷新问题
2025-12-25 16:07:50 +08:00
weixin f943ee8df3 update
1.修改新疆反馈问题(12.24)
2025-12-25 09:40:20 +08:00
weixin 0b67be998a update 2025-12-24 17:10:59 +08:00
weixin 482d165651 update 2025-12-24 14:51:07 +08:00
weixin 822fecc3b1 update
1.根据新疆反馈(12.22),修改相关问题
2025-12-24 14:42:16 +08:00
weixin f2570ef494 update
1.根据新疆反馈(12.22),修改相关问题
2025-12-23 16:25:06 +08:00
weixin 8c9eafa2fb update
1.根据新疆反馈,修改相关问题
2025-12-17 14:02:31 +08:00
weixin ded845793a update
1.根据新疆反馈,修改相关问题
2025-12-17 11:16:06 +08:00
weixin 53195cc5c2 update
1.根据新疆反馈,修改相关问题
2025-12-16 18:46:11 +08:00
weixin 87490ae4b5 update
1.修改云坐席时,不显示地理位置相关
2.修改应急求助,单位部门字段互换
3.更新请求地址信息
2025-12-15 14:53:32 +08:00
weixin faa0fa991c update
1213问题修改
2025-12-13 19:00:02 +08:00
weixin 5589f92e72 update
1.修改规划路线时,路程计算问题
2025-12-04 16:25:56 +08:00
weixin 4db07874f5 update 2025-12-03 18:12:30 +08:00
weixin e09f90203f update 2025-12-03 17:46:49 +08:00
weixin 593c8bfe0b update
1.更换部分模块接口
2025-12-03 16:13:20 +08:00
weixin 61e83f6c78 update
1.修改“未获取位置信息”没有及时去掉问题
2025-11-24 17:51:11 +08:00
weixin 4e1c4b87c4 update
1.更新高德秘钥
2025-11-12 13:53:58 +08:00
weixin ea062a4ba9 update
1.替换高德地图key
2025-11-12 11:27:07 +08:00
lianlonggang cb8f23e9ab 处理咨询大屏图片地址问题 2025-11-05 17:46:46 +08:00
lianlonggang 9407ba979c 恢复代码 2025-11-05 16:42:12 +08:00
weixin 626fb84a6b update
1.更换首页图标
2025-11-05 16:36:16 +08:00
weixin c7f571399a update
1.调整首页图标及界面
2025-11-04 09:32:06 +08:00
weixin ef86526095 update
1.调整图标大小
2025-11-03 13:52:18 +08:00
weixin f617922cd3 update
1.应急事件显示信息过长,精简一下。
2.救护车图标配色调整
3.医院图标增大一点,显示图标及应急求助时的推荐图标
4.急救弹窗添加呼吸效果
5.急救路线搜索框,控制只搜索新疆境内
6.咨询大屏也要监听事件并弹出弹窗
2025-10-31 17:51:22 +08:00
lianlonggang f44e372210 错别字处理 2025-10-24 19:38:32 +08:00
weixin f12c73a911 update
1.修改血压为压力
2025-10-21 17:57:11 +08:00
weixin 17f9478233 update
1.修改跳转安眼逻辑
2025-10-14 14:45:13 +08:00
weixin 98ff86f89c update
1.添加新疆大屏新首页
2025-10-13 15:37:36 +08:00
lianlonggang 028cc03aeb docker替换变量,只在production环境进行处理 2025-10-13 14:53:54 +08:00
lianlonggang ba91d7ff13 主诉分类修改成应急求助信息 2025-10-13 14:12:07 +08:00
lianlonggang 5d2249d4c7 使用DOCKER环境变量替换网关链接 2025-10-13 14:10:33 +08:00
weixin 28c61a0731 update 2025-09-30 10:47:44 +08:00
huangzhen c9f075b106 健康咨询平台实时时间 2025-09-30 10:18:06 +08:00
huangzhen 7775b14bba 健康咨询平台实时时间 2025-09-30 10:11:54 +08:00
weixin e4d3e3ba1c update
1.修改大屏问题
2025-09-29 15:41:01 +08:00
weixin 7154314e93 update
1.修改大屏问题及添加新需求
2025-09-26 18:57:17 +08:00
huangzhen f024615260 Merge branch 'dev' of https://gitea.rk-health.com/renkang/xj-screen into dev 2025-09-25 14:57:47 +08:00
huangzhen d103785a45 健康咨询平台大屏 2025-09-25 14:57:31 +08:00
weixin c7abcf1f67 update
1.新需求2025.9.19新需求:
去掉"健康监测"副屏, 修改后健康终端报警点击查看详情弹出告警记录分页列表;
去掉【体检人数统计】【体检数据】【健康打卡数据】,增加【心血管监测】模块功能,【心血管监测】功能将原心血管监测大屏上的内容整理并移动到急救服务平台大屏中;
员工求助时,地图中推荐两个医院、两个健康小屋、两个AED坐标信息,并按距离排序,体现距离远近顺序;
地图中油田医院、健康小屋等各个图例,显示总数信息;
救护车坐标信息维护,并在大屏上标记;
右上角"增加【救助信息】板块, 当出现应急弹窗后或从今日应急选中应急事件 , 该板块需展示应急事件的相关信息(开发中);
2025-09-24 20:53:28 +08:00
weixin a97d9c64aa update
1.新疆大屏新需求
2025-09-19 18:34:40 +08:00
lianlonggang 1714ff19f5 使用DOCKER环境变量替换网关链接 2025-09-12 17:33:07 +08:00
xf bd2d066314 update: 大屏接口 2025-08-13 10:34:30 +08:00
xf 832291570f update: 隐藏服务详情周月年切换 2025-07-31 09:18:45 +08:00
weixin 3755349ea8 update
1.docker新疆配置更新
2.修改请求地址
2025-07-28 11:32:20 +08:00
weixin 68548362eb update
1.docker新疆配置
2025-07-25 10:53:47 +08:00
lianlonggang baec4e1ff0 使用临时域名 2025-07-25 10:04:20 +08:00
lianlonggang 0a59f01616 去掉新疆油田字眼 2025-07-24 15:55:46 +08:00
xf ff78173b25 update: 大屏接口 2025-07-15 09:05:21 +08:00
weixin a89cc758f7 update
1.优化
2025-07-11 09:05:03 +08:00
xf 8a386eba5b update: 大屏接口 2025-07-10 13:42:16 +08:00
xf b56efa9f7f update: 大屏接口 2025-07-10 10:08:28 +08:00
weixin 269e35d19b update
1.优化
2025-07-10 09:44:51 +08:00
weixin b61ca7f567 update
1.添加急救路线
2025-07-09 19:38:59 +08:00
xf b52d46cd76 update: 大屏接口 2025-07-09 18:48:47 +08:00
xf 4b8f3ae1ef update: 大屏接口 2025-07-09 18:31:19 +08:00
weixin cf129e6d23 update
1.优化
2025-07-09 17:33:51 +08:00
xf cd1b085499 update: 大屏接口 2025-07-09 17:30:39 +08:00
xf 055e28b457 update: 大屏接口 2025-07-09 17:18:00 +08:00
xf b0a16c6f0b update: 大屏接口 2025-07-09 15:20:59 +08:00
xf 91abcfd78d update: 大屏接口 2025-07-09 15:10:30 +08:00
weixin f6e5bb78da update
1.优化
2025-07-08 17:50:37 +08:00
xf 7565056a7e update: 大屏接口 2025-07-08 17:47:36 +08:00
weixin 726bd19ad3 update
1.修改部分问题(路线等问题)
2.添加定时器
2025-07-08 17:32:13 +08:00
xf 67a2ea75d1 update: 大屏接口 2025-07-08 17:20:31 +08:00
xf b55bc1857a update: 大屏接口 2025-07-08 17:12:55 +08:00
weixin 8a630dd1cd update
1.修改socket弹窗等
2025-07-08 16:00:47 +08:00
xf 07f14c7703 update: 大屏接口 2025-07-08 15:52:42 +08:00
xf a2da7e4be7 update: 大屏接口 2025-07-08 10:11:15 +08:00
weixin 01f3339833 update 2025-07-08 09:14:22 +08:00
xf aa71fd5c7e update: 新疆大屏 2025-07-06 18:03:41 +08:00
xf 86ed8341e2 update: 新疆大屏 2025-07-06 15:04:39 +08:00
xf 22c5b89f90 update: 初始化:新疆大屏基础搭建 2025-07-02 18:14:20 +08:00
xf 7e2346f5fb update: 初始化:新疆大屏基础搭建 2025-07-02 16:23:37 +08:00
xf ff493d83d9 update: 初始化:新疆大屏基础搭建 2025-07-02 13:48:50 +08:00
xf 1cbda373e0 update: 初始化 2025-07-01 10:05:17 +08:00
xf 0a6843406a update: 初始化 2025-06-30 11:10:12 +08:00
xf 8b9c3abf77 update: 初始化 2025-06-30 11:09:27 +08:00
weixin 2db1e6d33c update
1.青海大屏
2025-06-19 16:15:43 +08:00
weixin 25b8acdda6 update
1.修改websocket,多窗口可以同时弹窗
2025-05-23 14:16:01 +08:00
weixin 736ee91e93 update
1.手表监测弹窗上报时间/发生时间修改
2025-05-08 09:46:48 +08:00
weixin fd02cf131a update
1.修改手表监测来通知,更新页面数据
2025-04-27 15:24:55 +08:00
weixin 48a137133d update
1.右上角手表应急添加日月周累计(庆阳大屏)
2025-04-27 09:37:20 +08:00
weixin 5c3bf4a7ed update 2025-04-21 10:41:59 +08:00
weixin 35c5625e1b update
1.添加庆阳大屏柱状图
2025-04-21 10:24:47 +08:00
weixin 8dc44b465b update
1.修改查看健康终端报警,不需要时间筛选
2025-04-03 12:36:29 +08:00
weixin 58d3b5a933 update
1.修改table模块,改回原有逻辑
2025-03-25 15:34:10 +08:00
weixin 988c2365de update
1.修改大屏逻辑,只有庆阳大屏查询当天数据,其余大屏查询所有数据
2.修改table模块,监听变化后,才更新列表
2025-03-25 11:59:16 +08:00
weixin 2fac32d002 update
1.修改庆阳大屏
2025-03-11 18:30:30 +08:00
weixin 0b48810f5c update
1.手表监测添加参数,查询当天信息
2025-03-05 15:20:20 +08:00
weixin a4bddba648 update
1.修改提示弹窗
2024-12-12 16:23:05 +08:00
weixin 8e9426eb45 update
1.添加弹窗提示音
2024-12-12 16:13:25 +08:00
weixin 6484e08fdc update
1.修改标准化大屏标题逻辑
2024-12-08 12:01:24 +08:00
项富 cd2a16dde5 修改手表弹窗 2024-12-02 13:26:01 +08:00
weixin bfb10320f7 update 2024-11-22 13:24:34 +08:00
weixin 7da4003f6b update
1.修改登录逻辑,大屏登录问题
2024-11-21 10:10:21 +08:00
weixin 01d2ee0665 update
1.修改登录逻辑,大屏登录问题
2024-11-21 09:45:16 +08:00
weixin 983c92ce48 update 2024-11-14 14:47:48 +08:00
weixin f81fb4a868 update
1.修改标准化大屏跳转逻辑,根据获取分中心信息,进行跳转至对应页面
2024-11-14 13:04:05 +08:00
weixin 1cfc2e5d89 update 2024-11-07 09:19:14 +08:00
weixin 35380d4114 update
1.打开标准化大屏的求助websocket
2024-10-31 09:23:11 +08:00
weixin af8fe6ca21 update
1.修改弹窗结构
2024-10-28 17:53:23 +08:00
weixin 68047001d1 update
1.银川大屏新增急救数据模块
2024-10-23 15:22:57 +08:00
weixin 09f4ddc2d7 update
1.银川大屏新增急救数据模块
2024-10-23 15:20:57 +08:00
weixin 27beb42eb0 update
1.修改逻辑,每次刷新后都会重新调用应急中心信息接口,重新处理
2024-10-16 17:38:15 +08:00
weixin 64feafb1d5 update
1.修改特殊大屏(宽度200%,偏移中心)
2.设置特殊参数/specialScreen
3.添加隐藏退出功能
2024-10-16 14:04:27 +08:00
zk 1aaf8e7120 update 2024-10-10 13:54:17 +08:00
zk 4394844890 文件 2024-10-10 13:17:07 +08:00
zk 3df70a2b3f update 2024-10-09 09:40:20 +08:00
zk f3ca399b85 update 2024-10-09 09:39:50 +08:00
zk b525fc08eb update 2024-10-09 09:21:53 +08:00
zk 216d0be436 update 2024-09-29 11:20:39 +08:00
zk b0b2bf2838 update 2024-09-29 11:20:02 +08:00
zk 389ed8d5f1 update 2024-09-29 10:41:19 +08:00
zk 51e33f6f0b update 2024-09-27 11:10:58 +08:00
zk 46a3752d74 update 2024-09-23 17:20:51 +08:00
zk 1a05b92fee update 2024-09-23 16:52:02 +08:00
zk c2e0d26094 update 2024-09-23 16:50:53 +08:00
zk 278e91c262 update 2024-09-23 16:43:57 +08:00
zk ca4a9a8c28 update 地图接口调整 2024-09-20 14:45:13 +08:00
zk ed8fc6f8a6 update 2024-09-20 14:32:16 +08:00
项富 ed5810611f update: 修改接口路径,弹窗搬运 2024-09-20 14:30:48 +08:00
项富 b871eabb08 update: 几个弹窗 2024-09-20 13:59:12 +08:00
zk 51af62e164 update 2024-09-20 13:27:51 +08:00
zk 094e88a79e update 增加新版大屏 2024-09-20 09:28:11 +08:00
zk 01519c97ec update 调整模拟数据 2024-09-04 17:33:05 +08:00
zk 28cb5cbb9b update:测试界面不做登录校验 2024-09-03 17:39:01 +08:00
zk d166e3e2d6 update 2024-08-29 15:18:41 +08:00
zk 7693850d47 update 2024-08-29 15:14:04 +08:00
zk a9fedaf124 update 优化弹窗显示效果 2024-07-24 14:19:47 +08:00
zk 830ad950c3 update 2024-07-08 17:24:43 +08:00
zk e625073dcc update 2024-07-08 17:08:39 +08:00
zk e367d13c78 update 弹窗增加手机号字段,增加预警详情弹窗 2024-07-08 15:22:03 +08:00
zk b732e3ab64 update 2024-07-04 15:12:58 +08:00
zk 352948e98b update 增加应急单弹窗、调整echart图表 2024-07-03 10:31:13 +08:00
zk a1850b95b6 update 修改颜色 2024-07-02 13:59:18 +08:00
zk 9e8a5da257 update 调整大病人数类型 2024-07-02 10:35:46 +08:00
zk 8551369cfb update 云坐席弹窗WebSocket 2024-07-01 14:46:01 +08:00
zk 80745c9d8c update 2024-07-01 10:36:12 +08:00
zk 292a32a311 update 调整权限问题 2024-06-27 14:41:46 +08:00
zk 752405b9a4 update 2024-06-27 11:26:55 +08:00
zk 778e350959 update 调整样式· 2024-06-17 11:56:02 +08:00
zk de77657b64 update 调整样式 2024-06-17 10:45:19 +08:00
zk 205273fd61 update 调整应急大屏样式· 2024-06-16 14:46:23 +08:00
zk 1645f16579 update 调整样式 2024-06-15 18:26:15 +08:00
zk fc6e3a736e update 调整样式· 2024-06-15 16:22:48 +08:00
weixin dcf14220b3 update
1.副屏标题
2024-06-15 16:21:54 +08:00
zk 0f391ffc22 update 调整样式· 2024-06-15 15:51:18 +08:00
zk e16b9e054e update 调整样式· 2024-06-15 13:52:49 +08:00
weixin f6129b7aa4 update
1.更新西安大屏样式
2024-06-15 13:51:44 +08:00
zk 1adff85a83 update 调整样式· 2024-06-15 12:08:57 +08:00
weixin 78e5bab6a9 update
1.更新西安大屏样式
2024-06-15 12:06:57 +08:00
zk 7ee32fb8d9 update 调整样式· 2024-06-15 11:46:49 +08:00
zk 14c50baeed update 优化地图工具方法,调整地图样式 2024-06-14 18:11:09 +08:00
zk 83f768a4a0 update 增加菜单权限校验 2024-05-28 14:37:29 +08:00
zk 0eb5fad72f 增加地图元素清空功能,完成附近医院路线规划功能 2024-05-23 15:05:34 +08:00
zk 1599ffd6d8 add 添加图片 2024-05-22 17:06:03 +08:00
zk 062afc3d71 update 调整位置为空时的文字样式,调整表格组件 2024-05-21 16:11:13 +08:00
zk 8c7e4a6e91 update 关闭浏览器时缓存当前页面 2024-05-21 16:08:35 +08:00
zk 16e85fe15d update 银川地图中心点做特殊处理 2024-05-21 16:07:12 +08:00
zk f3f100cd18 update 进入登录页时验证缓存token是否有效 2024-05-21 16:06:02 +08:00
zk 510f34953f update 调整websocket 2024-05-20 15:25:12 +08:00
zk 60be7c4fe2 update 优化token失效后跳转登录页的逻辑 2024-05-20 11:14:09 +08:00
zk 6ff0b25f1b update 后台跳转大屏免登录,优化登录数据缓存 2024-05-18 15:16:10 +08:00
zk cb2a823d25 update 2024-05-17 16:12:10 +08:00
zk 7444e6ff75 update 2024-05-17 16:10:51 +08:00
weixin ce2b8f5837 update
1.修改列表分页问题
2024-05-17 13:25:28 +08:00
zk 13faaa92a6 update 调整银川大屏和西安大屏 2024-05-17 13:07:39 +08:00
zk 45aec85fad update 调整大屏各个模块参数及样式 2024-05-16 15:53:04 +08:00
zk adca7ae65e update 添加银川大屏 2024-05-16 15:51:02 +08:00
zk 1c908b0615 update 添加图标 2024-05-16 15:49:12 +08:00
zk 65a3ee7eb5 update 调整省边界线 2024-02-20 13:19:54 +08:00
zk 2def3738c2 更改 2024-02-20 13:18:30 +08:00
weixin ef3e1c3b31 update
1.修改睡眠模块,总览添加步数模块
2024-01-22 17:42:45 +08:00
zk 5cf32ce40e update:大屏调整 2024-01-22 15:49:00 +08:00
zk 84dfa935ea update:大屏调整 2024-01-12 15:07:49 +08:00
zk 3459db992c update 2024-01-09 14:16:30 +08:00
weixin f016fdc69f update
1.睡眠缺少单位问题
2023-12-29 14:54:46 +08:00
zk ecbd690117 Merge branch 'test' into dev
# Conflicts:
#	src/components/secondaryScreen/secondMap/components/userInfoModal/sleep.vue
2023-12-28 17:19:53 +08:00
zk 88c9ac1576 update 2023-12-28 17:16:08 +08:00
weixin 861d9e4798 update
1.睡眠图标缺失字段
2023-12-28 17:13:53 +08:00
zk 1d28db6839 Merge branch 'dev' into test 2023-12-27 18:34:47 +08:00
zk f93e2dccae update 2023-12-27 18:34:06 +08:00
zk 6352e5dd21 Merge branch 'dev' into test 2023-12-27 18:05:16 +08:00
zk 36f484d028 update 2023-12-27 18:00:39 +08:00
weixin 63eb01d641 update
1.用户数据左侧没有工号
2.样式问题
2023-12-27 17:55:35 +08:00
weixin a0ffce1fa7 update
1.睡眠模块:深睡、浅水颠倒问题
2023-12-27 16:05:46 +08:00
weixin 626fbf9085 update
1.压力模块接口调用错误
2023-12-27 14:44:13 +08:00
weixin c1474f0c64 update
1.体温模块字段变更
2023-12-27 10:59:49 +08:00
zk dfcf737258 update 2023-12-27 09:14:48 +08:00
zk 98abe8d9ca Merge branch 'dev' into test 2023-12-27 09:14:17 +08:00
zk 2e106c4731 update 2023-12-27 09:13:09 +08:00
zk dd89375d40 update 2023-12-26 17:39:59 +08:00
zk 541fbb4b0a update 2023-12-22 17:42:54 +08:00
zk 22a4132300 update 2023-12-22 17:15:26 +08:00
zk b9f2b3b521 update 2023-12-22 16:57:16 +08:00
zk dd5a47e7fb update 2023-12-21 16:42:22 +08:00
zk 5a33aa1df4 update 2023-12-21 14:07:18 +08:00
zk 568c0132e7 update 2023-12-21 09:04:17 +08:00
zk 9230f659c1 update 2023-12-21 09:02:45 +08:00
weixin 1c65f18bab update
1.修改样式
2023-12-20 10:36:22 +08:00
zk 3cc95902ae update 2023-12-20 10:25:06 +08:00
zk ce85f39c11 update 2023-12-20 09:08:13 +08:00
zk 26f4a6ad81 update 2023-12-20 09:05:44 +08:00
zk 8dccce0208 update 2023-12-19 18:10:46 +08:00
zk 3e53c75a6f update 2023-12-19 14:41:00 +08:00
zk e732938a34 update 2023-12-19 14:26:27 +08:00
zk cf29ea07c1 update 2023-12-19 12:49:00 +08:00
zk 5342774ca5 update 2023-12-19 12:41:15 +08:00
zk 9b5be1af25 update 2023-12-19 10:46:50 +08:00
zk 8cb7d4baf8 update 2023-12-19 09:09:11 +08:00
zk 12ae90f274 add svg 2023-12-19 09:04:24 +08:00
SkyJourney 2501a5e6be 构建去掉ts类型检测 2023-12-19 05:58:37 +08:00
SkyJourney 6c2510147f 更新自动化脚本 2023-12-19 05:51:36 +08:00
SkyJourney 6c5e3e8f06 添加开发环境和测试环境自动化配置,修正eslint配置和依赖 2023-12-19 05:37:04 +08:00
252 changed files with 39790 additions and 1584 deletions
+4
View File
@@ -0,0 +1,4 @@
# 选择更小体积的基础镜像
FROM nginx:stable-alpine
COPY ./default.conf /etc/nginx/conf.d
COPY ./dist /usr/share/nginx/html
+12
View File
@@ -0,0 +1,12 @@
version: "3.9"
services:
ms-service:
build:
dockerfile: Dockerfile
context: .
tags:
- "${IMAGE_NAME}:${IMAGE_TAG_LATEST}"
- "${IMAGE_NAME}:${IMAGE_TAG_COMMIT}"
- "${REGISTER_HOST}/${REGISTER_REPO}/${IMAGE_NAME}:${IMAGE_TAG_LATEST}"
- "${REGISTER_HOST}/${REGISTER_REPO}/${IMAGE_NAME}:${IMAGE_TAG_COMMIT}"
+31
View File
@@ -0,0 +1,31 @@
#版本
version: '3.9'
x-template:
service: &service_tmp
restart: always
tty: true
deploy:
resources:
limits:
cpus: '2'
memory: 1G
reservations:
cpus: '0.5'
memory: 256M
extra_hosts:
- "yg.dt.io:192.168.1.5"
#服务配置
services:
emergency-screen:
<<: *service_tmp
container_name: es_${PROFILE_NAME}
hostname: es_${PROFILE_NAME}
image: ${IMAGE_NAME}:${IMAGE_TAG_LATEST}
networks:
default:
name: ${NETWORK_NAME}
external: true
+8
View File
@@ -0,0 +1,8 @@
NODE_ENV=development
#开发环境
VITE_GLOB_API_URL=http://cqyt.dev.yg.dt.io
#应急求助-websocket
VITE_GLOB_API_YIN_JI=ws://cqyt.dev.yg.dt.io/health-watch/websocket/watchMonitor
#健康监测工具报警-websocket
VITE_GLOB_API_JIAN_CE=ws://cqyt.dev.yg.dt.io/health-emergency/websocket/emergency
+13 -5
View File
@@ -1,9 +1,17 @@
# 王昊地址
#VITE_GLOB_API_URL=http://192.168.1.3
#VITE_GLOB_API_URL=http://192.168.1.98
#开发环境
VITE_GLOB_API_URL=http://cqyt.dev.yg.dt.io
VITE_GLOB_API_URL=http://api-xj.tri.dt.io
#VITE_GLOB_API_URL=https://api.cqygjk.com
#健康监测工具报警-websocket
#VITE_GLOB_API_YIN_JI=ws://cqyt.dev.yg.dt.io/health-watch/websocket/watchMonitor
VITE_GLOB_API_YIN_JI=ws://192.168.1.27:7098/websocket/watchMonitor
#应急求助-websocket
VITE_GLOB_API_YIN_JI=ws://cqyt.dev.yg.dt.io/health-watch/websocket/watchMonitor
#健康监测工具报警-websocket
VITE_GLOB_API_JIAN_CE=ws://cqyt.dev.yg.dt.io/health-emergency/websocket/emergency
#VITE_GLOB_API_JIAN_CE=ws://cqyt.dev.yg.dt.io/health-emergency/websocket/emergency
VITE_GLOB_API_JIAN_CE=ws://192.168.1.27:7011/websocket/emergency
#西安云坐席
VITE_GLOB_API_XIAN_YUN=ws://192.168.1.27:7011/websocket/emergency3
#银川云坐席
VITE_GLOB_API_YIN_CHUAN=ws://192.168.1.27:7011/websocket/emergency4
+1 -5
View File
@@ -1,7 +1,3 @@
#后台地址
VITE_GLOB_API_URL=https://api.cqygjk.com
#应急求助-websocket
VITE_GLOB_API_YIN_JI=ws://api.cqygjk.com/health-watch/websocket/watchMonitor
#健康监测工具报警-websocket
VITE_GLOB_API_JIAN_CE=ws://api.cqygjk.com/health-emergency/websocket/emergency
VITE_GLOB_API_URL=http://api-xj.tri.dt.io
+12
View File
@@ -0,0 +1,12 @@
NODE_ENV=development
#测试环境
VITE_GLOB_API_URL=http://cqyt.test.yg.dt.io
#应急求助-websocket
VITE_GLOB_API_YIN_JI=ws://cqyt.test.yg.dt.io/health-emergency/websocket/watchMonitor
#健康监测工具报警-websocket
VITE_GLOB_API_JIAN_CE=ws://cqyt.test.yg.dt.io/health-emergency/websocket/emergency
#西安云坐席
VITE_GLOB_API_XIAN_YUN=ws://cqyt.test.yg.dt.io/health-emergency/websocket/emergency3
#银川云坐席
VITE_GLOB_API_YIN_CHUAN=ws://cqyt.test.yg.dt.io/health-emergency/websocket/emergency4
+1
View File
@@ -7,6 +7,7 @@ node_modules
.vscode
.idea
dist
dist.zip
/public
/docs
.husky
+3 -2
View File
@@ -1,7 +1,8 @@
// @ts-check
import {defineConfig} from 'eslint-define-config'
// import {defineConfig} from 'eslint-define-config'
// const {defineConfig} = require('eslint-define-config');
export default {
module.exports = {
root: true,
env: {
browser: true,
+1
View File
@@ -22,3 +22,4 @@ dist-ssr
*.njsproj
*.sln
*.sw?
pnpm-lock.yaml
+5
View File
@@ -0,0 +1,5 @@
shamefully-hoist=true
strict-peer-dependencies=false
registry=https://registry.npmmirror.com
auto-install-peers=true
canvas_binary_host_mirror=https://registry.npmmirror.com/-/binary/canvas
+32
View File
@@ -0,0 +1,32 @@
FROM nginx
MAINTAINER jeecgos@163.com
VOLUME /tmp
ENV LANG en_US.UTF-8
ENV VITE_GLOB_API_URL http://api-xj.tri.dt.io
RUN echo "server { \
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题 \
location / { \
root /var/www/html/; \
index index.html index.htm; \
if (!-e \$request_filename) { \
rewrite ^(.*)\$ /index.html?s=\$1 last; \
break; \
} \
} \
access_log /var/log/nginx/access.log ; \
} " > /etc/nginx/conf.d/default.conf \
&& mkdir -p /var/www \
&& mkdir -p /var/www/html
ADD dist/ /var/www/html/
# 👇 新增:复制启动脚本(用于运行时替换环境变量)
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
# 使用脚本作为入口点
ENTRYPOINT ["bash","/entrypoint.sh"]
EXPOSE 80
+9
View File
@@ -0,0 +1,9 @@
#!/bin/sh
# 设置默认值(构建时 .env 不生效时兜底)
: ${VITE_GLOB_API_URL:=https://api.xjygjk.com}
# 替换 index.html 中的占位符
sed -i "s@__VITE_GLOB_API_URL__@$VITE_GLOB_API_URL@g" /var/www/html/index.html
exec nginx -g 'daemon off;'
-7
View File
@@ -1,7 +0,0 @@
#测试环境
VITE_GLOB_API_URL=http://cqyt.test.yg.dt.io
#应急求助-websocket
VITE_GLOB_API_YIN_JI=ws://192.168.1.3:7098/websocket/watchMonitor
#健康监测工具报警-websocket
VITE_GLOB_API_JIAN_CE=ws://cqyt.test.yg.dt.io/health-emergency/websocket/emergency
+11 -7
View File
@@ -1,20 +1,24 @@
<!doctype html>
<html lang="en">
<html lang="zh">
<head>
<meta charset="UTF-8"/>
<link rel="icon" type="image/svg+xml" href="/vite.svg"/>
<link rel="icon" type="image/svg+xml" href="/screen.svg"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>应急就医服务中心</title>
<!-- 全局配置 -->
<script>
window._CONFIG = {};
// // 默认值(可选)
// window.__APP_ENV__ = {
// VITE_GLOB_API_URL: '__VITE_GLOB_API_URL__', // 占位符,Docker 替换
// };
window._AMapSecurityConfig = {
securityJsCode: "1b3b86585c863d22db1e7f7636a9e495",
securityJsCode: "54f1d830d2bb225c173b76f5780b65eb",
}
</script>
<!-- <script type="text/javascript"-->
<!-- src="https://webapi.amap.com/maps?v=2.0&key=4bbcb216b889f2d612cbed05ae6979c8&plugin=AMap.Driving,AMap.ToolBar,AMap.Driving,AMap.GeoJSON,AMap.MarkerCluster"></script>-->
<script type="text/javascript" src="./public/amap.js"></script>
<!-- __APP_ENV__ 由 Vite 在构建时注入 -->
<!-- 开发环境:不注入或注入空值 -->
<!-- 生产环境:注入真实值(或占位符供 Docker 替换) -->
<!-- __INJECT_APP_ENV__ -->
</head>
<style>
html, body, #app {
+19331
View File
File diff suppressed because it is too large Load Diff
+25 -5
View File
@@ -5,40 +5,60 @@
"type": "module",
"scripts": {
"dev": "vite --open",
"build": "vue-tsc && vite build",
"preview": "vite preview",
"pro": "vite --open --mode production",
"test": "vite --open --mode test",
"build": "vite build",
"build:dev": "vite build --mode dev",
"build:test": "vite build --mode test",
"preview": "vite build && vite preview",
"type:check": "vue-tsc --noEmit --skipLibCheck",
"lint:prettier": "prettier --write \"src/**/*.{js,json,tsx,css,less,scss,vue,html,md}\""
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@iamzzg/data-view": "^2.10.0",
"@turf/turf": "^6.5.0",
"autoprefixer": "^10.4.16",
"axios": "^1.6.2",
"cnpm": "^9.4.0",
"dayjs": "^1.11.10",
"echarts": "5.4.3",
"echarts-gl": "^2.0.9",
"jsencrypt": "^3.3.2",
"lodash-es": "^4.17.21",
"mitt": "^3.0.1",
"path": "^0.12.7",
"pinia": "^2.1.7",
"postcss": "^8.4.32",
"postcss-loader": "^7.3.3",
"postcss-plugin-px2rem": "^0.8.1",
"postcss-px2rem": "^0.3.0",
"prettier": "^3.1.0",
"qs": "^6.11.2",
"swiper": "^12.0.2",
"vue-router": "^4.2.5",
"vue3-seamless-scroll": "^2.0.1"
},
"devDependencies": {
"@ant-design/colors": "^7.0.0",
"@ant-design/icons-vue": "^6.1.0",
"@types/node": "^20.10.5",
"@typescript-eslint/eslint-plugin": "^6.15.0",
"@typescript-eslint/parser": "^6.15.0",
"@vitejs/plugin-vue": "^4.2.3",
"@vitejs/plugin-vue-jsx": "^5.1.1",
"ant-design-vue": "^3.2.20",
"echarts": "^5.4.3",
"eslint": "^8.51.0",
"eslint-config-prettier": "^8.10.0",
"eslint-define-config": "^1.24.1",
"eslint-plugin-jest": "^27.4.2",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-prettier": "^5.0.0",
"eslint-plugin-vue": "^9.17.0",
"jest": "^29.7.0",
"less": "^4.2.0",
"typescript": "^5.0.2",
"vite": "^4.4.5",
"vite": "^5.4.20",
"vite-plugin-resolve-externals": "^0.2.2",
"vue-tsc": "^1.8.5"
}
}
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1727574260527" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5102" xmlns:xlink="http://www.w3.org/1999/xlink" width="48" height="48"><path d="M693.2 874.8c0-15.5-12.6-28.1-28.1-28.1H362.2c-15.5 0-28.1 12.6-28.1 28.1v82.3H111.5v65.9h802.6v-65.9H693.2v-82.3zM363.7 395.3l164.7 174.6 95.3-103.6 174 176.7 70.1-299.7-30.3-8-58.1 244.8-153-163.7-99 103.1-162.6-170.8L156 566.9l23.2 21.4z" p-id="5103" fill="#ff4b00"></path><path d="M523 444l73-195.1c22.2-123.5-173.3-123.5-148.8 0L523 444z" p-id="5104" fill="#ff4b00"></path><path d="M0 0.9v754.8h1024V0.9H0z m957.6 689.5H66.4v-624h891.3v624z" p-id="5105" fill="#ff4b00"></path></svg>

After

Width:  |  Height:  |  Size: 818 B

Binary file not shown.
-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

+53 -1
View File
@@ -7,9 +7,61 @@
import zhCN from 'ant-design-vue/es/locale/zh_CN';
import dayjs from 'dayjs';
import 'dayjs/locale/zh-cn';
import { onMounted, watch } from 'vue';
import { getEmergencyCenterApi } from '/@/api/user.ts';
import { useUserStore } from '/@/store/modules/user.ts';
import { openTestModal } from '/@/utils/utils.ts';
dayjs.locale('zh-cn');
const locle = zhCN;
const userStore = useUserStore();
onMounted(async () => {
openTestModal();
try {
if (userStore.getToken) {
const { code, result } = await getEmergencyCenterApi();
if (code === 200) {
userStore.setCenterInfo(result);
}
}
} catch (e) {}
if (userStore.getUserInfo) {
}
document.body.addEventListener('click', initAudio);
});
watch(
() => userStore.getCount,
() => {
audioPlay();
}
);
const audio = new Audio('13203.wav');
function initAudio() {
audioPlay(true);
document.body.addEventListener('remove', initAudio);
}
function audioPlay(flag: boolean = false) {
audio.muted = flag;
audio.play();
}
</script>
<style lang="less" src="./assets/less/index.less"></style>
<style lang="less" scoped></style>
<style src="./assets/theme/theme.css"></style>
<style lang="less">
.modal-confirm-d {
top: 28% !important;
.ant-modal-confirm-content,
.ant-modal-confirm-title {
color: #ffffff !important;
}
.ant-modal-confirm-btns {
width: 100%;
display: flex;
justify-content: center;
}
}
</style>
+15
View File
@@ -0,0 +1,15 @@
import { get } from '/@/api/request.ts';
enum Api {
code = '/sys/dictItem/list',
}
//锻炼字典
export const getCodeInfo = (params: any) =>
get(Api.code, {
pageNo: 1,
pageSize: 999,
dictId: '1722171687208849409',
...params,
});
export const montionFieldNames = { label: 'itemText', value: 'itemValue' };
+52 -13
View File
@@ -1,28 +1,51 @@
import axios from 'axios';
import { getAppEnvConfig } from '../utils/env.ts';
import { useUserStore } from '/@/store/modules/user.ts';
import { getAppEnvConfig } from '/@/utils/env.ts';
import { getAuthCache } from '/@/utils/auth.ts';
import { TOKEN_KEY } from '/@/enum/cacheEnum.ts';
import { useMessage } from '/@/hooks/web/useMessage.ts';
import router from '/@/router';
import { useUserStore } from '/@/store/modules/user.ts';
import { getBaseLogin, toLoginByNowPath } from '/@/enum/pageEnum.ts';
const { createMessage } = useMessage();
const { VITE_GLOB_API_URL } = getAppEnvConfig();
const userStore = useUserStore();
const { token } = userStore;
const service = axios.create({
baseURL: VITE_GLOB_API_URL,
timeout: 50000,
headers: {
// 设置后端需要的传参类型
'Content-Type': 'application/json;charset=UTF-8',
'X-Access-Token': token || getAuthCache(TOKEN_KEY),
},
/**
* @description: 响应错误处理
*/
responseInterceptorsCatch(error: any) {
const { response, code, message, config } = error || {};
const errorMessageMode = config?.requestOptions?.errorMessageMode || 'none';
'X-Access-Token': getAuthCache(TOKEN_KEY),
},
});
service.interceptors.request.use((config, options) => {
const userStore = useUserStore();
const token = userStore.getToken;
config.headers['X-Access-Token'] = token || getAuthCache(TOKEN_KEY);
return config;
});
service.interceptors.response.use(
(response) => {
return response;
},
(error) => {
if (error.response) {
switch (error.response.data.code) {
case 401:
let path = getBaseLogin();
if (!path) {
path = toLoginByNowPath(router.currentRoute.value.path);
}
// createMessage.warn(error.response.data.message);
router.replace({
path: path,
});
}
}
return Promise.reject(error.response.data); // 返回接口返回的错误信息
}
);
export const get = (url, params = {}) => {
return new Promise((resolve, reject) => {
service
@@ -39,6 +62,22 @@ export const get = (url, params = {}) => {
});
});
};
export const Dictget = (url, params = {}) => {
return new Promise((resolve, reject) => {
service
.get(url, { params: params })
.then((res) => {
if (res.status === 200) {
resolve(res.data);
} else {
reject(res.data);
}
})
.catch((err) => {
reject(err.data);
});
});
};
export const post = (url: string, params: any) =>
new Promise((resolve, reject) => {
service
@@ -49,4 +88,4 @@ export const post = (url: string, params: any) =>
.catch((err: any) => {
reject(err);
});
});
});
+20 -1
View File
@@ -2,17 +2,32 @@ import { get, post } from '/@/api/request.ts';
enum Api {
getInputCode = '/sys/randomImage',
videoApi = '/health-emergency/api/anon/screen-animation/query',
Login = '/sys/login',
Logout = '/sys/logout',
GetUserInfo = '/sys/user/getUserInfo',
auth = '/sys/permission/getPermCode',
emergencyCenter = '/health-emergency/emergency/center/getCenterDetail',
}
export const getCodeInfo = (params: any) => get(Api.getInputCode + `/${params}`);
export const getVideo = () => get(Api.videoApi);
export function loginApi(params: any) {
return post(Api.Login, params);
}
/**
* @description 获取登录人应急中心数据
* @param params
*/
export function getEmergencyCenterApi(params?: any) {
return get(Api.emergencyCenter, params);
}
/**
* @description: getUserInfo
*/
@@ -27,6 +42,10 @@ export function getUserInfo() {
});
}
export function getAuth() {
return get(Api.auth);
}
export function doLogout() {
return get(Api.Logout);
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 538 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

+29
View File
@@ -0,0 +1,29 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="72.000000pt" height="176.000000pt" viewBox="0 0 72.000000 176.000000"
preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,176.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M269 1715 c-107 -34 -194 -124 -225 -233 -43 -146 37 -312 185 -380
45 -22 71 -27 131 -27 130 1 234 66 292 183 63 127 39 271 -62 372 -82 82
-218 118 -321 85z m151 -190 c5 -38 7 -40 45 -43 22 -2 43 -6 47 -10 4 -4 8
-51 9 -105 1 -53 5 -100 10 -103 5 -3 9 -14 9 -25 0 -18 -9 -19 -165 -20 -91
-1 -171 -2 -177 -3 -23 -2 -21 41 1 47 19 5 21 13 21 95 0 49 3 117 6 151 l7
62 91 -3 91 -3 5 -40z"/>
<path d="M298 1536 c-24 -18 -23 -39 3 -62 22 -19 43 -13 63 19 8 12 5 21 -8
36 -22 24 -34 26 -58 7z"/>
<path d="M431 1366 c2 -102 18 -126 21 -32 1 36 2 76 2 88 1 12 -5 23 -12 26
-10 3 -13 -15 -11 -82z"/>
<path d="M267 1424 c-14 -15 6 -24 54 -24 36 0 49 4 47 13 -5 13 -89 23 -101
11z"/>
<path d="M272 1358 c5 -15 87 -18 91 -3 1 6 -20 11 -47 13 -36 2 -47 0 -44
-10z"/>
<path d="M283 1313 c-7 -2 -13 -9 -13 -14 0 -12 87 -12 94 0 11 17 -49 27 -81
14z"/>
<path d="M345 718 c-8 -308 -5 -393 15 -393 12 0 16 16 18 75 5 114 -9 560
-18 560 -4 0 -11 -109 -15 -242z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

+22
View File
@@ -0,0 +1,22 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 64 64">
<defs>
<radialGradient id="a" cx="32" cy="32" r="32" gradientUnits="userSpaceOnUse">
<stop offset="0" stop-color="red" stop-opacity="0"/>
<stop offset="1" stop-color="red"/>
</radialGradient>
<radialGradient id="b" cy="32" r="20" xlink:href="#a"/>
</defs>
<g data-name="图层 2">
<g data-name="图层 1">
<circle cx="32" cy="32" r="6" style="fill:url(#a);opacity:1">
<animate attributeName="r" from="6" to="32" begin="0s" dur="2s" repeatCount="indefinite"/>
<animate attributeName="opacity" from="1" to="0" begin="0s" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="32" cy="32" r="6" style="fill:url(#b);opacity:1">
<animate attributeName="r" from="6" to="32" begin="1s" dur="2s" repeatCount="indefinite"/>
<animate attributeName="opacity" from="1" to="0" begin="1s" dur="2s" repeatCount="indefinite"/>
</circle>
<circle cx="32" cy="32" r="6" style="fill:red"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Some files were not shown because too many files have changed in this diff Show More