| | |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-row class="title-center"> |
| | | <el-col :span="10"> |
| | | <el-col :span="5"> |
| | | <el-radio-group v-model="listQuery.type" @change="typeChange"> |
| | | <el-radio-button label="0">未上报</el-radio-button> |
| | | <el-radio-button label="1">已上报</el-radio-button> |
| | |
| | | </el-radio-group> |
| | | </el-col> |
| | | <div v-if="listQuery.type==0"> |
| | | <el-col :span="10"> |
| | | <el-row> |
| | | <el-col :span="7" :offset="7" style="text-align: right;"> |
| | | <el-col :span="15"> |
| | | <el-col :span="4" :offset="offset" style="text-align: right;"> |
| | | <span style="line-height: 36px; font-size: 14px; color: #606266;margin-right:10px;font-weight: bold;">请选择上报方式</span> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-select v-model="listQuery.form.check_main_branch" placeholder="请选择" @change="changeUpType"> |
| | | <el-col :span="4"> |
| | | <el-select v-model="upType" placeholder="请选择" @change="changeUpType"> |
| | | <el-option v-for="item in upTypeList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.Conference_TimeStart" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> |
| | | <div v-if="upType == 1"> |
| | | <el-col :span="5" :offset="1"> |
| | | <el-date-picker type="date" placeholder="选择日期" v-model="upTimeStart" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> |
| | | </el-col> |
| | | <el-col style="text-align: center" :span="2">至</el-col> |
| | | <el-col :span="6"> |
| | | <el-date-picker type="date" placeholder="选择日期" v-model="listQuery.form.Conference_TimeEnd" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> |
| | | <el-col style="text-align: center" :span="1"> |
| | | <span style="line-height: 36px; font-size: 14px; color: #606266;font-weight: bold;">至</span> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-button type="primary" class="btns" size="small">上报</el-button> |
| | | <el-col :span="5"> |
| | | <el-date-picker type="date" placeholder="选择日期" v-model="upTimeEnd" style="width: 100%" value-format="yyyy-MM-dd"></el-date-picker> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <el-col :span="2" style="text-align: right"> |
| | | <el-button type="primary" class="btns" size="small" @click="putBatch">上报</el-button> |
| | | </el-col> |
| | | </el-col> |
| | | <el-col :span="4" style="text-align: right"> |
| | | <el-button class="btns" type="primary" size="small" icon="el-icon-plus">添加</el-button> |
| | | <el-button class="btns" type="primary" size="small" icon="el-icon-close" @click="sendBath()">批量删除</el-button> |
| | | <el-button class="btns" type="primary" size="small" icon="el-icon-plus" @click="addMeeting">添加</el-button> |
| | | <el-button class="btns" type="primary" size="small" icon="el-icon-close" @click="deleteBatch()">批量删除</el-button> |
| | | </el-col> |
| | | </div> |
| | | <div v-if="listQuery.type==1"> |
| | | <el-col :span="14" style="text-align: right"> |
| | | <el-button |
| | | class="btns" |
| | | type="primary" |
| | | size="small" |
| | | >撤销</el-button |
| | | > |
| | | <el-col :span="18" style="text-align: right"> |
| | | <el-button class="btns" type="primary" size="small" @click="revokeBatch">撤销</el-button> |
| | | </el-col> |
| | | </div> |
| | | </el-row> |
| | |
| | | <el-table-column prop="meeting_content" label="会议摘要" align="center"></el-table-column> |
| | | <el-table-column prop="realFileName" label="会议纪要" align="center"> |
| | | <template slot-scope="scope" > |
| | | <el-upload |
| | | class="upload-demo" |
| | | ref="upload" |
| | | v-if="listQuery.type==0" |
| | | :http-request="uploadSectionFile" |
| | | :on-preview="handlePreview" |
| | | :on-remove="handleRemove" |
| | | :file-list="fileList" |
| | | :before-upload="beforeUpload" |
| | | :auto-upload="true"> |
| | | <el-button slot="trigger" size="small" type="primary" class="btns">上传附件</el-button> |
| | | </el-upload> |
| | | <div v-else |
| | | v-for="item in scope.row.realFileName"> |
| | | |
| | | <div v-for="item in scope.row.realFileName"> |
| | | <el-link type="primary" @click="downloadFile(subFile(item))"> |
| | | {{subFile(item)}} |
| | | </el-link> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="date" v-if="listQuery.type==0" label="基本操作" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button @click="updateClick(scope.row)" type="text" size="small">编辑</el-button> |
| | | <el-button @click="updateClick(scope.row)" type="text" size="small">保存</el-button> |
| | | <el-button @click="deleteClick(scope.row)" type="text" size="small">删除</el-button> |
| | | <el-button @click="editMeeting(scope.row)" type="text" size="small">编辑</el-button> |
| | | <!-- <el-button @click="updateClick(scope.row)" type="text" size="small">保存</el-button>--> |
| | | <el-button @click="deleteMeeting(scope.row)" type="text" size="small">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | > |
| | | </el-pagination> |
| | | </div> |
| | | |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="dialogVisible" |
| | | :close-on-click-modal="false" |
| | | width="40%"> |
| | | <el-form ref="form" :rules="meetingRules" :model="meetingForm" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="9"> |
| | | <el-form-item label="召开时间" prop="CONFERENCE_TIME"> |
| | | <el-date-picker type="date" placeholder="选择日期" |
| | | v-model="meetingForm.CONFERENCE_TIME" |
| | | style="width: 100%" value-format="yyyy-MM-dd" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9" :offset="4"> |
| | | <el-form-item label="会议专业" prop="CONFERENCE_PROFESSIONAL"> |
| | | <el-select v-model="meetingForm.CONFERENCE_PROFESSIONAL" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in YHLXList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="9"> |
| | | <el-form-item label="地点" prop="ADDRESS"> |
| | | <el-input v-model="meetingForm.ADDRESS" rows="3" type="textarea" class="multiline"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9" :offset="4"> |
| | | <el-form-item label="主持人" prop="HOST"> |
| | | <el-input v-model="meetingForm.HOST" rows="3" type="textarea" class="multiline"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="22"> |
| | | <el-form-item label="会议摘要" prop="meeting_content"> |
| | | <el-input v-model="meetingForm.meeting_content" rows="3" type="textarea" class="multiline"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="22" > |
| | | <el-form-item label="会议纪要" prop="realFileName"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :http-request="uploadSectionFile" |
| | | :on-preview="handlePreview" |
| | | :on-remove="handleRemove" |
| | | :file-list="fileList" |
| | | :before-upload="beforeUpload" |
| | | :auto-upload="true"> |
| | | <el-button slot="trigger" size="small" type="primary" class="btns">上传附件</el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="22"> |
| | | <el-form-item style="text-align: center"> |
| | | <el-button type="primary" class="btns" @click="submitFrom('form')"> |
| | | 保存 |
| | | </el-button> |
| | | <el-button @click="dialogVisible=false">关闭</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-dialog> |
| | | |
| | | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import {getPageList, dowloand_do} from "@/api/sgyhpczl/troubleshooting"; |
| | | import {getPageList, dowloand_do, addOrEdit, del, revoke, put} from "@/api/sgyhpczl/troubleshooting"; |
| | | import {uploadFile} from "@/api/sgyhpczl/hiddenDangerRectification"; |
| | | import {deepClone} from '@/utils' |
| | | |
| | | import { |
| | | initYHLX, |
| | |
| | | CONFERENCE_PROFESSIONAL: '0' |
| | | }, |
| | | }, |
| | | table1: true, |
| | | table2: false, |
| | | |
| | | form: {}, |
| | | currentPage: 1, |
| | | pageSize: 10, |
| | | recordTotal: 0, |
| | |
| | | tableData: [], |
| | | selectedList: [], |
| | | listLoading: false, |
| | | // fileList:[{name:'aa.doc',url:'sssss.doc'}], |
| | | fileList:[], |
| | | upTypeList:[{label:"按勾选上报",value:0},{label:"按时间上报",value:1}], |
| | | upTimeShow: false, |
| | | upType:0, |
| | | upTimeStart:'', |
| | | upTimeEnd:'', |
| | | offset: 14, |
| | | |
| | | title:'', |
| | | dialogVisible:false, |
| | | meetingForm:{}, |
| | | meetingRules:{ |
| | | CONFERENCE_TIME: [{ required: true, message: '不能为空', trigger: 'blur' },], |
| | | ADDRESS: [{ required: true, message: '不能为空', trigger: 'blur' },], |
| | | HOST: [{ required: true, message: '不能为空', trigger: 'blur' },], |
| | | meeting_content: [{ required: true, message: '不能为空', trigger: 'blur' },], |
| | | CONFERENCE_PROFESSIONAL: [{ required: true, message: '不能为空', trigger: 'blur' },], |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | |
| | | this.initYHLX(); |
| | | }, |
| | | methods: { |
| | | sendBath() { |
| | | this.$router.push({ |
| | | path: "/existN", |
| | | }); |
| | | }, |
| | | handleClick(data, val) { |
| | | if (val == "存在") { |
| | | this.$router.push({ |
| | | path: "/exist", |
| | | }); |
| | | } |
| | | }, |
| | | handoff(index) { |
| | | if (index == 1) { |
| | | this.table1 = false; |
| | | this.table2 = true; |
| | | this.listQuery.type = 2; |
| | | console.log(this.listQuery.type); |
| | | this.getPageList(); |
| | | } else { |
| | | this.table1 = true; |
| | | this.table2 = false; |
| | | } |
| | | }, |
| | | initYHLX(){ |
| | | initYHLX().then(res=>{ |
| | | if (res.data.ok==1){ |
| | |
| | | }) |
| | | }, |
| | | changeUpType(val){ |
| | | this.upType = val; |
| | | if (val == 1){ |
| | | this.upTimeShow = true |
| | | this.offset = 2; |
| | | }else { |
| | | this.offset = 14; |
| | | } |
| | | }, |
| | | checkTime() { |
| | | if ( |
| | | this.listQuery.form.check_dateStart != null && |
| | | this.listQuery.form.check_dateStart != "" |
| | | ) { |
| | | if ( |
| | | this.listQuery.form.check_dateEnd != null && |
| | | this.listQuery.form.check_dateEnd != "" |
| | | ) { |
| | | if(this.listQuery.form.Conference_TimeStart!=null && this.listQuery.form.Conference_TimeStart!=''){ |
| | | if(this.listQuery.form.Conference_TimeEnd!=null && this.listQuery.form.Conference_TimeEnd!=''){ |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "请选择检查结束时间", |
| | | duration: 3000, |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | if ( |
| | | this.listQuery.form.check_dateEnd != null && |
| | | this.listQuery.form.check_dateEnd != "" |
| | | ) { |
| | | if ( |
| | | this.listQuery.form.check_dateStart != null && |
| | | this.listQuery.form.check_dateStart != "" |
| | | ) { |
| | | } else { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "请选择检查开始时间", |
| | | duration: 3000, |
| | | }); |
| | | return; |
| | | this.$message({type:'error', message:"请选择检查结束时间", duration:3000}) |
| | | return |
| | | } |
| | | } |
| | | }, |
| | |
| | | }, |
| | | uploadSectionFile(param) { |
| | | let form = new FormData(); |
| | | var that = this; |
| | | form.append('file', param.file); |
| | | //隐患延期申请附件 |
| | | form.append('type', "0"); |
| | | form.append('type', "1"); |
| | | uploadFile(form).then(res => { |
| | | var data = res.data; |
| | | if (data.ok) { |
| | |
| | | if (!fileName.endsWith("a62b")) { |
| | | fileName = fileName + param.file.realFileName; |
| | | } |
| | | that.ruleForm.realFileName = that.ruleForm.realFileName + "," + fileName; |
| | | this.fileList.push({name:fileName,url:fileName}) |
| | | } |
| | | }).error(res => { |
| | | this.$message({ |
| | |
| | | fileName: path, |
| | | }; |
| | | dowloand_do(params).then((res) => { |
| | | if (res.data.ok == 1) { |
| | | this.$notify({ |
| | | title: "成功", |
| | | message: res.data, |
| | | type: "success", |
| | | duration: 2000, |
| | | }); |
| | | } else { |
| | | if(res.data.type=='text/json'){ |
| | | const reader = new FileReader(); //创建一个FileReader实例 |
| | | reader.readAsText(res.data, 'utf-8'); //读取文件,结果用字符串形式表示 |
| | | //读取完成后,**获取reader.result** |
| | | reader.onload = e => { |
| | | this.$message({ |
| | | type: "error", |
| | | message: res.data.msg, |
| | | message: JSON.parse(reader.result).msg, |
| | | duration: 3000, |
| | | }); |
| | | } |
| | | } else { |
| | | let blob = new Blob([res.data], {type: 'application/octet-stream'}) |
| | | console.log(blob) |
| | | // 创建下载的链接 |
| | | let blobUrl = window.URL.createObjectURL(blob) |
| | | let downloadElement = document.createElement('a') |
| | | downloadElement.href = blobUrl |
| | | //下载后文件名 |
| | | downloadElement.download = path |
| | | document.body.appendChild(downloadElement) |
| | | //点击下载 |
| | | downloadElement.click() |
| | | //下载完成移除元素 |
| | | document.body.removeChild(downloadElement) |
| | | // 释放掉blob对象 |
| | | window.URL.revokeObjectURL(blobUrl) |
| | | } |
| | | }); |
| | | }, |
| | | subFile(fileName){ |
| | | return fileName.substring(fileName.indexOf("fileName=")+9) |
| | | }, |
| | | //删除上传组件文件 |
| | | handleRemove(file, fileList) { |
| | | console.log(file, fileList) |
| | | this.fileList = fileList; |
| | | }, |
| | | //点击上传组件-文件列表 |
| | | handlePreview(file) { |
| | | console.log(file) |
| | | this.downloadFile(file.url) |
| | | }, |
| | | beforeUpload(file) { |
| | | var FileExt = file.name.replace(/.+\./, ""); |
| | | if (['jpg', 'png', 'bmp', 'gif', 'jpeg'].indexOf(FileExt.toLowerCase()) === -1) { |
| | | if (['doc', 'docx', 'pdf', 'ppt', 'pptx','xls','xlsx','rar','zip'].indexOf(FileExt.toLowerCase()) === -1) { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '请上传后缀名为jpg、png、bmp、gif、jpeg的图片!' |
| | | message: '请上传正确格式的文件!(.doc,.docx,.pdf,.ppt,.pptx,.xls,.xlsx,.rar,.zip)' |
| | | }); |
| | | return false; |
| | | } |
| | | }, |
| | | editMeeting(row, index) { |
| | | this.meetingForm = deepClone(row); |
| | | this.rowIndex = index; |
| | | this.dialogVisible = true; |
| | | this.title = '编辑'; |
| | | this.fileList = []; |
| | | const arr = this.meetingForm.realFileName; |
| | | for (let i = 0; i < arr.length; i++) { |
| | | this.fileList.push({name:this.subFile(arr[i]),url:this.subFile(arr[i])}) |
| | | } |
| | | }, |
| | | addMeeting(){ |
| | | this.fileList = []; |
| | | this.meetingForm={} |
| | | this.title="新增" |
| | | this.dialogVisible=true |
| | | }, |
| | | //提交表单 |
| | | submitFrom(formName){ |
| | | let fileStr = ''; |
| | | if (this.fileList.length != 0){ |
| | | this.fileList.forEach((item,index,arr)=>{ |
| | | if (item.url.endsWith("a62b")) { |
| | | fileStr = fileStr + item.url; |
| | | }else { |
| | | fileStr = fileStr + item.url + "a62b"; |
| | | } |
| | | }) |
| | | } |
| | | this.meetingForm.realFileName = fileStr; |
| | | console.log(this.meetingForm) |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | |
| | | addOrEdit(this.meetingForm).then(res=>{ |
| | | if (res.data.ok==1) { |
| | | this.dialogVisible=false |
| | | this.$message({type:'success', message:res.data.msg, duration:3000}) |
| | | this.getPageList() |
| | | }else{ |
| | | this.$message({type:'error', message:res.data.msg, duration:3000}) |
| | | } |
| | | }) |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | deleteBatch() { |
| | | if (this.selectedList == null || this.selectedList.length == 0) { |
| | | this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) |
| | | return |
| | | } |
| | | var ids = this.selectedList.map((obj) => { |
| | | return obj.id |
| | | }).join(",") |
| | | this.$confirm('确认删除吗', '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | del(ids).then(() => { |
| | | this.getPageList() |
| | | this.$notify({ |
| | | title: "成功", |
| | | message: "删除成功", |
| | | type: "success", |
| | | duration: 2000, |
| | | }); |
| | | }); |
| | | }) |
| | | .catch(error => { |
| | | }); |
| | | }, |
| | | deleteMeeting(row) { |
| | | this.$confirm('确认删除吗', '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | console.log(row.id) |
| | | del(row.id).then(() => { |
| | | this.getPageList() |
| | | this.$notify({ |
| | | title: "成功", |
| | | message: "删除成功", |
| | | type: "success", |
| | | duration: 2000, |
| | | }); |
| | | }); |
| | | }).catch(error => { |
| | | }); |
| | | }, |
| | | //撤销 |
| | | revokeBatch() { |
| | | if (this.selectedList == null || this.selectedList.length == 0) { |
| | | this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) |
| | | return |
| | | } |
| | | var ids = this.selectedList.map((obj) => { |
| | | return obj.id |
| | | }).join(",") |
| | | this.$confirm('确认撤销吗', '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | // revoke(ids).then(() => { |
| | | // this.getPageList() |
| | | // this.$notify({ |
| | | // title: "成功", |
| | | // message: "撤销成功", |
| | | // type: "success", |
| | | // duration: 2000, |
| | | // }); |
| | | // }); |
| | | }).catch(error => { |
| | | }); |
| | | }, |
| | | //上报 |
| | | putBatch() { |
| | | if (this.selectedList == null || this.selectedList.length == 0) { |
| | | this.$message({type: 'warning', message: '至少选中一条数据', duration: 3000}) |
| | | return |
| | | } |
| | | var ids = this.selectedList.map((obj) => { |
| | | return obj.id |
| | | }).join(",") |
| | | this.$confirm('确认上报吗', '提示', { |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | // put(ids).then(() => { |
| | | // this.getPageList() |
| | | // this.$notify({ |
| | | // title: "成功", |
| | | // message: "上报成功", |
| | | // type: "success", |
| | | // duration: 2000, |
| | | // }); |
| | | // }); |
| | | }).catch(error => { |
| | | }); |
| | | }, |
| | | |
| | | |
| | | //日期格式转换 |
| | | formatColumnDate(row, column) { |
| | | // 获取单元格数据 |