web
2025-03-18 5eb6903bde0b9be730b35fc116eabf808f8f64e0
fix:简化项目模板&剔除无用部分
已修改18个文件
已删除118个文件
已添加3个文件
已重命名2个文件
21432 ■■■■■ 文件已修改
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/alarmApi/alarmHistory.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/alarmApi/alarmScheme.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/archivesApi/index.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/area/index.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/alarmDefinition/index.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/bussinessApi/index.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/companySetting/index.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/defaultAmountSetting/index.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/invoiceTitle/index.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/userClassify/index.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/waterOtherFee/index.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/configuration/waterPrice/index.js 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/examine/plan/index.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/examine/record/index.js 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/facility/collector.js 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/facility/parameter.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/facility/record.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/facility/supplier.js 补丁 | 查看 | 原始文档 | blame | 历史
src/api/facility/valveDevice.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/billRecord/index.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/invoice/index.js 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/payRecord/index.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/payable/index.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/recharge/index.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/tradeRecord/index.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/userBankAccount/index.js 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/userCapitalChange/index.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/financial/waterMeterTask/index.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/knowledgeApi/index.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/maintain/plan/index.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/maintain/record/index.js 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/meterReadingApi/meterReadingRecord.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/screen/alarm/index.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/screen/dma/index.js 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/screen/overview/index.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/screen/pupm/index.js 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/screen/revenue/index.js 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/screen/statistics/index.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/waterMeterApi/index.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/waterMeterApi/meterOperation.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/waterMeterApi/useWaterMeter.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/waterMeterApi/verification.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/waterMeterApi/waterModel.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/meterConstructionApi/index.js 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterAlterationApi/index.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterApplyApi/index.js 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterChangeApi/index.js 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterCloseAccountApi/index.js 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterMaintainRecordsApi/index.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterRepairApi/index.js 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/workOrderManage/waterMeterStopAccountApi/index.js 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/images/login_icon.png 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/day.vue 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/hour.vue 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/index.vue 310 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/min.vue 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/month.vue 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/result.vue 540 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/second.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/week.vue 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Crontab/year.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/RightToolbar/index.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/UploadIcons/index.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/iFrame/index.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Navbar.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/Sidebar/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/TagsView/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/permission.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/plugins/download.js 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/screen/flow.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/modules/tagsView.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/color.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/methods.js 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/ruoyi.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/textConst.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/validate.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarm/alarmDefinition/index.vue 214 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarm/alarmHistory/index.vue 149 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/alarm/alarmScheme/index.vue 407 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/companySetting/index.vue 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/defaultAmountSetting/index.vue 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/invoiceTitle/index.vue 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/salePlace/index.vue 406 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/userClassify/index.vue 217 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/waterOtherFee/index.vue 244 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/configuration/waterPrice/index.vue 359 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/customer/archives/index.vue 252 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/document/knowledge/index.vue 267 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/area/index.vue 396 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/collector/index.vue 263 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/facilityList/index.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/facilityParameter/index.vue 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/facilityType/index.vue 384 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/handleRecord/index.vue 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/supplier/index.vue 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facility/valveDevice/index.vue 445 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facilityExamine/facilityExaminePlan/index.vue 367 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facilityExamine/facilityExamineRecord/index.vue 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facilityMaintain/facilityMaintainPlan/index.vue 349 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facilityMaintain/facilityMaintainRecord/index.vue 119 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/billRecord/index.vue 221 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/invoice/index.vue 323 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/payRecord/index.vue 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/payable/index.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/recharge/index.vue 248 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/tradeRecord/index.vue 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/userBankAccount/index.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/userCapitalChange/index.vue 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financial/waterMeterTask/index.vue 167 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/linkage/valveLlinkage/index.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/login.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/meterReading/manualMeterReading/index.vue 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/meterReading/meterReadingMonthRecord/index.vue 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/meterReading/meterReadingRecord/index.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/point/ecology/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/views/point/index.vue 389 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/redirect/index.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/dict/index.vue 665 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/menu/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/role/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userCenter.vue 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/waterMeter/meterOperation/index.vue 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/waterMeter/supplier/index.vue 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/waterMeter/useWaterMeter/index.vue 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/waterMeter/verification/index.vue 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/waterMeter/waterMeterInfo/index.vue 298 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/waterMeter/waterModel/index.vue 393 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/accountApply/index.vue 829 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/meterConstruction/index.vue 449 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/waterMeterAlteration/index.vue 873 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/waterMeterChange/index.vue 541 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/waterMeterCloseAccount/index.vue 516 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/waterMeterMaintainRecords/index.vue 438 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/waterMeterRepair/index.vue 527 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/waterMeterStopAccount/index.vue 447 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/workOrderManage/workOrderList/index.vue 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -6,7 +6,7 @@
VITE_APP_ENV = 'development'
# 金川接口
  #  VITE_APP_PUBLIC_REQUEST_API = 'http://113.250.189.120:8030'
  # VITE_APP_PUBLIC_REQUEST_API = 'http://113.250.189.120:8030'
  # VITE_APP_PUBLIC_REQUEST_API = 'http://113.250.189.120:8036'
#后端本地
    VITE_APP_PUBLIC_REQUEST_API = 'http://192.168.0.200:8036'
