diff --git a/src/api/business/penalty-apply/penalty-apply-api.js b/src/api/business/penalty-apply/penalty-apply-api.js index d18bc47..8097306 100644 --- a/src/api/business/penalty-apply/penalty-apply-api.js +++ b/src/api/business/penalty-apply/penalty-apply-api.js @@ -5,7 +5,7 @@ * @Date: 2026-01-07 21:36:44 * @Copyright 1.0 */ -import { postRequest, getRequest } from '/@/lib/axios'; +import { postRequest, getRequest, getDownload } from '/@/lib/axios'; export const penaltyApplyApi = { @@ -45,4 +45,11 @@ export const penaltyApplyApi = { return postRequest('/penaltyApply/batchDelete', idList); }, + /** + * 无处罚证明下载 @author wzh + */ + exportWordCertificate: (id) => { + return getDownload(`/wordCertificate/export/${id}`); + }, + }; diff --git a/src/views/business/erp/penalty-apply/penalty-apply-list.vue b/src/views/business/erp/penalty-apply/penalty-apply-list.vue index c7a9dcb..abbf073 100644 --- a/src/views/business/erp/penalty-apply/penalty-apply-list.vue +++ b/src/views/business/erp/penalty-apply/penalty-apply-list.vue @@ -51,12 +51,6 @@ 新建 - - - 批量删除 -
@@ -80,9 +74,8 @@ @@ -135,6 +128,7 @@ import { message, Modal } from 'ant-design-vue'; import { SmartLoading } from '/@/components/framework/smart-loading'; import { penaltyApplyApi } from '/@/api/business/penalty-apply/penalty-apply-api'; +import { loginApi } from '/@/api/system/login-api'; import { PAGE_SIZE_OPTIONS } from '/@/constants/common-const'; import { REVIEW_ENUM } from '/@/constants/system/review-const'; import { smartSentry } from '/@/lib/smart-sentry'; @@ -203,6 +197,15 @@ import PenaltyApplyForm from './penalty-apply-form.vue'; // 总数 const total = ref(0); + // 登录用户信息 + const loginInfo = ref(null); + + // 判断用户是否为CEO角色 + const isCeo = ref(false); + + // 判断用户是否为User角色 + const isUser = ref(false); + // 重置查询条件 function resetQuery() { let pageSize = queryForm.pageSize; @@ -243,7 +246,39 @@ import PenaltyApplyForm from './penalty-apply-form.vue'; } - onMounted(queryData); + onMounted(() => { + getLoginInfo(); + queryData(); + }); + + // 获取登录信息 + async function getLoginInfo() { + try { + const res = await loginApi.getLoginInfo(); + loginInfo.value = res.data; + checkUserRole(); // 获取登录信息后检查用户角色 + console.log('登录信息:', res.data); + } catch (error) { + console.error('获取登录信息失败:', error); + } + } + + // 检查用户角色 + function checkUserRole() { + if (loginInfo.value) { + // 根据用户角色判断权限 + const userRole = loginInfo.value.roleCode || loginInfo.value.roleName || ''; + const roleLower = userRole.toLowerCase(); + + // CEO角色判断 + isCeo.value = roleLower === 'ceo'; + + // User角色判断 + isUser.value = roleLower === 'user'; + + console.log('用户角色:', userRole, 'isCeo:', isCeo.value, 'isUser:', isUser.value); + } + } // ---------------------------- 添加/修改 ---------------------------- const formRef = ref(); @@ -345,9 +380,14 @@ import PenaltyApplyForm from './penalty-apply-form.vue'; // ---------------------------- 下载相关 ---------------------------- // 处理下载 function handleDownload(record) { - // 这里需要调用下载API - console.log('下载无处罚证明:', record); - message.info('下载功能待实现'); + try { + // 调用下载API,getDownload函数会自动处理文件下载 + penaltyApplyApi.exportWordCertificate(record.id); + message.success('下载请求已发送'); + } catch (error) { + console.error('下载失败:', error); + message.error('下载失败,请稍后重试'); + } } // ---------------------------- 批量删除 ---------------------------- diff --git a/src/views/business/erp/service/ceo-service-detail.vue b/src/views/business/erp/service/ceo-service-detail.vue index 0f6b3f7..6a0af41 100644 --- a/src/views/business/erp/service/ceo-service-detail.vue +++ b/src/views/business/erp/service/ceo-service-detail.vue @@ -267,7 +267,7 @@ import { message } from 'ant-design-vue'; import { serviceApplicationsApi } from '/@/api/business/service-applications/service-applications-api'; import DepartmentTreeSelect from '/@/components/system/department-tree-select/index.vue'; import ServiceApplicationsForm from './service-applications-form.vue'; -import TableOperator from '/@/components/smart-table/table-operator/index.vue'; +import TableOperator from '/@/components/support/table-operator/index.vue'; const router = useRouter(); const route = useRoute(); diff --git a/src/views/business/erp/service/law-firm-statistics.vue b/src/views/business/erp/service/law-firm-statistics.vue index 422db05..e1db92e 100644 --- a/src/views/business/erp/service/law-firm-statistics.vue +++ b/src/views/business/erp/service/law-firm-statistics.vue @@ -106,6 +106,9 @@