Commit b094023e by zhaopanyu

zpy 8.24 修改

parent 6408f8b3
import request from '@/utils/request'
import request from "@/utils/request";
// 查询学生请假信息列表
export function getlistStuLeave(query) {
console.log(query)
console.log(query);
return request({
url: '/school/studentLeave/gradeList',
method: 'get',
params: query
})
url: "/school/studentLeave/gradeList",
method: "get",
params: query,
});
}
//查看审批流程;
export function getProcess(query) {
return request({
url: `/activiti/process/listHistory/`,
method: "get",
params: query,
});
}
// 查询学生请假信息详情
export function getStuLeaveOne(id) {
return request({
url: '/school/studentLeave/queryOne/' + id,
method: 'get'
})
url: "/school/studentLeave/queryOne/" + id,
method: "get",
});
}
......@@ -3,11 +3,19 @@ import request from "@/utils/request";
//人员分组
//获取分组集合
export function getUserList(data) {
export function getUserList(query) {
return request({
url: "/notification/list",
url: `/notification/list`,
method: "get",
params: query,
});
}
//修改详情
export function getXg(id) {
return request({
url: `/notification/selectOne/${id}`, // 在这里使用正确的拼接方式
method: "get",
data,
});
}
......@@ -16,7 +24,6 @@ export function getUser(notificationId) {
return request({
url: `/notification/getUserList/${notificationId}`,
method: "get",
// params: id
});
}
......@@ -39,7 +46,7 @@ export function addUser(data) {
}
//删除人员
export function deleteUser() {
export function deleteUser(data) {
return request({
url: "/notification/delectNotificationUser",
method: "put",
......@@ -51,7 +58,7 @@ export function deleteUser() {
export function updateNotification(data) {
return request({
url: "/notification/update",
method: "post",
method: "put",
data,
});
}
......
......@@ -17,15 +17,16 @@
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
<el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.name }} </span>
<span class="el-icon-document">{{ file.name }}</span>
</el-link>
<div class="ele-upload-list__item-content-action" style="float: right">
<el-link style="margin-left: 10px;color: #1890ff" :href="`${baseUrl}${file.url}`" :underline="false"
<el-link style="margin-left: 10px; color: #1890ff" :href="`${baseUrl}${file.url}`" :underline="false"
target="_blank">下载</el-link>
<el-link style="margin-left: 15px" :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
</div>
</li>
</transition-group>
</div>
</template>
......
<template>
<div class="navbar">
<hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container"
@toggleClick="toggleSideBar"/>
@toggleClick="toggleSideBar" />
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/>
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/>
<breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav" />
<top-nav id="topmenu-container" class="topmenu-container" v-if="topNav" />
<div class="right-menu">
<template v-if="device!=='mobile'">
<search id="header-search" class="right-menu-item"/>
<screenfull id="screenfull" class="right-menu-item hover-effect"/>
<template v-if="device !== 'mobile'">
<search id="header-search" class="right-menu-item" />
<screenfull id="screenfull" class="right-menu-item hover-effect" />
<el-tooltip content="布局大小" effect="dark" placement="bottom">
<size-select id="size-select" class="right-menu-item hover-effect"/>
<size-select id="size-select" class="right-menu-item hover-effect" />
</el-tooltip>
</template>
......@@ -19,11 +19,11 @@
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper">
<img :src="avatar" @error="handleError" class="user-avatar">
<i class="el-icon-caret-bottom"/>
<i class="el-icon-caret-bottom" />
</div>
<el-dropdown-menu slot="dropdown">
<!-- <router-link to="/user/profile">-->
<router-link to="/personWork/basicInfo">
<router-link to="/personWork/grxx/basicInfo">
<el-dropdown-item>个人中心</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="setting = true">
......@@ -39,7 +39,7 @@
</template>
<script>
import {mapGetters} from 'vuex'
import { mapGetters } from 'vuex'
import Breadcrumb from '@/components/Breadcrumb'
import TopNav from '@/components/TopNav'
import Hamburger from '@/components/Hamburger'
......
......@@ -131,20 +131,29 @@ export const dynamicRoutes = [
},
],
},
{
path: "/system/dict-data",
path: "/schoolManage/schoolNotice",
component: Layout,
hidden: true,
permissions: ["system:dict:list"],
permissions: ["system:role:edit"],
children: [
{
path: "index/:dictId(\\d+)",
component: () => import("@/views/system/dict/data"),
name: "Data",
meta: { title: "字典数据", activeMenu: "/system/dict" },
path: "/personnelGrouping/authUser",
component: () =>
import(
"@/views/smartSchool/schoolManage/schoolNotice/personnelGrouping/authUser.vue"
),
name: "AuthUser",
meta: {
title: "分配成员",
activeMenu:
"/smartSchool/schoolManage/schoolNotice/personnelGrouping",
},
},
],
},
{
path: "/monitor/job-log",
component: Layout,
......
......@@ -40,7 +40,13 @@
</template>
</el-table-column>
<el-table-column label="老师电话" width="160" align="center" prop="teacherTel" />
<el-table-column label="职工类型" width="160" align="center" prop="employeeType" />
<el-table-column label="职工类型" width="160" align="center" prop="employeeType">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.employee_type, row.employeeType) }}</div>
</template>
</el-table-column>
<el-table-column label="部门" width="160" align="center" prop="deptName" />
<!-- <el-table-column label="家庭住址" align="center" prop="homeAddress" show-overflow-tooltip/>
<el-table-column label="身份证号" width="180" align="center" prop="idCard"/> -->
......@@ -63,7 +69,7 @@ import { Gender } from "../../../../enums/common";
export default {
name: "TeacherSelect",
dicts: ['sys_user_sex'],
dicts: ['sys_user_sex', 'employee_type'],
components: {
ListImage
},
......
......@@ -2,23 +2,12 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="姓名" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.userName" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="日期">
<el-date-picker
style="width: 300px"
v-model="dateRange"
value-format="yyyy-MM-dd"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
<el-date-picker style="width: 300px" v-model="dateRange" value-format="yyyy-MM-dd" type="datetimerange"
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="部门" prop="department">
......@@ -36,14 +25,14 @@
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="clockRecordList" stripe>
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="设备工号" align="center" prop="deviceNum"/>
<el-table-column label="员工工号" align="center" prop="teacherCode"/>
<el-table-column label="姓名" align="center" prop="userName"/>
<el-table-column label="部门" align="center" prop="orgname"/>
<el-table-column label="考勤日期" align="center" prop="clockDate"/>
<el-table-column label="打卡时间" align="center" prop="times"/>
<el-table-column label="备注" align="center" prop="remark"/>
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="设备工号" align="center" prop="deviceNum" />
<el-table-column label="员工工号" align="center" prop="teacherCode" />
<el-table-column label="姓名" align="center" prop="userName" />
<el-table-column label="部门" align="center" prop="orgname" />
<el-table-column label="考勤日期" align="center" prop="clockDate" />
<el-table-column label="打卡时间" align="center" prop="times" />
<el-table-column label="备注" align="center" prop="remark" />
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
......@@ -57,11 +46,13 @@
</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 {personalList, checkRow} from "@/api/smartSchool/gradeWork/monthRecord.js"
import { personalList, checkRow } from "@/api/smartSchool/gradeWork/monthRecord.js"
export default {
name: 'GradeWorkClockRecord',
......@@ -121,5 +112,4 @@ export default {
}
};
</script>
<style scoped>
</style>
<style scoped></style>
......@@ -179,7 +179,6 @@ export default {
//获取每种课程选择人数
getCourseSelection() {
getsDivision({ curriculaId: this.queryForm.curriculaId }).then(res => {
if (res.code == 200) {
this.selectedCourse = res.data.map(item => {
return {
......@@ -232,7 +231,8 @@ export default {
// 分班按钮
submitForm() {
// 检查是否已经分班
const alreadyDivided = this.selectedCourse.some(course => course.divisionClassesRule !== null);
const alreadyDivided = this.selectedCourse.every(course => course.divisionClassesRule !== "");
console.log('this.selectedCourse', this.selectedCourse);
if (alreadyDivided) {
this.$message.warning("已经分班,无法重复操作");
return;
......@@ -242,25 +242,27 @@ export default {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let that = this;
for (let i = 0; i < this.selectedCourse.length; i++) {
that.selectedCourse[i].divisionClassesRule = that.form.divisionClassesRule;
const course = this.selectedCourse[i];
console.log('course.divisionClassesRule:', course.divisionClassesRule);
console.log('course.classesNumber:', course.classesNumber);
console.log('course.peopleNumber:', course.peopleNumber);
if (course.divisionClassesRule === '' || course.classesNumber === '' || course.peopleNumber === '') {
this.$message.error("分班规则、班级数量和每班人数不能为空");
return;
}
let totalPeopleNumber = course.classesNumber * course.peopleNumber;
if (totalPeopleNumber > this.selectedCourse.length) {
this.$message.error("班级数量和每班人数相乘不能超过总人数");
return;
}
}
console.log('this.selectedCourse', this.selectedCourse);
// let that = this;
// for (let i = 0; i < this.selectedCourse.length; i++) {
// that.selectedCourse[i].divisionClassesRule = that.form.divisionClassesRule;
// const course = this.selectedCourse[i];
// console.log('course.divisionClassesRule:', course.divisionClassesRule);
// console.log('course.classesNumber:', course.classesNumber);
// console.log('course.peopleNumber:', course.peopleNumber);
// if (course.divisionClassesRule === '' || course.classesNumber === '' || course.peopleNumber === '') {
// this.$message.error("分班规则、班级数量和每班人数不能为空");
// return;
// }
// let totalPeopleNumber = course.classesNumber * course.peopleNumber;
// console.log('totalPeopleNumber', totalPeopleNumber);
// if (totalPeopleNumber > this.coursePeopleNumber) {
// console.log('this.coursePeopleNumber', this.coursePeopleNumber);
// this.$message.error("班级数量和每班人数相乘不能超过总人数");
// return;
// }
// }
// console.log('this.selectedCourse', this.selectedCourse);
addDivision(this.selectedCourse).then((response) => {
console.log('this.selectedCourse', this.selectedCourse);
this.$modal.msgSuccess("分班成功");
......
......@@ -53,7 +53,7 @@
<el-button class="purpleBtn" size="small" round
@click="summerViewing(task.id, task.grade)">夏季选课情况</el-button>
<el-button class="rowBtn" size="small" round
@click="secondaryDivision(task.id, task.grade)">夏季二次选课</el-button>
@click="secondaryDivision(task.id, task.grade)">夏季二次分班</el-button>
</div>
</div>
</div>
......
......@@ -11,10 +11,7 @@
<el-col :span="8" :offset="2">
<el-form-item label="类型" prop="type">
<el-select v-model="form.type" disabled style="width: 100%">
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:label="dict.label"
<el-option v-for="dict in dict.type.sys_notice_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -24,51 +21,39 @@
</el-form>
<h4 class="form-header h4">详情列表</h4>
<el-row class="mb8" :gutter="10">
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- icon="el-icon-plus"-->
<!-- @click="handleAdd"-->
<!-- >新增-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- size="mini"-->
<!-- icon="el-icon-delete"-->
<!-- :disabled="!isMultiple"-->
<!-- @click="handleDelete"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="primary"-->
<!-- plain-->
<!-- size="mini"-->
<!-- icon="el-icon-plus"-->
<!-- @click="handleAdd"-->
<!-- >新增-->
<!-- </el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- size="mini"-->
<!-- icon="el-icon-delete"-->
<!-- :disabled="!isMultiple"-->
<!-- @click="handleDelete"-->
<!-- >删除-->
<!-- </el-button>-->
<!-- </el-col>-->
<el-col :span="1.5">
<el-button
type="info"
plain
size="mini"
icon="el-icon-close"
@click="handleClose"
>关闭
<el-button type="info" plain size="mini" icon="el-icon-close" @click="handleClose">关闭
</el-button>
</el-col>
</el-row>
<el-table
ref="receiveList"
stripe
style="width: 100%;"
:data="receiveList"
@selection-change="handleSelectChange"
>
<el-table ref="receiveList" stripe style="width: 100%;" :data="receiveList" @selection-change="handleSelectChange">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<!-- <el-table-column label="工作编号" prop="teacherCode" align="center"></el-table-column>-->
<el-table-column label="姓名" prop="parentName" align="center"></el-table-column>
<el-table-column label="关系" prop="relationship" align="center">
<template slot-scope="scope">
<dict-tag :options="dict.type.relationship" :value="scope.row.relationship"/>
<dict-tag :options="dict.type.relationship" :value="scope.row.relationship" />
</template>
</el-table-column>
<!-- <el-table-column label="性别" prop="sex" align="center"></el-table-column>-->
......@@ -76,24 +61,15 @@
<!-- <el-table-column label="身份号" prop="idCard" align="center"></el-table-column>-->
<el-table-column label="是否阅读" prop="status" align="center">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.status==1">已阅读</el-tag>
<el-tag type="success" v-if="scope.row.status == 1">已阅读</el-tag>
<el-tag type="warning" v-else>未阅读</el-tag>
</template>
</el-table-column>
</el-table>
<ExPagination
v-show="total > 0"
:total="total"
:page.sync="queryForm.pageNum"
:limit.sync="queryForm.pageSize"
@pagination="getList"
></ExPagination>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList"></ExPagination>
<el-dialog
:visible.sync="open"
title="选择推送人"
width="960px"
>
<el-dialog :visible.sync="open" title="选择推送人" width="960px">
<el-form :model="pushForm" inline size="small">
<el-form-item label="姓名" porp="userName">
<el-input v-model="pushForm.userName"></el-input>
......@@ -102,44 +78,22 @@
<el-input v-model="pushForm.phonenumber"></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
size="small"
icon="el-icon-search"
@click="handlePushQuery"
>搜索
<el-button type="primary" size="small" icon="el-icon-search" @click="handlePushQuery">搜索
</el-button>
<el-button
plain
size="small"
icon="el-icon-refresh"
@click="resetPushQuery"
>重置
<el-button plain size="small" icon="el-icon-refresh" @click="resetPushQuery">重置
</el-button>
</el-form-item>
</el-form>
<el-table
ref="pushList"
stripe
width="100%"
v-loading="loading"
:data="pushList"
@selection-change="handleSelectPush"
@row-click="handleRowClick"
>
<el-table ref="pushList" stripe width="100%" v-loading="loading" :data="pushList"
@selection-change="handleSelectPush" @row-click="handleRowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column type="index" label="序号" align="center"></el-table-column>
<el-table-column label="用户姓名" prop="userName" align="center"></el-table-column>
<el-table-column label="手机号" prop="phonenumber" align="center"></el-table-column>
</el-table>
<ExPagination
v-show="total > 0"
:total="total"
:page.sync="queryForm.pageNum"
:limit.sync="queryForm.pageSize"
@paginaiton="getList"
></ExPagination>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@paginaiton="getList"></ExPagination>
<div slot="footer">
<el-button :disabled="!isSimple" type="primary" size="small" @click="handleSelect">确 认</el-button>
......@@ -151,7 +105,7 @@
</template>
<script>
import {addReceive, deleteReceive, getList} from "@/api/smartSchool/informationPush/parentsDetails";
import { addReceive, deleteReceive, getList } from "@/api/smartSchool/informationPush/parentsDetails";
export default {
name: "ParentInfo",
......@@ -190,9 +144,9 @@ export default {
methods: {
/** 初始化参数数据、列表数据查询 */
init() {
const {title, type} = this.$route.query;
const { title, type } = this.$route.query;
this.pushId = this.$route.query && this.$route.query.id;
this.form = {title, type};
this.form = { title, type };
this.getList();
},
/** 获取列表数据 */
......@@ -235,7 +189,7 @@ export default {
/** 关闭 */
handleClose() {
this.$tab.closeOpenPage({
path: '/gradeWork/parentsInfoPush'
path: '/gradeWork/jxgy/parentsInfoPush'
});
},
......@@ -297,6 +251,4 @@ export default {
}
</script>
<style scoped>
</style>
<style scoped></style>
......@@ -14,8 +14,7 @@
</el-form-item>
<el-form-item label="审批状态:" prop="state" label-width="105px">
<el-select v-model="queryParams.state" placeholder="请选择审批状态">
<el-option v-for="dict in dict.type.approval_status" :key="dict.value" :label="dict.label"
:value="dict.value">
<el-option v-for="dict in dict.type.approval_status" :key="dict.value" :label="dict.label" :value="dict.value">
{{ dict.label }}
</el-option>
</el-select>
......@@ -26,30 +25,29 @@
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="teacherLeaveList">
<el-table-column type="index" width="55" label="序号" fixed="left" align="center"/>
<el-table-column label="姓名" min-width="100" align="center" fixed="left" prop="studentName"/>
<el-table-column label="班级" align="center" min-width="100" prop="className"/>
<el-table-column label="请假开始时间" sortable prop="startTime" align="center" min-width="180"/>
<el-table-column label="请假结束时间" sortable align="center" prop="endTime" min-width="180"/>
<el-table-column type="index" width="55" label="序号" fixed="left" align="center" />
<el-table-column label="姓名" min-width="100" align="center" fixed="left" prop="studentName" />
<el-table-column label="班级" align="center" min-width="100" prop="className" />
<el-table-column label="请假开始时间" sortable prop="startTime" align="center" min-width="180" />
<el-table-column label="请假结束时间" sortable align="center" prop="endTime" min-width="180" />
<el-table-column label="请假类型" align="center" prop="type" min-width="100">
<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="请假原因" min-width="220" align="center" prop="leaveReason"
show-overflow-tooltip/>
<el-table-column label="请假原因" min-width="220" align="center" prop="leaveReason" show-overflow-tooltip />
<el-table-column label="申请时间" align="center" prop="applyTime" min-width="150">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.applyTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="申请人" align="center" prop="applyUser" min-width="100"/>
<el-table-column label="申请人" align="center" prop="applyUser" min-width="100" />
<el-table-column label="审批状态" align="center" prop="state" min-width="100">
<template slot-scope="scope">
<dict-tag :options="dict.type.approval_status" :value="scope.row.state"/>
<dict-tag :options="dict.type.approval_status" :value="scope.row.state" />
</template>
</el-table-column>
<el-table-column label="返校时间" align="center" prop="revokeTime" min-width="150px"/>
<el-table-column label="返校时间" align="center" prop="revokeTime" min-width="150px" />
<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.taskName === '等待销假'" type="text" size="mini" icon="el-icon-edit" @click="handleResolve(scope.row, false)">销假 </el-button> -->
......@@ -63,11 +61,11 @@
<!-- @pagination="getList"></ExPagination>-->
<!-- <HandleResolve v-if="process.open" :process-open.sync="process.open" :instanceId="process.instanceId" :id="process.id" :taskId="process.taskId" :readOnly="process.readOnly" :revoke="process.revoke" @refreshData="refreshData"></HandleResolve> -->
<el-dialog :title="title" :visible.sync="dialogTeacherLeave" width="1000px" append-to-body>
<el-form ref="form" :model="form" label-width="120px" style="width: 100%; margin: auto">
<el-form ref="form" :model="form" label-width="120px" style="width: 100%; margin: auto" :disabled="!isEditable">
<el-row>
<el-col :span="11">
<el-form-item label="姓名" prop="studentName">
<el-input :value="form.studentName"/>
<el-input :value="form.studentName" />
</el-form-item>
</el-col>
<el-col :offset="2" :span="11">
......@@ -79,8 +77,8 @@
<el-row>
<el-col :span="11">
<el-form-item label="请假开始时间" prop="startTime">
<el-date-picker style="width: 100%" :value="form.startTime" type="datetime"
value-format="yyyy-MM-dd HH:mm" placeholder="选择开始时间"></el-date-picker>
<el-date-picker style="width: 100%" :value="form.startTime" type="datetime" value-format="yyyy-MM-dd HH:mm"
placeholder="选择开始时间"></el-date-picker>
</el-form-item>
</el-col>
......@@ -100,9 +98,14 @@
</el-select>
</el-form-item>
</el-col>
<el-col :offset="2" :span="11">
<el-form-item label="当前任务" prop="taskName">
<el-input :value="form.taskName" style="width: 100%" placeholder="请输入" />
</el-form-item>
</el-col>
</el-row>
<el-form-item label="请假原因" prop="leaveReason">
<el-input type="textarea" resize="none" :autosize="{ minRows: 5 }" :value="form.leaveReason"/>
<el-input type="textarea" resize="none" :autosize="{ minRows: 5 }" :value="form.leaveReason" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -112,8 +115,9 @@
</div>
</template>
<script>
import {getlistStuLeave, getStuLeaveOne} from '@/api/smartSchool/gradeWork/stuLeaveView'
import { getlistStuLeave, getStuLeaveOne, getProcess } from '@/api/smartSchool/gradeWork/stuLeaveView'
import HandleResolve from '@/views/smartSchool/gradeWork/studentLeaveView/components/HandleResolve'
import { courseSelectionSpringList } from '../../../../api/smartSchool/gradeWork/courseSelection/courseSelection'
export default {
name: 'StudentLeaveView',
......@@ -123,6 +127,7 @@ export default {
},
created() {
this.getList()
},
data() {
return {
......@@ -138,6 +143,7 @@ export default {
multiple: true,
// 遮罩层
loading: true,
isEditable: true,
// 弹出层标题
title: '',
dialogTeacherLeaveView: false,
......@@ -215,8 +221,11 @@ export default {
handleDetail(row) {
let stuId = row.id
getStuLeaveOne(stuId).then(response => {
this.form = response.data
this.dialogTeacherLeave = true
this.form = response.data;
this.form.instanceId = response.data.instanceId;
console.log('this.form.instanceId', this.form.instanceId);
this.dialogTeacherLeave = true;
this.isEditable = false;
this.title = '学生请假信息详情'
})
},
......
......@@ -5,17 +5,17 @@
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="学生姓名" prop="name">
<el-input v-model="studentInfo.name" disabled/>
<el-input v-model="studentInfo.name" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="身份证号">
<el-input v-model="studentInfo.idCard" disabled/>
<el-input v-model="studentInfo.idCard" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="注册序号">
<el-input v-model="studentInfo.schoolNo" disabled/>
<el-input v-model="studentInfo.schoolNo" disabled />
</el-form-item>
</el-col>
</el-row>
......@@ -23,48 +23,22 @@
<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:education:add']"
>新增
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:education: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:education:edit']"
>修改
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:education: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:education:remove']"
>删除
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:education:remove']">删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
>导出
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport">导出
</el-button>
</el-col>
<!-- <el-col :span="1.5">
......@@ -81,8 +55,8 @@
</el-row>
<el-table :data="educationList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
<el-table-column label="事件描述" align="center" prop="eventDescription" show-overflow-tooltip/>
<el-table-column type="selection" width="55" align="center" :selectable="selectable" />
<el-table-column label="事件描述" align="center" prop="eventDescription" show-overflow-tooltip />
<el-table-column label="奖惩" align="center" prop="isReward" show-overflow-tooltip>
<template slot-scope="scope">
<span>{{ scope.row.isReward == "1" ? "奖" : "惩" }}</span>
......@@ -102,57 +76,29 @@
</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="openForAdd"
width="500px"
>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<el-dialog :title="title" :visible.sync="openForAdd" width="500px">
<el-form ref="form" :model="form" label-width="98px" :rules="rules" style="text-align: center">
<el-form-item label="事件描述:" prop="eventDescription">
<el-input v-model="form.eventDescription"></el-input>
</el-form-item>
<el-form-item label="奖/惩:" prop="isReward">
<el-select v-model="form.isReward" style="width: 100%">
<el-option
v-for="item in rewardOption"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
<el-option v-for="item in rewardOption" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="分值:" prop="score">
<el-input-number
v-model="form.score"
:precision="2"
:step="1"
:max="10"
:min="0"
controls-position="right"
<el-input-number v-model="form.score" :precision="2" :step="1" :max="10" :min="0" controls-position="right"
style="width: 100%"></el-input-number>
</el-form-item>
<el-form-item label="日期:" prop="day">
<el-date-picker
:picker-options="pickerOptions"
v-model="form.day"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
style="width: 100%;"></el-date-picker>
<el-date-picker :picker-options="pickerOptions" v-model="form.day" type="date" value-format="yyyy-MM-dd"
placeholder="选择日期" style="width: 100%;"></el-date-picker>
</el-form-item>
<el-form-item label="级别:" prop="level">
<el-select v-model="leveltype" disabled style="width: 100%">
<el-option
v-for="item in levelOption"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
<el-option v-for="item in levelOption" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-form>
......@@ -163,11 +109,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>
......@@ -180,7 +122,7 @@ import {
addEducation,
updateEducation
} from "@/api/smartSchool/studentManage/educationCheck.js";
import {ExportType} from "@/enums/common";
import { ExportType } from "@/enums/common";
import SelectUser from "./components/selectUser.vue";
import {
Path_Destination,
......@@ -189,7 +131,7 @@ import {
export default {
name: "Education",
components: {SelectUser},
components: { SelectUser },
data() {
this.educationDetail = (id) =>
new this.Path_Destination(`/studentmanage/score/${id}`);
......@@ -232,11 +174,11 @@ export default {
},
// 表单校验
rules: {
eventDescription: [{required: true, message: '事件描述不能为空', trigger: 'blur'}],
isReward: [{required: true, message: '奖惩不能为空', trigger: 'blur'}],
score: [{required: true, message: '奖惩不能为空', trigger: 'blur'}],
day: [{required: true, message: '日期不能为空', trigger: 'blur'}],
level: [{required: true, message: '日期不能为空', trigger: 'blur'}],
eventDescription: [{ required: true, message: '事件描述不能为空', trigger: 'blur' }],
isReward: [{ required: true, message: '奖惩不能为空', trigger: 'blur' }],
score: [{ required: true, message: '奖惩不能为空', trigger: 'blur' }],
day: [{ required: true, message: '日期不能为空', trigger: 'blur' }],
level: [{ required: true, message: '日期不能为空', trigger: 'blur' }],
},
// 学生信息
studentInfo: {},
......@@ -294,23 +236,23 @@ export default {
computed: {
resolveClassName() {
return info => {
const {gradeName, className, yearValue} = info;
const { gradeName, className, yearValue } = info;
return yearValue + '-' + gradeName + '-' + className;
}
}
},
created() {
const {name, idCard, schoolNo, id,} = this.$route?.query;
this.studentInfo = {name, idCard, schoolNo, id};
const { name, idCard, schoolNo, id, } = this.$route?.query;
this.studentInfo = { name, idCard, schoolNo, id };
this.queryParams.studentId = id;
this.queryParams.schoolYear = this.$route?.query?.schoolYear;
this.getList();
},
activated() {
const {name, idCard, schoolNo, id} = this.$route?.query;
this.studentInfo = {name, idCard, schoolNo, id};
const { name, idCard, schoolNo, id } = this.$route?.query;
this.studentInfo = { name, idCard, schoolNo, id };
this.queryParams.studentId = id;
this.getList();
},
......@@ -324,6 +266,7 @@ export default {
listEducation(this.queryParams).then(response => {
console.log(response);
this.educationList = response.rows;
console.log('this.educationList', this.educationList);
this.total = response.total;
this.loading = false;
}).catch(error => {
......@@ -390,7 +333,7 @@ export default {
this.$refs.selectUser.open();
},
// 确认选择的检查员
confirmUser({userName, userId}) {
confirmUser({ userName, userId }) {
this.$set(this.form, 'userName', userName);
this.$set(this.form, 'inspectorId', userId);
},
......@@ -429,12 +372,14 @@ export default {
if (valid) {
if (this.form.id != null) {
updateEducation(this.form).then(response => {
console.log('this.form', this.form);
this.$modal.msgSuccess("修改成功");
this.openForAdd = false;
this.getList();
});
} else {
addEducation(this.form).then(response => {
console.log('this.form', this.form);
this.$modal.msgSuccess("新增成功");
this.openForAdd = false;
this.getList();
......@@ -460,7 +405,7 @@ export default {
/** 导出按钮操作 */
handleExport() {
// this.exportOptions.open = true;
this.download('/integral/export/' + this.queryParams.studentId, {schoolYear: this.queryParams.schoolYear}, `学生积分${Date.now()}.xlsx`)
this.download('/integral/export/' + this.queryParams.studentId, { schoolYear: this.queryParams.schoolYear }, `学生积分${Date.now()}.xlsx`)
},
/** 关闭 */
// handleClose() {
......@@ -470,9 +415,9 @@ export default {
exportFile(callback) {
const ids = this.ids;
const options = [
{type: ExportType.TOTAL, path: '/school/education/export', params: {}},
{type: ExportType.SELECT, path: '/school/education/export/' + ids, params: {}},
{type: ExportType.QUERY, path: '/school/education/export', params: this.queryParams},
{ type: ExportType.TOTAL, path: '/school/education/export', params: {} },
{ type: ExportType.SELECT, path: '/school/education/export/' + ids, params: {} },
{ type: ExportType.QUERY, path: '/school/education/export', params: this.queryParams },
]
callback(options, `学生信息${new Date().getTime()}.xlsx`);
},
......
......@@ -48,7 +48,7 @@ export default {
return {
postForm: {
comment: '',
pass: "true",
pass: "",
},
// 意见模板
templateComment: '',
......
......@@ -48,7 +48,7 @@ export default {
return {
postForm: {
comment: '',
pass: 'true'
pass: ''
},
// 意见模板
templateComment: '',
......
......@@ -52,7 +52,7 @@ export default {
return {
postForm: {
comment: '',
pass: 'true',
pass: '',
},
// 意见模板
templateComment: '',
......
......@@ -45,6 +45,8 @@
</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>
......
......@@ -6,11 +6,12 @@
</el-form-item>
<el-form-item>
<el-date-picker v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeData(dateRange)">
</el-date-picker>
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeData(dateRange)"
:clearable="true" @clear="clearDateRange"></el-date-picker>
<!-- 时间短(天) -->
<span v-if="diffDate !== ''" style="font-size: 14px">({{ diffDate }})天</span>
<span v-if="diffDate !== '' && dateRange" style="font-size: 14px">({{ diffDate }})天</span>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-circle-plus" size="mini" @click="handleAdd">新增</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
......@@ -549,6 +550,11 @@ export default {
},
methods: {
// 清空时间段
clearDateRange() {
this.dateRange = []; // 或者设置为null,取决于数据类型
this.diffDate = ''; // 清空 diffDate 变量
},
downloadFile(url) {
// 在这里编写下载文件的逻辑,可以使用浏览器的下载功能或者自定义的下载方法
window.open(url, "_blank");
......
<template>
<div class="" style="padding:15px 10px 0 10px">
<el-form :model="queryParams" ref="queryForm" :inline="true" style="padding:0 0 0 0" size="small">
<el-form-item prop="awardName">
<el-input v-model="queryParams.awardName" placeholder="获奖名称" clearable />
<el-form-item prop="awardName" label="获奖名称">
<el-input v-model="queryParams.awardName" placeholder="请输入" clearable />
</el-form-item>
<el-form-item prop="awardTime">
<el-date-picker v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" placeholder="获奖时间"
<el-form-item prop="awardTime" label="获奖时间">
<el-date-picker v-model="queryParams.awardTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable>
</el-date-picker>
</el-form-item>
<el-form-item prop="gradeOfAward">
<el-select v-model="queryParams.gradeOfAward" placeholder="获奖等级" clearable>
<el-form-item prop="gradeOfAward" label="获奖等级">
<el-select v-model="queryParams.gradeOfAward" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.
grade_type1" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item prop="licenseIssuingAuthority">
<el-input v-model="queryParams.licenseIssuingAuthority" placeholder="发证机关" clearable />
<el-form-item prop="licenseIssuingAuthority" label="发证机关">
<el-input v-model="queryParams.licenseIssuingAuthority" placeholder="请输入" clearable />
</el-form-item>
<el-form-item>
......@@ -43,11 +43,9 @@
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)">查看
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
>修改
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
>删除
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除
</el-button>
</template>
</el-table-column>
......@@ -66,29 +64,29 @@
<el-col :span="8">
<el-form-item label="获奖时间:" prop="awardTime">
<el-date-picker v-model="form.awardTime" type="date" placeholder="选择获奖时间"
:style="{ width: '100%' }">
value-format="yyyy-MM-dd" :style="{ width: '100%' }">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="获奖等级">
<el-select v-model="queryParams.gradeOfAward" placeholder="获奖等级" clearable>
<el-form-item label="获奖等级" prop="gradeOfAward">
<el-select v-model="form.gradeOfAward" placeholder="获奖等级" clearable :style="{ width: '100%' }">
<el-option v-for="dict in dict.type.
grade_type1" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发证机关">
<el-form-item label="发证机关" prop="licenseIssuingAuthority">
<el-input v-model="form.licenseIssuingAuthority" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="附件 :" prop="url">
<el-form-item label="附件 :" :rules="[{ required: true, message: '请上传附件' }]">
<FilepersonUploadNew @input="getFileList" :value="fileList"></FilepersonUploadNew>
</el-form-item>
</el-col>
......@@ -138,7 +136,7 @@
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
:key="file.id">
<el-link :href="`${file.accessoryUrl}`" :underline="false" target="_blank">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
......@@ -176,6 +174,7 @@ export default {
},
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
fileList: [],
queryParams: {
awardName: "",
......@@ -184,10 +183,30 @@ export default {
licenseIssuingAuthority: "",
pageNum: 1,
pageSize: 10,
dataUrl: null,
},
title: "",
rules: {
awardName: [
{ required: true, message: "获奖名称不能为空", trigger: "blur" }
],
awardTime: [
{ required: true, message: "获奖时间不能为空", trigger: "blur" }
],
gradeOfAward: [
{ required: true, message: "获奖等级不能为空", trigger: "blur" }
],
licenseIssuingAuthority: [
{ required: true, message: "发证机关不能为空", trigger: "blur" }
],
},
// 查看表格
......@@ -261,48 +280,58 @@ export default {
console.log('schoolAccessoryList', this.schoolAccessoryList)
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.schoolAccessoryList.length > 0) {
if (this.form.id !== undefined) {
const newObj = {};
newObj.id = this.form.id;
newObj.awardName = this.form.awardName;
newObj.awardTime = this.form.awardTime;
newObj.gradeOfAward = this.form.gradeOfAward;
newObj.licenseIssuingAuthority = this.form.licenseIssuingAuthority;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
updateaAward(newObj).then(response => {
// 更新操作
const newObj = {
id: this.form.id,
awardName: this.form.awardName,
awardTime: this.form.awardTime,
gradeOfAward: this.form.gradeOfAward,
licenseIssuingAuthority: this.form.licenseIssuingAuthority,
schoolAccessoryList: this.schoolAccessoryList.map((item) => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName,
})),
};
updateaAward(newObj)
.then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
})
.catch((error) => {
this.$message.error("修改失败");
});
} else {
const newObj = {};
newObj.id = this.form.id;
newObj.awardName = this.form.awardName;
newObj.awardTime = this.form.awardTime;
newObj.gradeOfAward = this.form.gradeOfAward;
newObj.licenseIssuingAuthority = this.form.licenseIssuingAuthority;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
addAward(newObj).then(response => {
// 新增操作
const newObj = {
id: this.form.id,
awardName: this.form.awardName,
awardTime: this.form.awardTime,
gradeOfAward: this.form.gradeOfAward,
licenseIssuingAuthority: this.form.licenseIssuingAuthority,
schoolAccessoryList: this.schoolAccessoryList.map((item) => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName,
})),
};
addAward(newObj)
.then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
})
.catch((error) => {
this.$message.error("新增失败");
});
}
} else {
this.$message.error("请上传附件");
}
}
});
},
......@@ -346,6 +375,7 @@ export default {
};
this.fileList = [];
this.schoolAccessoryList = [];
this.resetForm("form");
},
cancle() {
......
<template>
<div class="" style="padding:15px 10px 0 10px">
<el-form :model="queryParams" ref="queryForm" :inline="true" style="padding:0 0 0 0" size="small">
<el-form-item prop="name">
<el-input v-model="queryParams.name" placeholder="名称" />
<el-form-item prop="name" label="获奖名称">
<el-input v-model="queryParams.name" placeholder="请输入" />
</el-form-item>
<el-form-item prop="publishTime">
<el-date-picker v-model="queryParams.publishTime" type="date" value-format="yyyy-MM-dd" placeholder="发表时间">
<el-form-item prop="publishTime" label="发表时间">
<el-date-picker v-model="queryParams.publishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" plain icon="el-icon-plus" @click="handleAdd"> 新增 </el-button>
<el-button icon="el-icon-search" type="primary" size="mini" @click="getList">搜索</el-button>
......@@ -42,21 +41,21 @@
<el-form ref="form" :model="form" label-width="114px" :rules="rules">
<el-row>
<el-col :span="8">
<el-form-item label="名称">
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="发表时间:" prop="publishTime">
<el-date-picker v-model="form.publishTime" type="date" placeholder="选择发表时间"
:style="{ width: '100%' }">
:style="{ width: '100%' }" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="附件 :" prop="url">
<el-form-item label="附件 :" :rules="[{ required: true, message: '请上传附件' }]">
<FilepersonUploadNew @input="getFileList" :value="fileList"></FilepersonUploadNew>
</el-form-item>
</el-col>
......@@ -90,7 +89,7 @@
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
:key="file.id">
<el-link :href="`${file.accessoryUrl}`" :underline="false" target="_blank">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
......@@ -128,6 +127,7 @@ export default {
},
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
fileList: [],
queryParams: {
name: "",
......@@ -137,7 +137,12 @@ export default {
},
title: "",
rules: {
name: [
{ required: true, message: "获奖名称不能为空", trigger: "blur" }
],
publishTime: [
{ required: true, message: "发表时间不能为空", trigger: "blur" }
],
},
// 附件
schoolAccessoryList: [],
......@@ -145,8 +150,7 @@ export default {
lookTable: [],
tableData: [],
options: [
// { value: '1', label: '启用' },
// { value: '2', label: '禁用' },
],
form: {
name: "",
......@@ -214,46 +218,47 @@ export default {
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.schoolAccessoryList.length > 0) {
if (this.form.id !== undefined) {
const newObj = {};
newObj.id = this.form.id;
newObj.name = this.form.name;
newObj.publishTime = this.form.publishTime;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
const newObj = {
id: this.form.id,
name: this.form.name,
publishTime: this.form.publishTime,
schoolAccessoryList: this.schoolAccessoryList.map(item => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName
}))
};
updateMaterial(newObj).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
const newObj = {};
newObj.name = this.form.name;
newObj.publishTime = this.form.publishTime;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
const newObj = {
name: this.form.name,
publishTime: this.form.publishTime,
schoolAccessoryList: this.schoolAccessoryList.map(item => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName
}))
};
addMaterial(newObj).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} else {
this.$message.error("请上传附件");
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
......
<template>
<div class="" style="padding:15px 10px 0 10px">
<el-form :model="queryParams" ref="queryForm" :inline="true" style="padding:0 0 0 0" size="small">
<el-form-item prop="thesisName">
<el-input v-model="queryParams.thesisName" placeholder="论文名称" clearable />
<el-form-item prop="thesisName" label="论文名称">
<el-input v-model="queryParams.thesisName" placeholder="请输入" clearable />
</el-form-item>
<el-form-item prop="level">
<el-select v-model="queryParams.level" placeholder="级别" clearable>
<el-form-item prop="level" label="级别">
<el-select v-model="queryParams.level" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.level" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item prop="grade">
<el-select v-model="queryParams.grade" placeholder="等级" clearable>
<el-form-item prop="grade" label="等级">
<el-select v-model="queryParams.grade" placeholder="请选择" clearable>
<el-option v-for="dict in dict.type.
grade_type1" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
<el-form-item prop="publishTime">
<el-date-picker v-model="queryParams.publishTime" type="date" value-format="yyyy-MM-dd" placeholder="发表日期"
<el-form-item prop="publishTime" label="发表日期" >
<el-date-picker v-model="queryParams.publishTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择"
clearable>
</el-date-picker>
</el-form-item>
......@@ -66,12 +66,12 @@
<el-row>
<el-col :span="10">
<el-form-item label="论文名称">
<el-form-item label="论文名称" prop="thesisName">
<el-input v-model="form.thesisName" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="级别">
<el-form-item label="级别" prop="level">
<el-select v-model="form.level" :style="{ width: '100%' }">
<el-option v-for="dict in dict.type.level" :key="dict.value" :label="dict.label"
:value="dict.value" />
......@@ -81,7 +81,7 @@
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="等级:">
<el-form-item label="等级:" prop="grade">
<el-select v-model="form.grade" :style="{ width: '100%' }">
<el-option v-for="dict in dict.type.grade_type1" :key="dict.value" :label="dict.label"
:value="dict.value" />
......@@ -91,14 +91,14 @@
<el-col :span="10">
<el-form-item label="发表时间:" prop="publishTime">
<el-date-picker v-model="form.publishTime" type="date" placeholder="选择发表时间"
:style="{ width: '100%' }">
:style="{ width: '100%' }" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="16">
<el-form-item label="附件 :" prop="url">
<el-form-item label="附件 :" :rules="[{ required: true, message: '请上传附件' }]">
<FilepersonUploadNew @input="getFileList" :value="fileList" :style="{ width: '100%' }">
</FilepersonUploadNew>
</el-form-item>
......@@ -149,10 +149,9 @@
</el-col>
<el-col :span="10">
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
:key="file.id">
<el-link :href="`${file.accessoryUrl}`" :underline="false" target="_blank">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
......@@ -185,13 +184,13 @@ import {
import FilepersonUploadNew from "@/components/FilepersonUploadNew"
export default {
dicts: ['level', 'grade_type1'],
name: 'paperSituation',
components: {
FilepersonUploadNew,
},
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
// 上传文件
fileList: [],
queryParams: {
......@@ -204,7 +203,19 @@ export default {
},
title: "",
rules: {
thesisName: [
{ required: true, message: "论文名称不能为空", trigger: "blur" }
],
level: [
{ required: true, message: "级别不能为空", trigger: "blur" }
],
grade: [
{ required: true, message: "等级不能为空", trigger: "blur" }
],
publishTime: [
{ required: true, message: "发表时间不能为空", trigger: "blur" }
],
},
// 查看表格
......@@ -280,40 +291,37 @@ export default {
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.schoolAccessoryList.length > 0) {
if (this.form.id !== undefined) {
const newObj = {};
newObj.id = this.form.id;
newObj.thesisName = this.form.thesisName;
newObj.level = this.form.level;
newObj.grade = this.form.grade;
newObj.publishTime = this.form.publishTime;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
const newObj = {
id: this.form.id,
thesisName: this.form.thesisName,
level: this.form.level,
grade: this.form.grade,
publishTime: this.form.publishTime,
schoolAccessoryList: this.schoolAccessoryList.map(item => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName
}))
};
updateThesis(newObj).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
const newObj = {};
newObj.thesisName = this.form.thesisName;
newObj.level = this.form.level;
newObj.grade = this.form.grade;
newObj.publishTime = this.form.publishTime;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
const newObj = {
thesisName: this.form.thesisName,
level: this.form.level,
grade: this.form.grade,
publishTime: this.form.publishTime,
schoolAccessoryList: this.schoolAccessoryList.map(item => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName
}))
};
addThesis(newObj).then(response => {
console.log('this.form', this.form);
this.$modal.msgSuccess("新增成功");
......@@ -321,6 +329,9 @@ export default {
this.getList();
});
}
} else {
this.$message.error("请上传附件");
}
}
});
},
......@@ -365,6 +376,7 @@ export default {
};
this.fileList = [];
this.schoolAccessoryList = [];
this.resetForm("form");
},
cancle() {
......
<template>
<div class="" style="padding:15px 10px 0 10px">
<el-form :model="queryParams" ref="queryForm" :inline="true" style="padding:0 0 0 0" size="small">
<el-form-item prop="trainingTime">
<el-form-item prop="trainingTime" label="培训时间">
<el-date-picker v-model="queryParams.trainingTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"
format="yyyy-MM-dd" clearable>
</el-date-picker>
</el-form-item>
<el-form-item prop="trainingName">
<el-form-item prop="trainingName" label="培训名称">
<el-input v-model="queryParams.trainingName" placeholder="培训名称" clearable />
</el-form-item>
<el-form-item prop="isQualified">
<el-form-item prop="isQualified" label="是否合格">
<el-select v-model="queryParams.isQualified" placeholder="是否合格">
<el-option v-for="dict in dict.type.
is_qualified" :key="dict.value" :label="dict.label" :value="dict.value" clearable />
......@@ -57,17 +57,17 @@
<el-col :span="8">
<el-form-item label="培训时间:" prop="trainingTime">
<el-date-picker v-model="form.trainingTime" type="date" placeholder="选择发表时间"
:style="{ width: '100%' }">
:style="{ width: '100%' }" value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="培训名称">
<el-form-item label="培训名称" prop="trainingName">
<el-input v-model="form.trainingName" :style="{ width: '100%' }"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="是否合格">
<el-form-item label="是否合格" prop="isQualified">
<el-select v-model="form.isQualified" placeholder="是否合格" :style="{ width: '100%' }">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
......@@ -78,7 +78,7 @@
<el-row>
<el-col :span="16">
<el-form-item label="附件 :" prop="url">
<el-form-item label="附件 :" :rules="[{ required: true, message: '请上传附件' }]">
<FilepersonUploadNew @input="getFileList" :value="fileList"></FilepersonUploadNew>
</el-form-item>
</el-col>
......@@ -122,7 +122,7 @@
<el-form-item label="附件 :">
<li class="el-upload-list__item ele-upload-list__item-content" v-for="file in fileList"
:key="file.id">
<el-link :href="`${file.accessoryUrl}`" :underline="false" target="_blank">
<el-link :href="`${baseUrl}${file.accessoryUrl}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.accessoryName }} </span>
</el-link>
</li>
......@@ -160,6 +160,7 @@ export default {
},
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
fileList: [],
queryParams: {
trainingTime: "",
......@@ -173,7 +174,16 @@ export default {
schoolAccessoryList: [],
title: "",
rules: {
trainingTime: [
{ required: true, message: "培训时间不能为空", trigger: "blur" }
],
trainingName: [
{ required: true, message: "培训名称不能为空", trigger: "blur" }
],
isQualified: [
{ required: true, message: "是否合格不能为空", trigger: "blur" }
],
},
// 查看表格
lookTable: [],
......@@ -247,44 +257,44 @@ export default {
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.schoolAccessoryList.length > 0) {
if (this.form.id !== undefined) {
const newObj = {};
newObj.id = this.form.id;
newObj.trainingTime = this.form.trainingTime;
newObj.trainingName = this.form.trainingName;
newObj.isQualified = this.form.isQualified;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
const newObj = {
id: this.form.id,
trainingTime: this.form.trainingTime,
trainingName: this.form.trainingName,
isQualified: this.form.isQualified,
schoolAccessoryList: this.schoolAccessoryList.map(item => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName
}))
};
updateTraining(newObj).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
const newObj = {};
newObj.trainingTime = this.form.trainingTime;
newObj.trainingName = this.form.trainingName;
newObj.isQualified = this.form.isQualified;
//附件列表
newObj.schoolAccessoryList = this.schoolAccessoryList.map(item => {
return {
"accessoryUrl": item.accessoryUrl,
"accessoryName": item.accessoryName
}
});
const newObj = {
trainingTime: this.form.trainingTime,
trainingName: this.form.trainingName,
isQualified: this.form.isQualified,
schoolAccessoryList: this.schoolAccessoryList.map(item => ({
accessoryUrl: item.accessoryUrl,
accessoryName: item.accessoryName
}))
};
addTraining(newObj).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} else {
this.$message.error("请上传附件");
}
}
});
},
......
......@@ -2,88 +2,68 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="86px">
<el-form-item label="日期" prop="dateRange">
<el-date-picker
v-model="dateRange"
value-format="yyyy-MM-dd"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
<el-date-picker v-model="dateRange" value-format="yyyy-MM-dd" type="datetimerange" range-separator="至"
start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item class="ml20">
<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" icon="el-icon-upload" size="mini" @click="importRecord">导入</el-button> -->
<el-button style="margin-left: 20px" type="success" icon="el-icon-download" size="mini"
@click="handleExport">导出
<el-button style="margin-left: 20px" type="success" icon="el-icon-download" size="mini" @click="handleExport">导出
</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="clockRecordList" stripe>
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="设备工号" align="center" prop="deviceNum"/>
<el-table-column label="员工工号" align="center" prop="teacherCode"/>
<el-table-column label="姓名" align="center" prop="userName"/>
<el-table-column label="部门" align="center" prop="orgname"/>
<el-table-column label="考勤日期" align="center" prop="clockDate"/>
<el-table-column label="打卡时间" align="center" min-width="200px" prop="times"/>
<el-table-column label="备注" align="center" min-width="200px" prop="remark"/>
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="设备工号" align="center" prop="deviceNum" />
<el-table-column label="员工工号" align="center" prop="teacherCode" />
<el-table-column label="姓名" align="center" prop="userName" />
<el-table-column label="部门" align="center" prop="orgname" />
<el-table-column label="考勤日期" align="center" prop="clockDate" />
<el-table-column label="打卡时间" align="center" min-width="200px" prop="times" />
<el-table-column label="备注" align="center" min-width="200px" prop="remark" />
<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="handleEdit(scope.row)"
>编辑备注
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleEdit(scope.row)">编辑备注
</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"
/> -->
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<el-dialog title="编写备注" :visible.sync="dialogEditNote" width="1000px" append-to-body>
<el-form ref="form" :model="form" label-width="110px" style="width: 100%; margin: auto">
<el-row>
<el-col :span="12">
<el-form-item label="设备工号" prop="deviceNum">
<el-input :value="form.deviceNum" placeholder="请输入设备工号"/>
<el-input :value="form.deviceNum" placeholder="请输入设备工号" />
</el-form-item>
<el-form-item label="姓名" prop="userName">
<el-input :value="form.userName" placeholder="请输入姓名"/>
<el-input :value="form.userName" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="考勤日期" prop="clockDate">
<el-date-picker
v-model="form.clockDate"
type="date"
style="width: 100%"
placeholder="请选择考勤日期">
<el-date-picker v-model="form.clockDate" type="date" style="width: 100%" placeholder="请选择考勤日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="员工工号" prop="teacherCode">
<el-input :value="form.teacherCode" placeholder="请输入员工工号"/>
<el-input :value="form.teacherCode" placeholder="请输入员工工号" />
</el-form-item>
<el-form-item label="部门" prop="orgname">
<el-input :value="form.orgname" placeholder="请输入部门"/>
<el-input :value="form.orgname" placeholder="请输入部门" />
</el-form-item>
<el-form-item label="打卡时间" prop="times">
<el-input :value="form.times" placeholder="请输入打卡时间"/>
<el-input :value="form.times" placeholder="请输入打卡时间" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" show-overflow-tooltip placeholder="请输入备注"/>
<el-input v-model="form.remark" type="textarea" show-overflow-tooltip placeholder="请输入备注" />
</el-form-item>
</el-row>
</el-form>
......@@ -98,7 +78,7 @@
</template>
<script>
import {personalList, submitRemark} from "@/api/smartSchool/personWork/clockRecord.js"
import { personalList, submitRemark } from "@/api/smartSchool/personWork/clockRecord.js"
export default {
name: ' PersonWorkClockRecord',
......@@ -109,7 +89,10 @@ export default {
// 日期范围
dateRange: [],
// 模糊搜索
queryParams: {},
queryParams: {
pageNum: 1,
pageSize: 10,
},
// 加载遮罩
loading: true,
// 记录条数
......@@ -171,5 +154,4 @@ export default {
},
};
</script>
<style scoped>
</style>
<style scoped></style>
......@@ -5,16 +5,13 @@
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="标题" prop="title">
<el-input v-model="form.title" disabled/>
<el-input v-model="form.title" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="类型" prop="type">
<el-select v-model="form.type" disabled style="width: 100%">
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:label="dict.label"
<el-option v-for="dict in dict.type.sys_notice_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -35,57 +32,29 @@
<!-- </el-button>-->
<!--</el-col>-->
<el-col :span="1.5">
<el-button
type="danger"
plain
size="mini"
icon="el-icon-delete"
:disabled="!isMultiple"
@click="handleDelete"
>删除
<el-button type="danger" plain size="mini" icon="el-icon-delete" :disabled="!isMultiple" @click="handleDelete">删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
size="mini"
icon="el-icon-close"
@click="handleClose"
>关闭
<el-button type="info" plain size="mini" icon="el-icon-close" @click="handleClose">关闭
</el-button>
</el-col>
</el-row>
<el-table
ref="receiveList"
stripe
style="width: 100%;"
:data="receiveList"
@selection-change="handleSelectChange"
>
<el-table ref="receiveList" stripe style="width: 100%;" :data="receiveList" @selection-change="handleSelectChange">
<el-table-column type="selection" align="center" width="55"></el-table-column>
<el-table-column label="姓名" prop="userName" align="center"></el-table-column>
<el-table-column label="电话" prop="phonenumber" align="center"></el-table-column>
<el-table-column label="是否阅读" prop="status" align="center">
<template slot-scope="scope">
<el-tag type="success" v-if="scope.row.status==1">已阅读</el-tag>
<el-tag type="success" v-if="scope.row.status == 1">已阅读</el-tag>
<el-tag type="warning" v-else>未阅读</el-tag>
</template>
</el-table-column>
</el-table>
<ExPagination
v-show="total > 0"
:total="total"
:page.sync="queryForm.pageNum"
:limit.sync="queryForm.pageSize"
@pagination="getList"
></ExPagination>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@pagination="getList"></ExPagination>
<el-dialog
:visible.sync="open"
title="选择推送人"
width="960px"
>
<el-dialog :visible.sync="open" title="选择推送人" width="960px">
<el-form :model="pushForm" inline size="small">
<el-form-item label="姓名" porp="userName">
<el-input v-model="pushForm.userName"></el-input>
......@@ -94,44 +63,22 @@
<el-input v-model="pushForm.phonenumber"></el-input>
</el-form-item>
<el-form-item>
<el-button
type="primary"
size="small"
icon="el-icon-search"
@click="handlePushQuery"
>搜索
<el-button type="primary" size="small" icon="el-icon-search" @click="handlePushQuery">搜索
</el-button>
<el-button
plain
size="small"
icon="el-icon-refresh"
@click="resetPushQuery"
>重置
<el-button plain size="small" icon="el-icon-refresh" @click="resetPushQuery">重置
</el-button>
</el-form-item>
</el-form>
<el-table
ref="assignorList"
stripe
width="100%"
v-loading="loading"
:data="pushList"
@selection-change="handleSelectChange"
@row-click="handleRowClick"
>
<el-table ref="assignorList" stripe width="100%" v-loading="loading" :data="pushList"
@selection-change="handleSelectChange" @row-click="handleRowClick">
<el-table-column type="selection" align="center"></el-table-column>
<el-table-column type="index" label="序号" align="center"></el-table-column>
<el-table-column label="用户姓名" prop="userName" align="center"></el-table-column>
<el-table-column label="手机号" prop="phonenumber" align="center"></el-table-column>
</el-table>
<ExPagination
v-show="total > 0"
:total="total"
:page.sync="queryForm.pageNum"
:limit.sync="queryForm.pageSize"
@paginaiton="getList"
></ExPagination>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryForm.pageNum" :limit.sync="queryForm.pageSize"
@paginaiton="getList"></ExPagination>
<div slot="footer">
<el-button :disabled="!isSimple" type="primary" size="small" @click="handleSelect">确 认</el-button>
......@@ -143,8 +90,10 @@
</template>
<script>
import {deleteReceive, getList} from "@/api/smartSchool/informationPush/schoolDetail";
import { deleteReceive, getList } from "@/api/smartSchool/informationPush/schoolDetail";
import {
getUser,// 根据分类id获取人员信息
} from "@/api/smartSchool/informationPush/personnelGrouping";
export default {
name: "SchoolDetail",
dicts: ['sys_user_sex', 'sys_notice_type'],
......@@ -183,11 +132,22 @@ export default {
methods: {
/** 初始化参数数据、列表数据查询 */
init() {
const {title, type} = this.$route.query;
const { title, type } = this.$route.query;
this.pushId = this.$route.query && this.$route.query.id;
this.form = {title, type};
this.form = { title, type };
this.getList();
},
//根据组id查询组成员
getList() {
this.loading = true;
this.notificationId = this.$route.query.id;
console.log('this..notificationId', this.notificationId);
getUser(this.notificationId).then(response => {
this.userList = response.rows;
console.log('this.userList', this.userList);
this.loading = false;
});
},
/** 获取列表数据 */
getList() {
this.loading = true;
......@@ -272,6 +232,4 @@ export default {
}
</script>
<style scoped>
</style>
<style scoped></style>
......@@ -9,22 +9,13 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标题" prop="title">
<el-input
size="small"
v-model="queryParams.title"
placeholder="请输入标题"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input size="small" v-model="queryParams.title" placeholder="请输入标题" clearable
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="接收人" prop="receivePacket">
<el-select v-model="queryParams.receivePacket" size="small" @keyup.enter.native="handleQuery"
<el-form-item label="接收人" prop="groupId">
<el-select v-model="queryParams.groupId" size="small" clearable @keyup.enter.native="handleQuery"
placeholder="请选择接收人">
<el-option
v-for="item in roleList"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId">
<el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id">
</el-option>
</el-select>
</el-form-item>
......@@ -36,61 +27,28 @@
<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:push:add']"
>新增
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:push:add']">新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-search"
size="mini"
:disabled="single"
@click="viewDetailButton"
v-hasPermi="['system:push:export']"
>详情
<el-button type="info" plain icon="el-icon-search" size="mini" :disabled="single" @click="viewDetailButton"
v-hasPermi="['system:push:export']">详情
</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:push:edit']"
>修改
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:push: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:push:remove']"
>删除
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:push: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:push:export']"
>导出
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['system:push:export']">导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
......@@ -98,89 +56,59 @@
<el-table ref="table" v-loading="loading" :data="pushList" @selection-change="handleSelectionChange"
@row-click="rowClick">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="标题" align="center" v-if="columns[0].visible" prop="title"
show-overflow-tooltip/>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="标题" align="center" v-if="columns[0].visible" prop="title" show-overflow-tooltip />
<el-table-column label="类型" align="center" prop="messageType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_notice_type" :value="scope.row.messageType"></dict-tag>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" v-if="columns[1].visible" prop="createTime" width="200"
show-overflow-tooltip/>
show-overflow-tooltip />
<el-table-column label="创建人" align="center" v-if="columns[2].visible" prop="createBy" width="200"
show-overflow-tooltip/>
<el-table-column label="接收人" align="center" v-if="columns[3].visible" prop="receivePacket" width="200"
show-overflow-tooltip />
<el-table-column label="接收人" align="center" v-if="columns[3].visible" prop="groupId" width="200"
show-overflow-tooltip>
<template slot-scope="scope">
<!-- <template slot-scope="scope">
<span>{{ resolveRole(scope.row.receivePacket) }}</span>
</template>
</template> -->
</el-table-column>
<el-table-column label="状态" align="center" v-if="columns[4].visible" prop="state" width="200">
<template slot-scope="scope">
<el-switch
v-model="scope.row.state"
active-value="0"
inactive-value="1"
@change="handleChangeState(scope.row)"
></el-switch>
<el-switch v-model="scope.row.state" active-value="0" inactive-value="1"
@change="handleChangeState(scope.row)"></el-switch>
</template>
</el-table-column>
<el-table-column label="操作" align="center" v-if="columns[5].visible" width="200"
class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-user"
@click="getReceiveList(scope.row)"
v-hasPermi="['system:push:edit']"
>接收人列表
<el-button size="mini" type="text" icon="el-icon-user" @click="getReceiveList(scope.row)"
v-hasPermi="['system:push:edit']">接收人列表
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:push:edit']"
>修改
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:push:edit']">修改
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:push:remove']"
>删除
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:push: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"
/>
<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="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="标题" prop="title">
<el-input size="small" v-model="form.title" placeholder="请输入标题"/>
<el-input size="small" v-model="form.title" placeholder="请输入标题" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="接收人" prop="receivePacket">
<el-select size="small" v-model="form.receivePacket" placeholder="请选择角色" style="width: 100%;">
<el-option
v-for="item in roleList"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
></el-option>
<el-form-item label="接收人" prop="groupId">
<el-select size="small" v-model="form.groupId" placeholder="请选择角色" style="width: 100%;">
<el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -189,18 +117,14 @@
<el-col :span="12">
<el-form-item label="类型" prop="messageType">
<el-select v-model="form.messageType" style="width: 100%;">
<el-option
v-for="dict in dict.type.sys_notice_type"
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
<el-option v-for="dict in dict.type.sys_notice_type" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col>
<el-form-item label="内容" prop="content">
<editor v-model="form.content" :min-height="192"/>
<editor v-model="form.content" :min-height="192" />
</el-form-item>
</el-col>
</el-row>
......@@ -217,7 +141,7 @@
<h1 style="display: inline-block">{{ form.title }}</h1>
</div>
<span class="info-container" :disabled="true" v-html="form.content"></span>
<br/><br/>
<br /><br />
<div style="float: right;">
<el-descriptions column="3">
<!-- <el-descriptions-item label="标题">{{ form.title }}</el-descriptions-item>-->
......@@ -230,15 +154,11 @@
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="viewDetail=false">关闭</el-button>
<el-button type="primary" @click="viewDetail = false">关闭</el-button>
</div>
</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>
......@@ -251,10 +171,13 @@ import {
deleteInfo,
changeState
} from "@/api/smartSchool/informationPush/school";
import {State} from "@/enums/infoPush";
import {getUser} from "@/api/system/user";
import {ExportType} from "@/enums/common";
import { State } from "@/enums/infoPush";
// import { getUser } from "@/api/system/user";
import { ExportType } from "@/enums/common";
import {
getUserList,//获取分组集合
} from "@/api/smartSchool/informationPush/personnelGrouping";
export default {
name: "SchoolMessage",
dicts: ['status', 'inform_push_state', 'receive_packet', 'sys_notice_type'],
......@@ -288,7 +211,7 @@ export default {
pageNum: 1,
pageSize: 10,
title: null,
receivePacket: null,
groupId: null,
state: State.NORMAL,
// content: null,
// messageType: null,
......@@ -298,30 +221,32 @@ export default {
title: '选择导出类别',
open: false
},
//分组
idList: [],
// 表单参数
form: {},
// 列信息
columns: [
{key: 0, label: `标题`, visible: true},
{key: 1, label: `创建时间`, visible: true},
{key: 2, label: `创建人`, visible: true},
{key: 3, label: `接收人`, visible: true},
{key: 4, label: `状态`, visible: true},
{key: 5, label: `操作`, visible: true},
{ key: 0, label: `标题`, visible: true },
{ key: 1, label: `创建时间`, visible: true },
{ key: 2, label: `创建人`, visible: true },
{ key: 3, label: `接收人`, visible: true },
{ key: 4, label: `状态`, visible: true },
{ key: 5, label: `操作`, visible: true },
],
// 表单校验
rules: {
title: [
{required: true, message: "请输入标题", trigger: "blur"}
{ required: true, message: "请输入标题", trigger: "blur" }
],
receivePacket: [
{required: true, message: "接收人不能为空", trigger: "blur"}
{ required: true, message: "接收人不能为空", trigger: "blur" }
],
messageType: [
{required: true, message: "类型不能为空", trigger: "blur"}
{ required: true, message: "类型不能为空", trigger: "blur" }
],
content: [
{required: true, message: "内容不能为空", trigger: "blur"}
{ required: true, message: "内容不能为空", trigger: "blur" }
],
},
// 当前状态
......@@ -340,9 +265,23 @@ export default {
},
created() {
this.getList();
this.getRoleList();
// this.getRoleList();
this.groupList();
},
methods: {
//接收人分组
groupList() {
getUserList().then(response => {
this.roleList = response.rows;
console.log('this.roleList', this.roleList);
this.total = response.total;
this.loading = false;
});
},
/** 查询学校消息推送列表 */
getList() {
this.loading = true;
......@@ -404,8 +343,8 @@ export default {
path: '/schoolManage/infoPush/receiveList',
query: {
id: row.id,
title: row.title,
type: row.messageType,
// title: row.title,
// type: row.messageType,
}
})
},
......@@ -419,10 +358,14 @@ export default {
this.title = "修改学校消息推送";
getInfoOne(id).then(response => {
this.form = response.data;
console.log('this.form', this.form);
});
},
/** 提交按钮 */
submitForm() {
const groupId = this.form.groupId
this.form.group = groupId == '' ? '' : this.roleList.find(item => item.id == groupId).name
console.log(this.form.borrowBy);
this.throttle(() => {
this.$refs["form"].validate(valid => {
if (valid) {
......@@ -519,7 +462,7 @@ export default {
},
// 切换状态
handleTabChange({name}) {
handleTabChange({ name }) {
if (name == State.NORMAL) {
this.pageState = 0
} else {
......@@ -530,18 +473,18 @@ export default {
},
// 获取角色信息
getRoleList() {
getUser().then(response => {
this.roleList = response.roles;
}).catch(error => {
})
},
// getRoleList() {
// getUser().then(response => {
// this.roleList = response.roles;
// }).catch(error => {
// })
// },
/** 导出 */
exportFile(callback) {
const ids = this.ids;
const options = [
{type: ExportType.TOTAL, path: '/schoolMessagePush/exportAll', params: {state: this.pageState}},
{type: ExportType.SELECT, path: '/schoolMessagePush/export/' + ids, params: {}},
{ type: ExportType.TOTAL, path: '/schoolMessagePush/exportAll', params: { state: this.pageState } },
{ type: ExportType.SELECT, path: '/schoolMessagePush/export/' + ids, params: {} },
{
type: ExportType.QUERY, path: '/schoolMessagePush/exportAll', params: {
state: this.pageState,
......
......@@ -2,77 +2,35 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable style="width: 240px" />
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListss">搜索</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="openSelectUser"
v-hasPermi="['system:role:add']"
>添加用户
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-circle-close"
size="mini"
:disabled="multiple"
@click="cancelAuthUserAll"
v-hasPermi="['system:role:remove']"
>批量取消授权
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="openSelectUser">添加用户
</el-button>
<el-button type="danger" plain icon="el-icon-delete" size="mini" @click="handleDelete()">批量删除用户</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-close"
size="mini"
@click="handleClose"
>关闭
<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="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true"/>
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true"/>
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true"/>
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true"/>
<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 :data="userList" @selection-change="handleSelectionChanges">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
......@@ -80,39 +38,75 @@
</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-circle-close"
@click="cancelAuthUser(scope.row)"
v-hasPermi="['system:role:remove']"
>取消授权
<el-button size="mini" type="text" icon="el-icon-circle-close" @click="handleDelete(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增弹窗 -->
<el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
<el-form :model="queryParam" ref="queryForm" size="small" :inline="true">
<el-form-item label="用户名称" prop="userName">
<el-input v-model="queryParam.userName" placeholder="请输入用户名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input v-model="queryParam.phonenumber" placeholder="请输入手机号码" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getListcy">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuerys">重置</el-button>
</el-form-item>
</el-form>
<el-row>
<el-table @row-click="clickRow" ref="table" :data="userListcy" @selection-change="handleSelectionChange"
height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<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="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table>
<pagination v-show="totalcy > 0" :total="total" :page.sync="queryParam.pageNum" :limit.sync="queryParam.pageSize"
@pagination="getListcy" />
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSelectUser">确 定</el-button>
<el-button @click="visible = false">取 消</el-button>
</div>
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<select-user ref="select" :roleId="queryParams.roleId" @ok="handleQuery"/>
</div>
</template>
<script>
import {allocatedUserList, authUserCancel, authUserCancelAll} from "@/api/system/role";
import selectUser from "./selectUser";
import {
getUser,// 根据分类id获取人员信息
addUser,//分组新增人员;
deleteUser,//删除人员,
} from "@/api/smartSchool/informationPush/personnelGrouping";
// import selectUser from "./selectUser";
import { unallocatedUserList } from "@/api/system/role";
export default {
name: "AuthUser",
dicts: ['sys_normal_disable'],
components: {selectUser},
data() {
return {
visible: false,
// 遮罩层
loading: true,
// 选中用户组
......@@ -123,8 +117,10 @@ export default {
showSearch: true,
// 总条数
total: 0,
totalcy: 0,
// 用户表格数据
userList: [],
userListcy: [],
// 查询参数
queryParams: {
pageNum: 1,
......@@ -132,33 +128,85 @@ export default {
roleId: undefined,
userName: undefined,
phonenumber: undefined
},
queryParam: {
pageNum: 1,
pageSize: 10,
roleId: undefined,
userName: undefined,
phonenumber: undefined
}
};
},
watch: {
$route: {
handler(to, from) {
console.log('object', from);
if (from.path == '/schoolManage/schoolNotice/personnelGrouping') {
this.getList()
}
}
}
// '$route.query.id': function () {
// console.log("djuedhuiwhdeui");
// this.getList()
// }
},
created() {
const roleId = this.$route.params && this.$route.params.roleId;
console.log("222222", roleId)
if (roleId) {
this.queryParams.roleId = roleId;
this.getList();
}
this.getListcy();
},
mounted() {
},
methods: {
/** 查询授权用户列表 */
/** 根据页面跳转所传id查询用户列表 */
getList() {
this.loading = true;
allocatedUserList(this.queryParams).then(response => {
this.notificationId = this.$route.query.id;
console.log('this..notificationId', this.notificationId);
getUser(this.notificationId).then(response => {
this.userList = response.rows;
this.total = response.total;
console.log('this.userList', this.userList);
this.loading = false;
}
);
});
},
// 返回按钮
handleClose() {
const obj = {path: "/system/role"};
this.$tab.closeOpenPage(obj);
//添加用户
openSelectUser() {
this.visible = true;
},
// 查询可分组表数据
getListcy() {
unallocatedUserList(this.queryParam).then(res => {
this.userListcy = res.rows;
this.totalcy = res.total;
console.log('this.userListcy', this.userListcy);
this.total = res.total;
});
},
getListss() {
unallocatedUserList(this.queryParams).then(res => {
this.userList = res.rows;
this.total = res.total;
console.log('this.userListcy', this.userListcy);
this.total = res.total;
});
},
clickRow(row) {
this.$refs.table.toggleRowSelection(row);
},
// 多选框选中数据
handleSelectionChange(selection) {
console.log('selection', selection);
this.userIds = selection.map(item => item.userId);
},
// 多选框选中数据
handleSelectionChanges(selection) {
this.userIds = selection.map(item => item.userId)
this.multiple = !selection.length
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
......@@ -167,40 +215,72 @@ export default {
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.userIds = selection.map(item => item.userId)
this.multiple = !selection.length
this.getList();
},
/** 打开授权用户表弹窗 */
openSelectUser() {
this.$refs.select.show();
resetQuerys() {
this.resetForm("queryForm");
this.getListcy();
},
/** 取消授权按钮操作 */
cancelAuthUser(row) {
const roleId = this.queryParams.roleId;
this.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function () {
return authUserCancel({userId: row.userId, roleId: roleId});
}).then(() => {
/** 选择成员操作 */
handleSelectUser() {
const notificationId = this.$route.query.id;
const userIds = this.userIds;
if (userIds == "") {
this.$modal.msgError("请选择要分配的用户");
return;
}
addUser({ notificationId: notificationId, userId: userIds }).then(res => {
this.$modal.msgSuccess(res.msg);
if (res.code === 200) {
this.visible = false;
this.getList();
this.$modal.msgSuccess("取消授权成功");
}).catch(() => {
this.$emit("ok");
}
});
},
/** 批量取消授权按钮操作 */
cancelAuthUserAll(row) {
const roleId = this.queryParams.roleId;
const userIds = this.userIds.join(",");
this.$modal.confirm('是否取消选中用户授权数据项?').then(function () {
return authUserCancelAll({roleId: roleId, userIds: userIds});
// 返回按钮
handleClose() {
const obj = { path: "/system/role" };
this.$tab.closeOpenPage(obj);
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.getList();
},
/** 删除操作 */
handleDelete(row) {
console.log(row, 'row');
const notificationId = this.$route.query.id;
console.log(notificationId);
let userIds;
if (row) {
// 单个删除
userIds = [row.userId];
console.log(userIds);
} else {
// 批量删除
userIds = this.userIds;
console.log(userIds);
}
this.$modal.confirm('确认要取消该用户的分组吗?').then(() => {
return deleteUser({ notificationId: notificationId, userId: userIds });
}).then(() => {
this.getList();
this.$modal.msgSuccess("取消授权成功");
}).catch(() => {
this.$modal.msgSuccess("删除成功");
}).catch((error) => {
});
}
}
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form :model="queryParams" ref="queryParams" size="small" :inline="true" v-show="showSearch">
<el-form-item label="分组名称" prop="name">
<el-input v-model="queryParams.roleName" placeholder="分组名称" clearable style="width: 240px"
@keyup.enter.native="handleQuery" />
<el-input v-model="queryParams.name" placeholder="分组名称" clearable style="width: 240px" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<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-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:role: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:role: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:role:remove']">删除</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
<el-button type="danger" plain icon="el-icon-delete" size="mini" @click="handleDelete()">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
<el-table :data="roleList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="分组编号" prop="id" />
<el-table-column label="分组名称" prop="name" />
<el-table-column label="显示顺序" prop="sort" />
<el-table-column label="操作" align="center">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:role:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:role:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-user" @click="handleCommand('handleAuthUser', scope.row)"
v-hasPermi="['system:role:edit']">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-user" @click="handleAuthUser(scope.row.id)">
分配用户
</el-button>
</template>
......@@ -51,80 +40,36 @@
<!-- 添加或修改角色配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="分组名称" prop="name">
<el-input v-model="form.name" placeholder="请输入角色名称" />
</el-form-item>
<el-form-item label="显示顺序" prop="sort">
<el-input-number v-model="form.sort" controls-position="right" :min="0" />
<el-input-number v-model="form.sort" controls-position="right" :min="0" style="width: 100%;" />
</el-form-item>
<!-- <el-form-item label="菜单权限">
<el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
<el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.menuCheckStrictly"
@change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
<el-tree class="tree-border" :data="menuOptions" show-checkbox ref="menu" node-key="id"
:check-strictly="!form.menuCheckStrictly" empty-text="加载中,请稍候" :props="defaultProps"></el-tree>
</el-form-item> -->
<!-- <el-form-item label="备注">
<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>
<!-- 分配角色数据权限对话框 -->
<!-- <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
<el-form :model="form" label-width="80px">
<el-form-item label="角色名称">
<el-input v-model="form.roleName" :disabled="true" />
</el-form-item>
<el-form-item label="权限字符">
<el-input v-model="form.roleKey" :disabled="true" />
</el-form-item>
<el-form-item label="权限范围">
<el-select v-model="form.dataScope" @change="dataScopeSelectChange">
<el-option v-for="item in dataScopeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据权限" v-show="form.dataScope == 2">
<el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
<el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.deptCheckStrictly"
@change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
<el-tree class="tree-border" :data="deptOptions" show-checkbox default-expand-all ref="dept" node-key="id"
:check-strictly="!form.deptCheckStrictly" empty-text="加载中,请稍候" :props="defaultProps"></el-tree>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitDataScope">确 定</el-button>
<el-button @click="cancelDataScope">取 消</el-button>
</div>
</el-dialog> -->
</div>
</template>
<script>
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
import {
getUserList,//获取分组集合
getUser,// 根据分类id获取人员信息
addNotification,//新增数据
addUser,//分组新增人员;
deleteUser,//删除人员,
updateNotification,//修改分组信息
deleteNotification,//删除分组
getXg
} from "@/api/smartSchool/informationPush/personnelGrouping";
export default {
name: "Role",
dicts: ['sys_normal_disable'],
name: "index",
data() {
return {
notificationId: '',
// 遮罩层
loading: true,
// 选中数组
......@@ -141,90 +86,50 @@ export default {
roleList: [],
// 弹出层标题
title: "",
selectedRoleId: "",
// 是否显示弹出层
open: false,
form: {
id: "",
name: "",
sort: "",
remark: "",
},
// 日期范围
dateRange: [],
// 部门列表
// deptOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
name: "",
},
// 表单参数
form: {},
idList: [],
// 表单校验
rules: {
roleName: [
{ required: true, message: "角色名称不能为空", trigger: "blur" }
],
roleKey: [
{ required: true, message: "权限字符不能为空", trigger: "blur" }
],
roleSort: [
{ required: true, message: "角色顺序不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
getUserList().then(response => {
getUserList(this.queryParams).then(response => {
this.roleList = response.rows;
console.log('this.roleList', this.roleList);
this.total = response.total;
this.loading = false;
}
);
});
},
/** 查询菜单树结构 */
// getMenuTreeselect() {
// menuTreeselect().then(response => {
// this.menuOptions = response.data;
// });
// },
// 所有菜单节点数据
// getMenuAllCheckedKeys() {
// 目前被选中的菜单节点
// let checkedKeys = this.$refs.menu.getCheckedKeys();
// 半选中的菜单节点
// let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
// checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
// return checkedKeys;
// },
// 所有部门节点数据
// getDeptAllCheckedKeys() {
// 目前被选中的部门节点
// let checkedKeys = this.$refs.dept.getCheckedKeys();
// // 半选中的部门节点
// let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
// checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
// return checkedKeys;
// },
/** 根据角色ID查询菜单树结构 */
// getRoleMenuTreeselect(roleId) {
// return roleMenuTreeselect(roleId).then(response => {
// this.menuOptions = response.menus;
// return response;
// });
// },
/** 根据角色ID查询部门树结构 */
// getDeptTree(roleId) {
// return deptTreeSelect(roleId).then(response => {
// this.deptOptions = response.depts;
// return response;
// });
// },
// 取消按钮
cancel() {
......@@ -234,144 +139,113 @@ export default {
// 表单重置
reset() {
if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]);
}
this.menuExpand = false,
this.menuNodeAll = false,
this.deptExpand = true,
this.deptNodeAll = false,
this.form = {
roleId: undefined,
roleName: undefined,
roleKey: undefined,
roleSort: 0,
status: "0",
menuIds: [],
deptIds: [],
deptCheckStrictly: true,
remark: undefined
id: undefined,
name: undefined,
sort: undefined,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.roleId)
this.single = selection.length != 1
this.multiple = !selection.length
this.resetForm("form");
this.queryParams.name = "",
this.getList();
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleDataScope":
this.handleDataScope(row);
break;
case "handleAuthUser":
this.handleAuthUser(row);
break;
default:
break;
}
},
// 树权限(展开/折叠)
// handleCheckedTreeExpand(value, type) {
// if (type == 'menu') {
// let treeList = this.menuOptions;
// for (let i = 0; i < treeList.length; i++) {
// this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
// }
// } else if (type == 'dept') {
// let treeList = this.deptOptions;
// for (let i = 0; i < treeList.length; i++) {
// this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
// }
// }
// },
// 树权限(全选/全不选)
// handleCheckedTreeNodeAll(value, type) {
// if (type == 'menu') {
// this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []);
// } else if (type == 'dept') {
// this.$refs.dept.setCheckedNodes(value ? this.deptOptions : []);
// }
// },
// 树权限(父子联动)
// handleCheckedTreeConnect(value, type) {
// if (type == 'menu') {
// this.form.menuCheckStrictly = value ? true : false;
// } else if (type == 'dept') {
// this.form.deptCheckStrictly = value ? true : false;
// handleCommand(command, row) {
// switch (command) {
// case "handleDataScope":
// this.handleDataScope(row);
// break;
// case "handleAuthUser":
// this.handleAuthUser(row);
// break;
// default:
// break;
// }
// },
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加角色";
this.title = "添加分组";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const notificationId = row.notificationId || this.ids
// const roleMenu = this.getRoleMenuTreeselect(roleId);
getUser(notificationId).then(response => {
this.open = true;
const id = row.id || this.ids
getXg(id).then(response => {
this.form = response.data;
console.log(this.form, this.form);
this.open = true;
this.title = "修改角色";
});
this.title = "修改分组";
},
//根据id获取分组数据
groupList() {
this.roleList.forEach(role => {
const notificationId = role.id;
getUser(notificationId).then(response => {
this.idList = response.data;
console.log('this.idList', this.idList);
});
});
},
/** 选择角色权限范围触发 */
dataScopeSelectChange(value) {
if (value !== '2') {
this.$refs.dept.setCheckedKeys([]);
/** 分配用户跳转页面操作 */
handleAuthUser(id) {
console.log(id, 'id');
this.$router.push({
path: "/personnelGrouping/authUser",
query: {
id
}
});
},
/** 分配数据权限操作 */
// handleDataScope(row) {
// this.reset();
// const deptTreeSelect = this.getDeptTree(row.roleId);
// getRole(row.roleId).then(response => {
// this.form = response.data;
// this.openDataScope = true;
// this.$nextTick(() => {
// deptTreeSelect.then(res => {
// this.$refs.dept.setCheckedKeys(res.checkedKeys);
// });
// });
// this.title = "分配数据权限";
// });
// handleAuthUser: function (row) {
// this.selectedRoleId = row.id;
// console.log(this.selectedRoleId, 'roleId');
// this.$router.push({
// path: "/personnelGrouping/authUser",
// query: {
// id: this.selectedRoleId // 使用保存的 roleId 值
// }
// })
// },
/** 分配用户操作 */
handleAuthUser: function (row) {
const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId);
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.multiple = !selection.length
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.roleId != undefined) {
if (this.form.id != undefined) {
// this.form.menuIds = this.getMenuAllCheckedKeys();
updateRole(this.form).then(response => {
updateNotification(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
// this.form.menuIds = this.getMenuAllCheckedKeys();
addRole(this.form).then(response => {
addNotification(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -380,28 +254,31 @@ export default {
}
});
},
/** 提交按钮(数据权限) */
// submitDataScope: function () {
// if (this.form.roleId != undefined) {
// this.form.deptIds = this.getDeptAllCheckedKeys();
// dataScope(this.form).then(response => {
// this.$modal.msgSuccess("修改成功");
// this.openDataScope = false;
// this.getList();
// });
// }
// },
/** 删除按钮操作 */
handleDelete(row) {
const roleIds = row.roleId || this.ids;
this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function () {
return delRole(roleIds);
let idList = ''
if (row) {
let idArr = []
idArr.push(row.id)
idList = idArr.toString()
console.log(idList);
} else {
idList = this.ids.toString()
console.log(idList);
}
this.$modal.confirm('是否确认删除该数据项?').then(() => {
return deleteNotification({ idList });
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
}
};
</script>
\ No newline at end of file
<template>
<!-- 授权用户 -->
<el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
@keyup.enter.native="handleQuery"
/>
</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>
<el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<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="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"
/>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSelectUser">确 定</el-button>
<el-button @click="visible = false">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { unallocatedUserList, authUserSelectAll } from "@/api/system/role";
export default {
dicts: ['sys_normal_disable'],
props: {
// 角色编号
roleId: {
type: [Number, String]
}
},
data() {
return {
// 遮罩层
visible: false,
// 选中数组值
userIds: [],
// 总条数
total: 0,
// 未授权用户数据
userList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
roleId: undefined,
userName: undefined,
phonenumber: undefined
}
};
},
methods: {
// 显示弹框
show() {
this.queryParams.roleId = this.roleId;
this.getList();
this.visible = true;
},
clickRow(row) {
this.$refs.table.toggleRowSelection(row);
},
// 多选框选中数据
handleSelectionChange(selection) {
this.userIds = selection.map(item => item.userId);
},
// 查询表数据
getList() {
unallocatedUserList(this.queryParams).then(res => {
this.userList = res.rows;
this.total = res.total;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 选择授权用户操作 */
handleSelectUser() {
const roleId = this.queryParams.roleId;
const userIds = this.userIds.join(",");
if (userIds == "") {
this.$modal.msgError("请选择要分配的用户");
return;
}
authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => {
this.$modal.msgSuccess(res.msg);
if (res.code === 200) {
this.visible = false;
this.$emit("ok");
}
});
}
}
};
</script>
......@@ -60,7 +60,8 @@
<el-col :span="16">
<el-form-item label="分类编码" prop="classificationCode">
<el-input v-model="postForm.classificationCode"></el-input>
<el-input v-model="postForm.classificationCode"
:rules="[{ required: true, message: '会议名称不能为空' },]"></el-input>
</el-form-item>
</el-col>
<el-col :span="16">
......@@ -158,10 +159,10 @@ export default {
refreshTable: true,
// 校验规则
rules: {
classificationCode: [{ required: true, message: '分类编码不能为空', trigger: 'blur' }],
equipmentType: [{ required: true, message: '设备分类不能为空', trigger: 'blur' }],
orderNum: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
adminId: [{ required: true, message: '管理员不能为空', trigger: 'blur' }],
classificationCode: [{ required: true, message: "分类编码不能为空", trigger: 'blur' }],
equipmentType: [{ required: true, message: "设备分类不能为空", trigger: 'blur' }],
orderNum: [{ required: true, message: "显示排序不能为空", trigger: 'blur' }],
adminId: [{ required: true, message: "管理员不能为空", trigger: 'blur' }],
},
//管理员
adminUser: [],
......@@ -248,7 +249,7 @@ export default {
this.getAdminUserList();
console.log('this.postForm修改', this.postForm);
this.open = true;
this.title = "修改资产信息";
this.title = "修改资产分类";
});
},
......@@ -268,9 +269,18 @@ export default {
});
},
// 确定
submitForm() {
const adminId = this.postForm.adminId
this.postForm.admin = adminId == '' ? '' : this.adminUser.find(item => item.adminId == adminId).admin
submitForm: function () {
const adminId = this.postForm.adminId;
if (adminId === '') {
this.postForm.admin = '';
} else {
const adminUser = this.adminUser.find(item => item.adminId == adminId);
if (adminUser) {
this.postForm.admin = adminUser.admin;
} else {
// 处理找不到匹配的管理员情况,你可以根据实际需要进行处理,例如设置默认值或显示错误提示等
}
}
this.$refs["postForm"].validate(valid => {
if (valid) {
if (this.postForm.id != null) {
......
......@@ -9,8 +9,8 @@
</el-col>
<el-col :span="5">
<el-form-item label="分类编码">
<treeselect v-model="queryParams.classificationCode" :options="classificationOptions"
:normalizer="normalizer" placeholder="请选择分类编码"/>
<treeselect v-model="queryParams.classificationCode" :options="classificationOptions" :normalizer="normalizer"
placeholder="请选择分类编码" />
</el-form-item>
</el-col>
<el-col :span="5">
......@@ -38,8 +38,8 @@
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="showDetail(0)">入库</el-button>
<el-button type="danger" plain icon="el-icon-minus" size="mini"
@click="handleDelete(0)" :disabled="isDisabledBtn">批量出库</el-button>
<el-button type="danger" plain icon="el-icon-minus" size="mini" @click="handleDelete(0)"
:disabled="isDisabledBtn">批量出库</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" icon="el-icon-download" size="mini" @click="upload.open = true">导入</el-button>
......@@ -48,8 +48,8 @@
<el-button type="warning" icon="el-icon-upload2" size="mini" @click="handleExportClass">导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="warning" icon="el-icon-printer" size="mini"
@click="printBarcodes" :disabled="isDisabledBtn">批量打印条码</el-button>
<el-button type="warning" icon="el-icon-printer" size="mini" @click="printBarcodes"
:disabled="isDisabledBtn">批量打印条码</el-button>
</el-col>
</el-row>
<!-- 表单数据 -->
......@@ -90,18 +90,18 @@
<el-table-column align="center" prop="remark" label="备注"></el-table-column>
<el-table-column label="操作" align="center" min-width="220px" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="showDetail(1,scope.row.id)">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-view" @click="showDetail(2,scope.row.id)">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(1,scope.row)">出库</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="showDetail(1, scope.row.id)">编辑</el-button>
<el-button size="mini" type="text" icon="el-icon-view" @click="showDetail(2, scope.row.id)">查看</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(1, scope.row)">出库</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" />
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改对话框 -->
<el-dialog :title="title" :visible.sync="dialogVisible" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-dialog :title="详细信息" :visible.sync="dialogVisible" width="50%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-row :gutter="20">
<el-col :span="24">
<el-form-item v-if="nowOptionType != 0" label="自编码:" prop="encode">
......@@ -112,43 +112,42 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="分类编码:" prop="classificationCode">
<treeselect v-model="form.classificationCode" :options="classificationOptions"
:normalizer="normalizer" @select="selectNode"
placeholder="请选择分类编码" :disabled="nowOptionType==2?true:false"/>
<treeselect v-model="form.classificationCode" :options="classificationOptions" :normalizer="normalizer"
@select="selectNode" placeholder="请选择分类编码" :disabled="nowOptionType == 2 ? true : false" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备名称:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备名称"
:disabled="nowOptionType==2?true:false" clearable></el-input>
<el-input v-model="form.equipmentName" placeholder="请输入设备名称" :disabled="nowOptionType == 2 ? true : false"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="型号:" prop="model">
<el-input v-model="form.model" placeholder="请输入型号"
:disabled="nowOptionType==2?true:false" clearable></el-input>
<el-input v-model="form.model" placeholder="请输入型号" :disabled="nowOptionType == 2 ? true : false"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规格:" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格"
:disabled="nowOptionType==2?true:false" clearable></el-input>
<el-input v-model="form.specification" placeholder="请输入规格" :disabled="nowOptionType == 2 ? true : false"
clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="单位:" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位"
:disabled="nowOptionType==2?true:false" clearable></el-input>
<el-input v-model="form.unit" placeholder="请输入单位" :disabled="nowOptionType == 2 ? true : false"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属类型:" prop="affiliationType">
<el-select v-model="form.affiliationType" clearable placeholder="请选择归属类型"
:disabled="nowOptionType==2?true:false" class="selectWidth">
:disabled="nowOptionType == 2 ? true : false" class="selectWidth">
<el-option v-for="dict in dict.type.affiliation_type" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
......@@ -159,7 +158,7 @@
<el-col :span="12">
<el-form-item label="设备状态:" prop="equipmentState">
<el-select v-model="form.equipmentState" clearable placeholder="请选择设备状态"
:disabled="nowOptionType==2?true:false" class="selectWidth">
:disabled="nowOptionType == 2 ? true : false" class="selectWidth">
<el-option v-for="dict in dict.type.equipment_state" :key="dict.value" :label="dict.label"
:value="dict.value" />
</el-select>
......@@ -168,9 +167,8 @@
<el-col :span="12">
<el-form-item label="是否允许借出:" prop="isAllowLend">
<el-select v-model="form.isAllowLend" clearable placeholder="请选择是否允许借出"
:disabled="nowOptionType==2?true:false" class="selectWidth">
<el-option v-for="dict in dict.type.is_lend" :key="dict.value" :label="dict.label"
:value="dict.value" />
:disabled="nowOptionType == 2 ? true : false" class="selectWidth">
<el-option v-for="dict in dict.type.is_lend" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
......@@ -179,17 +177,15 @@
<el-col :span="12">
<el-form-item label="是否借出:" prop="isLend">
<el-select v-model="form.isLend" clearable placeholder="请选择是否借出"
:disabled="nowOptionType==2?true:false" class="selectWidth">
<el-option v-for="dict in dict.type.is_lend" :key="dict.value" :label="dict.label"
:value="dict.value" />
:disabled="nowOptionType == 2 ? true : false" class="selectWidth">
<el-option v-for="dict in dict.type.is_lend" :key="dict.value" :label="dict.label" :value="dict.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="投产日期:" prop="dateOfProduction">
<el-date-picker v-model="form.dateOfProduction" type="date" placeholder="选择日期"
class="selectWidth" value-format="yyyy-MM-dd"
:disabled="nowOptionType==2?true:false" clearable>
<el-date-picker v-model="form.dateOfProduction" type="date" placeholder="选择日期" class="selectWidth"
value-format="yyyy-MM-dd" :disabled="nowOptionType == 2 ? true : false" clearable>
</el-date-picker>
</el-form-item>
</el-col>
......@@ -197,30 +193,29 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="价格:" prop="price">
<el-input v-model="form.price" placeholder="请输入价格"
:disabled="nowOptionType==2?true:false" clearable></el-input>
<el-input v-model="form.price" placeholder="请输入价格" :disabled="nowOptionType == 2 ? true : false"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="效用年限:" prop="lifeOfUtility">
<el-input v-model="form.lifeOfUtility" placeholder="请输入效用年限(年)"
:disabled="nowOptionType==2?true:false" clearable></el-input>
:disabled="nowOptionType == 2 ? true : false" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="地点:" prop="place">
<el-input v-model="form.place" placeholder="请输入地点"
:disabled="nowOptionType==2?true:false" clearable></el-input>
<el-input v-model="form.place" placeholder="请输入地点" :disabled="nowOptionType == 2 ? true : false"
clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用人:" prop="useName">
<el-select v-model="form.useId" filterable placeholder="请选择使用人"
:disabled="nowOptionType==2?true:false" clearable>
<el-option v-for="(item,index) in userList" :key="index"
:label="item.userName" :value="item.userId">
:disabled="nowOptionType == 2 ? true : false" clearable>
<el-option v-for="(item, index) in userList" :key="index" :label="item.userName" :value="item.userId">
</el-option>
</el-select>
</el-form-item>
......@@ -230,7 +225,7 @@
<el-col :span="24">
<el-form-item label="备注:" prop="remark">
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注"
:disabled="nowOptionType==2?true:false" clearable></el-input>
:disabled="nowOptionType == 2 ? true : false" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -265,12 +260,12 @@
<!-- 打印二维码 弹框部分 -->
<el-dialog title="打印条码预览" :visible.sync="printDialog" width="30%">
<div class="qrCodeList">
<div v-for="(item,index) in chooseList" :key="index">
<div v-for="(item, index) in chooseList" :key="index">
<div class="titlShow">东营市二中</div>
<div class="flexBlock qrCode">
<div class="qrCodeLeft">
<div :id="'qrcode' + index"></div>
<div>{{item.encode}}</div>
<div>{{ item.encode }}</div>
</div>
<div class="qrCodeRight">
<div>{{ item.equipmentName }}:{{ item.model }}</div>
......@@ -287,16 +282,16 @@
<!-- 隐藏二维码页面样式 -->
<div id="printBlock">
<div v-for="(item,index) in printList" :key="index" class="printBody">
<div v-for="(item, index) in printList" :key="index" class="printBody">
<div class="titlePrint">东营市二中</div>
<div class="flexBlock printQrCode">
<div class="printLeft">
<div :id="'print' + index" class="printImg"></div>
<div>{{item.encode}}</div>
<div>{{ item.encode }}</div>
</div>
<div class="printRight">
<div>{{ item.equipmentName }}:{{ item.model }}</div>
<div>地点:{{item.place}}</div>
<div>地点:{{ item.place }}</div>
</div>
</div>
<div style="page-break-after:always"></div>
......@@ -325,7 +320,7 @@ import printJS from "print-js"; // 打印插件
export default {
name: "index",
dicts: ['equipment_state','affiliation_type','is_lend'],
dicts: ['equipment_state', 'affiliation_type', 'is_lend'],
components: { Treeselect },
data() {
return {
......@@ -337,12 +332,12 @@ export default {
queryParams: { // 查询参数
pageNum: 1,
pageSize: 10,
equipmentName:'',
classificationCode:undefined,
equipmentState:'',
affiliationType:'',
equipmentName: '',
classificationCode: undefined,
equipmentState: '',
affiliationType: '',
},
classificationOptions:[], // 分类编码树状结构
classificationOptions: [], // 分类编码树状结构
upload: {
// 是否显示弹出层
open: false,
......@@ -356,27 +351,27 @@ export default {
url: process.env.VUE_APP_BASE_API + "/equipmentLedger/importData"
},
form: {
id:'',
encode:'',
equipmentName:'',
model:'',
specification:'',
classificationCode:undefined,
unit:'',
affiliationType:'',
equipmentState:'',
isAllowLend:'',
isLend:'',
dateOfProduction:'',
price:'',
lifeOfUtility:'',
place:'',
useId:'',
useName:'',
remark:'',
id: '',
encode: '',
equipmentName: '',
model: '',
specification: '',
classificationCode: undefined,
unit: '',
affiliationType: '',
equipmentState: '',
isAllowLend: '',
isLend: '',
dateOfProduction: '',
price: '',
lifeOfUtility: '',
place: '',
useId: '',
useName: '',
remark: '',
},
rules: { // 表单校验
equipmentName:[
equipmentName: [
{ required: true, message: '请输入设备名称', trigger: 'blur' },
],
classificationCode: [
......@@ -385,14 +380,20 @@ export default {
equipmentState: [
{ required: true, message: '请选择设备状态', trigger: 'change' }
],
affiliationType: [
{ required: true, message: '请选择归属类型', trigger: 'change' }
],
isAllowLend: [
{ required: true, message: '请选择是否允许借出', trigger: 'change' }
]
},
nowOptionType:'', // 0 入库 1 编辑 2 查看
electItem:[], // 选中的数据
isDisabledBtn:true,
chooseList:[], //用户选择的table数据
printDialog:false, // 打印二维码预览
printList:[],
userList:[] //使用人列表
nowOptionType: '', // 0 入库 1 编辑 2 查看
electItem: [], // 选中的数据
isDisabledBtn: true,
chooseList: [], //用户选择的table数据
printDialog: false, // 打印二维码预览
printList: [],
userList: [] //使用人列表
};
},
created() {
......@@ -401,9 +402,9 @@ export default {
},
methods: {
//获取分类编码树形下拉框
getClassificationCodeTree(){
getProduct().then(res=>{
if(res.code == 200){
getClassificationCodeTree() {
getProduct().then(res => {
if (res.code == 200) {
this.classificationOptions = this.handleTree(res.rows, "id")
}
})
......@@ -412,8 +413,8 @@ export default {
/** 查询列表 */
getList() {
this.loading = true
getEquipmentLedger({...this.queryParams}).then(res=>{
if(res.code == 200){
getEquipmentLedger({ ...this.queryParams }).then(res => {
if (res.code == 200) {
this.total = res.total
this.deviceData = res.rows
this.loading = false
......@@ -426,10 +427,10 @@ export default {
this.queryParams = {
pageNum: 1,
pageSize: 10,
equipmentName:'',
classificationCode:undefined,
equipmentState:'',
affiliationType:'',
equipmentName: '',
classificationCode: undefined,
equipmentState: '',
affiliationType: '',
}
this.getList()
},
......@@ -447,42 +448,42 @@ export default {
},
//弹出层分类编码选择事件 获取当前分类编码的型号
selectNode(node){
selectNode(node) {
const id = node.classificationCode
getModelByID(id).then(res=>{
if(res.code == 200){
getModelByID(id).then(res => {
if (res.code == 200) {
this.form.model = res.data.model
}
})
},
//0 入库 1 编辑 2 查看
showDetail(type,id){
showDetail(type, id) {
this.form = {
id:'',
encode:'',
equipmentName:'',
model:'',
specification:'',
classificationCode:undefined,
unit:'',
affiliationType:'',
equipmentState:'',
isAllowLend:'',
isLend:'',
dateOfProduction:'',
price:'',
lifeOfUtility:'',
place:'',
useName:'',
useId:'',
remark:'',
id: '',
encode: '',
equipmentName: '',
model: '',
specification: '',
classificationCode: undefined,
unit: '',
affiliationType: '',
equipmentState: '',
isAllowLend: '',
isLend: '',
dateOfProduction: '',
price: '',
lifeOfUtility: '',
place: '',
useName: '',
useId: '',
remark: '',
}
this.nowOptionType = type
this.getSelectUser()
if(type != 0){
getEquipmentLedgerDetailByID(id).then(res=>{
if(res.code == 200){
if (type != 0) {
getEquipmentLedgerDetailByID(id).then(res => {
if (res.code == 200) {
Object.keys(this.form).forEach(key => {
res.data[key] && (this.form[key] = res.data[key])
})
......@@ -493,51 +494,51 @@ export default {
},
//使用人列表数据
getSelectUser(){
getUserList().then(res=>{
if(res.code == 200){
getSelectUser() {
getUserList().then(res => {
if (res.code == 200) {
this.userList = res.rows
}
})
},
//表单提交
submitForm(){
submitForm() {
const useId = this.form.useId
this.form.useName = useId == ''?'':this.userList.find(item=>item.userId == useId).userName
this.form.useName = useId == '' ? '' : this.userList.find(item => item.userId == useId).userName
this.$refs['form'].validate((valid) => {
if (valid) {
if(this.nowOptionType == 0){
if (this.nowOptionType == 0) {
//0 入库 1 编辑 2 查看
const data = {
equipmentName:this.form.equipmentName,
model:this.form.model,
specification:this.form.specification,
classificationCode:this.form.classificationCode,
unit:this.form.unit,
affiliationType:this.form.affiliationType,
equipmentState:this.form.equipmentState,
isAllowLend:this.form.isAllowLend,
isLend:this.form.isLend,
dateOfProduction:this.form.dateOfProduction,
price:this.form.price,
lifeOfUtility:this.form.lifeOfUtility,
place:this.form.place,
useName:this.form.useName,
equipmentName: this.form.equipmentName,
model: this.form.model,
specification: this.form.specification,
classificationCode: this.form.classificationCode,
unit: this.form.unit,
affiliationType: this.form.affiliationType,
equipmentState: this.form.equipmentState,
isAllowLend: this.form.isAllowLend,
isLend: this.form.isLend,
dateOfProduction: this.form.dateOfProduction,
price: this.form.price,
lifeOfUtility: this.form.lifeOfUtility,
place: this.form.place,
useName: this.form.useName,
useId,
remark:this.form.remark,
remark: this.form.remark,
}
addEquipmentLedger(data).then(res=>{
if(res.code == 200){
addEquipmentLedger(data).then(res => {
if (res.code == 200) {
this.$message.success("设备台账入库成功!")
this.dialogVisible = false
this.getList()
}
})
}else if(this.nowOptionType == 1){
} else if (this.nowOptionType == 1) {
//1 编辑
editEquipmentLedger({...this.form}).then(res=>{
if(res.code == 200){
editEquipmentLedger({ ...this.form }).then(res => {
if (res.code == 200) {
this.$message.success("设备台账编辑成功!")
this.dialogVisible = false
this.getList()
......@@ -549,16 +550,16 @@ export default {
},
//出库
handleDelete(type,item){
let idString = type == 0?this.electItem.toString():item.id
let message = type == 0?'是否确认批量出库选中设备?':`是否确认出库${item.model}设备?`
handleDelete(type, item) {
let idString = type == 0 ? this.electItem.toString() : item.id
let message = type == 0 ? '是否确认批量出库选中设备?' : `是否确认出库${item.model}设备?`
this.$confirm(message, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteEquipmentLedger(idString).then(res=>{
if(res.code == 200){
deleteEquipmentLedger(idString).then(res => {
if (res.code == 200) {
this.$message({
type: 'success',
message: '出库成功!'
......@@ -575,7 +576,7 @@ export default {
},
//模版下载
importTemplate(){
importTemplate() {
this.download(
"/equipmentLedger/importTemplate",
{},
......@@ -607,12 +608,12 @@ export default {
},
//导出
handleExportClass(){
handleExportClass() {
const data = {
equipmentName:this.queryParams.equipmentName,
classificationCode:this.queryParams.classificationCode,
equipmentState:this.queryParams.equipmentState,
affiliationType:this.queryParams.affiliationType,
equipmentName: this.queryParams.equipmentName,
classificationCode: this.queryParams.classificationCode,
equipmentState: this.queryParams.equipmentState,
affiliationType: this.queryParams.affiliationType,
}
this.download('/equipmentLedger/export', {
...data,
......@@ -620,13 +621,13 @@ export default {
},
//生成批量打印条码
printBarcodes(){
printBarcodes() {
this.printDialog = true
this.printList = this.chooseList
this.$nextTick(()=>{
this.chooseList.map((item,index) => {
this.$nextTick(() => {
this.chooseList.map((item, index) => {
const dom = document.getElementById(`qrcode${index}`).lastElementChild
if(dom == null){
if (dom == null) {
new QRCode(`qrcode${index}`, {
width: 150,
height: 150,
......@@ -635,9 +636,9 @@ export default {
}
})
this.printList.map((item,index) =>{
this.printList.map((item, index) => {
const domPrint = document.getElementById(`print${index}`).lastElementChild
if(domPrint == null) {
if (domPrint == null) {
new QRCode(`print${index}`, {
width: 60,
height: 60,
......@@ -650,13 +651,13 @@ export default {
},
//打印条码
printCode(){
printCode() {
printJS({
printable: 'printBlock', // 标签元素id
type: 'html',
targetStyles: ['*'],
font_size: '10px',
style:`
style: `
@media print{
@page{
size:auto;
......@@ -675,10 +676,10 @@ export default {
// 多选框选中数据
handleSelectionChange(selection) {
this.chooseList = selection
this.electItem = selection.map(item=>{
this.electItem = selection.map(item => {
return item.id
})
this.isDisabledBtn = selection.length != 0?false:true
this.isDisabledBtn = selection.length != 0 ? false : true
},
},
......@@ -687,16 +688,19 @@ export default {
<style scoped>
::v-deep .el-form-item,
::v-deep .el-select{
::v-deep .el-select {
width: 100%;
}
::v-deep .el-form-item--small .el-form-item__content {
width: 75%;
}
.qrCodeList{
.qrCodeList {
max-height: 500px;
overflow-y: scroll;
}
.qrCode {
width: 300px;
font-size: 14px;
......@@ -704,12 +708,15 @@ export default {
align-items: flex-start;
margin: 0 auto 20px auto;
}
.qrCodeLeft {
text-align: center;
}
.qrCodeRight {
padding:20px 0 20px 15px;
padding: 20px 0 20px 15px;
}
.titlShow {
font-weight: bold;
text-align: center;
......@@ -719,7 +726,7 @@ export default {
#printBlock {
display: none;
margin: 0px!important;
margin: 0px !important;
}
.printLeft {
......@@ -728,24 +735,29 @@ export default {
align-items: center;
text-align: center;
}
.printBody {
width: 250px;
}
.printQrCode {
font-size: 6px;
line-height: 20px;
align-items: center;
padding: 8px;
}
.printRight {
width: 60%;
padding:0 5px;
padding: 0 5px;
}
.titlePrint {
font-size: 8px;
font-weight: bold;
text-align: center;
}
.printImg {
display: block;
}
......
......@@ -92,8 +92,6 @@
<el-table-column label="工号" align="center" prop="teacherCode"/>
<el-table-column label="职务" align="center" prop="teacherPost"/>
<el-table-column label="电话号码" align="center" prop="teacherTel"/>
<el-table-column label="职务" align="center" prop="teacherPost"/>
<el-table-column label="电话号码" align="center" prop="teacherTel"/>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
......
......@@ -124,7 +124,7 @@
<el-table-column key="nativePlace" min-width="100" header-align="center" align="center" prop="nativePlace"
label="籍贯" show-overflow-tooltip></el-table-column>
<el-table-column key="idCard" width="180" align="center" prop="idCard" label="身份证号" />
<el-table-column key="schoolNo" width="100" align="center" prop="schoolNo" label="注册序号" />
<el-table-column key="schoolNo" width="160" align="center" prop="schoolNo" label="注册序号" />
<el-table-column key="stuTelephone" width="130" align="center" prop="stuTelephone" label="联系电话" />
<el-table-column key="birthAddress" width="150" align="center" prop="birthAddress" label="出生地" />
<el-table-column key="postalCode" width="150" align="center" prop="postalCode" label="邮政编码" />
......
<template>
<div class="app-container">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
size="small"
@submit.native.prevent
>
<el-form :model="queryParams" ref="queryForm" :inline="true" size="small" @submit.native.prevent>
<el-form-item label="教师姓名" prop="teacherName">
<el-input v-model="queryParams.teacherName" clearable placeholder="请输入教师姓名"
@keyup.enter.native="handleQuery"></el-input>
</el-form-item>
<el-form-item label="请假类型" prop="type">
<el-select v-model="queryParams.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 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>
......@@ -26,14 +16,8 @@
@keyup.enter.native="handleQuery"></el-input>
</el-form-item>
<el-form-item label="请假时间">
<el-date-picker
v-model="dateRange"
style="width: 300px"
value-format="yyyy-MM-dd"
type="datetimerange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
<el-date-picker v-model="dateRange" style="width: 300px" value-format="yyyy-MM-dd" type="datetimerange"
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
<el-form-item>
......@@ -42,22 +26,20 @@
</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 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="请假开始时间" key="startTime" min-width="150" align="center" prop="startTime">
<template slot-scope="scope">
{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}
<dict-tag style="display: inline-block" :options="dict.type.course_num" :value="scope.row.startSort"/>
<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}') }}
<dict-tag style="display: inline-block" :options="dict.type.course_num" :value="scope.row.endSort"/>
<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">
......@@ -69,33 +51,22 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="60" key="operate">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-search"
@click="handleDetail(scope.row)"
v-hasPermi="['system:teacherOvertime:edit']"
>查看
<el-button size="mini" type="text" icon="el-icon-search" @click="handleDetail(scope.row)"
v-hasPermi="['system:teacherOvertime:edit']">查看
</el-button>
</template>
</el-table-column>
</el-table>
<ExPagination
v-show="total > 0"
:total="total"
:limit.sync="queryParams.pageSize"
:page.sync="queryParams.pageNum"
@pagination="getList"
></ExPagination>
<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="1000px" append-to-body>
<el-form ref="form" :model="form" label-width="120px" style="width: 100%; margin: auto">
<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-row>
<el-col :span="11">
<el-form-item label="教师名称" prop="teacherName">
<el-input :value="form.teacherName" @click.native="openTeacherSelect"
placeholder="请输入教师名称"/>
<el-input :value="form.teacherName" @click.native="openTeacherSelect" placeholder="请输入教师名称" />
</el-form-item>
</el-col>
<el-col :offset="2" :span="11">
......@@ -110,25 +81,45 @@
<el-row>
<el-col :span="11">
<el-form-item label="请假开始时间" prop="startTime">
<el-date-picker
style="width: 100%"
:value="form.startTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm"
placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
<el-row>
<template v-if="form.startSort">
<el-col :span="12">
<el-date-picker :value="form.startTime" type="date" value-format="yyyy-MM-dd"
placeholder="选择开始时间"></el-date-picker>
</el-col>
<el-col :span="12">
<el-input :value="selectDictLabel(dict.type.course_num, form.startSort)"></el-input>
</el-col>
</template>
<template v-else>
<el-col :span="12">
<el-date-picker :value="form.startTime" type="datetime" style="width: 323.34px"
value-format="yyyy-MM-dd HH:mm" placeholder="选择开始时间"></el-date-picker>
</el-col>
</template>
</el-row>
</el-form-item>
</el-col>
<el-col :offset="2" :span="11">
<el-form-item label="请假结束时间" prop="endTime">
<el-date-picker
style="width: 100%"
:value="form.endTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm"
placeholder="选择结束时间">
</el-date-picker>
<el-row>
<template v-if="form.endSort">
<el-col :span="12">
<el-date-picker :value="form.endTime" type="date" value-format="yyyy-MM-dd"
placeholder="选择结束时间"></el-date-picker>
</el-col>
<el-col :span="12">
<el-input :value="selectDictLabel(dict.type.course_num, form.endSort)"></el-input>
</el-col>
</template>
<template v-else>
<el-col :span="12">
<el-date-picker style="width: 323.34px" :value="form.startTime" type="datetime"
value-format="yyyy-MM-dd HH:mm" placeholder="选择开始时间"></el-date-picker>
</el-col>
</template>
</el-row>
</el-form-item>
</el-col>
</el-row>
......@@ -136,10 +127,7 @@
<el-col :span="11">
<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"
<el-option v-for="dict in dict.type.biz_leave_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
......@@ -148,12 +136,7 @@
</el-row>
<el-form-item label="请假原因" prop="reasonForLeave">
<el-input
type="textarea"
resize="none"
:autosize="{minRows: 5}"
:value="form.reasonForLeave"
/>
<el-input type="textarea" resize="none" :autosize="{ minRows: 5 }" :value="form.reasonForLeave" />
</el-form-item>
</el-form>
......@@ -186,11 +169,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>
......@@ -198,7 +177,7 @@ import {
listTeacherLeave,
getTeacherLeave,
} from "@/api/smartSchool/teacherManage/teacherLeaveInfoSum";
import {ExportType} from "@/enums/common";
import { ExportType } from "@/enums/common";
export default {
name: "index",
......@@ -208,6 +187,8 @@ export default {
},
data() {
return {
//禁用
isEdit: false,
// 日期范围
dateRange: [],
teacherSelect: '教师信息',
......@@ -294,13 +275,13 @@ export default {
const ids = this.ids;
// TODO: 这里因为是两种状态: 提交和未提交,所以需要判断状态
const options = [
{type: ExportType.TOTAL, path: '/school/teacherLeave/export', params: {}},
{ 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},
{ type: ExportType.QUERY, path: '/school/teacherLeave/export', params: this.queryParams },
]
callback(options, `老师请假信息${new Date().getTime()}.xlsx`);
},
......@@ -329,7 +310,9 @@ export default {
let teacherId = row.id
getTeacherLeave(teacherId).then(response => {
this.form = response.data;
console.log('object', this.form);
this.dialogTeacherLeave = true;
this.isEdit = true;
this.title = "教师请假信息详情";
});
},
......
......@@ -3,20 +3,10 @@
<el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.userName" placeholder="请输入用户名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
......@@ -24,7 +14,8 @@
</el-form-item>
</el-form>
<el-row>
<el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px">
<el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange"
height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
......@@ -32,7 +23,7 @@
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
......@@ -41,13 +32,8 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSelectUser">确 定</el-button>
......
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