weaver-ecode/新增加班流程对应字段赋值的功能.js

70 lines
2.6 KiB
JavaScript

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;
}
});