|
@@ -3,155 +3,382 @@
|
|
|
* @Author: Rockery
|
|
|
* @Date: 2021-12-10 10:45:58
|
|
|
* @LastEditors: Rockery
|
|
|
- * @LastEditTime: 2021-12-10 17:19:33
|
|
|
+ * @LastEditTime: 2021-12-15 16:29:09
|
|
|
* @FilePath: \party_construct_web\src\views\PartyBuildingMgr\SituationDesc\SituationDescIndex.vue
|
|
|
* @Copyright: Copyright (c) 2016~2021 Rockery(1113269755@qq.com)
|
|
|
-->
|
|
|
|
|
|
<template>
|
|
|
- <div class="app-container situationdesc">
|
|
|
- <div class="situationdesc-main">
|
|
|
- <el-row :gutter="10">
|
|
|
- <el-col :span="24">
|
|
|
- <div class="situationdesc-main-title">
|
|
|
- <div>
|
|
|
- <img
|
|
|
- :src="require('@/assets/logo/home-main-title-logo.png')"
|
|
|
- @error="imgViewerOnerror"
|
|
|
- />
|
|
|
+ <div
|
|
|
+ class="app-container situationdesc"
|
|
|
+ :class="['ADD','VIEW'].includes(pageType) ? 'desc-page':''"
|
|
|
+ >
|
|
|
+ <template v-if="pageType === 'LIST'">
|
|
|
+ <div class="situationdesc-main">
|
|
|
+ <el-row :gutter="10">
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="situationdesc-main-title">
|
|
|
+ <div>
|
|
|
+ <img
|
|
|
+ :src="require('@/assets/logo/home-main-title-logo.png')"
|
|
|
+ @error="imgViewerOnerror"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div>情况说明管理</div>
|
|
|
</div>
|
|
|
- <div>情况说明管理</div>
|
|
|
+ </el-col>
|
|
|
+ <div v-loading="loading">
|
|
|
+ <el-col :span="24" class="mt20">
|
|
|
+ <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
|
|
|
+ <el-form-item prop="beginTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryParams.beginTime"
|
|
|
+ type="date"
|
|
|
+ size="small"
|
|
|
+ clearable
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ style="width: 100%;"
|
|
|
+ placeholder="请选择开始时间"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="endTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryParams.endTime"
|
|
|
+ type="date"
|
|
|
+ size="small"
|
|
|
+ clearable
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ style="width: 100%;"
|
|
|
+ placeholder="请选择结束时间"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.name"
|
|
|
+ placeholder="请输入情况说明人姓名"
|
|
|
+ clearable
|
|
|
+ size="small"
|
|
|
+ style="width: 100%;"
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['partybuildingmgr:situationdesc:query']"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-search"
|
|
|
+ @click="handleQueryClick"
|
|
|
+ >搜索</el-button>
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['partybuildingmgr:situationdesc:reset']"
|
|
|
+ icon="el-icon-refresh"
|
|
|
+ @click="resetQueryClick"
|
|
|
+ >重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item class="fr" style="margin-right: 0;">
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['partybuildingmgr:situationdesc:add']"
|
|
|
+ type="rocpartyprimarybtn"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ @click="handleAddClick"
|
|
|
+ >新增</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-table
|
|
|
+ :data="list"
|
|
|
+ stripe
|
|
|
+ border
|
|
|
+ :header-cell-style="{'text-align':'center'}"
|
|
|
+ header-row-class-name="situationdesc-table_header-row"
|
|
|
+ class="situationdesc-main-table"
|
|
|
+ style="width: 100%;"
|
|
|
+ >
|
|
|
+ <el-table-column
|
|
|
+ label="情况说明人姓名"
|
|
|
+ prop="name"
|
|
|
+ width="180"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="说明了以下流程节点问题"
|
|
|
+ prop="conditionPoint"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="情况说明时间"
|
|
|
+ align="center"
|
|
|
+ prop="conditionTime"
|
|
|
+ width="180"
|
|
|
+ :show-overflow-tooltip="true"
|
|
|
+ />
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ align="center"
|
|
|
+ fixed="right"
|
|
|
+ width="100"
|
|
|
+ class-name="small-padding fixed-width"
|
|
|
+ >
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ v-hasPermi="['partybuildingmgr:situationdesc:view']"
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-view"
|
|
|
+ style="color: #909399;"
|
|
|
+ @click="handleViewClick(scope.row)"
|
|
|
+ >详情</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <pagination
|
|
|
+ v-show="total>0"
|
|
|
+ :total="total"
|
|
|
+ :page.sync="queryParams.pageNum"
|
|
|
+ :limit.sync="queryParams.pageSize"
|
|
|
+ @pagination="initData"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
</div>
|
|
|
- </el-col>
|
|
|
- <div v-loading="loading">
|
|
|
- <el-col :span="24" class="mt20">
|
|
|
- <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
|
|
|
- <el-form-item prop="beginTime">
|
|
|
- <el-date-picker
|
|
|
- v-model="queryParams.beginTime"
|
|
|
- type="date"
|
|
|
- size="small"
|
|
|
- clearable
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
- style="width: 100%;"
|
|
|
- placeholder="请选择开始时间"
|
|
|
- ></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="endTime">
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="pageType === 'ADD'">
|
|
|
+ <div class="situationdesc-addpage">
|
|
|
+ <el-form
|
|
|
+ ref="situationDescAddpageFormRef"
|
|
|
+ :model="addPageFormObj.formModel"
|
|
|
+ :rules="addPageFormObj.formRules"
|
|
|
+ label-width="190px"
|
|
|
+ class="situationdesc-addpage-form"
|
|
|
+ >
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="situationdesc-addpage-title">
|
|
|
+ <div>
|
|
|
+ <img
|
|
|
+ :src="require('@/assets/logo/home-main-title-logo.png')"
|
|
|
+ @error="imgViewerOnerror"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div>新增情况说明</div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="situationdesc-addpage-line"></div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="情况说明时间:" prop="beginTime">
|
|
|
<el-date-picker
|
|
|
- v-model="queryParams.endTime"
|
|
|
+ v-model="addPageFormObj.formModel.name"
|
|
|
type="date"
|
|
|
- size="small"
|
|
|
clearable
|
|
|
value-format="yyyy-MM-dd"
|
|
|
style="width: 100%;"
|
|
|
- placeholder="请选择结束时间"
|
|
|
+ placeholder="请选择情况说明时间"
|
|
|
></el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="name">
|
|
|
- <el-input
|
|
|
- v-model="queryParams.name"
|
|
|
- placeholder="请输入情况说明人姓名"
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="情况说明人:" prop="explainer">
|
|
|
+ <el-select
|
|
|
+ v-model="addPageFormObj.formModel.explainer"
|
|
|
+ placeholder="请选择情况说明人"
|
|
|
clearable
|
|
|
- size="small"
|
|
|
style="width: 100%;"
|
|
|
- @keyup.enter.native="handleQuery"
|
|
|
- />
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="situationExplainerOption in situationExplainerOptions"
|
|
|
+ :key="situationExplainerOption.dictValue"
|
|
|
+ :label="situationExplainerOption.dictLabel"
|
|
|
+ :value="situationExplainerOption.dictValue"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="情况说明:" prop="phone" class="formitem-attachment">
|
|
|
+ <el-upload
|
|
|
+ ref="descFileMaterialsUploadRef"
|
|
|
+ :limit="1"
|
|
|
+ accept=".pdf"
|
|
|
+ :auto-upload="false"
|
|
|
+ :show-file-list="true"
|
|
|
+ :action="descFileMaterialsUpload.url"
|
|
|
+ :headers="descFileMaterialsUpload.headers"
|
|
|
+ :before-upload="handleBeforeUpload"
|
|
|
+ :on-success="handleUploadOnsuccess"
|
|
|
+ :on-change="handleUploadOnchange"
|
|
|
+ :on-remove="handleUploadOnRemove"
|
|
|
+ :on-exceed="handleUploadOnExceed"
|
|
|
+ class="formitem-attachment-fileupload"
|
|
|
+ >
|
|
|
+ <div class="formitem-attachment-fileupload-content">
|
|
|
+ <i class="el-icon-plus" />
|
|
|
+ 上传文件,格式:PDF
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ <div
|
|
|
+ v-if="descFileMaterialsUpload.isUploadSuccess"
|
|
|
+ class="fl formitem-attachment-addr"
|
|
|
+ @click="handleDescFileMaterialsUploadUrlClick"
|
|
|
+ >
|
|
|
+ <div>文件上传成功地址:</div>
|
|
|
+ <div>{{ addPageFormObj.formModel.bannerUrl }}</div>
|
|
|
+ </div>
|
|
|
<el-button
|
|
|
- v-hasPermi="['partybuildingmgr:situationdesc:query']"
|
|
|
+ v-if="descFileMaterialsUpload.isSelect && !descFileMaterialsUpload.isUploadSuccess"
|
|
|
type="primary"
|
|
|
- icon="el-icon-search"
|
|
|
- @click="handleQueryClick"
|
|
|
- >搜索</el-button>
|
|
|
+ size="small"
|
|
|
+ @click="submitDescFileMaterialsUpload"
|
|
|
+ >上传文件</el-button>
|
|
|
<el-button
|
|
|
- v-hasPermi="['partybuildingmgr:situationdesc:reset']"
|
|
|
- icon="el-icon-refresh"
|
|
|
- @click="resetQueryClick"
|
|
|
- >重置</el-button>
|
|
|
+ v-if="descFileMaterialsUpload.isSelect"
|
|
|
+ type="info"
|
|
|
+ size="small"
|
|
|
+ @click="removeDescFileMaterialsUpload"
|
|
|
+ >移除文件</el-button>
|
|
|
</el-form-item>
|
|
|
- <el-form-item class="fr" style="margin-right: 0;">
|
|
|
- <el-button
|
|
|
- v-hasPermi="['partybuildingmgr:situationdesc:add']"
|
|
|
- type="rocpartyprimarybtn"
|
|
|
- icon="el-icon-plus"
|
|
|
- @click="handleAddClick"
|
|
|
- >新增</el-button>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item
|
|
|
+ label="说明了以下流程节点问题:"
|
|
|
+ prop="sort"
|
|
|
+ class="situationdesc-addpage-form-processnode"
|
|
|
+ >
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="addPageFormObj.formModel.checkList"
|
|
|
+ style="width: 100%;"
|
|
|
+ >
|
|
|
+ <el-checkbox label="《入党积极分子、发展对象培养教育考察登记表》" style="width: 100%;">
|
|
|
+ <div class="processnode-circle">6</div>
|
|
|
+ <div class="processnode-label">《入党积极分子、发展对象培养教育考察登记表》</div>
|
|
|
+ </el-checkbox>
|
|
|
+ <el-checkbox label="支委会拟接收预备党员审查会议记录和上报的预审请示" style="width: 100%;">
|
|
|
+ <div class="processnode-circle">13</div>
|
|
|
+ <div class="processnode-label">支委会拟接收预备党员审查会议记录和上报的预审请示</div>
|
|
|
+ </el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
</el-form-item>
|
|
|
- </el-form>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <el-table
|
|
|
- :data="list"
|
|
|
- stripe
|
|
|
- border
|
|
|
- :header-cell-style="{'text-align':'center'}"
|
|
|
- header-row-class-name="situationdesc-table_header-row"
|
|
|
- class="situationdesc-main-table"
|
|
|
- style="width: 100%;"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- label="情况说明人姓名"
|
|
|
- prop="name"
|
|
|
- width="180"
|
|
|
- :show-overflow-tooltip="true"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- label="说明了以下流程节点问题"
|
|
|
- prop="conditionPoint"
|
|
|
- :show-overflow-tooltip="true"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- label="情况说明时间"
|
|
|
- align="center"
|
|
|
- prop="conditionTime"
|
|
|
- width="180"
|
|
|
- :show-overflow-tooltip="true"
|
|
|
- />
|
|
|
- <el-table-column
|
|
|
- label="操作"
|
|
|
- align="center"
|
|
|
- fixed="right"
|
|
|
- width="100"
|
|
|
- class-name="small-padding fixed-width"
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div class="pagefooter-btngroup">
|
|
|
+ <el-button
|
|
|
+ type="rocpartyprimaryplainbtn"
|
|
|
+ icon="el-icon-circle-close"
|
|
|
+ @click="handleAddpageCloseClick"
|
|
|
+ >取 消</el-button>
|
|
|
+ <el-button
|
|
|
+ type="rocpartyprimarybtn"
|
|
|
+ icon="el-icon-circle-check"
|
|
|
+ @click="handleAddpageSubmitClick"
|
|
|
+ >确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="pageType === 'VIEW'">
|
|
|
+ <div class="situationdesc-viewpage">
|
|
|
+ <el-form
|
|
|
+ ref="situationDescViewpageFormRef"
|
|
|
+ :model="viewPageFormObj.formModel"
|
|
|
+ label-width="190px"
|
|
|
+ class="situationdesc-viewpage-form"
|
|
|
+ >
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="situationdesc-viewpage-title">
|
|
|
+ <div>
|
|
|
+ <img
|
|
|
+ :src="require('@/assets/logo/home-main-title-logo.png')"
|
|
|
+ @error="imgViewerOnerror"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div>情况说明会详情</div>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="situationdesc-viewpage-line"></div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="情况说明时间:" prop="beginTime">
|
|
|
+ <div>{{ viewPageFormObj.formModel.beginTime }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="情况说明人:" prop="explainer">
|
|
|
+ <div>{{ viewPageFormObj.formModel.explainer }}</div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="情况说明:" prop="phone">
|
|
|
+ <div class="situationdesc-viewpage-form-desc">
|
|
|
+ <div @click="handleViewPageCheckClick">查看</div>
|
|
|
+ <div @click="handleViewPageDownloadClick">下载</div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item
|
|
|
+ label="说明了以下流程节点问题:"
|
|
|
+ prop="sort"
|
|
|
+ class="situationdesc-viewpage-form-processnode"
|
|
|
>
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- v-hasPermi="['partybuildingmgr:situationdesc:view']"
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-view"
|
|
|
- style="color: #909399;"
|
|
|
- @click="handleViewClick(scope.row)"
|
|
|
- >详情</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </el-col>
|
|
|
- <el-col :span="24">
|
|
|
- <pagination
|
|
|
- v-show="total>0"
|
|
|
- :total="total"
|
|
|
- :page.sync="queryParams.pageNum"
|
|
|
- :limit.sync="queryParams.pageSize"
|
|
|
- @pagination="initData"
|
|
|
- />
|
|
|
- </el-col>
|
|
|
+ <el-checkbox-group v-model="viewPageFormObj.formModel.checkList">
|
|
|
+ <el-checkbox label="《入党积极分子、发展对象培养教育考察登记表》" disabled>
|
|
|
+ <div class="processnode-circle">6</div>
|
|
|
+ <div class="processnode-label">《入党积极分子、发展对象培养教育考察登记表》</div>
|
|
|
+ </el-checkbox>
|
|
|
+ <el-checkbox label="支委会拟接收预备党员审查会议记录和上报的预审请示" disabled>
|
|
|
+ <div class="processnode-circle">13</div>
|
|
|
+ <div class="processnode-label">支委会拟接收预备党员审查会议记录和上报的预审请示</div>
|
|
|
+ </el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <div class="pagefooter-btngroup">
|
|
|
+ <el-button
|
|
|
+ type="rocpartyprimaryplainbtn"
|
|
|
+ icon="el-icon-circle-close"
|
|
|
+ @click="handleViewPageCloseClick"
|
|
|
+ >关 闭</el-button>
|
|
|
</div>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else-if="pageType === 'VIEWPDF'">
|
|
|
+ <div class="situationdesc-viewpdfpage">
|
|
|
+ <roc-vue-pdf-page
|
|
|
+ pdf-url="/file-api/statics/2021/12/13/6085efe9-74e1-4444-b47a-5c3533ec6901.pdf"
|
|
|
+ @close="handleViewPdfPageCloseClick"
|
|
|
+ ></roc-vue-pdf-page>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div> </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { viewPdfFile } from "@/api/PartyBuildingMgr/SituationDesc";
|
|
|
+
|
|
|
export default {
|
|
|
name: "Situationdesc",
|
|
|
+ components: {
|
|
|
+ 'roc-vue-pdf-page': () => import('@/components/RocVuePdfPage')
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
// 遮罩层
|
|
|
loading: true,
|
|
|
- statusOptions: [],
|
|
|
+ pageType: 'LIST',
|
|
|
+ // 情况说明人选项列表
|
|
|
+ situationExplainerOptions: [],
|
|
|
total: 10,
|
|
|
queryParams: {
|
|
|
pageNum: 0,
|
|
@@ -164,42 +391,246 @@ export default {
|
|
|
{
|
|
|
name: '李四'
|
|
|
}
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ /** 新增或编辑弹框 */
|
|
|
+ addPageFormObj: {
|
|
|
+ formModel: {
|
|
|
+ bannerType: '0', // APP首页轮播图
|
|
|
+ name: undefined, // 名称
|
|
|
+ explainer: undefined, // 链接
|
|
|
+ sort: 0, // 排序
|
|
|
+ author: undefined, // 文章主体
|
|
|
+ bannerUrl: undefined, // 封面图片
|
|
|
+ content: undefined, // 内容
|
|
|
+ fileName: undefined, // 附件名称
|
|
|
+ fileUrl: undefined, // 附件地址
|
|
|
+ checkList: []
|
|
|
+ },
|
|
|
+ formRules: {
|
|
|
+ name: [{ required: true, message: '名称不能为空!', trigger: 'blur' }],
|
|
|
+ linkUrl: [{ required: true, message: '链接不能为空!', trigger: 'blur' }],
|
|
|
+ sort: [{ required: true, message: '排序不能为空!', trigger: ['blur', 'change'] }],
|
|
|
+ author: [{ required: true, message: '文章主体不能为空!', trigger: 'blur' }],
|
|
|
+ bannerUrl: [{ required: true, message: '封面图片不能为空!', trigger: 'change' }],
|
|
|
+ content: [{ required: true, message: '内容不能为空!', trigger: 'blur' }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ descFileMaterialsUpload: {
|
|
|
+ isSelect: false,
|
|
|
+ isUploadSuccess: false,
|
|
|
+ isOnProgress: false,
|
|
|
+ url: `${this.baseApiUrl}/file/upload`,
|
|
|
+ headers: { Authorization: 'Bearer ' + this.getToken() }
|
|
|
+ },
|
|
|
+ viewPageFormObj: {
|
|
|
+ formModel: {
|
|
|
+ checkList: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ pdfDialogVisible: false
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
this.initData();
|
|
|
},
|
|
|
methods: {
|
|
|
- /** 初始化数据 */
|
|
|
+ /**
|
|
|
+ * 初始化数据
|
|
|
+ */
|
|
|
initData() {
|
|
|
this.getList();
|
|
|
},
|
|
|
- /** 获取表格数据 */
|
|
|
+ /**
|
|
|
+ * 获取表格数据
|
|
|
+ */
|
|
|
getList() {
|
|
|
this.loading = false;
|
|
|
},
|
|
|
- /** 搜索按钮事件 */
|
|
|
+ /**
|
|
|
+ * 搜索按钮事件
|
|
|
+ */
|
|
|
handleQueryClick() {
|
|
|
|
|
|
},
|
|
|
- /** 重置按钮事件 */
|
|
|
+ /**
|
|
|
+ * 重置按钮事件
|
|
|
+ */
|
|
|
resetQueryClick() {
|
|
|
|
|
|
},
|
|
|
- /** 新增按钮事件 */
|
|
|
+ /**
|
|
|
+ * 新增按钮事件
|
|
|
+ */
|
|
|
handleAddClick() {
|
|
|
-
|
|
|
+ this.pageType = 'ADD';
|
|
|
+ this.descFileMaterialsUpload = {
|
|
|
+ ...this.descFileMaterialsUpload,
|
|
|
+ isSelect: false,
|
|
|
+ isUploadSuccess: false
|
|
|
+ };
|
|
|
},
|
|
|
- /** 详情按钮事件 */
|
|
|
+ /**
|
|
|
+ * 详情按钮事件
|
|
|
+ */
|
|
|
handleViewClick(row) {
|
|
|
+ this.pageType = 'VIEW';
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 新增页面确定按钮事件
|
|
|
+ */
|
|
|
+ handleAddpageSubmitClick() {
|
|
|
+ this.pageType = 'LIST';
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 新增页面取消按钮事件
|
|
|
+ */
|
|
|
+ handleAddpageCloseClick() {
|
|
|
+ this.pageType = 'LIST';
|
|
|
+ this.descFileMaterialsUpload = {
|
|
|
+ ...this.descFileMaterialsUpload,
|
|
|
+ isSelect: false,
|
|
|
+ isUploadSuccess: false,
|
|
|
+ isOnProgress: false
|
|
|
+ };
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 相关材料PDF文件上传url点击事件
|
|
|
+ */
|
|
|
+ handleDescFileMaterialsUploadUrlClick() {
|
|
|
+ this.pdfDialogVisible = true;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 相关材料PDF文件上传预处理
|
|
|
+ */
|
|
|
+ handleBeforeUpload(file) {
|
|
|
+ if (file.type.indexOf('application/pdf') === -1) {
|
|
|
+ this.$refs.descFileMaterialsUploadRef.clearFiles();
|
|
|
+ this.msgError('文件格式错误,请上传类型格式为PDF的文件!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 相关材料PDF文件上传成功处理
|
|
|
+ */
|
|
|
+ handleUploadOnsuccess(response, file, fileList) {
|
|
|
+ // 校验封面图片是否上传成功
|
|
|
+ if (response.code !== 200) {
|
|
|
+ this.$refs.descFileMaterialsUploadRef?.clearFiles?.();
|
|
|
+ this.descFileMaterialsUpload.isSelect = false;
|
|
|
+ this.descFileMaterialsUpload.isUploadSuccess = false;
|
|
|
+ this.msgError('上传PDF文件失败,请重新选择PDF文件上传!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
+ // 绑定封面图片数据
|
|
|
+ this.addPageFormObj.formModel.bannerUrl = response?.data?.url;
|
|
|
+ this.descFileMaterialsUpload.isUploadSuccess = true;
|
|
|
+
|
|
|
+ // 判断是否继续操作
|
|
|
+ if (this.descFileMaterialsUpload.isOnProgress) {
|
|
|
+ this.descFileMaterialsUpload.isOnProgress = false;
|
|
|
+ this.$confirm(`封面图片上传成功,是否继续${(this.operationTypeByForm === 'SAVE') ? '保存' : ((this.operationTypeByForm === 'RELEASE') ? '发布' : '预览')}数据操作?`, '提示', {
|
|
|
+ confirmButtonText: '确定 ',
|
|
|
+ cancelButtonText: '取消 ',
|
|
|
+ type: 'info'
|
|
|
+ }).then(() => {
|
|
|
+ this.handleBannerSubmitAddEditClick(this.operationTypeByForm);
|
|
|
+ }).catch(() => {
|
|
|
+ this.msgInfo('取消了继续保存数据操作!');
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$alert('上传成功!', '上传结果', { dangerouslyUseHTMLString: true });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 相关材料PDF文件状态改变
|
|
|
+ */
|
|
|
+ handleUploadOnchange(file, fileList) {
|
|
|
+ if (file.status === 'ready') {
|
|
|
+ if (((file.raw || {}).type || '').indexOf('application/pdf') === -1) {
|
|
|
+ this.$refs.descFileMaterialsUploadRef.clearFiles();
|
|
|
+ this.descFileMaterialsUpload.isSelect = false;
|
|
|
+ this.msgError('文件格式错误,请上传类型格式为PDF的文件!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.descFileMaterialsUpload.isSelect = true;
|
|
|
+ this.descFileMaterialsUpload.isUploadSuccess = false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 提交上传相关材料PDF文件
|
|
|
+ */
|
|
|
+ submitDescFileMaterialsUpload() {
|
|
|
+ if (!this.descFileMaterialsUpload.isSelect) { return; }
|
|
|
+ this.$confirm('确定上传操作吗?', '提示', {
|
|
|
+ confirmButtonText: '确定 ',
|
|
|
+ cancelButtonText: '取消 ',
|
|
|
+ type: 'info'
|
|
|
+ }).then(() => {
|
|
|
+ this.$refs.descFileMaterialsUploadRef?.submit?.();
|
|
|
+ }).catch(() => {
|
|
|
+ this.msgInfo('您已取消上传操作!');
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 移除选择相关材料PDF文件
|
|
|
+ */
|
|
|
+ removeDescFileMaterialsUpload() {
|
|
|
+ this.addPageFormObj.formModel.bannerUrl = '';
|
|
|
+ this.$refs.descFileMaterialsUploadRef.clearFiles();
|
|
|
+ this.descFileMaterialsUpload.isUploadSuccess = false;
|
|
|
+ this.descFileMaterialsUpload.isSelect = false;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 相关材料PDF文件列表移除文件时的钩子
|
|
|
+ */
|
|
|
+ handleUploadOnRemove(file, fileList) {
|
|
|
+ this.addPageFormObj.formModel.bannerUrl = '';
|
|
|
+ this.descFileMaterialsUpload.isUploadSuccess = false;
|
|
|
+ this.descFileMaterialsUpload.isSelect = false;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 相关材料PDF文件超出个数限制时的钩子
|
|
|
+ */
|
|
|
+ handleUploadOnExceed(files, fileList) {
|
|
|
+ this.msgWarning(`只允许上传单个相关材料PDF文件`);
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * PDF文件预览对话框关闭事件
|
|
|
+ */
|
|
|
+ handlePdfCloseClick(visible = false) {
|
|
|
+ this.pdfDialogVisible = visible;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 详情页面查看按钮事件
|
|
|
+ */
|
|
|
+ handleViewPageCheckClick() {
|
|
|
+ viewPdfFile({ filename: '1f30fcfd-0d34-4127-a1cc-fad68fc27c7d.pdf' }).then(response => {
|
|
|
+ this.pageType = 'VIEWPDF';
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 详情页面下载按钮事件
|
|
|
+ */
|
|
|
+ handleViewPageDownloadClick() {
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 详情页面关闭按钮事件
|
|
|
+ */
|
|
|
+ handleViewPageCloseClick() {
|
|
|
+ this.pageType = 'LIST';
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 预览PDF页面关闭按钮事件
|
|
|
+ */
|
|
|
+ handleViewPdfPageCloseClick() {
|
|
|
+ this.pageType = 'VIEW';
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
-<style scoped lang="scss">
|
|
|
+<style lang="scss" scoped>
|
|
|
.situationdesc {
|
|
|
.situationdesc-main {
|
|
|
padding: 20px 20px 72px;
|
|
@@ -275,5 +706,217 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ &-addpage {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ &-title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 5px;
|
|
|
+
|
|
|
+ div {
|
|
|
+ &:first-child {
|
|
|
+ height: 37px;
|
|
|
+ line-height: 37px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ margin-left: 15px;
|
|
|
+ height: 37px;
|
|
|
+ font-size: 26px;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #4f4f4f;
|
|
|
+ line-height: 37px;
|
|
|
+ letter-spacing: 1px;
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 34px;
|
|
|
+ height: 34px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &-line {
|
|
|
+ width: 100%;
|
|
|
+ height: 1px;
|
|
|
+ background: #d8dce5;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &-form {
|
|
|
+ &-processnode {
|
|
|
+ ::v-deep {
|
|
|
+ .el-checkbox {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 20px;
|
|
|
+
|
|
|
+ .el-checkbox__input {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ height: 24px;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-checkbox__label {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .processnode-circle {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #323232;
|
|
|
+ background: #ffffff;
|
|
|
+ border: 1px solid #323232;
|
|
|
+ border-radius: 50%;
|
|
|
+ line-height: 24px;
|
|
|
+ opacity: 0.9;
|
|
|
+ }
|
|
|
+
|
|
|
+ .processnode-label {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-left: 5px;
|
|
|
+ height: 24px;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #333333;
|
|
|
+ line-height: 20px;
|
|
|
+ opacity: 0.9;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &-viewpage {
|
|
|
+ width: 100%;
|
|
|
+
|
|
|
+ &-title {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-bottom: 5px;
|
|
|
+
|
|
|
+ div {
|
|
|
+ &:first-child {
|
|
|
+ height: 37px;
|
|
|
+ line-height: 37px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ margin-left: 15px;
|
|
|
+ height: 37px;
|
|
|
+ font-size: 26px;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #4f4f4f;
|
|
|
+ line-height: 37px;
|
|
|
+ letter-spacing: 1px;
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 34px;
|
|
|
+ height: 34px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &-line {
|
|
|
+ width: 100%;
|
|
|
+ height: 1px;
|
|
|
+ background: #d8dce5;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &-form {
|
|
|
+ &-desc {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+
|
|
|
+ div {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ height: 36px;
|
|
|
+ font-weight: 400;
|
|
|
+ font-style: normal;
|
|
|
+ font-size: 18px;
|
|
|
+ color: rgba(24, 144, 255, 0.996);
|
|
|
+ line-height: 36px;
|
|
|
+ cursor: pointer;
|
|
|
+
|
|
|
+ &:last-child {
|
|
|
+ margin-left: 20px;
|
|
|
+ }
|
|
|
+
|
|
|
+ &:hover {
|
|
|
+ text-decoration: underline;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ &-processnode {
|
|
|
+ ::v-deep {
|
|
|
+ .el-checkbox {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .el-checkbox__input {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ height: 36px;
|
|
|
+ line-height: 36px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-checkbox__label {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.is-disabled {
|
|
|
+ cursor: not-allowed;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .processnode-circle {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #323232;
|
|
|
+ background: #ffffff;
|
|
|
+ border: 1px solid #323232;
|
|
|
+ border-radius: 50%;
|
|
|
+ line-height: 36px;
|
|
|
+ opacity: 0.9;
|
|
|
+ }
|
|
|
+
|
|
|
+ .processnode-label {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-left: 5px;
|
|
|
+ height: 36px;
|
|
|
+ font-size: 16px;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #333333;
|
|
|
+ line-height: 36px;
|
|
|
+ opacity: 0.9;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|