From 50e7b14fd6a2d02100301b95e66f66ebf272e237 Mon Sep 17 00:00:00 2001 From: Zy <1448159279@qq.com> Date: Mon, 1 Jun 2026 18:12:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A56/16?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 7 +- .env.production | 9 +- package.json | 3 + src/App.vue | 1 - src/api/system/Activity/type.ts | 56 +- src/api/system/Complaint/type.ts | 2 + src/api/system/HandleLog/index.ts | 8 + src/api/system/HandleLog/type.ts | 22 + src/api/system/InspectionPlan/index.ts | 2 +- src/api/system/InspectionPlan/type.ts | 4 +- src/api/system/InspectionPoint/index.ts | 2 +- src/api/system/InspectionRecord/index.ts | 7 +- src/api/system/InspectionRecord/type.ts | 20 +- src/api/system/InspectionRoute/index.ts | 10 +- src/api/system/Notification/index.ts | 27 +- src/api/system/Payment/index.ts | 42 + src/api/system/Personnel/index.ts | 94 ++ src/api/system/Questionnaire/index.ts | 9 +- src/api/system/Questionnaire/type.ts | 4 +- src/api/system/Repair/type.ts | 97 +- src/api/system/SdbBill/index.ts | 14 + src/api/system/SdbBill/type.ts | 3 + src/api/system/SdbCashier/index.ts | 42 +- src/api/system/SdbChargeItem/index.ts | 4 +- src/api/system/SdbChargeItem/type.ts | 1 + src/api/system/SdbTopupRecord/index.ts | 42 + src/api/system/Tsupplier/index.ts | 2 +- src/api/system/carArea/index.ts | 2 +- src/api/system/cars/index.ts | 11 + src/api/system/cars/type.ts | 6 +- src/api/system/house/index.ts | 9 +- src/api/system/house/type.ts | 3 +- src/api/system/houseRental/index.ts | 6 + src/api/system/houseUse/index.ts | 7 + src/api/system/resident/type.ts | 18 +- src/api/system/storeroom/index.ts | 6 +- src/api/system/storeroom/types.ts | 3 +- src/api/system/version/index.ts | 78 ++ src/api/system/version/type.ts | 182 +++ src/api/workflow/index.ts | 28 +- src/assets/icons/svg/app.svg | 1 + src/assets/styles/index.scss | 28 + src/assets/styles/sidebar.scss | 1 + src/components/ContextMenu/index.vue | 2 +- src/components/Echarts/index.vue | 44 +- src/components/Holder/CarUser.vue | 304 +++++ src/components/Holder/appUser.vue | 251 ++++ src/components/Holder/house.vue | 186 +-- src/components/Holder/index.vue | 146 +- src/components/Holder/repairUser.vue | 134 +- src/components/Holder/user.vue | 76 +- src/components/LicensePlateInput/index.vue | 202 ++- src/layout/components/AppMain.vue | 21 +- src/layout/components/Navbar.vue | 7 +- src/layout/components/Sidebar/index.vue | 3 +- src/layout/components/notice/index.vue | 15 +- src/layout/index.vue | 2 +- src/main.ts | 3 + src/permission.ts | 23 +- src/plugins/modal.ts | 1 + src/router/index.ts | 23 +- src/store/modules/house.ts | 51 +- src/store/modules/notice.ts | 66 +- src/store/modules/permission.ts | 8 +- src/types/env.d.ts | 1 + src/utils/Reg.ts | 82 +- src/utils/house.ts | 2 +- src/utils/money.ts | 95 ++ src/utils/print.ts | 107 ++ src/utils/request.ts | 27 +- src/utils/time.ts | 30 + src/views/community/AddCommunity.vue | 6 +- src/views/community/index.vue | 11 +- src/views/demo/demo/index.vue | 12 +- src/views/system/Activity/addActivity.vue | 483 ++++++- src/views/system/Activity/index.vue | 14 +- src/views/system/Banner/add.vue | 4 +- src/views/system/Banner/index.vue | 18 +- src/views/system/Complaint/complainMain.vue | 95 +- src/views/system/Complaint/index.vue | 15 +- src/views/system/ComplaintType/index.vue | 22 +- src/views/system/Decoration/index.vue | 12 +- src/views/system/HandleLog/addHandleLog.vue | 218 ++- src/views/system/HandleLog/index.vue | 96 +- src/views/system/HouseFacilities/index.vue | 32 +- src/views/system/MonthCard/addMonthCard.vue | 17 +- src/views/system/MonthCard/index.vue | 24 +- src/views/system/NoticePc/index.vue | 14 +- src/views/system/Notification/index.vue | 45 +- src/views/system/ParkingCost/index.vue | 14 +- .../system/Questionnaire/addQuestionnaire.vue | 63 +- src/views/system/Questionnaire/index.vue | 50 +- src/views/system/Repair/addRepair.vue | 80 +- src/views/system/Repair/addRepairlist.vue | 45 +- src/views/system/Repair/index.vue | 31 +- src/views/system/Repair/repairMain.vue | 132 +- src/views/system/Repair/repairlist.vue | 2 +- src/views/system/Sdb/ChargeItem/add.vue | 29 +- src/views/system/Sdb/ChargeItem/index.vue | 33 +- src/views/system/Sdb/ChargeType/index.vue | 13 +- src/views/system/Sdb/SdbBill/add.vue | 202 ++- src/views/system/Sdb/SdbBill/index.vue | 51 +- src/views/system/Sdb/SdbBill/main.vue | 80 +- src/views/system/Sdb/SdbCashier/cashier.vue | 67 +- src/views/system/Sdb/SdbCashier/history.vue | 246 ++-- src/views/system/Sdb/SdbCashier/index.vue | 823 +++++++---- .../system/Sdb/SdbElectricityDevice/index.vue | 39 +- src/views/system/Sdb/SdbTopupRecord/index.vue | 6 +- .../system/Sdb/statistics/electricity.vue | 142 ++ src/views/system/Sdb/statistics/index.vue | 143 ++ src/views/system/Visitor/visitorMain.vue | 45 +- src/views/system/carArea/index.vue | 24 +- src/views/system/cars/addCars.vue | 86 +- src/views/system/cars/index.vue | 24 +- src/views/system/dict/index.vue | 2 - src/views/system/equipment/Archive/index.vue | 5 +- src/views/system/equipment/Archive/main.vue | 35 +- src/views/system/equipment/Category/index.vue | 32 +- src/views/system/equipment/Repair/add.vue | 12 +- src/views/system/equipment/Repair/index.vue | 32 +- src/views/system/equipment/Repair/main.vue | 17 +- src/views/system/house/AddHouse.vue | 100 +- src/views/system/house/HouseDetails.vue | 174 ++- .../system/house/components/building.vue | 24 +- .../house/components/components/houseItem.vue | 112 +- .../house/components/components/table.vue | 67 +- src/views/system/house/components/unit.vue | 58 +- src/views/system/house/index.vue | 16 +- .../system/houseRental/addhouseResident.vue | 20 +- src/views/system/houseRental/houseMain.vue | 21 +- src/views/system/houseRental/index.vue | 18 +- src/views/system/houseUnit/index.vue | 12 +- src/views/system/houseUse/index.vue | 16 +- src/views/system/inspection/Daily/index.vue | 12 +- src/views/system/inspection/Item/index2.vue | 30 +- src/views/system/inspection/Monthly/index.vue | 12 +- .../inspection/Plan/addInspectionPlan.vue | 50 +- src/views/system/inspection/Plan/index.vue | 48 +- .../inspection/Point/addInspectionPoint.vue | 51 +- src/views/system/inspection/Point/index.vue | 32 +- .../system/inspection/Record/RecordMain.vue | 171 ++- src/views/system/inspection/Record/index.vue | 25 +- .../inspection/Route/addInspectionRoute.vue | 47 +- src/views/system/inspection/Route/index2.vue | 50 +- .../system/inspection/Statistics/index.vue | 12 +- src/views/system/inspection/Task/addTask.vue | 24 +- src/views/system/inspection/Task/index.vue | 57 +- src/views/system/inspection/Weekly/index.vue | 12 +- src/views/system/menu/index.vue | 3 +- src/views/system/notice/index.vue | 87 +- src/views/system/oss/index.vue | 10 +- src/views/system/parking/addParking.vue | 108 +- src/views/system/parking/index.vue | 48 +- src/views/system/parking/parkMain.vue | 103 +- src/views/system/parking/parkReview.vue | 410 ++++++ src/views/system/parking/template.vue | 209 --- src/views/system/post/index.vue | 12 +- src/views/system/resident/ResidentMain.vue | 30 +- src/views/system/resident/addResident.vue | 12 +- src/views/system/resident/index.vue | 103 +- src/views/system/role/addRole.vue | 24 + src/views/system/role/authUser.vue | 1 - src/views/system/role/index.vue | 8 +- src/views/system/statistics/Payment/index.vue | 734 ++++++---- .../system/statistics/Personnel/index.vue | 317 +++-- src/views/system/storeroom/addStoreRoom.vue | 26 +- src/views/system/storeroom/index.vue | 27 +- src/views/system/user/addUser.vue | 4 +- src/views/system/user/index.vue | 4 +- src/views/system/version/index.vue | 374 +++++ .../system/warehouse/Inventory/index.vue | 13 +- src/views/system/warehouse/IssueOut/add.vue | 13 +- src/views/system/warehouse/IssueOut/index.vue | 2 +- src/views/workbench/components/HouseUser.vue | 144 -- src/views/workbench/components/inandout.vue | 287 ++++ src/views/workbench/components/quick.vue | 382 ++++++ .../workbench/components/repairechartsAll.vue | 101 ++ src/views/workbench/components/todo.vue | 173 +++ src/views/workbench/components/usertable.vue | 210 +++ .../workbench/components/villageAllinfo.vue | 88 ++ src/views/workbench/components/weather.vue | 156 +++ src/views/workbench/index.vue | 484 +------ src/views/workbench/index2.vue | 1203 +---------------- 183 files changed, 8956 insertions(+), 4803 deletions(-) create mode 100644 src/api/system/Payment/index.ts create mode 100644 src/api/system/Personnel/index.ts create mode 100644 src/api/system/version/index.ts create mode 100644 src/api/system/version/type.ts create mode 100644 src/assets/icons/svg/app.svg create mode 100644 src/components/Holder/CarUser.vue create mode 100644 src/components/Holder/appUser.vue create mode 100644 src/views/system/Sdb/statistics/electricity.vue create mode 100644 src/views/system/Sdb/statistics/index.vue create mode 100644 src/views/system/parking/parkReview.vue delete mode 100644 src/views/system/parking/template.vue create mode 100644 src/views/system/version/index.vue delete mode 100644 src/views/workbench/components/HouseUser.vue create mode 100644 src/views/workbench/components/inandout.vue create mode 100644 src/views/workbench/components/quick.vue create mode 100644 src/views/workbench/components/repairechartsAll.vue create mode 100644 src/views/workbench/components/todo.vue create mode 100644 src/views/workbench/components/usertable.vue create mode 100644 src/views/workbench/components/villageAllinfo.vue create mode 100644 src/views/workbench/components/weather.vue diff --git a/.env.development b/.env.development index b9502a1..fd8cabe 100644 --- a/.env.development +++ b/.env.development @@ -28,7 +28,10 @@ VITE_APP_SNAILJOB_ADMIN = 'http://192.168.1.215/snail-job' VITE_APP_PORT = 5173 # 登录成功跳转地址 -VITE_LOGIN_BACK_URL = '/equipment/WaterDevice' +# VITE_LOGIN_BACK_URL = '/equipment/WaterDevice' +VITE_LOGIN_BACK_URL = '/index' +# 工作台正式内容:false 假内容:true +VITE_LOGIN_BACK_URL_WORKBENCH_TRUE= false # 是否展示工作台 VITE_APP_SHOW_WORK_PLATFORM = true @@ -61,5 +64,5 @@ VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' VITE_APP_WEBSOCKET = false # sse 开关 -VITE_APP_SSE = false +VITE_APP_SSE = true diff --git a/.env.production b/.env.production index 7a619be..ac6c1bb 100644 --- a/.env.production +++ b/.env.production @@ -19,9 +19,12 @@ VITE_APP_BASE_API = 'https://wuyeapi.bugtc.com' # VITE_APP_BASE_API = 'http://192.168.0.222:8080' # 登录成功跳转地址 -VITE_LOGIN_BACK_URL = '/equipment/WaterDevice' +# VITE_LOGIN_BACK_URL = '/equipment/WaterDevice' +VITE_LOGIN_BACK_URL = '/index' +# 工作台正式内容:false 假内容:true +VITE_LOGIN_BACK_URL_WORKBENCH_TRUE= true # 是否展示工作台 -VITE_APP_SHOW_WORK_PLATFORM = false +VITE_APP_SHOW_WORK_PLATFORM = true # 地图类型 天地图 or 高德地图 天地图 WGS84 高德地图 GCJ02, 高德地图 需要在高德地图官网申请key @@ -54,4 +57,4 @@ VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' VITE_APP_WEBSOCKET = false # sse 开关 -VITE_APP_SSE = false +VITE_APP_SSE = true diff --git a/package.json b/package.json index 840b1ef..271310a 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "animate.css": "4.1.1", "await-to-js": "3.0.0", "axios": "1.13.6", + "big.js": "^7.0.1", "crypto-js": "4.2.0", "echarts": "6.0.0", "element-china-area-data": "^6.1.0", @@ -51,11 +52,13 @@ "vue-json-pretty": "2.6.0", "vue-router": "5.0.3", "vue-types": "6.0.0", + "vue3-print-nb": "^0.1.4", "vuedraggable": "^4.1.0", "vxe-table": "4.18.1" }, "devDependencies": { "@iconify/json": "^2.2.448", + "@types/big.js": "^7.0.0", "@types/crypto-js": "4.2.2", "@types/file-saver": "^2.0.7", "@types/js-cookie": "3.0.6", diff --git a/src/App.vue b/src/App.vue index bf5fd34..57a2f04 100644 --- a/src/App.vue +++ b/src/App.vue @@ -8,7 +8,6 @@ import { useSettingsStore } from '@/store/modules/settings'; import { handleThemeStyle } from '@/utils/theme'; import { useAppStore } from '@/store/modules/app'; -import { useDictStore } from './store/modules/dict'; const appStore = useAppStore(); onMounted(() => { diff --git a/src/api/system/Activity/type.ts b/src/api/system/Activity/type.ts index d0349ab..b057394 100644 --- a/src/api/system/Activity/type.ts +++ b/src/api/system/Activity/type.ts @@ -1,38 +1,26 @@ export interface ActivityVO { - /** - * 活动管理表id - */ - id: string | number; - - /** - * 标题 - */ - title: string; - - /** - * 作者 - */ - author: string; - - /** - * 内容 - */ - content: string; - - /** - * 发布状态 0未发布 1已发布 - */ - status: string; - - /** - * 浏览量 - */ - pageViews: number; - - /** - * 创建者姓名 - */ - createName: string; + 'id': string; + 'villageId': string; + 'title': string; + 'author': string; + 'content': string; + 'status': string; + 'pageViews': number; + 'createName': string; + 'coverImage': string; + 'startTime': string; + 'endTime': string; + 'applyDeadline': string; + 'signinStartTime': string; + 'signinEndTime': string; + 'address': string; + 'quota': number; + 'appliedCount': number; + 'organizer': string; + 'contactName': string; + 'contactPhone': string; + 'pointsReward': number; + 'requirements': string; } export interface ActivityForm extends BaseEntity { diff --git a/src/api/system/Complaint/type.ts b/src/api/system/Complaint/type.ts index 85804ac..8250a41 100644 --- a/src/api/system/Complaint/type.ts +++ b/src/api/system/Complaint/type.ts @@ -48,6 +48,8 @@ export interface ComplaintVO { * 处理描述 */ handleContent: string; + + problemImageUrl: string; } export interface ComplaintForm extends BaseEntity { diff --git a/src/api/system/HandleLog/index.ts b/src/api/system/HandleLog/index.ts index d259c43..1c21b36 100644 --- a/src/api/system/HandleLog/index.ts +++ b/src/api/system/HandleLog/index.ts @@ -1,6 +1,7 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; import { HandleLogVO, HandleLogForm, HandleLogQuery } from '@/api/system/HandleLog/type'; +import { UploadFiles, UploadUserFile } from 'element-plus'; /** * 查询办事记录列表 @@ -61,3 +62,10 @@ export const delHandleLog = (id: string | number | Array) => { method: 'delete' }); }; +export const uploadAttachments = (files: FormData) => { + return request({ + url: '/handleLog/uploadAttachments', + method: 'post', + data: files + }); +}; diff --git a/src/api/system/HandleLog/type.ts b/src/api/system/HandleLog/type.ts index c30a6df..686a4da 100644 --- a/src/api/system/HandleLog/type.ts +++ b/src/api/system/HandleLog/type.ts @@ -28,6 +28,28 @@ export interface HandleLogVO { * 办事地点 */ handlePosition: string; + + handleLogFileList: FileVO[]; +} + +export interface FileVO { + /** + * 文件id + */ + id: string | number; + + /** + * 文件名 + */ + fileName: string; + + /** + * 文件路径 + */ + filePath: string; + + 'handleLogId': string; + 'ossId': string; } export interface HandleLogForm extends BaseEntity { diff --git a/src/api/system/InspectionPlan/index.ts b/src/api/system/InspectionPlan/index.ts index 2c3aa82..4399838 100644 --- a/src/api/system/InspectionPlan/index.ts +++ b/src/api/system/InspectionPlan/index.ts @@ -8,7 +8,7 @@ import { PlanVO, PlanForm, PlanQuery } from '@/api/system/InspectionPlan/type'; * @returns {*} */ -export const listPlan = (query?: PlanQuery): AxiosPromise => { +export const listPlan = (query: PlanQuery | {} = {}): AxiosPromise => { return request({ url: '/inspection/plan/list', method: 'get', diff --git a/src/api/system/InspectionPlan/type.ts b/src/api/system/InspectionPlan/type.ts index 08bba39..47cbfcd 100644 --- a/src/api/system/InspectionPlan/type.ts +++ b/src/api/system/InspectionPlan/type.ts @@ -32,7 +32,7 @@ export interface PlanVO { /** * 巡检设置:0-必须拍照,1-可以跳检 */ - inspectSetting: string; + inspectSetting: number; /** * 计划路线,多个用逗号分隔 @@ -106,7 +106,7 @@ export interface PlanForm extends BaseEntity { /** * 巡检设置:0-必须拍照,1-可以跳检 */ - inspectSetting?: string; + inspectSetting?: number; /** * 计划路线,多个用逗号分隔 diff --git a/src/api/system/InspectionPoint/index.ts b/src/api/system/InspectionPoint/index.ts index 678e1a8..0e1dc13 100644 --- a/src/api/system/InspectionPoint/index.ts +++ b/src/api/system/InspectionPoint/index.ts @@ -8,7 +8,7 @@ import { PointVO, PointForm, PointQuery } from '@/api/system/InspectionPoint/typ * @returns {*} */ -export const listPoint = (query?: PointQuery): AxiosPromise => { +export const listPoint = (query?: PointQuery | {}): AxiosPromise => { return request({ url: '/inspection/point/list', method: 'get', diff --git a/src/api/system/InspectionRecord/index.ts b/src/api/system/InspectionRecord/index.ts index 7a36c53..fa2de74 100644 --- a/src/api/system/InspectionRecord/index.ts +++ b/src/api/system/InspectionRecord/index.ts @@ -20,10 +20,13 @@ export const listRecord = (query?: RecordQuery): AxiosPromise => { * 查询巡检记录主详细 * @param id */ -export const getRecord = (id: string | number): AxiosPromise => { +export const getRecord = (id: string, date?: string): AxiosPromise => { return request({ url: '/inspection/record/' + id, - method: 'get' + method: 'get', + params: { + date + } }); }; diff --git a/src/api/system/InspectionRecord/type.ts b/src/api/system/InspectionRecord/type.ts index 8423e4b..6118071 100644 --- a/src/api/system/InspectionRecord/type.ts +++ b/src/api/system/InspectionRecord/type.ts @@ -3,7 +3,7 @@ export interface RecordVO { actualStartTime?: string; createByName?: string; createTime?: string; - details?: []; + details?: DetailsVo[]; id?: string; inspectorId?: number; inspectorName?: string; @@ -12,7 +12,7 @@ export interface RecordVO { remark?: string; routeId?: string; routeName?: string; - status?: number; + status?: string; statusLabel?: null; taskName?: string; taskTime?: string; @@ -82,3 +82,19 @@ export interface RecordQuery extends PageQuery { */ taskName?: string; } + +export interface DetailsVo { + 'id': string; + 'taskId': string; + 'pointId': string; + 'pointName': string; + 'location': string; + 'checkTime': string; + 'checkResult': string; + 'photos': string; + 'sortNo': string; + 'remark': string; + 'imgUrl': string; + 'status': string; + photoslist?: string[]; +} diff --git a/src/api/system/InspectionRoute/index.ts b/src/api/system/InspectionRoute/index.ts index b0792bd..d6fdaed 100644 --- a/src/api/system/InspectionRoute/index.ts +++ b/src/api/system/InspectionRoute/index.ts @@ -8,7 +8,7 @@ import { RouteVO, RouteForm, RouteQuery } from './type'; * @returns {*} */ -export const listRoute = (query?: RouteQuery): AxiosPromise => { +export const listRoute = (query: RouteQuery | {} = {}): AxiosPromise => { return request({ url: '/inspection/route/list', method: 'get', @@ -61,3 +61,11 @@ export const delRoute = (id: string | number | Array) => { method: 'delete' }); }; + +export const changeStatusRoute = (id: string, status: string) => { + return request({ + url: '/inspection/route/changeStatus', + method: 'put', + params: { id, status } + }); +}; diff --git a/src/api/system/Notification/index.ts b/src/api/system/Notification/index.ts index 104fe55..9b840cb 100644 --- a/src/api/system/Notification/index.ts +++ b/src/api/system/Notification/index.ts @@ -1,17 +1,40 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; -import { NoticeVO, NoticeForm, NoticeQuery } from '@/api/system/NoticePc/type'; +export interface NotificationVo { + 'id': 'string'; + 'title': 'string'; + 'item': 'string'; + 'content': 'string'; + 'manageIsCheck': 'string'; + 'repairIsCheck': 'string'; +} /** * 查询消息通知列表 * @param query * @returns {*} */ -export const getNotificationList = (query?: NoticeQuery): AxiosPromise => { +export const getNotificationList = (query): AxiosPromise => { return request({ url: '/notification/list', method: 'get', params: query }); }; + +/** + * 消息通知 已读 + * @param query + * @returns {*} + */ + +export const ReadNotificationByID = (ids: string[]) => { + return request({ + url: '/notification/read', + method: 'POST', + data: { + id: ids + } + }); +}; diff --git a/src/api/system/Payment/index.ts b/src/api/system/Payment/index.ts new file mode 100644 index 0000000..a19bd1f --- /dev/null +++ b/src/api/system/Payment/index.ts @@ -0,0 +1,42 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; + +/** + * 获取缴费方式,种类占比 + * @param query + * @returns {*} + */ +export type IncomeStatsResponse = { + 'totalDue': string; + 'totalPaid': string; + 'totalUnpaid': string; + 'paidPercentage': string; + 'payWx': number; + 'payZfb': number; + 'payOffline': number; + 'totalPay': number; + 'feeTypeStats': feeTypeStats[]; + 'dailyStats': { + 'statDate': string; + 'totalDue': string; + 'totalPaid': string; + 'totalUnpaid': string; + }[]; +}; +export type feeTypeStats = { + 'feeType': number; + 'feeName': string; + 'totalDue': string; + 'totalPaid': string; + 'totalUnpaid': string; + 'paidPercentage': string; +}; +export const income_statsApi = (datetime?: string): AxiosPromise => { + return request({ + url: '/api/analysis/income/stats', + method: 'get', + params: { + startDate: datetime + } + }); +}; diff --git a/src/api/system/Personnel/index.ts b/src/api/system/Personnel/index.ts new file mode 100644 index 0000000..e269dd9 --- /dev/null +++ b/src/api/system/Personnel/index.ts @@ -0,0 +1,94 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; + +/** + * 查询入住情况 + * @param query + * @returns {*} + */ + +export const user_movein_list = (query?: { + datetime: string; +}): AxiosPromise<{ + 'villageId': string; + 'villageName': string; + 'totalHouse': number; + 'occupiedHouse': number; + 'occupancyRate': string; + 'occupancyCount': number; +}> => { + return request({ + url: '/api/analysis/occupancy/stats', + method: 'get', + params: query + }); +}; + +/** + * 查询居住人类型列表 + * @param query + * @returns {*} + */ + +export const get_movein_user_type = (query?: { + datetime: string; +}): Promise<{ + 'owner': string; + 'ownerRate': string; + 'tenant': string; + 'tenantRate': string; + 'relatives': string; + 'relativeRate': string; + 'other': string; + 'otherRate': string; + 'totalResident': string; +}> => { + return request({ + url: '/residentType/selectTotal', + method: 'get', + params: query + }); +}; +/** + * 查询住户性别比例 + * @param query + * @returns {*} + */ + +export const get_movein_user_sex = (query?: { + datetime: string; +}): Promise<{ + 'man': number; + 'woman': number; + 'total': number; + 'manRate': string; + 'womanRate': string; +}> => { + return request({ + url: '/gender/overview', + method: 'get', + params: query + }); +}; +/** + * 获取迁入迁出趋势图 + * @param query + * @returns {*} + */ + +export const get_movein_moveout_list = (query?: { + date: string; +}): AxiosPromise< + { + 'date': string; + 'moveInCount': number; + 'moveOutCount': number; + 'totalCount': number; + }[] +> => { + return request({ + url: '/api/analysis/resident/moveInOutStats', + method: 'get', + params: query + }); +}; diff --git a/src/api/system/Questionnaire/index.ts b/src/api/system/Questionnaire/index.ts index d14135b..8d7b518 100644 --- a/src/api/system/Questionnaire/index.ts +++ b/src/api/system/Questionnaire/index.ts @@ -55,9 +55,12 @@ export const updateQuestionnaire = (data: QuestionnaireForm) => { * 删除问卷调查 * @param id */ -export const delQuestionnaire = (id: string | number | Array) => { +export const delQuestionnaire = (ids: string | string[], vailid: boolean = true) => { return request({ - url: '/questionnaire/' + id, - method: 'delete' + url: '/questionnaire/' + ids + '?isValid=' + vailid, + method: 'delete', + headers: { + silentError: 'true' + } }); }; diff --git a/src/api/system/Questionnaire/type.ts b/src/api/system/Questionnaire/type.ts index b126254..35a897a 100644 --- a/src/api/system/Questionnaire/type.ts +++ b/src/api/system/Questionnaire/type.ts @@ -51,7 +51,7 @@ export interface QuestionnaireForm extends BaseEntity { /** * 问卷ID */ - id?: string | number; + id?: string; /** * 所属小区id @@ -158,7 +158,7 @@ export interface QuestionComponentItem { } export interface QuestionComponentnaireForm { - id?: string | number | null; + id?: string; title: string; description?: string; content: QuestionComponentItem[]; diff --git a/src/api/system/Repair/type.ts b/src/api/system/Repair/type.ts index b76bdc7..03a49b4 100644 --- a/src/api/system/Repair/type.ts +++ b/src/api/system/Repair/type.ts @@ -1,65 +1,32 @@ export interface RepairVO { - /** - * 报修管理表id - */ - id: string | number; - - /** - * 关联房屋id - */ - houseId: string | number; - - /** - * 维修项目id - */ - maintenanceItemId: string | number; - - /** - * 问题描述 - */ - problem: string; - - /** - * 报修人id(住户表id) - */ - residentId: string | number; - - /** - * 手机号码 - */ - phone: number; - - /** - * 预约日期 - */ - orderDate: string; - - /** - * 问题图片地址 - */ - problemImageUrl: string; - - /** - * 0 已提交 1已分配 2维修中 3维修完成 - */ - problemStatus: string; - - /** - * 维修描述 - */ - repairDes: string; - - /** - * 维修图片url - */ - repairImageUrl: string; - - /** - * 维修人员id - */ - repairId: string; - /** 名称(小区名-楼栋名-单元号-房间号) */ - name?: string; + 'id': string; + 'houseId': string; + 'maintenanceItemId': number; + 'maintenanceItemName': number; + 'problem': string; + 'residentId': string; + 'residentName': string; + 'phone': string; + 'orderDate': string; + 'problemImageUrl': string; + 'problemStatus': string; + 'repairDes': string; + 'repairImageUrl': string; + 'repairId': string; + 'repairName': string; + 'houseName': string; + 'item': string; + 'projectType': number; + 'updateTime': string; + 'projectTypeStr': string; + 'repairIsCheck': string; + 'manageIsCheck': string; + 'isCheckStr': number; + 'repairPhone': number; + 'repairRoleName': number; + 'repairStatus': string; + repairUserId: string; + 'createTime': string; } export interface RepairForm extends BaseEntity { @@ -86,12 +53,12 @@ export interface RepairForm extends BaseEntity { /** * 报修人id(住户表id) */ - residentId?: string | number; + residentId?: string; /** * 手机号码 */ - phone?: number; + phone?: string; /** * 预约日期 @@ -163,12 +130,12 @@ export interface RepairQuery extends PageQuery { /** * 报修人id(住户表id) */ - residentId?: string | number; + residentId?: string; /** * 手机号码 */ - phone?: number; + phone?: string; /** * 预约日期 diff --git a/src/api/system/SdbBill/index.ts b/src/api/system/SdbBill/index.ts index 907a64f..d537616 100644 --- a/src/api/system/SdbBill/index.ts +++ b/src/api/system/SdbBill/index.ts @@ -93,6 +93,7 @@ export type BillUserlist = { 'houseNo': string; 'residentId': string; 'buildingId': string; + 'parkingId': string; }; /** * 查询业主列表 @@ -106,3 +107,16 @@ export const queryResidentList_holder = (query: { pageNum: number; pageSize: num params: query }); }; + +/** + * 查询车位业主列表 + * @param data + * @returns {*} + */ +export const queryResidentList_Cars = (query: { pageNum: number; pageSize: number }): AxiosPromise => { + return request({ + url: '/bill/getParkingList', + method: 'GET', + params: query + }); +}; diff --git a/src/api/system/SdbBill/type.ts b/src/api/system/SdbBill/type.ts index 5b6a0ad..4537fc7 100644 --- a/src/api/system/SdbBill/type.ts +++ b/src/api/system/SdbBill/type.ts @@ -13,6 +13,7 @@ export interface BillVO { * 收费项目id */ chargeItemId: string; + residentIds: string[]; /** * 收费范围 0全体业主 1部分业主 @@ -48,6 +49,8 @@ export interface BillVO { * 创建时间 */ cerateTime: string; + + parkingIds: string[]; } export interface BillForm extends BaseEntity { diff --git a/src/api/system/SdbCashier/index.ts b/src/api/system/SdbCashier/index.ts index fec5851..9ec0506 100644 --- a/src/api/system/SdbCashier/index.ts +++ b/src/api/system/SdbCashier/index.ts @@ -13,7 +13,7 @@ export type cashlist = { * @param post * @returns {*} */ -export const cashQuery = (data: { residentName?: string }): AxiosPromise => { +export const cashQuery = (data: { residentName?: string; queryType: number }): AxiosPromise => { return request({ url: '/cash/residentList', method: 'post', @@ -25,6 +25,7 @@ export type billlistType = { 'villageId': string; 'residentId': string; 'houseId': string; + 'detailsId': string; 'houseName': string; 'parkingId': string; 'parkingName': string; @@ -38,11 +39,14 @@ export type billlistType = { 'endDate': string; 'money': string; 'payStatus': string; + amount: string; + residentName: string; }; + /** * 查询账单列表 - * @param post * @returns {*} + * @param data */ export const billQuery = (data: { residentId?: string; payStatus: '0' | '1' }): AxiosPromise => { return request({ @@ -51,3 +55,37 @@ export const billQuery = (data: { residentId?: string; payStatus: '0' | '1' }): data: data }); }; +export const billEdit = (data: { 'detailsId': string[]; 'payType': string; 'payStatus': string }): AxiosPromise => { + return request({ + url: '/cash/billEdit', + method: 'post', + data: data + }); +}; + +// 打印票据 +export const billPrint = (data: { 'detailsIds': string[]; 'residentId': string }): AxiosPromise => { + return request({ + url: '/cash/print', + method: 'post', + data: data + }); +}; + +export type BillPrintType = { + 'totalAccount': string; + 'residentName': string; + 'detailsList': { + 'detailsId': string; + 'chargeItemName': string; + 'billName': string; + 'detailsTime': string; + 'useCount': string; + 'account': string; + 'payType': string; + 'remark': string; + }[]; + 'printDate': string; + 'HouseName': string; + 'title': string; +}; diff --git a/src/api/system/SdbChargeItem/index.ts b/src/api/system/SdbChargeItem/index.ts index 30413e3..d39ed9a 100644 --- a/src/api/system/SdbChargeItem/index.ts +++ b/src/api/system/SdbChargeItem/index.ts @@ -8,11 +8,11 @@ import { ChargeItemVO, ChargeItemForm, ChargeItemQuery } from './type'; * @returns {*} */ -export const listChargeItem = (query?: ChargeItemQuery): AxiosPromise => { +export const listChargeItem = (query?: ChargeItemQuery | {}): AxiosPromise => { return request({ url: '/chargeItem/list', method: 'get', - params: query + params: query, }); }; diff --git a/src/api/system/SdbChargeItem/type.ts b/src/api/system/SdbChargeItem/type.ts index 6210a30..8131b51 100644 --- a/src/api/system/SdbChargeItem/type.ts +++ b/src/api/system/SdbChargeItem/type.ts @@ -12,6 +12,7 @@ export interface ChargeItemVO { * 收费类型 */ typeId: string; + itemName:string; /** * 计费方式 0单次收费 1周期收费 2仪表收费 diff --git a/src/api/system/SdbTopupRecord/index.ts b/src/api/system/SdbTopupRecord/index.ts index 7b24e0d..c2e7915 100644 --- a/src/api/system/SdbTopupRecord/index.ts +++ b/src/api/system/SdbTopupRecord/index.ts @@ -61,3 +61,45 @@ export const delTopupRecord = (id: string | number | Array) => method: 'delete' }); }; + +export type TopupRecordList = { + 'id': string; + 'rechargeTime': string; + 'villageName': string; + 'residentName': string; + 'houseName': string; + 'fixedPriceUnit': string; + 'fixedPrice': string; + 'unit': string; + 'deviceCode': string; + 'orderId': string; + 'rechargeAmount': string; + 'topUpType': string; +}; +/** 查询所有设备充值记录 */ +export const getTopupRecordByDate = (query: { + startTime?: string; + endTime?: string; + pageSize: number; + pageNum: number; +}): AxiosPromise => { + return request({ + url: '/topupRecord/water/list', + method: 'get', + params: query + }); +}; + +/** 查询所有电表充值记录 */ +export const getElectricityTopupRecordByDate = (query: { + startTime?: string; + endTime?: string; + pageSize: number; + pageNum: number; +}): AxiosPromise => { + return request({ + url: '/topupRecord/electricity/list', + method: 'get', + params: query + }); +}; diff --git a/src/api/system/Tsupplier/index.ts b/src/api/system/Tsupplier/index.ts index 27c5a3e..85884dd 100644 --- a/src/api/system/Tsupplier/index.ts +++ b/src/api/system/Tsupplier/index.ts @@ -8,7 +8,7 @@ import { SupplierVO, SupplierForm, SupplierQuery } from './type'; * @returns {*} */ -export const listSupplier = (query?: SupplierQuery): AxiosPromise => { +export const listSupplier = (query: SupplierQuery | {} = {}): AxiosPromise => { return request({ url: '/warehouse/supplier/list', method: 'get', diff --git a/src/api/system/carArea/index.ts b/src/api/system/carArea/index.ts index f3f1532..3ce13c2 100644 --- a/src/api/system/carArea/index.ts +++ b/src/api/system/carArea/index.ts @@ -8,7 +8,7 @@ import { AreaVO, AreaForm, AreaQuery } from '@/api/system/carArea/type'; * @returns {*} */ -export const listArea = (query?: AreaQuery): AxiosPromise => { +export const listArea = (query: AreaQuery | {} = {}): AxiosPromise => { return request({ url: '/area/list', method: 'get', diff --git a/src/api/system/cars/index.ts b/src/api/system/cars/index.ts index f93386d..39f8493 100644 --- a/src/api/system/cars/index.ts +++ b/src/api/system/cars/index.ts @@ -73,3 +73,14 @@ export const uploadCar = (formdata: FormData) => { data: formdata }); }; + +/** + * 获取用户端app-用户 + * */ +export const getAppUser = (data) => { + return request({ + url: '/car/getAppUserList', + method: 'GET', + params: data + }); +}; diff --git a/src/api/system/cars/type.ts b/src/api/system/cars/type.ts index 0fa7767..8f86f61 100644 --- a/src/api/system/cars/type.ts +++ b/src/api/system/cars/type.ts @@ -2,17 +2,17 @@ export interface CarVO { /** * 车辆管理表id */ - id: string | number; + id: string; /** * 区域id */ - areaId: string | number; + areaId: string; /** * 车位id */ - parkingId: string | number; + parkingId: string; /** * 持有人id(住户表id) diff --git a/src/api/system/house/index.ts b/src/api/system/house/index.ts index c79b81f..3c6fbfb 100644 --- a/src/api/system/house/index.ts +++ b/src/api/system/house/index.ts @@ -13,10 +13,11 @@ export function getBuildinglistAPI(): AxiosPromise { }); } /** 获取所有楼栋 */ -export function getBuildinglists(): AxiosPromise { +export function getBuildinglists(query = {}): AxiosPromise { return request({ url: '/building/list', - method: 'get' + method: 'get', + params: query }); } /** 获取单一楼栋 */ @@ -117,7 +118,7 @@ export interface Data { billResidentList: BillResidentList[]; chargeItemList: string[]; house: House; - parking: Parking; + parkingList: Parking[]; residentList: ResidentList[]; storeroom: Storeroom; } @@ -162,6 +163,8 @@ export interface Storeroom { shareArea: string; storeroomId: number; storeroomNo: string; + remark: string; + unitNoId: string; unitNo: number; } diff --git a/src/api/system/house/type.ts b/src/api/system/house/type.ts index 7f2e2d7..4c38c70 100644 --- a/src/api/system/house/type.ts +++ b/src/api/system/house/type.ts @@ -90,5 +90,6 @@ export interface addHouseType { 'shareArea': string; 'houseType': string; 'storeroomId': string; - 'parkingId': string; + 'parkingId'?: string; + 'parkingIds': string[]; } diff --git a/src/api/system/houseRental/index.ts b/src/api/system/houseRental/index.ts index 0964e3d..c9089f3 100644 --- a/src/api/system/houseRental/index.ts +++ b/src/api/system/houseRental/index.ts @@ -81,3 +81,9 @@ export const uploadHouseImage = (formdata: FormData): AxiosPromise => { + return request({ + url: `/houseRental/ownerName/${houseId}`, + method: 'GET' + }); +}; diff --git a/src/api/system/houseUse/index.ts b/src/api/system/houseUse/index.ts index 7378458..8b8db1d 100644 --- a/src/api/system/houseUse/index.ts +++ b/src/api/system/houseUse/index.ts @@ -15,6 +15,13 @@ export const listHouseUseType = (query?: HouseUseTypeQuery): AxiosPromise => { + return request({ + url: '/houseUseType/getList', + method: 'get', + params: query + }); +}; /** * 查询房屋类型详细 diff --git a/src/api/system/resident/type.ts b/src/api/system/resident/type.ts index 20e6385..89aa32b 100644 --- a/src/api/system/resident/type.ts +++ b/src/api/system/resident/type.ts @@ -13,6 +13,7 @@ export interface ResidentVO { * 姓名 */ name: string; + nickName: string; /** * 0业主 1租户 @@ -90,9 +91,12 @@ export interface ResidentForm extends BaseEntity { name?: string; /** - * 0业主 1租户 + * 0业主 + * 1亲属 + * 2租户 + * 3朋友 */ - type?: string; + ownerRelationship?: string; /** * 0 男性 1女性 @@ -152,10 +156,12 @@ export interface ResidentQuery extends PageQuery { date?: any; /** - * 住户类型 - * 0业主 1租户 + * 0业主 + * 1亲属 + * 2租户 + * 3朋友 */ - type?: string; + ownerRelationship?: string; /** * 住户状态 * 0审核中 1 已认证 @@ -165,5 +171,5 @@ export interface ResidentQuery extends PageQuery { houseId?: number; villageId?: string; buildingId?: number; - unitNo?: number; + unitNoId?: number; } diff --git a/src/api/system/storeroom/index.ts b/src/api/system/storeroom/index.ts index 2cd0a4d..1eeb231 100644 --- a/src/api/system/storeroom/index.ts +++ b/src/api/system/storeroom/index.ts @@ -68,11 +68,11 @@ export const delStoreroom = (id: string | number | Array) => { */ export const GetVillagelistStoreroom = ( - data: { villageid: string; unitNo: string; houseId?: string; buildingId: string } = { + data: { villageid: string; unitNoId: string; houseId?: string; buildingId: string } = { villageid: null, buildingId: null, houseId: null, - unitNo: null + unitNoId: null } ): AxiosPromise => { return request({ @@ -81,7 +81,7 @@ export const GetVillagelistStoreroom = ( data: { villageId: data.villageid, buildingId: data.buildingId, - unitNo: data.unitNo, + unitNoId: data.unitNoId, houseId: data.houseId } }); diff --git a/src/api/system/storeroom/types.ts b/src/api/system/storeroom/types.ts index 7045796..2ad799d 100644 --- a/src/api/system/storeroom/types.ts +++ b/src/api/system/storeroom/types.ts @@ -12,7 +12,8 @@ export interface StoreroomVO { /** * 单元号 */ - unitNo: string | number; + unitNoId: string | number; + unitName: string; /** * 储藏室号 diff --git a/src/api/system/version/index.ts b/src/api/system/version/index.ts new file mode 100644 index 0000000..faeceb7 --- /dev/null +++ b/src/api/system/version/index.ts @@ -0,0 +1,78 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { VersionVO, VersionForm, VersionQuery } from './type'; + +/** + * 查询版本列表 + * @param query + * @returns {*} + */ + +export const listVersion = (query?: VersionQuery): AxiosPromise => { + return request({ + url: '/api/app/list', + method: 'get', + params: query + }); +}; + +/** + * 查询版本详细 + * @param id + */ +export const getVersion = (id: string | number): AxiosPromise => { + return request({ + url: '/system/version/' + id, + method: 'get' + }); +}; + +/** + * 新增版本 + * @param data + */ +export const addVersion = (data: VersionForm) => { + return request({ + url: '/api/app/release', + method: 'post', + data: data + }); +}; + +/** + * 修改版本 + * @param data + */ +export const updateVersion = (data: VersionForm) => { + return request({ + url: '/system/version', + method: 'put', + data: data + }); +}; + +/** + * 删除版本 + * @param id + */ +export const delVersion = (id: string | number | Array) => { + return request({ + url: '/system/version/' + id, + method: 'delete' + }); +}; + +/** 获取过往版本 */ +export const getPastVersion = (platform: string, channel: string) => { + return request({ + url: `/api/app/getPastVersion?platform=${platform}&channel=${channel}`, + method: 'get' + }); +}; +/** 切换版本启停 */ +export const switchVersion = (id: string, status: string) => { + return request({ + url: `/api/app/switchStatus/${id}/${status}`, + method: 'get' + }); +}; diff --git a/src/api/system/version/type.ts b/src/api/system/version/type.ts new file mode 100644 index 0000000..a564347 --- /dev/null +++ b/src/api/system/version/type.ts @@ -0,0 +1,182 @@ +export interface VersionVO { + /** + * + */ + id: string | number; + + /** + * ios/android + */ + platform: string; + + /** + * 版本号(递增) + */ + versionCode: number; + + /** + * 版本名称(1.2.0) + */ + versionName: string; + + /** + * 最低支持版本 + */ + minVersionCode: number; + + /** + * optional/force + * optional-可选更新, + * force-强制更新 + */ + updateType: string; + + /** + * 升级方式 + * apk-安装包更新,wgt-热更新 + */ + method: string; + + /** + * 下载地址 + */ + downloadUrl: string; + + /** + * 更新日志 + */ + releaseNotes: string; + + /** + * 文件大小(MB) + */ + fileSize: string; + + /** + * 0-禁用 1-启用 + */ + status: string; + + /** + * 更新app端 + */ + channel: string; +} + +export interface VersionForm extends BaseEntity { + /** + * + */ + id?: string | number; + + /** + * ios/android + */ + platform?: string; + + /** + * 版本号(递增) + */ + versionCode?: number; + + /** + * 版本名称(1.2.0) + */ + versionName?: string; + + /** + * 最低支持版本 + */ + minVersionCode?: string; + + /** + * optional/force + * optional-可选更新,force-强制更新 + */ + updateType?: string; + method?: string; + + /** + * 下载地址 + */ + downloadUrl?: string; + + /** + * 更新日志 + */ + releaseNotes?: string; + + /** + * 文件大小(MB) + */ + fileSize?: string; + + /** + * 0-禁用 1-启用 + */ + status?: number; + + /** + * 更新app端 + * butler 管家端 + * resident 业主端 + */ + channel?: string; +} + +export interface VersionQuery extends PageQuery { + /** + * ios/android + */ + platform?: string; + + /** + * 版本号(递增) + */ + versionCode?: number; + + /** + * 版本名称(1.2.0) + */ + versionName?: string; + + /** + * 最低支持版本 + */ + minVersionCode?: number; + + /** + * optional/force + */ + updateType?: string; + + /** + * 下载地址 + */ + downloadUrl?: string; + + /** + * 更新日志 + */ + releaseNotes?: string; + + /** + * 文件大小(MB) + */ + fileSize?: string; + + /** + * 0-禁用 1-启用 + */ + status?: number; + + /** + * 更新app端 + */ + channel?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/workflow/index.ts b/src/api/workflow/index.ts index 97c7095..c38969e 100644 --- a/src/api/workflow/index.ts +++ b/src/api/workflow/index.ts @@ -51,8 +51,7 @@ export const workSpaceRepairTrendListApi = ( * @returns {*} */ export const workSpaceIncomeTrendListApi = ( - villageId: string, - type: number + villageId: string ): Promise< { date: string; @@ -63,11 +62,32 @@ export const workSpaceIncomeTrendListApi = ( url: '/workSpace/last7DaysIncomeTrend', method: 'GET', params: { - villageId: villageId, - type: type + villageId: villageId } }); }; +/** + * 查询近一周支出趋势 + * @param query + * @returns {*} + */ +export const workSpaceOutcomeTrendListApi = ( + villageId: string +): Promise< + { + date: string; + expenditure: string; + }[] +> => { + return request({ + url: '/workSpace/last7DaysExpenditureTrend', + method: 'GET', + params: { + villageId: villageId + } + }); +}; + /** * 查询当日天气 * @param query diff --git a/src/assets/icons/svg/app.svg b/src/assets/icons/svg/app.svg new file mode 100644 index 0000000..01543ed --- /dev/null +++ b/src/assets/icons/svg/app.svg @@ -0,0 +1 @@ + diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index d85696c..92439b4 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -259,3 +259,31 @@ aside { .el-button { border-radius: 5px; } + +.bgColor { + width: 850px; + height: 850px; + background: #fdf1ee; + filter: blur(200px); + display: block; + position: absolute; + top: 0; + right: 0; + transform: translateY(-50%) translateX(0%); + pointer-events: none; + z-index: 1; + border-radius: 50%; + + @media (max-width: 1540px) { + width: 800px; + height: 400px; + } + @media (max-width: 1280px) { + width: 600px; + height: 300px; + } + @media (max-width: 1030px) { + width: 400px; + height: 200px; + } +} diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 365d1ae..3ee4021 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -11,6 +11,7 @@ position: relative; overflow-x: hidden; background: var(--el-bg-color-page); + background: #dfedff; } .sidebarHide { diff --git a/src/components/ContextMenu/index.vue b/src/components/ContextMenu/index.vue index 8cc777e..3ccf117 100644 --- a/src/components/ContextMenu/index.vue +++ b/src/components/ContextMenu/index.vue @@ -84,7 +84,7 @@ const handleClick = (item) => { }; // 暴露方法给父组件调用 -defineExpose({ open }); +defineExpose({ open, close }); diff --git a/src/components/Holder/appUser.vue b/src/components/Holder/appUser.vue new file mode 100644 index 0000000..e8ae89a --- /dev/null +++ b/src/components/Holder/appUser.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/src/components/Holder/house.vue b/src/components/Holder/house.vue index 0fec511..578384a 100644 --- a/src/components/Holder/house.vue +++ b/src/components/Holder/house.vue @@ -1,8 +1,8 @@ -
前往gitee
diff --git a/src/views/system/Decoration/index.vue b/src/views/system/Decoration/index.vue index 5b0322d..ebd7057 100644 --- a/src/views/system/Decoration/index.vue +++ b/src/views/system/Decoration/index.vue @@ -55,19 +55,19 @@ - + - - + + - + - + + @@ -112,6 +120,7 @@ function handleDisable(row) { display: flex; font-size: 0.8rem; flex: 1; + overflow: hidden; .lefttabs { width: 275px; height: 100%; diff --git a/src/views/system/ParkingCost/index.vue b/src/views/system/ParkingCost/index.vue index 8af9d50..9cc7ff0 100644 --- a/src/views/system/ParkingCost/index.vue +++ b/src/views/system/ParkingCost/index.vue @@ -166,10 +166,14 @@ const { queryParams, form, rules } = toRefs(data); const getList = async () => { loading.value = true; // 停车缴费 - const res = await listParkingCost(queryParams.value); - parkingCostList.value = res.rows; - total.value = res.total; - loading.value = false; + listParkingCost(queryParams.value) + .then((res) => { + parkingCostList.value = res.rows; + total.value = res.total; + }) + .finally(() => { + loading.value = false; + }); }; /** 搜索按钮操作 */ @@ -200,7 +204,7 @@ const handleAdd = () => { /** 修改按钮操作 */ const handleUpdate = async (row?: ParkingCostVO) => { - const _id = row.id || ids.value[0]; + const _id = row?.id || ids.value[0]; router.push({ path: '/carArea/editParkingCost', query: { diff --git a/src/views/system/Questionnaire/addQuestionnaire.vue b/src/views/system/Questionnaire/addQuestionnaire.vue index 2df55d3..6c1d692 100644 --- a/src/views/system/Questionnaire/addQuestionnaire.vue +++ b/src/views/system/Questionnaire/addQuestionnaire.vue @@ -10,39 +10,22 @@ - - - +
+ + + + + + +
- - -
    -
  • -
    - 姓名: - {{ item.name }} -
    - - - -
  • - - - -
-
-
+ - + >(); function OpenUseTablesfun() { - HolderRef.value.open(); + HolderRef.value.open(form.value.residents.split(',').filter((item) => item)); } // 多选 const checkoutUses = ref([]); function handleSelect(val) { checkoutUses.value = val; - form.value.residents = val.map((item) => item.id).join(','); -} -// 删除 -function delteUse(id: string | number) { - checkoutUses.value = checkoutUses.value.filter((item) => item.id !== id); + form.value.residents = val + .map((item) => item) + .filter((item) => item) + .join(','); } + // ! 编辑问卷 ------------------------------------------------------------------------ const questionnaireEditRef = ref>(); const editData = ref(null); @@ -155,15 +138,7 @@ async function handleEdit(id: string | number) { checkoutUses.value = res.data.residents .split(',') .filter((item) => item) - .map((item) => { - const find = tableData.value.find((useritem) => useritem.id == item); - if (find) { - return { - name: find.name, - id: item - }; - } - }); + .map((item) => item); timedata.value = [res.data.startTime, res.data.endTime]; }); } diff --git a/src/views/system/Questionnaire/index.vue b/src/views/system/Questionnaire/index.vue index 7d3849b..e4c01ea 100644 --- a/src/views/system/Questionnaire/index.vue +++ b/src/views/system/Questionnaire/index.vue @@ -19,7 +19,7 @@ - +