Merge branch 'main' of https://gitea.fengyingkj.top/zhaichao/education
This commit is contained in:
@@ -335,6 +335,12 @@ button:focus-visible,
|
|||||||
border-bottom-color: #e7eeeb;
|
border-bottom-color: #e7eeeb;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 主列表与弹窗选择列表统一居中,避免未声明 align 的字段退回左对齐。 */
|
||||||
|
body .el-table th.el-table__cell,
|
||||||
|
body .el-table td.el-table__cell {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
#app .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {
|
#app .el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell {
|
||||||
background: #f2f8f5;
|
background: #f2f8f5;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,12 +16,38 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :md="8">
|
<el-col :xs="24" :md="8">
|
||||||
<el-form-item label="培训类型">
|
<el-form-item label="培训类型">
|
||||||
<el-input v-model="searchForm.pxlx" placeholder="请输入培训类型" clearable />
|
<el-select
|
||||||
|
v-model="searchForm.pxlx"
|
||||||
|
placeholder="请选择培训类型"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
class="w-full"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in trainingTypeOptions"
|
||||||
|
:key="item.dictCode || item.dictValue"
|
||||||
|
:label="item.dictLabel"
|
||||||
|
:value="item.dictLabel"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :md="8">
|
<el-col :xs="24" :md="8">
|
||||||
<el-form-item label="培训层次">
|
<el-form-item label="培训层次">
|
||||||
<el-input v-model="searchForm.pxcc" placeholder="请输入培训层次" clearable />
|
<el-select
|
||||||
|
v-model="searchForm.pxcc"
|
||||||
|
placeholder="请选择培训层次"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
class="w-full"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in trainingLevelOptions"
|
||||||
|
:key="item.dictCode || item.dictValue"
|
||||||
|
:label="item.dictLabel"
|
||||||
|
:value="item.dictLabel"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :xs="24" :md="8">
|
<el-col :xs="24" :md="8">
|
||||||
@@ -142,12 +168,36 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="培训层次" prop="pxcc">
|
<el-form-item label="培训层次" prop="pxcc">
|
||||||
<el-input v-model="dialog.form.pxcc" placeholder="请输入培训层次" />
|
<el-select
|
||||||
|
v-model="dialog.form.pxcc"
|
||||||
|
placeholder="请选择培训层次"
|
||||||
|
filterable
|
||||||
|
class="training-dict-select"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in trainingLevelOptions"
|
||||||
|
:key="item.dictCode || item.dictValue"
|
||||||
|
:label="item.dictLabel"
|
||||||
|
:value="item.dictLabel"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="培训类型" prop="pxlx">
|
<el-form-item label="培训类型" prop="pxlx">
|
||||||
<el-input v-model="dialog.form.pxlx" placeholder="请输入培训类型" />
|
<el-select
|
||||||
|
v-model="dialog.form.pxlx"
|
||||||
|
placeholder="请选择培训类型"
|
||||||
|
filterable
|
||||||
|
class="training-dict-select"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in trainingTypeOptions"
|
||||||
|
:key="item.dictCode || item.dictValue"
|
||||||
|
:label="item.dictLabel"
|
||||||
|
:value="item.dictLabel"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -275,6 +325,10 @@ import {
|
|||||||
getTraining,
|
getTraining,
|
||||||
listTraining
|
listTraining
|
||||||
} from '@/api/teachBusiness/training'
|
} from '@/api/teachBusiness/training'
|
||||||
|
import { getDicts } from '@/api/system/dict/data'
|
||||||
|
|
||||||
|
const TRAINING_TYPE_DICT_CODE = 'train_type'
|
||||||
|
const TRAINING_LEVEL_DICT_CODE = 'train_level'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'TrainingPlan',
|
name: 'TrainingPlan',
|
||||||
@@ -288,6 +342,8 @@ export default {
|
|||||||
pxlx: '',
|
pxlx: '',
|
||||||
pxcc: ''
|
pxcc: ''
|
||||||
},
|
},
|
||||||
|
trainingTypeOptions: [],
|
||||||
|
trainingLevelOptions: [],
|
||||||
// 列表
|
// 列表
|
||||||
tableData: [],
|
tableData: [],
|
||||||
total: 0,
|
total: 0,
|
||||||
@@ -314,15 +370,32 @@ export default {
|
|||||||
zydh: [{ required: true, message: '请输入专业代号', trigger: 'blur' }],
|
zydh: [{ required: true, message: '请输入专业代号', trigger: 'blur' }],
|
||||||
zymc: [{ required: true, message: '请输入专业名称', trigger: 'blur' }],
|
zymc: [{ required: true, message: '请输入专业名称', trigger: 'blur' }],
|
||||||
zydm: [{ required: true, message: '请输入专业代码', trigger: 'blur' }],
|
zydm: [{ required: true, message: '请输入专业代码', trigger: 'blur' }],
|
||||||
pxcc: [{ required: true, message: '请输入培训层次', trigger: 'blur' }],
|
pxcc: [{ required: true, message: '请选择培训层次', trigger: 'change' }],
|
||||||
pxlx: [{ required: true, message: '请输入培训类型', trigger: 'blur' }]
|
pxlx: [{ required: true, message: '请选择培训类型', trigger: 'change' }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.loadTrainingDictionaries()
|
||||||
this.fetchList()
|
this.fetchList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
/**
|
||||||
|
* 从系统字典加载培训类型和培训层次,提交标签以匹配现有业务数据。
|
||||||
|
*/
|
||||||
|
loadTrainingDictionaries() {
|
||||||
|
return Promise.all([
|
||||||
|
getDicts(TRAINING_TYPE_DICT_CODE),
|
||||||
|
getDicts(TRAINING_LEVEL_DICT_CODE)
|
||||||
|
]).then(([typeResponse, levelResponse]) => {
|
||||||
|
this.trainingTypeOptions = typeResponse.data || []
|
||||||
|
this.trainingLevelOptions = levelResponse.data || []
|
||||||
|
}).catch(() => {
|
||||||
|
this.trainingTypeOptions = []
|
||||||
|
this.trainingLevelOptions = []
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
/* ---------- 列表加载 ---------- */
|
/* ---------- 列表加载 ---------- */
|
||||||
fetchList() {
|
fetchList() {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
@@ -596,4 +669,8 @@ export default {
|
|||||||
color: #f78989;
|
color: #f78989;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.training-dict-select {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -100,11 +100,6 @@
|
|||||||
:close-on-click-modal="false">
|
:close-on-click-modal="false">
|
||||||
<el-form ref="classroomForm" :model="dialog.form" :rules="rules" label-width="110px">
|
<el-form ref="classroomForm" :model="dialog.form" :rules="rules" label-width="110px">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="教室编号" prop="jsbh">
|
|
||||||
<el-input v-model="dialog.form.jsbh" placeholder="请输入教室编号" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="教室名称" prop="jsmc">
|
<el-form-item label="教室名称" prop="jsmc">
|
||||||
<el-input v-model="dialog.form.jsmc" placeholder="请输入教室名称" />
|
<el-input v-model="dialog.form.jsmc" placeholder="请输入教室名称" />
|
||||||
@@ -135,7 +130,15 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="面积">
|
<el-form-item label="面积">
|
||||||
<el-input-number v-model="dialog.form.mj" :min="0" :precision="1" controls-position="right" class="w-full" />
|
<div class="number-unit-field">
|
||||||
|
<el-input-number
|
||||||
|
v-model="dialog.form.mj"
|
||||||
|
:min="0"
|
||||||
|
:precision="1"
|
||||||
|
controls-position="right"
|
||||||
|
/>
|
||||||
|
<span class="number-unit">㎡</span>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
@@ -148,11 +151,6 @@
|
|||||||
<el-input-number v-model="dialog.form.ewyxkbs" :min="0" controls-position="right" class="w-full" />
|
<el-input-number v-model="dialog.form.ewyxkbs" :min="0" controls-position="right" class="w-full" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
|
||||||
<el-form-item label="序号">
|
|
||||||
<el-input v-model="dialog.form.xh" placeholder="请输入序号" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="拼音">
|
<el-form-item label="拼音">
|
||||||
<el-input v-model="dialog.form.py" placeholder="请输入拼音" />
|
<el-input v-model="dialog.form.py" placeholder="请输入拼音" />
|
||||||
@@ -227,7 +225,6 @@ export default {
|
|||||||
form: this.createEmptyForm()
|
form: this.createEmptyForm()
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
jsbh: [{ required: true, message: '请输入教室编号', trigger: 'blur' }],
|
|
||||||
jsmc: [{ required: true, message: '请输入教室名称', trigger: 'blur' }]
|
jsmc: [{ required: true, message: '请输入教室名称', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -324,7 +321,7 @@ export default {
|
|||||||
|
|
||||||
/* ---------- 新增 / 编辑 ---------- */
|
/* ---------- 新增 / 编辑 ---------- */
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
this.dialog.title = '新增教室'
|
this.dialog.title = '新增教学场地'
|
||||||
this.dialog.form = this.createEmptyForm()
|
this.dialog.form = this.createEmptyForm()
|
||||||
this.dialog.visible = true
|
this.dialog.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
@@ -332,7 +329,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleEdit(row) {
|
handleEdit(row) {
|
||||||
this.dialog.title = '编辑教室'
|
this.dialog.title = '编辑教学场地'
|
||||||
this.dialog.form = Object.assign({}, this.createEmptyForm(), row)
|
this.dialog.form = Object.assign({}, this.createEmptyForm(), row)
|
||||||
this.dialog.visible = true
|
this.dialog.visible = true
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
@@ -455,6 +452,28 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.number-unit-field {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 12px;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
.el-input-number {
|
||||||
|
flex: 1;
|
||||||
|
width: auto;
|
||||||
|
min-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.number-unit {
|
||||||
|
display: inline-flex;
|
||||||
|
flex: none;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
height: 36px;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.danger-text-btn {
|
.danger-text-btn {
|
||||||
color: #f56c6c;
|
color: #f56c6c;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user