Browse Source

工作日历修改 2022年10月21日 sxm

master
[li_she] 3 years ago
parent
commit
015a413a17
  1. 5
      src/api/base.js
  2. 649
      src/views/modules/base/calendar.vue

5
src/api/base.js

@ -36,4 +36,9 @@ export const getCalendarExceptionShiftData = data => createAPI(`/base/getCalenda
export const updateCESShift = data => createAPI(`/base/updateCESShift`,'post',data) export const updateCESShift = data => createAPI(`/base/updateCESShift`,'post',data)
export const getCalendarDatetypeInfo = data => createAPI(`/base/getCalendarDatetypeInfo`,'post',data)
export const updateWorkingCalendar = data => createAPI(`/base/updateWorkingCalendar`,'post',data)

649
src/views/modules/base/calendar.vue

@ -66,13 +66,14 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-dialog title="维护工作日历" :close-on-click-modal="false" v-drag :visible.sync="calendarModelFlag" width="341px" >
<el-dialog title="维护工作日历" :close-on-click-modal="false" v-drag :visible.sync="calendarModelFlag" width="341px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'工厂编号:'"> <el-form-item :label="'工厂编号:'">
<el-input v-model="newCalendarData.site" :disabled="calendarModelDisableFlag" style="width: 130px"></el-input> <el-input v-model="newCalendarData.site" :disabled="calendarModelDisableFlag" style="width: 130px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'日历编号:'"> <el-form-item :label="'日历编号:'">
<el-input v-model="newCalendarData.calendarId" :disabled="calendarModelDisableFlag" style="width: 130px" ></el-input>
<el-input v-model="newCalendarData.calendarId" :disabled="calendarModelDisableFlag"
style="width: 130px"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'日历描述:'"> <el-form-item :label="'日历描述:'">
<el-input v-model="newCalendarData.calendarDesc" style="width: 130px"></el-input> <el-input v-model="newCalendarData.calendarDesc" style="width: 130px"></el-input>
@ -84,12 +85,12 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center" >
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="calendarSave()">保存</el-button> <el-button type="primary" @click="calendarSave()">保存</el-button>
<el-button type="primary" @click="calendarModelFlag = false">关闭</el-button> <el-button type="primary" @click="calendarModelFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog title="工作日历例外" :close-on-click-modal="false" v-drag :visible.sync="CEFlag" width="1200px" >
<el-dialog title="工作日历例外" :close-on-click-modal="false" v-drag :visible.sync="CEFlag" width="1200px">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;">
<el-form-item :label="'工厂编号:'"> <el-form-item :label="'工厂编号:'">
<el-input v-model="CESearchData.site" style="width: 130px"></el-input> <el-input v-model="CESearchData.site" style="width: 130px"></el-input>
@ -123,10 +124,11 @@
<el-table-column <el-table-column
header-align="center" header-align="center"
align="center" align="center"
width="50"
width="80"
label="操作"> label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<a type="text" size="small" @click="shiftModal(scope.row)">班次</a> <a type="text" size="small" @click="shiftModal(scope.row)">班次</a>
<a type="text" size="small" @click="editShiftModal(scope.row)"> | 编辑</a>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
@ -146,11 +148,12 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-footer style="height:40px;margin-top: 20px;text-align:center" >
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="CEFlag = false">关闭</el-button> <el-button type="primary" @click="CEFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog title="批量维护工作日历" :close-on-click-modal="false" v-drag :visible.sync="maintainCalendarFlag" width="1200px" >
<el-dialog title="批量维护工作日历" :close-on-click-modal="false" v-drag :visible.sync="maintainCalendarFlag"
width="1200px">
<el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;"> <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;">
<el-form-item :label="'日历编码:'"> <el-form-item :label="'日历编码:'">
<el-input v-model="maintainCalendarSearchData.calendarId" style="width: 130px"></el-input> <el-input v-model="maintainCalendarSearchData.calendarId" style="width: 130px"></el-input>
@ -166,14 +169,14 @@
placeholder="选择日期"> placeholder="选择日期">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<!-- <el-form-item :label="'至:'">-->
<!-- <el-date-picker-->
<!-- style="width: 130px"-->
<!-- v-model="maintainCalendarSearchData.endDate"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择日期">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="'至:'">-->
<!-- <el-date-picker-->
<!-- style="width: 130px"-->
<!-- v-model="maintainCalendarSearchData.endDate"-->
<!-- value-format="yyyy-MM-dd"-->
<!-- placeholder="选择日期">-->
<!-- </el-date-picker>-->
<!-- </el-form-item>-->
<el-form-item :label="'工作日类型:'"> <el-form-item :label="'工作日类型:'">
<el-select v-model="maintainCalendarSearchData.datetype" style="width: 130px" <el-select v-model="maintainCalendarSearchData.datetype" style="width: 130px"
placeholder="请选择"> placeholder="请选择">
@ -219,29 +222,30 @@
align="center" align="center"
width="30px"> width="30px">
</el-table-column> </el-table-column>
<!-- <el-table-column-->
<!-- v-for="(item,index) in maintainColumnList2" :key="index"-->
<!-- :prop="item.columnProp"-->
<!-- :header-align="item.headerAlign"-->
<!-- :align="item.align"-->
<!-- :min-width="item.width"-->
<!-- :vertical-align="'middle'"-->
<!-- :label="item.columnLabel"-->
<!-- :formatter="getSelections">-->
<!-- <template slot-scope="scope">-->
<!-- <el-select v-model="item.columnProp" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>-->
<!--  <el-option v-for="item2 in selectList " :key="index" :label="item2.label" :value="item2.value">-->
<!--  </el-option>-->
<!-- </el-select>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column-->
<!-- v-for="(item,index) in maintainColumnList2" :key="index"-->
<!-- :prop="item.columnProp"-->
<!-- :header-align="item.headerAlign"-->
<!-- :align="item.align"-->
<!-- :min-width="item.width"-->
<!-- :vertical-align="'middle'"-->
<!-- :label="item.columnLabel"-->
<!-- :formatter="getSelections">-->
<!-- <template slot-scope="scope">-->
<!-- <el-select v-model="item.columnProp" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>-->
<!--  <el-option v-for="item2 in selectList " :key="index" :label="item2.label" :value="item2.value">-->
<!--  </el-option>-->
<!-- </el-select>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column <el-table-column
prop="val0" prop="val0"
header-align="center" header-align="center"
align="left" align="left"
:label="this.timeArray[0]"> :label="this.timeArray[0]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val0" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
<el-select v-model="scope.row.val0" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value"> <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
</el-option> </el-option>
@ -254,9 +258,12 @@
align="left" align="left"
:label="this.timeArray[1]"> :label="this.timeArray[1]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val1" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
 <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 </el-option>
<el-select v-model="scope.row.val1" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
 
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 
</el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -266,9 +273,12 @@
align="left" align="left"
:label="this.timeArray[2]"> :label="this.timeArray[2]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val2" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
 <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 </el-option>
<el-select v-model="scope.row.val2" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
 
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 
</el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -278,9 +288,12 @@
align="left" align="left"
:label="this.timeArray[3]"> :label="this.timeArray[3]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val3" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
 <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 </el-option>
<el-select v-model="scope.row.val3" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
 
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 
</el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -290,9 +303,12 @@
align="left" align="left"
:label="this.timeArray[4]"> :label="this.timeArray[4]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val4" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
 <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 </el-option>
<el-select v-model="scope.row.val4" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
 
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 
</el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -302,9 +318,12 @@
align="left" align="left"
:label="this.timeArray[5]"> :label="this.timeArray[5]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val5" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
 <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 </el-option>
<el-select v-model="scope.row.val5" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
 
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 
</el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
@ -314,19 +333,22 @@
align="left" align="left"
:label="this.timeArray[6]"> :label="this.timeArray[6]">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.val6" placeholder="请选择" style="height: 12px;padding: 0px " filterable allow-create>
 <el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 </el-option>
<el-select v-model="scope.row.val6" placeholder="请选择" style="height: 12px;padding: 0px " filterable
allow-create>
 
<el-option v-for="item in selectList " :key="index" :label="item.label" :value="item.value">
 
</el-option>
</el-select> </el-select>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<el-footer style="height:40px;margin-top: 20px;text-align:center" >
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="maintainCalendarFlag = false">关闭</el-button> <el-button type="primary" @click="maintainCalendarFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog title="班次信息" :close-on-click-modal="false" v-drag :visible.sync="shiftFlag" width="600px" >
<el-dialog title="班次信息" :close-on-click-modal="false" v-drag :visible.sync="shiftFlag" width="600px">
<el-table <el-table
height="300" height="300"
:data="dataList4" :data="dataList4"
@ -358,14 +380,15 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<el-footer style="height:40px;margin-top: 20px;text-align:center" >
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="shiftFlag = false">关闭</el-button> <el-button type="primary" @click="shiftFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog title="维护班次" :close-on-click-modal="false" v-drag :visible.sync="updateShiftFlag" width="341px" >
<el-dialog title="维护班次" :close-on-click-modal="false" v-drag :visible.sync="updateShiftFlag" width="341px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;"> <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item :label="'班次编码:'"> <el-form-item :label="'班次编码:'">
<el-input v-model="newShiftData.shiftno" disabled style="width: 130px" onblur="this.value=this.value.toUpperCase()"></el-input>
<el-input v-model="newShiftData.shiftno" disabled style="width: 130px"
onblur="this.value=this.value.toUpperCase()"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label="'班次名称:'"> <el-form-item :label="'班次名称:'">
<el-input v-model="newShiftData.shiftdesc" disabled style="width: 130px"></el-input> <el-input v-model="newShiftData.shiftdesc" disabled style="width: 130px"></el-input>
@ -379,7 +402,7 @@
value-format="HH:mm"> value-format="HH:mm">
</el-time-picker> </el-time-picker>
</el-form-item> </el-form-item>
<el-form-item :label="'下班时间:'" >
<el-form-item :label="'下班时间:'">
<el-time-picker <el-time-picker
format="HH:mm" format="HH:mm"
style="width: 130px" style="width: 130px"
@ -389,11 +412,114 @@
</el-time-picker> </el-time-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center" >
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="updateCESShift()">保存</el-button> <el-button type="primary" @click="updateCESShift()">保存</el-button>
<el-button type="primary" @click="updateShiftFlag = false">关闭</el-button> <el-button type="primary" @click="updateShiftFlag = false">关闭</el-button>
</el-footer> </el-footer>
</el-dialog> </el-dialog>
<el-dialog title="维护班次信息" :close-on-click-modal="false" v-drag :visible.sync="workDateDialog" width="341px">
<el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="日历编码">
<el-input v-model="workingCalendar.calendarId" :disabled="true" style="width: 130px;color: red"></el-input>
</el-form-item>
<el-form-item label="日期">
<el-input v-model="workingCalendar.scheduledate" :disabled="true" style="width: 130px;color: red"></el-input>
</el-form-item>
<el-form-item label="工厂编号">
<el-input v-model="workingCalendar.site" :disabled="true" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'工作日类型:'">
<el-select @change="selectDateType" v-model="workingCalendar.datetype" style="width: 130px">
<el-option v-for="(item,index) in calendarDatetype" :key="index"
:label="item.datetype" :value="item.datetype">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'休息时间点1:'">
<el-time-picker
format="HH:mm"
style="width: 130px"
v-model="workingCalendar.exceptexacttime1"
placeholder="请选择"
value-format="HH:mm">
</el-time-picker>
</el-form-item>
<el-form-item :label="'休息时长1:'">
<el-input v-model="workingCalendar.exceptduration1" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'休息时间点2:'">
<el-time-picker
format="HH:mm"
style="width: 130px"
v-model="workingCalendar.exceptexacttime2"
placeholder="请选择"
value-format="HH:mm">
</el-time-picker>
</el-form-item>
<el-form-item :label="'休息时长2:'">
<el-input v-model="workingCalendar.exceptduration2" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'休息时间点3:'">
<el-time-picker
format="HH:mm"
style="width: 130px"
v-model="workingCalendar.exceptexacttime3"
placeholder="请选择"
value-format="HH:mm">
</el-time-picker>
</el-form-item>
<el-form-item :label="'休息时长3:'">
<el-input v-model="workingCalendar.exceptduration3" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'休息时间点4:'">
<el-time-picker
format="HH:mm"
style="width: 130px"
v-model="workingCalendar.exceptexacttime4"
placeholder="请选择"
value-format="HH:mm">
</el-time-picker>
</el-form-item>
<el-form-item :label="'休息时长4:'">
<el-input v-model="workingCalendar.exceptduration4" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'休息时间点5:'">
<el-time-picker
format="HH:mm"
style="width: 130px"
v-model="workingCalendar.exceptexacttime5"
placeholder="请选择"
value-format="HH:mm">
</el-time-picker>
</el-form-item>
<el-form-item :label="'休息时长5:'">
<el-input v-model="workingCalendar.exceptduration5" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'休息时间点6:'">
<el-time-picker
format="HH:mm"
style="width: 130px"
v-model="workingCalendar.exceptexacttime6"
placeholder="请选择"
value-format="HH:mm">
</el-time-picker>
</el-form-item>
<el-form-item :label="'休息时长6:'">
<el-input v-model="workingCalendar.exceptduration6" style="width: 130px"></el-input>
</el-form-item>
<el-form-item :label="'备注:'">
<el-input v-model="workingCalendar.remark" style="width: 275px"></el-input>
</el-form-item>
</el-form>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="updateWorkingCalendar()">保存</el-button>
<el-button type="primary" @click="workDateDialog = false">关闭</el-button>
</el-footer>
</el-dialog>
</div> </div>
</template> </template>
@ -406,25 +532,31 @@
calendarDatetypeInfo, calendarDatetypeInfo,
batchSaveCDData, batchSaveCDData,
getCalendarExceptionShiftData, getCalendarExceptionShiftData,
updateCESShift
}from "@/api/base.js"
updateCESShift,
getCalendarDatetypeInfo,
updateWorkingCalendar
} from "@/api/base.js"
export default { export default {
name: "calendar", name: "calendar",
data () {
data() {
return { return {
newShiftData:{
shiftno:'',
shiftdesc:'',
startexacttime:'',
endexacttime:'',
datetype:'',
id:'',
site:'',
},
updateShiftFlag:false,
shiftFlag:false,
dataList4:[],
workDateDialog: false,
workingCalendar: {},
calendarDatetype: [],
newShiftData: {
shiftno: '',
shiftdesc: '',
startexacttime: '',
endexacttime: '',
datetype: '',
id: '',
site: '',
},
updateShiftFlag: false,
shiftFlag: false,
dataList4: [],
columnList4: [ columnList4: [
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
@ -501,33 +633,33 @@
], ],
// start // start
exportData: [], exportData: [],
exportName: "工厂日历"+this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: ["工厂日历"],
exportName: "工厂日历" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader: '',
exportFooter: [], exportFooter: [],
// end // end
// start // start
exportData2: [], exportData2: [],
exportName2: "工作日历例外"+this.dayjs().format('YYYYMMDDHHmmss'),
exportName2: "工作日历例外" + this.dayjs().format('YYYYMMDDHHmmss'),
exportHeader2: ["工作日历例外"], exportHeader2: ["工作日历例外"],
exportFooter2: [], exportFooter2: [],
// end // end
buttons:{
download:'导出',
download2:'导出',
},
selectList:[],
calendarModelFlag:false,
calendarModelDisableFlag:false,
maintainCalendarFlag:false,
CEFlag:false,
newCalendarData:{
site:'',
calendarId:'',
calendarDesc:'',
status:'使用中',
id:0,
},
columnList:[
buttons: {
download: '导出',
download2: '导出',
},
selectList: [],
calendarModelFlag: false,
calendarModelDisableFlag: false,
maintainCalendarFlag: false,
CEFlag: false,
newCalendarData: {
site: '',
calendarId: '',
calendarDesc: '',
status: '使用中',
id: 0,
},
columnList: [
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 6038, functionId: 6038,
@ -874,7 +1006,7 @@
columnWidth: 100 columnWidth: 100
} }
], ],
columnList3:[
columnList3: [
{ {
userId: this.$store.state.user.name, userId: this.$store.state.user.name,
functionId: 6038, functionId: 6038,
@ -930,43 +1062,43 @@
columnWidth: 100 columnWidth: 100
}, },
], ],
maintainColumnList2:[],
height:'200',
searchData:{
site:'',
calendarId:'',
status:'使用中',
},
CESearchData:{
site:'',
calendarId:'',
calendarDesc:'',
},
maintainCalendarSearchData:{
site:this.$store.state.user.site.toString(),
calendarId:'',
calendarDesc:'',
startDate:'',
endDate:'',
datetype:'',
},
dataList:[],
dataList2:[],
dataList3:[],
timeArray:[],
valueList:[],
valList:[],
dataListSelections:[],
maintainColumnList2: [],
height: '200',
searchData: {
site: '',
calendarId: '',
status: '使用中',
},
CESearchData: {
site: '',
calendarId: '',
calendarDesc: '',
},
maintainCalendarSearchData: {
site: this.$store.state.user.site.toString(),
calendarId: '',
calendarDesc: '',
startDate: '',
endDate: '',
datetype: '',
},
dataList: [],
dataList2: [],
dataList3: [],
timeArray: [],
valueList: [],
valList: [],
dataListSelections: [],
} }
}, },
mounted() { mounted() {
this.$nextTick(()=>{
this.$nextTick(() => {
this.height = window.innerHeight - 150; this.height = window.innerHeight - 150;
}) })
}, },
watch: { watch: {
'$route' (to, from) {
if(localStorage.getItem('calendar')!=undefined){
'$route'(to, from) {
if (localStorage.getItem('calendar') != undefined) {
this.jump(); this.jump();
} }
}, },
@ -984,49 +1116,49 @@
} }
}, },
methods: { methods: {
jump(){
let data=JSON.parse(localStorage.getItem('calendar'));
jump() {
let data = JSON.parse(localStorage.getItem('calendar'));
localStorage.removeItem('calendar'); localStorage.removeItem('calendar');
getCalendarData(data).then(({data}) => { getCalendarData(data).then(({data}) => {
this.dataList = data.rows this.dataList = data.rows
}) })
}, },
// //
selectionChangeHandle (val) {
selectionChangeHandle(val) {
this.dataListSelections = val this.dataListSelections = val
}, },
getData(){
if(localStorage.getItem('calendar')!=undefined){
getData() {
if (localStorage.getItem('calendar') != undefined) {
this.jump(); this.jump();
}else {
} else {
getCalendarData(this.searchData).then(({data}) => { getCalendarData(this.searchData).then(({data}) => {
this.dataList = data.rows this.dataList = data.rows
}) })
} }
}, },
newCalendarModel(){
this.newCalendarData.id=0,
this.newCalendarData.site=this.$store.state.user.site,
this.newCalendarData.calendarId='',
this.newCalendarData.calendarDesc='',
this.newCalendarData.status='使用中',
this.calendarModelDisableFlag=false;
this.calendarModelFlag=true;
},
editData(row){
this.newCalendarData.id=1,
this.newCalendarData.site=row.site,
this.newCalendarData.calendarId=row.calendarId,
this.newCalendarData.calendarDesc=row.calendarDesc,
this.newCalendarData.status=row.status,
this.calendarModelDisableFlag=true;
this.calendarModelFlag=true;
},
calendarSave(){
newCalendarModel() {
this.newCalendarData.id = 0,
this.newCalendarData.site = this.$store.state.user.site,
this.newCalendarData.calendarId = '',
this.newCalendarData.calendarDesc = '',
this.newCalendarData.status = '使用中',
this.calendarModelDisableFlag = false;
this.calendarModelFlag = true;
},
editData(row) {
this.newCalendarData.id = 1,
this.newCalendarData.site = row.site,
this.newCalendarData.calendarId = row.calendarId,
this.newCalendarData.calendarDesc = row.calendarDesc,
this.newCalendarData.status = row.status,
this.calendarModelDisableFlag = true;
this.calendarModelFlag = true;
},
calendarSave() {
saveCalendar(this.newCalendarData).then(({data}) => { saveCalendar(this.newCalendarData).then(({data}) => {
if (data.code == 200) { if (data.code == 200) {
this.getData() this.getData()
this.calendarModelFlag=false;
this.calendarModelFlag = false;
this.$message.success('操作成功') this.$message.success('操作成功')
} else { } else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
@ -1035,21 +1167,21 @@
} }
}) })
}, },
delData(row){
delData(row) {
this.$confirm(`是否删除此条工作日历?`, '提示', { this.$confirm(`是否删除此条工作日历?`, '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
let inData={
site:row.site.toString(),
calendarId:row.calendarId,
let inData = {
site: row.site.toString(),
calendarId: row.calendarId,
} }
delCalendar(inData).then(({data}) => { delCalendar(inData).then(({data}) => {
if (data.code == 200) { if (data.code == 200) {
this.getData() this.getData()
this.$message.success( '操作成功')
this.$message.success('操作成功')
} else { } else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
@ -1058,63 +1190,63 @@
}) })
}) })
}, },
getCEModel(row){
this.CESearchData.site=row.site;
this.CESearchData.calendarDesc=row.calendarDesc;
this.CESearchData.calendarId=row.calendarId;
this.CEFlag=true;
getCEModel(row) {
this.CESearchData.site = row.site;
this.CESearchData.calendarDesc = row.calendarDesc;
this.CESearchData.calendarId = row.calendarId;
this.CEFlag = true;
getCalendarExceptionData(this.CESearchData).then(({data}) => { getCalendarExceptionData(this.CESearchData).then(({data}) => {
this.dataList2 = data.rows this.dataList2 = data.rows
}) })
}, },
maintainCalendar(){
maintainCalendar() {
this.getSelectData(); this.getSelectData();
this.maintainCalendarSearchData.calendarId='';
this.maintainCalendarSearchData.calendarDesc='';
this.maintainCalendarSearchData.startDate= this.GetDateStr(0);
this.maintainCalendarSearchData.endDate=this.GetDateStr(7);
this.maintainCalendarSearchData.calendarId = '';
this.maintainCalendarSearchData.calendarDesc = '';
this.maintainCalendarSearchData.startDate = this.GetDateStr(0);
this.maintainCalendarSearchData.endDate = this.GetDateStr(7);
this.refreshModel(); this.refreshModel();
this.maintainCalendarFlag=true;
this.maintainCalendarFlag = true;
}, },
refreshModel(){
refreshModel() {
this.getAll(); this.getAll();
let mainData={
site:this.$store.state.user.site.toString(),
calendarId:this.maintainCalendarSearchData.calendarId,
calendarDesc:this.maintainCalendarSearchData.calendarDesc,
let mainData = {
site: this.$store.state.user.site.toString(),
calendarId: this.maintainCalendarSearchData.calendarId,
calendarDesc: this.maintainCalendarSearchData.calendarDesc,
} }
getCalendarData(mainData).then(({data}) => { getCalendarData(mainData).then(({data}) => {
let list=data.rows;
if(list.length>0){
for (let i = 0; i <list.length ; i++) {
list[i].val0=this.maintainCalendarSearchData.datetype;
list[i].val1=this.maintainCalendarSearchData.datetype;
list[i].val2=this.maintainCalendarSearchData.datetype;
list[i].val3=this.maintainCalendarSearchData.datetype;
list[i].val4=this.maintainCalendarSearchData.datetype;
list[i].val5=this.maintainCalendarSearchData.datetype;
list[i].val6=this.maintainCalendarSearchData.datetype;
let list = data.rows;
if (list.length > 0) {
for (let i = 0; i < list.length; i++) {
list[i].val0 = this.maintainCalendarSearchData.datetype;
list[i].val1 = this.maintainCalendarSearchData.datetype;
list[i].val2 = this.maintainCalendarSearchData.datetype;
list[i].val3 = this.maintainCalendarSearchData.datetype;
list[i].val4 = this.maintainCalendarSearchData.datetype;
list[i].val5 = this.maintainCalendarSearchData.datetype;
list[i].val6 = this.maintainCalendarSearchData.datetype;
} }
} }
this.dataList3 = list; this.dataList3 = list;
}) })
}, },
getSelections(){
getSelections() {
}, },
getSelectData () {
getSelectData() {
this.selectList = []; this.selectList = [];
let newData={
value:'',
label:'请选择',
let newData = {
value: '',
label: '请选择',
} }
this.selectList.push(newData) this.selectList.push(newData)
let inputData={
site:this.$store.state.user.site.toString()
let inputData = {
site: this.$store.state.user.site.toString()
}; };
calendarDatetypeInfo(inputData).then(({data}) => { calendarDatetypeInfo(inputData).then(({data}) => {
let list = data.rows let list = data.rows
this.maintainCalendarSearchData.datetype= list[0].datetype;
this.maintainCalendarSearchData.datetype = list[0].datetype;
for (let i = 0; i < list.length; i++) { for (let i = 0; i < list.length; i++) {
let resultData = { let resultData = {
value: list[i].datetype, value: list[i].datetype,
@ -1127,21 +1259,21 @@
// //
GetDateStr(AddDayCount) { GetDateStr(AddDayCount) {
var dd = new Date(); var dd = new Date();
dd.setDate(dd.getDate()+AddDayCount);//AddDayCount
dd.setDate(dd.getDate() + AddDayCount);//AddDayCount
var y = dd.getFullYear(); var y = dd.getFullYear();
var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日足10补0
var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几足10补0
return y+"-"+m+"-"+d;
var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1);//100
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();//100
return y + "-" + m + "-" + d;
}, },
// //
getAll(){
let begin=this.maintainCalendarSearchData.startDate;
getAll() {
let begin = this.maintainCalendarSearchData.startDate;
var dd = new Date(begin); var dd = new Date(begin);
dd.setDate(dd.getDate()+6);//AddDayCount
dd.setDate(dd.getDate() + 6);//AddDayCount
var y = dd.getFullYear(); var y = dd.getFullYear();
var m = (dd.getMonth()+1)<10?"0"+(dd.getMonth()+1):(dd.getMonth()+1);//获取当前月份的日足10补0
var d = dd.getDate()<10?"0"+dd.getDate():dd.getDate();//获取当前几足10补0
let end=y+"-"+m+"-"+d;
var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1);//100
var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();//100
let end = y + "-" + m + "-" + d;
var startNum = parseInt(begin.replace(/-/g, ''), 10); var startNum = parseInt(begin.replace(/-/g, ''), 10);
var endNum = parseInt(end.replace(/-/g, ''), 10); var endNum = parseInt(end.replace(/-/g, ''), 10);
if (startNum > endNum) { if (startNum > endNum) {
@ -1150,38 +1282,38 @@
}) })
return false; return false;
} }
if(this.DateDiff(begin, end)>9){
if (this.DateDiff(begin, end) > 9) {
this.$alert('时间不得相差10天!', '错误', { this.$alert('时间不得相差10天!', '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
}) })
return false; return false;
} }
this.timeArray = []; this.timeArray = [];
this.maintainColumnList2=[];
this.maintainColumnList2 = [];
let ab = begin.split("-"); let ab = begin.split("-");
let ae = end.split("-"); let ae = end.split("-");
let db = new Date(); let db = new Date();
db.setUTCFullYear(ab[0], ab[1]-1, ab[2]);
db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]);
let de = new Date(); let de = new Date();
de.setUTCFullYear(ae[0], ae[1]-1, ae[2]);
let unixDb=db.getTime();
let unixDe=de.getTime();
for(let k=unixDb;k<=unixDe;){
de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]);
let unixDb = db.getTime();
let unixDe = de.getTime();
for (let k = unixDb; k <= unixDe;) {
this.timeArray.push(this.dateFormat(new Date(parseInt(k)))); this.timeArray.push(this.dateFormat(new Date(parseInt(k))));
k=k+24*60*60*1000;
k = k + 24 * 60 * 60 * 1000;
} }
for (let i = 0; i <this.timeArray.length ; i++) {
for (let i = 0; i < this.timeArray.length; i++) {
let property = this.timeArray[i]; let property = this.timeArray[i];
let val = "val"+i;
let val = "val" + i;
this.maintainColumnList2.push( this.maintainColumnList2.push(
{ {
columnProp:val,
headerAlign:'center',
align:'left',
width:'100px',
columnLabel:property,
value:'',
columnProp: val,
headerAlign: 'center',
align: 'left',
width: '100px',
columnLabel: property,
value: '',
} }
); );
} }
@ -1233,12 +1365,12 @@
// ); // );
// } // }
// }, // },
dateFormat(date){
let s='';
s+=date.getFullYear()+'-'; //
s+=(date.getMonth()+1)+"-"; //
s+= date.getDate(); //
return(s); //
dateFormat(date) {
let s = '';
s += date.getFullYear() + '-'; //
s += (date.getMonth() + 1) + "-"; //
s += date.getDate(); //
return (s); //
}, },
// //
DateDiff(sDate1, sDate2) { DateDiff(sDate1, sDate2) {
@ -1321,30 +1453,77 @@
return s return s
}, },
// end // end
shiftModal(row){
let inData={
site:row.site,
scheduledate:row.scheduledate,
calendarId:row.calendarId
shiftModal(row) {
let inData = {
site: row.site,
scheduledate: row.scheduledate,
calendarId: row.calendarId
} }
getCalendarExceptionShiftData(inData).then(({data}) => { getCalendarExceptionShiftData(inData).then(({data}) => {
this.dataList4=data.rows;
this.shiftFlag=true;
this.dataList4 = data.rows;
this.shiftFlag = true;
}) })
}, },
editShift(row){
this.newShiftData=row;
this.updateShiftFlag=true;
//
editShiftModal(row) {
this.workDateDialog = true
this.workingCalendar = JSON.parse(JSON.stringify(row))
this.getcalendarDatetype()
}, },
updateCESShift(){
//
getcalendarDatetype() {
let dto = {
site: this.workingCalendar.site
}
calendarDatetypeInfo(dto).then(({data}) => {
this.calendarDatetype = data.rows
})
},
//
selectDateType() {
getCalendarDatetypeInfo(this.workingCalendar).then(({data}) =>{
if (data && data.code == 0){
this.workingCalendar.exceptexacttime1 = data.data.exceptexacttime1
this.workingCalendar.exceptduration1 = data.data.exceptduration1
this.workingCalendar.exceptexacttime2 = data.data.exceptexacttime2
this.workingCalendar.exceptduration2 = data.data.exceptduration2
this.workingCalendar.exceptexacttime3 = data.data.exceptexacttime3
this.workingCalendar.exceptduration3 = data.data.exceptduration3
this.workingCalendar.exceptexacttime4 = data.data.exceptexacttime4
this.workingCalendar.exceptduration4 = data.data.exceptduration4
this.workingCalendar.exceptexacttime5 = data.data.exceptexacttime5
this.workingCalendar.exceptduration5 = data.data.exceptduration5
this.workingCalendar.exceptexacttime6 = data.data.exceptexacttime6
this.workingCalendar.exceptduration6 = data.data.exceptduration6
}
})
},
//
updateWorkingCalendar(){
updateWorkingCalendar(this.workingCalendar).then(({data}) => {
if (data && data.code == 0){
this.$message.success(data.msg)
this.workDateDialog = false
this.getCEModel(this.workingCalendar)
}else {
this.$message.warning(data.msg)
}
})
},
editShift(row) {
this.newShiftData = row;
this.updateShiftFlag = true;
},
updateCESShift() {
updateCESShift(this.newShiftData).then(({data}) => { updateCESShift(this.newShiftData).then(({data}) => {
if(data.code===0){
if (data.code === 0) {
getCalendarExceptionData(this.CESearchData).then(({data}) => { getCalendarExceptionData(this.CESearchData).then(({data}) => {
this.dataList2 = data.rows this.dataList2 = data.rows
}) })
this.updateShiftFlag=false;
this.updateShiftFlag = false;
this.$message.success('保存成功') this.$message.success('保存成功')
}else {
} else {
this.$alert(data.msg, '错误', { this.$alert(data.msg, '错误', {
confirmButtonText: '确定' confirmButtonText: '确定'
}) })
@ -1358,7 +1537,7 @@
} }
</script> </script>
<style >
<style>
.calendar .el-table .cell { .calendar .el-table .cell {
height: 28px; height: 28px;
} }

Loading…
Cancel
Save