first commit
14
.env.development
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
# 开发环境配置
|
||||||
|
VITE_PORT = 8080
|
||||||
|
# title
|
||||||
|
VITE_TITLE = 道孚县鲜水镇“智慧鲜水”数字化平台
|
||||||
|
# version
|
||||||
|
VITE_VERSION = 2.6.4
|
||||||
|
# open
|
||||||
|
VITE_OPEN = false
|
||||||
|
|
||||||
|
# public path
|
||||||
|
VITE_PUBLIC_PATH = /
|
||||||
|
|
||||||
|
# Cross-domain proxy, you can configure multiple
|
||||||
|
VITE_PROXY = [ ["/api", "http://127.0.0.1:3000" ] ]
|
||||||
5
.env.production
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
# 生产环境配置
|
||||||
|
# title
|
||||||
|
VITE_TITLE = 道孚县鲜水镇“智慧鲜水”数字化平台
|
||||||
|
|
||||||
|
VITE_PUBLIC_PATH = /
|
||||||
5
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
node_modules
|
||||||
|
.DS_Store
|
||||||
|
dist
|
||||||
|
dist-ssr
|
||||||
|
*.local
|
||||||
3
.vscode/extensions.json
vendored
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"recommendations": ["johnsoncodehk.volar"]
|
||||||
|
}
|
||||||
56
.vscode/settings.json
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
{
|
||||||
|
// You should install these plugins:
|
||||||
|
// ESLint
|
||||||
|
// Prettier - Code formatter
|
||||||
|
// stylelint
|
||||||
|
// vscode-icons
|
||||||
|
// TypeScript Vue Plugin (Volar)
|
||||||
|
// Vue Language Features (Volar)
|
||||||
|
"terminal.integrated.rendererType": "dom",
|
||||||
|
"editor.formatOnType": true,
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"javascript.updateImportsOnFileMove.enabled": "always",
|
||||||
|
"[vue]": {
|
||||||
|
"editor.defaultFormatter": "octref.vetur"
|
||||||
|
},
|
||||||
|
"[javascript]": {
|
||||||
|
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||||
|
},
|
||||||
|
"editor.tabSize": 2,
|
||||||
|
"editor.formatOnPaste": true,
|
||||||
|
"git.confirmSync": false,
|
||||||
|
"workbench.startupEditor": "newUntitledFile",
|
||||||
|
"editor.suggestSelection": "first",
|
||||||
|
"editor.acceptSuggestionOnCommitCharacter": false,
|
||||||
|
"css.lint.propertyIgnoredDueToDisplay": "ignore",
|
||||||
|
// Prevent inline styles from being automatically formatted to all lowercase
|
||||||
|
"editor.quickSuggestions": {
|
||||||
|
"other": true,
|
||||||
|
"comments": true,
|
||||||
|
"strings": true
|
||||||
|
},
|
||||||
|
// Automatically fix some syntax errors of ts
|
||||||
|
"tslint.autoFixOnSave": true,
|
||||||
|
"files.associations": {
|
||||||
|
// Specifies the location of snippets in the suggestion widget
|
||||||
|
"editor.snippetSuggestions": "top"
|
||||||
|
},
|
||||||
|
"[css]": {
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
},
|
||||||
|
"cSpell.userWords": [
|
||||||
|
"sourcemap",
|
||||||
|
"vite"
|
||||||
|
],
|
||||||
|
"editor.codeActionsOnSave": {
|
||||||
|
"source.fixAll.eslint": true
|
||||||
|
},
|
||||||
|
"volar.tsPlugin": true,
|
||||||
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
|
"i18n-ally.localesPaths": [
|
||||||
|
"src/plugins/i18n"
|
||||||
|
],
|
||||||
|
"cSpell.words": [
|
||||||
|
"pnpm"
|
||||||
|
]
|
||||||
|
}
|
||||||
22
.vscode/vue3.0.code-snippets
vendored
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"Vue3.0快速生成模板": {
|
||||||
|
"prefix": "Vue3.0",
|
||||||
|
"body": [
|
||||||
|
"<template>",
|
||||||
|
"\t<div>\n",
|
||||||
|
"\t</div>",
|
||||||
|
"</template>\n",
|
||||||
|
"<script lang='ts'>",
|
||||||
|
"export default {",
|
||||||
|
"\tsetup(){",
|
||||||
|
"\t\treturn{\n\n\t\t}",
|
||||||
|
"\t},",
|
||||||
|
"}",
|
||||||
|
"</script>\n",
|
||||||
|
"<style scoped>\n",
|
||||||
|
"</style>",
|
||||||
|
"$2"
|
||||||
|
],
|
||||||
|
"description": "Vue3.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
20
.vscode/vue3.2.code-snippets
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"Vue3.2快速生成模板": {
|
||||||
|
"prefix": "Vue3.2",
|
||||||
|
"body": [
|
||||||
|
"<!-- $1 -->",
|
||||||
|
"<script setup lang='ts'>",
|
||||||
|
"\t$2",
|
||||||
|
"</script>\n",
|
||||||
|
"<template>",
|
||||||
|
"\t<div>",
|
||||||
|
"\t\t$3",
|
||||||
|
"\t</div>",
|
||||||
|
"</template>\n",
|
||||||
|
"<style scoped>",
|
||||||
|
"\t$4",
|
||||||
|
"</style>"
|
||||||
|
],
|
||||||
|
"description": "Vue3.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
11
README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# Vue 3 + Typescript + Vite
|
||||||
|
|
||||||
|
This template should help get you started developing with Vue 3 and Typescript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
|
||||||
|
|
||||||
|
## Recommended IDE Setup
|
||||||
|
|
||||||
|
- [VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=johnsoncodehk.volar)
|
||||||
|
|
||||||
|
## Type Support For `.vue` Imports in TS
|
||||||
|
|
||||||
|
Since TypeScript cannot handle type information for `.vue` imports, they are shimmed to be a generic Vue component type by default. In most cases this is fine if you don't really care about component prop types outside of templates. However, if you wish to get actual prop types in `.vue` imports (for example to get props validation when using manual `h(...)` calls), you can enable Volar's `.vue` type support plugin by running `Volar: Switch TS Plugin on/off` from VSCode command palette.
|
||||||
19
build/proxy.ts
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
type ProxyItem = [string, string];
|
||||||
|
|
||||||
|
type ProxyList = ProxyItem[];
|
||||||
|
|
||||||
|
const regExps = (value: string, reg: string): string => {
|
||||||
|
return value.replace(new RegExp(reg, "g"), "");
|
||||||
|
};
|
||||||
|
|
||||||
|
export function createProxy(list: ProxyList = []) {
|
||||||
|
const ret: any = {};
|
||||||
|
for (const [prefix, target] of list) {
|
||||||
|
ret[prefix] = {
|
||||||
|
target: target,
|
||||||
|
changeOrigin: true,
|
||||||
|
rewrite: (path: string) => regExps(path, prefix)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
37
build/utils.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
/**
|
||||||
|
* 加载环境变量
|
||||||
|
* @param envConf
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
const wrapperEnv = (envConf: Recordable): ViteEnv => {
|
||||||
|
const ret: any = {};
|
||||||
|
|
||||||
|
for (const envName of Object.keys(envConf)) {
|
||||||
|
let realName = envConf[envName].replace(/\\n/g, "\n");
|
||||||
|
realName =
|
||||||
|
realName === "true" ? true : realName === "false" ? false : realName;
|
||||||
|
|
||||||
|
if (envName === "VITE_PORT") {
|
||||||
|
realName = Number(realName);
|
||||||
|
}
|
||||||
|
if (envName === "VITE_PROXY" && realName) {
|
||||||
|
try {
|
||||||
|
realName = JSON.parse(realName.replace(/'/g, '"'));
|
||||||
|
} catch (error) {
|
||||||
|
realName = "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ret[envName] = realName;
|
||||||
|
if (typeof realName === "string") {
|
||||||
|
process.env[envName] = realName;
|
||||||
|
} else if (typeof realName === "object") {
|
||||||
|
process.env[envName] = JSON.stringify(realName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
const loadEnv = (): ViteEnv => {
|
||||||
|
return import.meta.env;
|
||||||
|
};
|
||||||
|
|
||||||
|
export { loadEnv, wrapperEnv };
|
||||||
24
config/proxy.ts
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
type ProxyItem = [string, string];
|
||||||
|
|
||||||
|
type ProxyList = ProxyItem[];
|
||||||
|
|
||||||
|
const regExp = (value: string, reg: string): string => {
|
||||||
|
return value.replace(new RegExp(reg, "g"), "");
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param list
|
||||||
|
* @returns ProxyList
|
||||||
|
*/
|
||||||
|
export function createProxy(list: ProxyList) {
|
||||||
|
const proxy = {};
|
||||||
|
for (const [prefix, target] of list) {
|
||||||
|
proxy[prefix] = {
|
||||||
|
target: target,
|
||||||
|
changeOrigin: true,
|
||||||
|
rewrite: (path: string) => regExp(path, prefix),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return proxy;
|
||||||
|
}
|
||||||
19
index.html
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<link rel="icon" href="/favicon.ico" />
|
||||||
|
<meta name="viewport"
|
||||||
|
content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=0" />
|
||||||
|
<title>
|
||||||
|
<%- VITE_TITLE %>
|
||||||
|
</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
9314
package-lock.json
generated
Normal file
44
package.json
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
"name": "huayang-fulong",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "vite",
|
||||||
|
"build": "rimraf dist && cross-env vite build",
|
||||||
|
"preview": "vite preview"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/js-cookie": "^3.0.1",
|
||||||
|
"@types/node": "14.14.14",
|
||||||
|
"@vitejs/plugin-vue": "1.9.4",
|
||||||
|
"@vitejs/plugin-vue-jsx": "^1.2.0",
|
||||||
|
"@vue/compiler-sfc": "3.2.1",
|
||||||
|
"cross-env": "7.0.3",
|
||||||
|
"sass": "^1.43.4",
|
||||||
|
"sass-loader": "^12.3.0",
|
||||||
|
"typescript": "^4.4.4",
|
||||||
|
"vite": "2.6.4",
|
||||||
|
"vite-plugin-html": "^2.1.1",
|
||||||
|
"vite-plugin-mars3d": "2.0.3",
|
||||||
|
"vite-plugin-style-import": "^1.2.1",
|
||||||
|
"vite-plugin-svg-icons": "^1.0.5",
|
||||||
|
"vue-tsc": "^0.29.8"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@turf/turf": "^6.5.0",
|
||||||
|
"axios": "^0.21.1",
|
||||||
|
"echarts": "^5.4.3",
|
||||||
|
"element-plus": "^2.4.3",
|
||||||
|
"js-cookie": "^3.0.1",
|
||||||
|
"mars3d": "^3.6.15",
|
||||||
|
"mars3d-cesium": "^1.96.8",
|
||||||
|
"mars3d-space": "^3.6.15",
|
||||||
|
"mitt": "^3.0.0",
|
||||||
|
"path": "^0.12.7",
|
||||||
|
"pinia": "^2.0.0-rc.14",
|
||||||
|
"rimraf": "^3.0.2",
|
||||||
|
"vue": "3.2.1",
|
||||||
|
"vue-router": "^4.0.11",
|
||||||
|
"vue-types": "^4.1.0",
|
||||||
|
"vue3-marquee": "^4.1.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
6561
pnpm-lock.yaml
Normal file
210
public/config/config.json
Normal file
|
|
@ -0,0 +1,210 @@
|
||||||
|
{
|
||||||
|
"map3d": {
|
||||||
|
"scene": {
|
||||||
|
"center": {
|
||||||
|
"lat": 30.393487,
|
||||||
|
"lng": 104.08042,
|
||||||
|
"alt": 49375,
|
||||||
|
"heading": 3,
|
||||||
|
"pitch": -53
|
||||||
|
},
|
||||||
|
"scene3DOnly": true,
|
||||||
|
"shadows": false,
|
||||||
|
"removeDblClick": true,
|
||||||
|
"sceneMode": 3,
|
||||||
|
"showSun": false,
|
||||||
|
"showMoon": false,
|
||||||
|
"showSkyBox": false,
|
||||||
|
"showSkyAtmosphere": true,
|
||||||
|
"fog": false,
|
||||||
|
"fxaa": true,
|
||||||
|
"requestRenderMode": false,
|
||||||
|
"contextOptions": {
|
||||||
|
"requestWebgl1": false
|
||||||
|
},
|
||||||
|
"globe": {
|
||||||
|
"depthTestAgainstTerrain": true,
|
||||||
|
"baseColor": "#546a53",
|
||||||
|
"showGroundAtmosphere": true,
|
||||||
|
"enableLighting": false
|
||||||
|
},
|
||||||
|
"cameraController": {
|
||||||
|
"zoomFactor": 3.0,
|
||||||
|
"minimumZoomDistance": 1,
|
||||||
|
"maximumZoomDistance": 50000000,
|
||||||
|
"enableRotate": true,
|
||||||
|
"enableTranslate": true,
|
||||||
|
"enableTilt": true,
|
||||||
|
"enableZoom": true,
|
||||||
|
"enableCollisionDetection": true,
|
||||||
|
"minimumCollisionTerrainHeight": 15000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"control": {
|
||||||
|
"homeButton": false,
|
||||||
|
"baseLayerPicker": false,
|
||||||
|
"sceneModePicker": false,
|
||||||
|
"vrButton": false,
|
||||||
|
"fullscreenButton": false,
|
||||||
|
"navigationHelpButton": false,
|
||||||
|
"animation": false,
|
||||||
|
"timeline": false,
|
||||||
|
"infoBox": false,
|
||||||
|
"geocoder": false,
|
||||||
|
"selectionIndicator": false,
|
||||||
|
"showRenderLoopErrors": false,
|
||||||
|
"locationBar": {
|
||||||
|
"crs": "CGCS2000_GK_Zone_3",
|
||||||
|
"crsDecimal": 0,
|
||||||
|
"template": "<div>经度:{lng}</div> <div>纬度:{lat}</div> <div class='hide1000'>横{crsx} 纵{crsy}</div> <div>海拔:{alt}米</div> <div class='hide700'>层级:{level}</div><div>方向:{heading}°</div> <div>俯仰角:{pitch}°</div><div class='hide700'>视高:{cameraHeight}米</div><div class='hide700'>帧率:{fps} FPS</div>"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"basemaps": [
|
||||||
|
{
|
||||||
|
"id": 10,
|
||||||
|
"name": "地图底图",
|
||||||
|
"type": "group"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "高德影像",
|
||||||
|
"type": "group",
|
||||||
|
"icon": "/img/basemaps/gaode_img.png",
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"name": "底图",
|
||||||
|
"type": "gaode",
|
||||||
|
"layer": "img_d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "注记",
|
||||||
|
"type": "gaode",
|
||||||
|
"layer": "img_z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "高德电子",
|
||||||
|
"type": "gaode",
|
||||||
|
"icon": "/img/basemaps/gaode_vec.png",
|
||||||
|
"layer": "vec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "百度影像",
|
||||||
|
"type": "group",
|
||||||
|
"icon": "/img/basemaps/bd-img.png",
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"name": "底图",
|
||||||
|
"type": "baidu",
|
||||||
|
"layer": "img_d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "注记",
|
||||||
|
"type": "baidu",
|
||||||
|
"layer": "img_z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "百度电子",
|
||||||
|
"icon": "/img/basemaps/bd-vec.png",
|
||||||
|
"type": "baidu",
|
||||||
|
"layer": "vec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "腾讯影像",
|
||||||
|
"icon": "/img/basemaps/tencent_img.png",
|
||||||
|
"type": "group",
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"name": "底图",
|
||||||
|
"type": "tencent",
|
||||||
|
"layer": "img_d"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "注记",
|
||||||
|
"type": "tencent",
|
||||||
|
"layer": "img_z"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "腾讯电子",
|
||||||
|
"icon": "/img/basemaps/tencent_vec.png",
|
||||||
|
"type": "tencent",
|
||||||
|
"layer": "vec"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "ArcGIS影像",
|
||||||
|
"icon": "/img/basemaps/esriWorldImagery.png",
|
||||||
|
"type": "xyz",
|
||||||
|
"url": "https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}",
|
||||||
|
"enablePickFeatures": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "微软影像",
|
||||||
|
"icon": "/img/basemaps/bingAerial.png",
|
||||||
|
"type": "bing",
|
||||||
|
"layer": "Aerial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2017,
|
||||||
|
"pid": 10,
|
||||||
|
"name": "暗色底图",
|
||||||
|
"type": "gaode",
|
||||||
|
"icon": "/img/basemaps/blackMarble.png",
|
||||||
|
"layer": "vec",
|
||||||
|
"invertColor": true,
|
||||||
|
"filterColor": "#4e70a6",
|
||||||
|
"brightness": 0.6,
|
||||||
|
"contrast": 1.8,
|
||||||
|
"gamma": 0.3,
|
||||||
|
"hue": 1,
|
||||||
|
"saturation": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "蓝色底图",
|
||||||
|
"icon": "/img/basemaps/bd-c-midnight.png",
|
||||||
|
"type": "xyz",
|
||||||
|
"url": "http://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}",
|
||||||
|
"chinaCRS": "GCJ02",
|
||||||
|
"enablePickFeatures": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "黑色底图",
|
||||||
|
"icon": "/img/basemaps/bd-c-dark.png",
|
||||||
|
"type": "tencent",
|
||||||
|
"layer": "custom",
|
||||||
|
"style": "4",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pid": 10,
|
||||||
|
"name": "单张图片 (本地离线)",
|
||||||
|
"icon": "/img/basemaps/offline.png",
|
||||||
|
"type": "image",
|
||||||
|
"url": "//data.mars3d.cn/file/img/world/world.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": 2023,
|
||||||
|
"pid": 10,
|
||||||
|
"name": "无底图",
|
||||||
|
"icon": "/img/basemaps/null.png",
|
||||||
|
"type": "grid",
|
||||||
|
"color": "#ffffff",
|
||||||
|
"alpha": 0.03,
|
||||||
|
"cells": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
public/favicon.ico
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
public/img/icon/calib-semicircle.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
public/img/icon/calib.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
public/img/icon/map-title-b.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/img/icon/map-title-h.png
Normal file
|
After Width: | Height: | Size: 3.0 KiB |
BIN
public/img/icon/map-title-o.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/img/icon/map-title-r.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/img/icon/map-title-y.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
public/img/textures/fence-top.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
public/img/textures/fence-wall.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
public/img/textures/fence.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
public/img/tietu/bg.png
Normal file
|
After Width: | Height: | Size: 260 KiB |
2651
public/json/daofu.json
Normal file
3
src/App.vue
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<template>
|
||||||
|
<router-view />
|
||||||
|
</template>
|
||||||
8
src/api/common.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
import request from "../utils/request";
|
||||||
|
|
||||||
|
export function test() {
|
||||||
|
return request({
|
||||||
|
url: "",
|
||||||
|
method: "POST",
|
||||||
|
});
|
||||||
|
}
|
||||||
20
src/assets/font/font.css
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
@font-face {
|
||||||
|
font-family: 'YouSheBiaoTiHei';
|
||||||
|
src: url('./ttf/YouSe.ttf');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'PingFang-SC';
|
||||||
|
src: url('./ttf/PingFang-SC-Regular.woff');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'PingFangSC-Regular';
|
||||||
|
src: url('./ttf/PingFangSC-Regular.woff2');
|
||||||
|
font-weight: normal;
|
||||||
|
font-style: normal;
|
||||||
|
}
|
||||||
BIN
src/assets/font/ttf/PingFang-SC-Regular.woff
Normal file
BIN
src/assets/font/ttf/PingFangSC-Regular.woff2
Normal file
BIN
src/assets/font/ttf/YouSe.ttf
Normal file
BIN
src/assets/images/data-statistics/left/-s-暴雨-红.png
Normal file
|
After Width: | Height: | Size: 5.5 KiB |
BIN
src/assets/images/data-statistics/left/-s-暴雨-蓝.png
Normal file
|
After Width: | Height: | Size: 5.1 KiB |
BIN
src/assets/images/data-statistics/left/-s-暴雨-黄.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
src/assets/images/data-statistics/left/-s-高温-橙.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
src/assets/images/data-statistics/left/-s-高温-红.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
BIN
src/assets/images/data-statistics/left/-s-高温-蓝.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
src/assets/images/data-statistics/left/-s-高温-黄.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
src/assets/images/data-statistics/left/rainstorm-orange.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
src/assets/images/emergency-map/left/cm_left_bg.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/emergency-map/left/cm_left_bg_1.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
src/assets/images/emergency-map/left/cm_left_icon.png
Normal file
|
After Width: | Height: | Size: 948 B |
BIN
src/assets/images/emergency-map/left/cm_right_bg.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/assets/images/emergency-map/left/cm_right_bg_1.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
src/assets/images/emergency-map/left/cm_right_icon.png
Normal file
|
After Width: | Height: | Size: 819 B |
BIN
src/assets/images/emergency-map/right/bg-circle-inside.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
src/assets/images/emergency-map/right/bg-video.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
src/assets/images/emergency-map/right/icon-around-video-.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/emergency-map/right/icon-line-legend.png
Normal file
|
After Width: | Height: | Size: 210 B |
BIN
src/assets/images/marks/icon-bncs.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/marks/icon-db.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/marks/icon-hj.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/marks/icon-wl.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/marks/icon-yjsj.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/assets/images/menu/icon-menu-checked.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
src/assets/images/menu/icon-menu.png
Normal file
|
After Width: | Height: | Size: 7.4 KiB |
BIN
src/assets/images/menu/menu-top-bg.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
src/assets/images/safe-production/left/inner-ring.png
Normal file
|
After Width: | Height: | Size: 5.2 KiB |
BIN
src/assets/images/safe-production/left/outer-ring.png
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
src/assets/images/safe-production/right/blue.png
Normal file
|
After Width: | Height: | Size: 6.2 KiB |
BIN
src/assets/images/safe-production/right/orange.png
Normal file
|
After Width: | Height: | Size: 6.1 KiB |
BIN
src/assets/images/safe-production/right/red.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
src/assets/images/safe-production/right/yellow.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
src/assets/images/shadow/b-shadow.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
src/assets/images/shadow/left-shadow.png
Normal file
|
After Width: | Height: | Size: 226 KiB |
BIN
src/assets/images/shadow/right-shadow.png
Normal file
|
After Width: | Height: | Size: 232 KiB |
BIN
src/assets/images/shadow/top-shadow.png
Normal file
|
After Width: | Height: | Size: 71 KiB |
BIN
src/assets/images/title/title_bg.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
src/assets/images/top/emergency-supplies-no.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/images/top/emergency-supplies-yes.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
src/assets/images/top/fire-station-no.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/top/fire-station-yes.png
Normal file
|
After Width: | Height: | Size: 1.7 KiB |
BIN
src/assets/images/top/medical-team-no.png
Normal file
|
After Width: | Height: | Size: 694 B |
BIN
src/assets/images/top/medical-team-yes.png
Normal file
|
After Width: | Height: | Size: 969 B |
BIN
src/assets/images/top/micro-fire-station-no.png
Normal file
|
After Width: | Height: | Size: 902 B |
BIN
src/assets/images/top/micro-fire-station-yes.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
src/assets/images/top/rescue-team-no.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/images/top/rescue-team-yes.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/assets/images/top/school-no.png
Normal file
|
After Width: | Height: | Size: 617 B |
BIN
src/assets/images/top/school-yes.png
Normal file
|
After Width: | Height: | Size: 860 B |
BIN
src/assets/images/top/shelter-no.png
Normal file
|
After Width: | Height: | Size: 887 B |
BIN
src/assets/images/top/shelter-yes.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/images/top/star-white.png
Normal file
|
After Width: | Height: | Size: 434 B |
BIN
src/assets/images/top/star-yellow.png
Normal file
|
After Width: | Height: | Size: 449 B |
BIN
src/assets/images/top/top-light.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
src/assets/images/top/top-option-bg.png
Normal file
|
After Width: | Height: | Size: 5.0 KiB |
BIN
src/assets/images/top/top-option-layer.png
Normal file
|
After Width: | Height: | Size: 441 B |
BIN
src/assets/images/top/top.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
src/assets/images/top/video-monitoring-no.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/images/top/video-monitoring-yes.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/assets/images/top/waterlogging-point-no.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
src/assets/images/top/waterlogging-point-yes.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
src/assets/logo.png
Normal file
|
After Width: | Height: | Size: 6.7 KiB |
34
src/assets/styles/index.scss
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
#app,
|
||||||
|
.layout-container {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
*:before,
|
||||||
|
*:after {
|
||||||
|
box-sizing: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** disable-outline-a */
|
||||||
|
a:focus,
|
||||||
|
a:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a,
|
||||||
|
a:focus,
|
||||||
|
a:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||