| | |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 100px; |
| | | top: 17px; |
| | | right: 40px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .fullscreen { |
| | |
| | | <el-col :span="12" style="padding-left: 20px;text-align: left;">报告编制</el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="search"> |
| | | <div class="search" style="position: relative;"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">报告编号:</div> |
| | | <div class="search_input"><el-input size="small" placeholder="请输入" clearable |
| | |
| | | <el-button size="small" @click="refresh()">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()">查 询</el-button> |
| | | </div> |
| | | <div class="btns"> |
| | | <el-button size="small" type="primary" @click="handleDowns" :loading="outLoading" style="margin-right: 16px;">批量下载</el-button> |
| | | <el-upload |
| | | class="upload-demo" |
| | | :action="action" |
| | | :headers="headers" |
| | | :show-file-list="false" |
| | | accept=".zip" |
| | | :limit="1" |
| | | :before-upload="beforeUpload" |
| | | :on-success="handleSuccess" |
| | | ref="upload" |
| | | :on-error="onError"> |
| | | <el-button size="small" type="primary" :loading="inLoading">批量上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </div> |
| | | <!-- <input id="input" type="file" accept=".doc,.docx"></input> --> |
| | | <div class="table"> |
| | | <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" :componentData="componentData" |
| | | <ValueTable ref="ValueTable" :url="$api.insReport.pageInsReport" |
| | | :isColumnWidth="true" |
| | | :componentData="componentData" |
| | | :key="upIndex" /> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import ValueTable from '../tool/value-table.vue' |
| | | import Word from '../tool/word.vue' |
| | | import onlyoffice from '../tool/onlyoffice.vue' |
| | | export default { |
| | | components: { |
| | | ValueTable, |
| | | Word, |
| | | onlyoffice |
| | | }, |
| | | data() { |
| | |
| | | } |
| | | }, |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | showSelect: true, |
| | | select: true, |
| | | selectMethod: 'handleChange', |
| | | do: [ |
| | | { |
| | | id: 'handleWeave', |
| | |
| | | }, |
| | | selectField: {}, |
| | | requiredAdd: [], |
| | | needSort: ['createTime', 'state', 'writeTime', 'isExamine', 'examineTime', 'ratifyTime'], |
| | | requiredUp: [] |
| | | }, |
| | | entityCopy: {}, |
| | |
| | | value: ``, |
| | | reason: '', |
| | | currentInfo: null, |
| | | option:null |
| | | option:null, |
| | | mutiList:[], |
| | | outLoading:false, |
| | | inLoading:false |
| | | } |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | 'token': sessionStorage.getItem('token') |
| | | } |
| | | }, |
| | | action() { |
| | | return this.javaApi + this.$api.insReport.upAll |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.entityCopy = this.HaveJson(this.componentData.entity) |
| | | this.getPower() |
| | |
| | | // } |
| | | }, |
| | | methods: { |
| | | refreshTable() { |
| | | this.$refs['ValueTable'].selectList() |
| | | handleChange(arr){ |
| | | this.mutiList = arr |
| | | }, |
| | | handleDowns(){ |
| | | if(this.mutiList.length==0){ |
| | | this.$message.error('请选择报告') |
| | | return |
| | | } |
| | | let str = this.mutiList.map(m=>m.id).join(',') |
| | | this.outLoading = true |
| | | this.$axios.get(this.$api.insReport.downAll+'?ids='+str).then(res => { |
| | | this.outLoading = false |
| | | this.$message.success('导出成功') |
| | | // const blob = new Blob([res],{ type: 'application/octet-stream' }); |
| | | // const url = URL.createObjectURL(blob); |
| | | // const link = document.createElement('a'); |
| | | // link.href = url; |
| | | // link.download = '报告.zip'; |
| | | // link.click(); |
| | | const link = document.createElement('a'); |
| | | link.href = this.javaApi + res.message; |
| | | link.target = '_blank'; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | }) |
| | | }, |
| | | beforeUpload(file){ |
| | | const isZip = file.type === 'application/zip' || file.name.endsWith('.zip'); |
| | | if (!isZip) { |
| | | this.$message.error('上传文件只能是 ZIP 格式!'); |
| | | } |
| | | if(isZip){ |
| | | this.inLoading = true; |
| | | } |
| | | return isZip; |
| | | }, |
| | | handleSuccess(response,){ |
| | | this.inLoading = false; |
| | | if (response.code == 200) { |
| | | this.$message.success('导入成功') |
| | | this.refreshTable() |
| | | }else{ |
| | | this.$message.error(response.message) |
| | | } |
| | | }, |
| | | onError(err, file, fileList,type) { |
| | | this.$message.error('上传失败') |
| | | this.$refs.upload.clearFiles() |
| | | }, |
| | | refreshTable(e) { |
| | | this.$refs['ValueTable'].selectList(e) |
| | | }, |
| | | refresh() { |
| | | this.componentData.entity = this.HaveJson(this.entityCopy) |
| | |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | }, |
| | | // 还原操作 |
| | | handleRestore(row) { |
| | | this.$axios.post(this.$api.insReport.upReportUrl, { |
| | | id: row.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('操作成功') |
| | | this.refreshTable() |
| | | this.refreshTable('page') |
| | | } |
| | | }) |
| | | }, |
| | |
| | | } |
| | | this.issuedVisible = true; |
| | | }, |
| | | // 审核通过 |
| | | subIssued() { |
| | | this.loadingIssued = true; |
| | | this.$axios.post(this.$api.insReport.examineReport, { |
| | |
| | | return |
| | | } |
| | | this.$message.success('提交成功') |
| | | this.refreshTable() |
| | | this.refreshTable('page') |
| | | this.currentInfo = null; |
| | | this.issuedVisible = false; |
| | | }).catch(e => { |
| | |
| | | } |
| | | this.approveVisible = true; |
| | | }, |
| | | // 批准通过 |
| | | subApprove() { |
| | | this.loadingApprove = true; |
| | | this.$axios.post(this.$api.insReport.ratifyReport, { |
| | |
| | | return |
| | | } |
| | | this.$message.success('已批准') |
| | | this.refreshTable() |
| | | this.refreshTable('page') |
| | | this.currentInfo = null; |
| | | this.approveVisible = false; |
| | | }) |
| | | }, |
| | | // 提交操作 |
| | | handleSubmit(row) { |
| | | this.$confirm('是否提交当前报告?', "提交", { |
| | | confirmButtonText: "提交", |
| | |
| | | return |
| | | } |
| | | this.$message.success('提交成功') |
| | | this.refreshTable() |
| | | this.refreshTable('page') |
| | | }).catch(e => { |
| | | this.$message.error('提交失败') |
| | | }) |
| | | }).catch(() => {}) |
| | | }, |
| | | // 审核不通过原因提交 |
| | | handleIssuedReason() { |
| | | if (!this.reason) { |
| | | return this.$message.error('请输入原因') |
| | |
| | | return |
| | | } |
| | | this.$message.success('操作成功') |
| | | this.refreshTable() |
| | | this.refreshTable('page') |
| | | this.currentInfo = null; |
| | | this.reason = ''; |
| | | this.issuedVisible = false; |
| | |
| | | this.loadingIssuedReason = false; |
| | | }) |
| | | }, |
| | | // 不批准原因提交 |
| | | handleApproveReason() { |
| | | if (!this.reason) { |
| | | return this.$message.error('请输入原因') |
| | |
| | | return |
| | | } |
| | | this.$message.success('操作成功') |
| | | this.refreshTable() |
| | | this.refreshTable('page') |
| | | this.currentInfo = null; |
| | | this.reason = ''; |
| | | this.issuedVisible = false; |