Browse Source

Merge branch 'master' of http://gitea.yxtsoft.com/yxt_group/supervise

# Conflicts:
#	yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/supplierbankinfo/PurchaseRequisitionCheckVo.java
#	yxt_supervise/supervise-customer/supervise-customer-biz/src/main/java/com/yxt/supervise/customer/biz/purchaserequisition/PurchaseRequisitionRest.java
#	yxt_supervise/supervise-customer/supervise-customer-biz/src/main/java/com/yxt/supervise/customer/biz/purchaserequisition/PurchaseRequisitionService.java
#	yxt_supervise/supervise-customer/supervise-customer-biz/src/main/java/com/yxt/supervise/customer/biz/supplierbankinfo/SupplierBankInfoService.java
master
liupopo 2 years ago
parent
commit
7a0f27c1ca
  1. 280
      docs/databases/supervise_crm.sql
  2. 118
      docs/databases/table_create.sql
  3. 89
      docs/databases/table_create_crm.sql
  4. 36
      docs/databases/table_modify.sql
  5. BIN
      docs/demofiles/采购订单(示例).xls
  6. 4
      supervise-crm-ui/.env.development
  7. 50
      supervise-crm-ui/src/api/brank/brank.js
  8. 50
      supervise-crm-ui/src/api/enterprise/enterprise.js
  9. 50
      supervise-crm-ui/src/api/storehouse/storehouse.js
  10. 41
      supervise-crm-ui/src/router/modules/codemenu.js
  11. 311
      supervise-crm-ui/src/views/brank/brankAdd.vue
  12. 256
      supervise-crm-ui/src/views/brank/brankInfo.vue
  13. 243
      supervise-crm-ui/src/views/brank/index.vue
  14. 343
      supervise-crm-ui/src/views/enterprise/enterpriseAdd.vue
  15. 210
      supervise-crm-ui/src/views/enterprise/enterpriseInfo.vue
  16. 243
      supervise-crm-ui/src/views/enterprise/index.vue
  17. 246
      supervise-crm-ui/src/views/storehouse/index.vue
  18. 331
      supervise-crm-ui/src/views/storehouse/storehouseAdd.vue
  19. 198
      supervise-crm-ui/src/views/storehouse/storehouseInfo.vue
  20. 3
      supervise-customer-ui/src/api/portal/Upload.js
  21. 4
      supervise-customer-ui/src/api/tobacco/orderCommodity.js
  22. 4
      supervise-customer-ui/src/api/tobacco/orders.js
  23. 4
      supervise-message-ui/.env.development
  24. 50
      supervise-message-ui/src/api/message/mbxx.js
  25. 29
      supervise-message-ui/src/api/portal/Upload.js
  26. 34
      supervise-message-ui/src/api/portal/areaPicker.js
  27. 405
      supervise-message-ui/src/components/uploadFile/upload_yanchejianchaTuBiao.vue
  28. 16
      supervise-message-ui/src/router/modules/codemenu.js
  29. 2
      supervise-message-ui/src/settings.js
  30. 19
      supervise-message-ui/src/utils/request.js
  31. 261
      supervise-message-ui/src/views/message/mbxx.vue
  32. 310
      supervise-message-ui/src/views/message/mbxxAdd.vue
  33. 288
      supervise-message-ui/src/views/message/mbxxInfo.vue
  34. 2
      supervise-message-ui/vue.config.js
  35. 4
      supervise-monitor-ui/.env.development
  36. 1
      supervise-monitor-ui/.eslintignore
  37. 1
      supervise-monitor-ui/babel.config.js
  38. 5
      supervise-monitor-ui/package.json
  39. BIN
      supervise-monitor-ui/public/WebComponentsKit.exe
  40. 2019
      supervise-monitor-ui/src/api/hikvision/demo.js
  41. 430
      supervise-monitor-ui/src/api/hikvision/hkVideo.js
  42. 4
      supervise-monitor-ui/src/api/hikvision/jquery-1.7.1.min.js
  43. 4379
      supervise-monitor-ui/src/api/hikvision/webVideoCtrl.js
  44. 2
      supervise-monitor-ui/src/main.js
  45. 4140
      supervise-monitor-ui/src/static/webVideoCtrl.js
  46. 472
      supervise-monitor-ui/src/views/monitor/videos/index.vue
  47. 303
      supervise-monitor-ui/src/views/monitor/videos/index2.vue
  48. 4
      supervise-organizational-ui/.env.development
  49. 20
      supervise-organizational-ui/src/api/system/userManage/index.js
  50. 2
      supervise-organizational-ui/src/layout/components/Navbar.vue
  51. 4
      supervise-organizational-ui/src/router/modules/codemenu.js
  52. 2
      supervise-organizational-ui/src/settings.js
  53. 53
      supervise-organizational-ui/src/views/organizational/userManageAdd.vue
  54. 687
      supervise-organizational-ui/src/views/organizational/userManageList.vue
  55. 4
      supervise-organizational-ui/src/views/organizational/yhgl.vue
  56. 2
      supervise-organizational-ui/vue.config.js
  57. 4
      supervise-report-ui/.env.development
  58. 1
      supervise-report-ui/src/api/supervise/salesreport.js
  59. 2
      yxt-portal-ui/.env.development
  60. 2
      yxt-portal-ui/src/views/Home/Home.vue
  61. 1
      yxt_supervise/gateway/src/main/resources/application.yml
  62. 35
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformation.java
  63. 37
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationDetailsVo.java
  64. 37
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationDto.java
  65. 29
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationFeign.java
  66. 20
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationFeignFallback.java
  67. 37
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationQuery.java
  68. 37
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationVo.java
  69. 39
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocation.java
  70. 39
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationDetailsVo.java
  71. 46
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationDto.java
  72. 18
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationFeign.java
  73. 11
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationFeignFallback.java
  74. 39
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationQuery.java
  75. 41
      yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationVo.java
  76. 23
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationMapper.java
  77. 20
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationMapper.xml
  78. 54
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationRest.java
  79. 65
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationService.java
  80. 25
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationMapper.java
  81. 18
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationMapper.xml
  82. 57
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationRest.java
  83. 64
      yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationService.java
  84. 71
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYc.java
  85. 67
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcDetailsVo.java
  86. 67
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcDto.java
  87. 37
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcExcelVo.java
  88. 27
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcFeign.java
  89. 11
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcFeignFallback.java
  90. 71
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcQuery.java
  91. 67
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcVo.java
  92. 49
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYc.java
  93. 47
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcDetailsVo.java
  94. 47
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcDto.java
  95. 41
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcExcelVo.java
  96. 18
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcFeign.java
  97. 12
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcFeignFallback.java
  98. 52
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcQuery.java
  99. 47
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcVo.java
  100. 86
      yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdsales/GdSalesVo.java

280
docs/databases/supervise_crm.sql

