Commit 6360d8dd authored by zhengke's avatar zhengke

修改

parent a63008a3
......@@ -23,4 +23,56 @@ export function queryEmployee(data)
method: 'post',
data
})
}
/**
* 修改离职信息
* @param {查询参数} data
*/
export function UpdateEmployeeLeave(data)
{
return request({
url: '/User/UpdateEmployeeLeaveTime',
method: 'post',
data
})
}
/**
* 修改部门
* @param {查询参数} data
*/
export function UpdateEmployeeDept(data)
{
return request({
url: '/User/UpdateEmployeeDept',
method: 'post',
data
})
}
/**
* 修改岗位
* @param {查询参数} data
*/
export function UpdateEmployeePost(data)
{
return request({
url: '/User/UpdateEmployeePost',
method: 'post',
data
})
}
/**
* 重置密码
* @param {查询参数} data
*/
export function BatchResetUserPassword(data)
{
return request({
url: '/User/BatchResetUserPassword',
method: 'post',
data
})
}
\ No newline at end of file
<style>
.employee_Dialog .drawerTop {
width: 100%;
height: 50px;
display: flex;
justify-content: space-between;
background-color: #F0F5FB;
padding: 5px 10px;
align-items: center;
}
.employee_Dialog .EMP_Main {
margin: 20px 0;
}
.employee_Dialog .EMPList {
width: 65px;
height: auto;
display:inline-block;
background-color: #F0F5FB;
text-align: center;
color: #2D2D2D;
font-size: 12px;
padding: 6px 0;
margin:0 10px 10px 0;
}
.employee_Dialog .Emp_Line {
width: 3px;
height: 10px;
background-color: #3FC4FF;
margin-right: 10px;
}
.employee_Dialog .EmpLine_title {
display: flex;
align-items: center;
font-size: 12px;
}
.employee_Dialog .drawer_Span {
margin-left: 10px;
}
.employee_Dialog .emp_lingdaiDiv{
width:30px;
height:30px;
background-color: #DADBFB;
color: #8175FB;
border-radius:50%;
text-align: center;
}
</style>
<template>
<q-dialog v-model="persistent" maximized full-height seamless position="right" @hide="closeShenheForm">
<q-card style="margin-top:61px;width:500px" class="no-border-radius employee_Dialog">
<div class="drawerTop">
<div style="display:flex;align-items:center;">
<div class="emp_lingdaiDiv">
<i class="iconfont icon-lingdai" style="font-size:22px;"></i>
</div>
<span class="drawer_Span" v-if="setingObj.type==1">离职</span>
<span class="drawer_Span" v-if="setingObj.type==2">重置密码</span>
<span class="drawer_Span" v-if="setingObj.type==3">调岗</span>
<span class="drawer_Span" v-if="setingObj.type==4">调部门</span>
</div>
<div>
<i class="iconfont icon-guanbi" @click="closeShenheForm"></i>
</div>
</div>
<div style="margin:20px;">
<div class="EmpLine_title">
<div class="Emp_Line"></div>
<div>选中人员</div>
</div>
<div class="EMP_Main">
<div class="EMPList" v-for="item in setingObj.selected">
<q-avatar size="md" v-if="item.UserIcon">
<img :src="item.UserIcon" />
</q-avatar>
<q-avatar size="md" color="teal-10" text-color="white" v-if="!item.UserIcon">
{{item.EmployeeName}}</q-avatar>
<div style="margin-top:6px;">{{item.EmployeeName}}</div>
</div>
</div>
</div>
<!-- 离职 -->
<div style="margin:20px;" v-if="setingObj.type==1">
<div class="EmpLine_title">
<div class="Emp_Line"></div>
<div>确认离职</div>
</div>
<q-toggle size="md" color="primary" style="margin:20px 0" v-model="LeveaMsg.LeaveStatus" :false-value="1"
:true-value="4" />
<div class="row">
<div class="col-6">
<q-input filled v-model="LeveaMsg.LeaveTime" class="col-3 q-pr-lg q-pb-lg" mask="date" label="离职时间">
<template v-slot:append>
<q-icon name="event" class="cursor-pointer">
<q-popup-proxy ref="qDateProxy1" transition-show="scale" transition-hide="scale">
<q-date v-model="LeveaMsg.LeaveTime" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
</div>
</div>
</div>
<!-- 修改部门 -->
<div style="margin:20px;" v-if="setingObj.type==4">
<div class="EmpLine_title">
<div class="Emp_Line"></div>
<div>修改部门</div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-6">
<selectTree :treeData='DeptList' :defaultArray="returnString" nodeKey="DeptId" :multiple="false"
labelKey="DeptName" childrenKey="ChildList" tipText="选择部门" @getChild="getChild"
classStr="col-6 q-pr-lg q-pb-lg"></selectTree>
</div>
</div>
</div>
<!-- 修改岗位 -->
<div style="margin:20px;" v-if="setingObj.type==3">
<div class="EmpLine_title">
<div class="Emp_Line"></div>
<div>修改岗位</div>
</div>
<div class="row" style="margin-top:20px;">
<div class="col-6">
<q-select filled stack-label option-value="PostId" option-label="PostName"
v-model="Post_Id" ref="Post_Id" :options="PostList" label="岗位" :dense="false"
class="col-6 q-pr-lg q-pb-lg" emit-value map-options />
</div>
</div>
</div>
<div style="text-align:center">
<q-btn color="primary" label="确定" @click="saveReuslt()" style="width:400px;" />
<!-- <q-btn size="xs" @click="saveReuslt()" icon="iconfont icon-chenggong" color="primary" style="font-weight:400"
class="q-mr-md" label="确定" :loading="saveLoading" /> -->
</div>
</q-card>
<div class="dialog-out-close" @click="closeShenheForm"
style="height:40px !important;border-top-left-radius: 4px !important;border-bottom-left-radius: 4px !important;">
<q-icon name="iconfont icon-jujue1" size="26px" />
</div>
</q-dialog>
</template>
<script>
import {
UpdateEmployeeLeave,
UpdateEmployeeDept,
UpdateEmployeePost
} from '../../../api/users/user'
import {
getDeptTree
} from '../../../api/system/dept.js'
//岗位
import {
getPostList
} from '../../../api/system/post'
import selectTree from '../../../components/common/select-tree'
export default {
props: {
setingObj: {
type: Object,
default: null
}
},
components: {
selectTree
},
data() {
return {
persistent: true,
saveLoading: false,
LeveaMsg:{
LeaveStatus:4, //是否离职 1是 2否
LeaveTime:'' //离职时间
},
returnString:[], //部门默认
DeptList: [], // 部门下拉
PostList:[], //岗位下拉
departId:-2, // 部门
Post_Id:0 //岗位
}
},
mounted() {
if(this.setingObj.type==4){
this.getDepartList();
}
if(this.setingObj.type==3){
this.queryPostList();
}
},
methods: {
closeShenheForm() {
this.$emit('close')
},
//获取部门下拉数据
getDepartList() {
let msg = {
School_Id: this.setingObj.selected[0].School_Id
}
getDeptTree(msg).then(res => {
if (res.Code == 1) {
this.DeptList = res.Data;
}
})
},
//获取岗位下拉
queryPostList() {
var postMsg = {
RB_Dept_Id: this.setingObj.selected[0].Dept_Id
};
getPostList(postMsg).then(res => {
if (res.Code == 1) {
this.PostList = res.Data;
}
})
},
//选择部门
getChild(deptArray) {
if (deptArray && deptArray != '') {
this.departId = deptArray;
}
},
//保存信息
saveReuslt() {
if(this.setingObj.type==1){
let Msg=[];
if(this.LeveaMsg.LeaveTime==''){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择离职日期`
})
return;
}
if(this.setingObj.selected.length>0){
this.setingObj.selected.forEach(x=>{
let obj = {
Id:x.Id,
AccountId:x.AccountId,
AccountType:x.AccountType,
LeaveStatus:this.LeveaMsg.LeaveStatus,
LeaveTime:this.LeveaMsg.LeaveTime
}
Msg.push(obj);
})
}
UpdateEmployeeLeave(Msg).then(res => {
if (res.Code == 1) {
this.$emit('success');
this.$emit('close')
}
})
}
if(this.setingObj.type==4){
let Msg=[];
if(this.departId==-2){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择部门`
})
return;
}
let obj={};
if(this.setingObj.selected.length>0){
obj.Id=this.setingObj.selected[0].Id;
obj.AccountId=this.setingObj.selected[0].AccountId;
obj.AccountType=this.setingObj.selected[0].AccountType;
obj.Dept_Id=this.departId;
}
UpdateEmployeeDept(obj).then(res => {
if (res.Code == 1) {
this.$emit('success');
this.$emit('close')
}
})
}
if(this.setingObj.type==3){
if(this.Post_Id==0){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择岗位`
})
return;
}
let obj={};
if(this.setingObj.selected.length>0){
obj.Id=this.setingObj.selected[0].Id;
obj.AccountId=this.setingObj.selected[0].AccountId;
obj.AccountType=this.setingObj.selected[0].AccountType;
obj.Post_Id=this.Post_Id;
}
UpdateEmployeePost(obj).then(res => {
if (res.Code == 1) {
this.$emit('success');
this.$emit('close')
}
})
}
}
},
}
</script>
<style>
</style>
<style>
.Sysuser_Date .el-range-editor .el-range-input{
background-color:transparent;
.Sysuser_Date .el-range-editor .el-range-input {
background-color: transparent;
}
.Sysuser_Date .el-range-editor.el-input__inner{
background-color:transparent;
.Sysuser_Date .el-range-editor.el-input__inner {
background-color: transparent;
}
.syster_qDropdown .q-btn__wrapper {
padding: 0 3px;
min-height: 0 !important;
}
</style>
<template>
<div class="page-body">
......@@ -37,49 +43,59 @@
</div>
<div class="col-3 Sysuser_Date">
<q-field filled class="col-6 q-pr-lg q-pb-lg">
            <template v-slot:control>
              <el-date-picker v-model="dateListOne" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange"
 style="border:none;"
                range-separator="至" start-placeholder="入职开始日期" end-placeholder="入职结束日期">
              </el-date-picker>
            </template>
          </q-field>
            <template v-slot:control>
              
<el-date-picker v-model="dateListOne" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange"
 style="border:none;"                 range-separator="至"  start-placeholder="入职开始日期"
 end-placeholder="入职结束日期">
              </el-date-picker>
            </template>
          </q-field>
</div>
<div class="col-3 Sysuser_Date">
<q-field filled class="col-6 q-pr-lg q-pb-lg">
            <template v-slot:control>
              <el-date-picker v-model="dateListThree" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange"
 style="border:none;"
                range-separator="至" start-placeholder="离职开始日期" end-placeholder="离职结束日期">
              </el-date-picker>
            </template>
          </q-field>
            <template v-slot:control>
              
<el-date-picker v-model="dateListThree" @change="resetSearch()" value-format="yyyy-MM-dd" type="daterange"
 style="border:none;"                 range-separator="至"  start-placeholder="离职开始日期"
 end-placeholder="离职结束日期">
              </el-date-picker>
            </template>
          </q-field>
</div>
<div class="col-3 Sysuser_Date">
<q-field filled class="col-6 q-pr-lg q-pb-lg">
            <template v-slot:control>
              <el-date-picker v-model="dateListTwo" @change="resetSearch()" value-format="yyyy-MM" type="monthrange" style="border:none;"
                range-separator="至" start-placeholder="生日开始月" end-placeholder="生日结束月">
              </el-date-picker>
            </template>
          </q-field>
            <template v-slot:control>
              
<el-date-picker v-model="dateListTwo" @change="resetSearch()" value-format="yyyy-MM" type="monthrange" style="border:none;"
                range-separator="至"  start-placeholder="生日开始月"  end-placeholder="生日结束月">
              </el-date-picker>
            </template>
          </q-field>
</div>
<!-- <div class="col-3">
<q-input @input="resetSearch" clearable standout="bg-primary text-white" v-model="msg.MTel" label="电话" />
</div> -->
</div>
<div class="page-option">
<q-btn color="accent" class="q-mr-md" icon="add" label="新增管理者" @click="EditManager(null)" />
<q-select filled v-model="checkedOP" stack-label option-value="Id" option-label="Name" style="margin-top:20px;"
ref="LeaveStatus" :options="operationList" label="更多" :dense="false"
class="col-6 q-pr-lg q-pb-lg" emit-value map-options />
<q-btn-dropdown outline color="dark" label="更多">
<q-list>
<q-item clickable v-close-popup @click="getType(1)">
<q-item-section>
<q-item-label>离职</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="resetPassWord()">
<q-item-section>
<q-item-label>重置密码</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
</div>
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
selection="multiple" :selected.sync="selected" :selected-rows-label="getSelectedString"
class="sticky-right-column-table sticky-tow-column-table" separator="none" title="员工管理" :data="data"
:columns="columns" row-key="name">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat selection="multiple"
:selected.sync="selected" class="sticky-right-column-table sticky-tow-column-table" separator="none"
title="员工管理" :data="data" :columns="columns" row-key="Id">
<template v-slot:body-cell-UserIcon="props">
<q-td auto-width :props="props">
<q-avatar size="md" v-if="props.value">
......@@ -127,19 +143,35 @@
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<div style="min-width:190px;width:100%">
<div style="min-width:190px;width:100%" class="syster_qDropdown">
<q-btn v-if="props.row.ManagerAccount==''" flat size="xs" icon="iconfont icon-ziyuan" color="warning"
style="font-weight:400" class="q-mr-xs" label="创建账号" @click="createAccount(props.row.MId)" />
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="编辑"
@click="EditManager(props.row)" />
<q-btn flat size="xs" icon="iconfont icon-ziyuan" color="warning" style="font-weight:400" class="q-mr-xs"
label="更多" @click="resetPw(props.row.MId)" />
<q-btn-dropdown outline color="dark" label="更多" style="margin-left:10px;">
<q-list>
<q-item clickable v-close-popup @click="transFerJob(props.row,3)">
<q-item-section>
<q-item-label>调岗</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-close-popup @click="transFerJob(props.row,4)">
<q-item-section>
<q-item-label>调部门</q-item-label>
</q-item-section>
</q-item>
</q-list>
</q-btn-dropdown>
<!-- <q-btn flat size="xs" icon="iconfont icon-ziyuan" color="warning" style="font-weight:400" class="q-mr-xs"
label="更多" @click="resetPw(props.row.MId)" /> -->
</div>
</q-td>
</template>
</q-table>
<manager-form v-if="isShowManagerForm" :save-obj="managerOption" @close="closeStuForm" @success="refreshPage">
</manager-form>
<employee-set v-if="isShowEmployeeSet" :seting-obj="setObj" @close="closeSetForm" @success="refreshSetPage">
</employee-set>
</div>
</div>
</template>
......@@ -152,7 +184,7 @@
GetLeaveStatus
} from '../../api/school/index'
import {
resetPassword
BatchResetUserPassword
} from '../../api/users/user.js'
//岗位
import {
......@@ -163,6 +195,7 @@
getDeptTree
} from '../../api/system/dept.js'
import managerForm from '../../components/school/manager/manager-form'
import employeeSet from '../../components/school/manager/employee-set'
import selectTree from '../../components/common/select-tree'
export default {
meta: {
......@@ -170,7 +203,8 @@
},
components: {
managerForm,
selectTree
selectTree,
employeeSet
},
data() {
return {
......@@ -180,7 +214,7 @@
required: true,
label: '',
align: 'left',
},{
}, {
name: 'UserIcon',
label: '',
field: 'UserIcon',
......@@ -290,22 +324,13 @@
LeaveStatusList: [], //在职状态
dateListOne: [], //入职-离职日期
dateListTwo: [], //生日开始-结束日期
dateListThree:[], //开始-结束离职日期
operationList:[{ //更多操作
Id:0,
Name:'离职'
},{
Id:1,
Name:'重置密码'
},{
Id:2,
Name:'调岗'
},{
Id:3,
Name:'调部门'
}],
checkedOP:0, //选中
dateListThree: [], //开始-结束离职日期
selected: [],
isShowEmployeeSet: false, //是否显示设置
setObj: {
type: 0,
selected: []
}
}
},
mounted() {
......@@ -348,7 +373,16 @@
})
})
},
resetPw(id) {
//重置密码
resetPassWord() {
if(this.selected.length==0){
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择修改人员`
})
return;
}
let that = this
this.$q.dialog({
title: "重置密码",
......@@ -364,11 +398,16 @@
focus: true
}
}).onOk(() => {
that.resetLoading = true
resetPassword({
AccountType: 1,
AccountId: id
}).then(res => {
that.resetLoading = true;
let Msg=[];
this.selected.forEach(x=>{
let obj={
AccountType:x.AccountType,
AccountId:x.AccountId
}
Msg.push(obj);
})
BatchResetUserPassword(Msg).then(res => {
that.resetLoading = false
that.$q.dialog({
title: "密码重置成功",
......@@ -380,6 +419,7 @@
focus: true
}
})
this.selected = [];
}).catch(() => {
that.resetLoading = false
});
......@@ -486,6 +526,15 @@
closeStuForm() {
this.isShowManagerForm = false;
},
//关闭右侧抽屉
closeSetForm() {
this.isShowEmployeeSet = false;
},
//关抽屉刷新数据
refreshSetPage() {
this.getManager();
this.selected = [];
},
getChild(deptArray) {
var tempStr = "";
if (deptArray && deptArray != '') {
......@@ -534,9 +583,26 @@
}
})
},
getSelectedString(){
console.log(this.selected,'selected');
return this.selected.length === 0 ? '' : `${this.selected.length} record${this.selected.length > 1 ? 's' : ''} selected of ${this.data.length}`
getType(num) {
this.setObj.type = num;
if (this.selected.length == 0) {
this.$q.notify({
type: 'negative',
position: "top",
message: `请选择员工`
})
return;
} else {
this.setObj.selected = this.selected
}
this.isShowEmployeeSet = true;
},
//单个调岗和调部门
transFerJob(obj, type) {
this.setObj.type = type;
this.setObj.selected = [];
this.setObj.selected.push(obj);
this.isShowEmployeeSet = true;
}
},
}
......@@ -544,4 +610,5 @@
</script>
<style lang="sass">
@import url('~assets/css/table.sass');
</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