Commit 65d01770 by zhaopanyu

zpy 8.21

parent d110de88
import request from "@/utils/request";
//人员分组
//获取分组集合
export function getUserList(data) {
return request({
url: "/notification/list",
method: "get",
data,
});
}
// 根据分类id获取人员信息
export function getUser(notificationId) {
return request({
url: `/notification/getUserList/${notificationId}`,
method: "get",
// params: id
});
}
//新增数据
export function addNotification(data) {
return request({
url: "/notification/add",
method: "post",
data,
});
}
//分组新增人员;
export function addUser(data) {
return request({
url: "/notification/addNotificationUser",
method: "post",
data,
});
}
//删除人员
export function deleteUser() {
return request({
url: "/notification/delectNotificationUser",
method: "put",
data,
});
}
//修改分组信息
export function updateNotification(data) {
return request({
url: "/notification/update",
method: "post",
data,
});
}
// 删除分组
export function deleteNotification(query) {
return request({
url: "/notification/deletes",
method: "delete",
params: query,
});
}
......@@ -151,9 +151,9 @@ export default {
handleUploadSuccess(res, file) {
console.log('res', res);
console.log('file', file);
if (res.code === 200) {
this.uploadList.push({ fjmc: file.response.originalFilename, fjlj: file.response.url });
// this.uploadList.push({ fjmc: file.res.originalFilename, fjlj: file.res.url });
this.uploadList.push({ fjmc: res.originalFilename, fjlj: res.fileName });
this.uploadedSuccessfully();
} else {
this.number--;
......
......@@ -3,143 +3,175 @@ import Layout from '@/layout'
export default [
// 校园简介编辑页面
{
path: '/schoolManage/schoolInfo',
path: "/schoolManage/schoolInfo",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: 'edit',
component: () => import('@/views/smartSchool/schoolManage/introduce/schoolInfo/index.vue'),
name: 'campusInfoEdit',
path: "edit",
component: () =>
import(
"@/views/smartSchool/schoolManage/introduce/schoolInfo/index.vue"
),
name: "campusInfoEdit",
meta: {
title: '校园简介编辑'
}
}
]
title: "校园简介编辑",
},
},
],
},
// 学校通知,接收人列表页面
{
path: '/schoolManage/infoPush',
path: "/schoolManage/infoPush",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: 'receiveList',
component: () => import('@/views/smartSchool/schoolManage/infoPush/components/receiveList.vue'),
name: 'schoolManage_receiveList',
path: "receiveList",
component: () =>
import(
"@/views/smartSchool/schoolManage/schoolNotice/infoPush/components/receiveList.vue"
),
name: "schoolManage_receiveList",
meta: {
title: '接收人列表'
}
}
]
title: "接收人列表",
},
},
],
},
// 校历管理,详细条目查看
{
path: '/schoolManage/calendar',
path: "/schoolManage/calendar",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: 'schoolCalendarDetail',
component: () => import('@/views/smartSchool/schoolManage/calendarManagement/schoolCalendarDetail/index.vue'),
name: 'schoolCalendarDetail',
path: "schoolCalendarDetail",
component: () =>
import(
"@/views/smartSchool/schoolManage/calendarManagement/schoolCalendarDetail/index.vue"
),
name: "schoolCalendarDetail",
meta: {
title: '校历明细'
}
}
]
title: "校历明细",
},
},
],
},
// 值班管理,值班安排明细
{
path: '/schoolManage/dutyManage/dutyArrange',
path: "/schoolManage/dutyManage/dutyArrange",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: '',
component: () => import('@/views/smartSchool/schoolManage/dutyManage/dutyArrange/index.vue'),
name: 'dutyArrange',
path: "",
component: () =>
import(
"@/views/smartSchool/schoolManage/dutyManage/dutyArrange/index.vue"
),
name: "dutyArrange",
meta: {
title: '值班安排明细'
}
}
]
title: "值班安排明细",
},
},
],
},
// 值班管理,值班表
{
path: '/schoolManage/dutyManage/dutySchedule',
path: "/schoolManage/dutyManage/dutySchedule",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: '',
component: () => import('@/views/smartSchool/schoolManage/dutyManage/dutySchedule'),
name: 'dutySchedule',
path: "",
component: () =>
import("@/views/smartSchool/schoolManage/dutyManage/dutySchedule"),
name: "dutySchedule",
meta: {
title: '值班表'
}
}
]
title: "值班表",
},
},
],
},
// 学校消息推送
{
path: '/schoolManage/teacherMessage',
path: "/schoolManage/teacherMessage",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: '',
component: () => import('@/views/home/message/message.vue'),
name: 'teacherMessage',
path: "",
component: () => import("@/views/home/message/message.vue"),
name: "teacherMessage",
meta: {
title: '学校消息推送'
}
}
]
title: "学校消息推送",
},
},
],
},
// 冬夏时令---学校时刻明细
{
path: '/schoolManage',
path: "/schoolManage",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: 'schoolMomentsDetail',
component: () => import('@/views/smartSchool/schoolManage/schoolMoments/components/schoolMomentsDetail'),
name: 'SchoolMomentsDetail',
path: "schoolMomentsDetail",
component: () =>
import(
"@/views/smartSchool/schoolManage/schoolMoments/components/schoolMomentsDetail"
),
name: "SchoolMomentsDetail",
meta: {
title: '学校时刻明细'
}
}
]
title: "学校时刻明细",
},
},
],
},
// 公文流转--公文流转查看
{
path: '/schoolManage',
path: "/schoolManage",
component: Layout,
hidden: true,
permissions: ['childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index'],
permissions: [
"childrenHealth:earlyChildhoodSyndrome:archivesManagement:birthday:index",
],
children: [
{
path: 'documentFlowView',
component: () => import('@/views/smartSchool/schoolManage/documentFlow/documentFlowView.vue'),
name: 'documentFlowView',
path: "documentFlowView",
component: () =>
import(
"@/views/smartSchool/schoolManage/documentFlow/documentFlowView.vue"
),
name: "documentFlowView",
meta: {
title: '公文流转查看'
}
}
]
}
]
title: "公文流转查看",
},
},
],
},
];
......@@ -2,7 +2,7 @@
<div>
<el-card>
<div slot="header" class="clearfix">
<span>个人基本信息</span>
<span>基本信息</span>
</div>
<el-form ref="form" :model="infoForm" :rules="rules" label-width="120px">
<el-row :gutter="20">
......
......@@ -2,18 +2,18 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable/>
<el-input v-model="queryParams.studentName" placeholder="请输入学生姓名" clearable />
</el-form-item>
<el-form-item label="考试类型" prop="examType">
<el-select v-model="queryParams.examType" placeholder="请选择考试类型" clearable>
<el-option v-for="(item,index) in dict.type.exam_type" :key="index"
:label="item.label" :value="item.value"></el-option>
<el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="班级" prop="className">
<el-select v-model="queryParams.classId" placeholder="请选择学生班级" clearable>
<el-option v-for="(item,index) in classList" :key="index"
:label="item.className" :value="item.classId"></el-option>
<el-option v-for="(item, index) in classList" :key="index" :label="item.className"
:value="item.classId"></el-option>
</el-select>
</el-form-item>
<el-form-item>
......@@ -28,58 +28,57 @@
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete"
size="mini" :disabled="!isMultiple" @click="handleDelete(1)">批量删除</el-button>
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="!isMultiple"
@click="handleDelete(1)">批量删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="achievementData" stripe @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center"/>
<el-table-column fixed="left" label="学生姓名" align="center" prop="studentName"/>
<el-table-column fixed="left" label="学号" align="center" prop="studentNumber"/>
<el-table-column fixed="left" label="身份证号" align="center" prop="idCard"/>
<el-table-column fixed="left" label="班级" align="center" prop="className"/>
<el-table-column fixed="left" label="序号" type="index" width="55" align="center" />
<el-table-column fixed="left" label="学生姓名" align="center" prop="studentName" />
<el-table-column fixed="left" label="学号" align="center" prop="studentNumber" width="150" />
<el-table-column fixed="left" label="身份证号" align="center" prop="idCard" width="200" />
<el-table-column fixed="left" label="班级" align="center" prop="className" />
<el-table-column fixed="left" label="考试类型" align="center" prop="examType">
<template slot-scope="{ row }">
<div>{{ selectDictLabel(dict.type.exam_type,row.examType) }}</div>
<div>{{ selectDictLabel(dict.type.exam_type, row.examType) }}</div>
</template>
</el-table-column>
<el-table-column label="总成绩" align="center" prop="totalScore"/>
<el-table-column label="学校排名" align="center" prop="ranking"/>
<el-table-column label="语文" align="center" prop="language"/>
<el-table-column label="学校排名" align="center" prop="ywRanking"/>
<el-table-column label="数学" align="center" prop="math"/>
<el-table-column label="学校排名" align="center" prop="sxRanking"/>
<el-table-column label="英语" align="center" prop="english"/>
<el-table-column label="学校排名" align="center" prop="yyRanking"/>
<el-table-column label="政治" align="center" prop="politics"/>
<el-table-column label="学校排名" align="center" prop="zzRanking"/>
<el-table-column label="地理" align="center" prop="geography"/>
<el-table-column label="学校排名" align="center" prop="dlRanking"/>
<el-table-column label="历史" align="center" prop="history"/>
<el-table-column label="学校排名" align="center" prop="lsRanking"/>
<el-table-column label="物理" align="center" prop="physics"/>
<el-table-column label="学校排名" align="center" prop="wlRanking"/>
<el-table-column label="化学" align="center" prop="chemistry"/>
<el-table-column label="学校排名" align="center" prop="hxRanking"/>
<el-table-column label="生物" align="center" prop="biology"/>
<el-table-column label="学校排名" align="center" prop="swRanking"/>
<el-table-column label="总成绩" align="center" prop="totalScore" />
<el-table-column label="学校排名" align="center" prop="ranking" />
<el-table-column label="语文" align="center" prop="language" />
<el-table-column label="学校排名" align="center" prop="ywRanking" />
<el-table-column label="数学" align="center" prop="math" />
<el-table-column label="学校排名" align="center" prop="sxRanking" />
<el-table-column label="英语" align="center" prop="english" />
<el-table-column label="学校排名" align="center" prop="yyRanking" />
<el-table-column label="政治" align="center" prop="politics" />
<el-table-column label="学校排名" align="center" prop="zzRanking" />
<el-table-column label="地理" align="center" prop="geography" />
<el-table-column label="学校排名" align="center" prop="dlRanking" />
<el-table-column label="历史" align="center" prop="history" />
<el-table-column label="学校排名" align="center" prop="lsRanking" />
<el-table-column label="物理" align="center" prop="physics" />
<el-table-column label="学校排名" align="center" prop="wlRanking" />
<el-table-column label="化学" align="center" prop="chemistry" />
<el-table-column label="学校排名" align="center" prop="hxRanking" />
<el-table-column label="生物" align="center" prop="biology" />
<el-table-column label="学校排名" align="center" prop="swRanking" />
<el-table-column fixed="right" label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleDelete(0,row.id)">删除</el-button>
<el-button type="text" size="small" @click="handleOption(1,row)">编辑</el-button>
<el-button type="text" size="small" @click="handleDelete(0, row.id)">删除</el-button>
<el-button type="text" size="small" @click="handleOption(1, row)">编辑</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 导入弹出框 -->
<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"
:data="{ 'curriculaId':queryParams.curriculaId }"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess"
:data="{ 'curriculaId': queryParams.curriculaId }" :action="upload.url + '?updateSupport=' + upload.updateSupport"
: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>
......@@ -97,19 +96,19 @@
<!-- 新增编辑弹出框 -->
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="achievementForm" :rules="achievementRules" ref="achievementForm"
label-width="80px" label-position="left">
<el-form :model="achievementForm" :rules="achievementRules" ref="achievementForm" label-width="80px"
label-position="left">
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="身份证号" prop="idCard">
<el-input v-model="achievementForm.idCard" placeholder="请输入身份证号"
@change="searchStudentInfo" :disabled="nowType==1?true:false"></el-input>
<el-input v-model="achievementForm.idCard" placeholder="请输入身份证号" @change="searchStudentInfo"
:disabled="nowType == 1 ? true : false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学生姓名" prop="studentName">
<el-input v-model="achievementForm.studentName" placeholder="请输入学生姓名"
:disabled="nowType==1?true:false"></el-input>
:disabled="nowType == 1 ? true : false"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -117,23 +116,23 @@
<el-col :span="12">
<el-form-item label="班级" prop="className">
<el-input v-model="achievementForm.className" placeholder="请输入班级"
:disabled="nowType==1?true:false"></el-input>
:disabled="nowType == 1 ? true : false"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="学号" prop="studentNumber">
<el-input v-model="achievementForm.studentNumber" placeholder="请输入学号"
:disabled="nowType==1?true:false"></el-input>
:disabled="nowType == 1 ? true : false"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="考试类型" prop="examType">
<el-select v-model="achievementForm.examType" filterable placeholder="请选择考试类型"
class="selectWidth" :disabled="nowType==1?true:false">
<el-option v-for="(item,index) in dict.type.exam_type" :key="index"
:label="item.label" :value="item.value"></el-option>
<el-select v-model="achievementForm.examType" filterable placeholder="请选择考试类型" class="selectWidth"
:disabled="nowType == 1 ? true : false">
<el-option v-for="(item, index) in dict.type.exam_type" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
......@@ -141,55 +140,55 @@
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="语文" prop="language">
<el-input v-model="achievementForm.language" placeholder="请输入语文"></el-input>
<el-input v-model="achievementForm.language" type="number" placeholder="请输入语文"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="数学" prop="math">
<el-input v-model="achievementForm.math" placeholder="请输入数学"></el-input>
<el-input v-model="achievementForm.math" type="number" placeholder="请输入数学"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="英语" prop="english">
<el-input v-model="achievementForm.english" placeholder="请输入英语"></el-input>
<el-input v-model="achievementForm.english" type="number" placeholder="请输入英语"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="历史" prop="history">
<el-input v-model="achievementForm.history" placeholder="请输入历史"></el-input>
<el-input v-model="achievementForm.history" type="number" placeholder="请输入历史"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="地理" prop="geography">
<el-input v-model="achievementForm.geography" placeholder="请输入地理"></el-input>
<el-input v-model="achievementForm.geography" type="number" placeholder="请输入地理"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="政治" prop="politics">
<el-input v-model="achievementForm.politics" placeholder="请输入政治"></el-input>
<el-input v-model="achievementForm.politics" type="number" placeholder="请输入政治"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="生物" prop="biology">
<el-input v-model="achievementForm.biology" placeholder="请输入生物"></el-input>
<el-input v-model="achievementForm.biology" type="number" placeholder="请输入生物"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物理" prop="physics">
<el-input v-model="achievementForm.physics" placeholder="请输入物理"></el-input>
<el-input v-model="achievementForm.physics" type="number" placeholder="请输入物理"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="化学" prop="chemistry">
<el-input v-model="achievementForm.chemistry" placeholder="请输入化学"></el-input>
<el-input v-model="achievementForm.chemistry" type="number" placeholder="请输入化学"></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -214,21 +213,21 @@ import { classList } from "../../../../../api/smartSchool/gradeWork/courseSelect
export default {
dicts: ['exam_type'],
data(){
data() {
return {
queryParams:{
curriculaId:'',
studentName:'',
examType:'',
classId:'',
queryParams: {
curriculaId: '',
studentName: '',
examType: '',
classId: '',
pageNum: 1,
pageSize: 10,
},
loading:false,
total:0,
isMultiple:false, // table是否有选择
achievementData:[], // table数据
dialogVisible:false, // 新增编辑弹出框
loading: false,
total: 0,
isMultiple: false, // table是否有选择
achievementData: [], // table数据
dialogVisible: false, // 新增编辑弹出框
upload: {
// 是否显示弹出层(用户导入)
open: false,
......@@ -244,95 +243,95 @@ export default {
url:
process.env.VUE_APP_BASE_API + "/curricula/studentScore/importData",
},
achievementForm:{ // 新增、编辑成绩数据
id:'',
studentId:'',
classId:'',
studentName:'',
studentNumber:'',
idCard:'',
className:'',
examType:'',
language:'',
math:'',
english:'',
politics:'',
geography:'',
history:'',
physics:'',
chemistry:'',
biology:'',
achievementForm: { // 新增、编辑成绩数据
id: '',
studentId: '',
classId: '',
studentName: '',
studentNumber: '',
idCard: '',
className: '',
examType: '',
language: '',
math: '',
english: '',
politics: '',
geography: '',
history: '',
physics: '',
chemistry: '',
biology: '',
},
achievementRules:{
achievementRules: {
idCard: [
{ required: true, message: '请输入身份证号', trigger: 'blur' }
],
studentName: [
{ required: true, message: '请输入学生姓名', trigger: 'blur' }
],
className: [
{ required: true, message: '请输入学生班级', trigger: 'blur' }
],
studentNumber: [
{ required: true, message: '请输入学生学号', trigger: 'blur' }
],
// studentName: [
// { required: true, message: '请输入学生姓名', trigger: 'blur' }
// ],
// className: [
// { required: true, message: '请输入学生班级', trigger: 'blur' }
// ],
// studentNumber: [
// { required: true, message: '请输入学生学号', trigger: 'blur' }
// ],
examType: [
{ required: true, message: '请选择考试类型', trigger: 'change' }
],
language: [
{ required: true, message: '请输入语文成绩', trigger: 'blur' }
],
math: [
{ required: true, message: '请输入数学成绩', trigger: 'blur' }
],
english: [
{ required: true, message: '请输入英语成绩', trigger: 'blur' }
],
politics: [
{ required: true, message: '请输入政治成绩', trigger: 'blur' }
],
geography: [
{ required: true, message: '请输入地理成绩', trigger: 'blur' }
],
history: [
{ required: true, message: '请输入历史成绩', trigger: 'blur' }
],
physics: [
{ required: true, message: '请输入物理成绩', trigger: 'blur' }
],
chemistry: [
{ required: true, message: '请输入化学成绩', trigger: 'blur' }
],
biology: [
{ required: true, message: '请输入生物成绩', trigger: 'blur' }
],
// language: [
// { required: true, message: '请输入语文成绩', trigger: 'blur' }
// ],
// math: [
// { required: true, message: '请输入数学成绩', trigger: 'blur' }
// ],
// english: [
// { required: true, message: '请输入英语成绩', trigger: 'blur' }
// ],
// politics: [
// { required: true, message: '请输入政治成绩', trigger: 'blur' }
// ],
// geography: [
// { required: true, message: '请输入地理成绩', trigger: 'blur' }
// ],
// history: [
// { required: true, message: '请输入历史成绩', trigger: 'blur' }
// ],
// physics: [
// { required: true, message: '请输入物理成绩', trigger: 'blur' }
// ],
// chemistry: [
// { required: true, message: '请输入化学成绩', trigger: 'blur' }
// ],
// biology: [
// { required: true, message: '请输入生物成绩', trigger: 'blur' }
// ],
},
classList:[], // 班级list
nowType:0, //当前弹框类型 1编辑 0新增
deleteArr:[] //删除数据ID数组
classList: [], // 班级list
nowType: 0, //当前弹框类型 1编辑 0新增
deleteArr: [] //删除数据ID数组
}
},
mounted() {
this.getClassList()
this.getList()
},
methods:{
methods: {
//获取班级下拉框数据
getClassList(){
getClassList() {
let grade = this.$route.query.grade
classList(grade).then(res=>{
if(res.code == 200){
classList(grade).then(res => {
if (res.code == 200) {
this.classList = res.data
}
})
},
//获取数据信息
getList(){
getList() {
this.loading = true
this.queryParams.curriculaId = this.$route.query.id
performanceList({...this.queryParams}).then(res=>{
if(res.code == 200){
performanceList({ ...this.queryParams }).then(res => {
if (res.code == 200) {
this.achievementData = res.rows
this.total = res.total
this.loading = false
......@@ -341,12 +340,12 @@ export default {
},
//重置
resetQuery(){
resetQuery() {
this.queryParams = {
curriculaId:'',
studentName:'',
examType:'',
classId:'',
curriculaId: '',
studentName: '',
examType: '',
classId: '',
pageNum: 1,
pageSize: 10,
}
......@@ -354,29 +353,29 @@ export default {
},
//新增、编辑成绩
handleOption(type,item){
handleOption(type, item) {
this.nowType = type
if(type == 0){
if (type == 0) {
//新增
this.achievementForm = {
studentId:'',
classId:'',
studentName:'',
studentNumber:'',
idCard:'',
className:'',
examType:'',
language:'',
math:'',
english:'',
politics:'',
geography:'',
history:'',
physics:'',
chemistry:'',
biology:'',
studentId: '',
classId: '',
studentName: '',
studentNumber: '',
idCard: '',
className: '',
examType: '',
language: '',
math: '',
english: '',
politics: '',
geography: '',
history: '',
physics: '',
chemistry: '',
biology: '',
}
}else {
} else {
//编辑
Object.keys(this.achievementForm).forEach(key => {
item[key] && (this.achievementForm[key] = item[key])
......@@ -386,61 +385,61 @@ export default {
},
//表单提交数据
submitForm(){
submitForm() {
let data = {}
this.$refs['achievementForm'].validate((valid) => {
if (valid) {
if(this.nowType == 0) {
if (this.nowType == 0) {
data = {
studentId:this.achievementForm.studentId,
curriculaId:this.$route.query.id,
classId:this.achievementForm.classId,
examType:this.achievementForm.examType,
language:this.achievementForm.language,
math:this.achievementForm.math,
english:this.achievementForm.english,
politics:this.achievementForm.politics,
geography:this.achievementForm.geography,
history:this.achievementForm.history,
physics:this.achievementForm.physics,
chemistry:this.achievementForm.chemistry,
biology:this.achievementForm.biology,
studentId: this.achievementForm.studentId,
curriculaId: this.$route.query.id,
classId: this.achievementForm.classId,
examType: this.achievementForm.examType,
language: this.achievementForm.language,
math: this.achievementForm.math,
english: this.achievementForm.english,
politics: this.achievementForm.politics,
geography: this.achievementForm.geography,
history: this.achievementForm.history,
physics: this.achievementForm.physics,
chemistry: this.achievementForm.chemistry,
biology: this.achievementForm.biology,
}
//新增
addPerformance(data).then(res=>{
if(res.code == 200){
addPerformance(data).then(res => {
if (res.code == 200) {
this.$message.success("成绩添加成功!");
setTimeout(()=>{
setTimeout(() => {
this.dialogVisible = false;
this.getList();
},2000)
}, 2000)
}
})
}else {
} else {
//编辑
data = {
id:this.achievementForm.id,
studentId:this.achievementForm.studentId,
curriculaId:this.$route.query.id,
classId:this.achievementForm.classId,
examType:this.achievementForm.examType,
language:this.achievementForm.language,
math:this.achievementForm.math,
english:this.achievementForm.english,
politics:this.achievementForm.politics,
geography:this.achievementForm.geography,
history:this.achievementForm.history,
physics:this.achievementForm.physics,
chemistry:this.achievementForm.chemistry,
biology:this.achievementForm.biology,
id: this.achievementForm.id,
studentId: this.achievementForm.studentId,
curriculaId: this.$route.query.id,
classId: this.achievementForm.classId,
examType: this.achievementForm.examType,
language: this.achievementForm.language,
math: this.achievementForm.math,
english: this.achievementForm.english,
politics: this.achievementForm.politics,
geography: this.achievementForm.geography,
history: this.achievementForm.history,
physics: this.achievementForm.physics,
chemistry: this.achievementForm.chemistry,
biology: this.achievementForm.biology,
}
editPerformance(data).then(res=>{
if(res.code == 200){
editPerformance(data).then(res => {
if (res.code == 200) {
this.$message.success("成绩编辑成功!");
setTimeout(()=>{
setTimeout(() => {
this.dialogVisible = false;
this.getList();
},2000)
}, 2000)
}
})
}
......@@ -449,10 +448,10 @@ export default {
},
//根据身份证号获取学生信息
searchStudentInfo(){
searchStudentInfo() {
const idCard = this.achievementForm.idCard
getInfoByIdCard(idCard).then(res=>{
if(res.code == 200){
getInfoByIdCard(idCard).then(res => {
if (res.code == 200) {
Object.keys(this.achievementForm).forEach(key => {
res.data[key] && (this.achievementForm[key] = res.data[key])
})
......@@ -461,22 +460,22 @@ export default {
},
//批量删除、删除
handleDelete(type,id){
let infoMessaage = type == 1?'此操作将永久删除选中数据, 是否继续?':'此操作将永久删除该数据, 是否继续?'
handleDelete(type, id) {
let infoMessaage = type == 1 ? '此操作将永久删除选中数据, 是否继续?' : '此操作将永久删除该数据, 是否继续?'
this.$confirm(infoMessaage, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if(id){
if (id) {
this.deleteArr.push(id)
}
let deleteStr = this.deleteArr.toString()
deletePerformance(deleteStr).then(res=>{
if(res.code == 200){
deletePerformance(deleteStr).then(res => {
if (res.code == 200) {
this.$message.success('删除成功!');
this.getList()
}else {
} else {
this.$message.error("删除失败!")
this.getList()
}
......@@ -488,19 +487,19 @@ export default {
//table点击事件
handleSelectionChange(val) {
this.isMultiple = val.length == 0?false:true
this.deleteArr = val.map(item=>{
this.isMultiple = val.length == 0 ? false : true
this.deleteArr = val.map(item => {
return item.id
})
},
//导出列表数据
exportRecord(){
exportRecord() {
let data = {
curriculaId:this.queryParams.curriculaId,
studentName:this.queryParams.studentName,
examType:this.queryParams.examType,
classId:this.queryParams.classId,
curriculaId: this.queryParams.curriculaId,
studentName: this.queryParams.studentName,
examType: this.queryParams.examType,
classId: this.queryParams.classId,
}
this.download(
"curricula/studentScore/export",
......@@ -514,7 +513,7 @@ export default {
//下载模板
downloadTemplate() {
this.download(
"/curricula/studentScore/importTemplate",{},
"/curricula/studentScore/importTemplate", {},
`成绩管理数据导入_template_${new Date().getTime()}.xlsx`
);
},
......
......@@ -2,7 +2,7 @@
<div>
<el-card>
<div slot="header" class="clearfix">
<span>个人基本信息</span>
<span>基本信息</span>
</div>
<el-form ref="form" :model="infoForm" :rules="rules" label-width="120px">
<el-row :gutter="20">
......
......@@ -38,7 +38,6 @@
<script>
import { listHistory } from "@/api/progress";
export default {
name: "Progress",
props: {
......
......@@ -57,7 +57,7 @@ export default {
return {
postForm: {
comment: '',
pass: "true",
pass: "",
},
// 意见模板
templateComment: '',
......@@ -75,7 +75,8 @@ export default {
methods: {
/** 处理意见模板选中 */
handleSelectChange(value) {
this.postForm.comment = value;
this.postForm.comment = this.selectDictLabel(this.dict.type.template_comments, value);
console.log('this.postForm.comment', this.postForm.comment);
},
/** 【提交】按钮 */
......
......@@ -4,8 +4,7 @@
<div slot="header" class="clearfix">
<span>科室预算审批基本信息</span>
</div>
<el-form ref="form" :model="infoForm" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-form ref="form" :model="infoForm" :rules="rules" label-width="90px">
<el-col :span="12">
<el-form-item label="科室">
<el-input :value="infoForm.deptName"></el-input>
......@@ -22,9 +21,45 @@
<el-input :value="infoForm.tbTime"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="height:10px"></div>
<el-table border :data="projectDetail" style="width: 100%">
<el-table-column prop="projectName" label="项目名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.projectName }}</span>
</template>
</el-table-column>
<el-table-column prop="content" label="申报政策依据、理由及主要内容" align="center">
<template slot-scope="{ row }">
<span>{{ row.content }}</span>
</template>
</el-table-column>
<el-table-column prop="projectExpenditures" label="项目支出明细" align="center">
<template slot-scope="{ row }">
<span>{{ row.projectExpenditures }}</span>
</template>
</el-table-column>
<el-table-column prop="isGovernmentPurchase" label="是否政府采购" align="center">
<template slot-scope="{ row }">
<span v-if="row.isGovernmentPurchase === '1' "></span>
<span v-else-if="row.isGovernmentPurchase === '0'"></span>
</template>
</el-table-column>
<el-table-column prop="applyMoney" label="申请金额" align="center">
<template slot-scope="{ row }">
<span>{{ row.applyMoney }}</span>
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" align="center">
<template slot-scope="{ row }">
<span>{{ row.remark }}</span>
</template>
</el-table-column>
</el-table>
</el-card>
<TaskResolve v-if="!$attrs.readOnly" :taskId="this.$attrs.taskId" :instanceId="instanceId" :id="id"
v-on="this.$listeners"></TaskResolve>
......@@ -77,6 +112,7 @@ export default {
limitEndTime,
limitStartTime,
infoForm: {},
projectDetail: [],
rules: {
realityStartTime: [
{ required: true, message: '实际开始时间不能为空', trigger: 'change' }
......@@ -96,6 +132,7 @@ export default {
getDetailInfo() {
queryDepart(this.id).then(res => {
this.infoForm = res.data
this.projectDetail = res.data.schoolDepartmentBudgetProjectmxList
})
},
......@@ -118,4 +155,12 @@ export default {
}
</script>
<style scoped></style>
<style scoped>
.long-label .el-form-item__label {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 200px;
/* 根据需要调整最大宽度 */
}
</style>
......@@ -6,24 +6,20 @@
</div>
<div>
<el-form ref="postForm" :model="postForm" :rules="rules">
<el-form-item label="处理意见" label-width="80px" required>
<el-select :disabled="$attrs.readOnly" placeholder="常用审批语" v-model="templateComment"
@change="handleSelectChange">
<el-option v-for="dict in dict.type.template_comments" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="comment">
<el-input type="textarea" :rows="5" :readonly="$attrs.readOnly"
v-model="postForm.comment"></el-input>
</el-form-item>
<el-form-item label="处理结果" label-width="80px" prop="pass">
<el-select v-model="postForm.pass" :disabled="$attrs.readOnly">
<el-select v-model="postForm.pass" :disabled="$attrs.readOnly"
@change="handleSelectChange(postForm.pass)">
<el-option v-for="dict in dict.type.apply_results" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
<el-form-item prop="comment" label="处理意见" label-width="80px" required>
<el-input type="textarea" :rows="5" :readonly="$attrs.readOnly"
v-model="postForm.comment"></el-input>
</el-form-item>
</el-form>
<el-row v-if="!$attrs.readOnly" type="flex" justify="center" class="mb20">
<el-button type="primary" size="small" @click="handleSubmit">确认提交
......@@ -54,7 +50,7 @@ export default {
return {
postForm: {
comment: '',
pass: "1",
pass: "",
},
// 意见模板
templateComment: '',
......@@ -71,19 +67,27 @@ export default {
},
methods: {
/** 处理意见模板选中 */
// handleSelectChange(value) {
// this.postForm.comment = this.selectDictLabel(this.dict.type.template_comments, value);
// console.log(value);
// console.log('this.postForm.comment', this.postForm.comment);
// },
handleSelectChange(value) {
this.postForm.comment = value;
if (value === "true") {
this.postForm.comment = "审核无误,同意该申请";
} else if (value === "false") {
this.postForm.comment = "不同意该申请";
}
},
/** 【提交】按钮 */
handleSubmit() {
this.$refs.postForm.validate(valid => {
// if (this.postForm.pass) {
// this.postForm.pass = "通过"
// } else {
// this.postForm.pass = "不通过"
// }
if (valid) {
this.$modal.loading('正在提交数据,请稍等...');
complete({
......@@ -92,7 +96,10 @@ export default {
comment: this.postForm.comment,
pass: this.postForm.pass
}).then(response => {
console.log(complete);
console.log('response', response);
this.$modal.closeLoading();
console.log('提交成功');
this.$message.success('提交成功');
this.$emit('submit');
}).catch(error => {
......@@ -101,6 +108,7 @@ export default {
}
})
}
}
}
</script>
......
......@@ -9,12 +9,8 @@
<el-form-item label="处理意见" label-width="80px" required>
<el-select :disabled="$attrs.readOnly" placeholder="常用审批语" v-model="templateComment"
@change="handleSelectChange">
<el-option
v-for="dict in dict.type.template_comments"
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
<el-option v-for="dict in dict.type.template_comments" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
......@@ -23,12 +19,8 @@
</el-form-item>
<el-form-item label="处理结果" label-width="80px" prop="pass">
<el-select v-model="postForm.pass" :disabled="$attrs.readOnly">
<el-option
v-for="dict in dict.type.apply_results"
:key="dict.value"
:value="dict.value"
:label="dict.label"
></el-option>
<el-option v-for="dict in dict.type.apply_results" :key="dict.value" :value="dict.value"
:label="dict.label"></el-option>
</el-select>
</el-form-item>
</el-form>
......@@ -42,7 +34,7 @@
</template>
<script>
import {complete} from "@/api/smartSchool/index/purchaseApproval.js";
import { complete } from "@/api/smartSchool/index/purchaseApproval.js";
export default {
name: "TaskResolve",
......@@ -61,17 +53,17 @@ export default {
return {
postForm: {
comment: '',
pass: "1",
pass: "true",
},
// 意见模板
templateComment: '',
circleUrl: "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png",
rules: {
comment: [
{required: true, message: '处理意见不能为空', trigger: 'change'}
{ required: true, message: '处理意见不能为空', trigger: 'change' }
],
pass: [
{required: true, message: '处理结果不能为空', trigger: 'change'}
{ required: true, message: '处理结果不能为空', trigger: 'change' }
]
}
}
......@@ -79,7 +71,7 @@ export default {
methods: {
/** 处理意见模板选中 */
handleSelectChange(value) {
this.postForm.comment = value;
this.postForm.comment = this.selectDictLabel(this.dict.type.template_comments, value);
},
/** 【提交】按钮 */
......
......@@ -2,7 +2,7 @@
<div>
<el-card>
<div slot="header" class="clearfix">
<span>个人基本信息</span>
<span>基本信息</span>
</div>
<el-form ref="form" :model="infoForm" :rules="rules" label-width="120px">
<el-row :gutter="20">
......
......@@ -2,7 +2,7 @@
<div>
<el-card>
<div slot="header" class="clearfix">
<span>个人基本信息</span>
<span>基本信息</span>
</div>
<el-form ref="form" :model="infoForm" :rules="rules" label-width="120px">
<el-row :gutter="20">
......
......@@ -147,6 +147,7 @@ export default {
this.openPur = true;
getPurchaseDetail(row.id).then((response) => {
this.form = response.data;
console.log('this.form', this.form);
}).catch(() => {
})
},
......
......@@ -531,6 +531,7 @@ export default {
this.open = false;
this.openLook = false;
this.openfk = false;
this.openpd = false;
// this.resetQuery();
this.reset();
},
......
......@@ -64,59 +64,70 @@
<ExPagination v-show="total > 0" :total="total" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNum"
@pagination="getList"></ExPagination>
<!-- 新增或修改采购对话框 -->
<el-dialog :title="title" :visible.sync="openForPur" width="1000px" @close="refreshValidate">
<el-dialog :title="title" :visible.sync="openForPur" width="55%" @close="refreshValidate">
<!-- <div> -->
<el-form ref="formPur" :model="formPur" :disabled="formPurDisable" :rules="rules" label-width="120px" inline>
<el-row :gutter="10">
<el-col :span="24">
<el-row>
<el-col :span="22">
<el-form-item label="标题" prop="purchaseName">
<el-input v-model="formPur.purchaseName" placeholder="请输入采购申请标题" clearable style="width:576px"></el-input>
<el-input v-model="formPur.purchaseName" placeholder="请输入采购申请标题" clearable style="width: 615px"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="申请部门" prop="deptId">
<Treeselect :disabled="formPurDisable" v-model="formPur.deptId" @select="deptIdAndName" :options="deptOptions"
:show-count="true" placeholder="请选择归属部门" :defaultExpandLevel=1 style="width:224px" />
<Treeselect :disabled="formPurDisable" v-model="formPur.deptId" @select="deptIdAndName"
:options="deptOptions" :show-count="true" placeholder="请选择归属部门" :defaultExpandLevel=1
style="width: 193px" />
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="期望日期" prop="expectedDate">
<el-date-picker v-model="formPur.expectedDate" placeholder="请选择期望日期" clearable
value-format="yyyy-MM-dd"></el-date-picker>
<el-date-picker v-model="formPur.expectedDate" placeholder="请选择期望日期" clearable value-format="yyyy-MM-dd"
style="width: 193px"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="批复项目" prop="budgetId">
<!-- <el-input v-model="formPur.budgetName" clearable></el-input> -->
<el-select v-model="formPur.budgetId" @change="getBudgetName" style="width: 100%" placeholder="请选择批复项目">
<el-option v-for="item in budgetList" :key="item.id" :label="item.budgetName" :value="item.id">
</el-option>
<el-select v-model="formPur.budgetId" @change="getBudgetName" placeholder="请选择批复项目" style="width: 100%">
<el-option v-for="item in budgetList" :key="item.id" :label="item.budgetName"
:value="item.id"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="采购金额(元)" prop="purchaseMoney">
<el-input :value="purchaseMoney" readonly clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<el-form-item label="分管处室领导" prop="handUserName1">
<el-input placeholder="请选择分管领导" v-model="formPur.handUserName1" clearable
@click.native="selectBoss1(1)"></el-input>
<!-- <el-select v-model="formPur.handUserName1" @change="leaderfgc" style="width: 100%"-->
<!-- >-->
<!-- <el-option v-for="item in schoolLeaderList" :key="item.id" :label="item.teacherName"-->
<!-- :value="{ handUserName1: item.teacherName, handUserId1: item.id }">-->
<!-- </el-option>-->
<!-- </el-select>-->
</el-form-item>
</el-col>
<el-col :span="10">
<el-form-item label="财务领导" prop="handUserName2">
<el-input placeholder="请选择财务领导" v-model="formPur.handUserName2" clearable
@click.native="selectBoss1(2)"></el-input>
<!-- <el-select v-model="formPur.handUserName2" @change="leadercw" style="width: 100%"-->
<!-- >-->
<!-- <el-option v-for="item in schoolLeaderList" :key="item.id" :label="item.teacherName"-->
<!-- :value="{ handUserName2: item.teacherName, handUserId2: item.id }">-->
<!-- </el-option>-->
<!-- </el-select>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="22">
<el-form-item label="采购说明">
<el-input type="textarea" v-model="formPur.remark" placeholder="请输入采购说明" clearable
style="width:578px"></el-input>
style="width: 615px"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row :gutter="10">
<el-col :span="1.5">
<el-button v-if="isEdit" type="primary" size="mini" :disabled="add" @click="addRow">增加</el-button>
......@@ -126,19 +137,18 @@
</el-col>
</el-row>
<div style="height:10px"></div>
<el-table :data="projectDetail" v-loading="loading" style="width: 100%"
@selection-change="handleSelectionChangeDetail">
<el-table-column type="selection" width="50" align="center" />
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column prop="assetsTypeName" label="资产分类" align="center">
<el-table-column type="index" label="序号" width="48"></el-table-column>
<el-table-column prop="assetsTypeName" label="资产分类" align="center" width="120">
<template slot-scope="scope">
<span v-show="!isEdit">{{ scope.row.assetsTypeName }}</span>
<el-input v-show="isEdit" v-model="scope.row.assetsTypeName"
@click.native="selectAssetsType(scope.$index)"></el-input>
</template>
</el-table-column>
<el-table-column prop="assetsName" label="资产名称" align="center">
<el-table-column prop="assetsName" label="资产名称" align="center" width="180px">
<template slot-scope="{ row }">
<span v-show="!isEdit">{{ row.assetsName }}</span>
<el-input v-show="isEdit" v-model="row.assetsName"></el-input>
......@@ -150,25 +160,25 @@
<el-input v-show="isEdit" v-model="row.assetsSpecs"></el-input>
</template>
</el-table-column>
<el-table-column prop="assetsUnit" label="单位" align="center">
<el-table-column prop="assetsUnit" label="单位" align="center" width="100px">
<template slot-scope="{ row }">
<span v-show="!isEdit">{{ row.assetsUnit }}</span>
<el-input v-show="isEdit" v-model="row.assetsUnit"></el-input>
</template>
</el-table-column>
<el-table-column prop="assetsPrice" label="单价-元" align="center" width="150px">
<el-table-column prop="assetsPrice" label="单价-元" align="center" width="120px">
<template slot-scope="{ row }">
<span v-show="!isEdit">{{ row.assetsPrice }}</span>
<el-input v-show="isEdit" v-model="row.assetsPrice" type="number"></el-input>
</template>
</el-table-column>
<el-table-column prop="assetsNumbers" label="数量" align="center">
<el-table-column prop="assetsNumbers" label="数量" align="center" width="110px">
<template slot-scope="{ row }">
<span v-show="!isEdit">{{ row.assetsNumbers }}</span>
<el-input v-show="isEdit" v-model="row.assetsNumbers" ></el-input>
<el-input v-show="isEdit" v-model="row.assetsNumbers"></el-input>
</template>
</el-table-column>
<el-table-column prop="totalPrice" label="小计" align="center">
<el-table-column prop="totalPrice" label="小计" align="center" width="120px">
<template slot-scope="{ row }">
<span>{{ row.assetsPrice * row.assetsNumbers }}</span>
</template>
......
<template>
<div class="upload-file">
<el-upload multiple :action="uploadFileUrl" :before-upload="handleBeforeUpload" :file-list="fileList" :limit="limit"
:on-error="handleUploadError" :on-exceed="handleExceed" :on-success="handleUploadSuccess"
:show-file-list="false" :headers="headers" class="upload-file-uploader" ref="fileUpload">
<!-- 上传按钮 -->
<el-button size="mini" type="primary" icon="el-icon-upload" style="margin-right: 10px;">上传</el-button>
<!-- 上传提示 -->
<!-- <div class="el-upload__tip" slot="tip" v-if="showTip">-->
<!-- 请上传-->
<!-- <template v-if="fileSize"> 大小不超过 <b style="color: #f56c6c">{{ fileSize }}MB</b> </template>-->
<!-- <template v-if="fileType"> 格式为 <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template>-->
<!-- 的文件-->
<!-- </div>-->
</el-upload>
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.url" class="el-upload-list__item ele-upload-list__item-content"
v-for="(file, index) in fileList">
<el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.name }} </span>
</el-link>
<div class="ele-upload-list__item-content-action" style="float: right">
<el-link style="margin-left: 10px;color: #1890ff" :href="`${baseUrl}${file.url}`" :underline="false"
target="_blank">下载</el-link>
<el-link style="margin-left: 15px" :underline="false" @click="handleDelete(index)"
type="danger">删除</el-link>
</div>
</li>
</transition-group>
</div>
</template>
<script>
import { getToken } from "@/utils/auth";
export default {
name: "UploadFileNew",
props: {
// 值
value: [String, Object, Array],
// 数量限制
limit: {
type: Number,
default: 5,
},
// 大小限制(MB)
fileSize: {
type: Number,
default: 5,
},
// 文件类型, 例如['png', 'jpg', 'jpeg']
fileType: {
type: Array,
default: () => ["doc", "xls", "ppt", "txt", "pdf"],
},
// 是否显示提示
isShowTip: {
type: Boolean,
default: true
}
},
data() {
return {
number: 0,
uploadList: [],
baseUrl: process.env.VUE_APP_BASE_API,
uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传文件服务器地址
headers: {
Authorization: "Bearer " + getToken(),
},
fileList: [],
};
},
watch: {
value: {
handler(val) {
if (val) {
let temp = 1;
// 首先将值转为数组
const list = Array.isArray(val) ? val : this.value.split(',');
// 然后将数组转为对象数组
this.fileList = list.map(item => {
if (typeof item === "string") {
item = { name: item, url: item };
}
item.uid = item.uid || new Date().getTime() + temp++;
return item;
});
} else {
this.fileList = [];
return [];
}
},
deep: true,
immediate: true
}
},
computed: {
// 是否显示提示
showTip() {
return this.isShowTip && (this.fileType || this.fileSize);
},
},
methods: {
// 上传前校检格式和大小
handleBeforeUpload(file) {
// 校检文件类型
// if (this.fileType) {
// const fileName = file.name.split('.');
// const fileExt = fileName[fileName.length - 1];
// const isTypeOk = this.fileType.indexOf(fileExt) >= 0;
// if (!isTypeOk) {
// this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`);
// return false;
// }
// }
// 校检文件大小
// if (this.fileSize) {
// const isLt = file.size / 1024 / 1024 < this.fileSize;
// if (!isLt) {
// this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
// return false;
// }
// }
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true;
},
// 文件个数超出
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
// 上传失败
handleUploadError(err) {
this.$modal.msgError("上传文件失败,请重试");
this.$modal.closeLoading()
},
// 上传成功回调
handleUploadSuccess(res, file) {
console.log('handleUploadSuccess', res)
console.log('file', file)
if (res.code === 200) {
this.uploadList.push({ name: res.newFileName, url: res.fileName });
this.uploadList.push({ name: res.originalFilename, url: res.fileName });
this.uploadedSuccessfully();
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
},
// 删除文件
handleDelete(index) {
this.fileList.splice(index, 1);
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
},
// 上传结束处理
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
// this.$emit("input", this.listToString(this.fileList));
this.$emit("input", this.fileList);
this.$modal.closeLoading();
}
},
// 获取文件名称
getFileName(name) {
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return "";
}
},
// 对象转成指定字符串分隔
// listToString(list, separator) {
// let strs = "";
// separator = separator || ",";
// for (let i in list) {
// strs += list[i].url + separator;
// }
// return strs != '' ? strs.substr(0, strs.length - 1) : '';
// }
}
};
</script>
<style scoped lang="scss">
.upload-file {
vertical-align: center;
width: 100%;
text-align: right;
position: relative;
}
::v-deep .el-upload {
position: absolute;
right: 0px;
top: 0px;
}
.upload-file-uploader {
margin-bottom: 5px;
}
.upload-file-list {
width: 85%;
position: relative !important;
top: 0px !important;
}
.upload-file-list .el-upload-list__item {
// border: 1px solid #e4e7ed;
line-height: 2;
margin-bottom: 10px;
position: relative;
}
.upload-file-list .ele-upload-list__item-content {
display: flex;
justify-content: flex-start;
;
align-items: center;
color: inherit;
}
.ele-upload-list__item-content-action .el-link {
margin-right: 10px;
\ No newline at end of file
......@@ -261,7 +261,8 @@
</p> -->
<p>
<el-link :underline="false" :href="postForm.fjlj" type="primary" target="_blank">
<el-link :underline="false" :href="`${baseUrl}${postForm.fjlj}`" type="primary"
target="_blank">
{{ postForm.fjmc }}
</el-link>
<!-- <el-button type="primary" size="mini" @click="downloadFile(postForm.fjlj)">
......@@ -338,6 +339,8 @@ export default {
data() {
return {
baseUrl: process.env.VUE_APP_BASE_API,
// baseUrl: 'http://192.168.1.111:8848',
stateTexts: ['未提交', '审核中', '审核通过', '审核不通过'],
// 上传
upload: {
......@@ -873,7 +876,7 @@ export default {
this.throttle(() => {
this.$refs["postForm"].validate((valid) => {
if (valid) {
console.log('this.postForm', this.postForm);
console.log('this.postForm 123', this.postForm);
// this.$modal.loading("正在上传数据,请稍等...");
if (this.postForm.id != null) {
if (this.fileList.length != 0) {
......@@ -894,7 +897,7 @@ export default {
} else {
if (this.fileList.length != 0) {
console.log('this.postForm', this.postForm);
console.log('this.postForm 1234', this.postForm);
addAuditor(this.postForm)
.then((response) => {
this.$modal.closeLoading();
......
......@@ -33,7 +33,7 @@
<el-table-column align="center" prop="id" label="报修单号" />
<el-table-column align="center" prop="repairsName" label="报修人" width="85px" />
<el-table-column align="center" prop="phone" label="联系方式" width="130px" />
<el-table-column align="center" prop="repairsTime" label="报修时间" width="160px"/>
<el-table-column align="center" prop="repairsTime" label="报修时间" width="160px" />
<el-table-column align="center" prop="failureEquipment" label="故障设备" />
<el-table-column align="center" prop="failureEquipmentArea" label="设备地点" />
<el-table-column align="center" prop="failureEquipmentDescribe" label="故障描述" />
......@@ -74,8 +74,6 @@
</el-button>
</div>
</template>
</el-table-column>
</el-table>
......@@ -137,7 +135,6 @@
</el-dialog>
<!-- 查看对话框 -->
<el-dialog :title="title" :visible.sync="openLook" width="1200px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row>
......@@ -229,7 +226,12 @@
<el-input v-model="formfk.maintainState" placeholder="维修状态"></el-input>
</el-form-item>
<el-form-item label="报修结果" prop="maintainResult">
<el-input v-model="formfk.maintainResult" placeholder="报修结果"></el-input>
<el-select v-model="formfk.maintainResult" placeholder="请选择报修结果">
<el-option label="已维修" value="1"></el-option>
<el-option label="无法维修" value="2"></el-option>
<!-- 添加更多的选项 -->
</el-select>
</el-form-item>
<el-form-item label="评价" prop="phevaluateone">
<el-rate v-model="formfk.evaluate" :max="5"></el-rate>
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
style="width: 240px"
@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 :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="openSelectUser"
v-hasPermi="['system:role:add']"
>添加用户
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-circle-close"
size="mini"
:disabled="multiple"
@click="cancelAuthUserAll"
v-hasPermi="['system:role:remove']"
>批量取消授权
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-close"
size="mini"
@click="handleClose"
>关闭
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true"/>
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true"/>
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true"/>
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true"/>
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-circle-close"
@click="cancelAuthUser(scope.row)"
v-hasPermi="['system:role:remove']"
>取消授权
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<select-user ref="select" :roleId="queryParams.roleId" @ok="handleQuery"/>
</div>
</template>
<script>
import {allocatedUserList, authUserCancel, authUserCancelAll} from "@/api/system/role";
import selectUser from "./selectUser";
export default {
name: "AuthUser",
dicts: ['sys_normal_disable'],
components: {selectUser},
data() {
return {
// 遮罩层
loading: true,
// 选中用户组
userIds: [],
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 用户表格数据
userList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
roleId: undefined,
userName: undefined,
phonenumber: undefined
}
};
},
created() {
const roleId = this.$route.params && this.$route.params.roleId;
console.log("222222", roleId)
if (roleId) {
this.queryParams.roleId = roleId;
this.getList();
}
},
methods: {
/** 查询授权用户列表 */
getList() {
this.loading = true;
allocatedUserList(this.queryParams).then(response => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
// 返回按钮
handleClose() {
const obj = {path: "/system/role"};
this.$tab.closeOpenPage(obj);
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.userIds = selection.map(item => item.userId)
this.multiple = !selection.length
},
/** 打开授权用户表弹窗 */
openSelectUser() {
this.$refs.select.show();
},
/** 取消授权按钮操作 */
cancelAuthUser(row) {
const roleId = this.queryParams.roleId;
this.$modal.confirm('确认要取消该用户"' + row.userName + '"角色吗?').then(function () {
return authUserCancel({userId: row.userId, roleId: roleId});
}).then(() => {
this.getList();
this.$modal.msgSuccess("取消授权成功");
}).catch(() => {
});
},
/** 批量取消授权按钮操作 */
cancelAuthUserAll(row) {
const roleId = this.queryParams.roleId;
const userIds = this.userIds.join(",");
this.$modal.confirm('是否取消选中用户授权数据项?').then(function () {
return authUserCancelAll({roleId: roleId, userIds: userIds});
}).then(() => {
this.getList();
this.$modal.msgSuccess("取消授权成功");
}).catch(() => {
});
}
}
};
</script>
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
<el-form-item label="分组名称" prop="name">
<el-input v-model="queryParams.roleName" placeholder="分组名称" clearable style="width: 240px"
@keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:role:add']">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
v-hasPermi="['system:role:edit']">修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['system:role:remove']">删除</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="roleList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="分组编号" prop="id" />
<el-table-column label="分组名称" prop="name" />
<el-table-column label="显示顺序" prop="sort" />
<el-table-column label="操作" align="center">
<template slot-scope="scope" v-if="scope.row.roleId !== 1">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:role:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:role:remove']">删除</el-button>
<el-button size="mini" type="text" icon="el-icon-user" @click="handleCommand('handleAuthUser', scope.row)"
v-hasPermi="['system:role:edit']">
分配用户
</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<!-- 添加或修改角色配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-form-item label="分组名称" prop="name">
<el-input v-model="form.name" placeholder="请输入角色名称" />
</el-form-item>
<el-form-item label="显示顺序" prop="sort">
<el-input-number v-model="form.sort" controls-position="right" :min="0" />
</el-form-item>
<!-- <el-form-item label="菜单权限">
<el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
<el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.menuCheckStrictly"
@change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
<el-tree class="tree-border" :data="menuOptions" show-checkbox ref="menu" node-key="id"
:check-strictly="!form.menuCheckStrictly" empty-text="加载中,请稍候" :props="defaultProps"></el-tree>
</el-form-item> -->
<!-- <el-form-item label="备注">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
</el-form-item> -->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
<!-- 分配角色数据权限对话框 -->
<!-- <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body>
<el-form :model="form" label-width="80px">
<el-form-item label="角色名称">
<el-input v-model="form.roleName" :disabled="true" />
</el-form-item>
<el-form-item label="权限字符">
<el-input v-model="form.roleKey" :disabled="true" />
</el-form-item>
<el-form-item label="权限范围">
<el-select v-model="form.dataScope" @change="dataScopeSelectChange">
<el-option v-for="item in dataScopeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="数据权限" v-show="form.dataScope == 2">
<el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
<el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
<el-checkbox v-model="form.deptCheckStrictly"
@change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
<el-tree class="tree-border" :data="deptOptions" show-checkbox default-expand-all ref="dept" node-key="id"
:check-strictly="!form.deptCheckStrictly" empty-text="加载中,请稍候" :props="defaultProps"></el-tree>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitDataScope">确 定</el-button>
<el-button @click="cancelDataScope">取 消</el-button>
</div>
</el-dialog> -->
</div>
</template>
<script>
import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
import {
getUserList,//获取分组集合
getUser,// 根据分类id获取人员信息
addNotification,//新增数据
addUser,//分组新增人员;
deleteUser,//删除人员,
updateNotification,//修改分组信息
deleteNotification,//删除分组
} from "@/api/smartSchool/informationPush/personnelGrouping";
export default {
name: "Role",
dicts: ['sys_normal_disable'],
data() {
return {
// 遮罩层
loading: true,
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 角色表格数据
roleList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
open: false,
// 日期范围
dateRange: [],
// 部门列表
// deptOptions: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
},
// 表单参数
form: {},
// 表单校验
rules: {
roleName: [
{ required: true, message: "角色名称不能为空", trigger: "blur" }
],
roleKey: [
{ required: true, message: "权限字符不能为空", trigger: "blur" }
],
roleSort: [
{ required: true, message: "角色顺序不能为空", trigger: "blur" }
]
}
};
},
created() {
this.getList();
},
methods: {
/** 查询角色列表 */
getList() {
this.loading = true;
getUserList().then(response => {
this.roleList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
/** 查询菜单树结构 */
// getMenuTreeselect() {
// menuTreeselect().then(response => {
// this.menuOptions = response.data;
// });
// },
// 所有菜单节点数据
// getMenuAllCheckedKeys() {
// 目前被选中的菜单节点
// let checkedKeys = this.$refs.menu.getCheckedKeys();
// 半选中的菜单节点
// let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
// checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
// return checkedKeys;
// },
// 所有部门节点数据
// getDeptAllCheckedKeys() {
// 目前被选中的部门节点
// let checkedKeys = this.$refs.dept.getCheckedKeys();
// // 半选中的部门节点
// let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
// checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
// return checkedKeys;
// },
/** 根据角色ID查询菜单树结构 */
// getRoleMenuTreeselect(roleId) {
// return roleMenuTreeselect(roleId).then(response => {
// this.menuOptions = response.menus;
// return response;
// });
// },
/** 根据角色ID查询部门树结构 */
// getDeptTree(roleId) {
// return deptTreeSelect(roleId).then(response => {
// this.deptOptions = response.depts;
// return response;
// });
// },
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
// 表单重置
reset() {
if (this.$refs.menu != undefined) {
this.$refs.menu.setCheckedKeys([]);
}
this.menuExpand = false,
this.menuNodeAll = false,
this.deptExpand = true,
this.deptNodeAll = false,
this.form = {
roleId: undefined,
roleName: undefined,
roleKey: undefined,
roleSort: 0,
status: "0",
menuIds: [],
deptIds: [],
deptCheckStrictly: true,
remark: undefined
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = [];
this.resetForm("queryForm");
this.handleQuery();
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.roleId)
this.single = selection.length != 1
this.multiple = !selection.length
},
// 更多操作触发
handleCommand(command, row) {
switch (command) {
case "handleDataScope":
this.handleDataScope(row);
break;
case "handleAuthUser":
this.handleAuthUser(row);
break;
default:
break;
}
},
// 树权限(展开/折叠)
// handleCheckedTreeExpand(value, type) {
// if (type == 'menu') {
// let treeList = this.menuOptions;
// for (let i = 0; i < treeList.length; i++) {
// this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
// }
// } else if (type == 'dept') {
// let treeList = this.deptOptions;
// for (let i = 0; i < treeList.length; i++) {
// this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
// }
// }
// },
// 树权限(全选/全不选)
// handleCheckedTreeNodeAll(value, type) {
// if (type == 'menu') {
// this.$refs.menu.setCheckedNodes(value ? this.menuOptions : []);
// } else if (type == 'dept') {
// this.$refs.dept.setCheckedNodes(value ? this.deptOptions : []);
// }
// },
// 树权限(父子联动)
// handleCheckedTreeConnect(value, type) {
// if (type == 'menu') {
// this.form.menuCheckStrictly = value ? true : false;
// } else if (type == 'dept') {
// this.form.deptCheckStrictly = value ? true : false;
// }
// },
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加角色";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const notificationId = row.notificationId || this.ids
// const roleMenu = this.getRoleMenuTreeselect(roleId);
getUser(notificationId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改角色";
});
},
/** 选择角色权限范围触发 */
dataScopeSelectChange(value) {
if (value !== '2') {
this.$refs.dept.setCheckedKeys([]);
}
},
/** 分配数据权限操作 */
// handleDataScope(row) {
// this.reset();
// const deptTreeSelect = this.getDeptTree(row.roleId);
// getRole(row.roleId).then(response => {
// this.form = response.data;
// this.openDataScope = true;
// this.$nextTick(() => {
// deptTreeSelect.then(res => {
// this.$refs.dept.setCheckedKeys(res.checkedKeys);
// });
// });
// this.title = "分配数据权限";
// });
// },
/** 分配用户操作 */
handleAuthUser: function (row) {
const roleId = row.roleId;
this.$router.push("/system/role-auth/user/" + roleId);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.roleId != undefined) {
// this.form.menuIds = this.getMenuAllCheckedKeys();
updateRole(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
// this.form.menuIds = this.getMenuAllCheckedKeys();
addRole(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 提交按钮(数据权限) */
// submitDataScope: function () {
// if (this.form.roleId != undefined) {
// this.form.deptIds = this.getDeptAllCheckedKeys();
// dataScope(this.form).then(response => {
// this.$modal.msgSuccess("修改成功");
// this.openDataScope = false;
// this.getList();
// });
// }
// },
/** 删除按钮操作 */
handleDelete(row) {
const roleIds = row.roleId || this.ids;
this.$modal.confirm('是否确认删除角色编号为"' + roleIds + '"的数据项?').then(function () {
return delRole(roleIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
}
};
</script>
\ No newline at end of file
<template>
<!-- 授权用户 -->
<el-dialog title="选择用户" :visible.sync="visible" width="800px" top="5vh" append-to-body>
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true">
<el-form-item label="用户名称" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="queryParams.phonenumber"
placeholder="请输入手机号码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row>
<el-table @row-click="clickRow" ref="table" :data="userList" @selection-change="handleSelectionChange" height="260px">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="用户名称" prop="userName" :show-overflow-tooltip="true" />
<el-table-column label="用户昵称" prop="nickName" :show-overflow-tooltip="true" />
<el-table-column label="邮箱" prop="email" :show-overflow-tooltip="true" />
<el-table-column label="手机" prop="phonenumber" :show-overflow-tooltip="true" />
<el-table-column label="状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleSelectUser">确 定</el-button>
<el-button @click="visible = false">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import { unallocatedUserList, authUserSelectAll } from "@/api/system/role";
export default {
dicts: ['sys_normal_disable'],
props: {
// 角色编号
roleId: {
type: [Number, String]
}
},
data() {
return {
// 遮罩层
visible: false,
// 选中数组值
userIds: [],
// 总条数
total: 0,
// 未授权用户数据
userList: [],
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
roleId: undefined,
userName: undefined,
phonenumber: undefined
}
};
},
methods: {
// 显示弹框
show() {
this.queryParams.roleId = this.roleId;
this.getList();
this.visible = true;
},
clickRow(row) {
this.$refs.table.toggleRowSelection(row);
},
// 多选框选中数据
handleSelectionChange(selection) {
this.userIds = selection.map(item => item.userId);
},
// 查询表数据
getList() {
unallocatedUserList(this.queryParams).then(res => {
this.userList = res.rows;
this.total = res.total;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 选择授权用户操作 */
handleSelectUser() {
const roleId = this.queryParams.roleId;
const userIds = this.userIds.join(",");
if (userIds == "") {
this.$modal.msgError("请选择要分配的用户");
return;
}
authUserSelectAll({ roleId: roleId, userIds: userIds }).then(res => {
this.$modal.msgSuccess(res.msg);
if (res.code === 200) {
this.visible = false;
this.$emit("ok");
}
});
}
}
};
</script>
......@@ -3,114 +3,52 @@
<el-row :gutter="20">
<el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="deptName"
placeholder="请输入部门名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
<el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search"
style="margin-bottom: 20px" />
</div>
<div class="head-container">
<el-tree
:data="deptOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
default-expand-all
highlight-current
@node-click="handleNodeClick"
/>
<el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false"
:filter-node-method="filterNode" ref="tree" default-expand-all highlight-current
@node-click="handleNodeClick" />
</div>
</el-col>
<el-col :span="20" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
label-width="60px"
:inline="true"
v-show="showSearch"
>
<el-form :model="queryParams" ref="queryForm" size="small" label-width="90px" :inline="true" v-show="showSearch">
<el-form-item label="姓名" clearable prop="teacherName">
<el-input
v-model="queryParams.teacherName"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.teacherName" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="用户状态" label-width="70px" prop="status">
<el-select
v-model="queryParams.status"
style="width: 100%"
@keyup.enter.native="handleQuery"
placeholder="请选择状态"
>
<el-option
v-for="dict in dict.type.user_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="queryParams.status" style="width: 100%" @keyup.enter.native="handleQuery"
placeholder="请选择状态">
<el-option v-for="dict in dict.type.user_status" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="学历" prop="education">
<el-select
v-model="queryParams.education"
style="width: 100%"
@keyup.enter.native="handleQuery"
clearable
placeholder="请选择学历"
>
<el-option
v-for="dict in dict.type.education"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-form-item label="职工类型" prop="employeeType">
<el-select v-model="queryParams.employeeType" placeholder="请选择职工类型">
<el-option v-for="dict in dict.type.employee_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="电话" clearable prop="teacherTel">
<el-input
v-model="queryParams.teacherTel"
placeholder="请输入电话"
clearable
@keyup.enter.native="handleQuery"
/>
<el-input v-model="queryParams.teacherTel" 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-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索
</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置
</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['teacherManage:inform:add']"
>新增
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['teacherManage:inform:add']">新增
</el-button>
</el-col>
<!-- <el-col :span="1.5">
......@@ -142,142 +80,56 @@
<!-- ></right-toolbar>-->
</el-row>
<el-table
v-loading="loading"
:data="informList"
:cell-style="cellStyle"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55"
align="center"
:selectable="isSelected"
/>
<el-table-column
label="头像"
align="center"
prop="picUrl"
>
<el-table v-loading="loading" :data="informList" :cell-style="cellStyle"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" :selectable="isSelected" />
<el-table-column label="头像" align="center" prop="picUrl">
<template slot-scope="scope">
<ListImage :image-url="peV+scope.row.avatar"></ListImage>
<ListImage :image-url="peV + scope.row.avatar"></ListImage>
</template>
</el-table-column>
<el-table-column
label="姓名"
align="center"
prop="teacherName"
min-width="150"
>
<el-table-column label="姓名" align="center" prop="teacherName" min-width="150">
<template slot-scope="scope">
<el-link
type="primary"
@click="handleDetail(scope.row)"
:underline="false"
>{{ scope.row.teacherName }}
<el-link type="primary" @click="handleDetail(scope.row)" :underline="false">{{ scope.row.teacherName }}
</el-link>
</template>
</el-table-column>
<el-table-column
label="性别"
align="center"
prop="sex"
>
<el-table-column label="性别" align="center" prop="sex">
<template slot-scope="scope">
<dict-tag
:options="dict.type.sys_user_sex"
:value="scope.row.sex"
/>
<dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
</template>
</el-table-column>
<el-table-column
label="工作编号"
width="110px"
align="center"
prop="teacherCode"
/>
<el-table-column
label="部门"
min-width="130px"
align="center"
prop="deptName"
/>
<el-table-column
label="手机号话"
width="120px"
align="center"
prop="teacherTel"
/>
<el-table-column
label="职工类型"
align="center"
prop="employeeType"
>
<el-table-column label="工作编号" width="110px" align="center" prop="teacherCode" />
<el-table-column label="部门" min-width="130px" align="center" prop="deptName" />
<el-table-column label="手机号话" width="120px" align="center" prop="teacherTel" />
<el-table-column label="职工类型" align="center" prop="employeeType">
<template slot-scope="scope">
<dict-tag
:options="dict.type.employee_type"
:value="scope.row.employeeType"
/>
<dict-tag :options="dict.type.employee_type" :value="scope.row.employeeType" />
</template>
</el-table-column>
<el-table-column
label="状态"
min-width="70px"
align="center"
>
<el-table-column label="状态" min-width="70px" align="center">
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
:active-value="'0'"
:inactive-value="'1'"
active-color="#13ce66"
@change="(res)=>{switchChange(scope.row,res)}"
inactive-color="#ff4949">
<el-switch v-model="scope.row.status" :active-value="'0'" :inactive-value="'1'" active-color="#13ce66"
@change="(res) => { switchChange(scope.row, res) }" inactive-color="#ff4949">
</el-switch>
</template>
</el-table-column>
<el-table-column
label="签名"
width="100px"
align="center"
prop="sign"
>
<el-table-column label="签名" width="100px" align="center" prop="sign">
<template slot-scope="scope">
<ListImage :image-url="peV+scope.row.sign"></ListImage>
<ListImage :image-url="peV + scope.row.sign"></ListImage>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
min-width="170"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="170" fixed="right">
<template slot-scope="scope">
<el-button
v-if="!(scope.row.id == '1')"
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['teacherManage:inform:edit']"
>修改
<el-button v-if="!(scope.row.id == '1')" size="mini" type="text" icon="el-icon-edit"
@click="handleUpdate(scope.row)" v-hasPermi="['teacherManage:inform:edit']">修改
</el-button>
<el-button
v-if="!(scope.row.id == '1')"
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['teacherManage:inform:remove']"
>删除
<el-button v-if="!(scope.row.id == '1')" size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)" v-hasPermi="['teacherManage:inform:remove']">删除
</el-button>
<el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:resetPwd', 'system:user:edit']"
>
<el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)"
v-hasPermi="['system:user:resetPwd', 'system:user:edit']">
<span class="el-dropdown-link">
<i class="el-icon-d-arrow-right el-icon--right"></i>更多
</span>
......@@ -300,35 +152,16 @@
</template>
</el-table-column>
</el-table>
<ExPagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<ExPagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
</el-col>
</el-row>
<!-- 导入 -->
<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 + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<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 + '?updateSupport=' + upload.updateSupport" :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">
......@@ -336,12 +169,8 @@
<!-- <el-checkbox v-model="upload.updateSupport" /> 是否更新已经存在的用户数据-->
<!--</div>-->
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板
<el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate">下载模板
</el-link>
</div>
</el-upload>
......@@ -352,38 +181,18 @@
</el-dialog>
<!-- 导出对话框 -->
<ExportTable
:open-export.sync="exportOptions.open"
:title="exportOptions.title"
@export="exportFile"
></ExportTable>
<ExportTable :open-export.sync="exportOptions.open" :title="exportOptions.title" @export="exportFile"></ExportTable>
<!-- 添加或修改学校老师对话框 -->
<el-dialog :title="title" :visible.sync="open" width="60%" append-to-body>
<el-form
size="small"
ref="form"
:model="form"
:rules="rules"
:disabled="isDisabled"
label-width="120px"
>
<el-form size="small" ref="form" :model="form" :rules="rules" :disabled="isDisabled" label-width="120px">
<el-row :gutter="40">
<el-col :span="12" style="text-align: center;">
<el-form-item prop="picUrl" label-width="0px">
<template slot-scope="scope">
<el-upload
style=" margin: auto"
v-loading="photoUploadLoading"
class="avatar-uploader"
action="#"
accept="image/*"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:http-request="(res)=>uploadImage(res,'photo')"
>
<img v-if="imageUrl" :src="imageUrl" class="avatar"/>
<el-upload style=" margin: auto" v-loading="photoUploadLoading" class="avatar-uploader" action="#"
accept="image/*" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="(res) => uploadImage(res, 'photo')">
<img v-if="imageUrl" :src="imageUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
......@@ -391,86 +200,42 @@
</template>
</el-form-item>
<div style="width:50px; height: 20px; margin:auto;"><b>照片</b></div>
<br/>
<br />
<el-form-item label="姓名" prop="teacherName">
<el-input
v-model="form.teacherName"
placeholder="请输入姓名"
/>
<el-input v-model="form.teacherName" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="手机号码" prop="teacherTel">
<el-input
v-model="form.teacherTel"
placeholder="请输入老师电话"
/>
<el-input v-model="form.teacherTel" placeholder="请输入老师电话" />
</el-form-item>
<el-form-item label="身份证号" prop="idCard">
<el-input
v-model.trim="form.idCard"
placeholder="请输入身份证号"
/>
<el-input v-model.trim="form.idCard" placeholder="请输入身份证号" />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-select
v-model="form.sex"
style="width: 100%"
placeholder="请选择性别"
>
<el-option
v-for="dict in dict.type.sys_user_sex"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.sex" style="width: 100%" placeholder="请选择性别">
<el-option v-for="dict in dict.type.sys_user_sex" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="职工类型" prop="employeeType">
<el-select v-model="form.employeeType" style="width: 100%" placeholder="请选择职工类型">
<el-option
v-for="dict in dict.type.employee_type"
:key="dict.value"
:label="dict.label"
<el-option v-for="dict in dict.type.employee_type" :key="dict.value" :label="dict.label"
:value="dict.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="民族" prop="nation">
<el-select
v-model="form.nation"
style="width: 100%"
placeholder="请选择民族"
>
<el-option
v-for="item in Nations"
:key="item.label"
:label="item.label"
:value="item.label"
></el-option>
<el-select v-model="form.nation" style="width: 100%" placeholder="请选择民族">
<el-option v-for="item in Nations" :key="item.label" :label="item.label" :value="item.label"></el-option>
</el-select>
</el-form-item>
<el-form-item label="生日" prop="birthday">
<el-date-picker
clearable
v-model="form.birthday"
type="date"
style="width: 100%"
value-format="yyyy-MM-dd"
placeholder="请选择生日"
></el-date-picker>
<el-date-picker clearable v-model="form.birthday" type="date" style="width: 100%" value-format="yyyy-MM-dd"
placeholder="请选择生日"></el-date-picker>
</el-form-item>
<el-form-item label="岗位" prop="postId">
<el-select
v-model="form.postIds"
multiple
placeholder="请选择岗位"
style="width: 100%"
>
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
></el-option>
<el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width: 100%">
<el-option v-for="item in postOptions" :key="item.postId" :label="item.postName"
:value="item.postId"></el-option>
</el-select>
</el-form-item>
......@@ -479,103 +244,51 @@
<el-col :span="12" style="text-align: center">
<el-form-item prop="picUrl" label-width="0px">
<template slot-scope="scope">
<el-upload
style="margin: auto"
v-loading="signUploadLoading"
class="avatar-uploader"
action="#"
accept="image/*"
:show-file-list="false"
:on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload"
:http-request="(res)=>uploadImage(res,'sign')"
>
<img v-if="signUrl" :src="signUrl" class="avatar"/>
<el-upload style="margin: auto" v-loading="signUploadLoading" class="avatar-uploader" action="#"
accept="image/*" :show-file-list="false" :on-success="handleAvatarSuccess"
:before-upload="beforeAvatarUpload" :http-request="(res) => uploadImage(res, 'sign')">
<img v-if="signUrl" :src="signUrl" class="avatar" />
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
</template>
</el-form-item>
<div style="width:50px; height: 20px;margin:auto;"><b>签名</b></div>
<br/>
<br />
<el-form-item label="归属部门" prop="deptId">
<treeselect
:disabled="isDisabled"
v-model="form.deptId"
:options="deptOptions"
:show-count="true"
:defaultExpandLevel="2"
placeholder="请选择归属部门"
/>
<treeselect :disabled="isDisabled" v-model="form.deptId" :options="deptOptions" :show-count="true"
:defaultExpandLevel="2" placeholder="请选择归属部门" />
</el-form-item>
<!-- :placeholder="isDisabled ? '' : '请选择归属部门'"-->
<el-form-item label="密码" v-if="!form.id" prop="password">
<el-input
v-model="form.password"
placeholder="请输入密码"
class="pwd"
type="text"
autocomplete="new-password"
maxlength="20"
/>
<el-input v-model="form.password" placeholder="请输入密码" class="pwd" type="text" autocomplete="new-password"
maxlength="20" />
</el-form-item>
<el-form-item label="工作编号" prop="teacherCode">
<el-input
v-model="form.teacherCode"
placeholder="请输入工作编号"
/>
<el-input v-model="form.teacherCode" placeholder="请输入工作编号" />
</el-form-item>
<el-form-item label="设备工号" prop="deviceNum">
<el-input v-model="form.deviceNum" placeholder="请输入设备工号" style="width: 100%"></el-input>
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请输入邮箱"
/>
<el-input v-model="form.email" placeholder="请输入邮箱" />
</el-form-item>
<el-form-item label="学历" prop="education">
<el-select
v-model="form.education"
style="width: 100%"
placeholder="请选择学历"
>
<el-option
v-for="dict in dict.type.education"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.education" style="width: 100%" placeholder="请选择学历">
<el-option v-for="dict in dict.type.education" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select
v-model="form.status"
style="width: 100%"
placeholder="请选择用户状态"
>
<el-option
v-for="dict in dict.type.user_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
<el-select v-model="form.status" style="width: 100%" placeholder="请选择用户状态">
<el-option v-for="dict in dict.type.user_status" :key="dict.value" :label="dict.label"
:value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="角色" prop="roleId">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
style="width: 100%"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
></el-option>
<el-select v-model="form.roleIds" multiple placeholder="请选择角色" style="width: 100%">
<el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName"
:value="item.roleId"></el-option>
</el-select>
</el-form-item>
......@@ -583,28 +296,18 @@
</el-row>
<el-row>
<el-form-item label="家庭住址" prop="homeAddress">
<el-input
type="textarea"
v-model="form.homeAddress"
placeholder="请输入家庭住址"
/>
<el-input type="textarea" v-model="form.homeAddress" placeholder="请输入家庭住址" />
</el-form-item>
</el-row>
<el-row>
<el-form-item label="备注" prop="remark">
<el-input
type="textarea"
v-model="form.remark"
placeholder="请输入备注"
/>
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button v-show="!isDisabled" type="primary" @click="submitForm"
>确 定
</el-button
>
<el-button v-show="!isDisabled" type="primary" @click="submitForm">确 定
</el-button>
<el-button @click="cancel">{{
isDisabled ? "退 出" : "取 消"
}}
......@@ -612,31 +315,15 @@
</div>
</el-dialog>
<!-- 分配角色 -->
<el-dialog
:title="title"
:visible.sync="assignRolesopen"
width="400px"
append-to-body
>
<el-dialog :title="title" :visible.sync="assignRolesopen" width="400px" append-to-body>
<el-form label-width="80px">
<el-form-item label="姓名"
>
<el-input v-model="teacherName" style="width: 180px"></el-input
>
<el-form-item label="姓名">
<el-input v-model="teacherName" style="width: 180px"></el-input>
</el-form-item>
<el-form-item label="角色">
<el-select
v-model="authRole"
placeholder="请选择角色"
multiple
style="width: 180px"
>
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
></el-option>
<el-select v-model="authRole" placeholder="请选择角色" multiple style="width: 180px">
<el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName"
:value="item.roleId"></el-option>
</el-select>
</el-form-item>
......@@ -644,46 +331,24 @@
</el-form>
<div style="margin: 20px 0 -10px 180px">
<el-button @click="close" style="margin: 0 10px 0 0">取消</el-button>
<el-button
@click="submitAssignRoles"
style="margin: 0 0 0 10px"
type="primary"
>确定
</el-button
>
<el-button @click="submitAssignRoles" style="margin: 0 0 0 10px" type="primary">确定
</el-button>
</div>
</el-dialog>
<!-- 重置密码 -->
<el-dialog
:title="title"
:visible.sync="resetPasswordopen"
width="400px"
append-to-body
>
<el-dialog :title="title" :visible.sync="resetPasswordopen" width="400px" append-to-body>
<el-form lable-with="100px">
<el-form-item label="姓名"
>
<el-input v-model="teacherName" style="width: 60%"></el-input
>
<el-form-item label="姓名">
<el-input v-model="teacherName" style="width: 60%"></el-input>
</el-form-item>
<el-form-item label="密码">
<el-input
v-model="password"
show-password
style="width: 60%"
placeholder="请输入原密码"
></el-input>
<el-input v-model="password" show-password style="width: 60%" placeholder="请输入原密码"></el-input>
</el-form-item>
</el-form>
<div style="margin: 20px 0 -10px 180px">
<el-button @click="close" style="margin: 0 10px 0 0">取消</el-button>
<el-button
@click="submitReset"
style="margin: 0 0 0 10px"
type="primary"
>确定
</el-button
>
<el-button @click="submitReset" style="margin: 0 0 0 10px" type="primary">确定
</el-button>
</div>
</el-dialog>
</div>
......@@ -699,17 +364,17 @@ import {
sendResetPassword,
submitRoles,
} from "@/api/smartSchool/teacherManage/teacherInforManage";
import {listResume} from "@/api/smartSchool/teacherManage/resume";
import {listTeacherAward} from "@/api/smartSchool/teacherManage/teacherAward";
import {CustomCellStyle} from "@/enums/customStyle";
import { listResume } from "@/api/smartSchool/teacherManage/resume";
import { listTeacherAward } from "@/api/smartSchool/teacherManage/teacherAward";
import { CustomCellStyle } from "@/enums/customStyle";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {ExportType, Gender, Nations} from "@/enums/common";
import {checkIdcard} from "@/utils/utilLibrary/validate";
import {getToken} from "@/utils/auth";
import {uploadImage as commonUpload, signUpload} from "@/api/common";
import {resetUserPwd} from "@/api/system/user";
import {statusChange} from "../../../../api/smartSchool/teacherManage/teacherInforManage";
import { ExportType, Gender, Nations } from "@/enums/common";
import { checkIdcard } from "@/utils/utilLibrary/validate";
import { getToken } from "@/utils/auth";
import { uploadImage as commonUpload, signUpload } from "@/api/common";
import { resetUserPwd } from "@/api/system/user";
import { statusChange } from "../../../../api/smartSchool/teacherManage/teacherInforManage";
export default {
name: "Inform",
......@@ -796,40 +461,40 @@ export default {
form: {},
// 列信息
columns: [
{key: 0, label: `头像`, visible: true},
{key: 1, label: `老师名称`, visible: true},
{key: 2, label: `老师电话`, visible: true},
{key: 3, label: `工作编号`, visible: true},
{key: 4, label: `生日`, visible: true},
{key: 5, label: `性别`, visible: true},
{key: 6, label: `学历`, visible: true},
{key: 7, label: `身份证号`, visible: true},
{key: 8, label: `家庭住址`, visible: true},
{key: 9, label: `民族`, visible: true},
{key: 10, label: `操作`, visible: true},
{ key: 0, label: `头像`, visible: true },
{ key: 1, label: `老师名称`, visible: true },
{ key: 2, label: `老师电话`, visible: true },
{ key: 3, label: `工作编号`, visible: true },
{ key: 4, label: `生日`, visible: true },
{ key: 5, label: `性别`, visible: true },
{ key: 6, label: `学历`, visible: true },
{ key: 7, label: `身份证号`, visible: true },
{ key: 8, label: `家庭住址`, visible: true },
{ key: 9, label: `民族`, visible: true },
{ key: 10, label: `操作`, visible: true },
],
// 表单校验
rules: {
teacherName: [
{required: true, message: "老师名称不能为空", trigger: "blur"},
{ required: true, message: "老师名称不能为空", trigger: "blur" },
],
teacherTel: [
{required: true, message: "手机号码不能为空", trigger: "blur"},
{ required: true, message: "手机号码不能为空", trigger: "blur" },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur",
},
],
password: [{required: true, message: "登录密码不能为空", trigger: "blur"},],
teacherCode: [{required: true, message: "工作编号不能为空", trigger: "blur"},
{message: "工作编号格式不正确", trigger: "blur", pattern: /[0-9]\d*/},
password: [{ required: true, message: "登录密码不能为空", trigger: "blur" },],
teacherCode: [{ required: true, message: "工作编号不能为空", trigger: "blur" },
{ message: "工作编号格式不正确", trigger: "blur", pattern: /[0-9]\d*/ },
],
idCard: [{required: true, validator: checkIdcard, trigger: "blur"}],
deptId: [{required: true, message: "归属部门不能为空", trigger: "change"}],
employeeType: [{required: true, message: "职工类型不能为空", trigger: "change"}],
deviceNum: [{required: true, message: "设备工号不能为空", trigger: "change"}],
sex: [{required: true, message: "性别不能为空", trigger: "change"}],
idCard: [{ required: true, validator: checkIdcard, trigger: "blur" }],
deptId: [{ required: true, message: "归属部门不能为空", trigger: "change" }],
employeeType: [{ required: true, message: "职工类型不能为空", trigger: "change" }],
deviceNum: [{ required: true, message: "设备工号不能为空", trigger: "change" }],
sex: [{ required: true, message: "性别不能为空", trigger: "change" }],
},
// 自定义列表单元格样式
......@@ -853,7 +518,7 @@ export default {
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: {Authorization: "Bearer " + getToken()},
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/school/teacher/importData",
},
......@@ -947,7 +612,7 @@ export default {
},
getResumelist() {
this.resumeListLoading = true;
listResume({teacherId: this.teacherId}).then((res) => {
listResume({ teacherId: this.teacherId }).then((res) => {
if (res.code == 200) {
this.resumeList = res.rows;
this.resumeListLoading = false;
......@@ -959,7 +624,7 @@ export default {
},
getHonorlist() {
this.honorListLoading = true;
listTeacherAward({teacherId: this.teacherId}).then((res) => {
listTeacherAward({ teacherId: this.teacherId }).then((res) => {
if (res.code == 200) {
this.honorList = res.rows;
this.honorListLoading = false;
......@@ -1003,7 +668,7 @@ export default {
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
}).then(({value}) => {
}).then(({ value }) => {
resetUserPwd(row.userId, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
......@@ -1199,8 +864,7 @@ export default {
const ids = row.id || this.ids;
this.$modal
.confirm(
`是否确认删除选中的${
Object.hasOwnProperty.call(ids, "length") ? ids.length : 1
`是否确认删除选中的${Object.hasOwnProperty.call(ids, "length") ? ids.length : 1
}条数据?`
)
.then(() => {
......@@ -1303,7 +967,7 @@ export default {
this.postOptions = response.posts;
console.log(this.postOptions,1304);
console.log(this.postOptions, 1304);
this.roleOptions = response.roles;
})
.catch((error) => {
......@@ -1333,7 +997,7 @@ export default {
response.msg +
"</div>",
"导入结果",
{dangerouslyUseHTMLString: true}
{ dangerouslyUseHTMLString: true }
);
this.getList();
},
......@@ -1345,7 +1009,7 @@ export default {
exportFile(callback) {
const ids = this.ids;
const options = [
{type: ExportType.TOTAL, path: "/school/teacher/export", params: {}},
{ type: ExportType.TOTAL, path: "/school/teacher/export", params: {} },
{
type: ExportType.SELECT,
path: "/school/teacher/export/" + ids,
......@@ -1424,5 +1088,4 @@ export default {
text-security: disc;
-webkit-text-security: disc;
}
</style>
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