员工排班信息

This commit is contained in:
wuxw 2022-10-31 03:43:03 +08:00
parent b15e107c88
commit b9fd4879df
6 changed files with 233 additions and 3 deletions

View File

@ -41,6 +41,8 @@
}
vc.emit('addScheduleClasses','notifyScheduleCycle',$that.scheduleClassesDayInfo.scheduleCycle);
vc.emit('editScheduleClasses','notifyScheduleCycle',$that.scheduleClassesDayInfo.scheduleCycle);
},
_changeWorkdayInfo:function(item){
vc.emit('editScheduleClassesDay', 'notify',item);

View File

@ -42,6 +42,8 @@
}
}
vc.emit('addScheduleClasses', 'notifyScheduleCycle', $that.scheduleClassesWeekInfo.scheduleCycle);
vc.emit('editScheduleClasses', 'notifyScheduleCycle', $that.scheduleClassesWeekInfo.scheduleCycle);
},
_changeWorkdayWeekInfo: function (item) {
vc.emit('editScheduleClassesDay', 'notify', item);

View File

@ -24,7 +24,7 @@
<span><vc:i18n name="排班类型" namespace="editScheduleClasses"></vc:i18n></span>
</label>
<div class="col-sm-4">
<select class="custom-select" v-model="editScheduleClassesInfo.scheduleType" @change="_changeScheduleType()">
<select class="custom-select" v-model="editScheduleClassesInfo.scheduleType" @change="_changeScheduleType(1)">
<option selected disabled value="">
{{vc.i18n('必填,请选择排班类型','editScheduleClasses')}}
</option>

View File

@ -23,8 +23,11 @@
},
methods: {
_changeScheduleType: function () {
$that.editScheduleClassesInfo.days = [];
_changeScheduleType: function (_customChage) {
if(_customChage){
$that.editScheduleClassesInfo.days = [];
}
if($that.editScheduleClassesInfo.scheduleType == '1001'){
vc.emit("scheduleClassesDayInfo", "notify",{
scheduleCycle:$that.editScheduleClassesInfo.scheduleCycle,

View File

@ -0,0 +1,127 @@
<div class="animated fadeInRight ecommerce">
<div class="row">
<div class="col-lg-12">
<div class="ibox ">
<div class="ibox-title">
<h5>
<span>
<vc:i18n name="查询条件" namespace="scheduleClassesPage"></vc:i18n>
</span>
</h5>
<div class="ibox-tools" style="top:10px;"></div>
</div>
<div class="ibox-content">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<input type="text" :placeholder="vc.i18n('请输入员工名称','scheduleClassesPage')"
v-model="scheduleClassesPageInfo.conditions.nameLike" class=" form-control ">
</div>
</div>
<div class="col-sm-3">
<select class="custom-select" v-model="scheduleClassesPageInfo.conditions.state">
<option selected value="">{{vc.i18n('请选择状态','scheduleClassesPage')}}</option>
<option v-for="(item,index) in scheduleClassesPageInfo.states" :key="index"
v-bind:value="item.statusCd">{{item.name}}
</option>
</select>
</div>
<div class="col-sm-3">
<div class="form-group">
<input type="text" :placeholder="vc.i18n('请输入日期 YYYY-MM','scheduleClassesPage')"
v-model="scheduleClassesPageInfo.conditions.curDate"
class=" form-control queryDate">
</div>
</div>
<div class="col-sm-2">
<button type="button" class="btn btn-primary btn-sm"
v-on:click="_queryScheduleClassesMethod()">
<i class="fa fa-search"></i>
<span>
<vc:i18n name="查询" namespace="scheduleClassesPage"></vc:i18n>
</span>
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="ibox">
<div class="ibox-title">
<h5>
<span>
<vc:i18n name="排班表" namespace="scheduleClassesPage"></vc:i18n>
</span>
</h5>
<div class="ibox-tools" style="top:10px;">
<!-- <button type="button" class="btn btn-primary btn-sm" v-on:click="_openAddScheduleClassesModal()">
<i class="fa fa-plus"></i><span>
<vc:i18n name="添加" namespace="scheduleClassesPage"></vc:i18n></span>
</button> -->
</div>
</div>
<div class="ibox-content ">
<div class="java110-table-scoll-width">
<table class="footable table table-stripped toggle-arrow-tiny" data-page-size="15">
<thead>
<tr>
<th class="text-center">
<span>
<vc:i18n name="员工名称" namespace="scheduleClassesPage"></vc:i18n>
</span>
</th>
<th class="text-center " v-for="index in scheduleClassesPageInfo.maxDay">
<div>
{{index}}<span>
<vc:i18n name="日"></vc:i18n>
</span>
</div>
</th>
</tr>
</thead>
<tbody>
<tr v-for="staff in scheduleClassesPageInfo.staffs">
<td class="text-center padding-lg ">
<div class=" text-center padding-lg labeling-strip">
{{staff.staffName}}
</div>
</td>
<td class="text-center" v-for="(day,index) in staff.days">
<div class=" text-center border padding-lg labeling-strip"
style="border-radius: 5px;cursor:pointer">
<div>{{day.workday=='1001'?'正常上下班':'休息'}}</div>
<div v-for="(time,index) in day.times">{{time.startTime}}-{{time.endTime}}
</div>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="11">
<ul class="pagination float-right"></ul>
</td>
</tr>
</tfoot>
</table>
</div>
<!-- 分页 -->
<div class="row margin-top-xs">
<div class="col-sm-9">
<div>
</div>
</div>
<div class="col-sm-3 float-right">
<vc:create path="frame/pagination"></vc:create>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@ -0,0 +1,96 @@
/**
入驻小区
**/
(function (vc) {
var DEFAULT_PAGE = 1;
var DEFAULT_ROWS = 10;
vc.extends({
data: {
scheduleClassesPageInfo: {
staffs: [],
maxDay:30,
curMonth:'',
curYear:'',
total: 0,
records: 1,
moreCondition: false,
states: '',
conditions: {
staffNameLike: '',
staffName: '',
curDate: ''
}
}
},
_initMethod: function () {
$that.initStaffDate();
vc.component._listStaffScheduleClassess(DEFAULT_PAGE, DEFAULT_ROWS);
},
_initEvent: function () {
vc.on('scheduleClassesPage', 'listScheduleClasses', function (_param) {
vc.component._listStaffScheduleClassess(DEFAULT_PAGE, DEFAULT_ROWS);
});
vc.on('pagination', 'page_event', function (_currentPage) {
vc.component._listStaffScheduleClassess(_currentPage, DEFAULT_ROWS);
});
},
methods: {
initStaffDate: function() {
let _date = new Date(new Date());
$that.scheduleClassesPageInfo.curMonth = _date.getMonth() + 1
$that.scheduleClassesPageInfo.curYear = _date.getFullYear();
$that.scheduleClassesPageInfo.conditions.curDate = _date.getFullYear() + "-" + (_date.getMonth() + 1);
$that.scheduleClassesPageInfo.maxDay = new Date(_date.getFullYear(), _date.getMonth() + 1, 0).getDate();
vc.initDateMonth('queryDate', function(_value) {
$that.scheduleClassesPageInfo.conditions.curDate = _value;
let _values = _value.split('-');
$that.scheduleClassesPageInfo.curYear = _values[0];
$that.scheduleClassesPageInfo.curMonth = _values[1];
vc.component._listStaffScheduleClassess(DEFAULT_PAGE, DEFAULT_ROWS);
})
},
_listStaffScheduleClassess: function (_page, _rows) {
vc.component.scheduleClassesPageInfo.conditions.page = _page;
vc.component.scheduleClassesPageInfo.conditions.row = _rows;
let param = {
params: vc.component.scheduleClassesPageInfo.conditions
};
//发送get请求
vc.http.apiGet('/scheduleClasses.staffMonthScheduleClasses',
param,
function (json, res) {
let _scheduleClassesPageInfo = JSON.parse(json);
vc.component.scheduleClassesPageInfo.total = _scheduleClassesPageInfo.total;
vc.component.scheduleClassesPageInfo.records = _scheduleClassesPageInfo.records;
vc.component.scheduleClassesPageInfo.staffs = _scheduleClassesPageInfo.data;
vc.emit('pagination', 'init', {
total: vc.component.scheduleClassesPageInfo.records,
dataCount: vc.component.scheduleClassesPageInfo.total,
currentPage: _page
});
},
function (errInfo, error) {
console.log('请求失败处理');
}
);
},
//查询
_queryScheduleClassesMethod: function () {
vc.component._listStaffScheduleClassess(DEFAULT_PAGE, DEFAULT_ROWS);
},
_moreCondition: function () {
if (vc.component.scheduleClassesPageInfo.moreCondition) {
vc.component.scheduleClassesPageInfo.moreCondition = false;
} else {
vc.component.scheduleClassesPageInfo.moreCondition = true;
}
},
}
});
})(window.vc);