人员管理证书bug修复,添加pdf导入

This commit is contained in:
jjLv 2024-08-20 15:13:53 +08:00
parent 7737de4124
commit c1dd1318eb
10 changed files with 337 additions and 142 deletions

View File

@ -24,3 +24,16 @@ export const downloadFileByUrl = (url) => {
URL.revokeObjectURL(link.href)
document.body.removeChild(link)
}
// pdf、doc、docx等文件下载
export const downloadFileData = ({ fileName, fileUrl }) => {
const link = document.createElement('a')
link.setAttribute('download', '')
link.style.display = 'none'
link.href = fileUrl
link.download = fileName
document.body.appendChild(link)
link.click();
// URL.revokeObjectURL(link.href)
document.body.removeChild(link)
}

View File

@ -87,8 +87,8 @@
</template>
</el-table-column>
<el-table-column label="手环id" align="center" prop="shId" v-if="false" />
<el-table-column label="手环编码" align="center" prop="shCode" />
<el-table-column label="所属手环箱" align="center" prop="shboxName" >
<el-table-column label="手环编码" align="center" prop="shCode" sortable/>
<el-table-column label="所属手环箱" align="center" prop="shboxName" sortable>
<template slot-scope="scope">
<div v-if="scope.row.shboxName!=boxName" >
{{ scope.row.shboxName }}
@ -114,13 +114,13 @@
</div>
</template>
</el-table-column>
<el-table-column label="手环状态" align="center" prop="shStatus" >
<el-table-column label="手环状态" align="center" prop="shStatus" sortable>
<template slot-scope="scope">
<div v-if="scope.row.shStatus==0" style="color: green;">{{ stateList[Number(scope.row.shStatus)] }}</div>
<div v-if="scope.row.shStatus==1" style="color: red;">{{ stateList[Number(scope.row.shStatus)] }}</div>
</template>
</el-table-column>
<el-table-column label="使用人" align="center" prop="shPersonName" />
<el-table-column label="使用人" align="center" prop="shPersonName" sortable/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
<template slot-scope="scope">
<el-button
@ -314,13 +314,18 @@
</el-row>
<el-table v-loading="loadingTwo" :data="deviceAttributeList " width="600px" height = "600px" >
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryDeviceAttribute.pageNum - 1) * queryDeviceAttribute.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="设备id" align="center" prop="devId" v-if="false" />
<el-table-column label="设备属性名称" align="center" prop="dataName" />
<el-table-column label="设备采集值" align="center" prop="dataVal" />
<el-table-column label="设备值单位" align="center" prop="dataUnit" />
<el-table-column label="级联编码" align="center" prop="dataCode" />
<el-table-column label="数据类型" align="center" prop="dataType" />
<el-table-column label="数据采集时间" align="center" prop="dataTime" width="160px"/>
<el-table-column label="设备属性名称" align="center" prop="dataName" sortable/>
<el-table-column label="设备采集值" align="center" prop="dataVal" sortable/>
<el-table-column label="设备值单位" align="center" prop="dataUnit" sortable/>
<el-table-column label="级联编码" align="center" prop="dataCode" sortable/>
<el-table-column label="数据类型" align="center" prop="dataType" sortable/>
<el-table-column label="数据采集时间" align="center" prop="dataTime" width="160px" sortable/>
<el-table-column label="设备属性图片" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -518,9 +523,9 @@
</template>
</el-table-column>
<el-table-column label="手环箱id" align="center" prop="shboxId" v-if="false" />
<el-table-column label="手环箱名称" align="center" prop="shboxName" />
<el-table-column label="手环箱编码" align="center" prop="shboxCode" />
<el-table-column label="存放手环数量" align="center" prop="shboxBindNum" >
<el-table-column label="手环箱名称" align="center" prop="shboxName" sortable/>
<el-table-column label="手环箱编码" align="center" prop="shboxCode" sortable/>
<el-table-column label="存放手环数量" align="center" prop="shboxBindNum" sortable>
<template slot-scope="scope">
<div @click="openShall(scope.row)" style="color: #02a7f0; cursor: pointer">
<div>
@ -540,13 +545,13 @@
>查看</el-button>
</template>
</el-table-column>
<el-table-column label="手环箱状态" align="center" prop="shboxStatus" >
<el-table-column label="手环箱状态" align="center" prop="shboxStatus" sortable>
<template slot-scope="scope">
<div v-if="scope.row.shboxStatus==0" style="color: green;">{{ stateList[Number(scope.row.shboxStatus)] }}</div>
<div v-if="scope.row.shboxStatus==1" style="color: red;">{{ stateList[Number(scope.row.shboxStatus)] }}</div>
</template>
</el-table-column>
<el-table-column label="领用人" align="center" prop="lyName" />
<el-table-column label="领用人" align="center" prop="lyName" sortable/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button

View File

@ -83,13 +83,13 @@
</template>
</el-table-column>
<el-table-column label="设备id" align="center" prop="deviceId" v-if="false" />
<el-table-column label="设备类型" align="center" prop="deviceTypeName"/>
<el-table-column label="设备类型" align="center" prop="deviceTypeName" sortable/>
<!-- <template slot-scope="scope">
<div>{{ dict.type.sys_device_type[(scope.row.deviceType)].label }}</div>
</template>
</el-table-column> -->
<el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备编号" align="center" prop="deviceCode" />
<el-table-column label="设备编号" align="center" prop="deviceCode" sortable/>
<el-table-column label="二维码" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -164,7 +164,7 @@
<el-input v-model="form.deviceName" placeholder="请输入设备名称" maxlength="20"/>
</el-form-item>
<el-form-item label="设备下标" prop="deviceIndex">
<el-input v-model="form.deviceIndex" placeholder="请输入设备下标" />
<el-input v-model="form.deviceIndex" placeholder="请输入设备下标" maxlength="5"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -203,13 +203,18 @@
</el-row>
<el-table v-loading="loadingTwo" :data="deviceAttributeList " width="600px" height = "600px" >
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryDeviceAttribute.pageNum - 1) * queryDeviceAttribute.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="设备id" align="center" prop="id" v-if="false" />
<el-table-column label="设备属性名称" align="center" prop="dataName" />
<el-table-column label="设备采集值" align="center" prop="dataVal" />
<el-table-column label="设备值单位" align="center" prop="dataUnit" />
<el-table-column label="级联编码" align="center" prop="dataCode" />
<el-table-column label="数据类型" align="center" prop="dataType" />
<el-table-column label="数据采集时间" align="center" prop="dataTime" width="160px"/>
<el-table-column label="设备属性名称" align="center" prop="dataName" sortable/>
<el-table-column label="设备采集值" align="center" prop="dataVal" sortable/>
<el-table-column label="设备值单位" align="center" prop="dataUnit" sortable/>
<el-table-column label="级联编码" align="center" prop="dataCode" sortable/>
<el-table-column label="数据类型" align="center" prop="dataType" sortable/>
<el-table-column label="数据采集时间" align="center" prop="dataTime" width="160px"sortable/>
<el-table-column label="设备属性图片" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button

View File

@ -50,14 +50,14 @@
<el-table v-loading="loading" :data="projectList" ref="multipleTable" row-key="projectId" @selection-change="handleSelectionChange" @select="handlerSelect" @select-all="handlerSelectAll">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" width="80" type="index">
<el-table-column label="序号" align="center" width="80" type="index" sortable>
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="项目部名称" align="center" prop="projectDepartName" />
<el-table-column label="负责人" align="center" prop="projectHeadName" />
<el-table-column label="电话" align="center" prop="contactInformation" />
<el-table-column label="项目部名称" align="center" prop="projectDepartName" sortable/>
<el-table-column label="负责人" align="center" prop="projectHeadName" sortable/>
<el-table-column label="电话" align="center" prop="contactInformation" sortable/>
<el-table-column label="APP轮播图" align="center" prop="appnum">
<template slot-scope="scope">
<div @click="picturesPreview(scope.row)" style="color: #02a7f0; cursor: pointer">
@ -66,7 +66,7 @@
</template>
</el-table-column>
<!-- -->
<el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip='true'/>
<el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip='true' sortable/>
<el-table-column label="项目部Id" width="0" prop="projectId" v-if="showName" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">

