人员管理证书bug修复,添加pdf导入
This commit is contained in:
parent
7737de4124
commit
c1dd1318eb
|
|
@ -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)
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
// base64转blob
|
||||
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;
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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}}
|
||||
|
|
|
|||
Loading…
Reference in New Issue