Ni Dong 4 jaren geleden
bovenliggende
commit
fee55468f5

+ 963 - 957
src/routerMap/index.js

@@ -1,958 +1,964 @@
-const routerMap = [
-  {
-    path: '/cms/home',
-    name: 'Home', //首页
-    meta: { index: 3 },
-    component: (resolve) => require(['@/views/Home/index'], resolve),
-  },
-  {
-    path: '/cms/notice/index',
-    name: 'Notice', //基础设置-->消息通知
-    meta: { index: 3 },
-    component: (resolve) => require(['@/views/Notice/index'], resolve),
-  },
-  {
-    path: '/cms/notice/menote',
-    name: 'MeNote', //首页-->消息列表
-    meta: { index: 3, NoPadding: true },
-    component: (resolve) => require(['@/views/Notice/Menote'], resolve),
-  },
-  {
-    path: '/cms/personnelmanagement/user',
-    name: 'PersonnelManagementUser', //人员管理-->用户管理
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PersonnelManagement/user'], resolve),
-  },
-  {
-    path: '/cms/finance/index',
-    name: 'Finance', //财务-->首页
-    meta: { index: 3 },
-    component: (resolve) => require(['@/views/Finance/index'], resolve),
-  },
-  {
-    path: '/cms/finance/month',
-    name: 'FinanceMonth', //财务-->月份
-    meta: { index: 3 },
-    component: (resolve) => require(['@/views/Finance/month'], resolve),
-  },
-  {
-    path: '/cms/finance/salary',
-    name: 'FinanceSalary', //财务-->月份-->工人工资
-    meta: { index: 3 },
-    component: (resolve) => require(['@/views/Finance/salaryDetails'], resolve),
-  },
-  {
-    path: '/cms/finance/production',
-    name: 'ProductionCharts', //财务-->生产产值表
-    meta: { index: 2, NoPadding: true },
-    component: (resolve) =>
-      require(['@/views/Finance/productionCharts/index'], resolve),
-  },
-  {
-    path: '/cms/finance/production/details',
-    name: 'ProductionChartsDetsil', //财务-->生产产值表-->产值表详情
-    meta: { index: 2, NoPadding: true },
-    component: (resolve) =>
-      require(['@/views/Finance/productionCharts/details'], resolve),
-  },
-  {
-    path: '/cms/personnelmanagement/role',
-    name: 'PersonnelManagementRole', //人员管理-->角色管理
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/PersonnelManagement/role'], resolve),
-  },
-  {
-    path: '/cms/personnelmanagement/role/edit',
-    name: 'PersonnelManagementRoleEdit', //人员管理-->角色管理-->新增  编辑
-    meta: { index: 5 },
-    component: (resolve) =>
-      require(['@/views/PersonnelManagement/roleEdit'], resolve),
-  },
-  {
-    path: '/cms/personnelmanagement/user/edit',
-    name: 'PersonnelManagementUserEdit', //人员管理-->用户管理-->新增  编辑
-    meta: { index: 6 },
-    component: (resolve) =>
-      require(['@/views/PersonnelManagement/userEdit'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/materialfield',
-    name: 'Materialfield', //基础设置-->物料分类字段
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/Materialfield'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/technology',
-    name: 'Technology', //基础设置-->工艺属性字段
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/Technology'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/process',
-    name: 'Process', //基础设置-->工序分类字段
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/BasicSettings/Process'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/productfield',
-    name: 'Productfield', //基础设置-->产品分类字段
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/Productfield'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/measure',
-    name: 'Measure', //基础设置-->测量字段
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/BasicSettings/Measure'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/partfield',
-    name: 'Partfield', //基础设置-->部件字段
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/Partfield'], resolve),
-  },
-  {
-    path: '/cms/partsmannage/list',
-    name: 'PartsManageHome', //部件管理-->部件列表
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/PartsMannage/index'], resolve),
-  },
-  {
-    path: '/cms/partsmannage/edit',
-    name: 'PartsManageHomeEdit', //部件管理-->部件列表-->部件编辑-新增-查看
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/PartsMannage/edit'], resolve),
-  },
-  {
-    path: '/cms/materialmannage/index',
-    name: 'MaterialMannage', //物料管理-->部件列表
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/MaterialMannage/index'], resolve),
-  },
-  {
-    path: '/cms/materialmannage/edit',
-    name: 'MaterialMannageEdit', //物料管理-->部件列表-->编辑-新增-查看
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/MaterialMannage/edit'], resolve),
-  },
-  {
-    path: '/cms/processroute/index',
-    name: 'ProcessRoute', //工艺列表-->工艺列表
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProcessRoute/index'], resolve),
-  },
-  {
-    path: '/cms/processroute/edit',
-    name: 'ProcessRouteEdit', //工艺列表-->工艺列表-->新增编辑工艺
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProcessRoute/edit'], resolve),
-  },
-  {
-    path: '/cms/goods/index',
-    name: 'Goods', //商品管理-->商品列表
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/GoodsMannage/index'], resolve),
-  },
-  {
-    path: '/cms/goods/edit',
-    name: 'GoodsEdit', //商品管理-->商品列表-->新增 编辑 查看
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/GoodsMannage/edit'], resolve),
-  },
-  {
-    path: '/cms/product/index',
-    name: 'Products', //产品管理-->通用产品页
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProductMannage/index'], resolve),
-  },
-  {
-    path: '/cms/product/edit',
-    name: 'ProductsEdit', //产品管理-->通用产品编辑 新增 查看
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProductMannage/edit'], resolve),
-  },
-  {
-    path: '/cms/processmannage/index',
-    name: 'ProcessMannage', //工艺属性
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProcessMannage/index'], resolve),
-  },
-  {
-    path: '/cms/proceduremannage/index',
-    name: 'ProcedureMannage', //工序管理通用页面
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProcedureMannage/index'], resolve),
-  },
-  {
-    path: '/cms/proceduremannage/edit',
-    name: 'ProcedureMannageEdit', //工序管理通用页面 --> 新增--编辑
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProcedureMannage/edit'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/inboundform/index',
-    name: 'InboundForm', //生产订单列表-->入库表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/InboundForm/index'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/inboundform/details',
-    name: 'InboundFormDetails', //生产订单列表-->入库表详情
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/InboundForm/details'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/deliverylist/deliverylist',
-    name: 'DeliveryList', //生产订单列表-->出库表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require([
-        '@/views/ProductionOrderList/Deliverylist/Deliverylist',
-      ], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/deliverylist/partsdetails',
-    name: 'PartsDetails', //生产订单列表-->出库表-->工装家装订单列表-->工装家装订单详情-->部件详情
-    meta: { index: 4 },
-    component: (resolve) =>
-      require([
-        '@/views/ProductionOrderList/Deliverylist/PartsDetails',
-      ], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/dispatchlist/list',
-    name: 'DispatchlistList', //生产订单列表-->派工单
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/Dispatchlist/list'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/dispatchlist/confirm',
-    name: 'DispatchConfirm', //生产订单列表-->派工单工序列表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/Dispatchlist/confirm'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/dispatchlist/details',
-    name: 'DispatchlistDetails', //生产订单列表-->派工单--派工单详情
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/Dispatchlist/details'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/productionplanlist/list',
-    name: 'ProductionPlanlistList', //生产订单列表-->生产计划列表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/ProductionPlanlist/list'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/productionplanlist/details',
-    name: 'ProductionPlanlistDetails', //生产订单列表-->生产计划列表-->生产计划订单详情
-    meta: { index: 4 },
-    component: (resolve) =>
-      require([
-        '@/views/ProductionOrderList/ProductionPlanlist/details',
-      ], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/productionsorder/list',
-    name: 'ProductionOrderList', //生产订单列表-->生产订单列表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/ProductionOrderList/ProductionsOrder/list'], resolve),
-  },
-  {
-    path: '/cms/productionorderlist/productionsorder/Decorationlist',
-    name: 'ProductionOrderDecorationlist', //生产订单列表-->生产订单列表-->生产计划订单详情
-    meta: { index: 4 },
-    component: (resolve) =>
-      require([
-        '@/views/ProductionOrderList/ProductionsOrder/Decorationlist',
-      ], resolve),
-  },
-  {
-    path: '/cms/ordermannage/businessorderlist/list',
-    name: 'BusinessOrderlist', //订单管理-->业务订单列表
-    meta: { index: 4, keepAlive: true },
-    component: (resolve) =>
-      require(['@/views/OrderMannage/BusinessOrderlist/list'], resolve),
-  },
-  {
-    path: '/cms/ordermannage/businessorderlist/decorationlist',
-    name: 'BusinessOrderDecorationlist', //订单管理-->业务订单列表-->工装订单列表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require([
-        '@/views/OrderMannage/BusinessOrderlist/Decorationlist',
-      ], resolve),
-  },
-  {
-    path: '/cms/ordermannage/businessorderlist/details',
-    name: 'BusinessOrderDetails', //订单管理-->业务订单列表-->家装工装订单列表-->家装工装订单详情
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/OrderMannage/BusinessOrderlist/details'], resolve),
-  },
-  {
-    path: '/cms/ordermannage/businessorderlist/edit',
-    name: 'BusinessOrderEdit', //订单管理-->业务订单列表-->新增编辑订单
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/OrderMannage/BusinessOrderlist/edit'], resolve),
-  },
-  {
-    path: '/cms/ordermannage/businessorderlist/agentorder',
-    name: 'AgentOrder', //订单管理-->业务订单列表-->代理商新增编辑订单
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/OrderMannage/BusinessOrderlist/agentOrder'], resolve),
-  },
-  {
-    path: '/cms/approval/list',
-    name: 'Approvallist', //审批-->审批列表
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/Approval/list'], resolve),
-  },
-  {
-    path: '/cms/approval/agentorders',
-    name: 'ApprovaAgentOrder', //审批-->代理商列表
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/Approval/agentOrders'], resolve),
-  },
-  {
-    path: '/cms/approval/examine',
-    name: 'ApprovalExamine', //审批-->审批详情
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/Approval/examine'], resolve),
-  },
-  {
-    path: '/cms/approval/details',
-    name: 'ApprovaDetails', //审批-->审批列表-->工装审批列表-->审批详情
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/Approval/details'], resolve),
-  },
-  {
-    path: '/cms/measurementordermannage/list',
-    name: 'MeasurementOrderMannagelist', //测量订单管理-->订单列表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/MeasurementOrderMannage/list'], resolve),
-  },
-  {
-    path: '/cms/measurementordermannage/Decorationlist',
-    name: 'MeasurementOrderMannageDecorationlist', //测量订单管理-->订单列表-->工装订单列表
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/MeasurementOrderMannage/Decorationlist'], resolve),
-  },
-  {
-    path: '/cms/measurementordermannage/edit',
-    name: 'MeasurementOrderMannageEdit', //测量订单管理-->订单列表-->编辑订单
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/MeasurementOrderMannage/edit'], resolve),
-  },
-  {
-    path: '/cms/mountorder/index',
-    name: 'MountOrder', //安装订单
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/MountOrder/index'], resolve),
-  },
-  {
-    path: '/cms/mountorder/details',
-    name: 'MountOrderDetails', //安装订单--->安装订单详情
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/MountOrder/details'], resolve),
-  },
-  {
-    path: '/cms/mountorder/unusual',
-    name: 'MountOrderUnusual', //安装订单--->安装订单查看异常
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/MountOrder/unusual'], resolve),
-  },
-  {
-    path: '/cms/chipmannage/index',
-    name: 'Chip', //芯片列表
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/ChipMannage/index'], resolve),
-  },
-  {
-    path: '/cms/rawmateria/index',
-    name: 'RawMateria', //原材料预算
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/RawMateria/index'], resolve),
-  },
-  {
-    path: '/cms/templatemannage/index',
-    name: 'TemplateMannage', //模板管理
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/TemplateMannage/index'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/colorSetting',
-    name: 'colorSetting', //设置颜色
-    meta: { index: 1 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/colorSetting'], resolve),
-  },
-  {
-    path: '/cms/logmannage/index',
-    name: 'LogMannage', //操作日志
-    meta: { index: 1 },
-    component: (resolve) => require(['@/views/LogMannage/index'], resolve),
-  },
-  {
-    path: '/cms/projectprogressmannage/list',
-    name: 'ProjectProgressMannage', //项目进度列表
-    meta: { index: 1 },
-    component: (resolve) =>
-      require(['@/views/ProjectProgressMannage/list'], resolve),
-  },
-  {
-    path: '/cms/projectprogressmannage/detail',
-    name: 'ProjectProgressMannageDetail', //项目进度列表
-    meta: { index: 1 },
-    component: (resolve) =>
-      require(['@/views/ProjectProgressMannage/detail'], resolve),
-  },
-  {
-    path: '/cms/ProjectProgressSummary/list',
-    name: 'ProjectProgressSummary', // 项目进度汇总表
-    meta: { index: 1 },
-    component: (resolve) =>
-      require(['@/views/ProjectProgressSummary/list'], resolve),
-  },
-  {
-    path: '/cms/ProjectProgressSummary/checkSummary',
-    name: 'ProjectProgressSummaryCheckSummary', // 项目进度汇总表→查看汇总
-    meta: { index: 1 },
-    component: (resolve) =>
-      require(['@/views/ProjectProgressSummary/checkSummary'], resolve),
-  },
-  {
-    path: '/cms/ProjectProgressSummary/checkDetail',
-    name: 'ProjectProgressSummaryCheckDetail', // 项目进度汇总表→查看明细
-    meta: { index: 1 },
-    component: (resolve) =>
-      require(['@/views/ProjectProgressSummary/checkDetail'], resolve),
-  },
-  /////
-  //2021年05月26日16:24:23
-  {
-    path: '/cms/BidSystem/ContractList/list',
-    name: 'BidSystemContractList', // 报价系统→工装订单→列表页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ContractList/list'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ContractList/edit',
-    name: 'BidSystemContractEdit', // 报价系统→工装订单→详情页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ContractList/edit'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ProjectSchedule/list',
-    name: 'BidSystemProjectSchedule', // 报价系统→项目进度表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ProjectSchedule/list'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/DeepeningOrder/list',
-    name: 'BidSystemDeepeningOrder', // 报价系统→深化单
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/DeepeningOrder/list'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/DeepeningOrder/detail',
-    name: 'BidSystemDeepeningOrderDetail', // 报价系统→深化详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/DeepeningOrder/detail'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/DeepeningOrder/edit',
-    name: 'BidSystemDeepeningOrderEdit', // 报价系统→深化详情→编辑
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/DeepeningOrder/edit'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/DeepeningOrder/compare',
-    name: 'BidSystemDeepeningOrderCompare', // 报价系统→深化单→数据对比
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/DeepeningOrder/compare'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ProductDeOrder/list',
-    name: 'BidSystemProductDeOrder', // 报价系统→生产拆单
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ProductDeOrder/list'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ProductDeOrder/detail',
-    name: 'BidSystemProductDeOrderDetail', // 报价系统→生产拆单→拆单
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ProductDeOrder/detail'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ProductDeOrder/edit',
-    name: 'BidSystemProductDeOrderEdit', // 报价系统→生产拆单→编辑
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ProductDeOrder/edit'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ProductDeOrder/deorderdetail',
-    name: 'BidSystemProductDeOrderDeorderdetail', // 报价系统→生产拆单→编辑→拆单详情页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ProductDeOrder/deorderdetail'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ProductDeOrder/budget',
-    name: 'BidSystemProductDeOrderBudget', // 报价系统→生产拆单→成本预算
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ProductDeOrder/budget'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Warehouse/list',
-    name: 'WarehouseList', // 仓库管理→仓库列表→列表页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Warehouse/list'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/FirstInventory/list',
-    name: 'FirstInventoryList', // 仓库管理→期初库存表→列表页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/FirstInventory/list'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/FirstInventory/detail',
-    name: 'FirstInventoryDetail', // 仓库管理→期初库存表→详情页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/FirstInventory/detail'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Dispatch/list',
-    name: 'DispatchList', // 仓库管理→收发存统计表→列表页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Dispatch/list'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Dispatch/detail',
-    name: 'DispatchDetail', // 仓库管理→收发存统计表→列表页
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Dispatch/detail'], resolve),
-  },
-  //2021年05月27日10:05:19
-  {
-    path: '/cms/ProcessRequire/index',
-    name: 'ProcessRequire', //工艺要求-->工艺要求
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProcessRequire/index'], resolve),
-  },
-  {
-    path: '/cms/basicsettings/calcformula',
-    name: 'calcformula', //基础设置-->物料分类字段→计算公式
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/calcformula'], resolve),
-  },
-  {
-    path: '/cms/ProcessLine/index',
-    name: 'ProcessLine', //工艺路线-->工艺路线档案
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/ProcessLine/index'], resolve),
-  },
-  //2021年05月28日09:44:08
-  {
-    path: '/cms/CombineManage/index',
-    name: 'CombineManage', //组合管理-->组合管理
-    meta: { index: 4 },
-    component: (resolve) => require(['@/views/CombineManage/index'], resolve),
-  },
-  //2021年06月16日09:23:44
-  {
-    path: '/cms/BasicSettings/ClassifyDocs/TypeDocs',
-    name: 'TypeDocs', //分类档案-->类型档案
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/ClassifyDocs/TypeDocs'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/ClassifyDocs/AreaType',
-    name: 'AreaType', //分类档案-->地区分类
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/ClassifyDocs/AreaType'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/SuppliersManage/SippliersClassify',
-    name: 'SippliersClassify', //供应商管理-->供应商分类
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BasicSettings/SuppliersManage/SippliersClassify',
-      ], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/SuppliersManage/SippliersList',
-    name: 'SippliersList', //供应商管理-->供应商列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/SuppliersManage/SippliersList'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/SuppliersManage/SippliersStockPriceList',
-    name: 'SippliersStockPriceList', //供应商管理-->供应商存货价格表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BasicSettings/SuppliersManage/SippliersStockPriceList',
-      ], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/SuppliersManage/SippliersListEdit',
-    name: 'SippliersListEdit', //供应商管理-->供应商存货价格表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BasicSettings/SuppliersManage/SippliersListEdit',
-      ], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/SuppliersManage/SippliersStockPriceListEdit',
-    name: 'SippliersStockPriceListEdit', //供应商管理-->供应商存货价格表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BasicSettings/SuppliersManage/SippliersStockPriceListEdit',
-      ], resolve),
-  },
-  // 2021年06月22日09:39:50
-  {
-    path: '/cms/PurchasingManage/RequisitionOrder/list',
-    name: 'RequisitionOrderList', //采购模块-->请购单列表
-    meta: { index: 3, keepAlive: true },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/RequisitionOrder/list'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/RequisitionOrder/edit',
-    name: 'RequisitionOrderEdit', //采购模块-->请购单详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/RequisitionOrder/edit'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/PurchasingOrder/list',
-    name: 'PurchasingOrderList', //采购模块-->采购单列表
-    meta: { index: 3, keepAlive: true },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/PurchasingOrder/list'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/PurchasingOrder/edit',
-    name: 'PurchasingOrderEdit', //采购模块-->采购单详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/PurchasingOrder/edit'], resolve),
-  },
-  // 2021年06月28日10:24:45
-  {
-    path: '/cms/PurchasingManage/ArrivalOrder/list',
-    name: 'ArrivalOrderList', //采购模块-->到货单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/ArrivalOrder/list'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/ArrivalOrder/edit',
-    name: 'ArrivalOrderEdit', //采购模块-->到货单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/ArrivalOrder/edit'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/QualitycontrolOrder/list',
-    name: 'QualitycontrolOrderList', //采购模块-->到货单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/QualitycontrolOrder/list'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/QualitycontrolOrder/edit',
-    name: 'QualitycontrolOrderEdit', //采购模块-->到货单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/QualitycontrolOrder/edit'], resolve),
-  },
-  // 2021年06月29日09:57:26
-  {
-    path: '/cms/PurchasingManage/InstockOrder/list',
-    name: 'InstockOrderList', //采购模块-->入库单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/InstockOrder/list'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/InstockOrder/edit',
-    name: 'InstockOrderEdit', //采购模块-->入库单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/InstockOrder/edit'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/OutstockOrder/list',
-    name: 'OutstockOrderList', //采购模块-->出库单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/OutstockOrder/list'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/OutstockOrder/edit',
-    name: 'OutstockOrderEdit', //采购模块-->出库单列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/OutstockOrder/edit'], resolve),
-  },
-  // 2021年07月09日13:28:15
-  {
-    path: '/cms/Warehouse/Warehouse/stockingList',
-    name: 'stockingList', // 仓库管理→现存量表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Warehouse/stockingList'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Warehouse/inoutTotalList',
-    name: 'inoutTotalList', // 仓库管理→收发存汇总表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Warehouse/inoutTotalList'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Warehouse/minStockList',
-    name: 'minStockList', // 仓库管理→安全库存预警表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Warehouse/minStockList'], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Warehouse/stockingTable',
-    name: 'stockingTable', // 仓库管理→库存台账
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Warehouse/stockingTable'], resolve),
-  },
-  // 2021年07月13日09:28:34
-  {
-    path: '/cms/BasicSettings/EmployeeManage/EmployeeManage',
-    name: 'EmployeeManage', //人员管理→员工管理
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/EmployeeManage/EmployeeManage'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/EmployeeManage/DepartmentManage',
-    name: 'DepartmentManage', // 人员管理→部门管理
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BasicSettings/EmployeeManage/DepartmentManage',
-      ], resolve),
-  },
-  {
-    path: '/cms/Warehouse/Warehouse/stockingTableEdit',
-    name: 'stockingTableEdit', // 仓库管理→库存台账
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Warehouse/Warehouse/stockingTableEdit'], resolve),
-  },
-  // 2021年07月26日17:09:40
-  {
-    path: '/cms/Dispatching/Dispatching',
-    name: 'Dispatching', // 分类派工→派工
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Dispatching/Dispatching'], resolve),
-  },
-  {
-    path: '/cms/Dispatching/DispatchingDetail',
-    name: 'DispatchingDetail', // 分类派工→派工详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Dispatching/DispatchingDetail'], resolve),
-  },
-  {
-    path: '/cms/Dispatching/DispatchedList',
-    name: 'DispatchedList', // 分类派工→派工单查询
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Dispatching/DispatchedList'], resolve),
-  },
-  {
-    path: '/cms/Dispatching/DispatchedListDetail',
-    name: 'DispatchedListDetail', // 分类派工→派工单查询→详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/Dispatching/DispatchedListDetail'], resolve),
-  },
-  // 2021年07月28日14:12:42
-  {
-    path: '/cms/ReportForm/outstockSheet',
-    name: 'outstockSheet', // 报表→出库统计表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/ReportForm/outstockSheet'], resolve),
-  },
-  // 2021年07月29日10:54:55
-  {
-    path: '/cms/BidSystem/Approval',
-    name: 'Approval', // 审批→列表页
-    meta: { index: 3 },
-    component: (resolve) => require(['@/views/BidSystem/Approval'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/ContractList/approvalDetail',
-    name: 'approvalDetail', // 审批→工装审批
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/ContractList/approvalDetail'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/DeepeningOrder/approvalDetail',
-    name: '', // 审批→深化审批
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BidSystem/DeepeningOrder/approvalDetail'], resolve),
-  },
-  {
-    path: '/cms/BidSystem/DeepeningOrder/approvalProductDetail',
-    name: 'approvalProductDetail', // 审批→深化审批→产品详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BidSystem/DeepeningOrder/approvalProductDetail',
-      ], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/Approval',
-    name: '', //审批→采购模块审批列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/Approval'], resolve),
-  },
-  {
-    path: '/cms/PurchasingManage/approvalDetail',
-    name: '', //审批→采购模块审批→详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/PurchasingManage/approvalDetail'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/OverStandardPrice/list',
-    name: 'OverStandardPriceList', //超标价格方案→超标价格→列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/OverStandardPrice/list'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/OverStandardPrice/detail',
-    name: '', //超标价格方案→超标价格→详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/OverStandardPrice/detail'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/AdditionalProject/index',
-    name: 'AdditionalProjectIndex', //附加项目档案
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/AdditionalProject/index'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/CustomerFiles/list',
-    name: 'CustomerFilesList', //客户档案方案→客户档案→列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/CustomerFiles/list'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/CustomerFiles/detail',
-    name: 'CustomerFilesDetail', //客户档案方案→客户档案→详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/CustomerFiles/detail'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/CustomerProductPrice/list',
-    name: 'CustomerProductPriceList', //客户档案→客户产品价格表→列表
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/CustomerProductPrice/list'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/CustomerProductPrice/detail',
-    name: 'CustomerProductPriceDetail', //客户档案→客户产品价格表→详情
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/CustomerProductPrice/detail'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/urgentSetting',
-    name: 'urgentSetting', //紧急程度
-    meta: { index: 3 },
-    component: (resolve) =>
-      require(['@/views/BasicSettings/urgentSetting'], resolve),
-  },
-  {
-    path: '/cms/BasicSettings/CustomerFiles/CustomerClassify',
-    name: 'CustomerClassify', //客户分类
-    meta: { index: 3 },
-    component: (resolve) =>
-      require([
-        '@/views/BasicSettings/CustomerFiles/CustomerClassify',
-      ], resolve),
-  },
-  // 测试用
-  {
-    path: '/cms/ordermannage/businessorderlist/editcopy',
-    name: 'BusinessOrderEditcopy', //订单管理-->业务订单列表-->新增编辑订单
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/OrderMannage/BusinessOrderlist/editcopy'], resolve),
-  },
-  {
-    path: '/cms/ordermannage/businessorderlist/listcopy',
-    name: 'BusinessOrderlistcopy', //订单管理-->业务订单列表-->新增编辑订单
-    meta: { index: 4 },
-    component: (resolve) =>
-      require(['@/views/OrderMannage/BusinessOrderlist/listcopy'], resolve),
-  },
+const routerMap = [{
+        path: '/cms/home',
+        name: 'Home', //首页
+        meta: { index: 3 },
+        component: (resolve) => require(['@/views/Home/index'], resolve),
+    },
+    {
+        path: '/cms/notice/index',
+        name: 'Notice', //基础设置-->消息通知
+        meta: { index: 3 },
+        component: (resolve) => require(['@/views/Notice/index'], resolve),
+    },
+    {
+        path: '/cms/notice/menote',
+        name: 'MeNote', //首页-->消息列表
+        meta: { index: 3, NoPadding: true },
+        component: (resolve) => require(['@/views/Notice/Menote'], resolve),
+    },
+    {
+        path: '/cms/personnelmanagement/user',
+        name: 'PersonnelManagementUser', //人员管理-->用户管理
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PersonnelManagement/user'], resolve),
+    },
+    {
+        path: '/cms/finance/index',
+        name: 'Finance', //财务-->首页
+        meta: { index: 3 },
+        component: (resolve) => require(['@/views/Finance/index'], resolve),
+    },
+    {
+        path: '/cms/finance/month',
+        name: 'FinanceMonth', //财务-->月份
+        meta: { index: 3 },
+        component: (resolve) => require(['@/views/Finance/month'], resolve),
+    },
+    {
+        path: '/cms/finance/salary',
+        name: 'FinanceSalary', //财务-->月份-->工人工资
+        meta: { index: 3 },
+        component: (resolve) => require(['@/views/Finance/salaryDetails'], resolve),
+    },
+    {
+        path: '/cms/finance/production',
+        name: 'ProductionCharts', //财务-->生产产值表
+        meta: { index: 2, NoPadding: true },
+        component: (resolve) =>
+            require(['@/views/Finance/productionCharts/index'], resolve),
+    },
+    {
+        path: '/cms/finance/production/details',
+        name: 'ProductionChartsDetsil', //财务-->生产产值表-->产值表详情
+        meta: { index: 2, NoPadding: true },
+        component: (resolve) =>
+            require(['@/views/Finance/productionCharts/details'], resolve),
+    },
+    {
+        path: '/cms/personnelmanagement/role',
+        name: 'PersonnelManagementRole', //人员管理-->角色管理
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/PersonnelManagement/role'], resolve),
+    },
+    {
+        path: '/cms/personnelmanagement/role/edit',
+        name: 'PersonnelManagementRoleEdit', //人员管理-->角色管理-->新增  编辑
+        meta: { index: 5 },
+        component: (resolve) =>
+            require(['@/views/PersonnelManagement/roleEdit'], resolve),
+    },
+    {
+        path: '/cms/personnelmanagement/user/edit',
+        name: 'PersonnelManagementUserEdit', //人员管理-->用户管理-->新增  编辑
+        meta: { index: 6 },
+        component: (resolve) =>
+            require(['@/views/PersonnelManagement/userEdit'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/materialfield',
+        name: 'Materialfield', //基础设置-->物料分类字段
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/Materialfield'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/technology',
+        name: 'Technology', //基础设置-->工艺属性字段
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/Technology'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/process',
+        name: 'Process', //基础设置-->工序分类字段
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/BasicSettings/Process'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/productfield',
+        name: 'Productfield', //基础设置-->产品分类字段
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/Productfield'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/measure',
+        name: 'Measure', //基础设置-->测量字段
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/BasicSettings/Measure'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/partfield',
+        name: 'Partfield', //基础设置-->部件字段
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/Partfield'], resolve),
+    },
+    {
+        path: '/cms/partsmannage/list',
+        name: 'PartsManageHome', //部件管理-->部件列表
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/PartsMannage/index'], resolve),
+    },
+    {
+        path: '/cms/partsmannage/edit',
+        name: 'PartsManageHomeEdit', //部件管理-->部件列表-->部件编辑-新增-查看
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/PartsMannage/edit'], resolve),
+    },
+    {
+        path: '/cms/materialmannage/index',
+        name: 'MaterialMannage', //物料管理-->部件列表
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/MaterialMannage/index'], resolve),
+    },
+    {
+        path: '/cms/materialmannage/edit',
+        name: 'MaterialMannageEdit', //物料管理-->部件列表-->编辑-新增-查看
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/MaterialMannage/edit'], resolve),
+    },
+    {
+        path: '/cms/processroute/index',
+        name: 'ProcessRoute', //工艺列表-->工艺列表
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProcessRoute/index'], resolve),
+    },
+    {
+        path: '/cms/processroute/edit',
+        name: 'ProcessRouteEdit', //工艺列表-->工艺列表-->新增编辑工艺
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProcessRoute/edit'], resolve),
+    },
+    {
+        path: '/cms/goods/index',
+        name: 'Goods', //商品管理-->商品列表
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/GoodsMannage/index'], resolve),
+    },
+    {
+        path: '/cms/goods/edit',
+        name: 'GoodsEdit', //商品管理-->商品列表-->新增 编辑 查看
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/GoodsMannage/edit'], resolve),
+    },
+    {
+        path: '/cms/product/index',
+        name: 'Products', //产品管理-->通用产品页
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProductMannage/index'], resolve),
+    },
+    {
+        path: '/cms/product/edit',
+        name: 'ProductsEdit', //产品管理-->通用产品编辑 新增 查看
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProductMannage/edit'], resolve),
+    },
+    {
+        path: '/cms/processmannage/index',
+        name: 'ProcessMannage', //工艺属性
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProcessMannage/index'], resolve),
+    },
+    {
+        path: '/cms/proceduremannage/index',
+        name: 'ProcedureMannage', //工序管理通用页面
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProcedureMannage/index'], resolve),
+    },
+    {
+        path: '/cms/proceduremannage/edit',
+        name: 'ProcedureMannageEdit', //工序管理通用页面 --> 新增--编辑
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProcedureMannage/edit'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/inboundform/index',
+        name: 'InboundForm', //生产订单列表-->入库表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/InboundForm/index'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/inboundform/details',
+        name: 'InboundFormDetails', //生产订单列表-->入库表详情
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/InboundForm/details'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/deliverylist/deliverylist',
+        name: 'DeliveryList', //生产订单列表-->出库表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require([
+                '@/views/ProductionOrderList/Deliverylist/Deliverylist',
+            ], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/deliverylist/partsdetails',
+        name: 'PartsDetails', //生产订单列表-->出库表-->工装家装订单列表-->工装家装订单详情-->部件详情
+        meta: { index: 4 },
+        component: (resolve) =>
+            require([
+                '@/views/ProductionOrderList/Deliverylist/PartsDetails',
+            ], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/dispatchlist/list',
+        name: 'DispatchlistList', //生产订单列表-->派工单
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/Dispatchlist/list'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/dispatchlist/confirm',
+        name: 'DispatchConfirm', //生产订单列表-->派工单工序列表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/Dispatchlist/confirm'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/dispatchlist/details',
+        name: 'DispatchlistDetails', //生产订单列表-->派工单--派工单详情
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/Dispatchlist/details'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/productionplanlist/list',
+        name: 'ProductionPlanlistList', //生产订单列表-->生产计划列表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/ProductionPlanlist/list'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/productionplanlist/details',
+        name: 'ProductionPlanlistDetails', //生产订单列表-->生产计划列表-->生产计划订单详情
+        meta: { index: 4 },
+        component: (resolve) =>
+            require([
+                '@/views/ProductionOrderList/ProductionPlanlist/details',
+            ], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/productionsorder/list',
+        name: 'ProductionOrderList', //生产订单列表-->生产订单列表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/ProductionOrderList/ProductionsOrder/list'], resolve),
+    },
+    {
+        path: '/cms/productionorderlist/productionsorder/Decorationlist',
+        name: 'ProductionOrderDecorationlist', //生产订单列表-->生产订单列表-->生产计划订单详情
+        meta: { index: 4 },
+        component: (resolve) =>
+            require([
+                '@/views/ProductionOrderList/ProductionsOrder/Decorationlist',
+            ], resolve),
+    },
+    {
+        path: '/cms/ordermannage/businessorderlist/list',
+        name: 'BusinessOrderlist', //订单管理-->业务订单列表
+        meta: { index: 4, keepAlive: true },
+        component: (resolve) =>
+            require(['@/views/OrderMannage/BusinessOrderlist/list'], resolve),
+    },
+    {
+        path: '/cms/ordermannage/businessorderlist/decorationlist',
+        name: 'BusinessOrderDecorationlist', //订单管理-->业务订单列表-->工装订单列表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require([
+                '@/views/OrderMannage/BusinessOrderlist/Decorationlist',
+            ], resolve),
+    },
+    {
+        path: '/cms/ordermannage/businessorderlist/details',
+        name: 'BusinessOrderDetails', //订单管理-->业务订单列表-->家装工装订单列表-->家装工装订单详情
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/OrderMannage/BusinessOrderlist/details'], resolve),
+    },
+    {
+        path: '/cms/ordermannage/businessorderlist/edit',
+        name: 'BusinessOrderEdit', //订单管理-->业务订单列表-->新增编辑订单
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/OrderMannage/BusinessOrderlist/edit'], resolve),
+    },
+    {
+        path: '/cms/ordermannage/businessorderlist/agentorder',
+        name: 'AgentOrder', //订单管理-->业务订单列表-->代理商新增编辑订单
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/OrderMannage/BusinessOrderlist/agentOrder'], resolve),
+    },
+    {
+        path: '/cms/approval/list',
+        name: 'Approvallist', //审批-->审批列表
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/Approval/list'], resolve),
+    },
+    {
+        path: '/cms/approval/agentorders',
+        name: 'ApprovaAgentOrder', //审批-->代理商列表
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/Approval/agentOrders'], resolve),
+    },
+    {
+        path: '/cms/approval/examine',
+        name: 'ApprovalExamine', //审批-->审批详情
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/Approval/examine'], resolve),
+    },
+    {
+        path: '/cms/approval/details',
+        name: 'ApprovaDetails', //审批-->审批列表-->工装审批列表-->审批详情
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/Approval/details'], resolve),
+    },
+    {
+        path: '/cms/measurementordermannage/list',
+        name: 'MeasurementOrderMannagelist', //测量订单管理-->订单列表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/MeasurementOrderMannage/list'], resolve),
+    },
+    {
+        path: '/cms/measurementordermannage/Decorationlist',
+        name: 'MeasurementOrderMannageDecorationlist', //测量订单管理-->订单列表-->工装订单列表
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/MeasurementOrderMannage/Decorationlist'], resolve),
+    },
+    {
+        path: '/cms/measurementordermannage/edit',
+        name: 'MeasurementOrderMannageEdit', //测量订单管理-->订单列表-->编辑订单
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/MeasurementOrderMannage/edit'], resolve),
+    },
+    {
+        path: '/cms/mountorder/index',
+        name: 'MountOrder', //安装订单
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/MountOrder/index'], resolve),
+    },
+    {
+        path: '/cms/mountorder/details',
+        name: 'MountOrderDetails', //安装订单--->安装订单详情
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/MountOrder/details'], resolve),
+    },
+    {
+        path: '/cms/mountorder/unusual',
+        name: 'MountOrderUnusual', //安装订单--->安装订单查看异常
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/MountOrder/unusual'], resolve),
+    },
+    {
+        path: '/cms/chipmannage/index',
+        name: 'Chip', //芯片列表
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/ChipMannage/index'], resolve),
+    },
+    {
+        path: '/cms/rawmateria/index',
+        name: 'RawMateria', //原材料预算
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/RawMateria/index'], resolve),
+    },
+    {
+        path: '/cms/templatemannage/index',
+        name: 'TemplateMannage', //模板管理
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/TemplateMannage/index'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/colorSetting',
+        name: 'colorSetting', //设置颜色
+        meta: { index: 1 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/colorSetting'], resolve),
+    },
+    {
+        path: '/cms/logmannage/index',
+        name: 'LogMannage', //操作日志
+        meta: { index: 1 },
+        component: (resolve) => require(['@/views/LogMannage/index'], resolve),
+    },
+    {
+        path: '/cms/projectprogressmannage/list',
+        name: 'ProjectProgressMannage', //项目进度列表
+        meta: { index: 1 },
+        component: (resolve) =>
+            require(['@/views/ProjectProgressMannage/list'], resolve),
+    },
+    {
+        path: '/cms/projectprogressmannage/detail',
+        name: 'ProjectProgressMannageDetail', //项目进度列表
+        meta: { index: 1 },
+        component: (resolve) =>
+            require(['@/views/ProjectProgressMannage/detail'], resolve),
+    },
+    {
+        path: '/cms/ProjectProgressSummary/list',
+        name: 'ProjectProgressSummary', // 项目进度汇总表
+        meta: { index: 1 },
+        component: (resolve) =>
+            require(['@/views/ProjectProgressSummary/list'], resolve),
+    },
+    {
+        path: '/cms/ProjectProgressSummary/checkSummary',
+        name: 'ProjectProgressSummaryCheckSummary', // 项目进度汇总表→查看汇总
+        meta: { index: 1 },
+        component: (resolve) =>
+            require(['@/views/ProjectProgressSummary/checkSummary'], resolve),
+    },
+    {
+        path: '/cms/ProjectProgressSummary/checkDetail',
+        name: 'ProjectProgressSummaryCheckDetail', // 项目进度汇总表→查看明细
+        meta: { index: 1 },
+        component: (resolve) =>
+            require(['@/views/ProjectProgressSummary/checkDetail'], resolve),
+    },
+    /////
+    //2021年05月26日16:24:23
+    {
+        path: '/cms/BidSystem/ContractList/list',
+        name: 'BidSystemContractList', // 报价系统→工装订单→列表页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ContractList/list'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ContractList/edit',
+        name: 'BidSystemContractEdit', // 报价系统→工装订单→详情页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ContractList/edit'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ContractList/info',
+        name: 'BidSystemContractInfo', // 报价系统→工装订单→详情页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ContractList/info'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ProjectSchedule/list',
+        name: 'BidSystemProjectSchedule', // 报价系统→项目进度表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ProjectSchedule/list'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/DeepeningOrder/list',
+        name: 'BidSystemDeepeningOrder', // 报价系统→深化单
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/DeepeningOrder/list'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/DeepeningOrder/detail',
+        name: 'BidSystemDeepeningOrderDetail', // 报价系统→深化详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/DeepeningOrder/detail'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/DeepeningOrder/edit',
+        name: 'BidSystemDeepeningOrderEdit', // 报价系统→深化详情→编辑
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/DeepeningOrder/edit'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/DeepeningOrder/compare',
+        name: 'BidSystemDeepeningOrderCompare', // 报价系统→深化单→数据对比
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/DeepeningOrder/compare'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ProductDeOrder/list',
+        name: 'BidSystemProductDeOrder', // 报价系统→生产拆单
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ProductDeOrder/list'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ProductDeOrder/detail',
+        name: 'BidSystemProductDeOrderDetail', // 报价系统→生产拆单→拆单
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ProductDeOrder/detail'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ProductDeOrder/edit',
+        name: 'BidSystemProductDeOrderEdit', // 报价系统→生产拆单→编辑
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ProductDeOrder/edit'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ProductDeOrder/deorderdetail',
+        name: 'BidSystemProductDeOrderDeorderdetail', // 报价系统→生产拆单→编辑→拆单详情页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ProductDeOrder/deorderdetail'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ProductDeOrder/budget',
+        name: 'BidSystemProductDeOrderBudget', // 报价系统→生产拆单→成本预算
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ProductDeOrder/budget'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Warehouse/list',
+        name: 'WarehouseList', // 仓库管理→仓库列表→列表页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Warehouse/list'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/FirstInventory/list',
+        name: 'FirstInventoryList', // 仓库管理→期初库存表→列表页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/FirstInventory/list'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/FirstInventory/detail',
+        name: 'FirstInventoryDetail', // 仓库管理→期初库存表→详情页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/FirstInventory/detail'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Dispatch/list',
+        name: 'DispatchList', // 仓库管理→收发存统计表→列表页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Dispatch/list'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Dispatch/detail',
+        name: 'DispatchDetail', // 仓库管理→收发存统计表→列表页
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Dispatch/detail'], resolve),
+    },
+    //2021年05月27日10:05:19
+    {
+        path: '/cms/ProcessRequire/index',
+        name: 'ProcessRequire', //工艺要求-->工艺要求
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProcessRequire/index'], resolve),
+    },
+    {
+        path: '/cms/basicsettings/calcformula',
+        name: 'calcformula', //基础设置-->物料分类字段→计算公式
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/calcformula'], resolve),
+    },
+    {
+        path: '/cms/ProcessLine/index',
+        name: 'ProcessLine', //工艺路线-->工艺路线档案
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/ProcessLine/index'], resolve),
+    },
+    //2021年05月28日09:44:08
+    {
+        path: '/cms/CombineManage/index',
+        name: 'CombineManage', //组合管理-->组合管理
+        meta: { index: 4 },
+        component: (resolve) => require(['@/views/CombineManage/index'], resolve),
+    },
+    //2021年06月16日09:23:44
+    {
+        path: '/cms/BasicSettings/ClassifyDocs/TypeDocs',
+        name: 'TypeDocs', //分类档案-->类型档案
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/ClassifyDocs/TypeDocs'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/ClassifyDocs/AreaType',
+        name: 'AreaType', //分类档案-->地区分类
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/ClassifyDocs/AreaType'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/SuppliersManage/SippliersClassify',
+        name: 'SippliersClassify', //供应商管理-->供应商分类
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BasicSettings/SuppliersManage/SippliersClassify',
+            ], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/SuppliersManage/SippliersList',
+        name: 'SippliersList', //供应商管理-->供应商列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/SuppliersManage/SippliersList'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/SuppliersManage/SippliersStockPriceList',
+        name: 'SippliersStockPriceList', //供应商管理-->供应商存货价格表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BasicSettings/SuppliersManage/SippliersStockPriceList',
+            ], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/SuppliersManage/SippliersListEdit',
+        name: 'SippliersListEdit', //供应商管理-->供应商存货价格表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BasicSettings/SuppliersManage/SippliersListEdit',
+            ], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/SuppliersManage/SippliersStockPriceListEdit',
+        name: 'SippliersStockPriceListEdit', //供应商管理-->供应商存货价格表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BasicSettings/SuppliersManage/SippliersStockPriceListEdit',
+            ], resolve),
+    },
+    // 2021年06月22日09:39:50
+    {
+        path: '/cms/PurchasingManage/RequisitionOrder/list',
+        name: 'RequisitionOrderList', //采购模块-->请购单列表
+        meta: { index: 3, keepAlive: true },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/RequisitionOrder/list'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/RequisitionOrder/edit',
+        name: 'RequisitionOrderEdit', //采购模块-->请购单详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/RequisitionOrder/edit'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/PurchasingOrder/list',
+        name: 'PurchasingOrderList', //采购模块-->采购单列表
+        meta: { index: 3, keepAlive: true },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/PurchasingOrder/list'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/PurchasingOrder/edit',
+        name: 'PurchasingOrderEdit', //采购模块-->采购单详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/PurchasingOrder/edit'], resolve),
+    },
+    // 2021年06月28日10:24:45
+    {
+        path: '/cms/PurchasingManage/ArrivalOrder/list',
+        name: 'ArrivalOrderList', //采购模块-->到货单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/ArrivalOrder/list'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/ArrivalOrder/edit',
+        name: 'ArrivalOrderEdit', //采购模块-->到货单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/ArrivalOrder/edit'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/QualitycontrolOrder/list',
+        name: 'QualitycontrolOrderList', //采购模块-->到货单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/QualitycontrolOrder/list'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/QualitycontrolOrder/edit',
+        name: 'QualitycontrolOrderEdit', //采购模块-->到货单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/QualitycontrolOrder/edit'], resolve),
+    },
+    // 2021年06月29日09:57:26
+    {
+        path: '/cms/PurchasingManage/InstockOrder/list',
+        name: 'InstockOrderList', //采购模块-->入库单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/InstockOrder/list'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/InstockOrder/edit',
+        name: 'InstockOrderEdit', //采购模块-->入库单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/InstockOrder/edit'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/OutstockOrder/list',
+        name: 'OutstockOrderList', //采购模块-->出库单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/OutstockOrder/list'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/OutstockOrder/edit',
+        name: 'OutstockOrderEdit', //采购模块-->出库单列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/OutstockOrder/edit'], resolve),
+    },
+    // 2021年07月09日13:28:15
+    {
+        path: '/cms/Warehouse/Warehouse/stockingList',
+        name: 'stockingList', // 仓库管理→现存量表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Warehouse/stockingList'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Warehouse/inoutTotalList',
+        name: 'inoutTotalList', // 仓库管理→收发存汇总表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Warehouse/inoutTotalList'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Warehouse/minStockList',
+        name: 'minStockList', // 仓库管理→安全库存预警表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Warehouse/minStockList'], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Warehouse/stockingTable',
+        name: 'stockingTable', // 仓库管理→库存台账
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Warehouse/stockingTable'], resolve),
+    },
+    // 2021年07月13日09:28:34
+    {
+        path: '/cms/BasicSettings/EmployeeManage/EmployeeManage',
+        name: 'EmployeeManage', //人员管理→员工管理
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/EmployeeManage/EmployeeManage'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/EmployeeManage/DepartmentManage',
+        name: 'DepartmentManage', // 人员管理→部门管理
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BasicSettings/EmployeeManage/DepartmentManage',
+            ], resolve),
+    },
+    {
+        path: '/cms/Warehouse/Warehouse/stockingTableEdit',
+        name: 'stockingTableEdit', // 仓库管理→库存台账
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Warehouse/Warehouse/stockingTableEdit'], resolve),
+    },
+    // 2021年07月26日17:09:40
+    {
+        path: '/cms/Dispatching/Dispatching',
+        name: 'Dispatching', // 分类派工→派工
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Dispatching/Dispatching'], resolve),
+    },
+    {
+        path: '/cms/Dispatching/DispatchingDetail',
+        name: 'DispatchingDetail', // 分类派工→派工详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Dispatching/DispatchingDetail'], resolve),
+    },
+    {
+        path: '/cms/Dispatching/DispatchedList',
+        name: 'DispatchedList', // 分类派工→派工单查询
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Dispatching/DispatchedList'], resolve),
+    },
+    {
+        path: '/cms/Dispatching/DispatchedListDetail',
+        name: 'DispatchedListDetail', // 分类派工→派工单查询→详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/Dispatching/DispatchedListDetail'], resolve),
+    },
+    // 2021年07月28日14:12:42
+    {
+        path: '/cms/ReportForm/outstockSheet',
+        name: 'outstockSheet', // 报表→出库统计表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/ReportForm/outstockSheet'], resolve),
+    },
+    // 2021年07月29日10:54:55
+    {
+        path: '/cms/BidSystem/Approval',
+        name: 'Approval', // 审批→列表页
+        meta: { index: 3 },
+        component: (resolve) => require(['@/views/BidSystem/Approval'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/ContractList/approvalDetail',
+        name: 'approvalDetail', // 审批→工装审批
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/ContractList/approvalDetail'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/DeepeningOrder/approvalDetail',
+        name: '', // 审批→深化审批
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BidSystem/DeepeningOrder/approvalDetail'], resolve),
+    },
+    {
+        path: '/cms/BidSystem/DeepeningOrder/approvalProductDetail',
+        name: 'approvalProductDetail', // 审批→深化审批→产品详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BidSystem/DeepeningOrder/approvalProductDetail',
+            ], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/Approval',
+        name: '', //审批→采购模块审批列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/Approval'], resolve),
+    },
+    {
+        path: '/cms/PurchasingManage/approvalDetail',
+        name: '', //审批→采购模块审批→详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/PurchasingManage/approvalDetail'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/OverStandardPrice/list',
+        name: 'OverStandardPriceList', //超标价格方案→超标价格→列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/OverStandardPrice/list'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/OverStandardPrice/detail',
+        name: '', //超标价格方案→超标价格→详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/OverStandardPrice/detail'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/AdditionalProject/index',
+        name: 'AdditionalProjectIndex', //附加项目档案
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/AdditionalProject/index'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/CustomerFiles/list',
+        name: 'CustomerFilesList', //客户档案方案→客户档案→列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/CustomerFiles/list'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/CustomerFiles/detail',
+        name: 'CustomerFilesDetail', //客户档案方案→客户档案→详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/CustomerFiles/detail'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/CustomerProductPrice/list',
+        name: 'CustomerProductPriceList', //客户档案→客户产品价格表→列表
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/CustomerProductPrice/list'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/CustomerProductPrice/detail',
+        name: 'CustomerProductPriceDetail', //客户档案→客户产品价格表→详情
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/CustomerProductPrice/detail'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/urgentSetting',
+        name: 'urgentSetting', //紧急程度
+        meta: { index: 3 },
+        component: (resolve) =>
+            require(['@/views/BasicSettings/urgentSetting'], resolve),
+    },
+    {
+        path: '/cms/BasicSettings/CustomerFiles/CustomerClassify',
+        name: 'CustomerClassify', //客户分类
+        meta: { index: 3 },
+        component: (resolve) =>
+            require([
+                '@/views/BasicSettings/CustomerFiles/CustomerClassify',
+            ], resolve),
+    },
+    // 测试用
+    {
+        path: '/cms/ordermannage/businessorderlist/editcopy',
+        name: 'BusinessOrderEditcopy', //订单管理-->业务订单列表-->新增编辑订单
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/OrderMannage/BusinessOrderlist/editcopy'], resolve),
+    },
+    {
+        path: '/cms/ordermannage/businessorderlist/listcopy',
+        name: 'BusinessOrderlistcopy', //订单管理-->业务订单列表-->新增编辑订单
+        meta: { index: 4 },
+        component: (resolve) =>
+            require(['@/views/OrderMannage/BusinessOrderlist/listcopy'], resolve),
+    },
 ];
