Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
md-vue-chc
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何鹏程
md-vue-chc
Commits
6ae967e3
Commit
6ae967e3
authored
Jul 29, 2021
by
何鹏程
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成修改
parent
7a7b5145
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
694 additions
and
56 deletions
+694
-56
expert.js
src/api/expert.js
+9
-1
greenWay.js
src/api/greenWay.js
+8
-0
medical.js
src/api/medical.js
+8
-0
rescue.js
src/api/rescue.js
+8
-0
user.js
src/api/user.js
+25
-2
index.vue
src/page/emergencyCar/index.vue
+2
-0
index.vue
src/page/expert/index.vue
+2
-2
index.vue
src/page/greenWay/index.vue
+2
-2
index.vue
src/page/medical/index.vue
+2
-2
index.vue
src/page/rescue/index.vue
+2
-2
index.vue
src/page/sitePage/index.vue
+3
-3
userDialog.vue
src/page/user/components/userDialog.vue
+300
-0
index.vue
src/page/user/index.vue
+62
-25
checkIdent.js
src/util/checkIdent.js
+162
-0
dict.js
src/util/dict.js
+99
-17
No files found.
src/api/expert.js
View file @
6ae967e3
...
...
@@ -16,6 +16,14 @@ export function addOrUpdateEmergencyExpert(params) {
})
}
export
function
auditTeamEmergencyExpert
(
params
)
{
return
request
({
url
:
'/api/team/expert/auditTeamEmergencyExpert'
,
method
:
'POST'
,
data
:
params
})
}
export
function
queryInfoById
(
params
)
{
return
request
({
url
:
'/api/team/expert/queryInfoById'
,
...
...
src/api/greenWay.js
View file @
6ae967e3
...
...
@@ -16,6 +16,14 @@ export function saveOrUpdateEmergencyGreenway(params) {
})
}
export
function
auditTeamEmergencyGreenway
(
params
)
{
return
request
({
url
:
'/api/team/greenWay/auditTeamEmergencyGreenway'
,
method
:
'POST'
,
data
:
params
})
}
export
function
queryInfoById
(
params
)
{
return
request
({
url
:
'/api/team/greenWay/queryInfoById'
,
...
...
src/api/medical.js
View file @
6ae967e3
...
...
@@ -16,6 +16,14 @@ export function addOrUpdateEmergencyMedical(params) {
})
}
export
function
auditTeamEmergencyMedical
(
params
)
{
return
request
({
url
:
'/api/team/medical/auditTeamEmergencyMedical'
,
method
:
'POST'
,
data
:
params
})
}
export
function
queryInfoById
(
params
)
{
return
request
({
url
:
'/api/team/medical/queryInfoById'
,
...
...
src/api/rescue.js
View file @
6ae967e3
...
...
@@ -16,6 +16,14 @@ export function addOrUpdateEmergencyRescue(params) {
})
}
export
function
auditTeamEmergencyRescue
(
params
)
{
return
request
({
url
:
'/api/team/rescue/auditTeamEmergencyRescue'
,
method
:
'POST'
,
data
:
params
})
}
export
function
queryInfoById
(
params
)
{
return
request
({
url
:
'/api/team/rescue/queryInfoById'
,
...
...
src/api/user.js
View file @
6ae967e3
import
request
from
'../util/ajax'
export
function
queryTeamUserPageList
(
params
)
{
...
...
@@ -16,3 +15,27 @@ export function updateInsideRole(params) {
data
:
params
})
}
export
function
saveOrUpdateUserInfo
(
params
)
{
return
request
({
url
:
'/api/team/user/saveOrUpdateUserInfo'
,
method
:
'POST'
,
data
:
params
})
}
export
function
deleteUserInfo
(
params
)
{
return
request
({
url
:
'/api/team/user/deleteUserInfo'
,
method
:
'POST'
,
data
:
params
})
}
export
function
queryUserInfoById
(
params
)
{
return
request
({
url
:
'/api/team/user/queryUserInfoById'
,
method
:
'POST'
,
data
:
params
})
}
src/page/emergencyCar/index.vue
View file @
6ae967e3
...
...
@@ -110,11 +110,13 @@
<el-button
type=
"primary"
size=
"small"
v-if=
"checkPermission()"
@
click=
"exportFile()"
>
导出
</el-button>
<el-button
type=
"primary"
size=
"small"
v-if=
"!checkPermission()"
@
click=
"showEmergencyCarDialog()"
>
新增
</el-button>
</div>
...
...
src/page/expert/index.vue
View file @
6ae967e3
...
...
@@ -127,7 +127,7 @@
<
script
>
import
{
tableDataMixin
}
from
'../../common/js/mixin'
import
{
queryEmergencyHospitalList
}
from
'@/api/common'
import
{
queryEmergencyExpertPageList
,
a
ddOrUpdate
EmergencyExpert
,
deleteTeamEmergencyExpert
}
from
'@/api/expert'
import
{
queryEmergencyExpertPageList
,
a
uditTeam
EmergencyExpert
,
deleteTeamEmergencyExpert
}
from
'@/api/expert'
import
SaveDialog
from
'./components/saveDialog.vue'
export
default
{
name
:
'expertPage'
,
...
...
@@ -242,7 +242,7 @@ export default {
})
},
auditData
(
id
,
auditStatus
)
{
a
ddOrUpdate
EmergencyExpert
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
a
uditTeam
EmergencyExpert
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
$message
.
success
(
'操作成功!'
)
}
else
{
...
...
src/page/greenWay/index.vue
View file @
6ae967e3
...
...
@@ -138,7 +138,7 @@
<
script
>
import
{
tableDataMixin
}
from
'../../common/js/mixin'
import
{
queryEmergencyHospitalList
}
from
'@/api/common'
import
{
queryEmergencyGreenwayPageList
,
saveOrUpdateEmergencyGreenway
,
deleteEmergencyGreenway
}
from
'@/api/greenWay'
import
{
queryEmergencyGreenwayPageList
,
saveOrUpdateEmergencyGreenway
,
deleteEmergencyGreenway
,
auditTeamEmergencyGreenway
}
from
'@/api/greenWay'
import
SaveDialog
from
'./components/saveDialog.vue'
export
default
{
name
:
'expertPage'
,
...
...
@@ -253,7 +253,7 @@ export default {
})
},
auditData
(
id
,
auditStatus
)
{
saveOrUpdate
EmergencyGreenway
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
auditTeam
EmergencyGreenway
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
$message
.
success
(
'操作成功!'
)
}
else
{
...
...
src/page/medical/index.vue
View file @
6ae967e3
...
...
@@ -136,7 +136,7 @@
<
script
>
import
{
tableDataMixin
}
from
'../../common/js/mixin'
import
{
queryEmergencyHospitalList
}
from
'@/api/common'
import
{
queryEmergencyMedicalPageList
,
a
ddOrUpdate
EmergencyMedical
,
deleteEmergencyMedical
}
from
'@/api/medical'
import
{
queryEmergencyMedicalPageList
,
a
uditTeam
EmergencyMedical
,
deleteEmergencyMedical
}
from
'@/api/medical'
import
SaveDialog
from
'./components/saveDialog.vue'
export
default
{
name
:
'expertPage'
,
...
...
@@ -244,7 +244,7 @@ export default {
})
},
auditData
(
id
,
auditStatus
)
{
a
ddOrUpdate
EmergencyMedical
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
a
uditTeam
EmergencyMedical
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
$message
.
success
(
'操作成功!'
)
}
else
{
...
...
src/page/rescue/index.vue
View file @
6ae967e3
...
...
@@ -126,7 +126,7 @@
<
script
>
import
{
tableDataMixin
}
from
'../../common/js/mixin'
import
{
queryEmergencyHospitalList
}
from
'@/api/common'
import
{
queryTeamRescuePageList
,
a
ddOrUpdate
EmergencyRescue
,
deleteEmergencyRescue
}
from
'@/api/rescue'
import
{
queryTeamRescuePageList
,
a
uditTeam
EmergencyRescue
,
deleteEmergencyRescue
}
from
'@/api/rescue'
import
SaveDialog
from
'./components/saveDialog.vue'
export
default
{
name
:
'expertPage'
,
...
...
@@ -240,7 +240,7 @@ export default {
})
},
auditData
(
id
,
auditStatus
)
{
a
ddOrUpdate
EmergencyRescue
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
a
uditTeam
EmergencyRescue
({
id
:
id
,
auditStatus
:
auditStatus
}).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
$message
.
success
(
'操作成功!'
)
}
else
{
...
...
src/page/sitePage/index.vue
View file @
6ae967e3
...
...
@@ -82,14 +82,14 @@
<el-button
type=
"primary"
size=
"small"
v-if=
"checkPermission()"
@
click=
"exportFile()"
>
导出
</el-button>
<el-button
<
!--
<
el-button
type=
"primary"
size=
"small"
@
click=
"showSaveDialog()"
v-if=
"!checkPermission()"
>
新增
</el-button>
>
新增
</el-button>
-->
</div>
<table-mixin
:pageSize=
"pageSize"
...
...
src/page/user/components/userDialog.vue
0 → 100644
View file @
6ae967e3
<
template
>
<el-dialog
:title=
"title"
:visible
.
sync=
"dialogVisible"
width=
"500px"
@
closed=
"closedHandler"
:close-on-click-modal=
"false"
>
<el-form
ref=
"dataForm"
:model=
"dataForm"
size=
"small"
label-width=
"100px"
:rules=
"rules"
:disabled=
"formDisabled"
v-loading=
"loading"
>
<el-form-item
label=
"用户名"
prop=
"userName"
>
<el-input
placeholder=
"请输入用户名"
v-model=
"dataForm.userName"
/>
</el-form-item>
<el-form-item
label=
"申请账号"
prop=
"rigisterName"
>
<el-input
placeholder=
"请输入申请账号"
:disabled=
"type != 'add'"
v-model=
"dataForm.rigisterName"
/>
</el-form-item>
<el-form-item
label=
"手机号"
prop=
"cellphone"
>
<el-input
placeholder=
"请输入手机号"
v-model=
"dataForm.cellphone"
/>
</el-form-item>
<el-form-item
label=
"性别"
prop=
"sex"
>
<el-radio-group
v-model=
"dataForm.sex"
>
<el-radio
label=
"1"
>
男
</el-radio>
<el-radio
label=
"2"
>
女
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"证件类型"
prop=
"idType"
>
<el-select
v-model=
"dataForm.idType"
placeholder=
"请选择证件类型"
style=
"width: 100%"
>
<el-option
v-for=
"item in idTypeList"
:label=
"item.name"
:key=
"item.id"
:value=
"item.val"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"证件号码"
prop=
"idNo"
>
<el-input
placeholder=
"请输入证件号码"
v-model=
"dataForm.idNo"
/>
</el-form-item>
<el-form-item
label=
"员工工号"
prop=
"jobNo"
>
<el-input
placeholder=
"请输入员工工号"
v-model=
"dataForm.jobNo"
/>
</el-form-item>
<el-form-item
label=
"邮件地址"
prop=
"email"
>
<el-input
placeholder=
"请输入邮件地址"
v-model=
"dataForm.email"
/>
</el-form-item>
<el-form-item
label=
"机构名称"
prop=
"hospitalCode"
>
<el-select
v-model=
"dataForm.hospitalCode"
placeholder=
"请选择机构名称"
style=
"width: 100%"
>
<el-option
v-for=
"item in hospitalList"
:label=
"item.hospitalName"
:key=
"item.id"
:value=
"item.hospitalCode"
/>
</el-select>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
size=
"small"
:disabled=
"formDisabled"
@
click=
"submitForm()"
>
确 定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
import
{
queryUserInfoById
,
saveOrUpdateUserInfo
}
from
'@/api/user'
import
{
queryEmergencyHospitalList
}
from
'@/api/common'
import
{
getDic
}
from
'@/util/dict'
import
IdentityCodeValid
from
'@/util/checkIdent'
export
default
{
computed
:
{
title
:
function
()
{
let
str
=
'管理员信息'
if
(
this
.
type
===
'add'
)
{
str
+=
'填写'
}
else
if
(
this
.
type
===
'update'
)
{
str
+=
'修改'
}
else
if
(
this
.
type
===
'detail'
)
{
str
+=
'详情'
}
return
str
}
},
data
()
{
const
checkContactPhone
=
(
rule
,
value
,
callback
)
=>
{
let
reg
=
/^
[
1
][
3,4,5,7,8,9
][
0-9
]{9}
$/
;
if
(
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
"请输入正确格式的联系方式"
))
}
else
{
callback
()
}
};
const
checkEmail
=
(
rule
,
value
,
callback
)
=>
{
let
reg
=
/^
\w
+@
[
a-zA-Z0-9
]{2,10}(?:\.[
a-z
]{2,4}){1,3}
$/
if
(
value
&&
!
reg
.
test
(
value
))
{
callback
(
new
Error
(
"请输入正确格式的邮箱"
))
}
else
{
callback
()
}
};
const
checkIdNo
=
(
rule
,
value
,
callback
)
=>
{
if
(
this
.
dataForm
.
idType
===
'01'
&&
!
IdentityCodeValid
(
value
.
toUpperCase
()))
{
callback
(
new
Error
(
"请输入正确格式的身份证号"
))
}
else
{
callback
()
}
};
return
{
dialogVisible
:
false
,
loading
:
false
,
formDisabled
:
false
,
type
:
'add'
,
dataForm
:
{
userName
:
''
,
rigisterName
:
''
,
cellphone
:
''
,
sex
:
''
,
idType
:
''
,
idNo
:
''
,
jobNo
:
''
,
email
:
''
},
idTypeList
:
[],
hospitalList
:
[],
rules
:
{
userName
:
[
{
required
:
true
,
message
:
'请输入用户名'
},
],
rigisterName
:
[
{
required
:
true
,
message
:
'请输入申请账号'
},
],
cellphone
:
[
{
required
:
true
,
message
:
'请输入手机号'
},
{
validator
:
checkContactPhone
}
],
email
:
[
{
validator
:
checkEmail
}
],
sex
:
[
{
required
:
true
,
message
:
'请选择性别'
},
],
idType
:
[
{
required
:
true
,
message
:
'请选择证件类型'
},
],
idNo
:
[
{
required
:
true
,
message
:
'请输入证件号码'
},
{
validator
:
checkIdNo
}
],
hospitalCode
:
[
{
required
:
true
,
message
:
'请选择机构名称'
},
],
}
}
},
mounted
()
{
//获取可选择的医院
queryEmergencyHospitalList
().
then
(
res
=>
{
this
.
hospitalList
=
res
.
respData
})
getDic
([
'ID_type'
]).
then
(
res
=>
{
this
.
idTypeList
=
res
.
ID_type
})
},
methods
:
{
init
(
type
,
id
)
{
this
.
dialogVisible
=
true
this
.
loading
=
true
this
.
type
=
type
this
.
formDisabled
=
type
===
'detail'
if
(
type
===
'update'
||
type
===
'detail'
)
{
if
(
!
id
)
{
this
.
$message
.
error
(
'用户id不能为空'
)
return
}
queryUserInfoById
({
userId
:
id
}).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
dataForm
=
res
.
respData
||
{}
this
.
$nextTick
(()
=>
{
this
.
loading
=
false
this
.
$refs
.
dataForm
.
clearValidate
()
})
}
else
{
this
.
$message
.
error
(
res
.
content
);
}
})
}
else
{
this
.
dataForm
=
{}
this
.
$nextTick
(()
=>
{
this
.
loading
=
false
this
.
$refs
.
dataForm
.
clearValidate
()
})
}
},
submitForm
()
{
this
.
$refs
.
dataForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
const
params
=
{
...
this
.
dataForm
}
const
hospital
=
this
.
hospitalList
.
find
(
i
=>
i
.
hospitalCode
===
this
.
dataForm
.
hospitalCode
)
if
(
!
hospital
)
{
this
.
$message
.
error
(
'无效数据'
);
return
}
const
{
hospitalName
}
=
hospital
params
.
hospitalName
=
hospitalName
saveOrUpdateUserInfo
(
params
).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
dialogVisible
=
false
this
.
$message
.
success
(
this
.
type
===
'add'
?
'新增成功!'
:
'修改成功'
)
this
.
$emit
(
'subsucc'
)
}
else
{
this
.
$message
.
error
(
res
.
content
)
}
})
}
})
},
closedHandler
()
{
this
.
$refs
.
dataForm
.
resetFields
()
}
}
}
</
script
>
<
style
>
</
style
>
\ No newline at end of file
src/page/user/index.vue
View file @
6ae967e3
...
...
@@ -47,12 +47,12 @@
</el-select>
</el-form-item>
<el-form-item
prop=
"
login
Name"
prop=
"
user
Name"
label=
"用户名"
>
<el-input
placeholder=
"请输入用户名"
v-model=
"searchForm.
login
Name"
v-model=
"searchForm.
user
Name"
/>
</el-form-item>
<div
class=
"btns"
>
...
...
@@ -75,6 +75,13 @@
</div>
<div
class=
"main-page-body"
>
<div
class=
"mainContent"
>
<div
class=
"bt"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"showSaveDialog()"
>
新增
</el-button>
</div>
<table-mixin
:pageSize=
"pageSize"
:pageNum=
"pageNum"
...
...
@@ -118,6 +125,18 @@
min-width=
"200px"
>
<template
slot-scope=
"scope"
>
<el-link
type=
"primary"
@
click=
"showSaveDialog('detail',scope.row.userId)"
>
查看详情
</el-link>
<el-link
type=
"primary"
@
click=
"showSaveDialog('update', scope.row.userId)"
>
修改
</el-link>
<el-link
type=
"primary"
@
click=
"delHandler(scope.row.userId)"
>
删除
</el-link>
<el-link
type=
"primary"
@
click=
"showAuthDialog(scope.row.userId, scope.row.roleId)"
...
...
@@ -132,24 +151,30 @@
ref=
"authDialog"
@
subsucc=
"search"
/>
<UserDialog
ref=
"userDialog"
@
subsucc=
"search"
/>
</div>
</template>
<
script
>
import
{
tableDataMixin
}
from
'../../common/js/mixin'
import
{
queryEmergencyHospitalList
}
from
'@/api/common'
import
{
queryTeamUserPageList
}
from
'@/api/user'
import
{
queryTeamUserPageList
,
deleteUserInfo
}
from
'@/api/user'
import
AuthDialog
from
'./components/authDialog.vue'
import
UserDialog
from
'./components/userDialog.vue'
export
default
{
name
:
'expertPage'
,
mixins
:
[
tableDataMixin
],
components
:
{
AuthDialog
AuthDialog
,
UserDialog
},
data
()
{
return
{
searchForm
:
{
roleId
:
''
,
login
Name
:
''
,
user
Name
:
''
,
hospitalCode
:
''
},
hospitalList
:
[],
...
...
@@ -157,14 +182,21 @@ export default {
loading
:
false
,
head
:
[
{
name
:
'
用户名
'
,
name
:
'
登录账号
'
,
key
:
'loginName'
,
sortable
:
false
,
width
:
'200'
,
fixed
:
false
},
{
name
:
'真实姓名'
,
name
:
'申请账号'
,
key
:
'rigisterName'
,
sortable
:
false
,
width
:
'200'
,
fixed
:
false
},
{
name
:
'用户名'
,
key
:
'userName'
,
sortable
:
false
,
width
:
'100'
,
...
...
@@ -178,32 +210,18 @@ export default {
fixed
:
false
},
{
name
:
'
单位名称
'
,
key
:
'
hospitalName
'
,
name
:
'
性别
'
,
key
:
'
sexStr
'
,
sortable
:
false
,
width
:
'150'
,
fixed
:
false
},
{
name
:
'
辖区
'
,
key
:
'
area
Name'
,
name
:
'
机构名称
'
,
key
:
'
hospital
Name'
,
sortable
:
false
,
width
:
'300'
,
fixed
:
false
},
{
name
:
'状态'
,
key
:
''
,
sortable
:
false
,
width
:
'100'
,
fixed
:
false
},
{
name
:
'注册时间'
,
key
:
''
,
sortable
:
false
,
width
:
'100'
,
fixed
:
false
}
],
body
:
[],
...
...
@@ -237,6 +255,25 @@ export default {
},
showAuthDialog
(
userId
,
roleId
)
{
this
.
$refs
.
authDialog
.
init
(
userId
,
roleId
)
},
delHandler
(
id
)
{
this
.
$confirm
(
'此操作将永久删除该数据, 是否继续?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
deleteUserInfo
({
userId
:
id
}).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
$message
.
success
(
'删除成功!'
)
}
else
{
this
.
$message
.
error
(
res
.
content
)
}
this
.
search
()
})
})
},
showSaveDialog
(
type
=
'add'
,
id
=
''
)
{
this
.
$refs
.
userDialog
.
init
(
type
,
id
)
}
}
}
...
...
src/util/checkIdent.js
0 → 100644
View file @
6ae967e3
const
validateIdent
=
{
aIdentityCode_City
:
{
// 城市代码列表
11
:
"北京"
,
12
:
"天津"
,
13
:
"河北"
,
14
:
"山西"
,
15
:
"内蒙古"
,
21
:
"辽宁"
,
22
:
"吉林"
,
23
:
"黑龙江 "
,
31
:
"上海"
,
32
:
"江苏"
,
33
:
"浙江"
,
34
:
"安徽"
,
35
:
"福建"
,
36
:
"江西"
,
37
:
"山东"
,
41
:
"河南"
,
42
:
"湖北 "
,
43
:
"湖南"
,
44
:
"广东"
,
45
:
"广西"
,
46
:
"海南"
,
50
:
"重庆"
,
51
:
"四川"
,
52
:
"贵州"
,
53
:
"云南"
,
54
:
"西藏 "
,
61
:
"陕西"
,
62
:
"甘肃"
,
63
:
"青海"
,
64
:
"宁夏"
,
65
:
"新疆"
,
71
:
"台湾"
,
81
:
"香港"
,
82
:
"澳门"
,
91
:
"国外 "
},
IdentityCode_isCardNo
(
card
)
{
//检查号码是否符合规范,包括长度,类型
var
reg
=
/
(
^
\d{15}
$
)
|
(
^
\d{17}(\d
|X
)
$
)
/
;
//身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X
if
(
reg
.
test
(
card
)
===
false
)
{
return
false
;
}
return
true
;
},
IdentityCode_checkProvince
(
card
)
{
//取身份证前两位,校验省份
var
province
=
card
.
substr
(
0
,
2
);
if
(
validateIdent
.
aIdentityCode_City
[
province
]
==
undefined
)
{
return
false
;
}
return
true
;
},
IdentityCode_checkBirthday
(
card
)
{
//检查生日是否正确,15位以'19'年份来进行补齐。
var
len
=
card
.
length
;
//身份证15位时,次序为省(3位)市(3位)年(2位)月(2位)日(2位)校验位(3位),皆为数字
if
(
len
==
'15'
)
{
var
re_fifteen
=
/^
(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})
$/
;
var
arr_data
=
card
.
match
(
re_fifteen
);
// 正则取号码内所含出年月日数据
var
year
=
arr_data
[
2
];
var
month
=
arr_data
[
3
];
var
day
=
arr_data
[
4
];
var
birthday
=
new
Date
(
'19'
+
year
+
'/'
+
month
+
'/'
+
day
);
return
validateIdent
.
IdentityCode_verifyBirthday
(
'19'
+
year
,
month
,
day
,
birthday
);
}
//身份证18位时,次序为省(3位)市(3位)年(4位)月(2位)日(2位)校验位(4位),校验位末尾可能为X
if
(
len
==
'18'
)
{
var
re_eighteen
=
/^
(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([
0-9
]
|X
)
$/
;
var
arr_data
=
card
.
match
(
re_eighteen
);
// 正则取号码内所含出年月日数据
var
year
=
arr_data
[
2
];
var
month
=
arr_data
[
3
];
var
day
=
arr_data
[
4
];
var
birthday
=
new
Date
(
year
+
'/'
+
month
+
'/'
+
day
);
return
validateIdent
.
IdentityCode_verifyBirthday
(
year
,
month
,
day
,
birthday
);
}
return
false
;
},
IdentityCode_verifyBirthday
(
year
,
month
,
day
,
birthday
)
{
//校验日期 ,15位以'19'年份来进行补齐。
var
now
=
new
Date
();
var
now_year
=
now
.
getFullYear
();
//年月日是否合理
if
(
birthday
.
getFullYear
()
==
year
&&
(
birthday
.
getMonth
()
+
1
)
==
month
&&
birthday
.
getDate
()
==
day
)
{
//判断年份的范围(3岁到150岁之间)
var
time
=
now_year
-
year
;
if
(
time
>=
3
&&
time
<=
150
)
{
return
true
;
}
return
false
;
}
return
false
;
},
IdentityCode_checkParity
(
card
)
{
//校验位的检测
card
=
validateIdent
.
IdentityCode_changeFivteenToEighteen
(
card
);
// 15位转18位
var
len
=
card
.
length
;
if
(
len
==
'18'
)
{
var
arrInt
=
new
Array
(
7
,
9
,
10
,
5
,
8
,
4
,
2
,
1
,
6
,
3
,
7
,
9
,
10
,
5
,
8
,
4
,
2
);
var
arrCh
=
new
Array
(
'1'
,
'0'
,
'X'
,
'9'
,
'8'
,
'7'
,
'6'
,
'5'
,
'4'
,
'3'
,
'2'
);
var
cardTemp
=
0
,
i
,
valnum
;
for
(
i
=
0
;
i
<
17
;
i
++
)
{
cardTemp
+=
card
.
substr
(
i
,
1
)
*
arrInt
[
i
];
}
valnum
=
arrCh
[
cardTemp
%
11
];
if
(
valnum
==
card
.
substr
(
17
,
1
))
{
return
true
;
}
return
false
;
}
return
false
;
},
IdentityCode_changeFivteenToEighteen
(
card
)
{
//15位转18位身份证号
if
(
card
.
length
==
'15'
)
{
var
arrInt
=
new
Array
(
7
,
9
,
10
,
5
,
8
,
4
,
2
,
1
,
6
,
3
,
7
,
9
,
10
,
5
,
8
,
4
,
2
);
var
arrCh
=
new
Array
(
'1'
,
'0'
,
'X'
,
'9'
,
'8'
,
'7'
,
'6'
,
'5'
,
'4'
,
'3'
,
'2'
);
var
cardTemp
=
0
,
i
;
card
=
card
.
substr
(
0
,
6
)
+
'19'
+
card
.
substr
(
6
,
card
.
length
-
6
);
for
(
i
=
0
;
i
<
17
;
i
++
)
{
cardTemp
+=
card
.
substr
(
i
,
1
)
*
arrInt
[
i
];
}
card
+=
arrCh
[
cardTemp
%
11
];
return
card
;
}
return
card
;
},
IdentityCodeValid
(
card
)
{
// 身份证号码检验主入口
let
pass
=
true
;
let
sex
=
''
//是否为空
if
(
pass
&&
card
===
''
)
pass
=
false
;
//校验长度,类型
if
(
pass
&&
validateIdent
.
IdentityCode_isCardNo
(
card
)
===
false
)
pass
=
false
;
//检查省份
if
(
pass
&&
validateIdent
.
IdentityCode_checkProvince
(
card
)
===
false
)
pass
=
false
;
//校验生日
if
(
pass
&&
validateIdent
.
IdentityCode_checkBirthday
(
card
)
===
false
)
pass
=
false
;
//检验位的检测
if
(
pass
&&
validateIdent
.
IdentityCode_checkParity
(
card
)
===
false
)
pass
=
false
;
if
(
pass
)
{
var
iCard
=
validateIdent
.
IdentityCode_changeFivteenToEighteen
(
card
);
if
(
parseInt
(
iCard
.
charAt
(
16
))
%
2
==
0
)
{
sex
=
"0"
;
// 女生
}
else
{
sex
=
"1"
;
// 男生
}
return
true
}
else
{
return
false
}
}
}
export
default
validateIdent
.
IdentityCodeValid
//导出
src/util/dict.js
View file @
6ae967e3
...
...
@@ -2,28 +2,106 @@
* 缓存数据字典
* 把数据字典缓存到
* */
import
{
queryDictionaryList
}
from
'@/api/common'
import
{
queryDictionaryList
}
from
'@/api/common'
// 超时时间15分钟
const
timeOut
=
1000
*
60
*
15
// const timeOut = 1000
// 静态字典
const
dist
=
{
hospital_grade
:
[
{
name
:
'一级'
,
val
:
1
,
id
:
1
},
{
name
:
'二级'
,
val
:
2
,
id
:
2
},
{
name
:
'三级'
,
val
:
3
,
id
:
3
},
{
name
:
'未分级'
,
val
:
4
,
id
:
4
},
hospital_grade
:
[{
name
:
'一级'
,
val
:
1
,
id
:
1
},
{
name
:
'二级'
,
val
:
2
,
id
:
2
},
{
name
:
'三级'
,
val
:
3
,
id
:
3
},
{
name
:
'未分级'
,
val
:
4
,
id
:
4
},
],
hospital_class
:
[
{
name
:
'甲等'
,
val
:
1
,
id
:
1
},
{
name
:
'已等'
,
val
:
2
,
id
:
2
},
{
name
:
'丙等'
,
val
:
3
,
id
:
3
},
{
name
:
'未评定'
,
val
:
4
,
id
:
4
}
hospital_class
:
[{
name
:
'甲等'
,
val
:
1
,
id
:
1
},
{
name
:
'已等'
,
val
:
2
,
id
:
2
},
{
name
:
'丙等'
,
val
:
3
,
id
:
3
},
{
name
:
'未评定'
,
val
:
4
,
id
:
4
}
],
ID_type
:
[{
name
:
'居民身份证'
,
val
:
'01'
,
id
:
1
},
{
name
:
'居民户口簿'
,
val
:
'02'
,
id
:
2
},
{
name
:
'护照'
,
val
:
'03'
,
id
:
3
},
{
name
:
'军官证'
,
val
:
'04'
,
id
:
4
},
{
name
:
'驾驶证'
,
val
:
'05'
,
id
:
5
},
{
name
:
'港澳居民来往内地通行证'
,
val
:
'06'
,
id
:
6
},
{
name
:
'台湾居民来往内地通行证'
,
val
:
'07'
,
id
:
7
},
{
name
:
'出生医学证明'
,
val
:
'08'
,
id
:
8
},
{
name
:
'其他法定有效证件'
,
val
:
'09'
,
id
:
9
}
]
}
export
async
function
getDic
(
list
){
export
async
function
getDic
(
list
)
{
let
data
=
{}
if
(
!
Array
.
isArray
(
list
)
&&
list
.
length
===
0
)
{
return
data
...
...
@@ -32,14 +110,16 @@ export async function getDic(list){
list
.
forEach
(
item
=>
{
if
(
dist
[
item
])
{
// 是否静态
data
[
item
]
=
dist
[
item
]
}
else
if
(
getSS
(
item
))
{
// 是否还在缓存中
}
else
if
(
getSS
(
item
))
{
// 是否还在缓存中
data
[
item
]
=
getSS
(
item
)
}
else
{
// 发请求获取
}
else
{
// 发请求获取
paramsList
.
push
(
item
)
}
})
if
(
paramsList
.
length
>
0
)
{
const
res
=
await
queryDictionaryList
({
nameList
:
paramsList
})
const
res
=
await
queryDictionaryList
({
nameList
:
paramsList
})
if
(
res
&&
res
.
respData
)
{
// 缓存字典
setSS
(
res
.
respData
)
...
...
@@ -48,12 +128,13 @@ export async function getDic(list){
}
return
data
}
function
getSS
(
item
)
{
const
data
=
sessionStorage
.
getItem
(
item
)
if
(
data
)
{
// 判断是否超时
const
time
=
sessionStorage
.
getItem
(
item
+
'_time'
)
||
0
if
(
parseInt
(
time
)
>
new
Date
().
getTime
()
-
timeOut
){
if
(
parseInt
(
time
)
>
new
Date
().
getTime
()
-
timeOut
)
{
return
JSON
.
parse
(
data
)
}
else
{
// 清除超时缓存
...
...
@@ -65,6 +146,7 @@ function getSS(item) {
return
false
}
}
function
setSS
(
obj
)
{
for
(
const
key
in
obj
)
{
if
(
Object
.
hasOwnProperty
.
call
(
obj
,
key
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment