|
|
@@ -84,13 +84,13 @@
|
|
|
<el-col :span="1.5">
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['stgl:activity:add']">新增</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5" v-if="!single && selectedActivity && ['0', '7', '6'].includes(selectedActivity.activityStatus) && hasActivityOperationPermission(selectedActivity)">
|
|
|
+ <el-col :span="1.5" v-if="!single && selectedActivity && ['0', '7', '6'].includes(getOriginalActivityStatus(selectedActivity)) && hasActivityOperationPermission(selectedActivity)">
|
|
|
<el-button icon="Edit" @click="handleUpdate()" v-hasPermi="['stgl:activity:edit']">修改</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5" v-if="!single && selectedActivity && selectedActivity.activityStatus === '0' && hasActivityOperationPermission(selectedActivity)">
|
|
|
+ <el-col :span="1.5" v-if="!single && selectedActivity && getOriginalActivityStatus(selectedActivity) === '0' && hasActivityOperationPermission(selectedActivity)">
|
|
|
<el-button type="success" icon="Upload" @click="handleSubmit()" v-hasPermi="['stgl:activity:edit']">提交</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5" v-if="!single && selectedActivity && selectedActivity.activityStatus === '2' && hasActivityOperationPermission(selectedActivity)">
|
|
|
+ <el-col :span="1.5" v-if="!single && selectedActivity && getOriginalActivityStatus(selectedActivity) === '2' && hasActivityOperationPermission(selectedActivity)">
|
|
|
<el-button type="warning" icon="Check" @click="handleApprove()" v-hasPermi="['stgl:activity:approve']">审批</el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5" v-if="!single && selectedActivity && ['3', '4'].includes(selectedActivity.activityStatus) && hasActivityOperationPermission(selectedActivity)">
|
|
|
@@ -102,10 +102,10 @@
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
icon="Delete"
|
|
|
- :disabled="multiple || !['0', '7'].includes(selectedActivity?.activityStatus || '')"
|
|
|
+ :disabled="multiple || !['0', '7'].includes(getOriginalActivityStatus(selectedActivity) || '')"
|
|
|
@click="handleDelete()"
|
|
|
v-hasPermi="['stgl:activity:remove']"
|
|
|
- :title="selectedActivity && !['0', '7'].includes(selectedActivity.activityStatus) ? '只有草稿和已驳回状态的活动可以删除' : ''"
|
|
|
+ :title="selectedActivity && !['0', '7'].includes(getOriginalActivityStatus(selectedActivity)) ? '只有草稿和已驳回状态的活动可以删除' : ''"
|
|
|
>删除</el-button
|
|
|
>
|
|
|
</el-col>
|
|
|
@@ -209,7 +209,7 @@
|
|
|
v-hasPermi="['stgl:activity:query']"
|
|
|
></el-button>
|
|
|
</el-tooltip>
|
|
|
- <el-tooltip content="修改" placement="top" v-if="['0', '7', '6'].includes(scope.row.activityStatus) && hasActivityOperationPermission(scope.row)">
|
|
|
+ <el-tooltip content="修改" placement="top" v-if="['0', '7', '6'].includes(getOriginalActivityStatus(scope.row)) && hasActivityOperationPermission(scope.row)">
|
|
|
<el-button
|
|
|
link
|
|
|
type="primary"
|
|
|
@@ -220,7 +220,7 @@
|
|
|
v-hasPermi="['stgl:activity:edit']"
|
|
|
></el-button>
|
|
|
</el-tooltip>
|
|
|
- <el-tooltip content="提交" placement="top" v-if="scope.row.activityStatus === '0' && hasActivityOperationPermission(scope.row)">
|
|
|
+ <el-tooltip content="提交" placement="top" v-if="getOriginalActivityStatus(scope.row) === '0' && hasActivityOperationPermission(scope.row)">
|
|
|
<el-button
|
|
|
link
|
|
|
type="success"
|
|
|
@@ -231,7 +231,7 @@
|
|
|
v-hasPermi="['stgl:activity:edit']"
|
|
|
></el-button>
|
|
|
</el-tooltip>
|
|
|
- <el-tooltip content="审批" placement="top" v-if="scope.row.activityStatus === '2' && hasActivityOperationPermission(scope.row)">
|
|
|
+ <el-tooltip content="审批" placement="top" v-if="getOriginalActivityStatus(scope.row) === '2' && hasActivityOperationPermission(scope.row)">
|
|
|
<el-button
|
|
|
link
|
|
|
type="warning"
|
|
|
@@ -286,7 +286,7 @@
|
|
|
v-hasPermi="['stgl:activity:query']"
|
|
|
></el-button>
|
|
|
</el-tooltip>
|
|
|
- <el-tooltip content="删除" placement="top" v-if="['0', '7'].includes(scope.row.activityStatus) && hasActivityOperationPermission(scope.row)">
|
|
|
+ <el-tooltip content="删除" placement="top" v-if="['0', '7'].includes(getOriginalActivityStatus(scope.row)) && hasActivityOperationPermission(scope.row)">
|
|
|
<el-button
|
|
|
link
|
|
|
type="danger"
|
|
|
@@ -1014,8 +1014,9 @@ const handleUpdate = async (row?: StglActivityVO) => {
|
|
|
const res = await getStglActivity(_id);
|
|
|
|
|
|
// 检查活动状态是否允许修改(只有草稿0、已驳回7、已取消6状态允许修改)
|
|
|
- if (!['0', '7', '6'].includes(res.data.activityStatus)) {
|
|
|
- const statusDict = stgl_activity_status.value.find((dict: any) => dict.value === res.data.activityStatus);
|
|
|
+ const originalStatus = getOriginalActivityStatus(res.data);
|
|
|
+ if (!['0', '7', '6'].includes(originalStatus)) {
|
|
|
+ const statusDict = stgl_activity_status.value.find((dict: any) => dict.value === originalStatus);
|
|
|
const statusName = statusDict ? statusDict.label : '当前状态';
|
|
|
proxy?.$modal.msgWarning(`活动状态为"${statusName}",不允许修改`);
|
|
|
return;
|
|
|
@@ -1276,8 +1277,9 @@ const handleDelete = async (row?: StglActivityVO) => {
|
|
|
|
|
|
// 检查删除权限 - 只有草稿(状态0)和已驳回(状态7)的活动可以删除
|
|
|
if (row) {
|
|
|
- if (!['0', '7'].includes(row.activityStatus)) {
|
|
|
- const statusDict = stgl_activity_status.value.find((dict: any) => dict.value === row.activityStatus);
|
|
|
+ const originalStatus = getOriginalActivityStatus(row);
|
|
|
+ if (!['0', '7'].includes(originalStatus)) {
|
|
|
+ const statusDict = stgl_activity_status.value.find((dict: any) => dict.value === originalStatus);
|
|
|
const statusName = statusDict ? statusDict.label : '当前状态';
|
|
|
proxy?.$modal.msgWarning(`活动状态为"${statusName}",只有草稿和已驳回状态的活动可以删除`);
|
|
|
return;
|
|
|
@@ -1287,7 +1289,7 @@ const handleDelete = async (row?: StglActivityVO) => {
|
|
|
const selectedItems = activityList.value.filter((item) => ids.value.includes(item.id));
|
|
|
|
|
|
// 检查选中的活动是否都是草稿或已驳回状态
|
|
|
- const nonDeletableItems = selectedItems.filter((item) => !['0', '7'].includes(item.activityStatus));
|
|
|
+ const nonDeletableItems = selectedItems.filter((item) => !['0', '7'].includes(getOriginalActivityStatus(item)));
|
|
|
if (nonDeletableItems.length > 0) {
|
|
|
const names = nonDeletableItems.map((item) => item.activityName).join('、');
|
|
|
proxy?.$modal.msgWarning(`活动"${names}"不是草稿或已驳回状态,只有草稿和已驳回状态的活动可以删除`);
|
|
|
@@ -1505,6 +1507,7 @@ const handleRegistrationTypeChange = (value: string) => {
|
|
|
/** 判断是否显示总结按钮 */
|
|
|
const shouldShowSummaryButton = (row: StglActivityVO): boolean => {
|
|
|
// 只有进行中(4)和已结束(5)状态的活动才显示总结按钮
|
|
|
+ // 注意:这里使用显示状态,因为总结功能应该基于活动的实际进行状态
|
|
|
return row.activityStatus === '4' || row.activityStatus === '5';
|
|
|
};
|
|
|
|
|
|
@@ -1716,6 +1719,13 @@ const hasActivityOperationPermission = (activity: StglActivityVO): boolean => {
|
|
|
return false;
|
|
|
};
|
|
|
|
|
|
+/** 获取原始活动状态(用于权限控制) */
|
|
|
+const getOriginalActivityStatus = (activity: StglActivityVO | null): string => {
|
|
|
+ if (!activity) return '';
|
|
|
+ // 优先使用 originalActivityStatus 字段,如果不存在则使用 activityStatus
|
|
|
+ return activity.originalActivityStatus || activity.activityStatus || '';
|
|
|
+};
|
|
|
+
|
|
|
onMounted(() => {
|
|
|
initUrlParams();
|
|
|
getList();
|