Compare commits

...

5 Commits

Author SHA1 Message Date
zhaichao 6e472028c8 教学大纲 2026-08-27 16:39:04 +08:00
zhaichao 1e852d03a9 人才培养 2026-08-27 16:38:52 +08:00
zhaichao b93375ee7a 学科专业 2026-08-27 16:38:44 +08:00
zhaichao f2071455d1 联教 2026-08-27 16:21:55 +08:00
zhaichao b33e6b4a52 顶部学期切换栏优化 2026-08-27 16:21:42 +08:00
5 changed files with 203 additions and 104 deletions
+65 -10
View File
@@ -29,6 +29,7 @@
size="small"
filterable
class="semester-select"
popper-class="semester-select-popper"
@change="handleSwitch"
>
<el-option
@@ -223,10 +224,10 @@ export default {
}
&__switch {
background: transparent;
border: none;
padding: 0;
border-radius: 0;
background: rgba(255, 255, 255, 0.09);
border: 1px solid rgba(255, 255, 255, 0.16);
padding: 0 16px;
border-radius: 7px;
height: 36px;
/* 用一层定高 flex 容器包裹 select,彻底隔离其默认行高外溢 */
@@ -248,22 +249,31 @@ export default {
}
::v-deep .el-input__inner {
background: rgba(255, 255, 255, 0.12);
border: 1px solid rgba(255, 255, 255, 0.35);
color: #fff;
background: transparent !important;
border: none !important;
color: #fff !important;
border-radius: 7px;
height: 36px;
padding: 0 12px;
padding: 0;
display: flex;
align-items: center;
&::placeholder {
color: rgba(255, 255, 255, 0.7);
color: rgba(255, 255, 255, 0.7) !important;
}
}
::v-deep .el-input__inner:hover {
border-color: rgba(255, 255, 255, 0.6);
background: transparent !important;
}
/* 去掉 focus 时的蓝色外光晕(Element 默认 box-shadow) */
::v-deep .el-input__inner:focus,
::v-deep .el-select .el-input__inner:focus,
::v-deep .el-select .el-input.is-focus .el-input__inner {
border-color: transparent !important;
box-shadow: none !important;
outline: none !important;
}
::v-deep .el-input__icon {
@@ -272,3 +282,48 @@ export default {
}
}
</style>
<style lang="scss">
/* 学期下拉浮层渲染在 body 下,scoped 无法命中,故用非 scoped 样式通过 popper-class 单独定制,
使其与顶部深色栏视觉统一(仅作用于 SemesterBar 的下拉,不影响页面其他 select)。 */
.semester-select-popper {
background: #084c3f !important;
border: 1px solid rgba(255, 255, 255, 0.14) !important;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35) !important;
border-radius: 7px;
.el-select-dropdown__list {
padding: 4px;
}
.el-select-dropdown__item {
color: rgba(255, 255, 255, 0.85);
border-radius: 5px;
height: 32px;
line-height: 32px;
&.hover,
&:hover {
background: rgba(255, 255, 255, 0.12);
color: #fff;
}
&.selected {
color: #fff;
font-weight: 600;
background: rgba(255, 255, 255, 0.16);
}
/* 关键选项的选中图标保持可见 */
.el-select-dropdown__item span {
color: #fff;
}
}
.el-scrollbar__bar.is-vertical {
> div {
background-color: rgba(255, 255, 255, 0.25);
}
}
}
</style>
@@ -52,7 +52,7 @@
<el-table-column prop="xmlx" label="项目类型" width="80" align="center" show-overflow-tooltip />
<el-table-column prop="sm" label="说明" min-width="120" show-overflow-tooltip />
<el-table-column prop="bz" label="备注" min-width="120" show-overflow-tooltip />
<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" @click="handleDetail(row)">详情</el-button>
<el-button type="text" size="small" @click="handleEdit(row)">修改</el-button>
+72 -34
View File
@@ -15,97 +15,108 @@
</el-form-item>
<el-form-item>
<el-button type="primary" @click="handleQuery">查询</el-button>
<el-button type="primary" plain @click="handleAdd">新增{{ currentTitle }}</el-button>
</el-form-item>
</el-form>
</el-card>
<!-- ==================== 2. 数据表格 ==================== -->
<el-card shadow="never" class="table-card">
<!-- 课时费方案 -->
<el-table v-if="activeTab === 'fee'" v-loading="feeState.loading" :data="feeState.list" border stripe style="width: 100%">
<div class="table-title">{{ currentTitle }}</div>
<div class="list-toolbar">
<el-button type="primary" plain size="small" @click="handleAdd">新增{{ currentTitle }}</el-button>
</div>
<el-table
ref="tableRef"
v-loading="currentState.loading"
:data="currentState.list"
border
stripe
style="width: 100%"
>
<template v-if="activeTab === 'fee'">
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="bh" label="编号" width="150" align="center" show-overflow-tooltip />
<el-table-column prop="mc" label="名称" min-width="130" show-overflow-tooltip />
<el-table-column prop="mrbzksl" label="默认标准课时量" width="120" align="right">
<el-table-column prop="mrbzksl" label="默认标准课时量" width="120" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.mrbzksl) }}</template>
</el-table-column>
<el-table-column prop="mrksfbz" label="默认课时费标准" width="120" align="right">
<el-table-column prop="mrksfbz" label="默认课时费标准" width="120" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.mrksfbz) }}</template>
</el-table-column>
<el-table-column prop="mrclksfbz" label="默认超量课时费标准" width="150" align="right">
<el-table-column prop="mrclksfbz" label="默认超量课时费标准" width="150" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.mrclksfbz) }}</template>
</el-table-column>
<el-table-column prop="xgjxbzksfbz" label="相关教学补助课时费标准" width="180" align="right">
<el-table-column prop="xgjxbzksfbz" label="相关教学补助课时费标准" width="180" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.xgjxbzksfbz) }}</template>
</el-table-column>
<el-table-column prop="jxyxbz" label="绩效优秀补助" width="110" align="right">
<el-table-column prop="jxyxbz" label="绩效优秀补助" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.jxyxbz) }}</template>
</el-table-column>
<el-table-column prop="jxlhbz" label="绩效良好补助" width="110" align="right">
<el-table-column prop="jxlhbz" label="绩效良好补助" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.jxlhbz) }}</template>
</el-table-column>
<el-table-column prop="jxzdbz" label="绩效中等补助" width="110" align="right">
<el-table-column prop="jxzdbz" label="绩效中等补助" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.jxzdbz) }}</template>
</el-table-column>
<el-table-column prop="jxjgbz" label="绩效及格补助" width="110" align="right">
<el-table-column prop="jxjgbz" label="绩效及格补助" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.jxjgbz) }}</template>
</el-table-column>
<el-table-column prop="jxbjgbz" label="绩效不及格补助" width="120" align="right">
<el-table-column prop="jxbjgbz" label="绩效不及格补助" width="120" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.jxbjgbz) }}</template>
</el-table-column>
<el-table-column prop="sm" label="说明" min-width="120" show-overflow-tooltip />
<el-table-column label="操作" width="160" align="center" fixed="right">
<el-table-column label="操作" width="200" align="center" fixed="right" class-name="op-cell">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleDetail(row)">详情</el-button>
<el-button type="text" size="small" @click="handleEdit(row)">修改</el-button>
<el-button type="text" size="small" class="text-danger" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</template>
<!-- 课时方案 -->
<el-table v-else v-loading="coeffState.loading" :data="coeffState.list" border stripe style="width: 100%">
<template v-else>
<el-table-column type="index" label="序号" width="55" align="center" />
<el-table-column prop="bh" label="编号" width="150" align="center" show-overflow-tooltip />
<el-table-column prop="mc" label="名称" min-width="130" show-overflow-tooltip />
<el-table-column prop="zjksxs" label="主讲课时系数" width="110" align="right">
<el-table-column prop="zjksxs" label="主讲课时系数" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.zjksxs) }}</template>
</el-table-column>
<el-table-column prop="fjksxs" label="辅讲课时系数" width="110" align="right">
<el-table-column prop="fjksxs" label="辅讲课时系数" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.fjksxs) }}</template>
</el-table-column>
<el-table-column prop="mbxyrs" label="满班学员人数" width="110" align="right">
<el-table-column prop="mbxyrs" label="满班学员人数" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.mbxyrs) }}</template>
</el-table-column>
<el-table-column prop="dz10xybjxs" label="递增10学员班级系数" width="150" align="right">
<el-table-column prop="dz10xybjxs" label="递增10学员班级系数" width="150" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.dz10xybjxs) }}</template>
</el-table-column>
<el-table-column prop="bjxssx" label="班级系数上限" width="110" align="right">
<el-table-column prop="bjxssx" label="班级系数上限" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.bjxssx) }}</template>
</el-table-column>
<el-table-column prop="d78jksl" label="第78节课时量" width="110" align="right">
<el-table-column prop="d78jksl" label="第78节课时量" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.d78jksl) }}</template>
</el-table-column>
<el-table-column prop="yjksl" label="夜间课时量" width="100" align="right">
<el-table-column prop="yjksl" label="夜间课时量" width="100" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.yjksl) }}</template>
</el-table-column>
<el-table-column prop="mrktjxffxs" label="默认课堂教法系数" width="130" align="right">
<el-table-column prop="mrktjxffxs" label="默认课堂教法系数" width="130" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.mrktjxffxs) }}</template>
</el-table-column>
<el-table-column prop="hbxszl" label="合班系数增量" width="110" align="right">
<el-table-column prop="hbxszl" label="合班系数增量" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.hbxszl) }}</template>
</el-table-column>
<el-table-column prop="hbxssx" label="合班系数上限" width="110" align="right">
<el-table-column prop="hbxssx" label="合班系数上限" width="110" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.hbxssx) }}</template>
</el-table-column>
<el-table-column prop="sm" label="说明" min-width="120" show-overflow-tooltip />
<el-table-column label="操作" width="120" align="center" fixed="right">
<el-table-column label="操作" width="120" align="center" fixed="right" class-name="op-cell">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleDetail(row)">详情</el-button>
<el-button type="text" size="small" @click="handleEdit(row)">修改</el-button>
</template>
</el-table-column>
</template>
</el-table>
<el-pagination
@@ -464,6 +475,9 @@ export default {
state.total = 0
}).finally(() => {
state.loading = false
this.$nextTick(() => {
this.$refs.tableRef && this.$refs.tableRef.doLayout()
})
})
},
@@ -634,13 +648,6 @@ export default {
}
.plan-page {
.list-title {
font-size: 16px;
font-weight: 600;
color: #303133;
margin-bottom: 12px;
}
// ==================== 1. 查询区域 ====================
.search-card {
margin-bottom: 16px;
@@ -654,6 +661,37 @@ export default {
// ==================== 2. 数据表格 ====================
.table-card {
.table-title {
font-size: 16px;
font-weight: 600;
color: #303133;
margin-bottom: 8px;
}
.list-toolbar {
display: flex;
justify-content: flex-end;
margin-bottom: 12px;
}
::v-deep .el-table .cell {
white-space: nowrap;
}
/* 修复操作栏 cell 底部错位:
el-button--small 实际高度 30px, 但 .cell 默认 line-height:23px 装不下,
按钮溢出 cell 顶部被 overflow:hidden 截掉, 导致按钮底部离行底比文字列小 12px。
把 td 上下 padding 去掉、cell line-height 改成 30px, 让 cell 高度 = 按钮高度,
并把 cell 顶端贴 td 顶端, 按钮底部就与文字列底部对齐(都离 td 底约 17px)。 */
::v-deep .op-cell {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
::v-deep .op-cell > .cell {
line-height: 30px !important;
padding: 0 10px;
}
.pagination {
display: flex;
justify-content: flex-end;
@@ -106,7 +106,7 @@
<el-table-column prop="ksfbz" label="课时费单价" width="100" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.ksfbz) }}</template>
</el-table-column>
<el-table-column prop="clksfbz" label="超量课时费单价" width="110" align="right" header-align="center">
<el-table-column prop="clksfbz" label="超量课时费单价" width="120" align="right" header-align="center">
<template slot-scope="{ row }">{{ fmtValue(row.clksfbz) }}</template>
</el-table-column>
</el-table>
@@ -67,11 +67,17 @@
<el-table-column prop="jxgljgbh" label="教学管理机构" width="200" show-overflow-tooltip />
<el-table-column prop="zydm" label="专业代码" width="200" />
<el-table-column prop="zymc" label="专业名称" width="200" show-overflow-tooltip />
<el-table-column prop="zdyfl" label="分类" width="150" align="center" />
<el-table-column prop="xylb" label="学员类别" width="150" align="center" />
<el-table-column prop="xnz" label="学年制" width="120" align="center" />
<el-table-column prop="xqs" label="学期数" width="120" align="center" />
<el-table-column prop="zgzy" label="主干专业" align="center" />
<el-table-column label="停用" width="100" align="center">
<template slot-scope="{ row }">
<el-tag :type="row.ty === 1 ? 'danger' : 'success'" size="mini">
{{ row.ty === 1 ? '是' : '否' }}
</el-tag>
</template>
</el-table-column>
<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>