diff --git a/src/api/report/reportProficientApi.js b/src/api/report/reportProficientApi.js new file mode 100644 index 0000000..419a60f --- /dev/null +++ b/src/api/report/reportProficientApi.js @@ -0,0 +1,98 @@ +import request from '@/utils/request' +import { getCommunityId } from '@/api/community/communityApi' + +/** + * 查询费用台账数据 + * @param {Object} params 查询参数 + * @returns {Promise} + */ +export function queryReportFeeYear(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/reportFeeYearCollection/queryReportFeeYear', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +/** + * 查询费用详情 + * @param {Object} params 查询参数 + * @returns {Promise} + */ +export function queryFeeDetail(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/fee.queryFeeDetail', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +/** + * 获取收费项列表 + * @param {Object} params 查询参数 + * @returns {Promise} + */ +export function getFeeConfigList(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/feeConfig.listFeeConfigs', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} + +/** + * 导出报表数据 + * @param {Object} params 导出参数 + * @returns {Promise} + */ +export function exportReportFee(params) { + return new Promise((resolve, reject) => { + const communityId = getCommunityId() + request({ + url: '/export.exportData', + method: 'get', + params: { + ...params, + communityId + } + }).then(response => { + const res = response.data + resolve(res) + }).catch(error => { + reject(error) + }) + }) +} \ No newline at end of file diff --git a/src/components/report/reportProficientCarFee.vue b/src/components/report/reportProficientCarFee.vue new file mode 100644 index 0000000..287bb4c --- /dev/null +++ b/src/components/report/reportProficientCarFee.vue @@ -0,0 +1,166 @@ + + + + + \ No newline at end of file diff --git a/src/components/report/reportProficientRoomFee.vue b/src/components/report/reportProficientRoomFee.vue new file mode 100644 index 0000000..8f9dbd4 --- /dev/null +++ b/src/components/report/reportProficientRoomFee.vue @@ -0,0 +1,168 @@ + + + + + \ No newline at end of file diff --git a/src/components/report/viewFeeDetail.vue b/src/components/report/viewFeeDetail.vue new file mode 100644 index 0000000..1e56d80 --- /dev/null +++ b/src/components/report/viewFeeDetail.vue @@ -0,0 +1,101 @@ + + + + + \ No newline at end of file diff --git a/src/i18n/index.js b/src/i18n/index.js index 480f01b..fe978a8 100644 --- a/src/i18n/index.js +++ b/src/i18n/index.js @@ -208,6 +208,7 @@ import {messages as inspectioni18n} from './inspectionI18n' import {messages as machineI18n} from './machineI18n' import {messages as oaI18n} from './oaI18n' import {messages as contractI18n} from './contractI18n' +import {messages as reportI18n} from './reportI18n' Vue.use(VueI18n) @@ -420,6 +421,7 @@ const messages = { ...machineI18n.en, ...oaI18n.en, ...contractI18n.en, + ...reportI18n.en, }, zh: { ...loginMessages.zh, @@ -628,6 +630,7 @@ const messages = { ...machineI18n.zh, ...oaI18n.zh, ...contractI18n.zh, + ...reportI18n.zh, } } diff --git a/src/i18n/reportI18n.js b/src/i18n/reportI18n.js new file mode 100644 index 0000000..3a61f8c --- /dev/null +++ b/src/i18n/reportI18n.js @@ -0,0 +1,9 @@ +import { messages as reportProficientMessages } from '../views/report/reportProficientLang' +export const messages ={ + en:{ + ...reportProficientMessages.en, + }, + zh:{ + ...reportProficientMessages.zh, + } +} \ No newline at end of file diff --git a/src/router/index.js b/src/router/index.js index ed4ca21..6902b77 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -7,6 +7,7 @@ import inspectionRouter from './inspectionRouter' import machineRouter from './machineRouter' import oaRouter from './oaRouter' import contractRouter from './contractRouter' +import reportRouter from './reportRouter' Vue.use(VueRouter) @@ -930,6 +931,7 @@ const routes = [ ...machineRouter, ...oaRouter, ...contractRouter, + ...reportRouter, // 其他子路由可以在这里添加 ] }, diff --git a/src/router/reportRouter.js b/src/router/reportRouter.js new file mode 100644 index 0000000..fffe3d3 --- /dev/null +++ b/src/router/reportRouter.js @@ -0,0 +1,8 @@ +export default [ + { + path: '/pages/property/reportProficient', + name: '/pages/property/reportProficient', + component: () => import('@/views/report/reportProficientList.vue') + }, + +] \ No newline at end of file diff --git a/src/views/report/reportProficientLang.js b/src/views/report/reportProficientLang.js new file mode 100644 index 0000000..5eea9a6 --- /dev/null +++ b/src/views/report/reportProficientLang.js @@ -0,0 +1,88 @@ +export const messages = { + en: { + reportProficient: { + search: { + title: 'Search Conditions', + roomPlaceholder: 'Please enter room number', + carPlaceholder: 'Please enter license plate number' + }, + export: 'Export', + reset: 'Reset', + roomFee: 'Room Fee Ledger', + carFee: 'Car Fee Ledger' + }, + reportProficientRoomFee: { + name: 'Name', + roomNumber: 'Room Number', + phone: 'Phone', + area: 'Area', + feeType: 'Fee Type', + feeName: 'Fee Name', + year: ' Year', + tip: 'Make sure the scheduled task is enabled when there is no data' + }, + reportProficientCarFee: { + name: 'Name', + carNumber: 'License Plate', + phone: 'Phone', + feeType: 'Fee Type', + feeName: 'Fee Name', + year: ' Year', + tip: ' ' + }, + viewFeeDetail: { + yearFeeHistory: ' Year Payment History', + cycle: 'Cycle(Month)', + receivableAmount: 'Receivable Amount(Yuan)', + receivedAmount: 'Received Amount(Yuan)', + paymentTime: 'Payment Time', + startTime: 'Start Time', + endTime: 'End Time', + status: 'Status', + remark: 'Remark' + } + }, + zh: { + reportProficient: { + search: { + title: '查询条件', + roomPlaceholder: '请填写房屋编号', + carPlaceholder: '请填写车牌号' + }, + export: '导出', + reset: '重置', + roomFee: '房屋费台账', + carFee: '车辆费台账' + }, + reportProficientRoomFee: { + name: '姓名', + roomNumber: '房号', + phone: '联系电话', + area: '面积', + feeType: '收费类型', + feeName: '费用名称', + year: '年', + tip: '没有数据时,确保开启了定时任务' + }, + reportProficientCarFee: { + name: '姓名', + carNumber: '车牌号', + phone: '联系电话', + feeType: '收费类型', + feeName: '费用名称', + year: '年', + tip: ' ' + }, + viewFeeDetail: { + yearFeeHistory: '年缴费历史', + cycle: '周期(单位:月)', + receivableAmount: '应收金额(单位:元)', + receivedAmount: '实收金额(单位:元)', + paymentTime: '缴费时间', + startTime: '缴费起始时间', + endTime: '缴费结束时间', + status: '状态', + remark: '备注' + } + } +} \ No newline at end of file diff --git a/src/views/report/reportProficientList.vue b/src/views/report/reportProficientList.vue new file mode 100644 index 0000000..8025080 --- /dev/null +++ b/src/views/report/reportProficientList.vue @@ -0,0 +1,185 @@ + + + + + \ No newline at end of file