小a优化这一段代码: const startSubmit = async () =>{ let empNo = form.data.empNo; let res = await personnelTrainQueryByempNo({empNo}); if (res.data) { if (res.data.trainStatus === 0){ promptContent.value = '该人员已在待上岗列表中'; promptDialog.value.open(); } else { promptContent.value = '该人员正在培训中,请培训结束后新增'; promptDialog.value.open(); } return } if (form.data.empState === 0){ let flag = personRes.data?.dataSource.some((item)=>{ return item.userCode === empNo; }) if (flag){ promptContent.value = '该员工编号与老员工相同,请检查人员身份'; promptDialog.value.open(); return; } } formData.value.submit(async (res) =>{ let sumbit = JSON.parse(JSON.stringify(form.data)); sumbit.trainStatus = 0; sumbit.createdName = uni.getStorageSync("userInfo").name; let resMsg = await personnelTrainAdd(sumbit); if (afterSubmit(resMsg)){ // 提交重新定向 uni.switchTab({ url:"/pages/tabPages/allPages/index", success:()=>{ // 提交成功后,跳转回主页面 uni.navigateTo({ url:"/pages/qualityPages/personnelTrain/index", }); } }) } }) }
时间: 2024-02-14 18:05:20 浏览: 31
好的,以下是对这段代码的优化建议:
1. 减少 API 调用次数:在这段代码中,使用了多次 API 调用,这样会增加网络请求的次数,导致页面加载速度变慢。为了减少 API 调用次数,可以将多个 API 调用合并成一个,这样可以减少网络请求的次数。
2. 使用 async/await:在这段代码中,使用了回调函数来处理表单提交的结果,这样代码的可读性会变差。为了提高代码的可读性,可以使用 async/await 来处理表单提交的结果,这样代码会更加简洁和易读。
3. 提取公共逻辑:在这段代码中,有一些逻辑是重复的,可以将其提取出来,封装成函数,这样可以提高代码的复用性和可读性。
4. 缩短函数长度:在这段代码中,函数的长度比较长,可以将其拆分成多个小函数,这样可以提高代码的可读性和可维护性。
根据上述建议,以下是对该代码的优化后的示例代码:
```javascript
const startSubmit = async () => {
const empNo = form.data.empNo;
const res = await personnelTrainQueryByempNo({ empNo });
if (res.data) {
const trainStatus = res.data.trainStatus;
if (trainStatus === 0) {
promptContent.value = "该人员已在待上岗列表中";
} else {
promptContent.value = "该人员正在培训中,请培训结束后新增";
}
promptDialog.value.open();
return;
}
if (form.data.empState === 0) {
const flag = checkUserCode(empNo);
if (flag) {
promptContent.value = "该员工编号与老员工相同,请检查人员身份";
promptDialog.value.open();
return;
}
}
const sumbit = getSubmitData();
const resMsg = await submitFormData(sumbit);
if (afterSubmit(resMsg)) {
uni.switchTab({
url: "/pages/tabPages/allPages/index",
success: () => {
uni.navigateTo({
url: "/pages/qualityPages/personnelTrain/index",
});
},
});
}
};
const checkUserCode = (empNo) => {
const personRes = getPersonnelRes();
const dataSource = personRes.data?.dataSource;
return dataSource?.some((item) => item.userCode === empNo);
};
const getPersonnelRes = () => {
return await personnelQueryByCompanyId({
companyId: uni.getStorageSync("userInfo")?.companyId,
});
};
const getSubmitData = () => {
const sumbit = JSON.parse(JSON.stringify(form.data));
sumbit.trainStatus = 0;
sumbit.createdName = uni.getStorageSync("userInfo")?.name;
return sumbit;
};
const submitFormData = async (sumbit) => {
return await personnelTrainAdd(sumbit);
};
```
通过这些优化,可以使代码更加简洁易读,同时能够提高代码的可维护性和复用性。