diff --git a/folder-alias.json b/folder-alias.json index 18cac9a9..c8512270 100644 --- a/folder-alias.json +++ b/folder-alias.json @@ -13,5 +13,8 @@ }, "web/src/views/sitePersonnel/realName": { "description": "实名制与信息管理" + }, + "web/src/views/sitePersonnel/access-control": { + "description": "门禁" } } \ No newline at end of file diff --git a/web/src/assets/images/datatopbj.png b/web/src/assets/images/datatopbj.png new file mode 100644 index 00000000..c093f635 Binary files /dev/null and b/web/src/assets/images/datatopbj.png differ diff --git a/web/src/main.js b/web/src/main.js index 686001a1..78716a25 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -3,6 +3,7 @@ import Cookies from 'js-cookie' import App from './App' import store from './store' import router from './router' +import "@/utils/rem"; import directive from './directive' // directive import '@/assets/styles/index.scss' // global css // 注册指令 diff --git a/web/src/router/index.js b/web/src/router/index.js index caa65f16..dc1f4d82 100644 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -36,6 +36,11 @@ export const constantRoutes = [ component: () => import('@/views/error/401'), hidden: true }, + { + path: '/largeScreen', + component: () => import('@/views/large-screen/index'), + hidden: true + }, // { // path: '', // component: Layout, diff --git a/web/src/router/routes.js b/web/src/router/routes.js index c94285f9..0118efbe 100644 --- a/web/src/router/routes.js +++ b/web/src/router/routes.js @@ -36,6 +36,34 @@ export default [ link: "https://www.zilber.cn/doc/rp/" } }, + { + name: "public", + path: "/public", + hidden: true, + redirect: "noRedirect", + component: "Layout", + alwaysShow: false, + meta: { + title: "详情", + icon: "tree-table", + noCache: false, + link: null + }, + children: [{ + name: "map", + path: "map", + hidden: true, + component: "vehicleMachinery/map", + meta: { + title: "设备详情", + breadcrumb: false, + icon: "tree-table", + noCache: false, + link: null + } + }, + ] + }, { name: "form", path: "/form", diff --git a/web/src/utils/rem.js b/web/src/utils/rem.js new file mode 100644 index 00000000..c03842be --- /dev/null +++ b/web/src/utils/rem.js @@ -0,0 +1,15 @@ +// rem等比适配配置文件 +// 基准大小 +const baseSize = 16; +// 设置 rem 函数 +function setRem() { + // let rem = vW * basePc; // 以默认比例值乘以当前窗口宽度,得到该宽度下的相应font-size值 + document.documentElement.style.fontSize = window.innerWidth / 1920 * baseSize + "px" +} +// 初始化 +setRem(); +// 改变窗口大小时重新设置 rem +window.addEventListener('resize', () => { + setRem(); +}) +//存放在utils文件夹,在main.js中引入 \ No newline at end of file diff --git a/web/src/views/large-screen/forward.vue b/web/src/views/large-screen/forward.vue new file mode 100644 index 00000000..0d7a6cc8 --- /dev/null +++ b/web/src/views/large-screen/forward.vue @@ -0,0 +1,17 @@ + + + + + diff --git a/web/src/views/large-screen/index.vue b/web/src/views/large-screen/index.vue new file mode 100644 index 00000000..8db2b34d --- /dev/null +++ b/web/src/views/large-screen/index.vue @@ -0,0 +1,40 @@ + + + \ No newline at end of file diff --git a/web/src/views/sitePersonnel/access-control/api.js b/web/src/views/sitePersonnel/access-control/api.js new file mode 100644 index 00000000..595729cc --- /dev/null +++ b/web/src/views/sitePersonnel/access-control/api.js @@ -0,0 +1,55 @@ +import axios from '@/utils/request' +// 查询分页数据: +export const getRecordPage = (arg) => { + return axios.request({ + url: '/dahua/accessControl/getRecordPage', + method: 'post', + data: { + ...arg, + pageNum:arg.current, + pageSize:arg.limit, + }, + dataType: 'json' + }) +} +// 查询详情数据: +export const iuserGetById = (arg) => { + return axios.request({ + url: `/iuser/getById`, + method: 'get', + params: arg, + dataType: 'json' + }) +} + +// 添加数据: +export const iuserAdd = (arg) => { + return axios.request({ + url: '/iuser/add', + method: 'post', + data: arg, + dataType: 'json' + }) +} + +// 修改数据: +export const IuserUpdate = (arg) => { + return axios.request({ + url: '/iuser/update', + method: 'put', + data: arg, + dataType: 'json' + }) +} + +// 删除数据: +export const iuserDelete = (arg) => { + return axios.request({ + url: '/iuser/delete', + method: 'delete', + params: { + id: arg.id[0] + }, + dataType: 'json' + }) +} \ No newline at end of file diff --git a/web/src/views/sitePersonnel/access-control/index.vue b/web/src/views/sitePersonnel/access-control/index.vue new file mode 100644 index 00000000..dff6d45b --- /dev/null +++ b/web/src/views/sitePersonnel/access-control/index.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/web/src/views/sitePersonnel/access-control/options.js b/web/src/views/sitePersonnel/access-control/options.js new file mode 100644 index 00000000..bba9ea92 --- /dev/null +++ b/web/src/views/sitePersonnel/access-control/options.js @@ -0,0 +1,101 @@ +export const baseModelOptions = () => { + return [ + + ] +} +export const stausList = () => { + return [ + { "value": 42, "label": "合法密码开门" }, + { "value": 43, "label": "非法密码开门" }, + { "value": 45, "label": "合法指纹开门" }, + { "value": 46, "label": "非法指纹开门" }, + { "value": 48, "label": "远程开门" }, + { "value": 49, "label": "按钮开门" }, + { "value": 50, "label": "钥匙开门" }, + { "value": 51, "label": "合法刷卡开门" }, + { "value": 52, "label": "非法刷卡开门" }, + { "value": 53, "label": "门磁事件" }, + { "value": 54, "label": "异常开门" }, + { "value": 55, "label": "异常关门" }, + { "value": 56, "label": "正常关门" }, + { "value": 57, "label": "正常开门" }, + { "value": 59, "label": "对讲请求事件" }, + { "value": 61, "label": "人脸合法开门" }, + { "value": 62, "label": "人脸非法开门" }, + { "value": 1421, "label": "RFID有源合法" }, + { "value": 1422, "label": "RFID无源合法" }, + { "value": 1423, "label": "RFID有源非法" }, + { "value": 1424, "label": "RFID无源非法" }, + { "value": 1433, "label": "黑名单事件" }, + { "value": 1436, "label": "人证合法开门" }, + { "value": 1437, "label": "人证非法开门" }, + { "value": 1438, "label": "人证和身份证非法开门" }, + { "value": 1439, "label": "人证和身份证合法开门" }, + { "value": 1448, "label": "RFID感应事件" }, + { "value": 1449, "label": "RFID非法感应事件" }, + { "value": 1450, "label": "RFID按键事件" }, + { "value": 1451, "label": "RFID非法按键事件" }, + { "value": 1455, "label": "先刷卡后密码合法开门" }, + { "value": 1456, "label": "先刷卡后密码非法开门" }, + { "value": 1461, "label": "刷卡+指纹组合合法开门" }, + { "value": 1462, "label": "刷卡+指纹组合非法开门" }, + { "value": 1463, "label": "多人合法开门" }, + { "value": 1464, "label": "多人非法开门" }, + { "value": 1467, "label": "人员编号+密码合法开门" }, + { "value": 1468, "label": "人员编号+密码非法开门" }, + { "value": 1469, "label": "人脸+密码合法开门" }, + { "value": 1470, "label": "人脸+密码非法开门" }, + { "value": 1471, "label": "指纹+密码合法开门" }, + { "value": 1472, "label": "指纹+密码非法开门" }, + { "value": 1473, "label": "指纹+人脸合法开门" }, + { "value": 1474, "label": "指纹+人脸非法开门" }, + { "value": 1475, "label": "刷卡+人脸合法开门" }, + { "value": 1476, "label": "刷卡+人脸非法开门" }, + { "value": 1487, "label": "指纹+人脸+密码合法开门" }, + { "value": 1488, "label": "指纹+人脸+密码非法开门" }, + { "value": 1489, "label": "刷卡+人脸+密码合法开门" }, + { "value": 1490, "label": "刷卡+人脸+密码非法开门" }, + { "value": 1491, "label": "刷卡+指纹+密码合法开门" }, + { "value": 1492, "label": "刷卡+指纹+密码非法开门" }, + { "value": 1493, "label": "卡+指纹+人脸组合合法开门" }, + { "value": 1494, "label": "卡+指纹+人脸组合非法开门" }, + { "value": 4603, "label": "卡+指纹+人脸+密码组合合法开门" }, + { "value": 4604, "label": "卡+指纹+人脸+密码组合非法开门" }, + { "value": 4626, "label": "人脸+安全帽合法开门" }, + { "value": 4627, "label": "人脸+安全帽非法开门" }, + { "value": 10001, "label": "健康码合法开门" }, + { "value": 10002, "label": "异常健康码开门" } + ] +} +export const baseFilterOptions = () => { + return [ + { + tag: 'el-input', + label: '姓名:', + key: 'personName', + value: '', + default: '', + rules: [ + { required: true, message: '请输入姓名', trigger: 'blur' }, + ], + attribute: {//属性 + type: 'text', + placeholder: '请输入姓名', + }, + }, + { + tag: 'BaseSelect', + label: '开门类型:', + key: 'openType', + value: '', + default: '', + rules: [ + { required: true, message: '请选择开门类型', trigger: 'blur' }, + ], + attribute: { //属性 + placeholder: '请选择开门类型', + options: stausList() + }, + }, + ] +} \ No newline at end of file diff --git a/web/src/views/sitePersonnel/work-attendance/api.js b/web/src/views/sitePersonnel/work-attendance/api.js new file mode 100644 index 00000000..4558813a --- /dev/null +++ b/web/src/views/sitePersonnel/work-attendance/api.js @@ -0,0 +1,55 @@ +import axios from '@/utils/request' +// 查询分页数据: +export const getRecordPage = (arg) => { + return axios.request({ + url: '/dahua/attendance/getRecordPage', + method: 'post', + data: { + ...arg, + pageNum:arg.current, + pageSize:arg.limit, + }, + dataType: 'json' + }) +} +// 查询详情数据: +export const iuserGetById = (arg) => { + return axios.request({ + url: `/iuser/getById`, + method: 'get', + params: arg, + dataType: 'json' + }) +} + +// 添加数据: +export const iuserAdd = (arg) => { + return axios.request({ + url: '/iuser/add', + method: 'post', + data: arg, + dataType: 'json' + }) +} + +// 修改数据: +export const IuserUpdate = (arg) => { + return axios.request({ + url: '/iuser/update', + method: 'put', + data: arg, + dataType: 'json' + }) +} + +// 删除数据: +export const iuserDelete = (arg) => { + return axios.request({ + url: '/iuser/delete', + method: 'delete', + params: { + id: arg.id[0] + }, + dataType: 'json' + }) +} \ No newline at end of file diff --git a/web/src/views/sitePersonnel/work-attendance/index.vue b/web/src/views/sitePersonnel/work-attendance/index.vue new file mode 100644 index 00000000..8b2aea68 --- /dev/null +++ b/web/src/views/sitePersonnel/work-attendance/index.vue @@ -0,0 +1,84 @@ + + + + + diff --git a/web/src/views/sitePersonnel/work-attendance/options.js b/web/src/views/sitePersonnel/work-attendance/options.js new file mode 100644 index 00000000..edb279cc --- /dev/null +++ b/web/src/views/sitePersonnel/work-attendance/options.js @@ -0,0 +1,81 @@ +export const baseModelOptions = () => { + return [ + + ] +} +export const stausList = () => { + return [ + { "value": 42, "label": "密码" }, + { "value": 45, "label": "指纹" }, + { "value": 51, "label": "刷卡" }, + { "value": 61, "label": "人脸" }, + { "value": 1436, "label": "人证" }, + { "value": 1439, "label": "人证+身份证" }, + { "value": 1455, "label": "刷卡+密码" }, + { "value": 1461, "label": "刷卡+指纹" }, + { "value": 1463, "label": "多人考勤" }, + { "value": 1467, "label": "人员编号+密码" }, + { "value": 1469, "label": "人脸+密码" }, + { "value": 1471, "label": "指纹+密码" }, + { "value": 1473, "label": "指纹+人脸" }, + { "value": 1475, "label": "刷卡+人脸" }, + { "value": 1487, "label": "指纹+人脸+密码" }, + { "value": 1489, "label": "刷卡+人脸+密码" }, + { "value": 1491, "label": "刷卡+指纹+密码" }, + { "value": 1493, "label": "刷卡+指纹+人脸" }, + { "value": 4603, "label": "刷卡+指纹+人脸+密码" }, + { "value": 4626, "label": "人脸+安全帽" }, + { "value": 10001, "label": "健康码" }, + { "value": 1434, "label": "二维码" }, + { "value": 1441, "label": "蓝牙" }, + { "value": 8888, "label": "车牌" }, + { "value": 8889, "label": "移动打卡" }, + { "value": 8890, "label": "异地打卡" } + ] +} +export const baseFilterOptions = () => { + return [ + { + tag: 'el-input', + label: '姓名:', + key: 'personName', + value: '', + default: '', + rules: [ + { required: true, message: '请输入姓名', trigger: 'blur' }, + ], + attribute: {//属性 + type: 'text', + placeholder: '请输入姓名', + }, + }, + { + tag: 'BaseSelect', + label: '考勤类型:', + key: 'attendanceType', + value: '', + default: '', + rules: [ + { required: true, message: '请选择考勤类型', trigger: 'blur' }, + ], + attribute: { //属性 + placeholder: '请选择考勤类型', + options: stausList() + }, + }, + { + tag: 'el-date-picker', + label: '时间:', + key: 'params', + value: '', + default: '', + attribute: {//属性 + valueFormat: "YYYY-MM-DD HH:mm:ss", + type: "datetimerange", + rangeSeparator: "-", + startPlaceholder: "开始时间", + endPlaceholder: "结束时间", + }, + }, + ] +} \ No newline at end of file diff --git a/web/src/views/vehicleMachinery/api.js b/web/src/views/vehicleMachinery/api.js new file mode 100644 index 00000000..0199c07f --- /dev/null +++ b/web/src/views/vehicleMachinery/api.js @@ -0,0 +1,10 @@ +import axios from '@/utils/request' +export const vehicletoken = (arg) => { + return axios.request({ + url: '/vehicle/token', + method: 'get', + params: arg, + dataType: 'json', + + }) +} diff --git a/web/src/views/vehicleMachinery/car-manage/index.vue b/web/src/views/vehicleMachinery/car-manage/index.vue index 566b951d..04c246ff 100644 --- a/web/src/views/vehicleMachinery/car-manage/index.vue +++ b/web/src/views/vehicleMachinery/car-manage/index.vue @@ -2,9 +2,10 @@ import { reactive } from 'vue' import { vehicleList, vehicleAdd, vehicleUpdate, vehicleDelete, vehicleGetById, iproductionplanList } from './api' import { baseModelOptions, baseFilterOptions } from './options' +import { useRouter } from 'vue-router'; const { proxy } = getCurrentInstance(); - +const router = useRouter() const state = reactive({ baseModelOptions: baseModelOptions(), baseFilterOptions: baseFilterOptions(), @@ -39,6 +40,14 @@ const state = reactive({ pageInfo: { total: 0, base: { limit: 8, current: 1 } }, }) +function View(item) { + router.push({ + path: "/public/map", + query: { + item:JSON.stringify(item) + } + }) +} - + - + @@ -70,18 +79,15 @@ const state = reactive({ - + diff --git a/web/src/views/vehicleMachinery/construction-achinery/index.vue b/web/src/views/vehicleMachinery/construction-achinery/index.vue index f98dd54b..ee68218f 100644 --- a/web/src/views/vehicleMachinery/construction-achinery/index.vue +++ b/web/src/views/vehicleMachinery/construction-achinery/index.vue @@ -4,7 +4,7 @@ import { vehicleList, vehicleAdd, vehicleUpdate, vehicleDelete, vehicleGetById, import { baseModelOptions, baseFilterOptions } from './options' const { proxy } = getCurrentInstance(); - +const router = useRouter() const state = reactive({ baseModelOptions: baseModelOptions(), baseFilterOptions: baseFilterOptions(), @@ -39,6 +39,14 @@ const state = reactive({ pageInfo: { total: 0, base: { limit: 8, current: 1 } }, }) +function View(item) { + router.push({ + path: "/public/map", + query: { + item:JSON.stringify(item) + } + }) +} - + diff --git a/web/src/views/vehicleMachinery/map.vue b/web/src/views/vehicleMachinery/map.vue new file mode 100644 index 00000000..b07bb75f --- /dev/null +++ b/web/src/views/vehicleMachinery/map.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/web/vite.config.js b/web/vite.config.js index eb2b66e6..3c878367 100644 --- a/web/vite.config.js +++ b/web/vite.config.js @@ -43,7 +43,8 @@ export default defineConfig(({ mode, command }) => { }, proxy: { '/dev-api': { - target: 'http://192.168.2.39:8080', + // target: 'http://192.168.2.39:8080', + target: 'http://192.168.2.223:8080', // target: 'http://39.100.74.100:8080', changeOrigin: true, rewrite: (p) => p.replace(/^\/dev-api/, '')