-export default routerMap;
+export default routerMap;

+ 0 - 1
src/untils/until.js

@@ -144,7 +144,6 @@ export default {
     computedHeader(array, header) {
         const result = array.reduce((pre, cur) => {
             const data = header.filter((row) => (cur.is_show && row.key == cur.key) && (row.title = cur.value));
-            console.log('data :>> ', data);
             if (data && data.length == 1) {
                 return pre.concat(data);
             } else {

+ 244 - 195
src/views/BasicSettings/SuppliersManage/SippliersList.vue

@@ -5,114 +5,137 @@
         <!-- <Button @click="handleSet()"
                 type="primary"
                 style="margin-right:10px;">新增分类</Button> -->
-        <Button type="primary"
-                style="margin-right:10px;">导入</Button>
-        <Button type="primary"
-                @click="handleGoPage(1,'')"
-                style="margin-right:10px;">新增</Button>
+        <Button type="primary" style="margin-right: 10px">导入</Button>
+        <Button
+          type="primary"
+          @click="handleGoPage(1, '')"
+          style="margin-right: 10px"
+          >新增</Button
+        >
       </slot>
     </Toptitle>
     <div class="content">
       <div class="content_left">
-        <Tree :data="treeData"
-              select-node
-              children-key='sub'
-              style="width:100%;"
-              @on-select-change="handleTreeSelect"
-              class="demo-tree-render"></Tree>
+        <Tree
+          :data="treeData"
+          select-node
+          children-key="sub"
+          style="width: 100%"
+          @on-select-change="handleTreeSelect"
+          class="demo-tree-render"
+        ></Tree>
       </div>
       <div class="content_right">
         <div class="content_right_topform">
-          <Form :label-width="90"
-                :model="searchData">
+          <Form :label-width="90" :model="searchData">
             <FormItem label="供应商编码:">
-              <Input type="text"
-                     size="small"
-                     v-model="searchData.code"
-                     style="width: 150px"
-                     placeholder="供应商编码" />
+              <Input
+                type="text"
+                size="small"
+                v-model="searchData.code"
+                style="width: 150px"
+                placeholder="供应商编码"
+              />
             </FormItem>
             <FormItem label="供应商名称:">
-              <Input type="text"
-                     size="small"
-                     v-model="searchData.title"
-                     style="width: 150px"
-                     placeholder="供应商名称" />
+              <Input
+                type="text"
+                size="small"
+                v-model="searchData.title"
+                style="width: 150px"
+                placeholder="供应商名称"
+              />
             </FormItem>
             <FormItem label="负责人:">
-              <Select v-model="searchData.contact"
-                      size="small"
-                      clearable
-                      filterable
-                      label-in-value
-                      style="width: 150px">
-                <Option v-for="(sitem) in contactList"
-                        :key="sitem"
-                        :label="sitem"
-                        :value="sitem">
+              <Select
+                v-model="searchData.contact"
+                size="small"
+                clearable
+                filterable
+                label-in-value
+                style="width: 150px"
+              >
+                <Option
+                  v-for="sitem in contactList"
+                  :key="sitem"
+                  :label="sitem"
+                  :value="sitem"
+                >
                 </Option>
               </Select>
             </FormItem>
             <FormItem label="是否启用:">
-              <Select v-model="searchData.state"
-                      size="small"
-                      clearable
-                      style="width: 150px">
-                <Option label='是'
-                        value="1" />
-                <Option label='否'
-                        value="2" />
+              <Select
+                v-model="searchData.state"
+                size="small"
+                clearable
+                style="width: 150px"
+              >
+                <Option label="是" value="1" />
+                <Option label="否" value="2" />
               </Select>
             </FormItem>
             <FormItem label="新增时间:">
-              <DatePicker type="date"
-                          size="small"
-                          style="width: 150px"
-                          placeholder="年/月/日"
-                          v-model="searchData.start_time"></DatePicker>
+              <DatePicker
+                type="date"
+                size="small"
+                style="width: 150px"
+                placeholder="年/月/日"
+                v-model="searchData.date[0]"
+              ></DatePicker>
             </FormItem>
             <FormItem label="~">
-              <DatePicker type="date"
-                          size="small"
-                          style="width: 150px"
-                          placeholder="年/月/日"
-                          v-model="searchData.end_time"></DatePicker>
+              <DatePicker
+                type="date"
+                size="small"
+                style="width: 150px"
+                placeholder="年/月/日"
+                v-model="searchData.date[1]"
+              ></DatePicker>
             </FormItem>
             <FormItem>
-              <Button type="primary"
-                      size="small"
-                      @click="initData(searchData)"
-                      style="margin-right:10px;">搜索</Button>
+              <Button
+                type="primary"
+                size="small"
+                @click="initData(searchData)"
+                style="margin-right: 10px"
+                >搜索</Button
+              >
             </FormItem>
           </Form>
-          <div class="content_right_topfrom_btn">
-
-          </div>
+          <div class="content_right_topfrom_btn"></div>
         </div>
         <div class="content_right_content">
           <div class="content_right_content_table">
-            <Table :columns="tableColumns"
-                   border
-                   :loading="tableLoading"
-                   :data="tableData">
-              <template slot="setSlot"
-                        slot-scope="{row,index}">
-                <a style="margin:0 5px"
-                   @click="handleSet(2,row,index)">编辑</a>
-                <a style="margin:0 5px;color:red"
-                   @click="handleSet(3,row,index)">删除</a>
+            <Table
+              :columns="tableColumns"
+              border
+              :loading="tableLoading"
+              :data="tableData"
+            >
+              <template slot="setSlot" slot-scope="{ row, index }">
+                <a style="margin: 0 5px" @click="handleSet(2, row, index)"
+                  >编辑</a
+                >
+                <a
+                  style="margin: 0 5px; color: red"
+                  @click="handleSet(3, row, index)"
+                  >删除</a
+                >
               </template>
             </Table>
             <div class="content_right_content_page">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeSize'
-                    @on-change='changePage'
-                    :current='pageIndex'
-                    show-total
-                    show-elevator
-                    :total="total"
-                    show-sizer
-                    :page-size='pageSize' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeSize"
+                @on-change="changePage"
+                :current="pageIndex"
+                show-total
+                show-elevator
+                :total="total"
+                show-sizer
+                :page-size="pageSize"
+              />
             </div>
           </div>
         </div>
@@ -126,68 +149,83 @@
 // 例如:import 《组件名称》 from '《组件路径》';
 
 export default {
-  name: 'SippliersList',
-  components: {
-
-  },
+  name: "SippliersList",
+  components: {},
   props: {},
   // import引入的组件需要注入到对象中才能使用
-  data () {
+  data() {
     // 这里存放数据
     return {
-      type: '',
+      type: "",
       contactList: [],
       treeData: [
         {
-          title: '供应商分类',
+          title: "供应商分类",
           expand: true,
           sub: [],
           render: (h, { root, node, data }) => {
-            return h('span', {
-              style: {
-                display: 'inline-block',
-                width: '100%'
-              }
-            }, [
-              h('span', [
-                h('Icon', {
-                  props: {
-                    type: 'ios-folder-outline'
-                  },
-                  style: {
-                    marginRight: '8px'
-                  }
-                }),
-                h('span', data.title)
-              ])]);
+            return h(
+              "span",
+              {
+                style: {
+                  display: "inline-block",
+                  width: "100%",
+                },
+              },
+              [
+                h("span", [
+                  h("Icon", {
+                    props: {
+                      type: "ios-folder-outline",
+                    },
+                    style: {
+                      marginRight: "8px",
+                    },
+                  }),
+                  h("span", data.title),
+                ]),
+              ]
+            );
           },
-        }
+        },
       ],
       buttonProps: {
-        type: 'default',
-        size: 'small',
+        type: "default",
+        size: "small",
       },
       tableColumns: [
-        { title: '供应商编码', key: 'code', align: 'center', minWidth: 110 },
-        { title: '供应商名称', key: 'title', align: 'center', minWidth: 200 },
-        { title: '业务员', key: 'nickname', align: 'center', minWidth: 80 },
-        { title: '负责人', key: 'contact', align: 'center', minWidth: 80 },
-        { title: '手机号', key: 'mobile', align: 'center', minWidth: 150 },
+        { title: "供应商编码", key: "code", align: "center", minWidth: 110 },
+        { title: "供应商名称", key: "title", align: "center", minWidth: 200 },
+        { title: "业务员", key: "nickname", align: "center", minWidth: 80 },
+        { title: "负责人", key: "contact", align: "center", minWidth: 80 },
+        { title: "手机号", key: "mobile", align: "center", minWidth: 150 },
         {
-          title: '是否启用', key: 'state', align: 'center', minWidth: 100,
+          title: "是否启用",
+          key: "state",
+          align: "center",
+          minWidth: 100,
           render: (h, params) => {
-            const { row } = params
-            return h('span', {}, row.state == 1 ? '是' : '否')
-          }
+            const { row } = params;
+            return h("span", {}, row.state == 1 ? "是" : "否");
+          },
         },
         {
-          title: '创建时间', key: 'crt_time', align: 'center', minWidth: 120,
+          title: "创建时间",
+          key: "crt_time",
+          align: "center",
+          minWidth: 120,
           render: (h, params) => {
-            const { row } = params
-            return h('span', {}, this.func.replaceDate(row.crt_time))
-          }
+            const { row } = params;
+            return h("span", {}, this.func.replaceDate(row.crt_time));
+          },
+        },
+        {
+          title: "操作",
+          key: "code",
+          align: "center",
+          minWidth: 120,
+          slot: "setSlot",
         },
-        { title: '操作', key: 'code', align: 'center', minWidth: 120, slot: 'setSlot' },
       ],
       tableData: [],
       tableLoading: false,
@@ -195,141 +233,152 @@ export default {
       pageSize: 10,
       total: 0,
       searchData: {
-        title: '',
-        code: '',
-        contact: '',
-        state: '',
-        start_time: '',
-        end_time: '',
+        title: "",
+        code: "",
+        contact: "",
+        state: "",
+        start_time: "",
+        end_time: "",
+        date: [],
       },
-      suppliersTypeTitle: '',
-      suppliersTypeId: '',
-    }
+      suppliersTypeTitle: "",
+      suppliersTypeId: "",
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
+  created() {
     this.axios({
-      method: 'get',
-      url: '/api/basic_supply_list',
-    }).then((res) => { this.treeData[0].sub = res.data }).catch((err) => { });
+      method: "get",
+      url: "/api/basic_supply_list",
+    }).then((res) => {
+      this.treeData[0].sub = res.data;
+    });
     this.axios({
-      method: 'get',
-      url: '/api/supply_contact',
-    }).then((res) => { this.contactList = res.data }).catch((err) => { });
+      method: "get",
+      url: "/api/supply_contact",
+    }).then((res) => {
+      this.contactList = res.data;
+    });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.initData(this.searchData)
+  mounted() {
+    this.initData(this.searchData);
   },
   methods: {
-    initData (row) {
-      this.tableLoading = true
+    initData(row) {
+      row.start_time = row.date[0]
+        ? new Date(row.date[0]).getTime() / 1000
+        : "";
+      row.end_time = row.date[1] ? new Date(row.date[1]).getTime() / 1000 : "";
+      this.tableLoading = true;
       this.axios({
-        method: 'get',
-        url: '/api/supply_list',
+        method: "get",
+        url: "/api/supply_list",
         params: {
           ...row,
           page_index: this.pageIndex,
-          page_size: this.pageSize
-        }
+          page_size: this.pageSize,
+        },
       }).then((res) => {
-        this.tableLoading = false
-        this.total = res.data.total
-        this.tableData = res.data.data
-      }).catch((err) => { });
+        this.tableLoading = false;
+        this.total = res.data.total;
+        this.tableData = res.data.data;
+      });
     },
-    handleSet (type, row, index) {
+    handleSet(type, row, index) {
       // 2编辑 3删除
       switch (type) {
         case 2:
-          this.handleGoPage(type, row.id)
+          this.handleGoPage(type, row.id);
           break;
         case 3:
           this.$Modal.confirm({
-            title: '确认删除?',
-            content: '此操作无法恢复,请确认!',
+            title: "确认删除?",
+            content: "此操作无法恢复,请确认!",
             onOk: () => {
               this.axios({
-                method: 'get',
-                url: '/api/supply_del',
+                method: "get",
+                url: "/api/supply_del",
                 params: {
-                  id: row.id
-                }
-              }).then((res) => {
-                this.$Message.success(res.msg)
-                this.initData()
-              }).catch((err) => { });
+                  id: row.id,
+                },
+              })
+                .then((res) => {
+                  this.$Message.success(res.msg);
+                  this.initData();
+                })
+                .catch((err) => {});
             },
-            onCancel: () => { }
-          })
+            onCancel: () => {},
+          });
           break;
       }
     },
