diff --git a/frontend/dist.tar.gz b/frontend/dist.tar.gz index e773fd8..666ec83 100644 Binary files a/frontend/dist.tar.gz and b/frontend/dist.tar.gz differ diff --git a/frontend/src/views/CreateTask.vue b/frontend/src/views/CreateTask.vue index 215176c..92e6bd6 100644 --- a/frontend/src/views/CreateTask.vue +++ b/frontend/src/views/CreateTask.vue @@ -56,15 +56,25 @@ + + + + + - +
顺序流水线模式:子任务按顺序完成,前一个完成后才能开始下一个。适合有先后依赖的任务(如:出图 → 修图 → 排版)。流水线任务可由多个设计师协作完成,每个设计师负责不同的子任务。
- +
{ + const userInfo = authStore.userInfo as any + if (!userInfo) return false + return userInfo.deptType === 'primary_demand' +}) + +// 判断是否应该显示任务明细区域 +// 对于一级需求部门用户,需要根据系统配置决定是否显示 +const shouldShowTaskDetail = computed(() => { + // 如果是一级需求部门用户 + if (isPrimaryDeptUser.value) { + // 根据系统配置决定是否显示任务明细 + return primaryDeptConfig.value.canFillDetail + } + // 其他部门用户始终显示 + return true +}) + // 文件上传相关 const fileList = ref([]) const uploadProgress = ref(0) @@ -2137,6 +2171,11 @@ const loadReleaseTypeConfig = async () => { formData.releaseType = 'assigned' } } + + // 加载一级需求部门配置 + primaryDeptConfig.value = { + canFillDetail: res.data['primary_dept_can_fill_detail'] === 'true' + } } // 加载工作时间配置 try { diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index b357948..e4001a4 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -1318,6 +1318,52 @@ + +
+

一级需求部门设置

+

配置一级需求部门发布任务时的表单选项

+
+ + + + + 任务明细填写 + + +
+
+
+ + 一级需求部门可填写任务明细 +
+
+ 开启后,一级需求部门发布任务时可以选填任务明细。
+ 关闭后,一级需求部门无法填写任务明细,任务明细将完全由需求部门成员填写。 +
+ +
+
+ + + + + + + 保存配置 + + +
+

延误扣分配置

@@ -4770,6 +4816,13 @@ const taskReleaseConfig = ref({ const savingTaskReleaseConfig = ref(false) +// ==================== 一级需求部门配置 ==================== +const primaryDeptConfig = ref({ + canFillDetail: false // 一级需求部门是否可以填写任务明细 +}) + +const savingPrimaryDeptConfig = ref(false) + // ==================== 延误扣分配置 ==================== const delayPenaltyConfig = ref({ perHour: 0.5, // 每小时扣分 @@ -4919,6 +4972,12 @@ const loadTaskReleaseConfig = async () => { recruitment: recruitmentConfig?.configValue !== 'false', assigned: assignedConfig?.configValue !== 'false' } + + // 加载一级需求部门配置 + const primaryDeptCanFillDetailConfig = configs.find((c: any) => c.configKey === 'primary_dept_can_fill_detail') + primaryDeptConfig.value = { + canFillDetail: primaryDeptCanFillDetailConfig?.configValue === 'true' + } } catch (error) { console.error('加载任务发布类型配置失败:', error) } @@ -4963,6 +5022,21 @@ const handleResetTaskReleaseConfig = () => { }) } +// 保存一级需求部门配置 +const handleSavePrimaryDeptConfig = async () => { + savingPrimaryDeptConfig.value = true + try { + await batchUpdateSystemConfigs({ + 'primary_dept_can_fill_detail': primaryDeptConfig.value.canFillDetail.toString() + }) + message.success('一级需求部门配置保存成功') + } catch (error: any) { + message.error(error.message || '保存失败') + } finally { + savingPrimaryDeptConfig.value = false + } +} + // 加载网站设置 const loadSiteSettings = async () => { loadingSiteSettings.value = true