布局政策合规性项目审查流程

This commit is contained in:
范强强
2023-10-19 17:00:30 +08:00
parent 315ba95075
commit ef6168522a
2 changed files with 423 additions and 1 deletions
@@ -0,0 +1,419 @@
<template>
<div style="margin-top: 10px">
<div class="tableTitle">
<div class="tableButton">
<el-button plain class="common-button-primary" size="mini" @click="handleSearchStandard">调取</el-button>
<el-button plain class="common-button-primary" size="mini" @click="handleDeleteStandard">删除</el-button>
</div>
</div>
<div class="table-wrap">
<el-table
@selection-change="selectChange"
:data="infoTableDatas"
ref="multipleTable"
tooltip-effect="dark"
border
style="width: 100%; flex: auto;"
class="drag-table"
height="500px"
:header-cell-style="{background: '#E8E8E8', color: '#333333', fontSize: '16px',
fontWeight: 'bold', height: '48px'}">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
label="标准编号/政策编号"
show-overflow-tooltip
prop="lawCode"
align="center"
>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="lawName"
label="标准名称/政策名称"
align="center"
>
</el-table-column>
<el-table-column
prop="productType"
width="200px"
align="center"
show-overflow-tooltip
label="产品类型">
</el-table-column>
<el-table-column
prop="implTime"
align="center"
show-overflow-tooltip
width="160px"
label="实施日期">
</el-table-column>
<el-table-column
prop="implRequire"
align="center"
width="200px"
show-overflow-tooltip
label="实施要求">
</el-table-column>
</el-table>
</div>
<el-drawer ref="standard"
title="查询结果"
size="1000px"
:visible.sync="standardDrawer"
direction="rtl"
:before-close="handleReviseDrawerClose">
<div class="standard-content">
<div class="content">
<div class="standard-table-search">
<el-form :model="standardSearchForm" inline class="label-input-form search-area">
<el-form-item label="标准编号/政策编号" style="margin-right:10px" prop="lawsNumber"
class="search-item">
<el-input v-model="standardSearchForm.lawCode"
clearable placeholder="根据编号查找"
:maxlength="100"
@keyup.enter.native="getDomesticStandardTable"/>
</el-form-item>
<el-form-item label="标准名称/政策名称" style="margin-right:10px" prop="lawsName"
class="search-item">
<el-input v-model="standardSearchForm.lawName"
placeholder="根据名称查找"
clearable
:maxlength="100"></el-input>
</el-form-item>
<el-form-item label="产品类型" style="margin-right:10px" prop="productType" class="search-item">
<el-select v-model="standardSearchForm.productType" filterable
clearable>
<el-option
v-for="item in productTypeOptions"
placeholder="请选择"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button size="mini"
type="primary"
class="common-button-primary"
@click="getDomesticStandardTable">
查询
</el-button>
<el-button class="common-button-default"
size="mini"
@click="handleResetSearch">
清空
</el-button>
</el-form-item>
</el-form>
</div>
<div class="standard-table-wrap">
<el-table
ref="reviseDrawerTable"
:data="standardData"
tooltip-effect="dark"
style="width: 100%;"
height="calc(100vh - 240px)"
border
class="drag-table"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
@selection-change="standSelectChange">
<el-table-column
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
prop="lawCode"
width="200"
show-overflow-tooltip
label="标准编号/政策编号"
align="center">
</el-table-column>
<el-table-column
prop="lawName"
show-overflow-tooltip
label="标准名称/政策名称"
align="center"
width="220px"
>
</el-table-column>
<el-table-column
prop="productType"
label="产品类型"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="implTime"
label="实施时间"
show-overflow-tooltip
width="150"
align="center">
</el-table-column>
<el-table-column
prop="implRequire"
label="实施要求"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button class="opera-btn"
size="mini"
type="primary"
@click="handlePreview(scope.row)">查看
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<pagination
:page="page"
:total="total"
@pageChange="handleStandardPageChange"
@pageSizeChange="handleStandardPageSizeChange"></pagination>
<loading :loading="loadSarStandard">数据获取中</loading>
</div>
</div>
<div class="demo-drawer-footer">
<el-button round
class="common-button-primary"
icon="el-icon-check"
type="primary"
@click="handleProcessStandardNext(2)">带入
</el-button>
<el-button round
class="common-button-default"
icon="el-icon-close"
@click="handleProcessStandardNext(3)">取消
</el-button>
</div>
</el-drawer>
</div>
</template>
<script>
export default {
name: "fetchList",
data() {
return {
infoTableDatas: [],
standardDrawer: false,
standardSearchForm: {},
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
total: 0,
loadSarStandard: false,
standardData: [],
selectedList: [],
standardCheckedList: [],
productTypeOptions: [
{
label: '树形结构',
value: 'TREE'
},
{
label: '下拉选项',
value: 'SEL_OPTION'
}
],
deleteSelectedList: [],
}
},
methods: {
// 点击查看
handlePreview(item) {
let routeUrl = this.$router.resolve({
name: 'OtherLawsStandDetails',
params: {
id: item.id,
pageType: 'LAWS_STAND'
}
})
window.open(routeUrl.href, '_blank')
},
selectChange(data) {
this.deleteSelectedList = []
for (let i = 0; i < data.length; i++) {
this.deleteSelectedList.push(data[i].id)
}
},
handleSearchStandard() {
this.standardDrawer = true
this.$nextTick(() => {
// 动态设置表格高度
this.tableHeight.standardTableHeight = $('.standard-table-wrap').height()
window.onresize = () => {
this.tableHeight.standardTableHeight = $('.standard-table-wrap').height()
}
})
this.handleResetSearch()
},
handleReviseDrawerClose(done) {
done()
},
handleResetSearch() {
this.page = 1
this.standardSearchForm = {}
this.getDomesticStandardTable()
},
handleStandardPageChange(page) {
this.page = page
this.getDomesticStandardTable()
},
handleStandardPageSizeChange(pageSize) {
this.page = 1
this.pageSize = this.$store.getters.userInfo.configContent
this.getDomesticStandardTable()
},
getDomesticStandardTable() {
this.loadSarStandard = true
let query = {
standType: 'INLAND',
...this.standardSearchForm,
page: this.page,
pageSize: this.pageSize
}
this.$http.get('sarIssueTrack/issueTrack', query, {_this: this}, res => {
this.loadSarStandard = false
if (res.ok) {
this.standardData = res.data.records
this.total = res.data.total
}
}, e => {
this.loadSarStandard = false
})
},
standSelectChange(data) {
this.selectedList = []
for (let i = 0; i < data.length; i++) {
this.selectedList.push(data[i].id)
}
this.standardCheckedList = data
},
handleProcessStandardNext(status) {
switch (status) {
case 2:
if (this.standardCheckedList && this.standardCheckedList.length >= 1) {
let exits = [];
this.standardCheckedList.map(item => {
let newStand = false;
for (let itemKey of this.infoTableDatas) {
if (item.id == itemKey.id) {
newStand = true;
break;
}
}
if (newStand) {
this.$message.warning("请勿重复添加数据");
} else {
this.infoTableDatas.push(item);
exits.push(item.id);
}
})
this.standardDrawer = false
} else {
this.$message.warning('请选择要带入的数据')
}
break
// 取消
case 3:
this.selectedList = []
this.standardCheckedList = []
this.standardDrawer = false
break
}
},
handleDeleteStandard() {
this.$confirm('是否删除该数据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
//拿出deleteSelectedList里的每一个元素
this.deleteSelectedList.map(item => {
let index;
index = this.infoTableDatas.findIndex(items => {
//返回infoTableDatas里id和deleteSelectedList的id相同的元素对应的位置
return items.id === item;
});
//如果符合条件,就删除(==-1是没有符合条件的意思)
if (index > -1) {
this.infoTableDatas.splice(index, 1);
}
});
this.selectList = [];
this.$message({
type: 'success',
message: '删除成功!'
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
}
}
</script>
<style lang="less" scoped>
.standard-content {
height: 100%;
padding: 10px 0 0;
.content {
height: 100%;
display: flex;
flex-direction: column;
padding: 0 10px;
.standard-table-wrap {
flex: auto;
overflow-y: auto;
}
.pagination {
position: static;
/deep/ .pagination-slot {
padding: 0;
}
}
.search-area {
display: flex;
justify-content: left;
background: #FFF;
padding: 10px 10px 0;
}
}
}
.demo-drawer-footer {
height: 70px !important;
}
.tableTitle {
margin-bottom: 10px;
height: 30px;
line-height: 30px;
position: relative;
font-size: 13px;
font-weight: bold;
.tableButton {
position: absolute;
right: 0;
top: 0;
}
}
</style>
@@ -162,6 +162,7 @@
</el-row>
</div>
</el-form>
<fetchList ref="fetchListRef"/>
</div>
<el-collapse accordion>
<el-collapse-item title="意见填写">
@@ -219,6 +220,7 @@
import processFile from "../../components/processFile";
import approvalHistory from "./components/approvalHistory";//审批历史
import personnelInformation from "./components/personnelInformation";//人员信息
import fetchList from "./components/fetchList";
import {
queryTaskFirst,
saveTaskFirst,
@@ -237,7 +239,8 @@
ProcessFooter,
processFile,
approvalHistory,
personnelInformation
personnelInformation,
fetchList
},
data() {
return {