-    append (data) {
+    append(data) {
       const children = data.children || [];
       children.push({
         code: this.form.code,
         title: this.form.title,
-        expand: true
+        expand: true,
       });
-      this.$set(data, 'children', children);
+      this.$set(data, "children", children);
     },
-    remove (root, node, data) {
+    remove(root, node, data) {
       if (node.children && node.children.length > 0) {
-        this.$Message.error('有子集时不可删除')
+        this.$Message.error("有子集时不可删除");
       } else {
-        const parentKey = root.find(el => el === node).parent;
-        const parent = root.find(el => el.nodeKey === parentKey).node;
+        const parentKey = root.find((el) => el === node).parent;
+        const parent = root.find((el) => el.nodeKey === parentKey).node;
         const index = parent.children.indexOf(data);
         parent.children.splice(index, 1);
       }
     },
-    handleModalOk () {
-      this.append(this.treeData[0])
+    handleModalOk() {
+      this.append(this.treeData[0]);
     },
-    handleTreeSelect (arr, row) {
-      console.log('row :>> ', row);
-      this.searchData.code = row.code
-      this.suppliersTypeTitle = row.title
-      this.suppliersTypeId = row.id
-      this.initData(this.searchData)
+    handleTreeSelect(arr, row) {
+      console.log("row :>> ", row);
+      this.searchData.code = row.code;
+      this.suppliersTypeTitle = row.title;
+      this.suppliersTypeId = row.id;
+      this.initData(this.searchData);
     },
-    changeSize (e) {
+    changeSize(e) {
       this.pageSize = e;
-      this.initData(this.searchData)
+      this.initData(this.searchData);
     },
-    changePage (e) {
+    changePage(e) {
       this.pageIndex = e;
-      this.initData(this.searchData)
+      this.initData(this.searchData);
     },
-    handleGoPage (type, id) {
-      if (type == 1 && this.suppliersTypeTitle == '') {
-        this.$Message.warning('新增请先选择左侧供应商分类!')
+    handleGoPage(type, id) {
+      if (type == 1 && this.suppliersTypeTitle == "") {
+        this.$Message.warning("新增请先选择左侧供应商分类!");
       } else {
         this.$router.push({
-          path: '/cms/BasicSettings/SuppliersManage/SippliersListEdit',
+          path: "/cms/BasicSettings/SuppliersManage/SippliersListEdit",
           query: {
             type,
             id,
             title: this.suppliersTypeTitle,
-            basics_supply_id: this.suppliersTypeId
-          }
-        })
+            basics_supply_id: this.suppliersTypeId,
+          },
+        });
       }
-    }
+    },
   },
   // 监听属性 类似于data概念
   computed: {},
   // 监控data中的数据变化
   watch: {},
-  beforeCreate () { }, // 生命周期 - 创建之前
-  beforeMount () { }, // 生命周期 - 挂载之前
-  beforeUpdate () { }, // 生命周期 - 更新之前
-  updated () { }, // 生命周期 - 更新之后
-  beforeDestroy () { }, // 生命周期 - 销毁之前
-  destroyed () { }, // 生命周期 - 销毁完成
-  activated () { }, // 如果页面有keep-alive缓存功能,这个函数会触发
-}
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
 </script>
 
 <style lang='scss' scoped>

+ 1 - 1
src/views/BidSystem/ContractList/edit.vue

@@ -14,7 +14,7 @@
         <Button @click="goback()"
                 type="primary"
                 ghost
-                style="margin-right:10px;">取消</Button>
+                style="margin-right:10px;">返回</Button>
         <Button @click="postData()"
                 type="primary"
                 :disabled="isChecked"

+ 1754 - 0
src/views/BidSystem/ContractList/info.vue

@@ -0,0 +1,1754 @@
+<template>
+  <div class="BidSystemContractInfo">
+    <Toptitle title="查看工装订单">
+      <slot name="titleButton">
+        <Button
+          type="primary"
+          style="margin-right: 10px"
+          :disabled="isChecked"
+          @click="showAddInputModal = true"
+        >
+          添加特殊字段
+        </Button>
+        <Button
+          @click="showSupModal = true"
+          type="primary"
+          style="margin-right: 10px"
+          >项目辅料</Button
+        >
+        <Button
+          @click="goback()"
+          type="primary"
+          ghost
+          style="margin-right: 10px"
+          >返回</Button
+        >
+      </slot>
+    </Toptitle>
+    <div class="top_search">
+      <Form :model="formData" :label-width="100" class="top_search_form">
+        <FormItem label="订单号:">
+          {{ formData.order_no }}
+        </FormItem>
+        <FormItem label="项目名称:">
+          {{ formData.residential_name }}
+        </FormItem>
+        <FormItem label="客户姓名:">
+          {{ formData.client_name }}
+        </FormItem>
+        <FormItem label="紧急程度:">
+          <span
+            v-for="_item in warningList"
+            :key="_item.id"
+            v-show="_item.id == formData.warning_state"
+            :style="{ color: _item.color }"
+            >{{ _item.title }}
+          </span>
+        </FormItem>
+        <FormItem label="项目定金:">
+          {{ formData.front_money }}
+          <!-- <RadioGroup v-model="formData.pay_state"
+                      size="small">
+            <Radio :label=0
+                   :disabled="isChecked">未收款</Radio>
+            <Radio :label=1
+                   :disabled="isChecked">已收款</Radio>
+          </RadioGroup> -->
+        </FormItem>
+        <FormItem label="详细地址:">
+          {{ formData.address }}
+        </FormItem>
+        <FormItem label="手机号:">
+          {{ formData.mobile }}
+        </FormItem>
+        <FormItem label="开始日期:">
+          {{
+            formData.start_time
+              ? func.replaceDateNoHMS(formData.start_time)
+              : ""
+          }}
+        </FormItem>
+        <FormItem label="结束日期:">
+          {{
+            formData.end_time ? func.replaceDateNoHMS(formData.end_time) : ""
+          }}
+        </FormItem>
+        <FormItem label="业务员:">
+          <span
+            v-for="_item in salesmanList"
+            :key="_item.id"
+            v-show="_item.id == formData.salesman"
+            :style="{ color: _item.color }"
+            >{{ _item.nickname }}
+          </span>
+        </FormItem>
+        <!-- <FormItem label="订单类型:">
+          <Select v-model="formData.type"
+                  :disabled="isChecked"
+                  size="small"
+                  style="width:200px">
+            <Option label='工装'
+                    :value=1></Option>
+            <Option label='家装'
+                    :value=2></Option>
+          </Select>
+        </FormItem> -->
+        <FormItem
+          v-for="item in formData.special"
+          :key="item.id"
+          :label="item.key + ':'"
+        >
+          {{ item.value }}
+        </FormItem>
+        <FormItem label="备注:">
+          {{ formData.remark }}
+        </FormItem>
+      </Form>
+    </div>
+    <div
+      class="addArea"
+      v-for="(areaItem, areaIndex) in formData.list"
+      :key="areaItem.areaIndex"
+    >
+      <div class="addAreaForm">
+        <Form :label-width="100" :model="areaItem" style="width: 60%">
+          <FormItem label="区域编码:">
+            {{ areaItem.num }}
+          </FormItem>
+          <FormItem label="区域名称:">
+            {{ areaItem.title }}
+          </FormItem>
+          <FormItem label="单位:">
+            {{ areaItem.unit }}
+          </FormItem>
+          <FormItem label="工程量:">
+            {{ areaItem.quantity }}
+          </FormItem>
+          <FormItem label="户型:">
+            {{ areaItem.house_type }}
+          </FormItem>
+          <FormItem
+            v-for="item in areaItem.special"
+            :key="item.id"
+            :label="item.key + ':'"
+          >
+            {{ item.value }}
+          </FormItem>
+          <FormItem label="备注:">
+            {{ areaItem.remark }}
+          </FormItem>
+        </Form>
+      </div>
+      <div class="addAreaTable">
+        <Table
+          :columns="tableColumns"
+          :data="areaItem.product"
+          max-height="600"
+          border
+        >
+        </Table>
+      </div>
+    </div>
+    <li v-show="false" v-for="item in formData.list" :key="item.id"></li>
+    <!-- 项目辅料弹窗 -->
+    <Modal title="项目辅料" v-model="showSupModal" :width="400">
+      <div>
+        <div class="supModalBtn">
+          <Button @click="handleAddSup" type="primary">新增</Button>
+        </div>
+        <Table :columns="supTableColumns" :data="supTableData" border>
+          <template slot="combine" slot-scope="{ index }">
+            <Select
+              v-model="supTableData[index].id"
+              @on-change="handlechange"
+              size="small"
+            >
+              <Option
+                v-for="item in combineList"
+                :value="item.id"
+                :key="item.id"
+                :label="item.title"
+              ></Option>
+            </Select>
+          </template>
+          <template slot="supSet" slot-scope="{ row, index }">
+            <a
+              style="margin: 0 5px; color: red"
+              v-show="$route.query.type != 3"
+              @click="handleSupSet(row, index)"
+              >删除</a
+            >
+          </template>
+        </Table>
+      </div>
+      <div class="modal-footer" slot="footer">
+        <Button @click="showSupModal = false">取消</Button>
+        <Button type="primary" @click="showSupModal = false">确认</Button>
+      </div>
+    </Modal>
+    <!-- 新增产品弹窗 -->
+    <Modal
+      title="新增产品"
+      v-model="showPDTModal"
+      :mask-closable="false"
+      class="addPDTFormModal"
+      :width="1000"
+    >
+      <div
+        class="addPDTForm"
+        v-for="(tempItem, tempIndex) in tempPDTList"
+        :key="tempItem.id"
+      >
+        <Form :label-width="100" :model="tempItem">
+          <FormItem label="产品名称:">
+            <Input
+              type="text"
+              size="small"
+              placeholder="请输入"
+              v-model="tempItem.title"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="数量">
+            <Input
+              type="text"
+              size="small"
+              v-model="tempItem.num"
+              placeholder="请输入"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="图号:">
+            <Input
+              type="text"
+              size="small"
+              placeholder="请输入"
+              v-model="tempItem.url_number"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="图纸">
+            <div class="product-img">
+              <div class="product-add">
+                <div
+                  class="items"
+                  v-for="(_item, _index) of tempItem.url"
+                  :key="_index"
+                >
+                  <img
+                    @click="looks(_item)"
+                    :src="$store.state.ip + _item"
+                    alt=""
+                  />
+                  <Icon
+                    size="20"
+                    @click="delItems(_index, tempItem.url)"
+                    class="delete-img"
+                    type="ios-close-circle"
+                  />
+                </div>
+
+                <div class="add-items">
+                  <div class="_item">
+                    <Icon size="50" type="ios-add" />
+                  </div>
+                  <input
+                    @change="changeIpt($event, tempItem.url)"
+                    type="file"
+                    class="ipt"
+                  />
+                </div>
+              </div>
+            </div>
+          </FormItem>
+          <FormItem label="产品分类">
+            <Select
+              v-model="tempItem.type_id"
+              placeholder="请选择"
+              style="width: 120px"
+              @on-change="(e) => hanndleAddPDTTypeChange(tempItem, e)"
+              size="small"
+            >
+              <Option
+                v-for="item in PDTTypeList"
+                :value="item.value"
+                :key="item.value"
+                >{{ item.label }}</Option
+              >
+            </Select>
+          </FormItem>
+          <div
+            style="display: contents"
+            v-for="el in tempItem.tempPDTTypeList"
+            :key="el"
+          >
+            <FormItem
+              :label="_item.title"
+              v-for="_item in tempItem.tempMeasureList"
+              v-show="el == _item.id"
+              :key="_item.id"
+            >
+              <Input
+                type="text"
+                size="small"
+                v-model="tempItem[_item.e_title]"
+                placeholder="请输入"
+                style="width: 120px"
+              />
+            </FormItem>
+          </div>
+          <FormItem label="价格:">
+            <Input
+              type="text"
+              size="small"
+              v-model="tempItem.price"
+              placeholder="请输入备注"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem
+            :label="item.key + ':'"
+            v-for="item in productSpecValueList"
+            :key="item.id"
+          >
+            <Input
+              type="text"
+              size="small"
+              v-model="tempItem[item.key]"
+              placeholder="请输入"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="备注:">
+            <Input
+              type="text"
+              size="small"
+              v-model="tempItem.remark"
+              placeholder="请输入备注"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="工艺属性">
+            <Button
+              @click="handleProcessAdd(tempItem, tempIndex)"
+              size="small"
+              type="text"
+              style="color: #57a3f3"
+              >添加属性</Button
+            >
+          </FormItem>
+        </Form>
+        <div class="addPDTProcess">
+          <div
+            v-for="(_item, _index) in tempItem.addPDTProcessAttrList"
+            :key="_item.id"
+          >
+            <span>属性{{ _index + 1 }}</span>
+            <Select
+              :value="_item.id"
+              size="small"
+              @on-change="
+                (value) => handleAddPDTAttrChange(_item, _index, value)
+              "
+              style="width: 80px"
+            >
+              <Option
+                v-for="__item in PDTProcessAttrList"
+                :key="__item.id"
+                :value="__item.id"
+                :label="__item.title"
+              >
+              </Option>
+            </Select>
+            <Select
+              :value="_item.process_detail"
+              filterable
+              clearable
+              label-in-value
+              @on-change="
+                (value) => handleAddPDTAttrDetailChange(_item, _index, value)
+              "
+              size="small"
+              style="width: 80px"
+            >
+              <Option
+                v-for="__item in _item.PDTProcessAttrDetailList"
+                :key="__item.id"
+                :value="__item.id"
+                :label="__item.title"
+              />
+            </Select>
+            <div class="dele_icon">
+              <!-- v-show="tempItem.addPDTProcessAttrList.length!=1" -->
+              <Icon
+                type="ios-trash"
+                @click="
+                  handleAddPDTDetailDele(tempItem.addPDTProcessAttrList, _index)
+                "
+              />
+            </div>
+          </div>
+        </div>
+        <div class="addPDTBtn">
+          <Button
+            type="primary"
+            style="margin-right: 10px"
+            @click="handleAddPDTCopy(tempItem, tempIndex)"
+            >复制</Button
+          >
+          <Button
+            type="primary"
+            style="margin-right: 10px"
+            @click="handleAddPDTAdd(tempIndex)"
+            >添加</Button
+          >
+          <Button
+            type="error"
+            v-show="tempIndex != 0"
+            style="margin-right: 10px"
+            @click="handleAddPDTDele(tempIndex)"
+            >删除</Button
+          >
+        </div>
+      </div>
+      <div class="modal-footer" slot="footer">
+        <Button @click="showPDTModal = false">取消</Button>
+        <Button type="primary" @click="handleAddPDTConfirm">确认</Button>
+      </div>
+    </Modal>
+    <!-- 编辑产品弹窗 -->
+    <Modal
+      title="编辑产品"
+      v-model="showPDTEditModal"
+      :mask-closable="false"
+      class="addPDTFormModal"
+      :width="1000"
+    >
+      <div class="addPDTForm">
+        <Form :label-width="100" :model="PDTEdit">
+          <FormItem label="产品名称:">
+            <Input
+              type="text"
+              size="small"
+              placeholder="请输入"
+              v-model="PDTEdit.title"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="数量">
+            <Input
+              type="text"
+              size="small"
+              v-model="PDTEdit.num"
+              placeholder="请输入"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="图号:">
+            <Input
+              type="text"
+              size="small"
+              placeholder="请输入"
+              v-model="PDTEdit.url_number"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="图纸">
+            <div class="product-img">
+              <div class="product-add">
+                <div
+                  class="items"
+                  v-for="(_item, _index) of PDTEdit.url"
+                  :key="_index"
+                >
+                  <img
+                    @click="looks(_item)"
+                    :src="$store.state.ip + _item"
+                    alt=""
+                  />
+                  <Icon
+                    size="20"
+                    @click="delItems(_index, PDTEdit.url)"
+                    class="delete-img"
+                    type="ios-close-circle"
+                  />
+                </div>
+
+                <div class="add-items">
+                  <div class="_item">
+                    <Icon size="50" type="ios-add" />
+                  </div>
+                  <input
+                    @change="changeIpt($event, PDTEdit.url)"
+                    type="file"
+                    class="ipt"
+                  />
+                </div>
+              </div>
+            </div>
+          </FormItem>
+          <FormItem label="产品分类">
+            <Select
+              v-model="PDTEdit.type_id"
+              placeholder="请选择"
+              style="width: 120px"
+              @on-change="(e) => hanndleAddPDTTypeChange(PDTEdit, e)"
+              size="small"
+            >
+              <Option
+                v-for="item in PDTEditTypeList"
+                :value="item.value"
+                :key="item.value"
+                >{{ item.label }}</Option
+              >
+            </Select>
+          </FormItem>
+          <div style="display: contents">
+            <!-- <FormItem :label="_item.title"
+                      v-for="(_item) in PDTEdit.measures"
+                      :key="_item.id">
+              <Input type="text"
+                     size="small"
+                     v-model="PDTEdit[_item.e_title]"
+                     placeholder="请输入"
+                     style="width: 120px" />
+            </FormItem> -->
+          </div>
+          <div style="display: contents">
+            <FormItem
+              :label="_item.title"
+              v-for="_item in PDTEdit.tempMeasureList"
+              :key="_item.id"
+            >
+              <Input
+                type="text"
+                size="small"
+                v-model="PDTEdit[_item.e_title]"
+                placeholder="请输入"
+                style="width: 120px"
+              />
+            </FormItem>
+          </div>
+          <FormItem label="价格:">
+            <Input
+              type="text"
+              size="small"
+              v-model="PDTEdit.price"
+              placeholder="请输入备注"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem
+            :label="item.key + ':'"
+            v-for="item in productSpecValueList"
+            :key="item.id"
+          >
+            <Input
+              type="text"
+              size="small"
+              v-model="PDTEdit[item.key]"
+              placeholder="请输入"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="备注:">
+            <Input
+              type="text"
+              size="small"
+              v-model="PDTEdit.remark"
+              placeholder="请输入备注"
+              style="width: 120px"
+            />
+          </FormItem>
+          <FormItem label="工艺属性">
+            <Button
+              @click="handleEditProcessAdd()"
+              size="small"
+              type="text"
+              style="color: #57a3f3"
+              >添加属性</Button
+            >
+          </FormItem>
+        </Form>
+        <div class="addPDTProcess">
+          <div
+            v-for="(_item, _index) in PDTEdit.addPDTProcessAttrList"
+            :key="_item.id"
+          >
+            <span>属性{{ _index + 1 }}</span>
+            <Select
+              :value="_item.id"
+              size="small"
+              @on-change="
+                (value) => handleAddPDTAttrChange(_item, _index, value)
+              "
+              style="width: 80px"
+            >
+              <Option
+                v-for="__item in PDTProcessAttrList"
+                :key="__item.id"
+                :value="__item.id"
+                :label="__item.title"
+              >
+              </Option>
+            </Select>
+            <Select
+              :value="_item.process_detail"
+              filterable
+              clearable
+              label-in-value
+              @on-change="
+                (value) => handleAddPDTAttrDetailChange(_item, _index, value)
+              "
+              size="small"
+              style="width: 80px"
+            >
+              <Option
+                v-for="__item in _item.PDTProcessAttrDetailList"
+                :key="__item.id"
+                :value="__item.id"
+                :label="__item.title"
+              />
+            </Select>
+            <div class="dele_icon">
+              <!-- v-show="PDTEdit.addPDTProcessAttrList.length!=1" -->
+              <Icon
+                type="ios-trash"
+                @click="
+                  handleAddPDTDetailDele(PDTEdit.addPDTProcessAttrList, _index)
+                "
+              />
+            </div>
+          </div>
+        </div>
+      </div>
+      <div class="modal-footer" slot="footer">
+        <Button @click="showPDTEditModal = false">取消</Button>
+        <Button type="primary" @click="handlePDTEditConfirm">确认</Button>
+      </div>
+    </Modal>
+    <!-- 特殊字段弹窗 -->
+    <Modal
+      title="特殊字段"
+      v-model="showAddInputModal"
+      :mask-closable="false"
+      class="addInputClassModal"
+      :width="600"
+    >
+      <div class="addInputClass">
+        <Tabs value="name1">
+          <TabPane label="订单特殊字段" name="name1">
+            <div style="display: flex; justify-content: center">
+              <span
+                class="dele_icon"
+                @click="handleSpecValueAdd('', 1)"
+                style="text-align: center; width: 50px"
+                >添加
+              </span>
+            </div>
+            <div class="addInputClassTab">
+              <div v-for="(item, index) in contactSpecValueList" :key="index">
+                <span>特殊字段名:</span>
+                <Input
+                  type="text"
+                  size="small"
+                  v-model="item.key"
+                  placeholder="请输入"
+                  style="width: 120px"
+                />
+                <span class="dele_icon" style="margin-right: 5px">
+                  <Icon type="md-add" @click="handleSpecValueAdd(item, 1)" />
+                </span>
+                <span class="dele_icon">
+                  <Icon
+                    type="md-remove"
+                    @click="handleSpecValueDele(index, 1)"
+                  />
+                </span>
+              </div>
+            </div>
+          </TabPane>
+          <TabPane label="区域特殊字段" name="name2">
+            <div style="display: flex; justify-content: center">
+              <span
+                class="dele_icon"
+                @click="handleSpecValueAdd('', 2)"
+                style="text-align: center; width: 50px"
+                >添加
+              </span>
+            </div>
+            <div class="addInputClassTab">
+              <div v-for="(item, index) in areaSpecValueList" :key="index">
+                <span>特殊字段名:</span>
+                <Input
+                  type="text"
+                  size="small"
+                  v-model="item.key"
+                  placeholder="请输入"
+                  style="width: 120px"
+                />
+                <span class="dele_icon" style="margin-right: 5px">
+                  <Icon type="md-add" @click="handleSpecValueAdd(item, 2)" />
+                </span>
+                <span class="dele_icon">
+                  <Icon
+                    type="md-remove"
+                    @click="handleSpecValueDele(index, 2)"
+                  />
+                </span>
+              </div>
+            </div>
+          </TabPane>
+          <TabPane label="产品特殊字段" name="name3">
+            <div style="display: flex; justify-content: center">
+              <span
+                class="dele_icon"
+                @click="handleSpecValueAdd('', 3)"
+                style="text-align: center; width: 50px"
+                >添加
+              </span>
+            </div>
+            <div class="addInputClassTab">
+              <div v-for="(item, index) in productSpecValueList" :key="index">
+                <span>特殊字段名:</span>
+                <Input
+                  type="text"
+                  size="small"
+                  v-model="item.key"
+                  placeholder="请输入"
+                  style="width: 120px"
+                />
+                <span class="dele_icon" style="margin-right: 5px">
+                  <Icon type="md-add" @click="handleSpecValueAdd(item, 3)" />
+                </span>
+                <span class="dele_icon">
+                  <Icon
+                    type="md-remove"
+                    @click="handleSpecValueDele(index, 3)"
+                  />
+                </span>
+              </div>
+            </div>
+          </TabPane>
+        </Tabs>
+        <!-- <Form :label-width="100">
+          <FormItem label="请输入字段名:">
+            <Input type="text"
+                   size="small"
+                   v-model="addInputName"
+                   placeholder="请输入"
+                   style="width: 200px" />
+          </FormItem>
+        </Form> -->
+      </div>
+      <div class="modal-footer" slot="footer">
+        <Button @click="showAddInputModal = false">取消</Button>
+        <Button type="primary" @click="handleAddInputConfirm">确认</Button>
+      </div>
+    </Modal>
+  </div>
+</template>
+
+<script>
+// 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
+// 例如:import 《组件名称》 from '《组件路径》';
+
+export default {
+  name: "BidSystemContractInfo",
+  components: {},
+  props: {},
+  // import引入的组件需要注入到对象中才能使用
+  data() {
+    // 这里存放数据
+    return {
+      showSupModal: false,
+      showPDTModal: false,
+      showPDTEditModal: false,
+      options: {
+        disabledDate(date) {
+          return date && date.valueOf() < Date.now() - 86400000;
+        },
+      },
+      formData: {
+        order_no: "",
+        residential_name: "",
+        client_name: "",
+        address: "",
+        mobile: "",
+        pay_state: "",
+        warning_state: "",
+        salesman: "",
+        remark: "",
+        start_time: "",
+        end_time: "",
+        type: "",
+        special: [],
+        head: [],
+        //区域列表
+        list: [
+          {
+            areaIndex: null,
+            num: "",
+            title: "",
+            unit: "",
+            quantity: "",
+            house_type: "",
+            remark: "",
+            order_no: "",
+            product: [],
+          },
+        ],
+      },
+      tableColumns: [
+        { title: "序号", key: "index", align: "center", minWidth: 80 },
+        {
+          title: "产品名称",
+          key: "title",
+          align: "center",
+          tooltip: true,
+          minWidth: 100,
+        },
+        { title: "数量", key: "num", align: "center", minWidth: 80 },
+        { title: "价格", key: "price", align: "center", minWidth: 80 },
+        {
+          title: "规格",
+          key: "measure",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
+        },
+        {
+          title: "工艺属性",
+          key: "process_property",
+          align: "center",
+          tooltip: true,
+          minWidth: 120,
+        },
+        {
+          title: "图纸",
+          align: "center",
+          key: "url",
+          minWidth: 100,
+          render: (h, params) => {
+            const { row } = params;
+            let url = row.url ? row.url : [];
+            return h("img", {
+              attrs: {
+                src: this.$store.state.ip + url[0],
+                style:
+                  "max-width:50px;max-height:50px;position:relative;top:3px;",
+              },
+              on: {
+                click: (e) => {
+                  // this.axios('/api/orders_img', { params: { id: row.id, type: 1 } }).then(res => {
+                  // row.imgs = res.data
+                  let list = [];
+                  row.url.forEach((el) => {
+                    list.push({ img_url: el });
+                  });
+                  this.$previewImg({
+                    list,
+                    baseUrl: this.$store.state.ip,
+                    baseImgField: "img_url",
+                    baseTitleField: "",
+                  });
+                  // })
+                },
+              },
+            });
+          },
+        },
+        {
+          title: "图号",
+          key: "url_number",
+          align: "center",
+          tooltip: true,
+          minWidth: 80,
+        },
+        { title: "备注", key: "remark", align: "center", minWidth: 80 },
+      ],
+      supTableColumns: [
+        { title: "序号", key: "index", align: "center" },
+        {
+          title: "辅料名称",
+          key: "title",
+          align: "center",
+          slot: "combine",
+          minWidth: 60,
+        },
+        { title: "操作", key: "set", align: "center", slot: "supSet" },
+      ],
+      supTableData: [], //产品分类列表
+      PDTTypeList: [], //项目辅料→辅料名称列表
+      PDTEditTypeList: [], //项目辅料→辅料名称列表
+      combineList: [], //业务员列表
+      salesmanList: [],
+      tempPDTIndex: "", // 新增产品暂存
+      tempPDTList: [
+        {
+          url: [],
+          process_property: "",
+          process_properties: [],
+          tempPDTTypeList: [],
+          measure: "",
+          //新增产品工艺属性列表
+          addPDTProcessAttrList: [
+            {
+              showValue: "",
+              showId: "",
+              PDTProcessAttrDetailList: [],
+            },
+          ],
+        },
+      ],
+      PDTEdit: {
+        url: [],
+        process_property: "",
+        process_properties: [],
+        tempPDTTypeList: [],
+        measure: "",
+        //新增产品工艺属性列表
+        addPDTProcessAttrList: [
+          {
+            showValue: "",
+            showId: "",
+            PDTProcessAttrDetailList: [],
+          },
+        ],
+      },
+      //是否查看
+      isChecked: false,
+      PDTProcessAttrList: [],
+      // 测量字段列表
+      measureList: [],
+      contactForm: [],
+      addInputTitle: "",
+      showAddInputModal: false,
+      addInputName: "",
+      contactSpecValueList: [],
+      areaSpecValueList: [],
+      productSpecValueList: [],
+      warningList: [],
+    };
+  },
+  // 生命周期 - 创建完成(可以访问当前this实例)
+  created() {
+    //2编辑  3详情  0新增
+    this.$route.query.type == 3 ? (this.isChecked = true) : "";
+    this.$route.query.order_no
+      ? (this.formData.order_no = this.$route.query.order_no)
+      : "";
+    // 获取工艺属性
+    this.axios("/api/basics_properties_index").then((res) => {
+      this.PDTProcessAttrList = res.data.data;
+    });
+    // 获取紧急程度
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
+  },
+  // 生命周期 - 挂载完成(可以访问DOM元素)
+  mounted() {
+    this.$route.query.type == 3 || this.$route.query.type == 2
+      ? this.initData(this.$route.query.order_no)
+      : "";
+    //获取操作员
+    this.axios("/api/user").then((res) => (this.salesmanList = res.data.data));
+    //获取产品分类下拉列表
+    this.axios("/api/parts_product_list").then((res) => {
+      this.PDTTypeList = res.data;
+      this.PDTTypeList.forEach((el) => {
+        el.value = el.id;
+        el.label = el.title;
+      });
+      this.PDTEditTypeList = this.PDTTypeList;
+    });
+    //获取基础测量字段列表
+    this.axios("/api/basics_measure_index").then((res) => {
+      this.measureList = res.data.data;
+    });
+    // 获取项目辅料列表
+    this.axios("/api/material_combination").then((res) => {
+      this.combineList = res.data.data;
+    });
+  },
+  methods: {
+    handlechange(val) {
+      console.log("val :>> ", val);
+    },
+    handleStartTimeChange(value) {
+      this.formData.start_time = value;
+    },
+    handleEndTimeChange(value) {
+      this.formData.end_time = value;
+    },
+    initData(order_no) {
+      this.axios({
+        method: "get",
+        url: "/api/order_area_list",
+        params: {
+          order_no,
+        },
+      })
+        .then((res) => {
+          this.formData = res.data;
+          if (this.formData.list.length == 0) {
+            this.formData.list.push({
+              areaIndex: 1,
+              num: "",
+              title: "",
+              unit: "",
+              quantity: "",
+              house_type: "",
+              remark: "",
+              order_no: "",
+              special: [],
+              head: [],
+              product: [
+                {
+                  title: "",
+                  num: "",
+                  measure: "",
+                  process_property: "",
+                  special: [],
+                  url: [],
+                  url_number: "",
+                  remark: "",
+                },
+              ],
+            });
+          }
+          this.formData.start_time = this.func.replaceDateNoHMS(
+            this.formData.start_time
+          );
+          this.formData.end_time = this.func.replaceDateNoHMS(
+            this.formData.end_time
+          );
+          this.formData.list.forEach((element) => {});
+          // 产品特殊字段→ 弹窗窗口,table表头
+          let arr = [];
+          res.data.head[3] &&
+            res.data.head[3].forEach((item) => {
+              // ele[key] = item.key
+              arr.push({
+                title: item.key,
+                key: item.key,
+                align: "center",
+                minWidth: 80,
+              });
+            });
+          this.tableColumns = [
+            { title: "序号", key: "index", align: "center", minWidth: 80 },
+            {
+              title: "产品名称",
+              key: "title",
+              align: "center",
+              tooltip: true,
+              minWidth: 100,
+            },
+            { title: "数量", key: "num", align: "center", minWidth: 80 },
+            { title: "价格", key: "price", align: "center", minWidth: 80 },
+            {
+              title: "规格",
+              key: "measure",
+              align: "center",
+              tooltip: true,
+              minWidth: 140,
+            },
+            {
+              title: "工艺属性",
+              key: "process_property",
+              align: "center",
+              tooltip: true,
+              minWidth: 120,
+            },
+            {
+              title: "图纸",
+              align: "center",
+              key: "url",
+              minWidth: 100,
+              render: (h, params) => {
+                const { row } = params;
+                let url = row.url ? row.url : [];
+                return h("img", {
+                  attrs: {
+                    src: this.$store.state.ip + url[0],
+                    style:
+                      "max-width:50px;max-height:50px;position:relative;top:3px;",
+                  },
+                  on: {
+                    click: (e) => {
+                      // this.axios('/api/orders_img', { params: { id: row.id, type: 1 } }).then(res => {
+                      // row.imgs = res.data
+                      let list = [];
+                      row.url.forEach((el) => {
+                        list.push({ img_url: el });
+                      });
+                      this.$previewImg({
+                        list,
+                        baseUrl: this.$store.state.ip,
+                        baseImgField: "img_url",
+                        baseTitleField: "",
+                      });
+                      // })
+                    },
+                  },
+                });
+              },
+            },
+            {
+              title: "图号",
+              key: "url_number",
+              align: "center",
+              tooltip: true,
+              minWidth: 80,
+            },
+            ...arr,
+            { title: "备注", key: "remark", align: "center", minWidth: 80 },
+          ];
+          // 订单特殊字段
+          this.formData.special &&
+            this.formData.special.forEach((element) => {
+              this.formData.head[1].forEach((item) => {
+                if (element.head_id == item.id) {
+                  element = Object.assign(element, item);
+                  this.contactSpecValueList.push(element);
+                }
+              });
+            });
+          this.contactForm = this.formData.head[1]
+            ? this.formData.head[1]
+            : [{ key: "", value: "" }];
+          // 区域特殊字段
+          this.formData.list.forEach((element) => {
+            element.special &&
+              element.special.forEach((ele) => {
+                this.formData.head[2].forEach((item) => {
+                  if (ele.head_id == item.id) {
+                    ele = Object.assign(ele, item);
+                    this.areaSpecValueList.push(ele);
+                  }
+                });
+              });
+          });
+          this.areaSpecValueList = this.formData.head[2]
+            ? this.formData.head[2]
+            : [{ key: "", value: "" }];
+          // 产品特殊字段→ 弹窗窗口,table表头
+          this.formData.list.forEach((area) => {
+            area.product.forEach((pdt, index) => {
+              pdt.index = index + 1;
+              pdt.special &&
+                pdt.special.forEach((element) => {
+                  this.formData.head[3].forEach((item) => {
+                    if (element.head_id == item.id) {
+                      element = Object.assign(element, item);
+                      pdt[element.key] = element.value;
+                      this.productSpecValueList.push(element);
+                    }
+                  });
+                });
+            });
+          });
+          this.productSpecValueList = this.formData.head[3]
+            ? this.formData.head[3]
+            : [{ key: "", value: "" }];
+        })
+        .catch((err) => {});
+    },
+    // 操作table数据 3编辑 4删除
+    handleSet(row, index, type, table, areaIndex) {
+      switch (type) {
+        case 3:
+          this.PDTEdit = row;
+          console.log("this.PDTEdit :>> ", this.PDTEdit);
+          if (!this.PDTEdit.url) {
+            this.PDTEdit.url = [];
+          }
+          this.PDTEditAreaIndex = areaIndex;
+          this.PDTEditIndex = index;
+          this.PDTEdit.addPDTProcessAttrList
+            ? this.PDTEdit.addPDTProcessAttrList.forEach((element) => {
+                element.type_id ? (element.id = element.type_id) : "";
+                element.process_detail = element.showId * 1;
+              })
+            : (this.PDTEdit.addPDTProcessAttrList = []);
+          this.PDTEdit.tempPDTTypeList = [];
+          // if (this.PDTEdit.measures.length > 0) {
+          //   this.PDTEdit.measures.forEach(el => {
+          //     this.PDTEdit[el.e_title] = el.value
+          //   });
+          // }
+          this.$route.query.type == 2 &&
+            (this.PDTEdit.tempMeasureList = this.PDTEdit.measures);
+          // console.log('this.PDTEdit.measures :>> ', this.PDTEdit.measures);
+          // for (const key in this.PDTEdit.measures) {
+          //   this.PDTEdit.tempMeasureList.forEach(el => {
+          //     // console.log('el.e_title :>> ', el.e_title);
+          //     this.PDTEdit[el.e_title] = el.value
+          //       console.log('key :>> ', key);
+          //     if (key == el.e_title) {
+          //       if (this.PDTEdit[key] == '') {
+          //         this.PDTEdit.tempMeasureList.splice(this.PDTEdit.tempMeasureList.indexOf(el), 1)
+          //       }
+          //     }
+          //   });
+          // }
+          console.log(
+            "this.PDTEdit.tempMeasureList :>> ",
+            this.PDTEdit.tempMeasureList
+          );
+          //获取属性
+          let newmeasureList = row.measure.split("*");
+          for (let i in newmeasureList) {
+            for (let j in this.measureList) {
+              if (
+                newmeasureList[i].indexOf(this.measureList[j].e_title) != -1
+              ) {
+                this.PDTEdit[this.measureList[j].e_title] =
+                  newmeasureList[i].substring(1);
+              }
+            }
+          }
+          // this.axios('/api/basics_product_index', { params: { type_id: this.PDTEdit.type_id } }).then(res => {
+          //   this.PDTEdit.tempMeasureList = res.data.data;
+          // })
+          // this.hanndleAddPDTTypeChange(this.PDTEdit,this.PDTEdit.type_id)
+          this.PDTEdit = JSON.parse(JSON.stringify(this.PDTEdit));
+          this.showPDTEditModal = true;
+          break;
+        case 4:
+          table.splice(index, 1);
+          break;
+      }
+    },
+    //新增产品复制
+    handleAddPDTCopy(item, index) {
+      const temp = JSON.parse(JSON.stringify(item));
+      this.tempPDTList.splice(index + 1, 0, temp);
+    },
+    //新增产品添加
+    handleAddPDTAdd(index) {
+      this.tempPDTList.splice(index + 1, 0, { addPDTProcessAttrList: [] });
+    },
+    //新增产品删除
+    handleAddPDTDele(index) {
+      this.tempPDTList.splice(index, 1);
+    },
+    //新增产品→新增区域确认
+    handleAddPDTConfirm() {
+      this.tempPDTList.forEach((element) => {
+        element.addPDTProcessAttrList.forEach((el) => {
+          element.process_property += el.showValue + ",";
+          element.process_properties += el.showId + ",";
+        });
+        element.process_property = element.process_property.substring(
+          0,
+          element.process_property.length - 1
+        );
+        element.process_properties = element.process_properties.substring(
+          0,
+          element.process_properties.length - 1
+        );
+
+        element.tempMeasureList.forEach((el) => {
+          element[el.e_title] &&
+            (element.measure += `${el.e_title ? el.e_title : 0}${
+              element[el.e_title]
+            }*`);
+        });
+        element.measure = element.measure.substring(
+          0,
+          element.measure.length - 1
+        );
+      });
+      // console.log('this.formData.list[this.tempPDTIndex].product :>> ', this.formData.list[this.tempPDTIndex].product);
+      // console.log('this.tempPDTList :>> ', this.tempPDTList);
+      this.formData.list[this.tempPDTIndex].product.push(...this.tempPDTList);
+      this.$nextTick(() => {
+        //开辟新栈空间,更改指针
+        this.formData.list = JSON.parse(JSON.stringify(this.formData.list));
+        this.formData.list[this.tempPDTIndex].product.forEach((el, index) => {
+          el.index = index + 1;
+        });
+        // 置空新增产品对象
+        this.tempPDTList = [
+          {
+            url: [],
+            process_property: "",
+            process_properties: [],
+            tempPDTTypeList: [],
+            measure: "",
+            //新增产品工艺属性列表
+            addPDTProcessAttrList: [
+              {
+                showValue: "",
+                showId: "",
+                PDTProcessAttrDetailList: [],
+              },
+            ],
+          },
+        ];
+        this.showPDTModal = false;
+      });
+    },
+    // 编辑产品→确认
+    handlePDTEditConfirm() {
+      this.PDTEdit.process_property = "";
+      this.PDTEdit.process_properties = "";
+      this.PDTEdit.measure = "";
+      this.PDTEdit.tempMeasureList.forEach((element) => {
+        element.value = this.PDTEdit[element.e_title];
+      });
+      this.PDTEdit.addPDTProcessAttrList.forEach((el) => {
+        this.PDTEdit.process_property += el.showValue + ",";
+        this.PDTEdit.process_properties += el.showId + ",";
+      });
+      this.PDTEdit.process_property = this.PDTEdit.process_property.substring(
+        0,
+        this.PDTEdit.process_property.length - 1
+      );
+      this.PDTEdit.process_properties =
+        this.PDTEdit.process_properties.substring(
+          0,
+          this.PDTEdit.process_properties.length - 1
+        );
+      this.PDTEdit.tempMeasureList.forEach((el) => {
+        this.PDTEdit.measure += `${el.e_title}${this.PDTEdit[el.e_title]}*`;
+      });
+      this.PDTEdit.measure = this.PDTEdit.measure.substring(
+        0,
+        this.PDTEdit.measure.length - 1
+      );
+      this.$nextTick(() => {
+        // this.formData.list[this.PDTEditAreaIndex].product[this.PDTEditIndex] = this.PDTEdit
+        this.showPDTEditModal = false;
+        this.formData.list[this.PDTEditAreaIndex].product.splice(
+          this.PDTEditIndex,
+          1,
+          this.PDTEdit
+        );
+        this.$forceUpdate();
+      });
+    },
+    //添加工艺属性
+    handleProcessAdd(item, index) {
+      this.tempPDTList[index].addPDTProcessAttrList.push({
+        PDTProcessAttrDetailList: [],
+      });
+    },
+    // 编辑添加工艺属性
+    handleEditProcessAdd() {
+      this.$nextTick(() => {
+        !this.PDTEdit.addPDTProcessAttrList &&
+          (this.PDTEdit.addPDTProcessAttrList = []);
+        this.PDTEdit.addPDTProcessAttrList.push({
+          PDTProcessAttrDetailList: [],
+        });
+        this.$forceUpdate();
+      });
+    },
+    //选择工艺属性
+    handleAddPDTAttrChange(item, index, value) {
+      item.id = value;
+      this.axios("/api/properties_index", { params: { id: value } }).then(
+        (res) => {
+          item.PDTProcessAttrDetailList = res.data.data;
+        }
+      );
+    },
+    //选择工艺属性细节
+    handleAddPDTAttrDetailChange(item, index, value) {
+      item.showValue = value.label;
+      item.showId = value.value;
+    },
+    // 删除工艺属性
+    handleAddPDTDetailDele(arr, index) {
+      this.$nextTick(() => {
+        arr.splice(index, 1);
+        this.$forceUpdate();
+      });
+    },
+    //项目辅料新增
+    handleAddSup() {
+      this.supTableData.push({ index: "", id: "" });
+      this.supTableData.forEach((element, index) => {
+        element.index = index + 1;
+      });
+    },
+    //项目辅料删除
+    handleSupSet(row, index) {
+      this.supTableData.splice(index, 1);
+      // this.supTableData.forEach((element, index) => {
+      //   element.index = index + 1
+      // });
+    },
+    goback() {
+      this.$router.go(-1);
+    },
+    looks(img) {
+      const array = [{ img_url: img }];
+      this.$previewImg({
+        list: array,
+        baseUrl: this.$store.state.ip,
+        baseImgField: "img_url",
+        baseTitleField: "",
+      });
+    },
+    delItems(n, arr) {
+      arr.splice(n, 1);
+    },
+    changeIpt(e, row) {
+      let file = e.target.files[0];
+      this.postImg(file, row);
+      e.target.value = null;
+    },
+    postImg(file, row) {
+      let formData = new FormData();
+      formData.append("file", file);
+      this.axios.post("/api/upload_pic", formData).then((res) => {
+        this.$nextTick(() => {
+          row.push(res.data.url);
+          this.$forceUpdate();
+        });
+      });
+    },
+    // 产品分类选择→对应不同测量字段
+    hanndleAddPDTTypeChange(item, e) {
+      e &&
+        this.axios("/api/basics_product_index", {
+          params: { type_id: e },
+        }).then((res) => {
+          item.tempPDTTypeList = res.data.data[0].measure_id.split(",");
+          this.measureList.forEach((el) => {
+            item[el.e_title] = "";
+          });
+          this.$nextTick(() => {
+            item.tempMeasureList = this.measureList;
+            this.$forceUpdate();
+          });
+        });
+      // basics_measure_index
+    },
+    // 添加特殊字段
+    handleAddInputConfirm() {
+      this.formData.special = JSON.parse(
+        JSON.stringify(this.contactSpecValueList)
+      );
+      this.formData.list.forEach((element) => {
+        element.special = JSON.parse(JSON.stringify(this.areaSpecValueList));
+        element.product.forEach((ele) => {
+          ele.special = JSON.parse(JSON.stringify(this.productSpecValueList));
+        });
+      });
+      let arr = [];
+      this.productSpecValueList.forEach((element) => {
+        arr.push({
+          title: element.key,
+          key: element.key,
+          align: "center",
+          minWidth: 80,
+        });
+      });
+      this.tableColumns = [
+        { title: "序号", key: "index", align: "center", minWidth: 80 },
+        {
+          title: "产品名称",
+          key: "title",
+          align: "center",
+          tooltip: true,
+          minWidth: 100,
+        },
+        { title: "数量", key: "num", align: "center", minWidth: 80 },
+        { title: "价格", key: "price", align: "center", minWidth: 80 },
+        {
+          title: "规格",
+          key: "measure",
+          align: "center",
+          tooltip: true,
+          minWidth: 140,
+        },
+        {
+          title: "工艺属性",
+          key: "process_property",
+          align: "center",
+          tooltip: true,
+          minWidth: 120,
+        },
+        {
+          title: "图纸",
+          align: "center",
+          key: "url",
+          minWidth: 100,
+          render: (h, params) => {
+            const { row } = params;
+            let url = row.url ? row.url : [];
+            return h("img", {
+              attrs: {
+                src: this.$store.state.ip + url[0],
+                style:
+                  "max-width:50px;max-height:50px;position:relative;top:3px;",
+              },
+              on: {
+                click: (e) => {
+                  // this.axios('/api/orders_img', { params: { id: row.id, type: 1 } }).then(res => {
+                  // row.imgs = res.data
+                  let list = [];
+                  row.url.forEach((el) => {
+                    list.push({ img_url: el });
+                  });
+                  this.$previewImg({
+                    list,
+                    baseUrl: this.$store.state.ip,
+                    baseImgField: "img_url",
+                    baseTitleField: "",
+                  });
+                  // })
+                },
+              },
+            });
+          },
+        },
+        {
+          title: "图号",
+          key: "url_number",
+          align: "center",
+          tooltip: true,
+          minWidth: 80,
+        },
+        ...arr,
+        { title: "备注", key: "remark", align: "center", minWidth: 80 },
+      ];
+      this.showAddInputModal = false;
+    },
+    // 添加特殊字段
+    handleSpecValueAdd(item, type) {
+      switch (type) {
+        case 1:
+          this.contactSpecValueList.push({ key: "", value: "" });
+          break;
+        case 2:
+          this.areaSpecValueList.push({ key: "", value: "" });
+          break;
+        case 3:
+          this.productSpecValueList.push({ key: "", value: "" });
+          break;
+      }
+    },
+    // 删除特殊字段
+    handleSpecValueDele(index, type) {
+      switch (type) {
+        case 1:
+          this.contactSpecValueList.splice(index, 1);
+          break;
+        case 2:
+          this.areaSpecValueList.splice(index, 1);
+          break;
+        case 3:
+          this.productSpecValueList.splice(index, 1);
+          break;
+      }
+    },
+  },
+  // 监听属性 类似于data概念
+  computed: {},
+  // 监控data中的数据变化
+  watch: {},
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
+</script>
+
+<style lang='scss' scoped>
+.BidSystemContractInfo {
+  overflow: hidden;
+  overflow-y: auto;
+  position: relative;
+  top: 20px;
+  height: 85%;
+  padding-bottom: 20px;
+}
+.top_search {
+  padding: 20px 0;
+  width: 100%;
+  .top_search_form {
+    // width: 800px;
+    // display: flex;
+    // justify-content: space-around;
+    /deep/ .ivu-form-item {
+      display: inline-block;
+      width: 300px;
+    }
+  }
+}
+.addArea {
+  position: relative;
+  padding: 15px;
+  margin-bottom: 30px;
+  border-radius: 5px;
+  box-shadow: 1px 1px 5px 1px #999;
+  .addAreaBtn {
+    position: absolute;
+    right: 20px;
+    top: 20px;
+  }
+  /deep/ .ivu-form-item {
+    display: inline-block;
+    width: 220px;
+  }
+}
+.addPDTFormModal {
+  .addPDTForm {
+    width: 100%;
+    position: relative;
+    border-bottom: 1px solid #e8eaec;
+    margin-bottom: 30px;
+    /deep/ .ivu-form-item {
+      display: inline-block;
+      width: 300px;
+    }
+    .addPDTBtn {
+      position: absolute;
+      right: 10px;
+      bottom: 25px;
+    }
+  }
+  /deep/ .ivu-modal-body {
+    display: flex;
+    justify-content: center;
+    flex-wrap: wrap;
+    max-height: 700px;
+    overflow: hidden;
+    overflow-y: auto;
+  }
+}
+.addPDTProcess {
+  width: 300px;
+  padding-bottom: 15px;
+  div {
+    display: flex;
+    justify-content: space-around;
+    padding: 5px 0;
+    span {
+      padding-top: 6px;
+    }
+  }
+  .dele_icon {
+    width: 10px;
+    /deep/ .ivu-icon {
+      padding-top: 5px;
+    }
+  }
+}
+.product-img {
+  padding-top: 10px;
+}
+.product-add {
+  display: flex;
+  flex-wrap: wrap;
+  .ipt {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    opacity: 0;
+    cursor: pointer;
+    outline: none;
+    top: 0;
+    left: 0;
+  }
+  .add-items {
+    width: 40px;
+    height: 40px;
+    border: 1px dotted #e7e7e7;
+    border-radius: 5px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    overflow: hidden;
+    position: relative;
+    flex-direction: column;
+    background: #f4f5f7;
+    .item {
+      width: 46px;
+      height: 46px;
+      background: #3764ff;
+      opacity: 0.6;
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      border-radius: 50%;
+      color: #fff;
+    }
+  }
+  .items {
+    width: 40px;
+    height: 40px;
+    margin-bottom: 10px;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    background: #e7e7e7;
+    margin-right: 10px;
+    border-radius: 5px;
+    position: relative;
+    img {
+      max-width: 40px;
+      max-height: 40px;
+    }
+  }
+}
+.supModalBtn {
+  display: flex;
+  justify-content: flex-end;
+  margin-bottom: 10px;
+}
+/deep/.ivu-modal-body {
+  display: flex;
+  justify-content: center;
+  .addInputClass {
+    display: flex;
+    justify-content: center;
+    width: 500px;
+    .dele_icon {
+      cursor: pointer;
+      width: 10px;
+      /deep/ .ivu-icon {
+        padding-top: 5px;
+      }
+    }
+  }
+}
+.addInputClassTab {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-wrap: wrap;
+  div {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    width: 100%;
+    padding: 5px;
+    .dele_icon {
+      i {
+        font-size: 20px;
+      }
+    }
+  }
+}
+/deep/.ivu-tabs-nav-scroll {
+  display: flex;
+  justify-content: center;
+}
+/deep/ .ivu-table-wrapper {
+  overflow: visible;
+}
+/deep/.ivu-table-fixed-body {
+  padding-bottom: 20px;
+}
+</style>

+ 460 - 290
src/views/BidSystem/ContractList/list.vue

@@ -1,137 +1,169 @@
 <template>
   <div class="BidsList">
-    <FullPage title='工装订单列表'
-              :list='set_list'
-              @init='init'
-              :loading='loading'
-              @searchData='init'
-              @selectTable='selectTable'
-              @changePage='changePage'
-              @changeSize='changeSize'
-              :tableColums='computedTable'
-              :showPage='false'
-              :tableData='tableData'
-              :page_index='page_index'
-              :total='total'>
-      <div slot='titleButton'
-           style="display:flex;">
-        <Upload name='your_file'
-                :show-upload-list='false'
-                :headers='headers'
-                :on-error='uploadError'
-                :on-success='uploadSuccess'
-                :action="$store.state.ip+'/api/order_area_import'">
-          <Button type="success"
-                  ghost
-                  icon='md-exit'
-                  style="margin-right:10px;">导入</Button>
+    <FullPage
+      title="工装订单列表"
+      :list="set_list"
+      @init="init"
+      :loading="loading"
+      @searchData="init"
+      @selectTable="selectTable"
+      @changePage="changePage"
+      @changeSize="changeSize"
+      :tableColums="computedTable"
+      :showPage="false"
+      :tableData="tableData"
+      :page_index="page_index"
+      :total="total"
+    >
+      <div slot="titleButton" style="display: flex">
+        <Upload
+          name="your_file"
+          :show-upload-list="false"
+          :headers="headers"
+          :on-error="uploadError"
+          :on-success="uploadSuccess"
+          :action="$store.state.ip + '/api/order_area_import'"
+        >
+          <Button type="success" ghost icon="md-exit" style="margin-right: 10px"
+            >导入</Button
+          >
         </Upload>
-        <Button @click="exportData"
-                type="warning"
-                ghost
-                icon='md-return-left'
-                style="margin-right:10px;">导出</Button>
-        <Button @click="handleToEditpage(1)"
-                type="primary"
-                ghost
-                style="margin-right:10px;">新增</Button>
+        <Button
+          @click="exportData"
+          type="warning"
+          ghost
+          icon="md-return-left"
+          style="margin-right: 10px"
+          >导出</Button
+        >
+        <Button
+          @click="handleToEditpage(1)"
+          type="primary"
+          ghost
+          style="margin-right: 10px"
+          >新增</Button
+        >
       </div>
-      <div slot='navButton'
-           style="display:flex;">
-        <Button v-if='persimissionData["表头设置"]||persimissionData.all'
-                @click="setupTableHeader"
-                type="primary"
-                style="margin-right:10px;"
-                ghost
-                icon='ios-cog'>设置</Button>
+      <div slot="navButton" style="display: flex">
+        <Button
+          v-if="persimissionData['表头设置'] || persimissionData.all"
+          @click="setupTableHeader"
+          type="primary"
+          style="margin-right: 10px"
+          ghost
+          icon="ios-cog"
+          >设置</Button
+        >
       </div>
-      <template slot="basicTypeSet"
-                slot-scope="{row}">
+      <template slot="basicTypeSet" slot-scope="{ row }">
         <div>
-          <span v-for="item in warningList"
-                :key="item.id"
-                :style="{color:item.color}"
-                v-show="item.id==row.warning_state">{{item.title}}</span>
+          <span
+            v-for="item in warningList"
+            :key="item.id"
+            :style="{ color: item.color }"
+            v-show="item.id == row.warning_state"
+            >{{ item.title }}</span
+          >
         </div>
       </template>
-      <template slot='set'
-                slot-scope='{row,index}'>
+      <template slot="set" slot-scope="{ row, index }">
         <div>
-          <a style="margin:0 5px"
-             :disabled="row.sub_status!=0"
-             @click="handleSet(row,index,1)">深化</a>
-          <a style="margin:0 5px"
-             :disabled="row.sub_status!=0"
-             @click="handleSet(row,index,2)">编辑</a>
-          <a style="margin:0 5px"
-             @click="handleSet(row,index,3)">详情</a>
-          <a style="margin:0 5px"
-             :disabled="row.sub_status!=0"
-             @click="handleSet(row,index,4)">删除</a>
+          <a
+            style="margin: 0 5px"
+            :disabled="row.sub_status != 0"
+            @click="handleSet(row, index, 1)"
+            >深化</a
+          >
+          <a
+            style="margin: 0 5px"
+            :disabled="row.sub_status != 0"
+            @click="handleSet(row, index, 2)"
+            >编辑</a
+          >
+          <a style="margin: 0 5px" @click="handleSet(row, index, 3)">详情</a>
+          <a
+            style="margin: 0 5px"
+            :disabled="row.sub_status != 0"
+            @click="handleSet(row, index, 4)"
+            >删除</a
+          >
         </div>
       </template>
       <template slot="pageSlot">
         <div class="pageSlotStyle">
-          <Page :page-size-opts="[10, 20, 30, 40,100,1000]"
-                @on-page-size-change='changeSize'
-                @on-change='changePage'
-                :current='page_index'
-                show-total
-                :total="total"
-                show-sizer
-                :page-size='page_size' />
+          <Page
+            :page-size-opts="[10, 20, 30, 40, 100, 1000]"
+            @on-page-size-change="changeSize"
+            @on-change="changePage"
+            :current="page_index"
+            show-total
+            :total="total"
+            show-sizer
+            :page-size="page_size"
+          />
         </div>
       </template>
     </FullPage>
-    <Modal v-model="processModal"
-           title="下深化"
-           @on-ok="handleProcess"
-           @on-cancel="processModal=false">
+    <Modal
+      v-model="processModal"
+      title="下深化"
+      @on-ok="handleProcess"
+      @on-cancel="processModal = false"
+    >
       <div>
         <div class="process_modal">
           <span>深化人员:</span>
-          <Select v-model="process_man"
-                  style="width: 150px">
-            <Option v-for="item in processManList"
-                    :key="item.id"
-                    :label='item.nickname'
-                    :value='item.id'></Option>
+          <Select v-model="process_man" style="width: 150px">
+            <Option
+              v-for="item in processManList"
+              :key="item.id"
+              :label="item.nickname"
+              :value="item.id"
+            ></Option>
           </Select>
         </div>
         <div class="process_modal">
           <span>选择时间:</span>
-          <DatePicker type="date"
-                      v-model="process_start_time"
-                      placeholder="年/月/日"
-                      style="width: 150px"></DatePicker>
+          <DatePicker
+            type="date"
+            v-model="process_start_time"
+            placeholder="年/月/日"
+            style="width: 150px"
+          ></DatePicker>
-          <DatePicker type="date"
-                      v-model="process_end_time"
-                      placeholder="年/月/日"
-                      style="width: 150px"></DatePicker>
+          <DatePicker
+            type="date"
+            v-model="process_end_time"
+            placeholder="年/月/日"
+            style="width: 150px"
+          ></DatePicker>
         </div>
       </div>
     </Modal>
-    <Modal v-model="showModal"
-           title="设置"
-           @on-ok="handleModalOk"
-           @on-cancel="showModal = false">
+    <Modal
+      v-model="showModal"
+      title="设置"
+      @on-ok="handleModalOk"
+      @on-cancel="showModal = false"
+    >
       <div class="modal_content">
         <Tabs value="name1">
-          <TabPane label="表单设置"
-                   name="name1">
-            <Table :columns="formModalColumns"
-                   border
-                   :data="formModalTableData"></Table>
+          <TabPane label="表单设置" name="name1">
+            <Table
+              :columns="formModalColumns"
+              border
+              :data="formModalTableData"
+            ></Table>
             <!-- @on-drag-drop="(a,b)=>onDragDrop(a,b,formModalTableData)" -->
           </TabPane>
-          <TabPane label="表头设置"
-                   name="name2">
-            <Table :columns="tableModalColumns"
-                   border
-                   draggable
-                   @on-drag-drop="(a,b)=>onDragDrop(a,b,tableModalTableData)"
-                   :data="tableModalTableData"></Table>
+          <TabPane label="表头设置" name="name2">
+            <Table
+              :columns="tableModalColumns"
+              border
+              draggable
+              @on-drag-drop="(a, b) => onDragDrop(a, b, tableModalTableData)"
+              :data="tableModalTableData"
+            ></Table>
           </TabPane>
         </Tabs>
       </div>
@@ -142,27 +174,53 @@
 <script>
 // 这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 // 例如:import 《组件名称》 from '《组件路径》';
-import { mapState } from 'vuex'
+import { mapState } from "vuex";
 
 export default {
-  name: 'BidSystemContractList',
-  data () {
+  name: "BidSystemContractList",
+  data() {
     // 这里存放数据
     return {
       tableColums: [
-        { type: 'selection', align: 'center', key: 'selection', minWidth: 100, fixed: 'left', title: '全选' },
-        { title: '订单号', align: 'center', key: 'order_no', minWidth: 150 },
-        { title: '项目名称', align: 'center', key: 'residential_name', minWidth: 120 },
-        { title: '详细地址', align: 'center', key: 'address', minWidth: 200 },
+        {
+          type: "selection",
+          align: "center",
+          key: "selection",
+          minWidth: 100,
+          fixed: "left",
+          title: "全选",
+        },
+        { title: "订单号", align: "center", key: "order_no", minWidth: 150 },
+        {
+          title: "项目名称",
+          align: "center",
+          key: "residential_name",
+          minWidth: 120,
+        },
+        { title: "详细地址", align: "center", key: "address", minWidth: 200 },
         // {
         //   title: '订单类型', align: 'center', key: 'renovation_type', minWidth: 100,
         //   render: (h, params) => h('span', {}, params.row.renovation_type == 1 ? '工装' : '家装')
         // },
-        { title: '客户姓名', align: 'center', key: 'client_name', minWidth: 120 },
-        { title: '手机号', align: 'center', key: 'mobile', minWidth: 150 },
-        { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 100, slot: 'basicTypeSet', },
         {
-          title: '业务员', align: 'center', key: 'salesman', minWidth: 100,
+          title: "客户姓名",
+          align: "center",
+          key: "client_name",
+          minWidth: 120,
+        },
+        { title: "手机号", align: "center", key: "mobile", minWidth: 150 },
+        {
+          title: "紧急程度",
+          align: "center",
+          key: "warning_state",
+          minWidth: 100,
+          slot: "basicTypeSet",
+        },
+        {
+          title: "业务员",
+          align: "center",
+          key: "salesman",
+          minWidth: 100,
           // render: (h, params) => {
           //   let name = ''
           //   this.salesmanList.forEach(el => {
@@ -175,22 +233,56 @@ export default {
           // }
         },
         {
-          title: '开始日期', align: 'center', key: 'start_time', minWidth: 150,
-          render: (h, params) => h('span', {}, this.func.replaceDateNoHMS(params.row.start_time))
+          title: "开始日期",
+          align: "center",
+          key: "start_time",
+          minWidth: 150,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDateNoHMS(params.row.start_time)),
         },
         {
-          title: '交付日期', align: 'center', key: 'end_time', minWidth: 150,
-          render: (h, params) => h('span', {}, this.func.replaceDateNoHMS(params.row.end_time))
+          title: "交付日期",
+          align: "center",
+          key: "end_time",
+          minWidth: 150,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDateNoHMS(params.row.end_time)),
         },
         {
-          title: '订单状态', align: 'center', key: 'state', minWidth: 100,
-          render: (h, params) => h('span', {}, params.row.state == 0 ? '待审核' : params.row.warning_state == 1 ? '待拆单' : params.row.warning_state == 2 ? '待生产' : '已完成')
+          title: "订单状态",
+          align: "center",
+          key: "state",
+          minWidth: 100,
+          render: (h, params) =>
+            h(
+              "span",
+              {},
+              params.row.state == 0
+                ? "待审核"
+                : params.row.warning_state == 1
+                ? "待拆单"
+                : params.row.warning_state == 2
+                ? "待生产"
+                : "已完成"
+            ),
         },
         {
-          title: '下单日期', align: 'center', key: 'crt_time', minWidth: 150,
-          render: (h, params) => h('span', {}, this.func.replaceDate(params.row.crt_time))
+          title: "下单日期",
+          align: "center",
+          key: "crt_time",
+          minWidth: 150,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDate(params.row.crt_time)),
+        },
+        {
+          title: "操作",
+          align: "center",
+          key: "set",
+          slot: "set",
+          fixed: "right",
+          minWidth: 200,
+          fixed: "right",
         },
-        { title: '操作', align: 'center', key: 'set', slot: 'set', fixed: 'right', minWidth: 200, fixed: 'right' },
       ],
       tableData: [],
       page_index: 1,
@@ -198,100 +290,116 @@ export default {
       total: 0,
       loading: false,
       proxyObj: {},
-      headers: { 'Authorization': localStorage.getItem('token') },
+      headers: { Authorization: localStorage.getItem("token") },
       selects: [],
       salesmanList: [],
       processModal: false,
-      process_man: '',
+      process_man: "",
       processManList: [],
-      process_start_time: '',
-      process_end_time: '',
-      order_no: '',
+      process_start_time: "",
+      process_end_time: "",
+      order_no: "",
       showModal: false,
       currencyPageId: null,
       formModalColumns: [
-        { type: 'index', minWidth: 30, align: 'center' },
+        { type: "index", minWidth: 30, align: "center" },
         {
-          title: '是否展示', align: 'center', key: 'is_show', minWidth: 60,
+          title: "是否展示",
+          align: "center",
+          key: "is_show",
+          minWidth: 60,
           render: (h, params) => {
-            const { row, index } = params
-            const currentRow = JSON.parse(JSON.stringify(this.formModalTableData[index]))
-            return h('Checkbox', {
+            const { row, index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.formModalTableData[index])
+            );
+            return h("Checkbox", {
               props: {
                 value: currentRow.is_show,
               },
               on: {
-                'on-change': (e) => {
-                  currentRow.is_show = e
+                "on-change": (e) => {
+                  currentRow.is_show = e;
                   this.formModalTableData.splice(index, 1, currentRow);
-                }
-              }
-            })
-          }
+                },
+              },
+            });
+          },
         },
         {
-          title: '字段名', align: 'center', key: 'value', minWidth: 100,
+          title: "字段名",
+          align: "center",
+          key: "value",
+          minWidth: 100,
           render: (h, params) => {
-            const { row, index } = params
-            const currentRow = JSON.parse(JSON.stringify(this.formModalTableData[index]))
-            return h("Input",
-              {
-                props: {
-                  value: currentRow.value,
-                  type: 'text'
+            const { row, index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.formModalTableData[index])
+            );
+            return h("Input", {
+              props: {
+                value: currentRow.value,
+                type: "text",
+              },
+              on: {
+                "on-change": (e) => {
+                  currentRow.value = e.target.value;
+                  this.formModalTableData.splice(index, 1, currentRow);
                 },
-                on: {
-                  'on-change': (e) => {
-                    currentRow.value = e.target.value
-                    this.formModalTableData.splice(index, 1, currentRow);
-                  }
-                }
-              })
-          }
+              },
+            });
+          },
         },
       ],
-      formModalTableData: [
-
-      ],
+      formModalTableData: [],
       tableModalColumns: [
-        { type: 'index', minWidth: 30, align: 'center' },
+        { type: "index", minWidth: 30, align: "center" },
         {
-          title: '是否展示', align: 'center', key: 'is_show', minWidth: 60,
+          title: "是否展示",
+          align: "center",
+          key: "is_show",
+          minWidth: 60,
           render: (h, params) => {
-            const { row, index } = params
-            const currentRow = JSON.parse(JSON.stringify(this.tableModalTableData[index]))
-            return h('Checkbox', {
+            const { row, index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.tableModalTableData[index])
+            );
+            return h("Checkbox", {
               props: {
                 value: currentRow.is_show,
               },
               on: {
-                'on-change': (e) => {
-                  currentRow.is_show = e
+                "on-change": (e) => {
+                  currentRow.is_show = e;
                   this.tableModalTableData.splice(index, 1, currentRow);
-                }
-              }
-            })
-          }
+                },
+              },
+            });
+          },
         },
         {
-          title: '字段名', align: 'center', key: 'value', minWidth: 100,
+          title: "字段名",
+          align: "center",
+          key: "value",
+          minWidth: 100,
           render: (h, params) => {
-            const { row, index } = params
-            const currentRow = JSON.parse(JSON.stringify(this.tableModalTableData[index]))
-            return h("Input",
-              {
-                props: {
-                  value: currentRow.value,
-                  type: 'text'
+            const { row, index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.tableModalTableData[index])
+            );
+            return h("Input", {
+              props: {
+                value: currentRow.value,
+                type: "text",
+              },
+              on: {
+                "on-change": (e) => {
+                  currentRow.value = e.target.value;
+                  this.tableModalTableData.splice(index, 1, currentRow);
                 },
-                on: {
-                  'on-change': (e) => {
-                    currentRow.value = e.target.value
-                    this.tableModalTableData.splice(index, 1, currentRow);
-                  }
-                }
-              })
-          }
+              },
+            });
+          },
         },
       ],
       tableModalTableData: [
@@ -310,184 +418,237 @@ export default {
         // { is_show: true, key: 'set', value: '操作' },
       ],
       warningList: [],
-    }
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
-    this.currencyPageId = this.$store.state.navgationData[0].sub[1].sub[0].id
+  created() {
+    this.currencyPageId = this.$store.state.navgationData[0].sub[1].sub[0].id;
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    this.axios('/api/user').then(res => { this.salesmanList = res.data.data, this.processManList = res.data.data })
+  mounted() {
+    this.axios("/api/user").then((res) => {
+      (this.salesmanList = res.data.data),
+        (this.processManList = res.data.data);
+    });
   },
   methods: {
-    handleProcess () {
+    handleProcess() {
       this.axios({
-        method: 'get',
-        url: '/api/order_area_pull',
+        method: "get",
+        url: "/api/order_area_pull",
         params: {
           order_no: this.order_no,
           sub_status: 1,
           process_man: this.process_man,
-          process_start_time: this.func.replaceDateNoHMS(this.process_start_time),
+          process_start_time: this.func.replaceDateNoHMS(
+            this.process_start_time
+          ),
           process_end_time: this.func.replaceDateNoHMS(this.process_end_time),
-        }
-      }).then((res) => {
-        this.$Message.success(res.msg)
-        this.getData(this.proxyObj)
-      }).catch((err) => { });
+        },
+      })
+        .then((res) => {
+          this.$Message.success(res.msg);
+          this.getData(this.proxyObj);
+        })
+        .catch((err) => {});
     },
     //1深化  2编辑  3详情  4删除  0新增
