Compare commits

...

189 Commits

Author SHA1 Message Date
安虹睿 72a79d4141 Merge branch 'dev_web' into dev_web_online 2 years ago
安虹睿 09def3bd97 Merge branch 'dev_web' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_web 2 years ago
安虹睿 69cdef4195 库存流水帐明细新版本 2 years ago
陈薪名 0a47417523 质检 检验详情 遮罩未关闭 2 years ago
安虹睿 b19e858f25 Merge branch 'dev_web' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_web 2 years ago
陈薪名 7dbafb78d4 Revert "质检 检验详情 遮罩未关闭" 2 years ago
安虹睿 a11872e284 report-test新版暂存 2 years ago
陈薪名 3ac6084c42 质检 检验详情 遮罩未关闭 2 years ago
陈薪名 d84b8b4391 质检 检验详情 遮罩未关闭 2 years ago
安虹睿 feb3b36205 库存流水帐明细模拟报表:使用懒加载+树结构 2 years ago
安虹睿 adea487fb0 Merge branch 'dev_web' into dev_web_online 2 years ago
安虹睿 cd18a07ebc 模拟库存流水帐明细报表窜行问题处理 2 years ago
安虹睿 eb778a78b5 新增base_direct特殊配置 2 years ago
安虹睿 d8a0a19c33 Merge branch 'dev_web' into dev_web_online 2 years ago
安虹睿 23dfa2ddbc 质检+utable优化 2 years ago
安虹睿 e26fa07e91 检验bug修改及优化 2 years ago
安虹睿 5a8aa7f9ae 照片预览+pdf预览,组件封装修改 2 years ago
安虹睿 41ae78b5d5 报检单暂存 2 years ago
安虹睿 d458bf0ebe MessageReceive操作判断修改 2 years ago
安虹睿 1c0a8fdc75 质检页面loading的bug修复 2 years ago
安虹睿 5b49aeb0c0 库存流水帐明细时间优化 2 years ago
安虹睿 5006e5956e 代码优化 2 years ago
安虹睿 9b1bfc3ff1 宽度调整 2 years ago
安虹睿 4ebab2512c 库位小计/储位小计/物料小计 分割线长度处理 2 years ago
安虹睿 eccfe8bc02 库存流水帐明细暂存 2 years ago
安虹睿 05f94692a6 库存流水帐明细模仿报表暂存 2 years ago
安虹睿 809414e5a1 库存流水帐明细前端模拟报表暂存 2 years ago
安虹睿 f530f0c0b0 Merge branch 'dev_web' into dev_web_online 2 years ago
安虹睿 98300f03ae 版本更新 2 years ago
安虹睿 af14b13864 除了盘点所有的ERP库位更改为ERP储位 2 years ago
安虹睿 82f1c38143 Merge branch 'dev_web' into dev_web_online 2 years ago
安虹睿 8f4ad76b62 部门获取bug处理 2 years ago
安虹睿 5edf8527a6 Merge branch 'dev_web' into dev_web_online 2 years ago
安虹睿 8fa59f5054 盘点恢复 2 years ago
安虹睿 604e63ec67 盘点计划新增,盘点类型excel暂时放开原材料库位 2 years ago
安虹睿 5c90110a41 css 2 years ago
安虹睿 4c9ab7c964 版本更新 2 years ago
安虹睿 f804f5b091 盘点记录,当前用户与创建用户不符,不能进行生成盘点调整申请 2 years ago
安虹睿 b5336d2b37 1、库存余额批量启用功能开发, 2 years ago
安虹睿 84e5edaf88 Revert "1、库存余额批量启用功能开发," 2 years ago
安虹睿 be2138f6b7 1、库存余额批量启用功能开发, 2 years ago
安虹睿 1896e153fc 盘点相关去掉阶段字段 2 years ago
安虹睿 079902fffa 报表地址更改 2 years ago
安虹睿 603396b503 版本更新 2 years ago
安虹睿 16a8a73afe 库存流水帐汇总(ERP储位)-账期 + 库存流水账汇总(WMS库位)-账期 2 years ago
安虹睿 29260b6eee 版本更新 2 years ago
安虹睿 18b3d436fc 库存余额+库存事务前端添加配置项 2 years ago
安虹睿 397b7aba8b 盘点隐藏阶段 2 years ago
安虹睿 9ef01ebf46 子事务类型增加枚举1505,非生产调拨 2 years ago
安虹睿 03129c786c 版本更新 2 years ago
安虹睿 1d40849732 所有打印只打印了第一页问题处理 2 years ago
安虹睿 d5d0733dae 1、主表添加基础信息表查询的数据与明细表添加配置参数封装 2 years ago
安虹睿 2662b17e8b 客户信息去掉,新增导入,编辑删除按钮 2 years ago
安虹睿 8dff6bc47e 版本更新 2 years ago
安虹睿 17ae2302c5 Fis发货记录明细字段调整 2 years ago
安虹睿 c96b55c9cd 1、明细中全部添加基础数据的Configuration参数 2 years ago
安虹睿 2aef495c6d 明细-获取物品信息【配置(configuration)】参数功能暂存 2 years ago
安虹睿 c12c6af440 版本更新 2 years ago
安虹睿 015b3d9e60 报表+看板弹出页面统一开发 2 years ago
安虹睿 70041b4155 报表传参title 2 years ago
安虹睿 0209d0bda6 报表链接传递title参数 2 years ago
安虹睿 cd3e23f3f4 版本更新 2 years ago
安虹睿 b1e2edd8f4 库存事务添加子事务类型字段 2 years ago
安虹睿 ee4bec5b4c 报表看板管理所有报表页面添加重新打开按钮,封装开发及调用 2 years ago
安虹睿 2589a7652c 版本暂不更新 2 years ago
安虹睿 968d858c19 基础信息隐藏包装信息tab页 2 years ago
安虹睿 a6865ced31 物品基础信息去掉导入按钮 2 years ago
安虹睿 80c92432f2 版本更新 2 years ago
安虹睿 0c396fa28b 恢复接口看板头部走接口模式 2 years ago
安虹睿 47d4449aa3 物品基础信息去掉新增按钮 2 years ago
安虹睿 3c3244ac3b TestSchool模拟暂存 2 years ago
安虹睿 9ef4073c7a 接口监控看板表头使用接口获取最终版本1 2 years ago
安虹睿 acc2d660c7 接口监控开发暂存 2 years ago
安虹睿 38a4167750 盘点记录明细去掉初盘记录 2 years ago
安虹睿 06e5aa6a14 接口监控看板第二个,报错问题处理 2 years ago
安虹睿 2e0232fefd 盘点优化 2 years ago
安虹睿 766dbb3dff 盘点状态必填+去掉收货目检不合格状态 2 years ago
安虹睿 630fefeee3 盘点库位筛选问题处理版本更新 2 years ago
安虹睿 f1059dfc63 新增盘点:筛选同类型:多种条件且多选拼接,与选择条件需要同步共存bug问题处理 2 years ago
安虹睿 bde835f158 盘点去掉三个默认库位暂时回滚 2 years ago
安虹睿 9116ac6818 复原暂存 2 years ago
安虹睿 c4d79754fc 盘点调整记录字段调整版本更新 2 years ago
安虹睿 c845856670 盘点调整记录字段调整 2 years ago
安虹睿 d73b5785f7 库位筛选,默认去掉的库位代码暂存 2 years ago
安虹睿 03b1acd038 盘点优化 2 years ago
安虹睿 b193c11482 备份同步更改 2 years ago
安虹睿 d86da88547 1筛选条件自定义组件封装 2 years ago
安虹睿 ebd30f75c0 盘点筛选条件多选拆分回传及重组回显处理-版本更新 2 years ago
安虹睿 0d37e7941b 盘点筛选条件多选拆分回传及重组回显处理 2 years ago
安虹睿 6eb8ea49d5 暂存 2 years ago
安虹睿 d4e8e85fae 盘点版本更新 2 years ago
安虹睿 72c5db5148 盘点使用excel盘点筛选条件不等于原材料库处理 2 years ago
安虹睿 2d5d76645c 盘点问题处理版本更新 2 years ago
安虹睿 d652f2bced 盘点筛选按钮位置组件调整+pda盘点筛选条件问题调整 2 years ago
安虹睿 363544489d 恢复登录页暂存 2 years ago
安虹睿 5932b38ab6 接口监控实时使用接口表头暂存 2 years ago
安虹睿 bd4f51d86b 登录添加提前获取接口监控看板表头数据并存储 2 years ago
安虹睿 1762541655 接口监控看板路由已从接口部署 2 years ago
安虹睿 35be443085 接口监控暂存 2 years ago
安虹睿 54d7d72e5a 更改打印单title 2 years ago
安虹睿 1a4550b5ce 自动发料记录+人工发料记录:打印单title更改为线边仓领料单 2 years ago
安虹睿 6c88c1ee52 人工发料任务导出暂时隐藏 2 years ago
安虹睿 c441189e90 人工发料任务添加导出功能 2 years ago
安虹睿 c564a88a17 接口监察暂存 2 years ago
安虹睿 2a615b798d 接口监控看板暂存 2 years ago
安虹睿 770290b018 盘点版本更新 2 years ago
安虹睿 7da73a5e3d 如果是pda类型盘点,库位类型禁止使用线边库位 2 years ago
安虹睿 c81c8fbe99 接口监控看板暂存 2 years ago
安虹睿 3e4ad04016 盘点问题暂存 2 years ago
安虹睿 fae8ad4456 盘点新增库存筛选条件bug处理 2 years ago
安虹睿 6a364259e0 新增盘点计划:增加判断:如果不是Excel盘点类型,过滤线边仓数据 2 years ago
安虹睿 fee31880a6 去掉所有标签打印的放大镜按钮 2 years ago
安虹睿 f12c15b3e5 接口监控看板菜单 2 years ago
安虹睿 c90c14a7d8 非生产领退料,打印添加配置字段 2 years ago
陈薪名 8a1e44de91 库存转移日志新增接口对应类型 2 years ago
陈薪名 8696e9c8f1 库存转移日志事务代替类型更改为子事务类型 2 years ago
陈薪名 f3d4717a1b 库存事务新增自定义字段接口对应类型 2 years ago
陈薪名 8b51f09abf FIS发货申请及记录 新增字段 起始盘底号截止盘底号 2 years ago
安虹睿 641982eddf 报表菜单更改名称注释 2 years ago
安虹睿 66f5d1f37b 上架后退货记录原因更改 2 years ago
安虹睿 f1cfa0470e 业务标签打印更改实际数量为拆出数量 2 years ago
安虹睿 335ba4924a 版本更新 2 years ago
安虹睿 8ae6ddc493 库存事务页面 默认事务类型不等于 结算出库、客户ASN、隔离 2 years ago
安虹睿 5305971298 库存流水帐汇总(库位)更改链接 2 years ago
安虹睿 302d697061 版本更新 2 years ago
安虹睿 17fd6fbea4 添加库存流水帐汇总(库位)报表 2 years ago
安虹睿 31a7885559 版本更新 2 years ago
安虹睿 f0b9e45ed7 物品质检标准信息 2 years ago
安虹睿 0226ec4e81 采购订单去掉生产时间 2 years ago
安虹睿 5ca5b1d819 物品包装信息 点击物品代码进详情 2 years ago
陈薪名 affef7f16e 版本更新 2 years ago
陈薪名 2e58e8c649 安全库存预警 变色列处理 2 years ago
陈薪名 c8e19ddbb5 版本更新 2 years ago
陈薪名 a16c1528ce 人工叫料申请 修改提示语 2 years ago
陈薪名 47f6e1df73 半成品上架标签物品代码选择条件修改为半成品对应编号 2 years ago
安虹睿 a3d88da2c3 更改所有高级筛选使用paging(callback) 2 years ago
安虹睿 6600509f51 拆分记录+高级筛选特殊接口问题更改 2 years ago
安虹睿 ac448c83b5 版本更新 2 years ago
安虹睿 d7a9125e72 拆分标签功能页面开发,所有的箱标签(包装数量+数量)字段调整 2 years ago
安虹睿 43de60c1fb 版本更新 2 years ago
安虹睿 5ab59d68b2 拆分箱标签功能暂存 2 years ago
安虹睿 c8fc7d9d55 到货通知打印bug修复 2 years ago
安虹睿 6ba9ab7120 供应商代码新增规则更改 2 years ago
安虹睿 51eef809dc 客户代码新增规则控制(数字+字母+‘-’) 2 years ago
安虹睿 cdc1b72943 添加报表页面(库存余额报表按库位、库存余额报表按ERP库位) 2 years ago
陈薪名 3c2c785abc 安全库存预警修改 2 years ago
陈薪名 0acaa03a64 安全库存预警版本更新 2 years ago
陈薪名 6a97af6731 物品安全库存预警功能开发 2 years ago
安虹睿 0a676de9c0 版本更新 2 years ago
安虹睿 e0663fbaaf config参数名称更改 2 years ago
安虹睿 b946385fda 打印表头通用配置开发 2 years ago
陈薪名 ec427dd59d 采购订单去掉作废按钮版本更新 2 years ago
陈薪名 68e8868eb3 采购订单去掉作废按钮 2 years ago
陈薪名 ea5391f709 优化用户名密码错误提示 2 years ago
陈薪名 8bbb98430a 版本更新提示语修改 2 years ago
陈薪名 9854499f5a 版本自动更新功能 2 years ago
陈薪名 bddfc3489d 版本检测更新功能 2 years ago
安虹睿 b556c39d0e 打印调取接口获取没有数据问题处理 2 years ago
安虹睿 8b200e0a4f 打印模板表头(公司)名称统一封装 2 years ago
安虹睿 6dd6cc8edc 审批状态颜色调整 2 years ago
陈薪名 8343a97e29 物品基础信息类型字段枚举修改 2 years ago
安虹睿 c6d2a6b39d 解决复制时候后面有空格的问题 2 years ago
安虹睿 c79320d7b0 注释 2 years ago
安虹睿 21f2362f82 申请流程按钮name值全局定义封装,有关使用位置替换开发 2 years ago
安虹睿 27065fa749 导入默认追加式 2 years ago
安虹睿 305f2357a6 修改注释 2 years ago
安虹睿 16f3012301 人工叫料执行特殊操作处理 2 years ago
安虹睿 eca7fb7d9f 修改注释 2 years ago
安虹睿 8b59ef4f95 人工叫料申请添加完成按钮 2 years ago
安虹睿 5939f05ad7 非生产领退料 添加【专案代码】【项目分类】【次交易码】字段 2 years ago
安虹睿 eaa8dcf205 隐藏人工叫料完成按钮 2 years ago
安虹睿 4ba471d1ec 代码简化 2 years ago
安虹睿 1bea9f0159 详情+utable转义数字同时判断number类型处理(解决+“”转义后数字0不显示的问题) 2 years ago
安虹睿 92d44e469b 打印单字段调整 2 years ago
安虹睿 0992f0770a 主表字段调整 2 years ago
陈薪名 143d84024b 事务类型信息编辑后刷新数据 2 years ago
陈薪名 5983a6372d Merge branch 'dev_web' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_web 2 years ago
陈薪名 9176e0554b 库存事务类型入库出库下拉框多选修改 2 years ago
安虹睿 ee7808d9ee 申请流程调整 2 years ago
安虹睿 b4492efb22 主表数组转义 2 years ago
安虹睿 830431538d 详情数组转义 2 years ago
安虹睿 e25d1b0795 Merge branch 'dev_web' of http://dev.ccwin-in.com:3000/BoXu.Zheng/WZC2 into dev_web 2 years ago
安虹睿 06531ee6e1 叫料按钮自定义暂存 2 years ago
安虹睿 a87a19f7e1 申请流程新增特殊功能封装 2 years ago
安虹睿 f52a77eab6 隐藏不合格品打印退货单按钮 2 years ago
陈薪名 76551bc25b 报表以新标签形式进行展现 2 years ago
陈薪名 a8fd7f483e iframe 嵌套缓存处理 暂缓 2 years ago
陈薪名 f664b41473 配置文件修改 2 years ago
陈薪名 78fec36925 盘点计划去掉删除功能 2 years ago
  1. 1
      fe/PC/README.md
  2. 41
      fe/PC/package-lock.json
  3. 5
      fe/PC/package.json
  4. 8
      fe/PC/public/config.js
  5. 3
      fe/PC/public/version.json
  6. 4
      fe/PC/src/App.vue
  7. 55
      fe/PC/src/api/wms-api.js
  8. 18
      fe/PC/src/api/wms-core.js
  9. 86
      fe/PC/src/api/wms-interface.js
  10. 9
      fe/PC/src/api/wms-job.js
  11. 5
      fe/PC/src/components/News/index.vue
  12. 105
      fe/PC/src/components/StepsCountPlanForm/index.vue
  13. 4
      fe/PC/src/components/commonTabel-drawer/index.vue
  14. 13
      fe/PC/src/components/conditionFilters/index.vue
  15. 9
      fe/PC/src/components/currenButton/index.vue
  16. 4
      fe/PC/src/components/currenButton/innerButton.vue
  17. 2
      fe/PC/src/components/currenDescriptions/index.vue
  18. 3
      fe/PC/src/components/currenForm/index.vue
  19. 3
      fe/PC/src/components/currenTable/index.vue
  20. 7
      fe/PC/src/components/importFile/index.vue
  21. 45
      fe/PC/src/components/pdf/index.vue
  22. 2
      fe/PC/src/components/searchOverall/style/index.scss
  23. 19
      fe/PC/src/components/searchPage/index.vue
  24. 20
      fe/PC/src/components/tablePagination/index.vue
  25. 182
      fe/PC/src/components/umyTable/index.vue
  26. 13
      fe/PC/src/filters/excelOrReportsOption.js
  27. 245
      fe/PC/src/filters/status.js
  28. 56
      fe/PC/src/lang/index.js
  29. 117
      fe/PC/src/lang/zh.js
  30. 98
      fe/PC/src/layout/components/AppMain.vue
  31. 2
      fe/PC/src/layout/components/Sidebar/SidebarItem.vue
  32. 7
      fe/PC/src/main.js
  33. 23
      fe/PC/src/mixins/TableHeaderMixins.js
  34. 90
      fe/PC/src/mixins/TableMixins.js
  35. 32
      fe/PC/src/mixins/drawerMixins.js
  36. 1
      fe/PC/src/mixins/mixins.js
  37. 77
      fe/PC/src/mixins/printMixin.js
  38. 13
      fe/PC/src/permission.js
  39. 54
      fe/PC/src/router/index.js
  40. 6
      fe/PC/src/store/modules/permission.js
  41. 10
      fe/PC/src/store/modules/user.js
  42. 3
      fe/PC/src/styles/mainbasicData.scss
  43. 12
      fe/PC/src/utils/defaultButtons.js
  44. 219
      fe/PC/src/utils/detailsTableColumns/index.js
  45. 10
      fe/PC/src/utils/index.js
  46. 116
      fe/PC/src/utils/processButtonData.js
  47. 2
      fe/PC/src/utils/summaryTableColumns/index.js
  48. 1513
      fe/PC/src/utils/tableColumns/index.js
  49. 4020
      fe/PC/src/utils/tableColumns/index_new.js
  50. 68
      fe/PC/src/utils/tabsDesTions/index.js
  51. 35
      fe/PC/src/utils/upDateVersion.js
  52. 21
      fe/PC/src/views/activeReportManage/largeScreen/arrivalBoard.vue
  53. 21
      fe/PC/src/views/activeReportManage/largeScreen/logisticsTimeBoard.vue
  54. 21
      fe/PC/src/views/activeReportManage/largeScreen/planAndActualBoard.vue
  55. 21
      fe/PC/src/views/activeReportManage/largeScreen/warehouseBoard.vue
  56. 27
      fe/PC/src/views/activeReportManage/popUpPage/index.vue
  57. 16
      fe/PC/src/views/activeReportManage/reportForm/InventoryAgingSegmentSummary.vue
  58. 19
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail.vue
  59. 609
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage copy 3.vue
  60. 464
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage.vue
  61. 601
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage_old.vue
  62. 16
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummary.vue
  63. 21
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummaryERP_pay.vue
  64. 21
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummaryLocation.vue
  65. 21
      fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummaryWMS_pay.vue
  66. 16
      fe/PC/src/views/activeReportManage/reportForm/InventoryDetailReport.vue
  67. 16
      fe/PC/src/views/activeReportManage/reportForm/UnplannedDeliverSummary.vue
  68. 17
      fe/PC/src/views/activeReportManage/reportForm/completionReceiptSummary.vue
  69. 16
      fe/PC/src/views/activeReportManage/reportForm/finishedProductDeliverySummary.vue
  70. 16
      fe/PC/src/views/activeReportManage/reportForm/inventoryBalanceReport.vue
  71. 21
      fe/PC/src/views/activeReportManage/reportForm/inventoryBalanceReportLocationCode.vue
  72. 21
      fe/PC/src/views/activeReportManage/reportForm/inventoryBalanceReportLocationErpCode.vue
  73. 16
      fe/PC/src/views/activeReportManage/reportForm/inventoryReport.vue
  74. 16
      fe/PC/src/views/activeReportManage/reportForm/inventorySummary.vue
  75. 13
      fe/PC/src/views/activeReportManage/reportForm/inventoryTransactions.vue
  76. 16
      fe/PC/src/views/activeReportManage/reportForm/productionIssuanceSummary.vue
  77. 16
      fe/PC/src/views/activeReportManage/reportForm/productionReturnSummary.vue
  78. 16
      fe/PC/src/views/activeReportManage/reportForm/purchaseReceiptSummary.vue
  79. 16
      fe/PC/src/views/activeReportManage/reportForm/purchaseReturnSummaryReport.vue
  80. 16
      fe/PC/src/views/activeReportManage/reportForm/purchaseSum.vue
  81. 14
      fe/PC/src/views/activeReportManage/reportForm/safetyStockReport.vue
  82. 16
      fe/PC/src/views/activeReportManage/reportForm/scrapDetails.vue
  83. 16
      fe/PC/src/views/activeReportManage/reportForm/unplannedReceiptSummary.vue
  84. 1
      fe/PC/src/views/basicData/BomManage/Bom.vue
  85. 9
      fe/PC/src/views/basicData/CustomerManage/Customer.vue
  86. 1
      fe/PC/src/views/basicData/CustomerManage/CustomerAddress.vue
  87. 1
      fe/PC/src/views/basicData/CustomerManage/CustomerItem.vue
  88. 1
      fe/PC/src/views/basicData/CustomerManage/Project.vue
  89. 1
      fe/PC/src/views/basicData/DictionaryManage/Category.vue
  90. 1
      fe/PC/src/views/basicData/DictionaryManage/Dict.vue
  91. 1
      fe/PC/src/views/basicData/DictionaryManage/Uom.vue
  92. 5
      fe/PC/src/views/basicData/ItemsManage/AQL.vue
  93. 19
      fe/PC/src/views/basicData/ItemsManage/ItemBasic.vue
  94. 1
      fe/PC/src/views/basicData/ItemsManage/ItemCategory.vue
  95. 1
      fe/PC/src/views/basicData/ItemsManage/ItemPack.vue
  96. 1
      fe/PC/src/views/basicData/ItemsManage/ItemQuality.vue
  97. 3
      fe/PC/src/views/basicData/SupplierManage/Supplier.vue
  98. 1
      fe/PC/src/views/basicData/SupplierManage/SupplierItem.vue
  99. 1
      fe/PC/src/views/basicData/SupplierManage/SupplierTime.vue
  100. 1
      fe/PC/src/views/basicData/WarehouseManage/Area.vue

1
fe/PC/README.md

@ -119,6 +119,7 @@ validType type仅等于input时:实时keyUp校验,类型如下:
3、 numberLetter: 数字+字母,
4、 letter:纯字母,
5、 letterCn:字母+中文
6、 numberLetterBar:字母+中文+横杠(-)
pointNumberFixed 组合上方validType值仅等于pointNumber时:
小数点后方保留位数,如不填写默认为100位
<validType>+<pointNumberFixed>示例:

41
fe/PC/package-lock.json

