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