This commit is contained in:
大黑 2025-12-24 11:25:06 +08:00
parent bc33619a91
commit 0d2457af5b
11 changed files with 2851 additions and 527 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -48,6 +48,10 @@ export default {
url: '/custom/template/export', url: '/custom/template/export',
method: 'get' method: 'get'
}, },
DOWNLODE_ALL_MODEL: {
url: '/custom/template/exportMultiple',
method: 'get'
},
//获取部门 //获取部门
GET_DEPARTMENT: { GET_DEPARTMENT: {
url: '/custom/template/getDept', url: '/custom/template/getDept',

View File

@ -276,17 +276,7 @@
</div> </div>
<!-- 流程主题 --> <!-- 流程主题 -->
<div class="approval-process-title">
<div class="description-label">
流程主题 <span class="required-mark">*</span>
</div>
<el-input
v-model="approvalFormData.processTitle"
maxlength="100"
show-word-limit
placeholder="请输入流程主题"
/>
</div>
<!-- 说明 --> <!-- 说明 -->
<div class="approval-description"> <div class="approval-description">
@ -306,6 +296,17 @@
<div class="workflow-title"> <div class="workflow-title">
审批环节 审批环节
</div> </div>
<div class="approval-process-title">
<div class="description-label">
流程主题 <span class="required-mark">*</span>
</div>
<el-input
v-model="approvalFormData.processTitle"
maxlength="100"
show-word-limit
placeholder="请输入流程主题"
/>
</div>
<div class="workflow-table"> <div class="workflow-table">
<table class="workflow-table-content"> <table class="workflow-table-content">
<thead> <thead>
@ -603,7 +604,7 @@ export default {
// } // }
// initialize version data for v2/v3 as example variations // initialize version data for v2/v3 as example variations
// //
this.loadUserSelfRole() // this.loadUserSelfRole()
// //
this.loadResponsiblePersons() this.loadResponsiblePersons()
this.loadFillerPersons() this.loadFillerPersons()

View File

@ -544,7 +544,7 @@ export default {
}, },
handleDownloadImportTemplate() { handleDownloadImportTemplate() {
const request = { const request = {
...api.DOWNLODE_MODEL, ...api.DOWNLODE_ALL_MODEL,
disableSuccessMsg: true disableSuccessMsg: true
} }
this.$request(request) this.$request(request)

View File

@ -198,15 +198,7 @@
:rows="2" :rows="2"
placeholder="请输入" placeholder="请输入"
/> />
<div class="description-label">
流程主题 <span class="required-mark">*</span>
</div>
<el-input
v-model="approvalFormData.processTitle"
maxlength="100"
show-word-limit
placeholder="请输入流程主题"
/>
</div> </div>
<!-- 审批环节 --> <!-- 审批环节 -->
@ -214,6 +206,19 @@
<div class="workflow-title"> <div class="workflow-title">
审批环节 审批环节
</div> </div>
<div>
<div class="approval-process-title">
<div class="description-label">
流程主题 <span class="required-mark">*</span>
</div>
<el-input
v-model="approvalFormData.processTitle"
maxlength="100"
show-word-limit
placeholder="请输入流程主题"
/>
</div>
</div>
<div class="workflow-table"> <div class="workflow-table">
<table class="workflow-table-content"> <table class="workflow-table-content">
<thead> <thead>
@ -612,7 +617,7 @@ export default {
// GET_MODEL_DETAIL status // GET_MODEL_DETAIL status
// DRAFT COMPLETE // DRAFT COMPLETE
const status = this.currentStatus || '' const status = this.currentStatus || ''
return (status === 'DRAFT' || status === 'COMPLETE') && this.isLatestVersion return (status === 'DRAFT' || status === 'COMPLETE')
}, },
// DRAFT COMPLETE // DRAFT COMPLETE
shouldShowMaintainButton() { shouldShowMaintainButton() {
@ -974,7 +979,7 @@ export default {
} }
}, },
created() { created() {
this.loadUserSelfRole() // this.loadUserSelfRole()
// 使 props使 // 使 props使
if (this.templateId) { if (this.templateId) {
this.internalTemplateId = this.templateId this.internalTemplateId = this.templateId
@ -2919,7 +2924,7 @@ export default {
} }
} }
} }
.required-mark{color:#f56c6c;margin-left:4px}
// //
.approval-content { .approval-content {
display: flex; display: flex;

View File

@ -34,6 +34,12 @@
align="center" align="center"
min-width="150" min-width="150"
/> />
<el-table-column
prop="roleCode"
label="角色代码"
align="center"
min-width="150"
/>
<el-table-column <el-table-column
prop="roleDescription" prop="roleDescription"
label="角色描述" label="角色描述"
@ -312,8 +318,7 @@
ref="addRoleForm" ref="addRoleForm"
:model="addRoleFormData" :model="addRoleFormData"
:rules="addRoleFormRules" :rules="addRoleFormRules"
label-width="100px" label-width="100px">
>
<el-form-item label="角色名称" prop="roleName"> <el-form-item label="角色名称" prop="roleName">
<el-input <el-input
v-model="addRoleFormData.roleName" v-model="addRoleFormData.roleName"
@ -322,6 +327,14 @@
show-word-limit show-word-limit
/> />
</el-form-item> </el-form-item>
<el-form-item label="角色代码" prop="roleCode">
<el-input
v-model="addRoleFormData.roleCode"
placeholder="请输入角色代码"
maxlength="50"
show-word-limit
/>
</el-form-item>
<el-form-item label="角色描述" prop="roleDescription"> <el-form-item label="角色描述" prop="roleDescription">
<el-input <el-input
v-model="addRoleFormData.roleDescription" v-model="addRoleFormData.roleDescription"
@ -332,7 +345,7 @@
show-word-limit show-word-limit
/> />
</el-form-item> </el-form-item>
</el-form> </el-form-item>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="handleAddRoleDialogClose"> <el-button @click="handleAddRoleDialogClose">
取消 取消
@ -864,10 +877,12 @@ export default {
? { ? {
id: this.addRoleFormData.roleId, id: this.addRoleFormData.roleId,
roleName: this.addRoleFormData.roleName, roleName: this.addRoleFormData.roleName,
roleCode: this.addRoleFormData.roleCode,
roleDescription: this.addRoleFormData.roleDescription roleDescription: this.addRoleFormData.roleDescription
} }
: { : {
roleName: this.addRoleFormData.roleName, roleName: this.addRoleFormData.roleName,
roleCode: this.addRoleFormData.roleCode,
roleDescription: this.addRoleFormData.roleDescription roleDescription: this.addRoleFormData.roleDescription
}, },
disableSuccessMsg: true disableSuccessMsg: true
@ -1105,7 +1120,7 @@ export default {
// //
loadDepartmentList() { loadDepartmentList() {
const request = { const request = {
...api.GET_SUB_DEPT, ...api.QUERY_ORG_TREE,
disableSuccessMsg: true disableSuccessMsg: true
} }
this.$request(request) this.$request(request)

View File

@ -84,7 +84,9 @@
</div> </div>
<div class="toolbar"> <div class="toolbar">
<el-button type="primary" @click="handleCreate">新增</el-button> <el-button type="primary" @click="handleCreate">
新增
</el-button>
<!-- <el-button @click="handleDownloadTemplate">下载模板</el-button> --> <!-- <el-button @click="handleDownloadTemplate">下载模板</el-button> -->
</div> </div>
<div class="page-data-list"> <div class="page-data-list">
@ -111,7 +113,9 @@
v-for="(colConfig, index) in tableConfig.colConfigs" v-for="(colConfig, index) in tableConfig.colConfigs"
v-slot:[colConfig.customHeadSlot]="{ column }" v-slot:[colConfig.customHeadSlot]="{ column }"
> >
<div v-if="colConfig.customHeadSlot" :key="index"> {{ column }} {{ colConfig }} </div> <div v-if="colConfig.customHeadSlot" :key="index">
{{ column }} {{ colConfig }}
</div>
</template> </template>
<template <template
@ -122,52 +126,60 @@
<span <span
v-if="row[colConfig.prop] === 'APPROVING'" v-if="row[colConfig.prop] === 'APPROVING'"
style="background: #E6A23C; padding: 4px 8px; color: white; border-radius: 20px;" style="background: #E6A23C; padding: 4px 8px; color: white; border-radius: 20px;"
>审核中</span
> >
审核中
</span>
<span <span
v-else-if="row[colConfig.prop] === 'COMPLETE'" v-else-if="row[colConfig.prop] === 'COMPLETE'"
style="background: #67C23A; padding: 4px 8px; color: white; border-radius: 20px;" style="background: #67C23A; padding: 4px 8px; color: white; border-radius: 20px;"
>已完成</span
> >
已完成
</span>
<span <span
v-else-if="row[colConfig.prop] === 'DRAFT'" v-else-if="row[colConfig.prop] === 'DRAFT'"
style="background: #909399; padding: 4px 8px; color: white; border-radius: 20px;" style="background: #909399; padding: 4px 8px; color: white; border-radius: 20px;"
>草稿</span
> >
草稿
</span>
<span <span
v-else-if="row[colConfig.prop] === 'REJECTED'" v-else-if="row[colConfig.prop] === 'REJECTED'"
style="background: #F56C6C; padding: 4px 8px; color: white; border-radius: 20px;" style="background: #F56C6C; padding: 4px 8px; color: white; border-radius: 20px;"
>已拒绝</span
> >
已拒绝
</span>
<span <span
v-else v-else
style="background: #909399; padding: 4px 8px; color: white; border-radius: 20px;" style="background: #909399; padding: 4px 8px; color: white; border-radius: 20px;"
>-</span
> >
-
</span>
</div> </div>
<div v-if="colConfig.customSlot === 'options'" :key="'op' + index + '' + rowIndex"> <div v-if="colConfig.customSlot === 'options'" :key="'op' + index + '' + rowIndex">
<a <a
href="javascript:void(0)" href="javascript:void(0)"
class="el-link el-link--primary" class="el-link el-link--primary"
@click.stop="handleRowView(row)" @click.stop="handleRowView(row)"
>查看</a
> >
查看
</a>
<span style="width: 6px; display: inline-block"></span> <span style="width: 6px; display: inline-block"></span>
<a <a
v-if="row.status !== 'APPROVING' && row.status !== 'COMPLETE'" v-if="false"
href="javascript:void(0)" href="javascript:void(0)"
class="el-link el-link--primary" class="el-link el-link--primary"
@click.stop="handleEdit(row)" @click.stop="handleEdit(row)"
>修改</a
> >
修改
</a>
<span style="width: 6px; display: inline-block"></span> <span style="width: 6px; display: inline-block"></span>
<a <a
v-if="row.status === 'APPROVING'" v-if="row.status === 'APPROVING'"
href="javascript:void(0)" href="javascript:void(0)"
class="el-link el-link--primary" class="el-link el-link--primary"
@click.stop="handleApprove(row)" @click.stop="handleApprove(row)"
>审批</a
> >
审批
</a>
<span <span
v-if="row.status === 'APPROVING'" v-if="row.status === 'APPROVING'"
style="width: 6px; display: inline-block" style="width: 6px; display: inline-block"
@ -177,8 +189,9 @@
href="javascript:void(0)" href="javascript:void(0)"
class="el-link el-link--primary" class="el-link el-link--primary"
@click.stop="handleLaunch(row)" @click.stop="handleLaunch(row)"
>发起</a
> >
发起
</a>
<span <span
v-if="!row.status || row.status === '' || row.status === 'DRAFT'" v-if="!row.status || row.status === '' || row.status === 'DRAFT'"
style="width: 6px; display: inline-block" style="width: 6px; display: inline-block"
@ -188,8 +201,9 @@
href="javascript:void(0)" href="javascript:void(0)"
class="el-link el-link--primary" class="el-link el-link--primary"
@click.stop="handleRestart(row)" @click.stop="handleRestart(row)"
>重新发起</a
> >
重新发起
</a>
<span <span
v-if="row.status === 'REJECTED'" v-if="row.status === 'REJECTED'"
style="width: 6px; display: inline-block" style="width: 6px; display: inline-block"
@ -199,8 +213,9 @@
href="javascript:void(0)" href="javascript:void(0)"
class="el-link el-link--primary" class="el-link el-link--primary"
@click.stop="handleDownload(row)" @click.stop="handleDownload(row)"
>下载</a
> >
下载
</a>
</div> </div>
</template> </template>
@ -344,8 +359,12 @@
</el-form> </el-form>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="handleDialogClose">取消</el-button> <el-button @click="handleDialogClose">
<el-button type="primary" @click="handleSubmit">确定</el-button> 取消
</el-button>
<el-button type="primary" @click="handleSubmit">
确定
</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -359,6 +378,18 @@
@close="handleLaunchDialogClose" @close="handleLaunchDialogClose"
> >
<div class="dialog-body-wrapper"> <div class="dialog-body-wrapper">
<div class="approval-process-title">
<div class="description-label">
流程主题 <span class="required-mark">*</span>
</div>
<el-input
v-model="launchProcessTitle"
maxlength="100"
show-word-limit
placeholder="请输入流程主题"
/>
</div>
<div class="approval-workflow"> <div class="approval-workflow">
<div class="workflow-title"> <div class="workflow-title">
审批环节 审批环节
@ -414,8 +445,12 @@
</div> </div>
</div> </div>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="handleLaunchDialogClose">取消</el-button> <el-button @click="handleLaunchDialogClose">
<el-button type="primary" :loading="launching" @click="handleLaunchSubmit">确定</el-button> 取消
</el-button>
<el-button type="primary" :loading="launching" @click="handleLaunchSubmit">
确定
</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -503,6 +538,7 @@ export default {
currentEditRow: null, // currentEditRow: null, //
launchDialogVisible: false, // launchDialogVisible: false, //
currentLaunchRow: null, // currentLaunchRow: null, //
launchProcessTitle: '',
launchWorkflowSteps: [ launchWorkflowSteps: [
{ {
name: '校对', name: '校对',
@ -717,6 +753,7 @@ export default {
}, },
handleLaunch(row) { handleLaunch(row) {
this.currentLaunchRow = row this.currentLaunchRow = row
this.launchProcessTitle = row.title || ''
// //
this.launchWorkflowSteps = [ this.launchWorkflowSteps = [
{ {
@ -746,6 +783,7 @@ export default {
handleLaunchDialogClose() { handleLaunchDialogClose() {
this.launchDialogVisible = false this.launchDialogVisible = false
this.currentLaunchRow = null this.currentLaunchRow = null
this.launchProcessTitle = ''
// //
this.launchWorkflowSteps = [ this.launchWorkflowSteps = [
{ {
@ -787,6 +825,13 @@ export default {
return return
} }
//
const processTitle = (this.launchProcessTitle || '').trim()
if (!processTitle) {
this.$message.warning('请填写流程主题')
return
}
const reportId = this.currentLaunchRow.reportId || this.currentLaunchRow.id const reportId = this.currentLaunchRow.reportId || this.currentLaunchRow.id
if (!reportId) { if (!reportId) {
this.$message.error('缺少报告ID') this.$message.error('缺少报告ID')
@ -797,6 +842,7 @@ export default {
const submitData = { const submitData = {
reportId: reportId, reportId: reportId,
userId: getUserId(), userId: getUserId(),
processTitle: processTitle,
proofreadUsers: this.launchWorkflowSteps[0].handlers, proofreadUsers: this.launchWorkflowSteps[0].handlers,
reviewUsers: this.launchWorkflowSteps[1].handlers, reviewUsers: this.launchWorkflowSteps[1].handlers,
countersignUsers: [], countersignUsers: [],

File diff suppressed because it is too large Load Diff