Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c30187435 | ||
|
|
9431553951 | ||
|
|
5293b509b2 | ||
|
|
f55544321b | ||
|
|
ecd1e5cd46 | ||
|
|
a22c59f220 | ||
|
|
c33ad0d807 | ||
|
|
7b6d6e52b2 | ||
|
|
336a881855 | ||
|
|
9f6deb49a0 | ||
|
|
4d9b1ac3cb | ||
|
|
e021bad791 | ||
|
|
8095b6b503 | ||
|
|
8cc8945b68 | ||
|
|
bbb2cdc04e | ||
|
|
c583f85516 | ||
|
|
849fc8778d | ||
|
|
49597a4dd2 | ||
|
|
1c908284e6 | ||
|
|
6241504095 | ||
|
|
4f9d79461c | ||
|
|
bb0536c7e4 | ||
|
|
d95a6942cb | ||
|
|
bbc5685be0 | ||
|
|
f943ee8df3 | ||
|
|
0b67be998a | ||
|
|
482d165651 | ||
|
|
822fecc3b1 | ||
|
|
f2570ef494 | ||
|
|
8c9eafa2fb | ||
|
|
ded845793a | ||
|
|
53195cc5c2 | ||
|
|
87490ae4b5 | ||
|
|
faa0fa991c | ||
|
|
5589f92e72 | ||
|
|
4db07874f5 | ||
|
|
e09f90203f | ||
|
|
593c8bfe0b | ||
|
|
61e83f6c78 | ||
|
|
4e1c4b87c4 | ||
|
|
ea062a4ba9 | ||
|
|
cb8f23e9ab | ||
|
|
9407ba979c | ||
|
|
626fb84a6b | ||
|
|
c7f571399a | ||
|
|
ef86526095 | ||
|
|
f617922cd3 | ||
|
|
f44e372210 | ||
|
|
f12c73a911 | ||
|
|
17f9478233 | ||
|
|
98ff86f89c | ||
|
|
028cc03aeb | ||
|
|
ba91d7ff13 | ||
|
|
5d2249d4c7 | ||
|
|
28c61a0731 | ||
|
|
c9f075b106 | ||
|
|
7775b14bba | ||
|
|
e4d3e3ba1c | ||
|
|
7154314e93 | ||
|
|
f024615260 | ||
|
|
d103785a45 | ||
|
|
c7abcf1f67 | ||
|
|
a97d9c64aa | ||
|
|
1714ff19f5 | ||
|
|
bd2d066314 | ||
|
|
832291570f | ||
|
|
3755349ea8 | ||
|
|
68548362eb | ||
|
|
baec4e1ff0 | ||
|
|
0a59f01616 | ||
|
|
ff78173b25 | ||
|
|
a89cc758f7 | ||
|
|
8a386eba5b | ||
|
|
b56efa9f7f | ||
|
|
269e35d19b | ||
|
|
b61ca7f567 | ||
|
|
b52d46cd76 | ||
|
|
4b8f3ae1ef | ||
|
|
cf129e6d23 | ||
|
|
cd1b085499 | ||
|
|
055e28b457 | ||
|
|
b0a16c6f0b | ||
|
|
91abcfd78d | ||
|
|
f6e5bb78da | ||
|
|
7565056a7e | ||
|
|
726bd19ad3 | ||
|
|
67a2ea75d1 | ||
|
|
b55bc1857a | ||
|
|
8a630dd1cd | ||
|
|
07f14c7703 | ||
|
|
a2da7e4be7 | ||
|
|
01f3339833 | ||
|
|
aa71fd5c7e | ||
|
|
86ed8341e2 | ||
|
|
22c5b89f90 | ||
|
|
7e2346f5fb | ||
|
|
ff493d83d9 | ||
|
|
1cbda373e0 | ||
|
|
0a6843406a | ||
|
|
8b9c3abf77 | ||
|
|
2db1e6d33c | ||
|
|
25b8acdda6 | ||
|
|
736ee91e93 | ||
|
|
fd02cf131a | ||
|
|
48a137133d | ||
|
|
5c3bf4a7ed | ||
|
|
35c5625e1b | ||
|
|
8dc44b465b | ||
|
|
58d3b5a933 | ||
|
|
988c2365de | ||
|
|
2fac32d002 | ||
|
|
0b48810f5c | ||
|
|
a4bddba648 | ||
|
|
8e9426eb45 | ||
|
|
6484e08fdc | ||
|
|
cd2a16dde5 | ||
|
|
bfb10320f7 | ||
|
|
7da4003f6b | ||
|
|
01d2ee0665 | ||
|
|
983c92ce48 | ||
|
|
f81fb4a868 | ||
|
|
1cfc2e5d89 | ||
|
|
35380d4114 | ||
|
|
af8fe6ca21 | ||
|
|
68047001d1 | ||
|
|
09f4ddc2d7 | ||
|
|
27beb42eb0 | ||
|
|
64feafb1d5 | ||
|
|
1aaf8e7120 | ||
|
|
4394844890 | ||
|
|
3df70a2b3f | ||
|
|
f3ca399b85 | ||
|
|
b525fc08eb | ||
|
|
216d0be436 | ||
|
|
b0b2bf2838 | ||
|
|
389ed8d5f1 | ||
|
|
51e33f6f0b | ||
|
|
46a3752d74 | ||
|
|
1a05b92fee | ||
|
|
c2e0d26094 | ||
|
|
278e91c262 | ||
|
|
ca4a9a8c28 | ||
|
|
ed8fc6f8a6 | ||
|
|
ed5810611f | ||
|
|
b871eabb08 | ||
|
|
51af62e164 | ||
|
|
094e88a79e | ||
|
|
01519c97ec | ||
|
|
28cb5cbb9b | ||
|
|
d166e3e2d6 | ||
|
|
7693850d47 | ||
|
|
a9fedaf124 | ||
|
|
830ad950c3 | ||
|
|
e625073dcc | ||
|
|
e367d13c78 | ||
|
|
b732e3ab64 | ||
|
|
352948e98b | ||
|
|
a1850b95b6 | ||
|
|
9e8a5da257 | ||
|
|
8551369cfb | ||
|
|
80745c9d8c | ||
|
|
292a32a311 | ||
|
|
752405b9a4 | ||
|
|
778e350959 | ||
|
|
de77657b64 | ||
|
|
205273fd61 | ||
|
|
1645f16579 | ||
|
|
fc6e3a736e | ||
|
|
dcf14220b3 | ||
|
|
0f391ffc22 | ||
|
|
e16b9e054e | ||
|
|
f6129b7aa4 | ||
|
|
1adff85a83 | ||
|
|
78e5bab6a9 | ||
|
|
7ee32fb8d9 | ||
|
|
14c50baeed | ||
|
|
83f768a4a0 | ||
|
|
0eb5fad72f | ||
|
|
1599ffd6d8 | ||
|
|
062afc3d71 | ||
|
|
8c7e4a6e91 | ||
|
|
16e85fe15d | ||
|
|
f3f100cd18 | ||
|
|
510f34953f | ||
|
|
60be7c4fe2 | ||
|
|
6ff0b25f1b | ||
|
|
cb2a823d25 | ||
|
|
7444e6ff75 | ||
|
|
ce2b8f5837 | ||
|
|
13faaa92a6 | ||
|
|
45aec85fad | ||
|
|
adca7ae65e | ||
|
|
1c908b0615 | ||
|
|
65a3ee7eb5 | ||
|
|
2def3738c2 | ||
|
|
ef3e1c3b31 | ||
|
|
5cf32ce40e | ||
|
|
84dfa935ea | ||
|
|
3459db992c | ||
|
|
f016fdc69f | ||
|
|
ecbd690117 | ||
|
|
88c9ac1576 | ||
|
|
861d9e4798 | ||
|
|
1d28db6839 | ||
|
|
f93e2dccae | ||
|
|
6352e5dd21 | ||
|
|
36f484d028 | ||
|
|
63eb01d641 | ||
|
|
a0ffce1fa7 | ||
|
|
626fbf9085 | ||
|
|
c1474f0c64 | ||
|
|
dfcf737258 | ||
|
|
98abe8d9ca | ||
|
|
2e106c4731 | ||
|
|
dd89375d40 | ||
|
|
541fbb4b0a | ||
|
|
22a4132300 | ||
|
|
b9f2b3b521 | ||
|
|
dd5a47e7fb | ||
|
|
5a33aa1df4 | ||
|
|
568c0132e7 | ||
|
|
9230f659c1 | ||
|
|
1c65f18bab | ||
|
|
3cc95902ae | ||
|
|
ce85f39c11 | ||
|
|
26f4a6ad81 | ||
|
|
8dccce0208 | ||
|
|
3e53c75a6f | ||
|
|
e732938a34 | ||
|
|
cf29ea07c1 | ||
|
|
5342774ca5 | ||
|
|
9b5be1af25 | ||
|
|
8cb7d4baf8 | ||
|
|
12ae90f274 | ||
|
|
2501a5e6be | ||
|
|
6c2510147f | ||
|
|
6c5e3e8f06 |
@@ -0,0 +1,4 @@
|
||||
# 选择更小体积的基础镜像
|
||||
FROM nginx:stable-alpine
|
||||
COPY ./default.conf /etc/nginx/conf.d
|
||||
COPY ./dist /usr/share/nginx/html
|
||||
@@ -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}"
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,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
|
||||
@@ -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
|
||||
@@ -7,6 +7,7 @@ node_modules
|
||||
.vscode
|
||||
.idea
|
||||
dist
|
||||
dist.zip
|
||||
/public
|
||||
/docs
|
||||
.husky
|
||||
|
||||
@@ -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,
|
||||
@@ -22,3 +22,4 @@ dist-ssr
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
pnpm-lock.yaml
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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;'
|
||||
@@ -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
|
||||
@@ -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 {
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 |
@@ -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 |
@@ -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>
|
||||
|
||||
@@ -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' };
|
||||
@@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 88 KiB |
|
After Width: | Height: | Size: 271 KiB |
|
After Width: | Height: | Size: 538 KiB |
|
After Width: | Height: | Size: 243 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 5.1 MiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 50 KiB |
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 180 KiB |
|
After Width: | Height: | Size: 179 KiB |
|
After Width: | Height: | Size: 178 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 23 KiB |
@@ -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 |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 2.5 KiB |
@@ -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 |
|
After Width: | Height: | Size: 648 B |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.5 KiB |