|
|
@ -260,6 +260,7 @@ |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<ServiceApplicationsForm ref="formRef" @reloadList="queryData"/> |
|
|
<ServiceApplicationsForm ref="formRef" @reloadList="queryData"/> |
|
|
|
|
|
<AgreementModal ref="agreementModalRef" @confirm="handleAgreementConfirm" /> |
|
|
|
|
|
|
|
|
<!-- 导入弹窗 --> |
|
|
<!-- 导入弹窗 --> |
|
|
<a-modal v-model:open="importModalShowFlag" title="导入" @onCancel="hideImportModal" @ok="hideImportModal"> |
|
|
<a-modal v-model:open="importModalShowFlag" title="导入" @onCancel="hideImportModal" @ok="hideImportModal"> |
|
|
@ -311,6 +312,7 @@ import { employeeApi } from '/@/api/system/employee-api'; |
|
|
import { REVIEW_ENUM } from '/@/constants/system/review-const'; |
|
|
import { REVIEW_ENUM } from '/@/constants/system/review-const'; |
|
|
import { PlusOutlined, DeleteOutlined, SendOutlined, ImportOutlined, ExportOutlined, DownloadOutlined, UploadOutlined, CheckCircleOutlined } from '@ant-design/icons-vue'; |
|
|
import { PlusOutlined, DeleteOutlined, SendOutlined, ImportOutlined, ExportOutlined, DownloadOutlined, UploadOutlined, CheckCircleOutlined } from '@ant-design/icons-vue'; |
|
|
import { loginApi } from '/@/api/system/login-api'; |
|
|
import { loginApi } from '/@/api/system/login-api'; |
|
|
|
|
|
import AgreementModal from '/@/views/system/home/components/agreement-modal.vue'; |
|
|
// ---------------------------- 表格列 ---------------------------- |
|
|
// ---------------------------- 表格列 ---------------------------- |
|
|
|
|
|
|
|
|
const columns = ref([ |
|
|
const columns = ref([ |
|
|
@ -497,7 +499,6 @@ import { loginApi } from '/@/api/system/login-api'; |
|
|
// cto角色则额外显示批量上报按钮 |
|
|
// cto角色则额外显示批量上报按钮 |
|
|
isCtoRole.value = roleLower === 'cto'; |
|
|
isCtoRole.value = roleLower === 'cto'; |
|
|
|
|
|
|
|
|
// 协会角色(协会角色显示驳回按钮) |
|
|
|
|
|
// 协会角色(协会角色显示驳回按钮) |
|
|
// 协会角色(协会角色显示驳回按钮) |
|
|
isAssociationRole.value = roleLower.includes('协会') || |
|
|
isAssociationRole.value = roleLower.includes('协会') || |
|
|
roleLower.includes('association') || |
|
|
roleLower.includes('association') || |
|
|
@ -513,26 +514,24 @@ import { loginApi } from '/@/api/system/login-api'; |
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
|
|
|
|
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
console.log('用户角色:', userRole, '不是user:', isNotUser.value, '是cto:', isCtoRole.value, '是协会角色:', isAssociationRole.value, '是CEO:', isCeo.value); |
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
} |
|
|
|
|
|
} |
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
|
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
|
|
|
|
|
|
|
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
|
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
|
|
|
|
|
|
|
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
|
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
|
|
|
|
|
|
|
|
|
// CEO角色判断(CEO不显示新建申报和批量提交按钮) |
|
|
// 检查用户是否已签约 |
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
function checkUserSigned() { |
|
|
|
|
|
if (!loginInfo.value) { |
|
|
|
|
|
console.log('未获取到登录信息'); |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// CEO角色 |
|
|
// 从用户信息接口获取agreementSignFlag字段 |
|
|
isCeo.value = roleLower === 'ceo'; |
|
|
const agreementSignFlag = loginInfo.value.agreementSignFlag; |
|
|
|
|
|
console.log('用户签约状态 agreementSignFlag:', agreementSignFlag); |
|
|
|
|
|
|
|
|
console.log('用户角色:', userRole, '不是user:', isNotUser.value, '是cto:', isCtoRole.value, '是协会角色:', isAssociationRole.value, '是CEO:', isCeo.value); |
|
|
// true代表已签约,不需要弹框 |
|
|
} |
|
|
// false或undefined代表未签约,需要弹框 |
|
|
|
|
|
return agreementSignFlag === true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 批量审核 |
|
|
// 批量审核 |
|
|
@ -801,11 +800,39 @@ onMounted(async () => { |
|
|
queryData(); |
|
|
queryData(); |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------- 承诺书弹框 ---------------------------- |
|
|
|
|
|
const agreementModalRef = ref(); |
|
|
|
|
|
const pendingFormData = ref(null); // 暂存表单数据 |
|
|
|
|
|
|
|
|
|
|
|
// 显示承诺书弹框 |
|
|
|
|
|
function showAgreementModal(data) { |
|
|
|
|
|
pendingFormData.value = data; |
|
|
|
|
|
agreementModalRef.value.showDrawer(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 承诺书确认回调 |
|
|
|
|
|
function handleAgreementConfirm() { |
|
|
|
|
|
// 用户同意协议,继续显示表单 |
|
|
|
|
|
if (pendingFormData.value) { |
|
|
|
|
|
formRef.value.show(pendingFormData.value); |
|
|
|
|
|
} else { |
|
|
|
|
|
formRef.value.show(); |
|
|
|
|
|
} |
|
|
|
|
|
pendingFormData.value = null; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// ---------------------------- 添加/修改 ---------------------------- |
|
|
// ---------------------------- 添加/修改 ---------------------------- |
|
|
const formRef = ref(); |
|
|
const formRef = ref(); |
|
|
|
|
|
|
|
|
function showForm(data) { |
|
|
function showForm(data) { |
|
|
|
|
|
// 检查用户是否已签约 |
|
|
|
|
|
if (checkUserSigned()) { |
|
|
|
|
|
// 已签约,直接显示表单 |
|
|
formRef.value.show(data); |
|
|
formRef.value.show(data); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 未签约,先显示承诺书弹框 |
|
|
|
|
|
showAgreementModal(data); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// ---------------------------- 详情 ---------------------------- |
|
|
// ---------------------------- 详情 ---------------------------- |
|
|
|