diff --git a/src/api/visitor.js b/src/api/visitor.js new file mode 100644 index 0000000..be930bd --- /dev/null +++ b/src/api/visitor.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' +import qs from 'qs' + +// 访客登记 +export function addVisitorPerson(data) { + return request({ + url: 'visitorPerson/add', + method: 'post', + data + }) +} diff --git a/src/api/visitor.js b/src/api/visitor.js new file mode 100644 index 0000000..be930bd --- /dev/null +++ b/src/api/visitor.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' +import qs from 'qs' + +// 访客登记 +export function addVisitorPerson(data) { + return request({ + url: 'visitorPerson/add', + method: 'post', + data + }) +} diff --git a/src/router/modules/visitor.js b/src/router/modules/visitor.js new file mode 100644 index 0000000..a60b5dd --- /dev/null +++ b/src/router/modules/visitor.js @@ -0,0 +1,46 @@ +// 车辆管理部分路由 +/* Layout */ +import Layout from '../../views/layout/Layout' + +export const visitorRouters = [ + { + path: 'visitor', + component: Layout, + redirect: '/visitor', + name: 'Visitor', + alwaysShow: true, + meta: { + title: '访客管理', + icon: 'icon-visitor', // 图标 + permission: ['/visitor']// 权限名称 + }, + children: [ + { + path: '/visitor/add', + name: 'VisitorAdd', + component: () => import('@/views/visitor/visitorAdd'), + meta: { title: '访客登记', icon: '', permission: ['/visitor/add'], keepAlive: true } + } + // { + // path: '/visitor/personList', + // name: 'VisitorPersonList', + // component: () => import('@/views/visitor/visitorPersonList'), + // meta: { title: '当日来访人员', icon: '', permission: ['/visitor/personlist'], keepAlive: true } + // }, + // { + // path: '/visitor/carList', + // name: 'VisitorCarList', + // hidden: true, + // component: () => import('@/views/visitor/visitorCarList'), + // meta: { title: '当日来访车辆', icon: '', permission: ['/visitor/carList'], keepAlive: true } + // }, + // { + // path: '/visitor/list', + // name: 'VisitorList', + // hidden: true, + // component: () => import('@/views/visitor/visitorList'), + // meta: { title: '来访记录', icon: '', permission: ['/visitor/list'], keepAlive: true } + // } + ] + } +] diff --git a/src/api/visitor.js b/src/api/visitor.js new file mode 100644 index 0000000..be930bd --- /dev/null +++ b/src/api/visitor.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' +import qs from 'qs' + +// 访客登记 +export function addVisitorPerson(data) { + return request({ + url: 'visitorPerson/add', + method: 'post', + data + }) +} diff --git a/src/router/modules/visitor.js b/src/router/modules/visitor.js new file mode 100644 index 0000000..a60b5dd --- /dev/null +++ b/src/router/modules/visitor.js @@ -0,0 +1,46 @@ +// 车辆管理部分路由 +/* Layout */ +import Layout from '../../views/layout/Layout' + +export const visitorRouters = [ + { + path: 'visitor', + component: Layout, + redirect: '/visitor', + name: 'Visitor', + alwaysShow: true, + meta: { + title: '访客管理', + icon: 'icon-visitor', // 图标 + permission: ['/visitor']// 权限名称 + }, + children: [ + { + path: '/visitor/add', + name: 'VisitorAdd', + component: () => import('@/views/visitor/visitorAdd'), + meta: { title: '访客登记', icon: '', permission: ['/visitor/add'], keepAlive: true } + } + // { + // path: '/visitor/personList', + // name: 'VisitorPersonList', + // component: () => import('@/views/visitor/visitorPersonList'), + // meta: { title: '当日来访人员', icon: '', permission: ['/visitor/personlist'], keepAlive: true } + // }, + // { + // path: '/visitor/carList', + // name: 'VisitorCarList', + // hidden: true, + // component: () => import('@/views/visitor/visitorCarList'), + // meta: { title: '当日来访车辆', icon: '', permission: ['/visitor/carList'], keepAlive: true } + // }, + // { + // path: '/visitor/list', + // name: 'VisitorList', + // hidden: true, + // component: () => import('@/views/visitor/visitorList'), + // meta: { title: '来访记录', icon: '', permission: ['/visitor/list'], keepAlive: true } + // } + ] + } +] diff --git a/src/utils/validate.js b/src/utils/validate.js index 6f639fd..147b862 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -89,3 +89,48 @@ } } +// 身份证号码校验validator +export const validateIDCard = (rule, value, callback) => { + if (value !== '') { + if ((/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/).test(value) === false) { + callback(new Error('请输入合法的身份证号')) + } else { + callback() + } + } else { + callback(new Error('身份证号不能为空')) + } +} + +// 手机号验证validator +export const phoneValidator = (rule, value, callback) => { + const reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ + if (value !== '') { + if (reg.test(value) === false) { + callback(new Error('请输入正确的手机号')) + } else { + callback() + } + } else { + callback(new Error('手机号不能为空')) + } +} + +// 体温校验validator +export const temValidator = (rule, value, callback) => { + const reg = /^\d+(\.\d+)?$/ + if (value !== '') { + if (reg.test(value) === false) { + callback(new Error('请输入数字')) + } else { + const data = parseFloat(value) + if (data > 37.3 || data < 35) { + callback(new Error('请检查体温')) + } else { + callback() + } + } + } else { + callback(new Error('体温不能为空')) + } +} diff --git a/src/api/visitor.js b/src/api/visitor.js new file mode 100644 index 0000000..be930bd --- /dev/null +++ b/src/api/visitor.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' +import qs from 'qs' + +// 访客登记 +export function addVisitorPerson(data) { + return request({ + url: 'visitorPerson/add', + method: 'post', + data + }) +} diff --git a/src/router/modules/visitor.js b/src/router/modules/visitor.js new file mode 100644 index 0000000..a60b5dd --- /dev/null +++ b/src/router/modules/visitor.js @@ -0,0 +1,46 @@ +// 车辆管理部分路由 +/* Layout */ +import Layout from '../../views/layout/Layout' + +export const visitorRouters = [ + { + path: 'visitor', + component: Layout, + redirect: '/visitor', + name: 'Visitor', + alwaysShow: true, + meta: { + title: '访客管理', + icon: 'icon-visitor', // 图标 + permission: ['/visitor']// 权限名称 + }, + children: [ + { + path: '/visitor/add', + name: 'VisitorAdd', + component: () => import('@/views/visitor/visitorAdd'), + meta: { title: '访客登记', icon: '', permission: ['/visitor/add'], keepAlive: true } + } + // { + // path: '/visitor/personList', + // name: 'VisitorPersonList', + // component: () => import('@/views/visitor/visitorPersonList'), + // meta: { title: '当日来访人员', icon: '', permission: ['/visitor/personlist'], keepAlive: true } + // }, + // { + // path: '/visitor/carList', + // name: 'VisitorCarList', + // hidden: true, + // component: () => import('@/views/visitor/visitorCarList'), + // meta: { title: '当日来访车辆', icon: '', permission: ['/visitor/carList'], keepAlive: true } + // }, + // { + // path: '/visitor/list', + // name: 'VisitorList', + // hidden: true, + // component: () => import('@/views/visitor/visitorList'), + // meta: { title: '来访记录', icon: '', permission: ['/visitor/list'], keepAlive: true } + // } + ] + } +] diff --git a/src/utils/validate.js b/src/utils/validate.js index 6f639fd..147b862 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -89,3 +89,48 @@ } } +// 身份证号码校验validator +export const validateIDCard = (rule, value, callback) => { + if (value !== '') { + if ((/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/).test(value) === false) { + callback(new Error('请输入合法的身份证号')) + } else { + callback() + } + } else { + callback(new Error('身份证号不能为空')) + } +} + +// 手机号验证validator +export const phoneValidator = (rule, value, callback) => { + const reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ + if (value !== '') { + if (reg.test(value) === false) { + callback(new Error('请输入正确的手机号')) + } else { + callback() + } + } else { + callback(new Error('手机号不能为空')) + } +} + +// 体温校验validator +export const temValidator = (rule, value, callback) => { + const reg = /^\d+(\.\d+)?$/ + if (value !== '') { + if (reg.test(value) === false) { + callback(new Error('请输入数字')) + } else { + const data = parseFloat(value) + if (data > 37.3 || data < 35) { + callback(new Error('请检查体温')) + } else { + callback() + } + } + } else { + callback(new Error('体温不能为空')) + } +} diff --git a/src/views/visitor/visitorAdd.vue b/src/views/visitor/visitorAdd.vue new file mode 100644 index 0000000..a212942 --- /dev/null +++ b/src/views/visitor/visitorAdd.vue @@ -0,0 +1,392 @@ + + + + + diff --git a/src/api/visitor.js b/src/api/visitor.js new file mode 100644 index 0000000..be930bd --- /dev/null +++ b/src/api/visitor.js @@ -0,0 +1,11 @@ +import request from '@/utils/request' +import qs from 'qs' + +// 访客登记 +export function addVisitorPerson(data) { + return request({ + url: 'visitorPerson/add', + method: 'post', + data + }) +} diff --git a/src/router/modules/visitor.js b/src/router/modules/visitor.js new file mode 100644 index 0000000..a60b5dd --- /dev/null +++ b/src/router/modules/visitor.js @@ -0,0 +1,46 @@ +// 车辆管理部分路由 +/* Layout */ +import Layout from '../../views/layout/Layout' + +export const visitorRouters = [ + { + path: 'visitor', + component: Layout, + redirect: '/visitor', + name: 'Visitor', + alwaysShow: true, + meta: { + title: '访客管理', + icon: 'icon-visitor', // 图标 + permission: ['/visitor']// 权限名称 + }, + children: [ + { + path: '/visitor/add', + name: 'VisitorAdd', + component: () => import('@/views/visitor/visitorAdd'), + meta: { title: '访客登记', icon: '', permission: ['/visitor/add'], keepAlive: true } + } + // { + // path: '/visitor/personList', + // name: 'VisitorPersonList', + // component: () => import('@/views/visitor/visitorPersonList'), + // meta: { title: '当日来访人员', icon: '', permission: ['/visitor/personlist'], keepAlive: true } + // }, + // { + // path: '/visitor/carList', + // name: 'VisitorCarList', + // hidden: true, + // component: () => import('@/views/visitor/visitorCarList'), + // meta: { title: '当日来访车辆', icon: '', permission: ['/visitor/carList'], keepAlive: true } + // }, + // { + // path: '/visitor/list', + // name: 'VisitorList', + // hidden: true, + // component: () => import('@/views/visitor/visitorList'), + // meta: { title: '来访记录', icon: '', permission: ['/visitor/list'], keepAlive: true } + // } + ] + } +] diff --git a/src/utils/validate.js b/src/utils/validate.js index 6f639fd..147b862 100644 --- a/src/utils/validate.js +++ b/src/utils/validate.js @@ -89,3 +89,48 @@ } } +// 身份证号码校验validator +export const validateIDCard = (rule, value, callback) => { + if (value !== '') { + if ((/^[1-9]\d{5}(18|19|20|(3\d))\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/).test(value) === false) { + callback(new Error('请输入合法的身份证号')) + } else { + callback() + } + } else { + callback(new Error('身份证号不能为空')) + } +} + +// 手机号验证validator +export const phoneValidator = (rule, value, callback) => { + const reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/ + if (value !== '') { + if (reg.test(value) === false) { + callback(new Error('请输入正确的手机号')) + } else { + callback() + } + } else { + callback(new Error('手机号不能为空')) + } +} + +// 体温校验validator +export const temValidator = (rule, value, callback) => { + const reg = /^\d+(\.\d+)?$/ + if (value !== '') { + if (reg.test(value) === false) { + callback(new Error('请输入数字')) + } else { + const data = parseFloat(value) + if (data > 37.3 || data < 35) { + callback(new Error('请检查体温')) + } else { + callback() + } + } + } else { + callback(new Error('体温不能为空')) + } +} diff --git a/src/views/visitor/visitorAdd.vue b/src/views/visitor/visitorAdd.vue new file mode 100644 index 0000000..a212942 --- /dev/null +++ b/src/views/visitor/visitorAdd.vue @@ -0,0 +1,392 @@ + + + + + diff --git a/src/views/visitor/visitorCheckIn.vue b/src/views/visitor/visitorCheckIn.vue new file mode 100644 index 0000000..db4ffb4 --- /dev/null +++ b/src/views/visitor/visitorCheckIn.vue @@ -0,0 +1,293 @@ + + + + + +