Commit b064f403 authored by zhengke's avatar zhengke

修改

parent defd698b
import request from '../../utils/request'
/**
* 获取日语培训列表
*
*/
export function GetDutyFrequencyList(data) {
return request({
url: '/Duty/GetDutyFrequencyList',
method: 'post',
data
})
}
//获取排班计划列表数据
export function GetDutyPlanPage(data) {
return request({
url: '/DutyPlan/GetDutyPlanPage',
method: 'post',
data
})
}
\ No newline at end of file
<template>
<q-dialog v-model="persistent" content-class="bg-grey-1" persistent transition-show="scale" transition-hide="scale">
<q-card style="width: 800px;max-width:900px;">
<q-card-section>
<div class="text-h6">{{objOption.TId==0?'新增排班计划':'修改排班计划'}}</div>
</q-card-section>
<q-card-section class="q-pt-none scroll" style="max-height: 70vh">
<div class="row wrap">
<q-input filled v-model="objOption.Date" class="col-6 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="objOption.Date" @input="() => $refs.qDateProxy1.hide()" />
</q-popup-proxy>
</q-icon>
</template>
</q-input>
<q-select filled stack-label option-value="SId" option-label="SName" v-model="objOption.School_Id"
ref="School_Id" :options="schoolList" label="所属校区" :dense="false" class="col-6 q-pb-lg" emit-value
map-options :rules="[val => !!val || '请选择所属校区']" />
</div>
<div class="row wrap" style="margin:20px 0;">
<div class="col-6">
新增计划
<q-btn style="margin-left:30px;" size="10px" @click="addScheduPlan()" round color="primary"
icon="iconfont icon-img_haha" />
</div>
</div>
<div class="row wrap" v-for="(item,index) in objOption.PlanDetails" :key="index">
<div class="col-6">
<q-select filled stack-label option-value="Id" option-label="Name" v-model="objOption.Shift" ref="CateId"
:options="ClassList" label="班次" class="col-6 q-pr-lg q-pb-lg" emit-value map-options />
</div>
<div class="col-6" style="position:relative;">
<q-select filled stack-label option-value="Id" option-label="EmployeeName" v-model="objOption.DutyMan"
ref="CateId" :options="EmployeeList" label="值班人员" class="col-6 q-pr-lg q-pb-lg" emit-value map-options />
<q-btn style="position:absolute;right:-5px;top:20px;" size="6px" @click="delStepPlan(index)" round
color="red" icon="iconfont icon-guanbi1" />
</div>
</div>
</q-card-section>
<q-separator />
<q-card-actions align="right" class="bg-white">
<q-btn label="取消" flat color="grey-10" style="font-weight:400 !important" @click="closeSaveForm" />
<q-btn label="立即提交" color="accent q-px-md" style="font-weight:400 !important" @click="saveTeacher" />
</q-card-actions>
</q-card>
</q-dialog>
</template>
<script>
import {
getSchoolDropdown
} from '../../api/school/index'
import {
GetDutyFrequencyList
} from '../../api/scheduling/schedu'
import {
queryEmployee //员工列表
} from '../../api/users/user'
export default {
components: {},
props: {
saveObj: {
type: Object,
default: null
}
},
data() {
return {
persistent: true,
objOption: {
Id: 0,
Date: '', //值班时间
School_Id: '', //校区
PlanDetails: [] //班次列表
},
optionTitle: "",
schoolList: [],
ClassList: [{ //班次数据
Id: 1,
Name: '1班'
}, {
Id: 2,
Name: '2班'
}],
EmployeeList: [], //员工数据
}
},
created() {
this.getSchool();
this.Employee();
//this.getDutyFrequencyList();
},
mounted() {
// this.initObj()
},
methods: {
getSchool() {
getSchoolDropdown({}).then(res => {
this.schoolList = res.Data;
this.$forceUpdate();
})
},
closeSaveForm() {
this.$emit('close')
this.persistent = false
},
saveTeacher() {
},
//点击新增排班计划
addScheduPlan() {
let obj = {
Id: 0,
PlanId: 0,
Shift: 0,
DutyMan: 0
}
this.objOption.PlanDetails.push(obj);
},
//删除
delStepPlan(index) {
this.objOption.PlanDetails.splice(index, 1);
},
//获取班次信息
getDutyFrequencyList() {
GetDutyFrequencyList().then(res => {
console.log(res, '数据来也');
})
},
//获取员工列表
Employee() {
var qMsg = {
EmployeeName: ''
}
queryEmployee(qMsg).then(res => {
if (res.Code == 1) {
this.EmployeeList = res.Data;
}
})
},
},
}
</script>
<style>
</style>
......@@ -34,6 +34,8 @@
</q-btn>
<q-btn @click="changeMenu(2)" v-if="AccountType==2 || ispower==true" flat :color="chosenMenu==2?'primary':'blue-grey-14'" :class="[chosenMenu==2?'text-weight-bold':'']" label="备课管理">
</q-btn>
<q-btn flat @click="changeMenu(3)" label="我的排班计划"></q-btn>
</div>
<div v-if="chosenMenu==1" class="flex col" style="flex: 1">
<okr v-if="okrMenu==1"></okr>
......@@ -42,6 +44,9 @@
<div v-if="chosenMenu==2" class="col" style="height: 750px;overflow: auto">
<teachplan></teachplan>
</div>
<div v-if="chosenMenu==3" style="height: 750px;overflow: auto">
<mySchedule></mySchedule>
</div>
<!-- zk新增公告弹窗 -->
<notice-form v-if="isShowNotice" @fathergoBefore="fathergoBefore" @fathergoAfter="fathergoAfter" :seting-obj="noticeObj" @close="closeNoticeForm">
</notice-form>
......@@ -59,12 +64,15 @@
import okr from './okr/index'
import alignView from './okr/okr-align-view'
import noticeForm from '../components/course/notice-form'
import mySchedule from './scheduling/mySchedule'
export default {
components:{
teachplan,
okr,
alignView,
noticeForm
noticeForm,
mySchedule
},
name: 'PageIndex',
data(){
......
......@@ -334,7 +334,7 @@
this.data = res.Data;
this.plmsg.TeacherId = res.Data.UpdateBy;
var beginTimes =this.nowDate.replace(/-/g,"/"); //当前
var endTimes =this.data.ClassEndTime.replace(/-/g,"/"); //结束
var endTimes =this.data.ClassEndTime.replace(/-/g,"/"); //结束
var a =(Date.parse(endTimes)-Date.parse(beginTimes))/3600/1000;
if(a<0){
this.isCanEdit=true; //可以编辑
......
<template>
<div class="page-body">
<div class="page-search row items-center">
<!-- <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.RoomName" label="教室名称"
@clear="resetSearch" maxlength="30" />
</div>
</div> -->
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat
class="sticky-column-table" separator="none" title="我的排班计划" :data="dataList"
:columns="columns" row-key="name">
<!-- <template v-slot:top="props">
<div class="col-2 q-table__title">教室信息</div>
<q-space />
<div class="page-option">
<q-btn color="accent" size="sm" icon="add" label="新增教室" @click="EditClassRoom(null)" />
</div>
</template> -->
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<div>
<q-btn flat size="xs" icon="edit" color="accent" style="font-weight:400" label="开始值班"
@click="StartSchedule(props.row)" />
</div>
</q-td>
</template>
</q-table>
</div>
</div>
</template>
<script>
// import {
// queryClassRoomPage,
// } from '../../api/school/index'
export default {
meta: {
title: "我的排班计划"
},
components: {
},
data() {
return {
currentUrl: "",
columns: [{
name: 'RoomName',
label: '日期',
align: 'left',
field: 'RoomName',
},
{
name: 'SchoolName',
label: '校区',
field: 'SchoolName',
align: 'left'
},
{
name: 'StatusStr',
label: '时间(班次)',
align: 'left',
field: 'StatusStr'
},
{
name: 'UpdateByName',
label: '任务清单',
align: 'left',
field: 'UpdateByName'
},
{
name: 'UpdateTimeStr',
label: '接班对象',
align: 'left',
field: 'UpdateTimeStr'
},
{
name: 'UpdateTimeStr',
label: '交班对象',
align: 'left',
field: 'UpdateTimeStr'
},
{
name: 'UpdateTimeStr',
label: '排班人',
align: 'left',
field: 'UpdateTimeStr'
},
{
name: 'optioned',
label: '操作',
field: 'RoomId'
}
],
dataList: [],
loading: true,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
RoomName: "",
School_Id: 0, //校区编号
Status: '-1', //状态
},
pageCount: 0,
}
},
created() {
//this.getSchool();
},
mounted() {
},
methods: {
//获取校区列表
getSchool() {
getSchoolDropdown({}).then(res => {
if (res.Code == 1) {
}
})
},
//分页改变
changePage(val) {
this.msg.pageIndex = val;
this.getClassRoomPage();
},
//开始值班
StartSchedule(){
}
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
<template>
<div>
123
</div>
</template>
\ No newline at end of file
<template>
<div class="page-body">
<div class="page-search row items-center">
<!-- <div class="col row wrap q-mr-lg q-col-gutter-md">
<div class="col-3">
<q-input @change="resetSearch" clearable standout="bg-primary text-white" v-model="msg.RoomName" label="教室名称"
@clear="resetSearch" maxlength="30" />
</div>
</div> -->
</div>
<div class="page-content">
<q-table :pagination="msg" :loading="loading" no-data-label="暂无相关数据" flat class="sticky-column-table"
separator="none" title="排班计划" :data="dataList" :columns="columns" row-key="name">
<template v-slot:top="props">
<div class="col-2 q-table__title">排班计划</div>
<q-space />
<div class="page-option">
<q-btn color="accent" size="sm" icon="add" label="新增排班计划" @click="EditSchedu(null)" />
</div>
</template>
<template v-slot:body="props">
</template>
<template v-slot:bottom>
<q-pagination class="full-width justify-end" v-model="msg.pageIndex" color="primary" :max="pageCount"
:input="true" @input="changePage" />
</template>
<template v-slot:body-cell-optioned="props">
<q-td :props="props">
<q-btn flat size="xs" icon="edit" style="font-weight:400;" color="edit" class="q-mr-xs" label="修改"
 @click=""   />
<q-btn flat size="xs" icon="delete" style="font-weight:400;" color="negative" class="q-mr-xs" label="删除"
 @click="" />
<q-btn flat size="xs" icon="iconfont icon-View" style="font-weight:400;" class="q-mr-xs" label="查看"  @click=""   />
</q-td>
</template>
</q-table>
<schedul-form v-if="isShowSchedu" :save-obj="scheduOption" @close="closeScheduForm" @success="refreshPage">
</schedul-form>
</div>
</div>
</template>
<script>
import {
GetDutyPlanPage,
} from '../../api/scheduling/schedu'
import schedulForm from '../../components/schedul/schedul-form'
export default {
meta: {
title: "排班计划"
},
components: {
schedulForm
},
data() {
return {
columns: [{
name: 'PlanDate',
label: '日期',
align: 'left',
field: 'PlanDate',
},
{
name: 'SchoolName',
label: '校区',
field: 'SchoolName',
align: 'left'
},
{
name: 'ShiftName',
label: '班次',
align: 'left',
field: 'ShiftName'
},
{
name: 'StartTime',
label: '值班时间',
align: 'left',
field: 'StartTime'
},
{
name: 'DutyManName',
label: '值班人员',
align: 'left',
field: 'DutyManName'
},
{
name: 'StartTime',
label: '状态',
align: 'left',
field: 'StartTime'
},
{
name: 'optioned',
label: '操作',
field: 'RoomId'
}
],
dataList: [],
loading: false,
msg: {
pageIndex: 1,
pageSize: 12,
rowsPerPage: 12,
},
isShowSchedu: false,
scheduOption: null,
pageCount: 0,
}
},
created() {
this.getList();
},
mounted() {},
methods: {
//获取校区列表
getList() {
GetDutyPlanPage(this.msg).then(res => {
if (res.Code == 1) {
console.log(res, '列表数据');
this.dataList = res.Data.PageData;
}
})
},
//分页改变
changePage(val) {
this.msg.pageIndex = val;
this.getClassRoomPage();
},
//新增修改值班计划
EditSchedu(obj) {
if (obj) {
this.scheduOption = obj;
} else {
this.scheduOption = null;
}
this.isShowSchedu = true;
},
//关闭新增修改弹窗
closeScheduForm() {
this.isShowSchedu = false;
},
//刷新页面
refreshPage() {
// if (!this.classRoomOption) {
// this.msg.pageIndex = 1;
// this.msg.RoomName = "";
// this.msg.School_Id = 0;
// }
// this.getClassRoomPage()
},
},
}
</script>
<style lang="sass">
@import url('~assets/css/table.sass')
</style>
......@@ -662,11 +662,21 @@ const routes = [{
component: () =>
import("pages/studyAbroad/studyProAudit.vue")
},
{
path: "/scheduling/schedulingPlan", //排班计划
component: () =>
import("pages/scheduling/schedulingPlan.vue")
},
{
path: "/scheduling/schedulDetail", //我的工作计划排班详情
component: () =>
import("pages/scheduling/schedulDetail.vue")
},
{
path: "/test", //API测试
component: () =>
import("pages/test.vue")
},
}
]
},
// Always leave this as last one,
......
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