提交 81131457 authored 作者: 黄志强's avatar 黄志强

修改

上级 62235135
<template>
<div id="app">
<router-view/>
</div>
</template>
<style>
#app {
height: 100%;
font-family: Alibaba;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</style>
@charset "utf-8";
/*通配css样式*/
body, div, dl, dt, dd, ul, ol, li,
h1, h2, h3, h4, h5, h6, pre, code,
form, fieldset, legend, input, button,
textarea, p, blockquote, th, td {margin:0; padding:0;}
html,body{height: 100%;}
body{
font-size:12px;
line-height:20px;
/*background-image: url("../images/bgm.png");*/
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
/*overflow: hidden;*/
}
a{text-decoration:none;color: #ffffff;cursor: default}
a:hover{text-decoration: none; }
a:visited { color:#838181;text-decoration:none;}
a:link{ text-decoration: none;}
.clearfix:after { content:""; height:0; visibility:hidden; display:block; clear:both; font-size:0;}
.clearfix{ zoom:1 }
.fl{ float:left;}
.fr { float:right;}
ul,li { list-style:none}
img,li{vertical-align: middle; border:none;}
blockquote, q {quotes: none;}
blockquote:before, blockquote:after,
q:before, q:after {content: '';content: none;}
table {border-collapse: collapse;border-spacing: 0;}
h1,h2,h3,h4,h5,h6 {font-weight:normal;}
.bk {border:1px solid red;}
i,em{font-style:normal;}
.mrt10{
margin-top: 10px;
height: 100%;
}
/*页面中的表格内容水平居中*/
.table>tbody>tr>td,
.table>tbody>tr>th,
.table>tfoot>tr>td,
.table>tfoot>tr>th,
.table>thead>tr>td,
.table>thead>tr>th{
text-align: center;
}
.table>thead>tr>th{
border-bottom: 0px !important;
color: #fff;
}
.table>tbody>tr>td,.table>tbody>tr>th{
border-top: 0px;
color: #fff;
}
.table>tbody>tr>td>a{
color: orangered;
}
/*模态框的设置*/
.modal-content{
background-color: #0d6bb1;
}
.modal-title{
color: #fff;
}
.modal-header{
border-bottom: none;
background-color: #007BC3;
}
.modal-body{
border-bottom: none;
background-color: #036EB8;
}
.modal-footer{
border-top: none;
background-color: #007BC3;
}
.modal-content{
position: relative;
}
.modal-footer{
border-top: none;
}
.modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1040;
background-color: rgba(0, 0, 0, 0.1);
}
.form-group>label{
color: #88d1f4;
}
.form-horizontal .control-label{
text-align: left !important;
padding-top: 4px !important;
padding-right: 0px;
}
.form-group input.form-control,.form-group select{
background: transparent;
border: 1px solid #28a6e0;
border-radius: 3px;
height: 30px;
color: #fff;
font-size: 12px;
}
.form-group select option{
background-color: #036EB8;
}
/*内联复选框样式*/
.form-horizontal .checkbox-inline{
color: #fff;
}
.form-group textarea{
background-color: #515d75;
color: #8c8c8c;
}
-webkit-full-page-media{
background-color: transparent;
}
/*公共的边框与paddig*/
.public-border{
/*border-left: 1px solid #303c54;*/
/*border-right: 1px solid #303c54;*/
/*border-top: 1px solid #0d5276;*/
/*border-bottom: 1px solid #0d5276;*/
/*padding-left: 10px;*/
/*padding-left: 10px;*/
padding-right: 0px;
position: relative;
/*-moz-box-shadow:0px 0px 20px 4px rgba(255,255,255,.2) inset;*/
/*-webkit-box-shadow:0px 0px 20px 4px rgba(255,255,255,.2) inset;*/
box-shadow: 0px 0px 20px 4px rgba(9,66,115,.4) inset;
/* background-color: rgba(18,41,57,.5); */
}
/*公共的四个角*/
.angle{
width: 10px;
height: 10px;
position: absolute;
z-index:4;
}
.top-left-angle{
left: 0px;
top: 0px;
}
.top-right-angle{
right: 0px;
top: 0px;
}
.bottom-left-angle{
left: 0px;
bottom: 0px;
}
.bottom-right-angle{
right: 0px;
bottom: 0px;
}
/*公共标题*/
.public-title{
float: left;
width: inherit;
/*margin-top: 10px;*/
padding: 5px;
padding-left: 10px;
font-size: 16px;
color: #fff;
/*background: #142657; !* 一些不支持背景渐变的浏览器 *!*/
/*background: linear-gradient(to right, #142657 , transparent); !* 标准的语法 *!*/
}
@media screen and (max-width: 1400px) {
.public-title{
padding: 2px !important;
}
}
.public-title h4{
font-size: 16px;
margin-top: 0px !important;
margin-bottom: 0px !important;
}
.public-title .more{
color: #33bbd2;
font-size: 12px;
}
.public-title .more i{
color: #33bbd2;
padding-right: 5px;
}
/*核心内容部分样式*/
.wrapper{
width: 100%;
height: 100%;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
/*background-image: url("../images/bgm.png");*/
background-repeat: no-repeat;
background-size: 100% 100%;
-moz-background-size: 100% 100%;
}
.content-wrapper{
position: absolute;
top: 100px;
left: 20px;
right: 20px;
bottom: 0;
/*padding-bottom: 50px;*/
/*overflow-x: hidden;*/
/*overflow-y: scroll;*/
}
/*谷歌下隐藏纵向滚动条*/
.content-wrapper::-webkit-scrollbar {
display: none;
}
/*数据视图可移动模块*/
.location1, .location2, .location3{
margin-bottom: 10px;
}
/*弹出框位置*/
.vertical-center-modal{
display: flex;
align-items: center;
justify-content: center;
}
.vertical-center-modal .ivu-modal{
top: 0;
}
/*滚动条样式修改*/
/*::-webkit-scrollbar*/
/*{*/
/*width:2px;*/
/*height:0;*/
/*}*/
@media (max-width: 1023px) {
.wrapper {
/*width: 1023px;*/
/*height: 767px;*/
/*overflow-x: scroll;*/
/*overflow-y: scroll;*/
}
}
/*::-webkit-scrollbar{*/
/*border-radius: 10px;*/
/*width: 12px;*/
/*}*/
/*::-webkit-scrollbar-thumb{*/
/*background-color: #275E84;*/
/*border-radius: 20px;*/
/*}*/
.ivu-modal-footer{
display: none;
}
.left .ivu-page-simple .ivu-page-simple-pager input {
margin: 0;
}
.searchStyle {
margin-bottom: 15px;
background: #13202C;
height: 55px;
border: 1px solid #1A648F;
line-height: 52px;
}
.equip-running-state .equip-title .equip-name::before {
content: "• ";
color: rgb(255, 255, 255);
}
input,
select,
textarea,
button{
outline:none;
}
.text>a{
font-size: 20px;
}
.text>span{
font-size: 18px;
}
::-webkit-scrollbar-thumb {
background-color: #c1d4ed;
border-radius: 20px;
}
::-webkit-scrollbar {
border-radius: 10px;
width: 6px;
}
::-webkit-input-placeholder {
color: #ccc;
}
:-moz-placeholder {/* Firefox 18- */
color: #ccc;
}
::-moz-placeholder{/* Firefox 19+ */
color: #ccc;
}
:-ms-input-placeholder {
color: #ccc;
}
.text-title{
display: contents;
}
.text-title>a{
font-size: 20px;
}
.text-title>span{
vertical-align: inherit;
font-size: 18px;
color: #50a0d9;
padding-left: 6px;
cursor: default;
}
.text-title>span:hover{
color: #50a0d9 !important;
text-shadow:0 0 8px #fff;
}
.text-title-a{
cursor: pointer;
}
.text-title-a:hover{
color: #50a0d9 !important;
text-shadow:0 0 8px #fff;
}
.text{
width: 95%;
height: 72%;
background: #ffffff;
color: #000;
padding: 23px 0 0 45px;
margin: 40px auto;
}
.personnel-text{
width: 95%;
height: 85.8%;
background: #ffffff;
color: #000;
font-size: 17px;
padding: 6px 64px 0px 64px;
margin: 40px auto;
}
.personnel-text>ul{
height: 100%;
}
.personnel-text>ul>li{
margin-top: 30px;
}
.per-remarks{
width: 100%;
height: 100%;
background: #fafafa;
font-size: 17px;
border: 1px solid #e2e2e2;
}
.per-message{
width: 100%;
height: 168px;
background: #f0f8f9;
font-size: 17px;
color: #000;
margin-top: 30px;
}
.per-message>div{
float: left;
margin: 31px 54px 0px 55px;
}
/*工作台详情和历史*/
.foll{
/*overflow: hidden;*/
text-overflow: ellipsis;
white-space: nowrap;
width: 17%;
display:-moz-inline-box;
display:inline-block;
position: absolute;
}
.foll>a{
margin-right: 6px;
}
.rd-title{
width: 97%;
font-size: 17px;
float: left;
margin-top: 15px;
border-bottom: 1pt solid #cfcfcf;
padding-bottom: 12px;
}
.rd-title>ul>li{
display: inline-block;
width: 25%;
}
/*工作台详情和历史end*/
.rd-close>img{
width: 30px;
height: 30px;
cursor: pointer;
}
.userAuthority>li{
float: left;
width: 235px;
height: 235px;
margin-right: 100px;
margin-top: 30px;
cursor: pointer;
}
.nameManage{
padding-top: 75%;
text-align: center;
font-size: 30px;
}
.header-title{
text-align: center;
font-size: 20px;
position: relative;
}
.dialogHeaderClose{
position: absolute;
top: -15px;
right: -20px;
cursor: pointer;
width: 65px;
}
.dialogHeaderClose:hover{
content: url("../images/dialogCloseHover.png");
}
.dialogHeader{
height: 30px;
line-height: 30px;
color: #FFF;
}
差异被折叠。
@font-face {
font-family: Alibaba;
src: url("../font/Alibaba-PuHuiTi-Regular.ttf");
}
差异被折叠。
/**
* Created by tengteng on 18/7/17.
*/
// axios
import axios from 'axios';
import baseUrl from './index'
import router from '../router';
axios.defaults.withCredentials = true
/**
* 添加请求拦截器
*/
axios.interceptors.request.use(function (config) {
// 预处理请求信息(config
return config;
}, function (error) {
// 预处理请求有异常(error)时抛出错误
return Promise.reject(error);
});
/**
* 添加响应拦截器
*/
axios.interceptors.response.use(function (response) {
// 预处理响应数据(response)
return response;
}, function (error) {
if (error.response !== undefined) {
// console.log(error.response.status)
if (error.response.status === 403) { // 错误处理
router.push({name: 'login', params: {data: 'axios'}});
localStorage.clear();
// window.location.reload();
}
}
return Promise.reject(checkStatus(error));
});
/**
* 状态码校验
* @param response
* @return {*}
*/
function checkStatus(response) {
// 有响应时校验状态
if (response) {
// -1000 自己定义,连接错误的status
const status = response.status || -1000;
if (status === 200 || status === 304 || status === 400) {
return response.data;
} else {
let errorInfo = '';
switch (status) {
case -1:
errorInfo = '远程服务响应失败,请稍后重试';
break;
case 400:
errorInfo = '400: 错误请求';
break;
case 401:
errorInfo = '401: 访问令牌无效或已过期';
break;
case 403:
errorInfo = '403: 拒绝访问';
break;
case 404:
errorInfo = '404:资源不存在';
break;
case 405:
errorInfo = '405: 请求方法未允许';
break;
case 408:
errorInfo = '408: 请求超时';
break;
case 500:
errorInfo = '500:访问服务失败';
break;
case 501:
errorInfo = '501:未实现';
break;
case 502:
errorInfo = '502:无效网关';
break;
case 503:
errorInfo = '503: 服务不可用';
break;
default:
errorInfo = `连接错误${status}`
}
return {status, msg: errorInfo}
}
}
// 异常状态下,返回错误信息
return {status: -404, msg: '网络异常'};
}
/**
* 返回axios方法
* @param url(如果传绝对地址则baseURL不会追加到url之前)
* @param method
* @param timeout
* @param data
* @param headers
* @param dataType
* @returns {AxiosPromise}
*/
export default function(url, {
method = 'post',
timeout = 10000,
data = {},
headers = {'Content-Type': 'application/json;charset=UTF-8'},
responseType = 'json'
})
{
// 可根据不同method动态配置headers
if (method === 'get') {
headers = Object.assign({}, headers);
} else {
headers = Object.assign({}, headers);
}
const config = {
method: method,
timeout: timeout,
url: url,
baseURL: baseUrl,
data: data,
headers: headers,
responseType: responseType
};
return axios(config);
}
let baseUrl = "https://workbook.zjtys.com.cn:8289"; // 120.55.57.35 localhost 8289
let env = process.env.VUE_APP_TITLE === 'alpha' ? 'alpha' : 'production';
switch (env) {
case 'production':
// baseUrl = "http://192.168.1.248:8090"; // 测试环境
baseUrl = "https://workbook.zjtys.com.cn:8289"; // 测试环境
break;
case 'alpha':
// baseUrl = "https://workbook.zjtys.com.cn"; // 阿里云环境
baseUrl = "https://workbook.zjtys.com.cn:8289"; // 阿里云环境
break;
}
// https://workbook.zjtys.com.cn:8289
export default baseUrl;
差异被折叠。
<!-- 申请详情 -->
<template>
<div class='detailApproval'>
<el-dialog title="" :show-close="false" :append-to-body="true" :close-on-click-modal="false" :close-on-press-escape="false" :lock-scroll="true" :visible.sync="dialogApprovalDetailVisible">
<div slot="title" class="header-title">
<span class="dialogHeader">请假申请详情</span>
<img @click="closeDialog('closeDialog')" class="dialogHeaderClose" src="../assets/images/dialogClose.png" />
</div>
<div class="">
<div class="approvalDiv">
<el-form label-width="130px" class="demo-ruleForm">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="请假类型" prop="type">
<span>{{approvalDetail.approvalType}}</span>
</el-form-item>
<el-form-item label="姓名">
<div>{{approvalDetail.name}}</div>
</el-form-item>
<el-form-item label="请假开始时间">
<div>{{approvalDetail.leaveStartTime}}</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="状态">
<span :style="{color: $common.colorNum(approvalDetail.status)}">{{$common.approvalStatusName(approvalDetail.status)}}</span>
</el-form-item>
<el-form-item label="部门" prop="department">
<span>{{departNameFind(approvalDetail.departmentId, depart)}}</span>
</el-form-item>
<el-form-item label="请假结束时间">
<div>{{approvalDetail.leaveEndTime}}</div>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="审核人" prop="department">
<span>{{approvalDetail.approvalUserIdOneName}}</span>
</el-form-item>
<el-form-item label="天数" prop="day">
<span>{{approvalDetail.numberDay}}</span>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="first" label="事由" prop="des">
<div class="approvalDes">{{approvalDetail.description}}</div>
</el-form-item>
</el-form>
</div>
<div class="dialogBtns" v-show="userDetail.roles !== undefined && userDetail.roles.length > 0 && userDetail.roles[0].authorities.findIndex(item => item.name === '审批管理') > -1 && approvalDetail.status === '0'">
<el-button class="mrgt" type="primary" @click="approvalDetailSubmit('1')">审批通过</el-button>
<el-button class="mrgt" type="primary" @click="approvalDetailSubmit('2')">审批不通过</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
export default {
name: "approvalDetail",
//import引入的组件需要注入到对象中才能使用
components: {},
props: ['showApprovalDetailDialog', 'approvalDetail', 'depart'],
data () {
//这里存放数据
return {
dialogApprovalDetailVisible: false,
userDetail: '',
departmentName: ''
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
showApprovalDetailDialog: {
immediate: true,
handler(showApprovalDetailDialog) {
this.dialogApprovalDetailVisible = showApprovalDetailDialog;
}
},
},
//方法集合
methods: {
departNameFind(id, depart) {
console.log(id, depart)
let name;
if (depart !== undefined && depart.length > 0 && id !== undefined) {
depart.forEach((v, i) => {
if (v.id === id) {
name = v.name;
}
})
}
return name
},
closeDialog(val) {
this.$emit('close', val);
},
approvalDetailSubmit(val) {
console.log(val);
console.log(this.approvalDetail)
this.$axios.postAuditApproval(this.userDetail.id, val, this.approvalDetail).then((res) => {
console.log(res)
if (res.status === 200) {
this.$message({
message: '审批申请成功!',
type: 'success'
});
this.closeDialog('refresh');
}
})
}
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
this.userDetail = JSON.parse(this.$Base64.decode(localStorage.getItem('login')));
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
.approvalDiv{
margin: 20px 50px;
}
.approvalDes{
width: 100%;
height: 200px;
background-color: #EFF2FA;
border: 1px solid #DCDFE6;
border-radius: 4px;
text-indent: 10px;
}
/deep/ .el-form-item__label {
text-align: center;
vertical-align: middle;
float: none;
font-size: 18px;
color: #787682;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/deep/ .el-form-item__content {
line-height: 40px;
position: relative;
font-size: 18px;
font-weight: bold;
margin-left: 0 !important;
color: #19152c;
}
.dialogBtns{
position: fixed;
bottom: 0;
left: 10%;
width: 80%;
margin: 80px auto;
text-align: center;
border-top: 2px solid #5059D5;
}
.mrgt{
margin-top: 20px;
margin-right: 20px;
}
</style>
<!-- 审批表格 -->
<template>
<div class='approvalDialog'>
<el-dialog title="" :show-close="false" :append-to-body="true" :close-on-click-modal="false" :close-on-press-escape="false" :lock-scroll="true" :visible.sync="dialogApprovalVisible">
<div slot="title" class="header-title">
<span class="dialogHeader">新增请假申请</span>
<img @click="closeDialog('approvalForm')" class="dialogHeaderClose" src="../assets/images/dialogClose.png" />
</div>
<div class="">
<div class="approvalDiv">
<el-form :model="approvalForm" :rules="rules" ref="approvalForm" label-width="130px" class="demo-ruleForm">
<el-form-item label="请假类型" prop="type">
<el-radio-group v-model="approvalForm.type">
<el-radio style="margin-right: 60px" label="事假"></el-radio>
<el-radio style="margin-right: 60px" label="病假"></el-radio>
<el-radio style="margin-right: 60px" label="公出"></el-radio>
<el-radio style="margin-right: 60px" label="出差"></el-radio>
<el-radio label="调休"></el-radio>
</el-radio-group>
</el-form-item>
<el-row :gutter="20">
<el-col :span="5">
<el-form-item label="申请人">
<div class="nameAppUser">{{userDetail.username}}</div>
<!--<el-input v-model="approvalForm.name"></el-input>-->
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="部门" prop="department">
<el-select v-model="approvalForm.department" placeholder="请选择部门">
<el-option
v-for="item in departData"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<!--<el-form-item label="天数" prop="day">-->
<!--<el-input v-model="approvalForm.day"></el-input>-->
<!--</el-form-item>-->
<el-form-item label="请假时间" prop="time">
<el-date-picker
style="width: 90%"
v-model="approvalForm.time"
type="datetimerange"
align="right"
:editable="false"
:clearable="false"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="['09:00:00', '17:00:00']">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-form-item class="first" label="请假事由" prop="des">
<el-input type="textarea" :rows="10" v-model="approvalForm.des"></el-input>
</el-form-item>
</el-form>
</div>
<div class="dialogBtns">
<el-button class="mrgt" type="primary" @click="approvalSubmit('approvalForm')">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
export default {
name: "approvalDialog",
//import引入的组件需要注入到对象中才能使用
components: {},
props: ['showApprovalDialog', 'depart'],
data () {
//这里存放数据
return {
dialogApprovalVisible: false,
approvalForm: {
type: '',
des: '',
department: '',
time: '',
},
departData: [],
rules:{
department: [
{ required: true, message: '请选择部门', trigger: 'change' }
],
time: [
{ required: true, message: '请选择请假时间', trigger: 'change' }
],
type: [
{ required: true, message: '请选择请假类型', trigger: 'change' }
],
des: [
{ required: true, message: '请填写请假事由', trigger: 'blur' }
]
},
userDetail: '',
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
showApprovalDialog: {
immediate: true,
handler(showApprovalDialog) {
this.dialogApprovalVisible = showApprovalDialog;
}
},
depart: {
immediate: true,
handler(val) {
console.log(val)
this.departData = val;
}
}
},
//方法集合
methods: {
closeDialog(formName) {
this.$refs[formName].resetFields();
this.$emit('close', 'add');
},
approvalSubmit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let obj = {
"applyTime": null,
"approvalLevel": null,
"approvalOne": null,
"approvalStatus": null,
"approvalTwo": null,
"approvalType": this.approvalForm.type,
"approvalUserIdOne": null,
"approvalUserIdOneName": null,
"approvalUserIdTwo": null,
"departmentId": this.approvalForm.department,
"description": this.approvalForm.des,
"id": null,
"leaveEndTime": this.approvalForm.time[1],
"leaveStartTime": this.approvalForm.time[0],
"userName": this.userDetail.username,
"reason": null,
"status": null,
"title": null,
"userId": this.userDetail.id
}
console.log(obj)
this.$axios.postSubmitApproval(obj).then((res) => {
console.log(res)
if (res.status === 200) {
this.$message({
message: `新增${this.approvalForm.type}申请成功!`,
type: 'success'
});
this.closeDialog('approvalForm');
}
})
} else {
console.log('error submit!!');
return false;
}
});
}
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
this.userDetail = JSON.parse(this.$Base64.decode(localStorage.getItem('login')));
console.log(this.userDetail);
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
/deep/ .el-form-item__label {
text-align: center;
vertical-align: middle;
float: none;
font-size: 18px;
color: #606266;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/deep/ .el-form-item__content {
line-height: 40px;
position: relative;
font-size: 14px;
font-weight: bold;
margin-left: 0 !important;
}
.approvalDiv{
width: 90%;
margin: 30px auto;
text-align: left;
}
.dialogBtns{
position: fixed;
bottom: 0;
left: 10%;
width: 80%;
margin: 80px auto;
text-align: center;
border-top: 2px solid #5059D5;
}
.mrgt{
margin-top: 20px;
}
/deep/ .el-textarea__inner {
display: block;
resize: vertical;
padding: 5px 15px;
line-height: 1.5;
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
font-size: 18px;
color: #606266;
background-color: #EFF2FA;
background-image: none;
border: 1px solid #DCDFE6; /*no*/
border-radius: 4px;
-webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
transition: border-color .2s cubic-bezier(.645,.045,.355,1);
}
.nameAppUser{
font-size: 18px;
}
/deep/ .el-date-editor .el-range-separator {
padding: 0 5px; /*no*/
line-height: 40px;
width: 10%;
color: #303133;
margin-top: -9px;
}
/deep/ .el-date-editor .el-range__icon {
font-size: 14px;
margin-left: -5px; /*no*/
color: #C0C4CC;
float: left;
line-height: 40px;
margin-top: -8px;
}
</style>
<!-- 审核表格 -->
<template>
<div class='approvalTable'>
<!--@row-click="rowClick"-->
<el-table
:data="tableList"
class="tables"
border
@row-click="rowClick"
style="width: 100%">
<el-table-column
prop="status"
class="firstTable"
label=""
width="15">
<template slot-scope="scope">
<span class="statusBg" :style="{background: $common.colorNum(scope.row.status)}"></span>
</template>
</el-table-column>
<el-table-column
prop="userName"
label="申请人"
align="center">
</el-table-column>
<!--width="100"-->
<el-table-column
prop="approvalType"
label="类型"
align="center">
</el-table-column>
<!--width="200"-->
<el-table-column
prop="applyTime"
label="申请时间"
align="center">
</el-table-column>
<el-table-column
prop="status"
label="状态"
align="center">
<template slot-scope="scope">
<span :style="{color: $common.colorNum(scope.row.status)}">{{$common.approvalStatusName(scope.row.status)}}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
v-if="showEdit === true"
align="center">
<template slot-scope="scope">
<!--<el-button @click="rowClick(scope.row)" type="text" size="small">查看<i class="el-icon-view"></i></el-button>-->
<el-button :disabled="scope.row.status !== '0'" slot="reference" style="background: #EE4B4C" @click.stop="deleteApproval(scope.row)" type="text" size="small">删除<i class="el-icon-delete"></i></el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
export default {
name: "approvalTable",
//import引入的组件需要注入到对象中才能使用
components: {},
props: ['tableList', 'user'],
data () {
//这里存放数据
return {
table: [],
visible: false,
userDetail: '',
showEdit: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
user: {
immediate: true,
handler(val) {
console.log(val)
console.log(val.roles)
if (val.roles !== undefined && val.roles.length > 0 && val.roles[0].authorities.findIndex(item => item.name === '审批管理') > -1) {
this.showEdit = false;
} else {
this.showEdit = true;
}
}
}
},
//方法集合
methods: {
rowClick(val) {
console.log(val)
this.$emit('trData', val);
},
deleteApproval(val) {
console.log(val)
this.$emit('delete', val);
}
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
// this.userDetail = JSON.parse(this.$Base64.decode(localStorage.getItem('login')));
// if (this.userDetail.roles !== undefined && this.userDetail.roles.length > 0 && this.userDetail.roles[0].authorities.findIndex(item => item.name === '审批管理') === -1) {
// this.showEdit = true;
// }
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
.approvalTable{
margin-bottom: 60px; /*no*/
}
.approvalTable /deep/ .el-table td{
padding: 0 0 !important;
height: 70px !important;
min-width: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
text-overflow: ellipsis;
vertical-align: middle;
position: relative;
text-align: center;
border-right: 0 !important;
border-left: 0 !important;
border-bottom: 3px solid #F5F5F5;
}
/deep/ .el-table--border, .el-table--group {
border: 0px solid #EBEEF5;
}
.statusBg{
display: block;
width: 10px;
height: 80px;
margin-left: -11px;
}
/deep/ .el-button.is-disabled, .el-button.is-disabled:focus, .el-button.is-disabled:hover {
color: #FFF;
cursor: not-allowed;
background-image: none;
background-color: #d1d1d1 !important;
border-color: #d1d1d1;
}
</style>
<!-- 考勤统计列表 -->
<template>
<div class='attendanceTable'>
<!--@row-click="rowClick"-->
<el-table
:data="tableList"
class="tables"
border
style="width: 100%">
<el-table-column
prop="name"
label="姓名"
align="center">
</el-table-column>
<!--width="100"-->
<el-table-column
prop="attendanceDay"
label="应出勤(天)"
align="center">
</el-table-column>
<!--width="200"-->
<el-table-column
prop="realAttendanceDay"
label="出勤(天)"
align="center">
</el-table-column>
<!--width="100"-->
<el-table-column
prop="outSideBusinessDay"
label="公出(天)"
align="center">
</el-table-column>
<!--width="100"-->
<el-table-column
prop="lateDay"
label="迟到(次)"
align="center">
</el-table-column>
<el-table-column
prop="leaveEarlyDay"
label="早退(次)"
align="center">
</el-table-column>
<el-table-column
prop="outWorkDay"
label="出差(天)"
align="center">
</el-table-column>
<el-table-column
prop="sickLeaveDay"
label="请假(天)"
align="center">
</el-table-column>
<el-table-column
prop="thingDay"
label="加班(小时)"
align="center">
</el-table-column>
</el-table>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
export default {
name: "attendanceTable",
//import引入的组件需要注入到对象中才能使用
components: {},
props: ['tableList'],
data () {
//这里存放数据
return {};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {
// rowClick(val) {
// console.log(val)
// this.$emit('trData', val);
// }
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
.attendanceTable{
margin-bottom: 60px; /*no*/
}
.attendanceTable /deep/ .el-table td{
padding: 0 0 !important;
height: 70px !important;
min-width: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
text-overflow: ellipsis;
vertical-align: middle;
position: relative;
text-align: center;
border-right: 0 !important;
border-left: 0 !important;
border-bottom: 3px solid #F5F5F5;
}
/deep/ .el-table--border, .el-table--group {
border: 0px solid #EBEEF5;
}
.el-range-editor.is-active, .el-range-editor.is-active:hover {
border-color: #a8acea;
}
</style>
差异被折叠。
<!-- 部门新增 -->
<template>
<div class='departmentAddDialog'>
<div>
<el-dialog title="添加部门" :show-close="false" :append-to-body="true" :close-on-click-modal="false" :close-on-press-escape="false" :lock-scroll="true" :visible.sync="dialogDepartmentAddVisible">
<div slot="title" class="header-title">
<span class="dialogHeader">添加部门</span>
<img @click="closeDepartmentDialog('departmentForm')" class="dialogHeaderClose" src="../assets/images/dialogClose.png" />
</div>
<div>
<div class="formDepart">
<el-form :model="departmentForm" :rules="rules" ref="departmentForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="部门名称" prop="name" placeholder="请输入部门名称">
<el-input v-model="departmentForm.name"></el-input>
</el-form-item>
<el-form-item label="部门描述" prop="description">
<el-input type="textarea" :rows="12" placeholder="请输入部门名称" v-model="departmentForm.description"></el-input>
</el-form-item>
<!--<el-form-item>-->
<!--<el-button type="primary" @click="addSubmit('departmentForm')">确定</el-button>-->
<!--</el-form-item>-->
</el-form>
</div>
<div class="dialogBtns">
<el-button class="mrgt" type="primary" @click="addSubmit('departmentForm')">确定</el-button>
</div>
</div>
</el-dialog>
</div>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
export default {
name: "departmentAddDialog",
//import引入的组件需要注入到对象中才能使用
props: ['showDepartmentDialog', 'currentId'],
components: {},
data () {
//这里存放数据
return {
dialogDepartmentAddVisible: false,
departmentForm: {
name: '',
description: '',
},
rules: {
name: [
{ required: true, message: '请输入部门名称', trigger: 'blur' },
],
description: [
{ required: true, message: '请填写部门描述', trigger: 'blur' }
]
}
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
showDepartmentDialog: {
immediate: true,
handler(showDepartmentDialog) {
this.dialogDepartmentAddVisible = showDepartmentDialog;
console.log(this.currentId);
}
},
},
//方法集合
methods: {
closeDepartmentDialog(formName) {
this.$refs[formName].resetFields();
this.$emit('close', false);
},
addSubmit(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(this.departmentForm)
let data = JSON.parse(JSON.stringify(this.departmentForm));
data.parentId = this.currentId;
console.log(data)
this.$axios.postAddDepartment(data).then((res) => {
console.log(res);
if (res.request.status === 200) {
this.$message({
message: '新增部门成功!',
type: 'success'
});
this.closeDepartmentDialog('departmentForm');
}
})
} else {
console.log('error submit!!');
return false;
}
});
}
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
/deep/ .el-form-item__label {
text-align: center;
vertical-align: middle;
float: none;
font-size: 18px;
color: #606266;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/deep/ .el-form-item__content {
line-height: 40px;
position: relative;
font-size: 14px;
font-weight: bold;
margin-left: 0 !important;
}
.formDepart{
width: 50%;
margin: 60px auto;
}
.dialogBtns{
position: fixed;
bottom: 0;
left: 10%;
width: 80%;
margin: 80px auto;
text-align: center;
border-top: 2px solid #5059D5;
}
/deep/ .el-textarea__inner {
display: block;
resize: vertical;
padding: 5px 15px;
line-height: 1.5;
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
font-size: inherit;
color: #000;
background-color: #EFF2FA;
background-image: none;
border: 1px solid #DCDFE6;
border-radius: 4px;
-webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
transition: border-color .2s cubic-bezier(.645,.045,.355,1);
}
.mrgt{
margin-top: 30px;
}
/deep/ .el-input__inner{
border-color: #a8acea;/*no*/
font-size: 18px;
}
/deep/ .el-input__inner:hover {
border-color: #5059d5;
}
/deep/ .el-input.is-active .el-input__inner, .el-input__inner:focus {
border-color: #5059d5;
outline: 0;
}
/deep/ .el-textarea__inner{
border-color: #a8acea;
}
/deep/ .el-textarea__inner:hover {
border-color: #5059d5;
}
/deep/ .el-textarea__inner:focus {
outline: 0;
border-color: #5059d5;
}
</style>
<!-- 反馈弹框 -->
<template>
<div class='feedbackDialog'>
<el-dialog title="" :show-close="false" :append-to-body="true" :close-on-click-modal="false" :close-on-press-escape="false" :lock-scroll="true" :visible.sync="dialogFeedbackVisible">
<div slot="title" class="header-title">
<span class="dialogHeader">新增反馈</span>
<img @click="closeDialog('feedbackForm')" class="dialogHeaderClose" src="../assets/images/dialogClose.png" />
</div>
<div class="">
<div class="elDiv">
<el-form :model="feedbackForm" :rules="rules" ref="feedbackForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="反馈内容" prop="des">
<el-input type="textarea" :rows="18" v-model="feedbackForm.des"></el-input>
</el-form-item>
</el-form>
</div>
<div class="dialogBtns">
<el-button class="mrgt" type="primary" @click="submitForm('feedbackForm')" style="margin-right: 30px;">保存</el-button>
</div>
</div>
</el-dialog>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
export default {
name: "feedbackDialog",
//import引入的组件需要注入到对象中才能使用
props: ['showFeedback'],
components: {},
data () {
//这里存放数据
return {
dialogFeedbackVisible: false,
feedbackForm: {
des: ''
},
rules:{
des: [
{ required: true, message: '请填写反馈内容', trigger: 'blur' }
]
}
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {
showFeedback: {
immediate: true,
handler(showFeedback) {
console.log(showFeedback)
this.dialogFeedbackVisible = showFeedback;
}
}
},
//方法集合
methods: {
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(1111)
let data = JSON.parse(this.$Base64.decode(localStorage.getItem('login')));
let obj = {
"des": this.feedbackForm.des,
"id": null,
"userId": data.id
}
console.log(obj)
this.$axios.postFeedback(obj).then((res) => {
console.log(res)
if (res.status === 200) {
this.$message({
message: '新增反馈成功!',
type: 'success'
});
this.closeDialog('feedbackForm');
}
})
} else {
console.log('error submit!!');
return false;
}
});
},
closeDialog(formName) {
this.$refs[formName].resetFields();
this.$emit('close', false);
}
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
.elDiv{
width: 90%;
margin: 30px auto;
}
.dialogBtns{
position: fixed;
bottom: 0;
left: 10%;
width: 80%;
margin: 80px auto;
text-align: center;
border-top: 2px solid #5059D5;
}
.mrgt{
margin-top: 20px;
}
/deep/ .el-form-item__label {
text-align: center;
vertical-align: middle;
float: none;
font-size: 18px;
color: #606266;
line-height: 40px;
padding: 0 12px 0 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
/deep/ .el-form-item__content {
line-height: 40px;
position: relative;
font-size: 14px;
font-weight: bold;
margin-left: 0 !important;
}
/deep/ .el-textarea__inner {
display: block;
resize: vertical;
padding: 5px 15px;
line-height: 1.5;
-webkit-box-sizing: border-box;
box-sizing: border-box;
width: 100%;
font-size: inherit;
color: #606266;
background-color: #EFF2FA;
background-image: none;
border: 1px solid #DCDFE6;
border-radius: 4px;
-webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
transition: border-color .2s cubic-bezier(.645,.045,.355,1);
}
</style>
<!-- 头部 -->
<template>
<div class='headerDetail' style="height: 100%;">
<div style="display: flex;align-items: center;justify-content: space-between;height: 100%;">
<div class="logoDivss">
<span>
<img class="logoimg" src="../assets/images/nav-logo.png" alt="浙江泰源科技-工作簿"/>
</span>
<!--:class="showExpand === true ? 'tipWidthExpand' : 'tipWidth'"-->
<span class="tip tipWidthExpand" >
<img class="tipLing" style="" src="../assets/images/tishi.png">
<span style="vertical-align: middle;color: #ec3321">涉密信息请勿上传!</span>
<!--<img @click="showExpand = !showExpand" class="tipExpand" src="../assets/images/tipExpand.png"/>-->
</span>
</div>
<div class="rightMenuDiv" style="">
<!--<span>-->
<!--<img class="menuImgs" v-show="!showSearch" src="../assets/images/nav-top-ss.png" title="搜索" style="cursor: pointer;" @click="showSearch = true"/>-->
<!--<div v-show="showSearch" class="div-search">-->
<!--<i class="search-icon" @click="openSearch()"></i>-->
<!--<input type="text" v-model="searchHeader" id="searchVal" placeholder="请输入" class="in-search" @keyup.enter="openSearch()"/>-->
<!--</div>-->
<!--</span>-->
<span>
<img class="menuImgs" title="帮助" src="../assets/images/nav-top-wh.png" style="cursor: pointer">
</span>
<span @click="goFeedback">
<img class="menuImgs" title="反馈" src="../assets/images/feedBack.png" style="cursor: pointer">
</span>
<span>
<img width="2" src="../assets/images/nav-top-st.png">
</span>
<span>
<el-menu :default-active="activeIndex" class="el-menu-demo" menu-trigger="hover" mode="horizontal" @select="handleSelect">
<el-submenu index="1">
<template slot="title">
<img src="../assets/images/nav-top-gly.png"/>
<span style="margin-left: 10px;">{{name}}</span>
</template>
<el-menu-item index="2" @click="openPassword">修改密码</el-menu-item>
<el-menu-item index="3">退出</el-menu-item>
</el-submenu>
</el-menu>
</span>
</div>
</div>
<!--<ul>-->
<!--<li class="logo">-->
<!--<img src="../assets/images/nav-logo.png" alt="浙江泰源科技-工作簿"/>-->
<!--&lt;!&ndash;<span style="padding-left: 14px;">工作簿</span>&ndash;&gt;-->
<!--</li>-->
<!--<li class="tip" :class="showExpand === true ? 'tipWidthExpand' : 'tipWidth'">-->
<!--<img class="tipLing" style="" src="../assets/images/tishi.png">-->
<!--<span style="vertical-align: sub;color: #ec3321">涉密信息请勿上传!</span>-->
<!--<img @click="showExpand = !showExpand" class="tipExpand" src="../assets/images/tipExpand.png"/>-->
<!--</li>-->
<!--<li class="menuRight">-->
<!--<el-menu :default-active="activeIndex" class="el-menu-demo" menu-trigger="hover" mode="horizontal" @select="handleSelect">-->
<!--<el-submenu index="1">-->
<!--<template slot="title">-->
<!--<img src="../assets/images/nav-top-gly.png"/>-->
<!--<span style="margin-left: 10px;">{{name}}</span>-->
<!--</template>-->
<!--<el-menu-item index="2" @click="openPassword">修改密码</el-menu-item>-->
<!--<el-menu-item index="3">退出</el-menu-item>-->
<!--</el-submenu>-->
<!--</el-menu>-->
<!--</li>-->
<!--<li class="line">-->
<!--<img src="../assets/images/nav-top-st.png">-->
<!--</li>-->
<!--<li class="headerSearch" @click="goFeedback">-->
<!--<img title="反馈" src="../assets/images/feedBack.png" style="cursor: pointer">-->
<!--</li>-->
<!--<li class="headerSearch">-->
<!--<img title="帮助" src="../assets/images/nav-top-wh.png" style="cursor: pointer">-->
<!--</li>-->
<!--<li class="headerSearch">-->
<!--<img v-show="!showSearch" src="../assets/images/nav-top-ss.png" title="搜索" style="cursor: pointer;" @click="showSearch = true"/>-->
<!--<div v-show="showSearch" class="div-search">-->
<!--<i class="search-icon" @click="openSearch()"></i>-->
<!--<input type="text" v-model="searchHeader" id="searchVal" placeholder="请输入" class="in-search" @keyup.enter="openSearch()"/>-->
<!--</div>-->
<!--</li>-->
<!--</ul>-->
<password :showPasswordDialog="showPasswordDialog" @close="closePassword"></password>
</div>
</template>
<script>
//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
//例如:import 《组件名称》 from '《组件路径》';
import password from '../components/passwordChange'
export default {
name: "headerDetail",
//import引入的组件需要注入到对象中才能使用
components: { password },
data () {
//这里存放数据
return {
showSearch: false,
searchHeader:'',
activeIndex: '1',
showPasswordDialog: false,
name: '',
showExpand: false,
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {
openSearch() {
this.showSearch = false;
this.searchHeader = '';
// if (this.searchHeader !== '') {
//
// }
},
goFeedback() {
this.$router.push({name: 'feedback'})
},
handleSelect(key, keyPath) {
console.log(key, keyPath);
if (key === '3') {
// this.$router.push({name: 'login'})
this.$axios.getLogout().then(res => { // 登出
if (res.data.code === 200) {
this.$router.push({name: 'login'});
localStorage.clear();
// setTimeout(function () {
// window.location.reload();
// }, 500)
}
})
}
},
openPassword() {
this.showPasswordDialog = true;
},
closePassword() {
this.showPasswordDialog = false;
}
},
//生命周期 - 创建完成(可以访问当前this实例)
created () {
},
//生命周期 - 挂载完成(可以访问DOM元素)
mounted () {
let loginData = JSON.parse(this.$Base64.decode(localStorage.getItem('login')))
// console.log(loginData)
this.name= loginData.username;
},
beforeCreate () {
}, //生命周期 - 创建之前
beforeMount () {
}, //生命周期 - 挂载之前
beforeUpdate () {
}, //生命周期 - 更新之前
updated () {
}, //生命周期 - 更新之后
beforeDestroy () {
}, //生命周期 - 销毁之前
destroyed () {
}, //生命周期 - 销毁完成
activated () {
}, //如果页面有keep-alive缓存功能,这个函数会触发
}
</script>
<style scoped>
.logo{
float: left;
padding-top: 17px;
font-size: 30px;
color: #FFF;
margin-left: 100px;
}
.logo img{
width: 190px;
}
.tip{
/*float: left;*/
margin-left: 121px;
font-size: 20px;
/*margin-top: 20px;*/
color: #ec3321;
height: 35px;
line-height: 35px;
padding: 0 10px;
background: #FFF;
border-radius: 20px;
position: relative;
}
.tipWidthExpand{
width: 220px; /*250px*/
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
transition:width 1.5s;
-moz-transition:width 1.5s; /* Firefox 4 */
-webkit-transition:width 1.5s; /* Safari and Chrome */
-o-transition:width 1.5s; /* Opera */
}
.tipWidthExpand .tipExpand{
transform: rotate(180deg);
-webkit-transform: rotate(180deg);
transition: transform 1s;
}
.tipWidth .tipExpand{
transform: rotate(0deg);
-webkit-transform: rotate(0deg);
transition: transform 1s;
}
.tipWidth{
width: 60px;
/*white-space: nowrap;*/
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
transition:width 1.5s;
-moz-transition:width 1.5s; /* Firefox 4 */
-webkit-transition:width 1.5s; /* Safari and Chrome */
-o-transition:width 1.5s; /* Opera */
}
.tipLing{
width: 17px;
margin-right: 5px;
/*margin-top: 6px;*/
vertical-align: middle;
}
.tipExpand{
position: absolute;
right: 5px;
top: 3px;
width: 30px;
cursor: pointer;
}
.tipExpand:hover{
content: url("../assets/images/showExpandHover.png");
}
.headerSearch{
float: right;
padding-top: 20px;
margin-left: 20px;
}
.headerSearch img{
width: 36px;
}
.in-search{
width: 250px;
height: 36px;
background: #ffffff;
border-radius: 20px;
font-size: 16px;
padding-left: 14px;
border: none;
}
.div-search{
display: inline-block;
position: relative;
margin-right: 20px;
}
.search-icon{
position: absolute;
background-image: url("../assets/images/search.png");
background-repeat: no-repeat;
background-size: 100% 100%;
width: 26px;
height: 26px;
cursor: pointer;
right: 5px;
top: 5px;
}
.line{
float: right;
padding-top: 18px;
margin-left: 20px;
}
.line img{
height: 46px;
}
.menuRight{
float: right;
padding-top: 6px;
}
/deep/ .el-menu--horizontal>.el-submenu .el-submenu__title {
height: 60px;
line-height: 60px;
border-bottom: 0.010417rem solid transparent;
color: #FFF;
font-size: 20px;
}
/deep/ .el-submenu__title img{
width: 36px;
}
.rightMenuDiv{
display: flex;justify-content: center;align-items: center;
}
.rightMenuDiv .menuImgs{
width: 36px;
margin-right: 20px;
}
.logoDivss{
display: flex;
justify-content: center;
align-items: center;
}
/deep/ .el-upload-list__item {
-webkit-transition: all .5s cubic-bezier(.55,0,.1,1);
transition: all .5s cubic-bezier(.55,0,.1,1);
font-size: 18px;
color: #606266;
line-height: 1.8;
margin-top: 0.026042rem;
position: relative;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border-radius: 0.020833rem;
width: 100%;
}
.logoimg{
width: 190px;
height: 40px;
}
</style>
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
差异被折叠。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论