src/api/alarmApi/alarmHistory.js
文件已删除
src/api/alarmApi/alarmScheme.js
文件已删除
src/api/archivesApi/index.js
文件已删除
src/api/area/index.js
文件已删除
src/api/configuration/alarmDefinition/index.js
文件已删除
src/api/configuration/bussinessApi/index.js
文件已删除
src/api/configuration/companySetting/index.js
文件已删除
src/api/configuration/defaultAmountSetting/index.js
文件已删除
src/api/configuration/invoiceTitle/index.js
文件已删除
src/api/configuration/userClassify/index.js
文件已删除
src/api/configuration/waterOtherFee/index.js
文件已删除
src/api/configuration/waterPrice/index.js
文件已删除
src/api/examine/plan/index.js
文件已删除
src/api/examine/record/index.js
文件已删除
src/api/facility/collector.js
文件已删除
src/api/facility/parameter.js
文件名从 src/api/configuration/facilityParameter/index.js 修改
@@ -7,7 +7,7 @@
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import { publicRequest } from '@/utils/request'
import { publicRequest } from '@/utils/request.js'
//公司配置信息
export default function waterFacilityParameter() {
src/api/facility/record.js
文件已删除
src/api/facility/supplier.js
src/api/facility/valveDevice.js
文件已删除
src/api/financial/billRecord/index.js
文件已删除
src/api/financial/invoice/index.js
文件已删除
src/api/financial/payRecord/index.js
文件已删除
src/api/financial/payable/index.js
文件已删除
src/api/financial/recharge/index.js
文件已删除
src/api/financial/tradeRecord/index.js
文件已删除
src/api/financial/userBankAccount/index.js
文件已删除
src/api/financial/userCapitalChange/index.js
文件已删除
src/api/financial/waterMeterTask/index.js
文件已删除
src/api/knowledgeApi/index.js
文件已删除
src/api/maintain/plan/index.js
文件已删除
src/api/maintain/record/index.js
文件已删除
src/api/meterReadingApi/meterReadingRecord.js
文件已删除
src/api/screen/alarm/index.js
文件已删除
src/api/screen/dma/index.js
文件已删除
src/api/screen/overview/index.js
文件已删除
src/api/screen/pupm/index.js
文件已删除
src/api/screen/revenue/index.js
文件已删除
src/api/screen/statistics/index.js
文件已删除
src/api/waterMeterApi/index.js
文件已删除
src/api/waterMeterApi/meterOperation.js
文件已删除
src/api/waterMeterApi/useWaterMeter.js
文件已删除
src/api/waterMeterApi/verification.js
文件已删除
src/api/waterMeterApi/waterModel.js
文件已删除
src/api/workOrderManage/meterConstructionApi/index.js
文件已删除
src/api/workOrderManage/waterMeterAlterationApi/index.js
文件已删除
src/api/workOrderManage/waterMeterApplyApi/index.js
文件已删除
src/api/workOrderManage/waterMeterChangeApi/index.js
文件已删除
src/api/workOrderManage/waterMeterCloseAccountApi/index.js
文件已删除
src/api/workOrderManage/waterMeterMaintainRecordsApi/index.js
文件已删除
src/api/workOrderManage/waterMeterRepairApi/index.js
文件已删除
src/api/workOrderManage/waterMeterStopAccountApi/index.js
文件已删除
src/assets/images/login_icon.png
src/components/Crontab/day.vue
文件已删除
src/components/Crontab/hour.vue
文件已删除
src/components/Crontab/index.vue
文件已删除
src/components/Crontab/min.vue
文件已删除
src/components/Crontab/month.vue
文件已删除
src/components/Crontab/result.vue
文件已删除
src/components/Crontab/second.vue
文件已删除
src/components/Crontab/week.vue
文件已删除
src/components/Crontab/year.vue
文件已删除
src/components/RightToolbar/index.vue
对比新文件
@@ -0,0 +1,134 @@
<template>
  <div class="top-right-btn" :style="style">
    <el-row>
      <el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top" v-if="search">
        <el-button circle icon="Search" @click="toggleSearch()" />
      </el-tooltip>
      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
        <el-button circle icon="Refresh" @click="refresh()" />
      </el-tooltip>
      <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
        <el-button circle icon="Menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
        <el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
          <el-button circle icon="Menu" />
          <template #dropdown>
            <el-dropdown-menu>
              <template v-for="item in columns" :key="item.key">
                <el-dropdown-item>
                  <el-checkbox :checked="item.visible" @change="checkboxChange($event, item.label)" :label="item.label" />
                </el-dropdown-item>
              </template>
            </el-dropdown-menu>
          </template>
        </el-dropdown>
      </el-tooltip>
    </el-row>
    <el-dialog :title="title" v-model="open" append-to-body>
      <el-transfer
        :titles="['显示', '隐藏']"
        v-model="value"
        :data="columns"
        @change="dataChange"
      ></el-transfer>
    </el-dialog>
  </div>
</template>
<script setup>
const props = defineProps({
  /* 是否显示检索条件 */
  showSearch: {
    type: Boolean,
    default: true,
  },
  /* 显隐列信息 */
  columns: {
    type: Array,
  },
  /* 是否显示检索图标 */
  search: {
    type: Boolean,
    default: true,
  },
  /* 显隐列类型(transfer穿梭框、checkbox复选框) */
  showColumnsType: {
    type: String,
    default: "checkbox",
  },
  /* 右外边距 */
  gutter: {
    type: Number,
    default: 10,
  },
})
const emits = defineEmits(['update:showSearch', 'queryTable']);
// 显隐数据
const value = ref([]);
// 弹出层标题
const title = ref("显示/隐藏");
// 是否显示弹出层
const open = ref(false);
const style = computed(() => {
  const ret = {};
  if (props.gutter) {
    ret.marginRight = `${props.gutter / 2}px`;
  }
  return ret;
});
// 搜索
function toggleSearch() {
  emits("update:showSearch", !props.showSearch);
}
// 刷新
function refresh() {
  emits("queryTable");
}
// 右侧列表元素变化
function dataChange(data) {
  for (let item in props.columns) {
    const key = props.columns[item].key;
    props.columns[item].visible = !data.includes(key);
  }
}
// 打开显隐列dialog
function showColumn() {
  open.value = true;
}
if (props.showColumnsType == 'transfer') {
  // 显隐列初始默认隐藏列
  for (let item in props.columns) {
    if (props.columns[item].visible === false) {
      value.value.push(parseInt(item));
    }
  }
}
// 勾选
function checkboxChange(event, label) {
  props.columns.filter(item => item.label == label)[0].visible = event;
}
</script>
<style lang='scss' scoped>
:deep(.el-transfer__button) {
  border-radius: 50%;
  display: block;
  margin-left: 0px;
}
:deep(.el-transfer__button:first-child) {
  margin-bottom: 10px;
}
:deep(.el-dropdown-menu__item) {
  line-height: 30px;
  padding: 0 17px;
}
</style>
src/components/UploadIcons/index.vue
对比新文件
@@ -0,0 +1,105 @@
<template>
  <el-upload
    v-model:file-list="fileList"
    list-type="picture-card"
    :on-preview="handlePictureCardPreview"
    :on-remove="handleRemove"
    :on-exceed="handleExceed"
    :http-request="uploadImg"
    :limit="props.limit"
    :disabled="props.disabled"
  >
    <el-icon><Plus /></el-icon>
  </el-upload>
  <el-dialog v-model="dialogVisible">
    <img w-full :src="dialogImageUrl" alt="Preview Image" />
  </el-dialog>
</template>
<script  setup>
  import { ref } from 'vue'
  import { Plus } from '@element-plus/icons-vue'
  import { ElMessage } from 'element-plus'
  import { upload } from '@/api/basicApi/index'
  // import type { UploadProps } from 'element-plus'
  import { getImage, setImage } from '@/utils/validate.js'
  const props = defineProps({
      imageList: {
          type: String,
          default: '',
      },
      limit: {
          type: Number,
      },
      disabled:{
          type: Boolean,
          default:false,
      },
  })
  const fileList = ref([])
  const file = ref([])
  const emit = defineEmits(['uploadData'])
  //   const imageUrl = ref('')
  const dialogImageUrl = ref('')
  const dialogVisible = ref(false)
  const handleRemove = (_, uploadFiles) => {
    file.value = uploadFiles.map((item)=>{return item.url})
    emit('uploadData', file.value)
  }
  const handlePictureCardPreview  = (uploadFile) => {
    dialogImageUrl.value = uploadFile.url
    dialogVisible.value = true
  }
  //超出限制
  const handleExceed = () => {
    ElMessage({ message: `只能上传${props.limit}张图片`, type: 'error' })
  }
  //上传图片调用接口
  const uploadImg = async (params) => {
      //建立表单,请求参数传表单形式
      let form = new FormData();
      form.append("file1", params.file);
      form.append("fileId", params.file.lastModified);
      form.append("path", 'operation');
        //发出上传文件请求
      let res = await upload().uploadFile(form)
      if(res.code == 200){
          //返回的图片网络地址传给form
          ElMessage({ message: '上传图片成功', type: 'success' })
          file.value.push(res.data.newFileName)
          emit('uploadData', setImage(file.value))
      }
  }
  //监听props.image
  watch(props, (newvalue)=>{
    let newList = ''
    if(newvalue.imageList!='' && newvalue.imageList != null){
      newList = getImage(newvalue.imageList).join(',')
    }
    if( newList != ''){
      //判断是否加上PREURL前缀
      if(file.value.join(',') != newList){
        let list = []
        newList.split(',').forEach((item)=>{
          list.push({
            url: item
          })
        })
        fileList.value = list
        console.log('回显',fileList.value)
        file.value = newList.split(',')
      }
    }else{
      fileList.value = [] //父组件image从有值到空变化,也要清空一遍组件中的值
      file.value = []
    }
  },{immediate:true})
</script>
src/components/iFrame/index.vue
文件已删除
src/layout/components/Navbar.vue
@@ -16,12 +16,12 @@
          </div>
          <template #dropdown>
            <el-dropdown-menu>
              <router-link to="/userCenter">
                <el-dropdown-item >个人中心</el-dropdown-item>
              </router-link>
              <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">
                <span>布局设置</span>
              </el-dropdown-item>
<!--              <router-link to="/userCenter">-->
<!--                <el-dropdown-item >个人中心</el-dropdown-item>-->
<!--              </router-link>-->
<!--              <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">-->
<!--                <span>布局设置</span>-->
<!--              </el-dropdown-item>-->
              <el-dropdown-item divided command="logout">
                <span>退出登录</span>
              </el-dropdown-item>
src/layout/components/Sidebar/index.vue
@@ -51,12 +51,6 @@
          :item="route"
          :base-path="route.path"
        />
      <app-link :to="'/userCenter'">
        <el-menu-item :index="'/userCenter'" >
          <svg-icon :icon-class="'PhUserCircleFill'" />
          <template #title><span class="menu-title" :title="'个人中心'">个人中心</span></template>
        </el-menu-item>
      </app-link>
      </el-menu>
    </el-scrollbar>
  </div>
src/layout/components/TagsView/index.vue
@@ -61,7 +61,6 @@
const router = useRouter();
const visitedViews = computed(() => {
  console.log('visitedViews',useTagsViewStore().visitedViews)
  return useTagsViewStore().visitedViews
});
const routes = computed(() => usePermissionStore().routes);
@@ -143,7 +142,6 @@
}
//添加tag
function addTags() {
  console.log('11111',route)
  const { name } = route
  if (name) {
    useTagsViewStore().addView(route)
src/main.js
@@ -23,7 +23,6 @@
// 注册指令
import plugins from './plugins' // plugins
// import { download } from '@/utils/request'
// svg图标
import 'virtual:svg-icons-register'
@@ -39,6 +38,10 @@
import Pagination from '@/components/Pagination'
// 自定义树选择组件
import TreeSelect from '@/components/TreeSelect'
// 自定义表格工具组件
import RightToolbar from '@/components/RightToolbar'
//多张图片上传
import UploadIcons from "@/components/UploadIcons"
//数据持久化
@@ -61,6 +64,8 @@
// 全局组件挂载
app.component('Pagination', Pagination)
app.component('TreeSelect', TreeSelect)
app.component('RightToolbar', RightToolbar)
app.component('UploadIcons', UploadIcons)
import { addActiveRoute } from '@/utils/index'
src/permission.js
@@ -7,12 +7,10 @@
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
import router from './router'
import { ElMessage } from 'element-plus'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
import useSettingsStore from '@/store/modules/settings'
import usePermissionStore from '@/store/modules/permission'
NProgress.configure({ showSpinner: false });
@@ -23,7 +21,6 @@
  NProgress.start()
  if (getToken()) {
    to.meta.title && useSettingsStore().setTitle(to.meta.title)
    console.log(20,to.meta.title)
    /* has token*/
    if (to.path === '/login') {
      next({ path: '/overview' })
src/plugins/download.js
文件已删除
src/screen/flow.vue
@@ -23,7 +23,6 @@
    {name:'设备管理',url:''},
    {name:'报警管理',url:''},
    {name:'报表管理',url:''},
    {name:'系统管理',url:'/user'},
])
const navTo = (item) =>{
    router.push(item.url)
src/store/modules/tagsView.js
@@ -21,7 +21,6 @@
      },
      addVisitedView(view) {
        if (this.visitedViews.some(v => v.path === view.path)) return
        console.log('view',view,view.meta.title)
        this.visitedViews.push(
          Object.assign({}, view, {
            title: view.meta.title || 'no-name'
src/utils/color.js
文件已删除
src/utils/index.js
@@ -14,12 +14,10 @@
      let routesData = JSON.parse(JSON.stringify(menuStore.sidebarRouters));
      //定义路径模式
      const views = import.meta.glob('../views/**/*/index.vue');
      // console.log('routesData',routesData)
      //组装成router需要的格式(加上component和meta)
      routesData = setActiveRoute(routesData, views) //设置路由
      // console.log('组装完成',routesData)
      routesData.forEach((item) => {
          console.log(222222,router)
          //路由数据解析完成,开始添加到本地路由表中
         router.addRoute('/', item);
          // console.log('item',item)
src/utils/methods.js
文件已删除
src/utils/ruoyi.js
@@ -5,12 +5,6 @@
 * Copyright (c) 2019 ruoyi
 */
//加载动态图片
export const getImageUrl = (name) =>{
  return new URL(`../assets/images/${name}`, import.meta.url).href
}
// 日期格式化
export function parseTime(time, pattern) {
  if (arguments.length === 0 || !time) {
src/utils/textConst.js
文件已删除
src/utils/validate.js
@@ -91,3 +91,26 @@
  }
  return Array.isArray(arg)
}
//设置图片路径
import { PREURL } from '@/config/index'
export const getImage = (imgList) =>{
  if(imgList != null){
    return imgList.split(',').map((image) => {
      if(image.indexOf('http') == -1 && image != ''){
        return PREURL + image
      }else {
        return image
      }
    })
  }
}
export const setImage = (imgList) =>{
  return imgList.map((image) => {
    if(image.indexOf(PREURL) != -1){
      return image.replace(PREURL,'')
    }else {
      return image
    }
  })
}
src/views/alarm/alarmDefinition/index.vue
文件已删除
src/views/alarm/alarmHistory/index.vue
文件已删除
src/views/alarm/alarmScheme/index.vue
文件已删除
src/views/configuration/companySetting/index.vue
文件已删除
src/views/configuration/defaultAmountSetting/index.vue
文件已删除
src/views/configuration/invoiceTitle/index.vue
文件已删除
src/views/configuration/salePlace/index.vue
文件已删除
src/views/configuration/userClassify/index.vue
文件已删除
src/views/configuration/waterOtherFee/index.vue
文件已删除
src/views/configuration/waterPrice/index.vue
文件已删除
src/views/customer/archives/index.vue
文件已删除
src/views/document/knowledge/index.vue
文件已删除
src/views/facility/area/index.vue
文件已删除
src/views/facility/collector/index.vue
文件已删除
src/views/facility/facilityList/index.vue
@@ -1,10 +1,10 @@
<script setup>
import facilityApi from "@/api/facility/index";
import pointApi from "@/api/facility/point";
import supplierApi from "@/api/waterMeterApi/supplier.js";
import supplierApi from "@/api/facility/supplier.js";
import facilityTypeApi from "@/api/facility/facilityType.js";
import commonParameters from "@/api/configuration/commonParameters/index.js";
import waterFacilityParameter from "@/api/configuration/facilityParameter/index.js";
import waterFacilityParameter from "@/api/facility/parameter.js";
import {PREURL} from '@/config/index'
import setPostParams from "@/utils/searchParams.js";
const route = useRoute();
@@ -141,6 +141,7 @@
async function handleAdd() {
    reset();
    open.value = true;
    isDetail.value = false;
    title.value = "新增";
    console.log('form',form.value)
}
@@ -156,6 +157,7 @@
    });
    form.value.id = row.id
    open.value = true;
    isDetail.value = true;
    title.value = "修改";
}
@@ -179,6 +181,7 @@
const openParamForm = ref(false)
const open = ref(false);
const title = ref("");
const isDetail = ref(false);
const multipleSelection = ref([])
let  tableParamHeader = ref({
    name: '参数名称',
src/views/facility/facilityParameter/index.vue
文件已删除
src/views/facility/facilityType/index.vue
@@ -7,109 +7,113 @@
 * @Description: 设备类型
-->
<script setup>
import  facilityTypeApi from "@/api/facility/facilityType";
import facilityTypeApi from "@/api/facility/facilityType";
import setPostParams from "@/utils/searchParams.js";
const route = useRoute();
const { proxy } = getCurrentInstance();
const {proxy} = getCurrentInstance();
/**
 * 搜索相关
 */
 /** 搜索按钮操作 */
 function handleQuery() {
   getList({keywords:searchParams.value.name})
 }
 /** 重置按钮操作 */
 function resetQuery() {
   proxy.resetForm("queryRef");
   handleQuery();
 }
/** 搜索按钮操作 */
function handleQuery() {
    getList({keywords: searchParams.value.name})
}
 /**
  *  Table表格权限数据列表相关
  */
/** 重置按钮操作 */
function resetQuery() {
    proxy.resetForm("queryRef");
    handleQuery();
}
/**
 *  Table表格权限数据列表相关
 */
const pageParam = ref({
    total:0,
    limit:0,
    page:1,
    total: 0,
    limit: 0,
    page: 1,
})
const tableData = ref([]);
const inpTip= '请输入',selTip = '请选择';
let  tableHeader = ref({
        name: '类型名称',
        code: '类型编号',
        facilityType: '设备类型',
        createTimeView:'创建时间'
   })
 /** 获取权限列表 */
 async function getList(val) {
      loading.value = true;
     let postParam = setPostParams(val)
      await facilityTypeApi().search(postParam).then((res) =>{
const inpTip = '请输入', selTip = '请选择';
let tableHeader = ref({
    name: '类型名称',
    code: '类型编号',
    facilityType: '设备类型',
    createTimeView: '创建时间'
})
/** 获取权限列表 */
async function getList(val) {
    loading.value = true;
    let postParam = setPostParams(val)
    await facilityTypeApi().search(postParam).then((res) => {
        tableData.value = res.data.list
        pageParam.value.total = res.data.total
        pageParam.value.limit = res.data.limit
        pageParam.value.page = res.data.page
    })
    loading.value = false;
 }
  /**
  *  表单相关
  */
const  formLabel = ({
      name: '类型名称',
      code: '类型编号',
      createTimeView:'创建时间'
}
/**
 *  表单相关
 */
const formLabel = ({
    name: '类型名称',
    code: '类型编号',
    createTimeView: '创建时间'
})
 const  rules = ref({
    name: [{ required: true, message: `${inpTip+formLabel.name}`, trigger: "blur" }
const rules = ref({
    name: [{required: true, message: `${inpTip + formLabel.name}`, trigger: "blur"}
    ],
    code: [{ required: true, message: `${inpTip+formLabel.code}`, trigger: "blur" }],
    code: [{required: true, message: `${inpTip + formLabel.code}`, trigger: "blur"}],
});
const form = ref({});
const searchParams = ref({
    keywords: '',
});
 /** 新增按钮操作 */
 async function handleAdd() {
   reset();
   open.value = true;
   title.value = "新增";
 }
 /** 修改按钮操作 */
 async function handleUpdate(row) {
   reset();
   // form.value = Object.assign({},row)
   Object.keys(row).forEach(key => {  
      if (form.value.hasOwnProperty(key)) {  
         form.value[key] = row[key];  
      }  
   });
   form.value.id = row.id
   open.value = true;
   title.value = "修改";
 }
/** 新增按钮操作 */
async function handleAdd() {
    reset();
    open.value = true;
    title.value = "新增";
}
/** 修改按钮操作 */
async function handleUpdate(row) {
    reset();
    // form.value = Object.assign({},row)
    Object.keys(row).forEach(key => {
        if (form.value.hasOwnProperty(key)) {
            form.value[key] = row[key];
        }
    });
    form.value.id = row.id
    open.value = true;
    title.value = "修改";
}
/** 删除按钮操作 */
function handleDelete(row) {
  proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function() {
    return facilityTypeApi().remove(row.id);
  }).then(() => {
    getList();
    proxy.$modal.msgSuccess("删除成功");
  }).catch(() => {});
    proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () {
        return facilityTypeApi().remove(row.id);
    }).then(() => {
        getList();
        proxy.$modal.msgSuccess("删除成功");
    }).catch(() => {
    });
}
 /**
  *  新增/修改弹窗Form表单相关
  */
/**
 *  新增/修改弹窗Form表单相关
 */
const open = ref(false);
const loading = ref(false);
const title = ref("");
@@ -118,128 +122,136 @@
const uploadData = (data) => {
    form.value.headImg = data.newFileView
}
 /** 提交按钮 */
 function submitForm() {
   proxy.$refs["facilityTypeRef"].validate(valid => {
     if (valid) {
        form.value.contactPhone = Number(form.value.contactPhone)
       if (form.value.id != undefined) {
         facilityTypeApi().modify(form.value).then(res => {
           proxy.$modal.msgSuccess("修改成功");
           open.value = false;
           getList();
         }).catch(() =>{
            open.value = false;
            proxy.$modal.msgError("修改失败");
         });
       } else {
         facilityTypeApi().create(form.value).then(res => {
           proxy.$modal.msgSuccess("新增成功");
           open.value = false;
           getList();
         }).catch(() =>{
            open.value = false;
            proxy.$modal.msgError("新增失败");
         });;
       }
     }
   });
 }
 /** 取消按钮 */
 function cancel() {
   open.value = false;
   reset();
 }
 /** 表单重置 */
 function reset() {
   form.value = {
/** 提交按钮 */
function submitForm() {
    proxy.$refs["facilityTypeRef"].validate(valid => {
        if (valid) {
            form.value.contactPhone = Number(form.value.contactPhone)
            if (form.value.id != undefined) {
                facilityTypeApi().modify(form.value).then(res => {
                    proxy.$modal.msgSuccess("修改成功");
                    open.value = false;
                    getList();
                }).catch(() => {
                    open.value = false;
                    proxy.$modal.msgError("修改失败");
                });
            } else {
                facilityTypeApi().create(form.value).then(res => {
                    proxy.$modal.msgSuccess("新增成功");
                    open.value = false;
                    getList();
                }).catch(() => {
                    open.value = false;
                    proxy.$modal.msgError("新增失败");
                });
                ;
            }
        }
    });
}
/** 取消按钮 */
function cancel() {
    open.value = false;
    reset();
}
/** 表单重置 */
function reset() {
    form.value = {
        name: '',
        code: ''
   };
   proxy.resetForm("facilityTypeRef");
 }
 getList();
 </script>
 <template>
    };
    proxy.resetForm("facilityTypeRef");
}
getList();
</script>
<template>
    <div class="app-container">
       <el-form :model="searchParams" ref="queryRef" :inline="true">
          <el-form-item label="" prop="">
             <el-input
                v-model="searchParams.name"
                placeholder="请输入搜索信息"
                clearable
                style="width: 200px"
                @keyup.enter="handleQuery"
             />
          </el-form-item>
          <el-form-item>
             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
          </el-form-item>
       </el-form>
       <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
             <el-button
                type="primary"
                plain
                icon="Plus"
                @click="handleAdd"
             >新增</el-button>
          </el-col>
       </el-row>
       <!--表格及分页-->
       <el-table v-loading="loading" :data="tableData">
          <el-table-column
            v-for="(item, key, index) of tableHeader"
            :prop="key.toString()"
            :label="item"
            :key="index"
            align="center"
          >
            <template #default="scope">
                <div v-if="key.toString() == 'headImg'">
                    <img :src="scope.row.headImg" class="table-headImg"/>
                </div>
            </template>
        </el-table-column>
          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
             <template #default="scope">
                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
             </template>
          </el-table-column>
        <el-form :model="searchParams" ref="queryRef" :inline="true">
            <el-form-item label="" prop="">
                <el-input
                    v-model="searchParams.name"
                    placeholder="请输入搜索信息"
                    clearable
                    style="width: 200px"
                    @keyup.enter="handleQuery"
                />
            </el-form-item>
            <el-form-item>
                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
            </el-form-item>
        </el-form>
        <el-row :gutter="10" class="mb8">
            <el-col :span="1.5">
                <el-button
                    type="primary"
                    plain
                    icon="Plus"
                    @click="handleAdd"
                >新增
                </el-button>
            </el-col>
        </el-row>
        <!--表格及分页-->
        <el-table v-loading="loading" :data="tableData">
            <el-table-column
                v-for="(item, key, index) of tableHeader"
                :prop="key.toString()"
                :label="item"
                :key="index"
                align="center"
            >
                <template #default="scope">
                    <div v-if="key.toString() == 'headImg'">
                        <img :src="scope.row.headImg" class="table-headImg"/>
                    </div>
                </template>
            </el-table-column>
            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
                <template #default="scope">
                    <el-button link type="primary" icon="Edit" v-has="['update',route]"
                               @click="handleUpdate(scope.row)">修改
                    </el-button>
                    <el-button link type="primary" icon="Delete" v-has="['delete',route]"
                               @click="handleDelete(scope.row)">删除
                    </el-button>
                </template>
            </el-table-column>
        </el-table>
        <pagination
          :total="pageParam.total"
          v-model:page="pageParam.page"
          v-model:limit="pageParam.limit"
          :page-sizes="[10,20,30]"
          @pagination="getList"
            :total="pageParam.total"
            v-model:page="pageParam.page"
            v-model:limit="pageParam.limit"
            :page-sizes="[10,20,30]"
            @pagination="getList"
        />
       <!-- 添加/修改表单 -->
       <el-dialog :title="title" v-model="open" append-to-body center>
          <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto'>
            <el-form-item :label="formLabel.name" prop="name">
               <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
            </el-form-item>
            <el-form-item :label="formLabel.code" prop="code">
               <el-input v-model="form.code" :placeholder="inpTip+formLabel.code" />
            </el-form-item>
          </el-form>
          <template #footer>
             <div class="dialog-footer">
                <el-button type="primary" @click="submitForm">确 定</el-button>
                <el-button @click="cancel">取 消</el-button>
             </div>
          </template>
       </el-dialog>
        <!-- 添加/修改表单 -->
        <el-dialog :title="title" v-model="open" append-to-body center>
            <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto'>
                <el-form-item :label="formLabel.name" prop="name">
                    <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
                </el-form-item>
                <el-form-item :label="formLabel.code" prop="code">
                    <el-input v-model="form.code" :placeholder="inpTip+formLabel.code"/>
                </el-form-item>
            </el-form>
            <template #footer>
                <div class="dialog-footer">
                    <el-button type="primary" @click="submitForm">确 定</el-button>
                    <el-button @click="cancel">取 消</el-button>
                </div>
            </template>
        </el-dialog>
    </div>
 </template>
 <style lang="scss" scoped>
</template>
<style lang="scss" scoped>
</style>
 
src/views/facility/handleRecord/index.vue
文件已删除
src/views/facility/supplier/index.vue
文件已删除
src/views/facility/valveDevice/index.vue
文件已删除
src/views/facilityExamine/facilityExaminePlan/index.vue
文件已删除
src/views/facilityExamine/facilityExamineRecord/index.vue
文件已删除
src/views/facilityMaintain/facilityMaintainPlan/index.vue
文件已删除
src/views/facilityMaintain/facilityMaintainRecord/index.vue
文件已删除
src/views/financial/billRecord/index.vue
文件已删除
src/views/financial/invoice/index.vue
文件已删除
src/views/financial/payRecord/index.vue
文件已删除
src/views/financial/payable/index.vue
文件已删除
src/views/financial/recharge/index.vue
文件已删除
src/views/financial/tradeRecord/index.vue
文件已删除
src/views/financial/userBankAccount/index.vue
文件已删除
src/views/financial/userCapitalChange/index.vue
文件已删除
src/views/financial/waterMeterTask/index.vue
文件已删除
src/views/index.vue
文件已删除
src/views/linkage/valveLlinkage/index.vue
文件已删除
src/views/login.vue
@@ -64,7 +64,7 @@
                    </el-button>
                </el-form-item>
            </el-form>
            <img class="left-img" src="../assets/images/login/login_icon.png"/>
            <img class="left-img" src="../assets/images/login_icon.png"/>
        </div>
        <!--  底部  -->
        <div class="footer">
@@ -242,7 +242,7 @@
function getCookie() {
    const userName = Cookies.get("userName");
    const password = Cookies.get("password");
    const password = decrypt(Cookies.get("password"));
    const rememberMe = Cookies.get("rememberMe");
    loginForm.userName = userName === undefined ? loginForm.userName : userName;
    loginForm.password = password === undefined ? loginForm.password : password;
src/views/meterReading/manualMeterReading/index.vue
文件已删除
src/views/meterReading/meterReadingMonthRecord/index.vue
文件已删除
src/views/meterReading/meterReadingRecord/index.vue
文件已删除
src/views/point/ecology/index.vue
src/views/point/index.vue
文件已删除
src/views/redirect/index.vue
文件已删除
src/views/system/dict/index.vue
@@ -1,38 +1,38 @@
<script setup name="Post">
import { sysDictType,sysDictData} from "@/api/system/dict";
import { onMounted } from "vue";
<script setup>
import {sysDictType, sysDictData} from "@/api/system/dict";
import {onMounted} from "vue";
import setPostParams from "@/utils/searchParams.js";
const { proxy } = getCurrentInstance();
const {proxy} = getCurrentInstance();
const loading = ref(true); //加载状态
/** 区域table相关 */
const tableData = ref([]); //数据字典列表
const total = ref(0);
const total = ref(0);
const ids = ref([]);
const single = ref(true);
const multiple = ref(true);
let  tableHeader = ref({
let tableHeader = ref({
    dictName: '字典名称',
    dictType: '字典类型',
    remark:'备注',
    updateTimeView:'更新时间'
   })
   //获取列表数据
const getList = async(val) => {
    remark: '备注',
    updateTimeView: '更新时间'
})
//获取列表数据
const getList = async (val) => {
   loading.value = true;
    loading.value = true;
    let postParam = setPostParams(val)
   let res = await sysDictType().search(postParam)
   if(res.code == 200) {
         loading.value = false;
         tableData.value = res.data.list;
         total.value = res.data.total;
         search.page = res.data.page;
         search.limit = res.data.limit;
   }
    let res = await sysDictType().search(postParam)
    if (res.code == 200) {
        loading.value = false;
        tableData.value = res.data.list;
        total.value = res.data.total;
        search.page = res.data.page;
        search.limit = res.data.limit;
    }
}
/**
 * 添加修改表单相关
@@ -41,126 +41,127 @@
const showSearch = ref(true);
const title = ref("");
const data = reactive({
   //表单
   form: {
      dictName:'',
      dictType:'',
        remark:'',
   },
    //表单
    form: {
        dictName: '',
        dictType: '',
        remark: '',
    },
   //查询数据
   search: {
      page: 1, //当前页
      limit: 10, //每页条数
      dictName: '',
      status: ''
   },
   //表单验证
   rules: {
      dictName: [{ required: true, message: "请输入字典名称", trigger: "blur" }],
      dictType: [{ required: true, message: "请输入字典类型", trigger: "blur" }],
   },
    //查询数据
    search: {
        page: 1, //当前页
        limit: 10, //每页条数
        dictName: '',
        status: ''
    },
    //表单验证
    rules: {
        dictName: [{required: true, message: "请输入字典名称", trigger: "blur"}],
        dictType: [{required: true, message: "请输入字典类型", trigger: "blur"}],
    },
});
const { search, form, rules } = toRefs(data);
/**
 * 提交添加修改表单按钮
const {search, form, rules} = toRefs(data);
/**
 * 提交添加修改表单按钮
 */
function submitForm() {
  proxy.$refs["postRef"].validate(async valid => {
     if (valid) {
        if(!form.value.id){
           let res = await sysDictType().create(form.value)
           if(res.code == 200) {
              proxy.$modal.msgSuccess("添加成功")
              openForm.value = false
              getList()
              reset()
           }else{
               proxy.$modal.msgError("添加失败")
               openForm.value = false
               reset()
           }
        }else{
            let res = await sysDictType().modify(form.value)
            if(res.code == 200) {
              proxy.$modal.msgSuccess("修改成功")
              openForm.value = false
              getList()
              reset()
           }else{
               proxy.$modal.msgError("修改失败")
               openForm.value = false
               reset()
           }
    proxy.$refs["postRef"].validate(async valid => {
        if (valid) {
            if (!form.value.id) {
                let res = await sysDictType().create(form.value)
                if (res.code == 200) {
                    proxy.$modal.msgSuccess("添加成功")
                    openForm.value = false
                    getList()
                    reset()
                } else {
                    proxy.$modal.msgError("添加失败")
                    openForm.value = false
                    reset()
                }
            } else {
                let res = await sysDictType().modify(form.value)
                if (res.code == 200) {
                    proxy.$modal.msgSuccess("修改成功")
                    openForm.value = false
                    getList()
                    reset()
                } else {
                    proxy.$modal.msgError("修改失败")
                    openForm.value = false
                    reset()
                }
            }
        }
     }
  });
    });
}
/**
 * 字典类型操作相关
 */
/** 搜索按钮操作 */
function handleQuery() {
   getList({keywords:search.value.dictName,page:1});
    getList({keywords: search.value.dictName, page: 1});
}
/** 重置按钮操作 */
function resetQuery() {
   proxy.resetForm("queryRef");
   handleQuery();
    proxy.resetForm("queryRef");
    handleQuery();
}
/** 多选框选中数据 */
function handleSelectionChange(selection) {
   ids.value = selection.map(item => item.id);
   single.value = selection.length != 1;
   multiple.value = !selection.length;
    ids.value = selection.map(item => item.id);
    single.value = selection.length != 1;
    multiple.value = !selection.length;
}
/** 新增按钮操作 */
function handleAdd() {
   reset();
   openForm.value = true;
   title.value = "添加字典";
    reset();
    openForm.value = true;
    title.value = "添加字典";
}
/** 修改按钮操作 */
function handleUpdate(row) {
   reset();
   //将表单数据更新为table对应值
   Object.keys(row).forEach(key => {
      if (form.value.hasOwnProperty(key)) {
         form.value[key] = row[key];
      }
   });
   form.value.id = row.id
   console.log('form',form.value);
   openForm.value = true;
   title.value = "修改字典";
    reset();
    //将表单数据更新为table对应值
    Object.keys(row).forEach(key => {
        if (form.value.hasOwnProperty(key)) {
            form.value[key] = row[key];
        }
    });
    form.value.id = row.id
    console.log('form', form.value);
    openForm.value = true;
    title.value = "修改字典";
}
/** 删除按钮操作 */
function handleDelete(row) {
   proxy.$modal.confirm('确认删除"' + row.dictName +'?')
   .then(async() => {
      console.log("无删除功能");
      // let res = await areaApi().remove(row.id)
      // if(res.code == 200) {
      //    proxy.$modal.msgSuccess("删除成功");
      //    openForm.value = false
      //    getList()
      // }
   }).catch(() => {});
    proxy.$modal.confirm('确认删除"' + row.dictName + '?')
        .then(async () => {
            console.log("无删除功能");
        }).catch(() => {
    });
}
/** 关闭弹窗 */
function cancel() {
   openForm.value = false;
   reset();
    openForm.value = false;
    reset();
}
/** 表单重置 */
const reset = () => {
   proxy.resetForm("postRef");
   openForm.value = false
    proxy.resetForm("postRef");
    openForm.value = false
}
/**
@@ -171,126 +172,129 @@
//判断
const isHandle = ref(false)
//table
const tableDictData = ref([]);
let  tableDataHeader = ref({
      dictType: '字典类型',
      dictValue: '字典键值',
      dictLabel: '字典描述',
      remark:'备注',
   })
const tableDictData = ref([]);
let tableDataHeader = ref({
    dictType: '字典类型',
    dictValue: '字典键值',
    dictLabel: '字典描述',
    remark: '备注',
})
//获取列表
const getDataList = async(val) => {
   console.log('val',val);
   loading.value = true;
   let res = await sysDictData().searchType(val)
   if(res.code == 200) {
         loading.value = false;
         tableDictData.value = res.data;
   }
const getDataList = async (val) => {
    console.log('val', val);
    loading.value = true;
    let res = await sysDictData().searchType(val)
    if (res.code == 200) {
        loading.value = false;
        tableDictData.value = res.data;
    }
}
const postDataRef = ref()
   //表单
//表单
const dataForm = ref({
   dictLabel:'',
   dictValue:'',
   dictType:'',
      remark:''
    dictLabel: '',
    dictValue: '',
    dictType: '',
    remark: ''
})
const dataRules = ref({
   dictLabel: [{ required: true, message: "请输入字典描述", trigger: "blur" }],
   dictValue: [{ required: true, message: "请输入字典键值", trigger: "blur" }],
    dictLabel: [{required: true, message: "请输入字典描述", trigger: "blur"}],
    dictValue: [{required: true, message: "请输入字典键值", trigger: "blur"}],
})
//提交
const handleData = () =>{
  proxy.$refs["postDataRef"].validate(async valid => {
     if (valid) {
        if(!dataForm.value.id){
           let res = await sysDictData().create(dataForm.value)
           if(res.code == 200) {
              proxy.$modal.msgSuccess("添加成功")
              isHandle.value = false
              getDataList(dataForm.value.dictType)
              proxy.resetForm("postDataRef");
           }else{
               proxy.$modal.msgError("添加失败")
              isHandle.value = false
              proxy.resetForm("postDataRef");
           }
        }else{
            let res = await sysDictData().modify(dataForm.value)
            if(res.code == 200) {
              proxy.$modal.msgSuccess("修改成功")
              isHandle.value = false
              getDataList(dataForm.value.dictType)
              proxy.resetForm("postDataRef");
           }else{
               proxy.$modal.msgError("修改失败")
              isHandle.value = false
              proxy.resetForm("postDataRef");
           }
const handleData = () => {
    proxy.$refs["postDataRef"].validate(async valid => {
        if (valid) {
            if (!dataForm.value.id) {
                let res = await sysDictData().create(dataForm.value)
                if (res.code == 200) {
                    proxy.$modal.msgSuccess("添加成功")
                    isHandle.value = false
                    getDataList(dataForm.value.dictType)
                    proxy.resetForm("postDataRef");
                } else {
                    proxy.$modal.msgError("添加失败")
                    isHandle.value = false
                    proxy.resetForm("postDataRef");
                }
            } else {
                let res = await sysDictData().modify(dataForm.value)
                if (res.code == 200) {
                    proxy.$modal.msgSuccess("修改成功")
                    isHandle.value = false
                    getDataList(dataForm.value.dictType)
                    proxy.resetForm("postDataRef");
                } else {
                    proxy.$modal.msgError("修改失败")
                    isHandle.value = false
                    proxy.resetForm("postDataRef");
                }
            }
        }
     }
  });
    });
}
//取消
const cancelData = () =>{
   isHandle.value = false
   proxy.resetForm("postDataRef");
const cancelData = () => {
    isHandle.value = false
    proxy.resetForm("postDataRef");
}
//查看按钮相关
const handleDetail = (row) =>{
   getDataList(row.dictType)
   openDataForm.value = true
   console.log('form',dataForm.value);
   dataForm.value.dictType = row.dictType
   isHandle.value = false
const handleDetail = (row) => {
    getDataList(row.dictType)
    openDataForm.value = true
    console.log('form', dataForm.value);
    dataForm.value.dictType = row.dictType
    isHandle.value = false
}
//关闭按钮相关
const close = () =>{
   openDataForm.value = false
   proxy.resetForm('postDataRef')
   isHandle.value = false
const close = () => {
    openDataForm.value = false
    proxy.resetForm('postDataRef')
    isHandle.value = false
}
// 新增
// 新增
function handleAddData() {
   let type = dataForm.value.dictType
   proxy.resetForm("postDataRef");
   dataForm.value.dictType = type
   console.log('form1',dataForm.value);
   isHandle.value = true
   if(dataForm.value.id){
      delete dataForm.value.id
   }
    let type = dataForm.value.dictType
    proxy.resetForm("postDataRef");
    dataForm.value.dictType = type
    console.log('form1', dataForm.value);
    isHandle.value = true
    if (dataForm.value.id) {
        delete dataForm.value.id
    }
}
/** 修改 */
async function handleUpdateData(row) {
   //将表单数据更新为table对应值
   Object.keys(row).forEach(key => {
      if (dataForm.value.hasOwnProperty(key)) {
         dataForm.value[key] = row[key];
      }
   });
   dataForm.value.id = row.id
   isHandle.value = true
    //将表单数据更新为table对应值
    Object.keys(row).forEach(key => {
        if (dataForm.value.hasOwnProperty(key)) {
            dataForm.value[key] = row[key];
        }
    });
    dataForm.value.id = row.id
    isHandle.value = true
}
/** 删除 */
function handleDeleteData(row) {
   proxy.$modal.confirm('确认删除"' + row.dictValue +'?')
   .then(async() => {
      let res = await sysDictData().remove(row.id)
      if(res.code == 200) {
         proxy.$modal.msgSuccess("删除成功");
         getDataList(row.dictType)
      }
   }).catch(() => {});
    proxy.$modal.confirm('确认删除"' + row.dictValue + '?')
        .then(async () => {
            let res = await sysDictData().remove(row.id)
            if (res.code == 200) {
                proxy.$modal.msgSuccess("删除成功");
                getDataList(row.dictType)
            }
        }).catch(() => {
    });
}
onMounted(async()=>{
   getList();
onMounted(async () => {
    getList();
})
@@ -300,153 +304,162 @@
        <!--搜索框-->
        <el-form :model="search" ref="queryRef" :inline="true" v-show="showSearch">
            <el-form-item label="" prop="dictName">
               <el-input
                  v-model="search.dictName"
                  placeholder="请输入管点名称或编号"
                  clearable
                  style="width: 200px"
                  @keyup.enter="handleQuery"
               />
                <el-input
                    v-model="search.dictName"
                    placeholder="请输入管点名称或编号"
                    clearable
                    style="width: 200px"
                    @keyup.enter="handleQuery"
                />
            </el-form-item>
          <el-form-item>
            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
          </el-form-item>
            <el-form-item>
                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
            </el-form-item>
        </el-form>
        <!--操作按钮列-->
        <el-row :gutter="10" class="mb8">
          <el-col :span="1.5">
             <el-button
                type="primary"
                plain
                icon="Plus"
                @click="handleAdd"
             >新增</el-button>
          </el-col>
          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
            <el-col :span="1.5">
                <el-button
                    type="primary"
                    plain
                    icon="Plus"
                    @click="handleAdd"
                >新增
                </el-button>
            </el-col>
            <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
        </el-row>
        <!--表格及分页-->
        <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
          <el-table-column type="selection" width="55" align ="center" />
          <el-table-column
            v-for="(item, key, index) of tableHeader"
            :prop="key.toString()"
            :label="item"
            :key="index"
            align="center"
          ></el-table-column>
          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
             <template #default="scope">
                <el-button link type="primary" icon="Edit" @click="handleDetail(scope.row)">查看字典数据</el-button>
                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
             </template>
          </el-table-column>
            <el-table-column type="selection" width="55" align="center"/>
            <el-table-column
                v-for="(item, key, index) of tableHeader"
                :prop="key.toString()"
                :label="item"
                :key="index"
                align="center"
            ></el-table-column>
            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
                <template #default="scope">
                    <el-button link type="primary" icon="Edit" @click="handleDetail(scope.row)">查看字典数据</el-button>
                    <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
                    <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
        <pagination
          v-show="total > 0"
          :total="total"
          v-model:page="search.page"
          v-model:limit="search.limit"
          @pagination="getList"
            v-show="total > 0"
            :total="total"
            v-model:page="search.page"
            v-model:limit="search.limit"
            @pagination="getList"
        />
        <!-- 添加/修改弹窗 -->
        <el-dialog :title="title" v-model="openForm" width="45vw" center append-to-body>
          <el-form class="form-box" ref="postRef" :model="form" :rules="rules">
            <el-form-item label="字典名称" prop="dictName">
                <el-input v-model="form.dictName" placeholder="请输入字典名称" />
             </el-form-item>
             <el-form-item label="字典类型" prop="dictType">
                <el-input v-model="form.dictType" placeholder="请输入字典类型" />
             </el-form-item>
             <el-form-item label="备注" prop="remark">
                <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
             </el-form-item>
              <el-form-item></el-form-item>
          </el-form>
          <template #footer>
             <div class="dialog-footer">
                <el-button type="primary" @click="submitForm">确 定</el-button>
                <el-button @click="cancel">取 消</el-button>
             </div>
          </template>
            <el-form class="form-box" ref="postRef" :model="form" :rules="rules">
                <el-form-item label="字典名称" prop="dictName">
                    <el-input v-model="form.dictName" placeholder="请输入字典名称"/>
                </el-form-item>
                <el-form-item label="字典类型" prop="dictType">
                    <el-input v-model="form.dictType" placeholder="请输入字典类型"/>
                </el-form-item>
                <el-form-item label="备注" prop="remark">
                    <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
                </el-form-item>
                <el-form-item></el-form-item>
            </el-form>
            <template #footer>
                <div class="dialog-footer">
                    <el-button type="primary" @click="submitForm">确 定</el-button>
                    <el-button @click="cancel">取 消</el-button>
                </div>
            </template>
        </el-dialog>
        <!-- 字典数据弹窗 -->
        <el-dialog title="字典数据" v-model="openDataForm" width="50vw" center append-to-body>
        <!--操作按钮列-->
        <el-row>
          <el-col>
             <el-button
                type="primary"
                plain
                icon="Plus"
                @click="handleAddData"
             >新增</el-button>
          </el-col>
        </el-row>
         <!--表格-->
        <el-table v-loading="loading" :data="tableDictData">
          <el-table-column
            v-for="(item, key, index) of tableDataHeader"
            :prop="key.toString()"
            :label="item"
            :key="index"
            align="center"
          >
         </el-table-column>
          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
             <template #default="scope">
                <el-button link :type="dataForm.dictValue == scope.row.dictValue ? 'warning' : 'primary'"  icon="Edit" @click="handleUpdateData(scope.row)">修改</el-button>
                <el-button link type="primary" icon="Delete" @click="handleDeleteData(scope.row)">删除</el-button>
             </template>
          </el-table-column>
        </el-table>
        <el-form title="添加数据" v-show="isHandle" class="dataForm-box" ref="postDataRef" :rules="dataRules" :model="dataForm" inline label-width="100px">
            <el-form-item prop="dictType">
               <span>{{ dataForm.dictType }}</span>
            </el-form-item>
            <el-form-item prop="dictValue">
               <el-input v-model="dataForm.dictValue" placeholder="请输入字典键值"></el-input>
            </el-form-item>
            <el-form-item prop="dictLabel">
               <el-input v-model="dataForm.dictLabel" placeholder="请输入字典描述"></el-input>
            </el-form-item>
            <el-form-item prop="remark">
               <el-input v-model="dataForm.remark" placeholder="请输入备注"></el-input>
            </el-form-item>
            <el-form-item>
               <el-button type="primary" @click="handleData">确 认</el-button>
               <el-button @click="cancelData">取 消</el-button>
            </el-form-item>
        </el-form>
        <template #footer>
             <div class="dialog-footer">
                <el-button @click="close">关 闭</el-button>
             </div>
          </template>
      </el-dialog>
            <!--操作按钮列-->
            <el-row>
                <el-col>
                    <el-button
                        type="primary"
                        plain
                        icon="Plus"
                        @click="handleAddData"
                    >新增
                    </el-button>
                </el-col>
            </el-row>
            <!--表格-->
            <el-table v-loading="loading" :data="tableDictData">
                <el-table-column
                    v-for="(item, key, index) of tableDataHeader"
                    :prop="key.toString()"
                    :label="item"
                    :key="index"
                    align="center"
                >
                </el-table-column>
                <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
                    <template #default="scope">
                        <el-button link :type="dataForm.dictValue == scope.row.dictValue ? 'warning' : 'primary'"
                                   icon="Edit" @click="handleUpdateData(scope.row)">修改
                        </el-button>
                        <el-button link type="primary" icon="Delete" @click="handleDeleteData(scope.row)">删除
                        </el-button>
                    </template>
                </el-table-column>
            </el-table>
            <el-form title="添加数据" v-show="isHandle" class="dataForm-box" ref="postDataRef" :rules="dataRules"
                     :model="dataForm" inline label-width="100px">
                <el-form-item prop="dictType">
                    <span>{{ dataForm.dictType }}</span>
                </el-form-item>
                <el-form-item prop="dictValue">
                    <el-input v-model="dataForm.dictValue" placeholder="请输入字典键值"></el-input>
                </el-form-item>
                <el-form-item prop="dictLabel">
                    <el-input v-model="dataForm.dictLabel" placeholder="请输入字典描述"></el-input>
                </el-form-item>
                <el-form-item prop="remark">
                    <el-input v-model="dataForm.remark" placeholder="请输入备注"></el-input>
                </el-form-item>
                <el-form-item>
                    <el-button type="primary" @click="handleData">确 认</el-button>
                    <el-button @click="cancelData">取 消</el-button>
                </el-form-item>
            </el-form>
            <template #footer>
                <div class="dialog-footer">
                    <el-button @click="close">关 闭</el-button>
                </div>
            </template>
        </el-dialog>
    </div>
</template>
<style scoped lang="scss">
.dataForm-box{
   background-color: #ffffff;
   display:flex;
   .el-form-item{
      width: 18%;
      margin: 10px 1%;
      span{
         margin: 0 auto;
         // font-weight: 600;
      }
   }
.dataForm-box {
    background-color: #ffffff;
    display: flex;
    .el-form-item {
        width: 18%;
        margin: 10px 1%;
        span {
            margin: 0 auto;
            // font-weight: 600;
        }
    }
}
.focus{
   color: aqua;
.focus {
    color: aqua;
}
</style>
src/views/system/menu/index.vue
@@ -45,7 +45,7 @@
                align="center"
                :default-expand-all="isExpandAll"
                :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
                fit="true"
                :fit="true"
        >
            <el-table-column prop="name" label="菜单名称" :show-overflow-tooltip="true"></el-table-column>
            <el-table-column prop="icon" label="图标" align="center">
src/views/system/role/index.vue
@@ -258,7 +258,7 @@
   form.value = {
        name: '',
        description: '',
        sort:'',
        sort: 0,
   };
   proxy.resetForm("roleRef");
 }
src/views/system/user/index.vue
@@ -67,7 +67,7 @@
          <el-dialog :title="title" v-model="open" append-to-body center>
              <el-form class="form-box"  ref="userRef" :model="form" :rules="rules">
                      <el-form-item label="用户名" prop="userName">
                          <el-input :disabled ="form.id" v-model="form.userName" placeholder="请输入用户名称"/>
                          <el-input :disabled ="!!form.id" v-model="form.userName" placeholder="请输入用户名称"/>
                      </el-form-item>
                      <el-form-item v-if="!form.id" label="密码" prop="password">
                          <el-input v-model="form.password" placeholder="请输入密码" />
@@ -132,7 +132,6 @@
    import  user from "@/api/system/user";
    import  role from "@/api/system/role";
    import  { PREURL } from "@/config/index";
    import  userClassify from "@/api/configuration/userClassify";
    import  { sysDictData } from "@/api/system/dict";
    import setPostParams from "@/utils/searchParams.js";
    const { proxy } = getCurrentInstance();
src/views/userCenter.vue
文件已删除
src/views/waterMeter/meterOperation/index.vue
文件已删除
src/views/waterMeter/supplier/index.vue
文件已删除
src/views/waterMeter/useWaterMeter/index.vue
文件已删除
src/views/waterMeter/verification/index.vue
文件已删除
src/views/waterMeter/waterMeterInfo/index.vue
文件已删除
src/views/waterMeter/waterModel/index.vue
文件已删除
src/views/workOrderManage/accountApply/index.vue
文件已删除
src/views/workOrderManage/meterConstruction/index.vue
文件已删除
src/views/workOrderManage/waterMeterAlteration/index.vue
文件已删除
src/views/workOrderManage/waterMeterChange/index.vue
文件已删除
src/views/workOrderManage/waterMeterCloseAccount/index.vue
文件已删除
src/views/workOrderManage/waterMeterMaintainRecords/index.vue
文件已删除
src/views/workOrderManage/waterMeterRepair/index.vue
文件已删除
src/views/workOrderManage/waterMeterStopAccount/index.vue
文件已删除
src/views/workOrderManage/workOrderList/index.vue
文件已删除