feat: 会议提交剩余时间+解冻 + 会务/劳务材料批量下载 + 多角色人员/账号模块完善

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
郭庆泰
2026-08-25 06:53:18 +08:00
co-authored by Claude
parent 0c882ae846
commit 591a43fe61
126 changed files with 3789 additions and 1334 deletions
@@ -1,6 +1,6 @@
<template>
<!--
共享服务机构管理页 (admin/manager 共用, 通过 route.path 区分角色)
共享执行单位管理页 (admin/manager 共用, 通过 route.path 区分角色)
- 筛选: 两角色一致 (orgName / taxNo / status)
- 新增/编辑: admin (表单 + 保存)
- 启用/禁用: 两角色都有 (沿用原两版本行为)
@@ -9,12 +9,12 @@
- sponsor-orgs/SponsorOrgs.vue 高度相似, 但按用户要求不抽公共组件
-->
<div class="page-card executor-orgs">
<div class="breadcrumb">首页 / 服务机构管理</div>
<div class="breadcrumb">首页 / 执行单位管理</div>
<!-- ========== 筛选区 ========== -->
<el-form inline :model="q" class="filter-form">
<el-form-item label="公司名称">
<el-input v-model="q.orgName" placeholder="输入公司名称" clearable style="width:200px" />
<el-form-item label="单位名称">
<el-input v-model="q.orgName" placeholder="输入单位名称" clearable style="width:200px" />
</el-form-item>
<el-form-item label="税号/统一社会信用代码">
<el-input v-model="q.taxNo" placeholder="输入税号" clearable style="width:220px" />
@@ -33,15 +33,15 @@
<!-- ========== 批量按钮区 ========== -->
<div class="batch-bar">
<!-- admin 可新建服务机构 -->
<el-button v-if="isAdmin" type="primary" @click="openAdd">新增服务机构</el-button>
<!-- admin 可新建执行单位 -->
<el-button v-if="isAdmin" type="primary" @click="openAdd">新增执行单位</el-button>
</div>
<!-- ========== 表格 ========== -->
<el-table :data="rows" v-loading="loading" stripe border>
<el-table-column type="index" label="#" width="50" />
<el-table-column prop="orgName" label="公司名称" min-width="200" show-overflow-tooltip />
<el-table-column prop="address" label="公司地址" min-width="220" show-overflow-tooltip />
<el-table-column prop="orgName" label="单位名称" min-width="200" show-overflow-tooltip />
<el-table-column prop="address" label="单位地址" min-width="220" show-overflow-tooltip />
<el-table-column prop="taxNo" label="税号/统一社会信用代码" min-width="180" />
<el-table-column label="合作状态" width="100" align="center">
<template #default="{ row }">
@@ -82,11 +82,11 @@
</div>
<!-- ========== 详情弹窗 (沿用 manager el-descriptions 风格, 更清晰) ========== -->
<el-dialog v-model="detailOpen" title="服务机构详情" width="640px" v-if="currentRow">
<el-dialog v-model="detailOpen" title="执行单位详情" width="640px" v-if="currentRow">
<el-descriptions :column="1" border>
<el-descriptions-item label="公司类型"><el-tag type="primary">执行方</el-tag></el-descriptions-item>
<el-descriptions-item label="公司名称">{{ currentRow.orgName }}</el-descriptions-item>
<el-descriptions-item label="公司地址">{{ currentRow.address || '-' }}</el-descriptions-item>
<el-descriptions-item label="单位名称">{{ currentRow.orgName }}</el-descriptions-item>
<el-descriptions-item label="单位地址">{{ currentRow.address || '-' }}</el-descriptions-item>
<el-descriptions-item label="税号/统一社会信用代码">{{ currentRow.taxNo || '-' }}</el-descriptions-item>
<el-descriptions-item label="合作状态">
<el-tag :type="statusTagType(currentRow.status)">{{ currentRow.status === '1' ? '禁用' : '正常' }}</el-tag>
@@ -101,12 +101,12 @@
</el-dialog>
<!-- ========== 新增/编辑弹窗 ( admin) ========== -->
<el-dialog v-if="isAdmin" v-model="dialogVisible" :title="isEdit ? '编辑服务机构' : '新增服务机构'" width="640px">
<el-dialog v-if="isAdmin" v-model="dialogVisible" :title="isEdit ? '编辑执行单位' : '新增执行单位'" width="640px">
<el-form :model="form" label-width="140px" :rules="rules" ref="formRef">
<el-form-item label="公司名称" prop="orgName">
<el-form-item label="单位名称" prop="orgName">
<el-input v-model="form.orgName" />
</el-form-item>
<el-form-item label="公司地址">
<el-form-item label="单位地址">
<el-input v-model="form.address" />
</el-form-item>
<el-form-item label="税号/统一社会信用代码">
@@ -222,7 +222,7 @@ const form = reactive({
contactName: '', contactPhone: '', status: '0'
})
const rules = {
orgName: [{ required: true, message: '请输入公司名称', trigger: 'blur' }]
orgName: [{ required: true, message: '请输入单位名称', trigger: 'blur' }]
}
function openAdd() {