@ -1,12 +1,12 @@
{
"name": "vue-element-admin",
"version": "4.4.0",
"version": "4.4.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "vue-element-admin",
"version": "4.4.0",
"version": "4.4.1",
"license": "MIT",
"dependencies": {
"af-table-column": "^1.0.3",
@ -17,7 +17,7 @@
"driver.js": "0.9.5",
"dropzone": "5.5.1",
"echarts": "4.2.1",
"element-ui": "^2.15.13",
"element-ui": "^2.15.14",
"file-saver": "2.0.1",
"fuse.js": "3.4.4",
"js-cookie": "2.2.0",
@ -39,6 +39,7 @@
"vue": "2.6.10",
"vue-count-to": "1.0.13",
"vue-grid-layout": "^2.4.0",
"vue-i18n": "^8.28.2",
"vue-pdf": "^4.3.0",
"vue-router": "3.0.2",
"vue-splitpane": "1.0.4",
@ -8580,9 +8581,9 @@
}
},
"node_modules/element-ui": {
"version": "2.15.13",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.13.tgz",
"integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==",
"version": "2.15.14",
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
"dependencies": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
@ -13547,9 +13548,9 @@
}
},
"node_modules/jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
"version": "3.7.0",
"resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.0.tgz",
"integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ=="
},
"node_modules/js-base64": {
"version": "2.6.4",
@ -22158,6 +22159,11 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true
},
"node_modules/vue-i18n": {
"version": "8.28.2",
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-8.28.2.tgz",
"integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA=="
},
"node_modules/vue-jest": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz",
@ -30461,9 +30467,9 @@
}
},
"element-ui": {
"version": "2.15.13",
"resolved": "https://registry.npmjs.org/element-ui/-/element-ui-2.15.13.tgz",
"integrity": "sha512-LJoatEYX6WV74FqXBss8Xfho9fh9rjDSzrDrTyREdGb1h1R3uRvmLh5jqp2JU137aj4/BgqA3K06RQpQBX33Bg==",
"version": "2.15.14",
"resolved": "https://registry.npmmirror.com/element-ui/-/element-ui-2.15.14.tgz",
"integrity": "sha512-2v9fHL0ZGINotOlRIAJD5YuVB8V7WKxrE9Qy7dXhRipa035+kF7WuU/z+tEmLVPBcJ0zt8mOu1DKpWcVzBK8IA==",
"requires": {
"async-validator": "~1.8.1",
"babel-helper-vue-jsx-merge-props": "^2.0.0",
@ -34302,9 +34308,9 @@
}
},
"jquery": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
"version": "3.7.0",
"resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.0.tgz",
"integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ=="
},
"js-base64": {
"version": "2.6.4",
@ -41321,6 +41327,11 @@
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
"dev": true
},
"vue-i18n": {
"version": "8.28.2",
"resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-8.28.2.tgz",
"integrity": "sha512-C5GZjs1tYlAqjwymaaCPDjCyGo10ajUphiwA922jKt9n7KPpqR7oM1PCwYzhB/E7+nT3wfdG3oRre5raIT1rKA=="
},
"vue-jest": {
"version": "3.0.7",
"resolved": "https://registry.npmjs.org/vue-jest/-/vue-jest-3.0.7.tgz",

5
fe/PC/package.json

@ -1,6 +1,6 @@
{
"name": "vue-element-admin",
"version": "4.4.0",
"version": "4.4.1",
"description": "A magical vue admin. An out-of-box UI solution for enterprise applications. Newest development stack of vue. Lots of awesome features",
"author": "Pan <panfree23@gmail.com>",
"scripts": {
@ -23,7 +23,7 @@
"driver.js": "0.9.5",
"dropzone": "5.5.1",
"echarts": "4.2.1",
"element-ui": "^2.15.13",
"element-ui": "^2.15.14",
"file-saver": "2.0.1",
"fuse.js": "3.4.4",
"js-cookie": "2.2.0",
@ -45,6 +45,7 @@
"vue": "2.6.10",
"vue-count-to": "1.0.13",
"vue-grid-layout": "^2.4.0",
"vue-i18n": "^8.28.2",
"vue-pdf": "^4.3.0",
"vue-router": "3.0.2",
"vue-splitpane": "1.0.4",

8
fe/PC/public/config.js

@ -11,6 +11,7 @@
// dev_win
window.SITE_CONFIG['base'] = 'http://dev.ccwin-in.com:60099'
window.SITE_CONFIG['base_direct'] = 'http://dev.ccwin-in.com:60085'
window.SITE_CONFIG['user'] = 'http://dev.ccwin-in.com:60099/api/auth'
// window.SITE_CONFIG['print'] = 'print'21384
window.SITE_CONFIG['print'] = 'http://dev.ccwin-in.com:60074'
@ -18,7 +19,12 @@ window.SITE_CONFIG['largeScreen'] = 'http://dev.ccwin-in.com:60073'
window.SITE_CONFIG['warehouseCode'] = 'T8'
window.SITE_CONFIG['company'] = 'DongYang'
window.SITE_CONFIG['client_secret'] = '1q2w3E*'
window.SITE_CONFIG['reportsUrl'] = 'http://10.164.0.227:60099/#/reports/'
window.SITE_CONFIG['reportsUrl'] = 'http://dev.ccwin-in.com:60074/#/reports/'
window.SITE_CONFIG['versionUrl'] = 'http://dev.ccwin-in.com:60070'
window.SITE_CONFIG['companyName'] = '长春一汽富维东阳汽车塑料零部件(安徽)有限公司'
// 接口看板地址
window.SITE_CONFIG['interfaceBoardUrl'] = 'http://dev.ccwin-in.com:60090/'
// window.SITE_CONFIG['interfaceBoardUrl'] = 'http://dev.ccwin-in.com:60069/'
// mock
// window.SITE_CONFIG['apifoxToken'] = 'NXHNi5mp0dnUHGt0wkCrjvfcidsFKV33'

3
fe/PC/public/version.json

@ -0,0 +1,3 @@
{
"version": "1.0.71"
}

4
fe/PC/src/App.vue

@ -9,6 +9,7 @@ export default {
name: 'App'
}
localStorage.setItem('base',window.SITE_CONFIG['base'])
localStorage.setItem('base_direct',window.SITE_CONFIG['base_direct'])
localStorage.setItem('user',window.SITE_CONFIG['user'])
localStorage.setItem('print',window.SITE_CONFIG['print'])
localStorage.setItem('warehouseCode',window.SITE_CONFIG['warehouseCode'])
@ -16,6 +17,9 @@ localStorage.setItem('company',window.SITE_CONFIG['company'])
localStorage.setItem('largeScreen',window.SITE_CONFIG['largeScreen'])
localStorage.setItem('apifoxToken',window.SITE_CONFIG['apifoxToken'])
localStorage.setItem('reportsUrl',window.SITE_CONFIG['reportsUrl'])
localStorage.setItem('companyName',window.SITE_CONFIG['companyName'])
localStorage.setItem('interfaceBoardUrl',window.SITE_CONFIG['interfaceBoardUrl'])
</script>
<style lang="scss">
/* 滚动条 */

55
fe/PC/src/api/wms-api.js

@ -417,6 +417,15 @@ export function notifyMessage(params, id) {
// })
// }
// 库存列表
export function inventoryBalanceList(data) {
return request({
url: baseURL + 'wms/inventory/Inventory-Balance/list',
method: 'post',
data
})
}
// 库存-启用 | 库存余额 改
export function inventoryBalanceActive(params) {
return request({
@ -557,6 +566,52 @@ export function getOneCustomerInfoByCode(code) {
method: 'get'
})
}
// 获取版本编号
export function getVsersion() {
return request({
url: window.SITE_CONFIG['versionUrl'] + `/version.json?t=${new Date().getTime()}`,
method: 'get'
})
}
// 安全库存预警
export function getListPageSafety(data, url) {
return request({
url: baseURL + url,
method: 'post',
data
})
}
// 库存流水帐明细 报表页面 post的params从url中传递:目的:影响返回速度
export function getInventoryTransactionSerials(url,data) {
return request({
url: baseURL + url,
method: 'post',
data:data,
})
}
// 库存流水帐明细 获取账期
export function getInterfaceCalendar(data) {
return request({
url: baseURL + 'basedata/interface-calendar/list',
method: 'post',
data:data
})
}
// 获取文件
export function getFilestore(data) {
return request({
url: baseURL + 'filestore/file',
method: 'get',
params:data
})
}
// 根据编号获取字典信息
// export function getDictByCode(code) {
// return request({

18
fe/PC/src/api/wms-core.js

@ -35,4 +35,22 @@ export function postInventoryLabelCode_count(params,data) {
method: 'post',
data
})
}
// 拆箱 | 标签管理-拆分箱标签
export function postSplitPacking(data) {
return request({
url: baseURL + 'wms/store/transfer-note/split-packing',
method: 'post',
data
})
}
// 拆箱记录列表
export function splitPackingList(data) {
return request({
url: baseURL + 'wms/store/transfer-note/get-split-packing-list',
method: 'post',
data
})
}

86
fe/PC/src/api/wms-interface.js

@ -0,0 +1,86 @@
// 接口监控看板相关api
import axios from 'axios'
import request from '@/utils/request'
let filter = 'get-page-list-by-filter'
let base_api = localStorage.getItem('interfaceBoardUrl')
let interfaceBoard_api = base_api + 'api/app/'
// 转义传参
const initParams = (data) => {
return {
skipCount:data.SkipCount,
maxResultCount:data.MaxResultCount,
sorting:data.Sorting
}
}
//外部数据转换
export function dataExchangeFromOut(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'outgoing-to-external',
params:initParams(data)
})
}
//归档外部数据转换
export function dataExchangeFromOut_file(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'archived-outgoing-to-external',
params:initParams(data)
})
}
//wms数据接收
export function comingToWms(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'incoming-to-wms',
params:initParams(data)
})
}
//归档wms数据接收
export function comingToWms_file(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'archived-incoming-to-wms',
params:initParams(data)
})
}
//wms数据转换
export function dataExchangeFromWms(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'data-exchange_Outgoing-from-wms',
params:initParams(data)
})
}
// 归档wms数据转换
export function dataExchangeFromWms_file(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'data-exchange_Archived-outgoing-from-wms',
params:initParams(data)
})
}
//外部数据接收
export function comingFromOut(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'data-exchange_Incoming-from-external',
params:initParams(data)
})
}
//归档外部数据接收
export function comingFromOut_file(data) {
return axios({
method:'get',
url: interfaceBoard_api + 'data-exchange_Archived-incoming-from-external',
params:initParams(data)
})
}

9
fe/PC/src/api/wms-job.js

