recodManage.vue:223 Employee Number not set in globalData
时间: 2024-11-25 18:11:51 浏览: 28
从错误信息 "Employee Number not set in globalData" 来看,问题在于全局变量 `globalData` 中没有设置员工编号(`employeeNo`)。这导致在 `fetchTab2Data` 方法中无法正确过滤与当前登录用户工号相同的数据。
### 解决方案:
1. **确保全局变量中设置了员工编号**:
在应用启动或用户登录时,将员工编号存储到 `globalData` 中。例如,在 `app.js` 或类似的入口文件中:
```javascript
App({
onLaunch: function () {
// 假设员工编号通过某种方式获取,例如从后端接口或本地存储
const employeeNo = '12345'; // 替换为实际获取的员工编号
this.globalData.employeeNo = employeeNo;
},
globalData: {
employeeNo: ''
}
});
```
2. **检查 `globalData` 是否正确初始化**:
确保 `globalData` 已经被正确初始化并且可以在整个应用中访问。
3. **调试代码**:
在 `fetchTab2Data` 方法中添加一些调试信息,确认 `employeeNo` 是否已经正确设置:
```javascript
methods: {
fetchTab2Data() {
request({
url: '/api/check_carryout_record/getPageData',
method: 'POST',
header: {
'content-type': 'application/json',
'Authorization': `Bearer ${getToken()}`
},
dataType: 'json'
}).then(response => {
const employeeNo = getApp().globalData.employeeNo; // 获取全局变量中的工号
console.log('Employee Number:', employeeNo); // 调试信息
if (!employeeNo) {
console.error('Employee Number not set in globalData');
return;
}
this.anotherData.originalRows = response.rows
.map(item => ({ ...item, complianceStatus: '符合' }))
.filter(item => item.CHECK_PERNUM === employeeNo);
this.filterTab2Data(this.anotherData);
this.areas = [...new Set(response.rows.map(item => item.AREA_NAME))];
}).catch(error => {
console.error(error);
uni.showToast({
title: '请求失败',
icon: 'none'
});
});
}
}
```
通过以上步骤,可以确保 `employeeNo` 在全局变量中被正确设置,并且在 `fetchTab2Data` 方法中能够正确使用。如果仍然有问题,请检查员工编号的获取逻辑是否正确。
阅读全文