标准征求意见流程

This commit is contained in:
shen_yan_pu
2021-07-07 18:55:22 +08:00
parent b2a38c74c3
commit 31fd95e729
7 changed files with 543 additions and 4 deletions
@@ -0,0 +1,451 @@
<template>
<div class="bzzqyjStep1">
<!-- 标准征求意见流程-->
<ProcessHeader toggle>
<template slot="proName">标准征求意见流程</template>
<template slot="proNode">申请人发起流程</template>
</ProcessHeader>
<div class="headerTabs">
<div class="headerTabsItem" :class="active === '1' ? 'active' : ''" @click="handleTabs('1')">基础信息</div>
<div class="headerTabsItem" :class="active === '2' ? 'active' : ''" @click="handleTabs('2')">流程信息</div>
</div>
<div class="content" v-if="active === '1'">
<div style="flex: auto; overflow: auto;">
<el-form
ref="bzzqyjForm"
:model="form"
class="label-input-form"
label-width="210px"
>
<ProcessTitle>
<template slot="title">基础信息</template>
</ProcessTitle>
<div class="prc-content-border">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="选择征求意见" class="add-form-item form-item-disabled">
<div class="addButton">
<el-button size="small" type="primary" @click="addZqyjList">选择征求意见</el-button>
</div>
</el-form-item>
<el-form-item label="标准编号" prop="cid" class="add-form-item form-item-disabled">
<el-select v-model="form.cid" placeholder="请选择标准编号">
<el-option label="GB 472726" value="1"></el-option>
<el-option label="GB/T 8453291" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="标准名称" prop="cname" class="add-form-item form-item-disabled">
<el-select v-model="form.cname" placeholder="请选择标准名称">
<el-option label="标准1" value="1"></el-option>
<el-option label="标准2" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="征求意见结束日期" prop="endTime" class="add-form-item form-item-disabled">
<el-date-picker
v-model="form.endTime"
type="date"
placeholder="请选择结束日期">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</div>
<div class="content" v-if="active === '2'">
<div class="block" style="padding-top: 20px;">
<el-timeline>
<el-form
ref="Form"
:model="roleForm"
class="label-input-form">
<el-timeline-item timestamp="发起流程" placement="top" :color="roleForm.startUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="startUserName" style="margin-bottom: 0">
<h4>流程发起人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.startUser" style="display: none;"/>
<el-input v-model="roleForm.startUserName" placeholder="流程发起人"/>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="选择责任人" placement="top" :color="roleForm.dockUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="dockUserName" style="margin-bottom: 0">
<h4>责任对接人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.dockUser" style="display: none;"/>
<el-input
v-model="roleForm.dockUserName"
placeholder="选择责任人"
@click.native="choiceZRR('dockUser', '选择责任人', roleForm.dockUser)">
</el-input>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="填写意见" placement="top" :color="roleForm.ministerUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="mainUserName" style="margin-bottom: 0">
<h4>责任人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.mainUser" style="display: none;"/>
<el-input
v-model="roleForm.mainUserName"
placeholder="选择责任人·"
@click.native="choiceZRR('mainUser', '选择责任人', roleForm.mainUser)"
/>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="意见汇总并发起会签" placement="top" :color="roleForm.directorUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="engineerUserName" style="margin-bottom: 0">
<h4>标准法规工程师</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.engineerUser" style="display: none;"/>
<el-input
v-model="roleForm.engineerUserName"
placeholder="选择标准法规工程师"
@click.native="choiceZRR('engineerUser', '选择标准法规工程师', roleForm.engineerUser)"
/>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
<el-timeline-item timestamp="审核" placement="top" :color="roleForm.presidentUser ? '#66b1ff' : ''">
<el-card>
<el-form-item prop="checkUserName" style="margin-bottom: 0">
<h4>责任对接人标准法规部门负责人</h4>
<div style="margin-top: 10px;width: 300px;">
<el-input v-model="roleForm.checkUser" style="display: none;"/>
<el-input
v-model="roleForm.checkUserName"
placeholder="选择责任对接人,标准法规部门负责人"
@click.native="choiceZRR('checkUser', '选择责任对接人,标准法规部门负责人', roleForm.checkUserName)"
/>
</div>
</el-form-item>
</el-card>
</el-timeline-item>
</el-form>
</el-timeline>
</div>
</div>
<ProcessFooter
show-save
show-submit
:submitLoading="isSubmit"
:saveLoading="saveLoading"
@save="handleSave"
@submit="handleSubmit"
>
</ProcessFooter>
<el-drawer
title="标准征求意见数据库"
:visible.sync="listModel"
size="900px"
custom-class="demo-drawer"
>
<div class="standardForComments">
<!-- 顶部工具栏 -->
<table-tools-bar>
<div slot="left">
<div class="search-area">
<el-form :model="standCommonlySearch" inline class="label-input-form">
<el-formItem label="类别" class="search-item">
<el-input v-model="standCommonlySearch.categorg" class="s-c-input" placeholder="标准/政策" clearable :maxlength="100"></el-input>
</el-formItem>
<el-formItem label="关键字" class="search-item">
<el-input v-model="standCommonlySearch.cname" class="s-c-input" placeholder="请输入关键字" clearable :maxlength="100"></el-input>
</el-formItem>
<el-formItem label="开始日期" class="search-item">
<el-datePicker v-model="standCommonlySearch.start" :editable="false"
placeholder="请选择开始日期"></el-datePicker>
</el-formItem>
<el-formItem label="结束日期" class="search-item">
<el-datePicker v-model="standCommonlySearch.end" :editable="false"
placeholder="请选择结束日期"></el-datePicker>
</el-formItem>
<el-formItem class="search-item btn-box">
<el-button
type="primary"
size="mini"
class="common-button-primary"
@click="sarStandCompareHisInfo">查询</el-button>
<el-button
class="common-button-default"
size="mini"
@click="clearSearchStand">清空</el-button>
</el-formItem>
</el-form>
</div>
</div>
</table-tools-bar>
<div class="content">
<div class="table-wrap">
<div style="position: absolute;height: calc(100% - 10px);width: 100%;">
<el-table
ref="selection"
:data="standInfoList"
tooltip-effect="dark"
style="width: 100%;padding:0 0 20px 0;"
height="100%"
border
@selection-change="handleSelection"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column prop="category" label="标准" align="center"/>
<el-table-column prop="cname" label="标准名称/政策名称" align="center"/>
<el-table-column prop="endTime" label="征求意见周期" align="center"/>
<el-table-column prop="startTime" label="上传时间" align="center"/>
</el-table>
</div>
</div>
</div>
<pagination :page="standCommonlySearch.page" :total="total" @pageChange="pageChange" @pageSizeChange="pageSizeChange"></pagination>
<loading :loading="spinShow">数据加载中</loading>
<div class="demo-drawer-footer">
<el-button size="mini" @click="closeDrawer">取消</el-button>
<el-button type="primary" size="mini" @click="enterDrawer">带入</el-button>
</div>
</div>
</el-drawer>
</div>
</template>
<script>
import ProcessHeader from '../../components/ProcessHeader'
import ProcessFooter from '../../components/ProcessFooter'
import ProcessTitle from '../../components/ProcessTitle'
export default {
name: "bzzqyjStep1",
data() {
return {
textarea: '', // 意见
title: '', // 新增抽屉标题
listModel: false, // 新增抽屉开关
active: '1', // 默认显示
isSubmit: false,
saveLoading: false,
// 基础信息form表单
form: {
cid: '', // 编号
endTime: '', // 结束日期
cname: '', // 名称
},
// 标准征求意见数据可库
standCommonlySearch: {
categorg: '',
cname: '',
start: '',
end: '',
page: 1,
size: this.$store.getters.userInfo.configContent
},
spinShow: false,
standInfoList: [],
tableHeight: null,
total: 0,
selectedList: [],
data: [],
roleForm: {
startUserName: this.$store.getters.userInfo.userName,
startUser: this.$store.getters.userInfo.userId,
dockUser: '',
dockUserName: '',
mainUser: '',
mainUserName: '',
engineerUser: '',
engineerUserName: '',
checkUser: '',
checkUserName: '',
}
}
},
components: {
ProcessHeader,
ProcessFooter,
ProcessTitle
},
mounted () {
this.sarStandCompareHis()
this.tableHeight = $('.content').height() - 44
window.onresize = () => {
this.tableHeight = $('.content').height() - 44
}
},
methods: {
addZqyjList() {
this.title = '标准征求意见库'
this.listModel = true
},
/** 标准征求意见库方法*
* **********************************************/
// 清空
clearSearchStand () {
this.standCommonlySearch.page = 1
this.standCommonlySearch.start = ''
this.standCommonlySearch.end = ''
this.standCommonlySearch.categorg = ''
this.standCommonlySearch.cname = ''
this.sarStandCompareHis()
},
// 搜索
sarStandCompareHisInfo() {
this.splitInfoPage = 1
this.sarStandCompareHis()
},
// 查询表格
sarStandCompareHis () {
this.spinShow = true
var form = this.standCommonlySearch
this.$http.get('slrs/sar-public-idea/SelectAllPage', form, {
_this: this
}, res => {
this.standInfoList = res.data.records
this.total = res.data.total
this.spinShow = false
}, e => {
})
},
pageChange (page) {
this.standCommonlySearch.page = page
this.sarStandCompareHis()
},
// 分页每页显示数改变后方法
pageSizeChange (pageSize) {
this.$store.getters.userInfo.configContent = pageSize
this.standCommonlySearch.size = pageSize
this.sarStandCompareHis()
},
/** 选择带入数据的方法操作
* */
handleSelection(data) {
this.selectedList = [];
for (let i = 0; i < data.length; i++) {
this.selectedList.push(data[i].id);
}
},
closeDrawer() {
this.listModel = false
},
enterDrawer() {
if (this.selectedList.length === 1) {
let deposit = new Map();
this.standInfoList.forEach(item => {
deposit.set(item.id, item);
});
let bringData = [];
for (let i = 0; i < this.selectedList.length; i++) {
bringData.push(deposit.get(this.selectedList[i]));
}
console.log(bringData)
this.form.cid = bringData[0].cid
this.form.cname = bringData[0].cname;
this.form.endTime = bringData[0].endTime;
this.listModel = false;
} else if (this.selectedList.length > 1) {
this.$message.warning("只能选择一条数据进行带入");
} else {
this.$message.warning("请选择一条数据进行带入");
}
},
/*** **********************************************/
/** 流程节点负责人的选择 *****************************/
choiceZRR() {
// this.choice
},
handleTabs(name) {
this.active = name
},
// 流程也的提交按钮和保存按钮操作
handleSave() {},
handleSubmit() {}
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/style';
@import '~@/assets/styles/mixins';
.bzzqyjStep1 {
/deep/.el-drawer__container {
.prc-content-border {
border: none;
padding: 0 20px 0;
}
}
position: relative;
height: 100%;
.headerTabs {
height: 52px;
display: flex;
align-items: center;
position: absolute;
top: 0;
right: 10px;
.headerTabsItem {
border: 1px solid #c1c1c1;
padding: 0 5px;
height: 30px;
line-height: 30px;
cursor: pointer;
}
.active {
border: 1px solid #E6A23C;
color: #fff;
background: #E6A23C;
}
}
.content {
display: flex;
flex-direction: column;
justify-content: space-between;
height: calc(~'100% - 103px');
overflow: auto;
}
.standardForComments {
height: 100%;
background: #fff;
.el-divider--horizontal {
display: block;
height: 1px;
width: 100%;
margin: 0;
}
flex-direction: column;
.action-bar {
margin-bottom: 5px;
padding: 0;
}
.content {
flex: auto;
overflow: hidden;
display: flex;
flex-direction: column;
.table-wrap {
flex: auto;
overflow: hidden;
position: relative;
}
}
& > .pagination {
position: static;
/deep/.pagination-slot {
padding: 0;
}
}
}
}
</style>
@@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: "step2"
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: "step3"
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: "step4"
}
</script>
<style scoped>
</style>
@@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: "step5"
}
</script>
<style scoped>
</style>
@@ -63,7 +63,7 @@ export default {
case '3':
// 标准征求意见流程
this.$router.push({
name:'zqyjStep1'
name:'bzzqyjStep1'
})
break
case '4':
+39 -3
View File
@@ -394,9 +394,45 @@ const routes = [
}
},
{
path: '/zqyjStep1',
name: 'zqyjStep1',
component: () => import('@/pages/processCenter/pages/creatProcess/zqyj/step1.vue'),
path: '/bzzqyjStep1',
name: 'bzzqyjStep1',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step1.vue'),
meta: {
requireAuth: true,
title: '标准征求意见流程'
}
},
{
path: '/bzzqyjStep2',
name: 'bzzqyjStep2',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step2.vue'),
meta: {
requireAuth: true,
title: '标准征求意见流程'
}
},
{
path: '/bzzqyjStep3',
name: 'bzzqyjStep3',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step3.vue'),
meta: {
requireAuth: true,
title: '标准征求意见流程'
}
},
{
path: '/bzzqyjStep4',
name: 'bzzqyjStep4',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step4.vue'),
meta: {
requireAuth: true,
title: '标准征求意见流程'
}
},
{
path: '/bzzqyjStep5',
name: 'bzzqyjStep5',
component: () => import('@/pages/processCenter/pages/creatProcess/bzzqyj/step5.vue'),
meta: {
requireAuth: true,
title: '标准征求意见流程'