人培新建

This commit is contained in:
2026-09-16 11:22:11 +08:00
parent 62cf543760
commit 49b3232e79
@@ -153,12 +153,12 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="专业代号"> <el-form-item label="专业代号">
<el-input v-model="dialog.form.zydh" :disabled="dialog.isEdit" placeholder="可留空,自动生成如 ZYSEED01" /> <el-input v-model="dialog.form.zydh" :disabled="dialog.isEdit" placeholder="选填,不填则自动生成" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="专业代码"> <el-form-item label="专业代码">
<el-input v-model="dialog.form.zydm" placeholder="可留空,自动生成如 ZSY001" /> <el-input v-model="dialog.form.zydm" placeholder="选填,不填则自动生成" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
@@ -548,7 +548,6 @@ export default {
this.dialog.title = '新建人才培养方案' this.dialog.title = '新建人才培养方案'
this.dialog.isEdit = false this.dialog.isEdit = false
this.dialog.form = this.createEmptyForm() this.dialog.form = this.createEmptyForm()
this.fillGeneratedCodes(this.dialog.form, this.tableData)
this.dialog.visible = true this.dialog.visible = true
this.$nextTick(() => { this.$nextTick(() => {
if (this.$refs.trainingForm) this.$refs.trainingForm.clearValidate() if (this.$refs.trainingForm) this.$refs.trainingForm.clearValidate()
@@ -568,12 +567,14 @@ export default {
if (!valid) return if (!valid) return
this.dialog.submitting = true this.dialog.submitting = true
const isEdit = this.dialog.isEdit const isEdit = this.dialog.isEdit
const payload = this.cleanPayload(this.applyNotNullDefaults(this.dialog.form, isEdit)) this.loadAllMajors().then(records => {
const req = isEdit ? updateTraining(payload) : addTraining(payload) const payload = this.cleanPayload(this.applyNotNullDefaults(this.dialog.form, isEdit, records))
req.then(() => { const req = isEdit ? updateTraining(payload) : addTraining(payload)
this.$message.success(isEdit ? '修改成功' : '新增成功') return req.then(() => {
this.dialog.visible = false this.$message.success(isEdit ? '修改成功' : '新增成功')
this.fetchList() this.dialog.visible = false
this.fetchList()
})
}).catch(() => {}).finally(() => { }).catch(() => {}).finally(() => {
this.dialog.submitting = false this.dialog.submitting = false
}) })
@@ -651,10 +652,10 @@ export default {
} }
}, },
/** 达梦非空列必须带真实值,空串会被当成 NULL;提交前补默认值。 */ /** 达梦非空列必须带真实值,空串会被当成 NULL;提交前补默认值。 */
applyNotNullDefaults(form, isEdit) { applyNotNullDefaults(form, isEdit, records) {
const payload = Object.assign({}, form) const payload = Object.assign({}, form)
if (!isEdit) { if (!isEdit) {
this.fillGeneratedCodes(payload, this.tableData) this.fillGeneratedCodes(payload, records || this.tableData)
} }
if (!payload.xnz && payload.xqs) { if (!payload.xnz && payload.xqs) {
payload.xnz = String(Math.max(1, Math.round(payload.xqs / 2))) payload.xnz = String(Math.max(1, Math.round(payload.xqs / 2)))
@@ -688,6 +689,13 @@ export default {
target.zydm = this.nextSerialFrom(records, 'zydm', 'ZSY', 3) target.zydm = this.nextSerialFrom(records, 'zydm', 'ZSY', 3)
} }
}, },
loadAllMajors() {
const pageSize = Math.max(Number(this.total) || 0, this.tableData.length, 1000)
return listTraining({ pageNum: 1, pageSize }).then(response => {
const data = response.data || {}
return data.records || this.tableData || []
}).catch(() => this.tableData || [])
},
nextSerialFrom(records, field, prefix, width) { nextSerialFrom(records, field, prefix, width) {
let max = 0 let max = 0
const used = new Set() const used = new Set()