..
This commit is contained in:
+13
-11
@@ -56,13 +56,25 @@ public class ProposalSecondedController {
|
||||
@Inject
|
||||
private ProposalSecondedService proposalSecondedService;
|
||||
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhgh/democratic/proposal/transact/seconded/index.html")
|
||||
@SaCheckPermission("proposal.seconded")
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At(value = "/platform/h5/proposal/seconded",top = true)
|
||||
@Ok("beetl:/platform/zhghh5/democratic/proposal/transact/seconded/index.html")
|
||||
@SaCheckPermission("proposal.seconded")
|
||||
public void h5Index() {
|
||||
}
|
||||
|
||||
@At(value = "/platform/h5/proposal/seconded/approval",top = true)
|
||||
@Ok("beetl:/platform/zhghh5/democratic/proposal/transact/seconded/approval.html")
|
||||
@SaCheckPermission("proposal.seconded")
|
||||
public void h5Approval(){
|
||||
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("proposal.seconded")
|
||||
public Result pageData(@Valid ProposalSearchParam pageForm, boolean approval) {
|
||||
@@ -121,14 +133,4 @@ public class ProposalSecondedController {
|
||||
return Result.success(pagination);
|
||||
}
|
||||
|
||||
@At
|
||||
@SaCheckPermission("proposal.seconded")
|
||||
@ApiOperation("附议")
|
||||
@Aop(TransAop.READ_COMMITTED)
|
||||
@SLog(tag = "提案", msg = "提案人附议")
|
||||
public Result approval(@Valid @Param("approval") BpmTaskApprovalParam approvalParam) {
|
||||
proposalSecondedService.approval(approvalParam);
|
||||
return Result.success();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ public class ProposalWriteController {
|
||||
public void index() {
|
||||
}
|
||||
|
||||
@At("")
|
||||
@At(value = "/platform/h5/proposal/write",top = true)
|
||||
@Ok("beetl:/platform/zhghh5/democratic/proposal/transact/write/index.html")
|
||||
@SaCheckPermission("proposal.write")
|
||||
public void h5Index(){
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
package com.budwk.app.zhgh.democratic.proposal.h5controller;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
|
||||
@IocBean
|
||||
@At("/platform/h5/proposal/write")
|
||||
@Ok("json:full")
|
||||
@Api("h5提案撰写")
|
||||
public class H5ProposalWriteController {
|
||||
|
||||
@At("")
|
||||
@Ok("beetl:/platform/zhghh5/democratic/proposal/transact/write/index_.html")
|
||||
@SaCheckPermission("h5.proposal.write")
|
||||
public void index() {
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
const H5_PROPOSAL_INFO_COMPONENT = {
|
||||
name: "ProposalInfo",
|
||||
template: `
|
||||
template: /*language=HTML*/ `
|
||||
<div>
|
||||
<div class="process-title">基本信息</div>
|
||||
<van-cell-group>
|
||||
<div class="process-title">基本信息</div>
|
||||
<van-cell-group>
|
||||
<van-cell title="提案名称">
|
||||
<div style="font-weight:bold;">
|
||||
{{ viewData.name }}
|
||||
@@ -24,7 +24,7 @@ const H5_PROPOSAL_INFO_COMPONENT = {
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT"
|
||||
:value="viewData.caseFilingResult"></dict-tag>
|
||||
</van-cell>
|
||||
<van-cell title="提案摘要">
|
||||
<van-cell title="提案摘要">
|
||||
<div slot="label" class="font-size1 van-color-text-primary break-all" style="white-space: normal;">
|
||||
<div v-html="viewData.excerpt"></div>
|
||||
</div>
|
||||
@@ -35,195 +35,94 @@ const H5_PROPOSAL_INFO_COMPONENT = {
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell title="可行性分析">
|
||||
<div slot="label" class="font-size1 van-color-text-primary break-all">
|
||||
<div slot="label" class="font-size1 van-color-text-primary break-all">
|
||||
<div v-html="viewData.measures"></div>
|
||||
</div>
|
||||
</div>
|
||||
</van-cell>
|
||||
<!-- <van-cell title="附件">
|
||||
<div slot="label">
|
||||
{{viewData.files}}
|
||||
</div>
|
||||
</van-cell>-->
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <div slot="label">-->
|
||||
<!-- <van-image :src="viewData.signature"-->
|
||||
<!-- style="width: 100%;height: 150px;border: 1px dashed"></van-image>-->
|
||||
<!-- </div>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
|
||||
<div class="process-title">
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <div slot="label">-->
|
||||
<!-- <van-image :src="viewData.signature"-->
|
||||
<!-- style="width: 100%;height: 150px;border: 1px dashed"></van-image>-->
|
||||
<!-- </div>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
|
||||
<div class="process-title">
|
||||
附议人信息
|
||||
</div>
|
||||
<van-cell-group>
|
||||
<van-cell title="提案名称" v-for="item in viewData.seconders">
|
||||
<template slot="title">
|
||||
</div>
|
||||
<van-cell-group>
|
||||
<van-cell title="提案名称" v-for="item in viewData.seconders">
|
||||
<template slot="title">
|
||||
<span class="font-size1">{{item.createVariable.userName}}</span>
|
||||
<span class="margin-left10 font-size1 van-color-text-regular">/ {{item.createVariable.loginName}}</span>
|
||||
</template>
|
||||
<template slot="label">
|
||||
<span class="font-size0 van-color-text-assist">{{item.createVariable.unitName}}</span>
|
||||
</template>
|
||||
<template>
|
||||
</template>
|
||||
<template slot="label">
|
||||
<span class="font-size0 van-color-text-assist">{{item.createVariable.unitName}}</span>
|
||||
</template>
|
||||
<template>
|
||||
<span class="font-size2 van-color-text-placeholder bold">
|
||||
<span v-if="item.extVariable && item.extVariable.bpmTaskApprovalType">
|
||||
<van-tag size="mini" type="success" v-if="item.extVariable.bpmTaskApprovalType==='PASS'">同意</van-tag>
|
||||
<van-tag size="mini" type="success"
|
||||
v-if="item.extVariable.bpmTaskApprovalType==='PASS'">同意</van-tag>
|
||||
<van-tag size="mini" type="danger" v-if="item.extVariable.bpmTaskApprovalType==='REJECT'">拒绝</van-tag>
|
||||
</span>
|
||||
<span v-else>
|
||||
<van-tag size="mini">未附议</van-tag>
|
||||
</span>
|
||||
</span>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<div>
|
||||
<div v-for="nodeTask in viewData.nodeTasks" :key="nodeTask.id">
|
||||
<div class="process-title" v-if="nodeTask.nodeCode !== 20">
|
||||
{{nodeTask.nodeName}}
|
||||
</div>
|
||||
<div v-if="nodeTask.nodeCode === 30">
|
||||
<van-cell-group v-for="task in nodeTask.tasks" :key="task.id">
|
||||
<van-cell title="审核人">{{ task.actualOwnerLoginName + '-' + task.actualOwnerUserName}}</van-cell>
|
||||
<van-cell title="审核时间">{{ task.endOn}}</van-cell>
|
||||
<van-cell title="审核结果">
|
||||
<div v-if="task.extVariable">
|
||||
<van-tag type="success" size="mini" v-if="task.extVariable.bpmTaskApprovalType === 'PASS'">同意</van-tag>
|
||||
<van-tag type="danger" size="mini" v-if="task.extVariable.bpmTaskApprovalType === 'BACK'">退回重新填写</van-tag>
|
||||
<van-tag type="danger" size="mini" v-if="task.extVariable.bpmTaskApprovalType === 'REJECT'">建议撤销</van-tag>
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell title="审核意见">
|
||||
<div style="white-space: normal">
|
||||
{{ task.extVariable.approvalOpinion}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <van-image :src="task.extVariable.approvalSignature"-->
|
||||
<!-- v-if="task.extVariable && task.extVariable.approvalSignature"-->
|
||||
<!-- class="signature-image"></van-image>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
<div v-if="nodeTask.nodeCode === 60 || nodeTask.nodeCode === 70">
|
||||
<van-cell-group v-for="task in nodeTask.tasks" :key="task.id">
|
||||
<van-cell title="审核人">{{ task.actualOwnerLoginName + '-' + task.actualOwnerUserName}}</van-cell>
|
||||
<van-cell title="审核时间">{{ task.endOn}}</van-cell>
|
||||
<van-cell title="审核结果">
|
||||
<dict-tag :options="dict.type.PROPOSAL_CASE_FILING_RESULT" :value="task.extVariable.caseFilingResult">
|
||||
</dict-tag>
|
||||
</van-cell>
|
||||
<template v-if="task.extVariable.caseFilingResult!=='NOT' && task.extVariable.caseFilingResult!==''">
|
||||
<van-cell title="主办单位" :span="3">{{ task.extVariable.hostUnit}}</van-cell>
|
||||
<van-cell title="协办单位" :span="3">
|
||||
<div style="white-space: normal">
|
||||
{{ task.extVariable.helpUnits.join(',')}}
|
||||
</div>
|
||||
</van-cell>
|
||||
</template>
|
||||
<van-cell title="审核意见">
|
||||
<div style="white-space: normal">
|
||||
{{ task.extVariable.approvalOpinion}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <van-image :src="task.extVariable.approvalSignature"-->
|
||||
<!-- v-if="task.extVariable && task.extVariable.approvalSignature"-->
|
||||
<!-- class="signature-image"></van-image>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
<div v-if="nodeTask.nodeCode === 80">
|
||||
<van-cell-group v-for="task in nodeTask.tasks" :key="task.id">
|
||||
<van-cell title="承办单位">
|
||||
{{ task.createVariable.underTakeName}}
|
||||
({{ task.createVariable.isMaster ? '主办' : '协办'}})
|
||||
</van-cell>
|
||||
<van-cell title="答复人">{{ task.actualOwnerLoginName + '-' + task.actualOwnerUserName}}</van-cell>
|
||||
<van-cell title="答复时间">{{ task.endOn}}</van-cell>
|
||||
<van-cell title="答复内容">
|
||||
<div v-html="task.extVariable.approvalOpinion"></div>
|
||||
</van-cell>
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <van-image :src="task.extVariable.approvalSignature"-->
|
||||
<!-- v-if="task.extVariable && task.extVariable.approvalSignature"-->
|
||||
<!-- class="signature-image"></van-image>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
<div v-if="nodeTask.nodeCode === 90">
|
||||
<van-cell-group v-for="task in nodeTask.tasks" :key="task.id">
|
||||
<van-cell title="承办单位">
|
||||
{{ task.createVariable.underTakeName}}
|
||||
({{ task.createVariable.isMaster ? '主办' : '协办'}})
|
||||
</van-cell>
|
||||
<van-cell title="校领导">{{ task.actualOwnerLoginName + '-' + task.actualOwnerUserName}}</van-cell>
|
||||
<van-cell title="审批时间">{{ task.endOn}}</van-cell>
|
||||
<van-cell title="审批结果" :span="3">
|
||||
<van-tag size="mini" type="success" v-if="task.extVariable.bpmTaskApprovalType==='PASS'">同意</van-tag>
|
||||
<van-tag size="mini" type="danger" v-if="task.extVariable.bpmTaskApprovalType==='BACK_OTHER_NODE'">退回重新答复</van-tag>
|
||||
</van-cell>
|
||||
<van-cell title="审批意见">
|
||||
<div style="white-space: normal">
|
||||
{{ task.extVariable.approvalOpinion}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <van-image :src="task.extVariable.approvalSignature"-->
|
||||
<!-- v-if="task.extVariable && task.extVariable.approvalSignature"-->
|
||||
<!-- class="signature-image"></van-image>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
<div v-if="nodeTask.nodeCode === 100">
|
||||
<van-cell-group v-for="task in nodeTask.tasks" :key="task.id">
|
||||
<van-cell title="反馈人">{{ task.actualOwnerLoginName + '-' + task.actualOwnerUserName}}</van-cell>
|
||||
<van-cell title="反馈时间">{{ task.endOn}}</van-cell>
|
||||
<van-cell title="反馈结果">
|
||||
{{ task.extVariable.feedBackScore}}
|
||||
</van-cell>
|
||||
<van-cell title="反馈意见">
|
||||
<div style="white-space: normal">
|
||||
{{ task.extVariable.approvalOpinion}}
|
||||
</div>
|
||||
</van-cell>
|
||||
<!-- <van-cell title="签字">-->
|
||||
<!-- <van-image :src="task.extVariable.approvalSignature"-->
|
||||
<!-- v-if="task.extVariable && task.extVariable.approvalSignature"-->
|
||||
<!-- class="signature-image"></van-image>-->
|
||||
<!-- </van-cell>-->
|
||||
</van-cell-group>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
|
||||
<slot></slot>
|
||||
</div>
|
||||
`,
|
||||
dicts: ["PROPOSAL_TYPE", "PROPOSAL_CASE_FILING_RESULT"],
|
||||
`,
|
||||
dicts: ["PROPOSAL_TYPE", "PROPOSAL_CASE_FILING_RESULT","PROCESS_TASK_SUBMIT_TYPE"],
|
||||
data() {
|
||||
return {
|
||||
viewData: {},
|
||||
doneTasks: [],
|
||||
row: null,
|
||||
viewDialogVisible: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(id) {
|
||||
this.$axios.post("/platform/proposal/common/proposalInfo", { id }).then((res) => {
|
||||
// 打开
|
||||
onOpen(row) {
|
||||
this.row = row
|
||||
this.visible = true
|
||||
this.getInfo()
|
||||
this.getDoneTasks()
|
||||
},
|
||||
// 获取申请信息
|
||||
getInfo() {
|
||||
this.$axios.post("/platform/proposal/common/proposalInfo", {id: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.viewData = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 查看提案
|
||||
openView(id) {
|
||||
// this.viewDialogVisible = true
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs.infoDialogRef.onOpen(id)
|
||||
// })
|
||||
}
|
||||
this.viewDialogVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoDialogRef.onOpen(id)
|
||||
})
|
||||
},
|
||||
|
||||
// 获取已办任务审批记录
|
||||
getDoneTasks() {
|
||||
this.$axios.post("/flow/common/doneTasks", {bizId: this.row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.doneTasks = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
+56
-21
@@ -13,17 +13,45 @@ layout("/layouts/platform_h5.html"){
|
||||
v-model="pageForm.name"
|
||||
></van-search>
|
||||
<van-dropdown-menu :close-on-click-outside="false" :close-on-click-overlay="false">
|
||||
<van-dropdown-item :multiple="false" :options="sessionOptions" @change="sessionChange"
|
||||
<van-dropdown-item :multiple="false" :options="sessionOptions" @change="doSearch"
|
||||
v-model="pageForm.sessionId"></van-dropdown-item>
|
||||
</van-dropdown-menu>
|
||||
</van-sticky>
|
||||
|
||||
<table-list api="/platform/proposal/mine/pageData" :page_form.sync="pageForm" @ready="onReady" ref="tableListRef" title="name">
|
||||
<table-list api="/platform/proposal/mine/pageData" :page_form.sync="pageForm" @ready="onReady" ref="tableListRef"
|
||||
title="name">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="提案类型">{{row.typeName}}</table-column>
|
||||
<table-column label="提案编号">{{row.code}}</table-column>
|
||||
<table-column label="提案类别">{{row.typeName}}</table-column>
|
||||
<table-column label="提案人">{{row.createUserName}}</table-column>
|
||||
<table-column label="代表团">{{row.delegationName}}</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
{{index}}
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskKey === 'startTask' || !row.instanceId"
|
||||
@click="onEdit(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>编辑</span>
|
||||
</div>
|
||||
<div class="action-btn"
|
||||
v-if="row.taskKey === '85b7b9bd-d706-48cb-99a1-ef1370fb1819' || row.taskKey === '74458b33-ad6e-46c4-b8d9-1aa897142b25'"
|
||||
@click="onInvite(row)">
|
||||
<i class="fa fa-user-plus"></i>
|
||||
<span>邀请附议人</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.canRevoke" @click="onRevoke(item)">
|
||||
<i class="fa fa-undo"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
<div class="action-btn delete" v-if="row.taskKey === 'startTask' || !row.instanceId"
|
||||
@click="onDelete(row)">
|
||||
<i class="fa fa-trash"></i>
|
||||
<span>删除</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
@@ -39,8 +67,8 @@ layout("/layouts/platform_h5.html"){
|
||||
</van-popup>
|
||||
</div>
|
||||
<script>
|
||||
<!--#include("inviteSeconder.js"){}#-->
|
||||
<!--#include("../../common/info.js"){}#-->
|
||||
<!--#include("inviteSeconder.js"){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
@@ -64,9 +92,6 @@ layout("/layouts/platform_h5.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
sessionChange(val) {
|
||||
this.doSearch()
|
||||
},
|
||||
listSession() {
|
||||
this.$axios.post("/platform/proposal/common/listSession").then((res) => {
|
||||
if (res.code === 0) {
|
||||
@@ -84,38 +109,40 @@ layout("/layouts/platform_h5.html"){
|
||||
})
|
||||
},
|
||||
|
||||
openView(row) {
|
||||
onView(row) {
|
||||
this.infoShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(row.id)
|
||||
})
|
||||
},
|
||||
openEdit(row) {
|
||||
this.$pjaxReplace("/platform/h5/proposal/write?id=" + row.id)
|
||||
|
||||
onEdit(row) {
|
||||
this.$pjaxReplace("/platform/h5/proposal/write?bizId=" + row.id + "&taskId=" + row.startTaskId)
|
||||
},
|
||||
|
||||
pageData() {
|
||||
this.$refs.tableListRef.pageData()
|
||||
},
|
||||
doSearch() {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
this.$nextTick(() => {
|
||||
this.pageForm.pageNumber = 1
|
||||
this.pageForm.totalCount = 0
|
||||
this.$refs.tableListRef.doSearch()
|
||||
})
|
||||
},
|
||||
openRevoke(row) {
|
||||
|
||||
onRevoke(row) {
|
||||
this.$dialog
|
||||
.confirm({
|
||||
title: "提示",
|
||||
message: "您确定要撤销申请吗?"
|
||||
})
|
||||
.then(() => {
|
||||
this.$axios.post("/platform/proposal/mine/revokeApply", {id: row.id}).then((resp) => {
|
||||
this.$axios.post("/flow/common/revokeTask", {taskId: row.startTaskId}).then((res) => {
|
||||
this.$toast.success(resp.msg)
|
||||
this.doSearch()
|
||||
})
|
||||
})
|
||||
},
|
||||
del(id) {
|
||||
|
||||
onDelete(id) {
|
||||
this.$dialog
|
||||
.confirm({
|
||||
title: "提示",
|
||||
@@ -130,8 +157,16 @@ layout("/layouts/platform_h5.html"){
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
onInvite(row) {
|
||||
this.$axios.post("/platform/proposal/mine/inviteCheck", {id: row.id}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.$refs.inviteSeconderRef.onOpen(row)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onReady() {
|
||||
debugger
|
||||
this.listSession()
|
||||
}
|
||||
}
|
||||
|
||||
+30
-23
@@ -23,9 +23,6 @@ const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
<span slot="title">
|
||||
{{item.userName}}
|
||||
({{item.loginName}})
|
||||
<van-tag :plain="false">
|
||||
{{item.sex || '未知'}}
|
||||
</van-tag>
|
||||
</span>
|
||||
<span slot="label" class="font-size0 van-color-text-assist">
|
||||
{{item.unitName}}
|
||||
@@ -44,7 +41,6 @@ const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
:items-per-page="pageForm.pageSize"
|
||||
@change="pageData"
|
||||
></van-pagination>
|
||||
{{tableSelection}}
|
||||
<van-button @click="invite" type="primary" block :disabled="pageForm.isInvite" class="mt10">邀请</van-button>
|
||||
</div>
|
||||
</van-checkbox-group>
|
||||
@@ -64,37 +60,39 @@ const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
isInvite: false,
|
||||
searchKeyword: null
|
||||
},
|
||||
config: {},
|
||||
isInvite: "0",
|
||||
tableSelection: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onOpen(record) {
|
||||
async onOpen(record) {
|
||||
this.visible = true
|
||||
this.record = record
|
||||
await this.getConfig()
|
||||
this.pageData()
|
||||
|
||||
|
||||
},
|
||||
detail(id) {
|
||||
},
|
||||
detail(id) {},
|
||||
invite() {
|
||||
if (this.tableSelection.length === 0) {
|
||||
this.$toast("请先选择附议人后在点击邀请")
|
||||
return
|
||||
}
|
||||
|
||||
/* this.visible = false
|
||||
this.$emit("refresh", null)*/
|
||||
|
||||
const loginNames = this.tableSelection.map((s) => s.loginName)
|
||||
this.$axios
|
||||
.post("/platform/proposal/mine/inviteSeconder", {
|
||||
task: JSON.stringify({
|
||||
processTaskId: this.record.processTaskId,
|
||||
processInstId: this.record.processInstId
|
||||
}),
|
||||
const userName = this.tableSelection.map((s) => s.userName)
|
||||
|
||||
this.$dialog.confirm({
|
||||
title: '提示',
|
||||
message: "您确定要邀请" + userName.join("、") + "代表附议吗?",
|
||||
}).then(() => {
|
||||
this.$axios.post("/platform/proposal/mine/inviteSeconder", {
|
||||
proposalId: this.record.id,
|
||||
seconders: JSON.stringify(loginNames)
|
||||
})
|
||||
.then((res) => {
|
||||
}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.pageData()
|
||||
this.$toast.success(res.msg)
|
||||
@@ -103,14 +101,16 @@ const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
this.$emit("refresh", null)
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
|
||||
})
|
||||
},
|
||||
pageData() {
|
||||
this.$axios
|
||||
.post("/platform/proposal/mine/listSeconder", {
|
||||
...this.pageForm,
|
||||
sessionId: this.record.sessionId,
|
||||
proposalId: this.record.id
|
||||
})
|
||||
this.$axios.post("/platform/proposal/mine/listSeconder", {
|
||||
...this.pageForm,
|
||||
sessionId: this.record.sessionId,
|
||||
proposalId: this.record.id
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.tableData = res.data.list
|
||||
@@ -131,6 +131,13 @@ const PROPOSAL_INVITE_SECONDER_COMPONENT = {
|
||||
|
||||
tableRowToggle(index) {
|
||||
console.log(index)
|
||||
},
|
||||
|
||||
async getConfig() {
|
||||
const {code, data} = await this.$axios.post("/platform/proposal/common/config")
|
||||
if (code === 0) {
|
||||
this.config = data
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
<!--#
|
||||
layout("/layouts/platform_h5.html"){
|
||||
#-->
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<info></info>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
<!--#include("../../common/info.js"){}#-->
|
||||
|
||||
const vue = new Vue({
|
||||
el: "#app",
|
||||
store,
|
||||
components: {
|
||||
info: H5_PROPOSAL_INFO_COMPONENT
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
}
|
||||
},
|
||||
methods:{
|
||||
|
||||
},
|
||||
created(){
|
||||
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<!--#
|
||||
}
|
||||
#-->
|
||||
+28
-27
@@ -21,28 +21,30 @@ layout("/layouts/platform_h5.html"){
|
||||
</van-tabs>
|
||||
</van-sticky>
|
||||
|
||||
<van-pull-refresh v-model="tableRefreshing" @refresh="doSearch" style="min-height: calc(100vh - 90px)">
|
||||
<van-list v-if="tableData && tableData.length>0" v-model="tableLoading" :finished="tableFinished" finished-text="" @load="pageData">
|
||||
<div v-for="row in tableData" :key="row.id" class="list-card">
|
||||
<div class="list-card-body">
|
||||
<div class="van-multi-ellipsis--l2" style="padding: 0 16px; font-weight: bold">{{row.name}}</div>
|
||||
<van-cell :value="row.code" title="提案编号"></van-cell>
|
||||
<van-cell :value="row.createUserName" title="提案人"></van-cell>
|
||||
<van-cell :value="row.typeName" title="提案类型"></van-cell>
|
||||
<van-cell :value="row.sessionName" title="届次"></van-cell>
|
||||
<van-cell :value="row.delegationName" title="代表团"></van-cell>
|
||||
<van-cell :value="row.processInstanceNodeName" title="当前节点"></van-cell>
|
||||
<div class="list-card-footer">
|
||||
<van-button size="small" @click="openView(row)">查看</van-button>
|
||||
<van-button v-if="row.processInstanceTaskStatus==='ACTIVE'" @click="openApproval(row)" type="primary" size="small">
|
||||
附议
|
||||
</van-button>
|
||||
</div>
|
||||
</div>
|
||||
<table-list api="/platform/proposal/seconded" :page_form.sync="pageForm" @ready="onReady" ref="tableListRef"
|
||||
title="name">
|
||||
<template v-slot="{index,row}">
|
||||
<table-column label="提案编号">{{row.code}}</table-column>
|
||||
<table-column label="提案类别">{{row.typeName}}</table-column>
|
||||
<table-column label="提案人">{{row.createUserName}}</table-column>
|
||||
<table-column label="代表团">{{row.delegationName}}</table-column>
|
||||
<table-column label="当前节点">{{row.taskName}}</table-column>
|
||||
</template>
|
||||
<template #actions="{index,row}">
|
||||
<div class="action-btn" @click="onView(row)">
|
||||
<i class="fa fa-eye"></i>
|
||||
<span>查看</span>
|
||||
</div>
|
||||
</van-list>
|
||||
<van-empty v-else image="/assets/platform/plugins/vant-green/images/nodata/nodata.png" description="暂无数据"></van-empty>
|
||||
</van-pull-refresh>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onApproval(row)">
|
||||
<i class="fa fa-edit"></i>
|
||||
<span>审核</span>
|
||||
</div>
|
||||
<div class="action-btn" v-if="row.taskState === 10" @click="onRevoke(row)">
|
||||
<i class="fa fa-reply"></i>
|
||||
<span>撤回</span>
|
||||
</div>
|
||||
</template>
|
||||
</table-list>
|
||||
|
||||
<van-popup :style="{ height: '100%', width: '100%' }" position="right" safe-area-inset-bottom v-model="infoShow">
|
||||
<van-sticky>
|
||||
@@ -82,10 +84,6 @@ layout("/layouts/platform_h5.html"){
|
||||
approvalText: "0",
|
||||
approval: false
|
||||
},
|
||||
tableData: [],
|
||||
tableLoading: false,
|
||||
tableFinished: false,
|
||||
tableRefreshing: false,
|
||||
|
||||
sessionOptions: [],
|
||||
infoShow: false,
|
||||
@@ -110,9 +108,12 @@ layout("/layouts/platform_h5.html"){
|
||||
openApproval(row) {
|
||||
this.infoShow = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.infoRef.onOpen(row.id)
|
||||
this.formData = row.approvalParam
|
||||
this.showApprovalForm = true
|
||||
this.$refs.infoRef.onOpen(row.id)
|
||||
this.formData = {
|
||||
processTaskId: row.taskId,
|
||||
taskName: row.curTaskName
|
||||
}
|
||||
})
|
||||
},
|
||||
doApproval(approvalType) {
|
||||
|
||||
+49
-52
@@ -7,11 +7,11 @@ layout("/layouts/platform_h5.html"){
|
||||
</style>
|
||||
|
||||
<div id="app" v-cloak>
|
||||
<van-nav-bar title="撰写提案" left-text="返回" left-arrow @click-left="onClickLeft" placeholder fixed z-index="999"
|
||||
<van-nav-bar title="撰写提案" left-text="返回" left-arrow @click-left="historyBack" placeholder fixed z-index="999"
|
||||
class="custom-nav"></van-nav-bar>
|
||||
|
||||
<div class="form-container">
|
||||
<van-form ref="addForm" @submit="onSubmit">
|
||||
<van-form ref="formRef">
|
||||
<!-- 基本信息 -->
|
||||
<van-cell-group title="基本信息">
|
||||
<van-field
|
||||
@@ -32,7 +32,7 @@ layout("/layouts/platform_h5.html"){
|
||||
v-model="formData.sessionName"
|
||||
is-link
|
||||
readonly
|
||||
name="教代会"
|
||||
name="sessionName"
|
||||
label="所属教代会"
|
||||
placeholder="请选择所属教代会"
|
||||
@click="showSessionPicker = true"
|
||||
@@ -59,7 +59,7 @@ layout("/layouts/platform_h5.html"){
|
||||
v-model="formData.committeeName"
|
||||
is-link
|
||||
readonly
|
||||
name="委员会"
|
||||
name="committeeName"
|
||||
label="所属委员会"
|
||||
placeholder="请选择所属委员会"
|
||||
@click="showCommitteePicker = true"
|
||||
@@ -76,6 +76,7 @@ layout("/layouts/platform_h5.html"){
|
||||
|
||||
<van-field
|
||||
v-model="formData.unitName"
|
||||
name="mobile"
|
||||
label="单位"
|
||||
readonly
|
||||
:rules="[{ required: true, message: '请填写单位' }]"
|
||||
@@ -94,9 +95,11 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-cell-group title="提案信息" class="form-group">
|
||||
<van-field
|
||||
v-model="formData.name"
|
||||
name="name"
|
||||
label="提案名称"
|
||||
placeholder="请输入提案名称"
|
||||
:rules="[{ required: true, message: '请填写提案名称' }]"
|
||||
required
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
></van-field>
|
||||
@@ -124,7 +127,7 @@ layout("/layouts/platform_h5.html"){
|
||||
v-model="formData.typeName"
|
||||
is-link
|
||||
readonly
|
||||
name="提案类别"
|
||||
name="typeName"
|
||||
label="提案类别"
|
||||
placeholder="请选择提案类别"
|
||||
@click="showTypePicker = true"
|
||||
@@ -144,12 +147,14 @@ layout("/layouts/platform_h5.html"){
|
||||
<van-cell-group title="提案内容" class="form-group">
|
||||
<van-field
|
||||
v-model="formData.researchFindings"
|
||||
name="researchFindings"
|
||||
label="调研情况"
|
||||
type="textarea"
|
||||
rows="4"
|
||||
autosize
|
||||
placeholder="请输入调研情况"
|
||||
:rules="[{ required: true, message: '请填写调研情况' }]"
|
||||
required
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
@@ -160,6 +165,7 @@ layout("/layouts/platform_h5.html"){
|
||||
autosize
|
||||
placeholder="请输入案由"
|
||||
:rules="[{ required: true, message: '请填写案由' }]"
|
||||
required
|
||||
></van-field>
|
||||
|
||||
<van-field
|
||||
@@ -170,6 +176,7 @@ layout("/layouts/platform_h5.html"){
|
||||
autosize
|
||||
placeholder="请输入建议措施"
|
||||
:rules="[{ required: true, message: '请填写建议措施' }]"
|
||||
required
|
||||
></van-field>
|
||||
|
||||
</van-cell-group>
|
||||
@@ -177,15 +184,15 @@ layout("/layouts/platform_h5.html"){
|
||||
<!-- 附件上传 -->
|
||||
<van-cell-group title="附件上传" class="form-group">
|
||||
<van-field label="附件" name="files" required class="direction-column-field">
|
||||
<h5-file-upload
|
||||
slot="input"
|
||||
:value.sync="formData.files"
|
||||
:upload_number="10"
|
||||
upload_mode="file"
|
||||
upload_result_category="array"
|
||||
upload_result_type="url"
|
||||
complete_result
|
||||
></h5-file-upload>
|
||||
<!-- <h5-file-upload-->
|
||||
<!-- slot="input"-->
|
||||
<!-- :value.sync="formData.files"-->
|
||||
<!-- :upload_number="10"-->
|
||||
<!-- upload_mode="file"-->
|
||||
<!-- upload_result_category="array"-->
|
||||
<!-- upload_result_type="url"-->
|
||||
<!-- complete_result-->
|
||||
<!-- ></h5-file-upload>-->
|
||||
</van-field>
|
||||
</van-cell-group>
|
||||
|
||||
@@ -242,10 +249,6 @@ layout("/layouts/platform_h5.html"){
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onClickLeft() {
|
||||
history.back();
|
||||
},
|
||||
|
||||
// 选择器确认事件
|
||||
onSessionConfirm(value) {
|
||||
this.formData.sessionId = value.value;
|
||||
@@ -278,12 +281,7 @@ layout("/layouts/platform_h5.html"){
|
||||
async onSave() {
|
||||
// 表单验证
|
||||
try {
|
||||
await this.$refs.addForm.validate();
|
||||
|
||||
if (!this.formData.name || this.formData.name.trim().length < 1) {
|
||||
this.$toast("请填写提案名称");
|
||||
return;
|
||||
}
|
||||
await this.$refs.formRef.validate();
|
||||
|
||||
this.$toast.loading({
|
||||
message: '保存中...',
|
||||
@@ -295,10 +293,7 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$toast.clear();
|
||||
if (res.code === 0) {
|
||||
this.$toast.success(res.msg);
|
||||
this.formData = res.data;
|
||||
setTimeout(() => {
|
||||
pjaxReplace('/platform/h5/proposal/mine')
|
||||
}, 1500);
|
||||
pjaxReplace('/platform/h5/proposal/mine')
|
||||
} else {
|
||||
this.$toast.fail(res.msg || '保存失败');
|
||||
}
|
||||
@@ -316,7 +311,7 @@ layout("/layouts/platform_h5.html"){
|
||||
// 提交
|
||||
async onSubmit() {
|
||||
try {
|
||||
await this.$refs.addForm.validate();
|
||||
await this.$refs.formRef.validate();
|
||||
|
||||
if (!this.formData.name || this.formData.name.trim().length < 1) {
|
||||
this.$toast("请填写提案名称");
|
||||
@@ -324,7 +319,7 @@ layout("/layouts/platform_h5.html"){
|
||||
}
|
||||
|
||||
if (this.formData.brief.length < this.proposalConfig.briefMinLength) {
|
||||
this.$toast("提案内容和依据最少为" + this.proposalConfig.briefMinLength + "字");
|
||||
this.$toast("案由" + this.proposalConfig.briefMinLength + "字");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -342,9 +337,7 @@ layout("/layouts/platform_h5.html"){
|
||||
this.$toast.clear();
|
||||
if (res.code === 0) {
|
||||
this.$toast.success("提交成功");
|
||||
setTimeout(() => {
|
||||
pjaxReplace('/platform/h5/proposal/mine')
|
||||
}, 1500);
|
||||
pjaxReplace('/platform/h5/proposal/mine')
|
||||
} else {
|
||||
this.$toast.fail(res.msg || '提交失败');
|
||||
}
|
||||
@@ -365,7 +358,7 @@ layout("/layouts/platform_h5.html"){
|
||||
// 重新提交
|
||||
async onSubmitAgain() {
|
||||
try {
|
||||
await this.$refs.addForm.validate();
|
||||
await this.$refs.formRef.validate();
|
||||
|
||||
if (!this.formData.name || this.formData.name.trim().length < 1) {
|
||||
this.$toast("请填写提案名称");
|
||||
@@ -388,7 +381,7 @@ layout("/layouts/platform_h5.html"){
|
||||
|
||||
this.$axios.post('/platform/proposal/write/submitAgain', {
|
||||
info: JSON.stringify(this.formData),
|
||||
taskId: this.$utils.getQueryString("taskId")
|
||||
taskId: this.taskId
|
||||
}).then(res => {
|
||||
this.$toast.clear();
|
||||
if (res.code === 0) {
|
||||
@@ -466,6 +459,10 @@ layout("/layouts/platform_h5.html"){
|
||||
await this.searchMineDelegation();
|
||||
// 检查是否在撰写时间内
|
||||
this.checkWriteTime();
|
||||
} else {
|
||||
await this.listDelegation();
|
||||
await this.listSource();
|
||||
this.echoPicker()
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -508,28 +505,28 @@ layout("/layouts/platform_h5.html"){
|
||||
});
|
||||
},
|
||||
|
||||
// 回显
|
||||
echoPicker() {
|
||||
// 设置选择器显示值
|
||||
|
||||
this.$set(this.formData, "sessionName", this.sessionOptions.find(item => item.id === this.formData.sessionId)?.fullName)
|
||||
|
||||
const delegation = this.delegationOptions.find(item => item.id === this.formData.delegationId);
|
||||
this.$set(this.formData, "delegationName", delegation?.name)
|
||||
|
||||
const source = this.sourceOptions.find(item => item.code === this.formData.source);
|
||||
this.$set(this.formData, "sourceName", source?.name)
|
||||
|
||||
|
||||
const type = this.typeOptions.find(item => item.id === this.formData.typeId);
|
||||
this.$set(this.formData, "typeName", type?.name)
|
||||
},
|
||||
|
||||
init() {
|
||||
if (this.bizId) {
|
||||
this.$axios.post("/platform/proposal/write/detail", {id: this.bizId}).then((res) => {
|
||||
if (res.code === 0) {
|
||||
this.formData = res.data;
|
||||
|
||||
// // 设置选择器显示值
|
||||
// const delegation = this.delegationOptions.find(item => item.id === this.formData.delegationId);
|
||||
// if (delegation) {
|
||||
// this.formData.delegationName = delegation.name;
|
||||
// }
|
||||
//
|
||||
// const source = this.sourceOptions.find(item => item.code === this.formData.source);
|
||||
// if (source) {
|
||||
// this.sourceName = source.name;
|
||||
// }
|
||||
//
|
||||
// const type = this.typeOptions.find(item => item.id === this.formData.typeId);
|
||||
// if (type) {
|
||||
// this.typeName = type.name;
|
||||
// }
|
||||
|
||||
this.listOpenSession(true);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user