Commit 8af456e9 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	attendance-performance-manager-ui/admin/src/views/staff/list.vue
parents b86061e8 a80e27c9
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
"js-cookie": "2.2.1", "js-cookie": "2.2.1",
"jsencrypt": "3.0.0-rc.1", "jsencrypt": "3.0.0-rc.1",
"json-bigint": "^0.3.0", "json-bigint": "^0.3.0",
"jwt-decode": "^3.1.2", "jwt-decode": "3.1.2",
"moment": "^2.29.4", "moment": "^2.29.4",
"muse-ui": "^3.0.2", "muse-ui": "^3.0.2",
"nprogress": "^0.2.0", "nprogress": "^0.2.0",
...@@ -105,7 +105,7 @@ ins,a { ...@@ -105,7 +105,7 @@ ins,a {
.flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;} .flex-align-center{-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;}
.flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;} .flex-pack-center{-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}
.flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;} .flex-pack-justify{-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}
.flex_warp{flex-wrap: wrap;}
.clearfix{ .clearfix{
&:after{ &:after{
content: ''; content: '';
......
...@@ -9,7 +9,7 @@ export default { ...@@ -9,7 +9,7 @@ export default {
clearTimeout(this.loadingTimer); clearTimeout(this.loadingTimer);
}, },
methods: { methods: {
beforeFecth() { beforeFecth() {
return Promise.resolve(); return Promise.resolve();
}, },
// 表格接收数据前 // 表格接收数据前
...@@ -18,12 +18,12 @@ export default { ...@@ -18,12 +18,12 @@ export default {
afterRender(data){}, afterRender(data){},
// 默认拉取数据 // 默认拉取数据
async getTreeData() { async getTreeData() {
}, },
handleNodeClick(node) { handleNodeClick(node) {
}, },
renderContent: function (h, { node, data, store }) { renderContent: function (h, { node, data, store }) {
return ( return (
...@@ -54,14 +54,16 @@ export default { ...@@ -54,14 +54,16 @@ export default {
node.expand(); // 主动调用展开节点方法,重新查询该节点下的所有子节点 node.expand(); // 主动调用展开节点方法,重新查询该节点下的所有子节点
this.toView(this.currentNode); this.toView(this.currentNode);
}, },
}, },
data() { data() {
return { return {
treeProps: { treeProps: {
id: "id", id: "id",
label: "label", label: "label",
areaCode:"areaCode",
type: "type",
isLeaf: "isLeaf", isLeaf: "isLeaf",
children: "children", children: "children",
icon: "icon", icon: "icon",
......
...@@ -25,13 +25,18 @@ const instance = axios.create({ ...@@ -25,13 +25,18 @@ const instance = axios.create({
instance.interceptors.request.use(config => { instance.interceptors.request.use(config => {
// 获取当前页面的主机名和端口号 // 获取当前页面的主机名和端口号
const hostname = location.hostname; // const hostname = location.hostname;
const baseURL =config.baseURL; const baseURL =config.baseURL;
//const port = location.port; //const port = location.port;
const port =process.env.VUE_APP_PORTAL_PORT=='undefined'?'11072':process.env.VUE_APP_PORTAL_PORT; // const port =process.env.VUE_APP_PORTAL_PORT=='undefined'?'11072':process.env.VUE_APP_PORTAL_PORT;
// 动态修改请求地址 // 测试用
//http://192.168.0.98:11039/
const hostname = '192.168.0.98'
const port = '11039'
// 动态修改请求地址
console.log(hostname,baseURL,port)
if (config.url.startsWith('/')) { if (config.url.startsWith('/')) {
// 字符串以 / 开头 // 字符串以 / 开头
config.url = `http://${hostname}:${port}${baseURL}${config.url}`; config.url = `http://${hostname}:${port}${baseURL}${config.url}`;
......
...@@ -16,27 +16,24 @@ ...@@ -16,27 +16,24 @@
<!-- 一级菜单 --> <!-- 一级菜单 -->
<ul class="menu-list flex"> <ul class="menu-list flex">
<li v-for='item in menu' :key='item.id'> <li v-for='item in menu' :key='item.id'>
<router-link :to="item.path" :active='submenu.path === item.path' :title="item.name"> <!-- :active='submenu.path === item.path' -->
<router-link :to="item.path" :title="item.name" replace>
<i :class="'el-icon-'+item.icon"></i> <i :class="'el-icon-'+item.icon"></i>
{{item.name}} {{item.name}}
</router-link> </router-link>
</li> </li>
</ul> </ul>
</div> </div>
<div class="layout-profile">
<!-- <span class="el-dropdown-link">
{{userData.currUserName}}
<i class="el-icon-arrow-down el-icon--right"></i>
</span> -->
<!-- <div class="controllBar">
<i class="el-icon-s-home" style="font-size: 15px;margin-right: 10px" > 返回门户</i> <i class="el-icon-bell" style="font-size: 15px;margin-right: 10px" > 消息</i>
--> </div>
<div class="controllBar" @click="returnHome">
<i class="el-icon-s-home" style="font-size: 15px;margin-right: 10px" > 首页</i>
</div>
<!-- <div class="layout-profile">
<el-link class="el-icon-s-home" style="font-size: 15px;margin-right: 10px" @click="returnHome" > 返回门户</el-link>
-->
<el-dropdown @command="handleCommand"> <el-dropdown @command="handleCommand">
<span class="el-dropdown-link" style="color:white"> <span class="el-dropdown-link" style="color:white">
...@@ -63,7 +60,7 @@ ...@@ -63,7 +60,7 @@
</ul> </ul>
<!-- 二级菜单 --> <!-- 二级菜单 -->
<div class="layout-submenu-wrapper flex" v-if='submenu.children && submenu.children.length'> <!-- <div class="layout-submenu-wrapper flex" v-if='submenu.children && submenu.children.length'>
<div class="layout-submenu"> <div class="layout-submenu">
<ul class="submenu-list flex"> <ul class="submenu-list flex">
<li v-for='item in submenu.children' :key='item.id'> <li v-for='item in submenu.children' :key='item.id'>
...@@ -72,7 +69,7 @@ ...@@ -72,7 +69,7 @@
</li> </li>
</ul> </ul>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
...@@ -81,7 +78,7 @@ export default { ...@@ -81,7 +78,7 @@ export default {
name: "Header", name: "Header",
methods: { methods: {
returnHome(){ returnHome(){
window.close(); this.$router.replace({path:'/'})
}, },
handleCommand(key) { handleCommand(key) {
if(key === 'update'){ if(key === 'update'){
...@@ -138,7 +135,7 @@ export default { ...@@ -138,7 +135,7 @@ export default {
// this.getsocketData = getsocketData; // this.getsocketData = getsocketData;
// // 注册监听事件 // // 注册监听事件
// window.addEventListener("onmessageWS", getsocketData,false); // window.addEventListener("onmessageWS", getsocketData,false);
// console.log(this.menu,'菜单数据')
}, },
computed: { computed: {
group() { group() {
...@@ -162,26 +159,30 @@ export default { ...@@ -162,26 +159,30 @@ export default {
return this.userData.flat return this.userData.flat
}, },
menu() { menu() {
if(!this.userData.barList) return []; if(!this.headBar.children) {
return this.userData.barList.map(item=>{ return []
const url = item.url ? item.url : (item.childList[0] ? (item.childList[0].url || '') : ''); }else{
return { return this.headBar.children
name: item.name, }
path: url, // return this.userData.children.map(item=>{
id: item.id, // const url = item.path ? item.url : (item.childList[0] ? (item.childList[0].url || '') : '');
icon: item.imgPath, // return {
children: item.childList.map(sub=>{ // name: item.name,
return { // path: url,
name: sub.name, // id: item.id,
path: sub.url ? sub.url : (sub.childList[0] ? (sub.childList[0].url || 0) : ''), // icon: item.imgPath,
id: sub.id, // children: item.childList.map(sub=>{
parentId: sub.parentId, // return {
icon: sub.imgPath, // name: sub.name,
isOut: /^https?\:\/\//.test(sub.url) // path: sub.url ? sub.url : (sub.childList[0] ? (sub.childList[0].url || 0) : ''),
} // id: sub.id,
}) // parentId: sub.parentId,
} // icon: sub.imgPath,
}) // isOut: /^https?\:\/\//.test(sub.url)
// }
// })
// }
// })
}, },
submenu() { submenu() {
if(!this.menu.length) return {}; if(!this.menu.length) return {};
...@@ -197,14 +198,22 @@ export default { ...@@ -197,14 +198,22 @@ export default {
}) })
return matchMenu return matchMenu
}, },
userData() { // 二级菜单数据
return this.$store.state.userData; headBar() {
} return this.$store.state.headBar;
},
userData(){
return this.$store.state.userData
},
}, },
data() { data() {
return { return {
showMobileMenu: false, showMobileMenu: false,
} }
},
created(){
console.log(this.userData,'用户数据')
console.log(this.menu,'导航栏数据')
} }
} }
</script> </script>
...@@ -213,9 +222,9 @@ export default { ...@@ -213,9 +222,9 @@ export default {
.layout-header{ .layout-header{
.mobile-menu-list{display: none} .mobile-menu-list{display: none}
.layout-menu-wrapper{ .layout-menu-wrapper{
height: 50px; height: 72px;
line-height: 50px; line-height: 72px;
font-size: 14px; font-size: 16px;
color: #eee; color: #eee;
background: #1848c8; background: #1848c8;
.layout-logo{ .layout-logo{
...@@ -253,7 +262,18 @@ export default { ...@@ -253,7 +262,18 @@ export default {
padding-right: 30px; padding-right: 30px;
} }
} }
.controllBar{
background-color: rgba(170, 170, 170, 0.4);
width: 120px;
height: 44px;
line-height: 44px;
margin-top: 34px;
transform: translateY(-50%);
text-align: center;
border-radius: 5px;
margin-right: 15px;
cursor: pointer;
}
.layout-submenu-wrapper{ .layout-submenu-wrapper{
padding-left: 20px; padding-left: 20px;
background: #fff; background: #fff;
......
...@@ -5,11 +5,16 @@ import { normalCallPost } from './assets/utils'; ...@@ -5,11 +5,16 @@ import { normalCallPost } from './assets/utils';
Vue.use(Vuex) Vue.use(Vuex)
let userData = {}; let userData = {};
let currentParentName = ''
let headBar = []
try { try {
userData = JSON.parse(window.sessionStorage.userData || '{}'); userData = JSON.parse(window.sessionStorage.userData || '{}');
currentParentName = window.sessionStorage.currentParentName || ''
headBar = JSON.parse(window.sessionStorage.headBar || '{}')
} catch (error) { } catch (error) {
console.log('未从session中获取到userData') console.log('未从session中获取到userData')
console.log('未从session中获取到currentParentName')
} }
function convertTreeToList(root, array) { function convertTreeToList(root, array) {
...@@ -46,9 +51,12 @@ export default new Vuex.Store({ ...@@ -46,9 +51,12 @@ export default new Vuex.Store({
state: { state: {
isLogin: false, isLogin: false,
isMobile: !isPc(), isMobile: !isPc(),
userData, userData,//用户数据
group: '', group: '',
headBar,
currentParentName//当前选择菜单
}, },
// 同步存储数据
mutations: { mutations: {
setUserData(state, data) { setUserData(state, data) {
data.flat = convertTreeToList(data.barList, []); data.flat = convertTreeToList(data.barList, []);
...@@ -57,6 +65,10 @@ export default new Vuex.Store({ ...@@ -57,6 +65,10 @@ export default new Vuex.Store({
window.sessionStorage.userData = JSON.stringify(data); window.sessionStorage.userData = JSON.stringify(data);
window.sessionStorage.token = data.token; window.sessionStorage.token = data.token;
}, },
setHeadBar(state,data){
state.headBar = data
window.sessionStorage.headBar = JSON.stringify(data)
},
logout(state) { logout(state) {
state.userData = {}; state.userData = {};
state.isLogin = false; state.isLogin = false;
...@@ -66,7 +78,12 @@ export default new Vuex.Store({ ...@@ -66,7 +78,12 @@ export default new Vuex.Store({
setGroup(state, data) { setGroup(state, data) {
state.group = data; state.group = data;
}, },
setCurrentParentName(state,data){
state.currentParentName = data
window.sessionStorage.currentParentName = data
}
}, },
// 异步任务
actions: { actions: {
login({commit}) { login({commit}) {
normalCallPost('/login/index').then(({data})=>{ normalCallPost('/login/index').then(({data})=>{
...@@ -79,6 +96,6 @@ export default new Vuex.Store({ ...@@ -79,6 +96,6 @@ export default new Vuex.Store({
normalCallPost('/login/logout').then(data=>{}).catch(error=>{}).then(()=>{ normalCallPost('/login/logout').then(data=>{}).catch(error=>{}).then(()=>{
commit('logout') commit('logout')
}) })
}, }
} }
}) })
<template> <template>
<div class="page page-home" style="min-height: 100vh;"> <div class="page page-home">
欢迎你,{{userData}} <!-- 欢迎你,{{userData}} -->
<el-row type="flex" align="top" justify="space-between" :gutter="40">
<el-col :span="6">
<el-card>
<div class="data_left">
<div class="title">今日数据洞察</div>
<div class="cell1">
<div class="title">人事数据</div>
<div class="datas flex flex-align-center flex-pack-justify flex_warp">
<div class="item">
<div>总人数</div>
<div>999</div>
</div>
<div class="item">
<div>部门人数</div>
<div>20</div>
</div>
</div>
</div>
<div class="cell1">
<div class="title">考勤数据</div>
<div class="datas flex flex-align-center flex-pack-justify flex_warp">
<div class="item">
<div>打卡人数</div>
<div>999</div>
</div>
<div class="item">
<div>出勤率</div>
<div>20</div>
</div>
<div class="item">
<div>请假人数</div>
<div>20</div>
</div>
</div>
</div>
</div>
</el-card>
</el-col>
<el-col :span="18">
<el-card class="right_card">
<div class="data_right">
<div class="title">科学化、精细化、以人为本知行合一的管理理念</div>
<div class="textWord">
坚持政治性与人民性的根本遵循、制度化与规范化的根本依托、考人与考事的相互结合<br>
创新性与技术性的重要支撑以及效能性与发展性的不懈追求
</div>
<div class="selectBars flex flex-align-center flex-pack-justify flex_warp">
<div class="Bar_item" v-for="(item,index) in barList" :key="index" @click="tabChildren(item.barName)">
<div class="icon">
<img :src="item.icon">
</div>
<div class="barnam">{{item.barName}}</div>
<div class="des" v-html="item.desc"></div>
</div>
</div>
</div>
</el-card>
</el-col>
</el-row>
</div> </div>
</template> </template>
...@@ -8,8 +68,174 @@ ...@@ -8,8 +68,174 @@
export default { export default {
computed: { computed: {
userData() { userData() {
return this.$store.state.userData.currUserName; return this.$store.state.userData;
}, },
menu() {
if(!this.userData.barList) return []
return this.userData.barList.map(item=>{
const url = item.url ? item.url : (item.childList[0] ? (item.childList[0].url || '') : '');
return {
name: item.name,
path: url,
id: item.id,
icon: item.imgPath,
children: item.childList.map(sub=>{
return {
name: sub.name,
path: sub.url ? sub.url : (sub.childList[0] ? (sub.childList[0].url || 0) : ''),
id: sub.id,
parentId: sub.parentId,
icon: sub.imgPath,
isOut: /^https?\:\/\//.test(sub.url)
}
})
}
})
}
}, },
}; data(){
</script> return{
\ No newline at end of file barList:[
{
icon:require('@/assets/images/u148.png'),
barName:'智能人事',
desc:'提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能',
navList:[]
},
{
icon:require('@/assets/images/u153.png'),
barName:'考勤打卡',
desc:'提供包括组织管理、职位管理、人事管理、人事<br>统计报表等相关功能',
navList:[]
},
{
icon:require('@/assets/images/u158.png'),
barName:'绩效管理',
desc:'根据部门/个人承担的目标和任务完成情况以及工作<br>评价结果、加减分纪实现考核结果自动生成。',
navList:[]
},
{
icon:require('@/assets/images/u167.png'),
barName:'OA审批',
desc:'无纸化审批流程,轻松完成打卡请假、移动审批等<br>操作,审批资料查找方便',
navList:[]
},
{
icon:require('@/assets/images/u172.png'),
barName:'数据分析',
desc:'完整团队经营状态的数字化,人财物事数据分析<br>展示,为管理提供智能决策依据',
navList:[]
},
{
icon:require('@/assets/images/u177.png'),
barName:'系统设置',
desc:'提供包括RBAC用户-角色-权限管理、版本管理、<br>操作及登录日志管理等功能',
navList:[]
}
]
}
},
created(){
this.$store.commit('setHeadBar',[])
this.$store.commit("setCurrentParentName",'')
},
methods:{
tabChildren(name){
this.$store.commit("setCurrentParentName",name)//存储选择路由
let result = this.menu.find(item => item.name === name)
this.$store.commit('setHeadBar',result)
// 路由跳转
if(result.children.length>0){
this.$router.push({path:result.children[0].path})
}else{
this.$message.error('暂未完成添加');
}
}
}
}
</script>
<style scoped lang="less">
.page-home{
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 2% 5%;
background-color: #f3f2f2;
.data_left{
.cell1{
font-size: 16px;
.title{
color: #409EFF;
margin-bottom: 20px;
}
.item{
text-align: left;
width: 50%;
margin-bottom: 20px;
}
.item div:first-child{
color: gray;
margin-bottom: 20px;
}
border-bottom: 1px solid rgb(245, 245, 245);
padding: 10px 0;
}
.cell1:last-child{
border:none
}
}
// 数据标题
.data_left>.title,.data_right>.title{
text-align: center;
font-size: 22px;
font-weight: bold;
}
.right_card{
background-image: url('~@/assets/images/u162.svg');
background-repeat: no-repeat;
background-size: 100% auto;
background-position: bottom;
}
// 导航栏
.data_right{
.textWord{
text-align: center;
margin-top: 30px;
font-size: 16px;
line-height: 1.5em;
}
}
.selectBars{
padding: 0 20px;
}
.Bar_item{
width: 30%;
margin-top: 50px;
border-radius: 10px;
padding: 20px 0;
text-align: center;
background: linear-gradient(90deg, rgba(187, 193, 255,0.3), rgb(235, 235, 235));
cursor: pointer;
.icon img{
width: 40px;
height: 40px;
}
.barnam{
font-size: 18px;
margin-top: 10px;
}
.des{
font-size: 14px;
color: #666;
margin-top: 15px;
}
}
}
::v-deep .el-row,::v-deep .el-col{
height: 100%;
}
::v-deep .el-card{
height: 100%;
}
</style>
\ No newline at end of file
...@@ -3,81 +3,26 @@ ...@@ -3,81 +3,26 @@
<template> <template>
<div class="page page-login flex flex-v"> <div class="page page-login flex flex-v">
<div class="form-wrap flex flex-1"> <div class="form-wrap flex flex-1">
<el-form @submit.prevent='onSubmit' ref="form" :model="form" label-width="80px" size="small"> <el-form @submit.prevent='onSubmit' ref="form" :model="form" label-width="0px" size="small">
<h1>考勤绩效管理平台</h1> <h1>智慧政务绩效管理系统</h1>
<el-form-item label="用户名"> <div class="des">数据驱动绩效改善,强化从指标到目标全过程管理</div>
<el-input v-model="form.loginName"></el-input> <el-form-item label="">
<el-input v-model="form.loginName" placeholder="请输入用户名" class="input"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="密码"> <el-form-item label="">
<el-input v-model="form.password" type='password'></el-input> <el-input v-model="form.password" type='password' placeholder="请输入密码" class="input"></el-input>
</el-form-item> </el-form-item>
<el-form-item size="large"> <el-form-item size="large">
<el-button type="primary" native-type='submit' :loading='loading' @click='onSubmit'>登录</el-button> <el-button type="primary" native-type='submit' :loading='loading' @click='onSubmit'>登录</el-button>
</el-form-item> </el-form-item>
<div class="tips">温馨提示:请使用谷歌或火狐等非ie内核浏览器,观看效果更佳</div>
</el-form> </el-form>
</div> </div>
<div class="footer"> <div class="footer">
登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品 登陆 &copy; <a href="">信宏翔网络科技有限公司</a> 出品
</div> </div>
<!-- <Map ref="map1" :markersData="originData" @choose="getDetailData" /> -->
<!-- <el-card :body-style="{ padding: '5px' }" style="width: 300px">
<el-row type="flex" class="row-bg" justify="space-around">
<span style="font-size: 18px"><b>高新区政务服务中心</b></span>
<el-button type="text" size="mini" class="button">查看详情</el-button>
</el-row>
<el-divider></el-divider>
<el-row type="flex" justify="space-around">
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">设备总数</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">在线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">离线</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">停用</span>
</el-col>
<el-col :span="4">
<span style="font-size: 13px"><b>100</b></span
><br />
<span style="font-size: 12px">待激活</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-descriptions :column="1" size="small">
<el-descriptions-item label="站点编码"
>kooriookami</el-descriptions-item
>
<el-descriptions-item label="站点地址"
>18100000000</el-descriptions-item
>
<el-descriptions-item
label="联系人"
:labelStyle="{ 'text-align': 'right', width: '50px' }"
>苏州市</el-descriptions-item
>
<el-descriptions-item label="联系电话">
<el-tag size="small">学校</el-tag>
</el-descriptions-item>
<el-descriptions-item label="创建时间"
>江苏省苏州市吴中区吴中大道 1188 号</el-descriptions-item
>
</el-descriptions>
</el-card> -->
</div> </div>
</template> </template>
...@@ -86,20 +31,7 @@ import { createSocket } from "@/assets/utils/websocket"; ...@@ -86,20 +31,7 @@ import { createSocket } from "@/assets/utils/websocket";
export default { export default {
name: "login", name: "login",
created() { created() {},
// let obj = {};
// obj.lng = 104.21;
// obj.lat = 30.56;
// obj.address = "测试站点";
// obj.siteId = 2;
// this.originData.push(obj);
// this.$nextTick(() => {
// this.$refs.map1.refresh(this.originData);
// });
// window.location.href=process.env.VUE_APP_PORTAL_URL=='undefined'?'http://192.168.0.98:11072':process.env.VUE_APP_PORTAL_URL
},
methods: { methods: {
login() { login() {
this.loading = true; this.loading = true;
...@@ -113,7 +45,7 @@ export default { ...@@ -113,7 +45,7 @@ export default {
this.$store.commit("setUserData", data); this.$store.commit("setUserData", data);
this.$router.replace({ this.$router.replace({
path: this.redirect, path: this.redirect,
}); })
//成功 创建websocket连接 process.env.VUE_WEBSOCKET_BASE_API + //成功 创建websocket连接 process.env.VUE_WEBSOCKET_BASE_API +
console.log("process", process.env); console.log("process", process.env);
...@@ -149,10 +81,10 @@ export default { ...@@ -149,10 +81,10 @@ export default {
form: { form: {
loginName: "", loginName: "",
password: "", password: "",
}, }
}; }
}, }
}; }
</script> </script>
<style lang="less"> <style lang="less">
...@@ -162,29 +94,63 @@ export default { ...@@ -162,29 +94,63 @@ export default {
border-top: 2px solid #e8eaec; border-top: 2px solid #e8eaec;
} }
.page-login { .page-login {
background-image: linear-gradient(45deg, #333, #111); background-image: url('~@/assets/images/login_bg.jpg');
background-size: 40px 40px; background-repeat: no-repeat;
background-size: cover;
margin: 0; margin: 0;
height: 100%; height: 100%;
overflow: hidden;
text-align: center;
.des,.tips{
font-size: 14px;
white-space: nowrap;
margin-bottom: 20px;
margin-top: 10px;
color: #666;
}
.el-form { .el-form {
margin: auto; margin: auto;
width: 400px; width: 640px;
padding: 25px 25px 0 0; padding: 60px 20px;
background: #fff; background: rgba(255, 255, 255, 0.9);
border-radius: 15px;
h1 { h1 {
text-align: center; text-align: center;
font-size: 20px; font-size: 30px;
font-weight: 500; font-weight: 500;
margin-bottom: 20px;
} }
button { button {
margin-top: 10px; margin-top: 10px;
width: 240px; width: 240px;
} }
.el-form-item{
margin-bottom: 28px;
}
.el-input-group__append { .el-input-group__append {
padding: 0; padding: 0;
font-size: 0; font-size: 0;
} }
.el-input{
width: 80%;
}
.el-input__inner{
border-color: #409EFF;
border-radius: 20px;
}
.el-input--small .el-input__inner{
height: 52px;
line-height: 1em;
font-size: 15px;
}
.el-input__inner::placeholder{
color: #409EFF;
}
button{
width: 80%;
border-radius: 20px;
height: 52px;
background: linear-gradient(90deg, rgba(24, 69, 198, 1) 0%, rgba(41, 153, 255, 1) 100%);
}
} }
.footer { .footer {
height: 80px; height: 80px;
...@@ -197,5 +163,9 @@ export default { ...@@ -197,5 +163,9 @@ export default {
} }
} }
} }
// ::v-deep .el-input{
// width: 80%;
// border-color: #409EFF;
// }
</style> </style>
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<el-form ref="form" :model="form" :rules="rules" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/> <Field label="员工姓名" prop="name" v-model="form.name" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="radio" :enumData="dict.gender" placeholder="请选择性别"/> <Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/>
<Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" /> <Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" />
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/> <Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/>
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/> <Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
......
...@@ -53,12 +53,12 @@ export default { ...@@ -53,12 +53,12 @@ export default {
// 操作菜单状态 // 操作菜单状态
changeStatus(row, column) { changeStatus(row, column) {
return ( return (
<my-switch <my-switch
confirm confirm
url='/menu/save' url='/menu/save'
row={row} row={row}
onChange={this.statusChange} onChange={this.statusChange}
value={this.tableData.data} value={this.tableData.data}
onInput={(data)=>{ onInput={(data)=>{
this.tableData.data = data; this.tableData.data = data;
}}/> }}/>
...@@ -113,11 +113,6 @@ export default { ...@@ -113,11 +113,6 @@ export default {
// toView(row) { // toView(row) {
// this.$refs.dialogform.view(row); // this.$refs.dialogform.view(row);
// }, // },
handAdd(row) {
this.$refs.dialogform.add(row);
},
}, },
data() { data() {
return { return {
...@@ -205,19 +200,8 @@ export default { ...@@ -205,19 +200,8 @@ export default {
onClick={() => { onClick={() => {
this.handleDown(row); this.handleDown(row);
}} }}
></el-link> ></el-link>
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.handAdd(row);
}}
>
新增
</el-button>
<table-buttons noView row={row} onEdit={this.toEdit} onDel={this.toDel} /> <table-buttons noView row={row} onEdit={this.toEdit} onDel={this.toDel} />
......
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