44 Commits
main ... dev

Author SHA1 Message Date
Zy
bfdfa05cd7 8/25 dev 权限,sse,账单,bug 2026-08-27 17:34:14 +08:00
Zy
2ea75ee5ef 8/25 dev 权限,sse,账单 2026-08-27 17:32:23 +08:00
Zy
b83735e993 8/25 dev bug 2026-08-25 17:18:28 +08:00
Zy
981d059ceb Merge branch 'dev' into report 2026-08-20 17:34:44 +08:00
Zy
726168dfde 8/19 dev bug 2026-08-20 17:34:19 +08:00
Zy
68214b7a39 Merge branch 'dev' into report
# Conflicts:
#	src/views/system/Repair/addRepairlist.vue
#	src/views/system/resident/addResident.vue
#	src/views/system/statistics/Personnel/index.vue
#	src/views/system/user/addUser.vue
2026-08-20 17:06:42 +08:00
Zy
276bd43878 8/19 dev 2026-08-20 17:04:41 +08:00
Zy
7b20d3e7ef 8/19 report 2026-08-20 17:03:40 +08:00
Zy
3b0e3928eb 8/19 报表-租赁管理 2026-08-19 16:56:18 +08:00
Zy
406cf90db5 8/19 账单-时间类型-自然/滚动 2026-08-19 09:27:48 +08:00
Zy
144b9d9670 8/19 月报 2026-08-19 08:48:36 +08:00
Zy
0dfd541769 Merge branch 'dev' into report
# Conflicts:
#	src/views/system/Sdb/SdbCashier/index.vue
#	src/views/system/houseRental/index.vue
2026-08-14 15:05:47 +08:00
Zy
3fa96351d7 8/14 2026-08-14 15:01:01 +08:00
Zy
28959cff23 8/13,收银台-缴费周期,时间拆分 2026-08-13 17:43:19 +08:00
Zy
de2b0fec48 8/13, 缴费分析-缴费方式修改 2026-08-13 16:24:11 +08:00
Zy
6ac733cdd2 8/13, 日报 2026-08-13 16:13:15 +08:00
Zy
03e2fa531a 8/13, 修改小区删除上传图片问题 2026-08-13 15:12:17 +08:00
Zy
3048aa3f88 8/13, dev 2026-08-13 08:50:43 +08:00
Zy
ffa0d1067a 8/12,预收费用余额汇总 2026-08-12 14:40:52 +08:00
Zy
519df168c6 8/11,应收物业,实收物业 2026-08-11 09:03:27 +08:00
Zy
0717bb489b 8/10 车位信息-车辆信息, 2026-08-11 08:10:43 +08:00
Zy
1c11add746 8/10 新增删除账单功能,收费分类-关联 2026-08-10 08:57:24 +08:00
Zy
f66c0fb145 8/7 收银台加个未收,打印票据多个支付明细,房屋租赁-签约/上下架 2026-08-07 15:15:07 +08:00
Zy
586ec70274 8/7 收银台加个未收,打印票据多个支付明细,房屋租赁-签约/上下架 2026-08-07 15:12:12 +08:00
Zy
ef681e4eb3 8/7 应收欠费汇总表,应收欠费明细表 2026-08-07 11:46:15 +08:00
Zy
fa39c98a95 8/6 添加小区,删除车位数量 2026-08-06 11:52:28 +08:00
Zy
40196737d3 8/6 校验问题 2026-08-06 09:09:53 +08:00
Zy
494b7869ea 8/4 更新 输入限制,修复收银台 2026-08-04 16:07:22 +08:00
Zy
ca5f214bac 8/1 限制前端输入字数 2026-08-01 10:11:38 +08:00
Zy
2907f9202c 7/30 限制前端输入字数 2026-07-30 17:59:32 +08:00
Zy
903c92fef0 7/24 收银台 日期筛选,合计 2026-07-24 09:23:50 +08:00
Zy
0c4c9676b5 7/17 添加公区收益 2026-07-21 17:32:22 +08:00
Zy
37970c547b 7/17 修复添加车辆上传样式,校验上传文件不能是exe; 2026-07-17 15:24:02 +08:00
Zy
725bdfa3fe 修复小区背景颜色,巡检点顺序一致,投诉处理按钮 2026-07-16 11:06:26 +08:00
Zy
4efb535730 7/13 水电表解绑房屋 2026-07-13 08:06:08 +08:00
Zy
298f93380c 7/10 缴费分析,人员分析 数据对接 2026-07-10 17:44:28 +08:00
Zy
3a808750ac 7/6 优化 1缴费分析中缴费来源的排序问题,2收入来源的图表渲染问题 2026-07-06 09:12:44 +08:00
Zy
54d467ede7 7/4新增公安备案底部链接 2026-07-04 15:40:37 +08:00
Zy
dff51dd4d4 6/27更新依赖,更新vite分包打包 2026-06-27 08:42:02 +08:00
Zy
4e2ae414c4 6/24 统一地图组件入口,规范地图方法,属性。 完成天地图和高德切换 2026-06-24 16:19:19 +08:00
Zy
33d35c8d70 6/23 更改高德地图组件,统一入口 2026-06-23 17:07:48 +08:00
Zy
826bf3c782 6/22完善引入, 2026-06-22 08:14:35 +08:00
Zy
ea8129216b 同步6/16 2026-06-16 15:35:52 +08:00
Zy
50e7b14fd6 同步6/16 2026-06-16 15:09:09 +08:00
367 changed files with 25242 additions and 9701 deletions

View File

@@ -1,65 +1,62 @@
# 页面标题 # 页面标题
VITE_APP_TITLE = 智慧物业后台管理系统 VITE_APP_TITLE=智慧物业后台管理系统
VITE_APP_LOGO_TITLE = 智慧物业后台管理系统 VITE_APP_LOGO_TITLE=智慧物业后台管理系统
# 开发环境配置 # 开发环境配置
VITE_APP_ENV = 'development' VITE_APP_ENV='development'
# 开发环境 # 开发环境
VITE_APP_BASE_API = '/dev-api' VITE_APP_BASE_API='/dev-api'
# # 开发环境 接口代理地址 # # 开发环境 接口代理地址
VITE_APP_PROXY_API = 'http://192.168.1.222:8080' #VITE_APP_PROXY_API='http://192.168.1.222:8080'
# 开发环境 接口代理地址 # 开发环境 接口代理地址
# VITE_APP_PROXY_API = 'http://192.168.0.239:8080' VITE_APP_PROXY_API='http://192.168.1.6:8080'
# 图片基础地址 # 图片基础地址
VITE_IMG_URL = 'http://192.168.1.222:8080' VITE_IMG_URL='http://192.168.1.222:8080'
# 应用访问路径 例如使用前缀 /admin/ # 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/' VITE_APP_CONTEXT_PATH='/'
# 监控地址 # 监控地址
VITE_APP_MONITOR_ADMIN = 'http://192.168.1.215/admin/applications' VITE_APP_MONITOR_ADMIN='http://192.168.1.215/admin/applications'
# SnailJob 控制台地址 # SnailJob 控制台地址
VITE_APP_SNAILJOB_ADMIN = 'http://192.168.1.215/snail-job' VITE_APP_SNAILJOB_ADMIN='http://192.168.1.215/snail-job'
VITE_APP_PORT = 5173 VITE_APP_PORT=5174
# 登录成功跳转地址 # 登录成功跳转地址
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 VITE_APP_SHOW_WORK_PLATFORM=true
# 地图类型 天地图 WGS84 高德地图 GCJ02, 高德地图 需要在高德地图官网申请key
# 地图类型 天地图 or 高德地图 天地图 WGS84 高德地图 GCJ02, 高德地图 需要在高德地图官网申请key VITE_APP_MAP_TYPE='GCJ02'
# 高德地图 GCJ02
# 天地图 WGS84
VITE_APP_MAP_TYPE = 'GCJ02'
# 高德地图key 建议放入环境变量中,避免泄露 # 高德地图key 建议放入环境变量中,避免泄露
VITE_GCJ02_KEY_GD = '8e302fe1be5f4db62bc734db23dca149' VITE_GCJ02_KEY_GD='8e302fe1be5f4db62bc734db23dca149'
VITE_GCJ02_JS_CODE_GD = '09534b3534d8da53968529a9ce164118' VITE_GCJ02_JS_CODE_GD='09534b3534d8da53968529a9ce164118'
# 天地图key 建议放入环境变量中,避免泄露 # 天地图key 建议放入环境变量中,避免泄露
VITE_TIANDITU_KEY = 'f71689f9e22158947ebf64ad95e0a595' VITE_TIANDITU_KEY='f71689f9e22158947ebf64ad95e0a595'
VITE_TIANDITU_JS_CODE = ''
# 接口加密功能开关(如需关闭 后端也必须对应关闭) # 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true VITE_APP_ENCRYPT=true
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 # 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' VITE_APP_RSA_PUBLIC_KEY='MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 # 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE=' VITE_APP_RSA_PRIVATE_KEY='MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
# 客户端id # 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' VITE_APP_CLIENT_ID='e5cd7e4891bf95d1d19206ce24a7b32e'
# websocket 开关 默认使用sse推送 # websocket 开关 默认使用sse推送
VITE_APP_WEBSOCKET = false VITE_APP_WEBSOCKET=false
# sse 开关 # sse 开关
VITE_APP_SSE = false VITE_APP_SSE=true

View File

@@ -1,57 +1,58 @@
# 页面标题 # 页面标题
VITE_APP_TITLE = 智慧物业后台管理系统 VITE_APP_TITLE=智慧物业后台管理系统
VITE_APP_LOGO_TITLE = 智慧物业后台管理系统 VITE_APP_LOGO_TITLE=智慧物业后台管理系统
# 生产环境配置 # 生产环境配置
VITE_APP_ENV = 'production' VITE_APP_ENV='production'
# 应用访问路径 例如使用前缀 /admin/ # 应用访问路径 例如使用前缀 /admin/
VITE_APP_CONTEXT_PATH = '/' VITE_APP_CONTEXT_PATH='/'
# 监控地址 # 监控地址
VITE_APP_MONITOR_ADMIN = '/admin/applications' VITE_APP_MONITOR_ADMIN='/admin/applications'
# SnailJob 控制台地址 # SnailJob 控制台地址
VITE_APP_SNAILJOB_ADMIN = '/snail-job' VITE_APP_SNAILJOB_ADMIN='/snail-job'
# 生产环境 # 生产环境
VITE_APP_BASE_API = 'https://wuyeapi.bugtc.com' # VITE_APP_BASE_API = 'https://wuyeapi.bugtc.com'
# VITE_APP_BASE_API = 'http://192.168.0.222:8080' VITE_APP_BASE_API='https://wuyeapi.ckdzkj.com'
#VITE_APP_BASE_API='http://192.168.1.198'
# 登录成功跳转地址 # 登录成功跳转地址
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 = false VITE_APP_SHOW_WORK_PLATFORM=true
# 地图类型 天地图 WGS84 高德地图 GCJ02, 高德地图 需要在高德地图官网申请key
# 地图类型 天地图 or 高德地图 天地图 WGS84 高德地图 GCJ02, 高德地图 需要在高德地图官网申请key VITE_APP_MAP_TYPE='GCJ02'
# 高德地图 GCJ02
# 天地图 WGS84
VITE_APP_MAP_TYPE = 'GCJ02'
# 高德地图key 建议放入环境变量中,避免泄露 # 高德地图key 建议放入环境变量中,避免泄露
VITE_GCJ02_KEY_GD = '8e302fe1be5f4db62bc734db23dca149' VITE_GCJ02_KEY_GD='8e302fe1be5f4db62bc734db23dca149'
VITE_GCJ02_JS_CODE_GD = '09534b3534d8da53968529a9ce164118' VITE_GCJ02_JS_CODE_GD='09534b3534d8da53968529a9ce164118'
# 天地图key 建议放入环境变量中,避免泄露
VITE_TIANDITU_KEY='f71689f9e22158947ebf64ad95e0a595'
# 是否在打包时开启压缩,支持 gzip 和 brotli # 是否在打包时开启压缩,支持 gzip 和 brotli
# VITE_BUILD_COMPRESS = gzip # VITE_BUILD_COMPRESS = gzip
VITE_APP_PORT = 80 VITE_APP_PORT=80
# 接口加密功能开关(如需关闭 后端也必须对应关闭) # 接口加密功能开关(如需关闭 后端也必须对应关闭)
VITE_APP_ENCRYPT = true VITE_APP_ENCRYPT=true
# 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换 # 接口加密传输 RSA 公钥与后端解密私钥对应 如更换需前后端一同更换
VITE_APP_RSA_PUBLIC_KEY = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ==' VITE_APP_RSA_PUBLIC_KEY='MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKoR8mX0rGKLqzcWmOzbfj64K8ZIgOdHnzkXSOVOZbFu/TJhZ7rFAN+eaGkl3C4buccQd/EjEsj9ir7ijT7h96MCAwEAAQ=='
# 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换 # 接口响应解密 RSA 私钥与后端加密公钥对应 如更换需前后端一同更换
VITE_APP_RSA_PRIVATE_KEY = 'MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE=' VITE_APP_RSA_PRIVATE_KEY='MIIBVAIBADANBgkqhkiG9w0BAQEFAASCAT4wggE6AgEAAkEAmc3CuPiGL/LcIIm7zryCEIbl1SPzBkr75E2VMtxegyZ1lYRD+7TZGAPkvIsBcaMs6Nsy0L78n2qh+lIZMpLH8wIDAQABAkEAk82Mhz0tlv6IVCyIcw/s3f0E+WLmtPFyR9/WtV3Y5aaejUkU60JpX4m5xNR2VaqOLTZAYjW8Wy0aXr3zYIhhQQIhAMfqR9oFdYw1J9SsNc+CrhugAvKTi0+BF6VoL6psWhvbAiEAxPPNTmrkmrXwdm/pQQu3UOQmc2vCZ5tiKpW10CgJi8kCIFGkL6utxw93Ncj4exE/gPLvKcT+1Emnoox+O9kRXss5AiAMtYLJDaLEzPrAWcZeeSgSIzbL+ecokmFKSDDcRske6QIgSMkHedwND1olF8vlKsJUGK3BcdtM8w4Xq7BpSBwsloE='
# 客户端id # 客户端id
VITE_APP_CLIENT_ID = 'e5cd7e4891bf95d1d19206ce24a7b32e' VITE_APP_CLIENT_ID='e5cd7e4891bf95d1d19206ce24a7b32e'
# websocket 开关 默认使用sse推送 # websocket 开关 默认使用sse推送
VITE_APP_WEBSOCKET = false VITE_APP_WEBSOCKET=false
# sse 开关 # sse 开关
VITE_APP_SSE = false VITE_APP_SSE=true

