Commit bdf3df57 by xuwenhao

Merge remote-tracking branch 'origin/master'

parents e8322aed adb58c54
import request from '@/utils/request'
import request from "@/utils/request";
// 查询字典数据列表
export function listData(query) {
return request({
url: '/system/dict/data/list',
method: 'get',
params: query
})
url: "/system/dict/data/list",
method: "get",
params: query,
});
}
// 查询字典数据列表
export function listDatakm(query) {
return request({
url: "/curricula/variable/selectXkTypeList",
method: "get",
params: query,
});
}
// 查询字典数据详细
export function getData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'get'
})
url: "/system/dict/data/" + dictCode,
method: "get",
});
}
// 根据字典类型查询字典数据信息
export function getDicts(dictType) {
return request({
url: '/system/dict/data/type/' + dictType,
method: 'get'
})
url: "/system/dict/data/type/" + dictType,
method: "get",
});
}
// 新增字典数据
export function addData(data) {
return request({
url: '/system/dict/data',
method: 'post',
data: data
})
url: "/system/dict/data",
method: "post",
data: data,
});
}
// 修改字典数据
export function updateData(data) {
return request({
url: '/system/dict/data',
method: 'put',
data: data
})
url: "/system/dict/data",
method: "put",
data: data,
});
}
// 删除字典数据
export function delData(dictCode) {
return request({
url: '/system/dict/data/' + dictCode,
method: 'delete'
})
url: "/system/dict/data/" + dictCode,
method: "delete",
});
}
import request from '@/utils/request'
import request from "@/utils/request";
// 查询字典类型列表
export function listType(query) {
return request({
url: '/system/dict/type/list',
method: 'get',
params: query
})
url: "/system/dict/type/list",
method: "get",
params: query,
});
}
// 查询字典类型列表
export function listTypekm(query) {
return request({
url: "/curricula/variable/selectXkTypeList",
method: "get",
params: query,
});
}
// 查询字典类型详细
export function getType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'get'
})
url: "/system/dict/type/" + dictId,
method: "get",
});
}
// 新增字典类型
export function addType(data) {
return request({
url: '/system/dict/type',
method: 'post',
data: data
})
url: "/system/dict/type",
method: "post",
data: data,
});
}
// 修改字典类型
export function updateType(data) {
return request({
url: '/system/dict/type',
method: 'put',
data: data
})
url: "/system/dict/type",
method: "put",
data: data,
});
}
// 删除字典类型
export function delType(dictId) {
return request({
url: '/system/dict/type/' + dictId,
method: 'delete'
})
url: "/system/dict/type/" + dictId,
method: "delete",
});
}
// 刷新字典缓存
export function refreshCache() {
return request({
url: '/system/dict/type/refreshCache',
method: 'delete'
})
url: "/system/dict/type/refreshCache",
method: "delete",
});
}
// 获取字典选择框列表
export function optionselect() {
return request({
url: '/system/dict/type/optionselect',
method: 'get'
})
}
\ No newline at end of file
url: "/system/dict/type/optionselect",
method: "get",
});
}
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1701237948149" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4379" width="200" height="200" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M329 923.5H171c-11.7 0-21.1-9.5-21.1-21.1V321.7c0-11.7 9.5-21.1 21.1-21.1h158c11.7 0 21.1 9.5 21.1 21.1v580.6c0 11.7-9.5 21.2-21.1 21.2z m-139.1-40h120.2V340.6H189.9v542.9zM739.8 923.5c-16.4 0-31.3-9-39-23.4-0.1-0.1-0.1-0.2-0.2-0.3L483.6 421c-11.3-21.5-3.1-48.2 18.3-59.6l102.3-50.1c6.4-3.4 13.6-5.2 20.8-5.2 16.4 0 31.3 9 39 23.4 0.1 0.1 0.1 0.2 0.2 0.3l219 473.3c11.3 21.5 3.1 48.2-18.3 59.6l-104.3 55.6c-6.4 3.4-13.6 5.2-20.8 5.2z m-3.6-42.2c0.9 1.6 2.5 2.1 3.7 2.1 0.7 0 1.3-0.2 1.9-0.5l104.3-55.6c2-1.1 2.8-3.6 1.7-5.7-0.1-0.1-0.1-0.2-0.2-0.3l-219-473.2c-0.9-1.6-2.5-2.1-3.7-2.1-0.7 0-1.3 0.2-1.9 0.5l-102.3 50.1c-2 1.1-2.8 3.6-1.7 5.7 0.1 0.1 0.1 0.2 0.2 0.3l217 478.7z" fill="#008dd2" p-id="4380"></path><path d="M494.4 923.5H336.5c-11.7 0-21.1-9.5-21.1-21.1V128.1c0-11.7 9.5-21.1 21.1-21.1h157.9c11.7 0 21.1 9.5 21.1 21.1v774.2c0 11.7-9.4 21.2-21.1 21.2z m-139.1-40h120.2V147H355.3v736.5z" fill="#008dd2" p-id="4381"></path><path d="M985.4 938.5H52.8c-11 0-20-9-20-20s9-20 20-20h932.6c11 0 20 9 20 20s-9 20-20 20z" fill="#008dd2" p-id="4382"></path></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1701237948149" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4379" width="200" height="200" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M329 923.5H171c-11.7 0-21.1-9.5-21.1-21.1V321.7c0-11.7 9.5-21.1 21.1-21.1h158c11.7 0 21.1 9.5 21.1 21.1v580.6c0 11.7-9.5 21.2-21.1 21.2z m-139.1-40h120.2V340.6H189.9v542.9zM739.8 923.5c-16.4 0-31.3-9-39-23.4-0.1-0.1-0.1-0.2-0.2-0.3L483.6 421c-11.3-21.5-3.1-48.2 18.3-59.6l102.3-50.1c6.4-3.4 13.6-5.2 20.8-5.2 16.4 0 31.3 9 39 23.4 0.1 0.1 0.1 0.2 0.2 0.3l219 473.3c11.3 21.5 3.1 48.2-18.3 59.6l-104.3 55.6c-6.4 3.4-13.6 5.2-20.8 5.2z m-3.6-42.2c0.9 1.6 2.5 2.1 3.7 2.1 0.7 0 1.3-0.2 1.9-0.5l104.3-55.6c2-1.1 2.8-3.6 1.7-5.7-0.1-0.1-0.1-0.2-0.2-0.3l-219-473.2c-0.9-1.6-2.5-2.1-3.7-2.1-0.7 0-1.3 0.2-1.9 0.5l-102.3 50.1c-2 1.1-2.8 3.6-1.7 5.7 0.1 0.1 0.1 0.2 0.2 0.3l217 478.7z" fill="#008dd2" p-id="4380"></path><path d="M494.4 923.5H336.5c-11.7 0-21.1-9.5-21.1-21.1V128.1c0-11.7 9.5-21.1 21.1-21.1h157.9c11.7 0 21.1 9.5 21.1 21.1v774.2c0 11.7-9.4 21.2-21.1 21.2z m-139.1-40h120.2V147H355.3v736.5z" fill="#008dd2" p-id="4381"></path><path d="M985.4 938.5H52.8c-11 0-20-9-20-20s9-20 20-20h932.6c11 0 20 9 20 20s-9 20-20 20z" fill="#008dd2" p-id="4382"></path></svg>
\ No newline at end of file
......@@ -129,7 +129,13 @@ export const constantRoutes = [
component: () => import("@/views/error/401"),
hidden: true,
},
//科目数据
// {
// path: "/gradeWork/subjectManagement/data",
// component: () =>
// import("@/views/smartSchool/gradeWork/subjectManagement/data"),
// hidden: true,
// },
{
path: "",
component: Layout,
......@@ -203,6 +209,22 @@ export const dynamicRoutes = [
},
],
},
//科目数据
// {
// path: "/subjectManagement/data",
// component: Layout,
// hidden: true,
// permissions: ["system:dict:list"],
// children: [
// {
// path: "index/:dictId(\\d+)",
// component: () =>
// import("@/views/smartSchool/gradeWork/subjectManagement/data"),
// name: "Data",
// meta: { title: "字典数据", activeMenu: "/system/dict" },
// },
// ],
// },
{
path: "/monitor/job-log",
component: Layout,
......
<template>
<div class="app-container">
<el-form :model="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item prop="studentsName" label="学生姓名">
<el-input clearable v-model="queryForm.studentName" placeholder="学生姓名"></el-input>
</el-form-item>
<el-form-item prop="classId" label="班级">
<el-select v-model="queryForm.classId" placeholder="请选择学生班级" clearable>
<el-option v-for="(item,index) in classList" :key="index"
:label="item.className" :value="item.classId"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="selectedMajor" label="已选专业">
<el-select v-model="queryForm.selectedMajor" placeholder="请选择学生已选专业" clearable>
<el-option v-for="(item,index) in dict.type.specialty" :key="index"
:label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-form-item>
</el-form>
<div class="app-container">
<el-form :model="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item prop="studentsName" label="学生姓名">
<el-input clearable v-model="queryForm.studentName" placeholder="学生姓名"></el-input>
</el-form-item>
<el-form-item prop="classId" label="班级">
<el-select v-model="queryForm.classId" placeholder="请选择学生班级" clearable>
<el-option v-for="(item, index) in classList" :key="index" :label="item.className"
:value="item.classId"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="selectedMajor" label="已选专业">
<el-select v-model="queryForm.selectedMajor" placeholder="请选择学生已选专业" clearable>
<el-option v-for="(item, index) in dict.type.specialty" :key="index" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport">导出</el-button>
</el-form-item>
</el-form>
<!-- 表单信息 -->
<el-table v-loading="loading" :data="studentsList" stripe>
<el-table-column label="班级" prop="className" align="center" width="150px" />
<el-table-column label="学生姓名" prop="studentName" align="center" width="150px" />
<el-table-column label="学号" prop="studentNumber" align="center" />
<el-table-column label="身份证号" prop="idCard" width="300px" align="center" />
<el-table-column label="课程类型" prop="courseType" align="center">
<!-- 1春季选课 2夏季选课 3艺体 -->
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.course_type,row.courseType) }}</div>
</template>
</el-table-column>
<el-table-column label="选课时间" prop="curriculaTime" align="center" />
<el-table-column label="已选专业" prop="selectedMajor" align="center">
<template slot-scope="{ row }">
<div>{{ selectDictLabels(dict.type.specialty,row.selectedMajor) }}</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
<!-- 表单信息 -->
<el-table v-loading="loading" :data="studentsList" stripe>
<el-table-column label="班级" prop="className" align="center" width="150px" />
<el-table-column label="学生姓名" prop="studentName" align="center" width="150px" />
<el-table-column label="学号" prop="studentNumber" align="center" />
<el-table-column label="身份证号" prop="idCard" width="300px" align="center" />
<el-table-column label="课程类型" prop="courseType" align="center">
<!-- 1春季选课 2夏季选课 3艺体 -->
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.course_type, row.courseType) }}</div>
</template>
</el-table-column>
<el-table-column label="选课时间" prop="curriculaTime" align="center" />
<el-table-column label="已选专业" prop="selectedMajor" align="center">
<template slot-scope="{ row }">
<div>{{ selectDictLabels(dict.type.specialty, row.selectedMajor) }}</div>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList" />
</div>
</div>
</template>
<script>
......@@ -56,24 +55,24 @@ import { courseSelectionSpringList } from "../../../../../api/smartSchool/gradeW
export default {
name: "springView",
dicts: ['specialty','course_type'],
dicts: ['specialty', 'course_type'],
data() {
return {
majorList: [],
classList: [],
queryForm: { // 查询表单
curriculaId:'',
studentName: '',
classId: '',
selectedMajor: '',
pageNum: 1,
pageSize: 10
},
loading: false, // 遮罩层
total: 0,
studentsList: [], // 信息列表
return {
majorList: [],
classList: [],
queryForm: { // 查询表单
curriculaId: '',
studentName: '',
classId: '',
selectedMajor: '',
pageNum: 1,
pageSize: 10
},
loading: false, // 遮罩层
total: 0,
studentsList: [], // 信息列表
}
}
},
mounted() {
this.getClassList()
......@@ -81,10 +80,10 @@ export default {
},
methods: {
//获取班级下拉框数据
getClassList(){
getClassList() {
let grade = this.$route.query.grade
classList(grade).then(res=>{
if(res.code == 200){
classList(grade).then(res => {
if (res.code == 200) {
this.classList = res.data
}
})
......@@ -94,8 +93,8 @@ export default {
getList() {
this.loading = true
this.queryForm.curriculaId = this.$route.query.id
courseSelectionSpringList({...this.queryForm}).then(res=>{
if(res.code == 200){
courseSelectionSpringList({ ...this.queryForm }).then(res => {
if (res.code == 200) {
this.studentsList = res.rows
this.total = res.total
this.loading = false
......@@ -105,27 +104,26 @@ export default {
// 重置按钮
resetQuery() {
this.queryForm = {
curriculaId: '',
studentName: '',
classId: '',
selectedMajor: '',
pageNum: 1,
pageSize: 10
};
this.getList()
this.queryForm = {
curriculaId: '',
studentName: '',
classId: '',
selectedMajor: '',
pageNum: 1,
pageSize: 10
};
this.getList()
},
// 导出
handleExport() {
this.download('/curricula/student/exportCj', {
...this.queryForm
}, `学生春季选课信息_${new Date().getTime()}.xlsx`)
this.download('/curricula/student/exportCj', {
...this.queryForm
}, `学生春季选课信息_${new Date().getTime()}.xlsx`)
}
}
}
</script>
<style lang="scss" scoped>
</style>
<style lang="scss" scoped></style>
......@@ -85,6 +85,42 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="春季" prop="cjkmList">
<el-select v-model="form.cjkmList" multiple placeholder="请选择" :style="{ width: '100%' }"
@change="handleCjkmChange">
<el-option v-for="(item, index) in dict.type.specialty" :key="index" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="夏季" prop="xjkmList">
<el-select v-model="form.xjkmList" multiple placeholder="请选择" :style="{ width: '100%' }"
@change="handleXjkmChange">
<el-option v-for="(item, index) in dict.type.summer_course" :key="index"
:label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="艺体" prop="ytkmList">
<el-select v-model="form.ytkmList" multiple placeholder="请选择" :style="{ width: '100%' }"
@change="handleYtkmChange">
<el-option v-for="(item, index) in dict.type.art_subject" :key="index"
:label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</div>
</el-form>
<div style="text-align: center">
......@@ -103,6 +139,7 @@ import { dataCurricula, addCurricula, updateCurricula, getCurricula, getDept }
from "@/api/smartSchool/gradeWork/courseSelection/taskPublishing.js";
export default {
name: 'taskPublishing',
dicts: ['specialty', 'art_subject', 'summer_course'],
data() {
return {
tasks: [],
......@@ -118,6 +155,10 @@ export default {
grade: "",
startTime: "",
endTime: "",
cjkmList: [],
xjkmList: [],
ytkmList: [],
},
//新增弹窗
open: false,
......@@ -135,8 +176,88 @@ export default {
},
created() {
this.getList();
},
methods: {
handleCjkmChange(val) {
console.log('val', val);
console.log('dict', this.dict.type.specialty);
let arr = []
const newArr = val.map(i => {
this.dict.type.specialty.filter(item => {
if (i == item.value) {
console.log('i == item.value ', i == item.value);
console.log('item', item);
arr.push(item)
this.cjkmList = arr.map(item => {
return {
dictType: item.raw.dictType,
dictLabel: item.raw.dictLabel,
dictValue: item.raw.dictValue,
dictSort: item.raw.dictSort,
}
})
}
})
})
console.log('this.cjkmList', this.cjkmList);
},
handleXjkmChange(val) {
console.log('val', val);
console.log('dict', this.dict.type.specialty);
let arr = []
const newArr = val.map(i => {
this.dict.type.summer_course.filter(item => {
if (i == item.value) {
console.log('i == item.value ', i == item.value);
console.log('item', item);
arr.push(item)
this.xjkmList = arr.map(item => {
return {
dictType: item.raw.dictType,
dictLabel: item.raw.dictLabel,
dictValue: item.raw.dictValue,
dictSort: item.raw.dictSort,
}
})
}
})
})
console.log('this.xjkmList', this.xjkmList);
},
handleYtkmChange(val) {
console.log('val', val);
console.log('dict', this.dict.type.specialty);
let arr = []
const newArr = val.map(i => {
this.dict.type.art_subject.filter(item => {
if (i == item.value) {
console.log('i == item.value ', i == item.value);
console.log('item', item);
arr.push(item)
this.ytkmList = arr.map(item => {
return {
dictType: item.raw.dictType,
dictLabel: item.raw.dictLabel,
dictValue: item.raw.dictValue,
dictSort: item.raw.dictSort,
}
})
}
})
})
console.log('this.ytkmList', this.ytkmList);
},
/** 获取列表数据 */
getList() {
const params = {
......@@ -245,7 +366,6 @@ export default {
},
// 提交表单
submitForm() {
// console.log('object', this.dateRange);
this.throttle(() => {
this.$refs["form"].validate(valid => {
if (valid) {
......@@ -255,7 +375,10 @@ export default {
id: this.form.id,
taskName: this.form.taskName,
startTime: this.dateRange[0],
endTime: this.dateRange[1]
endTime: this.dateRange[1],
cjkmList: this.cjkmList,
xjkmList: this.xjkmList,
ytkmList: this.ytkmList,
};
updateCurricula(params).then(response => {
......@@ -266,7 +389,7 @@ export default {
this.open = false;
this.getList();
}).catch(err => {
// 处理错误
});
} else {
// 新增
......@@ -274,26 +397,42 @@ export default {
taskName: this.form.taskName,
grade: this.form.grade,
startTime: this.dateRange[0],
endTime: this.dateRange[1]
endTime: this.dateRange[1],
cjkmList: this.cjkmList,
xjkmList: this.xjkmList,
ytkmList: this.ytkmList,
};
console.log(params, 'params');
addCurricula(params).then(response => {
this.$message.success("新增成功");
this.open = false;
this.getList();
}).catch(err => {
// Handle error if necessary
});
}
}
});
})
},
// 编辑按钮
handleUpdate(task) {
this.title = '修改';
this.open = true;
getCurricula(task.id).then(response => {
this.form = response.data;
console.log(this.form, 'this.form ');
this.form.cjkmList = response.data.cjkmList.map(item => {
return item.dictValue
})
this.form.xjkmList = response.data.xjkmList.map(item => {
return item.dictValue
})
this.form.ytkmList = response.data.ytkmList.map(item => {
return item.dictValue
})
this.dateRange = [response.data.startTime, response.data.endTime];
this.$modal.closeLoading();
}).catch(err => {
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="科目标签" prop="dictLabel">
<el-input v-model="queryParams.dictLabel" placeholder="请输入字典标签" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="数据状态" clearable>
<el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:dict:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:dict:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:dict:remove']">删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:dict:export']">导出</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-close" size="mini" @click="handleClose">关闭</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="科目编码" align="center" prop="dictCode" />
<el-table-column label="科目标签" align="center" prop="dictLabel">
<template slot-scope="scope">
<span v-if="scope.row.listClass == '' || scope.row.listClass == 'default'">{{ scope.row.dictLabel
}}</span>
<el-tag v-else :type="scope.row.listClass == 'primary' ? '' : scope.row.listClass">{{
scope.row.dictLabel }}</el-tag>
</template>
</el-table-column>
<el-table-column label="科目键值" align="center" prop="dictValue" />
<el-table-column label="科目排序" align="center" prop="dictSort" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:dict:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:dict:remove']">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="科目类型">
<el-input v-model="form.dictType" :disabled="true" />
</el-form-item>
<el-form-item label="科目标签" prop="dictLabel">
<el-input v-model="form.dictLabel" placeholder="请输入数据标签" />
</el-form-item>
<el-form-item label="科目键值" prop="dictValue">
<el-input v-model="form.dictValue" placeholder="请输入数据键值" />
</el-form-item>
<el-form-item label="样式属性" prop="cssClass">
<el-input v-model="form.cssClass" placeholder="请输入样式属性" />
</el-form-item>
<el-form-item label="显示排序" prop="dictSort">
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
</el-form-item>
<el-form-item label="回显样式" prop="listClass">
<el-select v-model="form.listClass">
<el-option v-for="item in listClassOptions" :key="item.value"
:label="item.label + '(' + item.value + ')'" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{
dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listData, getData, delData, addData, updateData } from "@/api/system/dict/data";
import { optionselect as getDictOptionselect, getType } from "@/api/system/dict/type";
export default {
name: "Data",
dicts: ['sys_normal_disable'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 字典表格数据
dataList: [],
// 默认字典类型
defaultDictType: "",
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 数据标签回显样式
listClassOptions: [
{
value: "default",
label: "默认"
},
{
value: "primary",
label: "主要"
},
{
value: "success",
label: "成功"
},
{
value: "info",
label: "信息"
},
{
value: "warning",
label: "警告"
},
{
value: "danger",
label: "危险"
}
],
// 类型数据字典
typeOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
dictName: undefined,
dictType: undefined,
status: undefined
},
// 表单参数
form: {},
// 表单校验
rules: {
dictLabel: [
{ required: true, message: "数据标签不能为空", trigger: "blur" }
],
dictValue: [
{ required: true, message: "数据键值不能为空", trigger: "blur" }
],
dictSort: [
{ required: true, message: "数据顺序不能为空", trigger: "blur" }
]
}
};
},
created() {
// const dictId = this.$route.params && this.$route.params.dictId;
const dictId = this.$route.query.dictId;
this.getType(dictId);
this.getTypeList();
},
methods: {
/** 查询字典类型详细 */
getType(dictId) {
getType(dictId).then(response => {
this.queryParams.dictType = response.data.dictType;
this.defaultDictType = response.data.dictType;
this.getList();
});
},
/** 查询字典类型列表 */
getTypeList() {
getDictOptionselect().then(response => {
this.typeOptions = response.data;
});
},
/** 查询字典数据列表 */
getList() {
this.loading = true;
listData(this.queryParams).then(response => {
this.dataList = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
dictCode: undefined,
dictLabel: undefined,
dictValue: undefined,
cssClass: undefined,
listClass: 'default',
dictSort: 0,
status: "0",
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 返回按钮操作 */
handleClose() {
const obj = { path: "/gradeWork/subjectManagement" };
this.$tab.closeOpenPage(obj);
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.queryParams.dictType = this.defaultDictType;
this.handleQuery();
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加字典数据";
this.form.dictType = this.queryParams.dictType;
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.dictCode)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const dictCode = row.dictCode || this.ids
getData(dictCode).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改字典数据";
});
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.dictCode != undefined) {
updateData(this.form).then(response => {
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addData(this.form).then(response => {
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const dictCodes = row.dictCode || this.ids;
this.$modal.confirm('是否确认删除字典编码为"' + dictCodes + '"的数据项?').then(function () {
return delData(dictCodes);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
this.$store.dispatch('dict/removeDict', this.queryParams.dictType);
}).catch(() => { });
},
/** 导出按钮操作 */
handleExport() {
this.download('system/dict/data/export', {
...this.queryParams
}, `data_${Date.now()}.xlsx`)
}
}
};
</script>
<template>
<div class="app-container">
<el-table v-loading="loading" :data="typeList">
<el-table-column label="科目名称" align="center" prop="dictName" :show-overflow-tooltip="true" />
<el-table-column label="科目类型" align="center" :show-overflow-tooltip="true">
<template slot-scope="scope">
<router-link :to="{ path: '/gradeWork/subjectManagement/data', query: { dictId: scope.row.dictId } }"
class="link-type">
<span>{{ scope.row.dictType }}</span>
</router-link>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</div>
</template>
<script>
import { listTypekm, getType, delType, addType, updateType, refreshCache } from "@/api/system/dict/type";
export default {
name: "Dict",
dicts: ['sys_normal_disable'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 字典表格数据
typeList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
dictName: undefined,
dictType: undefined,
status: undefined
},
// 表单参数
form: {},
// 表单校验
rules: {
dictName: [
{ required: true, message: "字典名称不能为空", trigger: "blur" }
],
dictType: [
{ required: true, message: "字典类型不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询字典类型列表 */
getList() {
this.loading = true;
listTypekm(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.typeList = response.data;
this.total = response.total;
this.loading = false;
}
);
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
dictId: undefined,
dictName: undefined,
dictType: undefined,
status: "0",
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
}
};
</script>
......@@ -51,16 +51,16 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="100" key="operate">
<template slot-scope="scope">
<el-button v-if="scope.row.instanceId == null" size="mini" type="text" icon="el-icon-s-promotion"
<el-button v-if="scope.row.tjzt == '0'" size="mini" type="text" icon="el-icon-s-promotion"
@click="submitApply(scope.row)" v-hasPermi="['system:teacherLeave:edit']">提交申请
</el-button>
<el-button v-if="scope.row.instanceId != null" size="mini" type="text" icon="el-icon-view"
<el-button v-if="scope.row.tjzt == '1'" size="mini" type="text" icon="el-icon-view"
@click="handleView(scope.row)" v-hasPermi="['system:teacherLeave:edit']">查看
</el-button>
<el-button v-if="scope.row.instanceId == null" size="mini" type="text" icon="el-icon-edit"
<el-button v-if="scope.row.tjzt == '0'" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['system:teacherLeave:edit']">修改
</el-button>
<el-button v-if="scope.row.instanceId == null" size="mini" type="text" icon="el-icon-delete"
<el-button v-if="scope.row.tjzt == '0'" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['system:teacherLeave:remove']">删除
</el-button>
</template>
......@@ -377,6 +377,7 @@ export default {
this.loading = true;
purchaseList(this.queryParams).then(response => {
this.purchaseList = response.rows;
console.log(this.purchaseList, ' this.purchaseList');
this.total = response.total;
this.loading = false;
}).catch(() => {
......@@ -384,6 +385,7 @@ export default {
},
/** 切换tab标签 */
handleClick({ name }) {
console.log(name, 'name');
this.$set(this.queryParams, 'submitState', name);
// console.log(name, 123);
if (name == 0) {
......
......@@ -23,31 +23,27 @@
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" plain icon="el-icon-upload2" size="mini" @click="handleExport">导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="teacherLeaveList">
<el-table-column type="index" width="55" label="序号" align="center" />
<el-table-column label="教师名称" key="teacherName" min-width="120" align="center" prop="teacherName"
show-overflow-tooltip />
<el-table-column label="级部/处室" key="applyOrgname" min-width="120" align="center" prop="applyOrgname" />
<el-table-column label="标题" min-width="120" align="center" prop="title" />
<el-table-column label="请假开始时间" key="startTime" min-width="150" align="center" prop="startTime">
<template slot-scope="scope">
{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}
{{ parseTime(scope.row.startTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
<dict-tag style="display: inline-block" :options="dict.type.course_num" :value="scope.row.startSort" />
</template>
</el-table-column>
<el-table-column label="请假结束时间" key="endTime" min-width="150" align="center" prop="endTime">
<template slot-scope="scope">
{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}
{{ parseTime(scope.row.endTime, '{y}-{m}-{d} {h}:{i}:{s}') }}
<dict-tag style="display: inline-block" :options="dict.type.course_num" :value="scope.row.endSort" />
</template>
</el-table-column>
<el-table-column label="请假类型" key="type" width="100" align="center" prop="type">
<template slot-scope="scope">
<dict-tag :options="dict.type.biz_leave_type" :value="scope.row.type"></dict-tag>
</template>
</el-table-column>
<el-table-column label="请假事由" key="applyUser" align="center" min-width="180" prop="reasonForLeave">
<el-table-column label="请假时长" key="applyUser" align="center" min-width="180" prop="totalTime">
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="60" key="operate">
<template slot-scope="scope">
......@@ -57,12 +53,11 @@
</template>
</el-table-column>
</el-table>
<ExPagination v-show="total > 0" :total="total" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNum"
@pagination="getList"></ExPagination>
<!-- 添加或修改教师请假信息对话框 -->
<el-dialog :title="title" :visible.sync="dialogTeacherLeave" width="70%" append-to-body>
<el-form ref="form" :model="form" label-width="120px" style="width: 100%; margin: auto" :disabled="isEdit">
<el-dialog :title="title" :visible.sync="dialogTeacherLeave" width="1100px" append-to-body>
<el-form ref="form" :model="form" label-width="120px" :disabled="isEdit">
<el-row>
<el-col :span="11">
<el-form-item label="教师名称" prop="teacherName">
......@@ -73,8 +68,8 @@
<!-- <el-form-item label="标题" prop="title">-->
<!-- <el-input v-model="form.title" placeholder="请输入标题"/>-->
<!-- </el-form-item>-->
<el-form-item label="级部/处室" prop="applyOrgname">
<el-input :value="form.applyOrgname" clearable placeholder="请输入级部/处室"></el-input>
<el-form-item label="标题" prop="title">
<el-input :value="form.title" clearable placeholder="请输入"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -84,7 +79,7 @@
<el-row>
<template v-if="form.startSort">
<el-col :span="12">
<el-date-picker :value="form.startTime" type="date" value-format="yyyy-MM-dd"
<el-date-picker :value="form.startTime" type="date" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择开始时间"></el-date-picker>
</el-col>
<el-col :span="12">
......@@ -93,7 +88,7 @@
</template>
<template v-else>
<el-col :span="12">
<el-date-picker :value="form.startTime" type="datetime" style="width: 323.34px"
<el-date-picker :value="form.startTime" type="datetime" style="width: 365.83px"
value-format="yyyy-MM-dd HH:mm" placeholder="选择开始时间"></el-date-picker>
</el-col>
</template>
......@@ -106,7 +101,7 @@
<el-row>
<template v-if="form.endSort">
<el-col :span="12">
<el-date-picker :value="form.endTime" type="date" value-format="yyyy-MM-dd"
<el-date-picker :value="form.endTime" type="date" value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择结束时间"></el-date-picker>
</el-col>
<el-col :span="12">
......@@ -115,7 +110,7 @@
</template>
<template v-else>
<el-col :span="12">
<el-date-picker style="width: 323.34px" :value="form.startTime" type="datetime"
<el-date-picker style="width: 365.83px" :value="form.startTime" type="datetime"
value-format="yyyy-MM-dd HH:mm" placeholder="选择开始时间"></el-date-picker>
</el-col>
</template>
......@@ -125,19 +120,23 @@
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="请假类型" prop="type">
<!-- <el-form-item label="请假类型" prop="type">
<el-select :value="form.type" style="width: 100%" placeholder="请选择请假类型">
<el-option v-for="dict in dict.type.biz_leave_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item> -->
<el-form-item label="请假时长" prop="totalTime">
<el-input :value="form.totalTime" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="请假原因" prop="reasonForLeave">
<!-- <el-form-item label="请假原因" prop="reasonForLeave">
<el-input type="textarea" resize="none" :autosize="{ minRows: 5 }" :value="form.reasonForLeave" />
</el-form-item>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -169,7 +168,7 @@
<!-- </el-dialog>-->
<!-- 导出对话框 -->
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
<!-- <ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable> -->
</div>
</template>
<script>
......@@ -249,44 +248,49 @@ export default {
this.getList();
},
/** 导出按钮操作 */
handleExport() {
// 导出选中,导出全部,根据查询条件导出
this.exportOptions.open = true;
// this.$confirm(`是否确认导出${ !!this.ids.length ? this.ids.length + '条' : '所有' }数据?`, '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// if (this.ids.length) {
// this.download('/school/teacherLeave/export/' + this.ids, {
// ...this.queryParams
// }, `教师请假信息.xlsx`)
// } else {
// this.download('/school/teacherLeave/export', {
// ...this.queryParams
// }, `教师请假信息.xlsx`)
// }
// }).catch(() => {
// });
},
// handleExport() {
// 导出选中,导出全部,根据查询条件导出
// this.exportOptions.open = true;
// this.$confirm(`是否确认导出${!!this.ids.length ? this.ids.length + '条' : '所有'}数据?`, '提示', {
// confirmButtonText: '确定',
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
// if (this.ids.length) {
// this.download('/school/teacherLeave/export/' + this.ids, {
// ...this.queryParams
// }, `教师请假信息.xlsx`)
// } else {
// this.download('/school/teacherLeave/export', {
// ...this.queryParams
// }, `教师请假信息.xlsx`)
// }
// }).catch(() => {
// });
// },
/** 导出 */
exportFile(callback) {
const ids = this.ids;
// TODO: 这里因为是两种状态: 提交和未提交,所以需要判断状态
const options = [
{ type: ExportType.TOTAL, path: '/school/teacherLeave/export', params: {} },
{
type: ExportType.SELECT,
path: '/school/teacherLeave/export/' + ids,
params: {}
},
{ type: ExportType.QUERY, path: '/school/teacherLeave/export', params: this.queryParams },
]
callback(options, `老师请假信息${new Date().getTime()}.xlsx`);
// exportFile(callback) {
// const ids = this.ids;
// TODO: 这里因为是两种状态: 提交和未提交,所以需要判断状态
// const options = [
// { type: ExportType.TOTAL, path: '/school/teacherLeave/export', params: {} },
// {
// type: ExportType.SELECT,
// path: '/school/teacherLeave/export/' + ids,
// params: {}
// },
// { type: ExportType.QUERY, path: '/school/teacherLeave/export', params: this.queryParams },
// ]
// callback(options, `老师请假信息${new Date().getTime()}.xlsx`);
// },
//导出
handleExport() {
this.download('/school/teacherLeave/exportTeacherLeaveList', {
...this.queryParams
}, `教职工请假信息_${Date.now()}.xlsx`)
},
//时间格式化
dateFormat(row, column, cellValue, index) {
const data = row[column.property]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment