2025-05-30 14:29:20 +08:00

1096 lines
31 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="fullHeight">
<headers :showBack="true" :themeType="'white'"
style="position: fixed; top: 0; left: 0; width: 100%; z-index: 1111;">
<view class="headerName">
人员档案
</view>
</headers>
<view class="personDetail_content" style="padding-top: 110rpx;">
<view class="title_wrap">
<text class="exit_status" v-if="workerInfo.inserviceType==2">已退场</text>
<view class="flex">
<view class="flex">
<image class="photograph" @click="previewImage(workerInfo.fieldAcquisitionUrl,1)"
:src="url_config+'image/'+workerInfo.fieldAcquisitionUrl"></image>
<image class="photograph" @click="previewImage(workerInfo.idCardBigPhotoUrl,2)"
:src="url_config+'image/'+workerInfo.idCardBigPhotoUrl"></image>
</view>
<view class="user_info">
<view class="name">{{workerInfo.workerName}}</view>
<view class="code">{{workerInfo.idCard}}</view>
<view class="nation">民族:{{workerInfo.nation}}</view>
<view class="nation" v-if="projectConfigDetail.isEnableDeduct == 1">
当前安全评分分值:{{workerInfo.safeScore || 0}}</view>
</view>
<!-- 操作按钮 -->
<view style="width: 60rpx;height: 120rpx; text-align: center;" v-if="false">
<image class="more" src="../../../../static/personManage/more.png" @click="operateBtn"></image>
</view>
</view>
<view class="projectName">{{workerInfo.projectName}}</view>
<view class="details-content" v-if="workerInfo.personType==1 && codeShow">
<view class="left-content">
<view class="project_info">
<text class="name">单位:</text>
<text>{{workerInfo.enterpriseName}}</text>
</view>
<view class="project_info">
<text class="name">岗位(工种)</text>
<text>{{workerInfo.teamName}}</text>
</view>
<!-- <view class="project_info">
<text class="name">工种:</text>
<text>顾燕安-中建八局第三建设有限公司安装分公司</text>
</view> -->
<view class="project_info">
<text class="name">工号:</text>
<text>{{workerInfo.attendanceNumber}}</text>
</view>
</view>
<tki-qrcode ref="qrcode" :size="120" cid="1001" :val="qrUrl" :background="backgroundColor"
:foreground="foregroundColor" :pdground="pdgroundColor" :onval="true" :loadMake="true" />
</view>
<view class="details-content" v-if="workerInfo.personType!=1 && codeShow">
<view class="left-content">
<view class="project_info">
<text class="name">单位:</text>
<text>{{workerInfo.enterpriseName}}</text>
</view>
<view class="project_info">
<text class="name">岗位(工种)</text>
<text>{{workerInfo.departmentName}}</text>
</view>
<view class="project_info">
<text class="name">工号:</text>
<text>{{workerInfo.attendanceNumber}}</text>
</view>
</view>
<tki-qrcode ref="qrcode" :size="120" cid="1001" :val="qrUrl" :background="backgroundColor"
:foreground="foregroundColor" :pdground="pdgroundColor" :onval="true" :loadMake="true" />
</view>
<image src="../../../../static/header_bg.png" class="header_bg"></image>
<view class="title_dialog" v-if="operateType">
<view @click="editPersonState(1)" v-if="workerInfo.inserviceType==2">再次进场</view>
<view @click="editPersonState(2)" v-if="workerInfo.inserviceType==1">退场</view>
</view>
</view>
<view class="item_wrap flex">
<view class="flex item" @click="showItemDetails(1)">
<image class="margin_r_5" style="width: 46rpx;height:46rpx"
src="../../../../static/personManage/ht.png"></image>
<text>劳动合同</text>
<text class="state1" style="top: -7px;left: 68px;" v-if="contractList.length>0">已签</text>
<text class="state2" style="top: -7px;left: 68px;" v-else>未签</text>
</view>
<view class="flex item" @click="showItemDetails(2)">
<image class="margin_r_5" style="width: 42rpx;height:42rpx"
src="../../../../static/personManage/tjzs.png"></image>
<text>体检</text>
<text class="state1" style="top: -7px;left: 80rpx;" v-if="physicalsList.length>0">已体检</text>
<text class="state2" style="top: -7px;left: 80rpx;" v-else>未体检</text>
</view>
<view class="flex item" @click="showItemDetails(3)">
<image class="margin_r_5" style="width: 38rpx;height:44rpx"
src="../../../../static/personManage/bx.png"></image>
<text>保险信息</text>
</view>
<view class="flex item" @click="showItemDetails(4)">
<image class="margin_r_5" style="width: 43rpx;height:38rpx"
src="../../../../static/personManage/jy.png"></image>
<text>安全教育</text>
</view>
<view class="flex item" @click="showItemDetails(5)" v-if="false">
<image class="margin_r_5" style="width: 35rpx;height:35rpx"
src="../../../../static/personManage/qrCode.png"></image>
<text>二维码</text>
</view>
<view class="flex item" @click="showItemDetails(6)" v-if="COMPANY == 'cpgs'">
<image class="margin_r_5" style="width: 40rpx;height:40rpx"
src="../../../../static/personManage/cyjl.png"></image>
<text>考勤录入</text>
</view>
</view>
<view class="log_wrap">
<view class="flex" @click="showInfoList(1)">
<view class="flex">
<image class="margin_r_5" style="width: 33rpx;height:40rpx"
src="../../../../static/personManage/zs.png"></image>
<text class="title">资格证书({{certificateList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showCertificateList">
<view class="log_content_item" v-for="(item,index) in certificateList" :key="index">
<view>
<text>证书类型:</text>
<text>{{item.certificateTypeName}}</text>
</view>
<view>
<text>证书编号:</text>
<text>{{item.certificateNumber}}</text>
</view>
<view>
<text>技能等级:</text>
<text v-if="item.skillLevel==1">普工</text>
<text v-if="item.skillLevel==2">初级工</text>
<text v-if="item.skillLevel==3">中级工</text>
<text v-if="item.skillLevel==4">高级工</text>
<text v-if="item.skillLevel==5">技师</text>
<text v-if="item.skillLevel==6">高级技师</text>
</view>
<view>
<text>发证日期:</text>
<text>{{item.issueTime}}</text>
</view>
<view>
<text>截止日期:</text>
<text>{{item.effectTime}}</text>
</view>
<view>
<text>发证机关:</text>
<text>{{item.issueCompany}}</text>
</view>
<view class="flex">
<text>备注:</text>
<pre>{{item.remarks}}</pre>
</view>
<view class="flex3">
<text>附件:</text>
<image v-if="imgItem" v-for="(imgItem,imgIndex) in item.fileList"
@click="previewImage(imgItem.url,2)" :key="imgIndex"
:src="url_config+'image/'+imgItem.url" style="width: 80rpx; height: 100rpx;"></image>
</view>
</view>
</view>
</view>
<!-- <view class="log_wrap">
<view class="flex" @click="showInfoList(2)">
<view class="flex">
<image class="margin_r_5" style="width: 37rpx;height:37rpx"
src="../../../../static/personManage/cyjl.png"></image>
<text class="title">从业经历({{workExperienceList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showWorkExperienceList">
<view class="log_content_item" v-for="(item,index) in workExperienceList" :key="index">
<view>
<text>参与项目:</text>
<text>{{item.projectName}}</text>
</view>
<view>
<text>入场日期:</text>
<text>{{item.enterDate}}</text>
</view>
<view>
<text>退场日期:</text>
<text>{{item.exitDate}}</text>
</view>
<view>
<text>工种:</text>
<text>{{item.typeName}}</text>
</view>
<view>
<text>班组/部门:</text>
<text>{{item.teamName}}</text>
</view>
</view>
</view>
</view> -->
<!-- <view class="log_wrap">
<view class="flex" @click="showInfoList(3)">
<view class="flex">
<image class="margin_r_5" style="width: 34rpx;height:43rpx"
src="../../../../static/personManage/jl.png"></image>
<text class="title">奖励记录({{rewardList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showRewardList">
<view class="log_content_item" v-for="(item,index) in rewardList" :key="index">
<view>
<text>发生时间:</text>
<text>{{item.eventTime}}</text>
</view>
<view>
<text>事件|奖励原因:</text>
<text>{{item.reason}}</text>
</view>
<view>
<text>奖励名称:</text>
<text>{{item.awardName}}</text>
</view>
<view class="flex">
<text>备注:</text>
<pre>{{item.remarks}}</pre>
</view>
<view class="flex3">
<text>附件:</text>
<image v-if="imgItem" v-for="(imgItem,imgIndex) in item.fileList"
@click="previewImage(imgItem.url,2)" :key="imgIndex"
:src="url_config+'image/'+imgItem.url" style="width: 80rpx; height: 100rpx;"></image>
</view>
</view>
</view>
</view>
<view class="log_wrap">
<view class="flex" @click="showInfoList(4)">
<view class="flex">
<image class="margin_r_5" style="width: 34rpx;height:34rpx"
src="../../../../static/personManage/bljl.png"></image>
<text class="title">不良记录({{badList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showBadList">
<view class="log_content_item" v-for="(item,index) in badList" :key="index">
<view>
<text>发生时间:</text>
<text>{{item.eventTime}}</text>
</view>
<view>
<text>事件|发生原因:</text>
<text>{{item.reason}}</text>
</view>
<view>
<text>严重程度:</text>
<text>{{item.seriousGrade==1?'不严重':item.seriousGrade==2?'严重':item.seriousGrade==3?'非常严重':''}}</text>
</view>
<view class="flex">
<text>备注:</text>
<pre>{{item.remarks}}</pre>
</view>
<view class="flex3">
<text>附件:</text>
<image v-if="imgItem" v-for="(imgItem,imgIndex) in item.fileList" :key="imgIndex"
@click="previewImage(imgItem.url,2)" :src="url_config+'image/'+imgItem.url"
style="width: 80rpx; height: 100rpx;"></image>
</view>
</view>
</view>
</view> -->
<view class="log_wrap">
<view class="flex" @click="showInfoList(7)">
<view class="flex">
<image class="margin_r_5" style="width: 34rpx;height:34rpx"
src="../../../../static/personManage/bljl.png"></image>
<text class="title">违章记录({{positionRecorderList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showPositionRecorderList">
<view class="log_content_item" v-for="(item,index) in positionRecorderList" :key="index">
<view>
<text>违规类型:</text>
<text>{{item.violationTypeName}}</text>
</view>
<view>
<text>违规位置:</text>
<text>{{item.violationLocation}}</text>
</view>
<view>
<text>报警时间:</text>
<text>{{item.alarmTime}}</text>
</view>
<view>
<text>处置时间:</text>
<text>{{item.disposalTime}}</text>
</view>
<view class="flex3">
<text>违规图片:</text>
<!-- url_config+'image/'+item.violationImage -->
<image
@click="previewImage(item.violationImage,2)" :src="item.violationImage.includes('http://') ? item.violationImage : url_config+'image/'+item.violationImage"
style="width: 160rpx; height: 160rpx;"></image>
</view>
</view>
</view>
</view>
<view class="log_wrap" v-if="projectInfoType.isEnableDeduct == 1">
<view class="flex" @click="showInfoList(5)">
<view class="flex">
<image class="margin_r_5" style="width: 34rpx;height:34rpx"
src="../../../../static/personManage/zs.png"></image>
<text class="title">扣分记录({{reduceScoreList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showReduceScoreList">
<view class="log_content_item" v-for="(item,index) in reduceScoreList" :key="index">
<view>
<text>序号:</text>
<text>{{index + 1}}</text>
</view>
<view>
<text>扣分时间:</text>
<text>{{item.createDate}}</text>
</view>
<view>
<text>扣分原因:</text>
<text>{{item.deductReason}}</text>
</view>
<view>
<text>当前安全评分值:</text>
<text>{{item.curScore}}</text>
</view>
</view>
</view>
</view>
<view class="log_wrap" v-if="COMPANY == 'cpgs'">
<view class="flex" @click="showInfoList(6)">
<view class="flex">
<image class="margin_r_5" style="width: 34rpx;height:34rpx"
src="../../../../static/personManage/zs.png"></image>
<text class="title">考勤记录</text>
</view>
<view v-if="false">添加</view>
</view>
</view>
<view class="log_wrap">
<view class="flex" @click="showInfoList(8)">
<view class="flex">
<image class="margin_r_5" style="width: 34rpx;height:34rpx"
src="../../../../static/personManage/bljl.png"></image>
<text class="title">焊工信息({{welderSkillExamList.length}})</text>
</view>
<view v-if="false">添加</view>
</view>
<view class="log_content" v-if="showWelderSkillExamList">
<view class="log_content_item" v-for="(item,index) in welderSkillExamList" :key="index">
<view>
<text>焊工合格证书号:</text>
<text>{{item.welderQualificationCertificateNumber}}</text>
</view>
<view>
<text>焊工作业证编号:</text>
<text>{{item.welderWorkPermitNumber}}</text>
</view>
<view>
<text>焊工证合格证项目:</text>
<text>{{item.welderCertificateQualificationItem}}</text>
</view>
<view>
<text>焊工考核项目:</text>
<text>{{item.welderAssessmentItem}}</text>
</view>
<view>
<text>试件类别:</text>
<text>{{ item.testType.length > 0 ? item.testType.join('、') : '' }}</text>
</view>
<view>
<text>考核日期:</text>
<text>{{item.onSiteAssessmentDate}}</text>
</view>
<view>
<text>焊接作业证:</text>
<view class="download1" @click="downloadFn(ele)" v-for="(ele, index) in item.welderWorkPermit" :key="index">
{{ ele.name }}
</view>
</view>
</view>
</view>
</view>
</view>
<view class="kqbtn" v-if="btnAuth" @click="goTo">
<!-- 辅助考勤 -->
违章上报
</view>
</view>
</template>
<script>
import {
isJSON
} from '@/utils/tool.js'
import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
export default {
components: {
tkiQrcode,
},
data() {
return {
codeShow: false,
backgroundColor: '#fff',
foregroundColor: '#000',
pdgroundColor: '#000',
qrUrl: '此二维码仅供展示',
workerId: 0,
operateType: false,
originWorkerInfo: {}, // 原始基本信息
workerInfo: {}, //基本信息
certificateList: [], //资格证书
workExperienceList: [], //从业信息
reduceScoreList: [], // 扣分记录
badList: [], //不良记录
rewardList: [], //--奖励记录
contractList: [], //合同列表
physicalsList: [], //体检列表
safeEducationList: [], //安全教育信息
monthAttendance: [],
insuranceList: [],
positionRecorderList: [], // 违章记录
welderSkillExamList: [], //焊工技能考试信息
showReduceScoreList: false,
showBadList: false,
showRewardList: false,
showWorkExperienceList: false,
showCertificateList: false,
btnAuth: false,
showPositionRecorderList: false,
showWelderSkillExamList: false,
projectInfoType: {},
projectConfigDetail: {},
idCard: "",
}
},
onLoad(options) {
this.workerId = options.id;
// this.btnAuth = this.checkBtnPermission({key: 'assist_attendance', menuPath: '/project/labor/attendanceManage'})
// this.btnAuth = true;
this.btnAuth = this.checkBtnPermission({key: 'add', menuPath: '/project/aiAnalysis/warningList'})
this.projectInfoType = JSON.parse(uni.getStorageSync('projectInfoType'));
// this.getDetailsData();
this.getDetail();
},
onShow() {
this.getDetailsData();
this.getSafeScoreDetail();
},
methods: {
downloadFn(row) {
let that = this;
let src = row.url.includes('http://') ? row.url : that.url_config + 'image/' + row.url;
uni.downloadFile({
url: src, //仅为示例,并非真实的资源
success: (res) => {
console.log(res)
if (res.statusCode === 200) {
// uni.showToast({
// title:'下载成功'
// })
var filePath = res.tempFilePath;
if (!filePath) return
uni.openDocument({
filePath: filePath,
success: function(res) {
console.log(res);
console.log('打开文档成功');
uni.showToast({
title: '打开文档成功'
})
}
});
} else {
uni.showToast({
title: '下载失败'
})
}
}
});
},
goTo() {
// uni.navigateTo({
// url: './assistCheckingIn?id=' + this.workerId
// })
uni.navigateTo({
url: '/pages/alarmPage/manualCapture/indexTwo?id=' + this.workerId + '&workerName=' + this.workerInfo.workerName
})
},
setCodeColor(fenshu) {
console.log(fenshu)
if (fenshu == -100) {
this.foregroundColor = "#000000";
this.pdgroundColor = "#000000";
this.codeShow = true;
return
}
if (fenshu >= 80) {
this.foregroundColor = "green";
this.pdgroundColor = "green";
} else if (fenshu >= 60 && fenshu < 80) {
// this.fontColor = "rgb(255, 230, 0)";
this.foregroundColor = "#F7C409";
this.pdgroundColor = "#F7C409";
} else if (fenshu < 60) {
// this.fontColor = "red";
this.foregroundColor = "#F0212A";
this.pdgroundColor = "#F0212A";
}
this.codeShow = true;
},
// 生成台账数据
productRecord(obj) {
let that = this;
let requestData = {
enterpriseName: obj.enterpriseName,
personType: obj.personType == 1 ? '施工人员' : obj.personType == 2 ? '管理人员' : '临时人员',
teamDepartmentName: obj.teamName || obj.departmentName,
workerName: obj.workerName,
projectSn: obj.projectSn,
scanQrCoder: JSON.parse(uni.getStorageSync('userInfo')).account
}
if (obj.safeScore >= 80) {
requestData.accessStatus = 1;
} else if (obj.safeScore >= 60 && obj.safeScore < 80) {
requestData.accessStatus = 1;
} else if (obj.safeScore < 60) {
requestData.accessStatus = 2;
}
this.sendRequest({
url: 'xmgl/workerAccessRecord/add',
method: 'post',
data: {
...requestData
},
success: res => {}
})
},
// 获取安全扣分详情
getSafeScoreDetail() {
let that = this;
this.sendRequest({
url: 'xmgl/xzDeductScoreRecord/list',
method: 'get',
data: {
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
workerId: this.workerId,
},
success: res => {
if (res.code == 200) {
that.reduceScoreList = res.result;
}
}
})
},
// 获取安全扣分详情
getViolationDetailPage() {
let that = this;
this.sendRequest({
url: 'xmgl/violationDetail/page',
method: 'get',
data: {
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
pageNo: 1,
pageSize: -1,
// violationReEducationId: this.workerInfo.id
workerId: this.workerInfo.id
},
success: res => {
if (res.code == 200) {
that.positionRecorderList = res.result.records;
}
}
})
},
// 获取安全扣分详情
getWelderSkillExamPage() {
let that = this;
this.sendRequest({
url: 'xmgl/welderSkillExam/page',
method: 'get',
data: {
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
pageNo: 1,
pageSize: -1,
// violationReEducationId: this.workerInfo.id
workerId: this.workerInfo.id
},
success: res => {
if (res.code == 200) {
that.welderSkillExamList = res.result.records.map(item => {
return {
...item,
welderWorkPermit: isJSON(item.welderWorkPermit) && Array.isArray(JSON.parse(item.welderWorkPermit)) ? JSON.parse(item.welderWorkPermit) : [],
testType: isJSON(item.testType) && Array.isArray(JSON.parse(item.testType)) ? JSON.parse(item.testType) : [],
}
});
}
}
})
},
//获取详情数据
getDetailsData() {
this.sendRequest({
url: 'xmgl/workerInfo/viewWorkerInfoDetail',
method: 'post',
data: {
workerId: this.workerId,
},
success: res => {
if (res.code == 200) {
this.originWorkerInfo = {
...res.result.workerInfo
};
this.workerInfo = res.result.workerInfo;
this.productRecord(res.result.workerInfo)
this.getViolationDetailPage();
this.getWelderSkillExamPage();
//获取证书附件
if (res.result.certificateList.length > 0) {
res.result.certificateList.forEach((item) => {
item.certificateState = false; //设置可编辑状态
if (item.photoUrl) {
let arr = item.photoUrl.split("*");
item.fileList = [{
name: arr[0],
url: arr[1]
}];
} else {
item.fileList = [];
}
});
};
this.certificateList = res.result.certificateList; //资格证书
this.workExperienceList = res.result.workExperienceList; //从业信息
//获取不良记录附件
if (res.result.badList.length > 0) {
res.result.badList.forEach((item) => {
if (item.fileUrl) {
item.fileList = JSON.parse(item.fileUrl); //设置可编辑状态
}
});
}
//获取奖励记录附件
if (res.result.rewardList.length > 0) {
res.result.rewardList.forEach((item) => {
if (item.fileUrl) {
item.fileList = JSON.parse(item.fileUrl); //设置可编辑状态
} else {
item.fileList = [];
}
});
}
this.badList = res.result.badList; // 不良记录
this.rewardList = res.result.rewardList; // 奖励记录
this.insuranceList = res.result.insuranceList; //保险
this.contractList = res.result.contractList; //合同
this.physicalsList = res.result.physicalsList; //体检列表
this.safeEducationList = res.result.safeEducationList; //安全教育
this.idCard =this.workerInfo.idCard;
// 修改工号和身份证展示格式
if (this.workerInfo.idCard) {
let str = "***************"
this.workerInfo.idCard = this.workerInfo.idCard.substring(0, 3) + str + this
.workerInfo.idCard.substring(16)
}
if (this.workerInfo.attendanceNumber) {
let str = "***************"
this.workerInfo.attendanceNumber = this.workerInfo.attendanceNumber.substring(
0, 3) + str + this.workerInfo.attendanceNumber.substring(16)
}
if (this.workerInfo) {
this.setCodeColor(this.workerInfo.safeScore)
} else {
this.setCodeColor(0)
}
}
}
})
},
//显示操作 进退场按钮
operateBtn() {
this.operateType = !this.operateType;
},
//进场 退场操作
editPersonState() {
},
//显示列表
showInfoList(type) {
switch (type) {
case 1:
if (this.certificateList.length == 0) {
this.showCertificateList = false;
} else {
this.showCertificateList = !this.showCertificateList;
}
break;
case 2:
if (this.workExperienceList.length == 0) {
this.showWorkExperienceList = false;
} else {
this.showWorkExperienceList = !this.showWorkExperienceList;
}
break;
case 3:
if (this.rewardList.length == 0) {
this.showRewardList = false;
} else {
this.showRewardList = !this.showRewardList;
}
break;
case 4:
if (this.badList.length == 0) {
this.showBadList = false;
} else {
this.showBadList = !this.showBadList;
}
break;
case 5:
if (this.reduceScoreList.length == 0) {
this.showReduceScoreList = false;
} else {
this.showReduceScoreList = !this.showReduceScoreList;
}
break;
case 6:
uni.navigateTo({
url: "./addAttendanceManage?item=" + encodeURIComponent(JSON.stringify(this
.originWorkerInfo))
});
break;
case 7:
if (this.positionRecorderList.length == 0) {
this.showPositionRecorderList = false;
} else {
this.showPositionRecorderList = !this.showPositionRecorderList;
}
break;
case 8:
if (this.welderSkillExamList.length == 0) {
this.showWelderSkillExamList = false;
} else {
this.showWelderSkillExamList = !this.showWelderSkillExamList;
}
break;
}
},
//预览图片
previewImage(url, type) {
let fileList = [];
if (type == 1 || type == 2) {
fileList = [this.url_config + 'image/' + url]
}
uni.previewImage({
current: 0,
urls: fileList
})
},
//查看信息详情
showItemDetails(type) {
// type == 1.合同; 2.体检; 3.保险; 4安全教育; 5.二维码 ; 6.补卡
let moduleInfo = null;
if (type == 1) {
moduleInfo = this.contractList;
} else if (type == 2) {
moduleInfo = this.physicalsList;
} else if (type == 3) {
moduleInfo = this.insuranceList;
} else if (type == 4) {
// moduleInfo = this.safeEducationList;
moduleInfo = [];
} else if (type == 5) {
// moduleInfo = this.safeEducationList;
} else if (type == 6) {
uni.navigateTo({
url: "./addAttendance?item=" + encodeURIComponent(JSON.stringify(this.originWorkerInfo))
});
return;
};
uni.setStorageSync('moduleInfo', moduleInfo)
uni.navigateTo({
url: "./detailsMod?type=" + type + "&workerId=" + this.workerId + "&idCard=" + this.idCard
})
},
// 获取配置详情
getDetail() {
let that = this;
this.sendRequest({
url: 'xmgl/projectConfig/list',
method: 'get',
data: {
projectSn: JSON.parse(uni.getStorageSync('projectDetail')).projectSn,
},
success: res => {
if (res.code == 200) {
console.log(55555, res.result.records[0]);
that.projectConfigDetail = {
...res.result.records[0]
};
if (that.projectConfigDetail.isEnableDeduct == 0) {
that.setCodeColor(-100);
}
}
}
})
}
}
}
</script>
<style scoped lang="scss">
.download1{
color: #1684fc;
cursor: pointer;
}
.kqbtn {
width: 100%;
height: 88rpx;
background-color: #2A8BF2;
color: white;
font-size: 32rpx;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
bottom: 0;
}
.flex {
display: flex;
align-items: center;
}
.flex2 {
display: flex;
align-items: center;
justify-content: space-between;
}
.flex3 {
display: flex;
}
.personDetail_content {
padding: 30rpx 30rpx 100rpx;
box-sizing: border-box;
width: 100%;
}
.personDetail_content .title_wrap {
width: 100%;
box-shadow: 0 4px 26rpx 0 rgba(212, 220, 236, 0.67);
box-sizing: border-box;
padding: 40rpx 28rpx 20rpx;
border-radius: 16rpx;
position: relative;
}
.title_wrap {
.exit_status {
position: absolute;
top: 15rpx;
right: 20rpx;
z-index: 10;
padding: 8rpx 24rpx;
font-size: 22rpx;
background: red;
color: #fff;
line-height: 28rpx;
border-radius: 6rpx;
}
}
.header_bg {
position: absolute;
top: 0;
right: 0;
z-index: 1;
width: 568rpx;
height: 90rpx;
}
.photograph {
width: 116rpx;
height: 150rpx;
z-index: 111;
margin-right: 16rpx;
}
.more {
width: 47rpx;
height: 37rpx;
z-index: 2222;
}
.more:active {
background-color: #999;
}
.user_info {
margin-left: 4rpx;
width: 50%;
}
.user_info .name {
font-size: 34rpx;
line-height: 48rpx;
font-weight: 500;
color: #488DEC;
}
.user_info .code {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #2A2B5B;
line-height: 37rpx;
margin: 10rpx 0;
opacity: 0.8;
}
.user_info .nation {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #2A2B5B;
line-height: 37rpx;
opacity: 0.8;
margin-bottom: 4px;
}
.projectName {
font-size: 30rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 700;
color: #2A2B5B;
line-height: 42rpx;
margin-top: 30rpx;
}
.details-content {
display: flex;
align-items: center;
justify-content: space-between;
.left-content {
flex: 1;
}
}
.project_info {
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #2A2B5B;
line-height: 52rpx;
}
.project_info .name {
color: #372D66;
opacity: 0.6;
}
.item_wrap {
width: 100%;
margin: 20rpx 0;
box-shadow: 0 4px 26rpx 0 rgba(212, 220, 236, 0.67);
padding: 20rpx 0 20rpx 28rpx;
box-sizing: border-box;
border-radius: 16rpx;
flex-wrap: wrap;
}
.item_wrap .item {
width: 33%;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #372D66;
line-height: 84rpx;
position: relative;
}
.item_wrap .item .state1 {
position: absolute;
top: 0;
left: 58px;
padding: 3px 6px;
font-size: 20rpx;
background: #4181FE;
color: #fff;
line-height: 28rpx;
border-radius: 6rpx;
}
.item_wrap .item .state2 {
position: absolute;
top: 0;
left: 58px;
padding: 3px 6px;
font-size: 20rpx;
background: red;
color: #fff;
line-height: 28rpx;
border-radius: 6rpx;
}
.margin_r_5 {
margin-right: 10rpx;
}
.log_wrap {
width: 100%;
margin: 20rpx 0;
box-shadow: 0 4px 26rpx 0 rgba(212, 220, 236, 0.67);
padding: 24rpx 28rpx;
box-sizing: border-box;
border-radius: 16rpx;
}
.log_wrap .title {
font-size: 30rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 700;
color: #2A2B5B;
line-height: 42rpx;
}
.log_wrap .log_content {
margin-top: 16rpx;
border-top: 1px solid #C8C7CC;
box-sizing: border-box;
padding-top: 16rpx;
}
.log_wrap .log_content_item {
background-color: #f1f7fe;
border-radius: 4rpx;
border: 1px dashed #888888;
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #2A2B5B;
line-height: 40rpx;
box-sizing: border-box;
padding: 20rpx 28rpx;
margin-bottom: 16rpx;
}
.title_dialog {
position: absolute;
top: 40rpx;
right: 46px;
font-size: 24rpx;
line-height: 48rpx;
background-color: #fff;
width: 65px;
text-align: center;
z-index: 999;
border: 1px solid #999;
padding: 3px 16rpx;
border-radius: 4rpx;
}
</style>