zhgdyun/src/views/projectFront/towerCrane/devSupervision.vue
2022-06-08 14:51:11 +08:00

512 lines
19 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

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

<template>
<div class="devfiling">
<div class="search-wrap">
<!-- <el-select v-model="devSn" style="width: 156px;margin-right: 15px" size="small" placeholder="设备名称">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
<!-- <el-button type="primary" size="small" @click="selectSchemeRecord">查询</el-button> -->
<el-button type="primary" size="small" icon="el-icon-plus" @click="showDialog = true">新增</el-button>
</div>
<div class="devfilling-table-wrap">
<el-table
class="tables"
:data="tableData"
height="400"
style="width: 100%;">
<el-table-column prop="installTime" label="安装时间" align="center">
</el-table-column>
<el-table-column prop="filingState" label="备案状态">
<template slot-scope="scope">
{{scope.row.filingState == 1 ? "已办理":"未办理"}}
</template>
</el-table-column>
<el-table-column prop="remarks" label="无法办理备案说明" align="center">
</el-table-column>
<el-table-column prop="useRegisterType" label="是否办理使用登记">
<template slot-scope="scope">
{{scope.row.useRegisterType == 1 ? "是":"否"}}
</template>
</el-table-column>
<el-table-column width="200" label="操作">
<template slot-scope="scope">
<el-button
type="text"
size="mini"
class="primary-btn"
icon="el-icon-document"
@click="previewData(scope.row)"
>详细</el-button>
<el-button
type="text"
size="mini"
class="primary-btn"
icon="el-icon-edit-outline"
@click="editData(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
class="delete-btn"
icon="el-icon-delete"
@click="deleteData(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
class="pagerBox"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageNo"
:page-sizes="$store.state.PAGESIZRS"
:page-size="pageSize"
layout="total, sizes, prev, pager, next"
:total="total"
background
></el-pagination>
</div>
<formDialog v-if="showDialog" :title="dialogTitle" @closeDialog="closeDialog">
<div slot="content" class="dialog-content">
<vue-scroll style="width: 100%;height: 420px; padding-bottom: 30px;">
<el-form
ref="addForm"
class="dialog-form"
label-position="right"
label-width="140px"
:model="formData"
:rules="rules"
size="medium">
<el-form-item label="安装时间" prop="installTime" required>
<el-date-picker
value-format="yyyy-MM-dd"
:disabled="isDisabled"
:picker-options="pickerOptions"
v-model="formData.installTime"
type="date"
placeholder="选择日期时间"
style="width: 100%"
>
</el-date-picker>
</el-form-item>
<el-form-item label="是否办理使用登记" prop="useRegisterType" required>
<el-radio-group :disabled="isDisabled" v-model="formData.useRegisterType">
<el-radio :label="1">是</el-radio>
<el-radio :label="2">否</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="设备备案状态" prop="filingState" required>
<el-select v-model="formData.filingState" :disabled="isDisabled" style="width: 100%" size="small" placeholder="请选择策划记录">
<el-option
v-for="item in options2"
:key="item.id"
:label="item.statusName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="无法办理备案说明" prop="remarks">
<el-input type="textarea" :disabled="isDisabled" resize="none" :rows="6" v-model="formData.remarks"></el-input>
</el-form-item>
<el-form-item label="登记证书" prop="registerFile">
<el-upload
class="upload-demo"
v-if="!isDisabled"
:action="$store.state.UPLOADURL"
multiple
name="files"
:show-file-list="false"
:before-upload="handleBeforeUpload"
:on-success="(res)=>handleUploadSuccess(res)"
:file-list="formData.fileList">
<el-button size="small" type="primary" :class="{'dark-upImg': styleType == 2}"><i class="el-icon-picture-outline"></i></el-button>
<div slot="tip" class="el-upload__tip" :class="{'dark-tip': styleType == 2}">支持jpgpngjpeg格式</div>
</el-upload>
<div class="file-list">
<div class="file-item" v-for="(item,index) in formData.fileList" :key="index">
<el-image
v-if="isDisabled"
style="width: 100%; height: 100%"
:src="$store.state.FILEURL+item.url"
:preview-src-list="[$store.state.FILEURL+item.url]">
</el-image>
<img v-if="!isDisabled" :src="$store.state.FILEURL+item.url"/>
<i v-if="!isDisabled" class="el-icon-error" :class="{'dark-close': styleType == 2}" @click="removeImg(index)"></i>
</div>
</div>
</el-form-item>
</el-form>
</vue-scroll>
<div class="btn-box" v-if="!isDisabled">
<el-button class="cancle-btn cancleBtn" size="small" icon="el-icon-circle-close" @click="closeDialog">取消</el-button>
<el-button type="primary" icon="el-icon-circle-check" size="small" @click="submitForm">确定</el-button>
</div>
</div>
</formDialog>
</div>
</template>
<script>
import {
selectSuperviseFilingRecordApi,
selectByIdSuperviseFilingRecordApi,
editSuperviseFilingRecordApi,
addSuperviseFilingRecordApi,
deleteSuperviseFilingRecordApi,
} from "@/assets/js/api/towerCrane";
import formDialog from './../../projectLevel/workstation/compontents/formDialog.vue'
export default {
components: {
formDialog
},
props:['registerId','devType'],
data(){
return {
devSn: "",
options:[],
options2:[{
id: 1,
statusName: "已办理"
},{
id: 2,
statusName: "未办理"
}],
tableData: [],
projectSn: "",
pageNo: 1,
pageSize: 10,
total: 0,
pickerOptions: {
disabledDate(time) {
return time.getTime() < Date.now() - 8.64e7;
},
},
showDialog: false,
dialogTitle: "新增监督备案",
formData:{
filingState: 1,
installTime: "",
registerFile: "",
remarks: "",
useRegisterType: 1,
fileList:[]
},
rules: {
installTime: [{ type: 'string',required: true,message: "请选择安装时间",trigger: "blur" },
{ type: 'string',required: true,message: "请选择安装时间",trigger: "change" }]
},
isDisabled: false,
formType: 1, //1、新增 2、编辑
styleType: 1
}
},
created(){
this.projectSn = this.$store.state.projectSn;
this.userId = this.$store.state.userInfo.userId
this.selectSuperviseFilingRecord()
this.styleType = 2
console.log(this.registerId)
},
methods: {
handleBeforeUpload(file){
console.log(file.type)
if(file.type == "image/png" || file.type == "image/jpg" || file.type == "image/jpeg"){
return true;
} else {
return false;
}
},
handleUploadSuccess(res){
console.log(this.formData)
if(res.status = "SUCCESS"){
if(!this.formData.fileList){
this.formData.fileList = []
}
this.formData.fileList.push({
name: res.data[0].filename,
url: res.data[0].imageUrl
})
this.$forceUpdate()
}
},
removeImg(id){
this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// console.log(this.facilityForm.installImg)
this.formData.fileList.splice(id,1)
this.$forceUpdate()
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
selectSuperviseFilingRecord(){
let data = {
devType: this.devType,
projectSn: this.projectSn,
pageNo: this.pageNo,
pageSize: this.pageSize
}
console.log(data)
selectSuperviseFilingRecordApi(data).then(res=>{
console.log(res)
if(res.code == 200){
this.tableData = res.result.records
this.total = res.result.total
}
})
},
submitForm(){
this.$refs['addForm'].validate((valid) => {
console.log(valid)
if(valid){
let data = this.formData
data.projectSn = this.projectSn
data.registerId = this.registerId
if(data.fileList && data.fileList.length > 0){
data.registerFile = ""
let arr = []
data.fileList.forEach(item=>{
arr.push(item.url)
})
data.registerFile = arr.join(',')
}else{
this.$message.error("请上传登记证书!")
return;
}
console.log(data)
if(this.formType == 1){
addSuperviseFilingRecordApi(data).then(res=>{
console.log(res)
if(res.code == 200){
this.$message.success("添加成功")
this.closeDialog()
this.selectSuperviseFilingRecord()
}
})
} else if(this.formType == 2){
editSuperviseFilingRecordApi(data).then(res=>{
console.log(res)
if(res.code == 200){
this.$message.success("编辑成功")
this.closeDialog()
this.selectSuperviseFilingRecord()
}
})
}
}
})
},
resetForm(){
this.formData={
filingState: 1,
installTime: "",
registerFile: "",
remarks: "",
useRegisterType: 1,
fileList:[]
}
},
closeDialog(){
this.showDialog = false
this.isDisabled = false
this.formType = 1
this.dialogTitle = "新增监督备案"
this.resetForm()
},
previewData(val){
this.showDialog = true
this.isDisabled = true
this.dialogTitle = "监督备案详情"
selectByIdSuperviseFilingRecordApi({id: val.id}).then(res=>{
if(res.code == 200){
this.formData = res.result
if(this.formData.registerFile){
let arr = this.formData.registerFile.split(',')
this.formData.fileList = []
arr.forEach(item=>{
this.formData.fileList.push({url: item})
})
}
}
console.log(res)
})
console.log(val)
},
editData(val){
this.showDialog = true
console.log(val)
selectByIdSuperviseFilingRecordApi({id: val.id}).then(res=>{
if(res.code == 200){
this.formData = res.result
if(this.formData.registerFile){
let arr = this.formData.registerFile.split(',')
this.formData.fileList = []
arr.forEach(item=>{
this.formData.fileList.push({url: item})
})
}
}
console.log(res)
})
this.formType = 2
this.dialogTitle = "编辑监督备案"
},
deleteData(val){
this.$confirm('此操作将删除该条记录, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteSuperviseFilingRecordApi({id: val.id}).then(res=>{
console.log(res)
if(res.code == 200){
this.$message.success("删除成功!")
this.selectSuperviseFilingRecord()
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
handleSizeChange(val) {
this.pageSize = val;
this.selectSuperviseFilingRecord();
},
handleCurrentChange(val) {
this.pageNo = val;
this.selectSuperviseFilingRecord();
},
}
}
</script>
<style lang="less" scoped>
.devfiling{
width: 100%;
height: 100%;
.pagerBox{
margin-top: 20px;
}
.search-wrap{
margin-top: 10px;
margin-bottom: 10px;
margin-left: 12px;
}
.primary-btn{
color: #9297A2;
/deep/i{
color: #88E7F0;
}
}
.delete-btn{
color: #FE6565;
}
.dialog-content{
width: 678px;
padding: 40px 0 42px 0;
}
.dialog-form{
width: 60%;
margin: 0 auto;
margin-bottom: 60px;
/deep/.el-form-item{
margin-bottom: 16px;
}
}
.btn-box{
display: flex;
justify-content: center;
.cancle-btn{
margin-right: 80px;
}
}
.list-title{
/deep/.el-form-item__label{
text-align: left;
}
}
.form-list{
display: flex;
align-items: center;
padding-left: 20px;
margin-bottom: 20px;
.deelet-btn{
margin-left: 10px;
color: #FE6565;
cursor: pointer;
font-size: 20px;
}
.add-item{
color: #409EFF;
font-size: 14px;
margin-left: 10px;
cursor: pointer;
}
}
.tables{
min-height: auto;
}
.upload-demo{
width: 300px;
/deep/ .el-button--small{
padding: 0;
background: #eee;
border: 0;
color: #ccc;
width: 58px;
height: 40px;
font-size: 22px;
}
.dark-upImg{
background: #19263E;
}
/deep/.el-upload__tip{
margin: 0;
}
.dark-tip{
color: #fff;
}
}
.file-list{
display: flex;
align-items: center;
.file-item{
width: 58px;
height: 50px;
position: relative;
margin-right: 6px;
img{
width: 100%;
height: 100%;
}
i{
position: absolute;
right: -6px;
top: -6px;
cursor: pointer;
}
}
}
}
</style>