履约验收

This commit is contained in:
吴红兵
2026-02-25 12:03:50 +08:00
parent c6ddf30116
commit 50e4cf71c7
5 changed files with 35 additions and 5 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -189,9 +189,9 @@ const form = reactive({
acceptDate: '', acceptDate: '',
acceptContents: [] as any[], acceptContents: [] as any[],
acceptTeam: [ acceptTeam: [
{ name: '', deptCode: '', deptName: '', roleType: '' }, { name: '', deptCode: '', deptName: '', teacherNo: '', roleType: '' },
{ name: '', deptCode: '', deptName: '', roleType: '' }, { name: '', deptCode: '', deptName: '', teacherNo: '', roleType: '' },
{ name: '', deptCode: '', deptName: '', roleType: '' }, { name: '', deptCode: '', deptName: '', teacherNo: '', roleType: '' },
] as any[], ] as any[],
templateFileIds: [] as string[], templateFileIds: [] as string[],
acceptAddress: '', acceptAddress: '',
@@ -206,6 +206,15 @@ watch(() => props.modelValue, (val) => {
if (!props.canFill && form.acceptType === '1') { if (!props.canFill && form.acceptType === '1') {
form.acceptType = '2' form.acceptType = '2'
} }
// 编辑回显:校内成员根据 name/deptCode/deptName/teacherNo 构建 userList 供 org-selector 显示
if (Array.isArray(form.acceptTeam)) {
form.acceptTeam.forEach((m: any) => {
const isIn = m.roleType === 'LEADER_IN' || m.roleType === 'MEMBER_IN'
if (isIn && (m.name || m.teacherNo) && !(m.userList && m.userList.length)) {
m.userList = buildUserListFromTeamItem(m)
}
})
}
}, { deep: true }) }, { deep: true })
watch(form, () => emit('update:modelValue', { ...form }), { deep: true }) watch(form, () => emit('update:modelValue', { ...form }), { deep: true })
// 金额≥30万时默认选中上传方式 // 金额≥30万时默认选中上传方式
@@ -239,7 +248,7 @@ watch(() => form.templateFileIds, (arr) => {
}, { immediate: true, deep: true }) }, { immediate: true, deep: true })
const addTeam = () => { const addTeam = () => {
form.acceptTeam.push({ name: '', deptCode: '', deptName: '', roleType: '' }) form.acceptTeam.push({ name: '', deptCode: '', deptName: '', teacherNo: '', roleType: '' })
} }
const removeTeam = (idx: number) => { const removeTeam = (idx: number) => {
@@ -254,7 +263,9 @@ const onCopyFromBatch = (n: number | null) => {
name: m.name || '', name: m.name || '',
deptCode: m.deptCode || '', deptCode: m.deptCode || '',
deptName: m.deptName || '', deptName: m.deptName || '',
teacherNo: m.teacherNo || '',
roleType: m.roleType || '', roleType: m.roleType || '',
userList: buildUserListFromTeamItem(m),
})) }))
} }
copyFromBatch.value = null copyFromBatch.value = null
@@ -279,6 +290,22 @@ const onRoleChange = (idx: number, val: string) => {
} }
} }
/** 从接口返回的成员项构建 org-selector 所需的 userList编辑回显用 */
const buildUserListFromTeamItem = (t: any) => {
if (!t?.name && !t?.teacherNo) return []
return [
{
id: t.teacherNo || t.name,
name: t.name || '',
type: 'user',
deptCode: t.deptCode,
deptName: t.deptName,
teacherNo: t.teacherNo,
realName: t.name,
},
]
}
const onTeamUserChange = (idx: number, list: any[]) => { const onTeamUserChange = (idx: number, list: any[]) => {
const m = form.acceptTeam[idx] const m = form.acceptTeam[idx]
if (!m) return if (!m) return
@@ -287,11 +314,13 @@ const onTeamUserChange = (idx: number, list: any[]) => {
m.name = u.name || u.realName || '' m.name = u.name || u.realName || ''
m.deptCode = u.deptCode || u.commonDeptCode || '' m.deptCode = u.deptCode || u.commonDeptCode || ''
m.deptName = u.deptName || u.commonDeptName || '' m.deptName = u.deptName || u.commonDeptName || ''
m.teacherNo = u.teacherNo ?? u.username ?? u.id ?? ''
m.userList = list m.userList = list
} else { } else {
m.name = '' m.name = ''
m.deptCode = '' m.deptCode = ''
m.deptName = '' m.deptName = ''
m.teacherNo = ''
m.userList = [] m.userList = []
} }
} }

View File

@@ -287,12 +287,13 @@ const loadBatchDetails = async () => {
name: t.name, name: t.name,
deptCode: t.deptCode, deptCode: t.deptCode,
deptName: t.deptName, deptName: t.deptName,
teacherNo: t.teacherNo || '',
roleType: t.roleType || '', roleType: t.roleType || '',
})), })),
} }
if (batchForms[b.batch].acceptTeam.length < 3) { if (batchForms[b.batch].acceptTeam.length < 3) {
while (batchForms[b.batch].acceptTeam.length < 3) { while (batchForms[b.batch].acceptTeam.length < 3) {
batchForms[b.batch].acceptTeam.push({ name: '', deptCode: '', deptName: '' }) batchForms[b.batch].acceptTeam.push({ name: '', deptCode: '', deptName: '', teacherNo: '', roleType: '' })
} }
} }
if (acceptanceItems.value.length && (!batchForms[b.batch].acceptContents || batchForms[b.batch].acceptContents.length === 0)) { if (acceptanceItems.value.length && (!batchForms[b.batch].acceptContents || batchForms[b.batch].acceptContents.length === 0)) {