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
d4d3751e
Commit
d4d3751e
authored
Jul 13, 2021
by
何鹏程
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改样式及路由
parent
4201e666
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
567 additions
and
470 deletions
+567
-470
webpack.conf.js
build/webpack.conf.js
+20
-18
favicon.ico
favicon.ico
+0
-0
common.scss
src/assets/css/common.scss
+81
-27
reset.scss
src/assets/css/reset.scss
+1
-0
emergencyCarDialog.vue
src/page/emergencyCar/components/emergencyCarDialog.vue
+219
-147
index.vue
src/page/emergencyCar/index.vue
+2
-2
index.vue
src/page/expert/index.vue
+2
-2
index.vue
src/page/greenWay/index.vue
+2
-2
HeaderBar.vue
src/page/layout/HeaderBar.vue
+7
-2
NavBar.vue
src/page/layout/NavBar.vue
+3
-29
index.vue
src/page/medical/index.vue
+2
-2
index.vue
src/page/nav/index.vue
+6
-1
index.vue
src/page/rescue/index.vue
+2
-2
index.vue
src/page/sitePage/index.vue
+2
-2
index.vue
src/page/siteQuery/index.vue
+132
-113
index.vue
src/page/user/index.vue
+2
-2
index.js
src/router/index.js
+35
-113
actions.js
src/store/actions.js
+49
-6
No files found.
build/webpack.conf.js
View file @
d4d3751e
...
...
@@ -13,15 +13,19 @@ const HOST = process.env.HOST
const
PORT
=
process
.
env
.
PORT
&&
Number
(
process
.
env
.
PORT
)
const
devWebpackConfig
=
merge
(
baseWebpackConfig
,
{
module
:
{
rules
:
utils
.
styleLoaders
({
sourceMap
:
config
.
dev
.
cssSourceMap
,
usePostCSS
:
true
})
rules
:
utils
.
styleLoaders
({
sourceMap
:
config
.
dev
.
cssSourceMap
,
usePostCSS
:
true
})
},
devtool
:
config
.
dev
.
devtool
,
devServer
:
{
clientLogLevel
:
'warning'
,
historyApiFallback
:
{
rewrites
:
[
{
from
:
/.*/
,
to
:
path
.
posix
.
join
(
config
.
dev
.
assetsPublicPath
,
'index.html'
)
},
],
rewrites
:
[{
from
:
/.*/
,
to
:
path
.
posix
.
join
(
config
.
dev
.
assetsPublicPath
,
'index.html'
)
},
],
},
hot
:
true
,
contentBase
:
false
,
...
...
@@ -29,9 +33,10 @@ const devWebpackConfig = merge(baseWebpackConfig, {
host
:
HOST
||
config
.
dev
.
host
,
//ip
port
:
PORT
||
config
.
dev
.
port
,
//端口
open
:
config
.
dev
.
autoOpenBrowser
,
overlay
:
config
.
dev
.
errorOverlay
?
{
warnings
:
false
,
errors
:
true
}
:
false
,
overlay
:
config
.
dev
.
errorOverlay
?
{
warnings
:
false
,
errors
:
true
}
:
false
,
publicPath
:
config
.
dev
.
assetsPublicPath
,
proxy
:
config
.
dev
.
proxyTable
,
//前端代理
quiet
:
true
,
...
...
@@ -50,16 +55,14 @@ const devWebpackConfig = merge(baseWebpackConfig, {
new
HtmlWebpackPlugin
({
filename
:
'index.html'
,
template
:
'index.html'
,
favicon
:
'./favicon.ico'
,
//
favicon: './favicon.ico',
inject
:
true
}),
new
CopyWebpackPlugin
([
{
new
CopyWebpackPlugin
([{
from
:
path
.
resolve
(
__dirname
,
'../static'
),
to
:
config
.
dev
.
assetsSubDirectory
,
ignore
:
[
'.*'
]
}
])
}])
]
})
...
...
@@ -75,9 +78,8 @@ module.exports = new Promise((resolve, reject) => {
compilationSuccessInfo
:
{
messages
:
[
`Your application is running here: http://
${
devWebpackConfig
.
devServer
.
host
}
:
${
port
}
`
],
},
onErrors
:
config
.
dev
.
notifyOnErrors
?
utils
.
createNotifierCallback
()
:
undefined
onErrors
:
config
.
dev
.
notifyOnErrors
?
utils
.
createNotifierCallback
()
:
undefined
}))
resolve
(
devWebpackConfig
)
}
...
...
favicon.ico
deleted
100644 → 0
View file @
4201e666
1.12 KB
src/assets/css/common.scss
View file @
d4d3751e
...
...
@@ -184,38 +184,92 @@
}
}
.el-form-item--small.el-form-item
{
.main-app
{
.el-form-item--small.el-form-item
{
margin-bottom
:
20px
;
}
}
.el-checkbox__label
{
.el-checkbox__label
{
padding-left
:
5px
;
}
}
.el-input__inner
{
.el-input__inner
{
padding
:
0
5px
;
}
}
.el-input--prefix
.el-input__inner
{
padding
:
0
30px
;
}
.
el-radio__inner
:
:
after
{
.
el-radio__inner
:
:
after
{
background
:
#40a2de
;
width
:
8px
;
height
:
8px
;
}
}
.el-radio__label
{
.el-radio__label
{
padding-left
:
5px
;
}
}
.el-form-item__label
{
.el-form-item__label
{
padding-right
:
10px
;
}
}
.el-tooltip__popper.is-dark
{
.el-tooltip__popper.is-dark
{
opacity
:
0
.7
;
}
}
.noData
{
.noData
{
margin
:
0
auto
;
background
:
url("../images/CoverPage.png")
no-repeat
center
;
height
:
350px
;
}
.el-form-item--small
.el-form-item__content
{
line-height
:
30px
;
}
.el-input--small
.el-input__inner
{
height
:
30px
;
}
.el-button--small
{
height
:
30px
;
padding
:
7px
15px
;
}
.el-dialog
{
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
/*height:600px;*/
max-height
:
calc
(
100%
-
30px
);
max-width
:
calc
(
100%
-
30px
);
margin
:
0
!
important
;
overflow
:
auto
;
.el-dialog__header
{
padding
:
19px
24px
;
background
:
#F3F6F8
;
border-bottom
:
1px
solid
#D6D6D6
;
.el-dialog__title
{
font-size
:
16px
;
line-height
:
22px
;
font-weight
:
normal
;
color
:
#000000
;
}
}
// .el-dialog__body {
// max-height: calc(100% - 61px - 60px);
// overflow: auto;
// }
.el-dialog__footer
{
height
:
60px
;
background
:
#DDF1FF
;
padding
:
15px
24px
;
}
}
}
src/assets/css/reset.scss
View file @
d4d3751e
...
...
@@ -30,6 +30,7 @@ span,
blockquote
{
margin
:
0
;
padding
:
0
;
font-family
:
"Microsoft Yahei"
,
Arial
;
}
h1
,
...
...
src/page/emergencyCar/components/emergencyCarDialog.vue
View file @
d4d3751e
...
...
@@ -2,7 +2,7 @@
<el-dialog
:title=
"title"
:visible
.
sync=
"dialogVisible"
width=
"1
2
00px"
width=
"1
0
00px"
@
closed=
"closedHandler"
:close-on-click-modal=
"false"
class=
"emergencyCarDialog"
...
...
@@ -11,13 +11,134 @@
ref=
"dataForm"
:model=
"dataForm"
size=
"small"
label-width=
"
300
px"
label-width=
"
218
px"
:rules=
"rules"
:disabled=
"formDisabled"
v-loading=
"loading"
>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆使用单位(全称):"
prop=
"vehicleUsingUnit"
>
<el-input
placeholder=
"请输入车辆使用单位"
v-model=
"dataForm.vehicleUsingUnit"
/>
</el-form-item>
<el-form-item
label=
"单位性质:"
prop=
"unitType"
>
<el-radio-group
class=
"radio-group-type1"
v-model=
"dataForm.unitType"
>
<el-radio
:label=
"1"
>
公立医疗
</el-radio>
<el-radio
:label=
"2"
>
民营医院
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"车辆管理负责人:"
prop=
"vehicleManager"
>
<el-input
placeholder=
"请输入车辆管理负责人"
v-model=
"dataForm.vehicleManager"
/>
</el-form-item>
<el-form-item
label=
"负责人11位手机号:"
prop=
"contactPhone"
>
<el-input
placeholder=
"请输入负责人联系方式"
v-model=
"dataForm.contactPhone"
/>
</el-form-item>
<el-form-item
label=
"车辆品牌:"
prop=
"vechieBrand"
>
<el-input
placeholder=
"请输入车辆品牌"
v-model=
"dataForm.vechieBrand"
/>
</el-form-item>
<el-form-item
label=
"车辆识别代码(17位车架号):"
prop=
"vechieVinCode"
>
<el-input
placeholder=
"请输入车辆识别代码"
v-model=
"dataForm.vechieVinCode"
/>
</el-form-item>
<el-form-item
label=
"车辆是否上牌:"
prop=
"vechieIsLicense"
>
<el-radio-group
class=
"radio-group-type1"
v-model=
"dataForm.vechieIsLicense"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"车牌号:"
v-if=
"dataForm.vechieIsLicense !== 2"
prop=
"licensePlateNumber"
>
<el-input
placeholder=
"请输入车牌号"
v-model=
"dataForm.licensePlateNumber"
/>
</el-form-item>
<!--
<el-form-item
label=
"车辆是否站点使用:"
prop=
"siteUseLicense"
>
<el-radio-group
class=
"radio-group-type1"
v-model=
"dataForm.siteUseLicense"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"站点名称:"
prop=
"siteName"
>
<el-input
placeholder=
"请输入站点名称"
v-model=
"dataForm.siteName"
/>
</el-form-item>
<el-form-item
label=
"上级医院名称:"
prop=
"transHospitalName"
>
<el-input
placeholder=
"请输入上级医院名称"
v-model=
"dataForm.transHospitalName"
/>
</el-form-item>
-->
<el-form-item
label=
"备注(选填):"
prop=
"remark"
>
<el-input
type=
"textarea"
:rows=
"3"
resize=
"none"
placeholder=
"请输入备注"
v-model=
"dataForm.remark"
/>
</el-form-item>
<el-form-item
label=
"车辆图片"
prop=
"emergencyCarUrl"
...
...
@@ -36,29 +157,19 @@
:src=
"dataForm.emergencyCarUrl"
class=
"avatar"
>
<i
<div
class=
"avatar-show"
v-else
class=
"el-icon-plus avatar-uploader-icon"
></i>
</el-upload>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆使用单位(请填写单位全称)"
prop=
"vehicleUsingUnit"
>
<el-input
placeholder=
"请输入车辆使用单位"
v-model=
"dataForm.vehicleUsingUnit"
/
>
<i
class=
"el-icon-plus avatar-uploader-icon"
></i>
<span>
上传图片
</span>
</div>
</el-upload
>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"
辖区(多个院区则填写主院区所属辖区)
"
label=
"
所属辖区(主院区):
"
prop=
"area"
>
<el-select
...
...
@@ -74,23 +185,8 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"单位性质"
prop=
"unitType"
>
<el-radio-group
v-model=
"dataForm.unitType"
>
<el-radio
:label=
"1"
>
公立医疗
</el-radio>
<el-radio
:label=
"2"
>
民营医院
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆类型"
label=
"车辆类型:"
prop=
"vechieType"
>
<el-select
...
...
@@ -106,72 +202,33 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆管理负责人"
prop=
"vehicleManager"
>
<el-input
placeholder=
"请输入车辆管理负责人"
v-model=
"dataForm.vehicleManager"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否为院前急救车
(车辆用途)
"
label=
"是否为院前急救车
:
"
prop=
"isPreHospitalVechie"
>
<el-radio-group
v-model=
"dataForm.isPreHospitalVechie"
>
<el-radio-group
class=
"radio-group-type1"
v-model=
"dataForm.isPreHospitalVechie"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"负责人联系方式(11位手机号)"
prop=
"contactPhone"
>
<el-input
placeholder=
"请输入负责人联系方式"
v-model=
"dataForm.contactPhone"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆来源"
label=
"车辆来源:"
prop=
"vechieSource"
>
<el-radio-group
v-model=
"dataForm.vechieSource"
>
<el-radio-group
class=
"radio-group-type2"
v-model=
"dataForm.vechieSource"
>
<el-radio
:label=
"1"
>
购买
</el-radio>
<el-radio
:label=
"2"
>
捐赠
</el-radio>
<el-radio
:label=
"3"
>
划拨
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆品牌"
prop=
"vechieBrand"
>
<el-input
placeholder=
"请输入车辆品牌"
v-model=
"dataForm.vechieBrand"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"首次登记日期"
label=
"首次登记日期:"
prop=
"firstRegisterDate"
>
<el-date-picker
...
...
@@ -179,57 +236,34 @@
placeholder=
"请选择首次登记日期"
v-model=
"dataForm.firstRegisterDate"
style=
"width: 100%;"
prefix-icon=
"el-icon-date"
format=
"yyyy-MM-dd HH:mm:ss"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆识别代码(11位车架号)"
prop=
"vechieVinCode"
>
<el-input
placeholder=
"请输入车辆识别代码"
v-model=
"dataForm.vechieVinCode"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆使用状态"
label=
"车辆使用状态:"
prop=
"vechieUseStatus"
>
<el-radio-group
v-model=
"dataForm.vechieUseStatus"
>
<el-radio-group
class=
"radio-group-type2"
v-model=
"dataForm.vechieUseStatus"
>
<el-radio
:label=
"1"
>
在用
</el-radio>
<el-radio
:label=
"2"
>
闲置
</el-radio>
<el-radio
:label=
"3"
>
其他
</el-radio>
</el-radio-group>
<el-input
v-if=
"dataForm.vechieUseStatus === 3"
type=
"textarea"
:rows=
"3"
resize=
"none"
placeholder=
"若选择其他,请手动输入车辆使用状态"
v-model=
"dataForm.otherStatus"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆是否上牌"
prop=
"vechieIsLicense"
>
<el-radio-group
v-model=
"dataForm.vechieIsLicense"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"车辆特殊用途"
label=
"车辆特殊用途:"
prop=
"vechieSpecialPurpose"
>
<el-select
...
...
@@ -245,30 +279,28 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"
车牌号
"
prop=
"
licensePlateNumber
"
label=
"
特殊设备(选填):
"
prop=
"
specialDevice
"
>
<el-input
placeholder=
"请输入车牌号"
v-model=
"dataForm.licensePlateNumber"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"备注(若无可略过)"
prop=
"remark"
<el-radio-group
class=
"radio-group-type3"
v-model=
"dataForm.specialDevice"
>
<el-radio
:label=
"1"
>
车载CT
</el-radio>
<el-radio
:label=
"2"
>
车载ECMO
</el-radio>
<el-radio
:label=
"3"
>
其他
</el-radio>
</el-radio-group>
<el-input
placeholder=
"请输入备注"
v-model=
"dataForm.remark"
v-if=
"dataForm.specialDevice === 3"
type=
"textarea"
:rows=
"3"
resize=
"none"
placeholder=
"若选择其他,请手动输入特殊设备"
v-model=
"dataForm.specialDeviceOther"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
...
...
@@ -385,12 +417,15 @@ export default {
{
required
:
true
,
message
:
'请选择首次登记日期'
},
],
vechieVinCode
:
[
{
required
:
true
,
max
:
1
1
,
message
:
'请输入正确格式的车辆识别代码'
}
{
required
:
true
,
max
:
1
7
,
message
:
'请输入正确格式的车辆识别代码'
}
],
vechieUseStatus
:
[
{
required
:
true
,
message
:
'请选择车辆使用状态'
},
{
validator
:
checkVechieUseStatus
}
],
vechieSpecialPurpose
:
[
{
required
:
true
,
message
:
'请选择车辆特殊用途'
},
],
vechieIsLicense
:
[
{
required
:
true
,
message
:
'请选择车辆是否上牌'
},
],
...
...
@@ -505,18 +540,55 @@ export default {
.avatar-uploader
.el-upload
:hover
{
border-color
:
#409eff
;
}
.avatar-show
{
width
:
84px
;
height
:
84px
;
padding-top
:
24px
;
box-sizing
:
border-box
;
.avatar-uploader-icon
{
font-size
:
28px
;
color
:
#8c939d
;
width
:
178px
;
height
:
178px
;
line-height
:
178px
;
display
:
block
;
text-align
:
center
;
}
span
{
font-size
:
12px
;
color
:
#9e9e9e
;
}
}
.avatar
{
width
:
178
px
;
height
:
178
px
;
width
:
84
px
;
height
:
84
px
;
display
:
block
;
}
.el-dialog__body
{
padding
:
32px
64px
0
60px
;
box-sizing
:
border-box
;
}
.radio-group-type1
{
.el-radio
{
margin-right
:
48px
;
&
:last-child
{
margin-right
:
0
;
}
}
}
.radio-group-type2
{
.el-radio
{
margin-right
:
32px
;
&
:last-child
{
margin-right
:
0
;
}
}
}
.radio-group-type3
{
.el-radio
{
margin-right
:
8px
;
&
:last-child
{
margin-right
:
0
;
}
}
}
}
</
style
>
src/page/emergencyCar/index.vue
View file @
d4d3751e
...
...
@@ -80,7 +80,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -92,7 +92,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/page/expert/index.vue
View file @
d4d3751e
...
...
@@ -70,7 +70,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -82,7 +82,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/page/greenWay/index.vue
View file @
d4d3751e
...
...
@@ -81,7 +81,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -93,7 +93,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/page/layout/HeaderBar.vue
View file @
d4d3751e
...
...
@@ -8,15 +8,20 @@
src=
"../../assets/images/user.png"
alt=
""
>
<span>
张医生
</span>
<span>
{{
userInfo
.
userName
}}
</span>
</div>
</div>
</
template
>
<
script
>
import
{
mapGetters
}
from
'vuex'
export
default
{
computed
:
{
...
mapGetters
([
'userInfo'
])
},
data
()
{
return
{}
},
...
...
src/page/layout/NavBar.vue
View file @
d4d3751e
...
...
@@ -38,38 +38,12 @@ export default {
}
},
watch
:
{
menuMap
(
val
,
oldVal
)
{
this
.
initNav
()
}
},
mounted
()
{
this
.
initNav
()
// this.leftMenu = [
// {
// name: '急救资源',
// icon: 'fa-address-book-o',
// child: [
// { name: '急救车资源', path: '/resources/emergencyCar' },
// { name: '急救绿道资源', path: '/resources/greenWay' },
// { name: '急诊科抢救资源', path: '/resources/rescue' },
// { name: '急诊专家资源', path: '/resources/expert' },
// { name: '急救药品耗材资源', path: '/resources/medical' },
// { name: '急诊站点资源', path: '/resources/sitePage' }
// ]
// },
// {
// name: '业务监管',
// icon: 'fa-address-book-o',
// child: [
// { name: '急救站点查询', path: '/business/siteQuery' },
// ]
// },
// {
// name: '基础信息管理',
// icon: 'fa-address-book-o',
// child: [
// { name: '用户管理', path: '/basicInfo/user' },
// { name: '菜单管理', path: '/basicInfo/nav' },
// ]
// }
// ]
},
created
()
{
...
...
src/page/medical/index.vue
View file @
d4d3751e
...
...
@@ -79,7 +79,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -91,7 +91,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/page/nav/index.vue
View file @
d4d3751e
...
...
@@ -29,6 +29,7 @@
</el-switch>
</el-form-item>
</el-form>
</div>
</div>
</div>
...
...
@@ -36,6 +37,9 @@
<
script
>
import
{
queryCheckMenuList
,
updateCheckMenuList
}
from
'@/api/nav'
import
store
from
'../../store'
import
{
Auth
}
from
'@/util/auth'
export
default
{
name
:
'expertPage'
,
data
()
{
...
...
@@ -67,7 +71,8 @@ export default {
updateCheckMenuList
(
params
).
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
this
.
$message
.
success
(
'修改成功'
)
store
.
dispatch
(
'clearStore'
)
// store.dispatch('clearStore')
store
.
dispatch
(
'LoginByToken'
,
Auth
.
getLoginInfo
())
}
else
{
this
.
$message
.
success
(
res
.
content
)
}
...
...
src/page/rescue/index.vue
View file @
d4d3751e
...
...
@@ -69,7 +69,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -81,7 +81,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/page/sitePage/index.vue
View file @
d4d3751e
...
...
@@ -80,7 +80,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -92,7 +92,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/page/siteQuery/index.vue
View file @
d4d3751e
...
...
@@ -19,97 +19,104 @@
>
<div
class=
"top main-table"
>
<div
class=
"title"
><span
class=
"bed"
><span
class=
"red"
>
{{
areaName
}}
</span>
站点信息
</span>
(共
<span
class=
"red"
>
{{
siteListData
.
length
}}
</span>
个站点)
</div>
<div
class=
"table-box"
>
<el-table
:data=
"siteListData"
style=
"width: 100%"
highlight-current-row
ref=
"siteListData"
height=
"100%"
@
current-change=
"getCarDataList"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50px"
min-
width=
"50px"
>
</el-table-column>
<el-table-column
prop=
"siteName"
label=
"站点名称"
width=
"180"
min-
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"siteLocation"
label=
"站点位置"
width=
"180"
min-
width=
"180"
>
</el-table-column>
<el-table-column
prop=
"carCount"
label=
"车辆数"
width=
"80px"
min-
width=
"80px"
>
</el-table-column>
<el-table-column
prop=
"hospitalName"
label=
"所在医疗机构"
min-width=
"180px"
>
</el-table-column>
</el-table>
</div>
</div>
<div
class=
"bottom main-table"
>
<div
class=
"title"
><span
class=
"bed"
><span
class=
"red"
>
{{
siteName
}}
</span>
车辆明细信息
</span>
(共
<span
class=
"red"
>
{{
carListData
.
length
}}
</span>
辆急救车)
</div>
<div
class=
"table-box"
>
<el-table
:data=
"carListData"
style=
"width:
100%"
height=
"
100%"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50px"
min-
width=
"50px"
>
</el-table-column>
<el-table-column
prop=
"licensePlateNumber"
label=
"车牌号"
width=
"120"
min-
width=
"120"
>
</el-table-column>
<el-table-column
prop=
"vechieType"
label=
"车辆类型"
width=
"120"
min-
width=
"120"
:formatter=
"vechieTypeFormatter"
>
</el-table-column>
<el-table-column
prop=
"vechieUseStatus"
label=
"车辆状态"
width=
"80"
min-
width=
"80"
:formatter=
"vechieUseStatusFormatter"
>
</el-table-column>
<el-table-column
prop=
"vechieSpecialPurpose"
label=
"车辆特殊用途"
width=
"120"
min-
width=
"120"
:formatter=
"vechieSpecialPurposeFormatter"
>
</el-table-column>
<el-table-column
prop=
"isPreHospitalVechie"
label=
"是否院前急救车"
width=
"80"
min-
width=
"80"
:formatter=
"isPreHospitalVechieFormatter"
>
</el-table-column>
<el-table-column
prop=
"vehicleUsingUnit"
label=
"车辆使用单位"
min-width=
"180"
>
</el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
</div>
...
...
@@ -139,12 +146,8 @@ export default {
this
.
init
()
},
methods
:
{
init
()
{
//划分出行政区
const
map
=
new
BMapGL
.
Map
(
'allmap'
)
map
.
centerAndZoom
(
new
BMapGL
.
Point
(
defaultCenterPoint
[
0
],
defaultCenterPoint
[
1
]),
11
)
this
.
map
=
map
map
.
enableScrollWheelZoom
(
true
);
getSelections
()
{
getDic
([
'area'
,
'vechie_type'
,
'vechie_special_purpose'
]).
then
(
res
=>
{
this
.
vechieTypeList
=
res
.
vechie_type
this
.
vechieSpecialPurposeList
=
res
.
vechie_special_purpose
...
...
@@ -155,38 +158,46 @@ export default {
// })
// }
})
// 地图上打点
},
markerHandler
()
{
queryEmergencySiteList
().
then
(
res
=>
{
if
(
res
.
msg
===
201
)
{
if
(
res
.
respData
&&
res
.
respData
.
length
>
0
)
{
this
.
allData
=
res
.
respData
this
.
siteListData
=
res
.
respData
res
.
respData
.
forEach
(
item
=>
{
if
(
item
.
siteLatitude
&&
item
.
siteLongitude
)
{
const
point
=
new
BMapGL
.
Point
(
item
.
siteLongitude
,
item
.
siteLatitude
)
const
marker
=
new
BMapGL
.
Marker
(
point
)
map
.
addOverlay
(
marker
)
marker
.
addEventListener
(
'click'
,
()
=>
{
this
.
getSiteListData
(
item
.
areaName
)
this
.
$nextTick
(()
=>
{
const
dataList
=
this
.
allData
.
filter
(
i
=>
i
.
id
===
item
.
id
)
||
[]
this
.
$refs
.
siteListData
.
setCurrentRow
(
dataList
[
0
]);
})
map
.
centerAndZoom
(
new
BMapGL
.
Point
(
item
.
siteLongitude
,
item
.
siteLatitude
),
18
)
})
}
})
// if (res.respData && res.respData[0]) {
// this.$refs.siteListData.setCurrentRow(res.respData[0]);
// res.respData.forEach(item => {
// if (item.siteLatitude && item.siteLongitude) {
// const point = new BMapGL.Point(item.siteLongitude, item.siteLatitude)
// const marker = new BMapGL.Marker(point)
// this.map.addOverlay(marker)
// marker.addEventListener('click', () => {
// this.getSiteListData(item.areaName)
// this.$nextTick(() => {
// const dataList = this.allData.filter(i => i.id === item.id) || []
// this.$refs.siteListData.setCurrentRow(dataList[0]);
// })
// map.centerAndZoom(new BMapGL.Point(item.siteLongitude, item.siteLatitude), 18)
// })
// }
// })
}
}
else
{
this
.
$message
.
error
(
res
.
content
)
}
})
}
,
init
()
{
//划分出行政区
this
.
map
=
new
BMapGL
.
Map
(
'allmap'
)
this
.
map
.
centerAndZoom
(
new
BMapGL
.
Point
(
defaultCenterPoint
[
0
],
defaultCenterPoint
[
1
]),
11
)
this
.
map
.
enableScrollWheelZoom
(
true
);
// 划分出行政单位
this
.
getSelections
()
// 地图上打点
this
.
markerHandler
()
},
getBoundary
(
districtName
,
map
)
{
getBoundary
(
districtName
)
{
const
bdary
=
new
BMapGL
.
Boundary
()
const
that
=
this
bdary
.
get
(
districtName
,
function
(
rs
)
{
//获取行政区域
...
...
@@ -196,7 +207,7 @@ export default {
fillColor
:
'#'
+
(
Math
.
random
()
*
0xFFFFFF
<<
0
).
toString
(
16
),
fillOpacity
:
0.3
});
//建立多边形覆盖物
map
.
addOverlay
(
ply
);
//添加覆盖物
that
.
map
.
addOverlay
(
ply
);
//添加覆盖物
ply
.
addEventListener
(
'click'
,
()
=>
{
that
.
getSiteListData
(
districtName
)
})
...
...
@@ -274,5 +285,13 @@ export default {
color
:
red
;
}
}
.table-box
{
height
:
calc
(
100%
-
46px
);
}
// .table1 {
// width: 100%;
// overflow: auto;
// }
}
</
style
>
\ No newline at end of file
src/page/user/index.vue
View file @
d4d3751e
...
...
@@ -93,7 +93,7 @@
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
min-
width=
"50"
>
</el-table-column>
<el-table-column
...
...
@@ -105,7 +105,7 @@
:sortable=
"item.sortable"
:fixed=
"item.fixed"
:key=
"index"
:width=
"item.width"
:
min-
width=
"item.width"
:show-overflow-tooltip=
"true"
>
</el-table-column>
...
...
src/router/index.js
View file @
d4d3751e
...
...
@@ -7,17 +7,13 @@ import {
Message
}
from
'element-ui'
import
{
Auth
,
Cache
Auth
}
from
'@/util/auth'
import
store
from
'../store'
import
{
staticRoute
,
routeHandle
}
from
'./staticRoute'
import
{
login
}
from
'../api/common'
NProgress
.
configure
({
showSpinner
:
false
})
...
...
@@ -43,128 +39,54 @@ router.beforeEach((to, from, next) => {
const
token
=
to
.
query
.
token
const
_token
=
Auth
.
getLoginInfo
()
// const userInfo = store.getters.userInfo
// const menu = store.getters.menuMap
const
routers
=
router
.
getRoutes
()
const
menu
=
store
.
getters
.
menuMap
const
userInfo
=
store
.
getters
.
userInfo
// console.log('router', routers)
// console.log('token', token)
// console.log('_token', _token)
// console.log('userInfo', userInfo)
// console.log('menu', menu)
if
(
token
&&
token
!==
_token
)
{
// 重新登录
store
.
dispatch
(
'clearStore'
)
login
({
token
:
token
}).
then
(
res
=>
{
const
{
parentMenuList
}
=
res
.
respData
.
menuMap
if
(
res
.
msg
===
201
&&
parentMenuList
&&
parentMenuList
.
length
>
0
)
{
store
.
dispatch
(
'saveMenuMap'
,
parentMenuList
)
router
.
addRoutes
(
routeHandle
(
parentMenuList
))
store
.
dispatch
(
'saveUserInfo'
,
res
.
respData
.
userDto
)
Auth
.
setLoginInfo
(
res
.
respData
.
token
)
if
((
token
&&
token
!==
_token
)
||
(
_token
&&
(
routers
.
length
===
7
||
!
menu
||
!
userInfo
)))
{
//新用户登或重新登录
console
.
log
(
'拉取用户数据'
)
store
.
dispatch
(
'LoginByToken'
,
token
||
_token
).
then
(
res
=>
{
// const {
// menuMap
// } = res
// router.addRoutes(routeHandle(menuMap))
next
({
...
to
,
replace
:
true
})
}
else
{
}).
catch
(
err
=>
{
store
.
dispatch
(
'clearStore'
)
Message
({
type
:
'error'
,
message
:
res
.
content
message
:
'登录失败 请联系管理员!'
})
next
({
path
:
'/error/404'
,
replace
:
true
})
}
})
}
else
{
if
(
routers
.
length
>
7
)
{
if
(
whiteList
.
indexOf
(
to
.
path
)
>=
0
)
{
console
.
log
(
'该页面无需登录即可访问'
)
next
()
}
else
{
store
.
dispatch
(
'clearStore'
)
login
({
token
:
token
||
_token
}).
then
(
res
=>
{
const
{
parentMenuList
}
=
res
.
respData
.
menuMap
if
(
res
.
msg
===
201
&&
parentMenuList
&&
parentMenuList
.
length
>
0
)
{
store
.
dispatch
(
'saveMenuMap'
,
parentMenuList
)
router
.
addRoutes
(
routeHandle
(
parentMenuList
))
store
.
dispatch
(
'saveUserInfo'
,
res
.
respData
.
userDto
)
Auth
.
setLoginInfo
(
res
.
respData
.
token
)
next
({
...
to
,
replace
:
true
})
if
(
routers
.
length
>
7
&&
_token
&&
menu
&&
userInfo
)
{
console
.
log
(
'有数据无需登录'
)
next
()
}
else
{
Message
({
type
:
'error'
,
message
:
res
.
content
})
store
.
dispatch
(
'clearStore'
)
console
.
log
(
'没数据没tonken 跳转404'
)
next
({
path
:
'/error/404'
,
replace
:
true
})
}
})
}
}
// if (token) {
// if (_token === token) {
// next()
// } else {
// store.dispatch('clearStore')
// login({token: token}).then(res => {
// if (res.msg === 201) {
// store.dispatch('saveMenuMap', res.respData.menuMap.parentMenuList)
// router.addRoutes(routeHandle(res.respData.menuMap.parentMenuList))
// store.dispatch('saveUserInfo', res.respData.userDto)
// Auth.setLoginInfo(res.respData.token)
// next()
// } else {
// this.$message.error(res.content)
// next({path: '/error/404', replace: true})
// }
// })
// }
// } else {
// // 判断是否登录过
// if (Auth.getLoginInfo() && store.getters.userInfo && store.getters.menuMap){
// next()
// } else {
// if (Auth.getLoginInfo()) {
// const token = Auth.getLoginInfo()
// store.dispatch('clearStore')
// login({token: token}).then(res => {
// if (res.msg === 201) {
// store.dispatch('saveMenuMap', res.respData.menuMap.parentMenuList)
// router.addRoutes(routeHandle(res.respData.menuMap.parentMenuList))
// store.dispatch('saveUserInfo', res.respData.userDto)
// Auth.setLoginInfo(res.respData.token)
// next()
// } else {
// next({path: '/error/404', replace: true})
// }
// })
// } else {
// // 判断是否为白名单页面
// if (whiteList.indexOf(to.path) >= 0) {
// next()
// } else {
// store.dispatch('clearStore')
// next({path: '/error/404', replace: true})
// }
// }
// }
// }
})
router
.
afterEach
(()
=>
{
...
...
src/store/actions.js
View file @
d4d3751e
import
*
as
types
from
'./mutation-types'
import
{
Cache
}
from
'@/util/auth'
export
const
clearStore
=
function
({
commit
,
state
})
{
import
{
Cache
,
Auth
}
from
'@/util/auth'
import
{
login
}
from
'../api/common'
export
const
clearStore
=
function
({
commit
,
state
})
{
commit
(
types
.
SET_MENUMAP
,
Cache
.
clearMenuMap
())
commit
(
types
.
SET_USERINFO
,
Cache
.
clearUserInfo
())
Auth
.
clearLoginInfo
()
}
export
const
saveMenuMap
=
function
({
commit
},
data
)
{
import
{
routeHandle
}
from
'../router/staticRoute'
import
router
from
'../router'
export
const
saveMenuMap
=
function
({
commit
},
data
)
{
commit
(
types
.
SET_MENUMAP
,
Cache
.
setMenuMap
(
data
))
}
export
const
saveUserInfo
=
function
({
commit
},
data
)
{
export
const
saveUserInfo
=
function
({
commit
},
data
)
{
commit
(
types
.
SET_USERINFO
,
Cache
.
setUserInfo
(
data
))
}
export
const
LoginByToken
=
function
({
commit
},
data
)
{
return
new
Promise
(
async
(
resolve
,
reject
)
=>
{
const
res
=
await
login
({
token
:
data
})
const
{
menuMap
:
{
parentMenuList
},
token
,
userDto
}
=
res
.
respData
if
(
res
.
msg
===
201
&&
parentMenuList
&&
parentMenuList
.
length
>
0
)
{
await
commit
(
types
.
SET_MENUMAP
,
Cache
.
setMenuMap
(
parentMenuList
))
await
commit
(
types
.
SET_USERINFO
,
Cache
.
setUserInfo
(
userDto
))
Auth
.
setLoginInfo
(
token
)
console
.
log
(
111
)
router
.
addRoutes
(
routeHandle
(
parentMenuList
))
resolve
()
}
else
{
reject
()
}
})
}
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