feat: 任务标题改为SPU+品牌+平台,SPU输入限制大写字母和数字
This commit is contained in:
parent
f801ffefb8
commit
a6d620d114
@ -657,11 +657,11 @@ public class TaskApprovalService {
|
||||
|
||||
if (allowedDeptIds != null && !allowedDeptIds.isEmpty()) {
|
||||
String[] deptIds = allowedDeptIds.split(",");
|
||||
if (deptIds.length > 0) {
|
||||
Long deptId = Long.parseLong(deptIds[0].trim());
|
||||
Department dept = departmentMapper.selectById(deptId);
|
||||
if (dept != null && dept.getLeaderId() != null) {
|
||||
return dept.getLeaderId();
|
||||
if (deptIds.length > 0) {
|
||||
Long deptId = Long.parseLong(deptIds[0].trim());
|
||||
Department dept = departmentMapper.selectById(deptId);
|
||||
if (dept != null && dept.getLeaderId() != null) {
|
||||
return dept.getLeaderId();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,17 +157,17 @@ public class TaskItemService {
|
||||
}
|
||||
|
||||
if (allowedDeptIds != null && !allowedDeptIds.isEmpty()) {
|
||||
// 检查用户部门是否在允许列表中
|
||||
// 检查用户部门是否在允许列表中
|
||||
String[] allowedIds = allowedDeptIds.split(",");
|
||||
boolean isAllowed = false;
|
||||
for (String allowedId : allowedIds) {
|
||||
if (allowedId.trim().equals(String.valueOf(user.getDeptId()))) {
|
||||
isAllowed = true;
|
||||
break;
|
||||
}
|
||||
boolean isAllowed = false;
|
||||
for (String allowedId : allowedIds) {
|
||||
if (allowedId.trim().equals(String.valueOf(user.getDeptId()))) {
|
||||
isAllowed = true;
|
||||
break;
|
||||
}
|
||||
if (!isAllowed) {
|
||||
throw new BusinessException(ResultCode.FORBIDDEN, "您的部门无权接收此类型的任务");
|
||||
}
|
||||
if (!isAllowed) {
|
||||
throw new BusinessException(ResultCode.FORBIDDEN, "您的部门无权接收此类型的任务");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,7 +52,7 @@
|
||||
/>
|
||||
<div class="title-auto-tip">
|
||||
<Icon name="info" size="xs" style="margin-right: 4px;" />
|
||||
<span>标题将根据SPU信息、平台、品牌、任务子类型、需求类型自动生成</span>
|
||||
<span>标题将根据SPU、品牌、平台自动生成</span>
|
||||
</div>
|
||||
</a-form-item>
|
||||
|
||||
@ -352,11 +352,11 @@
|
||||
|
||||
<!-- SPU信息 -->
|
||||
<a-form-item label="SPU信息" name="spuInfo">
|
||||
<a-textarea
|
||||
<a-input
|
||||
v-model:value="formData.spuInfo"
|
||||
placeholder="请输入SPU信息"
|
||||
:rows="2"
|
||||
placeholder="请输入SPU编号(仅支持大写字母和数字)"
|
||||
size="large"
|
||||
@input="handleSpuInput"
|
||||
/>
|
||||
</a-form-item>
|
||||
|
||||
@ -890,7 +890,15 @@ const removeTaskType = (index: number) => {
|
||||
}
|
||||
}
|
||||
|
||||
// 自动生成任务标题
|
||||
// 处理SPU输入(只允许大写字母和数字)
|
||||
const handleSpuInput = (e: Event) => {
|
||||
const input = e.target as HTMLInputElement
|
||||
// 移除非大写字母和数字的字符,同时将小写字母转为大写
|
||||
const filtered = input.value.toUpperCase().replace(/[^A-Z0-9]/g, '')
|
||||
formData.spuInfo = filtered
|
||||
}
|
||||
|
||||
// 自动生成任务标题(SPU + 品牌名 + 平台名)
|
||||
const generateTitle = () => {
|
||||
const parts: string[] = []
|
||||
|
||||
@ -899,15 +907,7 @@ const generateTitle = () => {
|
||||
parts.push(formData.spuInfo.trim())
|
||||
}
|
||||
|
||||
// 2. 平台名称
|
||||
if (formData.platformId) {
|
||||
const platform = platforms.value.find((p: any) => p.id === formData.platformId)
|
||||
if (platform) {
|
||||
parts.push(platform.name)
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 品牌名称
|
||||
// 2. 品牌名称
|
||||
if (formData.brandId) {
|
||||
const brand = brands.value.find((b: any) => b.id === formData.brandId)
|
||||
if (brand) {
|
||||
@ -915,16 +915,11 @@ const generateTitle = () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 4. 任务子类型
|
||||
if (formData.taskSubType) {
|
||||
parts.push(formData.taskSubType)
|
||||
}
|
||||
|
||||
// 5. 需求类型(第一个任务类型名称)
|
||||
if (formData.taskTypes.length > 0 && formData.taskTypes[0].taskTypeId) {
|
||||
const taskType = getTaskTypeInfo(formData.taskTypes[0].taskTypeId)
|
||||
if (taskType) {
|
||||
parts.push(taskType.name)
|
||||
// 3. 平台名称
|
||||
if (formData.platformId) {
|
||||
const platform = platforms.value.find((p: any) => p.id === formData.platformId)
|
||||
if (platform) {
|
||||
parts.push(platform.name)
|
||||
}
|
||||
}
|
||||
|
||||
@ -934,20 +929,16 @@ const generateTitle = () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 监听相关字段变化,自动生成标题
|
||||
// 监听相关字段变化,自动生成标题(SPU + 品牌 + 平台)
|
||||
watch(
|
||||
() => [
|
||||
formData.spuInfo,
|
||||
formData.platformId,
|
||||
formData.brandId,
|
||||
formData.taskSubType,
|
||||
formData.taskTypes[0]?.taskTypeId
|
||||
formData.platformId
|
||||
],
|
||||
() => {
|
||||
// 只有当标题为空或是之前自动生成的标题时才自动更新
|
||||
generateTitle()
|
||||
},
|
||||
{ deep: true }
|
||||
}
|
||||
)
|
||||
|
||||
// 计算预估积分(累加所有任务类型)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user