Compare commits

...

4 Commits

Author SHA1 Message Date
lcw
15a79c7b5f lcw 2025-09-29 18:15:43 +08:00
lcw
6dd7369650 lcw 2025-09-29 18:14:21 +08:00
lcw
b8ba71d9de lcw 2025-09-15 21:18:16 +08:00
lcw
ae76d8bbbe lcw 2025-09-15 21:16:45 +08:00
12 changed files with 190 additions and 165 deletions

136
package-lock.json generated
View File

@ -2043,51 +2043,6 @@
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true "dev": true
}, },
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"ssri": { "ssri": {
"version": "8.0.1", "version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@ -2096,28 +2051,6 @@
"requires": { "requires": {
"minipass": "^3.1.1" "minipass": "^3.1.1"
} }
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
},
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
}
} }
} }
}, },
@ -14617,6 +14550,75 @@
} }
} }
}, },
"vue-loader-v16": {
"version": "npm:vue-loader@16.8.3",
"resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-16.8.3.tgz",
"integrity": "sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==",
"dev": true,
"optional": true,
"requires": {
"chalk": "^4.1.0",
"hash-sum": "^2.0.0",
"loader-utils": "^2.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"optional": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"optional": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"optional": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true,
"optional": true
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"optional": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"optional": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"vue-router": { "vue-router": {
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.3.tgz",

View File

@ -2,7 +2,9 @@
<template> <template>
<router-view v-slot="{ Component }" v-if="isRouterAlive"> <router-view v-slot="{ Component }" v-if="isRouterAlive">
<keep-alive :include="store.getters.keepLiiveRoute"> <keep-alive :include="store.getters.keepLiiveRoute">
<Watermark :text="content" :color="'rgba(0, 0, 0, .15)'">
<Component :is="Component"></Component> <Component :is="Component"></Component>
</Watermark>
</keep-alive> </keep-alive>
</router-view> </router-view>
</template> </template>
@ -10,6 +12,8 @@
import { ref, nextTick, provide, onMounted } from "vue"; import { ref, nextTick, provide, onMounted } from "vue";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { getItem } from "@/utils/storage"; import { getItem } from "@/utils/storage";
import Watermark from "@/components/Watermark.vue";
import { timeValidate } from "@/utils/tools.js";
import { qcckPost, qcckGet, qcckPut, qcckDelete } from "@/api/qcckApi.js"; import { qcckPost, qcckGet, qcckPut, qcckDelete } from "@/api/qcckApi.js";
import { generateNewStyle, writeNewStyle } from "@/utils/theme"; import { generateNewStyle, writeNewStyle } from "@/utils/theme";
const store = useStore(); const store = useStore();
@ -26,9 +30,16 @@ const reload = () => {
provide("reload", reload); provide("reload", reload);
onMounted(() => { onMounted(() => {
let dept = getItem("deptId"); let dept = getItem("deptId");
frashJs()
document.title = "林芝"; document.title = "林芝";
}); });
const content=ref([])
const frashJs = () => {
const sfzh= getItem("idEntityCard")
const userName= getItem("USERNAME")
const time = timeValidate()
content.value=[userName,sfzh,time,"智慧公交系统","禁止泄露公民个人信息和工作秘密"]
}
</script> </script>
<style lang="scss"> <style lang="scss">
@import "./styles/index.scss"; @import "./styles/index.scss";

View File

@ -106,9 +106,22 @@ onMounted(() => {
window.map = map; window.map = map;
map.mapboxGLMap.on("load", () => { map.mapboxGLMap.on("load", () => {
map.addGaudLayer({ map.addWMTSLayer(
url: 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}', "/PGIS_S_TileMapServer/Maps/XZDJ_SL/EzMap"
}) ,
{
Service: "getImage",
Type: "RGB",
ZoomOffset: "0",
V: "0.3",
Zoom: "{z}",
Row: "{y}",
Col: "{x}"
},
{
tileSize: 300
}
);
zoomTarget.value = map.mapboxGLMap.getZoom(); zoomTarget.value = map.mapboxGLMap.getZoom();
}); });
mapUtil.value = new MapUtil(map); mapUtil.value = new MapUtil(map);

View File

@ -1,4 +1,5 @@
import router from './router' import router from './router'
import Base64 from "base-64";
import store from './store' import store from './store'
import { import {
setItem, setItem,
@ -6,7 +7,7 @@ import {
removeAllItem removeAllItem
} from "@/utils/storage"; } from "@/utils/storage";
// 白名单 // 白名单
const whiteList = ['/login','/','/StationLevel', '/oatuh_login','/editPassword', '/404', '/401'] const whiteList = ['/login', '/oatuh_login', '/404', '/401', '/focusExploration', '/clueVerification', '/deploymentApproval']
/** /**
* 路由前置守卫 * 路由前置守卫
* to 去哪里 * to 去哪里
@ -14,42 +15,43 @@ const whiteList = ['/login','/','/StationLevel', '/oatuh_login','/editPassword',
* next 往下走 * next 往下走
*/ */
let onRun = true; let onRun = true;
// router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
// // 存在 token ,进入主页 // 存在 token ,进入主页
// // if (store.state.user.token) { // if (store.state.user.token) {
// // 快捷访问 // 快捷访问
// if (store.getters.token) { if (store.getters.token) {
// // 判断用户资料是否获取 // 判断用户资料是否获取
// // 若不存在用户信息,则需要获取用户信息 // 若不存在用户信息,则需要获取用户信息
// // 触发获取用户信息的 action并获取用户当前权限 // 触发获取用户信息的 action并获取用户当前权限
// await store.commit('permission/setRouteReady', true) await store.commit('permission/setRouteReady', true)
// // 添加完动态路由之后,需要在进行一次主动跳转 // 添加完动态路由之后,需要在进行一次主动跳转
// const afterMenuList = await getItem('menusPermission'); const afterMenuList = await getItem('menusPermission');
// // 处理用户权限,筛选出需要添加的权限 // 处理用户权限,筛选出需要添加的权限
// if (store.state.permission.routes == 0) { if (store.state.permission.routes == 0) {
// const filterRoutes = await store.dispatch('permission/filterRoutes', afterMenuList) const filterRoutes = await store.dispatch('permission/filterRoutes', afterMenuList)
// filterRoutes.forEach(item => { filterRoutes.forEach(item => {
// router.addRoute(item) router.addRoute(item)
// }) })
// next({ next({
// ...to, ...to,
// replace: true replace: true
// }) })
// } else { } else {
// next() next()
// } }
// // 利用 addRoute 循环添加 // 利用 addRoute 循环添加
// } else { } else {
// const isOatuh = getItem('isOatuh') const isOatuh = getItem('isOatuh')
// // 没有token的情况下可以进入白名单 // 没有token的情况下可以进入白名单
// if (whiteList.indexOf(to.path) > -1) { if (whiteList.indexOf(to.path) > -1) {
// next() next()
// } else { } else {
// if (isOatuh) { if (isOatuh) {
// next('/oatuh_login') const idEntityCard = getItem('idEntityCard')
// } else { next(`/oatuh_login?token=${Base64.encode(idEntityCard)}`)
// next('/login') } else {
// } next('/login')
// } }
// } }
// }) }
})

View File

@ -27,6 +27,10 @@ export const publicRoutes = [
component: () => import("@/views/login/oatuh_login") component: () => import("@/views/login/oatuh_login")
}, },
{ {
path: "/oatuh_login",
name: "oatuh_login",
component: () => import("@/views/login/oatuh_login")
}, {
path: "/login", path: "/login",
name: "login", name: "login",
component: () => import("@/views/login/index") component: () => import("@/views/login/index")

View File

@ -130,21 +130,15 @@ export default {
*单点登录 *单点登录
*/ */
oatuhLogin(ctx, userInfo) { oatuhLogin(ctx, userInfo) {
const { const { token, systemId, } = userInfo;
token,
systemId,
} = userInfo;
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
unifiedLogin({ unifiedLogin({ token, systemId }).then((data) => {
token,
systemId,
})
.then((data) => {
if (data.deptList.length === 1) { if (data.deptList.length === 1) {
this.commit("user/setToken", data.jwtToken); this.commit("user/setToken", data.jwtToken);
this.commit("user/setDeptId", data.deptList); this.commit("user/setDeptId", data.deptList);
this.commit("user/setUserName", data.userName); this.commit("user/setUserName", data.userName);
setItem("USERNAME", data.userName); setItem("USERNAME", data.userName);
setItem('fzUserId', data.fzUserId)
setItem("SFRH", data.sfrh); setItem("SFRH", data.sfrh);
setItem("USERID", data.userId); setItem("USERID", data.userId);
setItem("PermissionsInfo", data.permissionsInfo); setItem("PermissionsInfo", data.permissionsInfo);

View File

@ -18,14 +18,12 @@ service.interceptors.request.use(
if (isCheckTimeout()) { if (isCheckTimeout()) {
//超时 执行退出 //超时 执行退出
store.dispatch('user/logout'); store.dispatch('user/logout');
router.push('/login'); // router.push('/login');
return Promise.reject(new Error('token 失效')); return Promise.reject(new Error('token 失效'));
} }
if (!config.url.startsWith("/jcApi")) { if (!config.url.startsWith("/jcApi")) {
config.headers.Authorization = `${store.getters.token}`; config.headers.Authorization = `${store.getters.token}`;
} }
} else {
router.push('/login');
} }
//2.设置headers icode //2.设置headers icode
// config.headers.code = ''; // config.headers.code = '';
@ -57,7 +55,7 @@ service.interceptors.response.use(
// return response.data; // return response.data;
} else if (code === 401) { } else if (code === 401) {
store.dispatch('user/logout'); store.dispatch('user/logout');
router.push('/login'); // router.push('/login');
ElMessage.error(message); // 提示错误信息 ElMessage.error(message); // 提示错误信息
ElMessage({ ElMessage({
message: message || msg, message: message || msg,
@ -83,7 +81,7 @@ service.interceptors.response.use(
error.response.data.code === 401 error.response.data.code === 401
) { ) {
store.dispatch('user/logout'); store.dispatch('user/logout');
router.push('/login'); // router.push('/login');
} }
// ElMessage({ // ElMessage({
// message: error.message, // message: error.message,

View File

@ -85,7 +85,7 @@ gettbGjtjgjCount();
color: #f4fdff; color: #f4fdff;
line-height: 21px; line-height: 21px;
text-shadow: 0px 5px 6px rgba(4, 13, 32, 0.27); text-shadow: 0px 5px 6px rgba(4, 13, 32, 0.27);
background: linear-gradient(0deg, #59a6f4 0%); background: linear-gradient(0deg, #59a6f4 0%, #59a6f4 100%);
-webkit-background-clip: text; -webkit-background-clip: text;
// margin: 0 6px 8px 5px; // margin: 0 6px 8px 5px;
text-align: center; text-align: center;

View File

@ -101,6 +101,7 @@ const roadmap = (row) => {
height: 100%; height: 100%;
padding-top: 20px; padding-top: 20px;
box-sizing: border-box; box-sizing: border-box;
color: #fff;
} }
.tab-content { .tab-content {

View File

@ -3,11 +3,11 @@ const path = require("path");
function resolve(dir) { function resolve(dir) {
return path.join(__dirname, dir); return path.join(__dirname, dir);
} }
// const serverHost = "http://192.168.1.32:8066";
const serverHost = "http://192.168.0.231:8006"; const serverHost = "http://192.168.0.231:8006";
// const serverHost = "http://127.0.0.1:8006"
module.exports = { module.exports = {
publicPath: "./", publicPath: "./",
outputDir: "gj", outputDir: "zhgj",
assetsDir: "static", assetsDir: "static",
lintOnSave: false, //process.env.NODE_ENV === 'development', lintOnSave: false, //process.env.NODE_ENV === 'development',
productionSourceMap: false, productionSourceMap: false,