Commit d4d3751e authored by 何鹏程's avatar 何鹏程

修改样式及路由

parent 4201e666
......@@ -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)
}
......
......@@ -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;
}
}
}
......@@ -30,6 +30,7 @@ span,
blockquote {
margin: 0;
padding: 0;
font-family: "Microsoft Yahei", Arial;
}
h1,
......
......@@ -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>
......
......@@ -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>
......
......@@ -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>
......
......@@ -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 {}
},
......
......@@ -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() {
......
......@@ -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>
......
......@@ -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)
}
......
......@@ -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>
......
......@@ -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>
......
......@@ -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
......@@ -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>
......
......@@ -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(() => {
......
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()
}
})
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment