布局政策征求意见流程

This commit is contained in:
范强强
2023-10-16 14:49:32 +08:00
parent db8a93e29d
commit 0f6c056271
5 changed files with 415 additions and 100 deletions
@@ -0,0 +1,178 @@
<template>
<el-drawer
:title="modalshowtitle"
:visible.sync="modalshowflag"
:wrapperClosable="false"
size="800px"
@close="resetForm"
ref="standard"
append-to-body
>
<!-- 新增样式 -->
<div class="demo-drawer-content">
<el-form
ref="sarStandardsInfoForm"
:model="sarStandardsInfoEO"
:rules="sarStandardsInfoRules"
class="label-input-form"
>
<el-form-item label="章节编号" prop="chapterNumber" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.chapterNumber"
placeholder="请输入章节编号"
clearable></el-input>
</el-form-item>
<el-form-item label="章节条目" prop="chapterEntry" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.chapterEntry"
placeholder="请输入章节条目"
clearable></el-input>
</el-form-item>
<el-form-item label="修改前" prop="beforeRevision" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.beforeRevision"
placeholder="请输入修改前"
clearable></el-input>
</el-form-item>
<el-form-item label="修改后" prop="afterRevision" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.afterRevision"
placeholder="请输入修改后"
clearable></el-input>
</el-form-item>
<el-form-item label="修改理由" prop="revisionModification" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.revisionModification"
placeholder="请输入修改理由"
clearable></el-input>
</el-form-item>
<el-form-item label="处理意见" prop="handlingSuggestion" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.handlingSuggestion"
placeholder="请输入处理意见"
clearable></el-input>
</el-form-item>
<el-form-item label="原因" prop="reason" label-width="150px" class="add-form-item">
<el-input v-model.trim="sarStandardsInfoEO.reason"
placeholder="请输入原因"
clearable></el-input>
</el-form-item>
</el-form>
</div>
<div class="demo-drawer-footer">
<el-button size="mini" class="common-button-primary" icon="el-icon-check" type="primary"
@click="saveOrUpdateStands" :loading="isSubmit">提交
</el-button>
<el-button size="mini" class="common-button-default" icon="el-icon-close" @click="resetForm">取消</el-button>
</div>
</el-drawer>
</template>
<script>
export default {
name: "addModel",
data() {
return {
modalshowflag: false,
modalshowtitle: '添加',
isSubmit: false,
sarStandardsInfoEO: {},
sarStandardsInfoRules: {
chapterNumber: [
{
type: "string",
max: 200,
message: "章节编号不能超过100个字符",
trigger: "blur"
}
],
chapterEntry: [
{
type: "string",
max: 200,
message: "章节条目不能超过100个字符",
trigger: "blur"
}
],
beforeRevision: [
{
type: "string",
max: 200,
message: "修改前不能超过100个字符",
trigger: "blur"
}
],
afterRevision: [
{
type: "string",
max: 200,
message: "修改后不能超过100个字符",
trigger: "blur"
}
],
revisionModification: [
{
type: "string",
max: 200,
message: "修改理由不能超过100个字符",
trigger: "blur"
}
],
handlingSuggestion: [
{
type: "string",
max: 200,
message: "处理意见不能超过100个字符",
trigger: "blur"
}
],
reason: [
{
type: "string",
max: 200,
message: "原因不能超过100个字符",
trigger: "blur"
}
],
},
}
},
methods: {
add() {
this.modalshowflag = true
this.sarStandardsInfoEO = {}
},
edit(row) {
this.modalshowflag = true
this.sarStandardsInfoEO = JSON.parse(JSON.stringify(row))
},
resetForm() {
this.modalshowflag = false
},
saveOrUpdateStands() {
let timestamp = new Date().getTime();
if (!this.sarStandardsInfoEO.dataId) {
this.sarStandardsInfoEO.dataId = timestamp
}
this.isSubmit = true
this.$emit('addModelForm', this.sarStandardsInfoEO)
this.modalshowflag = false
this.$nextTick(() => {
this.isSubmit = false
})
},
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/styles/mixins';
@import '~@/assets/styles/style';
.demo-drawer-content {
.drawer-content {
height: calc(~'100% - 52px - 56px');
flex: auto;
display: flex;
flex-direction: column;
}
}
::v-deep .demo-drawer-footer {
height: 60px !important;
}
</style>
@@ -64,14 +64,14 @@
}
},
mounted() {
this.getHistoryData()
// this.getHistoryData()
},
methods: {
getHistoryData() {
this.$http.get('lawss/activiti/get_list_by_instance', {
prcNum: this.$route.query.prcNum,
}, {}, res => {
this.histortData = res
this.histortData = res || []
}, e => {
})
},
@@ -46,7 +46,7 @@
:data="tableData.standardData"
tooltip-effect="dark"
style="width: 100%;"
:height="tableHeight.standardTableHeight"
height="calc(100vh - 220px)"
border
class="drag-table"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}"
@@ -67,7 +67,8 @@
align="center"
>
<template slot-scope="scope">
<a @click="handlePreview(scope.row)" style="color: #409eff;cursor: pointer">{{ scope.row.lawsNumber }}</a>
<a @click="handlePreview(scope.row)" style="color: #409eff;cursor: pointer">{{
scope.row.lawsNumber }}</a>
</template>
</el-table-column>
<el-table-column
@@ -82,7 +83,9 @@
prop="issueTime"
label="发布日期"
align="center">
<template slot-scope="scope">{{ scope.row.issueTime ? $moment(scope.row.issueTime).format('YYYY-MM-DD') : '' }}</template>
<template slot-scope="scope">{{ scope.row.issueTime ?
$moment(scope.row.issueTime).format('YYYY-MM-DD') : '' }}
</template>
</el-table-column>
<el-table-column
prop="textStatus"
@@ -141,28 +144,29 @@
<script>
export default {
name: "policySolicitingOpinions",
data(){
return{
standardDrawer: false,
standardSearchForm:{
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
},
tableData: {
// 标准表格数据
standardData: [],
// 任务分解单数据
taskTableData: []
},
tableHeight: {
standardTableHeight: null
},
standardCheckedList:[],
disabledXX:false,
dataLoading:false,
}
data() {
return {
standardDrawer: false,
standardSearchForm: {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
},
tableData: {
// 标准表格数据
standardData: [],
// 任务分解单数据
taskTableData: []
},
tableHeight: {
standardTableHeight: null
},
standardCheckedList: [],
disabledXX: false,
dataLoading: false,
loadSarStandard:false,
}
},
methods:{
methods: {
handleReviseDrawerClose(done) {
done()
},
@@ -179,7 +183,11 @@
},
getDomesticStandardTable() {
this.loadSarStandard = true
this.$http.get('lawss/sarLawsInfo/page', this.standardSearchForm, {}, res => {
let query = {
standType: 'INLAND',
...this.standardSearchForm
}
this.$http.get('lawss/sarLawsInfo/page', query, {}, res => {
this.loadSarStandard = false
if (res.ok) {
this.tableData.standardData = res.data.list
@@ -211,11 +219,21 @@
this.standardSearchForm.pageSize = pageSize
this.handleSearchStandard()
},
filterObj(obj){
if(obj && obj !== ''){
if(obj instanceof Array){
//清空搜索条件
handleResetSearch() {
this.standardSearchForm = {
page: 1,
pageSize: this.$store.getters.userInfo.configContent,
}
setTimeout(() => {
this.handleSearchStandard()
}, 100)
},
filterObj(obj) {
if (obj && obj !== '') {
if (obj instanceof Array) {
return obj;
}else {
} else {
return obj.split(",")
}
}
@@ -225,49 +243,22 @@
switch (status) {
// 带入
case 2:
if(!this.standardCheckedList.length){
if (!this.standardCheckedList.length) {
this.$message.warning('请至少选择一条政策信息进行带入')
}else if(this.standardCheckedList.length > 1){
} else if (this.standardCheckedList.length > 1) {
this.$message.warning('您只能选择一条政策信息进行带入')
}else{
} else {
this.dataLoading = true
this.standardDrawer = false
this.$http.get('lawss/sarLawsInfo/getStandInfoUpdateById', {id: this.standardCheckedList[0].id}, {
_this: this
}, res => {
if (res && res.data) {
const bringData = res.data
this.standardDrawer = false
const json = Object.assign(bringData, bringData.attrInfoMap);
this.form = JSON.parse(JSON.stringify(json))
const dateArr = []
if(this.form.commentCycleStart && this.form.commentCycleEnd){
dateArr[0] = this.form.commentCycleStart
dateArr[1] = this.form.commentCycleEnd
this.form.cycleTime = dateArr
}
this.form['lawsSyqy'] = this.filterObj(this.form['lawsSyqy'])
this.form['lawsSycx'] = this.filterObj(this.form['lawsSycx'])
this.form['lawsLabel'] = this.filterObj(this.form['lawsLabel'])
this.form['YYRZLAWS'] = this.filterObj(this.form['YYRZLAWS'])
this.form['NYLXLAWS'] = this.filterObj(this.form['NYLXLAWS'])
this.form['TGRLAWS'] = this.filterObj(this.form['TGRLAWS'])
this.form['ZRBMLAWS'] = this.filterObj(this.form['ZRBMLAWS'])
this.form['TGDWLAWS'] = this.filterObj(this.form['TGDWLAWS'])
this.form.prcNum = this.prcNum
this.form.prcName = this.prcName
this.form['id'] = bringData.id
this.$emit('policySolicitingOpinionsForm', json)
this.dataLoading = false
this.busVsFunc()
this.modelFunc()
this.$forceUpdate()
}
// 遍历对象初始化文件信息
for (const p in this.form) {
if (typeof (this.form[p]) != "function") {
this.initializeFileList(p, this.form[p]);
}
}
console.log("res", res);
})
}
break
@@ -282,6 +273,41 @@
}
</script>
<style scoped>
<style lang="less" scoped>
.demo-drawer-footer {
height: 70px !important;
}
.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;
}
}
}
</style>
@@ -12,62 +12,79 @@
</el-button>
<el-button
class="common-button-primary add-button"
@click="deleteModel"
@click="batchDeleteModel"
><i class="iconfont">&#xe61b;</i>批量删除
</el-button>
<el-button
type="primary"
class="common-button-primary add-button"
@click="addModel"
@click="generateSummary"
>生成汇总单
</el-button>
<el-button
type="primary"
class="common-button-primary add-button"
@click="addModel"
@click="generateReportComments"
>生成上报意见
</el-button>
<el-button
type="primary"
class="common-button-primary add-button"
@click="exportModel"
>导出
</el-button>
</div>
<el-table
height="100%"
height="500"
ref="selection"
:data="histortData"
tooltip-effect="dark"
style="width: 100%"
border
row-key="id"
@selection-change="selectChange"
:header-cell-style="{background: '#f8f8f9', color: '#515a6e'}">
<el-table-column
prop="name"
type="selection"
width="55"
align="center">
</el-table-column>
<el-table-column
type="index"
label="序号"
width="80"
align="center"
>
</el-table-column>
<el-table-column
prop="assignee"
prop="chapterNumber"
label="章节编号"
show-overflow-tooltip
align="center"
>
</el-table-column>
<el-table-column
prop="createTime"
prop="chapterEntry"
label="章节条目"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="endTime"
prop="beforeRevision"
label="修改前"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="comment"
prop="afterRevision"
label="修改后"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
prop="revisionModification"
label="修改理由"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
@@ -76,68 +93,154 @@
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
prop="personInCharge"
label="责任人"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
label="提出部门"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
prop="proposingDepartment"
label="提出人"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
prop="handlingSuggestion"
label="处理意见"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
prop="reason"
label="原因"
show-overflow-tooltip
align="center">
</el-table-column>
<el-table-column
prop="completeFlag"
label="操作"
width="70"
align="center">
<template slot-scope="scope">
<a @click="edit">编辑</a>
<div @click.stop style="display: inline-block">
<el-dropdown trigger="click" @command="handleCommand">
<i class="iconfont">&#xe61e;</i>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item :command="[scope.row, scope.$index, '编辑']">编辑
</el-dropdown-item>
<el-dropdown-item :command="[scope.row, scope.$index,'删除']">删除
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
<addModel ref="addModelRef" @addModelForm="addModelForm"/>
</div>
</template>
<script>
import ProcessTitle from "../../../components/ProcessTitle";
import addModel from "./addModel";
export default {
name: "solicitationList",
components: {
ProcessTitle
ProcessTitle,
addModel
},
data() {
return {
histortData: [],
addOrEdit: 'add',
editNum: 0,
selectList: [],
}
},
mounted() {
},
methods: {
generateSummary(){
},
generateReportComments(){
},
exportModel(){
},
addModel() {
this.addOrEdit = 'add'
this.$refs.addModelRef.add()
},
selectChange(row) {
this.selectList = row
},
batchDeleteModel() {
if (this.selectList && this.selectList.length > 0) {
this.$confirm('确认删除这些数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
this.selectList.forEach(val => {
this.histortData = this.histortData.filter(res => {
return res.dataId != val.dataId
})
})
this.histortData = [...this.histortData]
}).catch(() => {
// 取消删除,清空选择
this.$refs.selection.clearSelection()
})
} else {
this.$message.warning('请选择至少一条数据')
}
},
deleteModel() {
handleCommand(command) {
switch (command[2]) {
case "编辑":
this.addOrEdit = 'edit'
this.editNum = command[1]
this.$refs.addModelRef.edit(command[0])
break;
case "删除":
this.deleteSarAccess(command[1]);
break;
}
},
edit() {
deleteSarAccess(num) {
this.$confirm('确认删除数据?', '提示', {
confirmButtonText: '确定',
confirmButtonClass: 'common-button-primary',
cancelButtonText: '取消',
type: 'warning',
roundButton: false
}).then(() => {
this.histortData.splice(num, 1)
this.histortData = [...this.histortData]
}).catch(() => {
// 取消删除,清空选择
// this.$refs.multipleTable.clearSelection()
})
},
addModelForm(row) {
if (this.addOrEdit == 'add') {
this.histortData.push(row)
} else if (this.addOrEdit == 'edit') {
this.histortData[this.editNum] = row
this.histortData = [...this.histortData]
}
},
},
}
@@ -149,4 +252,10 @@
padding: 9px 15px;
height: auto;
}
.textClass {
color: #66b1ff;
margin-right: 8px;
cursor: pointer;
}
</style>
@@ -186,6 +186,8 @@
:is-visible.sync="drawerModal"
@checkedRole="checkedRole"
></Role-tree>
<policySolicitingOpinions ref="policySolicitingOpinionsRef"
@policySolicitingOpinionsForm="policySolicitingOpinionsForm"/>
</div>
</template>
@@ -193,9 +195,10 @@
import ProcessHeader from "../../components/ProcessHeader";
import ProcessTitle from "../../components/ProcessTitle";
import ProcessFooter from "../../components/ProcessFooter";
import approvalHistory from "./components/approvalHistory";
import personnelInformation from "./components/personnelInformation";
import solicitationList from "./components/solicitationList";
import approvalHistory from "./components/approvalHistory";//审批历史
import personnelInformation from "./components/personnelInformation";//人员信息
import solicitationList from "./components/solicitationList";//征求意见列表
import policySolicitingOpinions from "./components/policySolicitingOpinions";
import {queryTaskFirst, saveTaskFirst, taskDel, changeAssigneeNew} from "api/process";
import axios from "axios";
@@ -207,7 +210,8 @@
ProcessFooter,
approvalHistory,
personnelInformation,
solicitationList
solicitationList,
policySolicitingOpinions
},
data() {
return {
@@ -252,16 +256,14 @@
handleTabs(type) {
this.active = type;
},
policySolicitingOpinionsForm(row) {
this.dataForm.lawsNumber = row.lawsNumber
this.dataForm.lawsName = row.lawsName
this.dataForm.lawsId = row.id
this.dataForm = {...this.dataForm}
},
handleSearchStandard() {
this.standardDrawer = true
this.$nextTick(() => {
// 动态设置表格高度
this.tableHeight.standardTableHeight = $('.standard-table-wrap').height()
window.onresize = () => {
this.tableHeight.standardTableHeight = $('.standard-table-wrap').height()
}
})
this.getDomesticStandardTable()
this.$refs.policySolicitingOpinionsRef.handleSearchStandard()
},
fileUpload() {
this.fileMadel = true
@@ -430,7 +432,7 @@
})
},
// 请求转换流程图
processNum (row) {
processNum(row) {
axios.request({
url: '/api/lawss/activiti/getImg?_t=' + new Date().getTime(),
responseType: 'blob',