@ -1,6 +1,7 @@
import request from '@/utils/request'
// let baseURL = process.env.VUE_APP_BASE_API + '/'
let baseURL = localStorage.getItem('base') + '/api/'
let baseDirectURL = localStorage.getItem('base_direct') + '/api/'
//分页+筛选
export function getPageList(data, url) {
return request({
@ -167,10 +168,10 @@ export function InspectJobHandle(data, params, url) {
// }
//人工发料任务 | 自动发料任务
export function materialRequestByType(data, url, params) {
export function materialRequestByType(data, url, params,includeDetails) {
let _type = params.type?params.type:params.requestType
return request({
url: baseURL + url + '/' + _type,
url: baseURL + url + '/' + _type + '?includeDetails=' + (includeDetails || false),
method: 'post',
params: params,
data
@ -199,9 +200,9 @@ export function preparationPlanByNumber(params) {
//质检——完成质检
export function completeSummaryDetailStatus(params, data) {
return request({
url: baseURL + 'wms/store/inspect-job/complete-summary-detail-status/' + params.id,
url: baseDirectURL + 'wms/store/inspect-job/complete-summary-detail-status/' + params.id,
method: 'post',
params: params,
params: {summaryDetailId:params.summaryDetailId},
data
})
}

5
fe/PC/src/components/News/index.vue

@ -12,6 +12,7 @@
<script>
import { userNotifyNotReadList, userNotifyHasRead, userNotifyMessageNotReadList, userNotifyMessageUpdate, notifyMessage, getPageList } from "@/api/wms-api"
import dialogIndex from "@/components/News/dialogIndex"
import { updateVersion } from '@/utils/upDateVersion'
export default {
name: 'News',
data() {
@ -27,12 +28,16 @@ export default {
this.userId = this.$store.getters.name.id
this.getNoReadCount(this.userId)
this.getSetInterval()
//
updateVersion()
},
methods: {
getSetInterval() {
let that = this
setInterval(function () {
that.getNoReadCount(that.userId)
//
updateVersion()
},120000)
},
getNoReadCount(userId) {

105
fe/PC/src/components/StepsCountPlanForm/index.vue

@ -39,10 +39,13 @@
>
</curren-Form>
<!-- 库位参数 -->
<!-- 搜索按钮窗体组件 -->
<!-- 搜索按钮窗体组件LocationForPADPlan -->
<searchPage
v-if="active == 1"
@sxBtnClickHandle="sxBtnClickHandle"
ref="searchTable"
:tableLoading="tableLoading"
:filterActionOptions="filterActionOptions"
:advancedFilter="advancedFilter(
'basedata/location',
pageListLocation,
@ -50,14 +53,15 @@
'locationData',
oldSkipCountLocation
)"
:setUTableHeight="330"
:setUTableHeight="355"
:filterPageListParams="[]"
:formTitle="''"
:displayDialog="active == 1"
:selectionTable="false"
:editHandle="editHandle"
:buttonsAllIsRight="true"
:searchTableData="locationData"
:searchTableColumns="$isTableColumns.Location"
:searchTableColumns="initSearchPageTableColums()"
:searchTotalCount="totalCountLocation"
:supplierItemPage="pageListLocation"
@SizeChange="AddNewAlterResultCount(
@ -78,6 +82,7 @@
)"
@tableButtonClick="addFormData(arguments)"
></searchPage>
<!-- @filterBtnClickHandle="filterBtnClickHandle" -->
<!-- 其他参数 -->
<curren-Form
v-loading="loading"
@ -377,12 +382,38 @@ export default {
{ label: "取消", name: "cancel" },
{ label: "下一步", type: "primary", name: "determine" },
],
filterActionOptions:[{
value: '==',
label: '等于'
}, {
value: '!=',
label: '不等于'
}],
// (codevalue)
filterOptionCopyForMutiple:[],
//
filterCodeExclude:'INSPECT,HOLD,TRANSFERONTHEWAY',
};
},
mounted() {
this.session = JSON.parse(JSON.stringify(this.CreateFormData));
},
methods: {
// pda线
initSearchPageTableColums(){
// let _list = JSON.parse(JSON.stringify(this.$isTableColumns.Location));
let _list = JSON.parse(JSON.stringify(this.$isTableColumns.CountPlanByAddLocation));
_list.forEach(item => {
// pda 使 locationTypeForPADPlan 线
// Excel 使 locationTypeForExcelPlan
if(item.prop == 'type'){
// todo:
item.filters = this.CreateFormData.requestType == 2 ? 'locationTypeForPADPlan' : 'locationTypeForExcelPlan'
// item.filters = this.CreateFormData.requestType == 2 ? 'locationTypeForPADPlan' : 'locationType'
}
});
return _list
},
//退
close(val) {
this.active = 0;
@ -409,20 +440,65 @@ export default {
detailsDataPush(val) {
this.$emit("detailsDataPush", val);
},
// 20230704
sxBtnClickHandle(data){
// code 20230705
this.$refs.searchTable.setScreenDataFilters(this.filterOptionCopyForMutiple)
},
//
advancedFilter(url, list, TotalCount, data, oldSkipCount) {
return () => {
// 线 20230417
if (data == 'locationData') {
list.condition.filters.push({
action: "!=",
column: "type",
logic: "And",
value: "5"
})
}
list.SkipCount = (oldSkipCount - 1) * list.MaxResultCount;
this.tableLoading = true;
// 线 20230703
// Excel(this.CreateFormData.requestType == 1)2
// Excel(this.CreateFormData.requestType != 1)线5
// todo://
let type_value = this.CreateFormData.requestType == 1 ? '2' : '5'
// let type_value = this.CreateFormData.requestType == 1 ? null : '5'
let _filter = {
action: "!=",
column: "type",
logic: "And",
value: type_value,
hide:true
}
//
let _filter_code = {
action: "!=",
column: "code",
logic: "And",
value: this.filterCodeExclude,
hide: true
}
if(this.pageListLocation.condition.filters.length <= 0){
if(type_value)this.pageListLocation.condition.filters.push(_filter)
this.pageListLocation.condition.filters.push(_filter_code)
}
// code 20230705
this.filterOptionCopyForMutiple = JSON.parse(JSON.stringify(list.condition.filters))
let _filters = []
// code
this.filterOptionCopyForMutiple.forEach((option)=>{
if(option.column == 'code'){
option.value.split(',').forEach((val,val_index)=>{
// != (And) == Or
let _logic = val_index == 0 ? option.logic : (option.action == '!=' ? 'And' : 'Or')
if((val || val == 0) && val.length > 0){
let _item = {
action: option.action,
column: option.column,
logic: _logic,
value: val,
}
_filters.push(_item)
}
})
}else{
_filters.push(option)
}
})
list.condition.filters = _filters
getPageList(list, url)
.then((res) => {
this[data] = res.items;
@ -549,6 +625,7 @@ export default {
if (valid) {
//
if (this.active == 0) {
this.pageListLocation.condition.filters = []
const Function = this.advancedFilter(
// "basedata/item-basic",
// this.pageListItemBasic,
@ -592,6 +669,10 @@ export default {
this.otherFormData.vendCondition = {
filters:[]
}
if(this.otherFormData.statusList.length <= 0){
this.$warningMsg("请选择状态");
return
}
this.loading = true;
// this.otherFormData.requestType = 2
this.splitFormData(this.otherFormData).then(

4
fe/PC/src/components/commonTabel-drawer/index.vue

@ -377,8 +377,8 @@ export default {
alertoldSkipCountDetails (val) {
this.$emit('alertoldSkipCountDetails', val)
},
buttonClick(row) {
this.$emit("buttonClick", row);
buttonClick(row, index, label,item) {
this.$emit("buttonClick", row, index, label,item);
},
// tabs
handleClick (val) {

13
fe/PC/src/components/conditionFilters/index.vue

@ -36,6 +36,7 @@
placeholder="请选择筛选对象"
:disabled="item.hide"
:filterable="true"
@change="filterColumnChange(item)"
>
<el-option
v-for="(item, index) in tableColumnsOptions(tableColumns)"
@ -99,6 +100,7 @@
]()"
:key="item.value"
:label="item.label"
:disabled="item.disabled"
:value="
typeof item.value == 'string'
? item.value
@ -197,6 +199,11 @@ export default {
return true
}
},
// ///
filterActionOptions:{
type: Array,
default: null
}
// //
// editHandle: {
// type: Array,
@ -288,8 +295,14 @@ created() {
},
mounted() {
if(this.filterActionOptions)this.options.action = this.filterActionOptions
},
methods: {
//
filterColumnChange(item){
// value
item.value = ""
},
tableColumnsOptions(val) {
const data = JSON.parse(JSON.stringify(val));
let num = 0

9
fe/PC/src/components/currenButton/index.vue

@ -40,6 +40,11 @@ export default {
type: Object,
default: null
},
//
buttonsAllIsRight:{
type: Boolean,
default: false
}
},
data () {
return {
@ -55,6 +60,10 @@ export default {
initButtonsData(){
this.buttonsLeft = []
this.buttonsRight = []
if(this.buttonsAllIsRight){
this.buttonsRight = this.Butttondata
return
}
this.Butttondata.forEach(item=>{
if(item.float && item.float == 'right'){
this.buttonsRight.push(item)

4
fe/PC/src/components/currenButton/innerButton.vue

@ -33,7 +33,9 @@ export default {
},
mounted(){
window.addEventListener('setItemEvent', (item) => {
this.initButtonType(item)
if (item.key.indexOf('tableColumns') > -1) {
this.initButtonType(item)
}
})
},
methods:{

2
fe/PC/src/components/currenDescriptions/index.vue

@ -52,7 +52,7 @@
></el-input>
</template>
</span>
<span v-else>{{ propsData[item.prop] }}</span>
<span v-else>{{ propsData[item.prop] ? propsData[item.prop] + "" : propsData[item.prop] }}</span>
</el-descriptions-item>
</template>
<el-descriptions-item

3
fe/PC/src/components/currenForm/index.vue

@ -216,7 +216,7 @@
>
<el-option
v-for="(op, index) in selectOptions(item.options) ||
searchOptions['options']"
item.searchOptions"
:label="op[item.optionsLabel] || op.label"
:value="op[item.optionsValue] || op.value"
:key="index"
@ -811,6 +811,7 @@ export default {
} else {
this.searchData[item.prop].push(val);
}
this.$emit('changeUpload',val,item)
},
uploadListView() {
this.$emit('uploadListView')

3
fe/PC/src/components/currenTable/index.vue

@ -242,8 +242,9 @@
</el-form-item>
<!-- table表添加按钮事件 v-show="scope.row.number == 'PRJ202210060001'" -->
<el-form-item v-if="item.type == 'button'" >
<!-- v-show="scope.row[item.prop]==undefined?true:false" -->
<el-button
v-show="scope.row[item.prop]==undefined?true:false"
v-show="item.alwaysShow ? true : ((scope.row[item.prop]==undefined || scope.row[item.prop] == '' || !scope.row[item.prop])?false:true)"
type="primary"
size="mini"
@click="buttonClick(scope.row, scope.$index, item.label)"

7
fe/PC/src/components/importFile/index.vue

@ -23,8 +23,8 @@
<div class="body_header">
<span> </span>
<el-radio-group v-model="method" >
<el-radio label="0" :disabled="disabledMethod.method1">更新式</el-radio>
<el-radio label="1" :disabled="disabledMethod.method2">追加式</el-radio>
<el-radio label="0" :disabled="disabledMethod.method1">更新式</el-radio>
<el-radio label="2" :disabled="disabledMethod.method3">覆盖式</el-radio>
</el-radio-group>
</div>
@ -125,7 +125,8 @@ export default {
}
},
methodValue:{
type: String
type: String,
default:'1'
},
isAllowPartImportValue:{
type: String
@ -143,7 +144,7 @@ export default {
tableMaxHeight:null,
//
submitDataLS: null,
method: '0',
method: '1',
isAllowPartImport: '1',
editHandle: [
{ label: "取消", name: "cancel" },

45
fe/PC/src/components/pdf/index.vue

@ -1,13 +1,14 @@
<template>
<el-dialog
:title="title"
:v-loading="loadingPDF"
:visible.sync="isShowPDF"
:modal-append-to-body="false"
:visible="isShowPDF"
:modal-append-to-body="true"
:append-to-body="true"
:close-on-click-modal="true"
@close="close"
top="1vh"
>
<div>
<div v-loading="loadingPDF">
<el-button-group>
<el-button type="primary" icon="el-icon-arrow-left" size="mini" @click="prePage">上一页</el-button>
<el-button type="primary" size="mini" @click="nextPage">下一页<i class="el-icon-arrow-right el-icon--right"></i></el-button>
@ -21,6 +22,7 @@
></pdf>
</div>
<span slot="footer" class="dialog-footer">
<el-button v-if="showDownLoad && !loadingPDF" type="success" @click="downLoad"> </el-button>
<el-button @click="close"> </el-button>
</span>
</el-dialog>
@ -43,14 +45,25 @@ export default {
}
},
props: {
// data:application/pdf;base64,
urlPDF: {
type: String,
default: '',
},
// base64data:application/pdf;base64,
base64PDF:{
type: String,
default: '',
},
title: {
type: String,
default: '',
},
//
showDownLoad: {
type: Boolean,
default: false
},
isShowPDF: {
type: Boolean,
default: false
@ -75,6 +88,30 @@ export default {
},
close(){
this.$emit('closePDF')
},
// base64
base64ToArrayBuffer (base64) {
var binaryString = window.atob(base64)
var binaryLen = binaryString.length
var bytes = new Uint8Array(binaryLen)
for (var i = 0; i < binaryLen; i++) {
var ascii = binaryString.charCodeAt(i)
bytes[i] = ascii
}
return bytes
},
downLoad(){
console.log(this.base64PDF)
let byte = this.base64ToArrayBuffer(this.base64PDF)
const link = document.createElement('a') // a
const blob = new Blob([byte], {
type: 'application/vnd.ms-excel;charset=utf-8',
}) // response
const objectUrl = URL.createObjectURL(blob)
link.href = objectUrl
link.download = this.title
link.click() //
URL.revokeObjectURL(objectUrl)
}
}
}

2
fe/PC/src/components/searchOverall/style/index.scss

@ -1,7 +1,7 @@
.searchOverallComponent{
height: 0;
transition:all 0.5s;
z-index: 1;
z-index: 2;
overflow: hidden;
.border-outer{

19
fe/PC/src/components/searchPage/index.vue

@ -38,6 +38,7 @@
></pagination>
<div class="formButton">
<currenButton
:buttonsAllIsRight="buttonsAllIsRight"
:Butttondata="editHandle"
@tableButtonClick="tableButtonClick"
></currenButton>
@ -52,6 +53,7 @@
@screenFormClick="screenFormClick"
@screenDelete="screenDelete"
@screenPush="screenPush"
:filterActionOptions="filterActionOptions"
></conditionFilters>
</div>
</el-dialog>
@ -80,6 +82,11 @@ export default {
return 220;
}
},
//
buttonsAllIsRight:{
type: Boolean,
default: false
},
//
formTitle: {
type: String,
@ -133,6 +140,11 @@ export default {
type: Boolean,
default: false
},
// ///
filterActionOptions:{
type: Array,
default: null
},
//
advancedFilter: {
type: Function,
@ -214,8 +226,13 @@ export default {
}]
this.screenData.filters = data
}
this.$emit('sxBtnClickHandle',this.screenData.filters)
this.modal = true
},
// this.screenData.filters
setScreenDataFilters (data){
this.screenData.filters = data
},
//
screenFormClick (val) {
let filter = JSON.parse(JSON.stringify(this.filterPageListParams))
@ -235,7 +252,7 @@ export default {
if (valid) {
this.supplierItemPage.condition.filters = []
this.screenData.filters.forEach((element, index) => {
delete element.hide
// delete element.hide //todo:514-519
this.supplierItemPage.condition.filters.push(element)
})
this.dialog.screenDialog = false;

20
fe/PC/src/components/tablePagination/index.vue

@ -45,13 +45,15 @@
:tableColumns="tableColumns | isTableColumns"
:isShowIndex="isShowIndex"
:selectionTable="tableSelection"
:setUTableHeight="uTableTopHeight"
:setUTableHeight="setUTableHeight || uTableTopHeight"
@sortChange="sortChange"
@handleSelectionChange="handleSelectionChange"
@inlineDialog="inlineDialog"
@buttonOperationClick="buttonOperationClick"
:tableBorder="true"
:firstFixed="true"
:cellStyle = "cellStyle"
:showOverflowTooltip="showOverflowTooltip"
>
<template>
<slot></slot>
@ -83,6 +85,16 @@ export default {
rowDrop
},
props: {
// app-main100%
setUTableHeight: {
type: Number,
default: null
},
//
showOverflowTooltip:{
type: Boolean,
default: true,
},
//
quicklySearchOption:{
type: Object,
@ -170,6 +182,12 @@ export default {
httpOverallSearchData:{
type: Object,
default: null
},
cellStyle: {
type: Function,
default: () => {
return Function;
}
}
},
data () {

182
fe/PC/src/components/umyTable/index.vue

@ -2,21 +2,22 @@
<!-- 解决el-table 数据量过大导致卡顿现象 -->
<u-table
:id="_uid"
:key="isUpdate"
v-loading="tableLoading"
element-loading-text="拼命加载中..."
@sort-change="sortChange"
@selection-change="handleSelectionChange"
ref="multipleTable"
:data="tableData"
:height="uTableHeight"
:row-key="rowKey"
:border="tableBorder"
style="width: 100%"
:cell-style="cellStyle"
use-virtual
:key="isUpdate"
:row-height="50"
:height="uTableHeight"
header-row-class-name="uTableHeader"
use-virtual
:cell-class-name="cellClassName"
>
<!-- :tree-props="treeProps" height 不能共存 此组件暂不支持tree的格式-->
<u-table-column v-if="selectionTable" fixed="left" type="selection" :reserve-selection="true" />
@ -27,10 +28,10 @@
:prop="item.showProp ? item.prop + '.' + item.showProp : item.prop"
:sortable="item.sortable"
:fixed="setItemFixed(item,index)"
:show-overflow-tooltip="true"
:show-overflow-tooltip="showOverflowTooltip"
:width="item.width"
:align="item.tableAlign"
:header-align="item.tableHeaderAlign"
:align="item.tableAlign || tableAlign"
:header-align="item.tableHeaderAlign || tableHeaderAlign"
v-if="item.istrue==null?true:item.istrue"
>
<template #header>
@ -248,13 +249,14 @@
</el-form-item>
<!-- table表添加按钮事件 v-show="scope.row.number == 'PRJ202210060001'" -->
<!-- <el-form-item v-if="item.type == 'button'" > -->
<!-- v-show="scope.row[item.prop]==undefined?true:false" -->
<div v-if="item.type == 'button'">
<el-button
v-show="scope.row[item.prop]==undefined?true:false"
v-show="item.alwaysShow ? true : ((scope.row[item.prop]==undefined || scope.row[item.prop] == '' || !scope.row[item.prop])?false:true)"
type="primary"
size="mini"
@click="buttonClick(scope.row, scope.$index, item.label)"
>{{item.label}}</el-button>
@click="buttonClick(scope.row, scope.$index, item.label,item)"
>{{item.buttonName || item.label}}</el-button>
</div>
<!-- </el-form-item> -->
@ -306,17 +308,88 @@
<span v-else-if="item.type == 'filterList'" >
{{ scope.row[item.prop] | triggerList(item.filters, "label") }}
</span>
<!-- 可点出详情 -->
<span
v-if="item.type == 'showDetail'"
@click="showDetailInfo(scope.row[item.prop])"
style="cursor: pointer;"
:title="'点击查看详情'"
:class="{ showDetailHover: item.type == 'showDetail' }"
>{{ scope.row[item.prop] ? scope.row[item.prop] + "" : scope.row[item.prop] }}</span>
<!-- 可点出json转换的table弹窗 -->
<span
v-if="item.type == 'showJsonTable'"
@click="showJsonTable(scope.row[item.prop])"
style="cursor: pointer;"
:title="'点击查看详情'"
:class="{ showDetailHover: item.type == 'showJsonTable' }"
>{{ scope.row[item.prop] ? scope.row[item.prop] + "" : scope.row[item.prop] }}</span>
<span
v-if="item.type == 'name' || !item.type"
@click="item.type == 'name' && inlineDialog(scope.row)"
:class="{ spamHover: item.type == 'name' }"
>{{ scope.row[item.prop] }}</span
>
</el-form>
>{{ scope.row[item.prop] ? scope.row[item.prop] + "" : scope.row[item.prop] }}</span>
</el-form>
</template>
</u-table-column>
</template>
<slot></slot>
<!-- 点开查看全部弹窗 -->
<el-dialog
:visible.sync="showDetailDialog"
width="35%"
:modal-append-to-body="false"
:append-to-body="true"
:show-close="true"
:title="'内容详情'"
>
{{ showDetailData ? showDetailData + "" : showDetailData }}
</el-dialog>
<!-- 点开查看Json转换后table弹窗 -->
<el-dialog
:visible.sync="showJsonDialog"
:modal-append-to-body="false"
:append-to-body="true"
:show-close="true"
:close-on-click-modal="true"
:close-on-press-escape="true"
:title="'内容详情'"
>
<el-table
:data="showJsonData"
:border="true"
style="width: 100%">
<el-table-column
prop="name"
width="220"
label="属性">
</el-table-column>
<el-table-column
label="值"
>
<template slot-scope="scope">
<span v-if="scope.row.name != 'Details'">{{scope.row.value}}</span>
<el-table
v-else
height="300"
:data="scope.row.value"
:border="true"
style="width: 100%">
<el-table-column
prop="name"
label="子属性"
></el-table-column>
<el-table-column
label="子值"
prop="value"
></el-table-column>
</el-table>
</template>
</el-table-column>
</el-table>
</el-dialog>
</u-table>
</template>
<script>
@ -334,11 +407,24 @@ export default {
},
},
props: {
//
showOverflowTooltip:{
type: Boolean,
default: true,
},
// tableborder
tableBorder: {
type: Boolean,
default: false,
},
tableAlign:{
type: String,
default: 'left',
},
tableHeaderAlign:{
type: String,
default: 'left',
},
// itemfixed
firstFixed: {
type: Boolean,
@ -407,6 +493,12 @@ export default {
return Function;
}
},
cellClassName: {
type: Function,
default: () => {
return Function;
}
},
// app-main100%
setUTableHeight: {
type: Number,
@ -421,6 +513,10 @@ export default {
selectLoading: false,
random: '',
uTableHeight:null,//
showDetailDialog:false,//
showDetailData:null,//
showJsonDialog:false,//Jsontable
showJsonData:null,//Json
};
},
computed: {
@ -487,7 +583,7 @@ export default {
},
setItemFixed(item,index){
let _re = false
if(this.firstFixed){
if(this.firstFixed && item.fixed == 'left'){
if(index == 0)_re = true
}else{
_re = item.fixed
@ -686,9 +782,57 @@ export default {
inlineDialog(row) {
this.$emit("inlineDialog", row);
},
//
showDetailInfo(row) {
this.showDetailDialog = true
this.showDetailData = row
this.$emit("showDetailInfo", row);
},
// jsontable
showJsonTable(row){
this.showJsonDialog = true
let _json = eval('(' + row + ')')
let _arr = []
let __initJson = (data) => {
let _init = []
for(let item in data){
_init.push({name:item,value:data[item]})
}
return _init
}
for(let item in _json){
//
if(!_json[item]){
_arr.push({name:item,value:_json[item]})
}else if(_json[item] && typeof _json[item] != 'object'){
_arr.push({name:item,value:_json[item] + ""})
}else{
//
if(Array.isArray(_json[item])){
// Details
let _value = item == 'Details' ? __initJson(_json[item][0]) : (_json[item]).join(",")
_arr.push({name:item,value:_value})
}
//
else{
let _obj_arr = __initJson(_json[item])
//
if(_obj_arr.length > 0){
_arr = [..._obj_arr]
}else{
//
_arr.push({name:item,value:""})
}
}
}
console.log(7983,_arr)
}
this.showJsonData = _arr
this.$emit("showJsonTable", row);
},
//
buttonClick(row, index, label) {
this.$emit("buttonClick", row, index, label);
buttonClick(row, index, label,item) {
this.$emit("buttonClick", row, index, label,item);
},
//table
buttonOperationClick(row, label) {
@ -746,6 +890,9 @@ export default {
border-bottom: 1px solid #409eff;
color: blue;
}
.showDetailHover:hover{
color: #409eff;
}
span {
white-space: pre;
}
@ -766,4 +913,9 @@ span {
.u-table::before {
height: 0px;
}
.u-table{
td{
height: 50px;
}
}
</style>

13
fe/PC/src/filters/excelOrReportsOption.js

@ -30,13 +30,13 @@ export const supplierAsnExcel = {
const reportsUrl = localStorage.getItem('reportsUrl')
// 报表文件地址
export const reportsAddress = {
PurchaseReceiptSummary:reportsUrl + '202211300914188516.rdlx',//采购收货汇总
PurchaseReceiptSummary:reportsUrl + '202211300914188516.rdlx',//供应商发货报
Inventory_Detail:reportsUrl + '202211291142233052.rdlx',//库存账龄明细
InventoryAccountingPeriodDetails:reportsUrl + '202211300913580741.rdlx',//库存单据明细报表
FinishedProductDeliverySummary:reportsUrl + '202211300920074461.rdlx',//成品发货汇总表
CompletionReceiptSummary:reportsUrl + '202211300919413598.rdlx',//完工收货汇总表
UnPlannedReceiptSummary:reportsUrl + '202211300921294414.rdlx',//计划外入库汇总
UnplannedDeliverSummary:reportsUrl + '202211300921505958.rdlx',//计划外出库汇总
UnPlannedReceiptSummary:reportsUrl + '202211300921294414.rdlx',//非生产退料汇总(原计划外入库汇总
UnplannedDeliverSummary:reportsUrl + '202211300921505958.rdlx',//非生产领料汇总(原计划外出库汇总
Scrap_Detail:reportsUrl + '202211300912414755.rdlx',//报废明细表
PurchaseSum:reportsUrl + '202211300913268367.rdlx',//订单汇总查询
PurchaseReturnSummary:reportsUrl + '202211300925599696.rdlx',//采购退货汇总
@ -47,6 +47,9 @@ export const reportsAddress = {
InventoryAgingSegmentSummary:reportsUrl + '202211300912101560.rdlx',//库存账龄分段汇总表
InventoryBookDetail:reportsUrl + '202212162111466911.rdlx',//库存流水帐明细
InventoryBookSummary:reportsUrl + '202212162112124488.rdlx',//库存流水帐汇总
// 缺少:
// 安全库存
inventoryBalanceReportLocationCode:reportsUrl + '202211300922434082.rdlx',//库存余额报表按库位
inventoryBalanceReportLocationErpCode:reportsUrl + '202211300922434083.rdlx',//库存余额报表按ERP库位
InventoryBookSummaryLocation:reportsUrl + '202212162112124489.rdlx',//库存流水帐汇总(库位)
InventoryBookSummaryERP_pay:reportsUrl + '库存流水帐汇总ERP.rdlx',//库存流水帐汇总(ERP储位)-账期
InventoryBookSummaryWMS_pay:reportsUrl + '库存流水账汇总库位.rdlx',//库存流水账汇总(WMS库位)-账期
}

245
fe/PC/src/filters/status.js

@ -14,12 +14,12 @@ import store from '@/store/index'
1: {
label: "新增",
value: 1,
background:"#5A7CF3",
background:"#45B5F3",
},
2: {
label: "待审批",//审批中
value: 2,
background:"#F2B92A",
background:"#E49826",
},
3: {
label: "已驳回",
@ -29,12 +29,12 @@ import store from '@/store/index'
4: {
label: "待执行",//已同意
value: 4,
background:"#4770FF",
background:"#F4CD00",
},
5: {
label: "执行中",
value: 5,
background:"#44CB6A"
background:"#5A7CF3"
},
6: {
label: "已完成",
@ -54,7 +54,7 @@ import store from '@/store/index'
9: {
label: "部分完成",
value: 9,
background:"#16CDD9"
background:"#21DF4B"
},
}
return Enum(status, index, prop)
@ -671,11 +671,11 @@ export function CountPanCompleteType(index, prop){
value:1
},
2:{
label:"按照盘点数量为0处理",
label:"未盘点到的按照盘点数量为0处理",
value:2
},
3:{
label:"按照盘平计算",
label:"未盘点到的按照盘平计算",
value:3
},
}
@ -871,7 +871,7 @@ export function TransSubType(index, prop) {
}
return Enum(type, index, prop)
}
//库位类型
//库位类型 注意!!!更改时候将 locationTypeForPADPlan 和 locationTypeForExcelPlan同步更改
/**
*
* @param {Boolean}
@ -947,6 +947,163 @@ export function locationType(index, prop) {
}
return Enum(type, index, prop)
}
//库位类型-pad类型盘点(盘点新增选择计划第二步骤的库位列表高级筛选的使用)
// 区别于【locationType】:线边库位为不可选择
/**
*
* @param {Boolean}
* @returns {object}
*/
export function locationTypeForPADPlan(index, prop) {
let type = {
1: {
label: "待检库位",
value: 1,
UK: 'INSP'
},
2: {
label: "原材料库位",
value: 2,
UK: 'RAW'
},
3: {
label: "半成品库位",
value: 3,
UK: 'SEMI'
},
4: {
label: "成品库位",
value: 4,
UK: 'FG'
},
5: {
label: "线边库位",
value: 5,
UK: 'WIP',
disabled:true
},
6: {
label: "隔离库位",
value: 6,
UK: 'HOLD'
},
7: {
label: "报废库位",
value: 7,
UK: 'SCRAP'
},
8: {
label: "不合格品库位",
value: 8,
UK: 'NOC'
},
9: {
label: "溢出库位",
value: 9,
UK: 'OVERFLOW'
},
10: {
label: "客户库位",
value: 10,
UK: 'CUST'
},
11: {
label: "外库位",
value: 11,
UK: 'OUTSIDE'
},
12: {
label: "盘点差异库位",
value: 12,
UK: 'DIFF'
},
13: {
label: "在途库位",
value: 13,
UK: 'TRANSPORT'
}
}
return Enum(type, index, prop)
}
//库位类型-Excel类型盘点(盘点新增选择计划第二步骤的库位列表高级筛选的使用)
// 区别于【locationType】:原材料库位为不可选择
/**
*
* @param {Boolean}
* @returns {object}
*/
export function locationTypeForExcelPlan(index, prop) {
let type = {
1: {
label: "待检库位",
value: 1,
UK: 'INSP'
},
2: {
label: "原材料库位",
value: 2,
UK: 'RAW',
disabled:true
},
3: {
label: "半成品库位",
value: 3,
UK: 'SEMI'
},
4: {
label: "成品库位",
value: 4,
UK: 'FG'
},
5: {
label: "线边库位",
value: 5,
UK: 'WIP',
},
6: {
label: "隔离库位",
value: 6,
UK: 'HOLD'
},
7: {
label: "报废库位",
value: 7,
UK: 'SCRAP'
},
8: {
label: "不合格品库位",
value: 8,
UK: 'NOC'
},
9: {
label: "溢出库位",
value: 9,
UK: 'OVERFLOW'
},
10: {
label: "客户库位",
value: 10,
UK: 'CUST'
},
11: {
label: "外库位",
value: 11,
UK: 'OUTSIDE'
},
12: {
label: "盘点差异库位",
value: 12,
UK: 'DIFF'
},
13: {
label: "在途库位",
value: 13,
UK: 'TRANSPORT'
}
}
return Enum(type, index, prop)
}
//库位类型
/**
*
@ -1584,20 +1741,20 @@ export function SupplierAsnCtypeStaBack(name){
*/
export function ItemTypeBasic(index, prop) {
let type = {
'成品': {
value: '成品',
'10C01': {
value: '10C01',
label: '成品',
},
'原料': {
value: '原料',
'10C02': {
value: '10C02',
label: '原料',
},
'物品': {
value: '物品',
label: '物',
'10C03': {
value: '10C03',
label: '物',
},
'半成品': {
value: '半成品',
'10C04': {
value: '10C04',
label: '半成品',
},
}
@ -1643,6 +1800,7 @@ export function SupplierAsnCtypeStaBack(name){
// 事务类型(string类型,基础数据-文档信息维护)
// InventoryTransaction页面需求暂时去掉 结算出库、客户ASN、隔离 (20230602)更改时候确定一下此业务
/**
*
* @param {Boolean}
@ -1698,14 +1856,14 @@ export function SupplierAsnCtypeStaBack(name){
value: '24',
label: '客户退货'
},
'25': {
value: '25',
label: '结算出库'
},
'26': {
value: '26',
label: '客户ASN'
},
// '25': {
// value: '25',
// label: '结算出库'
// },
// '26': {
// value: '26',
// label: '客户ASN'
// },
'31': {
value: '31',
label: '库内转移'
@ -1722,10 +1880,10 @@ export function SupplierAsnCtypeStaBack(name){
value: '34',
label: '计划外出库'
},
'35': {
value: '35',
label: '隔离'
},
// '35': {
// value: '35',
// label: '隔离'
// },
'36': {
value: '36',
label: '报废'
@ -1751,6 +1909,7 @@ export function SupplierAsnCtypeStaBack(name){
}
// 事务类型 (修改枚举时候把【TransTypeBaseForStr】也修改了)
// InventoryTransaction页面需求暂时去掉 结算出库、客户ASN、隔离 (20230602)更改时候确定一下此业务
/**
*
* @param {Boolean}
@ -1806,14 +1965,14 @@ export function SupplierAsnCtypeStaBack(name){
value: 24,
label: '客户退货'
},
25: {
value: 25,
label: '结算出库'
},
26: {
value: 26,
label: '客户ASN'
},
// 25: {
// value: 25,
// label: '结算出库'
// },
// 26: {
// value: 26,
// label: '客户ASN'
// },
31: {
value: 31,
label: '库内转移'
@ -1830,10 +1989,10 @@ export function SupplierAsnCtypeStaBack(name){
value: 34,
label: '计划外出库'
},
35: {
value: 35,
label: '隔离'
},
// 35: {
// value: 35,
// label: '隔离'
// },
36: {
value: 36,
label: '报废'
@ -1895,6 +2054,10 @@ export function SupplierAsnCtypeStaBack(name){
value: 3104,
label: '线边调拨'
},
1505: {
value: 1505,
label: '非生产调拨'
},
3105: {
value: 3105,
label: '客户库位调拨'

56
fe/PC/src/lang/index.js

@ -0,0 +1,56 @@
import Vue from 'vue'
import VueI18n from 'vue-i18n'
import Cookies from 'js-cookie'
// import elementEnLocale from 'element-ui/lib/locale/lang/en' // element-ui lang
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'// element-ui lang
// import elementEsLocale from 'element-ui/lib/locale/lang/es'// element-ui lang
// import elementJaLocale from 'element-ui/lib/locale/lang/ja'// element-ui lang
// import enLocale from './en'
import zhLocale from './zh'
// import esLocale from './es'
// import jaLocale from './ja'
Vue.use(VueI18n)
const messages = {
// en: {
// ...enLocale,
// ...elementEnLocale
// },
zh: {
...zhLocale,
...elementZhLocale
},
// es: {
// ...esLocale,
// ...elementEsLocale
// },
// ja: {
// ...jaLocale,
// ...elementJaLocale
// }
}
export function getLanguage() {
const chooseLanguage = Cookies.get('language')
if (chooseLanguage) return chooseLanguage
// if has not choose language
const language = (navigator.language || navigator.browserLanguage).toLowerCase()
const locales = Object.keys(messages)
for (const locale of locales) {
if (language.indexOf(locale) > -1) {
return locale
}
}
//return 'en'
return 'zh'
}
const i18n = new VueI18n({
// set locale
// options: en | zh | es
locale: getLanguage(),
// set locale messages
messages
})
export default i18n

117
fe/PC/src/lang/zh.js

@ -0,0 +1,117 @@
export default {
// 字段通用
ColumsPublic:{
id:'ID',
remark:'备注',
description:'描述',
status:'状态',
type:'类型',
creationTime:'创建时间',
creatorId:'创建者ID',
lastModificationTime:'上次修改时间',
lastModifierId:'上次修改者ID',
beginTime:'开始时间',
endTime:'结束时间',
operation:'操作',
},
// 所有字段(除了接口监控看板)
ColumsNames:{
itemCode:'物品代码',
itemName:'物品名称',
itemDesc1:'物品描述',
itemDesc2:'物品描述2',
abcClass:'ABC类',
canMake:'制造件',
canBuy:'采购件',
canOutsourcing:'外包件',
isRecycled:'回收件',
isPhantom:'是否虚拟物件',
productLine:'产品类',
elevel:'Elevel',
color:'颜色',
category:'种类',
group:'分组',
configuration:'配置',
basicUom:'基本计量单位',
stdPackQty:'标包数',
project:'项目',
version:'版本',
eco:'工程变革',
validity:'有效期',
validityUnit:'有效期单位',
manageType:'管理类型',
supplierCode:'供应商代码',
inspectType:'检验类型',
categoryCode:'分类代码',
categoryValue:'分类值',
packCode:'包装代码',
packName:'包装名称',
packType:'包装类型',
packQty:'包装数量',
packBasicUom:'包装计量单位',
ceilingQty:'数量上限',
floorQty:'数量下限',
isUsePercent:'使用百分比',
samplePercent:'抽检百分比',
sampleQty:'抽检数量',
productCode:'父物品号',
componentCode:'子物品号',
componentQty:'子物品用量',
componentUom:'子物品用量单位',
erpOp:'ERP工序',
mfgOp:'制造工序',
distributionType:'配送方式',
truncType:'取整方式',
plannedSplitRule:'计划拆分规则',
layer:'层级',
tenantId:'事务ID',
customerCode:'客户代码',
customerName:'客户名称',
customerShortName:'客户简称',
customerItemCode:'客户物品代码',
customerPackQty:'客户包装数量',
customerPackUom:'客户包装数量单位',
customerAdrName:'客户地址名称',
customerAdrCode:'客户地址代码',
contact:'联系人',
phone:'电话',
fax:'传真',
postID:'邮编',
address:'地址',
country:'国家',
city:'城市',
currency:'货币',
warehouseCode:'仓库',
locationCode:'库位代码',
projectCode:'项目代码',
projectName:'项目名称',
},
// 接口监控看板
ColumsDashboard:{
number:'编号',
dataType:'数据类型',
tableType:'数据表类型',
dataAction:'数据动作',
effectiveDate:'生效时间',
status:'数据状态',
dataIdentityCode:'数据识别码',
dataContent:'数据内容',
sourceSystem:'来源系统',
sourceDataId:'来源数据ID',
sourceDataGroupCode:'来源数据组码',
sourceDataDetailCode:'来源数据明细码',
sourceDataContent:'来源数据内容',
writeTime:'写入时间',
writer:'写入者',
destinationSystem:'目标系统',
destinationDataId:'目标数据ID',
destinationDataContent:'目标数据内容',
readTime:'读取时间',
reader:'读取者',
errorCode:'错误代码',
errorMessage:'错误信息',
retryTimes:'重试次数',
}
}

98
fe/PC/src/layout/components/AppMain.vue

@ -8,36 +8,99 @@
<!-- 不要缓存即切换tab页就刷新 -->
<router-view v-if="$route.meta.keepAlive" :key="key" />
</transition>
<!--iframe页-->
<!-- <component
v-for="item in hasOpenComponentsArr"
:key="item.path"
:is="item.name"
v-show="$route.path.indexOf(item.path) > -1"
></component> -->
</section>
</template>
<script>
// import Vue from 'vue'
import Bus from '../Bus.js';
export default {
name: "AppMain",
// data() {
// return {
// componentsArr: []
// }
// },
computed: {
cachedViews() {
return this.$store.state.tagsView.cachedViews;
},
key() {
return this.$route.fullPath;
}
},
// hasOpen:trueiframe
// hasOpenComponentsArr() {
// return this.componentsArr.filter(item => {
// return item.hasOpen
// });
// }
},
// watch: {
// $route() {
// // iframe
// this.isOpenIframePage();
// }
// },
mounted() {
// iframe
// setTimeout(() => {
// const componentsArr = this.getComponentsArr();
// componentsArr.forEach((item) => {
// Vue.component(item.name, item.component);
// });
// this.componentsArr = componentsArr;
// // iframe
// this.isOpenIframePage();
// }, 1000)
//
Bus.$on('removeCache', (name, view) => {
this.removeCache(name, view);
});
//
Bus.$on('removeRedirect', (name, view) => {
this.removeRedirect(name, view);
})
//
Bus.$on('removeRedirect', (name, view) => {
this.removeRedirect(name, view);
})
},
beforeDestroy() {
Bus.$off('removeCache');
Bus.$off('removeRedirect');
},
beforeDestroy() {
Bus.$off('removeCache');
Bus.$off('removeRedirect');
},
methods: {
// iframe -----------------start
// hasOpen
// isOpenIframePage() {
// const target = this.componentsArr.find(item => {
// return this.$route.path.indexOf(item.path) > -1
// });
// if (target && !target.hasOpen) {
// target.hasOpen = true;
// }
// },
// // iframeComponent
// getComponentsArr() {
// const activeReportManage = this.$store.getters.permission_routes.find(item => item.path == '/activeReportManage')
// console.log('permission_routes', this.$store.getters.permission_routes)
// console.log('activeReportManage', activeReportManage)
// const reportForm = activeReportManage.children.find(item => item.path == 'reportForm').children
// console.log('reportForm', reportForm)
// // const reportForm = this.$store.getters.permission_routes.find(item => item.path == '/activeReportManage').children.find(item => item.path == 'reportForm').children
// const iframeArr = []
// reportForm.forEach(item => {
// item.component = item.iframeComponent
// iframeArr.push(item)
// })
// return iframeArr
// },
// iframe -----------------end
// keep-aliveVnode
getVnode() {
//
@ -52,14 +115,14 @@ export default {
}
return vnode ? vnode : false;
},
//redirect
removeRedirect(view={}){
const viewNew = {
fullPath:`/redirect${view.fullPath}`,
path:`/redirect${view.path}`
}
this.removeCache('closeSelectedTag',viewNew);
},
//redirect
removeRedirect(view={}){
const viewNew = {
fullPath:`/redirect${view.fullPath}`,
path:`/redirect${view.path}`
}
this.removeCache('closeSelectedTag',viewNew);
},
// keep-alive
removeCache(name, view = {}) {
let vnode = this.getVnode();
@ -69,7 +132,6 @@ export default {
let keyStart = vnode.key.split('/')[0];
let thisKey = `${keyStart}${view.fullPath}`;
let regKey = `${keyStart}${view.path}`;
this[name]({ componentInstance, thisKey, regKey });
},
//

2
fe/PC/src/layout/components/Sidebar/SidebarItem.vue

@ -5,7 +5,7 @@
<app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path)">
<el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
<!-- 系统首页为最后一层且带图标 -->
<item v-if="onlyOneChild.meta.title == '系统首页'" :isSkip="item.meta && item.meta.roles == 'skip'" :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
<item v-if="onlyOneChild.meta.outerFirst" :isSkip="item.meta && item.meta.roles == 'skip'" :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
<!-- 是二级也是最后一级且带菱形 -->
<item v-else-if="item.level=='2'" :isSkip="item.meta && item.meta.roles == 'skip'" :title="onlyOneChild.meta.title" :punctuation="'rhombus'"/>
<!-- 其他为最后一层且不带图标 -->

7
fe/PC/src/main.js

@ -6,6 +6,7 @@ import App from './App'
import store from './store'
import router from './router'
import watchLocal from '@/utils/watcLlocalstorage'//用于监听本地缓存
import i18n from './lang'
import "./utils/utils"
@ -33,7 +34,8 @@ import {
defaultFreshBtn,
defaultFilterBtn,
defaultImportBtn,
defaultExportBtn
defaultExportBtn,
defaultFilterForDetailBtn
} from '@/utils/defaultButtons';
Vue.prototype.defaultFieldSettingBtn = defaultFieldSettingBtn;
@ -42,10 +44,10 @@ Vue.prototype.defaultFreshBtn = defaultFreshBtn;
Vue.prototype.defaultFilterBtn = defaultFilterBtn;
Vue.prototype.defaultImportBtn = defaultImportBtn;
Vue.prototype.defaultExportBtn = defaultExportBtn;
Vue.prototype.defaultFilterForDetailBtn = defaultFilterForDetailBtn;
import * as filters from './filters' // global filters
console.log("V421.20.52.win");
/**
* If you don't want to use mock-server
* you want to use MockJs for mock api
@ -69,5 +71,6 @@ new Vue({
el: '#app',
router,
store,
i18n,
render: h => h(App)
})

23
fe/PC/src/mixins/TableHeaderMixins.js

@ -146,6 +146,7 @@ export const TableHeaderMixins = {
value: val,
})
}
// todo:使用paging(callback)如204行
getPageList(this.PageListParams, this.URL).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
@ -200,9 +201,7 @@ export const TableHeaderMixins = {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount;
this.PageListParams.condition = {filters:_all_filters}
getPageList(this.PageListParams, this.URL).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.paging(()=>{
//快速搜索清空
if(_vm_quickly){_vm_quickly.searchNormalClear(true)}
//关闭高级筛选
@ -211,10 +210,22 @@ export const TableHeaderMixins = {
this.httpOverallSearchData = {}
this.httpOverallSearchData.params = JSON.parse(JSON.stringify(_data_primary))
this.httpOverallSearchData.moreList = JSON.parse(JSON.stringify(_data_moreList))
this.pagingCallback()
}).catch(err => {
this.Loading.tableLoading = false
})
// getPageList(this.PageListParams, this.URL).then(res => {
// this.tableData = res.items
// this.totalCount = res.totalCount
// //快速搜索清空
// if(_vm_quickly){_vm_quickly.searchNormalClear(true)}
// //关闭高级筛选
// if(_vm_moreList){_vm_moreList.changeMoreListShow(false)}
// // 同步当前列表数据请求接口的筛选条件
// this.httpOverallSearchData = {}
// this.httpOverallSearchData.params = JSON.parse(JSON.stringify(_data_primary))
// this.httpOverallSearchData.moreList = JSON.parse(JSON.stringify(_data_moreList))
// this.pagingCallback()
// }).catch(err => {
// this.Loading.tableLoading = false
// })
},
// 全面筛选所有按钮操作集 20230215
overallSearchFormClick(options){

90
fe/PC/src/mixins/TableMixins.js

@ -37,17 +37,19 @@ export const tableMixins = {
tableDataDetails:[],
//默认tag
firstTabs:'xq',
//明细-前端手动添加的基础信息配置
showDetailBaseFromFE:['configuration']
}
},
methods: {
//渲染数据
paging() {
paging(callback) {
this.Loading.tableLoading = true;
this.PageListParams.SkipCount = (this.oldSkipCount - 1) * this.PageListParams.MaxResultCount,
getPageList(this.PageListParams, this.URL).then(res => {
this.tableData = res.items
this.totalCount = res.totalCount
this.pagingCallback()
this.pagingCallback(callback)
}).catch(err => {
this.Loading.tableLoading = false
})
@ -90,18 +92,18 @@ export const tableMixins = {
this.displayDialog.detailsDialog = true;
let _url = this.detailURL ? this.detailURL : this.URL
getDetailed(val.id, _url).then(res => {
if (res.details) {
// 前端分页处理
this.tableDataDetails = JSON.parse(JSON.stringify(res))
let linshiTableDataDetails = JSON.parse(JSON.stringify(this.tableDataDetails))
this.totalCountDetails = res.details.length
// 删除除当前页面最大数以外数据
linshiTableDataDetails.details.splice(this.MaxResultCountDetails,this.totalCountDetails);
this.propsData = linshiTableDataDetails
} else {
this.propsData = res
}
this.inlineDialogCallback()
if (res.details) {
// 前端分页处理
this.tableDataDetails = JSON.parse(JSON.stringify(res))
let linshiTableDataDetails = JSON.parse(JSON.stringify(this.tableDataDetails))
this.totalCountDetails = res.details.length
// 删除除当前页面最大数以外数据
linshiTableDataDetails.details.splice(this.MaxResultCountDetails,this.totalCountDetails);
this.propsData = linshiTableDataDetails
} else {
this.propsData = res
}
this.inlineDialogCallback()
}).catch(err => {
this.Loading.DrawerLoading = false
})
@ -171,6 +173,50 @@ export const tableMixins = {
}
}
},
//
/**
* 获取物品信息-逐条过滤到主表或者明细表
* 明细或者主表单行数据添加所需要的值
* @param {*} type 是更改主表table还是明细表(detail)
* 要追加的值取showTableBaseFromFE主表showDetailBaseFromFE明细参数是基础表的参数如code而不是itemCode
* 添加到表头的格式为item+追加的参数+FromFE (例如item_desc2FromFE)
*/
getItemInfoByItemCodeHandle(type) {
let _data = {
condition: {filters: []},
Sorting: "",
SkipCount: 0,
MaxResultCount: 1000
}
// 主表
let _mainData = type == 'table' ? this.tableData : this.propsData.details
let _arrFromFE = type == 'table' ? this.showTableBaseFromFE : this.showDetailBaseFromFE
_mainData.forEach((item)=>{
let _filt = {
logic: 'Or',
column: "code",
action: "==",
value: item.itemCode
}
_data.condition.filters.push(_filt)
})
getPageList(_data, 'basedata/item-basic').then(res => {
_mainData.forEach(item=>{
let _config = res.items.filter(base=>{
return base.code == item.itemCode
})
if(_config && _config.length > 0){
_arrFromFE.forEach(fe=>{
this.$set(item,"item_"+fe+"FromFE", _config[0][fe])
})
}
})
this.$forceUpdate()
this.Loading.DrawerLoading = false
}).catch(err => {
this.Loading.DrawerLoading = false
})
},
// 获取供应商信息过滤propsData
getSupplierByCodesHandle_props() {
for(let i=0;i<this.tabsDesTions.length;i++){
@ -205,7 +251,6 @@ export const tableMixins = {
* @param {*} label 按钮name
*/
buttonOperationClick(row, label) {
console.log(label)
// 获取当前行数据,赋值给 propsData
this.propsData = row
@ -246,13 +291,24 @@ export const tableMixins = {
}
},
// 主列表更新后全局通用操作
pagingCallback(){
pagingCallback(callback){
this.Loading.tableLoading = false
// 如果业务页面设置showTableBaseFromFE,tableColumns.js别忘了添加配置项
if(this.showTableBaseFromFE && this.showTableBaseFromFE.length > 0){
this.getItemInfoByItemCodeHandle('table')
}
if(callback)callback()
// this.getSupplierByCodesHandle_table()
},
// 点击抽屉,获取明细后全局通用操作
inlineDialogCallback(){
this.Loading.DrawerLoading = false
// 如果业务页面设置showDetailBaseFromFE为空,detailsTableColumns.js别忘了删除配置项
if(this.showDetailBaseFromFE && this.showDetailBaseFromFE.length > 0){
this.getItemInfoByItemCodeHandle('detail')
}
else{
this.Loading.DrawerLoading = false
}
// this.getSupplierByCodesHandle_props()
}
}

32
fe/PC/src/mixins/drawerMixins.js

@ -5,6 +5,7 @@ import {
postExportForDetail,
fileStorage
} from '@/api/wms-api'
import requestDataNames from "@/utils/processButtonData"
import {
accept,
close,
@ -54,7 +55,8 @@ export const drawerMixins = {
this.displayDialog.editDialog = true
}
// 申请业务 流程按钮实现
if (val == 'submitRequest') {
// 【提交】操作
if (val == requestDataNames.submit) {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/submit/').then(res => {
that.$successMsg('已提交')
@ -67,7 +69,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'agreeRequest') {
}
// 【审批】操作
else if (val == requestDataNames.agree) {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/agree/').then(res => {
that.$successMsg('已同意')
@ -80,7 +84,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'handleRequest') {
}
// 【处理】操作
else if (val == requestDataNames.handle) {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/handle/').then(res => {
that.$successMsg('处理完成')
@ -93,7 +99,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'againHandleRequest') { // 针对部分完成情况下,再次执行任务操作
}
// 【执行】操作
else if (val == requestDataNames.againHandle) { // 针对部分完成情况下,再次执行任务操作
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/handle/').then(res => {
that.$successMsg('执行成功')
@ -106,7 +114,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'abortRequest') {
}
// 【中止】操作
else if (val == requestDataNames.abort) {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/abort/').then(res => {
that.$successMsg('已中止')
@ -119,7 +129,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'completeRequest') {
}
// 【执行完成】操作
else if (val == 'completeRequest') {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/complete/').then(res => {
that.$successMsg('执行完成')
@ -132,7 +144,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'cancelRequest') {
}
// 【取消】操作
else if (val == requestDataNames.cancel) {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/cancel/').then(res => {
that.$successMsg('已取消')
@ -145,7 +159,9 @@ export const drawerMixins = {
console.log(err)
that.Loading.appMainLoading = false
})
} else if (val == 'refuseRequest') {
}
// 【驳回】操作
else if (val == requestDataNames.refuse) {
that.Loading.appMainLoading = true
processRequest(that.propsData.id, that.URL + '/refuse/').then(res => {
that.$successMsg('已驳回')

1
fe/PC/src/mixins/mixins.js

@ -276,6 +276,7 @@ export const mixins = {
that.displayDialog.importDialog = false;
that.paging()
}).catch(err => {
console.log('请联系管理员',err)
that.$errorMsg('导入过程中发生错误!请联系管理员!')
that.Loading.importLoading = false
that.FormRemove(val[0]);

77
fe/PC/src/mixins/printMixin.js

@ -42,7 +42,7 @@ export function initPrintPackingCodeData(propsData,options,name,url){
"packingCode": item[_options.packingCode] || item.packingCode,//条形码
"printIndex":item[_options.printIndex] || Number(key)+1,//打印序列
// "itemName": item[_options.itemName] || item.itemName,//物品名称 暂未使用
// "stdPackQty": item[_options.stdPackQty] || item.stdPackQty,//整包数量 暂未使用
"stdPackQty": item[_options.stdPackQty] || item.stdPackQty,//整包数量 暂未使用
}
],
})
@ -55,6 +55,76 @@ export function initPrintPackingCodeData(propsData,options,name,url){
return data
}
//打印【箱标签-上下2个】(xiangbq_two.rdlx)
//使用位置:拆分箱标签 (splitLabels.vue)
/**
* @param {*} propsData 必填 详情数据 示例this.propsData
* @param {*} options 自定义特殊配置值 示例{'number':'poNumber'} (number值将传为poNumber)
* @param {*} name reportName
* @param {*} url dataUrl
* @returns
*/
export function initPrintPackingCodeTwoData(oldData,newData,options,name,url){
if(!oldData && !newData)return {}
let _printData = {}
let _options = options ? options : {}
// 上方信息
if(oldData){
_printData={
"oldTitle":oldData[_options.title] || oldData.title || "FATY 物品发运单",//上方_title
"oldSupplierSimpleName": oldData[_options.supplierSimpleName] || oldData.supplierSimpleName,//上方_供应商名称
"oldSupplierCode": oldData[_options.supplierCode] || oldData.supplierCode,//上方_供应商代码
"oldPoNumber": oldData[_options.poNumber] || oldData.poNumber,//上方_订单号
"oldAsnNumber": oldData[_options.asnNumber] || oldData.asnNumber,//上方_发货单号
"oldRemark": oldData[_options.remark] || oldData.remark,//上方_备注
"oldPlanArriveDate":oldData[_options.planArriveDate] || oldData.planArriveDate,//上方_要求到货时间
"oldSupplierItemName": oldData[_options.supplierItemName] || oldData.supplierItemName,//上方_零件名(供应商零件名)
"oldSupplierItemCode": oldData[_options.supplierItemCode] || oldData.supplierItemCode,//上方_零件号(供应商零件号)
"oldSpecifications": oldData[_options.specifications] || oldData.specifications,//上方_规格
"oldProduceDate": oldData[_options.produceDate] || oldData.produceDate,//上方_生产时间
"oldLot": oldData[_options.lot] || oldData.lot,//上方_生产批次
"oldLocationErpCode": oldData[_options.locationErpCode] || oldData.locationErpCode,//上方_储位
"oldItemCode": oldData[_options.itemCode] || oldData.itemCode,//上方_物品代码(ERP号)
"oldQty": oldData[_options.qty] || oldData.qty,//上方_要货数量
"oldStdPackQty": oldData[_options.stdPackQty] || oldData.stdPackQty,//上方_整包数量
"oldPackingCode": oldData[_options.packingCode] || oldData.packingCode,//上方_条形码
"oldPrintIndex":oldData[_options.printIndex] || 1,//上方_打印序列
..._printData
}
}
// 下方信息
if(newData){
_printData={
"newTitle":newData[_options.title] || newData.title || "FATY 物品发运单",//下方_title
"newSupplierSimpleName": newData[_options.supplierSimpleName] || newData.supplierSimpleName,//下方_供应商名称
"newSupplierCode": newData[_options.supplierCode] || newData.supplierCode,//下方_供应商代码
"newPoNumber": newData[_options.poNumber] || newData.poNumber,//下方_订单号
"newAsnNumber": newData[_options.asnNumber] || newData.asnNumber,//下方_发货单号
"newRemark": newData[_options.remark] || newData.remark,//下方_备注
"newPlanArriveDate":newData[_options.planArriveDate] || newData.planArriveDate,//下方_要求到货时间
"newSupplierItemName": newData[_options.supplierItemName] || newData.supplierItemName,//下方_零件名(供应商零件名)
"newSupplierItemCode": newData[_options.supplierItemCode] || newData.supplierItemCode,//下方_零件号(供应商零件号)
"newSpecifications": newData[_options.specifications] || newData.specifications,//下方_规格
"newProduceDate": newData[_options.produceDate] || newData.produceDate,//下方_生产时间
"newLot": newData[_options.lot] || newData.lot,//下方_生产批次
"newLocationErpCode": newData[_options.locationErpCode] || newData.locationErpCode,//下方_储位
"newItemCode": newData[_options.itemCode] || newData.itemCode,//下方_物品代码(ERP号)
"newQty": newData[_options.qty] || newData.qty,//下方_数量 + 整包数量
"newStdPackQty": newData[_options.stdPackQty] || newData.stdPackQty,//上方_整包数量
"newPackingCode": newData[_options.packingCode] || newData.packingCode,//下方_条形码
"newPrintIndex":newData[_options.printIndex] || 1,//下方_打印序列
..._printData
}
}
let data = {
reportName: name || 'xiangbq_two.rdlx',
dataUrl: url || 'ccc',
jsonData: JSON.stringify(_printData)
};
return data
}
// 打印【箱标签-单页4个】 (xiangbq_many.rdlx)
// 使用位置:半成品上架标签 (PartiallyPreparedProducts.vue) | 生产退库标签 (productionReturnLabel.vue)
// | 创建标签 (RecycledMaterialsLabel.vue) | 到货请求 (PurchaseReceiptRequest.vue)
@ -109,7 +179,7 @@ export function initPrintPackingCodeData(propsData,options,name,url){
_label['lot'+Number(key2 + 1)] = item[_options.lot] || item2.lot;//生产批次
_label['locationErpCode'+Number(key2 + 1)] = item[_options.locationErpCode] || item2.locationErpCode;//储位
_label['itemCode'+Number(key2 + 1)] = item[_options.itemCode] || item2.itemCode;//物品代码(ERP号)
// _label['stdPackQty'+Number(key2 + 1)] = item[_options.stdPackQty] || item2.stdPackQty;//整包数量 暂未使用
_label['stdPackQty'+Number(key2 + 1)] = item[_options.stdPackQty] || item2.stdPackQty;//整包数量 暂未使用
_label['qty'+Number(key2 + 1)] = item[_options.qty] || item2.qty;//要货数量 + 整包数量
_label['packingCode'+Number(key2 + 1)] = item[_options.packingCode] || item2.packingCode;//条形码
_label['printIndex'+Number(key2 + 1)] = item[_options.printIndex] || item2.printIndex;//序号
@ -158,6 +228,7 @@ const printEnumOption = {
}
}
_outData.title = propsData.title || ''
_outData.headerName = propsData.headerName || localStorage.getItem('companyName')
propsData.details.forEach((item,key) => {
// 序号
item.xh = Number(key) + 1;
@ -205,7 +276,7 @@ const printEnumOption = {
// 使用位置:非生产领料申请 (pickingRequest.vue - fscll.rdlx)
// 使用位置:非生产退料申请 (materialReturnRequest.vue - fsctl.rdlx)
// 单号:number; 参考单据:?; 制表日:creationTime; 部门代码:deptCode; 部门名称:deptName; 项目分类名称:projCapacityName; 专案代码:caseCode; 说明:remark
// 料品编号:itemCode; 品名:itemName; 单位:uom; 预计量:preQty; 实际量:qty; 储位:locationCode;
// 料品编号:itemCode; 品名:itemName; 单位:uom; 预计量:preQty; 实际量:qty; 储位:locationCode; 配置:configuration
// cwdbd.rdlx 使用参数
// 使用位置:储位调拨记录 (interStorageAllocationNote.vue)

13
fe/PC/src/permission.js

@ -21,7 +21,7 @@ const whiteList = ['/login', '/auth-redirect', '/testForm'] // no redirect white
router.beforeEach(async (to, from, next) => {
// 添加路由信息,方便代码修改定位
console.log('----------------' + to.meta.title + '-----------------------'+ to.fullPath.substring(to.fullPath.lastIndexOf('-')+1,to.fullPath.length) + '.vue' );
// console.log('----------------' + to.meta.title + '-----------------------'+ to.fullPath.substring(to.fullPath.lastIndexOf('-')+1,to.fullPath.length) + '.vue' );
// start progress bar
NProgress.start()
@ -32,6 +32,16 @@ router.beforeEach(async (to, from, next) => {
const hasToken = getToken()
if (hasToken) {
// if(from.path != '/login'){
// let _interfaceBoardColumnsNames = localStorage.getItem("interfaceBoardColumnsNames")
// if(!_interfaceBoardColumnsNames){
// console.log(39,_interfaceBoardColumnsNames)
// // next({
// // path: '/'
// // })
// // NProgress.done()
// }
// }
if (to.path === '/login') {
// if is logged in, redirect to the home page
next({
@ -47,6 +57,7 @@ router.beforeEach(async (to, from, next) => {
try {
// get user info
// note: roles must be a object array! such as: ['admin'] or ,['developer','editor']
const {
roles
} = await store.dispatch('user/getInfo')

54
fe/PC/src/router/index.js

@ -114,41 +114,53 @@ export const constantRoutes = [
keepAlive : true,
title: '系统首页',
icon: '系统首页',
outerFirst:true
// affix: true
}
}]
},
{
path: '/',
component: Layout,
redirect: '/gridlayout',
hidden: true,
children: [{
path: 'gridlayout',
component: () => import('@/views/gridLayout/indexShow'),
name: 'Gridlayout',
meta: {
keepAlive : true,
title: '首页编辑器',
icon: '系统首页',
}
}]
},
// 开发中模拟路由
path: '/InventoryBookDetail_innerPage',
component: () => import('@/views/activeReportManage/reportForm/InventoryBookDetail_innerPage'),
hidden: true
},
// {
// path: '/report-test',
// component: () => import('@/views/activeReportManage/reportForm/InventoryBookDetail_innerPage'),
// hidden: true
// },
// {
// path: '/',
// component: Layout,
// redirect: '/_dashboard',
// redirect: '/gridlayout',
// hidden: true,
// children: [{
// path: '_dashboard',
// component: () => import('@/views/dashboard/_index'),
// name: '_dashboard',
// path: 'gridlayout',
// component: () => import('@/views/gridLayout/indexShow'),
// name: 'Gridlayout',
// meta: {
// title: '_dashboard',
// keepAlive : true,
// title: '首页编辑器',
// icon: '系统首页',
// }
// }]
// },
// 开发中模拟路由
// {
// path: '/',
// component: Layout,
// redirect: '/ceshi',
// hidden: true,
// children: [{
// path: 'ceshi',
// component: () => import('@/views/ceshi/ceshi.vue'),
// name: 'ceshi',
// meta: {
// title: 'ceshi',
// icon: '',
// }
// }]
// },
// {
// path: '/',

6
fe/PC/src/store/modules/permission.js

@ -46,6 +46,12 @@ export function generaMenu(routes, data) {
} else {
menu.level = 3
}
// iframe页面处理
// if (item.permission.indexOf('Report') > -1) {
// // delete menu.component
// menu.iframeComponent = item.component === '@/layout' ? Layout : loadView(item.component)
// menu.hasOpen = false // 是否打开过,默认false
// }
if (item.children && item.children.length > 0) {
generaMenu(menu.children, item.children)
}

10
fe/PC/src/store/modules/user.js

@ -74,9 +74,13 @@ const actions = {
accessToken,
tokenType
} = response
commit('SET_TOKEN', accessToken)
setToken(tokenType + ' ' + accessToken)
resolve()
if (accessToken == null) {
reject()
} else {
commit('SET_TOKEN', accessToken)
setToken(tokenType + ' ' + accessToken)
resolve()
}
}).catch(error => {
reject(error)
})

3
fe/PC/src/styles/mainbasicData.scss

@ -2,6 +2,9 @@
@import './basicData.scss';
.page-box {
::v-deep .el-dialog {
.el-dialog__body {
padding-bottom: 20px;
}
.form1,
.form2 {
display: flex;

12
fe/PC/src/utils/defaultButtons.js

@ -92,7 +92,17 @@ export function defaultFilterBtn(option) {
})
}
// 明细查询按钮
export function defaultFilterForDetailBtn(option) {
return __defaultBtnOption(option,{
type: "warning",
icon: "el-icon-finished",
label: "明细查询",
name: "filterForDetail",
size: "mini",
float: 'right',
})
}
// 默认按钮规则
function __defaultBtnOption(option,specific){

219
fe/PC/src/utils/detailsTableColumns/index.js

@ -29,11 +29,12 @@ export const SupplierAsn = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发货数量", prop: "qty" },
{ label: "物品单位", prop: "uom" },
{ label: "生产批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "ERP位", prop: "recommendErpCode" },
{ label: "ERP位", prop: "recommendErpCode" },
{ label: "项目编号", prop: "projectCode" },
{ label: "类型", prop: "ctype", type: "filter", filters: "SupplierAsnCtypeSta" },
{ label: "生产时间", prop: "produceDate", type: "dateTime" },
@ -67,13 +68,13 @@ export const PurchaseOrder = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发货数量", prop: "qty" },
{ label: "物品单位", prop: "uom" },
{ label: "生产批次", prop: "lot" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "项目编号", prop: "projectCode" },
{ label: "类型", prop: "ctype", type: "filter", filters: "SupplierAsnCtypeSta" },
{ label: "生产时间", prop: "produceDate", type: "dateTime" },
{ label: "已发货数量", prop: "shippedQty" },
{ label: "已收货数量", prop: "receivedQty" },
{ label: "已退货数量", prop: "returnedQty" },
@ -98,6 +99,7 @@ export const PurchaseOrder = [
{ label: "创建者ID", prop: 'creatorId' },
// { label: "标包计量单位", prop: 'stdPackUom' },
// ************** 确定隐藏 ************************
// { label: "生产时间", prop: "produceDate", type: "dateTime" },
// { label: "lineStatus", prop: 'lineStatus' },
// { label: "ID", prop: 'id' },
// { label: "主表ID", prop: 'masterID' },
@ -109,11 +111,12 @@ export const PurchaseReceiptRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发货数量", prop: "qty" },
{ label: "物品单位", prop: "uom" },
{ label: "生产批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "ERP位", prop: "recommendErpCode" },
{ label: "ERP位", prop: "recommendErpCode" },
{ label: "生产时间", prop: "produceDate", type: "dateTime" },
{ label: "过期时间", prop: "expireDate", type: "dateTime" },
{ label: "到货时间", prop: 'arriveDate', type: "dateTime" },
@ -145,6 +148,7 @@ export const PurchaseReceiptJob = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "purchaseReceiptInspectStatus", type: "filter", filters: "enumPurchaseReceiptInspectStatus" },
{ label: "数量", prop: "recommendQty" },
{ label: "质量缺陷", prop: "massDefect" },
@ -201,12 +205,13 @@ export const InspectRequest = [
{ label: "物品名称", prop: "itemName", width: orderWidth },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "收货数量", prop: "receiveQty" },
{ label: "生产批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "检验状态", prop: "detailInspectStatus", type: "filter", filters: "detailInspectStatus" },
{ label: "库位", prop: 'locationCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "检验单号", prop: "number" },
// -----------------------------------------------------------------------
{ label: "计量单位", prop: 'uom' },
@ -253,11 +258,12 @@ export const InspectNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "收货数量", prop: "receiveQty" },
{ label: "生产批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "库位", prop: 'locationCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "合格数量", prop: 'goodQty' },
{ label: "不合格数量", prop: 'failedQty' },
{ label: "检验人", prop: 'inspectUser' },
@ -305,13 +311,14 @@ export const unqualifiedToQualifiedNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: "toLot" },
{ label: "箱码", prop: "toPackingCode" },
{ label: "来源库位", prop: 'fromLocationCode' },
{ label: "目标库位", prop: 'toLocationCode' },
{ label: "ERP位", prop: 'toLocationErpCode' },
{ label: "ERP位", prop: 'toLocationErpCode' },
// -----------------------------------------------------------------------
{ label: "转合格单号", prop: "number",width: orderWidth },
{ label: "标包数量", prop: 'stdPackQty' },
@ -347,6 +354,7 @@ export const PutawayNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "来源库位", prop: "fromLocationCode" },
@ -416,6 +424,7 @@ export const IssueRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "status", type: "filter", filters: "openToClose" },
{ label: "叫料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
@ -450,6 +459,7 @@ export const IssueJob = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "status", type: "filter", filters: "inventoryStage" },
{ label: "推荐批次", prop: "recommendLot" },
{ label: "实际批次", prop: "handledLot" },
@ -513,6 +523,7 @@ export const IssueNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -583,6 +594,7 @@ export const automaticCallApply = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "status", type: "filter", filters: "openToClose" },
{ label: "叫料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
@ -617,6 +629,7 @@ export const automaticCallJob = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "状态", prop: "status", type: "filter", filters: "inventoryStage" },
{ label: "推荐批次", prop: "recommendLot" },
{ label: "实际批次", prop: "handledLot" },
@ -680,6 +693,7 @@ export const automaticCallNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -751,13 +765,14 @@ export const beforeGroundingReturnNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "库位", prop: 'locationCode' },
{ label: "库区", prop: 'locationArea' },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "退货原因代码", prop: 'reason' },
{ label: "退货原因说明", prop: 'reason', type: "filter", filters: "getDict" , dictType:"UnqualifiedReason" },
// -----------------------------------------------------------------------
@ -813,12 +828,13 @@ export const PurchaseReturnRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
{ label: "箱码", prop: "packingCode" },
{ label: "退货库位", prop: "locationCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "订单号", prop: 'poNumber', width:orderWidth },
// -----------------------------------------------------------------------
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -849,6 +865,7 @@ export const PurchaseReturnJob = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "退货原因代码", prop: 'reason' },
{ label: "退货原因说明", prop: 'reason', type: "filter", filters: "getDict" , dictType:"PurReturnReason" },
{ label: "订单号", prop: 'poNumber', width:orderWidth },
@ -899,15 +916,16 @@ export const PurchaseReturnNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "库位", prop: 'locationCode' },
{ label: "库区", prop: 'locationArea' },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "退货原因代码", prop: 'reason' },
{ label: "退货原因说明", prop: 'reason', type: "filter", filters: "getDict" , dictType:"UnqualifiedReason" },
{ label: "退货原因说明", prop: 'reason', type: "filter", filters: "getDict" , dictType:"PurReturnReason" },
// -----------------------------------------------------------------------
{ label: "推荐箱码", prop: "recommendPackingCode" },
{ label: "推荐供应商批次", prop: 'recommendSupplierBatch' },
@ -961,6 +979,7 @@ export const ScrapNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "报废数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "报废原因代码", prop: 'reasonCode' },
@ -1005,6 +1024,7 @@ export const materialDirectSendNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -1071,6 +1091,7 @@ export const directIssueNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "发料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -1144,6 +1165,7 @@ export const ProductReceiptRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "返线数量", prop: "returnQty" },
@ -1179,11 +1201,12 @@ export const ProductReceiptNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "库区", prop:"locationArea" },
{ label: "库位代码", prop: 'locationCode' },
{ label: "ERP位", prop:"locationErpCode" },
{ label: "ERP位", prop:"locationErpCode" },
{ label: "生产时间", prop: "produceDate",type:"dateTime" },
// -----------------------------------------------------------------------
{ label: "缴库库位", prop: 'rawLocationCode' },
@ -1242,11 +1265,12 @@ export const ProductReceiptScrapRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "库区", prop:"locationArea" },
{ label: "库位", prop:"locationCode" },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "库位组", prop: 'locationGroup' },
{ label: "报废原因代码", prop:"reasonCode" },
{ label: "报废原因说明", prop: 'reasonCode', type: "filter", filters: "getDict" , dictType:"Reason" },
@ -1271,6 +1295,7 @@ export const ProductReceiptScrapNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "报废数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "报废原因代码", prop: 'reasonCode' },
@ -1315,6 +1340,7 @@ export const partiallyPreparedProductsNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "来源库位", prop: "fromLocationCode" },
@ -1384,6 +1410,7 @@ export const DeliverRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "出货数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "发货库区", prop: "areaCode" },
@ -1407,6 +1434,7 @@ export const DeliverJob = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "单位", prop: "uom" },
{ label: "推荐批次", prop: 'recommendLot' },
{ label: "实际批次", prop: 'handledLot' },
@ -1459,6 +1487,7 @@ export const DeliverNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "出货数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -1525,9 +1554,12 @@ export const FISDeliverRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "出货数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "出货库区", prop: "areaCode" },
{ label: "起始盘底号", prop: "extraProperties", showProp: 'FromVinCode', type: 'object' },
{ label: "截止盘底号", prop: "extraProperties", showProp: 'ToVinCode', type: 'object' },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
// -----------------------------------------------------------------------
@ -1549,6 +1581,7 @@ export const FISDeliverNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "出货数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
@ -1602,7 +1635,9 @@ export const FISDeliverNote = [
{ label: "实际分组", prop: 'handledFromLocationGroup' },
{ label: "实际ERP库位", prop: 'handledFromLocationErpCode' },
{ label: "实际仓库", prop: 'handledFromWarehouseCode' },
{ label: "订单号", prop: "extraProperties", showProp: 'FromVinCode', type: 'object' },
// ************** 确定隐藏 ************************
// { label: "截止盘底号", prop: "extraProperties", showProp: 'ToVinCode', type: 'object' },
// { label: "主表ID", prop: "masterID" },
// { label: "ID", prop: 'id' },
// { label: "fromStatus", prop: 'fromStatus' },
@ -1615,6 +1650,7 @@ export const customerDismantle = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "退拆数量", prop: "qty" },
{ label: "单位", prop: 'uom' },
{ label: "扣账库位", prop: "locationCode" },
@ -1647,6 +1683,7 @@ export const productionReturnRequest = [
{ label: "物品名称", prop: 'itemName' },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "单位", prop: 'uom' },
{ label: "批次", prop: 'lot' },
{ label: "目标ERP库位", prop: 'toLocationErpCode' },
@ -1690,6 +1727,7 @@ export const productionReturnJob = [
{ label: "物品名称", prop: 'itemName' },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: 'recommendQty' },
{ label: "批次", prop: 'recommendLot' },
// -----------------------------------------------------------------------
@ -1742,6 +1780,7 @@ export const productionReturnNote = [
{ label: "物品名称", prop: 'itemName' },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: 'qty' },
{ label: "单位", prop: 'uom' },
{ label: "来源ERP库位", prop: 'fromLocationErpCode' },
@ -1812,6 +1851,7 @@ export const pickingRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "领料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
@ -1819,6 +1859,9 @@ export const pickingRequest = [
{ label: "调出库位", prop: "locationCode" },
{ label: "调出ERP库位", prop: 'locationErpCode' },
{ label: "说明", prop: 'remark' },
{ label: "专案代码", prop: 'caseCode' },
{ label: "项目分类", prop: 'projCapacityCode' },
{ label: "次交易码", prop: 'onceBusiCode' },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
// -----------------------------------------------------------------------
@ -1846,6 +1889,7 @@ export const pickingApproval = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "领料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
@ -1853,6 +1897,9 @@ export const pickingApproval = [
{ label: "调出库位", prop: "locationCode" },
{ label: "调出ERP库位", prop: 'locationErpCode' },
{ label: "说明", prop: 'remark' },
{ label: "专案代码", prop: 'caseCode' },
{ label: "项目分类", prop: 'projCapacityCode' },
{ label: "次交易码", prop: 'onceBusiCode' },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
// -----------------------------------------------------------------------
@ -1880,6 +1927,7 @@ export const pickingNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "领料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
@ -1887,6 +1935,9 @@ export const pickingNote = [
{ label: "调出库位", prop: "locationCode" },
{ label: "调出ERP库位", prop: 'locationErpCode' },
{ label: "说明", prop: 'remark' },
{ label: "专案代码", prop: 'caseCode' },
{ label: "项目分类", prop: 'projCapacityCode' },
{ label: "次交易码", prop: 'onceBusiCode' },
{ label: "任务编号", prop: 'number' },
{ label: "供应商批次", prop: 'supplierBatch' },
{ label: "到货时间", prop: 'arriveDate', type: "dateTime" },
@ -1939,6 +1990,7 @@ export const pickingNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "退料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
@ -1946,6 +1998,9 @@ export const pickingNote = [
{ label: "调入库位", prop: "locationCode" },
{ label: "调入ERP库位", prop: 'locationErpCode' },
{ label: "说明", prop: 'remark' },
{ label: "专案代码", prop: 'caseCode' },
{ label: "项目分类", prop: 'projCapacityCode' },
{ label: "次交易码", prop: 'onceBusiCode' },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
@ -1972,6 +2027,7 @@ export const materialReturnApproval = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "退料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
@ -1979,6 +2035,9 @@ export const materialReturnApproval = [
{ label: "调入库位", prop: "locationCode" },
{ label: "调入ERP库位", prop: 'locationErpCode' },
{ label: "说明", prop: 'remark' },
{ label: "专案代码", prop: 'caseCode' },
{ label: "项目分类", prop: 'projCapacityCode' },
{ label: "次交易码", prop: 'onceBusiCode' },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
{ label: "创建者ID", prop: 'creatorId' },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
@ -2005,12 +2064,16 @@ export const materialReturnNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "退料数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
{ label: "箱码", prop: "packingCode" },
{ label: "调入库位", prop: "locationCode" },
{ label: "调入ERP库位", prop: 'locationErpCode' },
{ label: "专案代码", prop: 'caseCode' },
{ label: "项目分类", prop: 'projCapacityCode' },
{ label: "次交易码", prop: 'onceBusiCode' },
{ label: "任务编号", prop: 'number' },
{ label: "供应商批次", prop: 'supplierBatch' },
{ label: "到货时间", prop: 'arriveDate', type: "dateTime" },
@ -2064,12 +2127,13 @@ export const recycledMaterialsReceipt = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: 'lot' },
{ label: "箱码", prop: 'packingCode' },
{ label: "库位", prop: 'locationCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
// -----------------------------------------------------------------------
{ label: "创建者ID", prop: 'creatorId' },
@ -2103,6 +2167,7 @@ export const recycledMaterialsAdjustmentApply = [
{ label: "目标物品描述1", prop: "toItemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "目标物品描述2", prop: "toItemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "来源箱标签", prop: "fromPackingCode" },
{ label: "目标箱标签", prop: "toPackingCode" },
{ label: "单位", prop: "uom" },
@ -2156,6 +2221,7 @@ export const materialsAdjustment = [
{ label: "目标物品描述1", prop: "toItemDesc1" },
{ label: "来源物品描述2", prop: "itemDesc2" },
{ label: "目标物品描述2", prop: "toItemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "来源箱标签", prop: "fromPackingCode" },
{ label: "目标箱标签", prop: "toPackingCode" },
{ label: "来源数量", prop: "fromQty" },
@ -2164,7 +2230,7 @@ export const materialsAdjustment = [
{ label: "目标库位", prop: "toLocationCode" },
{ label: "来源批次", prop: "fromLot" },
{ label: "目标批次", prop: "toLot" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "单位", prop: "uom" },
{ label: "原因", prop: 'reasonCode' },//不是字典,直接显示文本
// -----------------------------------------------------------------------
@ -2206,6 +2272,7 @@ export const lineSideWarehouseAllocationRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: "fromLot" },
@ -2249,6 +2316,7 @@ export const lineSideWarehouseAllocationConfirm = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调出库位", prop: "fromLocationCode" },
@ -2293,6 +2361,7 @@ export const lineSideWarehouseAllocationNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调出库位", prop: "fromLocationCode" },
@ -2337,6 +2406,7 @@ export const interStorageAllocationNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调出库位", prop: "fromLocationCode" },
@ -2381,6 +2451,7 @@ export const customerStorageAllocationRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "批次", prop: "fromLot" },
@ -2424,6 +2495,7 @@ export const customerStorageAllocationConfirm = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调出库位", prop: "fromLocationCode" },
@ -2468,6 +2540,7 @@ export const customerStorageAllocationNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调出库位", prop: "fromLocationCode" },
@ -2512,6 +2585,7 @@ export const intraStorageTransferNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调拨数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调出库位", prop: "fromLocationCode" },
@ -2556,6 +2630,7 @@ export const lineSideWarehousePaymentRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "返线数量", prop: "returnQty" },
@ -2591,11 +2666,12 @@ export const lineSideWarehousePaymentNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "库区", prop:"locationArea" },
{ label: "库位代码", prop: 'locationCode' },
{ label: "ERP位", prop:"locationErpCode" },
{ label: "ERP位", prop:"locationErpCode" },
{ label: "生产时间", prop: "produceDate",type:"dateTime" },
// -----------------------------------------------------------------------
{ label: "缴库库位", prop: 'rawLocationCode' },
@ -2654,11 +2730,12 @@ export const lineSideWarehouseScrappingRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "库区", prop:"locationArea" },
{ label: "库位", prop:"locationCode" },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "ERP位", prop: 'locationErpCode' },
{ label: "库位组", prop: 'locationGroup' },
{ label: "报废原因代码", prop:"reasonCode" },
{ label: "报废原因说明", prop: 'reasonCode', type: "filter", filters: "getDict" , dictType:"Reason" },
@ -2683,6 +2760,7 @@ export const lineSideWarehouseScrappingNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "报废数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "报废原因代码", prop: 'reasonCode' },
@ -2727,6 +2805,7 @@ export const lineSideWarehouseAdjustmentSheetRequest = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "调整原因代码", prop:"reasonCode" },
@ -2771,6 +2850,7 @@ export const lineSideWarehouseAdjustmentSheetNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "调整原因代码", prop:"reasonCode" },
{ label: "调整原因说明", prop:"reasonCode", type: "filter", filters: "getDict" , dictType:"AdjustmentReason" },
// -----------------------------------------------------------------------
@ -2820,13 +2900,14 @@ export const InventoryInitialNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "批次", prop: "lot" },
{ label: "箱码", prop: "packingCode" },
{ label: "供应商批次", prop: "supplierBatch" },
{ label: "库位组", prop: "locationGroup" },
{ label: "库区", prop: "locationArea" },
{ label: "库位", prop: "locationCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
// -----------------------------------------------------------------------
{ label: "备注", prop: 'remark' },
{ label: "包装数量", prop: "stdPackQty" },
@ -2856,6 +2937,7 @@ export const CountPlan = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "单位", prop: "uom" },
{ label: "库存数量", prop: "inventoryQty" },
{ label: "初盘数量", prop: "firstCountQty" },
@ -2873,7 +2955,6 @@ export const CountPlan = [
{ label: "创建时间", prop: 'creationTime', type: "dateTime" },
// -----------------------------------------------------------------------
{ label: "明细状态", prop: "detailStatus", type: "filter", filters: "DetailStatus" },
{ label: "阶段", prop: "stage", type: "filter", filters: "checkStage" },
{ label: "重盘数量", prop: "repeatCountQty" },
{ label: "重盘时间", prop: "repeatCountTime",type: "dateTime" },
{ label: "重盘描述", prop: "repeatCountDescription" },
@ -2895,8 +2976,9 @@ export const CountPlan = [
{ label: "到货时间", prop: 'arriveDate', type: "dateTime" },
{ label: "过期时间", prop: 'expireDate', type: "dateTime" },
{ label: "仓库", prop: 'warehouseCode' },
// { label: "库存状态", prop: "inventoryStatus", filters: "inventoryStage", type: "filter" },
// ************** 确定隐藏 ************************
// { label: "阶段", prop: "stage", type: "filter", filters: "checkStage" },
// { label: "库存状态", prop: "inventoryStatus", filters: "inventoryStage", type: "filter" },
// { label: "主表ID", prop: "masterID" },
// { label: "ID", prop: "id" },
// { label: "status", prop: "status" },
@ -2908,6 +2990,7 @@ export const CountJob = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "库存数量", prop: "inventoryQty" },
{ label: "盘点数量", prop: "countQty" },
{ label: "库存库位", prop: "inventoryLocationCode" },
@ -2948,8 +3031,8 @@ export const CountNote = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "库存数量", prop: "inventoryQty" },
{ label: "初盘数量", prop: "firstCountQty" },
{ label: "最终盘点数量", prop: "finalCountQty" },
{ label: "盘点差异数量", prop: "diffQty" },
{ label: "单位", prop: "uom" },
@ -2967,7 +3050,6 @@ export const CountNote = [
// -----------------------------------------------------------------------
{ label: "包装数量", prop: "stdPackQty" },
{ label: "明细状态", prop: "detailStatus", type: "filter", filters: "DetailStatus" },
{ label: "阶段", prop: "stage",type: "filter", filters: "stageType" },
{ label: "重盘数量", prop: "repeatCountQty" },
{ label: "重盘时间", prop: "repeatCountTime",type: "dateTime" },
{ label: "重盘描述", prop: "repeatCountDescription" },
@ -2991,6 +3073,8 @@ export const CountNote = [
{ label: "过期时间", prop: "expireDate",type: "dateTime" },
{ label: "仓库", prop: 'warehouseCode' },
// ************** 确定隐藏 ************************
// { label: "阶段", prop: "stage",type: "filter", filters: "stageType" },
// { label: "初盘数量", prop: "firstCountQty" },
// { label: "主表ID", prop: "masterID" },
// { label: "ID", prop: "id" },
// ************** 确定隐藏 ************************
@ -3001,6 +3085,7 @@ export const CountPlanAdjust = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "盘点数量", prop: "countQty" },
{ label: "调整数量", prop: "qty" },
{ label: "库存数量", prop: "inventoryQty" },
@ -3039,10 +3124,11 @@ export const CountPlanAdjust = [
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "库存数量", prop: "inventoryQty" },
{ label: "盘点差异数量", prop: "diffQty" },
{ label: "配置", prop: "item_configurationFromFE" },
// { label: "库存数量", prop: "inventoryQty" },
{ label: "库存数量", prop: "diffQty" },//20230705
{ label: "盘点数量", prop: "countQty" },
{ label: "调整数量", prop: "adjustQty" },
{ label: "盘点差异数量", prop: "adjustQty" },
{ label: "单位", prop: "uom" },
{ label: "库存状态", prop: "status",type: "filter", filters:"inventoryStage" },
{ label: "箱码", prop: "packingCode" },
@ -3073,4 +3159,87 @@ export const CountPlanAdjust = [
// { label: "主表ID", prop: "masterID" },
// { label: "ID", prop: "id" },
// ************** 确定隐藏 ************************
]
// 物品安全库存预警
export const safetyStockWarning = [
{
label: "物品代码",
prop: "itemCode",
fixed: "left",
},
{ label: "物品名称", prop: 'itemName' },
{ label: "物品描述1", prop: 'itemDesc1' },
{ label: "物品描述2", prop: 'itemDesc2' },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "供应商批次", prop: 'supplierBatch' },
{ label: "到货时间", prop: 'arriveDate' ,type:"dateTime" },
{ label: "生产时间", prop: 'produceDate' ,type:"dateTime" },
{ label: "过期时间", prop: 'expireDate' ,type:"dateTime" },
{ label: "批次", prop: 'lot' },
{ label: "序号", prop: 'serialNumber' },
{ label: "单位", prop: 'uom' },
{ label: "数量", prop: 'qty' },
{ label: "标包数量", prop: 'stdPackQty' },
{ label: "仓库代码", prop: "warehouseCode" },
{ label: "库位组", prop: 'locationGroup' },
{ label: "库区", prop: 'locationArea' },
{ label: "ERP储位", prop: 'locationErpCode' },
{ label: "入库时间", prop: 'putInTime', type:"dateTime" },
{ label: "最后盘点时间", prop: 'lastCountTime', type:"dateTime" },
{ label: "最后盘点计划", prop: 'lastCountPlanNumber' },
{ label: "最后盘点标签", prop: 'lastCountLabel' },
{ label: "是否可用", prop: 'isActive' },
{ label: "库位代码", prop: 'locationCode' },
{ label: "箱码", prop: 'packingCode' },
{ label: "管理类型", prop: "manageType", type: "filter", filters: "manageType" },
{ label: "最后事务编号", prop: "lastTransNumber" },
{ label: "最后事务类型", prop: "lastTransType", type: "filter", filters: "TransTypeBase" },
{ label: "创建时间", prop: "creationTime",type: "dateTime",showProp: true },
{ label: "上次修改时间", prop: "lastModificationTime", type:'dateTime',showProp: true },
{ label: "备注", prop: 'remark' },
]
// 拆箱记录
export const splitPackingList = [
{
label: "单号",
prop: "number",
fixed: "left",
type: "name"
},
{ label: "原箱码", prop: "fromPackingCode" },
{ label: "新签箱码", prop: "toPackingCode" },
{ label: "物品代码", prop: "itemCode" },
{ label: "物品名称", prop: "itemName" },
{ label: "物品描述1", prop: "itemDesc1" },
{ label: "物品描述2", prop: "itemDesc2" },
{ label: "配置", prop: "item_configurationFromFE" },
{ label: "创建时间", prop: 'creationTime', type:'dateTime' },
{ label: "标包数量", prop: "stdPackQty" },
{ label: "数量", prop: "qty" },
{ label: "单位", prop: "uom" },
{ label: "供应商批次", prop: "supplierBatch" },
{ label: "原库区", prop: "fromLocationArea" },
{ label: "新签库区", prop: "toLocationArea" },
{ label: "原库位代码", prop: "fromLocationCode" },
{ label: "新签库位代码", prop: "toLocationCode" },
{ label: "原ERP库位", prop: "fromLocationErpCode" },
{ label: "新签ERP库位", prop: "toLocationErpCode" },
{ label: "原库位组", prop: "fromLocationGroup" },
{ label: "新签库位组", prop: "toLocationGroup" },
{ label: "原批次", prop: "fromLot" },
{ label: "新签批次", prop: "toLot" },
{ label: "生产日期", prop: "produceDate",type: "dateTime" },
{ label: "过期时间", prop: "expireDate",type: "dateTime" },
{ label: "原器具号", prop: 'fromContainerCode' },
{ label: "新签器具号", prop: 'toContainerCode' },
{ label: "原状态", prop: "fromStatus",type: "filter", filters: "inventoryStage" },
{ label: "新签状态", prop: "toStatus",type: "filter", filters: "inventoryStage" },
// { label: "原仓库代码", prop: "fromWarehouseCode" },
// { label: "新签仓库代码", prop: "toWarehouseCode" },
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
{ label: "备注", prop: 'remark' },
{ label: "原因", prop: 'reason' },
// { label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
]

10
fe/PC/src/utils/index.js

@ -488,6 +488,11 @@ export function getMatchRegConformValue(type,defaultValue,fixedNum){
case "letterCn":
_conformValue=value.replace(/[\d]/g,'');
break;
// 数字+字母+横杠(-)
case "numberLetterBar":
_conformValue=value.replace(/[^\a-\z\A-\Z0-9\-]/g,'');
break;
}
return _conformValue
}
@ -545,4 +550,9 @@ export function dictFormatData() {
// 像接口传参时候需要补充.0000000 否则会报错情况下转义
export function initDataToHttpFormat (date) {
return date ? date + '.0000000' : undefined
}
// 新建浏览器标签页面
export function createNewTabs (url) {
window.open(url, "_blank")
}

116
fe/PC/src/utils/processButtonData.js

@ -1,70 +1,108 @@
// 申请流程按钮name值统一封装
const requestDataNames = {
submit:'submitRequest',//提交
agree:'agreeRequest',//审批
handle:'handleRequest',//处理
againHandle:"againHandleRequest",//执行
abort:'abortRequest',//中止
refuse:'refuseRequest',//驳回
cancel:'cancelRequest',//取消
}
export default requestDataNames;
//申请流程按钮
/**
* @param {*} that 主页this
* @param {*} that 主页this
* @param {*} label 特殊label名称更改 示例{againHandleRequest:'确认提交'}
* @param {*} initHide 自定义返回是否隐藏函数 {againHandleRequest:() => {return false)}
* @param {*} noShow 不显示的按钮 示例['againHandleRequest']
* initHide优先级大于noShow 如果initHide和noShow中都有对应数据则noShow无效
* vue调用文件参考示例
* 1使用 label 更改按钮名称
DrawerButtonData: [
...requestData(this,{againHandleRequest:'新按钮名称'}),
]
* 2使用 initHide 函数处理是否隐藏 againHandleRequestInit为业务线判断隐藏函数返回值为false/true
DrawerButtonData: [
...requestData(this,false,{
againHandleRequest:() => {return this.againHandleRequestInit([9])}
}),
]
* 3使用 noShow 隐藏按钮
DrawerButtonData: [
...requestData(this,false,false,['againHandleRequest']),
]
* @returns
*/
export function requestData(that,label){
export function requestData(that,label,initHide,noShow){
return [
{
type: 'primary',
icon: 'el-icon-circle-check',
label: label==undefined?'提交':label,
name: "submitRequest",
hide: () => { return hideButtonRequest(that, [1]) },
// label: label==undefined?'提交':label,
label: changeLabelText(label,requestDataNames.submit)?changeLabelText(label,requestDataNames.submit):'提交',
name: requestDataNames.submit,
hide: () => { return hideButtonRequest(that, [1], initHide, noShow , requestDataNames.submit) },
size: 'mini'
},
{
type: 'primary',
icon: 'el-icon-circle-check',
label: label==undefined?'审批':label,
name: "agreeRequest",
hide: () => { return hideButtonRequest(that, [2]) },
// label: label==undefined?'审批':label,
label: changeLabelText(label,requestDataNames.agree)?changeLabelText(label,requestDataNames.agree):'审批',
name: requestDataNames.agree,
hide: () => { return hideButtonRequest(that, [2], initHide, noShow , requestDataNames.agree) },
size: 'mini'
},
{
type: 'primary',
icon: 'el-icon-circle-check',
label: label==undefined?'处理':label,
name: "handleRequest",
hide: () => { return hideButtonRequest(that, [4]) },
// label: label==undefined?'处理':label,
label: changeLabelText(label,requestDataNames.handle)?changeLabelText(label,requestDataNames.handle):'处理',
name: requestDataNames.handle,
hide: () => { return hideButtonRequest(that, [4], initHide, noShow , requestDataNames.handle) },
size: 'mini'
},
{
type: 'primary',
icon: 'el-icon-circle-check',
label: '执行',
name: "againHandleRequest",
hide: () => { return hideButtonRequest(that, [9]) },
// label: '执行',
label: changeLabelText(label,requestDataNames.againHandle)?changeLabelText(label,requestDataNames.againHandle):'执行',
name: requestDataNames.againHandle,
hide: () => { return hideButtonRequest(that, [9], initHide, noShow , requestDataNames.againHandle) },
size: 'mini'
},
{
type: 'danger',
icon: 'el-icon-delete-solid',
label: '中止',
name: "abortRequest",
hide: () => { return hideButtonRequest(that, [5]) },
// label: '中止',
label: changeLabelText(label,requestDataNames.abort)?changeLabelText(label,requestDataNames.abort):'中止',
name: requestDataNames.abort,
hide: () => { return hideButtonRequest(that, [5], initHide, noShow , requestDataNames.abort) },
size: 'mini'
},
{
type: 'danger',
icon: 'el-icon-circle-check',
label: '驳回',
name: "refuseRequest",
hide: () => { return hideButtonRequest(that, [2]) },
// label: '驳回',
label: changeLabelText(label,requestDataNames.refuse)?changeLabelText(label,requestDataNames.refuse):'驳回',
name: requestDataNames.refuse,
hide: () => { return hideButtonRequest(that, [2], initHide, noShow , requestDataNames.refuse) },
size: 'mini'
},
{
type: 'danger',
icon: 'el-icon-delete-solid',
label: '取消',
name: "cancelRequest",
hide: () => { return hideButtonRequest(that, [1,2,4]) },
// label: '取消',
label: changeLabelText(label,requestDataNames.cancel)?changeLabelText(label,requestDataNames.cancel):'取消',
name: requestDataNames.cancel,
hide: () => { return hideButtonRequest(that, [1,2,4], initHide, noShow , requestDataNames.cancel) },
size: 'mini'
},
// {
// type: 'primary',
// icon: 'el-icon-circle-check',
// label: '执行',
// label: '执行完成',
// name: "completeRequest",
// hide: () => { return hideButtonRequest(that, [5]) },
// size: 'mini'
@ -130,13 +168,25 @@
]
}
function hideButtonRequest(that, val) {
function hideButtonRequest(that, val, initHide, noShow, name) {
let data = true
val.forEach(key => {
if (that.propsData.requestStatus == key) {
data = false
// 走自定义是否隐藏事件
if(initHide && initHide[name]){
data = initHide[name]()
}else{
// 隐藏按钮中是否有此按钮
if(noShow && noShow.indexOf(name) >= 0){
data = true
}else{
val.forEach(key => {
if (that.propsData.requestStatus == key) {
data = false
}
})
}
})
}
return data
}
@ -148,4 +198,12 @@ function hideButtonJob(that, val) {
}
})
return data
}
// 更改按钮自定义特殊名称
function changeLabelText(labels,name){
if(labels && labels[name]){
return labels[name]
}
return false
}

2
fe/PC/src/utils/summaryTableColumns/index.js

@ -35,7 +35,7 @@ export const InspectRequest = [
{ label: "样品率", prop: 'samplePercent' },
{ label: "破坏数量", prop: 'crackQty' },
{ label: "最终不合格数量", prop: 'notPassedQty' },
{ label: "检验报告", prop: 'inspectReport' },
{ label: "检验报告", fixed: "right",prop: 'inspectReport',type:'button',buttonName:'查看报告' },
{ label: "事务ID", prop: "tenantId" },
{ label: "检验类型", prop: "inspectType", type: "filter", filters: "inspectType" },
{ label: "不合格原因代码", prop: 'failedReason' },

1513
fe/PC/src/utils/tableColumns/index.js

File diff suppressed because it is too large

4020
fe/PC/src/utils/tableColumns/index_new.js

File diff suppressed because it is too large

68
fe/PC/src/utils/tabsDesTions/index.js

@ -1,3 +1,7 @@
import zh from '@/lang/zh'
let _Public = zh.ColumsPublic // 字段通用
let _Names = zh.ColumsNames // 接口监控看板
// 基础信息数据管理
/**/
// 物品基础信息 20230328
@ -16,7 +20,7 @@ export const ItemBasic = [
{ label: "有效期", prop: "validity" },
{ label: "有效期单位", prop: "validityUnit", type: "filter", filters: "validityUnit" },
{ label: "管理类型", prop: "manageType", type: "filter", filters: "manageType" },
{ label: "类型", prop: 'type' },
{ label: "类型", prop: 'type', type: "filter", filters: "ItemTypeBasic" },
{ label: "种类", prop: 'category' },
{ label: "分组", prop: 'group' },
{ label: "颜色", prop: 'color' },
@ -493,8 +497,10 @@ export const TransactionType = [
{ label: "直接生成记录", prop: 'directCreateNote', type: "filter", filters: "whetherOrNot" },
{ label: "是否可用", prop: 'enabled', type: "filter", filters: "whetherOrNot" },
{ label: "描述", prop: 'description' },
{ label: "入库库区列表", prop: 'inLocationAreas', type: "filterList", filters: "inventoryStage" },
{ label: "出库库区列表", prop: 'outLocationAreas', type: "filterList", filters: "inventoryStage" },
// { label: "入库库区列表", prop: 'inLocationAreas', type: "filterList", filters: "inventoryStage" },
// { label: "出库库区列表", prop: 'outLocationAreas', type: "filterList", filters: "inventoryStage" },
{ label: "入库库区列表", prop: 'inLocationAreas' },
{ label: "出库库区列表", prop: 'outLocationAreas' },
{ label: "备注", prop: 'remark' },
{ label: "事务ID", prop: "tenantId" },
{ label: "创建时间", prop: "creationTime", type:'dateTime' },
@ -1703,7 +1709,7 @@ export const labelsList = [
{ label: "单位", prop: "uom" },
{ label: "批次", prop: "lot" },
{ label: "库位", prop: "recommendLocationCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "类型", prop: "labelType", type: "filter", filters: "labelTypeStatus" },
{ label: "创建时间", prop: "creationTime",type:"dateTime" },
{ label: "创建者ID", prop: "creatorId" },
@ -1764,7 +1770,7 @@ export const InventoryInitialNote = [
{ label: "库位代码", prop: "locationCode" },
{ label: "库存状态", prop: "status",type: "filter", filters: "inventoryStage" },
{ label: "箱码", prop: 'packingCode' },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "是否可用", prop: "isActive", type: "filter", filters: "whetherOrNot" },
{ label: "创建时间", prop: "creationTime",type: "dateTime" },
{ label: "生产日期", prop: "produceDate" ,type: "dateTime" },
@ -1805,7 +1811,7 @@ export const InventoryTransaction = [
{ label: "出库/入库", prop: "transInOut",type: "filter", filters: "transInOutStatus" },
{ label: "数量", prop: "qty" },
{ label: "箱码", prop: "packingCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "库位代码", prop: "locationCode" },
{ label: "批次", prop: "lot" },
{ label: "库存状态", prop: "status" ,type: "filter", filters: "inventoryStage" },
@ -1853,7 +1859,7 @@ export const InventorySnapshot = [
{ label: "库位代码", prop: "locationCode" },
{ label: "库位组", prop: "locationGroup" },
{ label: "库区", prop: "locationArea" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "创建时间", prop: "creationTime",type: "dateTime" },
{ label: "创建者ID", prop: "creatorId" },
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime"},
@ -1931,7 +1937,7 @@ export const expectIn = [
{ label: "供应商批次", prop: "supplierBatch" },
{ label: "库区", prop: "locationArea" },
{ label: "库位组", prop: "locationGroup" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "生产日期", prop: "produceDate",type: "dateTime" },
{ label: "状态", prop: "status", type: "filter", filters: "jobStatus" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
@ -1963,7 +1969,7 @@ export const expectOut = [
{ label: "供应商批次", prop: "supplierBatch" },
{ label: "库区", prop: "locationArea" },
{ label: "库位组", prop: "locationGroup" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "ERP位", prop: "locationErpCode" },
{ label: "生产日期", prop: "produceDate", type: "dateTime" },
{ label: "状态", prop: "status", type: "filter", filters: "jobStatus" },
{ label: "创建时间", prop: "creationTime", type: "dateTime" },
@ -1982,6 +1988,42 @@ export const expectOut = [
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
// 物品安全库存预警
export const safetyStockWarning = [
{
label: "物品代码",
prop: "itemCode",
fixed: "left",
type: "name"
},
{ label: "最大库存", prop: 'maxStock' },
{ label: "最小库存", prop: 'minStock' },
{ label: "安全库存", prop: 'safetyStock' },
{ label: "安全库存状态", prop: 'safetyStockStatus' },
{ label: "仓库代码", prop: "warehouseCode" },
{ label: "存储关系代码", prop: "storeValue" },
{ label: "存储关系类型", prop: "storeRelationType", type: "filter", filters: "storeRelationType" },
{ label: "创建时间", prop: "creationTime",type: "dateTime",showProp: true },
{ label: "上次修改时间", prop: "lastModificationTime", type:'dateTime',showProp: true },
{ label: "备注", prop: 'remark' },
]
// 拆箱记录
export const splitPackingList = [
{
label: "单号",
prop: "number",
fixed: "left",
type: "name"
},
{ label: "生效日期", prop: 'activeDate', type: "dateTime" },
{ label: "创建时间", prop: 'creationTime', type:'dateTime' },
{ label: "备注", prop: 'remark' },
{ label: "操作员", prop: 'worker' },
// { label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime" },
]
// 非生产领料申请 20230417
export const pickingRequest = [
{ label: "领料单号码", prop: "number" },
@ -2489,7 +2531,6 @@ export const CountPlan = [
{ label: "上次修改时间", prop: 'lastModificationTime', type: "dateTime"},
{ label: "盘点根据", prop: "countMethod",type: "filter", filters: "countMethod" },
{ label: "类型", prop: "type",type: "filter", filters: "checkType" },
{ label: "阶段", prop: "stage", type: "filter", filters: "checkStage" },
{ label: "生效时间", prop: 'activeDate', type: "dateTime" },
{ label: "创建者ID", prop: "creatorId" },
{ label: "上次修改者ID", prop: "lastModifierId" },
@ -2502,6 +2543,7 @@ export const CountPlan = [
{ label: "物品代码JSON", prop: 'jsonItemCodes' },
{ label: "库位JSON", prop: 'jsonLocationCodes' },
// ************** 确认隐藏 ************************
// { label: "阶段", prop: "stage", type: "filter", filters: "checkStage" },
// { label: "ID", prop: 'id' },
// { label: "jsonInventoryStatus", prop: 'jsonInventoryStatus' },
// ************** 确认隐藏 ************************
@ -2522,7 +2564,6 @@ export const CountJob = [
{ label: "物品代码", prop: "itemCode" },
{ label: "库位代码", prop: "locationCode" },
{ label: "上游任务编号", prop: "upStreamJobNumber" },
{ label: "阶段", prop: "countStage", type: "filter", filters: "checkStage" },
{ label: "任务类型", prop: "jobType", type: "filter", filters: "taskType" },
{ label: "类型", prop: "type",type: "filter", filters: "checkType" },
{ label: "是否自动完成", prop: 'isAutoComplete', type: "filter", filters: "whetherOrNot" },
@ -2539,6 +2580,7 @@ export const CountJob = [
{ label: "工作组代码", prop: "workGroupCode" },
{ label: "仓库代码", prop: "warehouseCode" },
// ************** 确认隐藏 ************************
// { label: "阶段", prop: "countStage", type: "filter", filters: "checkStage" },
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
@ -2554,13 +2596,13 @@ export const CountNote = [
{ label: "生效时间", prop: "activeDate", type: "dateTime" },
{ label: "上次修改时间", prop: "lastModificationTime", type:'dateTime' },
{ label: "类型", prop: "type",type: "filter", filters: "checkType" },
{ label: "阶段", prop: "stage", type: "filter", filters: "stageType" },
{ label: "备注", prop: 'remark' },
{ label: "事务ID", prop: "tenantId" },
{ label: "创建者ID", prop: "creatorId" },
{ label: "上次修改者", prop: "lastModifierId" },
{ label: "描述", prop: "description" },
// ************** 确认隐藏 ************************
// { label: "阶段", prop: "stage", type: "filter", filters: "stageType" },
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
@ -2645,4 +2687,4 @@ export const Department = [
// ************** 确认隐藏 ************************
// { label: "ID", prop: 'id' },
// ************** 确认隐藏 ************************
]
]

35
fe/PC/src/utils/upDateVersion.js

@ -0,0 +1,35 @@
/**
* 检测版本更新 触发机制在 news/index 跟随消息定时器一并触发
*/
import Vue from 'vue'
import { getVsersion } from '@/api/wms-api'
export function updateVersion () {
let versionConfig = ''
// dev模式不开启更新功能
if (window.SITE_CONFIG['versionUrl'] && process.env.NODE_ENV != 'development') {
getVsersion().then(res => {
versionConfig = res.version
if (versionConfig) {
let version = localStorage.getItem('upDateVersion')
if (version != versionConfig) {
localStorage.setItem('upDateVersion', versionConfig)
setTimeout(() => {
save()
}, 1000 * 3)
}
}
}).catch(err => {
console.log(err)
})
}
}
function save () {
var vm = new Vue()
vm.$message.warning('新版本发布,自动更新升级中')
setTimeout(() => {
vm.$message.success('更新完成')
}, 1000 * 3)
setTimeout(() => {
location.reload()
}, 1000 * 5)
}

21
fe/PC/src/views/activeReportManage/largeScreen/arrivalBoard.vue

@ -1,20 +1,19 @@
<template>
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe>
<!-- 到货信息指示屏 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { createNewTabs } from '@/utils/index'
export default {
data() {
return {
url:null
}
},
activated () {
// this.url = localStorage.getItem('largeScreen') + '/#/arrivalBoard'
this.goto()
name:"arrivalBoard",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods: {
goto(){
window.open(localStorage.getItem('largeScreen') + "/#/arrivalBoard", "_blank")
openHandle(){
createNewTabs(localStorage.getItem('largeScreen') + "/#/arrivalBoard")
}
},
}

21
fe/PC/src/views/activeReportManage/largeScreen/logisticsTimeBoard.vue

@ -1,20 +1,19 @@
<template>
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe>
<!-- 物流时刻目视表 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { createNewTabs } from '@/utils/index'
export default {
data() {
return {
url:null
}
},
activated () {
// this.url = localStorage.getItem('largeScreen') + '/#/logisticsTimeBoard'
this.goto()
name:"logisticsTimeBoard",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods: {
goto(){
window.open(localStorage.getItem('largeScreen') + "/#/logisticsTimeBoard", "_blank")
openHandle(){
createNewTabs(localStorage.getItem('largeScreen') + "/#/logisticsTimeBoard")
}
},
}

21
fe/PC/src/views/activeReportManage/largeScreen/planAndActualBoard.vue

@ -1,20 +1,19 @@
<template>
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe>
<!-- 纳入计划与实际 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { createNewTabs } from '@/utils/index'
export default {
data() {
return {
url:null
}
},
activated () {
// this.url = localStorage.getItem('largeScreen') + '/#/planAndActualBoard'
this.goto()
name:"planAndActualBoard",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods: {
goto(){
window.open(localStorage.getItem('largeScreen') + "/#/planAndActualBoard", "_blank")
openHandle(){
createNewTabs(localStorage.getItem('largeScreen') + "/#/planAndActualBoard")
}
},
}

21
fe/PC/src/views/activeReportManage/largeScreen/warehouseBoard.vue

@ -1,20 +1,19 @@
<template>
<iframe class="fullPageIframe" :src="url" frameborder="0"></iframe>
<!-- 库房信息指示屏 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { createNewTabs } from '@/utils/index'
export default {
data() {
return {
url:null
}
},
activated () {
// this.url = localStorage.getItem('largeScreen') + '/#/warehouseBoard'
this.goto()
name:"warehouseBoard",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods: {
goto(){
window.open(localStorage.getItem('largeScreen') + "/#/warehouseBoard", "_blank")
openHandle(){
createNewTabs(localStorage.getItem('largeScreen') + "/#/warehouseBoard")
}
},
}

27
fe/PC/src/views/activeReportManage/popUpPage/index.vue

@ -0,0 +1,27 @@
<template>
<div class="popUpPage">
<span class="tipper">该页面已在外部弹出</span>
<el-button @click="openHandle" type="primary">重新打开</el-button>
</div>
</template>
<script>
export default {
name:"popUpPage",
props:{
openHandle: {
type: Function,
default: null
},
},
}
</script>
<style lang="scss">
.popUpPage{
width: 100%;
text-align: center;
padding-top: 20%;
.tipper{
padding-right: 20px;
}
}
</style>

16
fe/PC/src/views/activeReportManage/reportForm/InventoryAgingSegmentSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 库存账龄分段汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryAgingSegmentSummary",
data() {
return {
url:reportsAddress.InventoryAgingSegmentSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryAgingSegmentSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

19
fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail.vue

@ -1,15 +1,24 @@
<template>
<!-- 库存流水帐明细 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryBookDetail",
data() {
return {
url:reportsAddress.InventoryBookDetail,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
let _url = window.location.href.slice(0,window.location.href.indexOf('/#/'))
let _page = _url + '/#/InventoryBookDetail_innerPage?title=' + this.$route.meta.title
createNewTabs(_page)
// createNewTabs(reportsAddress.InventoryBookDetail + '?title=' + this.$route.meta.title)
}
}
}
</script>

609
fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage copy 3.vue

@ -0,0 +1,609 @@
<template>
<div class="InventoryBookDetail_innerPage" v-loading="loading">
<!-- 全部展示优化一半 -->
<!-- 搜索 -->
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader">
<el-form-item label="ERP储位" prop="erpLocatioCode">
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input>
</el-form-item>
<el-form-item label="零件" prop="itemCode">
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input>
</el-form-item>
<el-form-item label="账期" prop="interfaceCalendar">
<el-select
:loading="calendarLoading"
@change="calendarChange"
v-model="searchForm.interfaceCalendar"
placeholder="请选择账期"
>
<el-option
v-for="item in calendarList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.beginDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.endDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchHandle">查询</el-button>
</el-form-item>
</el-form>
<!-- table -->
<div class="tableContent" v-if="tableData">
<ul class="tableHeader">
<li>{{tableHeader.companyName}}</li>
<li><span class="tableName">库存流水帐 (料品)</span></li>
<li class="timeLi">
<div class="item">交易年月: {{ getYearMonth(tableHeader.beginDate) }} - {{ getYearMonth(tableHeader.endDate) }}</div>
<div class="item">制表日期{{ getNow() }}</div>
</li>
</ul>
<!-- :span-method="verticalMergeCell" -->
<el-table
height="calc(100vh - 180px)"
:data="tableData"
class="tableEl"
:row-class-name="tableRowClass"
>
<!-- <el-table-column type="index" label="序号"></el-table-column> -->
<!-- :show-overflow-tooltip="true" -->
<el-table-column
v-for="(item,key) in tableTh"
:prop="item.prop"
:label="item.label"
:align="item.prop.toLowerCase().indexOf('qty') >= 0 ? 'right' : 'left'"
:width="item.width"
>
<template slot-scope="scope">
<div v-if="scope.row.total_erp || scope.row.total_erp2 || scope.row.total_item">
<div v-if="scope.row.total_erp2">
<span v-if="totalProps[0] == item.prop" style="color: blue;font-weight:bold">库位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp2[item.prop]}}</span>
</div>
<div v-if="scope.row.total_erp">
<span v-if="totalProps[0] == item.prop" style="color: #ff6000;font-weight:bold">储位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp[item.prop]}}</span>
</div>
<div v-if="scope.row.total_item">
<span v-if="totalProps[0] == item.prop" style="color: #24b924;font-weight:bold">物料小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_item[item.prop]}}</span>
</div>
</div>
<div v-else>
<div v-if="item.prop == 'itemCode'">
<div>物料代码:<br/>{{ scope.row.level1[item.prop] }}</div>
<br/>
<div>物料名称:<br/>{{ scope.row.level1.itemName }}</div>
<br/>
<div>物料描述1:<br/>{{ scope.row.level1.itemDesc1 }}</div>
<br/>
<div v-if="scope.row.level1.configuration">配置码:<br/>{{ scope.row.level1.configuration }}</div>
</div>
<div v-else-if="item.prop == 'erpLocatioCode'">{{ scope.row.level2[item.prop] }}</div>
<div v-else>
<div v-if="scope.row.level4">
<div v-if="item.prop == 'sumInQty'">{{ scope.row.level4.inQty }}</div>
<div v-else-if="item.prop == 'sumOutQty'">{{ scope.row.level4.outQty }}</div>
<div v-else-if="item.prop == 'createDateTime'">{{ formatTime(scope.row.level4.createDateTime) }}</div>
<div v-else-if="item.prop == 'locationCode'">{{ scope.row.level4.locatioCode }}</div>
<div v-else-if="item.prop == 'interFaceName'">{{getInterFaceName(scope.row.level4)}}</div>
<div v-else-if="item.prop == 'enumTransType' || item.prop == 'enumTransSubType'">{{ scope.row.level4[item.prop] | trigger(item.option, "label") }}</div>
<div v-else>{{ scope.row.level4[item.prop] }}</div>
</div>
<div v-else>{{ scope.row.level3[item.prop] }}</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api'
import { formatTimeStampToNorm,formatTimeStrToStr } from '@/utils/formatTime'
export default {
name:"InventoryBookDetail_innerPage",
data(){
return{
loading:false,//
calendarLoading:false,//
tableData:null,//table
calendarList:[],//
//
searchForm:{
interfaceCalendar:null,
erpLocatioCode:null,
itemCode:null,//VW316C1A028A,UTT06PP5483
beginDate: '',//2021-10-01
endDate: '',//2023-11-28T23:59:59
},
//
formRule: {
beginDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }],
endDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }],
// itemCode: [{ required: true, trigger: "blur", message: "" }],
},
// table
tableHeader:{
beginDate: '',
endDate: '',
companyName:localStorage.getItem('companyName')
},
// table
tableTh:[
{label:'物料信息',prop:'itemCode',width:180},
{label:'ERP储位',prop:'erpLocatioCode',width:80},
{label:'库位代码',prop:'locationCode',width:90},
{label:'单号',prop:'number',width:170},
{label:'创建时间',prop:'createDateTime',width:160},
{label:'业务编号',prop:'docNumber',width:140},
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase'},
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType'},
{label:'对应接口',prop:'interFaceName',width:220},
{label:'期初库存',prop:'firstQty'},
{label:'入库',prop:'sumInQty'},
{label:'出库',prop:'sumOutQty'},
{label:'结存',prop:'nowQty'},
{label:'期末库存',prop:'lastQty'},
],
totalProps:['firstQty','lastQty','nowQty','sumInQty','sumOutQty'],//
indexArray_item: [], //itemCode
indexArray_erp: [], //erpLocatioCode
indexArray_erp2: [], //locationCode
}
},
mounted () {
this.getInterfaceCalendarList()
},
methods:{
//
formatTime(data){
// return data.slice(0,scope.row.level4.createDateTime.indexOf('T')
return formatTimeStrToStr(data)
},
//
getInterfaceCalendarList(){
this.calendarLoading = true
let _data = {
condition: {
filters: []
},
Sorting: "code DESC",
SkipCount: 0,
MaxResultCount: 1000
}
getInterfaceCalendar(_data).then(res => {
this.calendarList=res.items
this.calendarLoading = false
}).catch(err => {
this.calendarLoading = false
})
},
//
calendarChange(id){
let _item = this.calendarList.filter(item=>{
return item.id == id
})[0]
this.searchForm.beginDate = _item.beginTime
this.searchForm.endDate = _item.endTime
},
//
timeChange(data){
if(data){
this.searchForm.interfaceCalendar = ""
}
},
//
searchHandle(){
this.$refs.searchForm.validate((valid) => {
if (valid) {
this.getTableData()
} else {
return false;
}
});
},
//
getYearMonth(date){
return date.replaceAll('-',"").slice(0,8)
},
//
getNow(){
return formatTimeStampToNorm(new Date(),'date')
},
//
initTableData(res){
let _list = []
res.forEach(item1 => {
// item1.cellLength = 0
item1.reportErpLocationSerialDtos.forEach((item2,index2) => {
item2.reportLocationSerialDtos.forEach((item3,index3)=>{
//
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){
item3.reportTransactionSerialDtos.forEach((item4,index4)=>{
let _item = {
level1:item1,
level2:item2,
level3:item3,
level4:item4,
}
_list.push(_item)
// item1.cellLength ++
//
if(index4 == item3.reportTransactionSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
level4:item4,
total_erp2:item3
})
// item1.cellLength ++
}
})
}else{
let _item = {
level1:item1,
level2:item2,
level3:item3,
}
_list.push(_item)
item1.cellLength ++
//
// if(index3 == item2.reportLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
total_erp2:item3
})
item1.cellLength ++
// }
}
//
if(index3 == item2.reportLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
// level3:item3,
level3:{locationCode:null},
total_erp:item2,
})
// item1.cellLength ++
}
})
//
if(index2 == item1.reportErpLocationSerialDtos.length - 1){
_list.push({
level1:item1,
// level2:item2,
// level3:{locationCode:null},
level2:{erpLocatioCode:null},
level3:{locationCode:null},//locationCode
total_item:item1,
})
// item1.cellLength ++
}
})
});
return _list
},
// (T23:59:59)
initEndTime(data){
let _time = ""
if(data.indexOf('T') >= 0){
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59'
}else{
_time = data + 'T23:59:59'
}
return _time
},
//
getTableData(){
this.loading = true
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : []
getInventoryTransactionSerials(
`wms/inventory/inventory-transaction/item-serial-list?startDateTime=${this.searchForm.beginDate}&endDateTime=${this.initEndTime(this.searchForm.endDate)}&erpLocationCode=${this.searchForm.erpLocatioCode}`,
_itemCodes
).then(res => {
this.tableData = null
this.tableHeader.beginDate = this.searchForm.beginDate
this.tableHeader.endDate = this.searchForm.endDate
console.log(res)
this.$nextTick(() => {
this.tableData = this.initTableData(res)
// this.getIndexArr()
this.loading = false
})
}).catch(err => {
this.loading = false
})
},
// class
tableRowClass(data){
if(data.row.total_erp2){
return "totalRow"
}
if(data.row.total_erp){
return "totalRow-red"
}
if(data.row.total_item){
return "totalRow-green"
}
},
//
getIndexArr(){
// itemCode
let count_item = 0
// console.log(357,this.tableData)
for (let rowIndex = 0; rowIndex < this.tableData.length; ) {
this.indexArray_item.push(rowIndex)
count_item = this.getRows(rowIndex, this.tableData[rowIndex].level1.itemCode,'itemCode','level1')
rowIndex += count_item
}
// console.log(362,this.indexArray_item)
// // erpLocatioCode
// let count_erp = 0
// for (let rowIndex = 0; rowIndex < this.tableData.length; ) {
// this.indexArray_erp.push(rowIndex)
// count_erp = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2')
// rowIndex += count_erp
// }
// // locationCode
// let count_erp2 = 0
// for (let rowIndex = 0; rowIndex < this.tableData.length; ) {
// this.indexArray_erp2.push(rowIndex)
// count_erp2 = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3')
// rowIndex += count_erp2
// }
},
//
getRows(rowIndex, name,prop,level) {
let count = 0
for (let i = rowIndex; i < this.tableData.length; i++) {
if (this.tableData[i][level][prop] == name) {
count++
} else {
break
}
}
return count
},
//
verticalMergeCell({ row, column, rowIndex, columnIndex }) {
// itemCode
if (columnIndex == 0) {
let rowCount = 0
if (this.indexArray_item.includes(rowIndex)) {
// console.log('length',rowIndex,this.tableData.length)
// rowCount = this.getRows(rowIndex, row.level1.itemCode, 'itemCode','level1')
rowCount = row.level1.cellLength
// console.log(390,rowCount)
return {
rowspan: rowCount,
colspan: 1
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
// erpLocatioCode
// if (columnIndex == 1) {
// let rowCount = 0
// if (this.indexArray_erp.includes(rowIndex)) {
// rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2')
// return {
// rowspan: rowCount,
// colspan: 1
// }
// } else {
// return {
// rowspan: 0,
// colspan: 0
// }
// }
// }
// // locationCode
// if (columnIndex == 2) {
// let rowCount = 0
// if (this.indexArray_erp2.includes(rowIndex)) {
// rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3')
// return {
// rowspan: rowCount,
// colspan: 1
// }
// } else {
// return {
// rowspan: 0,
// colspan: 0
// }
// }
// }
},
//
getInterFaceName(item){
let _str = ""
if (item.enumTransType == 11) {
_str = '【TYRP】-【采购单】'
} else if (item.enumTransType == 12) {
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【验收单】*【EOS】-【验收单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 16) {
_str = '【TYRP】-【线边仓退料单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 21) {
_str = '【TYRP】-【缴库单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23) {
_str = '【TYRP】-【非生产领料单】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) {
_str = '【TYRP】-【非生产退料】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) {
_str = '【TYRP】-【回收料入库单】'
} else if (item.enumTransType == 22) {
_str = '【TYRP】-【退拆单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) {
_str = '【TYRP】-【盘点调整单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) {
_str = '【TYRP】-【线边仓调整单】'
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) {
_str = '【TYRP】-【回收料调整单】'
} else if (item.enumTransType == 36) {
_str = '【TYRP】-【报废单、线边仓报废单】'
} else {
_str = ''
}
return _str
},
}
}
</script>
<style lang="scss">
.InventoryBookDetail_innerPage{
background: #fff;
height: 100%;
.searchHeader{
background: #f1f1f1;
padding: 20px 30px 0;
border-bottom: 1px solid #dbdbdb;
.el-form-item{
margin-right: 25px !important;
}
.el-button{
background: #205f78 !important;
border-color: #ddd;
border-radius: 2px;
}
.el-form-item__label{
font-weight: normal;
}
.el-input__inner{
border-radius: 0px !important;
background: #ddd !important;
}
.el-input__inner:focus,
.el-input__inner:hover{
border-color: #ddd;
}
}
.tableHeader{
list-style: none;
text-align: center;
height: 80px;
overflow: hidden;
margin: 10px 0;
.tableName{
letter-spacing: 10px;
border-bottom: #333 solid 1px;
padding: 0 15px;
font-size: 18px;
}
.timeLi{
display: flex;
justify-content: center;
.item{
margin: 0 10px;
}
}
}
.tableEl{
width: 100%;
margin: 0px auto;
// background: transparent !important;
.el-table__cell{
vertical-align: initial !important;
padding: 5px 0 !important;
background: transparent !important;
}
tr{
background: transparent !important;
border: none !important;
}
th.el-table__cell{
padding: 0 !important;
color: #000 !important;
border: none !important;
border-bottom: #333 solid 1px !important;
.cell{
vertical-align: bottom !important;
}
}
td{
border: none !important;
color: #000 !important;
}
.totalRow{
td{
border-top: blue dashed 1px !important;
}
}
.totalRow-red{
td{
border-top: #ff6000 solid 1px !important;
}
}
.totalRow-green{
td{
border-top: #24b924 solid 1px !important;
}
}
}
}
</style>

464
fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage.vue

@ -0,0 +1,464 @@
<template>
<div class="InventoryBookDetail_innerPage" v-loading="loading">
<!-- 搜索 -->
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader">
<el-form-item label="ERP储位" prop="erpLocatioCode">
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input>
</el-form-item>
<el-form-item label="零件" prop="itemCode">
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input>
</el-form-item>
<el-form-item label="账期" prop="interfaceCalendar">
<el-select
:loading="calendarLoading"
@change="calendarChange"
v-model="searchForm.interfaceCalendar"
placeholder="请选择账期"
>
<el-option
v-for="item in calendarList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.beginDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.endDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchHandle">查询</el-button>
</el-form-item>
<!-- <el-form-item>
<el-button type="primary" @click="closeAll">全部收起</el-button>
</el-form-item> -->
</el-form>
<!-- table -->
<div class="tableContent" v-if="tableData && !loading">
<ul class="tableHeader">
<li>{{tableHeader.companyName}}</li>
<li><span class="tableName">库存流水帐 (料品)</span></li>
<li class="timeLi">
<div class="item">交易年月: {{ getYearMonth(tableHeader.beginDate) }} - {{ getYearMonth(tableHeader.endDate) }}</div>
<div class="item">制表日期{{ getNow() }}</div>
</li>
</ul>
<el-table
stripe
height="calc(100vh - 180px)"
:data="tableData"
class="tableEl"
row-key="id"
:expand-row-keys="expandRows"
lazy
:load="load"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
>
<el-table-column
v-for="(item,key) in tableTh"
:prop="item.prop"
:label="item.label"
:width="item.width"
:align="(item.prop).toLowerCase().indexOf('qty') >=0 ? 'right' : 'left'"
></el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api'
import { formatTimeStampToNorm,formatTimeStrToStr } from '@/utils/formatTime'
export default {
name:"InventoryBookDetail_innerPage",
data(){
return{
expandRows:[],
loading:false,//
calendarLoading:false,//
tableData:null,//table
calendarList:[],//
//
searchForm:{
interfaceCalendar:null,
erpLocatioCode:'',
itemCode:null,//VW316C1A028A,UTT06PP5483
beginDate: '',//2021-10-01
endDate: '',//2023-11-28T23:59:59
},
//
formRule: {
beginDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }],
endDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }],
// itemCode: [{ required: true, trigger: "blur", message: "" }],
},
// table
tableHeader:{
beginDate: '',
endDate: '',
companyName:localStorage.getItem('companyName')
},
// table
tableTh:[
{label:'物料代码',prop:'itemCode',width:170},
{label:'物料名称',prop:'itemName'},
{label:'物料描述',prop:'itemDesc1'},
{label:'物料配置',prop:'configuration'},
{label:'ERP储位',prop:'erpLocatioCode',width:80},
{label:'库位代码',prop:'locationCode',width:90},
{label:'单号',prop:'number',width:170},
{label:'创建时间',prop:'createDateTime',width:160},
{label:'业务编号',prop:'docNumber',width:140},
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase',width:90},
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType',width:90},
{label:'对应接口',prop:'interFaceName',width:220},
{label:'期初库存',prop:'firstQty'},
{label:'入库',prop:'sumInQty'},
{label:'出库',prop:'sumOutQty'},
{label:'结存',prop:'nowQty'},
{label:'期末库存',prop:'lastQty'},
],
}
},
mounted () {
this.getInterfaceCalendarList()
},
methods:{
// closeAll(){
// this.loading = true
// this.expandRows=[]
// setTimeout(()=>{
// this.loading = false
// },300)
// },
load(tree, treeNode, resolve) {
//
if(tree.reportErpLocationSerialDtos && tree.reportErpLocationSerialDtos.length > 0){
tree.reportErpLocationSerialDtos.forEach((item,key)=>{
item.id='id2-'+Math.random().toString()+key
if(item.reportLocationSerialDtos && item.reportLocationSerialDtos.length > 0){
item.hasChildren = true
}
})
resolve(tree.reportErpLocationSerialDtos)
}
//
if(tree.reportLocationSerialDtos && tree.reportLocationSerialDtos.length > 0){
tree.reportLocationSerialDtos.forEach((item,key)=>{
item.id='id3-'+Math.random().toString()+key
if(item.reportTransactionSerialDtos && item.reportTransactionSerialDtos.length > 0){
item.hasChildren = true
}
})
resolve(tree.reportLocationSerialDtos)
}
//
if(tree.reportTransactionSerialDtos && tree.reportTransactionSerialDtos.length > 0){
tree.reportTransactionSerialDtos.forEach((item,key)=>{
item.id='id4-'+Math.random().toString()+key;
item.createDateTime = this.formatTime(item.createDateTime)
item.interFaceName = this.getInterFaceName(item)
})
resolve(tree.reportTransactionSerialDtos)
}
},
//
formatTime(data){
// return data.slice(0,scope.row.level4.createDateTime.indexOf('T')
return formatTimeStrToStr(data)
},
//
getInterfaceCalendarList(){
this.calendarLoading = true
let _data = {
condition: {
filters: []
},
Sorting: "code DESC",
SkipCount: 0,
MaxResultCount: 1000
}
getInterfaceCalendar(_data).then(res => {
this.calendarList=res.items
this.calendarLoading = false
}).catch(err => {
this.calendarLoading = false
})
},
//
calendarChange(id){
let _item = this.calendarList.filter(item=>{
return item.id == id
})[0]
this.searchForm.beginDate = _item.beginTime
this.searchForm.endDate = _item.endTime
},
//
timeChange(data){
if(data){
this.searchForm.interfaceCalendar = ""
}
},
//
searchHandle(){
this.$refs.searchForm.validate((valid) => {
if (valid) {
this.getTableData()
} else {
return false;
}
});
},
//
getYearMonth(date){
return date.replaceAll('-',"").slice(0,8)
},
//
getNow(){
return formatTimeStampToNorm(new Date(),'date')
},
// (T23:59:59)
initEndTime(data){
let _time = ""
if(data.indexOf('T') >= 0){
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59'
}else{
_time = data + 'T23:59:59'
}
return _time
},
//
initTableData(res){
let _list = []
res.forEach((item1,key1) => {
let _item1 = JSON.parse(JSON.stringify(item1))
_item1.id='id1-'+key1+'-'+Math.random().toString()
this.expandRows.push(_item1.id)
if(item1.reportErpLocationSerialDtos && item1.reportErpLocationSerialDtos.length > 0){
// _item1.hasChildren = true
_item1.children = item1.reportErpLocationSerialDtos
_list.push(_item1)
item1.reportErpLocationSerialDtos.forEach((item2,key2)=>{
_list[key1].children[key2].id='id2-'+key2+'-'+Math.random().toString()
this.expandRows.push(_list[key1].children[key2].id)
if(item2.reportLocationSerialDtos && item2.reportLocationSerialDtos.length > 0){
_list[key1].children[key2].children=item2.reportLocationSerialDtos
item2.reportLocationSerialDtos.forEach((item3,key3)=>{
_list[key1].children[key2].children[key3].id='id3-'+key3+'-'+Math.random().toString()
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){
_list[key1].children[key2].children[key3].hasChildren = true
// item3.reportTransactionSerialDtos.forEach((item4,key4)=>{
// _list[key1].children[key2].children[key3].children[key4].id='id4-'+key4+'-'+Math.random().toString()
// })
// _list[key1].children[key2].children[key3].children = item3.reportTransactionSerialDtos
}
})
}
})
}
else{
_list.push(_item1)
}
});
this.tableData = _list
},
//
getTableData(){
this.loading = true
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : []
getInventoryTransactionSerials(
`wms/inventory/inventory-transaction/item-serial-list?startDateTime=${this.searchForm.beginDate}&endDateTime=${this.initEndTime(this.searchForm.endDate)}&erpLocationCode=${this.searchForm.erpLocatioCode}`,
_itemCodes
).then(res => {
console.log(res)
this.tableData = null
this.tableHeader.beginDate = this.searchForm.beginDate
this.tableHeader.endDate = this.searchForm.endDate
this.initTableData(res)
setTimeout(()=>{
this.loading = false
},0)
}).catch(err => {
this.loading = false
})
},
//
getInterFaceName(item){
let _str = ""
if (item.enumTransType == 11) {
_str = '【TYRP】-【采购单】'
} else if (item.enumTransType == 12) {
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【验收单】*【EOS】-【验收单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 16) {
_str = '【TYRP】-【线边仓退料单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 21) {
_str = '【TYRP】-【缴库单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23) {
_str = '【TYRP】-【非生产领料单】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) {
_str = '【TYRP】-【非生产退料】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) {
_str = '【TYRP】-【回收料入库单】'
} else if (item.enumTransType == 22) {
_str = '【TYRP】-【退拆单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) {
_str = '【TYRP】-【盘点调整单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) {
_str = '【TYRP】-【线边仓调整单】'
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) {
_str = '【TYRP】-【回收料调整单】'
} else if (item.enumTransType == 36) {
_str = '【TYRP】-【报废单、线边仓报废单】'
} else {
_str = ''
}
return _str
},
}
}
</script>
<style lang="scss">
.InventoryBookDetail_innerPage{
background: #fff;
height: 100%;
.searchHeader{
background: #f1f1f1;
padding: 20px 30px 0;
border-bottom: 1px solid #dbdbdb;
.el-form-item{
margin-right: 25px !important;
}
.el-button{
background: #205f78 !important;
border-color: #ddd;
border-radius: 2px;
}
.el-form-item__label{
font-weight: normal;
}
.el-input__inner{
border-radius: 0px !important;
background: #ddd !important;
}
.el-input__inner:focus,
.el-input__inner:hover{
border-color: #ddd;
}
}
.tableHeader{
list-style: none;
text-align: center;
height: 80px;
overflow: hidden;
margin: 10px 0;
.tableName{
letter-spacing: 10px;
border-bottom: #333 solid 1px;
padding: 0 15px;
font-size: 18px;
}
.timeLi{
display: flex;
justify-content: center;
.item{
margin: 0 10px;
}
}
}
.tableEl{
width: 100%;
margin: 0px auto;
// background: transparent !important;
.el-table__cell{
padding: 5px 0 !important;
// background: transparent !important;
}
tr{
// background: transparent !important;
border: none !important;
}
th.el-table__cell{
padding: 0 !important;
color: #000 !important;
border: none !important;
border-bottom: #333 solid 1px !important;
vertical-align: initial !important;
.cell{
vertical-align: bottom !important;
}
}
td{
border: none !important;
color: #000 !important;
}
.totalRow{
td{
border-top: blue dashed 1px !important;
}
}
.totalRow-red{
td{
border-top: #ff6000 solid 1px !important;
}
}
.totalRow-green{
td{
border-top: #24b924 solid 1px !important;
}
}
}
.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{
background: #f2f2f2;
}
}
</style>

601
fe/PC/src/views/activeReportManage/reportForm/InventoryBookDetail_innerPage_old.vue

@ -0,0 +1,601 @@
<template>
<div class="InventoryBookDetail_innerPage_old" v-loading="loading">
<!-- 修改前 -->
<!-- 搜索 -->
<el-form ref="searchForm" :inline="true" :rules="formRule" :model="searchForm" size="small" class="searchHeader">
<el-form-item label="ERP储位" prop="erpLocatioCode">
<el-input v-model="searchForm.erpLocatioCode" placeholder="请输入ERP储位"></el-input>
</el-form-item>
<el-form-item label="零件" prop="itemCode">
<el-input v-model="searchForm.itemCode" placeholder="请输入零件"></el-input>
</el-form-item>
<el-form-item label="账期" prop="interfaceCalendar">
<el-select
:loading="calendarLoading"
@change="calendarChange"
v-model="searchForm.interfaceCalendar"
placeholder="请选择账期"
>
<el-option
v-for="item in calendarList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="开始时间" prop="beginDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.beginDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endDate">
<el-date-picker
@change="timeChange"
value-format="yyyy-MM-dd"
v-model="searchForm.endDate"
type="date"
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchHandle">查询</el-button>
</el-form-item>
</el-form>
<!-- table -->
<div class="tableContent" v-if="tableData">
<ul class="tableHeader">
<li>{{tableHeader.companyName}}</li>
<li><span class="tableName">库存流水帐 (料品)</span></li>
<li class="timeLi">
<div class="item">交易年月: {{ getYearMonth(tableHeader.beginDate) }} - {{ getYearMonth(tableHeader.endDate) }}</div>
<div class="item">制表日期{{ getNow() }}</div>
</li>
</ul>
<el-table
:data="tableData"
class="tableEl"
height="calc(100vh - 180px)"
:span-method="verticalMergeCell"
:row-class-name="tableRowClass"
>
<!-- <el-table-column type="index" label="序号"></el-table-column> -->
<el-table-column
v-for="(item,key) in tableTh"
:prop="item.prop"
:label="item.label"
:align="item.prop.toLowerCase().indexOf('qty') >= 0 ? 'right' : 'left'"
:width="item.width"
>
<template slot-scope="scope">
<div v-if="scope.row.total_erp || scope.row.total_erp2 || scope.row.total_item">
<div v-if="scope.row.total_erp2">
<span v-if="totalProps[0] == item.prop" style="color: blue;font-weight:bold">库位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp2[item.prop]}}</span>
</div>
<div v-if="scope.row.total_erp">
<span v-if="totalProps[0] == item.prop" style="color: #ff6000;font-weight:bold">储位小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_erp[item.prop]}}</span>
</div>
<div v-if="scope.row.total_item">
<span v-if="totalProps[0] == item.prop" style="color: #24b924;font-weight:bold">物料小计</span>
<span v-if="totalProps.indexOf(item.prop) >= 0">{{scope.row.total_item[item.prop]}}</span>
</div>
</div>
<div v-else>
<div v-if="item.prop == 'itemCode'">
<div>物料代码:<br/>{{ scope.row.level1[item.prop] }}</div>
<br/>
<div>物料名称:<br/>{{ scope.row.level1.itemName }}</div>
<br/>
<div>物料描述1:<br/>{{ scope.row.level1.itemDesc1 }}</div>
<br/>
<div v-if="scope.row.level1.configuration">配置码:<br/>{{ scope.row.level1.configuration }}</div>
</div>
<div v-else-if="item.prop == 'erpLocatioCode'">{{ scope.row.level2[item.prop] }}</div>
<div v-else>
<div v-if="scope.row.level4">
<div v-if="item.prop == 'sumInQty'">{{ scope.row.level4.inQty }}</div>
<div v-else-if="item.prop == 'sumOutQty'">{{ scope.row.level4.outQty }}</div>
<div v-else-if="item.prop == 'createDateTime'">{{ formatTime(scope.row.level4.createDateTime) }}</div>
<div v-else-if="item.prop == 'locationCode'">{{ scope.row.level4.locatioCode }}</div>
<div v-else-if="item.prop == 'interFaceName'">{{getInterFaceName(scope.row.level4)}}</div>
<div v-else-if="item.prop == 'enumTransType' || item.prop == 'enumTransSubType'">{{ scope.row.level4[item.prop] | trigger(item.option, "label") }}</div>
<div v-else>{{ scope.row.level4[item.prop] }}</div>
</div>
<div v-else>{{ scope.row.level3[item.prop] }}</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
</template>
<script>
import { getInventoryTransactionSerials,getInterfaceCalendar } from '@/api/wms-api'
import { formatTimeStampToNorm,formatTimeStrToStr } from '@/utils/formatTime'
export default {
name:"InventoryBookDetail_innerPage_old",
data(){
return{
loading:false,//
calendarLoading:false,//
tableData:null,//table
calendarList:[],//
//
searchForm:{
interfaceCalendar:null,
erpLocatioCode:null,
itemCode:null,//VW316C1A028A,UTT06PP5483
beginDate: '',//2021-10-01
endDate: '',//2023-11-28T23:59:59
},
//
formRule: {
beginDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }],
endDate: [{ required: true, trigger: ['blur','change'], message: "不可为空" }],
// itemCode: [{ required: true, trigger: "blur", message: "" }],
},
// table
tableHeader:{
beginDate: '',
endDate: '',
companyName:localStorage.getItem('companyName')
},
// table
tableTh:[
{label:'物料信息',prop:'itemCode',width:180},
{label:'ERP储位',prop:'erpLocatioCode',width:80},
{label:'库位代码',prop:'locationCode',width:90},
{label:'单号',prop:'number',width:170},
{label:'创建时间',prop:'createDateTime',width:160},
{label:'业务编号',prop:'docNumber',width:140},
{label:'业务主类型',prop:'enumTransType',type:'filter',option:'TransTypeBase'},
{label:'业务子类型',prop:'enumTransSubType',type:'filter',option:'transSubType'},
{label:'对应接口',prop:'interFaceName',width:220},
{label:'期初库存',prop:'firstQty'},
{label:'入库',prop:'sumInQty'},
{label:'出库',prop:'sumOutQty'},
{label:'结存',prop:'nowQty'},
{label:'期末库存',prop:'lastQty'},
],
totalProps:['firstQty','lastQty','nowQty','sumInQty','sumOutQty'],//
indexArray_item: [], //itemCode
indexArray_erp: [], //erpLocatioCode
indexArray_erp2: [], //locationCode
}
},
mounted () {
this.getInterfaceCalendarList()
},
methods:{
//
formatTime(data){
// return data.slice(0,scope.row.level4.createDateTime.indexOf('T')
return formatTimeStrToStr(data)
},
//
getInterfaceCalendarList(){
this.calendarLoading = true
let _data = {
condition: {
filters: []
},
Sorting: "code DESC",
SkipCount: 0,
MaxResultCount: 1000
}
getInterfaceCalendar(_data).then(res => {
this.calendarList=res.items
this.calendarLoading = false
}).catch(err => {
this.calendarLoading = false
})
},
//
calendarChange(id){
let _item = this.calendarList.filter(item=>{
return item.id == id
})[0]
this.searchForm.beginDate = _item.beginTime
this.searchForm.endDate = _item.endTime
},
//
timeChange(data){
if(data){
this.searchForm.interfaceCalendar = ""
}
},
//
searchHandle(){
this.$refs.searchForm.validate((valid) => {
if (valid) {
this.getTableData()
} else {
return false;
}
});
},
//
getYearMonth(date){
return date.replaceAll('-',"").slice(0,8)
},
//
getNow(){
return formatTimeStampToNorm(new Date(),'date')
},
//
initTableData(res){
let _list = []
res.forEach(item1 => {
item1.reportErpLocationSerialDtos.forEach((item2,index2) => {
item2.reportLocationSerialDtos.forEach((item3,index3)=>{
//
if(item3.reportTransactionSerialDtos && item3.reportTransactionSerialDtos.length > 0){
item3.reportTransactionSerialDtos.forEach((item4,index4)=>{
let _item = {
level1:item1,
level2:item2,
level3:item3,
level4:item4,
}
_list.push(_item)
//
if(index4 == item3.reportTransactionSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
level4:item4,
total_erp2:item3
})
}
})
}else{
let _item = {
level1:item1,
level2:item2,
level3:item3,
}
_list.push(_item)
//
// if(index3 == item2.reportLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
level3:item3,
total_erp2:item3
})
// }
}
//
if(index3 == item2.reportLocationSerialDtos.length - 1){
_list.push({
level1:item1,
level2:item2,
// level3:item3,
level3:{locationCode:null},
total_erp:item2,
})
}
})
//
if(index2 == item1.reportErpLocationSerialDtos.length - 1){
_list.push({
level1:item1,
// level2:item2,
// level3:{locationCode:null},
level2:{erpLocatioCode:null},
level3:{locationCode:null},//locationCode
total_item:item1,
})
}
})
});
return _list
},
// (T23:59:59)
initEndTime(data){
let _time = ""
if(data.indexOf('T') >= 0){
_time = data.slice(0,data.indexOf('T')) + 'T23:59:59'
}else{
_time = data + 'T23:59:59'
}
return _time
},
//
getTableData(){
this.loading = true
let _itemCodes = this.searchForm.itemCode ? this.searchForm.itemCode.split(',') : []
// getInventoryTransactionSerials(
// _itemCodes,{
// startDateTime:this.searchForm.beginDate,
// endDateTime:this.initEndTime(this.searchForm.endDate),
// erpLocatioCode:this.searchForm.erpLocatioCode,
// }).then(res => {
getInventoryTransactionSerials(
`wms/inventory/inventory-transaction/item-serial-list?startDateTime=${this.searchForm.beginDate}&endDateTime=${this.initEndTime(this.searchForm.endDate)}&erpLocationCode=${this.searchForm.erpLocatioCode}`,
_itemCodes
).then(res => {
this.tableData = null
this.tableHeader.beginDate = this.searchForm.beginDate
this.tableHeader.endDate = this.searchForm.endDate
this.$nextTick(() => {
this.tableData = this.initTableData(res)
this.getIndexArr()
this.loading = false
})
}).catch(err => {
this.loading = false
})
},
// class
tableRowClass(data){
if(data.row.total_erp2){
return "totalRow"
}
if(data.row.total_erp){
return "totalRow-red"
}
if(data.row.total_item){
return "totalRow-green"
}
},
//
getIndexArr(){
// itemCode
let count_item = 0
for (let rowIndex = 0; rowIndex < this.tableData.length; ) {
this.indexArray_item.push(rowIndex)
count_item = this.getRows(rowIndex, this.tableData[rowIndex].level1.itemCode,'itemCode','level1')
rowIndex += count_item
}
// erpLocatioCode
let count_erp = 0
for (let rowIndex = 0; rowIndex < this.tableData.length; ) {
this.indexArray_erp.push(rowIndex)
count_erp = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2')
rowIndex += count_erp
}
// locationCode
let count_erp2 = 0
for (let rowIndex = 0; rowIndex < this.tableData.length; ) {
this.indexArray_erp2.push(rowIndex)
count_erp2 = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3')
rowIndex += count_erp2
}
},
//
getRows(rowIndex, name,prop,level) {
let count = 0
for (let i = rowIndex; i < this.tableData.length; i++) {
if (this.tableData[i][level][prop] == name) {
count++
} else {
break
}
}
return count
},
//
verticalMergeCell({ row, column, rowIndex, columnIndex }) {
// itemCode
if (columnIndex == 0) {
let rowCount = 0
if (this.indexArray_item.includes(rowIndex)) {
rowCount = this.getRows(rowIndex, row.level1.itemCode, 'itemCode','level1')
return {
rowspan: rowCount,
colspan: 1
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
// erpLocatioCode
if (columnIndex == 1) {
let rowCount = 0
if (this.indexArray_erp.includes(rowIndex)) {
rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level2.erpLocatioCode,'erpLocatioCode','level2')
return {
rowspan: rowCount,
colspan: 1
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
// locationCode
if (columnIndex == 2) {
let rowCount = 0
if (this.indexArray_erp2.includes(rowIndex)) {
rowCount = this.getRows(rowIndex, this.tableData[rowIndex].level3.locationCode,'locationCode','level3')
return {
rowspan: rowCount,
colspan: 1
}
} else {
return {
rowspan: 0,
colspan: 0
}
}
}
},
//
getInterFaceName(item){
let _str = ""
if (item.enumTransType == 11) {
_str = '【TYRP】-【采购单】'
} else if (item.enumTransType == 12) {
_str = '【TYRP】-【采购退货单】*【EOS】-【退货单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【验收单】*【EOS】-【验收单】'
} else if (item.enumTransType == 14 && item.enumTransSubType == 4401) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1505) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 15 && item.enumTransSubType == 1501) {
_str = '【TYRP】-【线边仓领料单】*【MES】-【发料单】'
} else if (item.enumTransType == 16) {
_str = '【TYRP】-【线边仓退料单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3102) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3104) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 31 && item.enumTransSubType == 3105) {
_str = '【TYRP】-【储位、线边仓调拨单 和 客户储位调拨单】'
} else if (item.enumTransType == 21) {
_str = '【TYRP】-【缴库单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2302) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23 && item.enumTransSubType == 2303) {
_str = '【TYRP】-【出货单】'
} else if (item.enumTransType == 23) {
_str = '【TYRP】-【非生产领料单】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 0) {
_str = '【TYRP】-【非生产退料】'
} else if (item.enumTransType == 33 && item.enumTransSubType == 3301) {
_str = '【TYRP】-【回收料入库单】'
} else if (item.enumTransType == 22) {
_str = '【TYRP】-【退拆单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 0) {
_str = '【TYRP】-【盘点调整单】'
} else if (item.enumTransType == 37 && item.enumTransSubType == 3701) {
_str = '【TYRP】-【线边仓调整单】'
} else if (item.enumTransType == 38 && item.enumTransSubType == 3302) {
_str = '【TYRP】-【回收料调整单】'
} else if (item.enumTransType == 36) {
_str = '【TYRP】-【报废单、线边仓报废单】'
} else {
_str = ''
}
return _str
},
}
}
</script>
<style lang="scss">
.InventoryBookDetail_innerPage_old{
background: #fff;
height: 100%;
.searchHeader{
background: #f1f1f1;
padding: 20px 30px 0;
border-bottom: 1px solid #dbdbdb;
.el-form-item{
margin-right: 25px !important;
}
.el-button{
background: #205f78 !important;
border-color: #ddd;
border-radius: 2px;
}
.el-form-item__label{
font-weight: normal;
}
.el-input__inner{
border-radius: 0px !important;
background: #ddd !important;
}
.el-input__inner:focus,
.el-input__inner:hover{
border-color: #ddd;
}
}
.tableHeader{
list-style: none;
text-align: center;
height: 80px;
overflow: hidden;
margin: 10px 0;
.tableName{
letter-spacing: 10px;
border-bottom: #333 solid 1px;
padding: 0 15px;
font-size: 18px;
}
.timeLi{
display: flex;
justify-content: center;
.item{
margin: 0 10px;
}
}
}
.tableEl{
width: 100%;
margin: 0px auto;
// background: transparent !important;
.el-table__cell{
vertical-align: initial !important;
padding: 5px 0 !important;
background: transparent !important;
}
tr{
background: transparent !important;
border: none !important;
}
th.el-table__cell{
padding: 0 !important;
color: #000 !important;
border: none !important;
border-bottom: #333 solid 1px !important;
.cell{
vertical-align: bottom !important;
}
}
td{
border: none !important;
color: #000 !important;
}
.totalRow{
td{
border-top: blue dashed 1px !important;
}
}
.totalRow-red{
td{
border-top: #ff6000 solid 1px !important;
}
}
.totalRow-green{
td{
border-top: #24b924 solid 1px !important;
}
}
}
}
</style>

16
fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 库存流水帐汇总 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryBookSummary",
data() {
return {
url:reportsAddress.InventoryBookSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryBookSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

21
fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummaryERP_pay.vue

@ -0,0 +1,21 @@
<template>
<!-- 库存流水帐汇总ERP储位-账期 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryBookSummaryERP_pay",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryBookSummaryERP_pay + '?title=' + this.$route.meta.title)
}
}
}
</script>

21
fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummaryLocation.vue

@ -0,0 +1,21 @@
<template>
<!-- 库存流水帐汇总(库位) -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryBookSummaryLocation",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryBookSummaryLocation + '?title=' + this.$route.meta.title)
}
}
}
</script>

21
fe/PC/src/views/activeReportManage/reportForm/InventoryBookSummaryWMS_pay.vue

@ -0,0 +1,21 @@
<template>
<!-- 库存流水账汇总WMS库位-账期 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryBookSummaryWMS_pay",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryBookSummaryWMS_pay + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/InventoryDetailReport.vue

@ -1,15 +1,21 @@
<template>
<!-- 库存账龄明细 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"InventoryDetailReport",
data() {
return {
url:reportsAddress.Inventory_Detail,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.Inventory_Detail + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/UnplannedDeliverSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 计划外出库汇总 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"UnplannedDeliverSummary",
data() {
return {
url:reportsAddress.UnplannedDeliverSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.UnplannedDeliverSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

17
fe/PC/src/views/activeReportManage/reportForm/completionReceiptSummary.vue

@ -1,15 +1,28 @@
<template>
<!-- 完工收货汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<!-- <iframe :src="url" class="fullPageIframe"></iframe> -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"completionReceiptSummary",
components:{popUpPage},
data() {
return {
url:reportsAddress.CompletionReceiptSummary,
// url: reportsAddress.CompletionReceiptSummary,
url:null
}
},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.CompletionReceiptSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/finishedProductDeliverySummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 成品发货汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"finishedProductDeliverySummary",
data() {
return {
url:reportsAddress.FinishedProductDeliverySummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.FinishedProductDeliverySummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/inventoryBalanceReport.vue

@ -1,15 +1,21 @@
<template>
<!-- 库存余额报表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"inventoryBalanceReport",
data() {
return {
url:reportsAddress.InventoryBlanace,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryBlanace + '?title=' + this.$route.meta.title)
}
}
}
</script>

21
fe/PC/src/views/activeReportManage/reportForm/inventoryBalanceReportLocationCode.vue

@ -0,0 +1,21 @@
<template>
<!-- 库存余额报表按库位 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"inventoryBalanceReportLocationCode",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.inventoryBalanceReportLocationCode + '?title=' + this.$route.meta.title)
}
}
}
</script>

21
fe/PC/src/views/activeReportManage/reportForm/inventoryBalanceReportLocationErpCode.vue

@ -0,0 +1,21 @@
<template>
<!-- 库存余额报表按ERP库位 -->
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"inventoryBalanceReportLocationErpCode",
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.inventoryBalanceReportLocationErpCode + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/inventoryReport.vue

@ -1,15 +1,21 @@
<template>
<!-- 库存单据明细报表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"inventoryReport",
data() {
return {
url:reportsAddress.InventoryAccountingPeriodDetails,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventoryAccountingPeriodDetails + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/inventorySummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 盘点记录汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"inventorySummary",
data() {
return {
url:reportsAddress.InventorySummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.InventorySummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

13
fe/PC/src/views/activeReportManage/reportForm/inventoryTransactions.vue

@ -1,13 +0,0 @@
<template>
<!-- 库存事务 暂不使用-->
<iframe :src="url" class="fullPageIframe"></iframe>
</template>
<script>
export default {
data() {
return {
url:"http://10.74.150.81:9528/#/reports/202205311631455213.rdlx",
}
},
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/productionIssuanceSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 生产发料汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"productionIssuanceSummary",
data() {
return {
url:reportsAddress.ProductionIssueSummary_dy,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.ProductionIssueSummary_dy + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/productionReturnSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 生产退料汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"productionReturnSummary",
data() {
return {
url:reportsAddress.ProductionReturnSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.ProductionReturnSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/purchaseReceiptSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 采购收货汇总表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"purchaseReceiptSummary",
data() {
return {
url:reportsAddress.PurchaseReceiptSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.PurchaseReceiptSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/purchaseReturnSummaryReport.vue

@ -1,15 +1,21 @@
<template>
<!-- 采购退货汇总 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"purchaseReturnSummaryReport",
data() {
return {
url:reportsAddress.PurchaseReturnSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.PurchaseReturnSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/purchaseSum.vue

@ -1,15 +1,21 @@
<template>
<!-- 订单汇总查询 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"purchaseSum",
data() {
return {
url:reportsAddress.PurchaseSum,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.PurchaseSum + '?title=' + this.$route.meta.title)
}
}
}
</script>

14
fe/PC/src/views/activeReportManage/reportForm/safetyStockReport.vue

@ -1,14 +0,0 @@
<template>
<!-- 安全库存报表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
</template>
<script>
export default {
name:"safetyStockReport",
data() {
return {
url:"http://10.74.150.81:9528/#/reports/202205311631455213.rdlx",
}
},
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/scrapDetails.vue

@ -1,15 +1,21 @@
<template>
<!-- 报废明细表 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"scrapDetails",
data() {
return {
url:reportsAddress.Scrap_Detail,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.Scrap_Detail + '?title=' + this.$route.meta.title)
}
}
}
</script>

16
fe/PC/src/views/activeReportManage/reportForm/unplannedReceiptSummary.vue

@ -1,15 +1,21 @@
<template>
<!-- 计划外入库汇总 -->
<iframe :src="url" class="fullPageIframe"></iframe>
<popUpPage :openHandle="openHandle"></popUpPage>
</template>
<script>
import popUpPage from "../popUpPage/index.vue"
import { reportsAddress } from "@/filters/excelOrReportsOption";
import { createNewTabs } from '@/utils/index'
export default {
name:"unplannedReceiptSummary",
data() {
return {
url:reportsAddress.UnPlannedReceiptSummary,
}
components:{popUpPage},
mounted () {
this.openHandle()
},
methods:{
openHandle(){
createNewTabs(reportsAddress.UnPlannedReceiptSummary + '?title=' + this.$route.meta.title)
}
}
}
</script>

1
fe/PC/src/views/basicData/BomManage/Bom.vue

@ -51,7 +51,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

9
fe/PC/src/views/basicData/CustomerManage/Customer.vue

@ -50,7 +50,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
@ -60,7 +59,7 @@
:tableColumns="tableColumns"
:DrawerLoading="Loading.DrawerLoading"
:drawer="displayDialog.detailsDialog"
:dropdownData="dropdownData"
:Butttondata="[]"
:propsData="propsData"
:tabsDesTions="tabsDesTions"
@drawerShut="(val) => (displayDialog.detailsDialog = val)"
@ -99,8 +98,8 @@ export default {
URL: 'basedata/customer',
//
currenButtonData: [
this.defaultAddBtn(),//
this.defaultImportBtn(),//
// this.defaultAddBtn(),//
// this.defaultImportBtn(),//
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
@ -144,7 +143,7 @@ export default {
},
editOptions: {},
CreateForm: [
{ type: "input", label: "客户代码", prop: "code", colSpan: 12, validType:'numberLetter' },
{ type: "input", label: "客户代码", prop: "code", colSpan: 12, validType:'numberLetterBar' },
{ type: "input", label: "客户名称", prop: 'name', colSpan: 12 },
{ type: "input", label: "客户简称", prop: 'shortName', colSpan: 12 },
{ type: "select", label: "类型", prop: "type", options: "customerType", colSpan: 12 },

1
fe/PC/src/views/basicData/CustomerManage/CustomerAddress.vue

@ -67,7 +67,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/CustomerManage/CustomerItem.vue

@ -67,7 +67,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/CustomerManage/Project.vue

@ -67,7 +67,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/DictionaryManage/Category.vue

@ -50,7 +50,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/DictionaryManage/Dict.vue

@ -33,7 +33,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/DictionaryManage/Uom.vue

@ -50,7 +50,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

5
fe/PC/src/views/basicData/ItemsManage/AQL.vue

@ -51,7 +51,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
@ -195,7 +194,7 @@ export default {
{ type: "input", label: "数量下限", prop: "floorQty", validType:'number', colSpan: 12 },
{ type: "input", label: "数量上限", prop: "ceilingQty", validType:'number', colSpan: 12 },
{ type: "select", label: "ABC类", prop: "abcClass", options: "abcClass", clearable: true, filterable: true, allowCreate: true, colSpan: 12 },
{ type: "input", label: "抽检数量", prop: "sampleQty", validType:'number', colSpan: 12 },
{ type: "input", label: "抽检数量", prop: "sampleQty", validType:'pointNumber', colSpan: 12 },
{ type: "select", label: "使用百分比", prop: "isUsePercent", options: "whetherOrNot", colSpan: 12 },
{ type: "number", label: "抽检百分比", prop: "samplePercent", validType:'number', colSpan: 12, precision:0, min: 0 ,max:100 },
{ type: "input", label: "备注", prop: "remark", colSpan: 12 },
@ -210,7 +209,7 @@ export default {
{ type: "input", label: "数量下限", prop: "floorQty", validType:'number', colSpan: 12 },
{ type: "input", label: "数量上限", prop: "ceilingQty", validType:'number', colSpan: 12 },
{ type: "select", label: "ABC类", prop: "abcClass", options: "abcClass", clearable: true, filterable: true, allowCreate: true, colSpan: 12 },
{ type: "input", label: "抽检数量", prop: "sampleQty", validType:'number', colSpan: 12 },
{ type: "input", label: "抽检数量", prop: "sampleQty", validType:'pointNumber', colSpan: 12 },
{ type: "select", label: "使用百分比", prop: "isUsePercent", options: "whetherOrNot", colSpan: 12 },
{ type: "number", label: "抽检百分比", prop: "samplePercent", validType:'number', colSpan: 12, precision:0, min: 0 ,max:100 },
{ type: "input", label: "备注", prop: "remark", colSpan: 12 },

19
fe/PC/src/views/basicData/ItemsManage/ItemBasic.vue

@ -75,7 +75,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
@ -130,8 +129,8 @@ export default {
tableLoading:false,
//
currenButtonData: [
this.defaultAddBtn(),//
this.defaultImportBtn(),//
// this.defaultAddBtn(),//
// this.defaultImportBtn(),//
this.defaultExportBtn(),//
this.defaultFieldSettingBtn(),//
this.defaultFreshBtn(),//
@ -326,13 +325,13 @@ export default {
tableColumns: 'ItemCategory',
functionName: 'getListByItemcode'
},
{
label: "包装信息",
name: 'bzxx',
url: 'basedata/item-pack',
tableColumns: 'ItemPack',
functionName: 'getListByItemcode'
},
// {
// label: "",
// name: 'bzxx',
// url: 'basedata/item-pack',
// tableColumns: 'ItemPack',
// functionName: 'getListByItemcode'
// },
{
label: "库存余额",
name: 'kcye',

1
fe/PC/src/views/basicData/ItemsManage/ItemCategory.vue

@ -67,7 +67,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/ItemsManage/ItemPack.vue

@ -50,7 +50,6 @@
:URL="URL"
:disabledMethod={method1:false,method2:false,method3:false}
:disabledIsAllowPartImport={isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/ItemsManage/ItemQuality.vue

@ -51,7 +51,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

3
fe/PC/src/views/basicData/SupplierManage/Supplier.vue

@ -50,7 +50,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"
@ -153,7 +152,7 @@ export default {
},
editOptions: {},
CreateForm: [
{ type: "input", label: "供应商代码", prop: "code", validType:'numberLetter', colSpan: 12 },
{ type: "input", label: "供应商代码", prop: "code", validType:'numberLetterBar', colSpan: 12 },
{ type: "input", label: "供应商名称", prop: "name", colSpan: 12 },
{ type: "select", label: "状态", prop: "isActive", options: "openToCloseBit", colSpan: 12 },
{ type: "select", label: "类型", prop: "type", options: "supplierType", colSpan: 12 },

1
fe/PC/src/views/basicData/SupplierManage/SupplierItem.vue

@ -67,7 +67,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/SupplierManage/SupplierTime.vue

@ -68,7 +68,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

1
fe/PC/src/views/basicData/WarehouseManage/Area.vue

@ -50,7 +50,6 @@
:URL="URL"
:disabledMethod = {method1:false,method2:false,method3:false}
:disabledIsAllowPartImport = {isAllowPartImport1:false,isAllowPartImport2:false}
methodValue="0"
isAllowPartImportValue="1"
@importClick="postImportMergeClick(arguments)"
@postImportDown="importDown"

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

Loading…
Cancel
Save