学科专业

This commit is contained in:
2026-08-23 15:47:43 +08:00
parent 61ef0c1214
commit 8a8aa0c7ca
2 changed files with 267 additions and 103 deletions
@@ -0,0 +1,46 @@
import request from '@/utils/request'
// 分页查询学科专业列表
export function listDiscipline(query) {
return request({
url: '/discipline/list',
method: 'get',
params: query
})
}
// 查询学科专业详情
export function getDiscipline(bsh) {
return request({
url: '/discipline/get',
method: 'get',
params: { bsh: bsh }
})
}
// 新增学科专业
export function addDiscipline(data) {
return request({
url: '/discipline/add',
method: 'post',
data: data
})
}
// 编辑学科专业
export function updateDiscipline(data) {
return request({
url: '/discipline/update',
method: 'post',
data: data
})
}
// 停用学科专业
export function disableDiscipline(bsh) {
return request({
url: '/discipline/disable',
method: 'post',
params: { bsh: bsh }
})
}
@@ -6,22 +6,22 @@
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item label="专业名称"> <el-form-item label="专业名称">
<el-input v-model="searchForm.zymc" placeholder="请输入专业名称" clearable /> <el-input v-model="searchForm.zymc" placeholder="请输入专业名称" clearable @keyup.enter.native="handleSearch" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item label="专业代码"> <el-form-item label="专业代码">
<el-input v-model="searchForm.zydm" placeholder="请输入专业代码" clearable /> <el-input v-model="searchForm.zydm" placeholder="请输入专业代码" clearable @keyup.enter.native="handleSearch" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item label="专业方向"> <el-form-item label="专业方向">
<el-input v-model="searchForm.zyfx" placeholder="请输入专业方向" clearable /> <el-input v-model="searchForm.zyfx" placeholder="请输入专业方向" clearable @keyup.enter.native="handleSearch" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
<el-form-item label="学年制"> <el-form-item label="学年制">
<el-input v-model="searchForm.xnz" placeholder="请输入学年制" clearable /> <el-input v-model="searchForm.xnz" placeholder="请输入学年制" clearable @keyup.enter.native="handleSearch" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
@@ -55,7 +55,7 @@
<el-card shadow="never" class="table-card"> <el-card shadow="never" class="table-card">
<div class="table-header"> <div class="table-header">
<span class="table-title">学科专业列表</span> <span class="table-title">学科专业列表</span>
<el-button type="primary" @click="handleAdd">新建学科专业</el-button> <el-button type="primary" icon="el-icon-plus" @click="handleAdd">新建学科专业</el-button>
</div> </div>
<el-table v-loading="loading" :data="tableData" stripe border highlight-current-row> <el-table v-loading="loading" :data="tableData" stripe border highlight-current-row>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
@@ -63,15 +63,15 @@
<el-table-column prop="xh" label="序号" width="60" align="center" /> <el-table-column prop="xh" label="序号" width="60" align="center" />
<el-table-column prop="zydm" label="专业代码" width="85" /> <el-table-column prop="zydm" label="专业代码" width="85" />
<el-table-column prop="zymc" label="专业名称" show-overflow-tooltip /> <el-table-column prop="zymc" label="专业名称" show-overflow-tooltip />
<el-table-column prop="rcpyfaCount" label="在用人才培养方案数" width="180" align="center" />
<el-table-column prop="zypyfa" label="在用人才培养方案" width="160" show-overflow-tooltip />
<el-table-column prop="zdyfl" label="分类" width="100" align="center" /> <el-table-column prop="zdyfl" label="分类" width="100" align="center" />
<el-table-column prop="xylb" label="学员类别" width="100" align="center" /> <el-table-column prop="xylb" label="学员类别" width="100" align="center" />
<el-table-column prop="xnz" label="学年制" width="90" align="center" /> <el-table-column prop="xnz" label="学年制" width="90" align="center" />
<el-table-column prop="xqs" label="学期数" width="90" align="center" /> <el-table-column prop="xqs" label="学期数" width="90" align="center" />
<el-table-column prop="zgzy" label="主干专业" width="100" align="center" /> <el-table-column prop="zgzy" label="主干专业" width="100" align="center" />
<el-table-column label="操作" width="160" align="center" fixed="right"> <el-table-column label="操作" width="230" align="center" fixed="right">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text" size="small" icon="el-icon-view" @click="handleDetail(row)">详情</el-button>
<el-button type="text" size="small" icon="el-icon-edit" @click="handleEdit(row)">编辑</el-button>
<el-button v-if="row.ty === 1" type="text" size="small" class="text-success" @click="handleEnable(row)"> <el-button v-if="row.ty === 1" type="text" size="small" class="text-success" @click="handleEnable(row)">
启用 启用
</el-button> </el-button>
@@ -94,125 +94,160 @@
/> />
</el-card> </el-card>
<!-- ==================== 3. 新增学科专业对话框 ==================== --> <!-- ==================== 3. 新增/编辑学科专业对话框 ==================== -->
<el-dialog <el-dialog
:visible="addDialogVisible" :visible="formDialogVisible"
title="新增学科专业" :title="dialogTitle"
width="750px" width="750px"
:close-on-click-modal="false" :close-on-click-modal="false"
@update:visible="val => addDialogVisible = val" @update:visible="val => formDialogVisible = val"
> >
<el-form :model="addForm" label-width="130px" class="add-form"> <el-form ref="formRef" :model="form" label-width="130px" class="add-form">
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规范名称"> <el-form-item label="规范名称">
<el-input v-model="addForm.gfmc" placeholder="请输入规范名称" /> <el-input v-model="form.gfmc" 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="addForm.xh" placeholder="请输入序号" /> <el-input-number v-model="form.xh" :min="0" controls-position="right" style="width: 100%" placeholder="请输入序号" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="专业代码"> <el-form-item label="专业代码">
<el-input v-model="addForm.zydm" placeholder="请输入专业代码" /> <el-input v-model="form.zydm" 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="addForm.zymc" placeholder="请输入专业名称" /> <el-input v-model="form.zymc" placeholder="请输入专业名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="专业方向"> <el-form-item label="专业方向">
<el-input v-model="addForm.zyfx" placeholder="请输入专业方向" /> <el-input v-model="form.zyfx" 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="addForm.xnz" placeholder="请输入学年制" /> <el-input v-model="form.xnz" placeholder="请输入学年制" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="学期数"> <el-form-item label="学期数">
<el-input v-model="addForm.xqs" placeholder="请输入学期数" /> <el-input-number v-model="form.xqs" :min="0" controls-position="right" style="width: 100%" 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="addForm.pxcc" placeholder="请输入培训层次" /> <el-input v-model="form.pxcc" placeholder="请输入培训层次" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="培训类型"> <el-form-item label="培训类型">
<el-input v-model="addForm.pxlx" placeholder="请输入培训类型" /> <el-input v-model="form.pxlx" placeholder="请输入培训类型" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="培训类型2"> <el-form-item label="培训类型2">
<el-input v-model="addForm.pxlx2" placeholder="请输入培训类型2" /> <el-input v-model="form.pxlx2" placeholder="请输入培训类型2" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="教学管理机构编号"> <el-form-item label="教学管理机构编号">
<el-input v-model="addForm.jxgljgbh" placeholder="请输入教学管理机构编号" /> <el-input v-model="form.jxgljgbh" 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="addForm.xylb" placeholder="请输入学员类别" /> <el-input v-model="form.xylb" placeholder="请输入学员类别" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="指导分类"> <el-form-item label="自定义分类">
<el-input v-model="addForm.zdyfl" placeholder="请输入指导分类" /> <el-input v-model="form.zdyfl" 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="addForm.zgzy" placeholder="请输入主干专业" /> <el-input v-model="form.zgzy" placeholder="请输入主干专业" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="16"> <el-row :gutter="16">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="JSON字段"> <el-form-item label="JSON字段">
<el-input v-model="addForm.jsonzd" placeholder="请输入JSON字段" /> <el-input v-model="form.jsonzd" placeholder="请输入JSON字段" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="备注"> <el-form-item label="备注">
<el-input v-model="addForm.bz" type="textarea" :rows="3" placeholder="请输入备注" /> <el-input v-model="form.bz" type="textarea" :rows="3" placeholder="请输入备注" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer"> <div slot="footer">
<el-button @click="addDialogVisible = false">取消</el-button> <el-button @click="formDialogVisible = false">取消</el-button>
<el-button type="primary" :loading="addSaving" @click="handleAddConfirm">确定</el-button> <el-button type="primary" :loading="formSaving" @click="handleFormSubmit">确定</el-button>
</div>
</el-dialog>
<!-- ==================== 4. 详情对话框 ==================== -->
<el-dialog title="学科专业详情" :visible="detailDialogVisible" width="700px" :close-on-click-modal="false"
@update:visible="val => detailDialogVisible = val">
<div v-loading="detailLoading" class="detail-body">
<el-descriptions :column="2" border>
<el-descriptions-item label="规范名称">{{ detailForm.gfmc || '-' }}</el-descriptions-item>
<el-descriptions-item label="序号">{{ fmtValue(detailForm.xh) }}</el-descriptions-item>
<el-descriptions-item label="专业代码">{{ detailForm.zydm || '-' }}</el-descriptions-item>
<el-descriptions-item label="专业名称">{{ detailForm.zymc || '-' }}</el-descriptions-item>
<el-descriptions-item label="专业方向">{{ detailForm.zyfx || '-' }}</el-descriptions-item>
<el-descriptions-item label="学年制">{{ detailForm.xnz || '-' }}</el-descriptions-item>
<el-descriptions-item label="学期数">{{ fmtValue(detailForm.xqs) }}</el-descriptions-item>
<el-descriptions-item label="培训层次">{{ detailForm.pxcc || '-' }}</el-descriptions-item>
<el-descriptions-item label="培训类型">{{ detailForm.pxlx || '-' }}</el-descriptions-item>
<el-descriptions-item label="培训类型2">{{ detailForm.pxlx2 || '-' }}</el-descriptions-item>
<el-descriptions-item label="教学管理机构编号">{{ detailForm.jxgljgbh || '-' }}</el-descriptions-item>
<el-descriptions-item label="学员类别">{{ detailForm.xylb || '-' }}</el-descriptions-item>
<el-descriptions-item label="自定义分类">{{ detailForm.zdyfl || '-' }}</el-descriptions-item>
<el-descriptions-item label="主干专业">{{ detailForm.zgzy || '-' }}</el-descriptions-item>
<el-descriptions-item label="停用">
<el-tag :type="detailForm.ty === 1 ? 'danger' : 'success'" size="mini">
{{ detailForm.ty === 1 ? '是' : '否' }}
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="停用时间">{{ detailForm.tysj || '-' }}</el-descriptions-item>
<el-descriptions-item label="JSON字段" :span="2">{{ detailForm.jsonzd || '-' }}</el-descriptions-item>
<el-descriptions-item label="备注" :span="2">{{ detailForm.bz || '-' }}</el-descriptions-item>
</el-descriptions>
</div>
<div slot="footer">
<el-button @click="detailDialogVisible = false">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
// 模拟学科专业列表数据(后端接口未提供,接口就绪后可删除并改为接口加载) import {
const mockTableData = [ listDiscipline,
{ bsh: 'Z001', jxgljgbh: 'JG001', xh: 1, zydm: '110101', zymc: '军事指挥', rcpyfaCount: 2, zypyfa: '2026版军事指挥人才培养方案', zdyfl: '指挥类', xylb: '生长干部', xnz: '4', xqs: '8', zgzy: '是', ty: 0 }, getDiscipline,
{ bsh: 'Z002', jxgljgbh: 'JG002', xh: 2, zydm: '110102', zymc: '通信工程', rcpyfaCount: 1, zypyfa: '2025版通信工程人才培养方案', zdyfl: '技术类', xylb: '现职干部', xnz: '3', xqs: '6', zgzy: '是', ty: 1 }, addDiscipline,
{ bsh: 'Z003', jxgljgbh: 'JG003', xh: 3, zydm: '110103', zymc: '装备维修', rcpyfaCount: 0, zypyfa: '-', zdyfl: '勤务类', xylb: '士官', xnz: '2', xqs: '4', zgzy: '否', ty: 0 } updateDiscipline,
] disableDiscipline
} from '@/api/subjectMajor/discipline'
export default { export default {
name: 'DisciplineIndex', name: 'DisciplineIndex',
@@ -231,79 +266,82 @@ export default {
// ==================== 列表数据 ==================== // ==================== 列表数据 ====================
loading: false, loading: false,
tableData: [], tableData: [],
allData: [],
total: 0, total: 0,
pageNum: 1, pageNum: 1,
pageSize: 20, pageSize: 20,
// ==================== 新增学科专业 ==================== // ==================== 新增/编辑 ====================
addDialogVisible: false, formDialogVisible: false,
addSaving: false, dialogTitle: '新增学科专业',
addForm: this.createEmptyAddForm() isAdd: true,
formSaving: false,
form: this.createEmptyForm(),
// ==================== 详情 ====================
detailDialogVisible: false,
detailLoading: false,
detailForm: {}
} }
}, },
mounted() { mounted() {
this.fetchList() this.fetchList()
}, },
methods: { methods: {
createEmptyAddForm() { createEmptyForm() {
return { return {
bsh: '',
gfmc: '', gfmc: '',
xh: '', xh: undefined,
zydm: '', zydm: '',
zymc: '', zymc: '',
zyfx: '', zyfx: '',
xnz: '', xnz: '',
xqs: '', xqs: undefined,
pxcc: '', pxcc: '',
pxlx: '', pxlx: '',
jxgljgbh: '',
bz: '',
pxlx2: '', pxlx2: '',
jxgljgbh: '',
xylb: '', xylb: '',
zdyfl: '', zdyfl: '',
jsonzd: '', jsonzd: '',
zgzy: '' zgzy: '',
bz: ''
} }
}, },
// ==================== 查询列表 ==================== // ==================== 查询列表 ====================
// TODO: 后端接口未提供,暂用模拟数据;接口就绪后替换为 getDisciplineList
fetchList() { fetchList() {
this.loading = true this.loading = true
setTimeout(() => { const params = {
let records = mockTableData.slice() pageNum: this.pageNum,
if (this.searchForm.zymc.trim()) { pageSize: this.pageSize
records = records.filter((item) => (item.zymc || '').includes(this.searchForm.zymc.trim()))
}
if (this.searchForm.zydm.trim()) {
records = records.filter((item) => (item.zydm || '').includes(this.searchForm.zydm.trim()))
}
if (this.searchForm.zyfx.trim()) {
records = records.filter((item) => (item.zyfx || '').includes(this.searchForm.zyfx.trim()))
}
if (this.searchForm.xnz.trim()) {
records = records.filter((item) => String(item.xnz || '').includes(this.searchForm.xnz.trim()))
} }
// 状态:勾选「停用」时仅查已停用(ty=1),未勾选则查询全部
if (this.searchForm.ty) { if (this.searchForm.ty) {
records = records.filter((item) => item.ty === 1) params.ty = 1
} }
this.allData = records // 其余文本条件非空时才传
this.total = records.length ;['zymc', 'zydm', 'zyfx', 'xnz', 'pxlx2'].forEach(key => {
this.applyPage() const value = this.searchForm[key]
if (value !== '' && value !== null && value !== undefined) {
params[key] = String(value).trim()
}
})
listDiscipline(params).then(response => {
const data = response.data || {}
this.tableData = data.records || []
this.total = data.total || 0
this.loading = false this.loading = false
}, 200) }).catch(() => {
}, this.tableData = []
this.total = 0
applyPage() { this.loading = false
const start = (this.pageNum - 1) * this.pageSize })
this.tableData = this.allData.slice(start, start + this.pageSize)
}, },
handleSearch() { handleSearch() {
this.pageNum = 1 this.pageNum = 1
this.fetchList() this.fetchList()
this.$message.success('查询完成(前端模拟)')
}, },
handleReset() { handleReset() {
@@ -323,47 +361,127 @@ export default {
this.fetchList() this.fetchList()
}, },
// ==================== 新增/编辑 ====================
handleAdd() {
this.isAdd = true
this.dialogTitle = '新增学科专业'
this.form = this.createEmptyForm()
this.formDialogVisible = true
this.$nextTick(() => {
this.$refs.formRef && this.$refs.formRef.clearValidate()
})
},
handleEdit(row) {
this.isAdd = false
this.dialogTitle = '编辑学科专业'
this.form = this.createEmptyForm()
this.formDialogVisible = true
this.$nextTick(() => {
this.$refs.formRef && this.$refs.formRef.clearValidate()
})
getDiscipline(row.bsh).then(response => {
const data = response.data || {}
this.form = {
bsh: data.bsh || '',
gfmc: data.gfmc || '',
xh: data.xh !== null && data.xh !== undefined ? data.xh : undefined,
zydm: data.zydm || '',
zymc: data.zymc || '',
zyfx: data.zyfx || '',
xnz: data.xnz || '',
xqs: data.xqs !== null && data.xqs !== undefined ? data.xqs : undefined,
pxcc: data.pxcc || '',
pxlx: data.pxlx || '',
pxlx2: data.pxlx2 || '',
jxgljgbh: data.jxgljgbh || '',
xylb: data.xylb || '',
zdyfl: data.zdyfl || '',
jsonzd: data.jsonzd || '',
zgzy: data.zgzy || '',
bz: data.bz || ''
}
}).catch(() => {})
},
buildPayload() {
const f = this.form
const payload = {
bsh: f.bsh || undefined,
gfmc: f.gfmc,
zydm: f.zydm,
zymc: f.zymc,
zyfx: f.zyfx,
xnz: f.xnz,
pxcc: f.pxcc,
pxlx: f.pxlx,
pxlx2: f.pxlx2,
jxgljgbh: f.jxgljgbh,
xylb: f.xylb,
zdyfl: f.zdyfl,
zgzy: f.zgzy,
jsonzd: f.jsonzd,
bz: f.bz
}
// 序号、学期数为数值字段,转为数字后再提交
if (f.xh !== '' && f.xh !== null && f.xh !== undefined) {
payload.xh = Number(f.xh)
}
if (f.xqs !== '' && f.xqs !== null && f.xqs !== undefined) {
payload.xqs = Number(f.xqs)
}
return payload
},
handleFormSubmit() {
this.formSaving = true
const payload = this.buildPayload()
const request = this.isAdd ? addDiscipline(payload) : updateDiscipline(payload)
request.then(() => {
this.$message.success(this.isAdd ? '新增成功' : '修改成功')
this.formDialogVisible = false
this.fetchList()
}).catch(() => {
}).finally(() => {
this.formSaving = false
})
},
// ==================== 停用/启用 ==================== // ==================== 停用/启用 ====================
// TODO: 后端接口未提供,停用/启用为前端模拟;接口就绪后替换为 toggleDiscipline
handleDisable(row) { handleDisable(row) {
this.$confirm(`确定要停用「${row.zymc || row.zydm || '该专业'}」吗?`, '系统提示', { this.$confirm(`确定要停用「${row.zymc || row.zydm || '该专业'}」吗?`, '系统提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
row.ty = 1 return disableDiscipline(row.bsh)
this.$message.success('停用成功(前端模拟)')
this.fetchList()
}).catch(() => {})
},
handleEnable(row) {
this.$confirm(`确定要启用「${row.zymc || row.zydm || '该专业'}」吗?`, '系统提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => { }).then(() => {
row.ty = 0 this.$message.success('停用成功')
this.$message.success('启用成功(前端模拟)')
this.fetchList() this.fetchList()
}).catch(() => {}) }).catch(() => {})
}, },
// ==================== 新增学科专业 ==================== // 后端暂未提供启用接口,仅作提示
handleAdd() { handleEnable(row) {
this.addForm = this.createEmptyAddForm() this.$message.info('后端暂未提供该接口')
this.addDialogVisible = true
}, },
// TODO: 后端接口未提供,新增为前端模拟;接口就绪后替换为 addDiscipline // ==================== 详情 ====================
handleAddConfirm() { // 数值字段空值显示为 '-'(保留 0
this.addSaving = true fmtValue(val) {
setTimeout(() => { return val === null || val === undefined || val === '' ? '-' : val
this.$message.success('新增学科专业成功(前端模拟)') },
this.addDialogVisible = false
this.fetchList() handleDetail(row) {
this.addSaving = false this.detailDialogVisible = true
}, 300) this.detailLoading = true
this.detailForm = {}
getDiscipline(row.bsh).then(response => {
this.detailForm = response.data || {}
this.detailLoading = false
}).catch(() => {
this.detailLoading = false
})
} }
} }
} }