Commit d44afc63 authored by xingling's avatar xingling

修改3

parent 0dd76674
Pipeline #21 canceled with stages
# For more information about the properties used in
# this file, please see the EditorConfig documentation:
# http://editorconfig.org/
root = true # 告诉EditorConfig插件,这是根文件,不用继续往上查找
[*] # 匹配全部文件
charset = utf-8 # 设置字符集
end_of_line = lf # 结尾换行符,可选"lf"、"cr"、"crlf"
indent_size = 2 # 缩进的空格数
indent_style = space # 缩进风格,可选"space"、"tab"
insert_final_newline = true # 是否使文件以一个空白行结尾
trim_trailing_whitespace = true # 是否将行尾空格自动删除
[*.md] # 匹配md结尾的文件
trim_trailing_whitespace = false
[*.{groovy, java, kt, xml}] # 以下匹配,类同
indent_style = tab
indent_size = 4
continuation_indent_size = 8
[{.travis.yml, package.json}] # 以下匹配,类同
# The indent size used in the `package.json` file cannot be changed
# https://github.com/npm/npm/pull/3180#issuecomment-16336516
indent_size = 2
indent_style = space
!/*.js
/tests/**/*.js
!/**/.eslintrc.js
/dist/
/public/
**/node_modules/**
**/mock/**
**/plugins/**
**/tests/**
\ No newline at end of file
This diff is collapsed.
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
<script>
document.write(
'<script src="./js/config.js?t=' + new Date().getTime() + '"><\/script>'
);
</script>
</head>
<style>
html,body{
height: 100%;
margin: 0;
padding: 0;
}
</style>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
if (!window["PORRAL"]) window["PORRAL"] = {}
// 菜单配置
window.PORRAL['MENU'] = [
{
name: '项目概况',
directoryType: '1',
tableData: [
{
lable: '项目名称',
content: '国产多源遥感数据组织与应用关键技术研究及应用示范',
isProName: true,
systemName: '卫星应用助力数字福建原型系统',
}, {
lable: '项目类别',
content: '重大项目',
}, {
lable: '主持单位',
content: '福州大学数字中国研究院(福建)',
}, {
lable: '参研单位',
content: '中科空间信息(廊坊)研究院、航天恒星科技有限公司、福建省星云大数据应用服务有限公司、长威信息科技发展股份有限公司、福州市电子信息集团有限公司、福州福大经纬信息科技有限公司',
}, {
lable: '研究周期',
content: '2019.01-2021.12',
}, {
lable: '研究经费',
content: '6000万元(国拨1500+自筹450万)',
},
]
}, {
name: '总体设计',
directoryType: '1',
tableData: [
{
lable: '项目名称',
content: '国产多源遥感数据组织与应用关键技术研究及应用示范',
isProName: true,
systemName: '卫星应用助力数字福建原型系统',
}, {
lable: '项目类别',
content: '重大项目',
}, {
lable: '主持单位',
content: '福州大学数字中国研究院(福建)',
}, {
lable: '参研单位',
content: '中科空间信息(廊坊)研究院、航天恒星科技有限公司、福建省星云大数据应用服务有限公司、长威信息科技发展股份有限公司、福州市电子信息集团有限公司、福州福大经纬信息科技有限公司',
}, {
lable: '研究周期',
content: '2019.01-2021.12',
}, {
lable: '研究经费',
content: '6000万元(国拨1500+自筹450万)',
},
]
}
]
// 接口请求配置路径http://193.100.100.64:8080/gfkgServer
// window.PORRAL['baseUrl'] = 'http://193.100.100.64:8080/gfkgServer/'
// window.PORRAL['baseUrl'] = 'http://192.168.0.116:8098/htsns'
window.PORRAL['baseUrl'] = '/htsns'
<template>
<div id="app">
<router-view></router-view>
</div>
</template>
<style lang="scss">
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
min-width: 1024px;
min-height: 100%;
box-sizing: border-box;
background-repeat: no-repeat;
background-size: cover;
-webkit-background-size: cover;
-o-background-size: cover;
}
html, body {
height: 100%;
width: 100%;
}
ul {
list-style: none;
margin: 0px;
padding: 0;
}
</style>
export default [
{
'id': '0',
'name': '一级目录',
'createTime': null,
'updateTime': null,
'userId': null,
'parentId': 'root',
'imageUrl': null,
'url': null,
'children': [
{
'id': '2416b172-5873-4ba7-9523-deb124cac1d5',
'name': '海洋生态与环境监测卫星示范应用',
'createTime': '2020-11-26 18:01:12',
'updateTime': '2020-11-26 18:01:12',
'userId': '1',
'parentId': '0',
'imageUrl': null,
'url': 'undefined',
'children': [
{
'id': '2dd29b50-4b85-4963-9dc1-6e5b05459e0a',
'name': '海洋突然事件支援平台',
'createTime': '2020-11-26 18:02:47',
'updateTime': '2020-11-26 18:02:47',
'userId': '1',
'parentId': '2416b172-5873-4ba7-9523-deb124cac1d5',
'imageUrl': null,
'url': 'undefined',
'children': [
{
'id': '91082ab8-8aae-43c3-9b6e-842285d9c550',
'name': '多源卫星综合展示系统',
'createTime': '2020-11-26 18:04:46',
'updateTime': '2020-11-26 18:04:46',
'userId': '1',
'parentId': '2dd29b50-4b85-4963-9dc1-6e5b05459e0a',
'imageUrl': '/fileUpload/91082ab8-8aae-43c3-9b6e-842285d9c550/QQ图片20201126180431.png',
'url': 'http://www.baidu.com499999',
'children': [
],
'label': '多源卫星综合展示系统',
'type': '1',
'parentName': null,
},
],
'label': '海洋突然事件支援平台',
'type': '2',
'parentName': '',
},
],
'label': '海洋生态与环境监测卫星示范应用',
'type': '2',
'parentName': null,
},
{
'id': '37af92e8-287f-4701-9498-159440873681',
'name': '防灾减灾与应急救援卫星示范应用',
'createTime': '2020-11-26 18:02:26',
'updateTime': '2020-11-26 18:02:26',
'userId': '1',
'parentId': '0',
'imageUrl': null,
'url': 'undefined',
'children': [
],
'label': '防灾减灾与应急救援卫星示范应用',
'type': '2',
'parentName': null,
},
{
'id': 'b632ceac-da1a-496a-a8f5-e865c0c4036e',
'name': '清新福建卫星示范应用',
'createTime': '2020-11-26 18:01:33',
'updateTime': '2020-11-26 18:01:33',
'userId': '1',
'parentId': '0',
'imageUrl': null,
'url': 'undefined',
'children': [],
'label': '清新福建卫星示范应用',
'type': '2',
'parentName': null,
},
{
'id': '9487b7ea-3e68-41c5-9532-1ab2efe6169d',
'name': '美丽乡村卫星示范应用',
'createTime': '2020-11-26 18:01:49',
'updateTime': '2020-11-26 18:01:49',
'userId': '1',
'parentId': '0',
'imageUrl': null,
'url': 'undefined',
'children': [
],
'label': '美丽乡村卫星示范应用',
'type': '2',
'parentName': null,
},
],
'label': '一级目录',
'type': null,
'parentName': null,
},
]
<template>
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item class="crumb_home_icon" :to="{ path: '/home' }"></el-breadcrumb-item>
</el-breadcrumb>
</template>
<script>
export default {
data () {
return {
path: '',
}
},
}
</script>
<style scoped>
.el-breadcrumb{
width: calc(100% - 20px);
height: 40px;
background-color: #ffffff;
padding-left:20px;
}
.el-breadcrumb__item{
margin:11px 0;
display:inline-block;
}
.crumb_home_icon{
width:18px;
height:18px;
background:url(../assets/images/summary_hos_selected.png) no-repeat center center;
background-size:18px 18px;
}
</style>
import http from '@/http/httpRequest'
export const login = (loginForm) => {
return http({
url: http.adornUrl('/admin/service/loginTV'),
method: 'post',
params: {
sysUserJson:loginForm
}
})
}
export const getProjectList = () => {
return http({
url: http.adornUrl('/mgr/getProjectList'),
method: 'get'
})
}
// export function getPatientList() {
// return axios.get('/GetPatientList')
// }
// export function login() {
// return axios.get('/login')
// }
// import Vue from 'vue'
import axios from 'axios'
// import router from '@/router'
import qs from 'qs'
import merge from 'lodash/merge'
// 超时后重新请求
axios.defaults.retry = 2
axios.defaults.retryDelay = 1000
const http = axios.create({
timeout: 1000 * 30,
withCredentials: true,
headers: {
'Content-Type': 'application/json; charset=utf-8',
},
})
http.cancelToken = () => {
// var CancelToken =
// var source = CancelToken.source();
return axios.CancelToken
}
/**
* 请求拦截
*/
http.interceptors.request.use(
config => {
// config.headers['token'] = Vue.cookie.get('token') // 请求头带上token
config.headers['token'] = localStorage.getItem('token')
return config
},
error => {
return Promise.reject(error)
},
)
/**
* 响应拦截
*/
http.interceptors.response.use(
response => {
if (response.data && response.data.code === 401) {
// 401, token失效
// alert("登录失效,请重新登录!")
// router.push({
// name: 'login',
// })
}
return response
},
error => {
// return Promise.reject(error)
var config = error.config
if (!config || !config.retry) return Promise.reject(error)
config.__retryCount = config.__retryCount || 0
if (config.__retryCount >= config.retry) {
return Promise.reject(error)
}
config.__retryCount += 1
var backoff = new Promise(function (resolve) {
setTimeout(function () {
resolve()
}, config.retryDelay || 1)
})
// Return the promise in which recalls axios to retry the request
return backoff.then(function () {
return axios(config)
})
},
)
/**
* 请求地址处理
* @param {*} actionName action方法名称
*/
http.adornUrl = actionName => {
// 非生产环境 && 开启代理, 接口前缀统一使用[/proxyApi/]前缀做代理拦截!
return (
(process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY
? '/proxyApi/'
: window.PORRAL.baseUrl) + actionName
)
}
/**
* get请求参数处理
* @param {*} params 参数对象
* @param {*} openDefultParams 是否开启默认参数?
*/
http.adornParams = (params = {}, openDefultParams = true) => {
var defaults = {
t: new Date().getTime(),
}
return openDefultParams ? merge(defaults, params) : params
}
/**
* post请求数据处理
* @param {*} data 数据对象
* @param {*} openDefultdata 是否开启默认数据?
* @param {*} contentType 数据格式
* json: 'application/json; charset=utf-8'
* form: 'application/x-www-form-urlencoded; charset=utf-8'
*/
http.adornData = (data = {}, openDefultdata = true, contentType = 'json') => {
var defaults = {
t: new Date().getTime(),
}
data = openDefultdata ? merge(defaults, data) : data
return contentType === 'json' ? JSON.stringify(data) : qs.stringify(data)
}
export default http
import axios from 'axios'
import store from '@/store/index.js'
import baseURL from './baseUrl'
import { Message } from 'element-ui'
const http = {}
var instance = axios.create({
timeout: 5000,
baseURL,
validateStatus(status) {
switch (status) {
case 400:
Message.error('请求出错')
break
case 401:
Message.warning({
message: '授权失败,请重新登录'
})
store.commit('LOGIN_OUT')
setTimeout(() => {
window.location.reload()
}, 1000)
return
case 403:
Message.warning({
message: '拒绝访问'
})
break
case 404:
Message.warning({
message: '请求错误,未找到该资源'
})
break
case 500:
Message.warning({
message: '服务端错误'
})
break
}
return status >= 200 && status < 300
}
})
// 添加请求拦截器
instance.interceptors.request.use(
function(config) {
// 请求头添加token
if (store.state.UserToken) {
config.headers.Authorization = `Bearer ${store.state.UserToken}`
}
return config
},
function(error) {
return Promise.reject(error)
}
)
// 响应拦截器即异常处理
instance.interceptors.response.use(
response => {
return response.data
},
err => {
if (err && err.response) {
} else {
err.message = '连接服务器失败'
}
// Message.error({
// message: err.message
// })
return Promise.reject(err.response)
}
)
http.get = function(url, options) {
let loading
if (!options || options.isShowLoading !== false) {
loading = document.getElementById('ajaxLoading')
loading.style.display = 'block'
}
return new Promise((resolve, reject) => {
instance
.get(url, options)
.then(response => {
if (!options || options.isShowLoading !== false) {
loading = document.getElementById('ajaxLoading')
loading.style.display = 'none'
}
if (response.code === 1) {
resolve(response.data)
} else {
Message.error({
message: response.msg
})
reject(response.msg)
}
})
.catch(e => {
console.log(e)
})
})
}
http.post = function(url, data, options) {
let loading
if (!options || options.isShowLoading !== false) {
loading = document.getElementById('ajaxLoading')
loading.style.display = 'block'
}
return new Promise((resolve, reject) => {
instance
.post(url, data, options)
.then(response => {
if (!options || options.isShowLoading !== false) {
loading = document.getElementById('ajaxLoading')
loading.style.display = 'none'
}
if (response.code === 1) {
resolve(response.data)
} else {
Message.error({
message: response.msg
})
reject(response.message)
}
})
.catch(e => {
console.log(e)
})
})
}
export default http
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import 'lib-flexible'
Vue.use(ElementUI);
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App),
}).$mount('#app')
import Vue from 'vue'
import VueRouter from 'vue-router'
import Login from '../views/login.vue'
import Home from '../views/Home.vue'
Vue.use(VueRouter)
const routes = [{
path: '/',
name: 'Login',
component: Login,
},
{
path: '/home',
name: 'Home',
component: Home,
}
]
const router = new VueRouter({
routes,
})
export default router
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules: {},
})
<template>
<el-container>
<el-header> <headerNav></headerNav> </el-header>
<el-container class="home_bd">
<el-aside class="home_left" width="15.23%"><leftAside></leftAside></el-aside>
<el-main class="home_container">
<breadcrumb></breadcrumb>
<middleContent class="home_concrete_content"></middleContent>
</el-main>
</el-container>
</el-container>
</template>
<script>
import headerNav from "./common/header";
import leftAside from "./common/left-aside";
import breadcrumb from "../component/breadcrumb";
import middleContent from "./middle/middle";
export default {
components: {
headerNav,
leftAside,
breadcrumb,
middleContent
},
data() {
const item = {
date: "2016-05-02",
name: "王小虎",
address: "上海市普陀区金沙江路 1518 弄"
};
return {
form: {
name: "",
region: "",
date1: "",
date2: "",
delivery: false,
type: [],
resource: "",
desc: ""
},
tableData: Array(20).fill(item)
};
},
mounted() {
this.init();
},
methods: {
init() {},
onSubmit() {
console.log("submit!");
}
}
};
</script>
<style scoped>
*{
padding:0;
margin:0;
}
.home_container {
position: relative;
left: 15.23%;
background-color:#f0f3f8;
padding:0;
width:84.67%;
margin-left:0.1%;
flex:none;
}
.home_bd{
width:100%;
position: absolute;
top: 49px;
bottom: 0;
}
.home_left{
top:0;
}
.home_concrete_content{
width:100%;
height:calc(100% - 40px);
}
</style>
<template>
<el-container>
<el-header>
<el-row :gutter="0">
<el-col :xs="16" :sm="18" :md="20" :lg="21" :xl="22">
<div class="grid-content bg-purple logo_icon">
<img :src="require('../../assets/images/haitai_logo.png')" style="width:30px;height:26px;margin:10px 12px;" alt="logo" />
</div>
<div class="logo_name">智慧护理管理端</div>
</el-col>
<el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="2">
<div class="head_img"></div>
<span class="grid-content bg-purple user_info">{{ userCode }}</span>
</el-col>
</el-row>
</el-header>
</el-container>
</template>
<script>
import headImg from "../../assets/images/head_portrait.png";
export default {
data() {
console.log(localStorage);
return {
userCode: JSON.parse(localStorage.getItem("userInfo")).userCode
};
}
};
</script>
<style lang="scss">
.el-header {
background-color: #ffffff;
box-shadow: 0px 1px 4px 0px
rgba(0, 21, 41, 0.12);
color: #333;
line-height: 48px;
padding: 0 !important;
height:48px !important;
.el-row{
margin:0 !important;
}
.el-col{
padding: 0 !important;
}
}
.logo_icon {
text-align: left;
height: 48px;
width:54px;
display:inline-block;
float:left;
img {
width:30px;
height:26px;
margin:10px 12px;
}
}
.logo_name{
font-size: 16px;
line-height: 48px;
color: #262626;
opacity: 0.85;
display:inline-block;
float:left;
}
.user_info {
text-align: right;
}
.head_info {
text-align: right;
}
.head_img {
width: 24px;
height: 48px;
border-radius: 50%;
display: inline-block;
vertical-align: middle;
margin-right: 15px;
background:url(../../assets/images/head_portrait.png) no-repeat center;
background-size: 24px 24px;
}
</style>
<template>
<div class="left_menu" style="height: 100%">
<el-row class="tac" style="height: 100%">
<i class="expand_retract_icon retract"></i>
<el-col style="height: 100%;text-align:left;" >
<el-menu
default-active="1"
class="el-menu-vertical-demo"
background-color="#ffffff"
box-shadow="2px 0px 6px 0px rgba(0, 21, 41, 0.12)"
text-color="#000000"
active-text-color="#1890ff"
style="height: 100%;"
@open="handleOpen"
@close="handleClose"
>
<el-menu-item index="1">
<i class="el-icon summary_hospital"></i>
<span slot="title">首页全院汇总</span>
</el-menu-item>
<el-menu-item index="2">
<i class="el-icon depart_management "></i>
<span slot="title">科室管理</span>
</el-menu-item>
<el-menu-item index="3">
<i class="el-icon layout_config"></i>
<span slot="title">首页布局配置</span>
</el-menu-item>
<el-menu-item index="4">
<i class="el-icon project_config"></i>
<span>首页项目配置</span>
</el-menu-item>
<el-menu-item index="5">
<i class="el-icon equip_management"></i>
<span>设备管理</span>
</el-menu-item>
<el-menu-item index="6">
<i class="el-icon kettle_monitor"></i>
<span>Kettle监控</span>
</el-menu-item>
<el-menu-item index="7">
<i class="el-icon system_setting"></i>
<span>系统设置</span>
</el-menu-item>
<el-menu-item index="8">
<i class="el-icon personal_center"></i>
<span>个人中心</span>
</el-menu-item>
</el-menu>
</el-col>
</el-row>
</div>
</template>
<script>
export default {
data() {
return {
};
},
methods: {
handleOpen(key, keyPath) {
console.log(key, keyPath);
},
handleClose(key, keyPath) {
console.log(key, keyPath);
}
}
}
</script>
<style>
.el-aside {
display: block;
position: absolute;
left: 0;
top: 60px;
bottom: 0;
}
.el-menu-item>span{
font-size: 14px;
opacity: 0.85;
}
.el-menu-item{
height:40px;
line-height:40px;
margin-top:8px;
padding-left: 13px !important;
}
.el-menu-item:first-child{
margin-top:20px;
}
.el-menu-item .el-icon{
display:inline-block;
width:19px;
height:40px;
margin-right:10px;
}
.el-menu-item.is-active{
background-color: #e6f7ff !important;
border-right: 2px solid #1890ff;
}
.el-icon.summary_hospital{
background:url(../../assets/images/summary_hos.png) no-repeat center center;
background-size:18px 18px;
}
.el-menu-item.is-active .el-icon.summary_hospital{
background:url(../../assets/images/summary_hos_selected.png) no-repeat center center;
background-size:18px 18px;
}
.el-icon.depart_management{
background:url(../../assets/images/depart_manage.png) no-repeat center center;
background-size:16px 15px;
}
.el-menu-item.is-active .el-icon.depart_management{
background:url(../../assets/images/depart_manage_selected.png) no-repeat center center;
background-size:18px 18px;
}
.el-icon.project_config{
background:url(../../assets/images/project_config.png) no-repeat center center;
background-size:18px 18px;
}
.el-menu-item.is-active .el-icon.project_config{
background:url(../../assets/images/project_config_selected.png) no-repeat center center;
background-size:18px 18px;
}
.el-icon.equip_management{
background:url(../../assets/images/equip_manage.png) no-repeat center center;
background-size:18px 18px;
}
.el-menu-item.is-active .el-icon.equip_management{
background:url(../../assets/images/equip_manage_selected.png) no-repeat center center;
background-size:18px 18px;
}
.el-icon.kettle_monitor{
background:url(../../assets/images/kettle_monitor.png) no-repeat center center;
background-size:14px 18px;
}
.el-menu-item.is-active .el-icon.kettle_monitor{
background:url(../../assets/images/kettle_monitor_selected.png) no-repeat center center;
background-size:18px 18px;
}
.el-icon.system_setting{
background:url(../../assets/images/system_setting.png) no-repeat center center;
background-size:16px 16px;
}
.el-menu-item.is-active .el-icon.system_setting{
background:url(../../assets/images/system_setting_selected.png) no-repeat center center;
background-size:18px 18px;
}
.el-icon.personal_center{
background:url(../../assets/images/personal_center.png) no-repeat center center;
background-size:18px 18px;
}
.el-menu-item.is-active .el-icon.personal_center{
background:url(../../assets/images/personal_center_selected.png) no-repeat center center;
background-size:18px 18px;
}
.expand_retract_icon{
display:inline-block;
width: 16px;
height: 42px;
background-color: rgba(0, 0, 0, 0.09);
border-radius: 4px 0px 0px 4px;
position:absolute;
right:0;
z-index:9;
top:calc(50% - 21px);
}
.expand_retract_icon.expand{
background:url(../../assets/images/expand.png) no-repeat center center;
background-size:16px 42px;
}
.expand_retract_icon.retract{
background:url(../../assets/images/retract.png) no-repeat center center;
background-size:16px 42px;
}
</style>
<template>
<header class="nav">
<div class="logo">
<h3 class="systemName textColor">卫星应用助力数字福建原型系统</h3>
</div>
<span class="newDate textColor">{{ newDate }}</span>
</header>
</template>
<script>
export default {
data () {
return {
newDate: '',
timer: '',
}
},
mounted () {
this.timer = setInterval(() => {
this.newTime()
}, 1000)
},
beforeDestroy () {
if (this.timer) {
// 在Vue实例销毁前,清除定时器
clearInterval(this.timer)
}
},
methods: {
// 获取当前时间
newTime () {
// 获取年月日
var time = new Date()
var year = time.getFullYear()
var month = time.getMonth()
var day = time.getDate()
// 获取时分秒
var h = time.getHours()
var m = time.getMinutes()
var s = time.getSeconds()
// 检查是否小于10
h = this.check(h)
m = this.check(m)
s = this.check(s)
this.newDate =
year + ':' + month + ':' + day + ' ' + h + ':' + m + ':' + s
},
// 检查时间是不是小于10
check (i) {
var num
i < 10 ? (num = '0' + i) : (num = i)
return num
},
},
}
</script>
<style lang="scss" scoped>
.nav {
height: 100px;
width: 100%;
background-color: rgba(0, 0, 0, 0.4);
position: fixed;
top:0;
z-index: 20;
-webkit-transition: all .2s ease;
transition: all .2s ease;
background: -webkit-gradient(linear,left top,left bottom,from(rgba(25,54,148,.1)),to(rgba(25,54,148,.8)));
background: linear-gradient(180deg,rgba(25,54,148,.1),rgba(25,54,148,.8));
.logo{
background: url(../../assets/images/logo-bg.png) no-repeat;
width: 1044px;
height: 121px;
position: absolute;
left: 50%;
-webkit-transform: translateX(-50%);
-moz-transform: translateX(-50%);
transform: translateX(-50%);
}
.systemName {
font-size: 43px;
color: #fff;
line-height: 74px;
margin: 0;
}
.textColor{
background: -webkit-gradient(linear,left top,left bottom,from(#c2edff),color-stop(50%,#4bc5fe),to(#00a8ff));
background: linear-gradient(180deg,#c2edff 0,#4bc5fe 50%,#00a8ff);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.newDate {
color: #fff;
position: absolute;
right: 10px;
bottom: 20px;
}
}
.nav:after {
content: "";
height: 0;
line-height: 0;
display: block;
visibility: hidden;
clear: both;
}
</style>
<template>
<div class="login_contain">
<div class="login_back">
<div class="left_top"></div>
<div class="left_center_top"></div>
<div class="left_bottom"></div>
<div class="right_top"></div>
<div class="right_center_lef"></div>
<div class="right_center_rig"></div>
<div class="right_center"></div>
<div class="right_hospital"></div>
<div class="right_bottom"></div>
<div class="right_nurse"></div>
</div>
<div class="form_box">
<div class="login_span">欢迎登录</div>
<div class="login_box">
<el-form class="login-form" :model="loginForm" label-position="left">
<div class="login_user">
<div class="login_info">用户名</div>
<div>
<input
v-model="loginForm.userCode"
type="text"
class="login_inp"
/>
</div>
</div>
<div class="login_pwd">
<div class="login_info">密码</div>
<div>
<input
v-model="loginForm.pwd"
type="password"
class="login_inp"
/>
</div>
</div>
<el-button type="primary" class="login_btn" @click="getLogin"
>登录</el-button
>
</el-form>
</div>
<div class="version_info">
<span>V1.18.10.0</span><br />
<span>版权所有©南京海泰医疗信息系统有限公司</span>
</div>
</div>
</div>
</template>
<script>
import { login } from "../http/api";
export default {
name: "Login",
data() {
return {
loginForm: {
userCode: "",
pwd: ""
}
};
},
methods: {
getLogin() {
this.$router.push({ path: "/home" });
login(this.loginForm).then(res => {
console.log(res);
if (res.data.statusCode === 1) {
localStorage.setItem("token", res.data.data.token);
localStorage.setItem(
"userInfo",
JSON.stringify(res.data.data.userInfo)
);
// this.$router.push({ path: "/home" });
} else {
this.$message.error(res.data.message);
}
});
}
}
};
</script>
<style lang="scss" scoped>
.login_back {
background-color: #f4f8ff;
width: 100%;
min-height: calc(100vh);
min-height: -moz-calc(100vh);
min-height: -webkit-calc(100vh);
position: relative;
div {
position: absolute;
}
}
.left_top {
left: 0;
top: 0;
width: 9.11%;
height: 41.94%;
background: url(../assets/images/login_left_top.png) no-repeat;
background-size: 100%;
}
.left_center_top {
top: 50px;
left: 14.6%;
width: 31.25%;
height: 13.05%;
text-align: center;
background: url(../assets/images/login_htsns.png) no-repeat;
background-size: 100%;
}
.left_bottom {
left: 4.8%;
bottom: 70px;
width: 8.125%;
height: 14.44%;
background: url(../assets/images/login_needle.png) no-repeat;
background-size: 100%;
}
.right_center_lef {
left: calc(11.7% + 38.7% + 20px);
top: 170px;
width: 6.125%;
height: 11%;
background: url(../assets/images/login_stethoscope.png) no-repeat;
background-size: 100%;
}
.right_center_rig {
left: calc(11.7% + 38.7% + 36.7% - 9%);
top: 170px;
width: 6.37%;
height: 11%;
background: url(../assets/images/login_appoint.png) no-repeat;
background-size: 100%;
}
.right_center {
left: calc(11.7% + 38.7% + 10px);
top: 210px;
width: 36.7%;
height: 41.9%;
background: url(../assets/images/login_right_center.png) no-repeat;
background-size: 100%;
}
.right_top {
top: 0;
right: 0;
width: 10%;
height: 21.67%;
background: url(../assets/images/login_right_top.png) no-repeat;
background-size: 100%;
}
.right_bottom {
right: 0;
bottom: 0;
width: 10.78%;
height: 23.33%;
background: url(../assets/images/login_right_bottom.png) no-repeat bottom;
background-size: 100%;
}
.right_hospital {
left: calc(11.7% + 38.7% + 20px);
bottom: 0;
width: 10.8%;
height: 19.27%;
background: url(../assets/images/login_hospital.png) no-repeat bottom;
background-size: 100%;
}
.right_nurse {
right: 4%;
bottom: 100px;
width: 12.656%;
height: 51.11%;
background: url(../assets/images/login_nurse.png) no-repeat;
background-size: 100%;
}
.login_span {
position: absolute;
left: 11.7%;
width: 38.7%;
top: 120px;
text-align: center;
font-size: 32px;
}
.login_box {
width: 38.7%;
height: 58.5%;
position: absolute;
left: 11.7%;
top: 200px;
border-radius: 20px;
box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.16);
padding: 5.12% 0;
box-sizing: border-box;
background-color: #fff;
}
.login_pwd {
margin-top: 6.67%;
}
.login_info {
width: 60%;
text-align: left;
color: #666;
margin: 0 auto;
}
.login_inp {
border: none;
outline: none;
caret-color: #147bfa;
border-bottom: 1px solid #ccc;
height: 40px;
width: 60%;
font-size: 16px;
color: #333;
}
.login_inp:focus {
border-bottom: 1px solid #147bfa;
}
.login_btn {
width: 60%;
margin-top: 11%;
height: 50px;
font-size: 18px;
}
.version_info {
position: absolute;
left: 11.7%;
width: 38.7%;
bottom: 80px;
color: #ccc;
line-height: 28px;
font-size: 16px;
}
@media screen and (max-width: 1024px) {
.login_box {
height: 43.8%;
}
.login_btn {
height: 40px;
font-size: 16px;
}
}
</style>
<template>
<div class="home_hospital_summary">
<div class="home_summary_top">
<el-row :gutter="0">
<el-col :xs="11" :sm="13" :md="14" :lg="15" :xl="16">
<i class="header_icon"></i>
<div class="greeting_message_time">
<div class="greeting_info">您好,admin ,祝你开心每一天!</div>
<div class="last_update_time">数据更新时间:2021年5月19日 15:30</div>
</div>
</el-col>
<el-col :xs="13" :sm="11" :md="10" :lg="9" :xl="8">
</el-col>
</el-row>
</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss" scoped>
.home_hospital_summary{
width:100%;
height:auto;
}
.home_summary_top{
width:100%;
height:108px;
background-color: #ffffff;
}
</style>
<template>
<div class="menuItem" :class="location==='left'?'backImg1':'backImg2'" @click="openContent(item)">
<h3 class="name">{{ item.name }}</h3>
</div>
</template>
<script>
export default {
props: {
// 父组件遍历出来的item
item: {
type: Object,
default () {
return {}
},
},
location: {
type: String,
default () {
return 'left'
},
},
},
data () {
return {}
},
methods: {
openContent (info) {
this.$emit('chile-event', info)
},
},
}
</script>
<style lang="scss" scoped>
.menuItem {
// margin: 10px auto;
min-height: 80px;
width: 200px;
cursor: pointer;
padding: 10px 0;
box-sizing: border-box;
position: relative;
text-align: center;
.name {
text-align: center;
// display: inline-block;
position: absolute;
margin: 0;
width: 90%;
box-sizing: border-box;
padding-left: 20px;
font-size: 20px;
font-weight: 700;
color: #aec9ff;
top: 50%;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
transform: translateY(-50%);
}
a{
text-decoration: none;
color: white;
}
}
.backImg1{
background: url("../../assets/images/nav-leftbg.png") no-repeat;
}
.backImg2{
background: url("../../assets/images/nav-rightbg.png") no-repeat;
}
</style>
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