2
.gitignore vendored
View File

@@ -29,8 +29,6 @@ tests/e2e/reports
selenium-debug.log selenium-debug.log
# Editor directories and files # Editor directories and files
.idea
.vscode
*.suo *.suo
*.ntvs* *.ntvs*
*.njsproj *.njsproj

View File

@@ -30,7 +30,8 @@
"@vueuse/core": "14.2.1", "@vueuse/core": "14.2.1",
"animate.css": "4.1.1", "animate.css": "4.1.1",
"await-to-js": "3.0.0", "await-to-js": "3.0.0",
"axios": "1.13.6", "axios": "1.15.2",
"big.js": "^7.0.1",
"crypto-js": "4.2.0", "crypto-js": "4.2.0",
"echarts": "6.0.0", "echarts": "6.0.0",
"element-china-area-data": "^6.1.0", "element-china-area-data": "^6.1.0",
@@ -51,16 +52,20 @@
"vue-json-pretty": "2.6.0", "vue-json-pretty": "2.6.0",
"vue-router": "5.0.3", "vue-router": "5.0.3",
"vue-types": "6.0.0", "vue-types": "6.0.0",
"vue3-print-nb": "^0.1.4",
"vuedraggable": "^4.1.0", "vuedraggable": "^4.1.0",
"vxe-table": "4.18.1" "vxe-table": "4.18.1",
"xlsx-js-style": "^1.2.0"
}, },
"devDependencies": { "devDependencies": {
"@iconify/json": "^2.2.448", "@iconify/json": "^2.2.448",
"@types/big.js": "^7.0.0",
"@types/crypto-js": "4.2.2", "@types/crypto-js": "4.2.2",
"@types/file-saver": "^2.0.7", "@types/file-saver": "^2.0.7",
"@types/js-cookie": "3.0.6", "@types/js-cookie": "3.0.6",
"@types/node": "^25.4.0", "@types/node": "^25.4.0",
"@types/nprogress": "0.2.3", "@types/nprogress": "0.2.3",
"@types/xlsx": "^0.0.35",
"@unocss/preset-attributify": "66.6.6", "@unocss/preset-attributify": "66.6.6",
"@unocss/preset-icons": "66.6.6", "@unocss/preset-icons": "66.6.6",
"@unocss/preset-uno": "66.6.6", "@unocss/preset-uno": "66.6.6",
@@ -83,7 +88,7 @@
"unplugin-icons": "23.0.1", "unplugin-icons": "23.0.1",
"unplugin-vue-components": "31.0.0", "unplugin-vue-components": "31.0.0",
"unplugin-vue-setup-extend-plus": "1.0.1", "unplugin-vue-setup-extend-plus": "1.0.1",
"vite": "7.3.1", "vite": "8.0.5",
"vite-plugin-svg-icons-ng": "^1.5.2", "vite-plugin-svg-icons-ng": "^1.5.2",
"vite-plugin-vue-devtools": "8.0.7", "vite-plugin-vue-devtools": "8.0.7",
"vite-plugin-zip-pack": "^1.2.4", "vite-plugin-zip-pack": "^1.2.4",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

View File

@@ -8,7 +8,6 @@
import { useSettingsStore } from '@/store/modules/settings'; import { useSettingsStore } from '@/store/modules/settings';
import { handleThemeStyle } from '@/utils/theme'; import { handleThemeStyle } from '@/utils/theme';
import { useAppStore } from '@/store/modules/app'; import { useAppStore } from '@/store/modules/app';
import { useDictStore } from './store/modules/dict';
const appStore = useAppStore(); const appStore = useAppStore();
onMounted(() => { onMounted(() => {

View File

@@ -80,7 +80,7 @@ export function getCodeImg(): AxiosPromise<VerifyCodeResult> {
/** /**
* 第三方登录 * 第三方登录
*/ */
export function callback(data: LoginData): AxiosPromise<any> { export function callback(data: LoginData) {
const LoginData = { const LoginData = {
...data, ...data,
clientId: clientId, clientId: clientId,

View File

@@ -1,38 +1,26 @@
export interface ActivityVO { export interface ActivityVO {
/** 'id': string;
* 活动管理表id 'villageId': string;
*/ 'title': string;
id: string | number; 'author': string;
'content': string;
/** 'status': string;
* 标题 'pageViews': number;
*/ 'createName': string;
title: string; 'coverImage': string;
'startTime': string;
/** 'endTime': string;
* 作者 'applyDeadline': string;
*/ 'signinStartTime': string;
author: string; 'signinEndTime': string;
'address': string;
/** 'quota': number;
* 内容 'appliedCount': number;
*/ 'organizer': string;
content: string; 'contactName': string;
'contactPhone': string;
/** 'pointsReward': number;
* 发布状态 0未发布 1已发布 'requirements': string;
*/
status: string;
/**
* 浏览量
*/
pageViews: number;
/**
* 创建者姓名
*/
createName: string;
} }
export interface ActivityForm extends BaseEntity { export interface ActivityForm extends BaseEntity {

View File

@@ -65,6 +65,7 @@ export const delBanner = (id: string | number | Array<string | number>) => {
/** /**
* 改变Banner图管理 状态 * 改变Banner图管理 状态
* @param id * @param id
* @param status
*/ */
export const switchBanner = (id: string, status: string) => { export const switchBanner = (id: string, status: string) => {
return request({ return request({

View File

@@ -47,11 +47,6 @@ export interface BannerForm extends BaseEntity {
*/ */
byOrder?: number; byOrder?: number;
link: string; link: string;
/**
* 小区id
*/
villageId?: string;
} }
export interface BannerQuery extends PageQuery { export interface BannerQuery extends PageQuery {

View File

@@ -1,6 +1,6 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import { AxiosPromise } from 'axios';
import { ChargeTypeVO, ChargeTypeForm, ChargeTypeQuery } from './type'; import { ChargeTypeVO, ChargeTypeForm, ChargeTypeQuery, ChargeTypeRelationQuery } from './type';
/** /**
* 查询收费类型列表 * 查询收费类型列表
@@ -61,3 +61,37 @@ export const delChargeType = (id: string | number | Array<string | number>) => {
method: 'delete' method: 'delete'
}); });
}; };
/**
* 查询收费类型关联列表
* @param query
*/
export const getChargeTypeRelation = (query?: ChargeTypeRelationQuery) => {
return request({
url: '/chargeType/relation/list',
method: 'get'
});
};
/**
* 新增收费类型关联
* @param data
*/
export const addChargeTypeRelation = (data: ChargeTypeRelationQuery) => {
return request({
url: '/chargeType/relation',
method: 'POST',
data: data
});
};
/**
* 新增收费类型关联
* @param data
*/
export const editChargeTypeRelation = (data: ChargeTypeRelationQuery) => {
return request({
url: '/chargeType/relation',
method: 'PUT',
data: data
});
};

View File

@@ -2,7 +2,7 @@ export interface ChargeTypeVO {
/** /**
* 收费类型表id * 收费类型表id
*/ */
id: string | number; id: string;
/** /**
* 收费类型名称 * 收费类型名称
@@ -64,3 +64,20 @@ export interface ChargeType2Query extends PageQuery {
*/ */
params?: any; params?: any;
} }
export interface ChargeTypeRelationQuery {
/**
* 主收费类型表id
*/
masterTypeId?: string;
/**
* 子收费类型表id
*/
slaveTypeIds?: string;
id?: string;
// 状态 0启用 1停用
status?: string;
}

View File

@@ -2,7 +2,7 @@ export interface ComplaintTypeVO {
/** /**
* 投诉类型管理表id * 投诉类型管理表id
*/ */
id: string | number; id: string;
/** /**
* 投诉类型名称 * 投诉类型名称
@@ -13,43 +13,21 @@ export interface ComplaintTypeVO {
* 状态 0 启用 1停用 * 状态 0 启用 1停用
*/ */
status: string; status: string;
/**
* 创建人名称
*/
createNam: string;
/**
* 创建时间
*/
creaateTime: string;
} }
export interface ComplaintTypeForm extends BaseEntity { export interface ComplaintTypeForm extends BaseEntity {
/** /**
* 投诉类型管理表id * 投诉类型管理表id
*/ */
id?: string | number; id?: string;
/**
* 投诉类型名称
*/
name?: string;
/** /**
* 状态 0 启用 1停用 * 状态 0 启用 1停用
*/ */
status?: string; status?: string;
/** /**
* 创建人名称 * 投诉类型名称
*/ */
createNam?: string; name?: string;
/**
* 创建时间
*/
creaateTime?: string;
} }
export interface ComplaintTypeQuery extends PageQuery { export interface ComplaintTypeQuery extends PageQuery {
@@ -62,19 +40,4 @@ export interface ComplaintTypeQuery extends PageQuery {
* 状态 0 启用 1停用 * 状态 0 启用 1停用
*/ */
status?: string; status?: string;
/**
* 创建人名称
*/
createNam?: string;
/**
* 创建时间
*/
creaateTime?: string;
/**
* 日期范围参数
*/
params?: any;
} }

View File

@@ -20,7 +20,7 @@ export const listComplaint = (query?: ComplaintQuery): AxiosPromise<ComplaintVO[
* 查询投诉管理详细 * 查询投诉管理详细
* @param id * @param id
*/ */
export const getComplaint = (id: string | number): AxiosPromise<ComplaintVO> => { export const getComplaint = (id: string): AxiosPromise<ComplaintVO> => {
return request({ return request({
url: '/complaint/' + id, url: '/complaint/' + id,
method: 'get' method: 'get'

View File

@@ -30,7 +30,7 @@ export interface ComplaintVO {
problemIamgeUrl: string; problemIamgeUrl: string;
/** /**
* 投诉状态 0待处理 1处理中 2已处理 * 投诉状态 0 待处理 1 已处理
*/ */
status: string; status: string;
@@ -48,6 +48,8 @@ export interface ComplaintVO {
* 处理描述 * 处理描述
*/ */
handleContent: string; handleContent: string;
problemImageUrl: string;
} }
export interface ComplaintForm extends BaseEntity { export interface ComplaintForm extends BaseEntity {
@@ -79,7 +81,7 @@ export interface ComplaintForm extends BaseEntity {
/** /**
* 问题照片url * 问题照片url
*/ */
problemIamgeUrl?: string; problemImageUrl?: string;
/** /**
* 投诉状态 0待处理 1处理中 2已处理 * 投诉状态 0待处理 1处理中 2已处理
@@ -126,7 +128,7 @@ export interface ComplaintQuery extends PageQuery {
/** /**
* 问题照片url * 问题照片url
*/ */
problemIamgeUrl?: string; problemImageUrl?: string;
/** /**
* 投诉状态 0待处理 1处理中 2已处理 * 投诉状态 0待处理 1处理中 2已处理

View File

@@ -13,7 +13,8 @@ export interface DecorationVO {
* 所属房屋id * 所属房屋id
*/ */
houseId: string | number; houseId: string | number;
buildingId: string;
unitNoId: string;
/** /**
* 申请人姓名 * 申请人姓名
*/ */

View File

@@ -61,3 +61,10 @@ export const delHandleLog = (id: string | number | Array<string | number>) => {
method: 'delete' method: 'delete'
}); });
}; };
export const uploadAttachments = (files: FormData) => {
return request({
url: '/handleLog/uploadAttachments',
method: 'post',
data: files
});
};

View File

@@ -28,6 +28,28 @@ export interface HandleLogVO {
* 办事地点 * 办事地点
*/ */
handlePosition: string; handlePosition: string;
handleLogFileList: FileVO[];
}
export interface FileVO {
/**
* 文件id
*/
id: string | number;
/**
* 文件名
*/
fileName: string;
/**
* 文件路径
*/
filePath: string;
'handleLogId': string;
'ossId': string;
} }
export interface HandleLogForm extends BaseEntity { export interface HandleLogForm extends BaseEntity {

View File

@@ -80,3 +80,49 @@ export const list_statapi = (query?: { taskTimeBegin: string; taskTimeEnd: strin
params: query params: query
}); });
}; };
export type exportPageApiQuery = {
/**
* 数据类型1-日报 / 2-周报 / 3-月报
*/
dataType?: string;
/**
* 页码
*/
pageNum: number;
/**
* 每页条数
*/
pageSize: number;
/**
* 查询开始日期
*/
queryDateBegin?: string;
/**
* 查询结束日期
*/
queryDateEnd?: string;
/**
* 日期
*/
statDate?: string;
};
type exportAllApiQuery = Omit<exportPageApiQuery, 'pageSize' | 'pageNum'>;
/** 导出当前页 数据api */
export const exportPageApi = (data: exportPageApiQuery): AxiosPromise<any[]> => {
return request({
url: '/inspection/data/export/page',
method: 'POST',
data
});
};
/** 导出 所有 数据api */
export const exportAllApi = (data: exportAllApiQuery): AxiosPromise<any[]> => {
return request({
url: '/inspection/data/export',
method: 'POST',
data
});
};

View File

@@ -8,7 +8,7 @@ import { PlanVO, PlanForm, PlanQuery } from '@/api/system/InspectionPlan/type';
* @returns {*} * @returns {*}
*/ */
export const listPlan = (query?: PlanQuery): AxiosPromise<PlanVO[]> => { export const listPlan = (query: PlanQuery | {} = {}): AxiosPromise<PlanVO[]> => {
return request({ return request({
url: '/inspection/plan/list', url: '/inspection/plan/list',
method: 'get', method: 'get',
@@ -70,6 +70,6 @@ export const changePlanStatus = (id: string, status: string) => {
return request({ return request({
url: '/inspection/plan/changeStatus', url: '/inspection/plan/changeStatus',
method: 'put', method: 'put',
data: { id, status } params: { id, status }
}); });
}; };

View File

@@ -3,17 +3,12 @@ export interface PlanVO {
* 主键ID * 主键ID
*/ */
id: string | number; id: string | number;
inspectorIds: string;
/** /**
* 巡检计划名称 * 巡检计划名称
*/ */
planName: string; planName: string;
/**
* 巡检人员ID多个用逗号分隔
*/
inspectorIds: string;
/** /**
* 执行周期,如:开始日期-结束日期 * 执行周期,如:开始日期-结束日期
*/ */
@@ -32,7 +27,12 @@ export interface PlanVO {
/** /**
* 巡检设置0-必须拍照1-可以跳检 * 巡检设置0-必须拍照1-可以跳检
*/ */
inspectSetting: string; inspectSetting: number;
inspectSettingDict: {
dictLabel: string;
dictValue: string;
listClass: string;
};
/** /**
* 计划路线,多个用逗号分隔 * 计划路线,多个用逗号分隔
@@ -53,7 +53,11 @@ export interface PlanVO {
* 执行周期具体日期 * 执行周期具体日期
*/ */
executeDay: string; executeDay: string;
executeDayList: {
dictLabel: string;
dictValue: string;
listClass: string;
}[];
/** 巡检人员信息 */ /** 巡检人员信息 */
inspectorList: { inspectorList: {
'userId': string; 'userId': string;
@@ -106,7 +110,7 @@ export interface PlanForm extends BaseEntity {
/** /**
* 巡检设置0-必须拍照1-可以跳检 * 巡检设置0-必须拍照1-可以跳检
*/ */
inspectSetting?: string; inspectSetting?: number;
/** /**
* 计划路线,多个用逗号分隔 * 计划路线,多个用逗号分隔

View File

@@ -8,7 +8,7 @@ import { PointVO, PointForm, PointQuery } from '@/api/system/InspectionPoint/typ
* @returns {*} * @returns {*}
*/ */
export const listPoint = (query?: PointQuery): AxiosPromise<PointVO[]> => { export const listPoint = (query?: PointQuery | {}): AxiosPromise<PointVO[]> => {
return request({ return request({
url: '/inspection/point/list', url: '/inspection/point/list',
method: 'get', method: 'get',
@@ -64,6 +64,7 @@ export const delPoint = (id: string | number | Array<string | number>) => {
/** /**
* 修改巡检点状态 * 修改巡检点状态
* @param id * @param id
* @param status
*/ */
export const changePointStatus = (id: string, status: string) => { export const changePointStatus = (id: string, status: string) => {
return request({ return request({

View File

@@ -2,7 +2,7 @@ export interface PointVO {
/** /**
* 主键ID * 主键ID
*/ */
id: string | number; id: string;
/** /**
* 巡检点名称 * 巡检点名称
@@ -17,7 +17,7 @@ export interface PointVO {
/** /**
* 所属路线ID * 所属路线ID
*/ */
routeId: string | number; routeId: string;
/** /**
* 巡检点位置(经纬度),格式:经度,纬度 * 巡检点位置(经纬度),格式:经度,纬度

View File

@@ -19,11 +19,15 @@ export const listRecord = (query?: RecordQuery): AxiosPromise<RecordVO[]> => {
/** /**
* 查询巡检记录主详细 * 查询巡检记录主详细
* @param id * @param id
* @param date
*/ */
export const getRecord = (id: string | number): AxiosPromise<RecordVO> => { export const getRecord = (id: string, date?: string): AxiosPromise<RecordVO> => {
return request({ return request({
url: '/inspection/record/' + id, url: '/inspection/record/' + id,
method: 'get' method: 'get',
params: {
date
}
}); });
}; };

View File

@@ -3,7 +3,7 @@ export interface RecordVO {
actualStartTime?: string; actualStartTime?: string;
createByName?: string; createByName?: string;
createTime?: string; createTime?: string;
details?: []; details?: DetailsVo[];
id?: string; id?: string;
inspectorId?: number; inspectorId?: number;
inspectorName?: string; inspectorName?: string;
@@ -12,7 +12,7 @@ export interface RecordVO {
remark?: string; remark?: string;
routeId?: string; routeId?: string;
routeName?: string; routeName?: string;
status?: number; status?: string;
statusLabel?: null; statusLabel?: null;
taskName?: string; taskName?: string;
taskTime?: string; taskTime?: string;
@@ -82,3 +82,19 @@ export interface RecordQuery extends PageQuery {
*/ */
taskName?: string; 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[];
}

View File

@@ -8,7 +8,7 @@ import { RouteVO, RouteForm, RouteQuery } from './type';
* @returns {*} * @returns {*}
*/ */
export const listRoute = (query?: RouteQuery): AxiosPromise<RouteVO[]> => { export const listRoute = (query: RouteQuery | {} = {}): AxiosPromise<RouteVO[]> => {
return request({ return request({
url: '/inspection/route/list', url: '/inspection/route/list',
method: 'get', method: 'get',
@@ -20,7 +20,7 @@ export const listRoute = (query?: RouteQuery): AxiosPromise<RouteVO[]> => {
* 查询巡检路线详细 * 查询巡检路线详细
* @param id * @param id
*/ */
export const getRoute = (id: string | number): AxiosPromise<RouteVO> => { export const getRoute = (id: string): AxiosPromise<RouteVO> => {
return request({ return request({
url: '/inspection/route/' + id, url: '/inspection/route/' + id,
method: 'get' method: 'get'
@@ -61,3 +61,11 @@ export const delRoute = (id: string | number | Array<string | number>) => {
method: 'delete' method: 'delete'
}); });
}; };
export const changeStatusRoute = (id: string, status: string) => {
return request({
url: '/inspection/route/changeStatus',
method: 'put',
params: { id, status }
});
};

View File

@@ -4,7 +4,7 @@ export interface RouteVO {
/** /**
* 主键ID * 主键ID
*/ */
id: string | number; id: string;
/** /**
* 巡检路线名称 * 巡检路线名称
@@ -70,7 +70,7 @@ export interface RouteForm extends BaseEntity {
/** /**
* 主键ID * 主键ID
*/ */
id?: string | number; id?: string;
/** /**
* 巡检路线名称 * 巡检路线名称

View File

@@ -1,17 +1,40 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; 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 * @param query
* @returns {*} * @returns {*}
*/ */
export const getNotificationList = (query?: NoticeQuery): AxiosPromise<NoticeVO[]> => { export const getNotificationList = (query): AxiosPromise<NotificationVo[]> => {
return request({ return request({
url: '/notification/list', url: '/notification/list',
method: 'get', method: 'get',
params: query params: query
}); });
}; };
/**
* 消息通知 已读
* @returns {*}
* @param ids
*/
export const ReadNotificationByID = (ids: string[]) => {
return request({
url: '/notification/read',
method: 'POST',
data: {
id: ids
}
});
};

View File

@@ -61,3 +61,61 @@ export const delParkingCost = (id: string | number | Array<string | number>) =>
method: 'delete' method: 'delete'
}); });
}; };
export type Request = {
/**
* 区域id
*/
areaId?: string;
/**
* 0 审核中 1 审核通过 2 审核不通过
*/
checkStatus?: string;
/**
* 添加者姓名sys_user nickname
*/
createName?: string;
/**
* id车位管理表
*/
id?: string;
/**
* 车位面积(单位㎡)
*/
parkingArea?: number;
/**
* 车位编号
*/
parkingCode?: string;
/**
* 车位楼层
*/
parkingFloor?: string;
/**
* 车位状态 0 闲置 1自用 2出租
*/
parkingStatus?: string;
/**
* 备注
*/
remark?: string;
/**
* 住户id
*/
residentId?: string;
/**
* 所属小区id
*/
villageId?: string;
};
/**
* 查询停车缴费 车位列表
* @param {Request} queryParams
*/
export const getParkingCostCarAreaApi = (queryParams: Request) => {
return request({
url: '/parkingCost/parkingList',
method: 'get',
params: queryParams
});
};

View File

@@ -0,0 +1,159 @@
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<IncomeStatsResponse> => {
return request({
url: '/api/analysis/income/stats',
method: 'get',
params: {
startDate: datetime
}
});
};
export interface sourceType {
'totalPayable': string;
'totalReceived': string;
'totalPending': string;
'parkingFee': string;
'parkingFeePercent': string;
'propertyFee': string;
'propertyFeePercent': string;
'utilityFee': string;
'utilityFeePercent': string;
'shopRent': string;
'shopRentPercent': string;
'repairFee': string;
'repairFeePercent': string;
'garbageFee': string;
'garbageFeePercent': string;
}
// 收入来源
export const income_scourcApi = (datetime?: string): AxiosPromise<sourceType> => {
return request({
url: '/api/analysis/income/source',
method: 'get',
params: {
date: datetime
}
});
};
export interface PayMentMethod {
'wechatAmount': string;
'wechatPercent': string;
'alipayAmount': string;
'alipayPercent': string;
'yidangAmount': string;
'yidangPercent': string;
'cashAmount': string;
'cashPercent': string;
'unionPayAmount': string;
'unionPayPercent': string;
'transferAmount': string;
'transferPercent': string;
'depositOffsetAmount': string;
'depositOffsetAmountPercent': string;
'propertyOffsetAmount': string;
'propertyOffsetAmountPercent': string;
}
// 缴费方式
export const payment_methodApi = (datetime?: string): AxiosPromise<PayMentMethod> => {
return request({
url: '/api/analysis/income/payment_method',
method: 'get',
params: {
date: datetime
}
});
};
export interface Arrears_distrubution {
month: number;
amount: string;
}
// 欠费分布
export const arrears_distributionApi = (
datetime?: string
): AxiosPromise<{
items: Arrears_distrubution[];
}> => {
return request({
url: '/api/analysis/income/arrears_distribution',
method: 'get',
params: {
date: datetime
}
});
};
export interface payment_sourceType {
'miniProgramAmount': string;
'miniProgramPercent': string;
'mobileAppAmount': string;
'mobileAppPercent': string;
'offlineAmount': string;
'offlinePercent': string;
}
// 缴费来源分析
export const payment_sourceApi = (datetime?: string): AxiosPromise<payment_sourceType> => {
return request({
url: '/api/analysis/income/payment_source',
method: 'get',
params: {
date: datetime
}
});
};
export interface payment_trendType {
'date': string;
'paidAmount': string;
'unpaidAmount': string;
}
// 缴费走势分析
export const payment_trendApi = (
startDate?: string,
endDate?: string
): AxiosPromise<{
items: payment_trendType[];
}> => {
return request({
url: '/api/analysis/income/payment_trend',
method: 'get',
params: {
startDate,
endDate
}
});
};

View File

@@ -0,0 +1,111 @@
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;
'otherType': 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
});
};
export const get_person_age = (query?: {
dateTime: string;
}): AxiosPromise<
{
'date': string;
'moveInCount': number;
'moveOutCount': number;
'totalCount': number;
}[]
> => {
return request({
url: '/gender/personAge',
method: 'get',
params: query
});
};

View File

@@ -53,11 +53,47 @@ export const updateQuestionnaire = (data: QuestionnaireForm) => {
/** /**
* 删除问卷调查 * 删除问卷调查
* @param id * @param ids
* @param vailid
* @param ids
* @param vailid
*/ */
export const delQuestionnaire = (id: string | number | Array<string | number>) => { export const delQuestionnaire = (ids: string | string[], vailid: boolean = true) => {
return request({ return request({
url: '/questionnaire/' + id, url: '/questionnaire/' + ids + '?isValid=' + vailid,
method: 'delete' method: 'delete',
headers: {
silentError: 'true'
}
});
};
/**
* 查询问卷调查回答列表
*/
export const getQuestionnaireAnswer = (
{
pageSize,
pageNum,
questionnaireId
}
) => {
return request({
url: '/questionnaireAnswer/list',
method: 'GET',
params: {
pageSize,
pageNum,
questionnaireId,
answerStatus: '1'
}
});
};
/**
* 查询问卷调查回答详情
*/
export const getQuestionnaireAnswerMain = (id: string) => {
return request({
url: '/questionnaireAnswer/' + id,
method: 'GET'
}); });
}; };

View File

@@ -51,7 +51,7 @@ export interface QuestionnaireForm extends BaseEntity {
/** /**
* 问卷ID * 问卷ID
*/ */
id?: string | number; id?: string;
/** /**
* 所属小区id * 所属小区id
@@ -154,11 +154,12 @@ export interface QuestionComponentItem {
type: string; type: string;
title: string; title: string;
required: boolean; required: boolean;
options: QuestionComponentOption[]; options: QuestionComponentOption[];
} }
export interface QuestionComponentnaireForm { export interface QuestionComponentnaireForm {
id?: string | number | null; id?: string;
title: string; title: string;
description?: string; description?: string;
content: QuestionComponentItem[]; content: QuestionComponentItem[];

View File

@@ -1,65 +1,32 @@
export interface RepairVO { export interface RepairVO {
/** 'id': string;
* 报修管理表id 'houseId': string;
*/ 'maintenanceItemId': number;
id: string | number; 'maintenanceItemName': number;
'problem': string;
/** 'residentId': string;
* 关联房屋id 'residentName': string;
*/ 'phone': string;
houseId: string | number; 'orderDate': string;
'problemImageUrl': string;
/** 'problemStatus': string;
* 维修项目id 'repairDes': string;
*/ 'repairImageUrl': string;
maintenanceItemId: string | number; 'repairId': string;
'repairName': string;
/** 'houseName': string;
* 问题描述 'item': string;
*/ 'projectType': number;
problem: string; 'updateTime': string;
'projectTypeStr': string;
/** 'repairIsCheck': string;
* 报修人id(住户表id) 'manageIsCheck': string;
*/ 'isCheckStr': number;
residentId: string | number; 'repairPhone': number;
'repairRoleName': number;
/** 'repairStatus': string;
* 手机号码 repairUserId: string;
*/ 'createTime': string;
phone: number;
/**
* 预约日期
*/
orderDate: string;
/**
* 问题图片地址
*/
problemImageUrl: string;
/**
* 0 已提交 1已分配 2维修中 3维修完成
*/
problemStatus: string;
/**
* 维修描述
*/
repairDes: string;
/**
* 维修图片url
*/
repairImageUrl: string;
/**
* 维修人员id
*/
repairId: string;
/** 名称(小区名-楼栋名-单元号-房间号) */
name?: string;
} }
export interface RepairForm extends BaseEntity { export interface RepairForm extends BaseEntity {
@@ -86,12 +53,12 @@ export interface RepairForm extends BaseEntity {
/** /**
* 报修人id(住户表id) * 报修人id(住户表id)
*/ */
residentId?: string | number; residentId?: string;
/** /**
* 手机号码 * 手机号码
*/ */
phone?: number; phone?: string;
/** /**
* 预约日期 * 预约日期
@@ -163,12 +130,12 @@ export interface RepairQuery extends PageQuery {
/** /**
* 报修人id(住户表id) * 报修人id(住户表id)
*/ */
residentId?: string | number; residentId?: string;
/** /**
* 手机号码 * 手机号码
*/ */
phone?: number; phone?: string;
/** /**
* 预约日期 * 预约日期

View File

@@ -23,7 +23,7 @@ export interface RepairProjectVO {
* 项目层级 01 * 项目层级 01
*/ */
projectLevel: number; projectLevel: number;
children?: []; children?: RepairProjectVO[];
/** /**
* 排序 (数越小越靠前) * 排序 (数越小越靠前)
*/ */
@@ -33,6 +33,9 @@ export interface RepairProjectVO {
* 状态 0启用 1停用 * 状态 0启用 1停用
*/ */
status: string; status: string;
disabled?: boolean;
// children?: RepairProjectVO[];
} }
export interface RepairProjectForm extends BaseEntity { export interface RepairProjectForm extends BaseEntity {
@@ -70,26 +73,6 @@ export interface RepairProjectForm extends BaseEntity {
* 状态 0启用 1停用 * 状态 0启用 1停用
*/ */
status?: string; status?: string;
/**
* 创建时间
*/
cretaeTime?: string;
/**
* 创建者
*/
createBy?: number;
/**
* 更新时间
*/
updateTime?: string;
/**
* 更新者
*/
updateBy?: number;
} }
export interface RepairProjectQuery extends PageQuery { export interface RepairProjectQuery extends PageQuery {
@@ -122,9 +105,4 @@ export interface RepairProjectQuery extends PageQuery {
* 状态 0启用 1停用 * 状态 0启用 1停用
*/ */
status?: string; status?: string;
/**
* 日期范围参数
*/
params?: any;
} }

View File

@@ -93,11 +93,12 @@ export type BillUserlist = {
'houseNo': string; 'houseNo': string;
'residentId': string; 'residentId': string;
'buildingId': string; 'buildingId': string;
'parkingId': string;
}; };
/** /**
* 查询业主列表 * 查询业主列表
* @param data * @param query
* @returns {*} * @param query
*/ */
export const queryResidentList_holder = (query: { pageNum: number; pageSize: number }): AxiosPromise<BillUserlist[]> => { export const queryResidentList_holder = (query: { pageNum: number; pageSize: number }): AxiosPromise<BillUserlist[]> => {
return request({ return request({
@@ -106,3 +107,26 @@ export const queryResidentList_holder = (query: { pageNum: number; pageSize: num
params: query params: query
}); });
}; };
/**
* 查询车位业主列表
* @param query
* @param query
*/
export const queryResidentList_Cars = (query: { pageNum: number; pageSize: number }): AxiosPromise<BillUserlist[]> => {
return request({
url: '/bill/getParkingList',
method: 'GET',
params: query
});
};
/**
* 生成账单
*/
export const manualGenerateApi = (data: { billId: string; chargePeriod: string; yearMonths?: string[]; year?: string[] }) => {
return request({
url: '/bill/manualGenerate',
method: 'POST',
data
});
};

View File

@@ -3,6 +3,7 @@ export interface BillVO {
* 账单管理表id * 账单管理表id
*/ */
id: string; id: string;
billName: string;
/** /**
* 账单编号 * 账单编号
@@ -13,14 +14,19 @@ export interface BillVO {
* 收费项目id * 收费项目id
*/ */
chargeItemId: string; chargeItemId: string;
residentIds: string[];
/** /**
* 收费范围 0全体业主 1部分业主 * 收费范围 0全体业主 1部分业主
*/ */
chargeScope: string; chargeScope: string;
/**
* 按季度收费时,指定季度起始年月列表,格式 "yyyy-MM",如 ["2026-01", "2026-04", "2026-07"]
*/
periodCalcType: string;
/** /**
* 收费周期 0年 1月 2日 * 收费周期 0年 1月 2日 3 季度 4永久为空时取账单配置
*/ */
chargePeriod: string; chargePeriod: string;
@@ -48,6 +54,8 @@ export interface BillVO {
* 创建时间 * 创建时间
*/ */
cerateTime: string; cerateTime: string;
parkingIds: string[];
} }
export interface BillForm extends BaseEntity { export interface BillForm extends BaseEntity {
@@ -103,7 +111,7 @@ export interface BillForm extends BaseEntity {
/** /**
* 创建时间 * 创建时间
*/ */
cerateTime?: string; createTime?: string;
} }
export interface BillQuery extends PageQuery { export interface BillQuery extends PageQuery {

View File

@@ -10,10 +10,10 @@ export type cashlist = {
/** /**
* 查询住户列表 * 查询住户列表
* @param post
* @returns {*} * @returns {*}
* @param data
*/ */
export const cashQuery = (data: { residentName?: string }): AxiosPromise<cashlist[]> => { export const cashQuery = (data: { residentName?: string; queryType: number }): AxiosPromise<cashlist[]> => {
return request({ return request({
url: '/cash/residentList', url: '/cash/residentList',
method: 'post', method: 'post',
@@ -22,9 +22,13 @@ export const cashQuery = (data: { residentName?: string }): AxiosPromise<cashlis
}; };
export type billlistType = { export type billlistType = {
needPayAmount: string; // 需要支付金额
actualAccount: string; // 实际支付金额
singleDiscountAmount: string; // 单笔优惠金额
'villageId': string; 'villageId': string;
'residentId': string; 'residentId': string;
'houseId': string; 'houseId': string;
'detailsId': string;
'houseName': string; 'houseName': string;
'parkingId': string; 'parkingId': string;
'parkingName': string; 'parkingName': string;
@@ -38,11 +42,15 @@ export type billlistType = {
'endDate': string; 'endDate': string;
'money': string; 'money': string;
'payStatus': string; 'payStatus': string;
'remark': string;
amount: string;
residentName: string;
}; };
/** /**
* 查询账单列表 * 查询账单列表
* @param post
* @returns {*} * @returns {*}
* @param data
*/ */
export const billQuery = (data: { residentId?: string; payStatus: '0' | '1' }): AxiosPromise<billlistType[]> => { export const billQuery = (data: { residentId?: string; payStatus: '0' | '1' }): AxiosPromise<billlistType[]> => {
return request({ return request({
@@ -51,3 +59,72 @@ export const billQuery = (data: { residentId?: string; payStatus: '0' | '1' }):
data: data data: data
}); });
}; };
export const billEdit = (data: { 'detailsId': string[]; 'payType': string; 'payStatus': string }): AxiosPromise<billlistType[]> => {
return request({
url: '/cash/billEdit',
method: 'post',
data: data
});
};
// 打印票据
export const billPrint = (data: { 'detailsIds': string[]; 'residentId': string }): AxiosPromise<BillPrintType> => {
return request({
url: '/cash/print',
method: 'post',
data: data
});
};
// 查询所有账单总金额
export const getAllAccount = (
data = {}
): AxiosPromise<{
/** 总金额 */
'receivableAmount': string;
/** 总实收金额 */
'receivedAmount': string;
/** 总优惠金额 */
'discountAmount': string;
/** 未收金额 */
'unpaidAmount': string;
}> => {
return request({
url: '/cash/billAmountSummary',
method: 'post',
data: data
});
};
// 删除账单
export const billDelete = (ids: string | string[]) => {
return request({
url: `/cash/bill/${ids}`,
method: 'DELETE'
});
};
export type BillPrintType = {
'totalAccount': string;
'residentName': string;
'payTypeSummary': {
'payType': string;
'payAmount': string;
}[];
'detailsList': {
'detailsId': string;
'chargeItemName': string;
'billName': string;
'detailsTime': string;
'useCount': string;
'account': string;
'payType': string;
'singleDiscountAmount': string;
'actualAccount': string;
'remark': string;
}[];
'printDate': string;
totalDiscountAmount: string;
totalActualAccount: string;
'HouseName': string;
'title': string;
};

View File

@@ -8,7 +8,7 @@ import { ChargeItemVO, ChargeItemForm, ChargeItemQuery } from './type';
* @returns {*} * @returns {*}
*/ */
export const listChargeItem = (query?: ChargeItemQuery): AxiosPromise<ChargeItemVO[]> => { export const listChargeItem = (query?: ChargeItemQuery | {}): AxiosPromise<ChargeItemVO[]> => {
return request({ return request({
url: '/chargeItem/list', url: '/chargeItem/list',
method: 'get', method: 'get',
@@ -64,7 +64,7 @@ export const delChargeItem = (id: string | number | Array<string | number>) => {
/** /**
* 启停 收费项目 * 启停 收费项目
* @param id * @param data
*/ */
export const changChargeItem = (data: { id: string; status: string }) => { export const changChargeItem = (data: { id: string; status: string }) => {
return request({ return request({

View File

@@ -12,9 +12,10 @@ export interface ChargeItemVO {
* 收费类型 * 收费类型
*/ */
typeId: string; typeId: string;
itemName: string;
/** /**
* 计费方式 0单次收费 1周期收费 2仪表收费 * 计费方式 0单次收费 1 周期收费 2 仪表收费
*/ */
billingMethod: string; billingMethod: string;
@@ -52,6 +53,10 @@ export interface ChargeItemVO {
* 小区id * 小区id
*/ */
villageId: string; villageId: string;
/**
* 状态 0正常 1停用
*/
status: string;
} }
export interface ChargeItemForm extends BaseEntity { export interface ChargeItemForm extends BaseEntity {

View File

@@ -64,7 +64,7 @@ export const delElectricityDevice = (id: string | number | Array<string | number
/** /**
* 生成条形码 * 生成条形码
* @param id * @param data
*/ */
export const ElectricityDeviceMakerQrcode = (data: { deviceCode: string; id: string }[]) => { export const ElectricityDeviceMakerQrcode = (data: { deviceCode: string; id: string }[]) => {
return request({ return request({
@@ -76,7 +76,7 @@ export const ElectricityDeviceMakerQrcode = (data: { deviceCode: string; id: str
/** /**
* 获取设备指定时间段的用电量 * 获取设备指定时间段的用电量
* @param id * @param data
*/ */
export const getElectricityDeviceTimeRangeUsedWater = (data: { deviceCode: string; 'startTime': string; 'endTime': string }) => { export const getElectricityDeviceTimeRangeUsedWater = (data: { deviceCode: string; 'startTime': string; 'endTime': string }) => {
return request({ return request({
@@ -85,3 +85,14 @@ export const getElectricityDeviceTimeRangeUsedWater = (data: { deviceCode: strin
data data
}); });
}; };
/**
* 电表解绑房屋
* @param { string } deviceCode
*/
export const ElectricityDeviceUnbind = (deviceCode: string) => {
return request({
url: `/electricityDevice/unbind/${deviceCode}`,
method: 'PUT'
});
};

View File

@@ -61,3 +61,45 @@ export const delTopupRecord = (id: string | number | Array<string | number>) =>
method: 'delete' 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<TopupRecordList[]> => {
return request({
url: '/topupRecord/water/list',
method: 'get',
params: query
});
};
/** 查询所有电表充值记录 */
export const getElectricityTopupRecordByDate = (query: {
startTime?: string;
endTime?: string;
pageSize: number;
pageNum: number;
}): AxiosPromise<TopupRecordList[]> => {
return request({
url: '/topupRecord/electricity/list',
method: 'get',
params: query
});
};

View File

@@ -64,7 +64,7 @@ export const delWaterDevice = (id: string | number | Array<string | number>) =>
/** /**
* 获取设备指定时间段的用水量 * 获取设备指定时间段的用水量
* @param id * @param data
*/ */
export const getWaterDeviceTimeRangeUsedWater = (data: { deviceCode: string; 'startTime': string; 'endTime': string }) => { export const getWaterDeviceTimeRangeUsedWater = (data: { deviceCode: string; 'startTime': string; 'endTime': string }) => {
return request({ return request({
@@ -76,7 +76,7 @@ export const getWaterDeviceTimeRangeUsedWater = (data: { deviceCode: string; 'st
/** /**
* 生成条形码 * 生成条形码
* @param id * @param data
*/ */
export const WaterDeviceMakerQrcode = (data: { deviceCode: string; id: string }[]) => { export const WaterDeviceMakerQrcode = (data: { deviceCode: string; id: string }[]) => {
return request({ return request({
@@ -87,7 +87,7 @@ export const WaterDeviceMakerQrcode = (data: { deviceCode: string; id: string }[
}; };
/** /**
* 更新固件 * 更新固件
* @param id * @param data
*/ */
export const WaterDeviceUpdateBin = (data: { deviceCodes: string[]; urlA: string; urlB: string }) => { export const WaterDeviceUpdateBin = (data: { deviceCodes: string[]; urlA: string; urlB: string }) => {
return request({ return request({
@@ -107,3 +107,14 @@ export const latestRecord = (deviceCodes: string) => {
method: 'GET' method: 'GET'
}); });
}; };
/**
* 解绑设备绑定的房屋
* @param deviceCode
*/
export const waterDeviceUnbind = (deviceCode: string) => {
return request({
url: `/waterDevice/unbind/${deviceCode}`,
method: 'PUT'
});
};

View File

@@ -17,8 +17,8 @@ export const listStock = (query?: any): AxiosPromise<any[]> => {
/** /**
* 查询 库存查询 详情 * 查询 库存查询 详情
* @param query
* @returns {*} * @returns {*}
* @param id
*/ */
export const listStockMain = (id?: string): AxiosPromise<any[]> => { export const listStockMain = (id?: string): AxiosPromise<any[]> => {

View File

@@ -8,7 +8,7 @@ import { SupplierVO, SupplierForm, SupplierQuery } from './type';
* @returns {*} * @returns {*}
*/ */
export const listSupplier = (query?: SupplierQuery): AxiosPromise<SupplierVO[]> => { export const listSupplier = (query: SupplierQuery | {} = {}): AxiosPromise<SupplierVO[]> => {
return request({ return request({
url: '/warehouse/supplier/list', url: '/warehouse/supplier/list',
method: 'get', method: 'get',

View File

@@ -88,11 +88,6 @@ export interface WarehouseQuery extends PageQuery {
*/ */
warehouseName?: string; warehouseName?: string;
/**
* 仓库归属id*关联com_village
*/
villageId?: string;
/** /**
* 联系人* * 联系人*
*/ */

View File

@@ -8,7 +8,7 @@ import { AreaVO, AreaForm, AreaQuery } from '@/api/system/carArea/type';
* @returns {*} * @returns {*}
*/ */
export const listArea = (query?: AreaQuery): AxiosPromise<AreaVO[]> => { export const listArea = (query: AreaQuery | {} = {}): AxiosPromise<AreaVO[]> => {
return request({ return request({
url: '/area/list', url: '/area/list',
method: 'get', method: 'get',

View File

@@ -64,12 +64,28 @@ export const delCar = (id: string | number | Array<string | number>) => {
/** /**
* 删除车辆图片 * 删除车辆图片
* @param id * @param format
*/ */
export const uploadCar = (formdata: FormData) => { export const uploadCar = (format: FormData) => {
return request({ return request({
url: '/car/uploadImage', url: '/car/uploadImage',
method: 'POST', method: 'POST',
data: formdata data: format
});
};
export interface AppUserList {
'user_id': string;
'user_name': string;
'user_phone': string;
}
/**
* 获取用户端app-用户
* */
export const getAppUser = (data): AxiosPromise<AppUserList[]> => {
return request({
url: '/car/getAppUserList',
method: 'GET',
params: data
}); });
}; };

View File

@@ -2,17 +2,17 @@ export interface CarVO {
/** /**
* 车辆管理表id * 车辆管理表id
*/ */
id: string | number; id: string;
/** /**
* 区域id * 区域id
*/ */
areaId: string | number; areaId: string;
/** /**
* 车位id * 车位id
*/ */
parkingId: string | number; parkingId: string;
/** /**
* 持有人id(住户表id) * 持有人id(住户表id)

View File

@@ -4,9 +4,9 @@ export interface communitylist_rows_type {
villageCode: string; villageCode: string;
address: string; address: string;
houseUse: number | null; houseUse: number | null;
villageArea: number; villageArea: string;
remark: string; remark: string;
parkingSpaceCount: number; parkingSpaceCount: string;
villageImageUrl: string; villageImageUrl: string;
city: string; city: string;
status: '0' | '1'; status: '0' | '1';

View File

@@ -1,6 +1,6 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import { AxiosPromise } from 'axios';
import { DeptForm, DeptQuery, DeptTreeVO, DeptVO } from './types'; import { DeptForm, DeptQuery, DeptVO } from './types';
// 查询部门列表 // 查询部门列表
export const listDept = (query?: DeptQuery) => { export const listDept = (query?: DeptQuery) => {

View File

@@ -19,6 +19,7 @@ export interface DeviceVO {
* 设备编号 * 设备编号
*/ */
deviceCode: string; deviceCode: string;
shelfLife: string;
/** /**
* 设备型号 * 设备型号

View File

@@ -5,18 +5,19 @@ import { addBuildingType, addHouseType, BuildingUnit, BuildingVo } from './type'
// 楼栋--------------------------------------------------------------------------------------- // 楼栋---------------------------------------------------------------------------------------
/** 根据 小区id 和 类型 查询楼栋信息 */ /** 根据 小区id 和 类型 查询楼栋信息 */
export function getBuildinglistAPI(): AxiosPromise<BuildingVo[]> { export function getBuildinglistAPI(query = {}): AxiosPromise<BuildingVo[]> {
return request({ return request({
url: '/building/byVillage', url: '/building/byVillage',
method: 'get', method: 'get',
params: {} params: query
}); });
} }
/** 获取所有楼栋 */ /** 获取所有楼栋 */
export function getBuildinglists(): AxiosPromise<BuildingVo[]> { export function getBuildinglists(query = {}): AxiosPromise<BuildingVo[]> {
return request({ return request({
url: '/building/list', url: '/building/list',
method: 'get' method: 'get',
params: query
}); });
} }
/** 获取单一楼栋 */ /** 获取单一楼栋 */
@@ -117,7 +118,7 @@ export interface Data {
billResidentList: BillResidentList[]; billResidentList: BillResidentList[];
chargeItemList: string[]; chargeItemList: string[];
house: House; house: House;
parking: Parking; parkingList: Parking[];
residentList: ResidentList[]; residentList: ResidentList[];
storeroom: Storeroom; storeroom: Storeroom;
} }
@@ -162,7 +163,11 @@ export interface Storeroom {
shareArea: string; shareArea: string;
storeroomId: number; storeroomId: number;
storeroomNo: string; storeroomNo: string;
remark: string;
unitNoId: string;
unitNo: number; unitNo: number;
unitNoName: string;
} }
export interface Parking { export interface Parking {

View File

@@ -90,5 +90,6 @@ export interface addHouseType {
'shareArea': string; 'shareArea': string;
'houseType': string; 'houseType': string;
'storeroomId': string; 'storeroomId': string;
'parkingId': string; 'parkingId'?: string;
'parkingIds': string[];
} }

View File

@@ -1,6 +1,6 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import { AxiosPromise } from 'axios';
import { HouseRentalVO, HouseRentalForm, HouseRentalQuery } from '@/api/system/houseRental/type'; import { HouseRentalVO, HouseRentalForm, HouseRentalQuery, HouseRentalSigningVO } from '@/api/system/houseRental/type';
/** /**
* 查询房屋租赁管理列表 * 查询房屋租赁管理列表
@@ -74,10 +74,52 @@ interface uploadHouseImagetype {
}[]; }[];
'error': string[]; 'error': string[];
} }
export const uploadHouseImage = (formdata: FormData): AxiosPromise<uploadHouseImagetype> => { export const uploadHouseImage = (formData: FormData): AxiosPromise<uploadHouseImagetype> => {
return request({ return request({
url: '/houseRental/uploadImages', url: '/houseRental/uploadImages',
method: 'POST', method: 'POST',
data: formdata data: formData
});
};
export const getHouseOwnUser = (houseId: string): AxiosPromise<uploadHouseImagetype> => {
return request({
url: `/houseRental/ownerName/${houseId}`,
method: 'GET'
});
};
/**
* 房屋租赁管理 改变状态 0下架 1上架
* @param houseId
* */
export const changeHouseRedientStatus = (houseId: string): AxiosPromise<uploadHouseImagetype> => {
return request({
url: `/houseRental/changeStatus/${houseId}`,
method: 'PUT'
});
};
/**
* 房屋租赁管理 签约
* @param data
*/
export const HouseRedientSign = (data: HouseRentalSigningVO): AxiosPromise<uploadHouseImagetype> => {
return request({
url: `/houseRental/sign`,
method: 'POST',
data: data
});
};
/**
* 房屋租赁管理 签约上传
* @param url
* @param data
*/
export const HouseRedientSignUpload = (url: string, data: FormData) => {
return request({
url: url,
method: 'POST',
data: data
}); });
}; };

View File

@@ -2,7 +2,7 @@ export interface HouseRentalVO {
/** /**
* id 房屋租赁表id * id 房屋租赁表id
*/ */
id: string | number; id: string;
/** /**
* 租户姓名 * 租户姓名
@@ -57,7 +57,7 @@ export interface HouseRentalVO {
/** /**
* 手机号 * 手机号
*/ */
phone: number; phone: string;
/** /**
* 微信 * 微信
@@ -72,7 +72,7 @@ export interface HouseRentalVO {
/** /**
* 房屋id * 房屋id
*/ */
houseId: number; houseId: string;
/** /**
* 房屋用途 * 房屋用途
*/ */
@@ -88,83 +88,53 @@ export interface HouseRentalVO {
pubTime: string; pubTime: string;
houseImageUrls: string[]; houseImageUrls: string[];
facilitieslist: string[]; facilitieslist: string[];
signingList?: HouseRentalSigningVO[];
} }
export interface HouseRentalForm extends BaseEntity { export interface HouseRentalForm extends BaseEntity {
id: string;
houseId: string;
rentalName: string; // 租户姓名
rent: string; // 租金
houseFace: string; // 房屋朝向
rentalType: string; // 整租合租
phone: string; //手机号
houseArea: number; // 房屋面积
floorNo: number; //楼层号
inTime: string; //入住时间
facilities: string; //房屋设施
houseImageUrl: string; //房屋图片
supInfo: string; //补充租房信息
vx: string; //微信
houseUse?: string; //房屋用途
rentalStatus: number; //租赁状态
buildingId: string; //楼栋id
unitNoId: string; //单元id
email: string; //邮箱
/** /**
* id 房屋租赁表id * 小区id
*/ */
id?: string | number; villageId?: string;
}
/** export interface HouseRentalSigningVO {
* 租户姓名 rentAmount: string | number;
*/ depositAmount: string | number;
rentalName?: string; 'id': string;
'rentalId': string;
/** 'contractNo': string;
* 租金 单位元 'tenantName': string;
*/ 'tenantPhone': string;
rent?: number; 'chargeMode': string;
'chargeStandard': string;
/** 'contractName': string;
* 0 整租 1 合租 'contractStatus': string;
*/ 'leaseStartDate': string;
rentalType?: string; 'leaseEndDate': string;
'houseId': string;
/** contractUrl: string;
* 房屋朝向 'villageId': string;
*/ 'remark': string;
houseFace?: string; 'createTime': string;
/**
* 房屋面积
*/
houseArea?: number;
/**
* 楼层号
*/
floorNo?: number;
/**
* 入住时间
*/
inTime?: string;
/**
* 房屋设施(“,”隔开)
*/
facilities?: string;
/**
* 房屋照片url( "," 隔开)
*/
houseImageUrl?: string;
/**
* 补充租房信息
*/
supInfo?: string;
/**
* 手机号
*/
phone?: number;
/**
* 微信
*/
vx?: string;
/**
* 邮箱
*/
email?: string;
/**
* 房屋id
*/
houseId?: string | number;
} }
export interface HouseRentalQuery extends PageQuery { export interface HouseRentalQuery extends PageQuery {

View File

@@ -15,6 +15,13 @@ export const listHouseUseType = (query?: HouseUseTypeQuery): AxiosPromise<HouseU
params: query params: query
}); });
}; };
export const listHouseUseType_add_house = (query?: HouseUseTypeQuery | {}): AxiosPromise<HouseUseTypeVO[]> => {
return request({
url: '/houseUseType/getList',
method: 'get',
params: query
});
};
/** /**
* 查询房屋类型详细 * 查询房屋类型详细

View File

@@ -12,7 +12,7 @@ export function listOss(query: OssQuery): AxiosPromise<OssVO[]> {
} }
// 查询OSS对象基于id串 // 查询OSS对象基于id串
export function listByIds(ossId: string | number): AxiosPromise<OssVO[]> { export function listByIds(ossId: string): AxiosPromise<OssVO[]> {
return request({ return request({
url: '/resource/oss/listByIds/' + ossId, url: '/resource/oss/listByIds/' + ossId,
method: 'get' method: 'get'

View File

@@ -63,7 +63,7 @@ export const delParking = (id: string | number | Array<string | number>) => {
}; };
/** /**
* 改变车位审核装填 * 改变车位审核装填
* @param id * @param data
*/ */
export const getParkingReview = (data: { id: string; propertyReviewFeedback: string; propertyStatus: number }) => { export const getParkingReview = (data: { id: string; propertyReviewFeedback: string; propertyStatus: number }) => {
return request({ return request({
@@ -88,6 +88,7 @@ export const getParkingReviewInfo = (id: string) => {
/** /**
* 查询小区内车位列表 * 查询小区内车位列表
* @param { string } villageid * @param { string } villageid
* @param houseId
* @returns {*} * @returns {*}
*/ */
@@ -101,3 +102,25 @@ export const GetVillageListParking = (villageid: string, houseId: string = undef
} }
}); });
}; };
/**
* 查询 车位持有人信息
* @returns {*}
* @param residentId
*/
export const getParkingResidentInfo = (
residentId: string
): AxiosPromise<{
id: '';
name: '';
type: '';
status: '';
idCard: '';
phone: '';
houseName: '';
}> => {
return request({
url: `/car/holder/${residentId}`,
method: 'GET'
});
};

View File

@@ -0,0 +1,20 @@
import request from '@/utils/request';
import {
leaseManagementDetailChargeTypesResponse,
leaseManagementDetailRequest,
leaseManagementDetailResponse
} from '@/api/system/report/LeaseManagementDetails/type';
export const getLeaseManagementDetailList = (data?: leaseManagementDetailRequest): Promise<leaseManagementDetailResponse> => {
return request({
url: '/leaseManagementDetail/list',
method: 'POST',
data: data
});
};
export const getLeaseManagementDetailChargeTypesList = (): Promise<leaseManagementDetailChargeTypesResponse> => {
return request({
url: '/leaseManagementDetail/chargeTypes',
method: 'POST'
});
};

View File

@@ -0,0 +1,203 @@
export type leaseManagementDetailRequest = {
/**
* 面积
*/
areaSize?: string;
/**
* 收费模式多选
*/
chargeModes?: string[];
/**
* 收费标准多选
*/
chargeStandards?: string[];
/**
* 按收费类型筛选应收/已收/未收金额区间
*/
chargeTypeFilters?: ChargeTypeFilter[];
/**
* 租赁起始日-开始
*/
leaseStartDateBegin?: string;
/**
* 租赁起始日-结束
*/
leaseStartDateEnd?: string;
/**
* 承租方
*/
lessee?: string;
/**
* 当前页码
*/
pageNum: number;
/**
* 每页条数
*/
pageSize: number;
/**
* 手机号
*/
phone?: string;
/**
* 房号
*/
roomNumber?: string;
/**
* 小区多选
*/
villageIds?: number[];
leaseEndDateBegin?: string;
leaseEndDateEnd?: string;
};
export type ChargeTypeFilter = {
/**
* 收费类型名称
*/
chargeTypeName?: string;
/**
* 收费类型ID
*/
chargeTypeId?: string;
/**
* 应收上限
*/
receivableMax?: string;
/**
* 应收下限
*/
receivableMin?: string;
/**
* 已收上限
*/
receivedMax: string;
/**
* 已收下限
*/
receivedMin: string;
/**
* 未收上限
*/
uncollectedMax: string;
/**
* 未收下限
*/
uncollectedMin: string;
};
export type leaseManagementDetailResponse = {
/**
* 收费类型
*/
chargeItems: ChargeItem[];
code: number;
msg: string;
/**
* 当前页明细行数据
*/
rows: Row[];
/**
* 总记录数
*/
total: number;
};
export type ChargeItem = {
/**
* 收费类型ID
*/
chargeTypeId: string;
/**
* 收费类型名称
*/
chargeTypeName: string;
};
export type Row = {
/**
* 小区名称
*/
area: string;
/**
* 面积(㎡)
*/
areaSize: string;
/**
* 小区ID
*/
buildingId: string;
/**
* 收费模式
*/
chargeMode: string;
/**
* 收费标准
*/
chargeStandard: string;
/**
* 房屋ID
*/
houseId: string;
/**
* 签约记录ID
*/
id: string;
/**
* 租赁终止日
*/
leaseEndDate: string;
/**
* 租赁起始日
*/
leaseStartDate: string;
/**
* 承租方
*/
lessee: string;
/**
* 电话
*/
phone: string;
/**
* 各收费类型应收
*/
receivableAmounts: { [key: string]: any };
/**
* 各收费类型已收
*/
receivedAmounts: { [key: string]: any };
/**
* 房号
*/
roomNumber: string;
/**
* 各收费类型未收
*/
uncollectedAmounts: { [key: string]: any };
[property: string]: any;
};
export type leaseManagementDetailChargeTypesResponse = {
code: number;
data: Datum[];
msg: string;
};
export type Datum = {
chargeTypeId: string;
chargeTypeName: string;
};
// 0000000000000000
export interface queryParamsType extends leaseManagementDetailRequest {
chargeTypeFilters: chargeTypeFiltersType[];
}
export interface chargeTypeFiltersType extends ChargeTypeFilter {
receivable?: string;
uncollected?: string;
received?: string;
chargeTypeName?: string;
}

View File

@@ -0,0 +1,20 @@
import request from '@/utils/request';
import { AgingListResponse, OwnerArrearsDetailVo } from '@/api/system/report/aging/type';
import { AxiosPromise } from 'axios';
export const getAgingList = (query): Promise<AgingListResponse> => {
return request({
url: '/agingAnalysis/summary',
method: 'get',
params: query
});
};
export const getDetailList = (query): Promise<AgingListResponse> => {
return request({
url: '/agingAnalysis/detail',
method: 'get',
params: query
});
};

View File

@@ -0,0 +1,74 @@
export interface AgingListResponse {
total: number;
rows: AgingSummary[];
summary: AgingSummary;
code: number;
msg: string;
}
export interface AgingSummary {
amountLe6: string;
amountM6To12: string;
amountOver5: string;
amountY1To2: string;
amountY2To3: string;
amountY3To4: string;
amountY4To5: string;
cutoffPeriod: string;
houseTypeName: string;
totalAmount: string;
villageName: string;
}
// 明细 ---------------------------------
/**
* 业主欠费明细视图对象
*
* OwnerArrearsDetailVo
*/
export type OwnerArrearsDetailVo = {
/**
* 区域(小区名称)
*/
area?: string;
/**
* 欠费月数
*/
arrearsMonths?: number;
/**
* 应账账期20170101-20171231
*/
billPeriod?: string;
/**
* 客户(业主姓名)
*/
customerName?: string;
/**
* 垃圾清运费
*/
garbageFee?: number;
/**
* 房号
*/
houseNo?: string;
/**
* 其他费用合计
*/
otherFee?: number;
/**
* 联系电话
*/
phone?: string;
/**
* 物业费
*/
propertyFee?: number;
/**
* 序号
*/
serialNumber?: number;
/**
* 金额合计
*/
totalAmount?: number;
[property: string]: any;
};

View File

@@ -0,0 +1,18 @@
import request from '@/utils/request';
import { ArrearsDetailQuery, ArrearsListResponse, ArrearsQuery, OwnerArrearsDetailVo } from '@/api/system/report/arrears/type';
import { AxiosPromise } from 'axios';
export const getArrearsList = (query?: ArrearsQuery): Promise<ArrearsListResponse> => {
return request({
url: '/outstandingFeeSummary/list',
method: 'get',
params: query
});
};
export const getArrearsDetails = (query?: ArrearsDetailQuery): AxiosPromise<OwnerArrearsDetailVo[]> => {
return request({
url: '/outstandingFeeSummary/ownerArrearsDetail',
method: 'get',
params: query
});
};

View File

@@ -0,0 +1,113 @@
export interface ArrearsQuery extends PageQuery {
/**
* 视图类型:
* 1 - 维度一(收费类型为行)
* 2 - 维度二(房屋类型为行)
* */
viewType: number;
chargeItemId?: string;
houseUseId?: string;
villageId?: string;
}
export interface ArrearsListResponse {
code: number;
msg: string;
data: ArrearsVO[];
}
export interface ArrearsVO extends ArrearsType1, ArrearsType2 {
'villageName': string;
'totalAmount': string;
}
export interface ArrearsType1 {
'chargeItemName'?: string;
'houseTypeAmounts'?: {
[key: string]: string;
};
}
export interface ArrearsType2 {
'houseTypeName'?: string;
'chargeItemAmounts'?: {
[key: string]: string;
};
}
export interface ArrearsDetailQuery extends PageQuery {
/**
* 客户姓名(模糊查询)
*/
customerName?: string;
/**
* 结束时间
*/
endTime?: string;
/**
* 房号(模糊查询)
*/
houseNo?: string;
/**
* 联系电话(模糊查询)
*/
phone?: string;
/**
* 开始时间
*/
startTime?: string;
}
/**
* 业主欠费明细视图对象
*
* OwnerArrearsDetailVo
*/
export type OwnerArrearsDetailVo = {
/**
* 区域(小区名称)
*/
area?: string;
/**
* 欠费月数
*/
arrearsMonths?: number;
/**
* 应账账期20170101-20171231
*/
billPeriod?: string;
/**
* 各收费类型金额key: 收费类型名称, value: 金额)
*/
chargeItemAmounts?: MapBigDecimal;
/**
* 客户(业主姓名)
*/
customerName?: string;
/**
* 房号
*/
houseNo?: string;
/**
* 联系电话
*/
phone?: string;
/**
* 序号
*/
serialNumber?: number | string;
/**
* 金额合计
*/
totalAmount?: number;
};
/**
* 各收费类型金额key: 收费类型名称, value: 金额)
*
* MapBigDecimal
*/
export type MapBigDecimal = {
[property: string]: number;
};

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request';
export const getArrearsTend = (query) => {
return request({
url: '/propertyFeeTrend/arrearsTrend',
method: 'get',
params: query
});
};

View File

@@ -0,0 +1,54 @@
import request from '@/utils/request';
import { Response } from '@/api/system/report/businessDailyReport/type';
/**
* 按小区统计
* @param query
* @returns
* */
export const getBusinessDailyReport = (query): Promise<Response> => {
return request({
url: '/businessDailyReport/village',
method: 'get',
params: query
});
};
/**
* 按小区统计导出
* @param query
* @returns
* */
export const getBusinessDailyReportExport = (query): Promise<Response> => {
return request({
url: '/businessDailyReport/village/export',
method: 'get',
params: query
});
};
/**
* 按收费项目统计
* @param query
* @returns
* */
export const getBusinessDailyReportChargeItem = (query): Promise<Response> => {
return request({
url: '/businessDailyReport/chargeItem',
method: 'get',
params: query
});
};
/**
* 按收费项目统计导出
* @param query
* @returns
* */
export const getBusinessDailyReportChargeItemExport = (query): Promise<Response> => {
return request({
url: '/businessDailyReport/chargeItem/export',
method: 'get',
params: query
});
};

View File

@@ -0,0 +1,77 @@
export type Response = {
code: number;
msg: string;
/**
* 支付方式
*/
payTypes: PayType[];
/**
* 数据列表
*/
rows: RowsType[];
/**
* 合计行
*/
summary: Summary;
total: number;
};
export type RowsType = Row | RowVillage;
export type Row = {
/**
* 收费项目ID
*/
chargeItemId: string;
/**
* 收费项目名称
*/
chargeItemName: string;
/**
* 各支付方式金额
*/
payAmounts: { [key: string]: string };
/**
* 合计金额
*/
totalAmount: string;
};
export type RowVillage = {
/**
* 各支付方式金额
*/
payAmounts?: { [key: string]: string };
/**
* 合计金额
*/
totalAmount?: number;
/**
* 小区ID
*/
villageId?: number;
/**
* 小区名称
*/
villageName?: string;
};
export type PayType = {
/**
* 支付方式编码
*/
payType: string;
/**
* 支付方式名称
*/
payTypeName: string;
};
/**
* 合计行
*/
export type Summary = {
chargeItemId: null;
chargeItemName: string;
payAmounts: { [key: string]: string };
totalAmount: string;
};

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request';
export const getChargeTend = (query)=> {
return request({
url: '/propertyFeeTrend/chargeTrend',
method: 'get',
params: query
});
};

View File

@@ -0,0 +1,18 @@
import request from '@/utils/request';
import { FilterResponse, Response } from '@/api/system/report/dailyFeeReport/type';
export const getDailyFeeReportList = (data = {}): Promise<Response> => {
return request({
url: '/dailyFeeReport/list',
method: 'POST',
data: data
});
};
// 获取动态查询数据
export const getDailyFeeReportDynamicList = (data = {}): Promise<FilterResponse> => {
return request({
url: '/dailyFeeReport/filters',
method: 'GET',
data: data
});
};

View File

@@ -0,0 +1,44 @@
export type Response = {
code: number;
rows: Datum[];
total: number;
msg: string;
};
export type Datum = {
alipayAmount: string;
cashAmount: string;
chargeTypeAmounts: ChargeTypeAmounts;
deposit: string;
depositAmount: string;
discountAmount: string;
electricFee: string;
handler: null | string;
houseName: string;
payTime: string;
propertyOffsetAmount: string;
remark: null;
residentName: string;
transferAmount: string;
unionPayAmount: string;
waterFee: string;
wechatAmount: string;
yiDangFuAmount: string;
};
export type ChargeTypeAmounts = {
[property: string]: {
amount?: string;
endDate?: string;
startDate?: string;
};
};
export type FilterResponse = {
code: number;
data: {
'chargeTypeId': string;
'chargeTypeName': string;
}[];
msg: string;
};

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request';
import { MonthFeeReportQueryForm, Response } from '@/api/system/report/monthFeeReport/type';
export const getMonthFeeReportList = (data: MonthFeeReportQueryForm = {}): Promise<Response> => {
return request({
url: '/chargeMonthlyReport/list',
method: 'GET',
params: data
});
};

View File

@@ -0,0 +1,75 @@
export type MonthFeeReportQueryForm = {
/**
* 房屋用途类型
*/
buildingIds?: string;
/**
* 月收费率区间
*/
monthRate?: string;
/**
* 本月应收区间
*/
monthReceivable?: string;
/**
* 本月未收区间
*/
monthUnpaid?: string;
/**
* 当前页码
*/
pageNum?: number;
/**
* 每页条数
*/
pageSize?: number;
/**
* 综合欠收区间
*/
totalArrears?: string;
/**
* 综合预收区间
*/
totalPrepaid?: string;
/**
* 小区ID
*/
villageId?: string;
/**
* 年收费率区间
*/
yearRate?: string;
/**
* 本年应收区间
*/
yearReceivable?: string;
/**
* 本年未收区间
*/
yearUnpaid?: string;
};
export type Response = {
code: number;
msg: string;
rows: Row[];
total: number;
};
export type Row = {
buildingId: BuildingId;
buildingName: string;
monthRate: string;
monthReceivable: string;
monthReceived: string;
monthUnpaid: string;
totalArrears: string;
totalPrepaid: string;
yearRate: string;
yearReceivable: string;
yearReceived: string;
yearUnpaid: string;
[property: string]: any;
};
export type BuildingId = number | string;

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request';
import { Response } from '@/api/system/report/paidInExpensesReceivable/type';
export const getPaidInExpensesList = (data): Promise<Response> => {
return request({
url: '/paidInExpenses/list',
method: 'POST',
data: data
});
};

View File

@@ -0,0 +1,29 @@
export type Response = {
code: number;
data: Data;
msg: string;
};
export type Data = {
chargeTypes: string[];
details: Detail[];
total: Total;
};
export type Detail = {
amounts: DetailAmounts;
name: string;
sequence: string;
total: string;
};
export type DetailAmounts = {
[property: string]: string;
};
export type Total = {
amounts: DetailAmounts;
name: string;
sequence: string;
total: string;
};

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request';
import { Response } from '@/api/system/report/paidInExpensesReceivable/type';
export const getPaidInExpensesReceivableList = (data): Promise<Response> => {
return request({
url: '/paidInExpenses/receivable/list',
method: 'POST',
data: data
});
};

View File

@@ -0,0 +1,29 @@
export type Response = {
code: number;
data: Data;
msg: string;
};
export type Data = {
chargeTypes: string[];
details: Detail[];
total: Total;
};
export type Detail = {
amounts: DetailAmounts;
name: string;
sequence: string;
total: string;
};
export type DetailAmounts = {
[property: string]: string;
};
export type Total = {
amounts: DetailAmounts;
name: string;
sequence: string;
total: string;
};

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request';
import { Request, Response } from '@/api/system/report/prepaidBalance/type';
export const getPrepaidBalanceList = (query: Request): Promise<Response> => {
return request({
url: '/prepaidBalance/summary',
method: 'GET',
params: query
});
};

View File

@@ -0,0 +1,83 @@
export type Request = {
/**
* 收费类型ID
*/
chargeTypeId?: string;
/**
* 房屋类型ID
*/
houseUseTypeId?: string;
/**
* 当前页数
*/
pageNum?: number;
/**
* 分页大小
*/
pageSize?: number;
/**
* 小区ID
*/
villageId?: string;
};
export type Response = {
/**
* 动态收费项目列头
*/
chargeItems: ChargeItem[];
code: number;
msg: string;
/**
* 汇总数据行列表
*/
rows: Row[];
/**
* 全部合计行
*/
summary: Summary;
/**
* 总记录数
*/
total: number;
};
export type ChargeItem = {
/**
* 收费项目名称
*/
chargeItemName: string;
/**
* 收费类型ID
*/
chargeTypeId: number;
};
export type Row = {
/**
* 各收费项目预收余额
*/
chargeItemAmounts?: { [key: string]: any };
/**
* 房屋类型名称
*/
houseTypeName?: string;
/**
* 合计金额
*/
totalAmount?: number;
/**
* 小区名称
*/
villageName?: string;
};
/**
* 全部合计行
*/
export type Summary = {
chargeItemAmounts: { [key: string]: string };
houseTypeName: string;
totalAmount: number;
villageName: string;
};

View File

@@ -0,0 +1,10 @@
import request from '@/utils/request';
import { Request, Response } from '@/api/system/report/prepaidBalance/type';
export const getPrepaidBalanceDetailList = (query: Request): Promise<Response> => {
return request({
url: '/prepaidBalance/detail',
method: 'GET',
params: query
});
};

View File

@@ -0,0 +1,83 @@
export type Request = {
/**
* 收费类型ID
*/
chargeTypeId?: string;
/**
* 房屋类型ID
*/
houseUseTypeId?: string;
/**
* 当前页数
*/
pageNum?: number;
/**
* 分页大小
*/
pageSize?: number;
/**
* 小区ID
*/
villageId?: string;
};
export type Response = {
/**
* 动态收费项目列头
*/
chargeItems: ChargeItem[];
code: number;
msg: string;
/**
* 汇总数据行列表
*/
rows: Row[];
/**
* 全部合计行
*/
summary: Summary;
/**
* 总记录数
*/
total: number;
};
export type ChargeItem = {
/**
* 收费项目名称
*/
chargeItemName: string;
/**
* 收费类型ID
*/
chargeTypeId: number;
};
export type Row = {
/**
* 各收费项目预收余额
*/
chargeItemAmounts?: { [key: string]: any };
/**
* 房屋类型名称
*/
houseTypeName?: string;
/**
* 合计金额
*/
totalAmount?: number;
/**
* 小区名称
*/
villageName?: string;
};
/**
* 全部合计行
*/
export type Summary = {
chargeItemAmounts: { [key: string]: string };
houseTypeName: string;
totalAmount: number;
villageName: string;
};

View File

@@ -1,14 +1,13 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios'; import { AxiosPromise } from 'axios';
import { ResidentVO, ResidentForm, ResidentQuery } from '@/api/system/resident/type'; import { ResidentVO, ResidentForm, ResidentQuery } from '@/api/system/residentReviewProcess/resident/type';
/** /**
* *
* @param query * @param query
* @returns {*} * @returns {*}
*/ */
export const listResident = (query?: ResidentQuery | {}): AxiosPromise<ResidentVO[]> => {
export const listResident = (query?: ResidentQuery): AxiosPromise<ResidentVO[]> => {
return request({ return request({
url: '/resident/list', url: '/resident/list',
method: 'get', method: 'get',
@@ -64,7 +63,6 @@ export const delResident = (id: string | number | Array<string | number>) => {
/** /**
* - * -
* @param id
*/ */
export const UploadidCardApi = () => { export const UploadidCardApi = () => {
return request({ return request({

View File

@@ -2,8 +2,10 @@ export interface ResidentVO {
/** /**
* id * id
*/ */
userId: string | number; userId: string;
id: string; id: string;
unitNoId: string;
idCardType: string;
/** /**
* *
*/ */
@@ -13,21 +15,22 @@ export interface ResidentVO {
* *
*/ */
name: string; name: string;
nickName: string;
/** /**
* 0 1 * 0 1
*/ */
type: string; type: string;
/** /**
* 0 1 * 0 1
*/ */
gender: string; gender: string;
/** /**
* *
*/ */
idCard: string | number; idCard: string;
/** /**
* *
@@ -42,7 +45,7 @@ export interface ResidentVO {
/** /**
* id * id
*/ */
buildingId: string | number; buildingId: string;
/** /**
* id * id
@@ -74,11 +77,22 @@ export interface ResidentVO {
} }
export interface ResidentForm extends BaseEntity { export interface ResidentForm extends BaseEntity {
/**
*
*/
age?: number;
/** /**
* id * id
*/ */
userId?: string | number; userId?: string;
unitNoId?: string;
/**
*
* 0
* 1
* 2
*/
idCardType?: string;
/** /**
* *
*/ */
@@ -90,19 +104,22 @@ export interface ResidentForm extends BaseEntity {
name?: string; name?: string;
/** /**
* 0 1 * 0
* 1
* 2
* 3
*/ */
type?: string; ownerRelationship?: string;
/** /**
* 0 1 * 0 1
*/ */
gender?: string; gender?: string;
/** /**
* *
*/ */
idCard?: string | number; idCard?: string;
/** /**
* *
@@ -117,7 +134,7 @@ export interface ResidentForm extends BaseEntity {
/** /**
* id * id
*/ */
buildingId?: string | number; buildingId?: string;
/** /**
* id * id
@@ -150,20 +167,29 @@ export interface ResidentQuery extends PageQuery {
* *
*/ */
date?: any; date?: any;
/** /**
* *
* 0 1
*/ */
type?: string; houseName?: string;
/**
*
*/
name?: string;
/**
* 0
* 1
* 2
* 3
*/
ownerRelationship?: string;
/** /**
* *
* 0 1 * 0 1
*/ */
status?: string; status?: string;
houseId?: number; houseId?: number;
villageId?: string; villageId?: string;
buildingId?: number; buildingId?: number;
unitNo?: number; unitNoId?: number;
} }

View File

@@ -1,140 +0,0 @@
export interface ResidentReviewProcessVO {
/**
* 住户审核表
*/
id: string | number;
/**
* 住户表id
*/
residentId: string | number;
/**
* 提交时间
*/
submitTime: string;
/**
* 提交状态 0未提交 1已提交
*/
submitStatus: number;
/**
* 物业审核时间
*/
propertyTime: string;
/**
* 物业审核状态 0 待审核 1审核通过 2审核未通过
*/
propertyStatus: number;
/**
* 物业审核意见
*/
propertyReviewFeedback: string;
/**
* 认证时间
*/
certificationTime: string;
/**
* 认证状态 0未认证 1已认证
*/
certificationStatus: number;
}
export interface ResidentReviewProcessForm extends BaseEntity {
/**
* 住户审核表
*/
id?: string | number;
/**
* 住户表id
*/
residentId?: string | number;
/**
* 提交时间
*/
submitTime?: string;
/**
* 提交状态 0未提交 1已提交
*/
submitStatus?: number;
/**
* 物业审核时间
*/
propertyTime?: string;
/**
* 物业审核状态 0 待审核 1审核通过 2审核未通过
*/
propertyStatus?: number;
/**
* 物业审核意见
*/
propertyReviewFeedback?: string;
/**
* 认证时间
*/
certificationTime?: string;
/**
* 认证状态 0未认证 1已认证
*/
certificationStatus?: number;
}
export interface ResidentReviewProcessQuery extends PageQuery {
/**
* 住户表id
*/
residentId?: string | number;
/**
* 提交时间
*/
submitTime?: string;
/**
* 提交状态 0未提交 1已提交
*/
submitStatus?: number;
/**
* 物业审核时间
*/
propertyTime?: string;
/**
* 物业审核状态 0 待审核 1审核通过 2审核未通过
*/
propertyStatus?: number;
/**
* 物业审核意见
*/
propertyReviewFeedback?: string;
/**
* 认证时间
*/
certificationTime?: string;
/**
* 认证状态 0未认证 1已认证
*/
certificationStatus?: number;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -0,0 +1,63 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import { RevenueNoticeVO, RevenueNoticeForm, RevenueNoticeQuery } from './type';
/**
* 查询公区收益通知列表
* @param query
* @returns {*}
*/
export const listRevenueNotice = (query?: RevenueNoticeQuery): AxiosPromise<RevenueNoticeVO[]> => {
return request({
url: '/revenueNotice/list',
method: 'get',
params: query
});
};
/**
* 查询公区收益通知详细
* @param noticeId
*/
export const getRevenueNotice = (noticeId: string | number): AxiosPromise<RevenueNoticeVO> => {
return request({
url: '/revenueNotice/' + noticeId,
method: 'get'
});
};
/**
* 新增公区收益通知
* @param data
*/
export const addRevenueNotice = (data: RevenueNoticeForm) => {
return request({
url: '/revenueNotice',
method: 'post',
data: data
});
};
/**
* 修改公区收益通知
* @param data
*/
export const updateRevenueNotice = (data: RevenueNoticeForm) => {
return request({
url: '/revenueNotice',
method: 'put',
data: data
});
};
/**
* 删除公区收益通知
* @param noticeId
*/
export const delRevenueNotice = (noticeId: string | number | Array<string | number>) => {
return request({
url: '/revenueNotice/' + noticeId,
method: 'delete'
});
};

View File

@@ -0,0 +1,140 @@
export interface RevenueNoticeVO {
/**
* 公告ID
*/
noticeId: string | number;
/**
* 公告标题
*/
noticeTitle: string;
/**
* 公告内容
*/
noticeContent: string;
/**
* 作者
*/
author: string;
/**
* 紧急程度 0=普通 1=紧急 2=非常紧急
*/
urgencyLevel: number;
/**
* 发布状态 0=草稿 1=已发布
*/
publishStatus: number;
/**
* 发布人
*/
publishBy: string;
/**
* 发布日期
*/
publishTime: string;
/**
* 所属小区id
*/
villageId: string | number;
}
export interface RevenueNoticeForm extends BaseEntity {
/**
* 公告ID
*/
noticeId?: string | number;
/**
* 公告标题
*/
noticeTitle?: string;
/**
* 公告内容
*/
noticeContent?: string;
/**
* 作者
*/
author?: string;
/**
* 紧急程度 0=普通 1=紧急 2=非常紧急
*/
urgencyLevel?: number;
/**
* 发布状态 0=草稿 1=已发布
*/
publishStatus?: number;
/**
* 发布人
*/
publishBy?: string;
/**
* 发布日期
*/
publishTime?: string;
/**
* 所属小区id
*/
villageId?: string | number;
}
export interface RevenueNoticeQuery extends PageQuery {
/**
* 公告标题
*/
noticeTitle?: string;
/**
* 公告内容
*/
noticeContent?: string;
/**
* 作者
*/
author?: string;
/**
* 紧急程度 0=普通 1=紧急 2=非常紧急
*/
urgencyLevel?: number;
/**
* 发布状态 0=草稿 1=已发布
*/
publishStatus?: number;
/**
* 发布人
*/
publishBy?: string;
/**
* 发布日期
*/
publishTime?: string;
/**
* 所属小区id
*/
villageId?: string | number;
/**
* 日期范围参数
*/
params?: any;
}

View File

@@ -63,16 +63,16 @@ export const delStoreroom = (id: string | number | Array<string | number>) => {
}; };
/** /**
* 查询小区内储藏室管理列表 * 查询小区内储藏室管理列表
* @param query
* @returns {*} * @returns {*}
* @param data
*/ */
export const GetVillagelistStoreroom = ( export const GetVillagelistStoreroom = (
data: { villageid: string; unitNo: string; houseId?: string; buildingId: string } = { data: { villageid: string; unitNoId: string; houseId?: string; buildingId: string } = {
villageid: null, villageid: null,
buildingId: null, buildingId: null,
houseId: null, houseId: null,
unitNo: null unitNoId: null
} }
): AxiosPromise<StoreroomVO[]> => { ): AxiosPromise<StoreroomVO[]> => {
return request({ return request({
@@ -81,7 +81,7 @@ export const GetVillagelistStoreroom = (
data: { data: {
villageId: data.villageid, villageId: data.villageid,
buildingId: data.buildingId, buildingId: data.buildingId,
unitNo: data.unitNo, unitNoId: data.unitNoId,
houseId: data.houseId houseId: data.houseId
} }
}); });

View File

@@ -12,7 +12,8 @@ export interface StoreroomVO {
/** /**
* 单元号 * 单元号
*/ */
unitNo: string | number; unitNoId: string | number;
unitName: string;
/** /**
* 储藏室号 * 储藏室号

View File

@@ -212,10 +212,11 @@ export const deptTreeSelect = (): AxiosPromise<DeptTreeVO[]> => {
/** /**
* 查询用户 根据不同的角色key * 查询用户 根据不同的角色key
*/ */
export const getUserByRoleKey = (roleKey: string = 'repair'): AxiosPromise<any> => { export const getUserByRoleKey = (data: { roleKey: string; pageSize?: number; pageNum?: number; phonenumber?: string; nickName?: string }) => {
return request({ return request({
url: '/system/user/list/byRoleKey?roleKey=' + roleKey, url: '/system/user/list/byRoleKey',
method: 'get' method: 'get',
params: data
}); });
}; };

View File

@@ -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<VersionVO[]> => {
return request({
url: '/api/app/list',
method: 'get',
params: query
});
};
/**
* 查询版本详细
* @param id
*/
export const getVersion = (id: string | number): AxiosPromise<VersionVO> => {
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<string | number>) => {
return request({
url: '/system/version/' + id,
method: 'delete'
});
};
/** 获取过往版本 */
export const getPastVersion = (platform: string, appChannel: string) => {
return request({
url: `/api/app/getPastVersion?platform=${platform}&appChannel=${appChannel}`,
method: 'get',
});
};
/** 切换版本启停 */
export const switchVersion = (id: string, status: string) => {
return request({
url: `/api/app/switchStatus/${id}/${status}`,
method: 'get'
});
};

View File

@@ -0,0 +1,169 @@
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 {
/**
* 更新app端
* butler 管家端
* resident 业主端
*/
appChannel: string;
/**
*
*/
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;
channel?: string;
}
export interface VersionQuery extends PageQuery {
/**
* ios/android
*/
platform?: string;
/**
* 版本号(递增)
*/
versionCode?: number;
/**
* 版本名称1.2.0
*/
versionName?: string;
/**
* optional/force
*/
updateType?: string;
/**
* 下载地址
*/
downloadUrl?: string;
/**
* 0-禁用 1-启用
*/
status?: number;
/**
* 更
*/
channel?: string;
/**
* 更新app端
* butler 管家端
* resident 业主端
*/
appChannel: string;
}

View File

@@ -1,10 +1,9 @@
import request from '@/utils/request'; import request from '@/utils/request';
import { AxiosPromise } from 'axios';
/** /**
* 查询小区概况 * 查询小区概况
* @param query
* @returns {*} * @returns {*}
* @param villageId
*/ */
export const workSpaceTotalListApi = ( export const workSpaceTotalListApi = (
villageId: string villageId: string
@@ -26,8 +25,8 @@ export const workSpaceTotalListApi = (
}; };
/** /**
* 查询近一周报修趋势 * 查询近一周报修趋势
* @param query
* @returns {*} * @returns {*}
* @param villageId
*/ */
export const workSpaceRepairTrendListApi = ( export const workSpaceRepairTrendListApi = (
villageId: string villageId: string
@@ -47,12 +46,11 @@ export const workSpaceRepairTrendListApi = (
}; };
/** /**
* 查询近一周收入趋势 * 查询近一周收入趋势
* @param query
* @returns {*} * @returns {*}
* @param villageId
*/ */
export const workSpaceIncomeTrendListApi = ( export const workSpaceIncomeTrendListApi = (
villageId: string, villageId: string
type: number
): Promise< ): Promise<
{ {
date: string; date: string;
@@ -63,16 +61,64 @@ export const workSpaceIncomeTrendListApi = (
url: '/workSpace/last7DaysIncomeTrend', url: '/workSpace/last7DaysIncomeTrend',
method: 'GET', method: 'GET',
params: { params: {
villageId: villageId, villageId: villageId
type: type
} }
}); });
}; };
/** /**
* 查询当日天气 * 收费率统计
* @param query
* @returns {*} * @returns {*}
*/ */
export const paymentRateApi = (
startDate: string,
endDate: string
): Promise<{
data: {
'receivableAmount': string;
'receivablePercent': string;
'receivedAmount': string;
'receivedPercent': string;
'unpaidAmount': string;
'unpaidPercent': string;
};
}> => {
return request({
url: '/workSpace/paymentRate',
method: 'GET',
params: {
startDate: startDate,
endDate: endDate
}
});
};
/**
* 查询近一周支出趋势
* @returns {*}
* @param villageId
*/
export const workSpaceOutcomeTrendListApi = (
villageId: string
): Promise<
{
date: string;
expenditure: string;
}[]
> => {
return request({
url: '/workSpace/last7DaysExpenditureTrend',
method: 'GET',
params: {
villageId: villageId
}
});
};
/**
* 查询当日天气
* @returns {*}
* @param city
*/
export const workSpaceWeatherApi = (city: string): Promise<reponseType> => { export const workSpaceWeatherApi = (city: string): Promise<reponseType> => {
const url = 'https://uapis.cn/api/v1/misc/weather?city=' + city + '&lang=zh'; const url = 'https://uapis.cn/api/v1/misc/weather?city=' + city + '&lang=zh';
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
@@ -287,20 +333,20 @@ type LifeIndices = {
/** /**
* 查询 快捷入口 * 查询 快捷入口
* @param query
* @returns {*} * @returns {*}
*/ */
export const getQuicklyshortcut = () => { export const getQuicklyshortcut = (query?: {}) => {
return request({ return request({
url: '/workSpace/shortcut/list', url: '/workSpace/shortcut/list',
method: 'GET' method: 'GET',
params: query
}); });
}; };
/** /**
* 添加 快捷入口 * 添加 快捷入口
* @param query
* @returns {*} * @returns {*}
* @param data
*/ */
export const addQuicklyshortcut = (data) => { export const addQuicklyshortcut = (data) => {
return request({ return request({
@@ -312,8 +358,8 @@ export const addQuicklyshortcut = (data) => {
/** /**
* 删除 快捷入口 * 删除 快捷入口
* @param query
* @returns {*} * @returns {*}
* @param id
*/ */
export const delQuicklyshortcut = (id) => { export const delQuicklyshortcut = (id) => {
return request({ return request({

View File

@@ -33,7 +33,6 @@ export interface SpelVO {
* 备注 * 备注
*/ */
remark?: string; remark?: string;
} }
export interface SpelForm extends BaseEntity { export interface SpelForm extends BaseEntity {
@@ -71,11 +70,9 @@ export interface SpelForm extends BaseEntity {
* 备注 * 备注
*/ */
remark?: string; remark?: string;
} }
export interface SpelQuery extends PageQuery { export interface SpelQuery extends PageQuery {
/** /**
* 组件名称 * 组件名称
*/ */
@@ -106,6 +103,3 @@ export interface SpelQuery extends PageQuery {
*/ */
params?: any; params?: any;
} }

View File

@@ -181,8 +181,8 @@ export const currentTaskAllUser = (taskId: string | number) => {
/** /**
* 获取下一节点写 * 获取下一节点写
* @param data参数 * @param data
* @returns * @param data
*/ */
export const getNextNodeList = (data: any): any => { export const getNextNodeList = (data: any): any => {
return request({ return request({
@@ -194,8 +194,8 @@ export const getNextNodeList = (data: any): any => {
/** /**
* 催办任务 * 催办任务
* @param data参数 * @param data
* @returns * @param data
*/ */
export const urgeTask = (data: any): any => { export const urgeTask = (data: any): any => {
return request({ return request({

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1780369458112" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9273" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M271.958852 64.00158c-115.276539 0-208.874831 93.670541-208.874831 208.950693C63.084021 388.337184 156.628127 481.899353 272.016651 481.899353h144.894925c35.347715 0 63.918494-28.762239 63.918495-64.106342V272.894474c-0.01445-115.36685-93.500757-208.892893-208.871219-208.892894zM416.875452 417.793011v0.025288a0.932009 0.932009 0 0 1 0.043349 0.144497H272.016651a145.241719 145.241719 0 1 1 144.858801-145.06471v144.894925zM416.897127 542.227083H272.016651c-115.370462 0-208.896506 93.515206-208.896506 208.885668 0 115.276539 93.562168 208.892893 208.856769 208.892893 115.370462 0 208.856769-93.529656 208.856769-208.900118v-144.894925c-0.018062-35.351327-28.592454-63.983518-63.936556-63.983518z m-0.021675 208.874831a144.721528 144.721528 0 0 1-88.483079 133.504905C310.564987 892.145979 291.59607 895.884854 272.016651 895.884854c-19.564969 0-38.519436-3.738874-56.354047-11.28526A144.880476 144.880476 0 0 1 272.016651 606.167252h144.920212a0.093923 0.093923 0 0 0-0.043349 0v144.920212zM751.101914 542.227083h-144.894925A63.965456 63.965456 0 0 0 542.227083 606.206989v144.894925c0 115.370462 93.515206 208.896506 208.885668 208.896506 115.276539 0 208.892893-93.60913 208.892893-208.885669-0.003612-115.370462-93.533269-208.885668-208.90373-208.885668zM884.686293 807.448736a144.927437 144.927437 0 0 1-278.519041-56.354047V606.167252h144.920212A144.996074 144.996074 0 0 1 884.686293 807.448736zM606.206989 481.899353h144.894925c115.370462 0 208.896506-93.562168 208.896506-208.950693 0-115.276539-93.60913-208.921793-208.885669-208.921792-115.370462 0-208.885668 93.497144-208.885668 208.867606v144.894925c0 35.347715 28.632191 64.109954 63.979906 64.109954z m-0.039737-209.004879A144.949112 144.949112 0 1 1 751.101914 417.959184H606.167252a0.520191 0.520191 0 0 1 0-0.144498V272.894474z" fill="" p-id="9274"></path></svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1784617479089" class="icon" viewBox="0 0 1057 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1942" xmlns:xlink="http://www.w3.org/1999/xlink" width="206.4453125" height="200"><path d="M811.80137 607.92511a170.673929 170.673929 0 1 0 170.761074 170.695715 170.870006 170.870006 0 0 0-170.673929-170.673929m0-74.661674A245.357389 245.357389 0 1 1 566.443981 778.620825a245.357389 245.357389 0 0 1 245.357389-245.357389z" p-id="1943" fill="#2c2c2c"></path><path d="M873.718055 889.447768a251.413982 251.413982 0 0 1-3.442237-7.973788c-1.568614-3.616527-2.984724-6.971618-4.466193-10.348496a1687.218757 1687.218757 0 0 1-132.787541 13.529297l-4.771201 0.326794-5.816944-31.067273 4.553338-1.394324c10.32671-3.355091 30.195821-24.24816 66.666099-104.835709l2.047913-4.553338 32.309094 11.132802-2.592571 5.555509a669.209991 669.209991 0 0 1-51.08889 90.60925c26.535722-2.178631 52.505-4.945492 77.297817-8.540232a388.340922 388.340922 0 0 0-20.413769-34.967023l-3.921536-5.882302 30.50083-10.413855 2.178631 3.42045a501.455427 501.455427 0 0 1 44.378707 81.611506l2.178631 4.945492-30.740479 13.856091z m26.513935-91.502489a233.919578 233.919578 0 0 1-72.766265-114.792051l-1.263606-4.139399 28.627207-16.274371 2.047913 6.535892a209.802136 209.802136 0 0 0 66.361091 102.047062l4.204758 3.59474-23.137058 26.535722z m-204.050551-19.607676l4.357261-4.139399a236.686439 236.686439 0 0 0 61.655249-103.049232l1.786477-5.555508 30.91477 12.265691-1.633973 4.858346a277.470406 277.470406 0 0 1-67.537552 114.639548l-3.59474 3.442236z" p-id="1944" fill="#2c2c2c"></path><path d="M515.267946 643.240713l142.090294 13.311434-13.33322-140.151313 13.33322-140.020595-145.968257 13.071784-157.013914-12.810348 13.485724 135.075103-13.071784 144.138207z m-81.872942-188.887281l78.299988 6.383388 66.949321-6.034807-5.882303 61.698821 5.860517 61.524531-62.83171-5.882303-82.787966 6.535892 6.100166-67.145398z" p-id="1945" fill="#2c2c2c"></path><path d="M589.297817 900.863793a408.798264 408.798264 0 1 1 312.764223-317.317561 45.903749 45.903749 0 1 0 89.933875 18.365857 500.583975 500.583975 0 1 0-383.025063 388.602357 45.903749 45.903749 0 1 0-19.607676-89.650653z" p-id="1946" fill="#2c2c2c"></path></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1785922870272" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5271" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M672 364.8 576 364.8l38.4-38.4c12.8-12.8 12.8-25.6 0-38.4-12.8-12.8-25.6-12.8-38.4 0L512 358.4 441.6 288c-12.8-12.8-25.6-12.8-38.4 0-12.8 12.8-12.8 25.6 0 38.4L448 364.8 358.4 364.8c-38.4 0-64 32-64 64 0 32 19.2 57.6 51.2 64l0 211.2c0 12.8 12.8 25.6 25.6 25.6l300.8 0c12.8 0 25.6-12.8 25.6-25.6L697.6 499.2c25.6-6.4 51.2-32 51.2-64C742.4 396.8 710.4 364.8 672 364.8L672 364.8zM358.4 448C345.6 448 339.2 441.6 339.2 435.2c0-6.4 6.4-19.2 19.2-19.2l134.4 0L492.8 448 358.4 448 358.4 448zM640 684.8 390.4 684.8 390.4 499.2l102.4 0 0 108.8c0 12.8 12.8 25.6 25.6 25.6 12.8 0 25.6-12.8 25.6-25.6L544 499.2 640 499.2 640 684.8 640 684.8zM672 448 544 448 544 416l134.4 0c6.4 0 19.2 6.4 19.2 19.2C691.2 441.6 684.8 448 672 448L672 448zM512 0C230.4 0 0 230.4 0 512s230.4 512 512 512c281.6 0 512-230.4 512-512S793.6 0 512 0L512 0zM505.6 985.6c-262.4 0-473.6-211.2-473.6-473.6 0-262.4 211.2-473.6 473.6-473.6 262.4 0 473.6 211.2 473.6 473.6C979.2 774.4 768 985.6 505.6 985.6L505.6 985.6zM505.6 985.6" fill="#272636" p-id="5272"></path></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1785923003615" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7309" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M112.127 284.09a390.766 200.815 0 1 0 799.746 0 390.766 200.815 0 1 0-799.746 0z" p-id="7310"></path><path d="M512 551.409c-163.335 0-303.792-50.328-365.87-122.452-21.857 25.394-34.003 53.489-34.003 83.043 0 113.492 179.03 205.495 399.873 205.495S911.873 625.492 911.873 512c0-29.554-12.145-57.649-34.003-83.043C815.792 501.08 675.335 551.409 512 551.409z" p-id="7311"></path><path d="M512 784.985c-165.467 0-307.456-51.648-368.263-125.285-20.35 24.644-31.61 51.752-31.61 80.21 0 113.492 179.03 205.495 399.873 205.495s399.873-92.003 399.873-205.495c0-28.46-11.26-55.566-31.61-80.21C819.456 733.337 677.467 784.985 512 784.985z" p-id="7312"></path></svg>

After

Width:  |  Height:  |  Size: 987 B

Some files were not shown because too many files have changed in this diff Show More