From a30577122180ed8b2a6bb4820d4bfef99655295b Mon Sep 17 00:00:00 2001 From: wuxw <928255095@qq.com> Date: Mon, 9 Jun 2025 22:07:18 +0800 Subject: [PATCH] 完成在场车辆和车辆进出场记录 --- src/api/car/carInManageApi.js | 37 +++++++++++++++++++++++++++++++++++++ src/api/car/carInoutManageApi.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++ src/i18n/index.js | 6 ++++++ src/router/index.js | 10 ++++++++++ src/views/car/carInManageLang.js | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/car/carInManageList.vue | 298 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/car/carInoutManageLang.js | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/views/car/carInoutManageList.vue | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 822 insertions(+), 0 deletions(-) create mode 100644 src/api/car/carInManageApi.js create mode 100644 src/api/car/carInoutManageApi.js create mode 100644 src/views/car/carInManageLang.js create mode 100644 src/views/car/carInManageList.vue create mode 100644 src/views/car/carInoutManageLang.js create mode 100644 src/views/car/carInoutManageList.vue diff --git a/src/api/car/carInManageApi.js b/src/api/car/carInManageApi.js new file mode 100644 index 0000000..5482ad6 --- /dev/null +++ b/src/api/car/carInManageApi.js @@ -0,0 +1,37 @@ +import request from '@/utils/request' + +// 获取停车场区域列表 +export function listParkingAreas(params) { + return new Promise((resolve, reject) => { + request({ + url: '/parkingArea.listParkingAreas', + method: 'get', + params + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取在场车辆列表 +export function listCarIns(params) { + return new Promise((resolve, reject) => { + request({ + url: '/iot.getOpenApi', + method: 'get', + params + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取在场车辆失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/api/car/carInoutManageApi.js b/src/api/car/carInoutManageApi.js new file mode 100644 index 0000000..34c3ed1 --- /dev/null +++ b/src/api/car/carInoutManageApi.js @@ -0,0 +1,46 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +// 获取停车场区域列表 +export function listParkingAreas(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/parkingArea.listParkingAreas', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +// 获取进出场记录列表 +export function listCarInouts(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/iot.getOpenApi', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + if (res.code === 0) { + resolve(res) + } else { + reject(new Error(res.msg || '获取进出场记录失败')) + } + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index 98e8e7c..2c86ad9 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -151,6 +151,8 @@ import { messages as listOwnerCarMessages } from '../views/car/listOwnerCarLang' import { messages as hireParkingSpaceMessages } from '../views/car/hireParkingSpaceLang' import { messages as carAddParkingSpaceMessages } from '../views/car/carAddParkingSpaceLang' import { messages as buyCarMonthCardMessages } from '../views/fee/buyCarMonthCardLang' +import { messages as carInoutManageMessages } from '../views/car/carInoutManageLang' +import { messages as carInManageMessages } from '../views/car/carInManageLang' Vue.use(VueI18n) @@ -306,6 +308,8 @@ const messages = { ...hireParkingSpaceMessages.en, ...carAddParkingSpaceMessages.en, ...buyCarMonthCardMessages.en, + ...carInoutManageMessages.en, + ...carInManageMessages.en, }, zh: { ...loginMessages.zh, @@ -457,6 +461,8 @@ const messages = { ...hireParkingSpaceMessages.zh, ...carAddParkingSpaceMessages.zh, ...buyCarMonthCardMessages.zh, + ...carInoutManageMessages.zh, + ...carInManageMessages.zh, } } diff --git a/src/router/index.js b/src/router/index.js index d1e6918..03c6429 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -751,6 +751,16 @@ const routes = [ name: '/views/fee/buyCarMonthCard', component: () => import('@/views/fee/buyCarMonthCardList.vue') }, + { + path:'/pages/property/carInoutManage', + name:'/pages/property/carInoutManage', + component: () => import('@/views/car/carInoutManageList.vue') + }, + { + path:'/pages/property/carInManage', + name:'/pages/property/carInManage', + component: () => import('@/views/car/carInManageList.vue') + }, // 其他子路由可以在这里添加 ] }, diff --git a/src/views/car/carInManageLang.js b/src/views/car/carInManageLang.js new file mode 100644 index 0000000..d584acd --- /dev/null +++ b/src/views/car/carInManageLang.js @@ -0,0 +1,72 @@ +export const messages = { + en: { + carInManage: { + searchCondition: 'Search Conditions', + inputPlateNumber: 'Please enter license plate number', + selectVehicleStatus: 'Please select vehicle status', + inStatus: 'Entry Status', + paymentComplete: 'Payment Completed', + exitStatus: 'Exit Status', + timeoutRepayment: 'Payment Timeout Repayment', + selectPlateType: 'Please select license plate type', + temporaryVehicle: 'Temporary Vehicle', + forSaleVehicle: 'For Sale Vehicle', + monthlyRental: 'Monthly Rental', + whitelist: 'Whitelist', + blacklist: 'Blacklist', + internalVehicle: 'Internal Vehicle', + freeVehicle: 'Free Vehicle', + enterStartTime: 'Enter start time', + enterEndTime: 'Enter end time', + search: 'Search', + reset: 'Reset', + parkedVehicles: 'Parked Vehicles', + inoutId: 'In/Out ID', + vehicleStatus: 'Vehicle Status', + plateNumber: 'License Plate', + parkingLot: 'Parking Lot', + billingRule: 'Billing Rule', + plateType: 'License Plate Type', + entryTime: 'Entry Time', + parkingDuration: 'Parking Duration', + parkingFee: 'Parking Fee', + hour: 'hour', + minute: 'min' + } + }, + zh: { + carInManage: { + searchCondition: '查询条件', + inputPlateNumber: '请输入车牌号', + selectVehicleStatus: '请选择车辆状态', + inStatus: '进场状态', + paymentComplete: '支付完成', + exitStatus: '离场状态', + timeoutRepayment: '支付超时重新支付', + selectPlateType: '请选择车牌类型', + temporaryVehicle: '临时车', + forSaleVehicle: '出售车辆', + monthlyRental: '月租车', + whitelist: '白名单', + blacklist: '黑名单', + internalVehicle: '内部车', + freeVehicle: '免费车', + enterStartTime: '进场开始时间', + enterEndTime: '进场结束时间', + search: '查询', + reset: '重置', + parkedVehicles: '在场车辆', + inoutId: '进出场ID', + vehicleStatus: '车辆状态', + plateNumber: '车牌号', + parkingLot: '停车场', + billingRule: '计费规则', + plateType: '车牌类型', + entryTime: '进场时间', + parkingDuration: '在场时间', + parkingFee: '停车费用', + hour: '小时', + minute: '分' + } + } +} \ No newline at end of file diff --git a/src/views/car/carInManageList.vue b/src/views/car/carInManageList.vue new file mode 100644 index 0000000..bfc29d3 --- /dev/null +++ b/src/views/car/carInManageList.vue @@ -0,0 +1,298 @@ + + + + + \ No newline at end of file diff --git a/src/views/car/carInoutManageLang.js b/src/views/car/carInoutManageLang.js new file mode 100644 index 0000000..5e3fa73 --- /dev/null +++ b/src/views/car/carInoutManageLang.js @@ -0,0 +1,76 @@ +export const messages = { + en: { + carInoutManage: { + searchCondition: 'Search Condition', + carNumRequired: 'Required, please enter license plate number', + selectCarStatus: 'Select vehicle status', + inStatus: 'Entry Status', + payCompleted: 'Payment Completed', + outStatus: 'Exit Status', + payTimeout: 'Payment Timeout', + selectCarType: 'Select license plate type', + temporaryCar: 'Temporary Car', + saleCar: 'Sale Car', + monthlyCar: 'Monthly Car', + internalCar: 'Internal Car', + freeCar: 'Free Car', + startTimePlaceholder: 'Please enter start time', + endTimePlaceholder: 'Please enter end time', + query: 'Search', + reset: 'Reset', + carInoutRecord: 'In/Out Records', + inPhoto: 'Entry Photo', + inoutId: 'In/Out ID', + carStatus: 'Vehicle Status', + carNum: 'License Plate', + parkingArea: 'Parking Area', + feeRule: 'Billing Rule', + carType: 'License Type', + inTime: 'Entry Time', + outTime: 'Exit Time', + parkingTime: 'Parking Duration', + chargeAmount: 'Charge Amount', + remark: 'Remark', + hour: 'hour', + minute: 'min', + out: 'Exit' + } + }, + zh: { + carInoutManage: { + searchCondition: '查询条件', + carNumRequired: '必填,请填写车牌号', + selectCarStatus: '请选择车辆状态', + inStatus: '进场状态', + payCompleted: '支付完成', + outStatus: '离场状态', + payTimeout: '支付超时重新支付', + selectCarType: '请选择车牌类型', + temporaryCar: '临时车', + saleCar: '出售车辆', + monthlyCar: '月租车', + internalCar: '内部车', + freeCar: '免费车', + startTimePlaceholder: '请填写开始时间', + endTimePlaceholder: '请填写结束时间', + query: '查询', + reset: '重置', + carInoutRecord: '进出场记录', + inPhoto: '进场图', + inoutId: '进出场编号', + carStatus: '车辆状态', + carNum: '车牌号', + parkingArea: '停车场', + feeRule: '计费规则', + carType: '车牌类型', + inTime: '进场时间', + outTime: '出场时间', + parkingTime: '停车时间', + chargeAmount: '收费金额', + remark: '说明', + hour: '小时', + minute: '分', + out: '出场' + } + } +} \ No newline at end of file diff --git a/src/views/car/carInoutManageList.vue b/src/views/car/carInoutManageList.vue new file mode 100644 index 0000000..92e6119 --- /dev/null +++ b/src/views/car/carInoutManageList.vue @@ -0,0 +1,277 @@ + + + + + \ No newline at end of file -- libgit2 0.21.4