View File

@ -94,14 +94,19 @@
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="sex" width="60">
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="姓名" align="center" prop="name" sortable/>
<el-table-column label="性别" align="center" prop="sex" width="80" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="身份证号" align="center" prop="idCard" width="200" />
<el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="身份证号" align="center" prop="idCard" width="200" sortable/>
<el-table-column label="电话" align="center" prop="phone" sortable/>
<el-table-column label="岗位" align="center" prop="post" />
<el-table-column label="是否推送人脸库" align="center" prop="post">
<template slot-scope="scope">
@ -120,7 +125,7 @@
</div>
</template>
</el-table-column>
<el-table-column label="证书" align="center">
<el-table-column label="证书" align="center" prop="certificateNum" sortable>
<template slot-scope="scope">
<div @click="openCertificate(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.certificateNum}}
@ -174,16 +179,33 @@
:file-list="highImgList"
:show-file-list="true"
:auto-upload="false"
:before-upload="beforeUpload"
list-type="picture-card"
accept=".png, .jpg, .jpeg"
accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
:on-change="handleChangeHighImgList"
:class="{ disabled: uploadDisabled }"
:on-preview="picturePreview"
:on-remove="handleRemoveHighImgList"
>
<i
class="el-icon-plus avatar-uploader-icon"
></i>
<!-- 文件格式下载图片格式预览 -->
<div slot="file" slot-scope="{file}">
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<img v-else class="el-upload-list__item-thumbnail" :src="urlTemp" alt="">
<span class="el-upload-list__item-actions">
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download" />
</span>
<span v-else class="el-upload-list__item-preview" @click="picturePreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="handleRemoveHighImgList(file)">
<i class="el-icon-delete" />
</span>
</span>
</div>
<i class="el-icon-plus avatar-uploader-icon" ></i>
</el-upload>
</el-form-item>
<el-form-item label="电工作业证">
@ -194,15 +216,31 @@
:show-file-list="true"
:auto-upload="false"
list-type="picture-card"
accept=".png, .jpg, .jpeg"
accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
:on-change="handleChangeElectricianImgList"
:class="{ disabled: uploadDisabled }"
:on-preview="picturePreview"
:on-remove="handleRemoveElectricianImgList"
>
<i
class="el-icon-plus avatar-uploader-icon"
></i>
<!-- 文件格式下载图片格式预览 -->
<div slot="file" slot-scope="{file}">
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<img v-else class="el-upload-list__item-thumbnail" :src="urlTemp" alt="">
<span class="el-upload-list__item-actions">
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download" />
</span>
<span v-else class="el-upload-list__item-preview" @click="picturePreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="handleRemoveElectricianImgList(file)">
<i class="el-icon-delete" />
</span>
</span>
</div>
<i class="el-icon-plus avatar-uploader-icon" ></i>
</el-upload>
</el-form-item>
<el-form-item label="其他作业证">
@ -213,15 +251,29 @@
:show-file-list="true"
:auto-upload="false"
list-type="picture-card"
accept=".png, .jpg, .jpeg"
accept=".png, .jpg, .jpeg, .pdf, .doc, .docx"
:on-change="handleChangeElseImgList"
:class="{ disabled: uploadDisabled }"
:on-preview="picturePreview"
:on-remove="handleRemoveElseImgList"
>
<i
class="el-icon-plus avatar-uploader-icon"
></i>
<!-- 文件格式下载图片格式预览 -->
<div slot="file" slot-scope="{file}">
<img v-if="isImage(file)" class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<img v-else class="el-upload-list__item-thumbnail" :src="urlTemp" alt="">
<span class="el-upload-list__item-actions">
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download" />
</span>
<span v-else class="el-upload-list__item-preview" @click="picturePreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="handleRemoveElseImgList(file)">
<i class="el-icon-delete" />
</span>
</span>
</div>
<i class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</el-form-item>
</el-form>
@ -232,7 +284,7 @@
</el-dialog>
<!-- 添加或修改人员对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body @close="cancel">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="人员姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入人员名称" maxlength="20"/>
@ -319,14 +371,14 @@
<!-- 图片查看弹窗 -->
<el-dialog :visible.sync="dialogVisible">
<img width="100%" height="650px" :src="dialogImageUrl" alt />
<img width="100%" height="650px" :src="dialogImageUrl" />
</el-dialog>
</div>
</template>
<script>
import { listPerson, addPerson, editPerson, getPersonInfo, delPerson, exportPerson, personFile,getCertificate,updateCertificate,pushFace} from "@/api/base/staff";
import { downloadFile } from '@/utils/download'
import { downloadFile,downloadFileData } from '@/utils/download'
import { getToken } from '@/utils/auth'
import uploadFile from '../../components/uploadFile.vue'
export default {
@ -448,6 +500,7 @@
};
},
computed: {
//1
uploadDisabled() {
return this.fileList.length > 0
@ -457,6 +510,61 @@
this.getList();
},
methods: {
// base64blob
base64ToBlob(code) {
let parts = code.split(";base64,");
let contentType = parts[0].split(":")[1];
let raw = window.atob(parts[1]);
let rawLength = raw.length;
let uInt8Array = new Uint8Array(rawLength);
for (let i = 0; i < rawLength; ++i) {
uInt8Array[i] = raw.charCodeAt(i);
}
return new Blob([uInt8Array], { type: contentType });
},
isImage(file){
this.urlTemp = require('@/assets/file.png');
if(this.updataIf(file)){
return false
}else{
return true
}
},
// ,
updataIf(e) {
if (e.fileName) {
if (e.fileName.split('.')[1] === 'png' || e.fileName.split('.')[1] === 'jpeg' || e.fileName.split('.')[1] === 'jpg') {
return false
} else {
return true
}
} else {
if (e.name.split('.')[1] === 'png' || e.name.split('.')[1] === 'jpeg' || e.name.split('.')[1] === 'jpg') {
return false
} else {
return true
}
}
},
handleDownload(file) {
console.log(file.url)
if(file.status === 'ready'){
downloadFile({ fileName: file.name, fileData: file.raw, fileType: 'application/vnd.ms-excel;charset=utf-8' })
}else if(file.status === 'success'){
downloadFileData({ fileName: file.name,fileUrl:file.url })
}
},
//-
picturePreview(file) {
this.dialogImageUrl = file.url;
if(file.name.split('.')[1] === 'doc'||file.name.split('.')[1] === 'docx'||file.name.split('.')[1] === 'pdf'){
const windowName = file.name;
window.open(file.url,windowName)
}else{
this.dialogVisible = true
}
},
//
fileMustUpload(rule, value, callback) {
if (this.form.fileName == '') {
@ -516,21 +624,75 @@
this.fileList = fileList;
},
handleChangeHighImgList(file, fileList) {
console.log(file)
// this.$refs["form"].clearValidate()
// this.certificateForm.fileName = file.name;
const fileListTemp = fileList.filter(item => {
return item.uid != file.uid
});
if(file.size > 1024 * 1024 * 10){
this.$message.warning('文件大小不能超过10Mb')
fileList = fileList.filter(item => {
return item.uid != file.uid
})
}
if(fileListTemp.some(item =>item.name === file.name)){
this.$message.warning('文件名重复')
fileList = fileList.filter(item => {
return item.uid != file.uid
})
}
fileList.forEach(file=>{
if(file.name.split('.')[1] === 'doc'||file.name.split('.')[1] === 'docx'||file.name.split('.')[1] === 'pdf'){
this.urlTemp = require('../../../assets/file.png');
}
}),
this.highImgList = fileList;
},
handleChangeElectricianImgList(file, fileList) {
console.log(file)
// this.$refs["form"].clearValidate()
// this.certificateForm.electricianImgList = file.name;
const fileListTemp = fileList.filter(item => {
return item.uid != file.uid
});
if(file.size > 1024 * 1024 * 10){
this.$message.warning('文件大小不能超过10Mb')
fileList = fileList.filter(item => {
return item.uid != file.uid
})
}
if(fileListTemp.some(item =>item.name === file.name)){
this.$message.warning('文件名重复')
fileList = fileList.filter(item => {
return item.uid != file.uid
})
}
fileList.forEach(file=>{
if(file.name.split('.')[1] === 'doc'||file.name.split('.')[1] === 'docx'||file.name.split('.')[1] === 'pdf'){
this.urlTemp = require('../../../assets/file.png');
}
}),
this.electricianImgList = fileList;
},
handleChangeElseImgList(file, fileList) {
console.log(file)
// this.$refs["form"].clearValidate()
// this.certificateForm.elseImgList = file.name;
const fileListTemp = fileList.filter(item => {
return item.uid != file.uid
});
if(file.size > 1024 * 1024 * 10){
this.$message.warning('文件大小不能超过10Mb')
fileList = fileList.filter(item => {
return item.uid != file.uid
})
}
if(fileListTemp.some(item =>item.name === file.name)){
this.$message.warning('文件名重复')
fileList = fileList.filter(item => {
return item.uid != file.uid
})
}
fileList.forEach(file=>{
if(file.name.split('.')[1] === 'doc'||file.name.split('.')[1] === 'docx'||file.name.split('.')[1] === 'pdf'){
this.urlTemp = require('../../../assets/file.png');
}
}),
this.elseImgList = fileList;
},
//
@ -555,7 +717,6 @@
}
})
this.delHighFileIdList.push(this.highImgList[sum].fileId)
console.log(this.delHighFileIdList)
this.highImgList.splice(sum, 1)
},
handleRemoveElectricianImgList(file, fileList) {
@ -566,7 +727,6 @@
}
})
this.delElectFileIdList.push(this.electricianImgList[sum].fileId)
console.log(this.delElectFileIdList)
this.electricianImgList.splice(sum, 1)
},
handleRemoveElseImgList(file, fileList) {
@ -577,15 +737,8 @@
}
})
this.delElseFileIdList.push(this.elseImgList[sum].fileId)
console.log(this.delElseFileIdList)
this.elseImgList.splice(sum, 1)
},
//-
picturePreview(file) {
// console.log(file)
this.dialogImageUrl = file.url
this.dialogVisible = true
},
//-
openImg(url) {
this.dialogImageUrl = url
@ -606,10 +759,8 @@
})
//
this.form.fileName = response.data.fileId;
setTimeout(()=>{
this.open = true;
this.title = "修改人员";
},100)
});
},
@ -672,10 +823,11 @@
getHighImgListFileData() {
const highfile = []
this.highImgList.forEach(item => {
if (item?.hasOwnProperty('raw')) {
if (item?.hasOwnProperty('size')) {
highfile.push(item.raw)
}
})
console.log(highfile)
return { highfile }
},
@ -683,7 +835,7 @@
getElectricianImgListFileData() {
const electfile = []
this.electricianImgList.forEach(item => {
if (item?.hasOwnProperty('raw')) {
if (item?.hasOwnProperty('size')) {
electfile.push(item.raw)
}
})
@ -694,7 +846,7 @@
getElseImgListFileData() {
const elsefile = []
this.elseImgList.forEach(item => {
if (item?.hasOwnProperty('raw')) {
if (item?.hasOwnProperty('size')) {
elsefile.push(item.raw)
}
})
@ -770,36 +922,68 @@
this.highImgList = [];
this.electricianImgList = [];
this.elseImgList = [];
this.delHighFileIdList=[];
this.delElectFileIdList=[];
this.delElseFileIdList=[];
// this.showCertificate = true;
getCertificate(this.memberId).then(response => {
response.data.highImgList.forEach(item => {
this.highImgList.push({
if(item.fileType==0)
{
this.highImgList.push({
fileId: item.filePath,
raw:item.bast64Image,
url: item.bast64Image
url: URL.createObjectURL(this.base64ToBlob(item.bast64Image)),
name: item.fileName,
})
console.log(this.highImgList)
}else{
this.highImgList.push({
fileId: item.filePath,
raw:item.bast64Image,
url: item.bast64Image,
name: item.fileName,
})
}
});
response.data.electricianImgList.forEach(item => {
if(item.fileType==0)
{
this.electricianImgList.push({
fileId: item.filePath,
raw:item.bast64Image,
url: item.bast64Image
url: URL.createObjectURL(this.base64ToBlob(item.bast64Image)),
name: item.fileName
})
}else{
this.electricianImgList.push({
fileId: item.filePath,
raw:item.bast64Image,
url: item.bast64Image,
name: item.fileName
})
}
});
response.data.elseImgList.forEach(item => {
if(item.fileType==0)
{
this.elseImgList.push({
fileId: item.filePath,
raw:item.bast64Image,
url: item.bast64Image
url: URL.createObjectURL(this.base64ToBlob(item.bast64Image)),
name: item.fileName
})
}else{
this.elseImgList.push({
fileId: item.filePath,
raw:item.bast64Image,
url: item.bast64Image,
name: item.fileName
})
}
});
// console.log(this.highImgList)
// console.log(this.electricianImgList)
// console.log(this.elseImgList)
setTimeout(()=>{
this.showCertificate = true;
},100)
});
},
@ -813,20 +997,12 @@
},
//
submitCertificate(){
console.log(this.highImgList);
console.log(this.electricianImgList);
console.log(this.elseImgList);
this.$refs["certificateForm"].validate(valid => {
if (valid) {
const reqData = new FormData();
this.certificateForm.delHighFileIdList = this.delHighFileIdList;
console.log(this.delHighFileIdList);
this.certificateForm.delElectFileIdList = this.delElectFileIdList;
this.certificateForm.delElseFileIdList = this.delElseFileIdList;
// reqData.append('delHighFileIdList', JSON.stringify(this.delHighFileIdList));
// reqData.append('delElectFileIdList', JSON.stringify(this.delElectFileIdList));
// reqData.append('delElseFileIdList', JSON.stringify(this.delElseFileIdList));
this.delHighFileIdList.forEach(item => {
reqData.append('delHighFileIdList', item)
});
@ -837,7 +1013,6 @@
reqData.append('delElseFileIdList', item)
});
const { highfile } = this.getHighImgListFileData();
// console.log(highfile);
const { electfile } = this.getElectricianImgListFileData();
const { elsefile } = this.getElseImgListFileData();
reqData.append('id', this.memberId);
@ -863,9 +1038,6 @@
});
}
});
// this.highImgList = []
// this.electricianImgList = []
// this.elseImgList = []
this.showCertificate = false;
},

View File

@ -12,18 +12,18 @@
>
<!-- 文件格式下载图片格式预览 -->
<div slot="file" slot-scope="{file}">
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<span class="el-upload-list__item-actions">
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download" />
<img class="el-upload-list__item-thumbnail" :src="file.url" alt="">
<span class="el-upload-list__item-actions">
<span v-if="updataIf(file)" class="el-upload-list__item-delete" @click="handleDownload(file)">
<i class="el-icon-download" />
</span>
<span v-else class="el-upload-list__item-preview" @click="picturePreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="fileRemove(file)">
<i class="el-icon-delete" />
</span>
</span>
<span v-else class="el-upload-list__item-preview" @click="picturePreview(file)">
<i class="el-icon-zoom-in" />
</span>
<span class="el-upload-list__item-delete" @click="fileRemove(file)">
<i class="el-icon-delete" />
</span>
</span>
</div>
<i class="el-icon-plus avatar-uploader-icon"></i>

View File

@ -64,32 +64,32 @@
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="工程名称" align="center" prop="proName" />
<el-table-column label="项目部名称" align="center" prop="departName" />
<el-table-column label="施工班组" align="center" prop="teamName" />
<el-table-column label="班组负责人" align="center" prop="teamLeader" >
<el-table-column label="工程名称" align="center" prop="proName" sortable/>
<el-table-column label="项目部名称" align="center" prop="departName" sortable/>
<el-table-column label="施工班组" align="center" prop="teamName" sortable/>
<el-table-column label="班组负责人" align="center" prop="teamLeader" sortable>
<template slot-scope="scope">
<div>
<span style="color: green;">{{ scope.row.teamLeader }} \ </span><span style="color: #02a7f0;">{{ scope.row.teamPhone }}</span>
</div>
</template>
</el-table-column>
<el-table-column label="班组施工人数" align="center" prop="teamNum" >
<el-table-column label="班组施工人数" align="center" prop="teamNum" sortable>
<template slot-scope="scope">
<div @click="openTeam(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.teamNum}}
</div>
</template>
</el-table-column>
<el-table-column label="临时人数" align="center" prop="tempNum" >
<el-table-column label="临时人数" align="center" prop="tempNum" sortable>
<template slot-scope="scope">
<div @click="openTeamTemp(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.tempNum}}
</div>
</template>
</el-table-column>
<el-table-column label="施工时间" align="center" prop="lyTime" />
<el-table-column label="施工预警次数" align="center" prop="warnNum" >
<el-table-column label="施工时间" align="center" prop="lyTime" sortable/>
<el-table-column label="施工预警次数" align="center" prop="warnNum" sortable>
<template slot-scope="scope">
<div @click="openWarn(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.warnNum}}
@ -140,14 +140,14 @@
</template>
</el-table-column>
<el-table-column label="人员id" align="center" prop="id" v-if="false" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="sex" >
<el-table-column label="姓名" align="center" prop="name" sortable/>
<el-table-column label="性别" align="center" prop="sex" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="身份证号" align="center" prop="idCard" width="160px" />
<el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="身份证号" align="center" prop="idCard" width="160px" sortable/>
<el-table-column label="电话" align="center" prop="phone" sortable/>
<el-table-column label="安全帽编号" align="center" prop="aqmCode" />
<el-table-column label="马甲编号" align="center" prop="mjCode" />
<el-table-column label="人脸信息" align="center" class-name="small-padding fixed-width">
@ -207,14 +207,14 @@
</template>
</el-table-column>
<el-table-column label="人员id" align="center" prop="id" v-if="false" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="性别" align="center" prop="sex" >
<el-table-column label="姓名" align="center" prop="name" sortable/>
<el-table-column label="性别" align="center" prop="sex" sortable>
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex"/>
</template>
</el-table-column>
<el-table-column label="身份证号" align="center" prop="idCard" />
<el-table-column label="电话" align="center" prop="phone" />
<el-table-column label="身份证号" align="center" prop="idCard" sortable/>
<el-table-column label="电话" align="center" prop="phone" sortable/>
<el-table-column label="人脸信息" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
@ -246,10 +246,10 @@
<span>{{ (queryWarn.pageNum - 1) * queryWarn.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="预警设备" align="center" prop="devTypeName" />
<el-table-column label="设备名称" align="center" prop="devName" />
<el-table-column label="预警时间" align="center" prop="warnTime" />
<el-table-column label="预警内容" align="center" prop="warnContent" />
<el-table-column label="预警设备" align="center" prop="devTypeName" sortable/>
<el-table-column label="设备名称" align="center" prop="devName" sortable/>
<el-table-column label="预警时间" align="center" prop="warnTime" sortable/>
<el-table-column label="预警内容" align="center" prop="warnContent" sortable/>
</el-table>
<pagination

View File

@ -101,14 +101,14 @@
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="工程名称" align="center" prop="proName" />
<el-table-column label="项目部名称" align="center" prop="departName" />
<el-table-column label="领用班组" align="center" prop="teamName" />
<el-table-column label="工程名称" align="center" prop="proName" sortable/>
<el-table-column label="项目部名称" align="center" prop="departName" sortable/>
<el-table-column label="领用班组" align="center" prop="teamName" sortable/>
<el-table-column label="领用设备类型" align="center" prop="deviceTypeName">
</el-table-column>
<el-table-column label="设备名称" align="center" prop="devName" />
<el-table-column label="领用设备编码" align="center" prop="devCode" />
<el-table-column label="班组负责人" align="center" prop="teamLeader">
<el-table-column label="班组负责人" align="center" prop="teamLeader" sortable>
<template slot-scope="scope">
<div>
<span style="color: green;">{{ scope.row.teamLeader }} \ </span><span style="color: #02a7f0;">{{ scope.row.leaderPhone }}</span>
@ -116,14 +116,14 @@
</template>
</el-table-column>
<el-table-column label="领用时间" align="center" prop="lyTime" />
<el-table-column label="归还时间" align="center" prop="ghTime">
<el-table-column label="领用时间" align="center" prop="lyTime" sortable/>
<el-table-column label="归还时间" align="center" prop="ghTime" sortable>
<template slot-scope="scope">
<span v-if="!scope.row.ghTime" style="font-weight: bold;color: green;">在用</span>
<span v-else>{{ scope.row.ghTime }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip='true'/>
<el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip='true' sortable/>
</el-table>
<pagination

View File

@ -65,10 +65,10 @@
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="预警设备" align="center" prop="devTypeName" />
<el-table-column label="设备名称" align="center" prop="devName" />
<el-table-column label="预警时间" align="center" prop="warnTime" />
<el-table-column label="预警内容" align="center" prop="warnContent" :show-overflow-tooltip='true'/>
<el-table-column label="预警设备" align="center" prop="devTypeName" sortable/>
<el-table-column label="设备名称" align="center" prop="devName" sortable/>
<el-table-column label="预警时间" align="center" prop="warnTime" sortable/>
<el-table-column label="预警内容" align="center" prop="warnContent" :show-overflow-tooltip='true' sortable/>
</el-table>
<pagination

View File

@ -75,12 +75,12 @@
</template>
</el-table-column>
<el-table-column label="边带id" align="center" prop="sidebandId" v-if="false" />
<el-table-column label="边带名称" align="center" prop="sidebandName" />
<el-table-column label="边带编码" align="center" prop="sidebandCode" />
<el-table-column label="所属工程" align="center" prop="projectName" />
<el-table-column label="杆塔编号" align="center" prop="gtCode" />
<el-table-column label="绑定时间" align="center" prop="bindTime" />
<el-table-column label="绑定设备" align="center" prop="bindNum">
<el-table-column label="边带名称" align="center" prop="sidebandName" sortable/>
<el-table-column label="边带编码" align="center" prop="sidebandCode" sortable/>
<el-table-column label="所属工程" align="center" prop="projectName" sortable/>
<el-table-column label="杆塔编号" align="center" prop="gtCode" sortable/>
<el-table-column label="绑定时间" align="center" prop="bindTime" sortable/>
<el-table-column label="绑定设备" align="center" prop="bindNum" sortable>
<template slot-scope="scope">
<div @click="openGt(scope.row)" style="color: #02a7f0; cursor: pointer">
{{ scope.row.bindNum}}