From 034eafcd89bc6a085ebc77f93d0eb78e791fb1b8 Mon Sep 17 00:00:00 2001 From: ck_yeun9 Date: Sat, 2 Aug 2025 17:10:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20API=20=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E5=B9=B6=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 2 +- .env.production | 2 +- src/api/administratorapi.js | 2 +- src/api/administratortypeapi.js | 2 +- src/api/basicapi.js | 2 +- src/api/customerapi.js | 2 +- src/api/customertypeapi.js | 2 +- src/api/custotypeapi.js | 4 +- src/api/departmentapi.js | 3 +- src/api/employeeapi.js | 8 +-- src/api/goodsapi.js | 2 +- src/api/hydroelectricityapi.js | 2 +- src/api/index.js | 69 ++++++++++++------- src/api/internalfinanceapi.js | 2 +- src/api/menuapi.js | 10 ++- src/api/nationapi.js | 2 +- src/api/noticetypeapi.js | 2 +- src/api/passportapi.js | 4 +- src/api/positionapi.js | 2 +- src/api/promotioncontentapi.js | 2 +- src/api/qualificationapi.js | 2 +- src/api/reserapi.js | 2 +- src/api/roleapi.js | 2 +- src/api/roomapi.js | 4 +- src/api/roomstateapi.js | 2 +- src/api/roomtypeapi.js | 2 +- src/api/spendinfoapi.js | 2 +- src/api/supervisioninfoapi.js | 2 +- src/api/utilityapi.js | 4 +- src/api/vipruleapi.js | 2 +- src/api/workerfeatureapi.js | 2 +- src/entities/common.entity.js | 17 +++-- src/entities/log.entity.js | 7 +- src/layouts/MainLayout.vue | 10 ++- src/router/index.js | 11 ++- src/utils/index.js | 4 ++ src/views/HomeView.vue | 19 ----- src/views/SignInView.vue | 22 +++--- src/views/base/DepartmentView.vue | 33 +++++---- src/views/base/NationView.vue | 22 +++--- src/views/base/NoticeTypeView.vue | 32 ++++----- src/views/base/PassportView.vue | 32 ++++----- src/views/base/PositionView.vue | 44 ++++++------ src/views/base/PromotionContentView.vue | 34 +++++---- src/views/base/QualificationView.vue | 42 ++++++----- .../customermanagement/CustomerSpendView.vue | 21 +++--- .../customermanagement/CustomerTypeView.vue | 27 ++++---- src/views/customermanagement/CustomerView.vue | 26 +++---- src/views/customermanagement/VipLevelView.vue | 24 +++---- src/views/dashboard/DashboardView.vue | 21 ++---- src/views/finance/InternalFinanceView.vue | 40 +++++------ .../EmployeeDetailView.vue | 41 ++++++----- .../StaffManagementView.vue | 46 ++++++------- .../HydroelectricityInfoView.vue | 26 +++---- .../GoodsmanagementView.vue | 26 +++---- .../operationmanagement/OperationLogView.vue | 69 +++++++++---------- .../operationmanagement/RequestLogView.vue | 13 ++-- .../roominformation/ReserManagementView.vue | 22 +++--- src/views/roominformation/RoomConfigView.vue | 22 +++--- .../roominformation/RoomManagementView.vue | 26 +++---- src/views/roominformation/RoomMapView.vue | 6 +- src/views/supervision/SupervisionView.vue | 28 ++++---- .../AdminTypeManagementView.vue | 34 +++++---- .../AdministratorManagementView.vue | 28 ++++---- .../systemmanagement/MenuManagementView.vue | 34 ++++----- .../systemmanagement/RoleManagementView.vue | 38 +++++----- 66 files changed, 539 insertions(+), 560 deletions(-) delete mode 100644 src/views/HomeView.vue diff --git a/.env b/.env index 627c936..c120eb2 100644 --- a/.env +++ b/.env @@ -1 +1 @@ -VITE_API_URL=https://tshotel-api.oscode.top/api \ No newline at end of file +VITE_API_URL=https://tshotel.oscode.top/api \ No newline at end of file diff --git a/.env.production b/.env.production index 627c936..c120eb2 100644 --- a/.env.production +++ b/.env.production @@ -1 +1 @@ -VITE_API_URL=https://tshotel-api.oscode.top/api \ No newline at end of file +VITE_API_URL=https://tshotel.oscode.top/api \ No newline at end of file diff --git a/src/api/administratorapi.js b/src/api/administratorapi.js index b5f2a6d..f11c67b 100644 --- a/src/api/administratorapi.js +++ b/src/api/administratorapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchAdmins = async (params) => { try { const response = await api.get('/Admin/GetAllAdminList', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/administratortypeapi.js b/src/api/administratortypeapi.js index 06e1bd0..ac8946d 100644 --- a/src/api/administratortypeapi.js +++ b/src/api/administratortypeapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchAdminTypes = async (params) => { try { const response = await api.get('/Admin/GetAllAdminTypes', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/basicapi.js b/src/api/basicapi.js index aae0d4e..9cce1be 100644 --- a/src/api/basicapi.js +++ b/src/api/basicapi.js @@ -5,7 +5,7 @@ export const signIn = async (data) => { try { const response = await api.post('/Admin/Login', data); const resData = response.data; - if (resData.StatusCode === 200) { + if (resData.Success) { return resData; } else { throw new Error(`Login failed with status code: ${response.status}`); diff --git a/src/api/customerapi.js b/src/api/customerapi.js index e8bff38..de54612 100644 --- a/src/api/customerapi.js +++ b/src/api/customerapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchCustomers = async (params) => { try { const response = await api.get('/Customer/SelectCustomers', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/customertypeapi.js b/src/api/customertypeapi.js index 97e972c..d509b63 100644 --- a/src/api/customertypeapi.js +++ b/src/api/customertypeapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchCustomerTypes = async (params) => { try { const response = await api.get('/Base/SelectCustoTypeAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/custotypeapi.js b/src/api/custotypeapi.js index 7d31605..c9aa37c 100644 --- a/src/api/custotypeapi.js +++ b/src/api/custotypeapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchCustomerTypes = async (params) => { try { const response = await api.get('/Base/SelectCustoTypeAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -14,7 +14,7 @@ export const fetchCustomerTypes = async (params) => { export const fetchCanUseCustomerTypes = async (params) => { try { const response = await api.get('/Base/SelectCustoTypeAllCanUse', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/departmentapi.js b/src/api/departmentapi.js index d2fe3e1..9cd70cc 100644 --- a/src/api/departmentapi.js +++ b/src/api/departmentapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchDepartments = async (params) => { try { const response = await api.get('/Base/SelectDeptAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -24,6 +24,7 @@ export const addDepartment = async (data) => { export const updateDepartment = async (data) => { try { const response = await api.post(`/Base/UpdDept`, data); + console.log(response.data); return response.data; } catch (error) { throw error; diff --git a/src/api/employeeapi.js b/src/api/employeeapi.js index 8842dc3..041ec37 100644 --- a/src/api/employeeapi.js +++ b/src/api/employeeapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchEmployees = async (params) => { try { const response = await api.get('/Employee/SelectEmployeeAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -24,7 +24,7 @@ export const fetchEmployeeDetail = async (params) => { export const fetchEmployeeResume = async (params) => { try { const response = await api.get('/EmployeeHistory/SelectHistoryByEmployeeId', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -65,7 +65,7 @@ export const managerEmployeeAccount = async (data) => { export const fetchEmployeeRewardPunishment = async (params) => { try { const response = await api.get('/RewardPunishment/SelectAllRewardPunishmentByEmployeeId', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -75,7 +75,7 @@ export const fetchEmployeeRewardPunishment = async (params) => { export const fetchEmployeeAttendance = async (params) => { try { const response = await api.get('/EmployeeCheck/SelectCheckInfoByEmployeeId', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/goodsapi.js b/src/api/goodsapi.js index 51a1c44..c3a2bc8 100644 --- a/src/api/goodsapi.js +++ b/src/api/goodsapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchGoodss = async (params) => { try { const response = await api.get('/Sellthing/SelectSellthingAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/hydroelectricityapi.js b/src/api/hydroelectricityapi.js index 54d5a62..ad36835 100644 --- a/src/api/hydroelectricityapi.js +++ b/src/api/hydroelectricityapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchHydroelectricitys = async (params) => { try { const response = await api.get('/EnergyManagement/SelectEnergyManagementInfo', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/index.js b/src/api/index.js index fede6d6..5aedb66 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -1,7 +1,6 @@ import axios from 'axios'; import router from '../router'; -import dayjs from 'dayjs'; -import { BaseFields } from '../entities/common.entity'; +import { showErrorNotification } from '@/utils/index'; const api = axios.create({ baseURL: import.meta.env.VITE_API_URL, @@ -11,24 +10,11 @@ const api = axios.create({ api.interceptors.request.use( (config) => { const token = localStorage.getItem('token'); - const account = localStorage.getItem('account'); if (token) { config.headers.Authorization = `Bearer ${token}`; } - - if (account && config.data) { - let url = config.url.toLowerCase(); - url = url.replace(config.baseURL.toLowerCase(), ''); - if (url.includes('/add') || url.includes('/insert')) { - config.data[BaseFields.DATA_INS_USER] = account; - config.data[BaseFields.DATA_INS_DATE] = dayjs().format('YYYY-MM-DD HH:mm:ss'); - } else if (url.includes('/upd') || url.includes('/update')) { - config.data[BaseFields.DATA_CHG_USER] = account; - config.data[BaseFields.DATA_CHG_DATE] = dayjs().format('YYYY-MM-DD HH:mm:ss'); - } - config.data[BaseFields.USER_TOKEN] = token; - } + return config; }, (error) => { @@ -38,18 +24,51 @@ api.interceptors.request.use( api.interceptors.response.use( (response) => { + const resData = response.data; + if (resData.Success === undefined || resData.Code === undefined) { + console.warn('非标准API响应结构', response.config.url, resData); + } + if (!resData.Success) { + let errorMessage = resData.Message || '请求失败'; + + if (resData.Code === 4401) { + router.push('/signin'); + errorMessage = '登录已过期,请重新登录'; + } + + showErrorNotification(errorMessage); + return Promise.reject(new Error(errorMessage)); + } + return response; }, (error) => { - if (error.response && error.response.status === 401) { - localStorage.removeItem('token'); - localStorage.removeItem('username'); - localStorage.removeItem('account'); - window.$notification('error', '登录过期', '请重新登录'); - router.push('/signin'); - return Promise.reject(error); - } - return Promise.reject(error); + if (error.response) { + const customError = { + success: false, + code: error.response.status, + message: `服务器错误 (${error.response.status})`, + data: { + url: error.config.url, + method: error.config.method + } + }; + + showErrorNotification(customError.message); + return Promise.reject(customError); + } + localStorage.removeItem('token'); + localStorage.removeItem('username'); + localStorage.removeItem('account'); + showErrorNotification('error', '登录过期', '请重新登录'); + router.push('/signin'); + + showErrorNotification('网络连接异常'); + return Promise.reject({ + success: false, + code: 9001, + message: '网络连接错误' + }); } ); diff --git a/src/api/internalfinanceapi.js b/src/api/internalfinanceapi.js index 348e41f..cced9c7 100644 --- a/src/api/internalfinanceapi.js +++ b/src/api/internalfinanceapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchInternalFinances = async (params) => { try { const response = await api.get('/Asset/SelectAssetInfoAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/menuapi.js b/src/api/menuapi.js index 70568d9..82c90d6 100644 --- a/src/api/menuapi.js +++ b/src/api/menuapi.js @@ -3,8 +3,12 @@ import api from '../api'; // 获取菜单树 export const fetchMenusTree = async (menu) => { try { - const response = await api.post('/Menu/BuildMenuAll',menu); - return response.data; + const response = await api.post('/Menu/BuildMenuAll', menu); + + if (!response.data.Success) { + throw new Error(response.data.message || '获取菜单失败'); + } + return response.data.Data; } catch (error) { throw error; } @@ -14,7 +18,7 @@ export const fetchMenusTree = async (menu) => { export const fetchMenus = async (params) => { try { const response = await api.get('/Menu/SelectMenuAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/nationapi.js b/src/api/nationapi.js index 65bfdd4..6502fff 100644 --- a/src/api/nationapi.js +++ b/src/api/nationapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchNations = async (params) => { try { const response = await api.get('/Base/SelectNationAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/noticetypeapi.js b/src/api/noticetypeapi.js index f57088f..b581b5e 100644 --- a/src/api/noticetypeapi.js +++ b/src/api/noticetypeapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchNoticeTypes = async (params) => { try { const response = await api.get('/Base/SelectAppointmentNoticeTypeAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/passportapi.js b/src/api/passportapi.js index 1133012..8217bdb 100644 --- a/src/api/passportapi.js +++ b/src/api/passportapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchPassports = async (params) => { try { const response = await api.get('/Base/SelectPassPortTypeAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -14,7 +14,7 @@ export const fetchPassports = async (params) => { export const fetchCanUsePassports = async (params) => { try { const response = await api.get('/Base/SelectPassPortTypeAllCanUse', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/positionapi.js b/src/api/positionapi.js index f36b375..c118cfc 100644 --- a/src/api/positionapi.js +++ b/src/api/positionapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchPositions = async (params) => { try { const response = await api.get('/Base/SelectPositionAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/promotioncontentapi.js b/src/api/promotioncontentapi.js index d88e668..61cce6b 100644 --- a/src/api/promotioncontentapi.js +++ b/src/api/promotioncontentapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchPromotionContents = async (params) => { try { const response = await api.get('/PromotionContent/SelectPromotionContentAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/qualificationapi.js b/src/api/qualificationapi.js index e1724c7..e09bedc 100644 --- a/src/api/qualificationapi.js +++ b/src/api/qualificationapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchQualifications = async (params) => { try { const response = await api.get('/Base/SelectEducationAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/reserapi.js b/src/api/reserapi.js index 081913b..802284f 100644 --- a/src/api/reserapi.js +++ b/src/api/reserapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchResers = async (params) => { try { const response = await api.get('/Reser/SelectReserAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/roleapi.js b/src/api/roleapi.js index ac7ff37..76f1585 100644 --- a/src/api/roleapi.js +++ b/src/api/roleapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchRoles = async (params) => { try { const response = await api.get('/Role/SelectRoleList', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/roomapi.js b/src/api/roomapi.js index c173ed1..555dd60 100644 --- a/src/api/roomapi.js +++ b/src/api/roomapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchRooms = async (params) => { try { const response = await api.get('/Room/SelectRoomAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -14,7 +14,7 @@ export const fetchRooms = async (params) => { export const fetchAvailableRooms = async (params) => { try { const response = await api.get('/Room/SelectCanUseRoomAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/roomstateapi.js b/src/api/roomstateapi.js index 5ac0732..f18d6ec 100644 --- a/src/api/roomstateapi.js +++ b/src/api/roomstateapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchRoomStates = async () => { try { const response = await api.get('/Base/SelectRoomStateAll'); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/roomtypeapi.js b/src/api/roomtypeapi.js index ddc4fc9..d6cd224 100644 --- a/src/api/roomtypeapi.js +++ b/src/api/roomtypeapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchRoomTypes = async (params) => { try { const response = await api.get('/RoomType/SelectRoomTypesAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/spendinfoapi.js b/src/api/spendinfoapi.js index 57749c8..a7f898e 100644 --- a/src/api/spendinfoapi.js +++ b/src/api/spendinfoapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchSpendInfos = async (params) => { try { const response = await api.get('/Spend/SelectSpendInfoAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/supervisioninfoapi.js b/src/api/supervisioninfoapi.js index bd1f038..f166459 100644 --- a/src/api/supervisioninfoapi.js +++ b/src/api/supervisioninfoapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchSupervisionInfos = async (params) => { try { const response = await api.get('/SupervisionStatistics/SelectSupervisionStatisticsAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/utilityapi.js b/src/api/utilityapi.js index f5093ef..b65d88d 100644 --- a/src/api/utilityapi.js +++ b/src/api/utilityapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchOperationlogs = async (params) => { try { const response = await api.get('/Utility/SelectOperationlogAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } @@ -14,7 +14,7 @@ export const fetchOperationlogs = async (params) => { export const fetchRequestlogs = async (params) => { try { const response = await api.get('/Utility/SelectRequestlogAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/vipruleapi.js b/src/api/vipruleapi.js index 7e6b1e1..05751cf 100644 --- a/src/api/vipruleapi.js +++ b/src/api/vipruleapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchVipRules = async (params) => { try { const response = await api.get('/VipRule/SelectVipRuleList', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/api/workerfeatureapi.js b/src/api/workerfeatureapi.js index 3c08ff7..f07071e 100644 --- a/src/api/workerfeatureapi.js +++ b/src/api/workerfeatureapi.js @@ -4,7 +4,7 @@ import api from '../api'; export const fetchWorkerFeatures = async (params) => { try { const response = await api.get('/Base/SelectWorkerFeatureAll', { params }); - return response.data; + return response.data.Data; } catch (error) { throw error; } diff --git a/src/entities/common.entity.js b/src/entities/common.entity.js index f802441..48ff7b0 100644 --- a/src/entities/common.entity.js +++ b/src/entities/common.entity.js @@ -1,3 +1,7 @@ +export const getCurrentAccount = () => { + return localStorage.getItem('account') || ''; +}; + export const BaseFields = { ID: 'Id', IGNOREPAGING:'IgnorePaging', @@ -6,17 +10,22 @@ export const BaseFields = { DATA_INS_DATE: 'DataInsDate', DATA_CHG_USER: 'DataChgUsr', DATA_CHG_DATE: 'DataChgDate', - USER_TOKEN: 'UserToken' + USER_TOKEN: 'UserToken', + MODIFYSTATUS: 'ModifyStatus', + PAGE: 'Page', + PAGE_SIZE: 'PageSize', }; export const BaseInitialValues = { [BaseFields.ID]: 0, [BaseFields.IGNOREPAGING]: false, [BaseFields.IS_DELETED]: 0, - [BaseFields.DATA_INS_USER]: '', + [BaseFields.DATA_INS_USER]: getCurrentAccount(), [BaseFields.DATA_INS_DATE]: null, - [BaseFields.DATA_CHG_USER]: '', + [BaseFields.DATA_CHG_USER]: getCurrentAccount(), [BaseFields.DATA_CHG_DATE]: null, [BaseFields.USER_TOKEN]: '', - MODIFYSTATUS: '', + [BaseFields.MODIFYSTATUS]: '', + [BaseFields.PAGE]: 1, + [BaseFields.PAGE_SIZE]: 15, }; \ No newline at end of file diff --git a/src/entities/log.entity.js b/src/entities/log.entity.js index 5dd3d8a..a2c7f9a 100644 --- a/src/entities/log.entity.js +++ b/src/entities/log.entity.js @@ -9,7 +9,9 @@ export const LogSpecificFields = { LEVEL: 'LogLevel', VERSION: 'SoftwareVersion', IPADDRESS: 'LoginIpAddress', - LEVELNAME: 'LogLevelName' + LEVELNAME: 'LogLevelName', + STARTTIME: 'StartTime', + ENDTIME: 'EndTime' }; export const LogFields = { @@ -26,7 +28,8 @@ export const initialFormValues = { [LogFields.LEVEL]: null, [LogFields.VERSION]: '', [LogFields.IPADDRESS]: '', - modifystatus: '' + [LogFields.STARTTIME]: null, + [LogFields.ENDTIME]: null }; export const getColumns = (t) => [ diff --git a/src/layouts/MainLayout.vue b/src/layouts/MainLayout.vue index 333b112..90318ca 100644 --- a/src/layouts/MainLayout.vue +++ b/src/layouts/MainLayout.vue @@ -119,11 +119,14 @@ const currentRouteKey = ref(''); const refreshMenu = async () => { try { - const rawData = await fetchMenusTree({ + const menuItems = await fetchMenusTree({ [BaseFields.USER_TOKEN]: localStorage.getItem('token') }); const currentOpenKeys = [...openKeys.value]; const processMenuItems = (items) => { + if (!Array.isArray(items)) { + return []; + } return items.map(item => ({ key: item.Key, title: `message.${item.Key}`, @@ -132,10 +135,10 @@ const refreshMenu = async () => { children: item.Children ? processMenuItems(item.Children) : undefined })); }; - menuData.value = processMenuItems(rawData); + menuData.value = processMenuItems(menuItems.Items); openKeys.value = currentOpenKeys; } catch (error) { - console.error('菜单刷新失败:', error); + showErrorNotification(error.message) } }; @@ -178,6 +181,7 @@ const checkLoginStatus = () => { const logout = () => { localStorage.removeItem('token'); localStorage.removeItem('username'); + localStorage.removeItem('account'); isLoggedIn.value = false; username.value = ''; router.push('/signin'); diff --git a/src/router/index.js b/src/router/index.js index 1bb864e..e563758 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,5 +1,4 @@ import { createRouter, createWebHistory } from 'vue-router'; -import HomeView from '../views/HomeView.vue'; import NotFound from '../views/responsepage/NotFound.vue'; import MainLayout from '../layouts/MainLayout.vue'; import SignIn from '../views/SignInView.vue'; @@ -38,10 +37,10 @@ const routes = [ path: '/', component: MainLayout, children: [ - { - path: '/home', - component: HomeView, - meta: { requiresAuth: true } + { + path: '/', + redirect: '/dashboard', + meta: { requiresAuth: true } }, { path: '/position', @@ -233,7 +232,7 @@ const router = createRouter({ router.beforeEach((to, from, next) => { if (to.matched.some(record => record.meta.requiresAuth)) { if (!checkTokenValidity()) { - return + return next({ name: 'signin' }); } next(); } else { diff --git a/src/utils/index.js b/src/utils/index.js index cd40644..2e234c7 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -81,6 +81,10 @@ export const formatDateTime = (dateString) => { } }; +export const getLocalDate = () => { + return new Date(); +} + /** * 货币格式化函数 * @param {number|string} value - 需要格式化的数值 diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue deleted file mode 100644 index 2075dd5..0000000 --- a/src/views/HomeView.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - diff --git a/src/views/SignInView.vue b/src/views/SignInView.vue index edf058a..86cc3b1 100644 --- a/src/views/SignInView.vue +++ b/src/views/SignInView.vue @@ -75,18 +75,24 @@ const onFinish = async () => { loading.value = true; try { const response = await signIn(form); - if (response && response.StatusCode === 200) { - const { Source } = response; - localStorage.setItem('token', Source.UserToken); - localStorage.setItem('username',Source.Name); - localStorage.setItem('account',Source.Number); + if (response.Success) { + const userData = response.Data; + + localStorage.setItem('token', userData.UserToken); + localStorage.setItem('username', userData.Name); + localStorage.setItem('account', userData.Number); + router.push('/'); - showSuccessNotification(t('message.welcomeBack')); + showSuccessNotification(t('message.welcomeBack')); } else { - showErrorNotification(t('message.checkUsernameAndPassword')); + showErrorNotification( + response.message || t('message.checkUsernameAndPassword') + ); } } catch (error) { - showErrorNotification(t('message.pleaseTryAgainLater')); + showErrorNotification( + error.response?.data?.message || t('message.pleaseTryAgainLater') + ); } finally { loading.value = false; } diff --git a/src/views/base/DepartmentView.vue b/src/views/base/DepartmentView.vue index 08efc94..63cb187 100644 --- a/src/views/base/DepartmentView.vue +++ b/src/views/base/DepartmentView.vue @@ -112,12 +112,12 @@ const fetchDepartmentData = async () => { loading.value = true; try { const result = await fetchDepartments({ - page: pagination.current, - pageSize: pagination.pageSize, + [DepartmentFields.PAGE]: pagination.current, + [DepartmentFields.PAGE_SIZE]: pagination.pageSize, [DepartmentFields.IS_DELETED]: 0 }); - if (result?.listSource) { - departments.value = result.listSource.map(item => ({ + if (result && Array.isArray(result.Items)) { + departments.value = result.Items.map(item => ({ [DepartmentFields.ID]: item[DepartmentFields.ID], [DepartmentFields.NUMBER]: item[DepartmentFields.NUMBER], [DepartmentFields.NAME]: item[DepartmentFields.NAME], @@ -129,7 +129,7 @@ const fetchDepartmentData = async () => { [DepartmentFields.CREATIONDATE]: item[DepartmentFields.CREATIONDATE], [DepartmentFields.IS_DELETED]: item[DepartmentFields.IS_DELETED] })); - pagination.total = result.total; + pagination.total = result.TotalCount; } else { throw new Error('数据格式错误'); } @@ -143,9 +143,10 @@ const fetchDepartmentData = async () => { const fetchSelectDepartments = async () => { try { const result = await fetchDepartments({ - [DepartmentFields.IS_DELETED]: 0 + [DepartmentFields.IS_DELETED]: 0, + [DepartmentFields.IGNOREPAGING]: true }); - departmentOptions.value = result.listSource.map((item) => ({ + departmentOptions.value = result.Items.map((item) => ({ label: item[DepartmentFields.NAME], value: item[DepartmentFields.NUMBER], })); @@ -158,10 +159,9 @@ const fetchSelectLeaders = async () => { try { const result = await fetchEmployees({ [EmployeeFields.IS_DELETED]: 0, - page: 1, - pageSize: 9999 + [EmployeeFields.IGNOREPAGING]: true }); - leaderOptions.value = result.listSource.map((item) => ({ + leaderOptions.value = result.Items.map((item) => ({ label: item[EmployeeFields.NAME], value: item[EmployeeFields.NUMBER], })); @@ -189,7 +189,7 @@ const showModal = () => { form[DepartmentFields.LEADER] = ''; form[DepartmentFields.PARENT] = ''; form[DepartmentFields.CREATIONDATE] = null; - form.modifystatus = 'insert'; + form[DepartmentFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -207,16 +207,16 @@ const editDepartment = (record) => { form[DepartmentFields.LEADER] = record[DepartmentFields.LEADER]; form[DepartmentFields.PARENT] = record[DepartmentFields.PARENT]; form[DepartmentFields.CREATIONDATE] = record[DepartmentFields.CREATIONDATE] ? dayjs(record[DepartmentFields.CREATIONDATE]) : null; - form.modifystatus = 'update'; + form[DepartmentFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[DepartmentFields.MODIFYSTATUS] === 'update') { var response = await updateDepartment({ ...form,[DepartmentFields.CREATIONDATE]:form[DepartmentFields.CREATIONDATE]?form[DepartmentFields.CREATIONDATE].format('YYYY-MM-DD'):null}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.updateSuccess')); } @@ -226,7 +226,7 @@ const handleModalOk = async () => { } } else { var response = await addDepartment({ ...form,[DepartmentFields.CREATIONDATE]:form[DepartmentFields.CREATIONDATE]?form[DepartmentFields.CREATIONDATE].format('YYYY-MM-DD'):null}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.addSuccess')); } @@ -252,7 +252,7 @@ const handleDelete = async (record) => { try { record[DepartmentFields.IS_DELETED] = 1; var response = await deleteDepartment(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.deleteSuccess')); } @@ -262,7 +262,6 @@ const handleDelete = async (record) => { } fetchDepartmentData(); } catch (error) { - console.error('Delete error:', error); showErrorNotification(t('message.pleaseTryAgainLater')); } }; diff --git a/src/views/base/NationView.vue b/src/views/base/NationView.vue index 8cac932..5c0a4a8 100644 --- a/src/views/base/NationView.vue +++ b/src/views/base/NationView.vue @@ -77,17 +77,17 @@ const fetchNationData = async () => { loading.value = true; try { const result = await fetchNations({ - page: pagination.current, - pageSize: pagination.pageSize, + [NationFields.PAGE]: pagination.current, + [NationFields.PAGE_SIZE]: pagination.pageSize, [NationFields.IS_DELETED]: 0 }); - if (result?.listSource) { - nations.value = result.listSource.map(item => ({ + if (result?.Items) { + nations.value = result.Items.map(item => ({ [NationFields.ID]: item[NationFields.ID], [NationFields.NUMBER]: item[NationFields.NUMBER], [NationFields.NAME]: item[NationFields.NAME] })); - pagination.total = result.total; + pagination.total = result.TotlalCount; } else { throw new Error('数据格式错误'); } @@ -110,7 +110,7 @@ const showModal = () => { separator: null, }); form[NationFields.NAME] = ''; - form.modifystatus = 'insert'; + form[NationFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -124,16 +124,16 @@ const editNation = (record) => { form[NationFields.ID] = record[NationFields.ID]; form[NationFields.NUMBER] = record[NationFields.NUMBER]; form[NationFields.NAME] = record[NationFields.NAME]; - form.modifystatus = 'update'; + form[NationFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[NationFields.MODIFYSTATUS] === 'update') { var response = await updateNation({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.updateSuccess')); } @@ -143,7 +143,7 @@ const handleModalOk = async () => { } } else { var response = await addNation({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.addSuccess')); } @@ -169,7 +169,7 @@ const handleDelete = async (record) => { try { record[NationFields.IS_DELETED] = 1; var response = await deleteNation(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.deleteSuccess')); } diff --git a/src/views/base/NoticeTypeView.vue b/src/views/base/NoticeTypeView.vue index e53e0d4..ac53bde 100644 --- a/src/views/base/NoticeTypeView.vue +++ b/src/views/base/NoticeTypeView.vue @@ -77,20 +77,18 @@ loading.value = true; try { const result = await fetchNoticeTypes({ - page: pagination.current, - pageSize: pagination.pageSize, + [NoticeTypeFields.PAGE]: pagination.current, + [NoticeTypeFields.PAGE_SIZE]: pagination.pageSize, [NoticeTypeFields.IS_DELETED]: 0 }); - if (result?.listSource) { - notices.value = result.listSource.map(item => ({ + if (result?.Items) { + notices.value = result.Items.map(item => ({ [NoticeTypeFields.ID]: item[NoticeTypeFields.ID], [NoticeTypeFields.NUMBER]: item[NoticeTypeFields.NUMBER], [NoticeTypeFields.NAME]: item[NoticeTypeFields.NAME], [NoticeTypeFields.IS_DELETED]: item[NoticeTypeFields.IS_DELETED] })); - pagination.total = result.total; - } else { - showErrorNotification('数据格式错误'); + pagination.total = result.TotalCount; } } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); @@ -111,7 +109,7 @@ separator: null, }); form[NoticeTypeFields.NAME] = ''; - form.modifystatus = 'insert'; + form[NoticeTypeFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -125,16 +123,16 @@ form[NoticeTypeFields.ID] = record[NoticeTypeFields.ID]; form[NoticeTypeFields.NUMBER] = record[NoticeTypeFields.NUMBER]; form[NoticeTypeFields.NAME] = record[NoticeTypeFields.NAME]; - form.modifystatus = 'update'; + form[NoticeTypeFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[NoticeTypeFields.MODIFYSTATUS] === 'update') { var response = await updateNoticeType({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.updateSuccess')); } @@ -144,7 +142,7 @@ } } else { var response = await addNoticeType({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.addSuccess')); } @@ -170,7 +168,7 @@ try { record[NoticeTypeFields.IS_DELETED] = 1; var response = await deleteNoticeType(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.deleteSuccess')); } @@ -184,13 +182,13 @@ } }; - const handleTableChange = (newPagipassport) => { - pagipassport.current = newPagipassport.current; - pagipassport.pageSize = newPagipassport.pageSize; + const handleTableChange = (newPagination) => { + pagination.current = newPagination.current; + pagination.pageSize = newPagination.pageSize; fetchNoticeTypeData(); }; - const handleSorterChange = (pagipassport, filters, sorter) => { + const handleSorterChange = (newPagination, filters, sorter) => { sortedInfo.value = sorter; }; \ No newline at end of file diff --git a/src/views/base/PassportView.vue b/src/views/base/PassportView.vue index f953b35..387ceda 100644 --- a/src/views/base/PassportView.vue +++ b/src/views/base/PassportView.vue @@ -75,19 +75,17 @@ loading.value = true; try { const result = await fetchPassports({ - page: pagination.current, - pageSize: pagination.pageSize, + [PassportFields.PAGE]: pagination.current, + [PassportFields.PAGE_SIZE]: pagination.pageSize, [PassportFields.IS_DELETED]: 0 }); - if (result?.listSource) { - passports.value = result.listSource.map(item => ({ + if (result?.Items) { + passports.value = result.Items.map(item => ({ [PassportFields.ID]: item[PassportFields.ID], [PassportFields.NUMBER]: item[PassportFields.NUMBER], [PassportFields.NAME]: item[PassportFields.NAME] })); - pagination.total = result.total; - } else { - showErrorNotification('数据格式错误'); + pagination.total = result.TotalCount; } } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); @@ -105,7 +103,7 @@ modalTitle.value = t('message.insertPassport'); form[PassportFields.NUMBER] = null; form[PassportFields.NAME] = ''; - form.modifystatus = 'insert'; + form[PassportFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -119,16 +117,16 @@ form[PassportFields.ID] = record[PassportFields.ID]; form[PassportFields.NUMBER] = record[PassportFields.NUMBER]; form[PassportFields.NAME] = record[PassportFields.NAME]; - form.modifystatus = 'update'; + form[PassportFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[PassportFields.MODIFYSTATUS] === 'update') { var response = await updatePassport({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.updateSuccess')); } @@ -138,7 +136,7 @@ } } else { var response = await addPassport({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.addSuccess')); } @@ -164,7 +162,7 @@ try { record[PassportFields.IS_DELETED] = 1; var response = await deletePassport(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.deleteSuccess')); } @@ -178,13 +176,13 @@ } }; - const handleTableChange = (newPagipassport) => { - pagipassport.current = newPagipassport.current; - pagipassport.pageSize = newPagipassport.pageSize; + const handleTableChange = (newPagination) => { + pagination.current = newPagination.current; + pagination.pageSize = newPagination.pageSize; fetchPassportData(); }; - const handleSorterChange = (pagipassport, filters, sorter) => { + const handleSorterChange = (newPagination, filters, sorter) => { sortedInfo.value = sorter; }; \ No newline at end of file diff --git a/src/views/base/PositionView.vue b/src/views/base/PositionView.vue index 47c24ad..2cef41e 100644 --- a/src/views/base/PositionView.vue +++ b/src/views/base/PositionView.vue @@ -77,19 +77,17 @@ const fetchPositionData = async () => { loading.value = true; try { const result = await fetchPositions({ - page: pagination.current, - pageSize: pagination.pageSize, + [PositionFields.PAGE]: pagination.current, + [PositionFields.PAGE_SIZE]: pagination.pageSize, [PositionFields.IS_DELETED]: 0 }); - if (result?.listSource) { - positions.value = result.listSource.map(item => ({ + if (result && Array.isArray(result.Items)) { + positions.value = result.Items.map(item => ({ [PositionFields.ID]: item[PositionFields.ID], [PositionFields.NUMBER]: item[PositionFields.NUMBER], [PositionFields.NAME]: item[PositionFields.NAME] })); - pagination.total = result.total; - } else { - throw new Error('数据格式错误'); + pagination.total = result.TotalCount; } } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); @@ -111,8 +109,7 @@ const showModal = () => { separator: null, }); form[PositionFields.NAME] = ''; - form.isDelete = 0; - form.modifystatus = 'insert'; + form[PositionFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -126,33 +123,32 @@ const editPosition = (record) => { form[PositionFields.ID] = record[PositionFields.ID]; form[PositionFields.NUMBER] = record.PositionNumber; form[PositionFields.NAME] = record.PositionName; - form.modifystatus = 'update'; + form[PositionFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[PositionFields.MODIFYSTATUS] === 'update') { var response = await updatePosition({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle') , t('message.updateSuccess')); + showSuccessNotification(t('message.updateSuccess')); } else { - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); } } else { - console.log(form) var response = await addPosition({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle') , t('message.addSuccess')); + showSuccessNotification(t('message.addSuccess')); } else { - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); } } modalVisible.value = false; @@ -172,13 +168,13 @@ const handleDelete = async (record) => { try { record[PositionFields.IS_DELETED] = 1; var response = await deletePosition(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle'), t('message.deleteSuccess')); + showSuccessNotification(t('message.deleteSuccess')); } else { - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); } fetchPositionData(); } catch (error) { @@ -186,9 +182,9 @@ const handleDelete = async (record) => { } }; -const handleTableChange = (newPagiposition) => { - pagination.current = newPagiposition.current; - pagination.pageSize = newPagiposition.pageSize; +const handleTableChange = (newPagination) => { + pagination.current = newPagination.current; + pagination.pageSize = newPagination.pageSize; fetchPositionData(); }; diff --git a/src/views/base/PromotionContentView.vue b/src/views/base/PromotionContentView.vue index 294b078..ab0af69 100644 --- a/src/views/base/PromotionContentView.vue +++ b/src/views/base/PromotionContentView.vue @@ -77,19 +77,17 @@ loading.value = true; try { const result = await fetchPromotionContents({ - page: pagination.current, - pageSize: pagination.pageSize, + [PromotionContentFields.PAGE]: pagination.current, + [PromotionContentFields.PAGE_SIZE]: pagination.pageSize, [PromotionContentFields.IS_DELETED]: 0 }); - if (result?.listSource) { - promotionContents.value = result.listSource.map(item => ({ + if (result?.Items) { + promotionContents.value = result.Items.map(item => ({ [PromotionContentFields.ID]: item[PromotionContentFields.ID], [PromotionContentFields.NUMBER]: item[PromotionContentFields.NUMBER], [PromotionContentFields.MESSAGE]: item[PromotionContentFields.MESSAGE] })); - pagination.total = result.total; - } else { - throw new Error('数据格式错误'); + pagination.total = result.TotalCount; } } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); @@ -111,7 +109,7 @@ separator: null, }); form[PromotionContentFields.MESSAGE] = ''; - form.modifystatus = 'insert'; + form[PromotionContentFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -125,16 +123,16 @@ form[PromotionContentFields.ID] = record[PromotionContentFields.ID]; form[PromotionContentFields.NUMBER] = record[PromotionContentFields.NUMBER]; form[PromotionContentFields.MESSAGE] = record[PromotionContentFields.MESSAGE]; - form.modifystatus = 'update'; + form[PromotionContentFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[PromotionContentFields.MODIFYSTATUS] === 'update') { var response = await updatePromotionContent({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.updateSuccess')); } @@ -144,7 +142,7 @@ } } else { var response = await addPromotionContent({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { showSuccessNotification(t('message.addSuccess')); } @@ -170,13 +168,13 @@ try { record[PromotionContentFields.IS_DELETED] = 1; var response = await deletePromotionContent(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle'), t('message.deleteSuccess')); + showSuccessNotification(t('message.deleteSuccess')); } else { - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); } fetchPromotionContentData(); } catch (error) { @@ -184,9 +182,9 @@ } }; - const handleTableChange = (newPagipromotionContent) => { - pagination.current = newPagipromotionContent.current; - pagination.pageSize = newPagipromotionContent.pageSize; + const handleTableChange = (newPagination) => { + pagination.current = newPagination.current; + pagination.pageSize = newPagination.pageSize; fetchPromotionContentData(); }; diff --git a/src/views/base/QualificationView.vue b/src/views/base/QualificationView.vue index eb342c1..c662e17 100644 --- a/src/views/base/QualificationView.vue +++ b/src/views/base/QualificationView.vue @@ -75,19 +75,17 @@ const fetchQualificationData = async () => { loading.value = true; try { const result = await fetchQualifications({ - page: pagination.current, - pageSize: pagination.pageSize, + [EducationFields.PAGE]: pagination.current, + [EducationFields.PAGE_SIZE]: pagination.pageSize, [EducationFields.IS_DELETED]: 0 }); - if (result?.listSource) { - qualifications.value = result.listSource.map(item => ({ + if (result?.Items) { + qualifications.value = result.Items.map(item => ({ [EducationFields.ID]: item[EducationFields.ID], [EducationFields.NUMBER]: item[EducationFields.NUMBER], [EducationFields.NAME]: item[EducationFields.NAME] })); - pagination.total = result.total; - } else { - throw new Error('数据格式错误'); + pagination.total = result.TotalCount; } } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); @@ -110,7 +108,7 @@ const showModal = () => { }); form[EducationFields.NAME] = ''; form[EducationFields.IS_DELETED] = 0; - form.modifystatus = 'insert'; + form[EducationFields.MODIFYSTATUS] = 'insert'; }; const refreshData = () => @@ -124,29 +122,29 @@ const editQualification = (record) => { form[EducationFields.ID] = record[EducationFields.ID]; form[EducationFields.NUMBER] = record[EducationFields.NUMBER]; form[EducationFields.NAME] = record[EducationFields.NAME]; - form.modifystatus = 'update'; + form[EducationFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[EducationFields.MODIFYSTATUS] === 'update') { var response = await updateQualification({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle') , t('message.updateSuccess')); + showSuccessNotification(t('message.updateSuccess')); } else - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); } else { var response = await addQualification({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle') , t('message.addSuccess')); + showSuccessNotification(t('message.addSuccess')); } else - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); } modalVisible.value = false; fetchQualificationData(); @@ -165,21 +163,21 @@ const handleDelete = async (record) => { try { record[EducationFields.IS_DELETED] = 1; var response = await deleteQualification(record); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle') , t('message.deleteSuccess')); + showSuccessNotification(t('message.deleteSuccess')); } else - showErrorNotification('error', t('message.operationTitle'), t('message.pleaseTryAgainLater')); + showErrorNotification(t('message.pleaseTryAgainLater')); fetchQualificationData(); } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); } }; -const handleTableChange = (newPagiqualification) => { - pagination.current = newPagiqualification.current; - pagination.pageSize = newPagiqualification.pageSize; +const handleTableChange = (newPagination) => { + pagination.current = newPagination.current; + pagination.pageSize = newPagination.pageSize; fetchQualificationData(); }; diff --git a/src/views/customermanagement/CustomerSpendView.vue b/src/views/customermanagement/CustomerSpendView.vue index f485247..5c99b7e 100644 --- a/src/views/customermanagement/CustomerSpendView.vue +++ b/src/views/customermanagement/CustomerSpendView.vue @@ -105,10 +105,9 @@ import { ref, onMounted, computed, reactive } from 'vue'; import { useRoute } from 'vue-router'; import { getPageTitle } from '@/utils/pageTitle'; -import { fetchSpendInfos, addSpendInfo, updateSpendInfo } from '@/api/spendinfoapi'; +import { fetchSpendInfos, updateSpendInfo } from '@/api/spendinfoapi'; import { SpendInfoFields, - SpendState, DATE_FORMAT, initialFormValues, getColumns, @@ -163,12 +162,12 @@ const fetchSpendInfoData = async () => { loading.value = true; try { const result = await fetchSpendInfos({ - page: pagination.current, - pageSize: pagination.pageSize, + [SpendInfoFields.PAGE]: pagination.current, + [SpendInfoFields.PAGE_SIZE]: pagination.pageSize, [SpendInfoFields.IS_DELETED]: 0, }); - if(result?.listSource){ - spends.value = result.listSource.map(item => ({ + if(result?.Items){ + spends.value = result.Items.map(item => ({ [SpendInfoFields.ID]: item[SpendInfoFields.ID], [SpendInfoFields.NUMBER]: item[SpendInfoFields.NUMBER], [SpendInfoFields.ROOM_NO]: item[SpendInfoFields.ROOM_NO], @@ -183,7 +182,7 @@ const fetchSpendInfoData = async () => { [SpendInfoFields.STATE]: item[SpendInfoFields.STATE], [SpendInfoFields.STATE_NAME]: item[SpendInfoFields.STATE_NAME], })); - pagination.total = result.total; + pagination.total = result.TotalCount; } } catch (error) { showErrorNotification(error.message || t('message.pleaseTryAgainLater')); @@ -214,18 +213,18 @@ const editSpend = (record) => { form[SpendInfoFields.MONEY] = record[SpendInfoFields.MONEY]; form[SpendInfoFields.TIME] = record[SpendInfoFields.TIME] ? dayjs(record[SpendInfoFields.TIME]) : null; form[SpendInfoFields.STATE] = record[SpendInfoFields.STATE]; - form.modifystatus = 'update'; + form[SpendInfoFields.MODIFYSTATUS] = 'update'; }; const handleModalOk = async () => { try { await formRef.value.validate(); confirmLoading.value = true; - if (form.modifystatus === 'update') { + if (form[SpendInfoFields.MODIFYSTATUS] === 'update') { var response = await updateSpendInfo({ ...form}); - if(response && response.StatusCode === 200) + if(response && response.Success) { - showSuccessNotification('success', t('message.operationTitle') , t('message.updateSuccess')); + showSuccessNotification(t('message.updateSuccess')); } else { diff --git a/src/views/customermanagement/CustomerTypeView.vue b/src/views/customermanagement/CustomerTypeView.vue index b33af12..db10bcd 100644 --- a/src/views/customermanagement/CustomerTypeView.vue +++ b/src/views/customermanagement/CustomerTypeView.vue @@ -17,6 +17,7 @@ :pagination="pagination" bordered @change="handleTableChange" + :handleSorterChange="handleSorterChange" >