-    handleSet (row, index, type) {
+    handleSet(row, index, type) {
       switch (type) {
         case 1:
-          this.processModal = true
-          this.order_no = row.order_no
+          this.processModal = true;
+          this.order_no = row.order_no;
           break;
         case 2:
+          this.$router.push({
+            path: "/cms/BidSystem/ContractList/edit",
+            query: {
+              type,
+              order_no: row.order_no,
+            },
+          });
+          break;
         case 3:
           this.$router.push({
-            path: '/cms/BidSystem/ContractList/edit',
+            path: "/cms/BidSystem/ContractList/info",
             query: {
               type,
-              order_no: row.order_no
-            }
-          })
+              order_no: row.order_no,
+            },
+          });
           break;
         case 4:
           this.$Modal.confirm({
-            title: '确认删除?',
-            content: '此操作确认后不可恢复,请确认!',
+            title: "确认删除?",
+            content: "此操作确认后不可恢复,请确认!",
             onOk: () => {
               this.axios({
-                method: 'get',
-                url: '/api/order_area_del',
+                method: "get",
+                url: "/api/order_area_del",
                 params: {
-                  order_no: row.order_no
-                }
-              }).then((res) => {
-                this.$Message.success(res.msg)
-                this.getData(this.proxyObj)
-              }).catch((err) => {
-              });
+                  order_no: row.order_no,
+                },
+              })
+                .then((res) => {
+                  this.$Message.success(res.msg);
+                  this.getData(this.proxyObj);
+                })
+                .catch((err) => {});
             },
