This commit is contained in:
zzyuan 2024-08-20 18:28:31 +08:00
commit 2b51fba992
11 changed files with 391 additions and 143 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
@ -1718,6 +1723,13 @@
/** 删除按钮操作 */
handleDelete(row) {
if (row.shPersonName!=null && row.shPersonName!='') {
this.$alert('存在领用人,无法删除', '提示', {
type: 'warning',
confirmButtonText: '确定',
});
return;
}
if(row.shboxName!=this.boxName){
this.$alert('请先解绑手环', '提示', {
type: 'warning',

View File

@ -1,8 +1,8 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item prop="deviceType">
<el-select v-model="queryParams.deviceType" placeholder="设备类型" clearable style="width: 100%;">
<el-form-item prop="deviceTypeName">
<el-select v-model="queryParams.deviceTypeName" placeholder="设备类型" clearable style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_device_type"
v-if = "dict.value != 'shx'"
@ -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
@ -146,8 +146,8 @@
<!-- 添加或修改设备对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px" >
<el-form-item label="设备类型" prop="devcieType">
<el-select v-model="form.deviceType" placeholder="请选择设备类型" clearable style="width: 100%;">
<el-form-item label="设备类型" prop="devcieType" >
<el-select v-if="flag == true" v-model="form.deviceTypeName" placeholder="请选择设备类型" clearable style="width: 100%;" disabled>
<el-option
v-for="dict in dict.type.sys_device_type"
v-if = "dict.value != 'shx'"
@ -156,6 +156,15 @@
:value="dict.value"
/>
</el-select>
<el-select v-else v-model="form.deviceTypeName" placeholder="请选择设备类型" clearable style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_device_type"
v-if = "dict.value != 'shx'"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="设备编码" prop="deviceCode">
<el-input v-model="form.deviceCode" placeholder="请输入设备编码" maxlength="20"/>
@ -164,7 +173,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 +212,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
@ -402,11 +416,13 @@
totalThree:0,
//
tableData: [],
queckName: "",
//
title: "",
delFileId: undefined,
//
open: false,
flag: false,
//
proList: [],
deviceAttributeList : [],
@ -691,6 +707,7 @@
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.flag = false;
this.open = true;
this.title = "添加设备";
},
@ -827,6 +844,8 @@
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.flag = true;
this.queckName = row.lyName;
const deviceId = row.deviceId
getDeviceInfo(deviceId).then(response => {
this.form = response.data;

View File

@ -904,6 +904,13 @@
const param = {
gtId:row.gtId
}
if(row.teamNum>0){
this.$alert('该杆塔下存在班组,无法删除', '提示', {
type: 'warning',
confirmButtonText: '确定',
});
return;
}
this.$modal.confirm('是否确认删除杆塔编号为"' + row.gtCode + '"的数据项?').then(function() {
return delGt(param);
}).then(() => {

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">
@ -452,6 +452,13 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const projectId = row.projectId || this.ids;
if(row.pronum>0){
this.$alert('该项目部存在工程,无法删除', '提示', {
type: 'warning',
confirmButtonText: '确定',
});
return;
}
if(row.appnum>0){
this.$alert('该项目部存在APP轮播图无法删除', '提示', {
type: 'warning',

View File

@ -126,7 +126,7 @@
</div>
</template>
</el-table-column>
<el-table-column label="证书" align="center" sortable>
<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}}
@ -175,21 +175,39 @@
<!-- 文件格式下载图片格式预览 -->
<el-form-item label="高处作业证">
<el-upload
class = "upload-demo"
action="#"
:limit="5"
:file-list="highImgList"
:show-file-list="true"
:auto-upload="false"
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>
<!-- <div slot="tip" class="el-upload__tip">只能上传jpg/png/jpeg/pdf/doc/docx文件且不超过10Mb</div> -->
</el-upload>
</el-form-item>
<el-form-item label="电工作业证">
@ -200,15 +218,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="其他作业证">
@ -219,15 +253,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>
@ -238,7 +286,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"/>
@ -325,14 +373,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 {
@ -455,6 +503,7 @@
};
},
computed: {
//1
uploadDisabled() {
return this.fileList.length > 0
@ -464,6 +513,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 == '') {
@ -523,21 +627,93 @@
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(file.name.length > 40){
this.$message.warning('文件名长度不能超过40个字符')
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(file.name.length > 40){
this.$message.warning('文件名长度不能超过40个字符')
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(file.name.length > 40){
this.$message.warning('文件名长度不能超过40个字符')
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;
},
//
@ -562,7 +738,6 @@
}
})
this.delHighFileIdList.push(this.highImgList[sum].fileId)
console.log(this.delHighFileIdList)
this.highImgList.splice(sum, 1)
},
handleRemoveElectricianImgList(file, fileList) {
@ -573,7 +748,6 @@
}
})
this.delElectFileIdList.push(this.electricianImgList[sum].fileId)
console.log(this.delElectFileIdList)
this.electricianImgList.splice(sum, 1)
},
handleRemoveElseImgList(file, fileList) {
@ -584,15 +758,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
@ -613,10 +780,8 @@
})
//
this.form.fileName = response.data.fileId;
setTimeout(()=>{
this.open = true;
this.title = "修改人员";
},100)
});
},
@ -685,10 +850,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 }
},
@ -696,7 +862,7 @@
getElectricianImgListFileData() {
const electfile = []
this.electricianImgList.forEach(item => {
if (item?.hasOwnProperty('raw')) {
if (item?.hasOwnProperty('size')) {
electfile.push(item.raw)
}
})
@ -707,7 +873,7 @@
getElseImgListFileData() {
const elsefile = []
this.elseImgList.forEach(item => {
if (item?.hasOwnProperty('raw')) {
if (item?.hasOwnProperty('size')) {
elsefile.push(item.raw)
}
})
@ -783,36 +949,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)
});
},
@ -826,20 +1024,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)
});
@ -850,7 +1040,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);
@ -876,9 +1065,6 @@
});
}
});
// this.highImgList = []
// this.electricianImgList = []
// this.elseImgList = []
this.showCertificate = false;
},
@ -898,4 +1084,5 @@
display: none;
}
}
</style>

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}}
@ -642,7 +642,10 @@
bindNum:row.bindNum,
}
if(row.bindNum>0){
this.$modal.msgWarning("该边带已绑定设备,无法删除");
this.$alert('该边带已绑定设备,无法删除', '提示', {
type: 'warning',
confirmButtonText: '确定',
});
return;
}
this.$modal.confirm('是否确认删除边带名称为"' + row.sidebandId + '"的数据项?').then(function() {