2024-05-31 09:55:20 +08:00

1030 lines
31 KiB
Vue

<template>
<div class="attendanceManage fullHeight" ref="attendanceManage">
<vue-scroll style="width: 100%; height: 100%">
<el-form
:inline="true"
:model="formInline"
class="demo-form-inline whiteBlock"
size="medium"
>
<el-form-item :label="$t('message.laborMange.personnelType')">
<el-select
style="width:120px"
v-model="formInline.personType"
:placeholder="$t('message.laborMange.pleasePersonnelType')"
>
<el-option :label="$t('message.laborMange.all')" value></el-option>
<el-option
:label="$t('message.laborMange.modules')"
:value="1"
></el-option>
<el-option
:label="$t('message.laborMange.modules1')"
:value="2"
></el-option>
<el-option
:label="$t('message.laborMange.modules2')"
:value="3"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.laborMange.companies')">
<el-select
filterable
:clearable="true"
v-model="formInline.enterpriseId"
:placeholder="$t('message.laborMange.pleaseChoose')"
@change="changeCompany"
>
<el-option
:label="item.enterpriseName"
:value="item.id"
v-for="item in enterpriseListData"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.laborMange.belongsToTeam')">
<el-select
filterable
:clearable="true"
v-model="formInline.teamId"
:placeholder="$t('message.laborMange.pleaseChoose')"
>
<el-option
:label="item.teamName"
:value="item.id"
v-for="item in teamListData"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.laborMange.department')">
<el-select
filterable
:clearable="true"
v-model="formInline.departmentId"
:placeholder="$t('message.laborMange.pleaseChoose')"
>
<el-option
:label="item.departmentName"
:value="item.id"
v-for="item in departmentListData"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.laborMange.workingState')">
<el-select
filterable
v-model="formInline.inserviceType"
:placeholder="$t('message.laborMange.pleaseChoose')"
>
<el-option
:label="item.name"
:value="item.id"
v-for="item in inserviceTypeOptions"
:key="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('message.laborMange.month')">
<el-date-picker
style="width:120px"
value-format="yyyy-MM"
v-model="formInline.monthTime"
type="month"
:placeholder="$t('message.laborMange.pleaseSelectMonth')"
:clearable="false"
></el-date-picker>
</el-form-item>
<el-form-item label="姓名">
<el-input
v-model="formInline.workerName"
:placeholder="$t('message.laborMange.pleaseInputYourName')"
></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
@click="
page = 1;
getListData();
"
plain
>{{ $t("message.laborMange.inquire") }}</el-button
>
<el-button type="warning" @click="refresh" plain>{{
$t("message.laborMange.refresh")
}}</el-button>
<el-button
type="primary"
@click="
selectDateType = 1;
exportDialog = true;
"
>{{
$t("message.laborMange.export") +
$t("message.laborMange.detailData")
}}</el-button
>
<el-button type="primary" @click="exportMonthlyData"
v-permission="{key: 'rykq_exportMonthData', menuPath: '/project/labor/attendanceManage'}">{{
$t("message.laborMange.export") + $t("message.laborMange.monthData")
}}</el-button>
<el-button
type="primary"
@click="
selectDateType = 2;
exportDialog = true;
"
v-permission="{key: 'rykq_recountData', menuPath: '/project/labor/attendanceManage'}"
>{{ $t("message.laborMange.recountData") }}</el-button
>
<el-button type="primary" @click="attendancePrint"
v-permission="{key: 'rykq_attendPrint', menuPath: '/project/labor/attendanceManage'}"
><a :href="printPdf" class="printPdf">{{
$t("message.laborMange.attendPrint")
}}</a></el-button
>
<!-- v-permission="{key: 'rykq_pullTrafficData', menuPath: '/project/labor/attendanceManage'}" :无法正常显示 -->
<el-button v-permission="{key: 'rykq_pullTrafficData', menuPath: '/project/labor/attendanceManage'}" type="primary" @click="openPullDialog"
>拉取通行数据</el-button
>
<!-- <el-button type="primary" @click="importAttendanceData" >导入考勤数据</el-button> -->
</el-form-item>
<!-- <div class="doloadExcel">考勤模板下载</div> -->
</el-form>
<!-- <div class="placeholder"></div> -->
<div class="table_content whiteBlock">
<div style="text-align: right" class="flex">
<div class="pageTitle">
{{ $t("message.laborMange.AttendanceStatistics") }}
</div>
<div class="flex2 rigth">
<div>
<span
class="span"
style="background: #3a7bff; margin-right: 5px"
></span>
{{ $t("message.laborMange.normalAttendance") }}
</div>
<div>
<span
class="span"
style="background: #1d1e37; margin-right: 5px"
></span>
{{ $t("message.laborMange.lackOfCard") }}
</div>
<div>
<span
class="span"
style="background: #ff6e5f; margin-right: 5px"
></span>
{{ $t("message.laborMange.beLate") }}
</div>
<div>
<span
class="span"
style="background: #45c5a2; margin-right: 5px"
></span>
{{ $t("message.laborMange.leaveEarly") }}
</div>
<div>
<span
class="span"
style="background: #ffb85a; margin-right: 5px"
></span>
{{ $t("message.laborMange.overtime") }}
</div>
<div>
<span
class="span"
style="background: #a3a3a3; margin-right: 5px"
></span>
{{ $t("message.laborMange.noAttendance") }}
</div>
</div>
</div>
<el-table :data="tableData" max-height="500" width="100%" border>
<el-table-column
prop="workerName"
:label="$t('message.laborMange.compellation')"
align="center"
></el-table-column>
<!-- <el-table-column
prop="temperature"
:label="'温度(℃)'"
align="center"
>
<template slot-scope="scope">
{{scope.row.temperature?scope.row.temperature:'--'}}
</template>
</el-table-column> -->
<el-table-column
:prop="'day' + item"
:label="String(item)"
v-for="(item, index) in showTime"
:key="index"
align="center"
width="44"
>
<template slot-scope="scope">
<span
class="span"
v-show="scope.row['day' + item] == 0"
style="cursor: pointer; background: #a3a3a3"
></span>
<span
class="span"
v-show="scope.row['day' + item] == 1"
style="cursor: pointer; background: #3a7bff"
@click="selectWorker(scope.row, item, scope.$index)"
:class="
number == item && selectIndex == scope.$index ? 'span2' : ''
"
></span>
<span
class="span"
v-show="scope.row['day' + item] == 2"
style="cursor: pointer; background: #ff6e5f"
@click="selectWorker(scope.row, item, scope.$index)"
:class="
number == item && selectIndex == scope.$index ? 'span2' : ''
"
></span>
<span
class="span"
v-show="scope.row['day' + item] == 3"
style="cursor: pointer; background: #45c5a2"
@click="selectWorker(scope.row, item, scope.$index)"
:class="
number == item && selectIndex == scope.$index ? 'span2' : ''
"
></span>
<span
class="span"
v-show="scope.row['day' + item] == 4"
style="cursor: pointer; background: #ffb85a"
@click="selectWorker(scope.row, item, scope.$index)"
:class="
number == item && selectIndex == scope.$index ? 'span2' : ''
"
></span>
<span
class="span"
v-show="scope.row['day' + item] == 5"
style="cursor: pointer; background: #1d1e37"
@click="selectWorker(scope.row, item, scope.$index)"
:class="
number == item && selectIndex == scope.$index ? 'span2' : ''
"
></span>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
style="margin: 10px 20px 0; text-align: right"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="page"
:page-size="pageSize"
layout="total, sizes, prev, pager, next"
:total="Number(total)"
background
></el-pagination>
<div>
<div style="text-align: right; margin: 15px 0" class="flex">
<div class="pageTitle">
{{ $t("message.laborMange.attendanceDetail") }}
</div>
</div>
<el-table :data="dateilList" style="width: 100%">
<el-table-column
prop="workerName"
:label="$t('message.laborMange.compellation')"
align="center"
></el-table-column>
<el-table-column
prop="temperature"
:label="$t('message.laborMange.temperature') + '(℃)'"
align="center"
>
<template slot-scope="scope">
{{ scope.row.temperature ? scope.row.temperature : "--" }}
</template>
</el-table-column>
<el-table-column
:label="$t('message.laborMange.healthCodeStatus')"
align="center"
>
<template slot-scope="scope">
{{ healthCodelist[scope.row.healthCode] }}
</template>
</el-table-column>
<el-table-column
prop="nucleicAcidTime"
:label="$t('message.laborMange.nucleicAcidTime')"
align="center"
></el-table-column>
<el-table-column
:label="$t('message.laborMange.nucleicAcidResults')"
align="center"
>
<template slot-scope="scope">
{{ nucleicAcidResultsList[scope.row.nucleicAcidResult] }}
</template>
</el-table-column>
<el-table-column
prop="vaccinateTime"
:label="$t('message.laborMange.vaccinationTime')"
align="center"
></el-table-column>
<el-table-column
:label="$t('message.laborMange.vaccinationFrequency')"
align="center"
>
<template slot-scope="scope">
{{
vaccinationFrequencyltsList[scope.row.vaccinateState] || "无"
}}
</template>
</el-table-column>
<el-table-column
prop="passType"
:label="
$t('message.laborMange.enterInto') +
'/' +
$t('message.laborMange.leave')
"
align="center"
>
<template slot-scope="scope">
<div v-if="scope.row.passType == 1">
{{ $t("message.laborMange.enterInto") }}
</div>
<div v-if="scope.row.passType == 2">
{{ $t("message.laborMange.leave") }}
</div>
</template>
</el-table-column>
<el-table-column
prop="createTime"
:label="$t('message.laborMange.inOutTime')"
align="center"
></el-table-column>
<el-table-column
prop="passagewayName"
:label="$t('message.laborMange.inletOutletPosition')"
align="center"
></el-table-column>
<el-table-column
prop="address"
:label="$t('message.laborMange.inAndOutOfTheWay')"
align="center"
>
<template slot-scope="scope">
<div v-if="scope.row.cardType == 1">
{{ $t("message.laborMange.ic") }}
</div>
<div v-if="scope.row.cardType == 2">
{{ $t("message.laborMange.faceRecognition") }}
</div>
<div v-if="scope.row.cardType == 3">
{{ $t("message.laborMange.fingerprintIdentification") }}
</div>
<div v-if="scope.row.cardType == 4">
{{ $t("message.laborMange.reissueACard") }}
</div>
<div v-if="scope.row.cardType == 5">
{{ $t("message.laborMange.QRcode") }}
</div>
<div v-if="scope.row.cardType == 6">
{{ $t("message.laborMange.bluetooth") }}
</div>
</template>
</el-table-column>
<el-table-column
prop="address"
:label="$t('message.laborMange.entranceGuardPhotos')"
align="center"
>
<template slot-scope="scope">
<img
:src="fileUrl + scope.row.imageUrl"
style="width: 40px; height: 60px; cursor: pointer"
@click="
bigImageUrl = fileUrl + scope.row.imageUrl;
bigImageDialog = true;
"
/>
</template>
</el-table-column>
</el-table>
</div>
</div>
</vue-scroll>
<!-- 拉取通行数据弹框 -->
<el-dialog
:modal-append-to-body="false"
:close-on-click-modal="false"
:visible.sync="imgImportDialog"
width="800px"
>
<div class="title-set" slot="title">
<div class="line"></div>
<span>同步人员通行数据</span>
<div class="question-icon" @mouseover="tipShow = true" @mouseout="tipShow = false">?</div>
<div class="tip-text" v-if="tipShow">此处可同步海康ISC平台的通行数据</div>
</div>
<div class="dialog-content">
<div class="form-content">
<el-form
label-width="230px"
size="medium"
style="width: 80%;margin: 0 auto;"
>
<el-form-item
prop="afternoonStartTime"
label="选择需要手动拉取数据的时间段:"
>
<el-date-picker
v-model="timeRange"
type="datetimerange"
:range-separator="$t('message.laborMange.to')"
:start-placeholder="$t('message.laborMange.startDate')"
:end-placeholder="$t('message.laborMange.dateClosed')"
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="imgImportDialog = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t("message.laborMange.cancel") }}</el-button
>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="confirmPullData"
size="medium"
>确认拉取</el-button
>
</div>
</div>
</el-dialog>
<!-- 查看大图 -->
<div
v-if="bigImageDialog"
class="bigImageDialog"
@click="bigImageDialog = false"
>
<div class="bigImageContent">
<img width="auto" height="auto" :src="bigImageUrl" alt />
</div>
</div>
<!-- 导出 -->
<el-dialog
:modal-append-to-body="false"
:title="
selectDateType == 1
? $t('message.laborMange.hint1')
: $t('message.laborMange.hint2')
"
:visible.sync="exportDialog"
width="667px"
>
<div class="dialog_content">
<el-form label-width="90px" size="medium" class="dialogFormBox">
<el-form-item
prop="afternoonStartTime"
:label="$t('message.laborMange.timeFrame')"
>
<el-date-picker
v-model="exportDateArr"
type="daterange"
:range-separator="$t('message.laborMange.to')"
:start-placeholder="$t('message.laborMange.startDate')"
:end-placeholder="$t('message.laborMange.dateClosed')"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
<div class="dialog-footer">
<el-button
class="cancleBtn"
@click="exportDialog = false"
icon="el-icon-circle-close"
size="medium"
>{{ $t("message.personnelPosition.cancel") }}
</el-button>
<el-button
type="primary"
icon="el-icon-circle-check"
@click="exportFn"
size="medium"
v-permission="{key: 'rykq_exportDetailData', menuPath: '/project/labor/attendanceManage'}"
>{{ $t("message.personnelPosition.determine") }}
</el-button>
</div>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import scroll from "vue-seamless-scroll";
import {
getPageListData,
getSelectDateilApi,
getAfreshMonthAttendanceStatisticsApi,
attendFsdApi,
} from "@/assets/js/api/attendanceManage";
import {
getDepartmentInfoList,
getTeamInfoList,
getEnterpriseInfoList,
pullMemberDataApi
} from "@/assets/js/api/laborPerson";
export default {
name: "attendanceManage",
components: {
scroll,
},
data() {
return {
tipShow: false,
timeRange: [],
printPdf: "",
nucleicAcidResultsList: {
0: "未知",
1: "阴性",
2: "阳性",
},
healthCodelist: {
0: "无",
1: "红码",
2: "黄码",
3: "绿码",
},
vaccinationFrequencyltsList: {
0: "未接种",
1: "接种一针",
2: "接种两针",
3: "接种三针",
},
exportDialog: false,
exportDateArr: [],
inserviceTypeOptions: [
{
name: this.$t("message.laborMange.onJob"),
id: 1,
},
{
name: this.$t("message.laborMange.dimission"),
id: 2,
},
],
fileUrl: "",
page: 1,
pageSize: 10,
total: 0,
formInline: {
workerName: "",
personType: "",
monthTime: "",
enterpriseId: "",
teamId: "",
departmentId: "",
inserviceType: 1,
},
projectSn: "",
tableData: [],
number: 0,
selectIndex: 0,
showSelectPersonSn: "",
showSelectTime: "",
dateilList: [],
showTime: 31,
bigImageDialog: false,
enterpriseListData: [],
teamListData: [],
departmentListData: [],
selectDateType: 1, //1是选择导出时间段 2是选择重新计算考勤的时间段
imgImportDialog: false,
};
},
created() {
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let mydate = year.toString() + "-" + month.toString();
this.formInline.monthTime = mydate;
this.projectSn = this.$store.state.projectSn;
this.getListData();
this.fileUrl = this.$store.state.FILEURL;
this.getCompanyList();
this.getTeamList();
},
methods: {
// 确认拉取数据
confirmPullData(){
if(!this.timeRange || this.timeRange.length == 0){
this.$message.error("请先选择时间段");
return;
}
let reqeustData = {
projectSn: this.projectSn,
startTime: this.timeRange[0],
endTime: this.timeRange[1]
}
pullMemberDataApi(reqeustData).then((res) => {
if (res.code == 200) {
this.$message({
message: res.message,
type: "success",
});
this.imgImportDialog = false;
}
});
},
/// 打开拉取通行数据弹窗
openPullDialog() {
this.timeRange = [];
this.imgImportDialog = true;
},
//考勤打印
attendancePrint() {
console.log("参数", this.formInline);
this.printPdf =
this.$http.defaults.baseURL +
"xmgl/workerWagesPayment/attendancePdf?monthTime=" +
this.formInline.monthTime +
"&personType=" +
this.formInline.personType +
"&projectSn=" +
this.$store.state.projectSn +
"&enterpriseId=" +
this.formInline.enterpriseId +
"&teamId=" +
this.formInline.teamId;
// console.log('路径', this.printPdf )
},
// 导入考勤数据
importAttendanceData() {},
//获取所属 企业下拉
getCompanyList() {
let data = {
projectSn: this.projectSn,
enterpriseName: "",
userEnterpriseId: this.$store.state.userInfo.userEnterpriseId,
};
getEnterpriseInfoList(data).then((res) => {
this.enterpriseListData = res.result;
});
},
//获取 部门 列表
getDepartmentList() {
let data = {
enterpriseId: this.formInline.enterpriseId,
projectSn: this.projectSn,
};
getDepartmentInfoList(data).then((res) => {
this.departmentListData = res.result.list;
});
},
//获取企业的 - 班组列表
getTeamList() {
let data = {
enterpriseId: this.formInline.enterpriseId,
projectSn: this.projectSn,
};
getTeamInfoList(data).then((res) => {
this.teamListData = res.result.list;
});
},
changeCompany() {
this.formInline.departmentId = "";
this.formInline.teamId = "";
this.getDepartmentList();
this.getTeamList();
},
//导出详细数据
exportFn() {
console.log(this.exportDateArr);
if (!this.exportDateArr || this.exportDateArr.length == 0) {
this.$message.error(
this.$t("message.laborMange.pleaseChoose") +
this.$t("message.laborMange.timeFrame")
);
return false;
}
if (this.selectDateType == 1) {
window.location.href =
this.$http.defaults.baseURL +
"xmgl/download/exportExcelWorkerAttendance?projectSn=" +
this.projectSn +
"&endTime=" +
this.exportDateArr[1] +
"&startTime=" +
this.exportDateArr[0] +
"&personType=" +
this.formInline.personType +
"&workerName=" +
this.formInline.workerName +
"&userEnterpriseId=" +
this.$store.state.userInfo.userEnterpriseId +
"&enterpriseId=" +
this.formInline.enterpriseId +
"&teamId=" +
this.formInline.teamId +
"&departmentId=" +
this.formInline.departmentId +
"&inserviceType=" +
this.formInline.inserviceType;
} else {
let data = {
userId: this.$store.state.userInfo.userId,
projectSn: this.projectSn,
startTime: this.exportDateArr[0],
endTime: this.exportDateArr[1],
};
getAfreshMonthAttendanceStatisticsApi(data).then((res) => {
this.$message.success(this.$t("message.laborMange.hint3"));
});
}
this.exportDialog = false;
},
//导出月份数据
exportMonthlyData() {
window.location.href =
this.$http.defaults.baseURL +
"xmgl/download/exportExcelMonthWorkerAttendanceStatistics?projectSn=" +
this.projectSn +
"&monthTime=" +
this.formInline.monthTime +
"&personType=" +
this.formInline.personType +
"&workerName=" +
this.formInline.workerName +
"&userEnterpriseId=" +
this.$store.state.userInfo.userEnterpriseId +
"&enterpriseId=" +
this.formInline.enterpriseId +
"&teamId=" +
this.formInline.teamId +
"&departmentId=" +
this.formInline.departmentId +
"&inserviceType=" +
this.formInline.inserviceType;
},
//查询 列表信息
getListData() {
let data = this.formInline;
data.pageNo = this.page;
data.pageSize = this.pageSize;
data.projectSn = this.projectSn;
data.userEnterpriseId = this.$store.state.userInfo.userEnterpriseId;
getPageListData(data).then((res) => {
if (res.code == 200) {
this.total = res.result.total;
this.tableData = res.result.records;
let date = 0;
for (let i in res.result.records[0]) {
if (i.indexOf("day") >= 0) {
date++;
}
}
this.showTime = date > 0 ? date : this.showTime;
this.number = 0;
this.dateilList = [];
}
});
},
//选中的状态
selectWorker(value, num, index) {
this.number = num;
this.selectIndex = index;
this.showSelectPersonSn = value.personSn;
this.showSelectTime =
num < 10 ? value.queryTime + "-0" + num : value.queryTime + "-" + num;
this.getSelectDateil();
},
// 获取 个人考勤信息
getSelectDateil() {
let data = {
personSn: this.showSelectPersonSn,
queryTime: this.showSelectTime,
};
getSelectDateilApi(data).then((res) => {
if (res.code == 200) {
this.dateilList = res.result;
}
});
},
refresh() {
this.formInline.workerName = "";
this.formInline.personType = "";
this.formInline.enterpriseId = "";
this.formInline.teamId = "";
this.formInline.departmentId = "";
let date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
month = month < 10 ? "0" + month : month;
let mydate = year.toString() + "-" + month.toString();
this.formInline.monthTime = mydate;
this.page = 1;
this.pageSize = 10;
this.getListData();
},
handleSizeChange(value) {
this.pageSize = value;
this.getListData();
},
handleCurrentChange(value) {
this.page = value;
this.getListData();
},
},
};
</script>
<style lang="less" scoped>
.printPdf {
text-decoration: none;
color: white;
}
.flex {
display: flex;
align-content: center;
justify-content: space-between;
}
.flex2 {
display: flex;
align-content: center;
justify-content: flex-end;
}
.attendanceManage {
width: 100%;
height: 100%;
box-sizing: border-box;
.demo-form-inline {
width: 100%;
// background: #fff;
min-height: 84px;
padding: 24px 20px 0;
box-sizing: border-box;
border-radius: 3px;
margin-bottom: 7px;
}
.table_content {
width: 100%;
// background: #fff;
padding: 15px 0;
border-radius: 3px;
min-height: 100%;
// .left {
// color: rgba(38, 45, 71, 100);
// font-size: 15px;
// font-family: PingFangSC-Medium;
// text-align: center;
// font-weight: 600;
// padding: 0px 15px;
// margin-left: 20px;
// height: 20px;
// line-height: 20px;
// border-left: 3px solid #4a8bff;
// }
.pageTitle {
margin-left: 20px;
font-size: 15px;
}
.rigth {
div {
margin-right: 15px;
line-height: 30px;
font-size: 14px;
}
}
.span {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 50%;
// margin-right: 3px;
}
.span2 {
display: inline-block;
width: 18px;
height: 18px;
border-radius: 50%;
// margin-right: 5px;
margin-bottom: -5px;
}
}
// .placeholder {
// width: 100%;
// height: 7px;
// background: #f3f5fd;
// }
/deep/ .__view {
width: 100% !important;
min-width: 0 !important;
}
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
width: 5px; // 横向滚动条
height: 8px; // 纵向滚动条 必写
}
// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
background-color: #cacaca;
border-radius: 3px;
}
.bigImageDialog {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
text-align: center;
z-index: 1000000;
overflow-y: auto;
// padding-bottom: 50px;
height: 100%;
.bigImageContent {
height: 100%;
margin: 0 auto;
text-align: center;
}
img {
// margin-top: 10%;
position: relative;
top: 10%;
max-height: 80%;
max-width: 80%;
}
}
}
.doloadExcel {
// display: inline-block;
margin-right: 20px;
color: #5181f6;
cursor: pointer;
float: right;
text-decoration: underline;
line-height: 34px;
}
// 通行数据拉取弹窗样式
.title-set {
display: flex;
align-items: center;
.line {
width: 0px;
height: 15px;
border-radius: 3px;
border: 2px solid #5c81ee;
margin-right: 10px;
}
>span{
margin-right: 5px;
}
.question-icon{
border: 1px solid #676C7C;
border-radius: 50%;
width: 10px;
height: 10px;
text-align: center;
line-height: 10px;
font-size: 12px;
}
.tip-text{
font-size: 14px;
margin-left: 5px;
}
}
</style>