diff --git a/新增加班流程对应字段赋值的功能.js b/新增加班流程对应字段赋值的功能.js new file mode 100644 index 0000000..12b4ef7 --- /dev/null +++ b/新增加班流程对应字段赋值的功能.js @@ -0,0 +1,70 @@ +const wffpSdk = window.weappWorkflow.getFlowPageSDK(); + +const dayTypeMapping = { + 'WORK': '0', + 'PLAYDAY': '1', + 'HOLIDAY': '2' +}; + +wffpSdk.ready(()=>{ + const baseParam = wffpSdk.getBaseParam(); + const jbrqFieldMark = formSdk.convertFieldNameToId("jbrq"); + const sqrFieldMark = formSdk.convertFieldNameToId("sqr"); + const jblxFieldMark = formSdk.convertFieldNameToId("jblx"); + const jbxmFieldMark = formSdk.convertFieldNameToId("jbxm"); + const drbcFieldMark = formSdk.convertFieldNameToId("drbc"); + const kssjFieldMark = formSdk.convertFieldNameToId("kssj"); + + let detail = { + attendDayType:'', + attendStartTime:'', + attendEndTime:'' + } + + formSdk.bindFieldChangeEvent(jbrqFieldMark, async (data) => { + const attendDate = data.value; + if (attendDate != '') { + try { + const sqr = formSdk.getFieldValue(sqrFieldMark); + const result = await getAttendStatusDetail(sqr, attendDate); + const data = result.data.data; + if(Object.keys(data).length > 0) { + detail = { + ...data + } + formSdk.changeFieldValue(drbcFieldMark, {value: detail.attendStartTime+"-"+detail.attendEndTime}); + const value = dayTypeMapping[detail.attendDayType]; + if (value !== undefined) { + formSdk.changeFieldValue(jblxFieldMark, {value}); + } + }else { + wffpSdk.showMessage('根据加班日期获取班次信息失败,请重新选择',1,2); + } + } catch (error) { + console.log('接口异常',error); + } + } + }); + + formSdk.bindFieldChangeEvent(kssjFieldMark, (data) => { + const attendStartTime = data.value; + if(attendStartTime != '') { + const jbrq = formSdk.getFieldValue(jbrqFieldMark); + if(jbrq == '') { + formSdk.changeFieldValue(kssjFieldMark, {value:''}); + return wffpSdk.showMessage('请先选择加班日期',2,2); + } + if(attendStartTime < detail.attendStartTime) { + formSdk.changeFieldValue(jbxmFieldMark, {value:'0'}); + }else if(attendStartTime > detail.attendEndTime) { + formSdk.changeFieldValue(jbxmFieldMark, {value:'1'}); + } + } + + }); + + const getAttendStatusDetail = async (empId,attendDate) => { + const response = await axios.get(`/api/attend/web/attendWorkTimeFlow/attendStatusDetail?empId=${empId}&attendDate=${attendDate}`); + return response; + } +}); \ No newline at end of file