@ -1,280 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : 8.130.39.13
Source Server Type : MySQL
Source Server Version : 50720
Source Host : 8.130.39.13:3306
Source Schema : supervise_crm
Target Server Type : MySQL
Target Server Version : 50720
File Encoding : 65001
Date: 11/04/2023 14:48:46
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for crm_customer_temp
-- ----------------------------
DROP TABLE IF EXISTS `crm_customer_temp`;
CREATE TABLE `crm_customer_temp` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(11) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(11) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(11) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(11) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
`customerNo` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '客户编号(部门编码+客户类型(1位,0个人,1企业)+部门内部流水号(6位))',
`customerType` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户类型(自然人/法人)',
`customerTypeKey` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户类型key',
`customerClass` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户分类(个人:司机/个体老板/其他。企业:企业型客户/一级经销商/二级经销商/终端物流客户)',
`customerClassKey` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户分类key',
`source` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户来源(公司资源/自主开发/交接客户/转介绍客户/集团内销)',
`sourceKey` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户来源key',
`level` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户级别(意向客户/准客户/成交客户/集团内销/黑名单客户)',
`levelKey` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户级别key',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户名称',
`certificateTypeKey` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '证件类型key',
`certificateType` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '证件类型(个人为身份证/企业为营业执照)',
`IDNumber` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '证件号码(个人为身份证号/企业为统一社会信用代码)',
`endDate` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '证件有效期',
`address_province` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '行政区划代码(省)',
`address_city` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '行政区划代码(市)',
`address_county` varchar(6) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '行政区划代码(县)',
`province` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '',
`county` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '',
`address` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '详细地址',
`zipCode` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '邮编',
`e_mail` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电子邮箱',
`contacts` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系人',
`mobile` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系电话',
`emergencyContact` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '紧急联系人',
`emergencyMobile` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '紧急联系人电话 ',
`weixin` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '微信号码',
`staffSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '业务人员sid',
`createOrgSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建组织sid',
`sexKey` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别key',
`sex` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '性别',
`birthday` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '生日',
`companyName` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所在公司名称',
`follow_state_key` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跟进状态key',
`follow_state` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '跟进状态',
`isOnRemindkey` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否开启提醒key(1开启,0不开启)',
`isOnRemind` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否开启提醒(1开启,0不开启)',
`remind_day` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提醒日期',
`remind_remark` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '提醒备注',
`customerPhoto` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户头像',
`visitWayKey` varchar(4) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '见面方式key',
`visitWay` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '见面方式(到店/电话/拜访)',
PRIMARY KEY (`id`) USING BTREE,
INDEX `id`(`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 132 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '潜在客户信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of crm_customer_temp
-- ----------------------------
INSERT INTO `crm_customer_temp` VALUES (129, 'fe263bc8-993a-4638-a2b6-b5ff8f68ebe8', 0, '2023-01-30 15:51:41', '2023-01-30 15:51:41', 1, 1, 0, '', '427a2fb0-60c5-409f-bea4-4eb441041ae6', NULL, '0315231117568ZLZZZ', '企业', '2', '', '', '', '', '', '', '涨了张张张', '02', '营业执照', '', '', '', '', '', '', '', '', '', NULL, '', '', '15231117568', '', '', 'l1234678', 'e73f6e2c-1bda-4a4d-8390-ac7a2bf25854', NULL, '', '', '', '', '[]', '', '0', NULL, NULL, NULL, NULL, '003', '拜访');
INSERT INTO `crm_customer_temp` VALUES (130, 'aa2284f6-b929-402b-9eff-e7144f16fc96', 0, '2023-01-30 16:53:37', '2023-01-30 16:53:37', 1, 1, 0, NULL, '427a2fb0-60c5-409f-bea4-4eb441041ae6', NULL, '0313733222222SWK', '个人', '1', NULL, NULL, NULL, NULL, '准客户', '002', '孙悟空', '01', '身份证', NULL, '2023-01-30', NULL, NULL, NULL, '河北省', '石家庄市', '桥西区', '育新路', NULL, NULL, NULL, '13733222222', NULL, NULL, NULL, 'e73f6e2c-1bda-4a4d-8390-ac7a2bf25854', NULL, '0002', '', '2023-01-18', '宇信通', '[]', '', '0', NULL, NULL, NULL, NULL, '001', '电话');
INSERT INTO `crm_customer_temp` VALUES (131, 'f1fdf188-b9f7-41d1-b6b6-97175bfde666', 0, '2023-01-30 16:53:45', '2023-01-30 16:53:45', 1, 1, 0, '', '427a2fb0-60c5-409f-bea4-4eb441041ae6', NULL, '0313733222222SWK11', '个人', '1', '', '', '', '', '准客户', '002', '孙悟空11', '01', '身份证', '', '2023-01-30', '', '', '', '河北省', '石家庄市', '桥西区', '育新路', NULL, '', '', '13733222222', '', '', '', 'e73f6e2c-1bda-4a4d-8390-ac7a2bf25854', NULL, '0002', '', '2023-01-18', '宇信通', '[]', '', '0', NULL, NULL, NULL, NULL, '001', '电话');
-- ----------------------------
-- Table structure for customer
-- ----------------------------
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lockVersion` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录版本,锁',
`sid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`createSid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`modifySid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
`isEnable` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录是否可用,1:可用,0:不可用',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '记录创建时间',
`modifyTime` datetime(0) NULL DEFAULT NULL COMMENT '记录最后修改时间',
`state` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据状态',
`isDelete` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
`shortName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '简称',
`contacts` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话',
`address` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
`bankAccount` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '银行帐户',
`bankAccountNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '帐号',
`bankName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开户行名称',
`legalRepresentative` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '法人',
`businessLicenseNo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '营业执照号',
`lockingStatus` int(11) NULL DEFAULT 0 COMMENT '锁定状态1.锁定2.未锁定',
`lockingReason` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '锁定原因',
`lockingDate` datetime(0) NULL DEFAULT NULL COMMENT '锁定及解锁时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 38 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '供应商信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of customer
-- ----------------------------
INSERT INTO `customer` VALUES (37, NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '河北叁陆伍网络科技集团有限公司', '36524集团', '于波', '13331389283', '河北省石家庄市新华区友谊北大街345号中粮广场a座4层', NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
-- ----------------------------
-- Table structure for supplier
-- ----------------------------
DROP TABLE IF EXISTS `supplier`;
CREATE TABLE `supplier` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`lockVersion` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录版本,锁',
`sid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`createSid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`modifySid` varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
`isEnable` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录是否可用,1:可用,0:不可用',
`createTime` datetime(0) NULL DEFAULT NULL COMMENT '记录创建时间',
`modifyTime` datetime(0) NULL DEFAULT NULL COMMENT '记录最后修改时间',
`state` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据状态',
`isDelete` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`customerSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户Sid',
`name` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
`codeUnified` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '统一编码',
`contacts` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '电话',
`address` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '地址',
`bankAccount` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '银行帐户',
`bankAccountNumber` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '帐号',
`bankName` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开户行名称',
`legalRepresentative` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '法人',
`businessLicenseNo` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '营业执照号',
`purchaseRequisition` int(10) NULL DEFAULT 0 COMMENT '监管审核状态0待审核1为通过2为拒绝',
`purchaseRemarks` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '监管审批意见',
`bankState` int(10) NULL DEFAULT 0 COMMENT '银行0未审核,1审核通过,2审核不通过',
`bankRemarks` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '银行审批意见',
`lockingStatus` int(11) NULL DEFAULT 1 COMMENT '锁定状态1.锁定2.未锁定',
`lockingReason` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '锁定原因',
`lockingDate` datetime(0) NULL DEFAULT NULL COMMENT '锁定及解锁时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 37 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '供应商信息' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of supplier
-- ----------------------------
INSERT INTO `supplier` VALUES (1, '0', 'c6f003e2-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北奥丰牧业集团有限公司', '4148403', '张进钢', '13831237262', '河北省定州市息冢镇廉台村', '河北奥丰牧业集团有限公司', '50545101040011387', '中国农业银行股份有限公司定州市支行', '张进钢', '91130682665251605J', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (2, '0', 'c6f01637-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北晋蒙源食品销售有限公司', '4131802', '崔晓芳', '18903318212', '石家庄长安区丰收路32号6-2-202', '河北晋蒙源食品销售有限公司', '1012014170001131', '民生银行建设北大街支行', '薛俊珍', '911301026827685265', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (3, '0', 'c6f01748-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市金百利商贸有限公司', '4101293', '牛会峰', '15931139177', '河北省石家庄市长安区百花街2号常山纺织集团供销公司仓库平房第六间', '石家庄市金百利商贸有限公司', '63212010500614', '河北银行裕兴支行', '苏辉', '9113010260101239XD', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (4, '0', 'c6f0184a-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '福建恒安集团厦门商贸有限公司石家庄经营部', '7139002', '刘洋', '15832170959', '河北省石家庄市裕华区翟营南大街41号财库国际商务港3001室', '福建恒安集团厦门商贸有限公司石家庄经营部', '0402021509300006962', '工行裕华支行', '许水深', '91130100760317780R', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (5, '0', 'c6f01940-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄宝丰源商贸有限公司', '5150611', '罗志芳', '15373893005', '石家庄市长安区体育大街华药一区23栋1102室', '石家庄宝丰源商贸有限公司', '0402020409300171952', '中国工商银行石家庄长安支行', '杜志强', '91130102682757202N', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (6, '0', 'c6f01a28-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市晨曦商贸有限公司', '8120481', '吴玉堂', '13803116382', '石家庄市桥西区金裕花园-3-122', '石家庄市晨曦商贸有限公司', '01371000000686', '河北银行金桥支行', '吴曦', '9113010476205841X0', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (7, '0', 'c6f02825-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '中顺洁柔纸业股份有限公司', '7161704', '李亭汐', '18665037927', '唐山市玉田县杨家套乡东高桥村西', '中顺洁柔纸业股份有限公司唐山分公司', '13001627736050502713', '中国建设银行股份有限公司玉田支行', '杨裕钊', '91130200689262827L', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (8, '0', 'c6f02c0a-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '北京百事可乐饮料有限公司', '5150302', '郑康', '15383898445', '北京大兴区西红门镇团河路(金星段)55号', '北京百事可乐饮料有限公司', '319456007079', '中国银行北京宣武支行', '王安平', '911100001015173081', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (9, '0', 'c6f02fb1-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '北京统一饮品有限公司石家庄分公司', '5152001', '赵彩虹', '18332144479', '石家庄高新技术产业开发区兴安大街153号', '北京统一饮品有限公司石家庄分公司', '13001615208050513866', '建行石家庄裕华支行', '黄建修', '91130100730246045L', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (10, '0', 'c6f0329b-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '达能(中国)食品饮料有限公司', '5197904', '王璇', '13832331208', '中山市小榄镇南城大道37号', '达能(中国)食品饮料有限公司', '1731983816', '花旗银行(中国)有限公司深圳分行', '顾培基', '91442000721160557R', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (11, '0', 'c6f03465-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '杭州娃哈哈启力食品集团有限公司', '5163704', '郝伟娜', '13803115758', '萧山区经济技术开发区建设一路以北进一路以西', '杭州娃哈哈启力食品集团有限公司', '1202020709906695553', '杭州市工商银行解放路支行', '宗庆后', '91330101673957579W', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (12, '0', 'c6f03b68-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '今麦郎食品股份有限公司石家庄分公司', '5169693', '吕建鹏', '13582161816', '河北省石家庄市桥西区兴纺街6号蓝水晶小区5-102', '今麦郎食品股份有限公司石家庄分公司', '50370001040028334', '中国农业银行股份有限公司石家庄自强支行', '张振宁', '91130100054006133C', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (13, '0', 'c6f03c5a-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '康师傅(天津)饮品有限公司石家庄分公司', '5148904', '贺立山\r\n', '13739738663\r', '石家庄市中华北大街50号军创国际1102室\r\n', '康师傅(天津)饮品有限公司石家庄分公司', '0402020119300107445\r\n', '工行桥西支行\r\n', '武惠梅\r\n', '911301006760096030\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (14, '0', 'c6f03d98-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '农夫山泉股份有限公司', '5199404', '梁玉娟\r\n', '13784299258\r', '杭州市西湖区葛衙庄181号\r\n', '农夫山泉股份有限公司', '1202020119900072540\r\n', '工行羊坝头支行\r\n', '钟睒睒\r\n', '91330000143995391Q\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (15, '0', 'c6f03e65-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄恒盛兴商贸有限公司\r\n', '5101094', '谢玉琴\r\n', '15533910034\r', '石获北路8号东鑫酒业中心3区12号\r\n', '石家庄恒盛兴商贸有限公司\r\n', '50361001040023443', '农行石家庄北站支行\r\n', '温立景\r\n', '911301056892856310\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (16, '0', 'c6f0419e-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '天津顶益食品有限公司石家庄分公司', '5106003', '孙江坡\r\n', '18903391165\r', '石家庄市中山西路83号东方大厦1526室\r\n', '天津顶益食品有限公司石家庄分公司', '0402020109242004078\r\n', '工行桥西支行\r\n', '武惠梅\r\n', '9113010070096971XL\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (17, '0', 'c6f04271-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '中粮可口可乐饮料(河北)有限公司', '5105003', '王学亮\r\n', '13933140320\r', '河北省石家庄市经济技术开发区海南路169号\r\n', '中粮可口可乐饮料(河北)有限公司', '13001616208050504676\r\n', '建行藁城支行\r\n', '叶树峰\r\n', '911301005909792970\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (18, '0', 'c6f04343-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北省百大商贸有限责任公司', '6138992', '次江伟\r\n', '18103317788\r', '河北省石家庄市桥西区平安南大街42号君合商务中心A座二层201室-210室、212室\r\n', '河北省百大商贸有限责任公司', '50365001040007921\r\n', '农行平安支行\r\n', '王文杰\r\n', '91130100601213802C\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (19, '0', 'c6f04415-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄舶来品商贸有限公司', '6143301', '赵华\r\n', '18031179211\r', '河北省石家庄市桥西区和平路西二环交叉口华北食品城11区29号\r\n', '石家庄舶来品商贸有限公司', '692403220\r\n', '民生银行石家庄西二环北路支行\r\n', '赵华\r\n', '91130104319812887P\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (20, '0', 'c6f044ec-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市富荣食品有限公司', '5100691', '张永超\r\n', '18931107952\r', '石家庄长安区建设北大街194号风尚宜都3-304室\r\n', '石家庄市富荣食品有限公司', '50367001040033651\r\n', '中国农业银行股份有限公司石家庄华兴支行\r\n', '韩红云\r\n', '91130102798410390Q\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (21, '0', 'c6f045bd-786b-11ed-9f31-c85b7675655e', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市坤卓商贸有限公司', '6130491', '任晋\r\n', '13313310407\r', '石家庄市平安北大街19号礼域尚城23号楼1609室\r\n', '石家庄市坤卓商贸有限公司', '13050161040000000400\r\n', '中国建设银行股份有限公司石家庄平安北大街支行\r\n', '李旭旺\r\n', '91130102079994799M\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (22, '0', '3ed3245a-79d4-11ed-ad1d-525401028fe6', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北耕畅供应链管理有限公司', '6129692', '周颖\r\n', '13331388226\r', '河北省石家庄市长安区中山东路508号东胜广场A座10层1003室\r\n', '河北耕畅供应链管理有限公司', '101141430639\r\n', '中国银行股份有限公司石家庄市裕华支行\r\n', '张艳\r\n', '911301003198565U\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (23, '0', '4709b6a1-79d4-11ed-ad1d-525401028fe6', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北荣耀品牌营销策划有限公司\r\n', '6103901', '陆鸿杰\r\n', '13703398979\r', '河北省石家庄市长安区体育南大街1号裕彤体育场南区18号205室\r\n', '河北荣耀品牌营销策划有限公司\r\n', '01211100001986\r\n', '河北银行股份有限公司裕东科技支行\r\n', '陆鸿杰\r\n', '91130108MA0CWNM48D\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (24, '0', '495799f7-79d4-11ed-ad1d-525401028fe6', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市金龙油脂有限公司\r\n', '5149013', '高硕星\r\n', '15631180371\r', '石家庄市桥西区蔬菜中心批发市场南区粮油3区43、45号\r\n', '石家庄市金龙油脂有限公司\r\n', '121032011907234\r\n', '石家庄汇融农村合作银行振头支行\r\n', '冯建\r\n', '911301047158184985\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (25, '0', 'b6444910-7ac0-11ed-ad1d-525401028fe6', NULL, NULL, '1', '2022-12-01 00:00:00', '2022-12-01 00:00:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄鹊山子岩商贸有限公司', '5141603', '张建磊\r\n', '15931183850\r', '石家庄市桥西区塔坛国际商贸城4号写字楼2016\r\n', '石家庄鹊山子岩商贸有限公司', '876310100100008112\r\n', '邯郸银行股份有限公司石家庄塔坛国际支行\r\n', '张建磊\r\n', '91130104MA0CR2KR99\r\n', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (26, '0', 'a8a30419-9d7b-423a-a1fe-eb0ab540840f', NULL, NULL, '1', '2022-12-29 20:01:39', '2022-12-29 20:01:39', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄金天祺商贸有限公司', '6136492', '马志强', '18131199991', '石家庄市长安区和平东路7号荣景园5-1-401', '石家庄金天祺商贸有限公司', '61712012000746', '河北银行股份有限公司建北支行', '刘淑芳', '911301027233732301', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (27, '0', '9b186911-bca6-443a-bb6e-7798dd882ae0', NULL, NULL, '1', '2022-12-29 20:09:31', '2022-12-29 20:09:31', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市达惠昌商贸有限公司', '6135791', '邢海龙', '13932192587', '石家庄市桥西区新华路602号3502生活区9-3-301', '石家庄市达惠昌商贸有限公司', '628012012000000850', '河北银行新华路支行', '邢海龙', '91130105677372180C', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (28, '0', 'b413452c-f136-41d0-917f-2eb3354b02da', NULL, NULL, '1', '2022-12-29 20:10:21', '2022-12-29 20:10:21', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄友缘仁商贸有限公司', '6140191', '贺力', '13933106766', '石家庄市长安区长安花苑1-1-2401', '石家庄友缘仁商贸有限公司', '0402020109300214997', '中国工商银行石家庄桥西支行', '贺力', '91130104684347979J', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (29, '0', '9d788bae-7fb6-4b20-aca3-31031c9b473b', NULL, NULL, '1', '2022-12-29 20:11:04', '2022-12-29 20:11:04', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄市合利食品有限公司', '6103491', '王长浩', '15633588669', '石家庄市桥西区东平路8号一三五仓库一楼一层01号房间', '石家庄市合利食品有限公司', '0402300709245112620', '中国工商银行股份有限公司石家庄平安支行', '王长浩', '91130104718346625E', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (30, '0', '2d6235a5-90f2-4a86-9933-d23a3b7d4efd', NULL, NULL, '1', '2022-12-29 20:11:49', '2022-12-29 20:11:49', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北君帅商贸有限公司', '5152901', '王建奇', '13012169790', '河北省石家庄市鹿泉区和平西路739号10号库房', '河北君帅商贸有限公司', '13050161523600001875', '中国建设银行股份有限公司石家庄广安街支行', '程科青', '91130102MA0FK29M23', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (31, '0', 'a838d3dc-5930-4b06-ae30-3a6443888e96', NULL, NULL, '1', '2022-12-29 20:31:15', '2022-12-29 20:31:15', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '河北巧啡商贸有限公司', '6155001', '张占喜', '17733830707', '石家庄市桥西区四中路57号百汇大厦515室', '河北巧啡商贸有限公司', '', '中国民生银行石家庄中山东路支行', '高占广', '91130104MA07XAA04Q', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (32, '0', '9264262c-372f-46f8-bd5e-784ea022a048', NULL, NULL, '1', '2022-12-29 20:34:16', '2022-12-29 20:34:16', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄绮俪商贸有限公司', '5141104', '苏沛', '15373973503', '河北省石家庄市长安区胜利北街329号古运码头一期17号楼2单元702室', '石家庄绮俪商贸有限公司', '131707000013000979206', '中国交通银行股份有限公司河北省分行营业部', '王磊', '91130102MA0GG94RXC', 1, NULL, 1, NULL, 0, '', NULL);
INSERT INTO `supplier` VALUES (33, '0', '1ff8af53-be58-4874-b234-d50840405d96', NULL, NULL, '1', '2023-01-07 18:32:00', '2023-01-07 18:32:00', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄荣贸建商贸有限公司', '5142704', '齐丽霞', '15130648392', '河北省石家庄市桥西区和平路与西二环交口华北食品城', '石家庄荣贸建商贸有限公司', '50354001040049306', '中国农业银行股份有限公司石家庄东城支行', '齐丽霞', '91130102MA0DKK2M5A', 1, NULL, 1, NULL, 0, NULL, NULL);
INSERT INTO `supplier` VALUES (34, '0', 'ae0f2640-8ee7-484c-88e9-cb36dbcb4c51', NULL, NULL, '1', '2023-01-07 18:32:45', '2023-01-07 18:32:45', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄梁创商贸有限公司', '5142604', '崔云培', '13331381193', '河北省石家庄市栾城区人大路156号河北正广通物流基地109室', '石家庄梁创商贸有限公司', '2052587557000111', '渤海银行石家庄分行营业部', '石晓博', '91130105MA0DJPX27N', 1, NULL, 1, NULL, 0, NULL, NULL);
INSERT INTO `supplier` VALUES (35, '0', 'eba70c39-3045-4321-bd43-5f6bd502c663', NULL, NULL, '1', '2023-01-13 17:01:54', '2023-01-13 17:01:54', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄同新发商贸有限公司', '5143004', '许建辉', '15032150081', '河北省石家庄市鹿泉区开发区福威街6号', '石家庄同新发商贸有限公司', '8111801013800512708', '中信银行石家庄裕华西路支行', '谷向飞', '91130185MA09CJ9XX4', 1, NULL, 1, NULL, 0, NULL, NULL);
INSERT INTO `supplier` VALUES (36, '0', '560191ae-fb92-4ea2-810b-0749e938d172', NULL, NULL, '1', '2023-01-13 17:02:43', '2023-01-13 17:02:43', '1', '0', NULL, 'd19ae699-b25e-11ed-9f20-00163e035cda', '石家庄驼辉商贸有限公司', '5143104', '闫永红', '13472123182', '河北省石家庄市长安区胜利北大街289号财富天下2-1-1908', '石家庄驼辉商贸有限公司', '8111801012300572390', '中信银行石家庄中粮河北广场支行', '陈文志', '91130104563249926A', 1, NULL, 1, NULL, 0, NULL, NULL);
-- ----------------------------
-- Table structure for supplier_index
-- ----------------------------
DROP TABLE IF EXISTS `supplier_index`;
CREATE TABLE `supplier_index` (
`id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号',
`code` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '编码',
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '名称',
`codeUnified` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '统一的编码',
`nameUnified` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '统一的名称',
`remarks` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注说明',
`PSid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '父类Sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 66 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '供货商编码对应表' ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of supplier_index
-- ----------------------------
INSERT INTO `supplier_index` VALUES (1, '5150302', '北京百事可乐饮料有限公司', '5150302', NULL, NULL, 'c6f02c0a-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (2, '5152001', '北京统一饮品有限公司石家庄分公司', '5152001', NULL, NULL, 'c6f02fb1-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (3, '5181191', '北京统一饮品有限公司石家庄分公司', '5152001', NULL, NULL, 'c6f02fb1-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (4, '5197904', '达能(中国)食品饮料有限公司', '5197904', NULL, NULL, 'c6f0329b-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (5, '7139002', '福建恒安集团厦门商贸有限公司石家庄经营部', '7139002', NULL, NULL, 'c6f0184a-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (6, '5163704', '杭州娃哈哈启力食品集团有限公司', '5163704', NULL, NULL, 'c6f03465-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (7, '4148403', '河北奥丰牧业集团有限公司', '4148403', NULL, NULL, 'c6f003e2-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (8, '4131802', '河北晋蒙源食品销售有限公司', '4131802', NULL, NULL, 'c6f01637-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (9, '5195292', '河北晋蒙源食品销售有限公司', '4131802', NULL, NULL, 'c6f01637-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (12, '6138992', '河北省百大商贸有限责任公司', '6138992', NULL, NULL, 'c6f04343-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (13, '5169693', '今麦郎食品股份有限公司石家庄分公司', '5169693', NULL, NULL, 'c6f03b68-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (14, '5148904', '康师傅(天津)饮品有限公司石家庄分公司', '5148904', NULL, NULL, 'c6f03c5a-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (15, '5199404', '农夫山泉股份有限公司', '5199404', NULL, NULL, 'c6f03d98-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (16, '5150611', '石家庄宝丰源商贸有限公司', '5150611', NULL, NULL, 'c6f01940-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (17, '5183091', '石家庄宝丰源商贸有限公司', '5150611', NULL, NULL, 'c6f01940-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (18, '5183094', '石家庄宝丰源商贸有限公司', '5150611', NULL, NULL, 'c6f01940-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (19, '8130703', '石家庄宝丰源商贸有限公司', '5150611', NULL, NULL, 'c6f01940-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (20, '6143301', '石家庄舶来品商贸有限公司', '6143301', NULL, NULL, 'c6f04415-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (21, '5101094', '石家庄恒盛兴商贸有限公司', '5101094', NULL, NULL, 'c6f03e65-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (22, '8120481', '石家庄晨曦商贸有限公司', '8120481', NULL, NULL, 'c6f01a28-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (23, '5150102', '石家庄市晨曦商贸有限公司', '8120481', NULL, NULL, 'c6f01a28-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (24, '5100691', '石家庄市富荣食品有限公司', '5100691', NULL, NULL, 'c6f044ec-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (25, '6102192', '石家庄市富荣食品有限公司', '5100691', NULL, NULL, 'c6f044ec-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (26, '6102991', '石家庄市富荣食品有限公司', '5100691', NULL, NULL, 'c6f044ec-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (27, '4101293', '石家庄市金百利商贸有限公司', '4101293', NULL, NULL, 'c6f01748-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (28, '6130491', '石家庄市坤卓商贸有限公司', '6130491', NULL, NULL, 'c6f045bd-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (29, '5106003', '天津顶益食品有限公司石家庄分公司', '5106003', NULL, NULL, 'c6f0419e-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (30, '5105003', '中粮可口可乐饮料(河北)有限公司', '5105003', NULL, NULL, 'c6f04271-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (31, '7161704', '中顺洁柔纸业股份有限公司', '7161704', NULL, NULL, 'c6f02825-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (37, '6129692', '河北耕畅供应链管理有限公司', '6129692', NULL, NULL, '3ed3245a-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (38, '6103901', '河北荣耀品牌营销策划有限公司', '6103901', NULL, NULL, '4709b6a1-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (39, '6103992', '河北荣耀品牌营销策划有限公司', '6103901', NULL, NULL, '4709b6a1-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (40, '5149013', '石家庄市金龙油脂有限公司', '5149013', NULL, NULL, '495799f7-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (41, '5141603\r\n', '石家庄鹊山子岩商贸有限公司', '5141603\r\n', NULL, NULL, 'b6444910-7ac0-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (42, '6136492', '石家庄金天祺商贸有限公司', '6136492', NULL, NULL, 'a8a30419-9d7b-423a-a1fe-eb0ab540840f');
INSERT INTO `supplier_index` VALUES (43, '6135791', '石家庄市达惠昌商贸有限公司', '6135791', NULL, NULL, '9b186911-bca6-443a-bb6e-7798dd882ae0');
INSERT INTO `supplier_index` VALUES (44, '6140191', '石家庄友缘仁商贸有限公司', '6140191', NULL, NULL, 'b413452c-f136-41d0-917f-2eb3354b02da');
INSERT INTO `supplier_index` VALUES (45, '6103491', '石家庄市合利食品有限公司', '6103491', NULL, NULL, '9d788bae-7fb6-4b20-aca3-31031c9b473b');
INSERT INTO `supplier_index` VALUES (46, '5152901', '河北君帅商贸有限公司', '5152901', NULL, NULL, '2d6235a5-90f2-4a86-9933-d23a3b7d4efd');
INSERT INTO `supplier_index` VALUES (47, '6155001', '河北巧啡商贸有限公司', '6155001', NULL, NULL, 'a838d3dc-5930-4b06-ae30-3a6443888e96');
INSERT INTO `supplier_index` VALUES (48, '5141104', '石家庄绮俪商贸有限公司', '5141104', NULL, NULL, '9264262c-372f-46f8-bd5e-784ea022a048');
INSERT INTO `supplier_index` VALUES (49, '6155002', '河北巧啡商贸有限公司', '6155001', NULL, NULL, 'a838d3dc-5930-4b06-ae30-3a6443888e96');
INSERT INTO `supplier_index` VALUES (51, '3100904', '河北荣耀品牌营销策划有限公司', '6103901', NULL, NULL, '4709b6a1-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (52, '6103991', '河北荣耀品牌营销策划有限公司', '6103901', NULL, NULL, '4709b6a1-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (53, '5148792', '河北耕畅供应链管理有限公司', '6129692', NULL, NULL, '3ed3245a-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (54, '5142704', '石家庄荣贸建商贸有限公司', '5142704', NULL, NULL, '1ff8af53-be58-4874-b234-d50840405d96');
INSERT INTO `supplier_index` VALUES (55, '5142604', '石家庄梁创商贸有限公司', '5142604', NULL, NULL, 'ae0f2640-8ee7-484c-88e9-cb36dbcb4c51');
INSERT INTO `supplier_index` VALUES (56, '6136491', '石家庄金天祺商贸有限公司', '6136492', NULL, NULL, 'a8a30419-9d7b-423a-a1fe-eb0ab540840f');
INSERT INTO `supplier_index` VALUES (57, '5154011', '河北荣耀品牌营销策划有限公司', '6103901', NULL, NULL, '4709b6a1-79d4-11ed-ad1d-525401028fe6');
INSERT INTO `supplier_index` VALUES (58, '5101892', '石家庄市金佰利商贸有限公司', '4101293', NULL, NULL, 'c6f01748-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (59, '8120491', '石家庄晨曦商贸有限公司', '8120481', NULL, NULL, 'c6f01a28-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (60, '5199601', '石家庄舶来品商贸有限公司', '6143301', NULL, NULL, 'c6f04415-786b-11ed-9f31-c85b7675655e');
INSERT INTO `supplier_index` VALUES (61, '5143004', '石家庄同新发商贸有限公司', '5143004', NULL, NULL, 'eba70c39-3045-4321-bd43-5f6bd502c663');
INSERT INTO `supplier_index` VALUES (62, '5143104', '石家庄驼辉商贸有限公司', '5143104', NULL, NULL, '560191ae-fb92-4ea2-810b-0749e938d172');
INSERT INTO `supplier_index` VALUES (63, '4155001', '河北君帅商贸有限公司', '5152901', NULL, NULL, '2d6235a5-90f2-4a86-9933-d23a3b7d4efd');
INSERT INTO `supplier_index` VALUES (64, '6151501', '河北君帅商贸有限公司', '5152901', NULL, NULL, '2d6235a5-90f2-4a86-9933-d23a3b7d4efd');
INSERT INTO `supplier_index` VALUES (65, '5154001', '河北荣耀品牌营销策划有限公司', '6103901', NULL, NULL, '4709b6a1-79d4-11ed-ad1d-525401028fe6');
SET FOREIGN_KEY_CHECKS = 1;

118
docs/databases/table_create.sql

@ -1,118 +0,0 @@
DROP TABLE IF EXISTS `purchase_requisition_checked`;
CREATE TABLE `purchase_requisition_checked` (
`id` BIGINT(32) NOT NULL AUTO_INCREMENT COMMENT 'ID,唯一编号',
`sid` VARCHAR(64) NOT NULL COMMENT 'sid',
`lockVersion` VARCHAR(2) NULL DEFAULT NULL COMMENT '记录版本,锁',
`createTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`state` INT(11) NOT NULL DEFAULT '1' COMMENT '记录状态值',
`isEnable` INT(32) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`isDelete` INT(32) NOT NULL DEFAULT '0' COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` VARCHAR(255) NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` VARCHAR(64) NULL DEFAULT NULL COMMENT '更新者',
`prSid` VARCHAR(100) NULL DEFAULT NULL COMMENT '订单SID',
`prCode` VARCHAR(100) NULL DEFAULT NULL COMMENT '订单编号',
`storeName` VARCHAR(100) NULL DEFAULT NULL COMMENT '仓库/门店名称',
`receiptTime` DATETIME NULL DEFAULT NULL COMMENT '收货时间',
`billNo` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据号',
`billType` VARCHAR(100) NULL DEFAULT NULL COMMENT '单据类型',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB COMMENT='采购订单检查结果';
DROP TABLE IF EXISTS `template_staff_config`;
CREATE TABLE `template_staff_config` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`templateSid` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '模板sid',
`staffSid` varchar(100) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL COMMENT '员工sid',
`lockVersion` int(0) NOT NULL DEFAULT 0 COMMENT '记录版本,锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录创建时间',
`modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录最后修改时间',
`isEnable` int(0) NOT NULL DEFAULT 1 COMMENT '记录是否可用,1:可用,0:不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '隐藏本部门:隐藏本部门开启后,本部门将不会显示在公司通讯录中',
`isDelete` int(0) NULL DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_croatian_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `wechat_template`;
CREATE TABLE `wechat_template` (
`id` int(0) NOT NULL,
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL,
`templateId` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT '模板ID',
`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '标题',
`json` json NULL COMMENT 'json',
`trade` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '行业',
`lockVersion` int(0) NOT NULL DEFAULT 0 COMMENT '记录版本,锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录创建时间',
`modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '记录最后修改时间',
`isEnable` int(0) NOT NULL DEFAULT 1 COMMENT '记录是否可用,1:可用,0:不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '隐藏本部门:隐藏本部门开启后,本部门将不会显示在公司通讯录中',
`isDelete` int(0) NULL DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注信息',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建者',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '更新者',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '微信信息推送模版表' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `loan_bank_information`;
CREATE TABLE `loan_bank_information` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'ids',
`bankName` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行名称',
`bankAbbreviation` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行简称',
`address` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '地址',
`province` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`county` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`contacts` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`pSid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT '0' COMMENT '上级sid',
`lockVersion` int(0) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(0) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(0) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '贷款银行信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `bank_manager`;
CREATE TABLE `bank_manager` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL,
`name` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '姓名',
`telephone` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`post` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '职务',
`bankSid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行sid',
`lockVersion` int(0) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(0) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(0) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '银行负责人信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

89
docs/databases/table_create_crm.sql

@ -0,0 +1,89 @@
DROP TABLE IF EXISTS `warehouse_location`;
CREATE TABLE `warehouse_location` (
`id` int(0) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'sid',
`lockVersion` int(0) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(0) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(0) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
`address` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '位置',
`squareMeasure` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '面积',
`floorHeight` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '层高',
`properties` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '性质',
`contacts` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人',
`price` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '价格',
`housingResources` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '房源',
`telephone` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`province` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`county` varchar(100) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '仓库位置信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `loan_bank_information`;
CREATE TABLE `loan_bank_information` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'ids',
`bankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行名称',
`bankAbbreviation` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行简称',
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '地址',
`province` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`county` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`psid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT '0' COMMENT '上级sid',
`lockVersion` int(0) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(0) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(0) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 22 CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '贷款银行信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
DROP TABLE IF EXISTS `enterprise_information`;
CREATE TABLE `enterprise_information` (
`id` int(0) NOT NULL AUTO_INCREMENT,
`sid` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NOT NULL COMMENT 'ids',
`enterpriseName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业名称',
`enterpriseAbbreviation` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '企业简称',
`bankAccount` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '银行账户',
`accountNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '账号',
`openingBankName` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '开户行',
`juridicalPerson` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '法人',
`businessLicenseNumber` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '营业执照号',
`address` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '地址',
`province` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`city` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`county` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '',
`contacts` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '联系人',
`telephone` varchar(255) CHARACTER SET utf8 COLLATE utf8_croatian_ci NULL DEFAULT NULL COMMENT '电话',
`lockVersion` int(0) NULL DEFAULT 0 COMMENT '版本锁',
`createTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
`modifyTime` timestamp(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '修改时间',
`isEnable` int(0) NULL DEFAULT 1 COMMENT '是否可用:1可用,0不可用',
`state` int(0) NULL DEFAULT 1 COMMENT '状态',
`isDelete` int(0) NULL DEFAULT 0 COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '修改人sid',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 14 CHARACTER SET = utf8 COLLATE = utf8_croatian_ci COMMENT = '企业信息' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

36
docs/databases/table_modify.sql

@ -1,36 +0,0 @@
ALTER TABLE supervise_supplychain.supplier_bank_info CHANGE createSid createBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '创建者';
ALTER TABLE supervise_supplychain.supplier_bank_info CHANGE modifySid updateBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新者';
select @@GLOBAL.sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
select @@sql_mode;
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set @@SESSION.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
ALTER TABLE supervise_supplychain.purchase_requisition CHANGE createSid createBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '创建者';
ALTER TABLE supervise_supplychain.purchase_requisition CHANGE modifySid updateBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新者';
ALTER TABLE supervise_supplychain.purchase_requisition ADD remarks varchar(200) NULL COMMENT '备注说明';
ALTER TABLE supervise_supplychain.product_information CHANGE createSid createBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '创建者';
ALTER TABLE supervise_supplychain.product_information CHANGE modifySid updateBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新者';
ALTER TABLE supervise_supplychain.restricted_brand CHANGE createSid createBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '创建者';
ALTER TABLE supervise_supplychain.restricted_brand CHANGE modifySid updateBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新者';
ALTER TABLE supervise_supplychain.purchase_requisition_pro CHANGE createSid createBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '创建者';
ALTER TABLE supervise_supplychain.purchase_requisition_pro CHANGE modifySid updateBySid varchar(36) CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '更新者';
ALTER TABLE supervise_supplychain.purchase_requisition_pro ADD remarks varchar(200) NULL COMMENT '备注说明';
ALTER TABLE supervise_supplychain.purchase_requisition_pro ADD taxInclusiveAmount DOUBLE(12,2) DEFAULT NULL COMMENT '含税金额';
ALTER TABLE supervise_supplychain.purchase_requisition_pro ADD distributionAmount DOUBLE(12,2) DEFAULT NULL COMMENT '配货金额';
ALTER TABLE supervise_supplychain.purchase_requisition_pro ADD preqCode varchar(100) DEFAULT NULL COMMENT '订单编号';
ALTER TABLE yxt_portal.sys_staffinfo ADD openId varchar(100) DEFAULT NULL COMMENT '微信openId';
ALTER TABLE supervise_supplychain.purchase_requisition_pro MODIFY COLUMN packageTotalPrice double(12,2) NULL COMMENT '包合计(元)(对应采购订单中的送货金额)';

BIN
docs/demofiles/采购订单(示例).xls

Binary file not shown.

4
supervise-crm-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://192.168.3.9:8112"
##VUE_APP_URL = "http://120.46.172.184:8111"
VUE_APP_URL = "http://192.168.3.173:8112"
##VUE_APP_URL = "http://8.130.39.13:8112"

50
supervise-crm-ui/src/api/brank/brank.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
export default {
addInfo: function(data) {
return request({
baseURL: "/api/crm",
url: '/v1/loanbankinformation/save',
method: 'post',
data: data
});
},
fetchBySid: function(sid) {
return request({
baseURL: '/api/crm',
url: '/v1/loanbankinformation/getBankInfBySid/' + sid
})
},
updateData: function(data) {
return request({
baseURL: "/api/crm",
url: '/v1/loanbankinformation/update',
method: 'post',
data: data
});
},
delBySids: function(sid) {
return request({
baseURL: '/api/crm',
url: 'v1/loanbankinformation/delete/' + sid,
method: 'delete'
})
},
// 查询分页列表
listPage: function(params) {
return request({
baseURL: '/api/crm',
url: '/v1/loanbankinformation/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
}

50
supervise-crm-ui/src/api/enterprise/enterprise.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
export default {
addInfo: function(data) {
return request({
baseURL: "/api/crm",
url: '/v1/enterpriseinformation/save',
method: 'post',
data: data
});
},
fetchBySid: function(sid) {
return request({
baseURL: '/api/crm',
url: '/v1/enterpriseinformation/getEnterpriseBySid/' + sid
})
},
updateData: function(data) {
return request({
baseURL: "/api/crm",
url: '/v1/enterpriseinformation/update',
method: 'post',
data: data
});
},
delBySids: function(sid) {
return request({
baseURL: '/api/crm',
url: '/v1/enterpriseinformation/delete/' + sid,
method: 'delete'
})
},
// 查询分页列表
listPage: function(params) {
return request({
baseURL: '/api/crm',
url: '/v1/enterpriseinformation/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
}

50
supervise-crm-ui/src/api/storehouse/storehouse.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
export default {
addInfo: function(data) {
return request({
baseURL: "/api/crm",
url: '/v1/warehouselocation/save',
method: 'post',
data: data
});
},
fetchBySid: function(sid) {
return request({
baseURL: '/api/crm',
url: '/v1/warehouselocation/getWarehouseBySid//' + sid
})
},
updateData: function(data) {
return request({
baseURL: "/api/crm",
url: '/v1/warehouselocation/update',
method: 'post',
data: data
});
},
delBySids: function(sid) {
return request({
baseURL: '/api/crm',
url: '/v1/warehouselocation/delete/' + sid,
method: 'delete'
})
},
// 查询分页列表
listPage: function(params) {
return request({
baseURL: '/api/crm',
url: '/v1/warehouselocation/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
}

41
supervise-crm-ui/src/router/modules/codemenu.js

@ -13,5 +13,46 @@ const codemenu = [{
noCache: true
}
}]
},
{
path: '/brank',
component: Layout,
redirect: '/index',
children: [{
path: '/brank/index',
component: () => import('@/views//brank/index.vue'),
name: 'index',
meta: {
title: '银行管理',
noCache: true
}
}]
},
{
path: '/enterprise',
component: Layout,
redirect: '/index',
children: [{
path: '/enterprise/index',
component: () => import('@/views/enterprise/index.vue'),
name: 'index',
meta: {
title: '企业管理',
noCache: true
}
}]
},{
path: 'storehouse',
component: Layout,
redirect: '/index',
children: [{
path: '/storehouse/index',
component: () => import('@/views/storehouse/index.vue'),
name: 'index',
meta: {
title: '仓库管理',
noCache: true
}
}]
}]
export default codemenu

311
supervise-crm-ui/src/views/brank/brankAdd.vue

@ -0,0 +1,311 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>银行信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div>
<el-card class="box-card">
<div class="item">
<span class="item_text">银行名称</span>
<el-input v-model="formobj.bankName" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">银行简称</span>
<el-input v-model="formobj.bankAbbreviation" placeholder="" class="item_input" style="width: 520px;"
clearable />
</div>
<div class="item">
<span class="item_text">--</span>
<div class="item_input">
<el-select v-model="formobj.province" filterable placeholder="请选择省" class="addinputw" style="width:160px"
@change="getShen">
<el-option v-for="item in inputProvinceList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<el-select v-model="formobj.city" filterable placeholder="请选择市" class="addinputw"
style="width:160px;margin-left: 20px;margin-right: 20px;" @change="getShi">
<el-option v-for="item in inputCityList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<el-select v-model="formobj.county" filterable placeholder="请选择县" class="addinputw" style="width:160px"
@change="getXian">
<el-option v-for="item in inputCountyList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</div>
</div>
<div class="item">
<span class="item_text">银行地址</span>
<el-input v-model="formobj.address" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">联系人员</span>
<el-input v-model="formobj.contacts" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">联系电话</span>
<el-input v-model="formobj.telephone" placeholder="" maxlength="11" class="item_input" style="width: 520px;"
clearable />
</div>
</el-card>
</div>
</div>
</template>
<script>
import req from '@/api/brank/brank'
import {
getCity,
getCounty,
getProvince
} from '@/api/portal/areaPicker' //
export default {
data() {
return {
submitdisabled: false,
formobj: {
sid: "",
psid: "",
bankName: "",
bankAbbreviation: "",
province: '',
city: "",
county: "",
address: "",
contacts: "",
telephone: ""
},
inputProvinceList: [],
inputCityList: [],
inputCountyList: [],
}
},
created() {
this.huoquSheng()
},
methods: {
saveOrUpdate() {
console.log(">>>>>>>>>222222", this.formobj)
if (this.formobj.sid) {
req.updateData(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
} else {
req.addInfo(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
}
},
handleReturn(isreload) {
console.log(">>>>>>>>>")
if (isreload === 'true') this.$emit('reloadlist')
if (this.formobj.psid) {
this.$emit('close', this.formobj.psid)
} else {
this.$emit('doback')
}
this.formobj = {
sid: "",
psid: "",
bankName: "",
bankAbbreviation: "",
province: '',
city: "",
county: "",
address: "",
contacts: "",
telephone: ""
}
},
showAdd(sid) {
this.formobj.psid = sid
},
showEdit(row) {
req.fetchBySid(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
// --------------------------------------------------
huoquSheng() {
getProvince().then((res) => {
if (res.success) {
this.inputProvinceList = res.data
}
})
},
getShen(value) {
let bb = ''
this.inputProvinceList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
// codeprovince
this.formobj.province = bb.name
this.huoquShi(bb.sid)
},
huoquShi(sid1) {
var sid = {
sid: sid1
}
getCity(sid).then((res) => {
if (res.success) {
this.inputCityList = res.data
}
})
},
getShi(value) {
let bb = ''
this.inputCityList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
this.formobj.city = bb.name
this.huoquXian(bb.sid)
},
huoquXian(sid1) {
var sid = {
sid: sid1
}
getCounty(sid).then((res) => {
if (res.success) {
this.inputCountyList = res.data
}
})
},
getXian(value) {
let bb = ''
this.inputCountyList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
this.formobj.county = bb.name
},
}
}
</script>
<style lang="scss">
.box-card {
margin-left: 60px;
margin-right: 60px;
margin-top: 20px;
.item {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin-top: 15px;
height: 40px;
line-height: 40px;
.item_text {
font-size: 18px;
text-align: right;
}
.item_input {
font-size: 16px;
margin-left: 10px;
margin-right: 80px;
}
.item_left_input {
width: 20%;
}
.item_left_text {
height: 30px;
margin-left: 20px;
line-height: 30px;
color: #018AD2;
padding: 0px 15px;
border: 1.5px solid #018AD2;
border-radius: 5px;
}
.item_right {
flex: 1;
justify-items: center;
.item_right_list_text {
font-size: 16px;
}
.item_right_list_delect {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

256
supervise-crm-ui/src/views/brank/brankInfo.vue

@ -0,0 +1,256 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>查看银行信息</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="top" label-width="190px" class="formadd">
<div class="titwu">银行信息</div>
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div>主体信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">银行名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.bankName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">银行简称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.bankAbbreviation}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">--</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.province}} - {{temp.city}} - {{temp.county}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">银行地址</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.address}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">联系人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.contacts}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">联系电话</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.telephone}}</span>
</el-form-item>
</el-col>
</el-row>
<el-collapse v-model="activeNames">
<el-collapse-item title="人员信息" name="1">
<el-table v-loading="listLoading" :data="temp.managerList" border style="width: 100%;"
:row-style="{height: '40px'}">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod1" align="center" />
<el-table-column label="姓名" prop="name" align="center" />
<el-table-column label="电话" prop="telephone" align="center" />
<el-table-column label="职务" prop="post" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
<el-collapse v-model="activeNames">
<el-collapse-item name="2">
<template slot="title">
下属银行<span class="span" @click.stop="aaa()">添加</span>
</template>
<el-table v-loading="listLoading" :data="temp.pbank" border style="width: 100%;">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod2" align="center" />
<el-table-column label="操作" wid align="center" width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toDetail(scope.row.sid)">查看</el-button>
<!-- <el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button> -->
<el-button type="primary" size="mini" @click="doDel(scope.row,temp.sid)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="银行名称" prop="bankName" align="center" />
<el-table-column label="银行简称" prop="bankAbbreviation" width="180" align="center" />
<el-table-column label="省 - 市 - 县" width="220" align="center">
<template slot-scope="scope">
<span>{{ scope.row.province }}</span>
<span>-{{ scope.row.city }}-</span>
<span>{{ scope.row.county }}</span>
</template>
</el-table-column>
<el-table-column label="地址" prop="address" align="center" />
<el-table-column label="联系人" prop="contacts" width="120" align="center" />
<el-table-column label="联系电话" prop="telephone" width="180" align="center" />
</el-table>
</el-collapse-item>
</el-collapse>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/brank/brank'
export default {
name: 'CustomerManagementInfo',
data() {
return {
listLoading: false,
activeNames: ['1', "2"],
temp: {} //
}
},
methods: {
aaa() {
this.$emit('dojump', this.temp.sid)
},
toDetail(sid) {
req.fetchBySid(sid)
.then(resp => {
if (resp.success) {
this.temp = resp.data
}
})
.catch(e => {})
},
// ID
doDel(row,sid) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
req.delBySids(row.sid).then((response) => {
if (response.success) {
this.$message({
showClose: true,
type: 'success',
message: '删除成功'
})
this.toDetail(sid)
this.$emit('reloadlist')
} else {
this.$message({
showClose: true,
type: 'error',
message: '删除失败'
})
}
})
})
},
//
indexMethod1(index) {
// var pagestart = (this.listQuery.current - 1) * this.listQuery.size
// var pageindex = index + 1 + pagestart
return index + 1
},
//
indexMethod2(index) {
// var pagestart = (this.listQuery.current - 1) * this.listQuery.size
// var pageindex = index + 1 + pagestart
return index + 1
},
showAdd(sid) {
req.fetchBySid(sid)
.then(resp => {
if (resp.success) {
this.temp = resp.data
}
})
.catch(e => {
this.$emit('doback')
})
},
//
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
.trightb {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
</style>

243
supervise-crm-ui/src/views/brank/index.vue

@ -0,0 +1,243 @@
<template>
<div class="app-container">
<div v-show="viewState ==1">
<button-bar view-title="银行管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="80px" class="tab-header">
<el-form-item label="银行名称">
<el-input v-model="listQuery.params.bankName" maxlength="20" placeholder="请输入银行名称" class="addinputw"
clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleReset">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleFilter">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">银行信息列表</div>
<!-- 翻页分页 -->
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> -->
</div>
<div class="">
<el-table v-loading="listLoading" :data="list" border style="width: 100%;">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="操作" wid align="center" width="220">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toDetail(scope.row)">查看</el-button>
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="doDel(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="银行名称" prop="bankName" align="center" />
<el-table-column label="银行简称" prop="bankAbbreviation" width="180" align="center" />
<el-table-column label="省 - 市 - 县" width="200" align="center">
<template slot-scope="scope">
<span>{{ scope.row.province }}</span>
<span>-{{ scope.row.city }}-</span>
<span>{{ scope.row.county }}</span>
</template>
</el-table-column>
<el-table-column label="地址" prop="address" align="center" />
<el-table-column label="联系人" prop="contacts" width="120" align="center" />
<el-table-column label="联系电话" prop="telephone" width="180" align="center" />
</el-table>
</div>
<div class="pages">
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
<brankAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @close="close($event)" @reloadlist="getList" />
<brankInfo v-show="viewState ==4" ref="divInfo" @doback="resetState" @dojump="jump($event)" @reloadlist="getList"/>
</div>
</template>
<script>
import req from '@/api/brank/brank'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import brankAdd from './brankAdd.vue'
import brankInfo from './brankInfo.vue'
export default {
name: 'CustomerManagement',
components: {
Pagination,
pageye,
ButtonBar,
brankAdd,
brankInfo,
},
data() {
return {
listLoading: false,
btndisabled: false,
btnList: [{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
list: [],
listQuery: {
current: 1,
size: 10,
params: {
bankName: '',
},
total: 0
},
viewState: 1
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.init()
//
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
init() {
this.getList()
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
req.listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleReset() {
this.listQuery.current = 1
this.getList()
},
//
handleFilter() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
bankName: ""
}
}
this.getList()
},
//
toAdd() {
this.viewState = 2
},
//
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
// ID
doDel(row) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
req.delBySids(row.sid).then((response) => {
if (response.success) {
this.$message({
showClose: true,
type: 'success',
message: '删除成功'
})
this.getList()
} else {
this.$message({
showClose: true,
type: 'error',
message: '删除失败'
})
}
})
})
},
toDetail(row) {
this.viewState = 4
this.$refs['divInfo'].showAdd(row.sid)
},
resetState() {
this.viewState = 1
},
jump(sid) {
console.log("jump",sid)
this.viewState = 2
this.$refs['divAdd'].showAdd(sid)
},
close(sid){
this.viewState = 4
this.$refs['divInfo'].showAdd(sid)
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

343
supervise-crm-ui/src/views/enterprise/enterpriseAdd.vue

@ -0,0 +1,343 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>企业信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div>
<el-card class="box-card">
<div class="item">
<span class="item_text">企业名称</span>
<el-input v-model="formobj.enterpriseName" placeholder="" class="item_input" style="width: 520px;"
clearable />
</div>
<div class="item">
<span class="item_text">企业简称</span>
<el-input v-model="formobj.enterpriseAbbreviation" placeholder="" class="item_input" style="width: 520px;"
clearable />
</div>
<div class="item">
<span class="item_text">营业执照</span>
<el-input v-model="formobj.businessLicenseNumber" placeholder="" class="item_input" style="width: 520px;"
clearable />
</div>
<div class="item">
<span class="item_text">企业法人</span>
<el-input v-model="formobj.juridicalPerson" placeholder="" class="item_input" style="width: 520px;"
clearable />
</div>
<div class="item">
<span class="item_text">联系人员</span>
<el-input v-model="formobj.contacts" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">联系电话</span>
<el-input v-model="formobj.telephone" placeholder="" maxlength="11" class="item_input" style="width: 520px;"
clearable />
</div>
<div class="item">
<span class="item_text">银行账户</span>
<el-input v-model="formobj.bankAccount" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">银行卡号</span>
<el-input v-model="formobj.accountNumber" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">开户行名称</span>
<el-input v-model="formobj.openingBankName" placeholder="" class="item_input"
style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">--</span>
<div class="item_input">
<el-select v-model="formobj.province" filterable placeholder="请选择省" class="addinputw" style="width:160px"
@change="getShen">
<el-option v-for="item in inputProvinceList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<el-select v-model="formobj.city" filterable placeholder="请选择市" class="addinputw"
style="width:160px;margin-left: 20px;margin-right: 20px;" @change="getShi">
<el-option v-for="item in inputCityList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<el-select v-model="formobj.county" filterable placeholder="请选择县" class="addinputw" style="width:160px"
@change="getXian">
<el-option v-for="item in inputCountyList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</div>
</div>
<div class="item">
<span class="item_text">企业地址</span>
<el-input v-model="formobj.address" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
</el-card>
</div>
</div>
</template>
<script>
import req from '@/api/enterprise/enterprise'
import {
getCity,
getCounty,
getProvince
} from '@/api/portal/areaPicker' //
export default {
data() {
return {
submitdisabled: false,
formobj: {
sid: "",
enterpriseName: "",
enterpriseAbbreviation: "",
accountNumber: "",
bankAccount: "",
openingBankName: "",
juridicalPerson: "",
businessLicenseNumber: "",
province: '',
city: "",
county: "",
address: "",
contacts: "",
telephone: ""
},
inputProvinceList: [],
inputCityList: [],
inputCountyList: [],
}
},
created() {
this.huoquSheng()
},
methods: {
saveOrUpdate() {
console.log(">>>>>>>>>222222", this.formobj)
if (this.formobj.sid) {
req.updateData(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
} else {
req.addInfo(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
}
},
handleReturn(isreload) {
console.log(">>>>>>>>>")
if (isreload === 'true') this.$emit('reloadlist')
if (this.formobj.psid) {
this.$emit('close', this.formobj.psid)
} else {
this.$emit('doback')
}
this.formobj = {
sid: "",
enterpriseName: "",
enterpriseAbbreviation: "",
accountNumber: "",
bankAccount: "",
openingBankName: "",
juridicalPerson: "",
businessLicenseNumber: "",
province: '',
city: "",
county: "",
address: "",
contacts: "",
telephone: ""
}
},
showAdd(sid) {
this.formobj.psid = sid
},
showEdit(row) {
req.fetchBySid(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
// --------------------------------------------------
huoquSheng() {
getProvince().then((res) => {
if (res.success) {
this.inputProvinceList = res.data
}
})
},
getShen(value) {
let bb = ''
this.inputProvinceList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
// codeprovince
this.formobj.province = bb.name
this.huoquShi(bb.sid)
},
huoquShi(sid1) {
var sid = {
sid: sid1
}
getCity(sid).then((res) => {
if (res.success) {
this.inputCityList = res.data
}
})
},
getShi(value) {
let bb = ''
this.inputCityList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
this.formobj.city = bb.name
this.huoquXian(bb.sid)
},
huoquXian(sid1) {
var sid = {
sid: sid1
}
getCounty(sid).then((res) => {
if (res.success) {
this.inputCountyList = res.data
}
})
},
getXian(value) {
let bb = ''
this.inputCountyList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
this.formobj.county = bb.name
},
}
}
</script>
<style lang="scss">
.box-card {
margin-left: 60px;
margin-right: 60px;
margin-top: 20px;
.item {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin-top: 15px;
height: 40px;
line-height: 40px;
.item_text {
font-size: 18px;
text-align: right;
}
.item_input {
font-size: 16px;
margin-left: 10px;
margin-right: 80px;
}
.item_left_input {
width: 20%;
}
.item_left_text {
height: 30px;
margin-left: 20px;
line-height: 30px;
color: #018AD2;
padding: 0px 15px;
border: 1.5px solid #018AD2;
border-radius: 5px;
}
.item_right {
flex: 1;
justify-items: center;
.item_right_list_text {
font-size: 16px;
}
.item_right_list_delect {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

210
supervise-crm-ui/src/views/enterprise/enterpriseInfo.vue

@ -0,0 +1,210 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>查看企业信息</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="top" label-width="190px" class="formadd">
<div class="titwu">企业信息</div>
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div>基本信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">企业名称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.enterpriseName}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">企业简称</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.enterpriseAbbreviation}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">企业法人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.juridicalPerson}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">营业执照</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.businessLicenseNumber}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">联系人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.contacts}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">联系电话</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.telephone}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">银行账户</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.bankAccount}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">银行卡号</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.accountNumber}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">开户银行</span>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item class="trightb_item">
<span>{{temp.openingBankName}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">--</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.province}} - {{temp.city}} - {{temp.county}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">企业地址</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.address}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/enterprise/enterprise'
export default {
name: 'CustomerManagementInfo',
data() {
return {
temp: {} //
}
},
methods: {
showAdd(sid) {
req.fetchBySid(sid)
.then(resp => {
if (resp.success) {
this.temp = resp.data
}
})
.catch(e => {
this.$emit('doback')
})
},
//
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
.trightb {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
</style>

243
supervise-crm-ui/src/views/enterprise/index.vue

@ -0,0 +1,243 @@
<template>
<div class="app-container">
<div v-show="viewState ==1">
<button-bar view-title="企业管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="80px" class="tab-header">
<el-form-item label="企业名称">
<el-input v-model="listQuery.params.enterpriseName" maxlength="20" placeholder="请输入企业名称" class="addinputw"
clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleReset">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleFilter">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">企业信息列表</div>
<!-- 翻页分页 -->
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> -->
</div>
<div class="">
<el-table v-loading="listLoading" :data="list" border style="width: 100%;">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="操作" wid align="center" width="220">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toDetail(scope.row)">查看</el-button>
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="doDel(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="企业名称" prop="enterpriseName" align="center" />
<el-table-column label="企业简称" prop="enterpriseAbbreviation" width="180" align="center" />
<el-table-column label="省 - 市 - 县" width="200" align="center">
<template slot-scope="scope">
<span>{{ scope.row.province }}</span>
<span>-{{ scope.row.city }}-</span>
<span>{{ scope.row.county }}</span>
</template>
</el-table-column>
<el-table-column label="地址" prop="address" align="center" />
<el-table-column label="联系人" prop="contacts" width="120" align="center" />
<el-table-column label="联系电话" prop="telephone" width="180" align="center" />
</el-table>
</div>
<div class="pages">
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
<enterpriseAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @close="close($event)" @reloadlist="getList" />
<enterpriseInfo v-show="viewState ==4" ref="divInfo" @doback="resetState" @dojump="jump($event)" @reloadlist="getList"/>
</div>
</template>
<script>
import req from '@/api/enterprise/enterprise'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import enterpriseAdd from './enterpriseAdd.vue'
import enterpriseInfo from './enterpriseInfo.vue'
export default {
name: 'CustomerManagement',
components: {
Pagination,
pageye,
ButtonBar,
enterpriseAdd,
enterpriseInfo,
},
data() {
return {
listLoading: false,
btndisabled: false,
btnList: [{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
list: [],
listQuery: {
current: 1,
size: 10,
params: {
bankName: '',
},
total: 0
},
viewState: 1
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.init()
//
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
init() {
this.getList()
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
req.listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleReset() {
this.listQuery.current = 1
this.getList()
},
//
handleFilter() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
bankName: ""
}
}
this.getList()
},
//
toAdd() {
this.viewState = 2
},
//
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
// ID
doDel(row) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
req.delBySids(row.sid).then((response) => {
if (response.success) {
this.$message({
showClose: true,
type: 'success',
message: '删除成功'
})
this.getList()
} else {
this.$message({
showClose: true,
type: 'error',
message: '删除失败'
})
}
})
})
},
toDetail(row) {
this.viewState = 4
this.$refs['divInfo'].showAdd(row.sid)
},
resetState() {
this.viewState = 1
},
jump(sid) {
console.log("jump",sid)
this.viewState = 2
this.$refs['divAdd'].showAdd(sid)
},
close(sid){
this.viewState = 4
this.$refs['divInfo'].showAdd(sid)
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

246
supervise-crm-ui/src/views/storehouse/index.vue

@ -0,0 +1,246 @@
<template>
<div class="app-container">
<div v-show="viewState ==1">
<button-bar view-title="库房管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="80px" class="tab-header">
<el-form-item label="库房地址">
<el-input v-model="listQuery.params.bankName" maxlength="20" placeholder="请输入库房地址" class="addinputw"
clearable />
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleReset">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handleFilter">重置</el-button>
</div>
</div>
</div>
<div class="listtop">
<div class="tit">库房信息列表</div>
<!-- 翻页分页 -->
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/> -->
</div>
<div class="">
<el-table v-loading="listLoading" :data="list" border style="width: 100%;">
<!-- <el-table-column type="selection" align="center" width="50"/> -->
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column label="操作" wid align="center" width="220">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toDetail(scope.row)">查看</el-button>
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="doDel(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="库房地址" prop="address" align="center" />
<el-table-column label="省 - 市 - 县" width="200" align="center">
<template slot-scope="scope">
<span>{{ scope.row.province }}</span>
<span>-{{ scope.row.city }}-</span>
<span>{{ scope.row.county }}</span>
</template>
</el-table-column>
<el-table-column label="面积" prop="squareMeasure" width="100" align="center" />
<el-table-column label="层高" prop="floorHeight" width="80" align="center" />
<el-table-column label="价格" prop="price" width="100" align="center" />
<el-table-column label="性质" prop="properties" width="180" align="center" />
<el-table-column label="房源" prop="housingResources" width="80" align="center" />
<el-table-column label="联系人" prop="contacts" width="100" align="center" />
<el-table-column label="联系电话" prop="telephone" width="150" align="center" />
</el-table>
</div>
<div class="pages">
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current"
:limit.sync="listQuery.size" class="pagination" @pagination="getList" />
</div>
</div>
</div>
<storehouseAdd v-show="viewState ==2 || viewState ==3" ref="divAdd" @doback="resetState" @close="close($event)" @reloadlist="getList" />
<storehouseInfo v-show="viewState ==4" ref="divInfo" @doback="resetState" @dojump="jump($event)" @reloadlist="getList"/>
</div>
</template>
<script>
import req from '@/api/storehouse/storehouse'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import storehouseAdd from './storehouseAdd.vue'
import storehouseInfo from './storehouseInfo.vue'
export default {
name: 'CustomerManagement',
components: {
Pagination,
pageye,
ButtonBar,
storehouseAdd,
storehouseInfo,
},
data() {
return {
listLoading: false,
btndisabled: false,
btnList: [{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
list: [],
listQuery: {
current: 1,
size: 10,
params: {
bankName: '',
},
total: 0
},
viewState: 1
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.init()
//
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
//
init() {
this.getList()
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
req.listPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleReset() {
this.listQuery.current = 1
this.getList()
},
//
handleFilter() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
bankName: ""
}
}
this.getList()
},
//
toAdd() {
this.viewState = 2
},
//
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
},
// ID
doDel(row) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
req.delBySids(row.sid).then((response) => {
if (response.success) {
this.$message({
showClose: true,
type: 'success',
message: '删除成功'
})
this.getList()
} else {
this.$message({
showClose: true,
type: 'error',
message: '删除失败'
})
}
})
})
},
toDetail(row) {
this.viewState = 4
this.$refs['divInfo'].showAdd(row.sid)
},
resetState() {
this.viewState = 1
},
jump(sid) {
console.log("jump",sid)
this.viewState = 2
this.$refs['divAdd'].showAdd(sid)
},
close(sid){
this.viewState = 4
this.$refs['divInfo'].showAdd(sid)
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

331
supervise-crm-ui/src/views/storehouse/storehouseAdd.vue

@ -0,0 +1,331 @@
<template>
<div>
<div class="tab-header webtop">
<!-- 标题 -->
<div>库房信息</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div>
<el-card class="box-card">
<div class="item">
<span class="item_text">库房位置</span>
<el-input v-model="formobj.address" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">--</span>
<div class="item_input">
<el-select v-model="formobj.province" filterable placeholder="请选择省" class="addinputw" style="width:160px"
@change="getShen">
<el-option v-for="item in inputProvinceList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<el-select v-model="formobj.city" filterable placeholder="请选择市" class="addinputw"
style="width:160px;margin-left: 20px;margin-right: 20px;" @change="getShi">
<el-option v-for="item in inputCityList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
<el-select v-model="formobj.county" filterable placeholder="请选择县" class="addinputw" style="width:160px"
@change="getXian">
<el-option v-for="item in inputCountyList" :key="item.sid" :label="item.name" :value="item.sid" />
</el-select>
</div>
</div>
<div class="item">
<span class="item_text">库房面积</span>
<el-input v-model="formobj.squareMeasure" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">库房层高</span>
<el-input v-model="formobj.floorHeight" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">库房价格</span>
<el-input v-model="formobj.price" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">库房性质</span>
<el-input v-model="formobj.properties" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">房源</span>
<el-input v-model="formobj.housingResources" placeholder="" class="item_input"
style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">联系人</span>
<el-input v-model="formobj.contacts" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">联系电话</span>
<el-input v-model="formobj.telephone" placeholder="" maxlength="11" class="item_input" style="width: 520px;" clearable />
</div>
<div class="item">
<span class="item_text">备注</span>
<el-input v-model="formobj.remarks" placeholder="" class="item_input" style="width: 520px;" clearable />
</div>
</el-card>
</div>
</div>
</template>
<script>
import req from '@/api/storehouse/storehouse'
import {
getCity,
getCounty,
getProvince
} from '@/api/portal/areaPicker' //
export default {
data() {
return {
submitdisabled: false,
formobj: {
sid: "",
address: "",
squareMeasure: "",
floorHeight: "",
properties: "",
price: "",
housingResources: "",
province: '',
city: "",
county: "",
contacts: "",
telephone: "",
remarks: ""
},
inputProvinceList: [],
inputCityList: [],
inputCountyList: [],
}
},
created() {
this.huoquSheng()
},
methods: {
saveOrUpdate() {
console.log(">>>>>>>>>222222", this.formobj)
if (this.formobj.sid) {
req.updateData(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
} else {
req.addInfo(this.formobj)
.then(resp => {
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
} else {
// resp.code
}
})
.catch(() => {})
}
},
handleReturn(isreload) {
console.log(">>>>>>>>>")
if (isreload === 'true') this.$emit('reloadlist')
if (this.formobj.psid) {
this.$emit('close', this.formobj.psid)
} else {
this.$emit('doback')
}
this.formobj = {
sid: "",
address: "",
squareMeasure: "",
floorHeight: "",
properties: "",
price: "",
housingResources: "",
province: '',
city: "",
county: "",
contacts: "",
telephone: "",
remarks: ""
}
},
showAdd(sid) {
this.formobj.psid = sid
},
showEdit(row) {
req.fetchBySid(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
}
})
.catch(e => {
this.formobj = row
})
},
// --------------------------------------------------
huoquSheng() {
getProvince().then((res) => {
if (res.success) {
this.inputProvinceList = res.data
}
})
},
getShen(value) {
let bb = ''
this.inputProvinceList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
// codeprovince
this.formobj.province = bb.name
this.huoquShi(bb.sid)
},
huoquShi(sid1) {
var sid = {
sid: sid1
}
getCity(sid).then((res) => {
if (res.success) {
this.inputCityList = res.data
}
})
},
getShi(value) {
let bb = ''
this.inputCityList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
this.formobj.city = bb.name
this.huoquXian(bb.sid)
},
huoquXian(sid1) {
var sid = {
sid: sid1
}
getCounty(sid).then((res) => {
if (res.success) {
this.inputCountyList = res.data
}
})
},
getXian(value) {
let bb = ''
this.inputCountyList.forEach((e) => {
if (e.sid === value) {
bb = {
name: e.name,
districtCode: e.districtCode,
sid: e.sid
}
}
})
this.formobj.county = bb.name
},
}
}
</script>
<style lang="scss">
.box-card {
margin-left: 60px;
margin-right: 60px;
margin-top: 20px;
.item {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
margin-top: 15px;
height: 40px;
line-height: 40px;
.item_text {
font-size: 18px;
text-align: right;
}
.item_input {
font-size: 16px;
margin-left: 10px;
margin-right: 80px;
}
.item_left_input {
width: 20%;
}
.item_left_text {
height: 30px;
margin-left: 20px;
line-height: 30px;
color: #018AD2;
padding: 0px 15px;
border: 1.5px solid #018AD2;
border-radius: 5px;
}
.item_right {
flex: 1;
justify-items: center;
.item_right_list_text {
font-size: 16px;
}
.item_right_list_delect {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

198
supervise-crm-ui/src/views/storehouse/storehouseInfo.vue

@ -0,0 +1,198 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>查看库房信息</div>
<div>
<el-button type="info" size="small" icon="el-icon-close" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="listconadd">
<el-form ref="dataForm" :model="temp" label-position="top" label-width="190px" class="formadd">
<div class="titwu">库房信息</div>
<div class="title" style="display: flex;align-items: center;justify-content: space-between;height:40px">
<div>基本信息</div>
</div>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">库房位置</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.address}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">--</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.province}} - {{temp.city}} - {{temp.county}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">库房面积</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.squareMeasure}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">库房层高</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.floorHeight}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">库房价格</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.price}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">库房性质</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.properties}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">房源</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.housingResources}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">备注</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.remarks}}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">联系人</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.contacts}}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item class="trightb_item">
<span slot="label">联系电话</span>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="trightb_item">
<span>{{temp.telephone}}</span>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/storehouse/storehouse'
export default {
name: 'CustomerManagementInfo',
data() {
return {
temp: {} //
}
},
methods: {
showAdd(sid) {
req.fetchBySid(sid)
.then(resp => {
if (resp.success) {
this.temp = resp.data
}
})
.catch(e => {
this.$emit('doback')
})
},
//
handleReturn() {
this.$emit('doback')
}
}
}
</script>
<style scoped>
.trightb {
display: flex;
align-items: center;
text-align: ;
justify-content: center;
}
.trightb_item {
padding-top: 5px;
}
.span {
margin-left: 50px;
font-size: 15px;
font-weight: 400;
}
/deep/ .el-collapse-item__header {
height: 40px;
padding: 10px;
font-weight: bold;
font-size: 20px;
text-align: left;
color: #ffffff;
background-color: #0294d7;
}
/deep/ .el-collapse-item__content {
padding-bottom: 0;
}
</style>

3
supervise-customer-ui/src/api/portal/Upload.js

@ -4,7 +4,8 @@ import qs from 'qs'
const base = process.env.VUE_APP_URL
// 文件上传接口
export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'
export const uploadFile = 'api/customer/file/upload'
// export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'

4
supervise-customer-ui/src/api/tobacco/orderCommodity.js

@ -6,7 +6,7 @@ export default {
listPage: function(params) {
return request({
baseURL: '/api',
url: '/customer/v1/purchaserequisitionpro/listPage',
url: '/customer/v1/purchaserequisitionstore/listPage',
method: 'post',
data: params,
headers: {
@ -17,7 +17,7 @@ export default {
exportExcel: function(params) {
return request({
baseURL: '/api',
url: '/customer/v1/purchaserequisitionpro/exportExcel',
url: '/customer/v1/purchaserequisitionstore/exportExcel',
method: 'post',
responseType: 'blob', // 表明返回服务器返回的数据类型
data: params,

4
supervise-customer-ui/src/api/tobacco/orders.js

@ -6,7 +6,7 @@ export default {
listPage: function(params) {
return request({
baseURL: '/api',
url: '/customer/v1/purchaserequisition/listPage',
url: '/customer/v1/purchaserequisitiontobacco/listPage',
method: 'post',
data: params,
headers: {
@ -17,7 +17,7 @@ export default {
exportExcel: function(params) {
return request({
baseURL: '/api',
url: '/customer/v1/purchaserequisition/exportExcel',
url: '/customer/v1/purchaserequisitiontobacco/exportExcel',
method: 'post',
responseType: 'blob', // 表明返回服务器返回的数据类型
data: params,

4
supervise-message-ui/.env.development

@ -2,8 +2,8 @@
ENV = 'development'
# base api
VUE_APP_BASE_API = '/api'
VUE_APP_BASE_API = '/api/service'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://127.0.0.1:8112"
VUE_APP_URL = "http://192.168.3.173:8112"
##VUE_APP_URL = "http://120.46.172.184:8111"

50
supervise-message-ui/src/api/message/mbxx.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
// 模板信息
export default {
// 新增模板消息
addSave: function(params) {
return request({
// baseURL: '/api',
url: '/v1/wechattemplate/save',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 查询分页列表
listPage: function(params) {
return request({
// baseURL: '/api',
url: '/v1/wechattemplate/listPage',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
},
// 初始化
fetchBySid: function(sid) {
return request({
url: '/v1/wechattemplate/getTemplateBySid/' + sid,
method: 'get',
})
},
// 修改
updateData: function(data) {
return request({
url: '/v1/wechattemplate/update',
method: 'post',
data: data
});
},
// 删除
delBySids: function(sid) {
return request({
url: '/v1/wechattemplate/delete/' + sid,
method: 'delete',
})
},
}

29
supervise-message-ui/src/api/portal/Upload.js

@ -0,0 +1,29 @@
import request from '@/utils/request'
import qs from 'qs'
// 统一请求路径前缀
const base = process.env.VUE_APP_URL
// 文件上传接口
export const uploadFile = process.env.VUE_APP_BASE_API + '/customer/file/upload'
// 上传图片
// export function imageUpload(data) {
// return request({
// url: '/portal/file/upload',
// method: 'post',
// data,
// headers: { 'Content-Type': 'multipart/form-data' }
// })
// }
// 移除图片
export function deleteFilesOss(data) {
return request({
url: '/base/v1/baseVehicleAppendixs/deleteFilesOss',
method: 'post',
data: qs.stringify(data),
// headers: { 'Content-Type': 'multipart/form-data' }
})
}

34
supervise-message-ui/src/api/portal/areaPicker.js

@ -0,0 +1,34 @@
import request from '@/utils/request'
// 获取省/portal/v1/regions/getProvince
export function getProvince(data) {
return request({
url: '/portal/v1/regions/getProvince',data,
method: 'get',
params:data,
})
}
// 根据省sid获取该省的所有市
export function getCity(data) {
return request({
url: '/portal/v1/regions/getCity',
params:data,
method: 'get',
})
}
// 根据市sid获取该市的所有县区
export function getCounty(data) {
return request({
url: '/portal/v1/regions/getCounty',
method: 'get',
params:data,
})
}
// // 区域列表(省市县均可用)
// export function selectsList(data) {
// return request({
// url: '/portal/v1/regions/selectsList', data,
// method: 'post',
// headers: { 'Content-Type': 'application/json' }
// })
// }

405
supervise-message-ui/src/components/uploadFile/upload_yanchejianchaTuBiao.vue

@ -1,222 +1,247 @@
<template>
<div>
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :headers="accessToken" :action="uploadFile" :accept="accept" list-type="picture-card" :limit="limit" :file-list="files" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees" :on-error="uploadError" :on-success="uploadImgSuccess_FuJian">
<i class="el-icon-plus avatar-uploader-icon"/>
<el-upload ref="imgUpload" v-loading="loadding" class="avatar-uploader" :class="{ disabled: uploadDisabled }"
:headers="accessToken" :action="uploadFile" :accept="accept" list-type="picture-card" :limit="limit"
:file-list="files" :on-remove="removeImage" :on-preview="handlePictureCardPreview" :on-progress="uploadProgrees"
:on-error="uploadError" :on-success="uploadImgSuccess_FuJian">
<i class="el-icon-plus avatar-uploader-icon" />
</el-upload>
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<el-dialog :visible.sync="dialogVisible" title="查看图片">
<img width="100%" :src="dialogImageUrl" alt="">
</el-dialog>
</div>
</template>
<script>
import { uploadFile_yanchejiancha } from '@/api/portal/Upload'
import { getStorage } from '@/utils/auth.js'
import {
uploadFile
} from '@/api/portal/Upload'
import {
getStorage
} from '@/utils/auth.js'
export default {
model: {
prop: 'name',
event: 'change'
},
props: {
placeholder: {
type: String,
default: ''
},
bucket: {
type: String,
default: 'abc'
},
//
width: {
type: String,
default: '270px'
},
limit: {
type: Number,
default: ''
},
accept: {
type: String,
default: '.jpg,.jpeg,.png,.JPG,.JPEG,'
},
//
name: {
type: Array,
required: true
},
uploadData: {
type: Object,
default: {}
}
},
data() {
return {
dialogImageUrl: '',
dialogVisible: false,
accessToken: null,
uploadFile: uploadFile_yanchejiancha,
fileList_FuJian: [],
enclosure: '',
file_add: '',
file_catch: '',
files: [],
files_list: [],
filedUrl: '',
// fileUrl: fileUrl,
// showpicture:false,
isview: false,
nameArr: '',
loadding: false
}
},
watch: {
name: {
deep: true,
immediate: true,
handler(newVal, oldVal) {
console.log('aaaa1', newVal)
this.files = newVal
console.log('aaaa2', this.files)
export default {
model: {
prop: 'name',
event: 'change'
},
props: {
placeholder: {
type: String,
default: ''
},
bucket: {
type: String,
default: 'abc'
},
//
width: {
type: String,
default: '270px'
},
limit: {
type: Number,
default: ''
},
accept: {
type: String,
default: '.jpg,.jpeg,.png,.JPG,.JPEG,'
},
//
name: {
type: Array,
required: true
},
uploadData: {
type: Object,
default: {}
}
}
},
mounted() {
this.$nextTick(() => {
this.Init()
})
},
created() {
this.uploadFile = uploadFile_yanchejiancha //
this.accessToken = {
token: getStorage()
}
},
methods: {
showImg(imgList) {
this.files = imgList
console.log('123123123', this.files)
},
view() {
// window.open(this.filedUrl)
},
//
Init() {
if (this.name !== undefined) {
this.files = []
for (var i = 0; i < this.name.length; i++) {
this.files.push({
name: this.name[i],
url: this.name[i]
})
}
data() {
return {
uploadDisabled: false,
dialogImageUrl: '',
dialogVisible: false,
accessToken: null,
uploadFile: uploadFile,
fileList_FuJian: [],
enclosure: '',
file_add: '',
file_catch: '',
files: [],
files_list: [],
filedUrl: '',
// fileUrl: fileUrl,
// showpicture:false,
isview: false,
nameArr: '',
loadding: false
}
},
handlePictureCardPreview(file) {
this.dialogVisible = true
this.dialogImageUrl = file.url
},
// --
uploadImgSuccess_FuJian(response, file, fileList) {
console.log('您选择的file:', file)
if (file.response.code === '200') {
this.loadding = false
//
this.filedUrl = this.fileUrl + file.response.data
// var uid = file.response.data
this.files.push({
name: file.response.data.sourceFileName,
url: file.response.data.fullUrl,
size: file.response.data.size
})
this.$emit('change', this.files)
this.$emit('eett', this.files)
watch: {
name: {
deep: true,
immediate: true,
handler(newVal, oldVal) {
this.files = newVal
console.log("this.files>>>", this.files.length)
if (this.files.length > 0) {
this.uploadDisabled = true
} else {
this.uploadDisabled = false
}
}
}
},
mounted() {
this.$nextTick(() => {
this.Init()
removeImage(file, ImageFileList) {
this.files.splice(this.files.indexOf(file), 1)
const imgFiles = []
this.files.forEach((o) => {
imgFiles.push(o.url)
})
this.$emit('fileChange', this.files)
},
handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file))
console.log('fileList:' + JSON.stringify(fileList))
this.enclosure = ''
// 1. id(this.file_add)
this.getNewFileId(fileList)
// 2. id(this.file_catch)
this.getCatchFileId(file)
// 3. id
this.getFileId()
// 4. id
this.$emit('change', this.enclosure)
},
// this.file_add(id)
getNewFileId(fileList) {
// debugger
this.file_add = ''
for (var i = 0; i < fileList.length; i++) {
if (fileList[i].response && fileList[i].response.code === '200') {
this.file_add = this.file_add + fileList[i].response.data + ','
}
}
if (this.file_add !== '') {
this.file_add = this.file_add.substring(0, this.file_add.length - 1)
created() {
this.uploadFile = uploadFile //
this.accessToken = {
token: getStorage()
}
// console.log('1. this.file_add: ' + this.file_add)
},
// this.file_catchid
getCatchFileId(file) {
for (var i = 0; i < this.files_list.length; i++) {
if (this.file_catch !== '') {
// 1. id
if (this.files_list[i].name === file.name) {
// 2. file_catchfils_arry
var fils_arry = this.file_catch.split(',')
// 3. fils_arry this.files_list[i].id
var arry = []
fils_arry.forEach((element) => {
//
if (element !== this.files_list[i].id) {
arry.push(element)
}
methods: {
showImg(imgList) {
this.files = imgList
},
view() {
// window.open(this.filedUrl)
},
//
Init() {
if (this.name !== undefined) {
this.files = []
for (var i = 0; i < this.name.length; i++) {
this.files.push({
name: this.name[i],
url: this.name[i]
})
// 4. file_catch
this.file_catch = arry.join(',')
}
}
}
// console.log('2. this.file_catch:' + this.file_catch)
},
// id
getFileId() {
// console.log('3. this.file_catch:' + this.file_catch + ',this.file_add:' + this.file_add)
if (this.file_catch !== '') {
},
handlePictureCardPreview(file) {
this.dialogVisible = true
this.dialogImageUrl = file.url
},
// --
uploadImgSuccess_FuJian(response, file, fileList) {
console.log('您选择的file:', file)
if (file.response.code === '200') {
this.loadding = false
//
this.filedUrl = this.fileUrl + file.response.data
// var uid = file.response.data
this.files.push({
name: file.response.data.sourceFileName,
url: file.response.data.fullUrl,
size: file.response.data.size
})
this.$emit('change', this.files)
this.$emit('eett', this.files)
}
},
removeImage(file, ImageFileList) {
this.files.splice(this.files.indexOf(file), 1)
console.log("this.files222222>>>", this.files.length)
if (this.files.length > 0) {
this.uploadDisabled = true
} else {
this.uploadDisabled = false
}
const imgFiles = []
this.files.forEach((o) => {
imgFiles.push(o.url)
})
this.$emit('fileChange', this.files)
},
handleRemove(file, fileList) {
console.log('file:' + JSON.stringify(file))
console.log('fileList:' + JSON.stringify(fileList))
this.enclosure = ''
// 1. id(this.file_add)
this.getNewFileId(fileList)
// 2. id(this.file_catch)
this.getCatchFileId(file)
// 3. id
this.getFileId()
// 4. id
this.$emit('change', this.enclosure)
},
// this.file_add(id)
getNewFileId(fileList) {
// debugger
this.file_add = ''
for (var i = 0; i < fileList.length; i++) {
if (fileList[i].response && fileList[i].response.code === '200') {
this.file_add = this.file_add + fileList[i].response.data + ','
}
}
if (this.file_add !== '') {
this.enclosure = this.file_catch + ',' + this.file_add
this.file_add = this.file_add.substring(0, this.file_add.length - 1)
}
// console.log('1. this.file_add: ' + this.file_add)
},
// this.file_catchid
getCatchFileId(file) {
for (var i = 0; i < this.files_list.length; i++) {
if (this.file_catch !== '') {
// 1. id
if (this.files_list[i].name === file.name) {
// 2. file_catchfils_arry
var fils_arry = this.file_catch.split(',')
// 3. fils_arry this.files_list[i].id
var arry = []
fils_arry.forEach((element) => {
//
if (element !== this.files_list[i].id) {
arry.push(element)
}
})
// 4. file_catch
this.file_catch = arry.join(',')
}
}
}
// console.log('2. this.file_catch:' + this.file_catch)
},
// id
getFileId() {
// console.log('3. this.file_catch:' + this.file_catch + ',this.file_add:' + this.file_add)
if (this.file_catch !== '') {
if (this.file_add !== '') {
this.enclosure = this.file_catch + ',' + this.file_add
} else {
this.enclosure = this.file_catch
}
} else {
this.enclosure = this.file_catch
this.enclosure = this.file_add
}
} else {
this.enclosure = this.file_add
}
},
//
uploadError() {
this.loadding = false
},
uploadProgrees(event, file, fileList) {
if (Number(event.percent) > 0) {
this.loadding = true
},
//
uploadError() {
this.loadding = false
},
uploadProgrees(event, file, fileList) {
if (Number(event.percent) > 0) {
this.loadding = true
}
// console.log('event:', event)
}
// console.log('event:', event)
}
}
}
</script>
<style scoped></style>
<style>
.disabled .el-upload--picture-card {
display: none;
}
</style>

16
supervise-message-ui/src/router/modules/codemenu.js

@ -48,5 +48,21 @@ const codemenu = [{
noCache: true
}
}]
}, {
path: '/xxzxydxx',
component: Layout,
redirect: '/mbxx/index',
meta: {
title: '模板消息'
},
children: [{
path: '/mbxx/index',
component: () => import('@/views/message/mbxx.vue'),
name: 'XxzxYdxx',
meta: {
title: '模板消息',
noCache: true
}
}]
}]
export default codemenu

2
supervise-message-ui/src/settings.js

@ -1,6 +1,6 @@
module.exports = {
title: '汇融供应链贷后监管平台
title: '汇融供应链贷后监管平台',
/**
* @type {boolean} true | false

19
supervise-message-ui/src/utils/request.js

@ -1,7 +1,13 @@
import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import {
MessageBox,
Message
} from 'element-ui'
import store from '@/store'
import { getToken, getStorage } from '@/utils/auth'
import {
getToken,
getStorage
} from '@/utils/auth'
// create an axios instance
const service = axios.create({
@ -49,9 +55,11 @@ service.interceptors.response.use(
* You can also judge the status by HTTP Status Code
*/
response => {
const res = response.data
const statusCode = response.status
console.log("response>>>", response)
console.log("response.data>>>", response.data)
// if the custom code is not 20000, it is judged as an error.
if (statusCode !== 200) {
Message({
@ -62,7 +70,8 @@ service.interceptors.response.use(
})
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
if (statusCode === 401 || res.code === '5000' || res.code === 5000 || res.code === 50012 || res.code === 50014) {
if (statusCode === 401 || res.code === '5000' || res.code === 5000 || res.code === 50012 || res.code ===
50014) {
// to re-login
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
@ -100,4 +109,4 @@ service.interceptors.response.use(
}
)
export default service
export default service

261
supervise-message-ui/src/views/message/mbxx.vue

@ -0,0 +1,261 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="模板消息" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">
{{ searchxianshitit }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="queryParams" :inline="true" :model="queryParams" class="tab-header">
<el-form-item label="模板名称">
<el-input v-model="queryParams.params.name" placeholder="" clearable />
</el-form-item>
<!-- <el-form-item label="订单编号">
<el-input v-model="queryParams.params.modifySid" placeholder="" clearable />
</el-form-item>
<el-form-item label="填单人">
<el-input v-model="queryParams.params.buyerName" placeholder="" clearable />
</el-form-item>
<el-form-item label="填单日期">
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期" />
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期" />
</el-form-item>
<el-form-item label="供应商名称">
<el-input v-model="queryParams.params.contacts" placeholder="" clearable />
</el-form-item>
<el-form-item label="要货单位">
<el-input v-model="queryParams.params.telephone" placeholder="" clearable />
</el-form-item>
<el-form-item label="完成状态">
<el-select v-model="queryParams.params.completionStatusKey" filterable placeholder="请选择" clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
</el-select>
</el-form-item>
<el-form-item label="到货日期">
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期" />
<span style="padding: 0 8px"></span>
<el-date-picker v-model="queryParams.params.applyStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期" />
</el-form-item> -->
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button>
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
</div>
</div>
</div>
<!-- Start 项目列表头部 -->
<div class="listtop">
<div class="tit">模板列表</div>
<!-- <pageye v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList" /> -->
</div>
<!-- End 项目列表头部 -->
<!-- Start 项目列表 -->
<div class="">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column fixed width="50" type="selection" align="center" />
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed width="180" label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">修改</el-button>
<el-button type="primary" size="mini" @click="doDel(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column prop="templateId" label="模板ID" align="center" />
<el-table-column prop="title" label="模板名称" align="center" width="250" />
<el-table-column prop="trade" label="行业" align="center" width="250" />
</el-table>
</div>
<!-- End 项目列表 -->
<div class="pages">
<div class="tit" />
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current"
:limit.sync="queryParams.size" @pagination="loadList" />
</div>
</div>
</div>
<!-- End 查询和其列表部分 -->
<!-- 新增修改部分组件 -->
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" />
<!-- <divInfo v-show="viewState == 4" ref="divInfo" @doback="resetState" /> -->
</div>
</template>
<script>
import req from '@/api/message/mbxx'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './mbxxAdd.vue'
// import divInfo from './mbxxInfo.vue'
export default {
name: 'XxzxYdxx',
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dataList: [],
state_list: [{
dictKey: 0,
dictValue: '未完成'
}],
btnList: [{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
}, {
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}],
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
name: '',
}
},
sids: []
}
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
created() {
this.loadList()
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
loadList() {
req.listPage(this.queryParams).then((resp) => {
this.tableLoading = false
if (resp.success) {
const data = resp.data
this.queryParams.total = data.total
this.dataList = data.records
} else {
// resp.code
this.dataList = []
this.queryParams.total = 0
}
}).catch(() => {
this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
aa.push(element.sid)
})
this.sids = aa
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
name: '',
}
}
this.loadList()
},
toAdd() {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
toEdit(row) {
this.viewState = 3
this.$refs['divadd'].showEdit(row)
},
doDel(row) {
const tip = '请确认是否删除所选记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.delBySids(row.sid).then(resp => {
loading.close()
if (resp.success) {
this.$message({
type: 'success',
message: resp.msg,
showClose: true
})
this.loadList()
} else {
// resp.code
}
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
</style>

310
supervise-message-ui/src/views/message/mbxxAdd.vue

@ -0,0 +1,310 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="模板消息" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<div class="main-content">
<div class="box-card">
<!-- <div
style="display: flex;flex-direction: column; justify-items: center; align-items: center; margin: 20px;flex: 1;">
<upload ref="uploadImg2" v-model="imgList" :limit="1" @change="backData"
bucket="map" :upload-data="{ type: '0001' }"></upload>
<span style="font-size:18px; margin-top: 30px; ">上传示例图册</span>
</div> -->
<div
style="display: flex; flex-direction: column; margin-left: -80px; margin-top: 20px;margin-bottom: 20px;flex: 4;">
<div class="item">
<span class="item_text">模板ID</span>
<el-input v-model="form.templateId" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">标题</span>
<el-input v-model="form.title" placeholder="" class="item_input" clearable />
</div>
<div class="item">
<span class="item_text">行业</span>
<el-input v-model="form.trade" placeholder="" class="item_input" clearable />
</div>
<div class="item" style="height: auto; align-items: start;">
<span class="item_text">详细内容</span>
<div style=" flex: 4.2; display: flex;flex-direction: column; margin-left: 10px;">
<div v-for="(item,index) in form.text" :key="index" class="item_right">
<span class="item_right_list_text">{{item.key}}</span>
<span style="margin-left: 10px;margin-right: 10px;"> </span>
<span class="item_right_list_text">{{item.value}}</span>
<span class="item_right_list_delect" @click="showDelectDialog(index)">删除</span>
</div>
<div style="display: flex; flex-direction: row;align-items: center;">
<el-input v-model="inputText1" placeholder="" class="item_left_input" clearable />
<span style="margin-left: 10px;margin-right: 10px;"> </span>
<el-input v-model="inputText2" placeholder="" class="item_left_input" clearable />
<span class="item_left_text" @click="add">添加</span>
</div>
</div>
</div>
</div>
</div>
<!-- 删除提示框 -->
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
<span>是否确认要删除</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="delect()"> </el-button>
</span>
</el-dialog>
</div>
</div>
</div>
</template>
<script>
import req from '@/api/message/mbxx'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import upload from '@/components/uploadFile/upload_yanchejianchaTuBiao'
export default {
components: {
ButtonBar,
Pagination,
pageye,
upload
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false,
searchxianshitit: '显示查询条件',
tableLoading: false,
dialogVisible: false,
itemIndex: 0,
dataList: [],
imgList: [],
btnList: [{
type: 'primary',
size: 'small',
icon: 'submit',
btnKey: 'doSubmit',
btnLabel: '保存'
}, {
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}],
inputText1: "",
inputText2: "",
form: {
sid: '',
templateId: '',
title: '',
trade: "",
text: []
},
};
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doSubmit':
this.toSave()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
showAdd(row) {
},
showEdit(row) {
req.fetchBySid(row.sid)
.then(resp => {
if (resp.success) {
console.log("data211111111111112222222222>>>", resp.data)
this.form = resp.data
}
})
.catch(e => {
this.form = row
})
},
add() {
this.form.text.push({
key: this.inputText1,
value: this.inputText2,
})
this.inputText1 = ""
this.inputText2 = ""
console.log("codeIndex>>>", this.form.text)
},
showDelectDialog(index) {
this.dialogVisible = true
this.itemIndex = index
},
delect() {
this.dialogVisible = false
// //1
this.form.text.splice(this.itemIndex, 1);
},
handleClose(done) {
this.$confirm('确认关闭?')
.then(_ => {
this.dialogVisible = false
})
.catch(_ => {});
},
backData(value) {
console.log(value, 999)
this.form.imageUrl = value[0].url
},
toSave() {
console.log("data>>>", this.form)
if (this.form.sid) {
req.updateData(this.form).then(res => {
this.submitdisabled = false
if (res.success) {
this.$message({
message: res.msg,
type: 'success'
})
this.handleReturn("true")
}
})
} else {
req.addSave(this.form)
.then(resp => {
this.submitdisabled = false
if (resp.success) {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn("true")
}
})
}
},
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj = {
sid: '',
templateId: '',
title: '',
trade: "",
text: []
}
this.$emit('doback')
},
reset() {
this.form = {
sid: '',
templateId: '',
title: '',
trade: "",
text: []
}
},
doClose() {
this.$emit('doback')
}
}
}
</script>
<style lang="scss">
.box-card {
background: #fff;
min-width: 75%;
margin-top: 20px;
display: flex;
flex-direction: row;
.item {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 25px;
height: 40px;
line-height: 40px;
.item_text {
flex: 0.8;
font-size: 18px;
text-align: right;
}
.item_input {
flex: 4;
font-size: 16px;
margin-left: 10px;
margin-right: 80px;
}
.item_left_input {
width: 20%;
}
.item_left_text {
height: 30px;
margin-left: 20px;
line-height: 30px;
color: #018AD2;
padding: 0px 15px;
border: 1.5px solid #018AD2;
border-radius: 5px;
}
.item_right {
flex: 1;
justify-items: center;
.item_right_list_text {
font-size: 16px;
}
.item_right_list_delect {
color: #5E94FF;
margin-left: 20px;
font-size: 16px;
text-decoration: underline;
}
}
}
}
</style>

288
supervise-message-ui/src/views/message/mbxxInfo.vue

@ -0,0 +1,288 @@
<template>
<div>
<el-card class="box-card">
<table class="e-table" cellspacing="0">
<tr>
<td>姓名</td>
<td>
<el-input v-model="form.name" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>员工类型</td>
<td>
<el-select v-model="form.userType" @change="$forceUpdate()" style="width:300px">
<el-option v-for="(item, i) in userTypeData" :key="i" :label="item.name" :value="item.value">
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>部门</td>
<td>
<el-select v-model="form.deptSid" placeholder="请选择" style="width:300px">
<el-option hidden :key="form.deptSid" :label="orgName" :value="form.deptSid"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-checked-keys="checkedId" :default-expand-all='true' :check-strictly='true'
:props="defaultProps" @check-change="checkchange">
</el-tree>
</el-select>
<!--<el-select v-model="form.deptSid" @change="$forceUpdate()">
<el-option
v-for="(item, i) in treedata"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>-->
</td>
</tr>
<!-- <tr>
<td>岗位</td>
<td>
<el-select v-model="form.postSid" @change="$forceUpdate()" style="width:300px">
<el-option
v-for="(item, i) in postSidData"
:key="i"
:label="item.name"
:value="item.sid">
</el-option>
</el-select>
<el-input v-model="form.postSid"></el-input>
</td>
</tr> -->
<tr>
<td>手机号码</td>
<td>
<el-input v-model="form.mobile" maxlength="11" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>微信号</td>
<td>
<el-input v-model="form.openId" style="width:300px"></el-input>
</td>
</tr>
<!-- <tr>
<td>手机验证码</td>
<td>
<el-input v-model="form.verificationCode" placeholder="请输入验证码" style="width:300px">
<el-button v-show="showCode" slot="append" @click.native="getIdentifying">获取验证码</el-button>
<el-button v-show="!showCode" slot="append">{{phoneCodeCount}} s</el-button>
</el-input>
<el-input v-model="form.verificationCode"></el-input>
</td>
</tr> -->
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
<!--<el-button type="warning" @click="cancel()"> </el-button>-->
</div>
</el-card>
</div>
</template>
<script>
import {
userAdd,
userUpdata,
userSingle,
orgList,
postList,
getCode
} from '@/api/system/userManage/index.js'
export default {
data() {
return {
form: {
sid: '',
name: '',
userType: '',
deptSid: '',
postSid: '',
mobile: '',
openId: '',
verificationCode: ''
},
form1: {
sid: '',
},
userTypeData: [{
value: '1',
name: '监管'
}, {
value: '2',
name: '客户'
},
{
value: '3',
name: '银行'
},
],
treedata: [],
checkedId: [],
orgName: '',
defaultProps: {
children: 'children',
label: 'name'
},
postSidData: [],
showCode: true,
phoneCodeCount: '',
timer: null,
};
},
props: ['dataObj'],
watch: {
dataObj: {
handler(val) {
this.form1.sid = val.sid
this.getUserSingle()
this.getOrgList()
},
deep: true,
},
},
mounted() {
this.getOrgList()
},
methods: {
getUserSingle() {
userSingle(this.form1).then(res => {
if (res.code == '200') {
this.form.sid = res.data.sid
this.form.name = res.data.name
this.form.userType = res.data.userType
this.form.deptSid = res.data.deptSid
this.orgName = res.data.departmentName
this.form.postSid = res.data.postSid
this.form.mobile = res.data.mobile
this.form.openId = res.data.openId
}
})
},
//
getOrgList(row) {
// this.roleDialog = true
this.checkedId = []
this.Thisrow = row
this.loading = true
let params = {}
orgList(params).then(res => {
this.treedata = res.data
})
},
checkchange(data, checked, indeterminate) {
if (checked) {
this.form.deptSid = data.sid
this.orgName = data.name
let arr = []
arr = [data.sid];
this.$refs.Tree.setCheckedKeys(arr);
this.form.postSid = ''
// this.getPost(data.sid)
this.form.sysStaffOrg = {
orgSid: data.sid,
orgName: data.name,
orgSidPath: data.orgSidPath,
orgNamePath: "",
orgCode: data.orgCode,
manageType: "",
}
return;
}
},
getPost(orgSid) {
let params = {
sid: orgSid
}
postList(params).then(res => {
this.postSidData = res.data
})
},
save() {
if (this.form.sid) {
userUpdata(this.form).then(res => {
if (res.code == '200') {
this.$message({
message: res.msg,
type: 'success'
})
this.$emit('status', false)
}
})
} else {
let orgSid = this.$refs.Tree.getCheckedKeys()
this.form.deptSid = orgSid.toString()
userAdd(this.form).then(res => {
if (res.code == '200') {
this.$message({
message: res.msg,
type: 'success'
})
this.$emit('status', false)
}
})
let arr = []
this.$refs.Tree.setCheckedKeys(arr);
}
this.reset()
},
reset() {
this.form = {
sid: '',
name: '',
userType: '',
deptSid: '',
postSid: '',
mobile: '',
verificationCode: ''
}
},
//
getIdentifying() {
if (this.form.mobile == "") {
this.$alert('请填写手机号码', '', {
confirmButtonText: '确定'
})
return;
}
//
const TIME_COUNT = 60;
if (!this.timer) {
this.phoneCodeCount = TIME_COUNT;
this.showCode = false;
this.timer = setInterval(() => {
if (this.phoneCodeCount > 0 && this.phoneCodeCount <= TIME_COUNT) {
this.phoneCodeCount--;
} else {
this.showCode = true;
clearInterval(this.timer);
this.timer = null;
}
}, 1000)
}
let obj = {
phone: this.form.mobile,
}
getCode(obj).then(res => {
if (res.code == '200') {
this.orginTranceNo = res.data.tranceNo;
}
})
},
cancel() {
this.$emit('status', false)
}
}
}
</script>
<style>
</style>

2
supervise-message-ui/vue.config.js

@ -6,7 +6,7 @@ function resolve(dir) {
return path.join(__dirname, dir)
}
const name = defaultSettings.title || '汇融供应链贷后监管平台// page title
const name = defaultSettings.title || '汇融供应链贷后监管平台'// page title
// 如果端口设置为80,
// 使用管理员权限执行命令行。

4
supervise-monitor-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://8.130.39.13:8112"
##VUE_APP_URL = "http://120.46.172.184:8111"
##VUE_APP_URL = "http://8.130.39.13:8112"
VUE_APP_URL = "http://192.168.3.173:8112"

1
supervise-monitor-ui/.eslintignore

@ -2,3 +2,4 @@ build/*.js
src/assets
public
dist
src/*

1
supervise-monitor-ui/babel.config.js

@ -4,6 +4,7 @@ module.exports = {
// '@vue/cli-plugin-babel/preset',
['@vue/app', { useBuiltIns: 'entry' }]
],
"ignore" : ["./src/api/hikvision/webVideoCtrl.js"],
'env': {
'development': {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().

5
supervise-monitor-ui/package.json

@ -33,7 +33,8 @@
"vue-router": "3.0.6",
"vuex": "3.1.0",
"vuex-persistedstate": "^4.0.0",
"xcrud": "^0.4.19"
"xcrud": "^0.4.19",
"web-control": "^1.0.2"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
@ -70,4 +71,4 @@
"npm": ">= 3.0.0"
},
"license": "MIT"
}
}

BIN
supervise-monitor-ui/public/WebComponentsKit.exe

Binary file not shown.

2019
supervise-monitor-ui/src/api/hikvision/demo.js

File diff suppressed because it is too large

430
supervise-monitor-ui/src/api/hikvision/hkVideo.js

@ -0,0 +1,430 @@
import { Message } from "element-ui";
var webVideoCtrl = window.WebVideoCtrl;
var $ = window.$;
/**
* 初始化
* @param {number} iWndowType 分屏类型1 - 1*12 - 2*23 - 3*34 - 4*4默认值1单画面
* @param {number} width 插件的宽度单位为px 100%表示撑满插件容器
* @param {number} height 插件的高度单位为px 100%表示撑满插件容器
* @returns null
*/
let init = (iWndowType, width, height) => {
// 检查浏览器是否支持无插件
if (!webVideoCtrl.I_SupportNoPlugin()) {
Message.warning(
"当前浏览器不支持无插件预览监控视频,已自动切换成插件模式,如果还未安装插件请安装"
);
// 检查插件是否已经安装
const isInstall = webVideoCtrl.I_CheckPluginInstall();
if (isInstall == -1) {
Message.warning(
"您还未安装过插件,请先下载WebComponentsKit.exe双击安装!"
);
return;
}
}
// 初始化插件
webVideoCtrl.I_InitPlugin(width, height, {
szColorProperty:
"plugin-background:ffffff; sub-background:00000; sub-border:D0DAE4; sub-border-select:409EFF", // 表示插件的背景颜色,插件子窗口的背景颜色,窗口边框的颜色,窗口边框选中后的颜色
iWndowType,
bNoPlugin: true, // 支持无插件
cbSelWnd: (xmlDoc) => {
let iWndIndex = parseInt($(xmlDoc)?.find("SelectWnd").eq(0).text(), 10);
console.log("当前选择的窗口编号:" + iWndIndex);
},
cbDoubleClickWnd: (iWndIndex, bFullScreen) => {
let szInfo = "当前放大的窗口编号:" + iWndIndex;
if (!bFullScreen) {
szInfo = "当前还原的窗口编号:" + iWndIndex;
}
console.log(szInfo);
}, // 无插件模式不起效
cbInitPluginComplete: () => {
// 嵌入播放插件
webVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
console.log("初始化成功--------");
resize();
// 检查插件是否最新
if (webVideoCtrl.I_CheckPluginVersion() == -1) {
Message.warning("检测到新的插件版本,双击WebComponentsKit.exe升级!");
return;
}
// login(
// global.hk_ip, // 设备的 IP 地址或者普通域名
// global.hk_prototocol,// http 协议,1 表示 http 协议 2 表示 https 协议
// global.hk_port,//登录设备的 http/https 端口号,根据 iPrototocol 选择传入不同的端口
// global.hk_username,//登录用户名称
// global.hk_password//用户密码
// );
login(
"192.168.3.175", // 设备的 IP 地址或者普通域名
"1",// http 协议,1 表示 http 协议 2 表示 https 协议
"80",//登录设备的 http/https 端口号,根据 iPrototocol 选择传入不同的端口
"admin",//登录用户名称
"Yxt123456"//用户密码
);
}, // 插件初始化完成回调,必须要定义
});
};
let destroy = () => {};
/**
* 调整大小
*/
let resize = () => {
webVideoCtrl.I_Resize($("#divPlugin").width(), $("#divPlugin").height());
};
/**
* 登录
* @param {string} ip 设备的 IP 地址或者普通域名
* @param {number} prototocol http 协议1 表示 http 协议 2 表示 https 协议
* @param {number} port 登录设备的 http/https 端口号根据 iPrototocol 选择传入不同的端口
* @param {string} userName 登录用户名称
* @param {string} password 用户密码
*/
let login = (ip, prototocol, port, userName, password) => {
webVideoCtrl.I_Login(ip, prototocol, port, userName, password, {
async: true, // http 交互方式,true 表示异步,false 表示同步
cgi: 1, // CGI 协议选择,1 表示 ISAPI,2 表示 PSIA,如果不传这个参数,会自动选择一种设备支持的协议.
// 登录成功回调
success: (xmlDoc) => {
console.log("login success-----------", xmlDoc);
// getAnalogChannelInfo(`${ip}_${port}`, {
// async: true,
// success: (analogChannelInfo) => {
// let analogCameras = analysisAnalogChannelInfo(analogChannelInfo);
// console.log(
// "获取模拟通道----------",
// analogChannelInfo,
// analogCameras
// );
// },
// error: (statusA, xmlDocA) => {
// console.log("获取模拟通道 error-----------", statusA, xmlDocA);
// },
// });
getDigitalChannelInfo(`${ip}_${port}`, {
async: true,
success: (digitalChannelInfo) => {
let digitalCameras = analysisDigitalChannelInfo(digitalChannelInfo);
console.log(
"获取数字通道----------",
digitalChannelInfo,
digitalCameras
);
},
error: (statusD, xmlDocD) => {
console.log("获取数字通道 error-----------", statusD, xmlDocD);
},
});
// getZeroChannelInfo(`${ip}_${port}`, {
// async: true,
// success: (zeroChannelInfo) => {
// let zeroCameras = analysisZeroChannelInfo(zeroChannelInfo);
// console.log("获取零通道----------", zeroChannelInfo, zeroCameras);
// },
// error: (statusZ, xmlDocZ) => {
// console.log("获取零通道 error-----------", statusZ, xmlDocZ);
// },
// });
},
// 失败函数回调
error: () => {
console.log("login error-----------");
},
});
};
/**
* 登出
* @param {string} deviceIdentify 设备标识IP_Port
* @returns 成功返回 0失败返回-1
*/
let logout = (deviceIdentify) => {
return webVideoCtrl.I_Logout(deviceIdentify);
};
/**
* 获取设备基本信息
* @param {string} deviceIdentify 设备标识IP_Port
* @param {*} options 可选参数对象:
* * async http 交互方式true 表示异步false 表示同步;
* * success 成功回调函数有一个参数表示返回的 XML 内容;
* * error 失败回调函数有两个参数第一个是 http 状态码第二个是设备返回的 XML(可能为空)
*/
let getDeviceInfo = (deviceIdentify, options) => {
webVideoCtrl.I_GetDeviceInfo(deviceIdentify, options);
};
/**
* 获取模拟通道
* @param {string} deviceIdentify 设备标识IP_Port
* @param {*} options 可选参数对象:
* * async http 交互方式true 表示异步false 表示同步;
* * success 成功回调函数有一个参数表示返回的 XML 内容;
* * error 失败回调函数有两个参数第一个是 http 状态码第二个是设备返回的 XML(可能为空)
*/
let getAnalogChannelInfo = (deviceIdentify, options) => {
webVideoCtrl.I_GetAnalogChannelInfo(deviceIdentify, options);
};
/**
* 解析模拟通道XML内容
* @param {XMLDocument} xmlDoc XML内容
* @returns cameraList: 监控列表
*/
let analysisAnalogChannelInfo = (xmlDoc) => {
let cameraList = [];
let channels = $(xmlDoc)?.find("VideoInputChannel");
$.each(channels, (i, channel) => {
let id = $(channel).find("id").eq(0).text();
let name = $(channel).find("name").eq(0).text();
if (name == "") {
name = "Camera " + (i < 9 ? "0" + (i + 1) : i + 1);
}
cameraList.push({
id,
name,
});
});
return cameraList;
};
/**
* 获取数字通道
* @param {string} deviceIdentify 设备标识IP_Port
* @param {*} options 可选参数对象:
* * async http 交互方式true 表示异步false 表示同步;
* * success 成功回调函数有一个参数表示返回的 XML 内容;
* * error 失败回调函数有两个参数第一个是 http 状态码第二个是设备返回的 XML(可能为空)
*/
let getDigitalChannelInfo = (deviceIdentify, options) => {
webVideoCtrl.I_GetDigitalChannelInfo(deviceIdentify, options);
};
/**
* 解析数字通道XML内容
* @param {XMLDocument} xmlDoc XML内容
* @param {boolean} filterOnline 是否过滤禁用的数字通道
* @returns cameraList: 监控列表
*/
let analysisDigitalChannelInfo = (xmlDoc, filterOnline) => {
let cameraList = [];
let channels = $(xmlDoc)?.find("InputProxyChannelStatus");
$.each(channels, (i, channel) => {
let id = $(channel).find("id").eq(0).text();
let name = $(channel).find("name").eq(0).text();
let online = $(channel).find("online").eq(0).text();
if (filterOnline && online == "false") {
// 过滤禁用的数字通道
return true;
}
if (name == "") {
name = "IPCamera " + (i < 9 ? "0" + (i + 1) : i + 1);
}
cameraList.push({
id,
name,
online,
});
});
return cameraList;
};
/**
* 获取零通道
* @param {string} deviceIdentify 设备标识IP_Port
* @param {*} options 可选参数对象:
* * async http 交互方式true 表示异步false 表示同步;
* * success 成功回调函数有一个参数表示返回的 XML 内容;
* * error 失败回调函数有两个参数第一个是 http 状态码第二个是设备返回的 XML(可能为空)
*/
let getZeroChannelInfo = (deviceIdentify, options) => {
webVideoCtrl.I_GetZeroChannelInfo(deviceIdentify, options);
};
/**
* 解析零通道XML内容
* @param {XMLDocument} xmlDoc XML内容
* @param {boolean} filterEnabled 是否过滤禁用的零通道
* @returns cameraList: 监控列表
*/
let analysisZeroChannelInfo = (xmlDoc, filterEnabled) => {
let cameraList = [];
let channels = $(xmlDoc)?.find("ZeroVideoChannel");
$.each(channels, (i, channel) => {
let id = $(channel).find("id").eq(0).text();
let name = $(channel).find("name").eq(0).text();
if (name == "") {
name = "Zero Channel " + (i < 9 ? "0" + (i + 1) : i + 1);
}
let enabled = $(channel).find("enabled").eq(0).text();
if (filterEnabled && enabled == "false") {
// 过滤禁用的零通道
return true;
}
cameraList.push({
id,
name,
enabled,
});
});
return cameraList;
};
/**
* 录像搜索
* @param {string} deviceIdentify 设备标识IP_Port
* @param {string} channelId 通道 ID
* @param {string} startTime 开始时间2013-12-23 00:00:00
* @param {string} endTime 结束时间2013-12-23 23:59:59
* @param {*} options 可选参数对象:
* * async http 交互方式true 表示异步false 表示同步
* * iSearchPos 搜索录像的位置默认为 00 表示返回结果的第 0-40 40 表示 40-80 依次类推
* * success 成功回调函数有一个参数表示返回的 XML 内容
* * error 失败回调函数有两个参数第一个是 http 状态码第二个是设备返回的 XML(可能为空)
* * iStreamType 码流类型 1-主码流2-子码流默认主码流
*/
let recordSearch = (deviceIdentify, channelId, startTime, endTime, options) => {
webVideoCtrl.I_RecordSearch(
deviceIdentify,
channelId,
startTime,
endTime,
options
);
};
/**
* 开始预览
* @param {string} deviceIdentify 设备标识IP_Port
* @param {*} options 可选参数对象:
* * iWndIndex 播放窗口如果不传则默认使用当前选择窗口播放默认选中窗口 0
* * iStreamType 码流类型 1-主码流2-子码流默认使用主码流预览
* * iChannelID 播放通道号默认通道 1
* * bZeroChannel 是否播放零通道默认为 false
* * iPort RTSP 端口号可以选择传入如果不传开发包会自动判断设备的 RTSP 端口
* * success 成功回调函数
* * error 失败回调函数
*/
let startRealPlay = (deviceIdentify, options) => {
webVideoCtrl.I_StartRealPlay(deviceIdentify, options);
};
/**
* 开始回放
* @param {string} deviceIdentify 设备标识IP_Port
* @param {*} options 可选参数对象:
* * iWndIndex 播放窗口如果不传则默认使用当前选择窗口播放默认选中窗口 0
* * iStreamType 码流类型 1-主码流2-子码流默认使用主码流预览
* * szStartTime 开始时间默认为当天 00:00:00格式如2013-12-23 00:00:00
* * szEndTime 结束时间默认为当天 23:59:59格式如2013-12-23 23:59:59
* * iChannelID 播放通道号默认通道 1
* * iPort RTSP 端口号可以选择传入如果不传开发包会自动判断设备的 RTSP 端口
* * oTransCodeParam 转码回放参数对象传入此参数将按照此对象中的编码参数进行转码回放转码回放需要设备支持如果不支持则不要传入这个参数
* * iStreamType 码流类型 1-主码流2-子码流默认主码流
* * success 成功回调函数
* * error 失败回调函数
*/
let startPlayBack = (deviceIdentify, options) => {
webVideoCtrl.I_StartPlayback(deviceIdentify, options);
};
/**
* 停止播放
* @param {*} options 可选参数对象:
* * iWndIndex 播放窗口号可不传表示操作当前选中窗口
* * success 成功回调函数
* * error 失败回调函数
*/
let stopPlay = (options) => {
webVideoCtrl.I_Stop(options);
};
/**
* 暂停
* @param {*} options 可选参数对象:
* * iWndIndex 播放窗口号可不传表示操作当前选中窗口
* * success 成功回调函数
* * error 失败回调函数
*/
let pause = (options) => {
webVideoCtrl.I_Pause(options);
};
/**
* 打开声音
* @param {number} iWndIndex 播放窗口号可不传表示操作当前选中窗口
* @returns 成功返回 0失败返回-1
*/
let openSound = (iWndIndex) => {
return webVideoCtrl.I_OpenSound(iWndIndex);
};
/**
* 关闭声音
* @param {number} iWndIndex 播放窗口号可不传表示操作当前选中窗口
* @returns 成功返回 0失败返回-1
*/
let closeSound = (iWndIndex) => {
return webVideoCtrl.I_CloseSound(iWndIndex);
};
/**
* 设置音量
* @param {number} iVolume 音量大小
* @param {number} iWndIndex 播放窗口号可不传表示操作当前选中窗口
* @returns 成功返回 0失败返回-1
*/
let setVolume = (iVolume, iWndIndex) => {
return webVideoCtrl.I_SetVolume(iVolume, iWndIndex);
};
/**
* 修改画面分割类型
* @param {number} iWndType 画面分割类型1- 1*12- 2*23- 3*34- 4*45- 5*56- 6*67- 7*78- 8*8
* @returns 成功返回 0失败返回-1
*/
let changeWndNum = (iWndType) => {
return webVideoCtrl.I_ChangeWndNum(iWndType);
};
/**
* 全屏播放
* @param {boolean} full 是否全屏true-全屏 false-退出全屏
*/
let fullScreen = (full) => {
webVideoCtrl.I_FullScreen(full);
};
export default {
init,
destroy,
resize,
login,
logout,
getDeviceInfo,
getAnalogChannelInfo,
analysisAnalogChannelInfo,
getDigitalChannelInfo,
analysisDigitalChannelInfo,
getZeroChannelInfo,
analysisZeroChannelInfo,
recordSearch,
startRealPlay,
startPlayBack,
stopPlay,
pause,
openSound,
closeSound,
setVolume,
changeWndNum,
fullScreen,
};

4
supervise-monitor-ui/src/api/hikvision/jquery-1.7.1.min.js

File diff suppressed because one or more lines are too long

4379
supervise-monitor-ui/src/api/hikvision/webVideoCtrl.js

File diff suppressed because it is too large

2
supervise-monitor-ui/src/main.js

@ -21,6 +21,8 @@ import VueAMap from 'vue-amap'
Vue.use(ElementUI)
import hkVideo from '@/api/hikvision/hkVideo'
// import '@/permission' //权限控制
Vue.prototype.$userInfo = null // 用户信息

4140
supervise-monitor-ui/src/static/webVideoCtrl.js

File diff suppressed because it is too large

472
supervise-monitor-ui/src/views/monitor/videos/index.vue

@ -1,201 +1,323 @@
<template>
<div class="app-container">
<div>
<div v-show="viewState == 1">
<button-bar ref="btnbar" view-title="环境监控-视频中心" :btndisabled="btndisabled" @btnhandle="btnHandle" />
<el-row style="margin-top: 20px;padding-left: 10px;padding-right: 10px;padding-bottom: 10px;">
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Camera 01</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/1.png"/>
</el-card>
</div>
</el-col>
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Camera 02</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/2.png"/>
</el-card>
</div>
</el-col>
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Camera 03</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/3.png"/>
</el-card>
</div>
</el-col>
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>Camera 04</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/4.png"/>
</el-card>
</div>
</el-col>
</el-row>
<el-row style="margin-top: 20px;padding-left: 10px;padding-right: 10px;padding-bottom: 10px;">
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>西通道南</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/5.png"/>
</el-card>
</div>
</el-col>
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>西通道北</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/6.png"/>
</el-card>
</div>
</el-col>
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>IPdome</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/7.png"/>
</el-card>
</div>
</el-col>
<el-col style="margin-left: 20px;margin-right: 20px;" :span="5">
<div >
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>1234</span>
<el-button style="float: right; padding: 3px 0" type="text">播放</el-button>
</div>
<img src="../../../assets/videoImg/8.png"/>
</el-card>
</div>
</el-col>
</el-row>
</div>
</div>
<div class="video_box">
<!-- 摄像头 -->
<div id="divPlugin" class="plugin"></div>
</div>
</template>
<script>
import ButtonBar from '@/components/ButtonBar'
import * as WebVideoCtrl from "@/api/hikvision/hkVideo.js";
export default {
name: "carNvrVideo",
components: {
ButtonBar,
WebVideoCtrl
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
submitdisabled: false,
btnList: [
// {
// type: 'primary',
// size: 'small',
// icon: 'plus',
// btnKey: 'toAdd',
// btnLabel: ''
// },
// {
// type: 'danger',
// size: 'small',
// icon: 'del',
// btnKey: 'doDel',
// btnLabel: ''
// },
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
}
szInfo: "",
rowList: {},
hkvInfo: {
ip: "192.168.3.2",
port: "8000",
username: "admin",
password: "Yxt123456"
},
mySelectWnd: 0, //
g_bPTZAuto: false,
iProtocol: 1,
loginLoading: false,
startPlayLoading: false,
bZeroChannel: false,
iRtspPort: 0,
index: 0,
iWndowType: null,
videoData: [{
ip: "192.168.3.2",
port: "8000",
username: "admin",
password: "Yxt123456"
}],
ua: navigator.userAgent.toLocaleLowerCase(),
};
},
created() {
// this.videoData = JSON.parse(this.$route.query.videoData);
// if (this.videoData.length <= 1) {
// this.iWndowType = 1;
// } else if (this.videoData.length > 1 && this.videoData.length <= 4) {
// this.iWndowType = 2;
// }
console.log("ua>>>>", this.ua)
// if (this.ua.match(/msie/) != null || this.ua.match(/trident/) != null) {
// this.browserType = "IE";
// this.videoData = JSON.parse(this.$route.query.videoData);
// if (this.videoData.length <= 1) {
// this.iWndowType = 1;
// } else if (this.videoData.length > 1 && this.videoData.length <= 4) {
// this.iWndowType = 2;
// }
// } else {
// this.$notify({
// title: "",
// message: "ie",
// type: "error",
// });
// }
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
this.videoChange();
},
destroyed() {
this.clickStopRealPlay();
this.onLogout();
},
created() {},
methods: {
btnHandle(btnKey) {
switch (btnKey) {
case 'doClose':
this.doClose()
break
default:
break
}
videoChange() {
// setTimeout(() => {
// this.videoInitPlugin(); // video
// }, 300);
WebVideoCtrl.init('1',"100%",'100%')
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
handleSelectionChange() {},
submitForm() {},
cancel() {},
//
async onLogin() {
console.log("onLogin>>>>")
var that = this;
that.loginLoading = true;
//
WebVideoCtrl.I_Login(
that.hkvInfo.ip,
that.iProtocol,
that.hkvInfo.port,
that.hkvInfo.username,
that.hkvInfo.password, {
async: false,
success: (xmlDoc) => {
console.log("success>>>>")
//TODO
that.getChannelInfo();
that.getDevicePort(that.hkvInfo.ip + "_" + that.hkvInfo.port);
that.loginLoading = false;
this.clickStartRealPlay();
},
error: function(e) {
console.log("error>>>>",e)
that.loginLoading = false;
alert("当前摄像头配置不对或不在线,登录失败");
// window.opener = null;
// window.open('', '_self');
// window.close();
},
}
);
},
}
}
</script>
// 退
onLogout() {
this.videoData.forEach((element) => {
var szDeviceIdentify = element.ip + "_" + element.port;
var iRet = WebVideoCtrl.I_Logout(szDeviceIdentify);
if (0 == iRet) {
// this.$message({
// showClose: true,
// message: "退",
// type: "success",
// });
} else {
// this.$message({
// showClose: true,
// message: "退",
// type: "error",
// });
}
});
},
clickStartRealPlay() {
console.log("开始预览", this.index);
//
var that = this;
that.startPlayLoading = true;
var szDeviceIdentify = that.hkvInfo.ip + "_" + that.hkvInfo.port;
debugger
that.startRealPlay(szDeviceIdentify, this.index, that.hkvInfo.nvrPrechannel);
that.startPlayLoading = false;
},
startRealPlay(szDeviceIdentify, iWndIndex, iChannelID) {
var that = this;
WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, {
iRtspPort: that.iRtspPort,
iWndIndex: iWndIndex,
iChannelID: iChannelID,
bZeroChannel: that.bZeroChannel,
iStreamType: 2, //2
success: function() {
// that.$notify({
// title: "",
// message: "" + iChannelID + "",
// type: "success",
// });
},
error(status, xmlDoc2) {
console.log(xmlDoc2); //
// that.$notify({
// title: "",
// message: "" + iChannelID + "",
// type: "error",
// });
if (status === 403) {
console.log("szInfo 设备不支持Websocket取流!");
} else {
console.log("开始预览失败 ", status, xmlDoc2);
}
},
});
},
videoInitPlugin() {
this.$nextTick(() => {
var iRet = WebVideoCtrl.I_CheckPluginInstall();
if (iRet === -1) {
// alert("WebComponentsKit.exe");
this.myFunction();
return;
} else {
// if (this.ua.match(/msie/) != null || this.ua.match(/trident/) != null) {
this.browserType = "IE";
this.initPlugin();
// } else {
// this.$notify({
// title: "",
// message: "ie",
// type: "error",
// });
// }
}
<style lang="scss">
.wrap {
padding: 12px;
}
});
},
myFunction() {
var r = confirm("您还未安装过插件,请下载后查看摄像!");
if (r == true) {
window.location.href = "/WebComponentsKit.exe";
} else {}
},
initPlugin() {
console.log("initPlugin>>>>")
WebVideoCtrl.I_InitPlugin("100%", "100%", {
bWndFull: true, //I_CheckPluginInstall
iWndowType: this.iWndowType, //1x1 2x2
cbInitPluginComplete: function() {
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
//
if (WebVideoCtrl.I_CheckPluginVersion() === -1) {
return;
}
},
});
console.log("for>>>>")
for (var i = 0; i < this.videoData.length; i++) {
this.hkvInfo = this.videoData[i];
this.index = i;
this.onLogin();
}
},
getDevicePort(szDeviceIdentify) {
var oPort = WebVideoCtrl.I_GetDevicePort(szDeviceIdentify);
this.iRtspPort = oPort.iRtspPort;
},
.demo-layout {
height: 25px;
border-radius: 4px;
clickStopRealPlay: function() {
for (var i = 0; i <= this.index; i++) {
setTimeout(this.stopRealPlay(i), 1000);
}
},
stopRealPlay: function(iWndIndex) {
var that = this;
WebVideoCtrl.I_Stop({
iWndIndex: iWndIndex,
success: function() {
// that.$notify({
// title: "",
// message: "" + iWndIndex + "",
// type: "success",
// });
},
error: function() {
// that.$notify({
// title: "",
// message: "" + iWndIndex + "",
// type: "error",
// });
},
});
},
//
getChannelInfo: function() {
var that = this;
var szDeviceIdentify = this.hkvInfo.ip + ":" + this.hkvInfo.port;
//
that.hkvInfo.channels = [];
WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
async: false,
mysuccess: function(xmlStr) {
console.log("mysuccess I_GetDigitalChannelInfo: ", xmlStr);
var jsonObj = that.$x2js.xml2js(xmlStr);
var list = jsonObj.InputProxyChannelStatusList.InputProxyChannelStatus;
for (var x = 0; x < list.length; x++) {
that.hkvInfo.channels.push(list[x].id);
}
},
success: function(xmlDoc) {},
error: function(status, xmlDoc) {
console.log("获取数字通道失败");
},
});
//
WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, {
async: false,
mysuccess: function(xmlStr) {
var jsonObj = that.$x2js.xml2js(xmlStr);
console.log("模拟通道mysuccess", xmlStr);
var id = jsonObj.VideoInputChannelList.VideoInputChannel.id;
that.hkvInfo.channels.push(id);
},
success: function(xmlStr) {
console.log("模拟通道success", xmlStr);
},
error: function(status, xmlDoc) {
console.log("模拟通道error", xmlDoc);
},
});
// TODO
},
},
};
</script>
<style scoped>
.video_box {
width: 100%;
height: 100%;
}
.bg-purple {
background: #CED7E1;
.plugin {
width: 100%;
height: 100%;
}
.bg-purple-light {
background: #e5e9f2;
.my-tag {
margin-left: 3px;
}
.bg-purple-dark {
background: #99a9bf;
.my-group-btn {
margin-top: 5px;
}
</style>

303
supervise-monitor-ui/src/views/monitor/videos/index2.vue

@ -0,0 +1,303 @@
<template>
<div class="video_box">
<!-- 摄像头 -->
<div id="divPlugin" class="plugin"></div>
</div>
</template>
<script>
import {
WebVideoCtrl
} from "@/api/webVideoCtrl.js";
export default {
name: "carNvrVideo",
components: {},
data() {
return {
szInfo: "",
rowList: {},
hkvInfo: {},
mySelectWnd: 0, //
g_bPTZAuto: false,
iProtocol: 1,
loginLoading: false,
startPlayLoading: false,
bZeroChannel: false,
iRtspPort: 0,
index: 0,
iWndowType: null,
videoData: [],
ua: navigator.userAgent.toLocaleLowerCase(),
};
},
created() {
// this.videoData = JSON.parse(this.$route.query.videoData);
// if (this.videoData.length <= 1) {
// this.iWndowType = 1;
// } else if (this.videoData.length > 1 && this.videoData.length <= 4) {
// this.iWndowType = 2;
// }
if (this.ua.match(/msie/) != null || this.ua.match(/trident/) != null) {
this.browserType = "IE";
this.videoData = JSON.parse(this.$route.query.videoData);
if (this.videoData.length <= 1) {
this.iWndowType = 1;
} else if (this.videoData.length > 1 && this.videoData.length <= 4) {
this.iWndowType = 2;
}
} else {
this.$notify({
title: "失败",
message: "请在ie模式下查看摄像头",
type: "error",
});
}
},
mounted() {
this.videoChange();
},
destroyed() {
this.clickStopRealPlay();
this.onLogout();
},
methods: {
videoChange() {
setTimeout(() => {
this.videoInitPlugin(); // video
}, 300);
},
handleSelectionChange() {},
submitForm() {},
cancel() {},
//
async onLogin() {
var that = this;
that.loginLoading = true;
//
WebVideoCtrl.I_Login(
that.hkvInfo.ip,
that.iProtocol,
that.hkvInfo.port,
that.hkvInfo.username,
that.hkvInfo.password, {
async: false,
success: (xmlDoc) => {
//TODO
that.getChannelInfo();
that.getDevicePort(that.hkvInfo.ip + "_" + that.hkvInfo.port);
that.loginLoading = false;
this.clickStartRealPlay();
},
error: function() {
that.loginLoading = false;
alert("当前摄像头配置不对或不在线,登录失败");
window.opener = null;
window.open('', '_self');
window.close();
},
}
);
},
// 退
onLogout() {
this.videoData.forEach((element) => {
var szDeviceIdentify = element.ip + "_" + element.port;
var iRet = WebVideoCtrl.I_Logout(szDeviceIdentify);
if (0 == iRet) {
// this.$message({
// showClose: true,
// message: "退",
// type: "success",
// });
} else {
// this.$message({
// showClose: true,
// message: "退",
// type: "error",
// });
}
});
},
clickStartRealPlay() {
console.log("开始预览", this.index);
//
var that = this;
that.startPlayLoading = true;
var szDeviceIdentify = that.hkvInfo.ip + "_" + that.hkvInfo.port;
debugger
that.startRealPlay(szDeviceIdentify, this.index, that.hkvInfo.nvrPrechannel);
that.startPlayLoading = false;
},
startRealPlay(szDeviceIdentify, iWndIndex, iChannelID) {
var that = this;
WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, {
iRtspPort: that.iRtspPort,
iWndIndex: iWndIndex,
iChannelID: iChannelID,
bZeroChannel: that.bZeroChannel,
iStreamType: 2, //2
success: function() {
// that.$notify({
// title: "",
// message: "" + iChannelID + "",
// type: "success",
// });
},
error(status, xmlDoc2) {
console.log(xmlDoc2); //
// that.$notify({
// title: "",
// message: "" + iChannelID + "",
// type: "error",
// });
if (status === 403) {
console.log("szInfo 设备不支持Websocket取流!");
} else {
console.log("开始预览失败 ", status, xmlDoc2);
}
},
});
},
videoInitPlugin() {
this.$nextTick(() => {
var iRet = WebVideoCtrl.I_CheckPluginInstall();
if (iRet === -1) {
// alert("WebComponentsKit.exe");
this.myFunction();
return;
} else {
if (this.ua.match(/msie/) != null || this.ua.match(/trident/) != null) {
this.browserType = "IE";
this.initPlugin();
} else {
this.$notify({
title: "失败",
message: "请在ie模式下查看摄像头",
type: "error",
});
}
}
});
},
myFunction() {
var r = confirm("您还未安装过插件,请下载后查看摄像!");
if (r == true) {
window.location.href = "/WebComponentsKit.exe";
} else {}
},
initPlugin() {
WebVideoCtrl.I_InitPlugin("100%", "100%", {
bWndFull: true, //I_CheckPluginInstall
iWndowType: this.iWndowType, //1x1 2x2
cbInitPluginComplete: function() {
WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin");
//
if (WebVideoCtrl.I_CheckPluginVersion() === -1) {
return;
}
},
});
for (var i = 0; i < this.videoData.length; i++) {
this.hkvInfo = this.videoData[i];
debugger
this.index = i;
this.onLogin();
}
},
getDevicePort(szDeviceIdentify) {
var oPort = WebVideoCtrl.I_GetDevicePort(szDeviceIdentify);
this.iRtspPort = oPort.iRtspPort;
},
clickStopRealPlay: function() {
for (var i = 0; i <= this.index; i++) {
setTimeout(this.stopRealPlay(i), 1000);
}
},
stopRealPlay: function(iWndIndex) {
var that = this;
WebVideoCtrl.I_Stop({
iWndIndex: iWndIndex,
success: function() {
// that.$notify({
// title: "",
// message: "" + iWndIndex + "",
// type: "success",
// });
},
error: function() {
// that.$notify({
// title: "",
// message: "" + iWndIndex + "",
// type: "error",
// });
},
});
},
//
getChannelInfo: function() {
var that = this;
var szDeviceIdentify = this.hkvInfo.ip + ":" + this.hkvInfo.port;
//
that.hkvInfo.channels = [];
WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
async: false,
mysuccess: function(xmlStr) {
console.log("mysuccess I_GetDigitalChannelInfo: ", xmlStr);
var jsonObj = that.$x2js.xml2js(xmlStr);
var list = jsonObj.InputProxyChannelStatusList.InputProxyChannelStatus;
for (var x = 0; x < list.length; x++) {
that.hkvInfo.channels.push(list[x].id);
}
},
success: function(xmlDoc) {},
error: function(status, xmlDoc) {
console.log("获取数字通道失败");
},
});
//
WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, {
async: false,
mysuccess: function(xmlStr) {
var jsonObj = that.$x2js.xml2js(xmlStr);
console.log("模拟通道mysuccess", xmlStr);
var id = jsonObj.VideoInputChannelList.VideoInputChannel.id;
that.hkvInfo.channels.push(id);
},
success: function(xmlStr) {
console.log("模拟通道success", xmlStr);
},
error: function(status, xmlDoc) {
console.log("模拟通道error", xmlDoc);
},
});
// TODO
},
},
};
</script>
<style scoped>
.video_box {
width: 100%;
height: 100%;
}
.plugin {
width: 100%;
height: 100%;
}
.my-tag {
margin-left: 3px;
}
.my-group-btn {
margin-top: 5px;
}
</style>

4
supervise-organizational-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://192.168.3.108:8112"
VUE_APP_URL = "http://122.14.222.186:8112"
##VUE_APP_URL = "http://192.168.3.173:8112"
VUE_APP_URL = "http://8.130.39.13:8112"

20
supervise-organizational-ui/src/api/system/userManage/index.js

@ -5,7 +5,8 @@ import qs from 'qs'
let tokens = window.sessionStorage.getItem('token');
export function userList(data){
return request({
url: '/portal/v1/sysuser/listPage',
// url: '/portal/v1/sysuser/listPage',
url: '/portal/v1/sysstaffinfo/listPageNew',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
@ -16,7 +17,8 @@ export function userList(data){
// 新增
export function userAdd(data){
return request({
url: '/portal/v1/sysuser/save',
// url: '/portal/v1/sysuser/save',
url: '/portal/v1/sysstaffinfo/saveNew',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
@ -27,7 +29,8 @@ export function userAdd(data){
// 更新
export function userUpdata(data){
return request({
url: '/portal/v1/sysuser/update/' +data.sid,
// url: '/portal/v1/sysuser/update/' +data.sid,
url: '/portal/v1/sysstaffinfo/updateNew/' +data.sid,
method: 'post',
data: data,
headers: {'Content-Type': 'application/json',
@ -37,14 +40,11 @@ export function userUpdata(data){
}
// 删除
export function delUser(data){
export function delUser(sid){
return request({
url: '/portal/v1/sysuser/delBySid/' +data.sid,
method: 'get',
data: data,
headers: {'Content-Type': 'application/json',
'token':tokens
}
// url: '/portal/v1/sysuser/delBySid/' +data.sid,
url: '/portal/v1/sysstaffinfo/delBySid/' +sid,
method: 'delete'
})
}
// 初始化密码

2
supervise-organizational-ui/src/layout/components/Navbar.vue

@ -1,7 +1,7 @@
<template>
<div>
<div class="navbar">
<p class="breadcrumb-container"><img src="@/assets/loginImg/logo.png" style="width: 45px;height: 45px;margin-right: 10px;"/>汇融供应链贷后监管平台p>
<p class="breadcrumb-container"><img src="@/assets/loginImg/logo.png" style="width: 45px;height: 45px;margin-right: 10px;"/>汇融供应链贷后监管平台>
<!-- <h3 class="breadcrumb-container">汇融供应链贷后监管平台h3> -->
<div class="right-menu">
<!-- <p>{{Orgname}} {{departmentName}} 欢迎, {{name}}</p>-->

4
supervise-organizational-ui/src/router/modules/codemenu.js

@ -5,14 +5,14 @@ const codemenu = [{
component: Layout,
redirect: '/yhgl/index',
meta: {
title: '用户管理'
title: '员工管理'
},
children: [{
path: '/yhgl/index',
component: () => import('@/views/organizational/yhgl.vue'),
name: 'ZzjgYhgl',
meta: {
title: '用户管理',
title: '员工管理',
noCache: true
}
}]

2
supervise-organizational-ui/src/settings.js

@ -1,6 +1,6 @@
module.exports = {
title: '汇融供应链贷后监管平台
title: '汇融供应链贷后监管平台',
/**
* @type {boolean} true | false

53
supervise-organizational-ui/src/views/organizational/userManageAdd.vue

@ -9,7 +9,7 @@
</td>
</tr>
<tr>
<td>用户类型</td>
<td>员工类型</td>
<td>
<el-select v-model="form.userType" @change="$forceUpdate()" style="width:300px">
<el-option
@ -43,7 +43,7 @@
</el-select>-->
</td>
</tr>
<tr>
<!-- <tr>
<td>岗位</td>
<td>
<el-select v-model="form.postSid" @change="$forceUpdate()" style="width:300px">
@ -54,25 +54,31 @@
:value="item.sid">
</el-option>
</el-select>
<!--<el-input v-model="form.postSid"></el-input>-->
<el-input v-model="form.postSid"></el-input>
</td>
</tr>
</tr> -->
<tr>
<td>手机号码</td>
<td>
<el-input v-model="form.mobile" style="width:300px"></el-input>
<el-input v-model="form.mobile" maxlength="11"style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>微信号</td>
<td>
<el-input v-model="form.openId" style="width:300px"></el-input>
</td>
</tr>
<!-- <tr>
<td>手机验证码</td>
<td>
<el-input v-model="form.verificationCode" placeholder="请输入验证码" style="width:300px">
<el-button v-show="showCode" slot="append" @click.native="getIdentifying">获取验证码</el-button>
<el-button v-show="!showCode" slot="append">{{phoneCodeCount}} s</el-button>
</el-input>
<!--<el-input v-model="form.verificationCode"></el-input>-->
<el-input v-model="form.verificationCode"></el-input>
</td>
</tr>
</tr> -->
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
@ -95,21 +101,23 @@
deptSid: '',
postSid: '',
mobile: '',
openId: '',
verificationCode: ''
},
form1: {
sid: '',
},
userTypeData: [{
value: '1',
name: '员工'
}, {
value: '2',
name: '客户'
}, {
value: '3',
name: '供应商'
}],
value: '1',
name: '监管'
}, {
value: '2',
name: '客户'
},
{
value: '3',
name: '银行'
},],
treedata: [],
checkedId: [],
orgName: '',
@ -148,6 +156,7 @@
this.orgName = res.data.departmentName
this.form.postSid = res.data.postSid
this.form.mobile = res.data.mobile
this.form.openId = res.data.openId
}
})
},
@ -172,7 +181,17 @@
arr = [data.sid];
this.$refs.Tree.setCheckedKeys(arr);
this.form.postSid = ''
this.getPost(data.sid)
// this.getPost(data.sid)
this.form.sysStaffOrg ={
orgSid: data.sid,
orgName:data.name,
orgSidPath:data.orgSidPath,
orgNamePath:"",
orgCode:data.orgCode,
manageType:"",
}
return;
}
},

687
supervise-organizational-ui/src/views/organizational/userManageList.vue

@ -10,16 +10,19 @@
<el-form-item label="姓名">
<el-input v-model="search.name" clearable></el-input>
</el-form-item>
<el-form-item label="角色">
<el-form-item label="电话">
<el-input v-model="search.mobile" clearable></el-input>
</el-form-item>
<!-- <el-form-item label="角色">
<el-select v-model="search.roleSid" filterable clearable placeholder="请选择">
<el-option v-for="item in roleListAll" :key="item.sid" :label="item.name" :value="item.sid"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item label="部门">
<el-input v-model="search.orgName" clearable></el-input>
<!-- <el-select v-model="search.roleSid" clearable placeholder="请选择">-->
<!-- <el-option v-for="(item,i) in roleListAll" :key="i" :label="item.name" :value="item.sid"></el-option>-->
<!-- </el-select>-->
<!-- <el-select v-model="search.roleSid" clearable placeholder="请选择">-->
<!-- <el-option v-for="(item,i) in roleListAll" :key="i" :label="item.name" :value="item.sid"></el-option>-->
<!-- </el-select>-->
</el-form-item>
<el-button @click="getOrgUserList(1)">查询</el-button>
</el-col>
@ -27,10 +30,10 @@
</el-form>
</div>
<!-- table -->
<el-table :data="userTable" border style="width: 100%;">
<el-table :data="userTable" border style="width: 98%; margin-left: 15px;">
<el-table-column label="序号" width="60px" type="index" align="center">
</el-table-column>
<el-table-column label="操作" width="300px" align="center">
<el-table-column label="操作" width="380px" align="center">
<template slot-scope="scope">
<el-button @click="setRole(scope.row)" type="primary" size="mini">
设置角色
@ -38,21 +41,26 @@
<el-button @click="initPwd(scope.row)" type="danger" size="mini">
初始化密码
</el-button>
<!-- <el-button @click="del(scope.row)" type="danger" size="mini">
删除
</el-button>-->
<el-button @click="userinfoChange(scope.row)" :disabled="scope.row.sid=='e73f6e2c-1bda-4a4d-8390-ac7a2bf25854'" type="primary" size="mini">
修改
</el-button>
<el-button @click="del(scope.row)" :disabled="scope.row.sid=='e73f6e2c-1bda-4a4d-8390-ac7a2bf25854'"type="danger" size="mini">
删除
</el-button>
</template>
</el-table-column>
<el-table-column prop="userName" label="用户名" align="center">
<el-table-column prop="userName" label="用户名" width="150" align="center">
<template slot-scope="scope">
<!-- <span class="tablerow-click" @click="userinfoChange(scope.row)">-->{{ scope.row.userName }}<!--</span>-->
</template>
</el-table-column>
<el-table-column prop="userType" label="用户类型" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" width="120px" align="center"></el-table-column>
<el-table-column prop="userType" label="员工类型" width="120" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" width="150" align="center"></el-table-column>
<el-table-column prop="mobile" label="联系电话" width="150" align="center"></el-table-column>
<el-table-column prop="departmentName" label="部门" align="center"></el-table-column>
<el-table-column prop="postName" label="岗位" align="center"></el-table-column>
<el-table-column prop="isEnable" label="是否可用" align="center">
<!-- <el-table-column prop="position" label="岗位" align="center"></el-table-column> -->
<el-table-column prop="openId" label="微信号" width="150" align="center"></el-table-column>
<!-- <el-table-column prop="isEnable" label="是否可用" align="center">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isEnable"
@ -63,9 +71,9 @@
@change="enabledChange($event,scope.row)">
</el-switch>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination"/>
<pagination :total="page.total" :page.sync="page.current" :limit.sync="page.size" @pagination="pagination" />
<!-- 角色设置 -->
<el-dialog title="设置角色" :visible.sync="roleDialog" width="30%">
<el-form :model="roleForm" :rules="rules" ref="roleForm">
@ -92,12 +100,9 @@
:value="item.departmentSid"
></el-option>
</el-select> -->
<el-cascader
v-model="bm_Form.departmentSid"
:options="treedata"
:props="props"></el-cascader>
<el-cascader v-model="bm_Form.departmentSid" :options="treedata" :props="props"></el-cascader>
<el-button type="primary" size='mini' @click="toNav('deptManage')" style="margin-left: 10px;" circle
icon="el-icon-plus"></el-button>
icon="el-icon-plus"></el-button>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -115,7 +120,7 @@
</td>
</tr>
<tr>
<td>用户类型</td>
<td>员工类型</td>
<td>
<el-select v-model="form.userTypeKey" @change="$forceUpdate()" style="width:300px">
<el-option v-for="(item, i) in userTypeData" :key="i" :label="item.name" :value="item.value">
@ -126,29 +131,37 @@
<tr>
<td>部门</td>
<td>
<el-select v-model="form.deptSid" placeholder="请选择" @change="$forceUpdate()" style="width:300px">
<el-option hidden :key="form.deptSid" :label="orgName" :value="form.deptSid"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid" :default-checked-keys="checkedId" :default-expand-all='true' :check-strictly='true' :props="defaultProps" @check-change="checkchange">
<el-select v-model="form.departmentName" placeholder="请选择" @change="$forceUpdate()" style="width:300px">
<el-option hidden :key="form.departmentSid" :label="orgName" :value="form.departmentName"></el-option>
<el-tree :data="treedata" ref="Tree" show-checkbox accordion node-key="sid"
:default-checked-keys="checkedId" :default-expand-all='true' :check-strictly='true'
:props="defaultProps" @check-change="checkchange">
</el-tree>
</el-select>
</td>
</tr>
<tr>
<!-- <tr>
<td>岗位</td>
<td>
<el-select v-model="form.postSid" @change="$forceUpdate()" style="width:300px">
<el-select v-model="form.sysStaffPost" @change="$forceUpdate()" style="width:300px">
<el-option v-for="(item, i) in postSidData" :key="i" :label="item.name" :value="item.sid"></el-option>
</el-select>
<!--<el-input v-model="form.postSid"></el-input>-->
<el-input v-model="form.postSid"></el-input>
</td>
</tr>
</tr> -->
<tr>
<td>手机号码</td>
<td>
<el-input v-model="form.userName" style="width:300px"></el-input>
<el-input v-model="form.mobile" maxlength="11" style="width:300px"></el-input>
</td>
</tr>
<tr>
<td>微信号</td>
<td>
<el-input v-model="form.openId" style="width:300px"></el-input>
</td>
</tr>
<!-- <tr>
<td>手机验证码</td>
<td>
<el-input v-model="form.verificationCode" placeholder="请输入验证码" style="width:300px">
@ -156,7 +169,7 @@
<el-button v-show="!showCode" slot="append">{{ phoneCodeCount }} s</el-button>
</el-input>
</td>
</tr>
</tr> -->
</table>
<div style="margin-top: 20px; text-align: center;">
<el-button type="primary" @click="save()"> </el-button>
@ -167,317 +180,355 @@
</template>
<script>
import {
userList,
delUser,
initPwd,
setRole,
orgList,
postList,
saveOrgRole,
roleList,
setRoleEnable,
userUpdata
} from '@/api/system/userManage/index.js'
import {
userList,
delUser,
initPwd,
setRole,
orgList,
postList,
saveOrgRole,
roleList,
setRoleEnable,
userUpdata
} from '@/api/system/userManage/index.js'
export default {
data() {
return {
editDialog: false,
form: {},
userTypeData: [{
value: '1',
name: '员工'
}, {
value: '2',
name: '客户'
}, {
value: '3',
name: '供应商'
}],
checkedId: [],
orgName: '',
defaultProps: {
children: 'children',
label: 'name'
},
showCode: true,
postSidData: [],
phoneCodeCount: '',
timer: null,
roleListAll: [],
search: {
name: '',
userName: '',
roleSid: ''
},
props: {
value: 'sid',
label: 'name',
children: 'orgDepartmentVoList'
},
treedata: null,
page: {
total: 0, //
current: 1, //
size: 10 //
},
userTable: [],
clientTable: [],
//
formLabelWidth: '100',
roleDialog: false,
roleList: [],
roleForm: {
roleSid: '',
userSid: ''
},
//
bm_Dialog: false,
postSid: '',
bm_Form: { departmentSid: '' },
bm_List: [],
rules: {
roleSid: [{ required: true, message: '请选择角色名称', trigger: 'blur' }],
departmentSid: [{ required: true, message: '请选择部门名称', trigger: 'blur' }]
}
}
},
props: ['dataObj'],
watch: {
dataObj: {
handler(val) {
this.getOrgUserList()
},
deep: true
}
},
mounted() {
this.getOrgUserList()
this.getRoleList()
this.getOrgTree()
this.getOrgList()
},
methods: {
// +
getOrgUserList(flag) {
if (flag === '1') {
this.page.current = 1
export default {
data() {
return {
editDialog: false,
form: {},
userTypeData: [{
value: '1',
name: '监管'
}, {
value: '2',
name: '客户'
},
{
value: '3',
name: '银行'
},
],
checkedId: [],
orgName: '',
defaultProps: {
children: 'children',
label: 'name'
},
showCode: true,
postSidData: [],
phoneCodeCount: '',
timer: null,
roleListAll: [],
search: {
name: '',
userName: '',
mobile: '',
roleSid: ''
},
props: {
value: 'sid',
label: 'name',
children: 'orgDepartmentVoList'
},
treedata: null,
page: {
total: 0, //
current: 1, //
size: 10 //
},
userTable: [],
clientTable: [],
//
formLabelWidth: '100',
roleDialog: false,
roleList: [],
roleForm: {
roleSid: '',
userSid: ''
},
//
bm_Dialog: false,
sysStaffPost: '',
bm_Form: {
departmentSid: ''
},
bm_List: [],
rules: {
roleSid: [{
required: true,
message: '请选择角色名称',
trigger: 'blur'
}],
departmentSid: [{
required: true,
message: '请选择部门名称',
trigger: 'blur'
}]
}
}
let params = this.page
params.params = this.search
userList(params).then(res => {
this.page.total = res.data.total
this.userTable = res.data.records
})
},
getRoleList() {
var param = {}
roleList(param).then(res => {
if (res.code === '200') {
this.roleListAll = res.data
}
})
props: ['dataObj'],
watch: {
dataObj: {
handler(val) {
this.getOrgUserList()
},
deep: true
}
},
//
pagination(val) {
this.page.current = val.pageNum
this.page.size = val.pageSize
mounted() {
this.getOrgUserList()
this.getRoleList()
this.getOrgTree()
this.getOrgList()
},
getOrgTree() { //
function treeArr(data) {
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (data[i].orgDepartmentVoList.length > 0) {
treeArr(data[i].orgDepartmentVoList)
} else {
delete data[i].orgDepartmentVoList
}
}
methods: {
// +
getOrgUserList(flag) {
if (flag === '1') {
this.page.current = 1
}
}
// getOrgTree({organizationSid: this.$store.getters.userInfo.orgSid}).then(res => {
// let tree = res.data[0].orgDepartmentVoList
// treeArr(tree)
// this.treedata = tree
// })
},
// ID
setRole(row) {
this.roleForm.roleSid = []
this.roleDialog = true
this.roleForm.sid = row.sid
this.roleForm.userSid = row.sid
setRole(this.roleForm).then(res => {
this.roleList = res.data
for (let i = 0; i < res.data.length; i++) {
if (res.data[i].checked === '0') {
this.roleForm.roleSid.push(res.data[i].sid)
let params = this.page
params.params = this.search
userList(params).then(res => {
this.page.total = res.data.total
this.userTable = res.data.records
})
},
getRoleList() {
var param = {}
roleList(param).then(res => {
if (res.code === '200') {
this.roleListAll = res.data
}
}
// this.roleForm.roleSid = res.data.filter(item=> item.checked =='0')
})
},
//
saveRole(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.roleForm.roleSid = this.roleForm.roleSid.toString()
saveOrgRole(this.roleForm).then(res => {
if (res.code === '200') {
this.roleDialog = false
this.getOrgUserList()
this.$message({
message: res.msg,
type: 'success'
})
})
},
//
pagination(val) {
this.page.current = val.pageNum
this.page.size = val.pageSize
this.getOrgUserList()
},
getOrgTree() { //
function treeArr(data) {
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
if (data[i].orgDepartmentVoList.length > 0) {
treeArr(data[i].orgDepartmentVoList)
} else {
delete data[i].orgDepartmentVoList
}
}
})
} else {
return false
}
}
})
},
//
saveOrg(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let params = { //
departmentSid: this.bm_Form.departmentSid[this.bm_Form.departmentSid.length - 1],
staffSid: this.bm_Form.staffSid
// getOrgTree({organizationSid: this.$store.getters.userInfo.orgSid}).then(res => {
// let tree = res.data[0].orgDepartmentVoList
// treeArr(tree)
// this.treedata = tree
// })
},
// ID
setRole(row) {
this.roleForm.roleSid = []
this.roleDialog = true
this.roleForm.sid = row.sid
this.roleForm.userSid = row.sid
setRole(this.roleForm).then(res => {
this.roleList = res.data
for (let i = 0; i < res.data.length; i++) {
if (res.data[i].checked === '0') {
this.roleForm.roleSid.push(res.data[i].sid)
}
}
// this.roleForm.roleSid = res.data.filter(item=> item.checked =='0')
})
},
//
saveRole(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.roleForm.roleSid = this.roleForm.roleSid.toString()
saveOrgRole(this.roleForm).then(res => {
if (res.code === '200') {
this.roleDialog = false
this.getOrgUserList()
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
return false
}
saveDepartment(params).then(res => {
if (res.code === '200') {
this.getOrgUserList()
this.bm_Dialog = false
this.$message({
message: res.msg,
type: 'success'
})
})
},
//
saveOrg(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
let params = { //
departmentSid: this.bm_Form.departmentSid[this.bm_Form.departmentSid.length - 1],
staffSid: this.bm_Form.staffSid
}
saveDepartment(params).then(res => {
if (res.code === '200') {
this.getOrgUserList()
this.bm_Dialog = false
this.$message({
message: res.msg,
type: 'success'
})
}
})
} else {
return false
}
});
},
//
save(formName) {
console.log("form>>>>", this.form)
this.form.userType = this.form.userTypeKey;
userUpdata(this.form).then(res => {
if (res.code === '200') {
this.getOrgUserList()
this.bm_Dialog = false
this.$message({
message: res.msg,
type: 'success'
})
this.editDialog = false
}
this.reset()
})
},
initPwd(row) {
this.$confirm('此操作将初始化该用户密码, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
initPwd({
sid: row.sid
}).then(res => {
this.$message({
type: 'success',
message: res.msg
})
})
} else {
return false
}
});
},
//
save(formName) {
this.form.userType = this.form.userTypeKey;
userUpdata(this.form).then(res => {
if (res.code === '200') {
this.getOrgUserList()
this.bm_Dialog = false
this.$message({
message: res.msg,
type: 'success'
})
},
//
userinfoChange(row) {
console.log("row>>>>", row)
var sysStaffPost = row.sysStaffPost
this.editDialog = true
this.form = Object.assign({}, row)
this.sysStaffPost = sysStaffPost
this.$nextTick(() => {
this.$refs.Tree.setChecked(this.form.departmentSid, true, true)
})
// this.$emit('status',true)
// this.$emit('item',row)
},
//
del(row) {
console.log("row.sid",row.sid)
this.$confirm('此操作将删除该用户, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delUser(row.sid
).then(res => {
this.$message({
type: 'success',
message: res.msg
});
this.getOrgUserList()
})
this.editDialog = false
})
},
toNav(src) {
this.$router.push('/' + src)
},
//
getOrgList(row) {
// this.roleDialog = true
this.checkedId = []
this.Thisrow = row
this.loading = true
let params = {}
orgList(params).then(res => {
console.log("res.data",res.data)
this.treedata = res.data
})
},
checkchange(data, checked, indeterminate) {
console.log("data",data)
console.log("checked",checked)
console.log("indeterminate",indeterminate)
if (checked) {
this.form.departmentSid = data.sid
this.form.departmentName = data.name
this.orgName = data.name
let arr = []
arr = [data.sid]
this.$refs.Tree.setCheckedKeys(arr)
// this.form.sysStaffPost = ''
// this.getPost(data.sid)
this.form.sysStaffOrg ={
orgSid: data.sid,
orgName:data.name,
orgSidPath:data.orgSidPath,
orgNamePath:"",
orgCode:data.orgCode,
manageType:"",
}
return
}
this.reset()
})
},
initPwd(row) {
this.$confirm('此操作将初始化该用户密码, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
initPwd({sid: row.sid}).then(res => {
this.$message({
type: 'success',
message: res.msg
})
},
getPost(orgSid) {
let params = {
sid: orgSid
}
postList(params).then(res => {
this.postSidData = res.data
})
})
},
//
userinfoChange(row) {
var postSid = row.postSid
this.editDialog = true
this.form = Object.assign({}, row)
this.postSid = postSid
this.$nextTick(() => {
this.$refs.Tree.setChecked(this.form.departmentSid, true, true)
})
// this.$emit('status',true)
// this.$emit('item',row)
},
//
del(row) {
this.$confirm('此操作将删除该用户, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delUser({ sid: row.sid }).then(res => {
this.form.sysStaffPost = this.sysStaffPost
},
reset() {
this.form = {}
},
enabledChange(value, row) {
setRoleEnable({
sid: row.sid,
isEnable: value
}).then(res => {
this.$message({
type: 'success',
message: res.msg
});
this.getOrgUserList()
})
})
},
toNav(src) {
this.$router.push('/' + src)
},
//
getOrgList(row) {
// this.roleDialog = true
this.checkedId = []
this.Thisrow = row
this.loading = true
let params = {}
orgList(params).then(res => {
this.treedata = res.data
})
},
checkchange(data, checked, indeterminate) {
if (checked) {
this.form.deptSid = data.sid
this.orgName = data.name
let arr = []
arr = [data.sid]
this.$refs.Tree.setCheckedKeys(arr)
this.form.postSid = ''
this.getPost(data.sid)
return
}
},
getPost(orgSid) {
let params = {
sid: orgSid
}
postList(params).then(res => {
this.postSidData = res.data
})
this.form.postSid = this.postSid
},
reset() {
this.form = {}
},
enabledChange(value, row) {
setRoleEnable({
sid: row.sid,
isEnable: value
}).then(res => {
this.$message({
type: 'success',
message: res.msg
});
})
}
}
}
</script>
<style scoped="scoped">
.el-select > .el-input {
display: block;
width: 300px;
}
.el-select>.el-input {
display: block;
width: 300px;
}
</style>

4
supervise-organizational-ui/src/views/organizational/yhgl.vue

@ -4,9 +4,9 @@
<el-tab-pane label="用户列表" name="roleList">
<user-manage-list :dataObj='dataObj' @status='isShow' @item='listObj'></user-manage-list>
</el-tab-pane>
<!-- <el-tab-pane label="新增用户" name="addrole">
<el-tab-pane label="新增用户" name="addrole">
<user-manage-add @status='isShow' :dataObj='childObj'></user-manage-add>
</el-tab-pane>-->
</el-tab-pane>
</el-tabs>
</div>
</template>

2
supervise-organizational-ui/vue.config.js

@ -6,7 +6,7 @@ function resolve(dir) {
return path.join(__dirname, dir)
}
const name = defaultSettings.title || '汇融供应链贷后监管平台// page title
const name = defaultSettings.title || '汇融供应链贷后监管平台'// page title
// 如果端口设置为80,
// 使用管理员权限执行命令行。

4
supervise-report-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api/service'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://8.130.39.13:8112"
##VUE_APP_URL = "http://127.0.0.1:4523/m1/1913288-0-default"
##VUE_APP_URL = "http://8.130.39.13:8112"
VUE_APP_URL = "http://192.168.3.173:8112"

1
supervise-report-ui/src/api/supervise/salesreport.js

@ -6,6 +6,7 @@ export default {
initData(data) {
return request({
// baseURL: '/api',
url: '/reportCenter/getSalesReport',
method: 'get',
params: data

2
yxt-portal-ui/.env.development

@ -5,5 +5,5 @@ ENV = 'development'
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
VUE_APP_URL = "http://127.0.0.1:8112"
VUE_APP_URL = "http://192.168.3.173:8112"
##VUE_APP_URL = "http://8.130.39.13:8112"

2
yxt-portal-ui/src/views/Home/Home.vue

@ -428,7 +428,7 @@
if (index === 9) {
window.open('/#/index', '_blank')
} else if (index === 0) {
window.open('http://127.0.0.1:9531/#/' + '?token=' + getStorage(), '_blank')
window.open('http://192.168.3.8:9531/#/' + '?token=' + getStorage(), '_blank')
} else if (index === 1) {
window.open('http://192.168.3.8:9531#/' + '?token=' + getStorage(), '_blank')
} else if (index === 2) {

1
yxt_supervise/gateway/src/main/resources/application.yml

@ -53,7 +53,6 @@ spring:
- StripPrefix=1
ignore:
whites:
- /customer/v1/wechat/authGet #app端登录
- /portal/v1/regions/treeList
- /portal/v1/sysuser/login #pc端登录
- /portal/v1/sysuser/loginByNoVeriCode #登录无验证码

35
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformation.java

@ -1,35 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/11 16:04
*/
@Data
@ApiModel(value = "贷款银行信息", description = "贷款银行信息")
@TableName("loan_bank_information")
public class LoanBankInformation extends BaseEntity {
@ApiModelProperty("银行名称")
private String bankName;
@ApiModelProperty("银行简称")
private String bankAbbreviation;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("上级sid")
private String pSid;
}

37
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationDetailsVo.java

@ -1,37 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/11 16:07
*/
@Data
@ApiModel(value = "贷款银行信息 视图数据详情", description = "贷款银行信息 视图数据详情")
public class LoanBankInformationDetailsVo implements Vo {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("银行名称")
private String bankName;
@ApiModelProperty("银行简称")
private String bankAbbreviation;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("上级sid")
private String pSid;
}

37
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationDto.java

@ -1,37 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/11 16:07
*/
@ApiModel(value = "贷款银行信息 数据传输对象", description = "贷款银行信息 数据传输对象")
@Data
public class LoanBankInformationDto implements Dto {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("银行名称")
private String bankName;
@ApiModelProperty("银行简称")
private String bankAbbreviation;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("上级sid")
private String pSid;
}

29
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationFeign.java

@ -1,29 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationFeignFallback;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationQuery;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @author wangpengfei
* @date 2023/4/11 16:08
*/
@Api(tags = "贷款银行信息")
@FeignClient(
contextId = "supervise-crm-LoanBankInformation",
name = "supervise-crm",
path = "v1/loanbankinformation",
fallback = LoanBankInformationFeignFallback.class)
public interface LoanBankInformationFeign {
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanBankInformationVo>> listPage(@RequestBody PagerQuery<LoanBankInformationQuery> pq);
}

20
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationFeignFallback.java

@ -1,20 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationQuery;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationVo;
import org.springframework.stereotype.Component;
/**
* @author wangpengfei
* @date 2023/4/11 16:08
*/
@Component
public class LoanBankInformationFeignFallback implements LoanBankInformationFeign{
@Override
public ResultBean<PagerVo<LoanBankInformationVo>> listPage(PagerQuery<LoanBankInformationQuery> pq) {
return null;
}
}

37
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationQuery.java

@ -1,37 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/11 16:08
*/
@ApiModel(value = "贷款银行信息 查询条件", description = "贷款银行信息 查询条件")
@Data
public class LoanBankInformationQuery implements Query {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("银行名称")
private String bankName;
@ApiModelProperty("银行简称")
private String bankAbbreviation;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("上级sid")
private String pSid;
}

37
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/loanbankinformation/LoanBankInformationVo.java

@ -1,37 +0,0 @@
package com.yxt.supervise.crm.api.loanbankinformation;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/11 16:08
*/
@ApiModel(value = "贷款银行信息 视图数据对象", description = "贷款银行信息 视图数据对象")
@Data
public class LoanBankInformationVo implements Vo {
@ApiModelProperty("id")
private Integer id;
@ApiModelProperty("sid")
private String sid;
@ApiModelProperty("银行名称")
private String bankName;
@ApiModelProperty("银行简称")
private String bankAbbreviation;
@ApiModelProperty("地址")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("上级sid")
private String pSid;
}

39
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocation.java

@ -0,0 +1,39 @@
package com.yxt.supervise.crm.api.warehouselocation;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/12 16:48
*/
@Data
@ApiModel(value = "仓库位置信息", description = "仓库位置信息")
@TableName("warehouse_location")
public class WarehouseLocation extends BaseEntity {
@ApiModelProperty("位置")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("面积")
private String squareMeasure;
@ApiModelProperty("层高")
private String floorHeight;
@ApiModelProperty("性质")
private String properties;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("价格")
private String price;
@ApiModelProperty("房源")
private String housingResources;
}

39
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationDetailsVo.java

@ -0,0 +1,39 @@
package com.yxt.supervise.crm.api.warehouselocation;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/12 16:48
*/
@Data
@ApiModel(value = "仓库位置信息 视图数据详情", description = "仓库位置信息 视图数据详情")
public class WarehouseLocationDetailsVo implements Vo {
private String sid;
private String id;
@ApiModelProperty("位置")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("面积")
private String squareMeasure;
@ApiModelProperty("层高")
private String floorHeight;
@ApiModelProperty("性质")
private String properties;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("价格")
private String price;
@ApiModelProperty("房源")
private String housingResources;
}

46
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationDto.java

@ -0,0 +1,46 @@
package com.yxt.supervise.crm.api.warehouselocation;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.HashMap;
import java.util.Map;
/**
* @author wangpengfei
* @date 2023/4/12 16:48
*/
@ApiModel(value = "仓库位置信息 数据传输对象", description = "仓库位置信息 数据传输对象")
@Data
public class WarehouseLocationDto implements Dto {
private String sid;
private String id;
@ApiModelProperty("位置")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("面积")
private String squareMeasure;
@ApiModelProperty("层高")
private String floorHeight;
@ApiModelProperty("性质")
private String properties;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("价格")
private String price;
@ApiModelProperty("房源")
private String housingResources;
@ApiModelProperty("备注")
private String remarks;
private String [] imageFiles;
}

18
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationFeign.java

@ -0,0 +1,18 @@
package com.yxt.supervise.crm.api.warehouselocation;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationFeignFallback;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @author wangpengfei
* @date 2023/4/12 16:48
*/
@Api(tags = "贷款银行信息")
@FeignClient(
contextId = "supervise-crm-WarehouseLocation",
name = "supervise-crm",
path = "v1/warehouselocation",
fallback = WarehouseLocationFeignFallback.class)
public interface WarehouseLocationFeign {
}

11
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationFeignFallback.java

@ -0,0 +1,11 @@
package com.yxt.supervise.crm.api.warehouselocation;
import org.springframework.stereotype.Component;
/**
* @author wangpengfei
* @date 2023/4/12 16:49
*/
@Component
public class WarehouseLocationFeignFallback {
}

39
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationQuery.java

@ -0,0 +1,39 @@
package com.yxt.supervise.crm.api.warehouselocation;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/12 16:49
*/
@ApiModel(value = "仓库位置信息 查询条件", description = "仓库位置信息 查询条件")
@Data
public class WarehouseLocationQuery implements Query {
private String sid;
private String id;
@ApiModelProperty("位置")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("面积")
private String squareMeasure;
@ApiModelProperty("层高")
private String floorHeight;
@ApiModelProperty("性质")
private String properties;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("价格")
private String price;
@ApiModelProperty("房源")
private String housingResources;
}

41
yxt_supervise/supervise-crm/supervise-crm-api/src/main/java/com/yxt/supervise/crm/api/warehouselocation/WarehouseLocationVo.java

@ -0,0 +1,41 @@
package com.yxt.supervise.crm.api.warehouselocation;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/4/12 16:49
*/
@ApiModel(value = "仓库位置信息 视图数据对象", description = "仓库位置信息 视图数据对象")
@Data
public class WarehouseLocationVo implements Vo {
private String sid;
private String id;
@ApiModelProperty("位置")
private String address;
@ApiModelProperty("省")
private String province;
@ApiModelProperty("市")
private String city;
@ApiModelProperty("区")
private String county;
@ApiModelProperty("面积")
private String squareMeasure;
@ApiModelProperty("层高")
private String floorHeight;
@ApiModelProperty("性质")
private String properties;
@ApiModelProperty("联系人")
private String contacts;
@ApiModelProperty("电话")
private String telephone;
@ApiModelProperty("价格")
private String price;
@ApiModelProperty("房源")
private String housingResources;
@ApiModelProperty("备注")
private String remarks;
}

23
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationMapper.java

@ -1,23 +0,0 @@
package com.yxt.supervise.crm.biz.loanbankinformation;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.supervise.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformation;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author wangpengfei
* @date 2023/4/11 16:14
*/
@Mapper
public interface LoanBankInformationMapper extends BaseMapper<LoanBankInformation> {
IPage<LoanBankInformationVo> selectPageVo(IPage<LoanBankInformation> page, @Param(Constants.WRAPPER) Wrapper<LoanBankInformation> qw);
LoanBankInformationVo getBankInformation( @Param("sid") String sid);
}

20
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationMapper.xml

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.crm.biz.loanbankinformation.LoanBankInformationMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationVo">
SELECT *
FROM loan_bank_information
<where>
${ew.sqlSegment}
</where>
</select>
<!--根据客户的微信号以及当前登录者所在部门的sid和登录者所关联的员工sid查询-->
<select id="getBankInformation" resultType="com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationVo">
SELECT *
FROM loan_bank_information
WHERE sid=#{sid}
</select>
</mapper>

54
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationRest.java

@ -1,54 +0,0 @@
package com.yxt.supervise.crm.biz.loanbankinformation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.crm.api.loanbankinformation.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author wangpengfei
* @date 2023/4/11 16:14
*/
@Api(tags = "贷款银行信息")
@RestController
@RequestMapping("v1/loanbankinformation")
public class LoanBankInformationRest implements LoanBankInformationFeign {
@Autowired
LoanBankInformationService loanBankInformationService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<LoanBankInformationVo>> listPage(@RequestBody PagerQuery<LoanBankInformationQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<LoanBankInformationVo> pv = loanBankInformationService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/save")
public ResultBean save(@RequestBody LoanBankInformationDto dto) {
return loanBankInformationService.save(dto);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/update")
public ResultBean update(@RequestBody LoanBankInformationDto dto) {
return loanBankInformationService.update(dto);
}
@ApiOperation("根据条件分页查询数据的列表")
@GetMapping("/getBankInfBySid/{sid}")
public ResultBean getBankInformation(@PathVariable String sid){
ResultBean rb = ResultBean.fireFail();
LoanBankInformationVo loanBankInformationVo=loanBankInformationService.getBankInformation(sid);
return rb.success().setData(loanBankInformationVo);
}
@ApiOperation("根据条件分页查询数据的列表")
@DeleteMapping("/delete/{sid}")
public ResultBean delete(@PathVariable String sid) {
return loanBankInformationService.delete(sid);
}
}

65
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/loanbankinformation/LoanBankInformationService.java

@ -1,65 +0,0 @@
package com.yxt.supervise.crm.biz.loanbankinformation;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformation;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationDto;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationQuery;
import com.yxt.supervise.crm.api.loanbankinformation.LoanBankInformationVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
/**
* @author wangpengfei
* @date 2023/4/11 16:14
*/
@Service
public class LoanBankInformationService extends MybatisBaseService<LoanBankInformationMapper, LoanBankInformation> {
public PagerVo<LoanBankInformationVo> listPageVo(PagerQuery<LoanBankInformationQuery> pq) {
LoanBankInformationQuery query = pq.getParams();
QueryWrapper<LoanBankInformation> qw = new QueryWrapper<>();
if(StringUtils.isNotBlank(query.getBankName())){
qw.like("bankName",query.getBankName());
}
if(StringUtils.isNotBlank(query.getTelephone())){
qw.like("telephone",query.getTelephone());
}
IPage<LoanBankInformation> page = PagerUtil.queryToPage(pq);
IPage<LoanBankInformationVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<LoanBankInformationVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean save(LoanBankInformationDto dto) {
ResultBean rb=new ResultBean();
if(dto.getPSid().equals("")){
dto.setSid("0");
}
LoanBankInformation entity=new LoanBankInformation();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
return rb.success().setMsg("修改模板信息成功");
}
public ResultBean update(LoanBankInformationDto dto) {
ResultBean rb=new ResultBean();
LoanBankInformation entity=new LoanBankInformation();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
return rb.success().setMsg("修改模板信息成功");
}
public LoanBankInformationVo getBankInformation(String sid){
return baseMapper.getBankInformation(sid);
}
public ResultBean delete(String sid) {
ResultBean rb=new ResultBean();
baseMapper.delete(new QueryWrapper<LoanBankInformation>().eq("sid",sid));
return rb.success().setMsg("修改模板信息成功");
}
}

25
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationMapper.java

@ -0,0 +1,25 @@
package com.yxt.supervise.crm.biz.warehouselocation;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.supervise.crm.api.bankmanager.BankManagerVo;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocation;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationVo;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocation;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wangpengfei
* @date 2023/4/12 17:09
*/
@Mapper
public interface WarehouseLocationMapper extends BaseMapper<WarehouseLocation> {
IPage<WarehouseLocationVo> selectPageVo(IPage<WarehouseLocation> page, @Param(Constants.WRAPPER) Wrapper<WarehouseLocation> qw);
WarehouseLocationVo getWarehouseBySid( @Param("sid") String sid);
}

18
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationMapper.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.supervise.crm.biz.warehouselocation.WarehouseLocationMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationVo">
SELECT *
FROM warehouse_location
<where>
${ew.sqlSegment}
</where>
</select>
<select id="getWarehouseBySid" resultType="com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationVo">
SELECT *
FROM warehouse_location
WHERE sid=#{sid}
</select>
</mapper>

57
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationRest.java

@ -0,0 +1,57 @@
package com.yxt.supervise.crm.biz.warehouselocation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationDto;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationQuery;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationVo;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationFeign;
import com.yxt.supervise.crm.biz.warehouselocation.WarehouseLocationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @author wangpengfei
* @date 2023/4/12 17:10
*/
@Api(tags = "仓库位置信息")
@RestController
@RequestMapping("v1/warehouselocation")
public class WarehouseLocationRest implements WarehouseLocationFeign {
@Autowired
WarehouseLocationService WarehouseLocationService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WarehouseLocationVo>> listPage(@RequestBody PagerQuery<WarehouseLocationQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WarehouseLocationVo> pv = WarehouseLocationService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/save")
public ResultBean save(@RequestBody WarehouseLocationDto dto) {
return WarehouseLocationService.save(dto);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/update")
public ResultBean update(@RequestBody WarehouseLocationDto dto) {
return WarehouseLocationService.update(dto);
}
@ApiOperation("根据条件分页查询数据的列表")
@GetMapping("/getWarehouseBySid/{sid}")
public ResultBean getWarehouse(@PathVariable String sid){
ResultBean rb = ResultBean.fireFail();
WarehouseLocationVo WarehouseLocationVo=WarehouseLocationService.getWarehouse(sid);
return rb.success().setData(WarehouseLocationVo);
}
@ApiOperation("根据条件分页查询数据的列表")
@DeleteMapping("/delete/{sid}")
public ResultBean delete(@PathVariable String sid) {
return WarehouseLocationService.delete(sid);
}
}

64
yxt_supervise/supervise-crm/supervise-crm-biz/src/main/java/com/yxt/supervise/crm/biz/warehouselocation/WarehouseLocationService.java

@ -0,0 +1,64 @@
package com.yxt.supervise.crm.biz.warehouselocation;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocation;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationDto;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationQuery;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocationVo;
import com.yxt.supervise.crm.api.warehouselocation.WarehouseLocation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
/**
* @author wangpengfei
* @date 2023/4/12 17:10
*/
@Service
public class WarehouseLocationService extends MybatisBaseService<WarehouseLocationMapper, WarehouseLocation> {
public PagerVo<WarehouseLocationVo> listPageVo(PagerQuery<WarehouseLocationQuery> pq) {
WarehouseLocationQuery query = pq.getParams();
QueryWrapper<WarehouseLocation> qw = new QueryWrapper<>();
// if(StringUtils.isNotBlank(query.getEnterpriseName())){
// qw.like("enterpriseName",query.getEnterpriseName());
// }
// if(StringUtils.isNotBlank(query.getTelephone())){
// qw.like("telephone",query.getTelephone());
// }
IPage<WarehouseLocation> page = PagerUtil.queryToPage(pq);
IPage<WarehouseLocationVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<WarehouseLocationVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean save(WarehouseLocationDto dto) {
ResultBean rb=new ResultBean();
WarehouseLocation entity=new WarehouseLocation();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
return rb.success().setMsg("保存仓库信息成功");
}
public ResultBean update(WarehouseLocationDto dto) {
ResultBean rb=new ResultBean();
String dtoSid = dto.getSid();
WarehouseLocation entity=fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
return rb.success().setMsg("修改仓库信息成功");
}
public WarehouseLocationVo getWarehouse(String sid){
WarehouseLocationVo bank=baseMapper.getWarehouseBySid(sid);
return bank;
}
public ResultBean delete(String sid) {
ResultBean rb=new ResultBean();
baseMapper.delete(new QueryWrapper<WarehouseLocation>().eq("sid",sid));
return rb.success().setMsg("删除仓库信息成功");
}
}

71
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYc.java

@ -1,71 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.EntityWithId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 10:00
*/
@Data
@ApiModel(value = "入库数据(烟草)", description = "入库数据(烟草)")
@TableName("gd_instorage_yc")
public class GdInstorageYc extends EntityWithId {
private static final long serialVersionUID = 1L;
@ApiModelProperty("企业组织机构代码证")
private String cola0; // 企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String colb1; // 仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String colc2; // 仓库/门店名称
@ApiModelProperty("入库时间")
private String cold3; // 入库时间
@ApiModelProperty("供应商编号")
private String colex; // 供应商编号
@ApiModelProperty("供应商名称")
private String cole4; // 供应商名称
@ApiModelProperty("单据号")
private String colf5; // 单据号
@ApiModelProperty("单据类型")
private String colg6; // 单据类型
@ApiModelProperty("货号")
private String colh7; // 货号
@ApiModelProperty("商品名称")
private String coli8; // 商品名称
@ApiModelProperty("商品生产日期")
private String colj9; // 商品生产日期
@ApiModelProperty("商品保质期")
private String colk10; // 商品保质期
@ApiModelProperty("商品规格")
private String coll11; // 商品规格
@ApiModelProperty("类别编号")
private String colm12; // 类别编号
@ApiModelProperty("类别名称")
private String coln13; // 类别名称
@ApiModelProperty("一级类别名称")
private String colo14; // 一级类别名称
@ApiModelProperty("二级类别名称")
private String colp15; // 二级类别名称
@ApiModelProperty("入库金额")
private String colq16; // 入库金额
@ApiModelProperty("入库数量")
private String colr17; // 入库数量
@ApiModelProperty("成本金额")
private String cols18; // 成本金额
@ApiModelProperty("成本税额")
private String colt19; // 成本税额
@ApiModelProperty("不含税成本")
private String colu20; // 不含税成本
@ApiModelProperty("进项税率")
private String colv21; // 进项税率
@ApiModelProperty("单据日期")
private String orderDate; // 单据日期
@ApiModelProperty("供货商编码统一")
private String supplierCodeUnified; // 供货商编码统一
@ApiModelProperty("入库定单号")
private String inOrderNo; // 入库定单号
}

67
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcDetailsVo.java

@ -1,67 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 10:01
*/
@Data
@ApiModel(value = "入库数据(烟草) 视图数据详情", description = "入库数据(烟草) 视图数据详情")
public class GdInstorageYcDetailsVo implements Vo {
@ApiModelProperty("企业组织机构代码证")
private String cola0; // 企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String colb1; // 仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String colc2; // 仓库/门店名称
@ApiModelProperty("入库时间")
private String cold3; // 入库时间
@ApiModelProperty("供应商编号")
private String colex; // 供应商编号
@ApiModelProperty("供应商名称")
private String cole4; // 供应商名称
@ApiModelProperty("单据号")
private String colf5; // 单据号
@ApiModelProperty("单据类型")
private String colg6; // 单据类型
@ApiModelProperty("货号")
private String colh7; // 货号
@ApiModelProperty("商品名称")
private String coli8; // 商品名称
@ApiModelProperty("商品生产日期")
private String colj9; // 商品生产日期
@ApiModelProperty("商品保质期")
private String colk10; // 商品保质期
@ApiModelProperty("商品规格")
private String coll11; // 商品规格
@ApiModelProperty("类别编号")
private String colm12; // 类别编号
@ApiModelProperty("类别名称")
private String coln13; // 类别名称
@ApiModelProperty("一级类别名称")
private String colo14; // 一级类别名称
@ApiModelProperty("二级类别名称")
private String colp15; // 二级类别名称
@ApiModelProperty("入库金额")
private String colq16; // 入库金额
@ApiModelProperty("入库数量")
private String colr17; // 入库数量
@ApiModelProperty("成本金额")
private String cols18; // 成本金额
@ApiModelProperty("成本税额")
private String colt19; // 成本税额
@ApiModelProperty("不含税成本")
private String colu20; // 不含税成本
@ApiModelProperty("进项税率")
private String colv21; // 进项税率
@ApiModelProperty("单据日期")
private String orderDate; // 单据日期
@ApiModelProperty("供货商编码统一")
private String supplierCodeUnified; // 供货商编码统一
@ApiModelProperty("入库定单号")
private String inOrderNo; // 入库定单号
}

67
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcDto.java

@ -1,67 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 10:01
*/
@Data
@ApiModel(value = "入库数据(烟草) 数据传输对象", description = "入库数据(烟草) 数据传输对象")
public class GdInstorageYcDto implements Dto {
@ApiModelProperty("企业组织机构代码证")
private String cola0; // 企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String colb1; // 仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String colc2; // 仓库/门店名称
@ApiModelProperty("入库时间")
private String cold3; // 入库时间
@ApiModelProperty("供应商编号")
private String colex; // 供应商编号
@ApiModelProperty("供应商名称")
private String cole4; // 供应商名称
@ApiModelProperty("单据号")
private String colf5; // 单据号
@ApiModelProperty("单据类型")
private String colg6; // 单据类型
@ApiModelProperty("货号")
private String colh7; // 货号
@ApiModelProperty("商品名称")
private String coli8; // 商品名称
@ApiModelProperty("商品生产日期")
private String colj9; // 商品生产日期
@ApiModelProperty("商品保质期")
private String colk10; // 商品保质期
@ApiModelProperty("商品规格")
private String coll11; // 商品规格
@ApiModelProperty("类别编号")
private String colm12; // 类别编号
@ApiModelProperty("类别名称")
private String coln13; // 类别名称
@ApiModelProperty("一级类别名称")
private String colo14; // 一级类别名称
@ApiModelProperty("二级类别名称")
private String colp15; // 二级类别名称
@ApiModelProperty("入库金额")
private String colq16; // 入库金额
@ApiModelProperty("入库数量")
private String colr17; // 入库数量
@ApiModelProperty("成本金额")
private String cols18; // 成本金额
@ApiModelProperty("成本税额")
private String colt19; // 成本税额
@ApiModelProperty("不含税成本")
private String colu20; // 不含税成本
@ApiModelProperty("进项税率")
private String colv21; // 进项税率
@ApiModelProperty("单据日期")
private String orderDate; // 单据日期
@ApiModelProperty("供货商编码统一")
private String supplierCodeUnified; // 供货商编码统一
@ApiModelProperty("入库定单号")
private String inOrderNo; // 入库定单号
}

37
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcExcelVo.java

@ -1,37 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 10:01
*/
@Data
@ApiModel(value = "入库数据(烟草) Excel视图数据对象", description = "入库数据(烟草) Excel视图数据对象")
public class GdInstorageYcExcelVo implements Vo {
@ExcelProperty(value = "仓库/门店名称")
@ApiModelProperty("仓库/门店名称")
private String colc2; // 仓库/门店名称
@ApiModelProperty("入库时间")
@ExcelProperty(value = "入库时间")
private String cold3; // 入库时间
@ApiModelProperty("商品名称")
@ExcelProperty(value = "商品名称")
private String coli8; // 商品名称
@ExcelProperty(value = "商品规格")
@ApiModelProperty("商品规格")
private String coll11; // 商品规格
@ExcelProperty(value = "类别编号")
@ApiModelProperty("类别编号")
private String colm12; // 类别编号
@ExcelProperty(value = "类别名称")
@ApiModelProperty("类别名称")
private String coln13; // 类别名称
@ExcelProperty(value = "入库数量")
@ApiModelProperty("入库数量")
private String colr17; // 入库数量
}

27
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcFeign.java

@ -1,27 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.supervise.customer.api.gdinstoragegd.GdInstorageGd;
import com.yxt.supervise.customer.api.gdinstoragegd.GdInstorageGdFeignFallback;
import com.yxt.supervise.customer.api.gdinstoragegd.GdInstorageGdQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author wangpengfei
* @date 2023/3/31 10:01
*/
@Api(tags = "入库数据(烟草)")
@FeignClient(
contextId = "yxt-supervise-GdInstorageYc",
name = "yxt-supervise",
path = "v1/gdinstorageyc",
fallback = GdInstorageYcFeignFallback.class)
public interface GdInstorageYcFeign {
}

11
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcFeignFallback.java

@ -1,11 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import org.springframework.stereotype.Component;
/**
* @author wangpengfei
* @date 2023/3/31 10:01
*/
@Component
public class GdInstorageYcFeignFallback implements GdInstorageYcFeign{
}

71
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcQuery.java

@ -1,71 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 10:02
*/
@Data
@ApiModel(value = "入库数据(烟草) 查询条件", description = "入库数据(烟草) 查询条件")
public class GdInstorageYcQuery implements Query {
@ApiModelProperty("企业组织机构代码证")
private String cola0; // 企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String colb1; // 仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String colc2; // 仓库/门店名称
@ApiModelProperty("入库时间")
private String cold3; // 入库时间
@ApiModelProperty("供应商编号")
private String colex; // 供应商编号
@ApiModelProperty("供应商名称")
private String cole4; // 供应商名称
@ApiModelProperty("单据号")
private String colf5; // 单据号
@ApiModelProperty("单据类型")
private String colg6; // 单据类型
@ApiModelProperty("货号")
private String colh7; // 货号
@ApiModelProperty("商品名称")
private String coli8; // 商品名称
@ApiModelProperty("商品生产日期")
private String colj9; // 商品生产日期
@ApiModelProperty("商品保质期")
private String colk10; // 商品保质期
@ApiModelProperty("商品规格")
private String coll11; // 商品规格
@ApiModelProperty("类别编号")
private String colm12; // 类别编号
@ApiModelProperty("类别名称")
private String coln13; // 类别名称
@ApiModelProperty("一级类别名称")
private String colo14; // 一级类别名称
@ApiModelProperty("二级类别名称")
private String colp15; // 二级类别名称
@ApiModelProperty("入库金额")
private String colq16; // 入库金额
@ApiModelProperty("入库数量")
private String colr17; // 入库数量
@ApiModelProperty("成本金额")
private String cols18; // 成本金额
@ApiModelProperty("成本税额")
private String colt19; // 成本税额
@ApiModelProperty("不含税成本")
private String colu20; // 不含税成本
@ApiModelProperty("进项税率")
private String colv21; // 进项税率
@ApiModelProperty("单据日期")
private String orderDate; // 单据日期
@ApiModelProperty("供货商编码统一")
private String supplierCodeUnified; // 供货商编码统一
@ApiModelProperty("入库定单号")
private String inOrderNo; // 入库定单号
@ApiModelProperty("开始时间")
private String startTime;
@ApiModelProperty("结束时间")
private String endTime;
}

67
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinstorageyc/GdInstorageYcVo.java

@ -1,67 +0,0 @@
package com.yxt.supervise.customer.api.gdinstorageyc;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 10:02
*/
@Data
@ApiModel(value = "入库数据(烟草) 视图数据对象", description = "入库数据(烟草) 视图数据对象")
public class GdInstorageYcVo implements Vo {
@ApiModelProperty("企业组织机构代码证")
private String cola0; // 企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String colb1; // 仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String colc2; // 仓库/门店名称
@ApiModelProperty("入库时间")
private String cold3; // 入库时间
@ApiModelProperty("供应商编号")
private String colex; // 供应商编号
@ApiModelProperty("供应商名称")
private String cole4; // 供应商名称
@ApiModelProperty("单据号")
private String colf5; // 单据号
@ApiModelProperty("单据类型")
private String colg6; // 单据类型
@ApiModelProperty("货号")
private String colh7; // 货号
@ApiModelProperty("商品名称")
private String coli8; // 商品名称
@ApiModelProperty("商品生产日期")
private String colj9; // 商品生产日期
@ApiModelProperty("商品保质期")
private String colk10; // 商品保质期
@ApiModelProperty("商品规格")
private String coll11; // 商品规格
@ApiModelProperty("类别编号")
private String colm12; // 类别编号
@ApiModelProperty("类别名称")
private String coln13; // 类别名称
@ApiModelProperty("一级类别名称")
private String colo14; // 一级类别名称
@ApiModelProperty("二级类别名称")
private String colp15; // 二级类别名称
@ApiModelProperty("入库金额")
private String colq16; // 入库金额
@ApiModelProperty("入库数量")
private String colr17; // 入库数量
@ApiModelProperty("成本金额")
private String cols18; // 成本金额
@ApiModelProperty("成本税额")
private String colt19; // 成本税额
@ApiModelProperty("不含税成本")
private String colu20; // 不含税成本
@ApiModelProperty("进项税率")
private String colv21; // 进项税率
@ApiModelProperty("单据日期")
private String orderDate; // 单据日期
@ApiModelProperty("供货商编码统一")
private String supplierCodeUnified; // 供货商编码统一
@ApiModelProperty("入库定单号")
private String inOrderNo; // 入库定单号
}

49
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYc.java

@ -1,49 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.EntityWithId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 9:31
*/
@Data
@ApiModel(value = "国大库存数据(烟草)", description = "国大库存数据")
@TableName("gd_inventory_yc")
public class GdInventoryYc extends EntityWithId {
@ApiModelProperty("企业组织机构代码证")
private String orgCode;//企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String warehouseCode;//仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String warehouseName;//仓库/门店名称
@ApiModelProperty("商品编码")
private String prodCode;//商品编码
@ApiModelProperty("商品条码")
private String prodBarCode;//商品条码
@ApiModelProperty("商品名称")
private String prodName;//商品名称
@ApiModelProperty("仓库类型")
private String warehouseType;//仓库类型
@ApiModelProperty("商品数量")
private String prodNum;//商品数量
@ApiModelProperty("商品货值")
private String prodValue;//商品货值
@ApiModelProperty("供应商")
private String suppliderName;//供应商
@ApiModelProperty("数据日期")
private String dataDate;//数据日期
@ApiModelProperty("类别编号")
private String typeCode;//类别编号
@ApiModelProperty("类别名称")
private String typeName;//类别名称
@ApiModelProperty("一级类别名称")
private String typeOne;//一级类别名称
@ApiModelProperty("二级类别名称")
private String typeTwo;//二级类别名称
}

47
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcDetailsVo.java

@ -1,47 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 9:31
*/
@Data
@ApiModel(value = "国大库存数据(烟草) 视图数据详情", description = "国大库存数据(烟草) 视图数据详情")
public class GdInventoryYcDetailsVo implements Vo {
@ApiModelProperty("ID,唯一编号")
private String id;
@ApiModelProperty("企业组织机构代码证")
private String orgCode;//企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String warehouseCode;//仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String warehouseName;//仓库/门店名称
@ApiModelProperty("商品编码")
private String prodCode;//商品编码
@ApiModelProperty("商品条码")
private String prodBarCode;//商品条码
@ApiModelProperty("商品名称")
private String prodName;//商品名称
@ApiModelProperty("仓库类型")
private String warehouseType;//仓库类型
@ApiModelProperty("商品数量")
private String prodNum;//商品数量
@ApiModelProperty("商品货值")
private String prodValue;//商品货值
@ApiModelProperty("供应商")
private String suppliderName;//供应商
@ApiModelProperty("数据日期")
private String dataDate;//数据日期
@ApiModelProperty("类别编号")
private String typeCode;//类别编号
@ApiModelProperty("类别名称")
private String typeName;//类别名称
@ApiModelProperty("一级类别名称")
private String typeOne;//一级类别名称
@ApiModelProperty("二级类别名称")
private String typeTwo;//二级类别名称
}

47
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcDto.java

@ -1,47 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 9:31
*/
@Data
@ApiModel(value = "国大库存数据(烟草) 数据传输对象", description = "国大库存数据(烟草) 数据传输对象")
public class GdInventoryYcDto implements Dto {
@ApiModelProperty("ID,唯一编号")
private String id;
@ApiModelProperty("企业组织机构代码证")
private String orgCode;//企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String warehouseCode;//仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String warehouseName;//仓库/门店名称
@ApiModelProperty("商品编码")
private String prodCode;//商品编码
@ApiModelProperty("商品条码")
private String prodBarCode;//商品条码
@ApiModelProperty("商品名称")
private String prodName;//商品名称
@ApiModelProperty("仓库类型")
private String warehouseType;//仓库类型
@ApiModelProperty("商品数量")
private String prodNum;//商品数量
@ApiModelProperty("商品货值")
private String prodValue;//商品货值
@ApiModelProperty("供应商")
private String suppliderName;//供应商
@ApiModelProperty("数据日期")
private String dataDate;//数据日期
@ApiModelProperty("类别编号")
private String typeCode;//类别编号
@ApiModelProperty("类别名称")
private String typeName;//类别名称
@ApiModelProperty("一级类别名称")
private String typeOne;//一级类别名称
@ApiModelProperty("二级类别名称")
private String typeTwo;//二级类别名称
}

41
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcExcelVo.java

@ -1,41 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.alibaba.excel.annotation.ExcelProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 9:32
*/
@Data
@ApiModel(value = "国大库存数据(烟草) Excel视图数据对象", description = "国大库存数据(烟草) Excel视图数据对象")
public class GdInventoryYcExcelVo implements Vo {
@ExcelProperty(value = "仓库/门店编号")
@ApiModelProperty("仓库/门店编号")
private String warehouseCode;//仓库/门店编号
@ExcelProperty(value = "仓库/门店名称")
@ApiModelProperty("仓库/门店名称")
private String warehouseName;//仓库/门店名称
@ExcelProperty(value = "商品编码")
@ApiModelProperty("商品编码")
private String prodCode;//商品编码
@ExcelProperty(value = "商品名称")
@ApiModelProperty("商品名称")
private String prodName;//商品名称
@ExcelProperty(value = "商品数量")
@ApiModelProperty("商品数量")
private String prodNum;//商品数量
@ExcelProperty(value = "商品货值")
@ApiModelProperty("商品货值")
private String prodValue;//商品货值
@ExcelProperty(value = "供应商")
@ApiModelProperty("供应商")
private String suppliderName;//供应商
@ExcelProperty(value = "数据日期")
@ApiModelProperty("数据日期")
private String dataDate;//数据日期
}

18
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcFeign.java

@ -1,18 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.yxt.supervise.customer.api.gdinstoragegd.GdInstorageGdFeignFallback;
import io.swagger.annotations.Api;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @author wangpengfei
* @date 2023/3/31 9:32
*/
@Api(tags = "国大库存数据(烟草)")
@FeignClient(
contextId = "yxt-supervise-GdInventoryYc",
name = "yxt-supervise",
path = "v1/gdinventoryyc",
fallback = GdInventoryYcFeignFallback.class)
public interface GdInventoryYcFeign {
}

12
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcFeignFallback.java

@ -1,12 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.yxt.supervise.customer.api.gdinventoryok.GdInventoryOkFeign;
import org.springframework.stereotype.Component;
/**
* @author wangpengfei
* @date 2023/3/31 9:32
*/
@Component
public class GdInventoryYcFeignFallback implements GdInventoryYcFeign {
}

52
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcQuery.java

@ -1,52 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 9:32
*/
@Data
@ApiModel(value = "国大库存数据(烟草) 查询条件", description = "国大库存数据(烟草) 查询条件")
public class GdInventoryYcQuery implements Query {
@ApiModelProperty("ID,唯一编号")
private String id;
@ApiModelProperty("企业组织机构代码证")
private String orgCode;//企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String warehouseCode;//仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String warehouseName;//仓库/门店名称
@ApiModelProperty("商品编码")
private String prodCode;//商品编码
@ApiModelProperty("商品条码")
private String prodBarCode;//商品条码
@ApiModelProperty("商品名称")
private String prodName;//商品名称
@ApiModelProperty("仓库类型")
private String warehouseType;//仓库类型
@ApiModelProperty("商品数量")
private String prodNum;//商品数量
@ApiModelProperty("商品货值")
private String prodValue;//商品货值
@ApiModelProperty("供应商")
private String suppliderName;//供应商
@ApiModelProperty("数据日期")
private String dataDate;//数据日期
@ApiModelProperty("类别编号")
private String typeCode;//类别编号
@ApiModelProperty("类别名称")
private String typeName;//类别名称
@ApiModelProperty("一级类别名称")
private String typeOne;//一级类别名称
@ApiModelProperty("二级类别名称")
private String typeTwo;//二级类别名称
@ApiModelProperty("开始时间")
private String startDate;
@ApiModelProperty("结束时间")
private String endDate;
}

47
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdinventoryyc/GdInventoryYcVo.java

@ -1,47 +0,0 @@
package com.yxt.supervise.customer.api.gdinventoryyc;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2023/3/31 9:32
*/
@Data
@ApiModel(value = "国大库存数据(烟草) 视图数据对象", description = "国大库存数据(烟草) 视图数据对象")
public class GdInventoryYcVo implements Vo {
@ApiModelProperty("ID,唯一编号")
private String id;
@ApiModelProperty("企业组织机构代码证")
private String orgCode;//企业组织机构代码证
@ApiModelProperty("仓库/门店编号")
private String warehouseCode;//仓库/门店编号
@ApiModelProperty("仓库/门店名称")
private String warehouseName;//仓库/门店名称
@ApiModelProperty("商品编码")
private String prodCode;//商品编码
@ApiModelProperty("商品条码")
private String prodBarCode;//商品条码
@ApiModelProperty("商品名称")
private String prodName;//商品名称
@ApiModelProperty("仓库类型")
private String warehouseType;//仓库类型
@ApiModelProperty("商品数量")
private String prodNum;//商品数量
@ApiModelProperty("商品货值")
private String prodValue;//商品货值
@ApiModelProperty("供应商")
private String suppliderName;//供应商
@ApiModelProperty("数据日期")
private String dataDate;//数据日期
@ApiModelProperty("类别编号")
private String typeCode;//类别编号
@ApiModelProperty("类别名称")
private String typeName;//类别名称
@ApiModelProperty("一级类别名称")
private String typeOne;//一级类别名称
@ApiModelProperty("二级类别名称")
private String typeTwo;//二级类别名称
}

86
yxt_supervise/supervise-customer/supervise-customer-api/src/main/java/com/yxt/supervise/customer/api/gdsales/GdSalesVo.java

@ -13,70 +13,70 @@ import lombok.Data;
@Data
@ApiModel(value = "销售数据 视图数据对象", description = "销售数据 视图数据对象")
public class GdSalesVo implements Vo {
private String sid; // sid
@ApiModelProperty("创建者")
private String createSid; // 创建者
@ApiModelProperty("更新者")
private String modifySid; // 更新者
// private String sid; // sid
//
// @ApiModelProperty("创建者")
// private String createSid; // 创建者
// @ApiModelProperty("更新者")
// private String modifySid; // 更新者
@ExcelProperty(value = "销售订单号")
@ApiModelProperty("销售订单号")
private String code; // 销售订单号
@ExcelProperty(value = "商品编码")
@ApiModelProperty("商品编码")
private String prodCode; // 商品编码
@ApiModelProperty("商品条码")
private String prodBarCode; // 商品条码
// @ApiModelProperty("商品条码")
// private String prodBarCode; // 商品条码
@ExcelProperty(value = "商品名称")
@ApiModelProperty("商品名称")
private String prodName; // 商品名称
@ExcelProperty(value = "销售数量")
@ApiModelProperty("销售数量")
private String saleNum; // 销售数量
@ApiModelProperty("销售渠道")
private String storeCode; // 销售渠道
// @ApiModelProperty("销售渠道")
// private String storeCode; // 销售渠道
@ExcelProperty(value = "销售渠道")
@ApiModelProperty("销售渠道名称")
private String storeName; // 销售渠道名称
@ApiModelProperty("销售价格")
private String salePrice; // 销售价格
@ApiModelProperty("销售成本")
private String saleCost; // 销售成本
@ApiModelProperty("利润")
private String profit; // 利润
// @ApiModelProperty("销售价格")
// private String salePrice; // 销售价格
// @ApiModelProperty("销售成本")
// private String saleCost; // 销售成本
// @ApiModelProperty("利润")
// private String profit; // 利润
@ExcelProperty(value = "数据日期")
@ApiModelProperty("数据日期")
private String dataDate; // 数据日期
@ExcelProperty(value = "数据日期")
@ApiModelProperty("类型")
private String orderType; // 类型
@ApiModelProperty("客户代码")
private String customerCode; // 客户代码
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
// @ApiModelProperty("客户代码")
// private String customerCode; // 客户代码
// @ApiModelProperty("客户名称")
// private String customerName; // 客户名称
@ExcelProperty(value = "品牌编码")
@ApiModelProperty("品牌代码")
private String brandCode; // 品牌代码
@ExcelProperty(value = "品牌名称")
@ApiModelProperty("品牌名称")
private String brandName; // 品牌名称
@ApiModelProperty("大类")
private String categoryb; // 大类
@ApiModelProperty("种类")
private String categorym; // 种类
@ApiModelProperty("小类")
private String categorys; // 小类
// @ApiModelProperty("大类")
// private String categoryb; // 大类
// @ApiModelProperty("种类")
// private String categorym; // 种类
// @ApiModelProperty("小类")
// private String categorys; // 小类
@ExcelProperty(value = "总价")
@ApiModelProperty("总价")
private String total;
public void setSaleNum(String saleNum) {
int i = saleNum.indexOf(".");
if (i != -1) {
String num = saleNum.substring(0, i);
this.saleNum = num;
} else {
this.saleNum = saleNum;
public void setSaleNum(String saleNum){
int i=saleNum.indexOf(".");
if(i!=-1){
String num=saleNum.substring(0,i);
this.saleNum=num;
}else{
this.saleNum=saleNum;
}
}
}

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

Loading…
Cancel
Save