Main #1
@@ -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-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<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-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<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-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<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-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
<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-col>
|
||||
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
|
||||
@@ -55,7 +55,7 @@
|
||||
<el-card shadow="never" class="table-card">
|
||||
<div class="table-header">
|
||||
<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>
|
||||
<el-table v-loading="loading" :data="tableData" stripe border highlight-current-row>
|
||||
<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="zydm" label="专业代码" width="85" />
|
||||
<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="xylb" label="学员类别" width="100" 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="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 }">
|
||||
<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>
|
||||
@@ -94,125 +94,160 @@
|
||||
/>
|
||||
</el-card>
|
||||
|
||||
<!-- ==================== 3. 新增学科专业对话框 ==================== -->
|
||||
<!-- ==================== 3. 新增/编辑学科专业对话框 ==================== -->
|
||||
<el-dialog
|
||||
:visible="addDialogVisible"
|
||||
title="新增学科专业"
|
||||
:visible="formDialogVisible"
|
||||
:title="dialogTitle"
|
||||
width="750px"
|
||||
: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-col :span="12">
|
||||
<el-form-item label="规范名称">
|
||||
<el-input v-model="addForm.gfmc" placeholder="请输入规范名称" />
|
||||
<el-input v-model="form.gfmc" placeholder="请输入规范名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="专业代码">
|
||||
<el-input v-model="addForm.zydm" placeholder="请输入专业代码" />
|
||||
<el-input v-model="form.zydm" placeholder="请输入专业代码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="专业名称">
|
||||
<el-input v-model="addForm.zymc" placeholder="请输入专业名称" />
|
||||
<el-input v-model="form.zymc" placeholder="请输入专业名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="专业方向">
|
||||
<el-input v-model="addForm.zyfx" placeholder="请输入专业方向" />
|
||||
<el-input v-model="form.zyfx" placeholder="请输入专业方向" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="学年制">
|
||||
<el-input v-model="addForm.xnz" placeholder="请输入学年制" />
|
||||
<el-input v-model="form.xnz" placeholder="请输入学年制" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="培训层次">
|
||||
<el-input v-model="addForm.pxcc" placeholder="请输入培训层次" />
|
||||
<el-input v-model="form.pxcc" placeholder="请输入培训层次" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="培训类型">
|
||||
<el-input v-model="addForm.pxlx" placeholder="请输入培训类型" />
|
||||
<el-input v-model="form.pxlx" placeholder="请输入培训类型" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="教学管理机构编号">
|
||||
<el-input v-model="addForm.jxgljgbh" placeholder="请输入教学管理机构编号" />
|
||||
<el-input v-model="form.jxgljgbh" placeholder="请输入教学管理机构编号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="学员类别">
|
||||
<el-input v-model="addForm.xylb" placeholder="请输入学员类别" />
|
||||
<el-input v-model="form.xylb" placeholder="请输入学员类别" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="指导分类">
|
||||
<el-input v-model="addForm.zdyfl" placeholder="请输入指导分类" />
|
||||
<el-form-item label="自定义分类">
|
||||
<el-input v-model="form.zdyfl" placeholder="请输入自定义分类" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="主干专业">
|
||||
<el-input v-model="addForm.zgzy" placeholder="请输入主干专业" />
|
||||
<el-input v-model="form.zgzy" placeholder="请输入主干专业" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="16">
|
||||
<el-col :span="12">
|
||||
<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-col>
|
||||
</el-row>
|
||||
<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>
|
||||
<div slot="footer">
|
||||
<el-button @click="addDialogVisible = false">取消</el-button>
|
||||
<el-button type="primary" :loading="addSaving" @click="handleAddConfirm">确定</el-button>
|
||||
<el-button @click="formDialogVisible = false">取消</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>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// 模拟学科专业列表数据(后端接口未提供,接口就绪后可删除并改为接口加载)
|
||||
const mockTableData = [
|
||||
{ bsh: 'Z001', jxgljgbh: 'JG001', xh: 1, zydm: '110101', zymc: '军事指挥', rcpyfaCount: 2, zypyfa: '2026版军事指挥人才培养方案', zdyfl: '指挥类', xylb: '生长干部', xnz: '4', xqs: '8', zgzy: '是', ty: 0 },
|
||||
{ bsh: 'Z002', jxgljgbh: 'JG002', xh: 2, zydm: '110102', zymc: '通信工程', rcpyfaCount: 1, zypyfa: '2025版通信工程人才培养方案', zdyfl: '技术类', xylb: '现职干部', xnz: '3', xqs: '6', zgzy: '是', ty: 1 },
|
||||
{ bsh: 'Z003', jxgljgbh: 'JG003', xh: 3, zydm: '110103', zymc: '装备维修', rcpyfaCount: 0, zypyfa: '-', zdyfl: '勤务类', xylb: '士官', xnz: '2', xqs: '4', zgzy: '否', ty: 0 }
|
||||
]
|
||||
import {
|
||||
listDiscipline,
|
||||
getDiscipline,
|
||||
addDiscipline,
|
||||
updateDiscipline,
|
||||
disableDiscipline
|
||||
} from '@/api/subjectMajor/discipline'
|
||||
|
||||
export default {
|
||||
name: 'DisciplineIndex',
|
||||
@@ -231,79 +266,82 @@ export default {
|
||||
// ==================== 列表数据 ====================
|
||||
loading: false,
|
||||
tableData: [],
|
||||
allData: [],
|
||||
total: 0,
|
||||
pageNum: 1,
|
||||
pageSize: 20,
|
||||
|
||||
// ==================== 新增学科专业 ====================
|
||||
addDialogVisible: false,
|
||||
addSaving: false,
|
||||
addForm: this.createEmptyAddForm()
|
||||
// ==================== 新增/编辑 ====================
|
||||
formDialogVisible: false,
|
||||
dialogTitle: '新增学科专业',
|
||||
isAdd: true,
|
||||
formSaving: false,
|
||||
form: this.createEmptyForm(),
|
||||
|
||||
// ==================== 详情 ====================
|
||||
detailDialogVisible: false,
|
||||
detailLoading: false,
|
||||
detailForm: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.fetchList()
|
||||
},
|
||||
methods: {
|
||||
createEmptyAddForm() {
|
||||
createEmptyForm() {
|
||||
return {
|
||||
bsh: '',
|
||||
gfmc: '',
|
||||
xh: '',
|
||||
xh: undefined,
|
||||
zydm: '',
|
||||
zymc: '',
|
||||
zyfx: '',
|
||||
xnz: '',
|
||||
xqs: '',
|
||||
xqs: undefined,
|
||||
pxcc: '',
|
||||
pxlx: '',
|
||||
jxgljgbh: '',
|
||||
bz: '',
|
||||
pxlx2: '',
|
||||
jxgljgbh: '',
|
||||
xylb: '',
|
||||
zdyfl: '',
|
||||
jsonzd: '',
|
||||
zgzy: ''
|
||||
zgzy: '',
|
||||
bz: ''
|
||||
}
|
||||
},
|
||||
|
||||
// ==================== 查询列表 ====================
|
||||
// TODO: 后端接口未提供,暂用模拟数据;接口就绪后替换为 getDisciplineList
|
||||
fetchList() {
|
||||
this.loading = true
|
||||
setTimeout(() => {
|
||||
let records = mockTableData.slice()
|
||||
if (this.searchForm.zymc.trim()) {
|
||||
records = records.filter((item) => (item.zymc || '').includes(this.searchForm.zymc.trim()))
|
||||
const params = {
|
||||
pageNum: this.pageNum,
|
||||
pageSize: this.pageSize
|
||||
}
|
||||
// 状态:勾选「停用」时仅查已停用(ty=1),未勾选则查询全部
|
||||
if (this.searchForm.ty) {
|
||||
params.ty = 1
|
||||
}
|
||||
// 其余文本条件非空时才传
|
||||
;['zymc', 'zydm', 'zyfx', 'xnz', 'pxlx2'].forEach(key => {
|
||||
const value = this.searchForm[key]
|
||||
if (value !== '' && value !== null && value !== undefined) {
|
||||
params[key] = String(value).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()))
|
||||
}
|
||||
if (this.searchForm.ty) {
|
||||
records = records.filter((item) => item.ty === 1)
|
||||
}
|
||||
this.allData = records
|
||||
this.total = records.length
|
||||
this.applyPage()
|
||||
})
|
||||
listDiscipline(params).then(response => {
|
||||
const data = response.data || {}
|
||||
this.tableData = data.records || []
|
||||
this.total = data.total || 0
|
||||
this.loading = false
|
||||
}, 200)
|
||||
},
|
||||
|
||||
applyPage() {
|
||||
const start = (this.pageNum - 1) * this.pageSize
|
||||
this.tableData = this.allData.slice(start, start + this.pageSize)
|
||||
}).catch(() => {
|
||||
this.tableData = []
|
||||
this.total = 0
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
|
||||
handleSearch() {
|
||||
this.pageNum = 1
|
||||
this.fetchList()
|
||||
this.$message.success('查询完成(前端模拟)')
|
||||
},
|
||||
|
||||
handleReset() {
|
||||
@@ -323,47 +361,127 @@ export default {
|
||||
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) {
|
||||
this.$confirm(`确定要停用「${row.zymc || row.zydm || '该专业'}」吗?`, '系统提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
row.ty = 1
|
||||
this.$message.success('停用成功(前端模拟)')
|
||||
this.fetchList()
|
||||
}).catch(() => {})
|
||||
},
|
||||
|
||||
handleEnable(row) {
|
||||
this.$confirm(`确定要启用「${row.zymc || row.zydm || '该专业'}」吗?`, '系统提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
return disableDiscipline(row.bsh)
|
||||
}).then(() => {
|
||||
row.ty = 0
|
||||
this.$message.success('启用成功(前端模拟)')
|
||||
this.$message.success('停用成功')
|
||||
this.fetchList()
|
||||
}).catch(() => {})
|
||||
},
|
||||
|
||||
// ==================== 新增学科专业 ====================
|
||||
handleAdd() {
|
||||
this.addForm = this.createEmptyAddForm()
|
||||
this.addDialogVisible = true
|
||||
// 后端暂未提供启用接口,仅作提示
|
||||
handleEnable(row) {
|
||||
this.$message.info('后端暂未提供该接口')
|
||||
},
|
||||
|
||||
// TODO: 后端接口未提供,新增为前端模拟;接口就绪后替换为 addDiscipline
|
||||
handleAddConfirm() {
|
||||
this.addSaving = true
|
||||
setTimeout(() => {
|
||||
this.$message.success('新增学科专业成功(前端模拟)')
|
||||
this.addDialogVisible = false
|
||||
this.fetchList()
|
||||
this.addSaving = false
|
||||
}, 300)
|
||||
// ==================== 详情 ====================
|
||||
// 数值字段空值显示为 '-'(保留 0)
|
||||
fmtValue(val) {
|
||||
return val === null || val === undefined || val === '' ? '-' : val
|
||||
},
|
||||
|
||||
handleDetail(row) {
|
||||
this.detailDialogVisible = true
|
||||
this.detailLoading = true
|
||||
this.detailForm = {}
|
||||
getDiscipline(row.bsh).then(response => {
|
||||
this.detailForm = response.data || {}
|
||||
this.detailLoading = false
|
||||
}).catch(() => {
|
||||
this.detailLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user