(function (vc) { var DEFAULT_PAGE = 1; var DEFAULT_ROWS = 10; vc.extends({ data: { staffInfo: { moreCondition: false, branchOrgs: [], departmentOrgs: [], relCds: [], conditions: { branchOrgId: '', departmentOrgId: '', orgId: '', orgName: '', orgLevel: '2', parentOrgId: '', name: '', tel: '', staffId: '', parentOrgName: '', parentTwoOrgId: '' } }, staffData: [], countryDicts: [], }, watch: { "staffInfo.conditions.branchOrgId": { //深度监听,可监听到对象、数组的变化 handler(val, oldVal) { $that._getOrgsByOrgLevelStaff(DEFAULT_PAGE, DEFAULT_ROWS, 3, val); $that.staffInfo.conditions.branchOrgId = val; $that.staffInfo.conditions.parentOrgId = val; $that.staffInfo.conditions.departmentOrgId = ''; $that.loadData(DEFAULT_PAGE, DEFAULT_ROWS); }, deep: true }, "staffInfo.conditions.departmentOrgId": { //深度监听,可监听到对象、数组的变化 handler(val, oldVal) { $that.staffInfo.conditions.orgId = val; $that.loadData(DEFAULT_PAGE, DEFAULT_ROWS); }, deep: true } }, _initMethod: function () { // 查询岗位列表 vc.getDict('u_org_staff_rel', "rel_cd", function (_data) { $that.staffInfo.relCds = _data; // 岗位列表获取比较慢, 获取到岗位列表后再加载数据 $that.loadData(1, 10); $that._getOrgsByOrgLevelStaff(DEFAULT_PAGE, DEFAULT_ROWS, 2, ''); }); $that._loadCountryDicts(); }, _initEvent: function () { // $that.$on('pagination_page_event', function (_currentPage) { // console.log(_currentPage); // $that.currentPage(_currentPage); // }); vc.on('pagination', 'page_event', function (_currentPage) { $that.loadData(_currentPage, DEFAULT_ROWS); }); vc.on('staff', 'notify', function () { $that.loadData(1, DEFAULT_ROWS); }); $that.$on('addStaff_reload_event', function () { $that.loadData(1, 10); }); $that.$on('editStaff_reload_event', function () { $that.loadData(1, 10); }); $that.$on('deleteStaff_reload_event', function () { $that.loadData(1, 10); }); }, methods: { _loadCountryDicts: function () { let param = { params: { specId: '9', // 国家字典的 specId(与 listOwner 一致) page: 1, row: 1000 // 加载足够多的字典项 } }; vc.http.apiGet('/dict.listDict', param, function (json, res) { let _data = JSON.parse(json); $that.countryDicts = _data.data; // 存储国家字典 }, function (errInfo, error) { console.log('获取国家字典失败:', errInfo); } ); }, loadData: function (_page, _rows) { $that.staffInfo.conditions.page = _page; $that.staffInfo.conditions.rows = _rows; $that.staffInfo.conditions.row = _rows; let param = { params: $that.staffInfo.conditions }; param.params.name = param.params.name.trim(); param.params.tel = param.params.tel.trim(); param.params.staffId = param.params.staffId.trim(); //发送get请求 vc.http.apiGet('/query.staff.infos', param, function (json) { let _staffInfo = JSON.parse(json); // 员工列表 和 岗位列表匹配 console.log("后端接口原始返回:", _staffInfo); let staffList = _staffInfo.staffs; // 新增:打印后端返回的员工数据,查看是否有 areaId console.log("后端返回的员工列表:", staffList); let relCdsList = $that.staffInfo.relCds; staffList.forEach((staff) => { relCdsList.forEach((rel) => { if (staff.relCd == rel.statusCd) { staff.relCdName = rel.name; } }); if (staff.areaId) { // 假设后端返回“国家编码”的字段为 areaId let country = $that.countryDicts.find(c => c.statusCd === staff.areaId); staff.countryName = country ? country.name : staff.areaId; // 有匹配则显示名称,否则显示编码 } else { staff.countryName = '-'; // 无编码时显示“-” } }) $that.staffData = staffList; $that.$emit('pagination_info_event', { total: _staffInfo.records, dataCount: _staffInfo.total, currentPage: _page }); }, function () { console.log('请求失败处理'); } ); }, currentPage: function (_currentPage) { $that.loadData(_currentPage, 10); }, openEditStaff: function (_staffInfo) { $that.$emit('edit_staff_event', _staffInfo); }, openDeleteStaff: function (_staffInfo) { $that.$emit('delete_staff_event', _staffInfo); }, _moreCondition: function () { if ($that.staffInfo.moreCondition) { $that.staffInfo.moreCondition = false; } else { $that.staffInfo.moreCondition = true; } }, _getOrgsByOrgLevelStaff: function (_page, _rows, _orgLevel, _parentOrgId) { let param = { params: { page: _page, row: _rows, orgLevel: _orgLevel, parentOrgId: _parentOrgId } }; //发送get请求 vc.http.apiGet('/org.listOrgs', param, function (json, res) { let _orgInfo = JSON.parse(json); if (_orgLevel == 2) { $that.staffInfo.branchOrgs = _orgInfo.orgs; } else { $that.staffInfo.departmentOrgs = _orgInfo.orgs; } }, function (errInfo, error) { console.log('请求失败处理'); } ); }, _openAddStaffStepPage: function () { vc.jumpToPage("/#/pages/frame/addStaff") }, //查询 _queryStaffMethod: function () { $that.loadData(DEFAULT_PAGE, DEFAULT_ROWS) }, //重置 _resetStaffMethod: function () { $that.staffInfo.conditions.branchOrgId = ""; $that.staffInfo.conditions.orgId = ""; $that.staffInfo.conditions.departmentOrgId = ""; $that.staffInfo.conditions.name = ""; $that.staffInfo.conditions.tel = ""; $that.staffInfo.conditions.staffId = ""; $that.loadData(DEFAULT_PAGE, DEFAULT_ROWS) }, _resetStaffPwd: function (_staff) { vc.emit('resetStaffPwd', 'openResetStaffPwd', _staff); }, openStaffDetail: function (_staff) { vc.jumpToPage('/#/pages/staff/staffDetail?staffId=' + _staff.userId) } }, }); })(window.vc);