-            onCancel: () => { }
-          })
+            onCancel: () => {},
+          });
           break;
       }
     },
-    handleToEditpage (type) {
+    handleToEditpage(type) {
       this.$router.push({
-        path: '/cms/BidSystem/ContractList/edit',
+        path: "/cms/BidSystem/ContractList/edit",
         query: {
           type,
-        }
-      })
+        },
+      });
     },
-    init (row) {
-      this.page_index = 1
+    init(row) {
+      this.page_index = 1;
       row.page_index = this.page_index;
       row.page_size = this.page_size;
       // 0 业务单
-      row.sub_status = 0
-      this.proxyObj = row
-      this.getData(row)
+      row.sub_status = 0;
+      this.proxyObj = row;
+      this.getData(row);
     },
-    getData (row) {
+    getData(row) {
       this.loading = true;
-      this.axios('/api/order_area', { params: row }).then(res => {
+      this.axios("/api/order_area", { params: row }).then((res) => {
         this.loading = false;
         this.tableData = res.data.data;
-        this.tableModalTableData = res.data.tableSet.tableSet || []
+        this.tableModalTableData = res.data.tableSet.tableSet || [];
         this.total = res.data.total;
-      })
+      });
     },
-    setupTableHeader () {
-      this.showModal = true
-      return
+    setupTableHeader() {
+      this.showModal = true;
+      return;
     },
-    changePage (e) {
+    changePage(e) {
       this.page_index = e;
       this.proxyObj.page_index = this.page_index;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    changeSize (e) {
+    changeSize(e) {
       this.page_size = e;
       this.proxyObj.page_size = this.page_size;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    async exportData () {
-      const res = await this.axios('/api/measure_orders_export', { params: { ...this.proxyObj } })
+    async exportData() {
+      const res = await this.axios("/api/measure_orders_export", {
+        params: { ...this.proxyObj },
+      });
       if (res.code == 200) {
-        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`
-        location.href = url
+        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`;
+        location.href = url;
       }
     },
-    uploadSuccess (res) {
+    uploadSuccess(res) {
       if (res.code == 200) {
-        this.$Message.success(res.msg || '上传成功')
+        this.$Message.success(res.msg || "上传成功");
       } else {
-        this.$Message.warning(res.msg || '上传失败')
+        this.$Message.warning(res.msg || "上传失败");
       }
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    uploadError (err) {
-      this.$Message.error(err.msg || '上传失败')
+    uploadError(err) {
+      this.$Message.error(err.msg || "上传失败");
     },
-    selectTable (e) {
+    selectTable(e) {
       this.selects = e;
     },
-    onDragDrop (a, b, table) {
-      table.splice(b, 0, ...table.splice(a, 1))
+    onDragDrop(a, b, table) {
+      table.splice(b, 0, ...table.splice(a, 1));
     },
-    handleModalOk () {
+    handleModalOk() {
       this.formModalTableData.forEach((element, index) => {
-        element.sort = index
+        element.sort = index;
       });
       this.tableModalTableData.forEach((element, index) => {
-        element.sort = index
+        element.sort = index;
       });
       this.axios({
-        method: 'post',
-        url: '/api/update/table',
+        method: "post",
+        url: "/api/update/table",
         data: {
           id: this.currencyPageId,
           result: {
             formSet: this.formModalTableData || [],
             tableSet: this.tableModalTableData || [],
-          }
-        }
-      }).then((res) => {
-        this.$Message.success(res.msg)
-        this.init(this.proxyObj)
-      }).catch((err) => { });
+          },
+        },
+      })
+        .then((res) => {
+          this.$Message.success(res.msg);
+          this.init(this.proxyObj);
+        })
+        .catch((err) => {});
     },
   },
   // 监听属性 类似于data概念
   computed: {
-    ...mapState(['persimissionData']),
-    computedTable () {
+    ...mapState(["persimissionData"]),
+    computedTable() {
       if (this.tableModalTableData.length < 1) {
-        return this.tableColums
+        return this.tableColums;
       }
-      return this.func.computedHeader(this.tableModalTableData, this.tableColums)
+      return this.func.computedHeader(
+        this.tableModalTableData,
+        this.tableColums
+      );
     },
-    set_list () {
+    set_list() {
       return [
-        { title: '订单编号', serverName: 'order_no', name: 'Input', value: '', placeholder: '请输入订单号' },
-        { title: '项目名称', name: 'Input', placeholder: '请输入', value: '', serverName: 'residential_name' },
-        { title: '客户昵称', name: 'Input', placeholder: '请输入', value: '', serverName: 'client_name' },
-        { title: '手机号', name: 'Input', placeholder: '请输入', value: '', serverName: 'mobile' },
         {
-          title: '订单状态', name: 'Select', placeholder: '请选择', serverName: 'state', value: '',
+          title: "订单编号",
+          serverName: "order_no",
+          name: "Input",
+          value: "",
+          placeholder: "请输入订单号",
+        },
+        {
+          title: "项目名称",
+          name: "Input",
+          placeholder: "请输入",
+          value: "",
+          serverName: "residential_name",
+        },
+        {
+          title: "客户昵称",
+          name: "Input",
+          placeholder: "请输入",
+          value: "",
+          serverName: "client_name",
+        },
+        {
+          title: "手机号",
+          name: "Input",
+          placeholder: "请输入",
+          value: "",
+          serverName: "mobile",
+        },
+        {
+          title: "订单状态",
+          name: "Select",
+          placeholder: "请选择",
+          serverName: "state",
+          value: "",
           option: [
-            { label: '待审核', value: 0 },
-            { label: '待拆单', value: 1 },
-            { label: '待生产', value: 2 },
-            { label: '已完成', value: 3 },
-          ]
+            { label: "待审核", value: 0 },
+            { label: "待拆单", value: 1 },
+            { label: "待生产", value: 2 },
+            { label: "已完成", value: 3 },
+          ],
         },
         // {
         //   title: '订单类型', name: 'Select', placeholder: '请选择', serverName: 'type', value: '',
@@ -496,20 +657,29 @@ export default {
         //     { label: '家装', value: 2 },
         //   ]
         // },
-        { title: '紧急程度', name: 'Select', serverName: 'warning_state', placeholder: '请选择', value: '', optionName: 'title', optionValue: 'id', option: this.warningList },
-      ]
-    }
+        {
+          title: "紧急程度",
+          name: "Select",
+          serverName: "warning_state",
+          placeholder: "请选择",
+          value: "",
+          optionName: "title",
+          optionValue: "id",
+          option: this.warningList,
+        },
+      ];
+    },
   },
   // 监控data中的数据变化
   watch: {},
-  beforeCreate () { }, // 生命周期 - 创建之前
-  beforeMount () { }, // 生命周期 - 挂载之前
-  beforeUpdate () { }, // 生命周期 - 更新之前
-  updated () { }, // 生命周期 - 更新之后
-  beforeDestroy () { }, // 生命周期 - 销毁之前
-  destroyed () { }, // 生命周期 - 销毁完成
-  activated () { }, // 如果页面有keep-alive缓存功能,这个函数会触发
-}
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
 </script>
 
 <style lang='scss' scoped>

+ 3 - 3
src/views/BidSystem/ProductDeOrder/deorderdetail.vue

@@ -329,7 +329,7 @@
           >
             <template slot="processLineSet" slot-scope="{ row, index }">
               <a
-                style="margin: 0 5px; color: red"
+                :style="type == 2?'margin: 0 5px; color: #ccc':'margin: 0 5px; color: red'"
                 :disabled="!partsItem.isAddProcessRoute || type == 2"
                 @click="handleProcessLineDele(row, index, partsIndex)"
                 >删除</a
@@ -499,7 +499,7 @@
                 >复制</a
               >
               <a
-                style="margin: 0 5px; color: red"
+                :style="type == 2?'margin: 0 5px; color: #ccc':'margin: 0 5px; color: red'"
                 :disabled="!partsItem.isAddPart || type == 2"
                 @click="handlePartWoodDele(row, index, partsIndex)"
                 >删除</a
@@ -568,7 +568,7 @@
                 >复制</a
               >
               <a
-                style="margin: 0 5px; color: red"
+                :style="type == 2?'margin: 0 5px; color: #ccc':'margin: 0 5px; color: red'"
                 :disabled="!partsItem.isAddPart || type == 2"
                 @click="handlePartMetalsDele(row, index, partsIndex)"
                 >删除</a

+ 327 - 192
src/views/BidSystem/ProductDeOrder/list.vue

@@ -1,36 +1,41 @@
 <template>
   <div class="BidsList">
-    <FullPage title='生产拆单'
-              :list='set_list'
-              @init='init'
-              :loading='loading'
-              @searchData='init'
-              @selectTable='selectTable'
-              @changePage='changePage'
-              @changeSize='changeSize'
-              :tableColums='tableColums'
-              :showPage='false'
-              :tableData='tableData'
-              :page_index='page_index'
-              :total='total'>
-      <div slot='titleButton'
-           style="display:flex;">
-        <Upload name='your_file'
-                :show-upload-list='false'
-                :headers='headers'
-                :on-error='uploadError'
-                :on-success='uploadSuccess'
-                :action="$store.state.ip+'/api/measure_orders_import'">
-          <Button type="success"
-                  ghost
-                  icon='md-exit'
-                  style="margin-right:10px;">导入</Button>
+    <FullPage
+      title="生产拆单"
+      :list="set_list"
+      @init="init"
+      :loading="loading"
+      @searchData="init"
+      @selectTable="selectTable"
+      @changePage="changePage"
+      @changeSize="changeSize"
+      :tableColums="tableColums"
+      :showPage="false"
+      :tableData="tableData"
+      :page_index="page_index"
+      :total="total"
+    >
+      <div slot="titleButton" style="display: flex">
+        <Upload
+          name="your_file"
+          :show-upload-list="false"
+          :headers="headers"
+          :on-error="uploadError"
+          :on-success="uploadSuccess"
+          :action="$store.state.ip + '/api/measure_orders_import'"
+        >
+          <Button type="success" ghost icon="md-exit" style="margin-right: 10px"
+            >导入</Button
+          >
         </Upload>
-        <Button @click="exportData"
-                type="warning"
-                ghost
-                icon='md-return-left'
-                style="margin-right:10px;">导出</Button>
+        <Button
+          @click="exportData"
+          type="warning"
+          ghost
+          icon="md-return-left"
+          style="margin-right: 10px"
+          >导出</Button
+        >
       </div>
       <!-- <div slot='navButton'
            style="display:flex;">
@@ -40,72 +45,94 @@
                 ghost
                 icon='ios-cog'>表头设置</Button>
       </div> -->
-      <template slot="basicTypeSet"
-                slot-scope="{row}">
+      <template slot="basicTypeSet" slot-scope="{ row }">
         <div>
-          <span v-for="item in warningList"
-                :key="item.id"
-                :style="{color:item.color}"
-                v-show="item.id==row.warning_state">{{item.title}}</span>
+          <span
+            v-for="item in warningList"
+            :key="item.id"
+            :style="{ color: item.color }"
+            v-show="item.id == row.warning_state"
+            >{{ item.title }}</span
+          >
         </div>
       </template>
-      <template slot='set'
-                slot-scope='{row,index}'>
+      <template slot="set" slot-scope="{ row, index }">
         <div>
-          <a style="margin:0 5px"
-             :disabled="row.sub_status!=2"
-             @click="handleSet(row,index,1)">下生产</a>
-          <a style="margin:0 5px"
-             @click="handleSet(row,index,2)">拆单</a>
-          <a style="margin:0 5px"
-             @click="handleSet(row,index,3)">详情</a>
-          <a style="margin:0 5px;color:red"
-             :disabled="row.sub_status!=2"
-             @click="handleSet(row,index,4)">删除</a>
-          <a style="margin:0 5px"
-             :disabled="row.sub_status!=2"
-             @click="handleSet(row,index,5)">成本预算</a>
+          <a
+            style="margin: 0 5px"
+            :disabled="row.sub_status != 2"
+            @click="handleSet(row, index, 1)"
+            >下生产</a
+          >
+          <a style="margin: 0 5px" @click="handleSet(row, index, 2)">拆单</a>
+          <a style="margin: 0 5px" @click="handleSet(row, index, 3)">详情</a>
+          <a
+            style="margin: 0 5px; color: red"
+            :disabled="row.sub_status != 2"
+            :style="
+              row.sub_status != 2
+                ? 'margin: 0 5px; color: #ccc'
+                : 'margin: 0 5px; color: red'
+            "
+            @click="handleSet(row, index, 4)"
+            >删除</a
+          >
+          <a
+            style="margin: 0 5px"
+            :disabled="row.sub_status != 2"
+            @click="handleSet(row, index, 5)"
+            >成本预算</a
+          >
         </div>
       </template>
       <template slot="pageSlot">
         <div class="pageSlotStyle">
-          <Page :page-size-opts="[10, 20, 30, 40,100,1000]"
-                @on-page-size-change='changeSize'
-                @on-change='changePage'
-                :current='page_index'
-                show-total
-                :total="total"
-                show-sizer
-                :page-size='page_size' />
+          <Page
+            :page-size-opts="[10, 20, 30, 40, 100, 1000]"
+            @on-page-size-change="changeSize"
+            @on-change="changePage"
+            :current="page_index"
+            show-total
+            :total="total"
+            show-sizer
+            :page-size="page_size"
+          />
         </div>
       </template>
     </FullPage>
-    <Modal v-model="processModal"
-           title="确认?"
-           @on-ok="handleProcess"
-           @on-cancel="processModal=false">
+    <Modal
+      v-model="processModal"
+      title="确认?"
+      @on-ok="handleProcess"
+      @on-cancel="processModal = false"
+    >
       <div>
         <div class="process_modal">
           <span>生产人员:</span>
-          <Select v-model="process_man"
-                  style="width: 150px">
-            <Option v-for="item in processManList"
-                    :key="item.id"
-                    :label='item.nickname'
-                    :value='item.id'></Option>
+          <Select v-model="process_man" style="width: 150px">
+            <Option
+              v-for="item in processManList"
+              :key="item.id"
+              :label="item.nickname"
+              :value="item.id"
+            ></Option>
           </Select>
         </div>
         <div class="process_modal">
           <span>选择时间:</span>
-          <DatePicker type="date"
-                      v-model="process_start_time"
-                      placeholder="年/月/日"
-                      style="width: 150px"></DatePicker>
+          <DatePicker
+            type="date"
+            v-model="process_start_time"
+            placeholder="年/月/日"
+            style="width: 150px"
+          ></DatePicker>
-          <DatePicker type="date"
-                      v-model="process_end_time"
-                      placeholder="年/月/日"
-                      style="width: 150px"></DatePicker>
+          <DatePicker
+            type="date"
+            v-model="process_end_time"
+            placeholder="年/月/日"
+            style="width: 150px"
+          ></DatePicker>
         </div>
       </div>
     </Modal>
@@ -117,44 +144,105 @@
 // 例如:import 《组件名称》 from '《组件路径》';
 
 export default {
-  name: 'BidSystemContractList',
-  data () {
+  name: "BidSystemContractList",
+  data() {
     // 这里存放数据
     return {
       tableColums: [
-        { type: 'selection', align: 'center', key: 'selection', minWidth: 100, fixed: 'left', title: '全选' },
-        { title: '订单号', align: 'center', key: 'order_no', minWidth: 150 },
-        { title: '小区名称', align: 'center', key: 'residential_name', minWidth: 120 },
-        { title: '详细地址', align: 'center', key: 'address', minWidth: 200 },
+        {
+          type: "selection",
+          align: "center",
+          key: "selection",
+          minWidth: 100,
+          fixed: "left",
+          title: "全选",
+        },
+        { title: "订单号", align: "center", key: "order_no", minWidth: 150 },
+        {
+          title: "小区名称",
+          align: "center",
+          key: "residential_name",
+          minWidth: 120,
+        },
+        { title: "详细地址", align: "center", key: "address", minWidth: 200 },
         // {
         //   title: '订单类型', align: 'center', key: 'renovation_type', minWidth: 100,
         //   render: (h, params) => h('span', {}, params.row.renovation_type == 1 ? '工装' : '家装')
         // },
-        { title: '客户姓名', align: 'center', key: 'client_name', minWidth: 120 },
-        { title: '手机号', align: 'center', key: 'mobile', minWidth: 150 },
-        { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 100, slot: 'basicTypeSet', },
         {
-          title: '收款', align: 'center', key: 'pay_state', minWidth: 80,
-          render: (h, params) => h('span', {}, params.row.pay_state == 1 ? '是' : '否')
+          title: "客户姓名",
+          align: "center",
+          key: "client_name",
+          minWidth: 120,
+        },
+        { title: "手机号", align: "center", key: "mobile", minWidth: 150 },
+        {
+          title: "紧急程度",
+          align: "center",
+          key: "warning_state",
+          minWidth: 100,
+          slot: "basicTypeSet",
         },
-        { title: '业务员', align: 'center', key: 'salesman', minWidth: 100 },
         {
-          title: '开始日期', align: 'center', key: 'start_time', minWidth: 150,
-          render: (h, params) => h('span', {}, this.func.replaceDateNoHMS(params.row.start_time))
+          title: "收款",
+          align: "center",
+          key: "pay_state",
+          minWidth: 80,
+          render: (h, params) =>
+            h("span", {}, params.row.pay_state == 1 ? "是" : "否"),
         },
+        { title: "业务员", align: "center", key: "salesman", minWidth: 100 },
         {
-          title: '交付日期', align: 'center', key: 'end_time', minWidth: 150,
-          render: (h, params) => h('span', {}, this.func.replaceDateNoHMS(params.row.end_time))
+          title: "开始日期",
+          align: "center",
+          key: "start_time",
+          minWidth: 150,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDateNoHMS(params.row.start_time)),
         },
         {
-          title: '订单状态', align: 'center', key: 'state', minWidth: 100,
-          render: (h, params) => h('span', {}, params.row.state == 0 ? '待审核' : params.row.warning_state == 1 ? '待拆单' : params.row.warning_state == 2 ? '待生产' : '已完成')
+          title: "交付日期",
+          align: "center",
+          key: "end_time",
+          minWidth: 150,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDateNoHMS(params.row.end_time)),
         },
         {
-          title: '下单日期', align: 'center', key: 'crt_time', minWidth: 150,
-          render: (h, params) => h('span', {}, this.func.replaceDateNoHMS(params.row.crt_time))
+          title: "订单状态",
+          align: "center",
+          key: "state",
+          minWidth: 100,
+          render: (h, params) =>
+            h(
+              "span",
+              {},
+              params.row.state == 0
+                ? "待审核"
+                : params.row.warning_state == 1
+                ? "待拆单"
+                : params.row.warning_state == 2
+                ? "待生产"
+                : "已完成"
+            ),
+        },
+        {
+          title: "下单日期",
+          align: "center",
+          key: "crt_time",
+          minWidth: 150,
+          render: (h, params) =>
+            h("span", {}, this.func.replaceDateNoHMS(params.row.crt_time)),
+        },
+        {
+          title: "操作",
+          align: "center",
+          key: "set",
+          slot: "set",
+          fixed: "right",
+          minWidth: 300,
+          fixed: "right",
         },
-        { title: '操作', align: 'center', key: 'set', slot: 'set', fixed: 'right', minWidth: 300, fixed: 'right' },
       ],
       tableData: [],
       page_index: 1,
@@ -162,49 +250,56 @@ export default {
       total: 0,
       loading: false,
       proxyObj: {},
-      headers: { 'Authorization': localStorage.getItem('token') },
+      headers: { Authorization: localStorage.getItem("token") },
       selects: [],
       processModal: false,
-      process_man: '',
+      process_man: "",
       processManList: [],
-      process_start_time: '',
-      process_end_time: '',
-      order_no: '',
-      warningList: []
-    }
+      process_start_time: "",
+      process_end_time: "",
+      order_no: "",
+      warningList: [],
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
-    this.axios('/api/user').then(res => this.processManList = res.data.data)
+  created() {
+    this.axios("/api/user").then(
+      (res) => (this.processManList = res.data.data)
+    );
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-  },
+  mounted() {},
   methods: {
-    handleProcess () {
+    handleProcess() {
       this.axios({
-        method: 'get',
-        url: '/api/order_area_pull',
+        method: "get",
+        url: "/api/order_area_pull",
         params: {
           order_no: this.order_no,
           sub_status: 3,
           process_man: this.process_man,
-          process_start_time: this.func.replaceDateNoHMS(this.process_start_time),
+          process_start_time: this.func.replaceDateNoHMS(
+            this.process_start_time
+          ),
           process_end_time: this.func.replaceDateNoHMS(this.process_end_time),
-        }
-      }).then((res) => {
-        this.$Message.success(res.msg)
-        this.getData(this.proxyObj)
-      }).catch((err) => { });
+        },
+      })
+        .then((res) => {
+          this.$Message.success(res.msg);
+          this.getData(this.proxyObj);
+        })
+        .catch((err) => {});
     },
     // 1下生产  2拆单  3详情 4删除 5成本预算
-    handleSet (row, index, type) {
+    handleSet(row, index, type) {
       switch (type) {
         case 1:
-          this.processModal = true
-          this.order_no = row.order_no
+          this.processModal = true;
+          this.order_no = row.order_no;
           // this.$Modal.confirm({
           //   title: '确认下生产?',
           //   content: '确认后订单将下至生产,请确认!',
@@ -226,137 +321,177 @@ export default {
           break;
         case 2:
           this.$router.push({
-            path: '/cms/BidSystem/ProductDeOrder/detail',
+            path: "/cms/BidSystem/ProductDeOrder/detail",
             query: {
               type,
               order_no: row.order_no,
-            }
-          })
+            },
+          });
           break;
         case 3:
           this.$router.push({
-            path: '/cms/measurementordermannage/edit',
+            path: "/cms/measurementordermannage/edit",
             query: {
               type,
               order_no: row.order_no,
-              editType: 1
+              editType: 1,
               // orders_area_product_detail_id:row.id
-            }
-          })
+            },
+          });
           break;
         case 4:
           this.$Modal.confirm({
-            title: '确认删除?',
-            content: '此操作确认后不可恢复,请确认!',
+            title: "确认删除?",
+            content: "此操作确认后不可恢复,请确认!",
             onOk: () => {
               this.axios({
-                method: 'get',
-                url: '/api/order_area_del',
+                method: "get",
+                url: "/api/order_area_del",
                 params: {
                   order_no: row.order_no,
-                  sub_status: 2
-                }
-              }).then((res) => {
-                this.$Message.success(res.msg)
-                this.getData(this.proxyObj)
-              }).catch((err) => {
-              });
+                  sub_status: 2,
+                },
+              })
+                .then((res) => {
+                  this.$Message.success(res.msg);
+                  this.getData(this.proxyObj);
+                })
+                .catch((err) => {});
             },
-            onCancel: () => { }
-          })
+            onCancel: () => {},
+          });
           break;
         case 5:
           this.$router.push({
-            path: '/cms/BidSystem/ProductDeOrder/budget',
+            path: "/cms/BidSystem/ProductDeOrder/budget",
             query: {
               type,
-              order_no: row.order_no
-            }
-          })
+              order_no: row.order_no,
+            },
+          });
           break;
       }
     },
