学科专业
This commit is contained in:
@@ -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
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user