Commit b094023e by zhaopanyu

zpy 8.24 修改

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