feat: 迁移 Vue3 + Vite + view-ui-plus(对齐 NoticeFront 框架)

- 构建:Vue CLI 4 → Vite 5,入口迁至根 index.html(含 env-config + 主题通道 loader)
- 技术栈:Vue 2.6 → Vue 3.4,view-design → view-ui-plus 1.3.24,vue-router 3 → 4(hash)
- 壳层重写:App.vue / components/layout.vue 对齐 Notice 骨架(logo-badge、icon-* 通道图标、resolveMenuPage、crumb-home 基线)
- 机械转换:具名 slot → template #x、.sync → v-model:、@click.native、$set、beforeDestroy、/deep/ → :deep()
- render:h('Button')/h('Input') → 真组件 + 扁平 props/onClick
- 组件适配:vuedraggable 4 的 #item 插槽;vue-treeselect → @zanmato/vue3-treeselect;Page 分页改 v-model + pageSize 显式回写
- 清理:删除 Vue2 死代码(layout_old/bak/child、App.Net、codeModal、未引用组件)
- 修复:深链接首次加载被重定向到首个模块(router.isReady)

验证:vite build 通过;headless CDP 全 15 路由无异常;教师列表 2 行渲染、操作列按钮点击弹窗正常。
This commit is contained in:
lijing
2026-10-20 15:16:52 +08:00
parent 0564f5f89d
commit 7e49587c10
73 changed files with 6083 additions and 33190 deletions
+1 -1
View File
@@ -28,7 +28,7 @@
<div class="pagination-wrap">
<span class="total-text">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:total="total"
:page-size="pageSize"
:page-size-opts="[10, 20, 50, 100]"
+25 -32
View File
@@ -15,10 +15,10 @@
添加班级
<Icon type="ios-arrow-down"></Icon>
</Button>
<DropdownMenu slot="list">
<template #list><DropdownMenu>
<DropdownItem name="openAddSingleClass">添加单个班级</DropdownItem>
<DropdownItem name="openMultiNumModal">添加多个班级</DropdownItem>
</DropdownMenu>
</DropdownMenu></template>
</Dropdown>
<Button type="success" style="margin-left:10px" @click="openImportModal">班级信息导入</Button>
</div>
@@ -42,10 +42,10 @@
<Input v-model.number="addClassCount" type="number" min="1" />
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="multiClassModal = false">取消</Button>
<Button type="primary" @click="submitBatchAdd">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗2:班级信息导入 -->
@@ -61,9 +61,9 @@
<Button type="primary" @click="confirmImport">确定</Button>
</div> -->
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -73,7 +73,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -84,8 +84,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[班级导入模板.xls]</a>
@@ -98,9 +98,9 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<!-- 弹窗3:选择教师 -->
@@ -119,10 +119,10 @@
</Select>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="selectTeacherModal = false">取消</Button>
<Button type="primary" @click="confirmSelectTeacher">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗5:选择校区 -->
@@ -135,15 +135,16 @@
</Select>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="selectCampusModal = false">取消</Button>
<Button type="primary" @click="confirmSelectCampus">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { Button, Input } from "view-ui-plus";
import myTree from "../../components/my_tree";
export default {
components: { myTree},
@@ -336,16 +337,12 @@ export default {
title: '班级别名',
align: 'center',
render: (h, params) => {
return h('Input', {
props: { value: params.row.cname },
style: { width: '150px' },
on: {
input: (val) => {
this.$set(params.row, 'classAlias', val)
return h(Input, {modelValue: params.row.cname,
'onUpdate:modelValue': (val) => {
params.row.classAlias = val
this.cellChange(params.index, 'classAlias', val)
}
}
})
},
style: { width: '150px' }})
}
},
{
@@ -543,14 +540,10 @@ export default {
width: 100,
render: (h, params) => {
return h('div', { style: { display: 'flex', gap: '8px', justifyContent: 'center' } }, [
h('Button', {
props: { icon: 'ios-eye-outline', type: 'text', size: 'large' },
on: { click: () => this.viewDetail(params.row) }
}),
h('Button', {
props: { icon: 'ios-trash-outline', type: 'text', color: 'red', size: 'large',disabled:params.row.disableDel },
on: { click: () => this.deleteRow(params.index, params.row) }
})
h(Button, {icon: 'ios-eye-outline', type: 'text', size: 'large',
onClick: () => this.viewDetail(params.row)}),
h(Button, {icon: 'ios-trash-outline', type: 'text', color: 'red', size: 'large',disabled:params.row.disableDel,
onClick: () => this.deleteRow(params.index, params.row)})
])
}
}
+4 -4
View File
@@ -50,7 +50,7 @@
<!-- <div class="pagination-bottom">
<span class="total-text">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:total="total"
:page-size="pageSize"
:page-size-opts="[10,20,50]"
@@ -63,7 +63,7 @@
<!-- 设置教师弹窗 -->
<Modal v-model="modalVisible" title="选择教师" width="400">
<Form ref="form" :model="formData" :rules="formRules" label-width="90">
<Form ref="form" :model="formData" :rules="formRules" :label-width="90">
<FormItem label="科室">
<Select v-model="formData.dept" placeholder="按科室过滤" style="width:100%" @on-change="getteacherSelect" clearable transfer>
<Option v-for="d in groupteacherSelectlist" :key="d.id" :value="d.id">{{ d.name }}</Option>
@@ -75,10 +75,10 @@
</Select>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="modalVisible = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitSelectTeacher">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
+20 -25
View File
@@ -30,7 +30,7 @@
style="width:200px"
@keyup.enter="searchList"
>
<Icon slot="suffix" type="ios-search" @click="searchList" style="cursor:pointer;"></Icon>
<template #suffix><Icon type="ios-search" @click="searchList" style="cursor:pointer;"></Icon></template>
</Input>
</div>
</div>
@@ -49,7 +49,7 @@
<div class="pagination-bottom">
<span class="total-text">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:total="total"
:page-size="pageSize"
:page-size-opts="[10,20,50]"
@@ -64,7 +64,7 @@
<!-- 新增/编辑班级弹窗 -->
<Modal v-model="modalVisible" :title="modalTitle" width="520">
<Form ref="form" :model="formData" :rules="formRules" label-width="110">
<Form ref="form" :model="formData" :rules="formRules" :label-width="110">
<FormItem label="班级代码">
<Input v-model="formData.classCode" placeholder="请输入班级代码"></Input>
</FormItem>
@@ -95,17 +95,17 @@
</Select>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="modalVisible = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitForm">提交</Button>
</div>
</div></template>
</Modal>
<!-- 班级信息导入 -->
<Modal v-model="importModal" title="班级信息导入" width="560">
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -115,7 +115,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -126,8 +126,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[班级导入模板.xls]</a>
@@ -140,15 +140,16 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import myTree from "../../components/my_tree";
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
export default {
name: 'HigherEducation',
components: { myTree},
@@ -193,18 +194,12 @@
width: 130,
render: (h, params) => {
return h('div', { style: 'display:flex;gap:8px;justify-content:center' }, [
h('Button', {
props: { type: 'text', icon: 'ios-eye', size: 'large' },
on: { click: () => this.viewDetail(params.row) }
}),
h('Button', {
props: { type: 'text', icon: 'ios-create', size: 'large' },
on: { click: () => this.editRow(params.row, params.index) }
}),
h('Button', {
props: { type: 'text', icon: 'ios-trash', size: 'large' },
on: { click: () => this.delRow(params.index) }
})
h(Button, {type: 'text', icon: 'ios-eye', size: 'large',
onClick: () => this.viewDetail(params.row)}),
h(Button, {type: 'text', icon: 'ios-create', size: 'large',
onClick: () => this.editRow(params.row, params.index)}),
h(Button, {type: 'text', icon: 'ios-trash', size: 'large',
onClick: () => this.delRow(params.index)})
])
}
}
+2 -2
View File
@@ -30,7 +30,7 @@
<div class="page-wrap">
<span style="margin-right:12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,50,100]"
@@ -159,7 +159,7 @@
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
+36 -41
View File
@@ -77,14 +77,14 @@
</div>
<div class="page-pagination">
<Page
:current.sync="pageNum"
:page-size.sync="pageSize"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,50]"
show-sizer
show-total
@on-change="loadTableData"
@on-page-size-change="loadTableData"
@on-page-size-change="v => { pageSize = v; loadTableData(); }"
></Page>
</div>
</div>
@@ -92,39 +92,39 @@
<!-- 弹窗1:新增校本分组 -->
<Modal v-model="addGroupModal" title="添加组" width="420">
<Form ref="groupForm" :model="groupForm" :rules="groupRules" label-width="80">
<Form ref="groupForm" :model="groupForm" :rules="groupRules" :label-width="80">
<FormItem label="*组名称" prop="groupName">
<Input v-model="groupForm.groupName" placeholder="请输入组名称"></Input>
</FormItem>
</Form>
<div slot="footer" align="left">
<template #footer><div align="left">
<Button type="error" @click="addGroupModal=false">删除</Button>
<div style="float:right">
<Button @click="addGroupModal=false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitAddGroup">提交</Button>
</div>
</div>
</div></template>
</Modal>
<!-- 弹窗2:编辑校本分组(对标截图红框弹窗) -->
<Modal v-model="editGroupModal" title="编辑组" width="420">
<Form ref="editGroupForm" :model="editGroupForm" :rules="editGroupRules" label-width="80">
<Form ref="editGroupForm" :model="editGroupForm" :rules="editGroupRules" :label-width="80">
<FormItem label="*组名称" prop="groupName">
<Input v-model="editGroupForm.groupName"></Input>
</FormItem>
</Form>
<div slot="footer" align="left">
<template #footer><div align="left">
<Button type="error" @click="confirmDelGroup">删除</Button>
<div style="float:right">
<Button @click="editGroupModal=false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitEditGroup">提交</Button>
</div>
</div>
</div></template>
</Modal>
<!-- 弹窗3:新增选修班 -->
<Modal v-model="addClassModal" title="添加选修班" width="560">
<Form ref="addClassForm" :model="addClassForm" :rules="addClassRules" label-width="100">
<Form ref="addClassForm" :model="addClassForm" :rules="addClassRules" :label-width="100">
<FormItem label="*班级名称" prop="className">
<Input v-model="addClassForm.className" placeholder="请输入班级名称"></Input>
</FormItem>
@@ -183,15 +183,15 @@
<Input v-model.number="addClassForm.studentNum" placeholder="请输入计划招生人数"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addClassModal=false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitAddClass">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗4:编辑选修班(完全匹配截图布局) -->
<Modal v-model="editClassModal" title="编辑选修班" width="560">
<Form ref="editClassForm" :model="editClassForm" :rules="addClassRules" label-width="100">
<Form ref="editClassForm" :model="editClassForm" :rules="addClassRules" :label-width="100">
<FormItem label="*班级名称" prop="className">
<Input v-model="editClassForm.className"></Input>
</FormItem>
@@ -229,10 +229,10 @@
</div>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="editClassModal=false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitEditClass">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗5:班级信息导入 -->
@@ -243,10 +243,10 @@
<Upload action="" :before-upload="()=>false">
<Button icon="ios-cloud-upload-outline">选择要上传的文件</Button>
</Upload>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="importClassModal=false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmImportClass">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗6:学生导入 -->
@@ -257,34 +257,35 @@
<Upload action="" :before-upload="()=>false">
<Button icon="ios-cloud-upload-outline">选择要上传的文件</Button>
</Upload>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="importStudentModal=false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmImportStudent">确定</Button>
</div>
</div></template>
</Modal>
<!-- 批量删除确认弹窗 -->
<Modal v-model="delConfirmModal" title="提示" width="360">
<Alert type="warning" show-icon>确认批量删除选中班级?删除后不可恢复</Alert>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="delConfirmModal=false" style="margin-right:10px">取消</Button>
<Button type="error" @click="confirmBatchDel">确定删除</Button>
</div>
</div></template>
</Modal>
<!-- 删除分组二次确认弹窗 -->
<Modal v-model="delGroupConfirmModal" title="删除分组提示" width="380">
<Alert type="error" show-icon>确定删除该分组?分组下所有班级将会一并删除,不可恢复!</Alert>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="delGroupConfirmModal=false" style="margin-right:10px">取消</Button>
<Button type="error" @click="doDelGroup">确认删除</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
export default {
import { Button } from "view-ui-plus";
export default {
name: "CurriculumElectiveClass",
data() {
return {
@@ -323,20 +324,14 @@
render: (h, params) => {
return h("div", { style: "display:flex;gap:6px;justify-content:center" }, [
// 第一个:编辑图标 打开编辑弹窗
h("Button", {
props: { type: "text", icon: "ios-create", size: "large" },
on: { click: () => this.openEditClass(params.row) }
}),
h(Button, {type: "text", icon: "ios-create", size: "large",
onClick: () => this.openEditClass(params.row)}),
// 学生管理
h("Button", {
props: { type: "text", icon: "ios-people", size: "large" },
on: { click: () => this.openStudentManage(params.row) }
}),
h(Button, {type: "text", icon: "ios-people", size: "large",
onClick: () => this.openStudentManage(params.row)}),
// 同步刷新
h("Button", {
props: { type: "text", icon: "ios-refresh", size: "large" },
on: { click: () => this.singleSync(params.row) }
})
h(Button, {type: "text", icon: "ios-refresh", size: "large",
onClick: () => this.singleSync(params.row)})
])
}
}
@@ -755,24 +750,24 @@
<style>
/* 全局穿透修改iView表格,完全匹配截图:无外框、无竖线、仅行底横线 */
/deep/ .ivu-table {
:deep(.ivu-table) {
border: none !important;
}
/deep/ .ivu-table-header th {
:deep(.ivu-table-header th) {
border: none;
border-bottom: 1px solid #eee;
text-align: center;
background: #fff;
}
/deep/ .ivu-table td {
:deep(.ivu-table td) {
border-left: none !important;
border-right: none !important;
border-bottom: 1px solid #f0f0f0;
}
/deep/ .ivu-table-row {
:deep(.ivu-table-row) {
border: none;
}
/deep/ .ivu-table-stripe .ivu-table-row:nth-child(even) {
:deep(.ivu-table-stripe .ivu-table-row:nth-child(even)) {
background-color: #fafafa;
}
</style>
+15 -15
View File
@@ -32,14 +32,14 @@
<Button type="error" @click="batchDelConfirm">删除</Button>
<div class="pagination-box">
<Page
:current.sync="pageNum"
:page-size.sync="pageSize"
v-model="pageNum"
:page-size="pageSize"
:total="totalCount"
:page-size-opts="[10,20,50]"
show-sizer
show-total
@on-change="loadStudentData"
@on-page-size-change="loadStudentData"
@on-page-size-change="v => { pageSize = v; loadStudentData(); }"
></Page>
</div>
</div>
@@ -47,7 +47,7 @@
<!-- 弹窗1:调班弹窗 -->
<Modal v-model="transferModal" title="调班" width="680">
<Form label-width="100">
<Form :label-width="100">
<FormItem label="当前班级">
<Input v-model="currentClassName" disabled></Input>
</FormItem>
@@ -75,10 +75,10 @@
</div>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="transferModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmTransferStudent">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗2:学生信息导入 -->
@@ -89,19 +89,19 @@
<Upload action="" :before-upload="()=>false">
<Button icon="ios-cloud-upload-outline">选择要上传的文件</Button>
</Upload>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="importModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmImport">确定</Button>
</div>
</div></template>
</Modal>
<!-- 批量删除二次确认弹窗 -->
<Modal v-model="delConfirmModal" title="提示" width="360">
<Alert type="warning" show-icon>确认删除选中学生?删除后不可恢复</Alert>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="delConfirmModal=false" style="margin-right:10px">取消</Button>
<Button type="error" @click="doBatchDelete">确定删除</Button>
</div>
</div></template>
</Modal>
</div>
</template>
@@ -322,24 +322,24 @@
<style>
/* 全局穿透 表格样式 与截图一致:无外框无竖线,仅行底横线 */
/deep/ .ivu-table {
:deep(.ivu-table) {
border: none !important;
}
/deep/ .ivu-table-header th {
:deep(.ivu-table-header th) {
border: none;
border-bottom: 1px solid #eee;
text-align: center;
background: #fff;
}
/deep/ .ivu-table td {
:deep(.ivu-table td) {
border-left: none !important;
border-right: none !important;
border-bottom: 1px solid #f0f0f0;
}
/deep/ .ivu-table-row {
:deep(.ivu-table-row) {
border: none;
}
/deep/ .ivu-table-stripe .ivu-table-row:nth-child(even) {
:deep(.ivu-table-stripe .ivu-table-row:nth-child(even)) {
background-color: #fafafa;
}
</style>
+19 -25
View File
@@ -24,7 +24,7 @@
<FormItem label="新学年">
<Input disabled :value="addForm.year + '学年'" />
</FormItem>
<Row gutter="16">
<Row :gutter="16">
<Col span="12">
<FormItem label="开始日期" prop="yearStartDate">
<DatePicker
@@ -56,7 +56,7 @@
></DatePicker>
</FormItem>
<div class="form-block-title">第一学期设置</div>
<Row gutter="16">
<Row :gutter="16">
<Col span="12">
<FormItem label="开始日期" prop="firstTermStartDate">
<DatePicker
@@ -81,7 +81,7 @@
</Col>
</Row>
<div class="form-block-title">第二学期设置</div>
<Row gutter="16">
<Row :gutter="16">
<Col span="12">
<FormItem label="开始日期" prop="secondTermStartDate">
<DatePicker
@@ -104,10 +104,10 @@
</Col>
</Row>
</Form>
<div slot="footer" class="modal-footer">
<template #footer><div class="modal-footer">
<Button @click="addModalVisible = false">取消</Button>
<Button type="primary" @click="submitAdd">提交</Button>
</div>
</div></template>
</Modal>
<!-- 编辑弹窗 -->
<Modal v-model="editModalVisible" title="修改学年学期" width="720" class="modalform">
@@ -122,7 +122,7 @@
<FormItem label="新学年">
<Input disabled :value="editForm.year + '学年'" />
</FormItem>
<Row gutter="16">
<Row :gutter="16">
<Col span="12">
<FormItem label="开始日期" prop="yearStartDate">
<DatePicker
@@ -151,7 +151,7 @@
></DatePicker>
</FormItem>
<div class="form-block-title">第一学期设置</div>
<Row gutter="16">
<Row :gutter="16">
<Col span="12">
<FormItem label="开始日期" prop="firstTermStartDate">
<DatePicker
@@ -172,7 +172,7 @@
</Col>
</Row>
<div class="form-block-title">第二学期设置</div>
<Row gutter="16">
<Row :gutter="16">
<Col span="12">
<FormItem label="开始日期" prop="secondTermStartDate">
<DatePicker
@@ -193,15 +193,16 @@
</Col>
</Row>
</Form>
<div slot="footer" class="modal-footer">
<template #footer><div class="modal-footer">
<Button @click="editModalVisible = false">取消</Button>
<Button type="primary" @click="submitEdit">保存</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { self_viewport } from "@/mixins/self_viewport";
import { Button } from "view-ui-plus";
import { self_viewport } from "@/mixins/self_viewport";
export default {
name: "AcademicYearTerm",
data() {
@@ -268,19 +269,12 @@ export default {
width: 90,
align: "center",
render: (h, params) => {
return h(
"Button",
{
props: {
icon: "ios-create",
shape: "circle"
},
on: {
click: () => {
return h(Button,
{icon: "ios-create",
shape: "circle",
onClick: () => {
this.openEditModal(params.row);
}
}
}
}}
);
}
}
@@ -550,7 +544,7 @@ export default {
padding: 10px;
/* margin: 10px 0 15px; */
}
.term-table /deep/ .ivu-table-row td {
.term-table :deep(.ivu-table-row td) {
padding: 6px 0;
}
.form-block-title {
@@ -563,7 +557,7 @@ export default {
.modal-footer {
text-align: right;
}
.modalform /deep/ .ivu-modal-body{
.modalform :deep(.ivu-modal-body) {
padding:10px;
}
</style>
+36 -45
View File
@@ -11,24 +11,22 @@
<div class="btn-container">
<draggable
v-model="campuslist"
animation="150"
item-key="name"
:animation="150"
ghost-class="drag-ghost"
class="drag-box"
:options="{ group: 'people' }"
group="people"
@start="drag = true"
@end="drag = false"
:move="getdata1"
@update="datadragEnd1"
@change="datadragEnd1"
>
<div
v-for="(item, index) in campuslist"
:key="index"
class="tag-wrap"
@dblclick="openEditModal('campus', index)"
>
<div class="tag-btn">{{ item.name }}</div>
<span class="close-btn" @click.stop="delCampus(index)">×</span>
</div>
<template #item="{ element, index }">
<div class="tag-wrap" @dblclick="openEditModal('campus', index)">
<div class="tag-btn">{{ element.name }}</div>
<span class="close-btn" @click.stop="delCampus(index)">×</span>
</div>
</template>
</draggable>
<Button icon="ios-add" size="large" class="add-btn" @click="openAddModal('campus')">添加校区</Button>
</div>
@@ -43,24 +41,22 @@
<div class="btn-container">
<draggable
v-model="divisionlist"
animation="150"
item-key="name"
:animation="150"
ghost-class="drag-ghost"
class="drag-box"
:options="{ group: 'people' }"
group="people"
@start="drag = true"
@end="drag = false"
:move="getdata2"
@update="datadragEnd2"
@change="datadragEnd2"
>
<div
v-for="(item, index) in divisionlist"
:key="index"
class="tag-wrap"
@dblclick="openEditModal('dept', index)"
>
<div class="tag-btn">{{ item.name }}</div>
<span class="close-btn" @click.stop="delDept(index)">×</span>
</div>
<template #item="{ element, index }">
<div class="tag-wrap" @dblclick="openEditModal('dept', index)">
<div class="tag-btn">{{ element.name }}</div>
<span class="close-btn" @click.stop="delDept(index)">×</span>
</div>
</template>
</draggable>
<Button icon="ios-add" size="large" class="add-btn" @click="openAddModal('dept')">添加系部</Button>
</div>
@@ -80,7 +76,7 @@
placeholder="输入代码或名称搜索"
@keyup.enter="searchMajor"
>
<Icon slot="suffix" type="ios-search" @click="searchMajor" style="cursor:pointer;"></Icon>
<template #suffix><Icon type="ios-search" @click="searchMajor" style="cursor:pointer;"></Icon></template>
</i-Input>
</div>
</div>
@@ -98,7 +94,7 @@
<!-- <div class="pagination-fixed-bottom">
<span class="total-desc">共 {{ majorTotal }} 条</span>
<Page
:current.sync="majorPageNum"
v-model="majorPageNum"
:total="majorTotal"
:page-size="majorPageSize"
:page-size-opts="[10,20,50]"
@@ -111,7 +107,7 @@
<!-- 校区/系部 新增编辑弹窗 -->
<Modal v-model="modalVisible" :title="modalTitle" width="420">
<Form ref="formRef" :model="formData" :rules="formRule" label-width="90">
<Form ref="formRef" :model="formData" :rules="formRule" :label-width="90">
<FormItem label="校区名称" v-if="modalType === 'campus'" prop="name">
<Input v-model="formData.name" placeholder="请输入校区名称" />
</FormItem>
@@ -119,15 +115,15 @@
<Input v-model="formData.name" placeholder="请输入系部名称" />
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="modalVisible = false" style="margin-right: 10px">取消</Button>
<Button type="primary" @click="submitModal">提交</Button>
</div>
</div></template>
</Modal>
<!-- 专业新增编辑弹窗 -->
<Modal v-model="majorModalVisible" :title="majorModalTitle" width="460">
<Form ref="majorFormRef" :model="majorForm" :rules="majorFormRule" label-width="90">
<Form ref="majorFormRef" :model="majorForm" :rules="majorFormRule" :label-width="90">
<FormItem label="专业代码">
<Input v-model="majorForm.code" placeholder="请输入专业代码" />
</FormItem>
@@ -138,15 +134,16 @@
<Input v-model="majorForm.schsystemLeng" type="number" placeholder="请输入学制" />
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="majorModalVisible = false" style="margin-right: 10px">取消</Button>
<Button type="primary" @click="submitMajorModal">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { Button, Icon } from "view-ui-plus";
import draggable from 'vuedraggable'
import Sortable from 'sortablejs'
export default {
@@ -190,19 +187,13 @@ export default {
width: 170,
render: (h, params) => {
return h('div', { style: 'display:flex;gap:8px;justify-content:center;align-items:center' }, [
h('Button', {
props: { type: 'text', icon: 'ios-create', size: 'small' },
on: { click: () => this.openMajorEdit(params.index) }
}),
h('Button', {
props: { type: 'text', icon: 'ios-trash', size: 'small' },
on: { click: () => this.delMajor(params.index) }
}),
h(Button, {type: 'text', icon: 'ios-create', size: 'small',
onClick: () => this.openMajorEdit(params.index)}),
h(Button, {type: 'text', icon: 'ios-trash', size: 'small',
onClick: () => this.delMajor(params.index)}),
// 拖拽把手class固定为 drag-handle
h('Icon', {
props: { type: 'ios-move', size: 18, title: '拖动排序' },
class: 'drag-handle drag-icon'
})
h(Icon, {type: 'ios-move', size: 18, title: '拖动排序',
class: 'drag-handle drag-icon'})
])
}
}
@@ -246,7 +237,7 @@ export default {
}
}, 120)
},
beforeDestroy() {
beforeUnmount() {
if (this.tableDrag) this.tableDrag.destroy()
},
methods: {
+32 -33
View File
@@ -47,7 +47,7 @@
<div class="page-right">
<span style="margin-right:12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40,50]"
@@ -61,7 +61,7 @@
<!-- 弹窗1:添加学生 -->
<Modal v-model="addModalVisible" title="添加学生" width="560">
<Form ref="addForm" :model="addForm" :rules="formRules" label-width="90">
<Form ref="addForm" :model="addForm" :rules="formRules" :label-width="90">
<FormItem label="年级" prop="grade">
<Select v-model="addForm.grade" style="width:100%" @on-change="getschclassselect">
<Option v-for="item in gradeselectlist" :key="item.id" :value="item.id+''">{{ item.name }}</Option>
@@ -88,15 +88,15 @@
<Input v-model="addForm.pwd" type="password" placeholder="请输入密码"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addModalVisible=false">取消</Button>
<Button type="primary" @click="submitAddStudent">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗2:编辑学生 -->
<Modal v-model="editModalVisible" title="编辑学生" width="560">
<Form ref="editForm" :model="editForm" :rules="formRules" label-width="90">
<Form ref="editForm" :model="editForm" :rules="formRules" :label-width="90">
<FormItem label="当前年级" prop="grade">
<Select disabled v-model="editForm.grade" style="width:100%" @on-change="getschclassselect">
<Option v-for="item in gradeselectlist" :key="item.id" :value="item.id+''">{{ item.name }}</Option>
@@ -120,10 +120,10 @@
<Input v-model="editForm.account"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="editModalVisible=false">取消</Button>
<Button type="primary" @click="submitEditStudent">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗3:学生信息导入 -->
@@ -141,9 +141,9 @@
<Button type="primary" @click="confirmImport">确定</Button>
</div> -->
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -153,7 +153,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -164,8 +164,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[学生信息导入模板.xls]</a>
@@ -178,17 +178,17 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<!-- 弹窗4:学号导入 -->
<Modal v-model="stuIdImportModalVisible" title="学生学号导入" width="520">
<div class="main-contents">
<Form ref="UpParmas2.datapre" :model="UpParmas2.datapre" :label-width="100" inline>
<Form ref="UpParmas2.datapre" :model="UpParmas2.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas2.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas2.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas2.actionUrl"
:data="UpParmas2.datapre"
@@ -198,7 +198,7 @@
:before-upload="handleUpload2"
:on-success="importFile2"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas2.fileName" style="margin-bottom:10px">
@@ -209,8 +209,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu2" style="font-size:12px;">点击链接下载[学生学号信息导入模板.xls]</a>
@@ -223,9 +223,9 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick2" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<!-- 弹窗5:学生调班 -->
@@ -249,10 +249,10 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="moveClassModalVisible=false">取消</Button>
<Button type="primary" @click="submitMoveClass">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗6:学生异动 -->
@@ -276,25 +276,26 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="changeStatusModalVisible=false">取消</Button>
<Button type="primary" @click="submitChangeStatus">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗7:转出学生弹窗 -->
<Modal v-model="transferStudentModal" title="转出学生" width="420">
<p>确认将选中学生做转出操作?</p>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="transferStudentModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmTransferStudent">确定</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import myTree from "../../components/my_tree";
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
name: 'StudentManage',
@@ -513,10 +514,8 @@
align: 'center',
width: 80,
render: (h, params) => {
return h('Button', {
props: { type: 'text', icon: 'md-create', size: 'large' },
on: { click: () => this.openEditStudent(params.row) }
})
return h(Button, {type: 'text', icon: 'md-create', size: 'large',
onClick: () => this.openEditStudent(params.row)})
}
}
]
@@ -883,7 +882,7 @@
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
/* 底部栏:分页固定底部 */
+31 -32
View File
@@ -46,7 +46,7 @@
<div class="page-right">
<span style="margin-right:12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40,50]"
@@ -60,7 +60,7 @@
<!-- 弹窗1:添加学生 -->
<Modal v-model="addModalVisible" title="添加学生" width="560">
<Form ref="addForm" :model="addForm" :rules="formRules" label-width="90">
<Form ref="addForm" :model="addForm" :rules="formRules" :label-width="90">
<FormItem label="年级" prop="grade">
<Select v-model="addForm.grade" style="width:100%" @on-change="getschclassselect">
<Option v-for="item in gradeselectlist" :key="item.id" :value="item.id+''">{{ item.name }}</Option>
@@ -87,15 +87,15 @@
<Input v-model="addForm.pwd" type="password" placeholder="请输入密码"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addModalVisible=false">取消</Button>
<Button type="primary" @click="submitAddStudent">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗2:编辑学生 -->
<Modal v-model="editModalVisible" title="编辑学生" width="560">
<Form ref="editForm" :model="editForm" :rules="formRules" label-width="90">
<Form ref="editForm" :model="editForm" :rules="formRules" :label-width="90">
<FormItem label="当前年级" prop="grade">
<Select disabled v-model="editForm.grade" style="width:100%" @on-change="getschclassselect">
<Option v-for="item in gradeselectlist" :key="item.id" :value="item.id+''">{{ item.name }}</Option>
@@ -119,18 +119,18 @@
<Input v-model="editForm.account"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="editModalVisible=false">取消</Button>
<Button type="primary" @click="submitEditStudent">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗3:学生信息导入 -->
<Modal v-model="importModalVisible" title="学生信息导入" width="520">
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -140,7 +140,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -151,8 +151,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[学生信息导入模板.xls]</a>
@@ -165,17 +165,17 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<!-- 弹窗4:学号导入 -->
<Modal v-model="stuIdImportModalVisible" title="学生学号导入" width="520">
<div class="main-contents">
<Form ref="UpParmas2.datapre" :model="UpParmas2.datapre" :label-width="100" inline>
<Form ref="UpParmas2.datapre" :model="UpParmas2.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas2.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas2.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas2.actionUrl"
:data="UpParmas2.datapre"
@@ -185,7 +185,7 @@
:before-upload="handleUpload2"
:on-success="importFile2"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas2.fileName" style="margin-bottom:10px">
@@ -196,8 +196,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu2" style="font-size:12px;">点击链接下载[学生学号信息导入模板.xls]</a>
@@ -210,9 +210,9 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick2" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<!-- 弹窗5:学生调班 -->
@@ -236,10 +236,10 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="moveClassModalVisible=false">取消</Button>
<Button type="primary" @click="submitMoveClass">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗6:学生异动 -->
@@ -263,23 +263,24 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="changeStatusModalVisible=false">取消</Button>
<Button type="primary" @click="submitChangeStatus">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗7:转出学生弹窗 -->
<Modal v-model="transferStudentModal" title="转出学生" width="420">
<p>确认将选中学生做转出操作?</p>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="transferStudentModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmTransferStudent">确定</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
@@ -500,10 +501,8 @@ export default {
align: 'center',
width: 80,
render: (h, params) => {
return h('Button', {
props: { type: 'text', icon: 'md-create',type:'large' },
on: { click: () => this.openEditStudent(params.row) }
})
return h(Button, {type: 'text', icon: 'md-create',type:'large',
onClick: () => this.openEditStudent(params.row)})
}
}
]
@@ -866,7 +865,7 @@ export default {
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
/* 底部栏:分页固定底部 */
+8 -9
View File
@@ -38,7 +38,7 @@
<div class="page-right">
<span style="margin-right:12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40,50]"
@@ -71,16 +71,17 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="changeStatusModalVisible=false">取消</Button>
<Button type="primary" @click="submitChangeStatus">确定</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import myTree from "../../components/my_tree";
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
name: 'StudentManage',
@@ -191,10 +192,8 @@
align: 'center',
width: 80,
render: (h, params) => {
return h('Button', {
props: { type: 'text', icon: 'md-create',type:'large' },
on: { click: () => this.openEditModal(params.row) }
})
return h(Button, {type: 'text', icon: 'md-create',type:'large',
onClick: () => this.openEditModal(params.row)})
}
}
]
@@ -324,7 +323,7 @@
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
/* 底部栏:分页固定底部 */
@@ -38,7 +38,7 @@
<div class="page-right">
<span style="margin-right:12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40,50]"
@@ -71,15 +71,16 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="changeStatusModalVisible=false">取消</Button>
<Button type="primary" @click="submitChangeStatus()">确定</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
@@ -188,10 +189,8 @@ export default {
align: 'center',
width: 80,
render: (h, params) => {
return h('Button', {
props: { type: 'text', icon: 'md-create',type:'large' },
on: { click: () => this.openEditModal(params.row) }
})
return h(Button, {type: 'text', icon: 'md-create',type:'large',
onClick: () => this.openEditModal(params.row)})
}
}
]
@@ -317,7 +316,7 @@ export default {
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
/* 底部栏:分页固定底部 */
+6 -6
View File
@@ -1,6 +1,6 @@
<template>
<div class="edu-layout-wrap">
<Row gutter="10" class="layout-row">
<Row :gutter="10" class="layout-row">
<!-- 左侧:学校树形 -->
<Col span="4" class="left-tree-wrap" style="overflow: auto;" :style="'height:'+(useTableHeight({ isSearch: true, isOperat: true })+160)+'px'">
<div class="tree-title">学校</div>
@@ -38,7 +38,7 @@
</Row>
<!-- 新增弹窗 -->
<Modal v-model="addModalVisible" title="添加学校" width="520">
<Form ref="addFormRef" :model="addForm" :rules="formRules" label-width="90">
<Form ref="addFormRef" :model="addForm" :rules="formRules" :label-width="90">
<FormItem label="学校名称" prop="schname">
<Input size="large" v-model="addForm.schname" placeholder="请输入学校名称" />
</FormItem>
@@ -58,17 +58,17 @@
/>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addModalVisible = false" style="margin-right: 10px">取消</Button>
<Button type="primary" @click="submitAdd">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import Treeselect from '@zanmato/vue3-treeselect'
import '@zanmato/vue3-treeselect/dist/vue3-treeselect.min.css'
import myTree from "../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
+11 -14
View File
@@ -20,7 +20,7 @@
style="width:240px"
@keyup.enter="handleSearch"
>
<Icon slot="suffix" type="ios-search" @click="handleSearch" style="cursor:pointer;"></Icon>
<template #suffix><Icon type="ios-search" @click="handleSearch" style="cursor:pointer;"></Icon></template>
</Input>
</div>
</div>
@@ -41,7 +41,7 @@
<div class="pagination-bottom">
<span class="total-text">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:total="total"
:page-size="pageSize"
:page-size-opts="[10,20,50]"
@@ -54,7 +54,7 @@
<!-- 新增/编辑课程弹窗(匹配编辑课程信息截图) -->
<Modal v-model="modalVisible" :title="modalTitle" width="580">
<Form ref="form" :model="formData" :rules="formRules" label-width="110">
<Form ref="form" :model="formData" :rules="formRules" :label-width="110">
<FormItem label="课程代码" prop="courseCode">
<Input v-model="formData.courseCode" placeholder="请输入课程代码"></Input>
</FormItem>
@@ -87,16 +87,17 @@
</Select>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="modalVisible = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitForm">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
export default {
import { Button } from "view-ui-plus";
export default {
name: 'CourseManage',
data() {
return {
@@ -158,14 +159,10 @@
width: 120,
render: (h, params) => {
return h('div', { style: 'display:flex;gap:12px;justify-content:center' }, [
h('Button', {
props: { type: 'text', icon: 'ios-create', size: 'default' },
on: { click: () => this.editRow(params.row, params.index) }
}),
h('Button', {
props: { type: 'text', icon: 'ios-trash', size: 'default' },
on: { click: () => this.delRow(params.index) }
})
h(Button, {type: 'text', icon: 'ios-create', size: 'default',
onClick: () => this.editRow(params.row, params.index)}),
h(Button, {type: 'text', icon: 'ios-trash', size: 'default',
onClick: () => this.delRow(params.index)})
])
}
}
+22 -22
View File
@@ -12,30 +12,30 @@
<div class="btn-container">
<draggable
v-model="subjectlist"
item-key="name"
class="drag-wrap"
animation="200"
:options="{ group: 'people' }"
:animation="200"
group="people"
@start="drag = true"
@end="drag = false"
:move="getdata1"
@update="datadragEnd1"
@change="datadragEnd1"
>
<div
v-for="(item, idx) in subjectlist"
:key="idx"
class="subject-btn"
:class="[item.source === 0 ? 'sys-btn' : 'cus-btn', { active: item.enable }]"
@click="toggleSelect(idx)"
@mouseenter="item.source === 1 && (hoverIndex = idx)"
@mouseleave="hoverIndex = null"
>
<span class="text">{{ item.name }}</span>
<!-- 仅自建学科悬浮显示编辑删除 -->
<div v-if="item.source === 1 && hoverIndex === idx" class="operate-group" @click.stop>
<span class="icon-edit" @click="editItem(idx)">✏️</span>
<span class="icon-del" @click="delItem(idx)">🗑️</span>
<template #item="{ element, index: idx }">
<div
class="subject-btn"
:class="[element.source === 0 ? 'sys-btn' : 'cus-btn', { active: element.enable }]"
@click="toggleSelect(idx)"
@mouseenter="element.source === 1 && (hoverIndex = idx)"
@mouseleave="hoverIndex = null"
>
<span class="text">{{ element.name }}</span>
<div v-if="element.source === 1 && hoverIndex === idx" class="operate-group" @click.stop>
<span class="icon-edit" @click="editItem(idx)">✏️</span>
<span class="icon-del" @click="delItem(idx)">🗑️</span>
</div>
</div>
</div>
</template>
</draggable>
<!-- 添加自建学科按钮 -->
<Button icon="ios-add-outline" class="add-subject-btn" size="large" @click="openAddModal">
@@ -58,15 +58,15 @@
<!-- 新增/编辑弹窗 学科信息 -->
<Modal v-model="modalVisible" title="学科信息" width="420">
<Form ref="form" :model="formData" :rules="formRules" label-width="90">
<Form ref="form" :model="formData" :rules="formRules" :label-width="90">
<FormItem label="学科名称" prop="subjectName">
<Input v-model="formData.subjectName" placeholder="请输入学科名称"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="modalVisible = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitForm">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
@@ -132,7 +132,7 @@
// 多选切换选中/取消
toggleSelect(index) {
let submap=this.subjectlist[index];
this.$set(this.subjectlist[index], 'enable', !submap.enable);
this.subjectlist[index].enable = !submap.enable;
const submitData ={
id:submap.id,
name:submap.name,
+4 -4
View File
@@ -2,10 +2,10 @@
<div class="outer-wrap" style="height:calc(100% - 52px);">
<!-- 顶部标签切换 -->
<Tabs v-model="activeTab" type="line">
<TabPane label="教师信息管理" :name="1"></TabPane>
<TabPane label="任教管理" :name="2"></TabPane>
<TabPane label="教师分组管理" :name="3"></TabPane>
<!-- <TabPane label="教师变动查询" :name="4"></TabPane> -->
<TabPane label="教师信息管理" name="1"></TabPane>
<TabPane label="任教管理" name="2"></TabPane>
<TabPane label="教师分组管理" name="3"></TabPane>
<!-- <TabPane label="教师变动查询" name="4"></TabPane> -->
</Tabs>
<teacherinfo v-if="activeTab==1"></teacherinfo>
<teachseeting v-if="activeTab==2"></teachseeting>
+12 -12
View File
@@ -68,7 +68,7 @@
<!-- 弹窗1:添加学科 -->
<Modal v-model="addModalVisible" :title="addFormData.id?'编辑组':'添加组'" width="520">
<Form ref="addForm" :model="addFormData" label-width="90">
<Form ref="addForm" :model="addFormData" :label-width="90">
<FormItem label="组名">
<Input v-model="addFormData.groupName" maxlength="20" placeholder="最多可输入20个字符"/>
</FormItem>
@@ -83,18 +83,18 @@
</Select>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addModalVisible = false">取消</Button>
<Button type="primary" @click="submitAdd">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗2:教师批量导入 -->
<Modal v-model="importModalVisible" title="批量导入分组信息" width="520">
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -104,7 +104,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -115,8 +115,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[分组导入模板.xls]</a>
@@ -129,12 +129,12 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<user-check ref="userCheck" :treeData="treeData" v-model="userids" @on-submit="submit" :isDisabled="isAddto" />
<user-check ref="userCheck2" :treeData="treeData" v-model="userids2" @on-submit="submit2" :isDisabled="isAddto" />
<user-check ref="userCheck" :treeData="treeData" :userids="userids" @change="v => (userids = v)" @on-submit="submit" :isDisabled="isAddto" />
<user-check ref="userCheck2" :treeData="treeData" :userids="userids2" @change="v => (userids2 = v)" @on-submit="submit2" :isDisabled="isAddto" />
</div>
</template>
+2 -2
View File
@@ -29,7 +29,7 @@
<div class="page-fixed-bottom">
<span class="total-text">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:total="total"
:page-size="pageSize"
:page-size-opts="[10,20,50]"
@@ -166,7 +166,7 @@ export default {
flex: 1;
min-height: 0;
}
.table-scroll-box >>> .teacher-table {
.table-scroll-box :deep(.teacher-table) {
height: 100%;
}
+36 -37
View File
@@ -69,7 +69,7 @@
</div>
<div class="pagination-wrap">
<Page
:current.sync="pageNum"
v-model="pageNum"
:total="total"
:page-size="pageSize"
:page-size-opts="[10,20,50]"
@@ -86,7 +86,7 @@
<!-- 弹窗1:添加教师 -->
<Modal v-model="addTeacherModal" title="添加教师" width="540">
<Form ref="addTeacherForm" :model="addTeacherFormData" :rules="addTeacherRules" label-width="110">
<Form ref="addTeacherForm" :model="addTeacherFormData" :rules="addTeacherRules" :label-width="110">
<FormItem label="教师姓名" prop="teacherName">
<Input v-model="addTeacherFormData.teacherName" placeholder="请输入老师姓名"></Input>
</FormItem>
@@ -109,15 +109,15 @@
</Select>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addTeacherModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitAddTeacher">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗2:编辑教师 -->
<Modal v-model="editTeacherModal" title="编辑教师" width="540">
<Form ref="editTeacherForm" :model="editTeacherFormData" :rules="editTeacherRules" label-width="110">
<Form ref="editTeacherForm" :model="editTeacherFormData" :rules="editTeacherRules" :label-width="110">
<FormItem label="教师姓名" prop="teacherName">
<Input v-model="editTeacherFormData.teacherName"></Input>
</FormItem>
@@ -137,18 +137,18 @@
</Select>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="editTeacherModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitEditTeacher">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗3:教师导入 -->
<Modal v-model="importModal" title="教师导入" width="460">
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -158,7 +158,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -169,8 +169,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[教师导入模板.xls]</a>
@@ -183,14 +183,14 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
<!-- 弹窗4:添加子组 -->
<Modal v-model="addGroupModal" title="添加子组" width="420">
<Form ref="addGroupForm" :model="addGroupFormData" :rules="addGroupRules" label-width="90">
<Form ref="addGroupForm" :model="addGroupFormData" :rules="addGroupRules" :label-width="90">
<FormItem label="组名称">
<Input v-model="addGroupFormData.parentGroupName" disabled></Input>
</FormItem>
@@ -201,15 +201,15 @@
<Input v-model="addGroupFormData.sort"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="addGroupModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitAddGroup">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗5:修改子组 -->
<Modal v-model="editGroupModal" title="修改子组" width="420">
<Form ref="editGroupForm" :model="editGroupFormData" :rules="editGroupRules" label-width="90">
<Form ref="editGroupForm" :model="editGroupFormData" :rules="editGroupRules" :label-width="90">
<FormItem label="子组名称" prop="groupName">
<Input v-model="editGroupFormData.groupName"></Input>
</FormItem>
@@ -217,10 +217,10 @@
<Input v-model="editGroupFormData.sort"></Input>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="editGroupModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitEditGroup">提交</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗6:移动子组 -->
@@ -233,10 +233,10 @@
<span>移动至:</span>
<my-tree :treeData="treeData" @on-tree-click="movetreeLink"></my-tree>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="moveGroupModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmMoveGroup">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗7:批量删除确认 -->
@@ -244,10 +244,10 @@
<Alert type="warning" show-icon>
确定是否删除教师?<br/>删除后将不可恢复。
</Alert>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="batchDeleteModal = false" style="margin-right:10px">取消</Button>
<Button type="error" @click="confirmBatchDelete">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗8:移动教师弹窗 -->
@@ -294,15 +294,15 @@
</div>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="moveTeacherModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitMoveTeacher">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗9:【设置教师的状态】 匹配设计图 -->
<Modal v-model="setStatusModal" title="设置教师的状态" width="380">
<Form ref="statusForm" :model="statusFormData" label-width="120">
<Form ref="statusForm" :model="statusFormData" :label-width="120">
<FormItem label="选择设置状态">
<RadioGroup v-model="statusFormData.status">
<Radio label="0">正常</Radio>
@@ -310,25 +310,26 @@
</RadioGroup>
</FormItem>
</Form>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="setStatusModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="submitSetStatus">确定</Button>
</div>
</div></template>
</Modal>
<!-- 弹窗10:转出教师弹窗 -->
<Modal v-model="transferTeacherModal" title="转出教师" width="420">
<p>确认将选中教师做转出操作?转出后不在本校编制内</p>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="transferTeacherModal = false" style="margin-right:10px">取消</Button>
<Button type="primary" @click="confirmTransferTeacher">确定</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import myTree from "../../components/my_tree";
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
name: 'TeacherInfoManage',
@@ -401,10 +402,8 @@ export default {
align: 'center',
width: 90,
render: (h, params) => {
return h('Button', {
props: { type: 'text', icon: 'md-create', size: 'large' },
on: { click: () => this.editSingleTeacher(params.row, params.index) }
})
return h(Button, {type: 'text', icon: 'md-create', size: 'large',
onClick: () => this.editSingleTeacher(params.row, params.index)})
}
}
],
@@ -941,7 +940,7 @@ export default {
gap: 8px;
border-bottom: 1px solid #eee;
}
.tree-sidebar >>> .ivu-tree {
.tree-sidebar :deep(.ivu-tree) {
flex: 1;
overflow-y: auto;
padding: 8px;
+13 -14
View File
@@ -42,18 +42,18 @@
</Select>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="teacherModalVisible = false">取消</Button>
<Button type="primary" @click="submitSelectTeacher">提交</Button>
</div>
</div></template>
</Modal>
<!-- 批量导入弹窗 -->
<Modal v-model="importModalVisible" title="批量导入任教信息" width="520">
<div class="main-contents">
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" :label-width="100" inline>
<Form ref="UpParmas.datapre" :model="UpParmas.datapre" ::label-width="100" inline>
<FormItem label="Excel上传:" style="margin-bottom:10px;width:100%;">
<i-input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></i-input>
<Input type="text" style="width:90%;" v-model="UpParmas.fileName" class="import-input" placeholder="未选中任何文件.." readonly></Input>
<Upload class="fr btn"
:action="UpParmas.actionUrl"
:data="UpParmas.datapre"
@@ -63,7 +63,7 @@
:before-upload="handleUpload"
:on-success="importFile"
>
<i-button icon="md-add"></i-button>
<Button icon="md-add"></Button>
</Upload>
</FormItem>
<FormItem v-if="UpParmas.fileName" style="margin-bottom:10px">
@@ -74,8 +74,8 @@
<Alert show-icon>
操作说明:
<Icon type="ios-bulb-outline" slot="icon" size="20"></Icon>
<template slot="desc" style="font-size: 12px;">
<template #icon><Icon type="ios-bulb-outline" size="20"></Icon></template>
<template #desc style="font-size: 12px;">
请先上传EXCEL文件,若成功则显示导入成功数据,否则显示错误的数据及错误原因;<br>
EXCEL文件的格式():工作表(WorkSheet)的名称应设为缺省的[Sheet1];<br>
<a @click="MoBanExceldaochu" style="font-size:12px;">点击链接下载[任教导入模板.xls]</a>
@@ -88,14 +88,15 @@
<Icon type="ios-loading" size=30 class="demo-spin-icon-load"></Icon>
<div>上传中...</div>
</Spin>
<div slot="footer">
<template #footer><div>
<i-Button @click="UpfileModalcloseclick" style="margin-left: 8px">关闭</i-Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { Button } from "view-ui-plus";
import { self_viewport } from "@/mixins/self_viewport";
export default {
name: 'TeachManage',
@@ -380,11 +381,9 @@ export default {
width: 80,
align: 'center',
render: (h, params) => {
return h('Button', {
props: { type: 'text', icon: 'ios-refresh', size: 'large' },
attrs: { title: '重置本行所有任教' },
on: { click: () => this.handleResetRow(params.index) }
})
return h(Button, {type: 'text', icon: 'ios-refresh', size: 'large',
onClick: () => this.handleResetRow(params.index),
attrs: { title: '重置本行所有任教' }})
}
}];
+8 -9
View File
@@ -44,7 +44,7 @@
<div class="page-area">
<span style="margin-right: 12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40]"
@@ -67,16 +67,17 @@
<my-tree :treeData="groupTreeData" @on-tree-click="treeLink"></my-tree>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="transferModalVisible = false">取消</Button>
<Button type="primary" @click="submitTransfer">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import myTree from "../components/my_tree";
import { Button } from "view-ui-plus";
import myTree from "../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
name: 'TeacherTransferPage',
@@ -159,10 +160,8 @@
align: 'center',
width: 100,
render: (h, params) => {
return h('Button', {
props: { type: 'text' },
on: { click: () => this.openTransferModal(params.row) }
},'转入')
return h(Button, {type: 'text',
onClick: () => this.openTransferModal(params.row)},'转入')
}
}
]
@@ -297,7 +296,7 @@
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
+7 -8
View File
@@ -51,7 +51,7 @@
<div class="page-area">
<span style="margin-right: 12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40]"
@@ -74,15 +74,16 @@
<my-tree :treeData="targetTreeData" @on-tree-click="treeLink"></my-tree>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="moveModalVisible = false">取消</Button>
<Button type="primary" @click="submitMove">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
<script>
import { Button } from "view-ui-plus";
import myTree from "../../components/my_tree";
import { self_viewport } from "@/mixins/self_viewport";
export default {
@@ -183,10 +184,8 @@ export default {
align: 'center',
width: 100,
render: (h, params) => {
return h('Button', {
props: { type: 'text' },
on: { click: () => this.openMoveModal(params.row) }
},'转入')
return h(Button, {type: 'text',
onClick: () => this.openMoveModal(params.row)},'转入')
}
}
]
@@ -320,7 +319,7 @@ export default {
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}
+4 -5
View File
@@ -57,7 +57,7 @@
<div class="page-area">
<span style="margin-right: 12px">共 {{ total }} 条</span>
<Page
:current.sync="pageNum"
v-model="pageNum"
:page-size="pageSize"
:total="total"
:page-size-opts="[10,20,40]"
@@ -81,15 +81,14 @@
:data="targetTreeData"
ref="targetTree"
single
:selected.sync="selectedTargetNode"
style="border:1px solid #e5e7eb;max-height:320px;overflow-y:auto;padding:8px;"
></Tree>
</div>
</div>
<div slot="footer" align="right">
<template #footer><div align="right">
<Button @click="moveModalVisible = false">取消</Button>
<Button type="primary" @click="submitMove">提交</Button>
</div>
</div></template>
</Modal>
</div>
</template>
@@ -265,7 +264,7 @@ export default {
flex: 1;
min-height: 0;
}
.table-scroll-wrap >>> .ivu-table {
.table-scroll-wrap :deep(.ivu-table) {
height: 100%;
}