This commit is contained in:
JyuHsin
2026-03-10 10:20:42 +08:00
parent 1b6d2c787e
commit 30a17cb884
67 changed files with 4765 additions and 277 deletions
@@ -45,6 +45,9 @@ layout("/layouts/platform.html"){
:disabled="multipleSelection && multipleSelection.length >=2 ? false : true"
type="primary" v-if="!pageForm.isAudit" size="mini">并案审核
</el-button>
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="sendToDoTaskInfo">发送待办
</el-button>
</template>
</table-tool>
<el-table :data="tableData" align="center" header-align="center" :row-key="(row)=>{row.id}"
@@ -578,6 +581,23 @@ layout("/layouts/platform.html"){
}
}
},
// 发送待办
async sendToDoTaskInfo () {
const confirm = await this.$confirm('确定发送待办到执委会吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm !== 'confirm') return
const resp = await $.post(loc() + '/sendToDoTaskInfo')
if(resp.code != 0) {
this.$message.error(resp.msg)
} else {
this.$message.success(resp.msg)
}
},
vChange(value) {
if (value.newValue === 'index' && this.multipleSelection.length > 0 && this.mergeIndex === 1) {
this.dialogVisible = true
@@ -643,6 +663,19 @@ layout("/layouts/platform.html"){
this.$refs.audit.openView(id)
},
async autoOpenAuditPage() {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
if(proposalId && proposalId != '') {
const res = await $.post('/platform/proposal/transact/case/case/detail?id=' + proposalId)
if(!res.data) return;
setTimeout(async ()=> {
await this.openAudit(proposalId, res.data)
}, 500)
}
},
async doAudit(flag) {
let formValid = true
this.$refs["auditForm"].validate(async valid => formValid = valid)
@@ -735,6 +768,14 @@ layout("/layouts/platform.html"){
this.$notify.success({title: '成功', message: resp.msg});
this.pageData()
this.$refs.guava.index()
// 弹出发送待办提示
const sendTask = resp.data.sendTask
console.log('sendTask', sendTask)
if(sendTask) {
await this.sendToDoTaskInfo()
}
} else {
this.$notify.error({title: '失败', message: resp.msg});
}
@@ -758,6 +799,8 @@ layout("/layouts/platform.html"){
this.noFilingReason = this.config.noFilingReason
await proposal.initData(this)
// 打开审核界面
await this.autoOpenAuditPage()
},
watch: {}
})
@@ -215,6 +215,20 @@ layout("/layouts/platform.html"){
this.$refs.guava.edit()
this.$refs.audit.openView(id)
},
// 自动打开审核页面
async autoOpenAuditPage() {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
if(proposalId != null && proposalId != '') {
const res = await $.post('/platform/proposal/transact/caseCheck/detail?proposalId=' + proposalId)
console.log(res)
setTimeout(async ()=> {
await this.openAudit(res.data)
}, 500)
}
},
async doAudit() {
let formValid = true
this.$refs["auditForm"].validate(async valid => formValid = valid)
@@ -255,6 +269,8 @@ layout("/layouts/platform.html"){
},
async created() {
await proposal.initData(this)
await this.autoOpenAuditPage()
}
})
</script>
@@ -231,6 +231,17 @@ layout("/layouts/platform.html"){
this.$refs['auditForm'].resetFields()
}
},
async openAuditView() {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
if(proposalId && proposalId !== '') {
setTimeout(()=> {
this.openAudit(proposalId)
}, 500)
}
},
async doAudit(flag) {
this.submitDisabled = true
let formValid = true
@@ -290,6 +301,9 @@ layout("/layouts/platform.html"){
},
async created() {
await proposal.initData(this)
// 打开审批页面
await this.openAuditView()
}
})
</script>
@@ -16,15 +16,19 @@ layout("/layouts/platform.html"){
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="batchAudit">批量审核
</el-button>
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="sendToDoTaskInfo">发送待办
</el-button>
</template>
</table-tool>
<el-table :data="tableData" align="center" header-align="center" :row-key="(row)=>{row.id}"
:size="tableSize"
@sort-change="pageOrder" @selection-change="(val)=>{this.batchSelection = val}">
<el-table-column
:selectable="(row)=>{return row.executorOpinion==null && row.resultCode!='notGive'}"
type="selection"
width="55"></el-table-column>
<!-- 注释掉 暂时不允许批量选择审核 -->
<!-- <el-table-column-->
<!-- :selectable="(row)=>{return row.executorOpinion==null && row.resultCode!='notGive'}"-->
<!-- type="selection"-->
<!-- width="55"></el-table-column>-->
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
<template scope="scope">
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span>
@@ -59,7 +63,7 @@ layout("/layouts/platform.html"){
查看
</el-button>
<el-button type="primary" size="mini"
v-if="row.executorOpinion==null && row.resultCode!='notGive'"
v-if="row.executorOpinion==null && row.resultCode!='notGive' && false"
@click="openAudit(row.id,row)">
审核
</el-button>
@@ -317,6 +321,7 @@ layout("/layouts/platform.html"){
this.proTableData.unshift(row)
},
async batchAudit() {
this.batchSelection = this.tableData
if (this.batchSelection.length === 0) {
this.$notify.warning('请选择需要批量审核的记录')
return
@@ -345,13 +350,18 @@ layout("/layouts/platform.html"){
proposalIds: this.formData.proposalId,
sign: this.formData.sign,
determineTypeCode: this.formData.determineTypeCode
})
requestLaterFun(resp, () => {
this.$notify.success({title: '成功', message: resp.msg});
this.pageData()
this.$refs.guava.index()
const sendTask = resp.data.sendTask
console.log('sendTask', sendTask)
if(sendTask) {
this.sendToDoTaskInfo()
}
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
}, () => {
@@ -380,18 +390,26 @@ layout("/layouts/platform.html"){
if (this.batchSelection && this.batchSelection.length > 0) {
proposalIds = this.batchSelection.map(v => v.id)
}
const resp = await $.post(loc() + "/audit", {
audit: JSON.stringify(this.formData),
proposalIds: JSON.stringify(proposalIds),
sign: this.formData.sign,
determineTypeCode: this.formData.determineTypeCode
})
requestLaterFun(resp, () => {
this.$notify.success({title: '成功', message: resp.msg});
this.pageData()
this.batchDialog = false
this.batchSelection = []
this.$refs.guava.index()
const sendTask = resp.data.sendTask
console.log('sendTask', sendTask)
if(sendTask) {
this.sendToDoTaskInfo()
}
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
}, () => {
@@ -401,6 +419,23 @@ layout("/layouts/platform.html"){
}
},
// 发送待办
async sendToDoTaskInfo () {
const confirm = await this.$confirm('确定发送待办到校长、书记吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm !== 'confirm') return
const resp = await $.post(loc() + '/sendToDoTaskInfo')
if(resp.code != 0) {
this.$message.error(resp.msg)
} else {
this.$message.success(resp.msg)
}
},
async rollback(id) {
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
confirmButtonText: '确定',
@@ -16,15 +16,18 @@ layout("/layouts/platform.html"){
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="batchAudit">批量审核
</el-button>
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="sendToDoTaskInfo">发送待办
</el-button>
</template>
</table-tool>
<el-table :data="tableData" align="center" header-align="center" :row-key="(row)=>{row.id}"
:size="tableSize"
@sort-change="pageOrder" @selection-change="(val)=>{this.batchSelection = val}">
<el-table-column
:selectable="(row)=>{return row.executorOpinionConfirm==null && row.resultCode!='notGive'}"
type="selection"
width="55"></el-table-column>
<!-- <el-table-column-->
<!-- :selectable="(row)=>{return row.executorOpinionConfirm==null && row.resultCode!='notGive'}"-->
<!-- type="selection"-->
<!-- width="55"></el-table-column>-->
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
<template scope="scope">
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span>
@@ -59,7 +62,7 @@ layout("/layouts/platform.html"){
查看
</el-button>
<el-button type="primary" size="mini"
v-if="row.executorOpinionConfirm==null && row.resultCode!='notGive'"
v-if="row.executorOpinionConfirm==null && row.resultCode!='notGive' && false"
@click="openAudit(row.id,row)">
审核
</el-button>
@@ -316,6 +319,7 @@ layout("/layouts/platform.html"){
this.proTableData.unshift(row)
},
async batchAudit() {
this.batchSelection = this.tableData
if (this.batchSelection.length === 0) {
this.$notify.warning('请选择需要批量审核的记录')
return
@@ -350,6 +354,12 @@ layout("/layouts/platform.html"){
this.$notify.success({title: '成功', message: resp.msg});
this.pageData()
this.$refs.guava.index()
const sendTask = resp.data.sendTask
console.log('sendTask', sendTask)
if(sendTask) {
this.sendToDoTaskInfo()
}
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
}, () => {
@@ -390,6 +400,12 @@ layout("/layouts/platform.html"){
this.batchDialog = false
this.batchSelection = []
this.$refs.guava.index()
const sendTask = resp.data.sendTask
console.log('sendTask', sendTask)
if(sendTask) {
this.sendToDoTaskInfo()
}
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
}, () => {
@@ -399,6 +415,23 @@ layout("/layouts/platform.html"){
}
},
// 发送待办
async sendToDoTaskInfo (isConfirm) {
const confirm = await this.$confirm('确定发送待办到提案委确认承办单位吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm !== 'confirm') return
const resp = await $.post(loc() + '/sendToDoTaskInfo')
if(resp.code != 0) {
this.$message.error(resp.msg)
} else {
this.$message.success(resp.msg)
}
},
async rollback(id) {
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
confirmButtonText: '确定',
@@ -316,6 +316,19 @@ layout("/layouts/platform.html"){
this.$refs['auditForm'].resetFields()
}
},
async autoOpenAuditPage() {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
if(proposalId && proposalId !== '') {
const res = await $.post('/platform/proposal/transact/feedback/detail?proposalId=' + proposalId)
console.log(res)
setTimeout(async ()=> {
await this.openFeedback(res.data)
}, 500)
}
},
async doFeedback() {
this.$refs["auditForm"].validate(async (valid) => {
if (valid) {
@@ -357,6 +370,8 @@ layout("/layouts/platform.html"){
await proposal.initData(this)
this.feedbackOptions = await getDictByCode("proposal_feedback")
this.feedbackOptionsByUnderTakeOptions = await getDictByCode('proposal_feedback_underTake')
await this.autoOpenAuditPage()
}
})
</script>
@@ -402,6 +402,19 @@ layout("/layouts/platform.html"){
this.$refs['auditForm'].resetFields()
}
},
async autoOpenAuditPage() {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
if(proposalId && proposalId !== '') {
const res = await $.post('/platform/proposal/transact/leader/leaderAudit/detail?proposalId=' + proposalId)
console.log(res)
setTimeout(async ()=> {
await this.openAudit(res.data)
}, 500)
}
},
async doAudit(flag) {
let formValid = true
this.$refs["auditForm"].validate(valid => {
@@ -443,6 +456,8 @@ layout("/layouts/platform.html"){
async created() {
this.isNode = await proposal.getProposalIsNodeState(600)
await proposal.initData(this)
await this.autoOpenAuditPage()
}
})
</script>
@@ -16,15 +16,18 @@ layout("/layouts/platform.html"){
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="batchAudit">批量审核
</el-button>
<el-button icon="el-icon-s-promotion" type="primary" size="small"
@click="sendToDoTaskInfo(true)">发送待办
</el-button>
</template>
</table-tool>
<el-table :data="tableData" align="center" header-align="center" :row-key="(row)=>{row.id}"
:size="tableSize"
@sort-change="pageOrder" @selection-change="(val)=>{this.batchSelection = val}">
<el-table-column
:selectable="(row)=>{return row.secretaryOpinions==null && row.resultCode!='notGive'}"
type="selection"
width="55"></el-table-column>
<!-- <el-table-column-->
<!-- :selectable="(row)=>{return row.secretaryOpinions==null && row.resultCode!='notGive'}"-->
<!-- type="selection"-->
<!-- width="55"></el-table-column>-->
<el-table-column align="center" header-align="center" label="序号" type="index" width="80">
<template scope="scope">
<span>{{ scope.$index + (pageForm.pageNumber - 1) * pageForm.pageSize + 1 }} </span>
@@ -65,12 +68,12 @@ layout("/layouts/platform.html"){
查看
</el-button>
<el-button type="primary" size="mini"
v-if="${@shiro.hasRole('principal')} && row.secretaryOpinions==null && row.resultCode!='notGive'"
v-if="${@shiro.hasRole('principal')} && row.secretaryOpinions==null && row.resultCode!='notGive'&& false"
@click="openAudit(row)">
审阅
</el-button>
<el-button type="primary" size="mini"
v-if="${@shiro.hasRole('secretary')} && row.secretaryOpinionsAgain==null && row.resultCode!='notGive'"
v-if="${@shiro.hasRole('secretary')} && row.secretaryOpinionsAgain==null && row.resultCode!='notGive' && false"
@click="openAudit(row)">
审阅
</el-button>
@@ -273,6 +276,7 @@ layout("/layouts/platform.html"){
},
async batchAudit() {
this.batchSelection = this.tableData
if (this.batchSelection.length === 0) {
this.$notify.warning('请选择需要批量审核的记录')
return
@@ -302,6 +306,9 @@ layout("/layouts/platform.html"){
this.notifySuccess(resp.msg)
this.pageData()
this.$refs.guava.index()
// 发送待办
await this.sendToDoTaskInfo(false);
} else {
this.notifyWarning(resp.msg)
}
@@ -331,6 +338,9 @@ layout("/layouts/platform.html"){
this.batchDialog = false
this.batchSelection = []
this.$refs.guava.index()
// 发送待办
this.sendToDoTaskInfo(false);
}, () => {
this.$notify.error({title: '失败', message: resp.msg});
}, () => {
@@ -339,6 +349,25 @@ layout("/layouts/platform.html"){
})
}
},
// 发送待办
async sendToDoTaskInfo (isConfirm) {
if(isConfirm) {
const confirm = await this.$confirm('确定发送待办到执委会主任吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
if (confirm !== 'confirm') return
}
const resp = await $.post(loc() + '/sendToDoTaskInfo')
if(resp.code != 0) {
this.$message.error(resp.msg)
} else {
this.$message.success(resp.msg)
}
},
async rollback(id) {
const confirm = await this.$confirm('您确定要撤回吗?', '提示', {
confirmButtonText: '确定',
@@ -578,6 +578,22 @@ layout("/layouts/platform.html"){
this.$refs['auditForm'].resetFields()
}
},
async autoOpenAuditPage() {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
const underTakeType = urlParams.get('underTakeType');
if(proposalId && proposalId !== '' && underTakeType && underTakeType !== '') {
const res = await $.post('/platform/proposal/transact/reply/detail?underTakeType=' + underTakeType + '&proposalId=' + proposalId)
console.log(res)
setTimeout(async ()=> {
await this.openAudit(res.data)
}, 500)
}
},
async doReply(isSave) {
try {
const valid = await this.$refs["auditForm"].validate()
@@ -630,6 +646,8 @@ layout("/layouts/platform.html"){
await proposal.initData(this)
this.implementStateOptions = await getDictByCode('proposal_reply_result')
this.getLeaders()
await this.autoOpenAuditPage()
}
})
</script>
@@ -230,6 +230,17 @@ layout("/layouts/platform.html"){
this.formData.createUser = row.createUser
this.$refs.guava.edit()
this.$refs.audit.openView(row.id)
console.log(this.formData)
},
async outToOpenAudit(rowId) {
const res = await $.post('/platform/proposal/transact/seconded/detail?proposalId=' + rowId);
console.log('详情-->', res)
if(!res.data) {
return
}
setTimeout(async ()=> {
await this.openAudit(res.data)
}, 500)
},
async doAudit(flag) {
const flagText = flag ? '同意' : '拒绝'
@@ -269,6 +280,17 @@ layout("/layouts/platform.html"){
},
async created() {
await proposal.initData(this)
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
const proposalId = urlParams.get('proposalId')
const isAudit = urlParams.get('isAudit')
console.log('urlParams-->', proposalId, isAudit)
console.log((!isAudit || isAudit === false || isAudit === 'false'))
console.log(proposalId && proposalId !== '')
if((!isAudit || isAudit === false || isAudit === 'false') && proposalId && proposalId !== '') {
await this.outToOpenAudit(proposalId)
}
}
})
</script>
@@ -136,11 +136,13 @@ layout("/layouts/platform.html"){
</el-row>
<el-form-item class="is-required" label="提案内容" prop="brief">
<div id="briefEditor"></div>
<text-editor v-model="formData.brief"></text-editor>
<!-- <div id="briefEditor"></div>-->
</el-form-item>
<el-form-item class="is-required" label="可行性分析" prop="measures">
<div id="measuresEditor"></div>
<!-- <div id="measuresEditor"></div>-->
<text-editor v-model="formData.measures"></text-editor>
</el-form-item>
<el-form-item label="附件上传" prop="files">
@@ -573,17 +575,22 @@ layout("/layouts/platform.html"){
data: JSON.stringify(data),
sign: data.sign
})
await this.editProposal()
this.pageForm2.proposalId = this.formData.id ? this.formData.id : resp.data
if (resp.data) {
this.formData.id = resp.data
if (resp.code===0){
await this.editProposal()
this.pageForm2.proposalId = this.formData.id ? this.formData.id : resp.data
if (resp.data) {
this.formData.id = resp.data
}
this.pageForm2.proposalName = this.formData.proposalName
await this.queryDb()
await this.getProposalSecondedNum()
this.$refs.guava.public()
}else{
this.$message.warning(resp.msg)
}
this.pageForm2.proposalName = this.formData.proposalName
await this.queryDb()
await this.getProposalSecondedNum()
this.$refs.guava.public()
// sublime.jumpPagePjax('/platform/proposal/transact/compose?operation=invite&id=' + resp.data)
}
@@ -763,7 +770,7 @@ layout("/layouts/platform.html"){
mannerCode: 'W01'
}
this.$nextTick(() => {
/* this.$nextTick(() => {
$("#briefEditor").html("")
$("#measuresEditor").html("")
@@ -777,7 +784,7 @@ layout("/layouts/platform.html"){
}
briefEditor.create()
measuresEditor.create()
})
})*/
if (this.$refs["addForm"])
this.$refs["addForm"].resetFields();
@@ -800,10 +807,10 @@ layout("/layouts/platform.html"){
resp.data.files = JSON.parse(resp.data.files)
}
this.formData = resp.data
this.$nextTick(() => {
/*this.$nextTick(() => {
briefEditor.txt.html(resp.data.brief)
measuresEditor.txt.html(resp.data.measures)
})
})*/
}
},