-    init (row) {
-      this.page_index = 1
+    init(row) {
+      this.page_index = 1;
       // 2拆单
-      row.sub_status = 2
+      row.sub_status = 2;
       row.page_index = this.page_index;
       row.page_size = this.page_size;
-      this.proxyObj = row
-      this.getData(row)
+      this.proxyObj = row;
+      this.getData(row);
     },
-    getData (row) {
+    getData(row) {
       this.loading = true;
-      this.axios('/api/order_area', { params: row }).then(res => {
+      this.axios("/api/order_area", { params: row }).then((res) => {
         this.loading = false;
         this.tableData = res.data.data;
         this.total = res.data.total;
-        this.tableheaders = res.data.tableSet || []
-      })
+        this.tableheaders = res.data.tableSet || [];
+      });
     },
-    changePage (e) {
+    changePage(e) {
       this.page_index = e;
       this.proxyObj.page_index = this.page_index;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    changeSize (e) {
+    changeSize(e) {
       this.page_size = e;
       this.proxyObj.page_size = this.page_size;
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    async exportData () {
-      const res = await this.axios('/api/measure_orders_export', { params: { ...this.proxyObj } })
+    async exportData() {
+      const res = await this.axios("/api/measure_orders_export", {
+        params: { ...this.proxyObj },
+      });
       if (res.code == 200) {
-        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`
-        location.href = url
+        let url = `${this.$store.state.ip}/api/storage/${res.data.file}`;
+        location.href = url;
       }
     },
-    uploadSuccess (res) {
+    uploadSuccess(res) {
       if (res.code == 200) {
-        this.$Message.success(res.msg || '上传成功')
+        this.$Message.success(res.msg || "上传成功");
       } else {
-        this.$Message.warning(res.msg || '上传失败')
+        this.$Message.warning(res.msg || "上传失败");
       }
-      this.getData(this.proxyObj)
+      this.getData(this.proxyObj);
     },
-    uploadError (err) {
-      this.$Message.error(err.msg || '上传失败')
+    uploadError(err) {
+      this.$Message.error(err.msg || "上传失败");
     },
-    selectTable (e) {
+    selectTable(e) {
       this.selects = e;
     },
   },
   // 监听属性 类似于data概念
   computed: {
-    set_list () {
+    set_list() {
       return [
-        { title: '订单编号', serverName: 'order_no', name: 'Input', value: '', placeholder: '请输入订单号' },
-        { title: '小区名字', name: 'Input', placeholder: '请输入', value: '', serverName: 'residential_name' },
-        { title: '客户昵称', name: 'Input', placeholder: '请输入', value: '', serverName: 'client_name' },
-        { title: '手机号', name: 'Input', placeholder: '请输入', value: '', serverName: 'mobile' },
         {
-          title: '订单状态', name: 'Select', placeholder: '请选择', serverName: 'state', value: '',
+          title: "订单编号",
+          serverName: "order_no",
+          name: "Input",
+          value: "",
+          placeholder: "请输入订单号",
+        },
+        {
+          title: "小区名字",
+          name: "Input",
+          placeholder: "请输入",
+          value: "",
+          serverName: "residential_name",
+        },
+        {
+          title: "客户昵称",
+          name: "Input",
+          placeholder: "请输入",
+          value: "",
+          serverName: "client_name",
+        },
+        {
+          title: "手机号",
+          name: "Input",
+          placeholder: "请输入",
+          value: "",
+          serverName: "mobile",
+        },
+        {
+          title: "订单状态",
+          name: "Select",
+          placeholder: "请选择",
+          serverName: "state",
+          value: "",
           option: [
-            { label: '待审核', value: 0 },
-            { label: '待拆单', value: 1 },
-            { label: '待生产', value: 2 },
-            { label: '已完成', value: 3 },
-          ]
+            { label: "待审核", value: 0 },
+            { label: "待拆单", value: 1 },
+            { label: "待生产", value: 2 },
+            { label: "已完成", value: 3 },
+          ],
         },
-        { title: '紧急程度', name: 'Select', serverName: 'warning_state', placeholder: '请选择', value: '', optionName: 'title', optionValue: 'id', option: this.warningList },
-      ]
-    }
+        {
+          title: "紧急程度",
+          name: "Select",
+          serverName: "warning_state",
+          placeholder: "请选择",
+          value: "",
+          optionName: "title",
+          optionValue: "id",
+          option: this.warningList,
+        },
+      ];
+    },
   },
   // 监控data中的数据变化
   watch: {},
-  beforeCreate () { }, // 生命周期 - 创建之前
-  beforeMount () { }, // 生命周期 - 挂载之前
-  beforeUpdate () { }, // 生命周期 - 更新之前
-  updated () { }, // 生命周期 - 更新之后
-  beforeDestroy () { }, // 生命周期 - 销毁之前
-  destroyed () { }, // 生命周期 - 销毁完成
-  activated () { }, // 如果页面有keep-alive缓存功能,这个函数会触发
-}
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
 </script>
 
 <style lang='scss' scoped>

+ 634 - 473
src/views/PurchasingManage/OutstockOrder/edit.vue

@@ -1,62 +1,81 @@
 <template>
   <div>
-    <Toptitle :title="$route.query.type==1?'新增出库单':'编辑出库单'">
+    <Toptitle :title="$route.query.type == 1 ? '新增出库单' : '编辑出库单'">
       <slot name="titleButton">
-        <Button @click="handleReference(8,1)"
-                type="primary"
-                ghost
-                style="margin-right:10px;">参照入库单</Button>
-        <Button @click="handleReference(9,4)"
-                disabled
-                type="primary"
-                ghost
-                style="margin-right:10px;">参照派工单</Button>
+        <Button
+          @click="handleReference(8, 1)"
+          type="primary"
+          ghost
+          style="margin-right: 10px"
+          >参照入库单</Button
+        >
+        <Button
+          @click="handleReference(9, 4)"
+          disabled
+          type="primary"
+          ghost
+          style="margin-right: 10px"
+          >参照派工单</Button
+        >
         <!-- <Button @click="handleReference(4)"
                 type="primary"
                 ghost
                 style="margin-right:10px;">参照质检单</Button> -->
-        <Button @click="goBack"
-                type="primary"
-                ghost
-                style="margin-right:10px;">返回</Button>
-        <Button @click="postData"
-                type="primary"
-                ghost
-                style="margin-right:10px;">确定</Button>
+        <Button @click="goBack" type="primary" ghost style="margin-right: 10px"
+          >返回</Button
+        >
+        <Button
+          @click="postData"
+          type="primary"
+          ghost
+          style="margin-right: 10px"
+          >确定</Button
+        >
       </slot>
     </Toptitle>
     <div class="content_topform">
-      <Form :label-width="90"
-            :model="searchData">
+      <Form :label-width="90" :model="searchData">
         <FormItem label="项目名称:">
-          <Input type="text"
-                 size="small"
-                 v-model="searchData.client_name"
-                 style="width: 200px;margin-top:6px"
-                 placeholder="项目名称">
-          <span slot="append"
-                style="cursor:pointer;"
-                @click="showProjectModal=true">选择</span>
+          <Input
+            type="text"
+            size="small"
+            v-model="searchData.client_name"
+            style="width: 200px; margin-top: 6px"
+            placeholder="项目名称"
+          >
+            <span
+              slot="append"
+              style="cursor: pointer"
+              @click="showProjectModal = true"
+              >选择</span
+            >
           </Input>
         </FormItem>
         <FormItem label="供应商名称:">
-          <Input type="text"
-                 size="small"
-                 v-model="searchData.title"
-                 style="width: 200px;margin-top:6px"
-                 placeholder="供应商名称">
-          <span slot="append"
-                style="cursor:pointer;"
-                @click="showSupplierModal=true">选择</span>
+          <Input
+            type="text"
+            size="small"
+            v-model="searchData.title"
+            style="width: 200px; margin-top: 6px"
+            placeholder="供应商名称"
+          >
+            <span
+              slot="append"
+              style="cursor: pointer"
+              @click="showSupplierModal = true"
+              >选择</span
+            >
           </Input>
         </FormItem>
         <FormItem label="单据号:">
-          <Input type="text"
-                 size="small"
-                 readonly
-                 v-model="searchData.order_out_no"
-                 style="width: 200px"
-                 placeholder="自动生成" />
+          <Input
+            type="text"
+            size="small"
+            readonly
+            v-model="searchData.order_out_no"
+            style="width: 200px"
+            placeholder="自动生成"
+          />
         </FormItem>
         <!-- <FormItem label="制单人:">
           <Input type="text"
@@ -66,18 +85,22 @@
                  placeholder="制单人" />
         </FormItem> -->
         <FormItem label="制单日期:">
-          <DatePicker type="date"
-                      size="small"
-                      style="width: 200px"
-                      placeholder="年/月/日"
-                      :value="func.replaceDate(searchData.crt_time)"></DatePicker>
+          <DatePicker
+            type="date"
+            size="small"
+            style="width: 200px"
+            placeholder="年/月/日"
+            :value="func.replaceDate(searchData.crt_time)"
+          ></DatePicker>
         </FormItem>
         <FormItem label="备注:">
-          <Input type="textarea"
-                 size="small"
-                 v-model="searchData.remark"
-                 style="width: 200px"
-                 placeholder="备注" />
+          <Input
+            type="textarea"
+            size="small"
+            v-model="searchData.remark"
+            style="width: 200px"
+            placeholder="备注"
+          />
         </FormItem>
       </Form>
     </div>
@@ -85,171 +108,214 @@
       <div class="content_table_btn">
         <div>
           <span>请购清单</span>
-          <Button @click="showModal=true"
-                  type="primary"
-                  size="small"
-                  style="margin-left:10px;">选择物料</Button>
-        </div>
-        <div class="content_table_btn_right">
+          <Button
+            @click="showModal = true"
+            type="primary"
+            size="small"
+            style="margin-left: 10px"
+            >选择物料</Button
+          >
         </div>
+        <div class="content_table_btn_right"></div>
       </div>
-      <Table :columns="tableColumns"
-             border
-             :data="tableData">
-        <template slot="basicTypeSet"
-                  slot-scope="{row}">
-          <div>
-            <span v-for="item in warningList"
-                  :key="item.id"
-                  :style="{color:item.color}"
-                  v-show="item.id==row.warning_state">{{item.title}}</span>
-          </div>
-        </template>
-        <template slot="setSlot"
-                  slot-scope="{row,index}">
-          <a style="margin:0 5px"
-             :disabled="row.state==0"
-             @click="handleSet(4,row,index)">删除</a>
+      <Table :columns="tableColumns" border :data="tableData">
+        <template slot="setSlot" slot-scope="{ row, index }">
+          <a
+            style="margin: 0 5px"
+            :disabled="row.state == 0"
+            @click="handleSet(4, row, index)"
+            >删除</a
+          >
         </template>
       </Table>
     </div>
-    <Modal v-model="showModal"
-           title="选择物料"
-           width='80'
-           @on-ok="handleSelect"
-           @on-cancel="showModal=false">
+    <Modal
+      v-model="showModal"
+      title="选择物料"
+      width="80"
+      @on-ok="handleSelect"
+      @on-cancel="showModal = false"
+    >
       <div class="modal_content">
         <div class="modal_content_left">
-          <Tree :data="modalData.treeData"
-                children-key='list'
-                style="width:100%;"
-                @on-select-change="handleTreeSlect"
-                class="demo-tree-render"></Tree>
+          <Tree
+            :data="modalData.treeData"
+            children-key="list"
+            style="width: 100%"
+            @on-select-change="handleTreeSlect"
+            class="demo-tree-render"
+          ></Tree>
         </div>
         <div class="modal_content_center">
           <div class="modal_content_center_top">
-            <div><span>物料名称:</span>
-              <Input type="text"
-                     v-model="modalData.title"
-                     placeholder="请输入物料名称" />
+            <div>
+              <span>物料名称:</span>
+              <Input
+                type="text"
+                v-model="modalData.title"
+                placeholder="请输入物料名称"
+              />
             </div>
-            <Button @click="initModal()"
-                    type="primary"
-                    style="margin:0 10px;">搜索</Button>
+            <Button @click="initModal()" type="primary" style="margin: 0 10px"
+              >搜索</Button
+            >
           </div>
           <div class="modal_content_center_body">
-            <Table :columns="modalTableColumns"
-                   height="520"
-                   border
-                   @on-select="handleSelection"
-                   :loading="modalTableLoading"
-                   :data="modalData.tableData">
+            <Table
+              :columns="modalTableColumns"
+              height="520"
+              border
+              @on-select="handleSelection"
+              :loading="modalTableLoading"
+              :data="modalData.tableData"
+            >
             </Table>
             <div class="modal_content_center_footer">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeModalSize'
-                    @on-change='changeModalPage'
-                    :current='modal_page_index'
-                    show-total
-                    :total="modal_total"
-                    show-sizer
-                    :page-size='modal_page_size' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeModalSize"
+                @on-change="changeModalPage"
+                :current="modal_page_index"
+                show-total
+                :total="modal_total"
+                show-sizer
+                :page-size="modal_page_size"
+              />
             </div>
           </div>
         </div>
         <div class="modal_content_right">
           <span>已选</span>
-          <Table :columns="selectedColumns"
-                 max-height="500"
-                 border
-                 :data="modalData.selectedData">
-            <template slot="selectedSetSlot"
-                      slot-scope="{row,index}">
-              <a style="margin:0 5px;color:red"
-                 @click="handleSelectedDele(row,index)">删除</a>
+          <Table
+            :columns="selectedColumns"
+            max-height="500"
+            border
+            :data="modalData.selectedData"
+          >
+            <template slot="selectedSetSlot" slot-scope="{ row, index }">
+              <a
+                style="margin: 0 5px; color: red"
+                @click="handleSelectedDele(row, index)"
+                >删除</a
+              >
             </template>
           </Table>
         </div>
       </div>
     </Modal>
-    <Modal v-model="showProjectModal"
-           title="选择项目"
-           width='80'
-           @on-ok="handleProjectSelect"
-           @on-cancel="showProjectModal=false">
+    <Modal
+      v-model="showProjectModal"
+      title="选择项目"
+      width="80"
+      @on-ok="handleProjectSelect"
+      @on-cancel="showProjectModal = false"
+    >
       <div class="modal_content">
         <div class="modal_content_center">
           <div class="modal_content_center_top">
             <span>项目名称:</span>
-            <Input type="text"
-                   v-model="modalProjectData.title"
-                   style="width:180px"
-                   placeholder="请输入物料名称" />
-            <Button @click="initProjectModal()"
-                    type="primary"
-                    style="margin:0 10px;">搜索</Button>
+            <Input
+              type="text"
+              v-model="modalProjectData.title"
+              style="width: 180px"
+              placeholder="请输入物料名称"
+            />
+            <Button
+              @click="initProjectModal()"
+              type="primary"
+              style="margin: 0 10px"
+              >搜索</Button
+            >
           </div>
           <div class="modal_content_center_body">
-            <Table :columns="modalProjectTableColumns"
-                   height="520"
-                   border
-                   :loading="modalProjectTableLoading"
-                   :data="modalProjectData.tableData">
+            <Table
+              :columns="modalProjectTableColumns"
+              height="520"
+              border
+              :loading="modalProjectTableLoading"
+              :data="modalProjectData.tableData"
+            >
+              <template slot="basicTypeSet" slot-scope="{ row }">
+                <div>
+                  <span
+                    v-for="item in warningList"
+                    :key="item.id"
+                    :style="{ color: item.color }"
+                    v-show="item.id == row.warning_state"
+                    >{{ item.title }}</span
+                  >
+                </div>
+              </template>
             </Table>
             <div class="modal_content_center_footer">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeProjectModalSize'
-                    @on-change='changeProjectModalPage'
-                    :current='modal_project_page_index'
-                    show-total
-                    :total="modal_project_total"
-                    show-sizer
-                    :page-size='modal_project_page_size' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeProjectModalSize"
+                @on-change="changeProjectModalPage"
+                :current="modal_project_page_index"
+                show-total
+                :total="modal_project_total"
+                show-sizer
+                :page-size="modal_project_page_size"
+              />
             </div>
           </div>
         </div>
       </div>
     </Modal>
-    <Modal v-model="showSupplierModal"
-           title="选择供应商"
-           width='80'
-           @on-ok="handleSupplierSelect"
-           @on-cancel="showSupplierModal=false">
+    <Modal
+      v-model="showSupplierModal"
+      title="选择供应商"
+      width="80"
+      @on-ok="handleSupplierSelect"
+      @on-cancel="showSupplierModal = false"
+    >
       <div class="modal_content">
         <div class="modal_content_left">
-          <Tree :data="modalSupplierData.treeData"
-                children-key='sub'
-                style="width:100%;"
-                @on-select-change="handleSupplierTreeSlect"
-                class="demo-tree-render"></Tree>
+          <Tree
+            :data="modalSupplierData.treeData"
+            children-key="sub"
+            style="width: 100%"
+            @on-select-change="handleSupplierTreeSlect"
+            class="demo-tree-render"
+          ></Tree>
         </div>
         <div class="modal_content_center">
           <div class="modal_content_center_top">
             <span>供应商名称:</span>
-            <Input type="text"
-                   v-model="modalSupplierData.title"
-                   style="width:180px"
-                   placeholder="请输入供应商名称" />
-            <Button @click="initSupplierModal(this.modalSupplierData)"
-                    type="primary"
-                    style="margin:0 10px;">搜索</Button>
+            <Input
+              type="text"
+              v-model="modalSupplierData.title"
+              style="width: 180px"
+              placeholder="请输入供应商名称"
+            />
+            <Button
+              @click="initSupplierModal(this.modalSupplierData)"
+              type="primary"
+              style="margin: 0 10px"
+              >搜索</Button
+            >
           </div>
           <div class="modal_content_center_body">
-            <Table :columns="modalSupplierTableColumns"
-                   height="520"
-                   border
-                   :loading="modalSupplierTableLoading"
-                   :data="modalSupplierData.tableData">
+            <Table
+              :columns="modalSupplierTableColumns"
+              height="520"
+              border
+              :loading="modalSupplierTableLoading"
+              :data="modalSupplierData.tableData"
+            >
             </Table>
             <div class="modal_content_center_footer">
-              <Page :page-size-opts="[10, 20, 30, 40,100]"
-                    @on-page-size-change='changeSupplierModalSize'
-                    @on-change='changeSupplierModalPage'
-                    :current='modal_supplier_page_index'
-                    show-total
-                    :total="modal_supplier_total"
-                    show-sizer
-                    :page-size='modal_supplier_page_size' />
+              <Page
+                :page-size-opts="[10, 20, 30, 40, 100]"
+                @on-page-size-change="changeSupplierModalSize"
+                @on-change="changeSupplierModalPage"
+                :current="modal_supplier_page_index"
+                show-total
+                :total="modal_supplier_total"
+                show-sizer
+                :page-size="modal_supplier_page_size"
+              />
             </div>
           </div>
         </div>
@@ -263,118 +329,146 @@
 // 例如:import 《组件名称》 from '《组件路径》';
 
 export default {
-  name: '',
-  components: {
-
-  },
+  name: "",
+  components: {},
   props: {},
   // import引入的组件需要注入到对象中才能使用
-  data () {
+  data() {
     // 这里存放数据
     return {
-      fax_modify: '',
+      fax_modify: "",
       searchData: {
-        client_name: ''
+        client_name: "",
       },
       modalProjectData: {
-        title: '',
-        tableData: [{}]
+        title: "",
+        tableData: [{}],
       },
       modalSupplierData: {
-        title: '',
-        code: '',
+        title: "",
+        code: "",
         treeData: [
           {
-            title: '供应商分类',
+            title: "供应商分类",
             expand: true,
             sub: [],
             render: (h, { root, node, data }) => {
-              return h('span', {
-                style: {
-                  display: 'inline-block',
-                  width: '100%'
-                }
-              }, [
-                h('span', [
-                  h('Icon', {
-                    props: {
-                      type: 'ios-folder-outline'
-                    },
+              return h(
+                "span",
+                {
+                  style: {
+                    display: "inline-block",
+                    width: "100%",
+                  },
+                },
+                [
+                  h("span", [
+                    h("Icon", {
+                      props: {
+                        type: "ios-folder-outline",
+                      },
+                      style: {
+                        marginRight: "8px",
+                      },
+                    }),
+                    h("span", data.title),
+                  ]),
+                  h("span", {
                     style: {
-                      marginRight: '8px'
-                    }
+                      display: "inline-block",
+                      // float: 'right',
+                      marginRight: "32px",
+                    },
                   }),
-                  h('span', data.title)
-                ]),
-                h('span', {
-                  style: {
-                    display: 'inline-block',
-                    // float: 'right',
-                    marginRight: '32px'
-                  }
-                })
-              ]);
+                ]
+              );
             },
-          }
+          },
         ],
-        tableData: [{}]
+        tableData: [{}],
       },
       tableColumns: [
-        { title: '物料分类', key: 'type_title', align: 'center', minWidth: 140 },
-        { title: '物料名称', key: 'title', align: 'center', minWidth: 140 },
         {
-          title: '物料规格', key: '', align: 'center', minWidth: 140,
+          title: "物料分类",
+          key: "type_title",
+          align: "center",
+          minWidth: 140,
+        },
+        { title: "物料名称", key: "title", align: "center", minWidth: 140 },
+        {
+          title: "物料规格",
+          key: "",
+          align: "center",
+          minWidth: 140,
           render: (h, params) => {
-            const { row } = params
-            let text = `${row.long ? row.long : 0}*${row.width ? row.width : 0}*${row.high ? row.high : 0}`
-            return h('span', {}, text)
-          }
+            const { row } = params;
+            let text = `${row.long ? row.long : 0}*${
+              row.width ? row.width : 0
+            }*${row.high ? row.high : 0}`;
+            return h("span", {}, text);
+          },
         },
-        { title: '计量单位', key: 'unit', align: 'center', minWidth: 100 },
+        { title: "计量单位", key: "unit", align: "center", minWidth: 100 },
         {
-          title: '出库数量', key: 'num', align: 'center', minWidth: 120,
+          title: "出库数量",
+          key: "num",
+          align: "center",
+          minWidth: 120,
           render: (h, params) => {
-            const { row, index } = params
-            const currentRow = JSON.parse(JSON.stringify(this.tableData[index]))
-            return h('Input', {
+            const { row, index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.tableData[index])
+            );
+            return h("Input", {
               props: {
                 value: currentRow.num,
-                type: 'text'
+                type: "text",
               },
               on: {
-                'on-change': (e) => {
-                  currentRow.num = e.target.value
+                "on-change": (e) => {
+                  currentRow.num = e.target.value;
                   // currentRow.total_price = (1 * currentRow.price * currentRow.num).toFixed(2)
                   // currentRow.no_tax_amount = (1 * currentRow.no_tax_price * currentRow.num).toFixed(2)
                   // currentRow.tax_amount = (1 * currentRow.total_price - 1 * currentRow.no_tax_amount).toFixed(2)
                   this.tableData.splice(index, 1, currentRow);
-                }
-              }
-            })
-          }
+                },
+              },
+            });
+          },
         },
         {
-          title: '出库价格', key: 'total_price', align: 'center', minWidth: 120,
+          title: "出库价格",
+          key: "total_price",
+          align: "center",
+          minWidth: 120,
           render: (h, params) => {
-            const { row, index } = params
-            const currentRow = JSON.parse(JSON.stringify(this.tableData[index]))
-            return this.$route.query.type == 2 ? h('span', {}, currentRow.total_price)
-              :
-              h('Input', {
-                props: {
-                  value: currentRow.total_price,
-                  type: 'text'
-                },
-                on: {
-                  'on-change': (e) => {
-                    currentRow.total_price = e.target.value
-                    this.tableData.splice(index, 1, currentRow);
-                  }
-                }
-              })
-          }
+            const { row, index } = params;
+            const currentRow = JSON.parse(
+              JSON.stringify(this.tableData[index])
+            );
+            return this.$route.query.type == 2
+              ? h("span", {}, currentRow.total_price)
+              : h("Input", {
+                  props: {
+                    value: currentRow.total_price,
+                    type: "text",
+                  },
+                  on: {
+                    "on-change": (e) => {
+                      currentRow.total_price = e.target.value;
+                      this.tableData.splice(index, 1, currentRow);
+                    },
+                  },
+                });
+          },
+        },
+        {
+          title: "操作",
+          key: "code",
+          align: "center",
+          minWidth: 100,
+          slot: "setSlot",
         },
-        { title: '操作', key: 'code', align: 'center', minWidth: 100, slot: 'setSlot' },
       ],
       tableData: [],
       showModal: false,
@@ -392,373 +486,440 @@ export default {
       currentChoose: {},
       modalProjectTableColumns: [
         {
-          title: '选择', key: '', align: 'center', minWidth: 60,
+          title: "选择",
+          key: "",
+          align: "center",
+          minWidth: 60,
           render: (h, params) => {
             let id = params.row.id;
             let flag = false;
             if (this.currentChoose.id == id) {
-              flag = true
+              flag = true;
             } else {
-              flag = false
+              flag = false;
             }
-            let self = this
-            return h('div', [
-              h('Radio', {
+            let self = this;
+            return h("div", [
+              h("Radio", {
                 props: {
-                  value: flag
+                  value: flag,
                 },
                 on: {
-                  'on-change': () => {
+                  "on-change": () => {
                     self.currentChoose = params.row;
-                  }
-                }
-              })
-            ])
-          }
+                  },
+                },
+              }),
+            ]);
+          },
+        },
+        {
+          title: "项目名称",
+          key: "client_name",
+          align: "center",
+          minWidth: 100,
+        },
+        {
+          title: "紧急程度",
+          align: "center",
+          key: "warning_state",
+          minWidth: 80,
+          slot: "basicTypeSet",
         },
-        { title: '项目名称', key: 'client_name', align: 'center', minWidth: 100 },
-        { title: '紧急程度', align: 'center', key: 'warning_state', minWidth: 80, slot: 'basicTypeSet', },
         {
-          title: '创建时间', key: 'crt_time', align: 'center', minWidth: 110,
+          title: "创建时间",
+          key: "crt_time",
+          align: "center",
+          minWidth: 110,
           render: (h, params) => {
-            const { row } = params
-            return h('span', {}, this.func.replaceDate(row.crt_time))
-          }
+            const { row } = params;
+            return h("span", {}, this.func.replaceDate(row.crt_time));
+          },
         },
       ],
       modalSupplierTableColumns: [
         {
-          title: '选择', key: '', align: 'center', minWidth: 60,
+          title: "选择",
+          key: "",
+          align: "center",
+          minWidth: 60,
           render: (h, params) => {
             let id = params.row.id;
             let flag = false;
             if (this.currentChoose.id == id) {
-              flag = true
+              flag = true;
             } else {
-              flag = false
+              flag = false;
             }
-            let self = this
-            return h('div', [
-              h('Radio', {
+            let self = this;
+            return h("div", [
+              h("Radio", {
                 props: {
-                  value: flag
+                  value: flag,
                 },
                 on: {
-                  'on-change': () => {
+                  "on-change": () => {
                     self.currentChoose = params.row;
-                  }
-                }
-              })
-            ])
-          }
+                  },
+                },
+              }),
+            ]);
+          },
         },
-        { title: '供应商编码', key: 'code', align: 'center', minWidth: 100 },
-        { title: '供应商名称', key: 'title', align: 'center', minWidth: 80, },
-        { title: '负责人', key: 'contact', align: 'center', minWidth: 110, },
-        { title: '联系方式', key: 'mobile', align: 'center', minWidth: 110, },
+        { title: "供应商编码", key: "code", align: "center", minWidth: 100 },
+        { title: "供应商名称", key: "title", align: "center", minWidth: 80 },
+        { title: "负责人", key: "contact", align: "center", minWidth: 110 },
+        { title: "联系方式", key: "mobile", align: "center", minWidth: 110 },
       ],
       modalData: {
-        title: '',
+        title: "",
         tableData: [{}],
         selectedData: [],
         treeData: [
           {
-            title: '物料分类',
+            title: "物料分类",
             expand: true,
             list: [],
             render: (h, { root, node, data }) => {
-              return h('span', {
-                style: {
-                  display: 'inline-block',
-                  width: '100%'
-                }
-              }, [
-                h('span', [
-                  h('Icon', {
-                    props: {
-                      type: 'ios-folder-outline'
-                    },
+              return h(
+                "span",
+                {
+                  style: {
+                    display: "inline-block",
+                    width: "100%",
+                  },
+                },
+                [
+                  h("span", [
+                    h("Icon", {
+                      props: {
+                        type: "ios-folder-outline",
+                      },
+                      style: {
+                        marginRight: "8px",
+                      },
+                    }),
+                    h("span", data.title),
+                  ]),
+                  h("span", {
                     style: {
-                      marginRight: '8px'
-                    }
+                      display: "inline-block",
+                      // float: 'right',
+                      marginRight: "32px",
+                    },
                   }),
-                  h('span', data.title)
-                ]),
-                h('span', {
-                  style: {
-                    display: 'inline-block',
-                    // float: 'right',
-                    marginRight: '32px'
-                  }
-                })
-              ]);
+                ]
+              );
             },
-          }
+          },
         ],
       },
       selectedColumns: [
-        { title: '物料名称', key: 'title', align: 'center', minWidth: 110 },
-        { title: '操作', key: 'title', align: 'center', minWidth: 90, slot: 'selectedSetSlot' },
+        { title: "物料名称", key: "title", align: "center", minWidth: 110 },
+        {
+          title: "操作",
+          key: "title",
+          align: "center",
+          minWidth: 90,
+          slot: "selectedSetSlot",
+        },
       ],
       modal_page_index: 1,
       modal_page_size: 10,
       modal_total: 0,
       modalTableColumns: [
-        { title: '全选', type: 'selection', align: 'center', minWidth: 60 },
-        { title: '物料名称', key: 'title', align: 'center', minWidth: 110 },
-        { title: '物料规格', key: 'model', align: 'center', minWidth: 110 },
-        { title: '计量单位', key: 'unit', align: 'center', minWidth: 110 },
+        { title: "全选", type: "selection", align: "center", minWidth: 60 },
+        { title: "物料名称", key: "title", align: "center", minWidth: 110 },
+        { title: "物料规格", key: "model", align: "center", minWidth: 110 },
+        { title: "计量单位", key: "unit", align: "center", minWidth: 110 },
       ],
       warningList: [],
-    }
+    };
   },
   // 生命周期 - 创建完成(可以访问当前this实例)
-  created () {
+  created() {
     // 获取基础物料类型
-    this.axios({ method: 'get', url: '/api/basics_material_index_level', }).then((res) => { this.modalData.treeData[0].list = res.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/basics_material_index_level" })
+      .then((res) => {
+        this.modalData.treeData[0].list = res.data;
+      })
+      .catch((err) => {});
     // 获取供应商列表
-    this.axios({ method: 'get', url: '/api/supply_list', }).then((res) => { this.suppliersList = res.data.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/supply_list" })
+      .then((res) => {
+        this.suppliersList = res.data.data;
+      })
+      .catch((err) => {});
     // 获取供应商分类
-    this.axios({ method: 'get', url: '/api/basic_supply_list', }).then((res) => { this.modalSupplierData.treeData[0].sub = res.data }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/basic_supply_list" })
+      .then((res) => {
+        this.modalSupplierData.treeData[0].sub = res.data;
+      })
+      .catch((err) => {});
     // 获取项目列表
-    this.axios({ method: 'get', url: '/api/order_index', }).then((res) => {
-      this.modalProjectData.tableData = res.data.data
-      this.modal_project_total = res.data.total
-    }).catch((err) => { });
+    this.axios({ method: "get", url: "/api/order_index" })
+      .then((res) => {
+        this.modalProjectData.tableData = res.data.data;
+        this.modal_project_total = res.data.total;
+      })
+      .catch((err) => {});
     // 获取紧急程度
-    this.axios.get('/api/warning_list').then(res => { this.warningList = res.data.data })
-    this.initModal()
-    this.initProjectModal()
-    this.initSupplierModal(this.modalSupplierData)
+    this.axios.get("/api/warning_list").then((res) => {
+      this.warningList = res.data.data;
+    });
+    this.initModal();
+    this.initProjectModal();
+    this.initSupplierModal(this.modalSupplierData);
   },
   // 生命周期 - 挂载完成(可以访问DOM元素)
-  mounted () {
-    if (this.$route.query.order_out_no != '') {
-      this.initData(this.$route.query.order_out_no)
+  mounted() {
+    if (this.$route.query.order_out_no != "") {
+      this.initData(this.$route.query.order_out_no);
     }
   },
   methods: {
-    initData (order_out_no) {
+    initData(order_out_no) {
       this.axios({
-        method: 'get',
-        url: '/api/warehouse_order_out_detail',
-        params: { order_out_no }
-      }).then((res) => {
-        this.tableData = res.data.list
-        // this.tableData.forEach(element => {
-        //   element.fax = element.fax * 100
-        //   element.total_price = (1 * element.price * element.num).toFixed(2)
-        //   element.no_tax_price = (1 * element.price / (1 + 1 * element.fax / 100)).toFixed(2)
-        //   element.no_tax_amount = (1 * element.no_tax_price * element.num).toFixed(2)
-        //   element.tax_amount = (1 * element.total_price - 1 * element.no_tax_amount).toFixed(2)
-        // });
-        const data = JSON.parse(JSON.stringify(res.data))
-        delete data.list
-        this.searchData = data
-      }).catch((err) => { });
+        method: "get",
+        url: "/api/warehouse_order_out_detail",
+        params: { order_out_no },
+      })
+        .then((res) => {
+          this.tableData = res.data.list;
+          // this.tableData.forEach(element => {
+          //   element.fax = element.fax * 100
+          //   element.total_price = (1 * element.price * element.num).toFixed(2)
+          //   element.no_tax_price = (1 * element.price / (1 + 1 * element.fax / 100)).toFixed(2)
+          //   element.no_tax_amount = (1 * element.no_tax_price * element.num).toFixed(2)
+          //   element.tax_amount = (1 * element.total_price - 1 * element.no_tax_amount).toFixed(2)
+          // });
+          const data = JSON.parse(JSON.stringify(res.data));
+          delete data.list;
+          this.searchData = data;
+        })
+        .catch((err) => {});
     },
-    postData () {
-      this.tableData.forEach(element => {
+    postData() {
+      this.tableData.forEach((element) => {
         if (element.type != 0) {
-          this.searchData.type = 1
+          this.searchData.type = 1;
         } else {
-          this.searchData.type = 0
+          this.searchData.type = 0;
         }
       });
-      let obj = JSON.parse(JSON.stringify(this.searchData))
-      obj.crt_time = parseInt(new Date(obj.crt_time).getTime() / 1000) || ''
-      if (this.$route.query.order_out_no == '') {
+      let obj = JSON.parse(JSON.stringify(this.searchData));
+      obj.crt_time = parseInt(new Date(obj.crt_time).getTime() / 1000) || "";
+      if (this.$route.query.order_out_no == "") {
         // 新增
         this.axios({
-          method: 'post',
-          url: '/api/warehouse_order_out_add',
+          method: "post",
+          url: "/api/warehouse_order_out_add",
           data: {
             ...obj,
-            list: this.tableData
-          }
-        }).then((res) => {
-          this.$Message.success(res.msg)
-          this.goBack()
-        }).catch((err) => { });
+            list: this.tableData,
+          },
+        })
+          .then((res) => {
+            this.$Message.success(res.msg);
+            this.goBack();
+          })
+          .catch((err) => {});
       } else {
         // 编辑
         this.axios({
-          method: 'post',
-          url: '/api/warehouse_order_out_edit',
+          method: "post",
+          url: "/api/warehouse_order_out_edit",
           data: {
             order_out_no: this.$route.query.order_out_no,
             ...obj,
-            list: this.tableData
-          }
-        }).then((res) => {
-          this.$Message.success(res.msg)
-          this.goBack()
-        }).catch((err) => { });
+            list: this.tableData,
+          },
+        })
+          .then((res) => {
+            this.$Message.success(res.msg);
+            this.goBack();
+          })
+          .catch((err) => {});
       }
     },
-    handleReference (type, refer_type) {
-      let title = type == 8 ? '参照入库单' : '参照派工单'
+    handleReference(type, refer_type) {
+      let title = type == 8 ? "参照入库单" : "参照派工单";
       this.$reference({
         type,
-        title, refer_type,
+        title,
+        refer_type,
         then: (result, data) => {
-          this.tableData = [...this.tableData, ...result]
-        }
-      })
+          this.tableData = [...this.tableData, ...result];
+        },
+      });
     },
-    handleSet (type, row, index) {
-      this.tableData.splice(index, 1)
+    handleSet(type, row, index) {
+      this.tableData.splice(index, 1);
     },
-    handleSelect () {
-      this.modalData.selectedData.forEach(element => {
-        element.type_title = element.title
-        element.type == 0
+    handleSelect() {
+      this.modalData.selectedData.forEach((element) => {
+        element.type_title = element.title;
+        element.type == 0;
       });
-      this.tableData = [...this.tableData, ...this.modalData.selectedData]
+      this.tableData = [...this.tableData, ...this.modalData.selectedData];
     },
-    changeModalSize (e) {
+    changeModalSize(e) {
       this.modal_page_size = e;
-      this.initModal()
+      this.initModal();
     },
-    changeModalPage (e) {
+    changeModalPage(e) {
       this.modal_page_index = e;
-      this.initModal()
+      this.initModal();
     },
-    initModal () {
+    initModal() {
       this.axios({
-        method: 'get',
-        url: '/api/material_detail_list',
+        method: "get",
+        url: "/api/material_detail_list",
         params: {
           page_index: this.modal_page_index,
           page_size: this.modal_page_size,
-          title: this.modalData.title
-        }
-      }).then((res) => {
-        this.modal_total = res.data.total
-        this.modalData.tableData = res.data.data
-        this.reselection()
-      }).catch((err) => { });
+          title: this.modalData.title,
+        },
+      })
+        .then((res) => {
+          this.modal_total = res.data.total;
+          this.modalData.tableData = res.data.data;
+          this.reselection();
+        })
+        .catch((err) => {});
     },
-    handleSelection (selection, row) {
-      this.modalData.selectedData.push(row)
+    handleSelection(selection, row) {
+      this.modalData.selectedData.push(row);
     },
-    handleSelectionCancel (selection, row) {
+    handleSelectionCancel(selection, row) {
       this.modalData.selectedData.forEach((element, index) => {
         if (element.material_detail_id == row.material_detail_id) {
-          this.modalData.selectedData.splice(index, 1)
+          this.modalData.selectedData.splice(index, 1);
         }
       });
     },
-    handleSelectionAll (selection) {
-      this.modalData.selectedData = this.modalData.selectedData.concat(selection)
+    handleSelectionAll(selection) {
+      this.modalData.selectedData =
+        this.modalData.selectedData.concat(selection);
     },
-    handleSelectionAllCancel () {
-      this.modalData.tableData.forEach(element => {
-        this.modalData.selectedData = this.modalData.selectedData.filter((x) => {
-          return x.material_detail_id != element.material_detail_id
-        })
+    handleSelectionAllCancel() {
+      this.modalData.tableData.forEach((element) => {
+        this.modalData.selectedData = this.modalData.selectedData.filter(
+          (x) => {
+            return x.material_detail_id != element.material_detail_id;
+          }
+        );
       });
     },
-    reselection () {
-      this.modalData.selectedData.forEach(element => {
+    reselection() {
+      this.modalData.selectedData.forEach((element) => {
         this.modalData.tableData.forEach((ele, idx) => {
           if (element.material_detail_id == ele.material_detail_id) {
             this.$nextTick(() => {
-              this.$refs.modelTable.$refs.tbody.objData[idx]._isChecked = true
-              this.$forceUpdate()
-            })
+              this.$refs.modelTable.$refs.tbody.objData[idx]._isChecked = true;
+              this.$forceUpdate();
+            });
           }
         });
       });
     },
-    handleTreeSlect (array, row) {
-      row.id && this.axios({
-        method: 'get',
-        url: '/api/material_detail_list',
-        params: {
-          page_index: this.modal_page_index,
-          page_size: this.modal_page_size,
-          m_id: row.id
-        }
-      }).then((res) => {
-        this.modal_total = res.data.total
-        this.modalData.tableData = res.data.data
-      }).catch((err) => { });
+    handleTreeSlect(array, row) {
+      row.id &&
+        this.axios({
+          method: "get",
+          url: "/api/material_detail_list",
+          params: {
+            page_index: this.modal_page_index,
+            page_size: this.modal_page_size,
+            m_id: row.id,
+          },
+        })
+          .then((res) => {
+            this.modal_total = res.data.total;
+            this.modalData.tableData = res.data.data;
+          })
+          .catch((err) => {});
+    },
+    handleSelectedDele(row, index) {
+      this.modalData.selectedData.splice(index, 1);
     },
-    handleSelectedDele (row, index) {
-      this.modalData.selectedData.splice(index, 1)
+    goBack() {
+      this.$router.go(-1);
     },
-    goBack () { this.$router.go(-1) },
-    handleProjectSelect () {
-      this.searchData.client_name = this.currentChoose.client_name
-      this.searchData.order_no = this.currentChoose.order_no
+    handleProjectSelect() {
+      this.searchData.client_name = this.currentChoose.client_name;
+      this.searchData.order_no = this.currentChoose.order_no;
     },
-    handleSupplierSelect () {
-      this.searchData.title = this.currentChoose.title
-      this.searchData.supply_id = this.currentChoose.id
+    handleSupplierSelect() {
+      this.searchData.title = this.currentChoose.title;
+      this.searchData.supply_id = this.currentChoose.id;
     },
-    changeProjectModalSize (e) {
-      this.modal_project_page_size = e
-      this.initProjectModal()
+    changeProjectModalSize(e) {
+      this.modal_project_page_size = e;
+      this.initProjectModal();
     },
-    changeProjectModalPage (e) {
-      this.modal_project_page_index = e
-      this.initProjectModal()
+    changeProjectModalPage(e) {
+      this.modal_project_page_index = e;
+      this.initProjectModal();
     },
-    initProjectModal () {
+    initProjectModal() {
       this.axios({
-        method: 'get',
-        url: '/api/order_index',
+        method: "get",
+        url: "/api/order_index",
         params: {
           page_index: this.modal_project_page_index,
           page_size: this.modal_project_page_size,
-          title: this.modalProjectData.title
-        }
-      }).then((res) => {
-        this.modal_project_total = res.data.total
-        this.modalProjectData.tableData = res.data.data
-      }).catch((err) => { });
+          title: this.modalProjectData.title,
+        },
+      })
+        .then((res) => {
+          this.modal_project_total = res.data.total;
+          this.modalProjectData.tableData = res.data.data;
+        })
+        .catch((err) => {});
     },
-    changeSupplierModalSize (e) {
-      this.modal_supplier_page_size = e
-      this.initSupplierModal(this.modalSupplierData)
+    changeSupplierModalSize(e) {
+      this.modal_supplier_page_size = e;
+      this.initSupplierModal(this.modalSupplierData);
     },
-    changeSupplierModalPage (e) {
-      this.modal_supplier_page_index = e
-      this.initSupplierModal(this.modalSupplierData)
+    changeSupplierModalPage(e) {
+      this.modal_supplier_page_index = e;
+      this.initSupplierModal(this.modalSupplierData);
     },
-    initSupplierModal (searchData) {
+    initSupplierModal(searchData) {
       this.axios({
-        method: 'get',
-        url: '/api/supply_list',
+        method: "get",
+        url: "/api/supply_list",
         params: {
           page_index: this.modal_supplier_page_index,
           page_size: this.modal_supplier_page_size,
           title: searchData.title,
           code: searchData.code,
-        }
-      }).then((res) => {
-        this.modal_supplier_total = res.data.total
-        this.modalSupplierData.tableData = res.data.data
-      }).catch((err) => { });
+        },
+      })
+        .then((res) => {
+          this.modal_supplier_total = res.data.total;
+          this.modalSupplierData.tableData = res.data.data;
+        })
+        .catch((err) => {});
     },
-    handleSupplierTreeSlect (arr, row) {
-      this.modalSupplierData.code = row.code
-      this.initSupplierModal(this.modalSupplierData)
+    handleSupplierTreeSlect(arr, row) {
+      this.modalSupplierData.code = row.code;
+      this.initSupplierModal(this.modalSupplierData);
     },
   },
   // 监听属性 类似于data概念
   computed: {},
   // 监控data中的数据变化
   watch: {},
-  beforeCreate () { }, // 生命周期 - 创建之前
-  beforeMount () { }, // 生命周期 - 挂载之前
-  beforeUpdate () { }, // 生命周期 - 更新之前
-  updated () { }, // 生命周期 - 更新之后
-  beforeDestroy () { }, // 生命周期 - 销毁之前
-  destroyed () { }, // 生命周期 - 销毁完成
-  activated () { }, // 如果页面有keep-alive缓存功能,这个函数会触发
-}
+  beforeCreate() {}, // 生命周期 - 创建之前
+  beforeMount() {}, // 生命周期 - 挂载之前
+  beforeUpdate() {}, // 生命周期 - 更新之前
+  updated() {}, // 生命周期 - 更新之后
+  beforeDestroy() {}, // 生命周期 - 销毁之前
+  destroyed() {}, // 生命周期 - 销毁完成
+  activated() {}, // 如果页面有keep-alive缓存功能,这个函数会触发
+};
 </script>
 
 <style lang='scss' scoped>