fix(meetings): onCopy 走 bizAdd 创建副本 (修 0 行误报成功 bug), submit/onSubmit/onBatchSubmit 加 __silentError 修双 toast
This commit is contained in:
@@ -103,8 +103,8 @@
|
||||
</el-descriptions>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 修改 dialog (基本字段编辑) -->
|
||||
<el-dialog v-model="editOpen" title="修改会议" width="640px">
|
||||
<!-- 修改 / 复制 dialog (editMode 区分, 复制走 bizAdd, 修改走 bizUpdate) -->
|
||||
<el-dialog v-model="editOpen" :title="editMode === 'copy' ? '复制会议' : '修改会议'" width="640px">
|
||||
<el-form :model="editForm" label-width="100px">
|
||||
<el-form-item label="会议名称"><el-input v-model="editForm.meetingName" /></el-form-item>
|
||||
<el-form-item label="项目形式">
|
||||
@@ -134,7 +134,7 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, reactive, onMounted } from 'vue'
|
||||
import { bizList, bizUpdate } from '@/api/public'
|
||||
import { bizList, bizUpdate, bizAdd } from '@/api/public'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
// ========== 筛选 (严格按原型 2 行 8 项: 项目编号/会议ID/会议名称/第几期/会议时间/项目形式/当前阶段/备注) ==========
|
||||
@@ -216,47 +216,83 @@ const detailOpen = ref(false)
|
||||
const currentRow = ref(null)
|
||||
function onView(row) { currentRow.value = row; detailOpen.value = true }
|
||||
|
||||
// ========== 修改 ==========
|
||||
// ========== 修改 / 复制 ==========
|
||||
const editOpen = ref(false)
|
||||
const editSubmitting = ref(false)
|
||||
const editForm = reactive({ meetingId: '', meetingName: '', projectForm: '', startTime: '', endTime: '', totalPeriods: 1, remark: '' })
|
||||
// editMode 区分当前 dialog 是 "修改" 还是 "复制", 决定 submitEdit 走 bizUpdate 还是 bizAdd
|
||||
const editMode = ref('edit') // 'edit' | 'copy'
|
||||
const editForm = reactive({
|
||||
meetingId: '', meetingName: '',
|
||||
projectId: null, projectNo: '', projectName: '',
|
||||
projectForm: '', startTime: '', endTime: '',
|
||||
totalPeriods: 1, currentStage: '未执行',
|
||||
remark: ''
|
||||
})
|
||||
function onEdit(row) {
|
||||
editMode.value = 'edit'
|
||||
Object.assign(editForm, {
|
||||
meetingId: row.meetingId, meetingName: row.meetingName || '',
|
||||
projectForm: row.projectForm || '', startTime: row.startTime || '',
|
||||
endTime: row.endTime || '', totalPeriods: row.totalPeriods || 1,
|
||||
meetingId: row.meetingId,
|
||||
projectId: row.projectId ?? null,
|
||||
projectNo: row.projectNo || '',
|
||||
projectName: row.projectName || '',
|
||||
meetingName: row.meetingName || '',
|
||||
projectForm: row.projectForm || '',
|
||||
startTime: row.startTime || '',
|
||||
endTime: row.endTime || '',
|
||||
totalPeriods: row.totalPeriods || 1,
|
||||
currentStage: row.currentStage || '未执行',
|
||||
remark: row.remark || ''
|
||||
})
|
||||
editOpen.value = true
|
||||
}
|
||||
async function submitEdit() {
|
||||
editSubmitting.value = true
|
||||
const isCopy = editMode.value === 'copy'
|
||||
try {
|
||||
await bizUpdate('meeting', { ...editForm })
|
||||
ElMessage.success('修改成功')
|
||||
const payload = { ...editForm }
|
||||
if (isCopy) {
|
||||
// 复制: 走 bizAdd, 不传 meetingId (AUTO_INCREMENT) 和 businessId (后端兜底)
|
||||
delete payload.meetingId
|
||||
await bizAdd('meeting', payload, { __silentError: true })
|
||||
} else {
|
||||
// 修改: 走 bizUpdate
|
||||
await bizUpdate('meeting', payload, { __silentError: true })
|
||||
}
|
||||
ElMessage.success(isCopy ? '复制成功' : '修改成功')
|
||||
editOpen.value = false
|
||||
load()
|
||||
} catch (e) { ElMessage.error('修改失败') }
|
||||
finally { editSubmitting.value = false }
|
||||
} catch (e) {
|
||||
ElMessage.error(e?.msg || (isCopy ? '复制失败' : '修改失败'))
|
||||
} finally {
|
||||
editSubmitting.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// ========== 提交 (单条) ==========
|
||||
async function onSubmit(row) {
|
||||
try { await ElMessageBox.confirm(`确定提交会议「${row.meetingName}」吗?`, '提交确认', { type: 'warning' }) } catch { return }
|
||||
try {
|
||||
await bizUpdate('meeting', { meetingId: row.meetingId, currentStage: '执行中' })
|
||||
await bizUpdate('meeting', { meetingId: row.meetingId, currentStage: '执行中' }, { __silentError: true })
|
||||
ElMessage.success('提交成功')
|
||||
load()
|
||||
} catch { ElMessage.error('提交失败') }
|
||||
} catch (e) { ElMessage.error(e?.msg || '提交失败') }
|
||||
}
|
||||
|
||||
// ========== 复制 (单条) ==========
|
||||
function onCopy(row) {
|
||||
// 复制行到会议名 + ' 副本' 打开新建/编辑表单
|
||||
// 复制行到会议名 + ' 副本' 打开 dialog, 走 bizAdd 创建新会议 (跟 onEdit 共用同一 dialog, editMode='copy')
|
||||
editMode.value = 'copy'
|
||||
Object.assign(editForm, {
|
||||
meetingId: '', meetingName: (row.meetingName || '') + ' 副本',
|
||||
projectForm: row.projectForm || '', startTime: row.startTime || '',
|
||||
endTime: row.endTime || '', totalPeriods: row.totalPeriods || 1,
|
||||
meetingId: '',
|
||||
projectId: row.projectId ?? null,
|
||||
projectNo: row.projectNo || '',
|
||||
projectName: row.projectName || '',
|
||||
meetingName: (row.meetingName || '') + ' 副本',
|
||||
projectForm: row.projectForm || '',
|
||||
startTime: row.startTime || '',
|
||||
endTime: row.endTime || '',
|
||||
totalPeriods: row.totalPeriods || 1,
|
||||
currentStage: '未执行',
|
||||
remark: row.remark || ''
|
||||
})
|
||||
editOpen.value = true
|
||||
@@ -269,11 +305,11 @@ async function onBatchSubmit() {
|
||||
try {
|
||||
// 逐条更新 (无批量接口)
|
||||
for (const id of selectedIds.value) {
|
||||
await bizUpdate('meeting', { meetingId: id, currentStage: '执行中' })
|
||||
await bizUpdate('meeting', { meetingId: id, currentStage: '执行中' }, { __silentError: true })
|
||||
}
|
||||
ElMessage.success('批量提交成功')
|
||||
load()
|
||||
} catch { ElMessage.error('批量提交失败') }
|
||||
} catch (e) { ElMessage.error(e?.msg || '批量提交失败') }
|
||||
}
|
||||
|
||||
onMounted(load)
|
||||
|
||||
Reference in New Issue
Block a user