Commit 83338dbed9e8f4ed63fc91fa5bb623c0e753cac1

Authored by wuxw
1 parent f2918bc5

v1.9 支持页标签功能

package.json
... ... @@ -5,7 +5,8 @@
5 5 "scripts": {
6 6 "dev": "vue-cli-service serve",
7 7 "build": "vue-cli-service build",
8   - "lint": "vue-cli-service lint"
  8 + "lint": "vue-cli-service lint",
  9 + "inject-route-meta": "node scripts/injectRouteMetaFromMenu.js"
9 10 },
10 11 "dependencies": {
11 12 "@tinymce/tinymce-vue": "^3.2.8",
... ...
src/i18n/breadcrumbLang.js 0 → 100644
  1 +// Auto-generated from docs/菜单.md. i18n for breadcrumb.
  2 +export const messages = {
  3 + zh: { breadcrumb: {
  4 + "path_pages_scm_couponMarket": "优惠券市场",
  5 + "path_pages_scm_couponPropertyPoolManage": "优惠券",
  6 + "path_pages_scm_couponPropertyPoolDetail": "赠送记录",
  7 + "path_pages_scm_couponPropertyUserManage": "业主优惠券",
  8 + "path_pages_scm_couponPropertyUserDetail": "优惠券使用",
  9 + "path_pages_scm_couponRule": "赠送规则",
  10 + "path_pages_scm_integralConfigManage": "积分标准",
  11 + "path_pages_scm_integralGiftDetailManage": "积分赠送",
  12 + "path_pages_scm_communityIntegral": "小区积分",
  13 + "path_pages_scm_integralRule": "积分规则",
  14 + "path_pages_scm_gold": "小区金币",
  15 + "path_pages_common_noticeManage": "发布公告",
  16 + "path_pages_property_visitManage": "访客登记",
  17 + "path_pages_complaint_complaint": "投诉建议",
  18 + "path_pages_property_activitiesManage": "信息发布",
  19 + "path_pages_property_activitiesTypeManage": "信息大类",
  20 + "path_pages_property_questionAnswerManage": "问卷调研",
  21 + "path_pages_question_questionTitle": "问卷题目",
  22 + "path_pages_property_notepadManage": "业主反馈",
  23 + "path_pages_question_ownerVoting": "业主投票",
  24 + "path_pages_complaint_complaintType": "投诉类型",
  25 + "path_pages_property_listParkingSpace": "车位信息",
  26 + "path_pages_property_hireParkingSpace": "车位出租",
  27 + "path_pages_property_sellParkingSpace": "车位出售",
  28 + "path_pages_property_ownerParkingSpace": "业主车位",
  29 + "path_pages_property_parkingAreaManage": "停车场管理",
  30 + "path_pages_property_carInManage": "在场车辆",
  31 + "path_pages_property_carInoutManage": "进场记录",
  32 + "path_pages_property_remainingParkingSpace": "剩余车位",
  33 + "path_pages_property_listOwnerCar": "业主车辆",
  34 + "path_pages_property_carAddParkingSpace": "续租车位",
  35 + "path_pages_property_listOwnerCarMember": "子母车辆",
  36 + "path_pages_property_parkingBoxManage": "岗亭管理",
  37 + "path_pages_property_parkingSpaceApplyManage": "车位申请",
  38 + "path_pages_car_tempCarPayment": "临时车缴费",
  39 + "path_pages_reserve_reserveCatalogManage": "预约目录",
  40 + "path_pages_reserve_reserveParamsManage": "预约参数",
  41 + "path_pages_reserve_reserveOrder": "预约订单",
  42 + "path_pages_reserve_reserveDiningManage": "预约就餐",
  43 + "path_pages_reserve_reserveConfirm": "订单核销",
  44 + "path_pages_reserve_reserveServiceManage": "预约服务",
  45 + "path_pages_property_equipmentAccount": "设备台账",
  46 + "path_pages_property_machineTranslateManage": "物联网同步",
  47 + "path_pages_machine_accessControlInout": "开门记录",
  48 + "path_pages_property_locationManage": "设备位置",
  49 + "path_pages_property_machineTypeTreeManage": "设备类型",
  50 + "path_pages_property_maintainanceItem": "检查项",
  51 + "path_pages_property_maintainanceStandardManage": "保养标准",
  52 + "path_pages_property_maintainancePlanManage": "保养计划",
  53 + "path_pages_property_maintainanceTaskDetails": "保养明细",
  54 + "path_pages_property_maintainanceTaskManage": "保养任务",
  55 + "path_pages_print_machinePrinterManage": "云打印机",
  56 + "path_pages_print_printerRule": "云打印规则",
  57 + "path_pages_property_attendanceClassesManage": "考勤班组",
  58 + "path_pages_property_todayAttendanceManage": "今日考勤",
  59 + "path_pages_property_monthAttendanceManage": "月考勤",
  60 + "path_pages_property_attendanceLogManage": "考勤记录",
  61 + "path_pages_property_oaWorkflowManage": "流程实例",
  62 + "path_pages_property_newOaWorkflowManage": "我的流程",
  63 + "path_pages_property_newOaWorkflowDoing": "工作办理",
  64 + "path_pages_property_staffAttendanceManage": "员工考勤",
  65 + "path_pages_attendance_attendanceClassesStaffManage": "考勤人员",
  66 + "path_pages_oa_workType": "工作单类型",
  67 + "path_pages_oa_startWork": "起工作单",
  68 + "path_pages_oa_doWork": "办工作单",
  69 + "path_pages_oa_copyWork": "抄送我的",
  70 + "path_pages_oa_workPool": "工作单池",
  71 + "path_pages_oa_workDeduction": "工作单扣款",
  72 + "path_pages_common_purchaseApplyManage": "采购申请",
  73 + "path_pages_common_resourceStoreManage": "物品信息",
  74 + "path_pages_common_itemOutManage": "物品领用",
  75 + "path_pages_property_storehouseManage": "仓库信息",
  76 + "path_pages_common_allocationStorehouseManage": "调拨申请",
  77 + "path_pages_common_myResourceStoreManage": "我的物品",
  78 + "path_pages_common_purchaseApplyDetailManage": "出入库明细",
  79 + "path_pages_property_resourceSupplierManage": "供应商",
  80 + "path_pages_common_allocationUserStorehouseManage": "转赠记录",
  81 + "path_pages_common_resourceStoreUseRecordManage": "使用记录",
  82 + "path_pages_common_allocationStorehouseDetailed": "调拨明细",
  83 + "path_pages_common_resourceStoreSpecificationManage": "物品规格",
  84 + "path_pages_property_assetInventoryManage": "盘点管理",
  85 + "path_pages_resource_resourceAuditFlow": "审批配置",
  86 + "path_pages_property_room": "房屋管理",
  87 + "path_pages_property_listOwner": "业主信息",
  88 + "path_pages_property_ownerDetail": "业主详情",
  89 + "path_pages_property_auditAuthOwner": "业主认证",
  90 + "path_pages_property_shops": "商铺管理",
  91 + "path_pages_property_accountManage": "业主账户",
  92 + "path_pages_property_communitySpaceManage": "场地管理",
  93 + "path_pages_property_communitySpacePersonManage": "场地预约订单",
  94 + "path_pages_property_reportCommunitySpace": "场地预约",
  95 + "path_pages_property_communitySpaceConfirm": "预约核销",
  96 + "path_pages_owner_ownerSettledApplyManage": "业主入驻",
  97 + "path_pages_owner_ownerCommitteeManage": "业委会",
  98 + "path_pages_fee_invoiceApply": "发票",
  99 + "path_pages_fee_ownerInvoice": "发票抬头",
  100 + "path_pages_community_wechatSubscribe": "关注用户",
  101 + "path_pages_property_repairDispatchStep": "报修派单",
  102 + "path_pages_property_repairDispatchManage": "报修待办",
  103 + "path_pages_property_myRepairDispatchManage": "报修已办",
  104 + "path_pages_work_repairSetting": "报修设置",
  105 + "path_pages_property_repairTypeUser": "报修师傅",
  106 + "path_pages_property_ownerRepairManage": "电话报修",
  107 + "path_pages_property_repairPoolManage": "工单池",
  108 + "path_pages_property_ownerRepairDetail": "报修工单详情",
  109 + "path_pages_property_repairReturnVisit": "报修回访",
  110 + "path_pages_property_repairForceFinishManage": "强制回单",
  111 + "path_pages_property_constrainFinishRepair": "强制回单",
  112 + "path_pages_common_enterCommunity": "我的小区",
  113 + "path_pages_property_simplifyAcceptance": "业务受理",
  114 + "path_pages_property_roomRenovationManage": "房屋装修",
  115 + "path_pages_property_roomRenovationDetailManage": "装修验收",
  116 + "path_pages_property_listRoomDecorationRecord": "装修记录",
  117 + "path_pages_property_listRoomRenovationRecordDetails": "装修详情",
  118 + "path_pages_property_propertyRightRegistrationManage": "产权登记",
  119 + "path_pages_property_videoControl": "视频监控",
  120 + "path_pages_property_listPropertyRightRegistrationDetail": "产权登记详情",
  121 + "path_pages_property_roomStructure": "结构图",
  122 + "path_pages_property_carStructure": "车位结构图",
  123 + "path_pages_property_itemReleaseTypeManage": "放行类型",
  124 + "path_pages_property_itemReleaseManage": "物品放行",
  125 + "path_pages_community_communityPublicityManage": "小区公示",
  126 + "path_pages_property_reportFeeSummary": "费用汇总表",
  127 + "path_pages_property_reportFeeDetail": "费用明细表",
  128 + "path_pages_property_reportOweFeeDetail": "欠费明细表",
  129 + "path_pages_report_feeRemind": "费用提醒",
  130 + "path_pages_property_reportPayFeeDetail": "缴费明细表",
  131 + "path_pages_property_reportRepair": "报修汇总表",
  132 + "path_pages_property_reportProficient": "费用台账",
  133 + "path_pages_property_reportNoFeeRoom": "未收费房屋",
  134 + "path_pages_property_reportQuestionAnswerDetail": "问卷明细表",
  135 + "path_pages_property_reportOwnerPayFee": "业主缴费明细",
  136 + "path_pages_property_reportPayFeeDeposit": "押金报表",
  137 + "path_pages_property_reportHuaning": "欠费分析",
  138 + "path_pages_property_commonReport": "巡检报表",
  139 + "path_pages_report_dataReport": "数据统计",
  140 + "path_pages_property_staffFeeManage": "员工收费",
  141 + "path_pages_property_feeConfigManage": "费用项设置",
  142 + "path_pages_property_carCreateFee": "车辆收费",
  143 + "path_pages_property_roomCreateFee": "房屋收费",
  144 + "path_pages_property_feeSummary": "费用汇总表",
  145 + "path_pages_property_returnPayFeeManage": "退费审核",
  146 + "path_pages_fee_oweFeeCallable": "欠费催缴",
  147 + "path_pages_property_roomFeeImport": "费用导入",
  148 + "path_pages_property_listOweFee": "欠费信息",
  149 + "path_pages_property_meterWaterManage": "水电抄表",
  150 + "path_pages_fee_floorShare": "楼栋公摊",
  151 + "path_pages_property_feeReceipt": "补打收据",
  152 + "path_pages_property_payFeeAuditManage": "缴费审核",
  153 + "path_pages_property_feeDiscountManage": "折扣设置",
  154 + "path_pages_property_applyRoomDiscountManage": "优惠申请",
  155 + "path_pages_property_contractCreateFee": "合同收费",
  156 + "path_pages_property_payFeeBatch": "取消费用",
  157 + "path_pages_property_feeComboManage": "费用套餐",
  158 + "path_pages_fee_shareReading": "公摊抄表",
  159 + "path_pages_admin_contractManage": "合同查询",
  160 + "path_pages_admin_contractTypeManage": "合同类型",
  161 + "path_pages_admin_contractTypeSpecManage": "合同类型规格",
  162 + "path_pages_admin_contractAudit": "合同审核",
  163 + "path_pages_admin_contractChangeManage": "合同变更",
  164 + "path_pages_admin_expirationContractManage": "到期合同",
  165 + "path_pages_admin_contractChangeDetails": "合同变更明细",
  166 + "path_pages_admin_newContractManage": "起草合同",
  167 + "path_pages_admin_contractChangeDetail": "申请合同变更",
  168 + "path_pages_admin_contractApplyAuditHistoryOrders": "起草已办",
  169 + "path_pages_admin_contractChangeAuditOrders": "变更待办",
  170 + "path_pages_admin_contractApplyAuditOrders": "起草待办",
  171 + "path_pages_admin_contractChangeAuditHistoryOrders": "变更已办",
  172 + "path_pages_common_contractApplyDetail": "合同详情",
  173 + "path_pages_admin_contractPartyaManage": "合同甲方",
  174 + "path_pages_admin_addContract": "起草",
  175 + "path_pages_inspection_inspectionPoint": "巡检点",
  176 + "path_pages_inspection_inspectionRoute": "巡检路线",
  177 + "path_pages_inspection_inspectionPlan": "巡检计划",
  178 + "path_pages_inspection_inspectionTask": "巡检任务",
  179 + "path_pages_property_inspectionTaskDetails": "巡检明细",
  180 + "path_pages_property_inspectionItemManage": "巡检项目",
  181 + "catalog_优惠": "优惠",
  182 + "catalog_办公": "办公",
  183 + "catalog_停车": "停车",
  184 + "catalog_预约": "预约",
  185 + "catalog_设备": "设备",
  186 + "catalog_OA": "OA",
  187 + "catalog_采购": "采购",
  188 + "catalog_房产": "房产",
  189 + "catalog_报修": "报修",
  190 + "catalog_小区": "小区",
  191 + "catalog_报表": "报表",
  192 + "catalog_费用": "费用",
  193 + "catalog_合同": "合同",
  194 + "catalog_巡检": "巡检"
  195 +} },
  196 + en: { breadcrumb: {
  197 + "path_pages_scm_couponMarket": "优惠券市场",
  198 + "path_pages_scm_couponPropertyPoolManage": "优惠券",
  199 + "path_pages_scm_couponPropertyPoolDetail": "赠送记录",
  200 + "path_pages_scm_couponPropertyUserManage": "业主优惠券",
  201 + "path_pages_scm_couponPropertyUserDetail": "优惠券使用",
  202 + "path_pages_scm_couponRule": "赠送规则",
  203 + "path_pages_scm_integralConfigManage": "积分标准",
  204 + "path_pages_scm_integralGiftDetailManage": "积分赠送",
  205 + "path_pages_scm_communityIntegral": "小区积分",
  206 + "path_pages_scm_integralRule": "积分规则",
  207 + "path_pages_scm_gold": "小区金币",
  208 + "path_pages_common_noticeManage": "发布公告",
  209 + "path_pages_property_visitManage": "访客登记",
  210 + "path_pages_complaint_complaint": "投诉建议",
  211 + "path_pages_property_activitiesManage": "信息发布",
  212 + "path_pages_property_activitiesTypeManage": "信息大类",
  213 + "path_pages_property_questionAnswerManage": "问卷调研",
  214 + "path_pages_question_questionTitle": "问卷题目",
  215 + "path_pages_property_notepadManage": "业主反馈",
  216 + "path_pages_question_ownerVoting": "业主投票",
  217 + "path_pages_complaint_complaintType": "投诉类型",
  218 + "path_pages_property_listParkingSpace": "车位信息",
  219 + "path_pages_property_hireParkingSpace": "车位出租",
  220 + "path_pages_property_sellParkingSpace": "车位出售",
  221 + "path_pages_property_ownerParkingSpace": "业主车位",
  222 + "path_pages_property_parkingAreaManage": "停车场管理",
  223 + "path_pages_property_carInManage": "在场车辆",
  224 + "path_pages_property_carInoutManage": "进场记录",
  225 + "path_pages_property_remainingParkingSpace": "剩余车位",
  226 + "path_pages_property_listOwnerCar": "业主车辆",
  227 + "path_pages_property_carAddParkingSpace": "续租车位",
  228 + "path_pages_property_listOwnerCarMember": "子母车辆",
  229 + "path_pages_property_parkingBoxManage": "岗亭管理",
  230 + "path_pages_property_parkingSpaceApplyManage": "车位申请",
  231 + "path_pages_car_tempCarPayment": "临时车缴费",
  232 + "path_pages_reserve_reserveCatalogManage": "预约目录",
  233 + "path_pages_reserve_reserveParamsManage": "预约参数",
  234 + "path_pages_reserve_reserveOrder": "预约订单",
  235 + "path_pages_reserve_reserveDiningManage": "预约就餐",
  236 + "path_pages_reserve_reserveConfirm": "订单核销",
  237 + "path_pages_reserve_reserveServiceManage": "预约服务",
  238 + "path_pages_property_equipmentAccount": "设备台账",
  239 + "path_pages_property_machineTranslateManage": "物联网同步",
  240 + "path_pages_machine_accessControlInout": "开门记录",
  241 + "path_pages_property_locationManage": "设备位置",
  242 + "path_pages_property_machineTypeTreeManage": "设备类型",
  243 + "path_pages_property_maintainanceItem": "检查项",
  244 + "path_pages_property_maintainanceStandardManage": "保养标准",
  245 + "path_pages_property_maintainancePlanManage": "保养计划",
  246 + "path_pages_property_maintainanceTaskDetails": "保养明细",
  247 + "path_pages_property_maintainanceTaskManage": "保养任务",
  248 + "path_pages_print_machinePrinterManage": "云打印机",
  249 + "path_pages_print_printerRule": "云打印规则",
  250 + "path_pages_property_attendanceClassesManage": "考勤班组",
  251 + "path_pages_property_todayAttendanceManage": "今日考勤",
  252 + "path_pages_property_monthAttendanceManage": "月考勤",
  253 + "path_pages_property_attendanceLogManage": "考勤记录",
  254 + "path_pages_property_oaWorkflowManage": "流程实例",
  255 + "path_pages_property_newOaWorkflowManage": "我的流程",
  256 + "path_pages_property_newOaWorkflowDoing": "工作办理",
  257 + "path_pages_property_staffAttendanceManage": "员工考勤",
  258 + "path_pages_attendance_attendanceClassesStaffManage": "考勤人员",
  259 + "path_pages_oa_workType": "工作单类型",
  260 + "path_pages_oa_startWork": "起工作单",
  261 + "path_pages_oa_doWork": "办工作单",
  262 + "path_pages_oa_copyWork": "抄送我的",
  263 + "path_pages_oa_workPool": "工作单池",
  264 + "path_pages_oa_workDeduction": "工作单扣款",
  265 + "path_pages_common_purchaseApplyManage": "采购申请",
  266 + "path_pages_common_resourceStoreManage": "物品信息",
  267 + "path_pages_common_itemOutManage": "物品领用",
  268 + "path_pages_property_storehouseManage": "仓库信息",
  269 + "path_pages_common_allocationStorehouseManage": "调拨申请",
  270 + "path_pages_common_myResourceStoreManage": "我的物品",
  271 + "path_pages_common_purchaseApplyDetailManage": "出入库明细",
  272 + "path_pages_property_resourceSupplierManage": "供应商",
  273 + "path_pages_common_allocationUserStorehouseManage": "转赠记录",
  274 + "path_pages_common_resourceStoreUseRecordManage": "使用记录",
  275 + "path_pages_common_allocationStorehouseDetailed": "调拨明细",
  276 + "path_pages_common_resourceStoreSpecificationManage": "物品规格",
  277 + "path_pages_property_assetInventoryManage": "盘点管理",
  278 + "path_pages_resource_resourceAuditFlow": "审批配置",
  279 + "path_pages_property_room": "房屋管理",
  280 + "path_pages_property_listOwner": "业主信息",
  281 + "path_pages_property_ownerDetail": "业主详情",
  282 + "path_pages_property_auditAuthOwner": "业主认证",
  283 + "path_pages_property_shops": "商铺管理",
  284 + "path_pages_property_accountManage": "业主账户",
  285 + "path_pages_property_communitySpaceManage": "场地管理",
  286 + "path_pages_property_communitySpacePersonManage": "场地预约订单",
  287 + "path_pages_property_reportCommunitySpace": "场地预约",
  288 + "path_pages_property_communitySpaceConfirm": "预约核销",
  289 + "path_pages_owner_ownerSettledApplyManage": "业主入驻",
  290 + "path_pages_owner_ownerCommitteeManage": "业委会",
  291 + "path_pages_fee_invoiceApply": "发票",
  292 + "path_pages_fee_ownerInvoice": "发票抬头",
  293 + "path_pages_community_wechatSubscribe": "关注用户",
  294 + "path_pages_property_repairDispatchStep": "报修派单",
  295 + "path_pages_property_repairDispatchManage": "报修待办",
  296 + "path_pages_property_myRepairDispatchManage": "报修已办",
  297 + "path_pages_work_repairSetting": "报修设置",
  298 + "path_pages_property_repairTypeUser": "报修师傅",
  299 + "path_pages_property_ownerRepairManage": "电话报修",
  300 + "path_pages_property_repairPoolManage": "工单池",
  301 + "path_pages_property_ownerRepairDetail": "报修工单详情",
  302 + "path_pages_property_repairReturnVisit": "报修回访",
  303 + "path_pages_property_repairForceFinishManage": "强制回单",
  304 + "path_pages_property_constrainFinishRepair": "强制回单",
  305 + "path_pages_common_enterCommunity": "我的小区",
  306 + "path_pages_property_simplifyAcceptance": "业务受理",
  307 + "path_pages_property_roomRenovationManage": "房屋装修",
  308 + "path_pages_property_roomRenovationDetailManage": "装修验收",
  309 + "path_pages_property_listRoomDecorationRecord": "装修记录",
  310 + "path_pages_property_listRoomRenovationRecordDetails": "装修详情",
  311 + "path_pages_property_propertyRightRegistrationManage": "产权登记",
  312 + "path_pages_property_videoControl": "视频监控",
  313 + "path_pages_property_listPropertyRightRegistrationDetail": "产权登记详情",
  314 + "path_pages_property_roomStructure": "结构图",
  315 + "path_pages_property_carStructure": "车位结构图",
  316 + "path_pages_property_itemReleaseTypeManage": "放行类型",
  317 + "path_pages_property_itemReleaseManage": "物品放行",
  318 + "path_pages_community_communityPublicityManage": "小区公示",
  319 + "path_pages_property_reportFeeSummary": "费用汇总表",
  320 + "path_pages_property_reportFeeDetail": "费用明细表",
  321 + "path_pages_property_reportOweFeeDetail": "欠费明细表",
  322 + "path_pages_report_feeRemind": "费用提醒",
  323 + "path_pages_property_reportPayFeeDetail": "缴费明细表",
  324 + "path_pages_property_reportRepair": "报修汇总表",
  325 + "path_pages_property_reportProficient": "费用台账",
  326 + "path_pages_property_reportNoFeeRoom": "未收费房屋",
  327 + "path_pages_property_reportQuestionAnswerDetail": "问卷明细表",
  328 + "path_pages_property_reportOwnerPayFee": "业主缴费明细",
  329 + "path_pages_property_reportPayFeeDeposit": "押金报表",
  330 + "path_pages_property_reportHuaning": "欠费分析",
  331 + "path_pages_property_commonReport": "巡检报表",
  332 + "path_pages_report_dataReport": "数据统计",
  333 + "path_pages_property_staffFeeManage": "员工收费",
  334 + "path_pages_property_feeConfigManage": "费用项设置",
  335 + "path_pages_property_carCreateFee": "车辆收费",
  336 + "path_pages_property_roomCreateFee": "房屋收费",
  337 + "path_pages_property_feeSummary": "费用汇总表",
  338 + "path_pages_property_returnPayFeeManage": "退费审核",
  339 + "path_pages_fee_oweFeeCallable": "欠费催缴",
  340 + "path_pages_property_roomFeeImport": "费用导入",
  341 + "path_pages_property_listOweFee": "欠费信息",
  342 + "path_pages_property_meterWaterManage": "水电抄表",
  343 + "path_pages_fee_floorShare": "楼栋公摊",
  344 + "path_pages_property_feeReceipt": "补打收据",
  345 + "path_pages_property_payFeeAuditManage": "缴费审核",
  346 + "path_pages_property_feeDiscountManage": "折扣设置",
  347 + "path_pages_property_applyRoomDiscountManage": "优惠申请",
  348 + "path_pages_property_contractCreateFee": "合同收费",
  349 + "path_pages_property_payFeeBatch": "取消费用",
  350 + "path_pages_property_feeComboManage": "费用套餐",
  351 + "path_pages_fee_shareReading": "公摊抄表",
  352 + "path_pages_admin_contractManage": "合同查询",
  353 + "path_pages_admin_contractTypeManage": "合同类型",
  354 + "path_pages_admin_contractTypeSpecManage": "合同类型规格",
  355 + "path_pages_admin_contractAudit": "合同审核",
  356 + "path_pages_admin_contractChangeManage": "合同变更",
  357 + "path_pages_admin_expirationContractManage": "到期合同",
  358 + "path_pages_admin_contractChangeDetails": "合同变更明细",
  359 + "path_pages_admin_newContractManage": "起草合同",
  360 + "path_pages_admin_contractChangeDetail": "申请合同变更",
  361 + "path_pages_admin_contractApplyAuditHistoryOrders": "起草已办",
  362 + "path_pages_admin_contractChangeAuditOrders": "变更待办",
  363 + "path_pages_admin_contractApplyAuditOrders": "起草待办",
  364 + "path_pages_admin_contractChangeAuditHistoryOrders": "变更已办",
  365 + "path_pages_common_contractApplyDetail": "合同详情",
  366 + "path_pages_admin_contractPartyaManage": "合同甲方",
  367 + "path_pages_admin_addContract": "起草",
  368 + "path_pages_inspection_inspectionPoint": "巡检点",
  369 + "path_pages_inspection_inspectionRoute": "巡检路线",
  370 + "path_pages_inspection_inspectionPlan": "巡检计划",
  371 + "path_pages_inspection_inspectionTask": "巡检任务",
  372 + "path_pages_property_inspectionTaskDetails": "巡检明细",
  373 + "path_pages_property_inspectionItemManage": "巡检项目",
  374 + "catalog_优惠": "优惠",
  375 + "catalog_办公": "办公",
  376 + "catalog_停车": "停车",
  377 + "catalog_预约": "预约",
  378 + "catalog_设备": "设备",
  379 + "catalog_OA": "OA",
  380 + "catalog_采购": "采购",
  381 + "catalog_房产": "房产",
  382 + "catalog_报修": "报修",
  383 + "catalog_小区": "小区",
  384 + "catalog_报表": "报表",
  385 + "catalog_费用": "费用",
  386 + "catalog_合同": "合同",
  387 + "catalog_巡检": "巡检"
  388 +} }
  389 +}
... ...
src/i18n/index.js
... ... @@ -4,6 +4,7 @@ import ElementLocale from 'element-ui/lib/locale'
4 4 import config from '@/conf/config'
5 5 import { messages as loginMessages } from '../views/user/login/LoginLang'
6 6 import { messages as layoutMessages } from '../views/layout/LayoutLang'
  7 +import { messages as breadcrumbMessages } from './breadcrumbLang'
7 8 import { messages as commonMessages } from './commonLang'
8 9 import { messages as indexMessages } from '../views/index/indexLang'
9 10 import { messages as updatePwdMessages } from '../views/user/login/updatePwdLang'
... ... @@ -157,6 +158,7 @@ const messages = {
157 158 en: {
158 159 ...loginMessages.en,
159 160 ...layoutMessages.en,
  161 + ...breadcrumbMessages.en,
160 162 ...commonMessages.en,
161 163 ...indexMessages.en,
162 164 ...updatePwdMessages.en,
... ... @@ -299,6 +301,7 @@ const messages = {
299 301 zh: {
300 302 ...loginMessages.zh,
301 303 ...layoutMessages.zh,
  304 + ...breadcrumbMessages.zh,
302 305 ...commonMessages.zh,
303 306 ...indexMessages.zh,
304 307 ...updatePwdMessages.zh,
... ...
src/router/carRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/car/adminCar',
  4 + meta: { title: '小区车辆' },
4 5 name: '/pages/car/adminCar',
5 6 component: () => import('@/views/car/adminCarList.vue')
6 7 },
7 8 {
8 9 path: '/pages/iot/adminCarInout',
  10 + meta: { title: '车辆出入' },
9 11 name: '/pages/iot/adminCarInout',
10 12 component: () => import('@/views/iot/adminCarInoutList.vue')
11 13 },
12 14 {
13 15 path: '/pages/property/parkingAreaManage',
  16 + meta: { title: '停车场管理' },
14 17 name: '/pages/property/parkingAreaManage',
15 18 component: () => import('@/views/car/parkingAreaManageList.vue')
16 19 },
17 20 {
18 21 path: '/pages/property/listParkingSpace',
  22 + meta: { title: '车位信息' },
19 23 name: '/pages/property/listParkingSpace',
20 24 component: () => import('@/views/car/listParkingSpaceList.vue')
21 25 },
22 26 {
23 27 path: '/pages/property/parkingBoxManage',
  28 + meta: { title: '岗亭管理' },
24 29 name: '/pages/property/parkingBoxManage',
25 30 component: () => import('@/views/car/parkingBoxManageList.vue')
26 31 },
27 32 {
28 33 path: '/pages/property/listOwnerCar',
  34 + meta: { title: '业主车辆' },
29 35 name: '/pages/property/listOwnerCar',
30 36 component: () => import('@/views/car/listOwnerCarList.vue')
31 37 },
... ... @@ -46,26 +52,31 @@ export default [
46 52 },
47 53 {
48 54 path: '/pages/property/carInoutManage',
  55 + meta: { title: '进场记录' },
49 56 name: '/pages/property/carInoutManage',
50 57 component: () => import('@/views/car/carInoutManageList.vue')
51 58 },
52 59 {
53 60 path: '/pages/property/carInManage',
  61 + meta: { title: '在场车辆' },
54 62 name: '/pages/property/carInManage',
55 63 component: () => import('@/views/car/carInManageList.vue')
56 64 },
57 65 {
58 66 path: '/pages/property/remainingParkingSpace',
  67 + meta: { title: '剩余车位' },
59 68 name: '/pages/property/remainingParkingSpace',
60 69 component: () => import('@/views/car/remainingParkingSpaceList.vue')
61 70 },
62 71 {
63 72 path: '/pages/car/tempCarPayment',
  73 + meta: { title: '临时车缴费' },
64 74 name: '/pages/car/tempCarPayment',
65 75 component: () => import('@/views/car/tempCarPaymentList.vue')
66 76 },
67 77 {
68 78 path: '/pages/property/parkingSpaceApplyManage',
  79 + meta: { title: '车位申请' },
69 80 name: '/pages/property/parkingSpaceApplyManage',
70 81 component: () => import('@/views/car/parkingSpaceApplyManageList.vue')
71 82 },
... ...
src/router/communityRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/property/roomStructure',
  4 + meta: { title: '结构图' },
4 5 name: '/pages/property/roomStructure',
5 6 component: () => import('@/views/room/roomStructureList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/carStructure',
  10 + meta: { title: '车位结构图' },
9 11 name: '/pages/property/carStructure',
10 12 component: () => import('@/views/car/carStructureList.vue')
11 13 },
12 14 {
13 15 path: '/pages/property/propertyRightRegistrationManage',
  16 + meta: { title: '产权登记' },
14 17 name: '/pages/property/propertyRightRegistrationManage',
15 18 component: () => import('@/views/room/propertyRightRegistrationManageList.vue')
16 19 },
... ... @@ -21,6 +24,7 @@ export default [
21 24 },
22 25 {
23 26 path: '/pages/community/communityPublicityManage',
  27 + meta: { title: '小区公示' },
24 28 name: '/pages/community/communityPublicityManage',
25 29 component: () => import('@/views/community/communityPublicityManageList.vue')
26 30 },
... ... @@ -76,6 +80,7 @@ export default [
76 80 },
77 81 {
78 82 path: '/pages/community/wechatSubscribe',
  83 + meta: { title: '关注用户' },
79 84 name: '/pages/community/wechatSubscribe',
80 85 component: () => import('@/views/community/wechatSubscribeList.vue')
81 86 },
... ...
src/router/contractRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/admin/contractTypeManage',
  4 + meta: { title: '合同类型' },
4 5 name: '/pages/admin/contractTypeManage',
5 6 component: () => import('@/views/contract/contractTypeManageList.vue')
6 7 },
... ... @@ -11,11 +12,13 @@ export default [
11 12 },
12 13 {
13 14 path: '/pages/admin/contractPartyaManage',
  15 + meta: { title: '合同甲方' },
14 16 name: '/pages/admin/contractPartyaManage',
15 17 component: () => import('@/views/contract/contractPartyaManageList.vue')
16 18 },
17 19 {
18 20 path: '/pages/admin/newContractManage',
  21 + meta: { title: '起草合同' },
19 22 name: '/pages/admin/newContractManage',
20 23 component: () => import('@/views/contract/newContractManageList.vue')
21 24 },
... ... @@ -26,11 +29,13 @@ export default [
26 29 },
27 30 {
28 31 path: '/pages/admin/contractManage',
  32 + meta: { title: '合同查询' },
29 33 name: '/pages/admin/contractManage',
30 34 component: () => import('@/views/contract/contractManageList.vue')
31 35 },
32 36 {
33 37 path: '/pages/admin/contractChangeManage',
  38 + meta: { title: '合同变更' },
34 39 name: '/pages/admin/contractChangeManage',
35 40 component: () => import('@/views/contract/contractChangeManageList.vue')
36 41 },
... ... @@ -41,6 +46,7 @@ export default [
41 46 },
42 47 {
43 48 path: '/pages/admin/expirationContractManage',
  49 + meta: { title: '到期合同' },
44 50 name: '/pages/admin/expirationContractManage',
45 51 component: () => import('@/views/contract/expirationContractManageList.vue')
46 52 },
... ... @@ -56,21 +62,25 @@ export default [
56 62 },
57 63 {
58 64 path: '/pages/admin/contractApplyAuditOrders',
  65 + meta: { title: '起草待办' },
59 66 name: '/pages/admin/contractApplyAuditOrders',
60 67 component: () => import('@/views/contract/contractApplyAuditOrdersList.vue')
61 68 },
62 69 {
63 70 path: '/pages/admin/contractChangeAuditOrders',
  71 + meta: { title: '变更待办' },
64 72 name: '/pages/admin/contractChangeAuditOrders',
65 73 component: () => import('@/views/contract/contractChangeAuditOrdersList.vue')
66 74 },
67 75 {
68 76 path: '/pages/admin/contractApplyAuditHistoryOrders',
  77 + meta: { title: '起草已办' },
69 78 name: '/pages/admin/contractApplyAuditHistoryOrders',
70 79 component: () => import('@/views/contract/contractApplyAuditHistoryOrdersList.vue')
71 80 },
72 81 {
73 82 path:'/pages/admin/contractChangeAuditHistoryOrders',
  83 + meta: { title: '变更已办' },
74 84 name:'/pages/admin/contractChangeAuditHistoryOrders',
75 85 component: () => import('@/views/contract/contractChangeAuditHistoryOrdersList.vue')
76 86 },
... ...
src/router/devRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/dev/appManage',
  4 + meta: { title: '应用信息' },
4 5 name: '/pages/dev/appManage',
5 6 component: () => import('@/views/dev/app/appList.vue')
6 7 },
7 8 {
8 9 path: '/pages/dev/serviceManage',
  10 + meta: { title: '服务信息' },
9 11 name: '/pages/dev/serviceManage',
10 12 component: () => import('@/views/dev/serviceList.vue')
11 13 },
12 14 {
13 15 path: '/pages/dev/serviceRegisterManage',
  16 + meta: { title: '服务注册' },
14 17 name: '/pages/dev/serviceRegisterManage',
15 18 component: () => import('@/views/dev/routeList.vue')
16 19 },
... ... @@ -21,16 +24,19 @@ export default [
21 24 },
22 25 {
23 26 path: '/pages/dev/serviceImplManage',
  27 + meta: { title: '服务实现' },
24 28 name: '/pages/dev/serviceImplManage',
25 29 component: () => import('@/views/dev/serviceBusinessList.vue')
26 30 },
27 31 {
28 32 path: '/pages/dev/businessTableHisManage',
  33 + meta: { title: '业务轨迹' },
29 34 name: '/pages/dev/businessTableHisManage',
30 35 component: () => import('@/views/dev/businessTableHisList.vue')
31 36 },
32 37 {
33 38 path: '/pages/dev/menuCatalogManage',
  39 + meta: { title: '菜单目录' },
34 40 name: '/pages/dev/menuCatalogManage',
35 41 component: () => import('@/views/dev/menuCatalogList.vue')
36 42 },
... ... @@ -41,36 +47,43 @@ export default [
41 47 },
42 48 {
43 49 path: '/pages/dev/menuGroupManage',
  50 + meta: { title: '菜单组' },
44 51 name: '/pages/dev/menuGroupManage',
45 52 component: () => import('@/views/dev/menuGroupList.vue')
46 53 },
47 54 {
48 55 path: '/pages/dev/mappingDomainManage',
  56 + meta: { title: '配置项' },
49 57 name: '/pages/dev/mappingDomainManage',
50 58 component: () => import('@/views/dev/mappingDomainList.vue')
51 59 },
52 60 {
53 61 path: '/pages/dev/mappingManage',
  62 + meta: { title: '配置中心' },
54 63 name: '/pages/dev/mappingManage',
55 64 component: () => import('@/views/dev/mappingList.vue')
56 65 },
57 66 {
58 67 path: '/pages/dev/businessDatabusManage',
  68 + meta: { title: 'Databus' },
59 69 name: '/pages/dev/businessDatabusManage',
60 70 component: () => import('@/views/dev/businessDatabusList.vue')
61 71 },
62 72 {
63 73 path: '/pages/dev/dictManage',
  74 + meta: { title: '字典' },
64 75 name: '/pages/dev/dictManage',
65 76 component: () => import('@/views/dev/dictList.vue')
66 77 },
67 78 {
68 79 path: '/pages/dev/cacheManage',
  80 + meta: { title: '刷新缓存' },
69 81 name: '/pages/dev/cacheManage',
70 82 component: () => import('@/views/dev/cacheList.vue')
71 83 },
72 84 {
73 85 path: '/pages/dev/menuManage',
  86 + meta: { title: '菜单维护' },
74 87 name: '/pages/dev/menuManage',
75 88 component: () => import('@/views/dev/menuList.vue')
76 89 },
... ... @@ -81,11 +94,13 @@ export default [
81 94 },
82 95 {
83 96 path: '/pages/dev/jobManage',
  97 + meta: { title: '定时任务' },
84 98 name: '/pages/dev/jobManage',
85 99 component: () => import('@/views/dev/taskList.vue')
86 100 },
87 101 {
88 102 path: '/pages/dev/attrSpecManage',
  103 + meta: { title: '属性' },
89 104 name: '/pages/dev/attrSpecManage',
90 105 component: () => import('@/views/dev/attrSpecList.vue')
91 106 },
... ... @@ -96,41 +111,49 @@ export default [
96 111 },
97 112 {
98 113 path: '/pages/dev/reportCustomGroupManage',
  114 + meta: { title: '报表组' },
99 115 name: '/pages/dev/reportCustomGroupManage',
100 116 component: () => import('@/views/report/reportCustomGroupManageList.vue')
101 117 },
102 118 {
103 119 path: '/pages/dev/reportCustomManage',
  120 + meta: { title: '报表信息' },
104 121 name: '/pages/dev/reportCustomManage',
105 122 component: () => import('@/views/report/reportCustomManageList.vue')
106 123 },
107 124 {
108 125 path: '/pages/dev/reportCustomComponentManage',
  126 + meta: { title: '报表组件' },
109 127 name: '/pages/dev/reportCustomComponentManage',
110 128 component: () => import('@/views/report/reportCustomComponentManageList.vue')
111 129 },
112 130 {
113 131 path: '/pages/dev/transactionLogManage',
  132 + meta: { title: '交互日志' },
114 133 name: '/pages/dev/transactionLogManage',
115 134 component: () => import('@/views/log/transactionLogManageList.vue')
116 135 },
117 136 {
118 137 path: '/pages/dev/initializeCommunityManage',
  138 + meta: { title: '初始化小区' },
119 139 name: '/pages/dev/initializeCommunityManage',
120 140 component: () => import('@/views/community/initializeCommunityManageList.vue')
121 141 },
122 142 {
123 143 path: '/pages/dev/serviceProvideManage',
  144 + meta: { title: '服务提供' },
124 145 name: '/pages/dev/serviceProvideManage',
125 146 component: () => import('@/views/dev/serviceProvideManageList.vue')
126 147 },
127 148 {
128 149 path: '/views/dev/devServiceProvide',
  150 + meta: { title: '开发服务' },
129 151 name: '/views/dev/devServiceProvide',
130 152 component: () => import('@/views/dev/devServiceProvideList.vue')
131 153 },
132 154 {
133 155 path: '/pages/dev/transactionOutLog',
  156 + meta: { title: '调用三方' },
134 157 name: '/pages/dev/transactionOutLog',
135 158 component: () => import('@/views/log/transactionOutLogList.vue')
136 159 },
... ...
src/router/feeRouter.js
... ... @@ -2,30 +2,36 @@ export default [
2 2 {
3 3 path: '/pages/property/contractCreateFee',
4 4 name: '/pages/property/contractCreateFee',
5   - component: () => import('@/views/fee/contractCreateFeeList.vue')
  5 + component: () => import('@/views/fee/contractCreateFeeList.vue'),
  6 + meta: { title: '合同收费' }
6 7 },
7 8 {
8 9 path: '/pages/property/meterWaterManage',
9 10 name: '/pages/property/meterWaterManage',
10   - component: () => import('@/views/fee/meterWaterManageList.vue')
  11 + component: () => import('@/views/fee/meterWaterManageList.vue'),
  12 + meta: { title: '水电抄表' }
11 13 },
12 14 {
13 15 path: '/views/fee/meterTypeManage',
14 16 name: '/views/fee/meterTypeManage',
15   - component: () => import('@/views/fee/meterTypeManageList.vue')
  17 + component: () => import('@/views/fee/meterTypeManageList.vue'),
  18 + meta: { title: '表类型管理' }
16 19 },
17 20 {
18 21 path: '/pages/property/returnPayFeeManage',
  22 + meta: { title: '退费审核' },
19 23 name: '/pages/property/returnPayFeeManage',
20 24 component: () => import('@/views/fee/returnPayFeeManageList.vue')
21 25 },
22 26 {
23 27 path: '/pages/property/feeDiscountManage',
  28 + meta: { title: '折扣设置' },
24 29 name: '/pages/property/feeDiscountManage',
25 30 component: () => import('@/views/fee/feeDiscountManageList.vue')
26 31 },
27 32 {
28 33 path: '/pages/property/applyRoomDiscountManage',
  34 + meta: { title: '优惠申请' },
29 35 name: '/pages/property/applyRoomDiscountManage',
30 36 component: () => import('@/views/fee/applyRoomDiscountManageList.vue')
31 37 },
... ... @@ -41,21 +47,25 @@ export default [
41 47 },
42 48 {
43 49 path: '/pages/property/feeReceipt',
  50 + meta: { title: '补打收据' },
44 51 name: '/pages/property/feeReceipt',
45 52 component: () => import('@/views/fee/feeReceiptList.vue')
46 53 },
47 54 {
48 55 path: '/pages/fee/floorShare',
  56 + meta: { title: '楼栋公摊' },
49 57 name: '/pages/fee/floorShare',
50 58 component: () => import('@/views/fee/floorShareList.vue')
51 59 },
52 60 {
53 61 path: '/pages/fee/shareReading',
  62 + meta: { title: '公摊抄表' },
54 63 name: '/pages/fee/shareReading',
55 64 component: () => import('@/views/fee/shareReadingList.vue')
56 65 },
57 66 {
58 67 path: '/pages/property/roomFeeImport',
  68 + meta: { title: '费用导入' },
59 69 name: '/pages/property/roomFeeImport',
60 70 component: () => import('@/views/fee/roomFeeImportList.vue')
61 71 },
... ... @@ -71,11 +81,13 @@ export default [
71 81 },
72 82 {
73 83 path: '/pages/property/feeComboManage',
  84 + meta: { title: '费用套餐' },
74 85 name: '/pages/property/feeComboManage',
75 86 component: () => import('@/views/fee/feeComboManageList.vue')
76 87 },
77 88 {
78 89 path: '/pages/property/payFeeAuditManage',
  90 + meta: { title: '缴费审核' },
79 91 name: '/pages/property/payFeeAuditManage',
80 92 component: () => import('@/views/fee/payFeeAuditManageList.vue')
81 93 },
... ... @@ -86,16 +98,19 @@ export default [
86 98 },
87 99 {
88 100 path: '/pages/property/payFeeBatch',
  101 + meta: { title: '取消费用' },
89 102 name: '/pages/property/payFeeBatch',
90 103 component: () => import('@/views/fee/payFeeBatchList.vue')
91 104 },
92 105 {
93 106 path: '/pages/property/listOweFee',
  107 + meta: { title: '欠费信息' },
94 108 name: '/pages/property/listOweFee',
95 109 component: () => import('@/views/fee/listOweFeeList.vue')
96 110 },
97 111 {
98 112 path: '/pages/fee/oweFeeCallable',
  113 + meta: { title: '欠费催缴' },
99 114 name: '/pages/fee/oweFeeCallable',
100 115 component: () => import('@/views/fee/oweFeeCallableList.vue')
101 116 },
... ... @@ -106,16 +121,19 @@ export default [
106 121 },
107 122 {
108 123 path: '/pages/property/staffFeeManage',
  124 + meta: { title: '员工收费' },
109 125 name: '/pages/property/staffFeeManage',
110 126 component: () => import('@/views/fee/staffFeeManageList.vue')
111 127 },
112 128 {
113 129 path: '/pages/property/feeSummary',
  130 + meta: { title: '费用汇总表' },
114 131 name: '/pages/property/feeSummary',
115 132 component: () => import('@/views/fee/feeSummaryList.vue')
116 133 },
117 134 {
118 135 path: '/pages/property/roomCreateFee',
  136 + meta: { title: '房屋收费' },
119 137 name: '/pages/property/roomCreateFee',
120 138 component: () => import('@/views/fee/roomCreateFeeList.vue')
121 139 },
... ... @@ -131,6 +149,7 @@ export default [
131 149 },
132 150 {
133 151 path: '/pages/property/simplifyAcceptance',
  152 + meta: { title: '业务受理' },
134 153 name: '/pages/property/simplifyAcceptance',
135 154 component: () => import('@/views/simplify/simplifyAcceptanceList.vue')
136 155 },
... ...
src/router/index.js
... ... @@ -20,6 +20,9 @@ import feeRouter from './feeRouter'
20 20  
21 21 Vue.use(VueRouter)
22 22  
  23 +// 多标签页:仅当路由配置了 meta.title 或 meta.titleKey 时才会在标签栏展示
  24 +// meta: { title: '费用项设置' } // 直接文案
  25 +// meta: { titleKey: 'fee.titleConfig' } // i18n 的 key
23 26 const routes = [
24 27 {
25 28 path: '/',
... ... @@ -29,11 +32,13 @@ const routes = [
29 32 {
30 33 path: '/views/index/index',
31 34 name: '/views/index/index',
32   - component: () => import('@/views/index/index.vue')
  35 + component: () => import('@/views/index/index.vue'),
  36 + meta: { title: '首页' }
33 37 },
34 38  
35 39 {
36 40 path: '/pages/frame/changeStaffPwd',
  41 + meta: { title: '修改密码' },
37 42 name: '/pages/frame/changeStaffPwd',
38 43 component: () => import('@/views/user/login/updatePwd.vue')
39 44 },
... ... @@ -41,12 +46,14 @@ const routes = [
41 46 {
42 47  
43 48 path: '/pages/frame/orgManage',
  49 + meta: { title: '组织信息' },
44 50 name: '/pages/frame/orgManage',
45 51 component: () => import('@/views/org/orgList.vue')
46 52 },
47 53  
48 54 {
49 55 path: '/pages/frame/staff',
  56 + meta: { title: '员工信息' },
50 57 name: '/pages/frame/staff',
51 58 component: () => import('@/views/staff/staffList.vue')
52 59 },
... ... @@ -57,6 +64,7 @@ const routes = [
57 64 },
58 65 {
59 66 path: '/pages/frame/role',
  67 + meta: { title: '角色权限' },
60 68 name: '/pages/frame/role',
61 69 component: () => import('@/views/role/roleList.vue')
62 70 },
... ... @@ -76,11 +84,13 @@ const routes = [
76 84 },
77 85 {
78 86 path: '/pages/frame/systemInfoManage',
  87 + meta: { title: '系统配置' },
79 88 name: '/pages/frame/systemInfoManage',
80 89 component: () => import('@/views/system/systemInfoManageList.vue')
81 90 },
82 91 {
83 92 path: '/pages/frame/registerProtocol',
  93 + meta: { title: '注册协议' },
84 94 name: '/pages/frame/registerProtocol',
85 95 component: () => import('@/views/system/registerProtocolList.vue')
86 96 },
... ... @@ -103,11 +113,13 @@ const routes = [
103 113  
104 114 {
105 115 path: '/pages/common/communityManage',
  116 + meta: { title: '小区信息' },
106 117 name: '/pages/common/communityManage',
107 118 component: () => import('@/views/community/communityManageList.vue')
108 119 },
109 120 {
110 121 path: '/pages/admin/propertyCompanyManage',
  122 + meta: { title: '物业公司' },
111 123 name: '/pages/admin/propertyCompanyManage',
112 124 component: () => import('@/views/store/propertyCompanyManageList.vue')
113 125 },
... ... @@ -118,26 +130,31 @@ const routes = [
118 130 },
119 131 {
120 132 path: '/pages/community/cityArea',
  133 + meta: { title: '地区' },
121 134 name: '/pages/community/cityArea',
122 135 component: () => import('@/views/community/cityAreaList.vue')
123 136 },
124 137 {
125 138 path: '/pages/admin/merchantManage',
  139 + meta: { title: '周边商家' },
126 140 name: '/pages/admin/merchantManage',
127 141 component: () => import('@/views/mall/merchantManageList.vue')
128 142 },
129 143 {
130 144 path: '/pages/admin/shopManage',
  145 + meta: { title: '店铺信息' },
131 146 name: '/views/mall/shopManage',
132 147 component: () => import('@/views/mall/shopManageList.vue')
133 148 },
134 149 {
135 150 path: '/pages/admin/shopCommunity',
  151 + meta: { title: '小区店铺' },
136 152 name: '/pages/admin/shopCommunity',
137 153 component: () => import('@/views/mall/shopCommunityList.vue')
138 154 },
139 155 {
140 156 path: '/pages/staff/systemUser',
  157 + meta: { title: '物业用户' },
141 158 name: '/pages/staff/systemUser',
142 159 component: () => import('@/views/staff/systemUserList.vue')
143 160 },
... ... @@ -148,6 +165,7 @@ const routes = [
148 165 },
149 166 {
150 167 path: '/pages/staff/storeStaff',
  168 + meta: { title: '物业员工' },
151 169 name: '/pages/staff/storeStaff',
152 170 component: () => import('@/views/staff/storeStaffList.vue')
153 171 },
... ... @@ -158,22 +176,26 @@ const routes = [
158 176 },
159 177 {
160 178 path: '/pages/community/adminRoom',
  179 + meta: { title: '小区房屋' },
161 180 name: '/pages/community/adminRoom',
162 181 component: () => import('@/views/community/adminRoomList.vue')
163 182 },
164 183 {
165 184 path: '/pages/owner/adminOwner',
  185 + meta: { title: '小区业主' },
166 186 name: '/pages/owner/adminOwner',
167 187 component: () => import('@/views/owner/adminOwnerList.vue')
168 188 },
169 189  
170 190 {
171 191 path: '/pages/owner/adminAuthOwner',
  192 + meta: { title: '业主认证' },
172 193 name: '/pages/owner/adminAuthOwner',
173 194 component: () => import('@/views/owner/adminAuthOwnerList.vue')
174 195 },
175 196 {
176 197 path: '/pages/owner/adminAccount',
  198 + meta: { title: '业主账户' },
177 199 name: '/pages/owner/adminAccount',
178 200 component: () => import('@/views/account/adminAccountList.vue')
179 201 },
... ... @@ -184,17 +206,20 @@ const routes = [
184 206 },
185 207 {
186 208 path: '/pages/fee/adminFeeConfig',
  209 + meta: { title: '小区费用项' },
187 210 name: '/pages/fee/adminFeeConfig',
188 211 component: () => import('@/views/fee/adminFeeConfigList.vue')
189 212 },
190 213  
191 214 {
192 215 path: '/pages/fee/adminRoomFee',
  216 + meta: { title: '房屋费用' },
193 217 name: '/pages/fee/adminRoomFee',
194 218 component: () => import('@/views/fee/adminRoomFeeList.vue')
195 219 },
196 220 {
197 221 path: '/pages/work/adminRepair',
  222 + meta: { title: '小区报修' },
198 223 name: '/pages/work/adminRepair',
199 224 component: () => import('@/views/work/adminRepairList.vue')
200 225 },
... ... @@ -206,6 +231,7 @@ const routes = [
206 231  
207 232 {
208 233 path: '/pages/complaint/adminComplaint',
  234 + meta: { title: '小区投诉' },
209 235 name: '/pages/complaint/adminComplaint',
210 236 component: () => import('@/views/complaint/adminComplaintList.vue')
211 237 },
... ... @@ -216,6 +242,7 @@ const routes = [
216 242 },
217 243 {
218 244 path: '/pages/oa/adminWorkPool',
  245 + meta: { title: '小区工作单' },
219 246 name: '/pages/oa/adminWorkPool',
220 247 component: () => import('@/views/work/adminWorkPoolList.vue')
221 248 },
... ... @@ -226,103 +253,123 @@ const routes = [
226 253 },
227 254 {
228 255 path: '/pages/iot/aAccessControl',
  256 + meta: { title: '小区门禁' },
229 257 name: '/pages/iot/aAccessControl',
230 258 component: () => import('@/views/iot/aAccessControlList.vue')
231 259 },
232 260 {
233 261 path: '/pages/iot/adminBarrier',
  262 + meta: { title: '道闸相机' },
234 263 name: '/pages/iot/adminBarrier',
235 264 component: () => import('@/views/iot/adminBarrierList.vue')
236 265 },
237 266  
238 267 {
239 268 path: '/pages/iot/adminMeter',
  269 + meta: { title: '水电表' },
240 270 name: '/pages/iot/adminMeter',
241 271 component: () => import('@/views/iot/adminMeterList.vue')
242 272 },
243 273 {
244 274 path: '/pages/iot/adminInout',
  275 + meta: { title: '门禁出入' },
245 276 name: '/pages/iot/adminInout',
246 277 component: () => import('@/views/iot/adminInoutList.vue')
247 278 },
248 279  
249 280 {
250 281 path: '/pages/iot/adminChargeOrder',
  282 + meta: { title: '充电订单' },
251 283 name: '/pages/iot/adminChargeOrder',
252 284 component: () => import('@/views/iot/adminChargeOrderList.vue')
253 285 },
254 286 {
255 287 path: '/pages/iot/adminMeterRecharge',
  288 + meta: { title: '水电充值' },
256 289 name: '/pages/iot/adminMeterRecharge',
257 290 component: () => import('@/views/iot/adminMeterRechargeList.vue')
258 291 },
259 292 {
260 293 path: '/pages/report/operationalAnalysis',
  294 + meta: { title: '运营分析' },
261 295 name: '/pages/report/operationalAnalysis',
262 296 component: () => import('@/views/report/operationalAnalysisList.vue')
263 297 },
264 298 {
265 299 path: '/pages/report/communityFeeSummary',
  300 + meta: { title: '小区费用汇总' },
266 301 name: '/pages/report/communityFeeSummary',
267 302 component: () => import('@/views/report/communityFeeSummaryList.vue')
268 303 },
269 304 {
270 305 path: '/pages/fee/adminPayFeeDetail',
  306 + meta: { title: '缴费记录' },
271 307 name: '/pages/fee/adminPayFeeDetail',
272 308 component: () => import('@/views/fee/adminPayFeeDetailList.vue')
273 309 },
274 310 {
275 311 path: '/pages/fee/adminOweFeeDetail',
  312 + meta: { title: '小区欠费' },
276 313 name: '/pages/fee/adminOweFeeDetail',
277 314 component: () => import('@/views/fee/adminOweFeeDetailList.vue')
278 315 },
279 316 {
280 317 path: '/pages/admin/orderManage',
  318 + meta: { title: '受理单' },
281 319 name: '/pages/admin/orderManage',
282 320 component: () => import('@/views/admin/orderManageList.vue')
283 321 },
284 322 {
285 323 path: '/pages/frame/userLogin',
  324 + meta: { title: '登录日志' },
286 325 name: '/pages/frame/userLogin',
287 326 component: () => import('@/views/user/userLoginList.vue')
288 327 },
289 328 {
290 329 path: '/pages/admin/productSj',
  330 + meta: { title: '上架商品' },
291 331 name: '/pages/admin/productSj',
292 332 component: () => import('@/views/mall/productSjList.vue')
293 333 },
294 334 {
295 335 path: '/pages/admin/housekeepingSjServ',
  336 + meta: { title: '上架服务' },
296 337 name: '/pages/admin/housekeepingSjServ',
297 338 component: () => import('@/views/mall/housekeepingSjServList.vue')
298 339 },
299 340 {
300 341 path: '/pages/admin/storeOrderCartManage',
  342 + meta: { title: '商城订单' },
301 343 name: '/pages/admin/storeOrderCartManage',
302 344 component: () => import('@/views/mall/storeOrderCartManageList.vue')
303 345 },
304 346 {
305 347 path: '/pages/admin/storeOrderCartReturn',
  348 + meta: { title: '退货订单' },
306 349 name: '/pages/admin/storeOrderCartReturn',
307 350 component: () => import('@/views/mall/storeOrderCartReturnList.vue')
308 351 },
309 352 {
310 353 path: '/pages/admin/userIntegral',
  354 + meta: { title: '用户积分' },
311 355 name: '/pages/admin/userIntegral',
312 356 component: () => import('@/views/mall/userIntegralList.vue')
313 357 },
314 358 {
315 359 path: '/pages/admin/integralDetail',
  360 + meta: { title: '积分交易' },
316 361 name: '/pages/admin/integralDetail',
317 362 component: () => import('@/views/mall/integralDetailList.vue')
318 363 },
319 364 {
320 365 path: '/pages/admin/marketSmsManage',
  366 + meta: { title: '营销配置' },
321 367 name: '/pages/admin/marketSmsManage',
322 368 component: () => import('@/views/market/marketSmsManageList.vue')
323 369 },
324 370 {
325 371 path: '/pages/admin/marketWay',
  372 + meta: { title: '营销方式' },
326 373 name: '/pages/admin/marketWay',
327 374 component: () => import('@/views/market/marketWayList.vue')
328 375 },
... ... @@ -333,21 +380,25 @@ const routes = [
333 380 },
334 381 {
335 382 path: '/pages/admin/marketRule',
  383 + meta: { title: '营销规则' },
336 384 name: '/pages/admin/marketRule',
337 385 component: () => import('@/views/market/marketRuleList.vue')
338 386 },
339 387 {
340 388 path: '/pages/admin/marketBlacklistManage',
  389 + meta: { title: '营销黑名单' },
341 390 name: '/pages/admin/marketBlacklistManage',
342 391 component: () => import('@/views/market/marketBlacklistManageList.vue')
343 392 },
344 393 {
345 394 path: '/pages/admin/marketLog',
  395 + meta: { title: '营销记录' },
346 396 name: '/pages/admin/marketLog',
347 397 component: () => import('@/views/market/marketLogList.vue')
348 398 },
349 399 {
350 400 path: '/pages/property/advertManage',
  401 + meta: { title: '发布广告' },
351 402 name: '/pages/property/advertManage',
352 403 component: () => import('@/views/admin/advertManageList.vue')
353 404 },
... ... @@ -368,11 +419,13 @@ const routes = [
368 419 },
369 420 {
370 421 path: '/pages/admin/couponPoolManage',
  422 + meta: { title: '制作优惠券' },
371 423 name: '/pages/admin/couponPoolManage',
372 424 component: () => import('@/views/account/couponPoolManageList.vue')
373 425 },
374 426 {
375 427 path: '/pages/admin/couponDetailManage',
  428 + meta: { title: '购买记录' },
376 429 name: '/pages/admin/couponDetailManage',
377 430 component: () => import('@/views/account/couponDetailManageList.vue')
378 431 },
... ... @@ -398,6 +451,7 @@ const routes = [
398 451 },
399 452 {
400 453 path: '/pages/staff/aStaff',
  454 + meta: { title: '运营员工' },
401 455 name: '/pages/staff/aStaff',
402 456 component: () => import('@/views/staff/aStaffList.vue')
403 457 },
... ... @@ -408,36 +462,43 @@ const routes = [
408 462 },
409 463 {
410 464 path: '/pages/staff/aStaffCommunity',
  465 + meta: { title: '员工小区' },
411 466 name: '/pages/staff/aStaffCommunity',
412 467 component: () => import('@/views/staff/aStaffCommunityList.vue')
413 468 },
414 469 {
415 470 path: '/pages/community/communityWechat',
  471 + meta: { title: '小区公众号' },
416 472 name: '/pages/community/communityWechat',
417 473 component: () => import('@/views/community/communityWechatList.vue')
418 474 },
419 475 {
420 476 path: '/pages/community/communityMini',
  477 + meta: { title: '小区小程序' },
421 478 name: '/pages/community/communityMini',
422 479 component: () => import('@/views/community/communityMiniList.vue')
423 480 },
424 481 {
425 482 path: '/pages/fee/communityPayment',
  483 + meta: { title: '小区支付' },
426 484 name: '/pages/fee/communityPayment',
427 485 component: () => import('@/views/fee/communityPaymentList.vue')
428 486 },
429 487 {
430 488 path: '/pages/common/enterCommunity',
  489 + meta: { title: '我的小区' },
431 490 name: '/pages/common/enterCommunity',
432 491 component: () => import('@/views/community/enterCommunityList.vue')
433 492 },
434 493 {
435 494 path: '/pages/property/roomRenovationManage',
  495 + meta: { title: '房屋装修' },
436 496 name: '/pages/property/roomRenovationManage',
437 497 component: () => import('@/views/community/roomRenovationManageList.vue')
438 498 },
439 499 {
440 500 path: '/pages/property/feeConfigManage',
  501 + meta: { title: '费用项设置' },
441 502 name: '/pages/property/feeConfigManage',
442 503 component: () => import('@/views/fee/feeConfigManageList.vue')
443 504 },
... ... @@ -448,6 +509,7 @@ const routes = [
448 509 },
449 510 {
450 511 path: '/pages/property/room',
  512 + meta: { title: '房屋管理' },
451 513 name: '/pages/property/room',
452 514 component: () => import('@/views/room/roomList.vue')
453 515 },
... ... @@ -468,11 +530,13 @@ const routes = [
468 530 },
469 531 {
470 532 path: '/pages/property/shops',
  533 + meta: { title: '商铺管理' },
471 534 name: '/pages/property/shops',
472 535 component: () => import('@/views/room/shopsList.vue')
473 536 },
474 537 {
475 538 path: '/pages/property/listOwner',
  539 + meta: { title: '业主信息' },
476 540 name: '/pages/property/listOwner',
477 541 component: () => import('@/views/owner/listOwner.vue')
478 542 },
... ... @@ -483,11 +547,13 @@ const routes = [
483 547 },
484 548 {
485 549 path: '/pages/property/auditAuthOwner',
  550 + meta: { title: '业主认证' },
486 551 name: '/pages/property/auditAuthOwner',
487 552 component: () => import('@/views/owner/auditAuthOwnerList.vue')
488 553 },
489 554 {
490 555 path: '/pages/property/accountManage',
  556 + meta: { title: '业主账户' },
491 557 name: '/pages/property/accountManage',
492 558 component: () => import('@/views/account/accountManageList.vue')
493 559 },
... ... @@ -498,26 +564,31 @@ const routes = [
498 564 },
499 565 {
500 566 path: '/pages/property/communitySpaceManage',
  567 + meta: { title: '场地管理' },
501 568 name: '/pages/property/communitySpaceManage',
502 569 component: () => import('@/views/community/communitySpaceManageList.vue')
503 570 },
504 571 {
505 572 path: '/pages/property/reportCommunitySpace',
  573 + meta: { title: '场地预约' },
506 574 name: '/pages/property/reportCommunitySpace',
507 575 component: () => import('@/views/community/reportCommunitySpaceList.vue')
508 576 },
509 577 {
510 578 path: '/pages/property/communitySpacePersonManage',
  579 + meta: { title: '场地预约订单' },
511 580 name: '/pages/property/communitySpacePersonManage',
512 581 component: () => import('@/views/community/communitySpacePersonManageList.vue')
513 582 },
514 583 {
515 584 path: '/pages/property/communitySpaceConfirm',
  585 + meta: { title: '预约核销' },
516 586 name: '/pages/property/communitySpaceConfirm',
517 587 component: () => import('@/views/community/communitySpaceConfirmList.vue')
518 588 },
519 589 {
520 590 path: '/pages/owner/ownerCommitteeManage',
  591 + meta: { title: '业委会' },
521 592 name: '/pages/owner/ownerCommitteeManage',
522 593 component: () => import('@/views/owner/ownerCommitteeManageList.vue')
523 594 },
... ... @@ -538,6 +609,7 @@ const routes = [
538 609 },
539 610 {
540 611 path: '/pages/fee/ownerInvoice',
  612 + meta: { title: '发票抬头' },
541 613 name: '/pages/fee/ownerInvoice',
542 614 component: () => import('@/views/fee/ownerInvoiceList.vue')
543 615 },
... ... @@ -548,6 +620,7 @@ const routes = [
548 620 },
549 621 {
550 622 path: '/pages/fee/invoiceApply',
  623 + meta: { title: '发票' },
551 624 name: '/pages/fee/invoiceApply',
552 625 component: () => import('@/views/fee/invoiceApplyList.vue')
553 626 },
... ... @@ -569,6 +642,7 @@ const routes = [
569 642  
570 643 {
571 644 path: '/pages/property/carCreateFee',
  645 + meta: { title: '车辆收费' },
572 646 name: '/pages/property/carCreateFee',
573 647 component: () => import('@/views/fee/carCreateFeeList.vue')
574 648 },
... ... @@ -579,6 +653,7 @@ const routes = [
579 653 },
580 654 {
581 655 path: '/pages/work/repairSetting',
  656 + meta: { title: '报修设置' },
582 657 name: '/pages/work/repairSetting',
583 658 component: () => import('@/views/work/repairSettingList.vue')
584 659 },
... ... @@ -589,11 +664,13 @@ const routes = [
589 664 },
590 665 {
591 666 path: '/pages/property/ownerRepairManage',
  667 + meta: { title: '电话报修' },
592 668 name: '/pages/property/ownerRepairManage',
593 669 component: () => import('@/views/work/ownerRepairManageList.vue')
594 670 },
595 671 {
596 672 path: '/pages/property/repairPoolManage',
  673 + meta: { title: '工单池' },
597 674 name: '/pages/property/repairPoolManage',
598 675 component: () => import('@/views/work/repairPoolManageList.vue')
599 676 },
... ... @@ -604,26 +681,31 @@ const routes = [
604 681 },
605 682 {
606 683 path: '/pages/property/repairDispatchManage',
  684 + meta: { title: '报修待办' },
607 685 name: '/pages/property/repairDispatchManage',
608 686 component: () => import('@/views/work/repairDispatchManageList.vue')
609 687 },
610 688 {
611 689 path: '/pages/property/myRepairDispatchManage',
  690 + meta: { title: '报修已办' },
612 691 name: '/pages/property/myRepairDispatchManage',
613 692 component: () => import('@/views/work/myRepairDispatchManageList.vue')
614 693 },
615 694 {
616 695 path: '/pages/property/repairReturnVisit',
  696 + meta: { title: '报修回访' },
617 697 name: '/pages/property/repairReturnVisit',
618 698 component: () => import('@/views/work/repairReturnVisitList.vue')
619 699 },
620 700 {
621 701 path: '/pages/property/repairForceFinishManage',
  702 + meta: { title: '强制回单' },
622 703 name: '/pages/property/repairForceFinishManage',
623 704 component: () => import('@/views/work/repairForceFinishManageList.vue')
624 705 },
625 706 {
626 707 path: '/pages/property/locationManage',
  708 + meta: { title: '设备位置' },
627 709 name: '/pages/property/locationManage',
628 710 component: () => import('@/views/community/locationManageList.vue')
629 711 },
... ...
src/router/inspectionRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/inspection/inspectionPoint',
  4 + meta: { title: '巡检点' },
4 5 name: '/pages/inspection/inspectionPoint',
5 6 component: () => import('@/views/inspection/inspectionPointList.vue')
6 7 },
7 8 {
8 9 path: '/pages/inspection/inspectionRoute',
  10 + meta: { title: '巡检路线' },
9 11 name: '/pages/inspection/inspectionRoute',
10 12 component: () => import('@/views/inspection/inspectionRouteList.vue')
11 13 },
12 14 {
13 15 path: '/pages/inspection/adminInspectionPlan',
  16 + meta: { title: '小区巡检计划' },
14 17 name: '/pages/inspection/adminInspectionPlan',
15 18 component: () => import('@/views/inspection/adminInspectionPlanList.vue')
16 19 },
... ... @@ -21,6 +24,7 @@ export default [
21 24 },
22 25 {
23 26 path: '/pages/inspection/adminInspectionTask',
  27 + meta: { title: '巡检任务' },
24 28 name: '/pages/inspection/adminInspectionTask',
25 29 component: () => import('@/views/inspection/adminInspectionTaskList.vue')
26 30 },
... ... @@ -31,6 +35,7 @@ export default [
31 35 },
32 36 {
33 37 path: '/pages/property/inspectionItemManage',
  38 + meta: { title: '巡检项目' },
34 39 name: '/pages/property/inspectionItemManage',
35 40 component: () => import('@/views/inspection/inspectionItemManageList.vue')
36 41 },
... ... @@ -41,6 +46,7 @@ export default [
41 46 },
42 47 {
43 48 path: '/pages/inspection/inspectionPlan',
  49 + meta: { title: '巡检计划' },
44 50 name: '/pages/inspection/inspectionPlan',
45 51 component: () => import('@/views/inspection/inspectionPlanList.vue')
46 52 },
... ... @@ -51,21 +57,25 @@ export default [
51 57 },
52 58 {
53 59 path: '/pages/inspection/inspectionTask',
  60 + meta: { title: '巡检任务' },
54 61 name: '/pages/inspection/inspectionTask',
55 62 component: () => import('@/views/inspection/InspectionTaskList.vue')
56 63 },
57 64 {
58 65 path: '/pages/property/inspectionTaskDetails',
  66 + meta: { title: '巡检明细' },
59 67 name: '/pages/property/inspectionTaskDetails',
60 68 component: () => import('@/views/inspection/inspectionTaskDetailsList.vue')
61 69 },
62 70 {
63 71 path: '/pages/property/maintainanceItem',
  72 + meta: { title: '检查项' },
64 73 name: '/pages/property/maintainanceItem',
65 74 component: () => import('@/views/inspection/maintainanceItemList.vue')
66 75 },
67 76 {
68 77 path: '/pages/property/maintainanceStandardManage',
  78 + meta: { title: '保养标准' },
69 79 name: '/pages/property/maintainanceStandardManage',
70 80 component: () => import('@/views/inspection/maintainanceStandardManageList.vue')
71 81 },
... ... @@ -76,6 +86,7 @@ export default [
76 86 },
77 87 {
78 88 path: '/pages/property/maintainancePlanManage',
  89 + meta: { title: '保养计划' },
79 90 name: '/pages/property/maintainancePlanManage',
80 91 component: () => import('@/views/inspection/maintainancePlanManageList.vue')
81 92 },
... ... @@ -96,6 +107,7 @@ export default [
96 107 },
97 108 {
98 109 path: '/pages/property/maintainanceTaskDetails',
  110 + meta: { title: '保养明细' },
99 111 name: '/pages/property/maintainanceTaskDetails',
100 112 component: () => import('@/views/inspection/maintainanceTaskDetailsList.vue')
101 113 },
... ... @@ -106,6 +118,7 @@ export default [
106 118 },
107 119 {
108 120 path: '/pages/property/maintainanceTaskManage',
  121 + meta: { title: '保养任务' },
109 122 name: '/pages/property/maintainanceTaskManage',
110 123 component: () => import('@/views/inspection/maintainanceTaskManageList.vue')
111 124 },
... ...
src/router/machineRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/property/machineTypeTreeManage',
  4 + meta: { title: '设备类型' },
4 5 name: '/pages/property/machineTypeTreeManage',
5 6 component: () => import('@/views/machine/machineTypeTreeManageList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/equipmentAccount',
  10 + meta: { title: '设备台账' },
9 11 name: '/pages/property/equipmentAccount',
10 12 component: () => import('@/views/machine/equipmentAccountList.vue')
11 13 },
... ... @@ -26,31 +28,37 @@ export default [
26 28 },
27 29 {
28 30 path: '/pages/iot/adminChargeMachine',
  31 + meta: { title: '充电桩' },
29 32 name: '/pages/iot/adminChargeMachine',
30 33 component: () => import('@/views/iot/adminChargeMachineList.vue')
31 34 },
32 35 {
33 36 path: '/pages/property/machineTranslateManage',
  37 + meta: { title: '物联网同步' },
34 38 name: '/pages/property/machineTranslateManage',
35 39 component: () => import('@/views/machine/machineTranslateManageList.vue')
36 40 },
37 41 {
38 42 path: '/pages/machine/accessControlInout',
  43 + meta: { title: '开门记录' },
39 44 name: '/pages/machine/accessControlInout',
40 45 component: () => import('@/views/machine/accessControlInoutList.vue')
41 46 },
42 47 {
43 48 path: '/pages/print/machinePrinterManage',
  49 + meta: { title: '云打印机' },
44 50 name: '/pages/print/machinePrinterManage',
45 51 component: () => import('@/views/machine/machinePrinterManageList.vue')
46 52 },
47 53 {
48 54 path: '/pages/print/printerRule',
  55 + meta: { title: '云打印规则' },
49 56 name: '/pages/print/printerRule',
50 57 component: () => import('@/views/machine/printerRuleList.vue')
51 58 },
52 59 {
53 60 path: '/pages/property/videoControl',
  61 + meta: { title: '视频监控' },
54 62 name: '/pages/property/videoControl',
55 63 component: () => import('@/views/machine/videoControlList.vue')
56 64 },
... ...
src/router/oaRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/property/activitiesTypeManage',
  4 + meta: { title: '信息大类' },
4 5 name: '/pages/property/activitiesTypeManage',
5 6 component: () => import('@/views/oa/activitiesTypeManageList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/activitiesManage',
  10 + meta: { title: '信息发布' },
9 11 name: '/pages/property/activitiesManage',
10 12 component: () => import('@/views/oa/activitiesManageList.vue')
11 13 },
12 14 {
13 15 path: '/pages/common/noticeManage',
  16 + meta: { title: '发布公告' },
14 17 name: '/pages/common/noticeManage',
15 18 component: () => import('@/views/oa/noticeManageList.vue')
16 19 },
... ... @@ -31,6 +34,7 @@ export default [
31 34 },
32 35 {
33 36 path: '/pages/complaint/complaintType',
  37 + meta: { title: '投诉类型' },
34 38 name: '/pages/complaint/complaintType',
35 39 component: () => import('@/views/oa/complaintTypeList.vue')
36 40 },
... ... @@ -51,26 +55,31 @@ export default [
51 55 },
52 56 {
53 57 path: '/pages/complaint/complaint',
  58 + meta: { title: '投诉建议' },
54 59 name: '/pages/complaint/complaint',
55 60 component: () => import('@/views/oa/complaintList.vue')
56 61 },
57 62 {
58 63 path: '/pages/property/notepadManage',
  64 + meta: { title: '业主反馈' },
59 65 name: '/pages/property/notepadManage',
60 66 component: () => import('@/views/oa/notepadManageList.vue')
61 67 },
62 68 {
63 69 path: '/pages/property/visitManage',
  70 + meta: { title: '访客登记' },
64 71 name: '/pages/property/visitManage',
65 72 component: () => import('@/views/oa/visitManageList.vue')
66 73 },
67 74 {
68 75 path: '/pages/question/questionTitle',
  76 + meta: { title: '问卷题目' },
69 77 name: '/pages/question/questionTitle',
70 78 component: () => import('@/views/oa/questionTitleList.vue')
71 79 },
72 80 {
73 81 path: '/pages/property/questionAnswerManage',
  82 + meta: { title: '问卷调研' },
74 83 name: '/pages/property/questionAnswerManage',
75 84 component: () => import('@/views/oa/questionAnswerManageList.vue')
76 85 },
... ... @@ -86,6 +95,7 @@ export default [
86 95 },
87 96 {
88 97 path: '/pages/question/ownerVoting',
  98 + meta: { title: '业主投票' },
89 99 name: '/pages/question/ownerVoting',
90 100 component: () => import('@/views/oa/ownerVotingList.vue')
91 101 },
... ... @@ -111,31 +121,37 @@ export default [
111 121 },
112 122 {
113 123 path: '/pages/property/oaWorkflowManage',
  124 + meta: { title: '流程实例' },
114 125 name: '/pages/property/oaWorkflowManage',
115 126 component: () => import('@/views/oa/oaWorkflowManageList.vue')
116 127 },
117 128 {
118 129 path: '/pages/property/newOaWorkflowManage',
  130 + meta: { title: '我的流程' },
119 131 name: '/pages/property/newOaWorkflowManage',
120 132 component: () => import('@/views/oa/newOaWorkflowManageList.vue')
121 133 },
122 134 {
123 135 path: '/pages/property/newOaWorkflowDoing',
  136 + meta: { title: '工作办理' },
124 137 name: '/pages/property/newOaWorkflowDoing',
125 138 component: () => import('@/views/oa/newOaWorkflowDoingList.vue')
126 139 },
127 140 {
128 141 path: '/pages/property/attendanceClassesManage',
  142 + meta: { title: '考勤班组' },
129 143 name: '/pages/property/attendanceClassesManage',
130 144 component: () => import('@/views/oa/attendanceClassesManageList.vue')
131 145 },
132 146 {
133 147 path: '/pages/attendance/attendanceClassesStaffManage',
  148 + meta: { title: '考勤人员' },
134 149 name: '/pages/attendance/attendanceClassesStaffManage',
135 150 component: () => import('@/views/oa/attendanceClassesStaffManageList.vue')
136 151 },
137 152 {
138 153 path: '/pages/property/todayAttendanceManage',
  154 + meta: { title: '今日考勤' },
139 155 name: '/pages/property/todayAttendanceManage',
140 156 component: () => import('@/views/oa/todayAttendanceManageList.vue')
141 157 },
... ... @@ -146,26 +162,31 @@ export default [
146 162 },
147 163 {
148 164 path: '/pages/property/monthAttendanceManage',
  165 + meta: { title: '月考勤' },
149 166 name: '/pages/property/monthAttendanceManage',
150 167 component: () => import('@/views/oa/monthAttendanceManageList.vue')
151 168 },
152 169 {
153 170 path: '/pages/property/staffAttendanceManage',
  171 + meta: { title: '员工考勤' },
154 172 name: '/pages/property/staffAttendanceManage',
155 173 component: () => import('@/views/oa/staffAttendanceManageList.vue')
156 174 },
157 175 {
158 176 path: '/pages/property/attendanceLogManage',
  177 + meta: { title: '考勤记录' },
159 178 name: '/pages/property/attendanceLogManage',
160 179 component: () => import('@/views/oa/attendanceLogManageList.vue')
161 180 },
162 181 {
163 182 path: '/pages/oa/workType',
  183 + meta: { title: '工作单类型' },
164 184 name: '/pages/oa/workType',
165 185 component: () => import('@/views/oa/workTypeList.vue')
166 186 },
167 187 {
168 188 path: '/pages/oa/startWork',
  189 + meta: { title: '起工作单' },
169 190 name: '/pages/oa/startWork',
170 191 component: () => import('@/views/oa/startWorkList.vue')
171 192 },
... ... @@ -186,21 +207,25 @@ export default [
186 207 },
187 208 {
188 209 path: '/pages/oa/doWork',
  210 + meta: { title: '办工作单' },
189 211 name: '/pages/oa/doWork',
190 212 component: () => import('@/views/oa/doWorkList.vue')
191 213 },
192 214 {
193 215 path: '/pages/oa/copyWork',
  216 + meta: { title: '抄送我的' },
194 217 name: '/pages/oa/copyWork',
195 218 component: () => import('@/views/oa/copyWorkList.vue')
196 219 },
197 220 {
198 221 path: '/pages/oa/workPool',
  222 + meta: { title: '工作单池' },
199 223 name: '/pages/oa/workPool',
200 224 component: () => import('@/views/oa/workPoolList.vue')
201 225 },
202 226 {
203 227 path: '/pages/oa/workDeduction',
  228 + meta: { title: '工作单扣款' },
204 229 name: '/pages/oa/workDeduction',
205 230 component: () => import('@/views/oa/workDeductionList.vue')
206 231 },
... ...
src/router/reportRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/property/reportProficient',
  4 + meta: { title: '费用台账' },
4 5 name: '/pages/property/reportProficient',
5 6 component: () => import('@/views/report/reportProficientList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/reportFeeSummary',
  10 + meta: { title: '费用汇总表' },
9 11 name: '/pages/property/reportFeeSummary',
10 12 component: () => import('@/views/report/reportFeeSummaryList.vue')
11 13 },
12 14 {
13 15 path: '/pages/property/reportFeeDetail',
  16 + meta: { title: '费用明细表' },
14 17 name: '/pages/property/reportFeeDetail',
15 18 component: () => import('@/views/report/reportFeeDetailList.vue')
16 19 },
17 20 {
18 21 path: '/pages/report/feeRemind',
  22 + meta: { title: '费用提醒' },
19 23 name: '/pages/report/feeRemind',
20 24 component: () => import('@/views/report/feeRemindList.vue')
21 25 },
22 26 {
23 27 path: '/pages/report/dataReport',
  28 + meta: { title: '数据统计' },
24 29 name: '/pages/report/dataReport',
25 30 component: () => import('@/views/report/dataReportList.vue')
26 31 },
27 32 {
28 33 path: '/pages/property/reportOweFeeDetail',
  34 + meta: { title: '欠费明细表' },
29 35 name: '/pages/property/reportOweFeeDetail',
30 36 component: () => import('@/views/report/reportOweFeeDetailList.vue')
31 37 },
32 38 {
33 39 path: '/pages/property/reportPayFeeDetail',
  40 + meta: { title: '缴费明细表' },
34 41 name: '/pages/property/reportPayFeeDetail',
35 42 component: () => import('@/views/report/reportPayFeeDetailList.vue')
36 43 },
37 44 {
38 45 path: '/pages/property/reportRepair',
  46 + meta: { title: '报修汇总表' },
39 47 name: '/pages/property/reportRepair',
40 48 component: () => import('@/views/report/reportRepairList.vue')
41 49 },
42 50 {
43 51 path: '/pages/property/reportNoFeeRoom',
  52 + meta: { title: '未收费房屋' },
44 53 name: '/pages/property/reportNoFeeRoom',
45 54 component: () => import('@/views/report/reportNoFeeRoomList.vue')
46 55 },
47 56 {
48 57 path: '/pages/property/reportQuestionAnswerDetail',
  58 + meta: { title: '问卷明细表' },
49 59 name: '/pages/property/reportQuestionAnswerDetail',
50 60 component: () => import('@/views/report/reportQuestionAnswerDetailList.vue')
51 61 },
52 62 {
53 63 path: '/pages/property/reportOwnerPayFee',
  64 + meta: { title: '业主缴费明细' },
54 65 name: '/pages/property/reportOwnerPayFee',
55 66 component: () => import('@/views/report/reportOwnerPayFeeList.vue')
56 67 },
57 68 {
58 69 path: '/pages/property/reportHuaning',
  70 + meta: { title: '欠费分析' },
59 71 name: '/pages/property/reportHuaning',
60 72 component: () => import('@/views/report/reportHuaningList.vue')
61 73 },
62 74 {
63 75 path: '/pages/property/reportPayFeeDeposit',
  76 + meta: { title: '押金报表' },
64 77 name: '/pages/property/reportPayFeeDeposit',
65 78 component: () => import('@/views/report/reportPayFeeDepositList.vue')
66 79 },
67 80 {
68 81 path: '/pages/property/commonReport',
  82 + meta: { title: '巡检报表' },
69 83 name: '/pages/property/commonReport',
70 84 component: () => import('@/views/report/commonReportList.vue')
71 85 },
... ...
src/router/resourceRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/resource/adminEquipment',
  4 + meta: { title: '设备台账' },
4 5 name: '/pages/resource/adminEquipment',
5 6 component: () => import('@/views/resource/adminEquipmentList.vue')
6 7 },
7 8 {
8 9 path: '/pages/resource/resourceAuditFlow',
  10 + meta: { title: '审批配置' },
9 11 name: '/pages/resource/resourceAuditFlow',
10 12 component: () => import('@/views/resource/resourceAuditFlowList.vue')
11 13 },
12 14 {
13 15 path: '/pages/property/storehouseManage',
  16 + meta: { title: '仓库信息' },
14 17 name: '/pages/property/storehouseManage',
15 18 component: () => import('@/views/resource/storehouseManageList.vue')
16 19 },
17 20 {
18 21 path: '/pages/common/resourceStoreSpecificationManage',
  22 + meta: { title: '物品规格' },
19 23 name: '/pages/common/resourceStoreSpecificationManage',
20 24 component: () => import('@/views/resource/resourceStoreSpecificationManageList.vue')
21 25 },
22 26 {
23 27 path: '/pages/common/resourceStoreManage',
  28 + meta: { title: '物品信息' },
24 29 name: '/pages/common/resourceStoreManage',
25 30 component: () => import('@/views/resource/resourceStoreManageList.vue')
26 31 },
27 32  
28 33 {
29 34 path: '/pages/property/resourceSupplierManage',
  35 + meta: { title: '供应商' },
30 36 name: '/pages/property/resourceSupplierManage',
31 37 component: () => import('@/views/resource/resourceSupplierManageList.vue')
32 38 },
33 39 {
34 40 path: '/pages/common/purchaseApplyManage',
  41 + meta: { title: '采购申请' },
35 42 name: '/pages/common/purchaseApplyManage',
36 43 component: () => import('@/views/resource/purchaseApplyManageList.vue')
37 44 },
... ... @@ -52,6 +59,7 @@ export default [
52 59 },
53 60 {
54 61 path: '/pages/common/itemOutManage',
  62 + meta: { title: '物品领用' },
55 63 name: '/pages/common/itemOutManage',
56 64 component: () => import('@/views/resource/itemOutManageList.vue')
57 65 },
... ... @@ -62,11 +70,13 @@ export default [
62 70 },
63 71 {
64 72 path: '/pages/common/purchaseApplyDetailManage',
  73 + meta: { title: '出入库明细' },
65 74 name: '/pages/common/purchaseApplyDetailManage',
66 75 component: () => import('@/views/resource/purchaseApplyDetailManageList.vue')
67 76 },
68 77 {
69 78 path: '/pages/common/allocationStorehouseManage',
  79 + meta: { title: '调拨申请' },
70 80 name: '/pages/common/allocationStorehouseManage',
71 81 component: () => import('@/views/resource/allocationStorehouseManageList.vue')
72 82 },
... ... @@ -77,26 +87,31 @@ export default [
77 87 },
78 88 {
79 89 path: '/pages/common/allocationStorehouseDetailed',
  90 + meta: { title: '调拨明细' },
80 91 name: '/pages/common/allocationStorehouseDetailed',
81 92 component: () => import('@/views/resource/allocationStorehouseDetailedList.vue')
82 93 },
83 94 {
84 95 path: '/pages/property/assetInventoryManage',
  96 + meta: { title: '盘点管理' },
85 97 name: '/pages/property/assetInventoryManage',
86 98 component: () => import('@/views/resource/assetInventoryManageList.vue')
87 99 },
88 100 {
89 101 path: '/pages/common/myResourceStoreManage',
  102 + meta: { title: '我的物品' },
90 103 name: '/pages/common/myResourceStoreManage',
91 104 component: () => import('@/views/resource/myResourceStoreManageList.vue')
92 105 },
93 106 {
94 107 path: '/pages/common/allocationUserStorehouseManage',
  108 + meta: { title: '转赠记录' },
95 109 name: '/pages/common/allocationUserStorehouseManage',
96 110 component: () => import('@/views/resource/allocationUserStorehouseManageList.vue')
97 111 },
98 112 {
99 113 path: '/pages/common/resourceStoreUseRecordManage',
  114 + meta: { title: '使用记录' },
100 115 name: '/pages/common/resourceStoreUseRecordManage',
101 116 component: () => import('@/views/resource/resourceStoreUseRecordManageList.vue')
102 117 },
... ...
src/router/scmRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/scm/couponMarket',
  4 + meta: { title: '优惠券市场' },
4 5 name: '/pages/scm/couponMarket',
5 6 component: () => import('@/views/scm/couponMarketList.vue')
6 7 },
7 8 {
8 9 path: '/pages/scm/couponPropertyPoolManage',
  10 + meta: { title: '优惠券' },
9 11 name: '/pages/scm/couponPropertyPoolManage',
10 12 component: () => import('@/views/scm/couponPropertyPoolManageList.vue')
11 13 },
12 14 {
13 15 path: '/pages/scm/couponRule',
  16 + meta: { title: '赠送规则' },
14 17 name: '/pages/scm/couponRule',
15 18 component: () => import('@/views/scm/couponRuleList.vue')
16 19 },
17 20 {
18 21 path: '/pages/scm/couponPropertyPoolDetail',
  22 + meta: { title: '赠送记录' },
19 23 name: '/pages/scm/couponPropertyPoolDetail',
20 24 component: () => import('@/views/scm/couponPropertyPoolDetailList.vue')
21 25 },
22 26 {
23 27 path: '/pages/scm/couponPropertyUserManage',
  28 + meta: { title: '业主优惠券' },
24 29 name: '/pages/scm/couponPropertyUserManage',
25 30 component: () => import('@/views/scm/couponPropertyUserManageList.vue')
26 31 },
27 32 {
28 33 path: '/pages/scm/couponPropertyUserDetail',
  34 + meta: { title: '优惠券使用' },
29 35 name: '/pages/scm/couponPropertyUserDetail',
30 36 component: () => import('@/views/scm/couponPropertyUserDetailList.vue')
31 37 },
32 38 {
33 39 path: '/pages/scm/integralConfigManage',
  40 + meta: { title: '积分标准' },
34 41 name: '/pages/scm/integralConfigManage',
35 42 component: () => import('@/views/scm/integralConfigManageList.vue')
36 43 },
37 44 {
38 45 path: '/pages/scm/integralRule',
  46 + meta: { title: '积分规则' },
39 47 name: '/pages/scm/integralRule',
40 48 component: () => import('@/views/scm/integralRuleList.vue')
41 49 },
42 50 {
43 51 path: '/pages/scm/integralGiftDetailManage',
  52 + meta: { title: '积分赠送' },
44 53 name: '/pages/scm/integralGiftDetailManage',
45 54 component: () => import('@/views/scm/integralGiftDetailManageList.vue')
46 55 },
47 56 {
48 57 path: '/pages/scm/communityIntegral',
  58 + meta: { title: '小区积分' },
49 59 name: '/pages/scm/communityIntegral',
50 60 component: () => import('@/views/scm/communityIntegralList.vue')
51 61 },
52 62 {
53 63 path: '/pages/scm/gold',
  64 + meta: { title: '小区金币' },
54 65 name: '/pages/scm/gold',
55 66 component: () => import('@/views/scm/goldList.vue')
56 67 },
57 68 {
58 69 path: '/pages/reserve/reserveCatalogManage',
  70 + meta: { title: '预约目录' },
59 71 name: '/pages/reserve/reserveCatalogManage',
60 72 component: () => import('@/views/scm/reserveCatalogManageList.vue')
61 73 },
62 74 {
63 75 path: '/pages/reserve/reserveParamsManage',
  76 + meta: { title: '预约参数' },
64 77 name: '/pages/reserve/reserveParamsManage',
65 78 component: () => import('@/views/scm/reserveParamsManageList.vue')
66 79 },
67 80 {
68 81 path: '/pages/reserve/reserveDiningManage',
  82 + meta: { title: '预约就餐' },
69 83 name: '/pages/reserve/reserveDiningManage',
70 84 component: () => import('@/views/scm/reserveDiningManageList.vue')
71 85 },
72 86 {
73 87 path: '/pages/reserve/reserveServiceManage',
  88 + meta: { title: '预约服务' },
74 89 name: '/pages/reserve/reserveServiceManage',
75 90 component: () => import('@/views/scm/reserveServiceManageList.vue')
76 91 },
... ... @@ -111,11 +126,13 @@ export default [
111 126 },
112 127 {
113 128 path: '/pages/reserve/reserveOrder',
  129 + meta: { title: '预约订单' },
114 130 name: '/pages/reserve/reserveOrder',
115 131 component: () => import('@/views/scm/reserveOrderList.vue')
116 132 },
117 133 {
118 134 path:'/pages/reserve/reserveConfirm',
  135 + meta: { title: '订单核销' },
119 136 name:'/pages/reserve/reserveConfirm',
120 137 component: () => import('@/views/scm/reserveConfirmList.vue')
121 138 },
... ...
src/router/systemRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/property/communitySettingManage',
  4 + meta: { title: '小区配置' },
4 5 name: '/pages/property/communitySettingManage',
5 6 component: () => import('@/views/system/communitySettingManageList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/workflowManage',
  10 + meta: { title: '流程管理' },
9 11 name: '/pages/property/workflowManage',
10 12 component: () => import('@/views/system/workflowManageList.vue')
11 13 },
12 14 {
13 15 path: '/pages/property/workflowSettingManage',
  16 + meta: { title: '流程设置' },
14 17 name: '/pages/property/workflowSettingManage',
15 18 component: () => import('@/views/system/workflowSettingManageList.vue')
16 19 },
17 20 {
18 21 path: '/pages/common/storeInfoManage',
  22 + meta: { title: '商户信息' },
19 23 name: '/pages/common/storeInfoManage',
20 24 component: () => import('@/views/system/storeInfoManageList.vue')
21 25 },
22 26 {
23 27 path: '/pages/property/publicWeChatManage',
  28 + meta: { title: '公众号' },
24 29 name: '/pages/property/publicWeChatManage',
25 30 component: () => import('@/views/system/publicWeChatManageList.vue')
26 31 },
27 32 {
28 33 path: '/pages/property/smallWeChatManage',
  34 + meta: { title: '小程序配置' },
29 35 name: '/pages/property/smallWeChatManage',
30 36 component: () => import('@/views/system/smallWeChatManageList.vue')
31 37 },
32 38 {
33 39 path: '/pages/fee/paymentPool',
  40 + meta: { title: '支付配置' },
34 41 name: '/pages/fee/paymentPool',
35 42 component: () => import('@/views/system/paymentPoolList.vue')
36 43 },
37 44 {
38 45 path: '/pages/log/operateDataLog',
  46 + meta: { title: '操作日志' },
39 47 name: '/pages/log/operateDataLog',
40 48 component: () => import('@/views/system/operateDataLogList.vue')
41 49 },
42 50 {
43 51 path: '/pages/property/historyFeeDetailImport',
  52 + meta: { title: '历史缴费导入' },
44 53 name: '/pages/property/historyFeeDetailImport',
45 54 component: () => import('@/views/system/historyFeeDetailImportList.vue')
46 55 },
47 56 {
48 57 path: '/pages/property/feePrintSpecManage',
  58 + meta: { title: '打印配置' },
49 59 name: '/pages/property/feePrintSpecManage',
50 60 component: () => import('@/views/system/feePrintSpecManageList.vue')
51 61 },
52 62 {
53 63 path: '/pages/property/feePrintPageManage',
  64 + meta: { title: '收据模板' },
54 65 name: '/pages/property/feePrintPageManage',
55 66 component: () => import('@/views/system/feePrintPageManageList.vue')
56 67 },
57 68 {
58 69 path: '/pages/property/downloadTempFile',
  70 + meta: { title: '下载中心' },
59 71 name: '/pages/property/downloadTempFile',
60 72 component: () => import('@/views/system/downloadTempFileList.vue')
61 73 },
62 74 {
63 75 path: '/pages/property/assetImportLog',
  76 + meta: { title: '导入日志' },
64 77 name: '/pages/property/assetImportLog',
65 78 component: () => import('@/views/system/assetImportLogList.vue')
66 79 },
... ... @@ -71,6 +84,7 @@ export default [
71 84 },
72 85 {
73 86 path: '/pages/fee/payFeeQrcode',
  87 + meta: { title: '支付二维码' },
74 88 name: '/pages/fee/payFeeQrcode',
75 89 component: () => import('@/views/fee/payFeeQrcodeList.vue')
76 90 },
... ...
src/router/userRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/staff/staffCommunity',
  4 + meta: { title: '员工小区' },
4 5 name: '/pages/staff/staffCommunity',
5 6 component: () => import('@/views/staff/staffCommunityList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/staffAppAuthManage',
  10 + meta: { title: '员工认证' },
9 11 name: '/pages/property/staffAppAuthManage',
10 12 component: () => import('@/views/staff/staffAppAuthManageList.vue')
11 13 },
12 14 {
13 15 path: '/pages/property/dataPrivilegeManage',
  16 + meta: { title: '数据权限' },
14 17 name: '/pages/property/dataPrivilegeManage',
15 18 component: () => import('@/views/org/dataPrivilegeManageList.vue')
16 19 },
17 20 {
18 21 path: '/pages/property/classesManage',
  22 + meta: { title: '班次设置' },
19 23 name: '/pages/property/classesManage',
20 24 component: () => import('@/views/org/classesManageList.vue')
21 25 },
22 26 {
23 27 path: '/pages/property/scheduleClasses',
  28 + meta: { title: '排班设置' },
24 29 name: '/pages/property/scheduleClasses',
25 30 component: () => import('@/views/org/scheduleClassesList.vue')
26 31 },
... ... @@ -36,6 +41,7 @@ export default [
36 41 },
37 42 {
38 43 path: '/pages/property/scheduleClassesPage',
  44 + meta: { title: '排班表' },
39 45 name: '/pages/property/scheduleClassesPage',
40 46 component: () => import('@/views/org/scheduleClassesPageList.vue')
41 47 },
... ...
src/router/workRouter.js
1 1 export default [
2 2 {
3 3 path: '/pages/property/itemReleaseTypeManage',
  4 + meta: { title: '放行类型' },
4 5 name: '/pages/property/itemReleaseTypeManage',
5 6 component: () => import('@/views/work/itemReleaseTypeManageList.vue')
6 7 },
7 8 {
8 9 path: '/pages/property/itemReleaseManage',
  10 + meta: { title: '物品放行' },
9 11 name: '/pages/property/itemReleaseManage',
10 12 component: () => import('@/views/work/itemReleaseManageList.vue')
11 13 },
... ...
src/views/community/community.vue
1   -<template>
  1 +<template>
2 2 <div class="community-container">
3 3 <div class="page-header">
4   - <el-breadcrumb separator="/">
5   - <el-breadcrumb-item>{{ $t('layout.home') }}</el-breadcrumb-item>
6   - <el-breadcrumb-item>{{ $t('layout.myCommunity') }}</el-breadcrumb-item>
7   - </el-breadcrumb>
8 4 <el-button type="primary" @click="handleAdd">{{ $t('community.addCommunity') }}</el-button>
9 5 </div>
10 6  
... ...
src/views/dev/addRoute.vue
1   -<template>
  1 +<template>
2 2 <div class="add-app-api-container">
3 3 <el-card class="box-card">
4 4 <div class="card-title" slot="header">
... ... @@ -200,7 +200,7 @@ export default {
200 200 <style lang="scss" scoped>
201 201 .add-app-api-container {
202 202 width: 100%;
203   - padding: 40px 0 0 0;
  203 + padding: 20px;
204 204  
205 205 .box-card {
206 206 width: 100%;
... ...
src/views/dev/app/appList.vue
... ... @@ -195,7 +195,7 @@ export default {
195 195  
196 196 <style lang="scss" scoped>
197 197 .app-container {
198   - padding: 0;
  198 + padding: 20px;
199 199 margin: 0;
200 200  
201 201 .search-wrapper {
... ...
src/views/dev/attrSpecList.vue
... ... @@ -199,7 +199,7 @@ export default {
199 199  
200 200 <style lang="scss" scoped>
201 201 .attrSpec-container {
202   - padding: 0;
  202 + padding: 20px;
203 203 margin: 0;
204 204 display: flex;
205 205 background-color: #f0f2f5;
... ...
src/views/dev/attrValueList.vue
... ... @@ -142,7 +142,7 @@ export default {
142 142  
143 143 <style lang="scss" scoped>
144 144 .attrValue-container {
145   - padding: 0;
  145 + padding: 20px;
146 146 margin: 0;
147 147  
148 148 .search-wrapper {
... ...
src/views/dev/businessDatabusList.vue
... ... @@ -142,7 +142,7 @@ export default {
142 142  
143 143 <style lang="scss" scoped>
144 144 .businessDatabus-container {
145   - padding: 0;
  145 + padding: 20px;
146 146 margin: 0;
147 147  
148 148 .search-wrapper {
... ...
src/views/dev/businessTableHisList.vue
... ... @@ -212,7 +212,7 @@ export default {
212 212  
213 213 <style lang="scss" scoped>
214 214 .businessTableHis-container {
215   - padding: 0;
  215 + padding: 20px;
216 216 margin: 0;
217 217  
218 218 .search-wrapper {
... ...
src/views/dev/dictList.vue
... ... @@ -165,7 +165,7 @@ export default {
165 165  
166 166 <style lang="scss" scoped>
167 167 .dict-container {
168   - padding: 0;
  168 + padding: 20px;
169 169 margin: 0;
170 170 display: flex;
171 171 background-color: #f0f2f5;
... ...
src/views/dev/mappingDomainList.vue
... ... @@ -197,7 +197,7 @@ export default {
197 197  
198 198 <style lang="scss" scoped>
199 199 .mappingDomain-container {
200   - padding: 0;
  200 + padding: 20px;
201 201 margin: 0;
202 202  
203 203 .search-wrapper {
... ...
src/views/dev/mappingList.vue
... ... @@ -179,7 +179,7 @@ export default {
179 179  
180 180 <style lang="scss" scoped>
181 181 .mapping-container {
182   - padding: 15px;
  182 + padding: 20px;
183 183 margin: 0;
184 184 display: flex;
185 185 background-color: #f0f2f5;
... ...
src/views/dev/menuCatalogList.vue
... ... @@ -183,7 +183,7 @@ export default {
183 183  
184 184 <style lang="scss" scoped>
185 185 .menuCatalog-container {
186   - padding: 0;
  186 + padding: 20px;
187 187 margin: 0;
188 188 display: flex;
189 189 background-color: #f0f2f5;
... ...
src/views/dev/menuGroupCatalogList.vue
... ... @@ -131,7 +131,7 @@ export default {
131 131  
132 132 <style lang="scss" scoped>
133 133 .menuGroupCatalog-container {
134   - padding: 0;
  134 + padding: 20px;
135 135 margin: 0;
136 136  
137 137 .search-wrapper {
... ...
src/views/dev/menuGroupList.vue
... ... @@ -167,7 +167,7 @@ export default {
167 167  
168 168 <style lang="scss" scoped>
169 169 .menuGroup-container {
170   - padding: 0;
  170 + padding: 20px;
171 171 margin: 0;
172 172 display: flex;
173 173 background-color: #f0f2f5;
... ...
src/views/dev/menuList.vue
... ... @@ -211,7 +211,7 @@ export default {
211 211  
212 212 <style lang="scss" scoped>
213 213 .menu-container {
214   - padding: 0;
  214 + padding: 20px;
215 215 margin: 0;
216 216 display: flex;
217 217 background-color: #f0f2f5;
... ...
src/views/dev/privilegeList.vue
... ... @@ -143,7 +143,7 @@ export default {
143 143  
144 144 <style lang="scss" scoped>
145 145 .privilege-container {
146   - padding: 0;
  146 + padding: 20px;
147 147 margin: 0;
148 148  
149 149 .search-wrapper {
... ...
src/views/dev/routeList.vue
... ... @@ -168,7 +168,7 @@ export default {
168 168  
169 169 <style lang="scss" scoped>
170 170 .route-container {
171   -
  171 + padding: 20px;
172 172 display: flex;
173 173 background-color: #f0f2f5;
174 174  
... ...
src/views/dev/serviceBusinessList.vue
... ... @@ -131,7 +131,7 @@ export default {
131 131  
132 132 <style lang="scss" scoped>
133 133 .serviceBusiness-container {
134   - padding: 0;
  134 + padding: 20px;
135 135 margin: 0;
136 136  
137 137 .search-wrapper {
... ...
src/views/dev/serviceList.vue
... ... @@ -141,7 +141,7 @@ export default {
141 141  
142 142 <style lang="scss" scoped>
143 143 .service-container {
144   - padding: 0;
  144 + padding: 20px;
145 145 margin: 0;
146 146  
147 147 .search-wrapper {
... ...
src/views/layout/LayoutLang.js
... ... @@ -45,12 +45,16 @@ export const messages = {
45 45 fetchError: 'Failed to fetch data',
46 46 deleteError: 'Failed to delete',
47 47 submitError: 'Failed to submit',
48   - moreCommunity:'More Community'
  48 + moreCommunity:'More Community',
  49 + myCommunity: 'My Community',
  50 + closeAllTabs: 'Close All'
49 51 }
50 52 },
51 53 zh: {
52 54 layout: {
53 55 home: '首页',
  56 + myCommunity: '我的小区',
  57 + closeAllTabs: '全部关闭',
54 58 businessManagement: '业务管理',
55 59 propertyManagement: '物业管理',
56 60 userManagement: '用户管理',
... ...
src/views/layout/layout.vue
1   -<template>
  1 +<template>
2 2 <el-container class="app-wrapper">
3 3 <!-- 顶部导航 -->
4 4 <el-header height="60px" class="app-header">
... ... @@ -69,6 +69,23 @@
69 69  
70 70 <!-- 主要内容区 -->
71 71 <el-main class="app-main">
  72 + <!-- 多标签页:单行不换行 -->
  73 + <div class="tabs-wrap" v-if="visitedTabs.length > 0">
  74 + <div class="tabs-list">
  75 + <div
  76 + v-for="tab in visitedTabs"
  77 + :key="tab.path"
  78 + :class="['tabs-item', { active: $route.path === tab.path }]"
  79 + @click="goTab(tab)"
  80 + >
  81 + <span class="tabs-item-title">{{ tab.titleKey ? $t(tab.titleKey) : tab.title }}</span>
  82 + <i class="el-icon-close tabs-item-close" @click.stop="removeTab(tab)" v-if="visitedTabs.length > 1"></i>
  83 + </div>
  84 + </div>
  85 + <el-button type="text" size="mini" class="tabs-close-all" @click="closeAllTabs">
  86 + {{ $t('layout.closeAllTabs') }}
  87 + </el-button>
  88 + </div>
72 89 <router-view />
73 90 </el-main>
74 91 </el-container>
... ... @@ -90,7 +107,6 @@ import searchCommunityDataList from &#39;@/components/system/searchCommunityDataList
90 107 import { initSystem } from '@/api/util/vcApi'
91 108 import config from '@/conf/config'
92 109  
93   -
94 110 export default {
95 111 name: 'Layout',
96 112 data() {
... ... @@ -116,7 +132,22 @@ export default {
116 132 companyName: '',
117 133 logoUrl: '',
118 134 version: ''
119   - }
  135 + },
  136 + visitedTabs: [] // 已打开的页面 { path, titleKey?, title? }
  137 + }
  138 + },
  139 + watch: {
  140 + $route: {
  141 + handler(route) {
  142 + if (!route.path || route.path === '/views/user/login' || route.path === '/login') return
  143 + const path = route.path
  144 + const exists = this.visitedTabs.some(t => t.path === path)
  145 + if (!exists) {
  146 + const info = this.getTabTitle(path, route.meta || {})
  147 + if (info) this.visitedTabs.push({ path, ...info })
  148 + }
  149 + },
  150 + immediate: true
120 151 }
121 152 },
122 153 created() {
... ... @@ -136,6 +167,32 @@ export default {
136 167 searchCommunityDataList
137 168 },
138 169 methods: {
  170 + // 标签页名称:仅当路由配置了 meta.title 或 meta.titleKey 时才展示该标签
  171 + getTabTitle(path, meta) {
  172 + if (path === '/views/index/index' || path === '/') {
  173 + return { titleKey: 'layout.home' }
  174 + }
  175 + const m = meta || {}
  176 + if (m.title) return { title: m.title }
  177 + if (m.titleKey) return { titleKey: m.titleKey }
  178 + return null
  179 + },
  180 + goTab(tab) {
  181 + if (this.$route.path === tab.path) return
  182 + this.$router.push(tab.path).catch(() => {})
  183 + },
  184 + removeTab(tab) {
  185 + const list = this.visitedTabs.filter(t => t.path !== tab.path)
  186 + this.visitedTabs = list
  187 + if (this.$route.path === tab.path) {
  188 + const next = list.length ? list[list.length - 1] : { path: '/views/index/index' }
  189 + this.$router.push(next.path).catch(() => {})
  190 + }
  191 + },
  192 + closeAllTabs() {
  193 + this.visitedTabs = []
  194 + this.$router.push('/views/index/index').catch(() => {})
  195 + },
139 196 async getSystemInfo() {
140 197 const { data } = await listSystemInfo({ page: 1, row: 1 });
141 198 this.systemInfo.systemSimpleTitle = data[0].systemSimpleTitle
... ... @@ -399,6 +456,65 @@ export default {
399 456 padding: 0px;
400 457 }
401 458  
  459 +.tabs-wrap {
  460 + display: flex;
  461 + align-items: center;
  462 + padding: 8px 16px;
  463 + background: #fff;
  464 + border-bottom: 1px solid #ebeef5;
  465 + gap: 8px;
  466 +}
  467 +.tabs-list {
  468 + display: flex;
  469 + flex-wrap: nowrap;
  470 + gap: 4px;
  471 + flex: 1;
  472 + min-width: 0;
  473 + overflow-x: auto;
  474 +}
  475 +.tabs-item {
  476 + display: inline-flex;
  477 + align-items: center;
  478 + padding: 6px 12px;
  479 + font-size: 13px;
  480 + border-radius: 4px;
  481 + cursor: pointer;
  482 + color: #606266;
  483 + background: #f4f4f5;
  484 + max-width: 160px;
  485 + overflow: hidden;
  486 + text-overflow: ellipsis;
  487 + white-space: nowrap;
  488 +}
  489 +.tabs-item:hover {
  490 + color: #409EFF;
  491 + background: #ecf5ff;
  492 +}
  493 +.tabs-item.active {
  494 + color: #409EFF;
  495 + background: #ecf5ff;
  496 + font-weight: 500;
  497 +}
  498 +.tabs-item-title {
  499 + flex: 1;
  500 + min-width: 0;
  501 + overflow: hidden;
  502 + text-overflow: ellipsis;
  503 +}
  504 +.tabs-item-close {
  505 + margin-left: 6px;
  506 + font-size: 12px;
  507 + opacity: 0.7;
  508 +}
  509 +.tabs-item-close:hover {
  510 + opacity: 1;
  511 + color: #f56c6c;
  512 +}
  513 +.tabs-close-all {
  514 + flex-shrink: 0;
  515 + padding: 4px 8px;
  516 +}
  517 +
402 518 :deep(.el-menu--horizontal) {
403 519 border-bottom: none;
404 520 }
... ...
src/views/log/transactionLogManageList.vue
... ... @@ -3,7 +3,7 @@
3 3 <el-row>
4 4 <el-col :span="24">
5 5 <el-card>
6   - <div slot="header" class="clearfix">
  6 + <div slot="header" class="flex justify-between ">
7 7 <span>{{ $t('transactionLogManage.queryCondition') }}</span>
8 8 </div>
9 9 <el-row :gutter="20">
... ... @@ -46,7 +46,7 @@
46 46 <el-row>
47 47 <el-col :span="24">
48 48 <el-card>
49   - <div slot="header" class="clearfix">
  49 + <div slot="header" class="flex justify-between ">
50 50 <span>{{ $t('transactionLogManage.transactionLog') }}</span>
51 51 </div>
52 52 <el-table
... ...