diff --git a/yxt-as-ui/src/api/client/customermanagement.js b/yxt-as-ui/src/api/client/customermanagement.js new file mode 100644 index 0000000000..c8a9060c3b --- /dev/null +++ b/yxt-as-ui/src/api/client/customermanagement.js @@ -0,0 +1,85 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/crm/v1/crmcustomertemp/asListPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 初始化 + fetchDetailsBySid: function(data) { + return request({ + url: '/crm/v1/crmcustomertemp/fetchSid/' + data, + method: 'get' + }) + }, + save: function(data) { + return request({ + url: '/crm/v1/crmcustomertemp/save', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + update: function(data) { + return request({ + url: '/crm/v1/crmcustomertemp/update/' + data.sid, + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 根据当前登录用户的部分sid查询客户单位信息 + selCustomerOrgList: function(data) { + return request({ + url: '/crm/v1/crmcustomerorg/selCustomerOrgList', + method: 'get', + params: data + }) + }, + deleteBySids: function(data) { + return request({ + url: '/crm/v1/crmcustomertemp/del/', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 车辆列表 + vehList: function(params) { + return request({ + url: '/as/v1/ascustomervehicle/vehList', + method: 'get', + params: params + }) + }, + // 新增、编辑车辆信息 + details: function(data) { + return request({ + url: '/as/v1/ascustomervehicle/fetchDetailsBySid/' + data, + method: 'get' + }) + }, + // 保存车辆信息 + saveCustomerVeh: function(data) { + return request({ + url: '/as/v1/ascustomervehicle/saveCustomerVeh', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 删除车辆信息 + delBySids: function(data) { + return request({ + url: '/as/v1/ascustomervehicle/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, +} diff --git a/yxt-as-ui/src/router/index.js b/yxt-as-ui/src/router/index.js index 0c4e2d0088..4bb2f0d2b0 100644 --- a/yxt-as-ui/src/router/index.js +++ b/yxt-as-ui/src/router/index.js @@ -1,637 +1,663 @@ -import Vue from 'vue' -import Router from 'vue-router' - -Vue.use(Router) - -/* Layout */ -import Layout from '@/layout' -/* 所有角色可以访问/没有权限要求的基页 */ - -export const constantRoutes = [{ - path: '/redirect', - component: Layout, - hidden: true, - children: [{ - path: '/redirect/:path(.*)', - component: () => import('@/views/redirect/index.vue') - }] - }, - { - path: '/', - redirect: 'index' - }, - { - path: '/index', - component: Layout, - redirect: '/index', - children: [{ - path: '/index', - component: () => - import('@/views/index.vue'), - name: 'index', - meta: { - title: '主页', - noCache: true, - affix: true - } - }] - }, - { - path: '/404', - component: () => - import('@/views/404'), - hidden: true - }, - { - path: '/operation', - component: Layout, - redirect: '/operation', - meta: { - title: '业务' - }, - children: [ - { - path: '/preregistration/preregistration', - component: () => import('@/views/operation/preregistration/preregistration.vue'), - name: 'Preregistration', - meta: { title: '预约单管理', noCache: true } - }, - { - path: '/repairbill/repairbill', - component: () => import('@/views/operation/repairbill/repairbill.vue'), - name: 'RepairBill', - meta: { title: '维修单管理(登记)', noCache: true } - }, - { - path: '/repairbill/repairbillBySendWork', - component: () => import('@/views/operation/repairbill/repairbillBySendWork.vue'), - name: 'RepairBillBySendWork', - meta: { title: '维修单管理(派工)', noCache: true } - }, - { - path: '/repairbill/repairbillByMaintain', - component: () => import('@/views/operation/repairbill/repairbillByMaintain.vue'), - name: 'RepairBillByMaintain', - meta: { title: '维修单管理(维修)', noCache: true } - }, - { - path: '/repairbill/repairbillByBeCompleted', - component: () => import('@/views/operation/repairbill/repairbillByBeCompleted.vue'), - name: 'RepairBillByBeCompleted', - meta: { title: '维修单管理(竣工)', noCache: true } - }, - { - path: '/repairbill/repairbillBySettleAccounts', - component: () => import('@/views/operation/repairbill/repairbillBySettleAccounts.vue'), - name: 'RepairBillBySettleAccounts', - meta: { title: '维修单管理(结算)', noCache: true } - }, - { - path: '/repairbill/repairbillBYLeaveFactory', - component: () => import('@/views/operation/repairbill/repairbillBYLeaveFactory.vue'), - name: 'RepairBillBYLeaveFactory', - meta: { title: '维修单管理(出厂)', noCache: true } - }, - { - path: '/arrearsleavefactory/arrearsleavefactory', - component: () => import('@/views/operation/arrearsleavefactory/arrearsleavefactory.vue'), - name: 'ArrearsLeaveFactory', - meta: { title: '保外欠款出厂管理', noCache: true } - }, - { - path: '/pendingclaim/pendingclaim', - component: () => import('@/views/operation/pendingclaim/pendingclaim.vue'), - name: 'PendingClaim', - meta: { title: '待索赔维修工单', noCache: true } - }, - { - path: '/claimstatement/claimstatement', - component: () => import('@/views/operation/claimstatement/claimstatement.vue'), - name: 'ClaimStatement', - meta: { title: '厂家索赔单管理', noCache: true } - }, - { - path: '/claimbilling/claimbilling', - component: () => import('@/views/operation/claimbilling/claimbilling.vue'), - name: 'ClaimBilling', - meta: { title: '索赔单开票管理', noCache: true } - }, - { - path: '/claimpendingverification/claimpendingverification', - component: () => import('@/views/operation/claimpendingverification/claimpendingverification.vue'), - name: 'ClaimPendingVerification', - meta: { title: '工单索赔待核对', noCache: true } - }, - { - path: '/claimadjustment/claimadjustment', - component: () => import('@/views/operation/claimadjustment/claimadjustment.vue'), - name: 'ClaimAdjustment', - meta: { title: '工单索赔调整', noCache: true } - }, - { - path: '/workslrsettlement/workslrsettlement', - component: () => import('@/views/operation/workslrsettlement/workslrsettlement.vue'), - name: 'WorkSLRSettlement', - meta: { title: '工单反结算管理', noCache: true } - }, - ] - }, - - { - path: '/maintenance', - component: Layout, - redirect: '/maintenance', - meta: { - title: '维修领料' - }, - children: [ - { - path: '/maintenanceOutbound/index', - component: () => import('@/views/maintenance/maintenanceOutbound/index.vue'), - name: 'MaintenanceOutbound', - meta: { title: '维修出库', noCache: true } - }, - { - path: '/maintenanceReturnBound/index', - component: () => import('@/views/maintenance/maintenanceReturnBound/index.vue'), - name: 'MaintenanceReturnBound', - meta: { title: '维修退库', noCache: true } - }, - ] - }, - - { - path: '/warehouse', - component: Layout, - redirect: '/warehouse', - meta: { - title: '仓库管理' - }, - children: [ - { - path: '/goodsShelves/index', - component: () => import('@/views/warehouse/goodsShelves/index.vue'), - name: 'GoodsShelves', - meta: { title: '库位管理', noCache: true } - }, - { - path: '/warehouseArea/index', - component: () => import('@/views/warehouse/warehouseArea/index.vue'), - name: 'WarehouseArea', - meta: { title: '库区管理', noCache: true } - }, - { - path: '/warehouseAreaType/index', - component: () => import('@/views/warehouse/warehouseAreaType/index.vue'), - name: 'WarehouseAreaType', - meta: { title: '库区类型管理', noCache: true } - }, - { - path: '/warehouse/index', - component: () => import('@/views/warehouse/warehouse/index.vue'), - name: 'Warehouse', - meta: { title: '仓库管理', noCache: true } - } - ] - }, - - { - path: '/goods', - component: Layout, - redirect: '/goods', - meta: { - title: '商品管理' - }, - children: [ - { - path: '/brands/index', - component: () => import('@/views/goods/brands/index.vue'), - name: 'Brands', - meta: { title: '品牌管理', noCache: true } - }, - { - path: '/category/index', - component: () => import('@/views/goods/category/index.vue'), - name: 'Category', - meta: { title: '商品类别', noCache: true } - }, - { - path: '/factory/index', - component: () => import('@/views/goods/factory/index.vue'), - name: 'Factory', - meta: { title: '厂家管理', noCache: true } - }, - { - path: '/goods/index', - component: () => import('@/views/goods/goods/index.vue'), - name: 'Goods', - meta: { title: '商品管理', noCache: true } - }, - { - path: '/unit/index', - component: () => import('@/views/goods/unit/index.vue'), - name: 'Unit', - meta: { title: '计量单位', noCache: true } - } - ] - }, - { - path: '/storage', - component: Layout, - redirect: '/storage', - meta: { - title: '仓储' - }, - children: [ - { - path: '/outStorage/index', - component: () => import('@/views/storage/outStorage/index'), - name: 'OutStorage', - meta: { title: '出库管理', noCache: true } - }, - { - path: '/inventory/inventory', - component: () => import('@/views/storage/inventory/inventory.vue'), - name: 'Inventory', - meta: { title: '库存查询', noCache: true } - }, - { - path: '/inventory/inventoryRefer', - component: () => import('@/views/storage/inventory/inventoryRefer.vue'), - name: 'InventoryRefer', - meta: { title: '出入库查询', noCache: true } - }, - { path: '/adjustment/index', component: () => import('@/views/storage/adjustment/index.vue'), name: 'Adjustment', meta: { title: '定/调价', noCache: true } }, - { - path: '/maintenanceInOrOutBound/index', - component: () => import('@/views/storage/maintenanceInOrOutBound/index.vue'), - name: 'MaintenanceInOrOutBound', - meta: { title: '维修出入库查询', noCache: true } - }, - { - path: '/stocktaking/index', - component: () => import('@/views/storage/stocktaking/index'), - name: 'Stocktaking', - meta: { title: '盘点管理', noCache: true } - }, - { - path: '/allocation/index', - component: () => import('@/views/storage/allocation/index'), - name: 'Allocation', - meta: { title: '调拨管理', noCache: true } - }, - { - path: '/deliveryNotice/index', - component: () => import('@/views/storage/deliveryNotice/index'), - name: 'DeliveryNotice', - meta: { title: '到货通知单', noCache: true } - }, - { - path: '/receivingGoods/index', - component: () => import('@/views/storage/receivingGoods/index'), - name: 'ReceivingGoods', - meta: { title: '收货单管理', noCache: true } - }, - { - path: '/upShelf/index', - component: () => import('@/views/storage/upShelf/index'), - name: 'UpShelf', - meta: { title: '上架单管理', noCache: true } - }, - { - path: '/oldPartsFactory/index', - component: () => import('@/views/storage/oldPartsFactory/index'), - name: 'OldPartsFactory', - meta: { title: '旧件返厂', noCache: true } - }, - { - path: '/oldPartsCope/index', - component: () => import('@/views/storage/oldPartsCope/index'), - name: 'OldPartsCope', - meta: { title: '旧件处理', noCache: true } - }, - { - path: '/oldPartsRecovery/index', - component: () => import('@/views/storage/oldPartsRecovery/index'), - name: 'OldPartsRecovery', - meta: { title: '旧件回收', noCache: true } - }, - { - path: '/oldPartsInStorage/index', - component: () => import('@/views/storage/oldPartsInStorage/index'), - name: 'OldPartsInStorage', - meta: { title: '旧件入库', noCache: true } - }, - { - path: '/oldPartsInvertory/index', - component: () => import('@/views/storage/oldPartsInvertory/index'), - name: 'OldPartsInvertory', - meta: { title: '旧件库存', noCache: true } - }, - { - path: '/oldPartsInAndOutStorage/index', - component: () => import('@/views/storage/oldPartsInAndOutStorage/index'), - name: 'OldPartsInAndOutStorage', - meta: { title: '旧件出入库查询', noCache: true } - }, - { - path: '/storageage/storageage', - component: () => import('@/views/storage/storageage/storageage'), - name: 'StorageAge', - meta: { title: '库龄查询', noCache: true } - }, - { - path: '/carryover/carryoverstock', - component: () => import('@/views/storage/carryover/carryoverstock'), - name: 'CarryoverStock', - meta: { title: '结转库存查询', noCache: true } - }, - { - path: '/carryover/carryforwardrecord', - component: () => import('@/views/storage/carryover/carryforwardrecord'), - name: 'CarryForwardRecord', - meta: { title: '结转记录查询', noCache: true } - } - ] - }, - - { - path: '/purchase', - component: Layout, - redirect: '/purchase', - meta: { - title: '采购' - }, - children: [ - { - path: '/procurement/procurement', - component: () => import('@/views/purchase/procurement/procurement.vue'), - name: 'Procurement', - meta: { title: '采购单管理', noCache: true } - }, - { - path: '/purchasereturn/purchasereturn', - component: () => import('@/views/purchase/purchasereturn/purchasereturn.vue'), - name: 'PurchaseReturn', - meta: { title: '采购退货', noCache: true } - } - ] - }, - { - path: '/statement', - component: Layout, - redirect: '/statement', - meta: { - title: '报表' - }, - children: [ - { - path: '/salesstatement/merchandisesalesdetail', - component: () => import('@/views/statement/salesstatement/merchandisesalesdetail.vue'), - name: 'MerchandiseSalesDetail', - meta: { title: '销售明细商品', noCache: true } - }, - { - path: '/salesstatement/merchandisesalessummary', - component: () => import('@/views/statement/salesstatement/merchandisesalessummary.vue'), - name: 'MerchandiseSalesSummary', - meta: { title: '销售汇总商品', noCache: true } - }, - { - path: '/salesstatement/salestrendreport', - component: () => import('@/views/statement/salesstatement/salestrendreport.vue'), - name: 'SalesTrendReport', - meta: { title: '销售价趋势报表', noCache: true } - }, - { - path: '/warehousereport/inventorystatistics', - component: () => import('@/views/statement/warehousereport/inventorystatistics.vue'), - name: 'InventoryStatistics', - meta: { title: '库存统计', noCache: true } - }, - { - path: '/warehousereport/receiptandreceiptrecord', - component: () => import('@/views/statement/warehousereport/receiptandreceiptrecord.vue'), - name: 'ReceiptAndReceiptRecord', - meta: { title: '收发存明细报表', noCache: true } - }, - { - path: '/purchasereport/detailedpurchasereport', - component: () => import('@/views/statement/purchasereport/detailedpurchasereport.vue'), - name: 'DetailedPurchaseReport', - meta: { title: '采购明细报表', noCache: true } - }, - { - path: '/purchasereport/purchasesummaryreport', - component: () => import('@/views/statement/purchasereport/purchasesummaryreport.vue'), - name: 'PurchaseSummaryReport', - meta: { title: '采购汇总报表', noCache: true } - } - ] - }, - { - path: '/basicinformation', - component: Layout, - redirect: '/basicinformation', - meta: { - title: '基础信息' - }, - children: [ - { - path: '/maintenanceitem/maintenanceitem', - component: () => import('@/views/basicinformation/maintenanceitem/maintenanceitem.vue'), - name: 'MaintenanceItem', - meta: { title: '维修项目管理', noCache: true } - }, - { - path: '/additionitem/additionitem', - component: () => import('@/views/basicinformation/additionitem/additionitem.vue'), - name: 'AdditionItem', - meta: { title: '附加项目管理', noCache: true } - }, - { - path: '/setmeal/setmeal', - component: () => import('@/views/basicinformation/setmeal/setmeal.vue'), - name: 'Setmeal', - meta: { title: '套餐管理', noCache: true } - }, - { - path: '/profession/profession', - component: () => import('@/views/basicinformation/profession/profession.vue'), - name: 'Profession', - meta: { title: '工种管理', noCache: true } - }, - { - path: '/subjects/subjects', - component: () => import('@/views/basicinformation/subjects/subjects.vue'), - name: 'Subjects', - meta: { title: '科目管理', noCache: true } - }, - { - path: '/team/team', - component: () => import('@/views/basicinformation/team/team.vue'), - name: 'Team', - meta: { title: '班组管理', noCache: true } - }, - { - path: '/suppliertype/suppliertype', - component: () => import('@/views/basicinformation/suppliertype/suppliertype.vue'), - name: 'SupplierType', - meta: { title: '供应商类型管理', noCache: true } - }, - { - path: '/supplier/supplier', - component: () => import('@/views/basicinformation/supplier/supplier.vue'), - name: 'Supplier', - meta: { title: '供应商管理', noCache: true } - } - ] - }, - - // 采购申请管理--编辑 - { - path: '/caigouFlow/procurementEdit', - component: () => - import('@/views/workFlow/caigouFlow/procurementEdit.vue'), - name: 'ProcurementEdit' - }, - // 采购申请管理--待办 - { - path: '/caigouFlow/procurementDaiBan', - component: () => - import('@/views/workFlow/caigouFlow/procurementDaiBan.vue'), - name: 'ProcurementDaiBan' - }, - // 采购申请管理--已办 - { - path: '/caigouFlow/procurementYiBan', - component: () => - import('@/views/workFlow/caigouFlow/procurementYiBan.vue'), - name: 'ProcurementYiBan' - }, - // 采购退货单管理--编辑 - { - path: '/caigoutuihuoFlow/purchasereturnEdit', - component: () => - import('@/views/workFlow/caigoutuihuoFlow/purchasereturnEdit.vue'), - name: 'PurchaseReturnEdit' - }, - // 采购退货单管理--待办 - { - path: '/caigoutuihuoFlow/purchasereturnDaiBan', - component: () => - import('@/views/workFlow/caigoutuihuoFlow/purchasereturnDaiBan.vue'), - name: 'PurchaseReturnDaiBan' - }, - // 采购退货单管理--已办 - { - path: '/caigoutuihuoFlow/purchasereturnYiBan', - component: () => - import('@/views/workFlow/caigoutuihuoFlow/purchasereturnYiBan.vue'), - name: 'PurchaseReturnYiBan' - }, - // 工单反结算管理--编辑 - { - path: '/fanjiesuanFlow/workslrsettlementEdit', - component: () => - import('@/views/workFlow/fanjiesuanFlow/workslrsettlementEdit.vue'), - name: 'WorkSLRSettlementEdit' - }, - // 工单反结算管理--待办 - { - path: '/fanjiesuanFlow/workslrsettlementDaiBan', - component: () => - import('@/views/workFlow/fanjiesuanFlow/workslrsettlementDaiBan.vue'), - name: 'WorkSLRSettlementDaiBan' - }, - // 工单反结算管理--已办 - { - path: '/fanjiesuanFlow/workslrsettlementYiBan', - component: () => - import('@/views/workFlow/fanjiesuanFlow/workslrsettlementYiBan.vue'), - name: 'WorkSLRSettlementYiBan' - }, - // 保外欠款出厂管理--编辑 - { - path: '/qikuanchuchangFlow/arrearsleavefactoryEdit', - component: () => - import('@/views/workFlow/qikuanchuchangFlow/arrearsleavefactoryEdit.vue'), - name: 'ArrearsLeaveFactoryEdit' - }, - // 保外欠款出厂管理--待办 - { - path: '/qikuanchuchangFlow/arrearsleavefactoryDaiBan', - component: () => - import('@/views/workFlow/qikuanchuchangFlow/arrearsleavefactoryDaiBan.vue'), - name: 'ArrearsLeaveFactoryDaiBan' - }, - // 保外欠款出厂管理--已办 - { - path: '/qikuanchuchangFlow/arrearsleavefactoryYiBan', - component: () => - import('@/views/workFlow/qikuanchuchangFlow/arrearsleavefactoryYiBan.vue'), - name: 'ArrearsLeaveFactoryYiBan' - }, - // 索赔单开票管理--编辑 - { - path: '/suopeikaipiaoFlow/claimbillingEdit', - component: () => - import('@/views/workFlow/suopeikaipiaoFlow/claimbillingEdit.vue'), - name: 'ClaimBillingEdit' - }, - // 索赔单开票管理--待办 - { - path: '/suopeikaipiaoFlow/claimbillingDaiBan', - component: () => - import('@/views/workFlow/suopeikaipiaoFlow/claimbillingDaiBan.vue'), - name: 'ClaimBillingDaiBan' - }, - // 索赔单开票管理--已办 - { - path: '/suopeikaipiaoFlow/claimbillingYiBan', - component: () => - import('@/views/workFlow/suopeikaipiaoFlow/claimbillingYiBan.vue'), - name: 'ClaimBillingYiBan' - }, - // 工单索赔调整--编辑 - { - path: '/suopeitiaozhengFlow/claimadjustmentEdit', - component: () => - import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentEdit.vue'), - name: 'ClaimAdjustmentEdit' - }, - // 工单索赔调整--待办 - { - path: '/suopeitiaozhengFlow/claimadjustmentDaiBan', - component: () => - import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentDaiBan.vue'), - name: 'ClaimAdjustmentDaiBan' - }, - // 工单索赔调整--已办 - { - path: '/suopeitiaozhengFlow/claimadjustmentYiBan', - component: () => - import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentYiBan.vue'), - name: 'ClaimAdjustmentYiBan' - }, - // 404 page must be placed at the end !!! - // { path: '*', redirect: '/404', hidden: true } -] - -const createRouter = () => new Router({ - // mode: 'history', // require service support - scrollBehavior: () => ({ - y: 0 - }), - routes: constantRoutes -}) - -const router = createRouter() - -// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 -export function resetRouter() { - const newRouter = createRouter() - router.matcher = newRouter.matcher // reset router -} - -export default router +import Vue from 'vue' +import Router from 'vue-router' + +Vue.use(Router) + +/* Layout */ +import Layout from '@/layout' +/* 所有角色可以访问/没有权限要求的基页 */ + +export const constantRoutes = [{ + path: '/redirect', + component: Layout, + hidden: true, + children: [{ + path: '/redirect/:path(.*)', + component: () => import('@/views/redirect/index.vue') + }] + }, + { + path: '/', + redirect: 'index' + }, + { + path: '/index', + component: Layout, + redirect: '/index', + children: [{ + path: '/index', + component: () => + import('@/views/index.vue'), + name: 'index', + meta: { + title: '主页', + noCache: true, + affix: true + } + }] + }, + { + path: '/404', + component: () => + import('@/views/404'), + hidden: true + }, + { + path: '/operation', + component: Layout, + redirect: '/operation', + meta: { + title: '业务' + }, + children: [ + { + path: '/preregistration/preregistration', + component: () => import('@/views/operation/preregistration/preregistration.vue'), + name: 'Preregistration', + meta: { title: '预约单管理', noCache: true } + }, + { + path: '/repairbill/repairbill', + component: () => import('@/views/operation/repairbill/repairbill.vue'), + name: 'RepairBill', + meta: { title: '维修单管理(登记)', noCache: true } + }, + { + path: '/repairbill/repairbillBySendWork', + component: () => import('@/views/operation/repairbill/repairbillBySendWork.vue'), + name: 'RepairBillBySendWork', + meta: { title: '维修单管理(派工)', noCache: true } + }, + { + path: '/repairbill/repairbillByMaintain', + component: () => import('@/views/operation/repairbill/repairbillByMaintain.vue'), + name: 'RepairBillByMaintain', + meta: { title: '维修单管理(维修)', noCache: true } + }, + { + path: '/repairbill/repairbillByBeCompleted', + component: () => import('@/views/operation/repairbill/repairbillByBeCompleted.vue'), + name: 'RepairBillByBeCompleted', + meta: { title: '维修单管理(竣工)', noCache: true } + }, + { + path: '/repairbill/repairbillBySettleAccounts', + component: () => import('@/views/operation/repairbill/repairbillBySettleAccounts.vue'), + name: 'RepairBillBySettleAccounts', + meta: { title: '维修单管理(结算)', noCache: true } + }, + { + path: '/repairbill/repairbillBYLeaveFactory', + component: () => import('@/views/operation/repairbill/repairbillBYLeaveFactory.vue'), + name: 'RepairBillBYLeaveFactory', + meta: { title: '维修单管理(出厂)', noCache: true } + }, + { + path: '/arrearsleavefactory/arrearsleavefactory', + component: () => import('@/views/operation/arrearsleavefactory/arrearsleavefactory.vue'), + name: 'ArrearsLeaveFactory', + meta: { title: '保外欠款出厂管理', noCache: true } + }, + { + path: '/pendingclaim/pendingclaim', + component: () => import('@/views/operation/pendingclaim/pendingclaim.vue'), + name: 'PendingClaim', + meta: { title: '待索赔维修工单', noCache: true } + }, + { + path: '/claimstatement/claimstatement', + component: () => import('@/views/operation/claimstatement/claimstatement.vue'), + name: 'ClaimStatement', + meta: { title: '厂家索赔单管理', noCache: true } + }, + { + path: '/claimbilling/claimbilling', + component: () => import('@/views/operation/claimbilling/claimbilling.vue'), + name: 'ClaimBilling', + meta: { title: '索赔单开票管理', noCache: true } + }, + { + path: '/claimpendingverification/claimpendingverification', + component: () => import('@/views/operation/claimpendingverification/claimpendingverification.vue'), + name: 'ClaimPendingVerification', + meta: { title: '工单索赔待核对', noCache: true } + }, + { + path: '/claimadjustment/claimadjustment', + component: () => import('@/views/operation/claimadjustment/claimadjustment.vue'), + name: 'ClaimAdjustment', + meta: { title: '工单索赔调整', noCache: true } + }, + { + path: '/workslrsettlement/workslrsettlement', + component: () => import('@/views/operation/workslrsettlement/workslrsettlement.vue'), + name: 'WorkSLRSettlement', + meta: { title: '工单反结算管理', noCache: true } + }, + ] + }, + + { + path: '/maintenance', + component: Layout, + redirect: '/maintenance', + meta: { + title: '维修领料' + }, + children: [ + { + path: '/maintenanceOutbound/index', + component: () => import('@/views/maintenance/maintenanceOutbound/index.vue'), + name: 'MaintenanceOutbound', + meta: { title: '维修出库', noCache: true } + }, + { + path: '/maintenanceReturnBound/index', + component: () => import('@/views/maintenance/maintenanceReturnBound/index.vue'), + name: 'MaintenanceReturnBound', + meta: { title: '维修退库', noCache: true } + }, + ] + }, + + { + path: '/warehouse', + component: Layout, + redirect: '/warehouse', + meta: { + title: '仓库管理' + }, + children: [ + { + path: '/goodsShelves/index', + component: () => import('@/views/warehouse/goodsShelves/index.vue'), + name: 'GoodsShelves', + meta: { title: '库位管理', noCache: true } + }, + { + path: '/warehouseArea/index', + component: () => import('@/views/warehouse/warehouseArea/index.vue'), + name: 'WarehouseArea', + meta: { title: '库区管理', noCache: true } + }, + { + path: '/warehouseAreaType/index', + component: () => import('@/views/warehouse/warehouseAreaType/index.vue'), + name: 'WarehouseAreaType', + meta: { title: '库区类型管理', noCache: true } + }, + { + path: '/warehouse/index', + component: () => import('@/views/warehouse/warehouse/index.vue'), + name: 'Warehouse', + meta: { title: '仓库管理', noCache: true } + } + ] + }, + + { + path: '/goods', + component: Layout, + redirect: '/goods', + meta: { + title: '商品管理' + }, + children: [ + { + path: '/brands/index', + component: () => import('@/views/goods/brands/index.vue'), + name: 'Brands', + meta: { title: '品牌管理', noCache: true } + }, + { + path: '/category/index', + component: () => import('@/views/goods/category/index.vue'), + name: 'Category', + meta: { title: '商品类别', noCache: true } + }, + { + path: '/factory/index', + component: () => import('@/views/goods/factory/index.vue'), + name: 'Factory', + meta: { title: '厂家管理', noCache: true } + }, + { + path: '/goods/index', + component: () => import('@/views/goods/goods/index.vue'), + name: 'Goods', + meta: { title: '商品管理', noCache: true } + }, + { + path: '/unit/index', + component: () => import('@/views/goods/unit/index.vue'), + name: 'Unit', + meta: { title: '计量单位', noCache: true } + } + ] + }, + { + path: '/storage', + component: Layout, + redirect: '/storage', + meta: { + title: '仓储' + }, + children: [ + { + path: '/outStorage/index', + component: () => import('@/views/storage/outStorage/index'), + name: 'OutStorage', + meta: { title: '出库管理', noCache: true } + }, + { + path: '/inventory/inventory', + component: () => import('@/views/storage/inventory/inventory.vue'), + name: 'Inventory', + meta: { title: '库存查询', noCache: true } + }, + { + path: '/inventory/inventoryRefer', + component: () => import('@/views/storage/inventory/inventoryRefer.vue'), + name: 'InventoryRefer', + meta: { title: '出入库查询', noCache: true } + }, + { + path: '/adjustment/index', + component: () => import('@/views/storage/adjustment/index.vue'), + name: 'Adjustment', + meta: { title: '定/调价', noCache: true } + }, + { + path: '/maintenanceInOrOutBound/index', + component: () => import('@/views/storage/maintenanceInOrOutBound/index.vue'), + name: 'MaintenanceInOrOutBound', + meta: { title: '维修出入库查询', noCache: true } + }, + { + path: '/stocktaking/index', + component: () => import('@/views/storage/stocktaking/index'), + name: 'Stocktaking', + meta: { title: '盘点管理', noCache: true } + }, + { + path: '/allocation/index', + component: () => import('@/views/storage/allocation/index'), + name: 'Allocation', + meta: { title: '调拨管理', noCache: true } + }, + { + path: '/deliveryNotice/index', + component: () => import('@/views/storage/deliveryNotice/index'), + name: 'DeliveryNotice', + meta: { title: '到货通知单', noCache: true } + }, + { + path: '/receivingGoods/index', + component: () => import('@/views/storage/receivingGoods/index'), + name: 'ReceivingGoods', + meta: { title: '收货单管理', noCache: true } + }, + { + path: '/upShelf/index', + component: () => import('@/views/storage/upShelf/index'), + name: 'UpShelf', + meta: { title: '上架单管理', noCache: true } + }, + { + path: '/oldPartsFactory/index', + component: () => import('@/views/storage/oldPartsFactory/index'), + name: 'OldPartsFactory', + meta: { title: '旧件返厂', noCache: true } + }, + { + path: '/oldPartsCope/index', + component: () => import('@/views/storage/oldPartsCope/index'), + name: 'OldPartsCope', + meta: { title: '旧件处理', noCache: true } + }, + { + path: '/oldPartsRecovery/index', + component: () => import('@/views/storage/oldPartsRecovery/index'), + name: 'OldPartsRecovery', + meta: { title: '旧件回收', noCache: true } + }, + { + path: '/oldPartsInStorage/index', + component: () => import('@/views/storage/oldPartsInStorage/index'), + name: 'OldPartsInStorage', + meta: { title: '旧件入库', noCache: true } + }, + { + path: '/oldPartsInvertory/index', + component: () => import('@/views/storage/oldPartsInvertory/index'), + name: 'OldPartsInvertory', + meta: { title: '旧件库存', noCache: true } + }, + { + path: '/oldPartsInAndOutStorage/index', + component: () => import('@/views/storage/oldPartsInAndOutStorage/index'), + name: 'OldPartsInAndOutStorage', + meta: { title: '旧件出入库查询', noCache: true } + }, + { + path: '/storageage/storageage', + component: () => import('@/views/storage/storageage/storageage'), + name: 'StorageAge', + meta: { title: '库龄查询', noCache: true } + }, + { + path: '/carryover/carryoverstock', + component: () => import('@/views/storage/carryover/carryoverstock'), + name: 'CarryoverStock', + meta: { title: '结转库存查询', noCache: true } + }, + { + path: '/carryover/carryforwardrecord', + component: () => import('@/views/storage/carryover/carryforwardrecord'), + name: 'CarryForwardRecord', + meta: { title: '结转记录查询', noCache: true } + } + ] + }, + { + path: '/client', + component: Layout, + redirect: '/client', + meta: { + title: '客户' + }, + children: [ + { + path: '/customermanagement/customermanagement', + component: () => import('@/views/client/customermanagement/customermanagement.vue'), + name: 'CustomerManagement', + meta: { title: '客户管理', noCache: true } + }, + { + path: '/customerunit/customerunit', + component: () => import('@/views/client/customerunit/customerunit.vue'), + name: 'CustomerUnit', + meta: { title: '客户单位管理', noCache: true } + } + ] + }, + { + path: '/purchase', + component: Layout, + redirect: '/purchase', + meta: { + title: '采购' + }, + children: [ + { + path: '/procurement/procurement', + component: () => import('@/views/purchase/procurement/procurement.vue'), + name: 'Procurement', + meta: { title: '采购单管理', noCache: true } + }, + { + path: '/purchasereturn/purchasereturn', + component: () => import('@/views/purchase/purchasereturn/purchasereturn.vue'), + name: 'PurchaseReturn', + meta: { title: '采购退货', noCache: true } + } + ] + }, + { + path: '/statement', + component: Layout, + redirect: '/statement', + meta: { + title: '报表' + }, + children: [ + { + path: '/salesstatement/merchandisesalesdetail', + component: () => import('@/views/statement/salesstatement/merchandisesalesdetail.vue'), + name: 'MerchandiseSalesDetail', + meta: { title: '销售明细商品', noCache: true } + }, + { + path: '/salesstatement/merchandisesalessummary', + component: () => import('@/views/statement/salesstatement/merchandisesalessummary.vue'), + name: 'MerchandiseSalesSummary', + meta: { title: '销售汇总商品', noCache: true } + }, + { + path: '/salesstatement/salestrendreport', + component: () => import('@/views/statement/salesstatement/salestrendreport.vue'), + name: 'SalesTrendReport', + meta: { title: '销售价趋势报表', noCache: true } + }, + { + path: '/warehousereport/inventorystatistics', + component: () => import('@/views/statement/warehousereport/inventorystatistics.vue'), + name: 'InventoryStatistics', + meta: { title: '库存统计', noCache: true } + }, + { + path: '/warehousereport/receiptandreceiptrecord', + component: () => import('@/views/statement/warehousereport/receiptandreceiptrecord.vue'), + name: 'ReceiptAndReceiptRecord', + meta: { title: '收发存明细报表', noCache: true } + }, + { + path: '/purchasereport/detailedpurchasereport', + component: () => import('@/views/statement/purchasereport/detailedpurchasereport.vue'), + name: 'DetailedPurchaseReport', + meta: { title: '采购明细报表', noCache: true } + }, + { + path: '/purchasereport/purchasesummaryreport', + component: () => import('@/views/statement/purchasereport/purchasesummaryreport.vue'), + name: 'PurchaseSummaryReport', + meta: { title: '采购汇总报表', noCache: true } + } + ] + }, + { + path: '/basicinformation', + component: Layout, + redirect: '/basicinformation', + meta: { + title: '基础信息' + }, + children: [ + { + path: '/maintenanceitem/maintenanceitem', + component: () => import('@/views/basicinformation/maintenanceitem/maintenanceitem.vue'), + name: 'MaintenanceItem', + meta: { title: '维修项目管理', noCache: true } + }, + { + path: '/additionitem/additionitem', + component: () => import('@/views/basicinformation/additionitem/additionitem.vue'), + name: 'AdditionItem', + meta: { title: '附加项目管理', noCache: true } + }, + { + path: '/setmeal/setmeal', + component: () => import('@/views/basicinformation/setmeal/setmeal.vue'), + name: 'Setmeal', + meta: { title: '套餐管理', noCache: true } + }, + { + path: '/profession/profession', + component: () => import('@/views/basicinformation/profession/profession.vue'), + name: 'Profession', + meta: { title: '工种管理', noCache: true } + }, + { + path: '/subjects/subjects', + component: () => import('@/views/basicinformation/subjects/subjects.vue'), + name: 'Subjects', + meta: { title: '科目管理', noCache: true } + }, + { + path: '/team/team', + component: () => import('@/views/basicinformation/team/team.vue'), + name: 'Team', + meta: { title: '班组管理', noCache: true } + }, + { + path: '/suppliertype/suppliertype', + component: () => import('@/views/basicinformation/suppliertype/suppliertype.vue'), + name: 'SupplierType', + meta: { title: '供应商类型管理', noCache: true } + }, + { + path: '/supplier/supplier', + component: () => import('@/views/basicinformation/supplier/supplier.vue'), + name: 'Supplier', + meta: { title: '供应商管理', noCache: true } + } + ] + }, + + // 采购申请管理--编辑 + { + path: '/caigouFlow/procurementEdit', + component: () => + import('@/views/workFlow/caigouFlow/procurementEdit.vue'), + name: 'ProcurementEdit' + }, + // 采购申请管理--待办 + { + path: '/caigouFlow/procurementDaiBan', + component: () => + import('@/views/workFlow/caigouFlow/procurementDaiBan.vue'), + name: 'ProcurementDaiBan' + }, + // 采购申请管理--已办 + { + path: '/caigouFlow/procurementYiBan', + component: () => + import('@/views/workFlow/caigouFlow/procurementYiBan.vue'), + name: 'ProcurementYiBan' + }, + // 采购退货单管理--编辑 + { + path: '/caigoutuihuoFlow/purchasereturnEdit', + component: () => + import('@/views/workFlow/caigoutuihuoFlow/purchasereturnEdit.vue'), + name: 'PurchaseReturnEdit' + }, + // 采购退货单管理--待办 + { + path: '/caigoutuihuoFlow/purchasereturnDaiBan', + component: () => + import('@/views/workFlow/caigoutuihuoFlow/purchasereturnDaiBan.vue'), + name: 'PurchaseReturnDaiBan' + }, + // 采购退货单管理--已办 + { + path: '/caigoutuihuoFlow/purchasereturnYiBan', + component: () => + import('@/views/workFlow/caigoutuihuoFlow/purchasereturnYiBan.vue'), + name: 'PurchaseReturnYiBan' + }, + // 工单反结算管理--编辑 + { + path: '/fanjiesuanFlow/workslrsettlementEdit', + component: () => + import('@/views/workFlow/fanjiesuanFlow/workslrsettlementEdit.vue'), + name: 'WorkSLRSettlementEdit' + }, + // 工单反结算管理--待办 + { + path: '/fanjiesuanFlow/workslrsettlementDaiBan', + component: () => + import('@/views/workFlow/fanjiesuanFlow/workslrsettlementDaiBan.vue'), + name: 'WorkSLRSettlementDaiBan' + }, + // 工单反结算管理--已办 + { + path: '/fanjiesuanFlow/workslrsettlementYiBan', + component: () => + import('@/views/workFlow/fanjiesuanFlow/workslrsettlementYiBan.vue'), + name: 'WorkSLRSettlementYiBan' + }, + // 保外欠款出厂管理--编辑 + { + path: '/qikuanchuchangFlow/arrearsleavefactoryEdit', + component: () => + import('@/views/workFlow/qikuanchuchangFlow/arrearsleavefactoryEdit.vue'), + name: 'ArrearsLeaveFactoryEdit' + }, + // 保外欠款出厂管理--待办 + { + path: '/qikuanchuchangFlow/arrearsleavefactoryDaiBan', + component: () => + import('@/views/workFlow/qikuanchuchangFlow/arrearsleavefactoryDaiBan.vue'), + name: 'ArrearsLeaveFactoryDaiBan' + }, + // 保外欠款出厂管理--已办 + { + path: '/qikuanchuchangFlow/arrearsleavefactoryYiBan', + component: () => + import('@/views/workFlow/qikuanchuchangFlow/arrearsleavefactoryYiBan.vue'), + name: 'ArrearsLeaveFactoryYiBan' + }, + // 索赔单开票管理--编辑 + { + path: '/suopeikaipiaoFlow/claimbillingEdit', + component: () => + import('@/views/workFlow/suopeikaipiaoFlow/claimbillingEdit.vue'), + name: 'ClaimBillingEdit' + }, + // 索赔单开票管理--待办 + { + path: '/suopeikaipiaoFlow/claimbillingDaiBan', + component: () => + import('@/views/workFlow/suopeikaipiaoFlow/claimbillingDaiBan.vue'), + name: 'ClaimBillingDaiBan' + }, + // 索赔单开票管理--已办 + { + path: '/suopeikaipiaoFlow/claimbillingYiBan', + component: () => + import('@/views/workFlow/suopeikaipiaoFlow/claimbillingYiBan.vue'), + name: 'ClaimBillingYiBan' + }, + // 工单索赔调整--编辑 + { + path: '/suopeitiaozhengFlow/claimadjustmentEdit', + component: () => + import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentEdit.vue'), + name: 'ClaimAdjustmentEdit' + }, + // 工单索赔调整--待办 + { + path: '/suopeitiaozhengFlow/claimadjustmentDaiBan', + component: () => + import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentDaiBan.vue'), + name: 'ClaimAdjustmentDaiBan' + }, + // 工单索赔调整--已办 + { + path: '/suopeitiaozhengFlow/claimadjustmentYiBan', + component: () => + import('@/views/workFlow/suopeitiaozhengFlow/claimadjustmentYiBan.vue'), + name: 'ClaimAdjustmentYiBan' + }, + // 404 page must be placed at the end !!! + // { path: '*', redirect: '/404', hidden: true } +] + +const createRouter = () => new Router({ + // mode: 'history', // require service support + scrollBehavior: () => ({ + y: 0 + }), + routes: constantRoutes +}) + +const router = createRouter() + +// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 +export function resetRouter() { + const newRouter = createRouter() + router.matcher = newRouter.matcher // reset router +} + +export default router diff --git a/yxt-as-ui/src/views/client/customermanagement/customermanagement.vue b/yxt-as-ui/src/views/client/customermanagement/customermanagement.vue new file mode 100644 index 0000000000..a9e78cf34d --- /dev/null +++ b/yxt-as-ui/src/views/client/customermanagement/customermanagement.vue @@ -0,0 +1,449 @@ + + + + + + + + + {{ searchxianshitit }} + + + + + + + + + + + + + + + + + + + + + 至 + + + + + 查询 + 重置 + + + + + + 客户信息列表 + + + + + + + + + + {{ scope.row.customerNo }} + + + + + + + + + + + {{ scope.row.vehCount }} + + + + + + + + + + + + + + + + + + + + + + + + + + + 联络方式 + + + + + + + + 客户类型 + + + {{ item.dictValue }} + + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/client/customermanagement/customermanagementAdd.vue b/yxt-as-ui/src/views/client/customermanagement/customermanagementAdd.vue new file mode 100644 index 0000000000..8cc7f85c25 --- /dev/null +++ b/yxt-as-ui/src/views/client/customermanagement/customermanagementAdd.vue @@ -0,0 +1,511 @@ + + + + + {{ viewTitle }} + + 保存 + 关闭 + + + + + + + *客户名称 + + + + 客户类型 + {{ formobj.customerType }} + + + + + *联系电话 + + + + 微信号 + + + + + + 公司名称 + + + + + + + + + + 客户地址 + + + + + + + + + + + + + + + + + + + 客户级别 + + + + + + + + 是否开启提醒 + + + 是 + 否 + + + + + + + 提醒日期 + + + + 提醒备注 + + + + 更多信息 + + + 客户生日 + + + + 性别 + + + {{ item.dictValue }} + + + + + + + 证件类型 + {{ formobj.certificateType }} + + + 证件号码 + + + + + + 证件有效期 + + + + 电子邮箱 + + + + + + 紧急联系人 + + + + 紧急联系电话 + + + + + + 客户来源 + + + + + + + + 客户分类 + + + + + + + + + + 备注 + + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/client/customermanagement/customermanagementInfo.vue b/yxt-as-ui/src/views/client/customermanagement/customermanagementInfo.vue new file mode 100644 index 0000000000..3689d9ac36 --- /dev/null +++ b/yxt-as-ui/src/views/client/customermanagement/customermanagementInfo.vue @@ -0,0 +1,245 @@ + + + + + {{ viewTitle }} + + 关闭 + + + + + + + 客户名称 + {{ formobj.name }} + + + 客户类型 + {{ formobj.customerType }} + + + + + 联系电话 + {{ formobj.mobile }} + + + 微信号 + {{ formobj.weixin }} + + + + + 公司名称 + {{ formobj.customerOrgName }} + + + + + 客户地址 + {{ formobj.province }}{{ formobj.city }}{{ formobj.county }}{{ formobj.address }} + + + + + 客户级别 + {{ formobj.level }} + + + 是否开启提醒 + {{ formobj.isOnRemind }} + + + + + 提醒日期 + {{ formobj.remind_day }} + + + 提醒备注 + {{ formobj.remind_remark }} + + + 更多信息 + + + 客户生日 + {{ formobj.birthday }} + + + 性别 + {{ formobj.sex }} + + + + + 证件类型 + {{ formobj.certificateType }} + + + 证件号码 + {{ formobj.idnumber }} + + + + + 证件有效期 + {{ formobj.endDate }} + + + 电子邮箱 + {{ formobj.e_mail }} + + + + + 紧急联系人 + {{ formobj.emergencyContact }} + + + 紧急联系电话 + {{ formobj.emergencyMobile }} + + + + + 客户来源 + {{ formobj.source }} + + + 客户分类 + {{ formobj.customerClass }} + + + + + 备注 + {{ formobj.remarks }} + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/client/customermanagement/relation/vehicle.vue b/yxt-as-ui/src/views/client/customermanagement/relation/vehicle.vue new file mode 100644 index 0000000000..2439489b25 --- /dev/null +++ b/yxt-as-ui/src/views/client/customermanagement/relation/vehicle.vue @@ -0,0 +1,148 @@ + + + + + {{ viewTitle }} + + 编辑 + 删除 + 关闭 + + + + + 车辆列表 + + + + + + 查看 + + + + + + + + + + + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/client/customermanagement/relation/vehicleAdd.vue b/yxt-as-ui/src/views/client/customermanagement/relation/vehicleAdd.vue new file mode 100644 index 0000000000..fbc2a7f87a --- /dev/null +++ b/yxt-as-ui/src/views/client/customermanagement/relation/vehicleAdd.vue @@ -0,0 +1,302 @@ + + + + + {{ viewTitle }} + + 保存 + 关闭 + + + + + 车辆信息 + + + 车牌号 + + + + 车架号 + + + + + + 发动机号 + + + + 车型 + + + + + + 购车日期 + + + + 行驶里程 + + + + + + 上次保养里程 + + + + 下次保养日期 + + + + + + 商业险到期日期 + + + + 交强险到期日期 + + + + + + 备注 + + + + 保养到期明细 + + + 行驶里程 + + + + 每月公里 + + + + + + 滤芯到期公里 + + + + 滤芯到期日期 + + + + + + 机油到期公里 + + + + 机油到期日期 + + + + + + 齿轮油到期公里 + + + + 齿轮油到期日期 + + + + + + 宝轮到期公里 + + + + 宝轮到期日期 + + + + + + 风扇皮带到期公里 + + + + 风扇皮带到期日期 + + + + + + 刹车片带到期公里 + + + + 刹车片带到期日期 + + + + + + 备注 + + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/client/customermanagement/relation/vehicleInfo.vue b/yxt-as-ui/src/views/client/customermanagement/relation/vehicleInfo.vue new file mode 100644 index 0000000000..7557342566 --- /dev/null +++ b/yxt-as-ui/src/views/client/customermanagement/relation/vehicleInfo.vue @@ -0,0 +1,245 @@ + + + + + {{ viewTitle }} + + 关闭 + + + + + 车辆信息 + + + 车牌号 + {{ formobj.vehMark }} + + + 车架号 + {{ formobj.vinNo }} + + + + + 发动机号 + {{ formobj.engineNo }} + + + 车型 + {{ formobj.vehModel }} + + + + + 购车日期 + {{ formobj.buyDate }} + + + 行驶里程 + {{ formobj.mileage }} + + + + + 上次保养里程 + {{ formobj.lastMileage }} + + + 下次保养日期 + {{ formobj.nextMaintainDate }} + + + + + 商业险到期日期 + {{ formobj.commercialInsuranceEndDate }} + + + 交强险到期日期 + {{ formobj.compulsoryInsuranceEndDate }} + + + + + 备注 + {{ formobj.remarks }} + + + 保养到期明细 + + + 行驶里程 + {{ formobj.currentMileage }} + + + 每月公里 + {{ formobj.monthKm }} + + + + + 滤芯到期公里 + {{ formobj.filter_km }} + + + 滤芯到期日期 + {{ formobj.filter_date }} + + + + + 机油到期公里 + {{ formobj.engineoil_km }} + + + 机油到期日期 + {{ formobj.engineoil_date }} + + + + + 齿轮油到期公里 + {{ formobj.gearoil_km }} + + + 齿轮油到期日期 + {{ formobj.gearoil_date }} + + + + + 宝轮到期公里 + {{ formobj.treasurewheel_km }} + + + 宝轮到期日期 + {{ formobj.treasurewheel_date }} + + + + + 风扇皮带到期公里 + {{ formobj.fanbelt_km }} + + + 风扇皮带到期日期 + {{ formobj.fanbelt_date }} + + + + + 刹车片带到期公里 + {{ formobj.brakepads_km }} + + + 刹车片带到期日期 + {{ formobj.brakepads_date }} + + + + + 备注 + {{ formobj.remarks }} + + + + + + + + + + +