Merge remote-tracking branch 'origin/fix_bug_first_stage' into fix_bug_first_stage
This commit is contained in:
@@ -1 +1,10 @@
|
||||
-- 一阶段的bug修复导致的字段增删、必须数据增删添加到此处
|
||||
-- 一阶段的bug修复导致的字段增删、必须数据增删添加到此处
|
||||
|
||||
ALTER TABLE `sys_role_permission`
|
||||
MODIFY COLUMN `operate_ip` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作ip' AFTER `operate_date`;
|
||||
-- 6月23日部署上线
|
||||
|
||||
ALTER TABLE `dummy_inventory_info`
|
||||
ADD COLUMN `verify_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '验证备注' AFTER `applicable_supplement`,
|
||||
ADD COLUMN `prehomo_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'pre备注' AFTER `verify_remark`,
|
||||
ADD COLUMN `design_remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '设计备注' AFTER `prehomo_remark`;
|
||||
|
||||
@@ -10,7 +10,7 @@ Target Server Type : MYSQL
|
||||
Target Server Version : 50733
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 2022-06-18 16:09:03
|
||||
Date: 2022-06-21 22:25:01
|
||||
*/
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
@@ -29,7 +29,7 @@ CREATE TABLE `buss_document_library` (
|
||||
`region` varchar(100) DEFAULT NULL COMMENT '适用地区',
|
||||
`standard_system` varchar(100) DEFAULT NULL COMMENT '标准体系',
|
||||
`state` varchar(100) DEFAULT NULL COMMENT '状态',
|
||||
`title` varchar(100) DEFAULT NULL COMMENT '中文标题',
|
||||
`title` varchar(500) DEFAULT NULL COMMENT '中文标题',
|
||||
`issue_time` datetime DEFAULT NULL COMMENT '发布日期',
|
||||
`implement_time` datetime DEFAULT NULL COMMENT '在产车实施日期',
|
||||
`replace_standard` varchar(100) DEFAULT NULL COMMENT '代替标准',
|
||||
@@ -42,7 +42,7 @@ CREATE TABLE `buss_document_library` (
|
||||
`approval_draft` varchar(255) DEFAULT NULL COMMENT '报批稿',
|
||||
`exposure_draft` varchar(255) DEFAULT NULL COMMENT '征求意见稿',
|
||||
`serial_number` varchar(100) DEFAULT NULL COMMENT '编号',
|
||||
`title_en` varchar(200) DEFAULT NULL COMMENT '英文标题',
|
||||
`title_en` varchar(500) DEFAULT NULL COMMENT '英文标题',
|
||||
`technology_territory` varchar(1000) DEFAULT NULL COMMENT '技术领域',
|
||||
`shi4_yong4_fan4_wei2` varchar(2000) DEFAULT NULL COMMENT '适用范围',
|
||||
`xin1_che1_xing2_shi2_shi1_ri4_qi1` datetime DEFAULT NULL COMMENT '新车型实施日期',
|
||||
@@ -206,7 +206,7 @@ CREATE TABLE `dummy_inventory_info` (
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新日期',
|
||||
`sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门',
|
||||
`serial_number` varchar(100) DEFAULT NULL COMMENT '编号',
|
||||
`title` varchar(100) DEFAULT NULL COMMENT '标题',
|
||||
`title` varchar(500) DEFAULT NULL COMMENT '标题',
|
||||
`shi4_yong4_fan4_wei2` varchar(100) DEFAULT NULL COMMENT '适用范围',
|
||||
`state` varchar(1) DEFAULT NULL COMMENT '状态',
|
||||
`technology_territory` varchar(1000) DEFAULT NULL COMMENT '技术领域',
|
||||
@@ -432,8 +432,8 @@ CREATE TABLE `ocr_record` (
|
||||
`sync_state` varchar(32) DEFAULT NULL COMMENT '同步情况',
|
||||
`connect_id` varchar(50) DEFAULT NULL COMMENT '文档库关联文件id',
|
||||
`check_flag` varchar(1) DEFAULT NULL COMMENT '校核锁定标识',
|
||||
`stand_name` varchar(255) DEFAULT NULL COMMENT '标题',
|
||||
`stand_name_en` varchar(255) DEFAULT NULL COMMENT '英文标题',
|
||||
`stand_name` varchar(500) DEFAULT NULL COMMENT '标题',
|
||||
`stand_name_en` varchar(500) DEFAULT NULL COMMENT '英文标题',
|
||||
PRIMARY KEY (`id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;
|
||||
|
||||
@@ -1346,7 +1346,7 @@ INSERT INTO `onl_cgform_field` VALUES ('142ab64194ed716d13d4072eed986481', 'c041
|
||||
INSERT INTO `onl_cgform_field` VALUES ('14990381dc845a9198a4128ed1b59218', '402813817f0b96ae017f0b96ae150000', 'code', null, '类型编码', '4', 'code', '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-03-04 17:36:22', '2022-02-18 14:48:19', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('14ab86b4d9de68bc3eb01af6b07eaf51', 'adf3934df41447aba921e5466f23dfff', 'attestation_rank', 'aaaa', '认证级别', '20', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-04-11 15:39:04', '2022-04-08 17:18:31', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('14c7e5062e0fb7f5db5138acc6bede28', '402813817eebc6c9017eebc6d4bc0004', 'id_type', null, '主键类型', '11', 'id_type', '0', '1', 'string', '100', '0', null, null, null, null, 'text', null, '120', null, '0', null, null, '0', '1', '1', '0', 'single', null, null, null, null, '2022-02-12 10:33:04', 'admin', null, null, null, null, null, null, null, null, null, null, null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('1501848401568935937', '48308196e7b04761b533dc31bc899707', 'title_en', 'English Title', '英文标题', '4', null, '0', '1', 'String', '200', '0', null, null, null, null, '1', null, null, null, '1', null, null, '1', '1', '1', '1', null, null, null, 'admin', '2022-06-06 16:05:28', null, null, null, null, null, null, null, null, null, null, null, null, '1499657602378825729', '1', '1', '0', '1', null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('1501848401568935937', '48308196e7b04761b533dc31bc899707', 'title_en', 'English Title', '英文标题', '4', null, '0', '1', 'String', '500', '0', null, null, null, null, '1', null, null, null, '1', null, null, '1', '1', '1', '1', null, null, null, 'admin', '2022-06-06 16:05:28', null, null, null, null, null, null, null, null, null, null, null, null, '1499657602378825729', '1', '1', '0', '1', null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('1506541101228556290', '48308196e7b04761b533dc31bc899707', 'xin1_che1_xing2_shi2_shi1_ri4_qi1', 'New Type Execution Date', '新车型实施日期', '11', null, '0', '1', 'Date', '50', '0', null, '', null, null, '5', null, null, null, '0', null, null, '1', '1', '0', '1', null, null, null, 'admin', '2022-06-06 16:05:28', null, null, null, null, null, null, null, null, null, null, null, null, '1499657602378825729', '1', '1', '0', '1', '1493782653286047745');
|
||||
INSERT INTO `onl_cgform_field` VALUES ('1529373706885799937', 'c998a34ea4b84089932197ed0705c757', 'zhan3_shi4_shun4_xu4', 'sortNumber', '展示顺序', '11', null, '0', '1', 'Double', '100', '0', null, null, null, null, '2', null, null, null, '1', null, null, '0', '1', '1', '1', null, null, null, 'ning.chen', '2022-05-25 16:08:01', '2022-05-25 16:08:01', 'ning.chen', null, null, null, null, null, null, null, null, null, null, null, null, null, '0', '0', null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('157f9119129a2126fd15dc127b9f6f6c', 'a234bb12c0174f9d9d451ae138169b6a', 'content_json', 'aaaa', '内容', '9', null, '0', '1', 'Text', '0', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-11 17:32:20', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
@@ -1356,7 +1356,7 @@ INSERT INTO `onl_cgform_field` VALUES ('161c35a16e92682972dd1aeb26151fa2', '9ca1
|
||||
INSERT INTO `onl_cgform_field` VALUES ('169e043518f5f97536d4f03ba47c7360', '8c8ab9e99505430a85eb24b9c325d282', 'update_time', 'update_time', '更新日期', '15', null, '0', '1', 'Date', '20', '0', '', '', '', '', 'datetime', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-04-21 10:24:36', '2022-04-11 14:59:13', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('16a9476d1c674bc63dde5a8768334444', 'a44f101118744c83bbec236d64f755db', 'text_data', 'aaaa', '文本类型数据', '7', null, '0', '1', 'string', '255', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-18 10:53:52', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('16b24e8bf70c86b8a8228f4de75582a8', '402813817f0b96ae017f0b96ae150000', 'name', null, '类型名称', '3', 'name', '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-03-04 17:36:22', '2022-02-18 14:48:19', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('16be02f77d65d98f80a2c1af6e8d6563', '465c69b795614d72b9e64ee3a980402b', 'stand_name_en', 'Title', '英文标题', '9', null, '0', '1', 'string', '255', '0', '', '', '', '', '1', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-05-31 14:25:45', '2022-05-31 09:35:26', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('16be02f77d65d98f80a2c1af6e8d6563', '465c69b795614d72b9e64ee3a980402b', 'stand_name_en', 'Title', '英文标题', '9', null, '0', '1', 'string', '500', '0', '', '', '', '', '1', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-05-31 14:25:45', '2022-05-31 09:35:26', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('16e250c97c10fecde7ab664445edb6e8', '8ed012c5f28842bbb76c6882cca3eea5', 'update_time', 'aaaa', '更新日期', '5', null, '0', '1', 'Date', '20', '0', '', '', '', '', 'datetime', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-05-13 16:48:06', '2022-05-05 14:59:12', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('170b7c84d575af41d39f51291b3a3565', '1fadedad93cf418ca3f369460f7c4cda', 'sys_org_code', 'aaaa', '所属部门', '6', null, '0', '1', 'string', '64', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-03-02 23:31:30', '2022-03-02 15:51:10', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('17f0065cd5a3174c66589d7fe0c00e0d', '8972ea4b5c9f421baea31d07cc8e4bc9', 'attestation_engineer', 'aaaa', '认证工程师', '6', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-11 15:02:34', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
@@ -1461,7 +1461,7 @@ INSERT INTO `onl_cgform_field` VALUES ('2b57e2f3275282b53f703ed52f9f32c9', '9ca1
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2b691a978bda6909a6b2f09215cd219e', '465c69b795614d72b9e64ee3a980402b', 'json_file_code', 'aaaa', 'json文件编码', '19', null, '0', '1', 'Text', '0', '0', '', '', '', '', '1', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-05-31 14:25:45', '2022-02-16 11:40:33', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2bff220ecb82e2a3fda3375bec802b96', '402813817f0b96ae017f0b96ae150000', 'has_child', null, '是否有子节点', '11', 'has_child', '0', '1', 'string', '3', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-03-04 17:36:23', '2022-02-18 14:48:19', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2c087d03c8a2c4229ac953f1a3ed5963', '5a0de4646b964d3b8c3c8d36b08668b3', 'params_template_id', 'aaaa', '参数模板id', '12', null, '0', '1', 'string', '36', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-18 10:56:21', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2c13cf479aed3cc6075c329834b0681f', '465c69b795614d72b9e64ee3a980402b', 'stand_name', 'Title', '标题', '8', null, '0', '1', 'string', '255', '0', '', '', '', '', '1', '', '120', null, '1', '', '', '1', '1', '1', '0', 'single', '', '', 'admin', '2022-05-31 14:25:45', '2022-04-14 11:11:10', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2c13cf479aed3cc6075c329834b0681f', '465c69b795614d72b9e64ee3a980402b', 'stand_name', 'Title', '标题', '8', null, '0', '1', 'string', '500', '0', '', '', '', '', '1', '', '120', null, '1', '', '', '1', '1', '1', '0', 'single', '', '', 'admin', '2022-05-31 14:25:45', '2022-04-14 11:11:10', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2c5f7d8634acbbb0fb370168fdeab7aa', '42baaa106e80443391523133807e6456', 'nio_number', 'aaaa', 'nio编号', '10', null, '0', '1', 'string', '15', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-29 13:48:51', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2c8c0ae0d5f1f31f1a5892352c629b9d', 'becc0b2db5fb4511920bb34a94dd53b7', 'duty_territory', 'aaaa', '责任领域', '12', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-29 13:46:26', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('2da38cebeb64b612dd5112956f0a26b5', '402813817f3e397e017f3e39831e0002', 'password', null, '密码', '4', 'password', '0', '1', 'string', '255', '0', null, null, null, null, 'text', null, '120', null, '0', null, null, '0', '1', '1', '0', 'single', null, null, null, null, '2022-02-28 10:47:11', 'admin', null, null, null, null, null, null, null, null, null, null, null, null, null, '0', null, null);
|
||||
@@ -1615,7 +1615,7 @@ INSERT INTO `onl_cgform_field` VALUES ('4d835e89149bd552f9dae019c1ce8d14', 'c7ce
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4d88e479e4c0a22a9125298fdddb1375', 'dc4a39d84e8c4936913966306bd3a08e', 'params_template_name', 'aaaa', '参数模板', '7', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-04-21 11:03:56', '2022-04-21 10:38:17', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4d98c6a5998ee22e4fb6f1818e67d2d3', 'd430c9dfb1014e41a5a823ae947e3804', 'duty_territory', 'aaaa', '责任领域', '12', null, '0', '1', 'string', '50', '0', '', 'duty_territory', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-22 10:39:25', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4da707d6c70977c4d941c64079395651', 'dc4a39d84e8c4936913966306bd3a08e', 'description', 'aaaa', '内容说明', '10', null, '0', '1', 'string', '300', '0', '', '', '', '', 'textarea', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-04-21 11:03:56', '2022-04-21 10:38:17', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4e7cbe27c3b7575dfa1ef97f9b2fe02f', 'adf3934df41447aba921e5466f23dfff', 'title', 'aaaa', '标题', '9', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-04-11 15:39:03', '2022-04-08 17:18:31', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4e7cbe27c3b7575dfa1ef97f9b2fe02f', 'adf3934df41447aba921e5466f23dfff', 'title', 'aaaa', '标题', '9', null, '0', '1', 'string', '500', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-04-11 15:39:03', '2022-04-08 17:18:31', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4ea375466c169714b494c0c31cea5a6b', '8972ea4b5c9f421baea31d07cc8e4bc9', 'create_user_id', 'aaaa', '创建人', '8', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', null, null, '2022-04-11 15:02:34', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4eaa96dea28e30327c30bb41a21ab747', '69bd6189a60b4cc19cd97fa3e6c0673b', 'id', 'aaaa', '主键', '1', null, '1', '0', 'string', '36', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '1', 'single', '', '', 'admin', '2022-01-25 11:17:23', '2022-01-25 11:14:27', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('4f22a60a0c65c6e3e70417c4a5ddad6e', '9e637cee15834bd19ea99d6889d1d1ad', 'params_template_id', 'aaaa', '参数模板id', '12', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-05 14:28:50', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
@@ -1707,7 +1707,7 @@ INSERT INTO `onl_cgform_field` VALUES ('65ae4ae4e1a15608dd0028c678ecb17a', 'e0b3
|
||||
INSERT INTO `onl_cgform_field` VALUES ('65c60e6aec2098a28e7cd60fb1966c84', '299fb71b0d0b435ba1a25c4a9ae6ef3e', 'motor', 'aaaa', '电机', '11', null, '0', '1', 'string', '20', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-05-13 16:52:21', '2022-05-12 15:45:48', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('65f264e3af7ea7a0fd67c9ef6c84defd', '402813817f3e397e017f3e39831e0002', 'third_type', null, '第三方类型', '15', 'third_type', '0', '1', 'string', '100', '0', null, null, null, null, 'text', null, '120', null, '0', null, null, '0', '1', '1', '0', 'single', null, null, null, null, '2022-02-28 10:47:11', 'admin', null, null, null, null, null, null, null, null, null, null, null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('65f311b83ac3efec631d347b6042ee84', '402813817eebc6c9017eebc6d4bc0004', 'id_sequence', null, '主键生成序列', '10', 'id_sequence', '0', '1', 'string', '200', '0', null, null, null, null, 'text', null, '120', null, '0', null, null, '0', '1', '1', '0', 'single', null, null, null, null, '2022-02-12 10:33:04', 'admin', null, null, null, null, null, null, null, null, null, null, null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('6622a83abb0bd1b9ac0ab6bd7bbf0363', '2937b7c89eaf4145af393b64ab43e132', 'title', 'aaaa', '标题', '10', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-05 14:54:22', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('6622a83abb0bd1b9ac0ab6bd7bbf0363', '2937b7c89eaf4145af393b64ab43e132', 'title', 'aaaa', '标题', '10', null, '0', '1', 'string', '500', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-05 14:54:22', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('663f5d515bd7ca8228f73f0e820f2845', '2937b7c89eaf4145af393b64ab43e132', 'design_duty', 'aaaa', '设计符合性确认-责任人', '27', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-05 14:54:22', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('666cfb19bdab5ab4e36183e3a095f571', 'b2c4096566dd4fab8b6476ecd0a5ea52', 'update_by', null, '更新人', '12', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-20 17:07:02', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('66780fb026cfb89179b9d7cb90fc08f0', '891a5f26e9224ddfb811441c1947d20e', 'params_batch', 'aaaa', '参数批次', '12', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-05-18 11:14:19', '2022-05-18 10:49:36', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
@@ -1900,7 +1900,7 @@ INSERT INTO `onl_cgform_field` VALUES ('921a95944d0f6a780bb4e8eea10858eb', '4830
|
||||
INSERT INTO `onl_cgform_field` VALUES ('9265e26a846cf863add004b29b4c124a', 'a129e6617bec42fbaa205eb08076103a', 'field_show_type', 'aaaa', '表单控件类型', '10', null, '0', '0', 'string', '10', '0', '', 'field_show_type', 'onl_cgform_field', 'field_show_type', 'list', '', '120', '*', '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-02-15 17:22:01', '2022-01-25 15:51:14', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('926820302b4821efccdb5eff69b693f6', '8972ea4b5c9f421baea31d07cc8e4bc9', 'update_time', 'aaaa', '更新日期', '11', null, '0', '1', 'Date', '20', '0', '', '', '', '', 'datetime', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', null, null, '2022-04-11 15:02:34', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('926e96f2025e5df1943044437ede6af7', '402813817eebc6c9017eebc6d4bc0004', 'table_name', null, '表名', '2', 'table_name', '0', '0', 'string', '50', '0', null, null, null, null, 'text', null, '120', null, '0', null, null, '0', '1', '1', '0', 'single', null, null, null, null, '2022-02-12 10:33:04', 'admin', null, null, null, null, null, null, null, null, null, null, null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('92e6c5d7e92c369f5a341408e0dc897d', 'c04152cd08634d898b6140a64009bd9d', 'title', 'aaaa', '标题', '9', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-14 10:36:35', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('92e6c5d7e92c369f5a341408e0dc897d', 'c04152cd08634d898b6140a64009bd9d', 'title', 'aaaa', '标题', '9', null, '0', '1', 'string', '500', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-14 10:36:35', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('92f4ffc8572fbe2d82188c57a1a83801', '0932e2bf6b824439ac8f8fd58350094b', 'params_template_id', 'aaaa', '参数模板id', '18', null, '0', '1', 'string', '36', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-05-18 14:37:53', '2022-05-12 13:49:55', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('9316b4d024d06739be32302f88bc1d80', '69bd6189a60b4cc19cd97fa3e6c0673b', 'sys_org_code', 'aaaa', '所属部门', '6', null, '0', '1', 'string', '64', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '1', '1', '1', '0', 'single', '', '', 'admin', '2022-01-25 11:17:24', '2022-01-25 11:14:27', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, '0', null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('931bac2053e6bd795f0e350a6aad0ef4', '5a0de4646b964d3b8c3c8d36b08668b3', 'params_name', 'aaaa', '参数名称', '8', null, '0', '1', 'string', '30', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-18 10:56:21', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
@@ -1923,7 +1923,7 @@ INSERT INTO `onl_cgform_field` VALUES ('985f22d06d72e4b70c1dbc3b040eb8c8', 'f689
|
||||
INSERT INTO `onl_cgform_field` VALUES ('9871ef70786ff8cc0f4126f3866ad8bc', '256924c625f04ae7920191ad813dff4a', 'description', 'aaaa', '参数说明', '9', null, '0', '1', 'string', '200', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', 'admin', '2022-04-22 14:57:05', '2022-04-22 11:33:08', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('987b02e5d72fc54c9a70c8d5c7866dbd', '6cf7c541349040248439eb73d588c3dd', 'project_id', 'aaaa', '项目id', '12', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-12 13:44:17', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('98949ccfd329486e94a7b2df2419b6a3', '2937b7c89eaf4145af393b64ab43e132', 'attestation_type', 'aaaa', '认证类型', '16', null, '0', '1', 'string', '100', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-05-05 14:54:22', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('9904aaba0b0aeb5dbdb4a9ed9cbdd726', '48308196e7b04761b533dc31bc899707', 'title', 'Chinese Title', '中文标题', '3', null, '0', '1', 'string', '100', '0', '', '', '', '', '1', '', '120', null, '1', '', '', '1', '1', '1', '1', 'single', '', '', 'admin', '2022-06-06 16:05:28', '2022-01-21 14:33:40', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', '1499657602378825729', '1', '1', '0', '1', null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('9904aaba0b0aeb5dbdb4a9ed9cbdd726', '48308196e7b04761b533dc31bc899707', 'title', 'Chinese Title', '中文标题', '3', null, '0', '1', 'string', '500', '0', '', '', '', '', '1', '', '120', null, '1', '', '', '1', '1', '1', '1', 'single', '', '', 'admin', '2022-06-06 16:05:28', '2022-01-21 14:33:40', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', '1499657602378825729', '1', '1', '0', '1', null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('9926d139e0ce42d06f88899a96a4758f', '0932e2bf6b824439ac8f8fd58350094b', 'control_type', 'aaaa', '控件类型', '14', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '0', 'single', '', '', 'admin', '2022-05-18 14:37:53', '2022-05-12 13:49:55', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('998263a84918664ab2effb4f6ca05e2a', 'd430c9dfb1014e41a5a823ae947e3804', 'control_type', 'aaaa', '控件类型', '15', null, '0', '1', 'string', '50', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '1', '1', '0', 'single', '', '', null, null, '2022-04-22 10:39:25', 'admin', '', '', '', '', '', 'text', '0', null, null, '0', null, null, null, null, null, null);
|
||||
INSERT INTO `onl_cgform_field` VALUES ('998440cf076aee7a7e1ed196ab95983e', '65525fc5732b44d2af16d4e908747e15', 'id', 'aaaa', '主键', '1', null, '1', '0', 'string', '36', '0', '', '', '', '', 'text', '', '120', null, '0', '', '', '0', '0', '0', '1', 'single', '', '', null, null, '2022-04-29 15:39:10', 'admin', '', '', '', '', '', null, '0', null, null, '0', null, null, null, null, null, null);
|
||||
@@ -3240,7 +3240,7 @@ CREATE TABLE `project_laws_inventory` (
|
||||
`sys_org_code` varchar(64) DEFAULT NULL COMMENT '所属部门',
|
||||
`project_library_id` varchar(36) DEFAULT NULL COMMENT '项目库id',
|
||||
`serial_number` varchar(100) DEFAULT NULL COMMENT '编号',
|
||||
`title` varchar(100) DEFAULT NULL COMMENT '标题',
|
||||
`title` varchar(500) DEFAULT NULL COMMENT '标题',
|
||||
`subtitle` varchar(255) DEFAULT NULL COMMENT '子标题',
|
||||
`corresponding_standard` varchar(1000) DEFAULT NULL COMMENT '对应标准',
|
||||
`implement_type` varchar(100) DEFAULT NULL COMMENT '实施类别',
|
||||
@@ -3636,7 +3636,7 @@ CREATE TABLE `project_version_info` (
|
||||
`history_versions_id` varchar(32) DEFAULT NULL COMMENT '法规清单版本id',
|
||||
`project_library_id` varchar(32) DEFAULT NULL COMMENT '项目库id',
|
||||
`serial_number` varchar(100) DEFAULT NULL COMMENT '编号',
|
||||
`title` varchar(100) DEFAULT NULL COMMENT '标题',
|
||||
`title` varchar(500) DEFAULT NULL COMMENT '标题',
|
||||
`subtitle` varchar(100) DEFAULT NULL COMMENT '子标题',
|
||||
`corresponding_standard` varchar(1000) DEFAULT NULL COMMENT '对应标准',
|
||||
`implement_type` varchar(100) DEFAULT NULL COMMENT '实施类别',
|
||||
|
||||
+50
-45
@@ -486,53 +486,58 @@ public class QueryGenerator {
|
||||
}
|
||||
name = oConvertUtils.camelToUnderline(name);
|
||||
log.info("--查询规则-->"+name+" "+rule.getValue()+" "+value);
|
||||
switch (rule) {
|
||||
case GT:
|
||||
queryWrapper.gt(name, value);
|
||||
break;
|
||||
case GE:
|
||||
queryWrapper.ge(name, value);
|
||||
break;
|
||||
case LT:
|
||||
queryWrapper.lt(name, value);
|
||||
break;
|
||||
case LE:
|
||||
queryWrapper.le(name, value);
|
||||
break;
|
||||
case EQ:
|
||||
case EQ_WITH_ADD:
|
||||
queryWrapper.eq(name, value);
|
||||
break;
|
||||
case NE:
|
||||
queryWrapper.ne(name, value);
|
||||
break;
|
||||
case IN:
|
||||
if(value instanceof String) {
|
||||
queryWrapper.in(name, (Object[])value.toString().split(","));
|
||||
}else if(value instanceof String[]) {
|
||||
queryWrapper.in(name, (Object[]) value);
|
||||
if(" is null ".equals(value)){
|
||||
queryWrapper.isNull(name);
|
||||
}else{
|
||||
switch (rule) {
|
||||
case GT:
|
||||
queryWrapper.gt(name, value);
|
||||
break;
|
||||
case GE:
|
||||
queryWrapper.ge(name, value);
|
||||
break;
|
||||
case LT:
|
||||
queryWrapper.lt(name, value);
|
||||
break;
|
||||
case LE:
|
||||
queryWrapper.le(name, value);
|
||||
break;
|
||||
case EQ:
|
||||
case EQ_WITH_ADD:
|
||||
queryWrapper.eq(name, value);
|
||||
break;
|
||||
case NE:
|
||||
queryWrapper.ne(name, value);
|
||||
break;
|
||||
case IN:
|
||||
if(value instanceof String) {
|
||||
queryWrapper.in(name, (Object[])value.toString().split(","));
|
||||
}else if(value instanceof String[]) {
|
||||
queryWrapper.in(name, (Object[]) value);
|
||||
}
|
||||
//update-begin-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
else if(value.getClass().isArray()) {
|
||||
queryWrapper.in(name, (Object[])value);
|
||||
}else {
|
||||
queryWrapper.in(name, value);
|
||||
}
|
||||
//update-end-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
break;
|
||||
case LIKE:
|
||||
queryWrapper.like(name, value);
|
||||
break;
|
||||
case LEFT_LIKE:
|
||||
queryWrapper.likeLeft(name, value);
|
||||
break;
|
||||
case RIGHT_LIKE:
|
||||
queryWrapper.likeRight(name, value);
|
||||
break;
|
||||
default:
|
||||
log.info("--查询规则未匹配到---");
|
||||
break;
|
||||
}
|
||||
//update-begin-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
else if(value.getClass().isArray()) {
|
||||
queryWrapper.in(name, (Object[])value);
|
||||
}else {
|
||||
queryWrapper.in(name, value);
|
||||
}
|
||||
//update-end-author:taoyan date:20200909 for:【bug】in 类型多值查询 不适配postgresql #1671
|
||||
break;
|
||||
case LIKE:
|
||||
queryWrapper.like(name, value);
|
||||
break;
|
||||
case LEFT_LIKE:
|
||||
queryWrapper.likeLeft(name, value);
|
||||
break;
|
||||
case RIGHT_LIKE:
|
||||
queryWrapper.likeRight(name, value);
|
||||
break;
|
||||
default:
|
||||
log.info("--查询规则未匹配到---");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
*
|
||||
|
||||
+2
-2
@@ -710,7 +710,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
|
||||
}
|
||||
return Result.error(resultMsg);
|
||||
}
|
||||
String path = uploadpath + "/modal/"+filenameorg;
|
||||
String path = uploadpath + File.separator + "modal" + File.separator + filenameorg + System.currentTimeMillis();
|
||||
File saveDirectory = new File(path);
|
||||
if(!saveDirectory.isDirectory()){
|
||||
saveDirectory.mkdir();
|
||||
@@ -718,7 +718,7 @@ public class ParamsInfoEOServiceImpl extends ServiceImpl<ParamsInfoEOMapper, Par
|
||||
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path +File.separator+ file.getOriginalFilename()));
|
||||
try{
|
||||
//解压缩
|
||||
String zipEntryName = FileUnZip.unZipFiles(path +File.separator+ file.getOriginalFilename(),path);
|
||||
String zipEntryName = FileUnZip.unZipFiles2(path +File.separator+ file.getOriginalFilename(),path);
|
||||
// 数据相关处理,
|
||||
// 1.获取其中的Excel,
|
||||
List<File> excelfilelist = FileUnZip.readExcelFile(zipEntryName);
|
||||
|
||||
+32
-6
@@ -4,10 +4,10 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.constant.CommonConstant;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.api.ISysBaseAPI;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.util.RestUtil;
|
||||
import com.jero.common.util.TokenUtils;
|
||||
import com.jero.common.util.oConvertUtils;
|
||||
@@ -19,6 +19,7 @@ import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
@@ -47,6 +48,8 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.URLDecoder;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -341,7 +344,7 @@ public class CommonController {
|
||||
* @param response
|
||||
*/
|
||||
@GetMapping(value = "/downLoadFile")
|
||||
public void downLoadFromCos(String id,HttpServletRequest request, HttpServletResponse response) {
|
||||
public void downLoadFromCos(String id,HttpServletRequest request, HttpServletResponse response,String userName) {
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("参数信息不全");
|
||||
}
|
||||
@@ -355,6 +358,7 @@ public class CommonController {
|
||||
}
|
||||
InputStream inputStream = null;
|
||||
OutputStream outputStream = null;
|
||||
File newFile =null;
|
||||
try {
|
||||
String fileName = "";
|
||||
//本地下载
|
||||
@@ -367,9 +371,18 @@ public class CommonController {
|
||||
fileName = ossFile.getFileName();
|
||||
response.setContentType("application/force-download");// 设置强制下载不打开
|
||||
response.addHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("UTF-8"),"iso-8859-1"));
|
||||
|
||||
InputStream download = CosBootUtil.download(filePath);
|
||||
File file = new File(filePath);
|
||||
if(file.getName().endsWith(".pdf") || file.getName().endsWith(".PDF")){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String currentTime = sdf.format(new Date());
|
||||
String waterContent = userName+" "+currentTime;
|
||||
newFile = PDFUtils.PDFWatermark(download,uploadpath,file.getName(),waterContent);
|
||||
inputStream = new FileInputStream(newFile.getPath());
|
||||
}else{
|
||||
inputStream = CosBootUtil.download(filePath);
|
||||
}
|
||||
outputStream = response.getOutputStream();
|
||||
inputStream = CosBootUtil.download(filePath);
|
||||
byte[] buf = new byte[1024];
|
||||
int len;
|
||||
while ((len = inputStream.read(buf)) > 0) {
|
||||
@@ -394,7 +407,17 @@ public class CommonController {
|
||||
} catch (IOException e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
}
|
||||
if (newFile != null) {
|
||||
try {
|
||||
newFile.delete();
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -468,7 +491,7 @@ public class CommonController {
|
||||
* @param response
|
||||
*/
|
||||
@GetMapping(value = "/pdf/viewFile")
|
||||
public void viewFile(String id,HttpServletRequest request, HttpServletResponse response) {
|
||||
public void viewFile(String id,HttpServletRequest request, HttpServletResponse response,String userName) {
|
||||
// 查询数据表数据是否存在
|
||||
LambdaQueryWrapper<OSSFile> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(OSSFile::getId,id);
|
||||
@@ -490,7 +513,10 @@ public class CommonController {
|
||||
InputStream download = CosBootUtil.download(filePath);
|
||||
File file = new File(filePath);
|
||||
//水印内容
|
||||
String waterContent = "water mark";//临时定义(水印信息通过传过来)
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
String currentTime = sdf.format(new Date());
|
||||
String waterContent = userName+" "+currentTime;
|
||||
// String waterContent = "water mark";//临时定义(水印信息通过传过来)
|
||||
File newFile = PDFUtils.PDFWatermark(download,uploadpath,file.getName(),waterContent);
|
||||
// 文件名称
|
||||
fileName = file.getName();
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ public interface SysDictItemMapper extends BaseMapper<SysDictItem> {
|
||||
@Select("SELECT sys_dict_item.* FROM sys_dict_item LEFT JOIN sys_dict ON sys_dict_item.dict_id = sys_dict.id WHERE sys_dict_item.DEL_FLAG = 0 and DICT_CODE = #{dictCode} order by sort_order asc, item_value asc")
|
||||
public List<SysDictItem> selectItemsByDictCode(String dictCode);
|
||||
|
||||
@Select("SELECT sys_dict_item.* FROM sys_dict_item LEFT JOIN sys_dict ON sys_dict_item.dict_id = sys_dict.id WHERE DICT_CODE = #{dictCode} order by sys_dict_item.sort_order asc")
|
||||
@Select("SELECT sys_dict_item.* FROM sys_dict_item LEFT JOIN sys_dict ON sys_dict_item.dict_id = sys_dict.id WHERE DICT_CODE = #{dictCode} order by sys_dict_item.item_text asc")
|
||||
public List<SysDictItem> selectItemsOrderBySortOrder(String dictCode);
|
||||
|
||||
@Select("SELECT sys_dict.dict_code,sys_dict_item.* from sys_dict_item LEFT JOIN sys_dict ON sys_dict_item.dict_id = sys_dict.id where status = 1")
|
||||
|
||||
+2
-2
@@ -195,8 +195,8 @@ public class SyncDataServiceImpl implements ISyncDataService{
|
||||
ppEmployeeList.addAll(currentPPEmployeeList);
|
||||
}
|
||||
}
|
||||
// 处理同步过来的数据id不同,username相同的情况
|
||||
ppEmployeeList.sort(Comparator.comparing(PPEmployee::getCreation_time).reversed());
|
||||
// 处理同步过来的数据id不同,username相同的情况 creation_time不能为空
|
||||
// ppEmployeeList.sort(Comparator.comparing(PPEmployee::getCreation_time).reversed());
|
||||
|
||||
//此处获取全部pp用户信息
|
||||
List<SysUser> sysUserList = sysUserService.getPPEmployeeList();
|
||||
|
||||
+2
-2
@@ -73,9 +73,9 @@ public class PDFUtils {
|
||||
PdfTilingBrush brush = new PdfTilingBrush(dimension2D);
|
||||
brush.getGraphics().setTransparency(0.4F);
|
||||
brush.getGraphics().save();
|
||||
brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 5, (float) brush.getSize().getHeight() / 5);
|
||||
brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 1.5, (float) brush.getSize().getHeight() / 3);
|
||||
brush.getGraphics().rotateTransform(-45);
|
||||
brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 15),
|
||||
brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 10),
|
||||
PdfBrushes.getViolet(), 0 , 0 , new PdfStringFormat(PdfTextAlignment.Center));
|
||||
brush.getGraphics().restore();
|
||||
brush.getGraphics().setTransparency(1);
|
||||
|
||||
+36
-7
@@ -4974,9 +4974,20 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
File saveDirectory,
|
||||
String cut) {
|
||||
//树形数据字典
|
||||
List<String> treeNameList = categoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
|
||||
List<String> treeNameList = new ArrayList<>();
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
treeNameList = categoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
|
||||
}else{
|
||||
treeNameList = categoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList());
|
||||
}
|
||||
//普通数据字典
|
||||
List<String> itemNameList = dictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||
List<String> itemNameList = new ArrayList<>();
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
itemNameList = dictItemList.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||
}else{
|
||||
itemNameList = dictItemList.stream().map(SysDictItem::getEnName).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
int i = 2;
|
||||
List<String> msgList = new ArrayList<>();
|
||||
List<Map<String, Object>> mapList = new ArrayList<>();
|
||||
@@ -5074,11 +5085,18 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
for (String valueTemp : value.split(",")) {
|
||||
if (treeNameList.contains(valueTemp)) {
|
||||
List<SysCategory> collect = categoryList.stream().filter(e -> e.getName().equals(valueTemp)).collect(Collectors.toList());
|
||||
valueId += collect.get(0).getId();
|
||||
List<SysCategory> collect = new ArrayList<>();
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
collect = categoryList.stream().filter(e -> e.getName().equals(valueTemp)).collect(Collectors.toList());
|
||||
}else{
|
||||
collect = categoryList.stream().filter(e -> e.getEnName().equals(valueTemp)).collect(Collectors.toList());
|
||||
}
|
||||
valueId += collect.get(0).getId()+",";
|
||||
}
|
||||
}
|
||||
value = valueId;
|
||||
if(StringUtils.isNotBlank(valueId)){
|
||||
value = valueId.substring(0, valueId.length() - 1);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (FieldTypeEnum.TEXT_STRING.getValue().equals(fieldShowType)) {
|
||||
@@ -5150,7 +5168,12 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
//文字转数据字典编码
|
||||
if (itemNameList.contains(value)) {
|
||||
String finalValue = value;
|
||||
List<SysDictItem> collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(finalValue)).collect(Collectors.toList());
|
||||
List<SysDictItem> collect = new ArrayList<>();
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(finalValue)).collect(Collectors.toList());
|
||||
}else{
|
||||
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getEnName()) && e.getEnName().equals(finalValue)).collect(Collectors.toList());
|
||||
}
|
||||
if (collect.size() != 0) {
|
||||
value = collect.get(0).getItemValue();
|
||||
}
|
||||
@@ -5193,7 +5216,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
||||
if (StringUtils.isNotBlank(value)) {
|
||||
for (String valueTemp : value.split(",")) {
|
||||
if (itemNameList.contains(valueTemp)) {
|
||||
List<SysDictItem> collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(valueTemp)).collect(Collectors.toList());
|
||||
List<SysDictItem> collect = new ArrayList<>();
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getItemText()) && e.getItemText().equals(valueTemp)).collect(Collectors.toList());
|
||||
}else{
|
||||
collect = dictItemList.stream().filter(e -> StringUtils.isNotBlank(e.getEnName()) && e.getEnName().equals(valueTemp)).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
valueId += collect.get(0).getItemValue() + ",";
|
||||
}
|
||||
}
|
||||
|
||||
+18
@@ -201,6 +201,10 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@Dict(dicCode ="ze2_ren4_ren2")
|
||||
private java.lang.String designDuty;
|
||||
|
||||
//交付物说明
|
||||
@Excel(name = "设计符合性确认-交付物说明", width = 20)
|
||||
private String designRemark;
|
||||
|
||||
/**prehomo确认-交付物类型*/
|
||||
@Excel(name = "Prehomo-交付物类型", width = 15,dicCode ="deliverable_template")
|
||||
@ApiModelProperty(value = "prehomo确认-交付物类型")
|
||||
@@ -209,6 +213,7 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@TableField(exist = false)
|
||||
private java.lang.String prehomoDeliverableTypeName;
|
||||
|
||||
|
||||
/**prehomo确认-交付物模板*/
|
||||
|
||||
@ApiModelProperty(value = "prehomo确认-交付物模板")
|
||||
@@ -230,6 +235,10 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@Dict(dicCode ="ze2_ren4_ren2")
|
||||
private java.lang.String prehomoDuty;
|
||||
|
||||
//prehomo确认-交付物说明
|
||||
@Excel(name = "prehomo确认-交付物说明", width = 20)
|
||||
private String prehomoRemark;
|
||||
|
||||
/**验证符合性确认-交付物类型*/
|
||||
@Excel(name = "验证-交付物类型", width = 15,dicCode ="deliverable_template")
|
||||
@ApiModelProperty(value = "验证符合性确认-交付物类型")
|
||||
@@ -259,6 +268,10 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
@Dict(dicCode ="ze2_ren4_ren2")
|
||||
private java.lang.String verifyDuty;
|
||||
|
||||
//验证备注
|
||||
@Excel(name = "验证符合性确认-交付物说明", width = 20)
|
||||
private String verifyRemark;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
|
||||
@@ -273,4 +286,9 @@ public class DummyInventoryInfoEO implements Serializable {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+39
-21
@@ -82,11 +82,11 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
/**适用地区*/
|
||||
@ApiModelProperty(value = "适用地区")
|
||||
@Dict(dicCode ="region")
|
||||
@Excel(name = "Area", width = 15, dicCode = "region")
|
||||
@Excel(name = "Area", width = 15)
|
||||
private String region;
|
||||
|
||||
/**适用范围*/
|
||||
@Excel(name = "Scope of application", width = 15, dicCode = "apply_scope")
|
||||
@Excel(name = "Scope of application", width = 30, dicCode = "apply_scope")
|
||||
@ApiModelProperty(value = "适用范围")
|
||||
@Dict(dicCode ="apply_scope")
|
||||
private String shi4Yong4Fan4Wei2;
|
||||
@@ -111,7 +111,7 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String implementType;
|
||||
|
||||
/**新车型实施日期*/
|
||||
@Excel(name = "New Type Execute Date", width = 15,format = "yyyy-MM-dd")
|
||||
@Excel(name = "New Type Execute Date", width = 30,format = "yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "新车型实施日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@@ -120,7 +120,7 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String xin1Che1Xing2Shi2Shi1Ri4Qi1String;
|
||||
|
||||
/**在产车实施日期*/
|
||||
@Excel(name = "New Vehicle Execute Date", width = 15,format = "yyyy-MM-dd")
|
||||
@Excel(name = "New Vehicle Execute Date", width = 30,format = "yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "在产车实施日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@@ -134,25 +134,25 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String wvtaId;
|
||||
|
||||
/**认证类型*/
|
||||
@Excel(name = "Certification Type", width = 15,dicCode ="attestation_type")
|
||||
@Excel(name = "Certification Type", width = 30,dicCode ="attestation_type")
|
||||
@ApiModelProperty(value = "认证类型")
|
||||
@Dict(dicCode ="attestation_type")
|
||||
private String attestationType;
|
||||
|
||||
/**认证级别*/
|
||||
@Excel(name = "Certification Level", width = 15,dicCode ="attestation_rank")
|
||||
@Excel(name = "Certification Level", width = 30,dicCode ="attestation_rank")
|
||||
@ApiModelProperty(value = "认证级别")
|
||||
@Dict(dicCode ="attestation_rank")
|
||||
private String attestationRank;
|
||||
|
||||
/**适用增补件*/
|
||||
@ApiModelProperty(value = "适用增补件")
|
||||
@Excel(name = "Applicable Supplement", width = 15)
|
||||
@Excel(name = "Applicable Supplement", width = 30)
|
||||
private String applicableSupplement;
|
||||
|
||||
|
||||
/**技术领域*/
|
||||
@Excel(name = "Technical Field", width = 15)
|
||||
@Excel(name = "Technical Field", width = 30)
|
||||
@ApiModelProperty(value = "技术领域")
|
||||
private String technologyTerritory;
|
||||
|
||||
@@ -160,7 +160,7 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String technologyTerritoryName;
|
||||
|
||||
/**责任领域*/
|
||||
@Excel(name = "Responsible Field", width = 15,dicCode ="duty_territory")
|
||||
@Excel(name = "Responsible Field", width = 30,dicCode ="duty_territory")
|
||||
@ApiModelProperty(value = "责任领域")
|
||||
@Dict(dicCode ="duty_territory")
|
||||
private String dutyTerritory;
|
||||
@@ -171,7 +171,7 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String remark;
|
||||
|
||||
/**设计符合性确认-交付物类型*/
|
||||
@Excel(name = "Design-Deliverables", width = 15,dicCode ="deliverable_template")
|
||||
@Excel(name = "Design Deliverables", width = 30,dicCode ="deliverable_template")
|
||||
@ApiModelProperty(value = "设计符合性确认-交付物类型")
|
||||
@Dict(dicCode ="deliverable_template")
|
||||
private String designDeliverableType;
|
||||
@@ -182,23 +182,28 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String designDeliverableTemplate;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "Design-Deliverable Template", width = 15)
|
||||
@Excel(name = "Design Deliverable Template", width = 30)
|
||||
private String designDeliverableTemplateName;
|
||||
|
||||
|
||||
/**设计符合性确认-发起人*/
|
||||
@Excel(name = "Design-Initiator", width = 15)
|
||||
@Excel(name = "Design Initiator", width = 30)
|
||||
@ApiModelProperty(value = "设计符合性确认-发起人")
|
||||
@Dict(dicCode ="fa1_qi3_ren2")
|
||||
private String designInitiator;
|
||||
|
||||
/**设计符合性确认-责任人*/
|
||||
@Excel(name = "Design-Assignee", width = 15)
|
||||
@Excel(name = "Design Assignee", width = 30)
|
||||
@ApiModelProperty(value = "设计符合性确认-责任人")
|
||||
@Dict(dicCode ="ze2_ren4_ren2")
|
||||
private String designDuty;
|
||||
|
||||
//交付物说明
|
||||
@Excel(name = "Design Compliance Check Deliverable Description", width = 50)
|
||||
private String designRemark;
|
||||
|
||||
/**prehomo确认-交付物类型*/
|
||||
@Excel(name = "Prehomo-Deliverables", width = 15,dicCode ="deliverable_template")
|
||||
@Excel(name = "Prehomo Deliverables", width = 30,dicCode ="deliverable_template")
|
||||
@ApiModelProperty(value = "prehomo确认-交付物类型")
|
||||
@Dict(dicCode ="deliverable_template")
|
||||
private String prehomoDeliverableType;
|
||||
@@ -209,23 +214,27 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String prehomoDeliverableTemplate;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "Prehomo-Deliverable Template", width = 15)
|
||||
@Excel(name = "Prehomo Deliverable Template", width = 30)
|
||||
private String prehomoDeliverableTemplateName;
|
||||
|
||||
/**prehomo确认-发起人*/
|
||||
@Excel(name = "Prehomo-Initiator", width = 15)
|
||||
@Excel(name = "Prehomo Initiator", width = 30)
|
||||
@ApiModelProperty(value = "prehomo确认-发起人")
|
||||
@Dict(dicCode ="fa1_qi3_ren2")
|
||||
private String prehomoInitiator;
|
||||
|
||||
/**prehomo确认-责任人*/
|
||||
@Excel(name = "Prehomo-Assignee", width = 15)
|
||||
@Excel(name = "Prehomo Assignee", width = 30)
|
||||
@ApiModelProperty(value = "prehomo确认-责任人")
|
||||
@Dict(dicCode ="ze2_ren4_ren2")
|
||||
private String prehomoDuty;
|
||||
|
||||
//prehomo确认-交付物说明
|
||||
@Excel(name = "Prehomo Check Deliverable Description", width = 50)
|
||||
private String prehomoRemark;
|
||||
|
||||
/**验证符合性确认-交付物类型*/
|
||||
@Excel(name = "Verify-Deliverables", width = 15,dicCode ="deliverable_template")
|
||||
@Excel(name = "Verify Deliverables", width = 30,dicCode ="deliverable_template")
|
||||
@ApiModelProperty(value = "验证符合性确认-交付物类型")
|
||||
@Dict(dicCode ="deliverable_template")
|
||||
private String verifyDeliverableType;
|
||||
@@ -235,21 +244,25 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
private String verifyDeliverableTemplate;
|
||||
|
||||
@TableField(exist = false)
|
||||
@Excel(name = "Verify-Deliverable Template", width = 15)
|
||||
@Excel(name = "Verify Deliverable Template", width = 30)
|
||||
private String verifyDeliverableTemplateName;
|
||||
|
||||
/**验证符合性确认-发起人*/
|
||||
@Excel(name = "Verify-Initiator", width = 15)
|
||||
@Excel(name = "Verify Initiator", width = 30)
|
||||
@ApiModelProperty(value = "验证符合性确认-发起人")
|
||||
@Dict(dicCode ="fa1_qi3_ren2")
|
||||
private String verifyInitiator;
|
||||
|
||||
/**验证符合性确认-责任人*/
|
||||
@Excel(name = "Verify-Assignee", width = 15)
|
||||
@Excel(name = "Verify Assignee", width = 30)
|
||||
@ApiModelProperty(value = "验证符合性确认-责任人")
|
||||
@Dict(dicCode ="ze2_ren4_ren2")
|
||||
private String verifyDuty;
|
||||
|
||||
///验证-交付物说明
|
||||
@Excel(name = "Validation Compliance Check Deliverable Description", width = 60)
|
||||
private String verifyRemark;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String cut;
|
||||
|
||||
@@ -264,4 +277,9 @@ public class DummyInventoryInfoEOEn implements Serializable {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
+3
-1
@@ -30,7 +30,6 @@
|
||||
<result column="design_duty" property="designDuty" />
|
||||
<result column="prehomo_deliverable_type" property="prehomoDeliverableType" />
|
||||
<result column="prehomo_deliverable_template" property="prehomoDeliverableTemplate" />
|
||||
<result column="prehomo_initiator" property="prehomoInitiator" />
|
||||
<result column="prehomo_duty" property="prehomoDuty" />
|
||||
<result column="verify_deliverable_type" property="verifyDeliverableType" />
|
||||
<result column="verify_deliverable_template" property="verifyDeliverableTemplate" />
|
||||
@@ -38,5 +37,8 @@
|
||||
<result column="verify_duty" property="verifyDuty" />
|
||||
<result column="region" property="region" />
|
||||
<result column="applicable_supplement" property="applicableSupplement" />
|
||||
<result column="verify_remark" property="verifyRemark" />
|
||||
<result column="prehomo_remark" property="prehomoRemark" />
|
||||
<result column="design_remark" property="designRemark" />
|
||||
</resultMap>
|
||||
</mapper>
|
||||
|
||||
+52
-40
@@ -653,16 +653,18 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
"*认证级别," +"适用增补件,"+
|
||||
"*责任领域,备注," +
|
||||
"设计符合性确认,Pre-homo确认,验证符合性确认";
|
||||
titleTwo = "交付物类型,交付物模板,发起人,责任人,交付物类型,交付物模板,发起人,责任人,交付物类型,交付物模板,发起人,责任人";
|
||||
titleTwo = "交付物类型,交付物模板,发起人,责任人,交付物说明," +
|
||||
"交付物类型,交付物模板,发起人,责任人,交付物说明," +
|
||||
"交付物类型,交付物模板,发起人,责任人,交付物说明";
|
||||
}else{
|
||||
titleOne = "*Number,Sub-Title,Usage," +
|
||||
"WVTA ID,Certification Type," +
|
||||
"*Certification Level," +"Applicable Supplement,"+
|
||||
"*Responsible Field,Comments," +
|
||||
"design compliance check,pre-homo check,validation compliance chech";
|
||||
titleTwo = "type of deliverables,deliverable template,initiator,person liable," +
|
||||
"type of deliverables,deliverable template,initiator,person liable," +
|
||||
"type of deliverables,deliverable template,initiator,person liable";
|
||||
"Design compliance check,Pre-homo check,Validation compliance chech";
|
||||
titleTwo = "Type of deliverables,Deliverable template,Initiator,Person liable,Deliverables description," +
|
||||
"Type of deliverables,Deliverable template,Initiator,Person liable,Deliverables description," +
|
||||
"Type of deliverables,Deliverable template,Initiator,Person liable,Deliverables description";
|
||||
}
|
||||
|
||||
|
||||
@@ -694,7 +696,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
int count = 1;
|
||||
int startLine = 0;
|
||||
int endLine = 0;
|
||||
int line = 3;
|
||||
int line = 4;
|
||||
for (int i = 0; i < index; i++) {
|
||||
//合并单元格
|
||||
CellRangeAddress region1 =
|
||||
@@ -716,7 +718,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
count ++;
|
||||
}
|
||||
CellRangeAddress region =
|
||||
new CellRangeAddress(2, 2, 0, 20); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||
new CellRangeAddress(2, 2, 0, 23); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||
sheet.addMergedRegion(region);
|
||||
String explain= "";
|
||||
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
|
||||
@@ -751,7 +753,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
row.createCell(lineTemp).setCellValue(headerArr[m]);
|
||||
Cell cell = row.getCell(lineTemp);
|
||||
cell.setCellStyle(cellStyle);
|
||||
lineTemp = lineTemp + 4;
|
||||
lineTemp = lineTemp + 5;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -916,15 +918,17 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
String title = "";
|
||||
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
|
||||
title = "*编号,子标题,实施类别,WVTA ID,认证类型,*认证级别,适用增补件,*责任领域,备注," +
|
||||
"设计交付物类型,设计交付物模板,设计发起人,设计责任人,pre交付物类型,pre交付物模板,pre发起人,pre责任人,验证交付物类型,验证交付物模板,验证发起人,验证责任人";
|
||||
"设计交付物类型,设计交付物模板,设计发起人,设计责任人,设计交付物说明," +
|
||||
"Pre交付物类型,Pre交付物模板,Pre发起人,Pre责任人,Pre交付物说明," +
|
||||
"验证交付物类型,验证交付物模板,验证发起人,验证责任人,验证交付物说明";
|
||||
}else{
|
||||
title = "*Number,Sub-Title,Usage," +
|
||||
"WVTA ID,Certification Type," +
|
||||
"*Certification Level," +"Applicable Supplement,"+
|
||||
"*Responsible Field,Comments," +
|
||||
"design type of deliverables,design deliverable template,design initiator,design person liable," +
|
||||
"pre type of deliverables,pre deliverable template,pre initiator,pre person liable," +
|
||||
"verify type of deliverables,verify deliverable template,verify initiator,verify person liable";
|
||||
"Design Type of deliverables,Design Deliverable template,Design Initiator,Design Person liable,Design Deliverables description," +
|
||||
"Pre Type of deliverables,Pre Deliverable template,Pre Initiator,Pre Person liable,Pre Deliverables description," +
|
||||
"Verify Type of deliverables,Verify Deliverable template,Verify Initiator,Verify Person liable,Verify Deliverables description";
|
||||
}
|
||||
|
||||
int pos = file.getOriginalFilename().lastIndexOf(".");
|
||||
@@ -1046,27 +1050,27 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
}else if(i == 1){
|
||||
if(j > 8){
|
||||
String flag = "";
|
||||
if(8 < j && j < 13){
|
||||
if(8 < j && j < 14){
|
||||
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
|
||||
flag ="设计";
|
||||
}else{
|
||||
flag ="design ";
|
||||
flag ="Design ";
|
||||
}
|
||||
key = flag + headerCell.getStringCellValue();
|
||||
}
|
||||
if(12 < j && j < 17){
|
||||
if(13 < j && j < 19){
|
||||
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
|
||||
flag ="pre";
|
||||
flag ="Pre";
|
||||
}else{
|
||||
flag ="pre ";
|
||||
flag ="Pre ";
|
||||
}
|
||||
key = flag + headerCell.getStringCellValue();
|
||||
}
|
||||
if(16 < j && j < 21){
|
||||
if(18 < j && j < 24){
|
||||
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
|
||||
flag ="验证";
|
||||
}else{
|
||||
flag ="verify ";
|
||||
flag ="Verify ";
|
||||
}
|
||||
key = flag + headerCell.getStringCellValue();
|
||||
|
||||
@@ -1469,10 +1473,12 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
//存在文档库没有的数据
|
||||
List<String> collect = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
|
||||
List<String> serialNumbers = serialNumberS.stream().filter(e -> !collect.contains(e)).collect(Collectors.toList());
|
||||
if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){
|
||||
throw new JeroBootException(StringUtils.join(serialNumbers,",")+"文档库中不存在,不能添加");
|
||||
}else{
|
||||
throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the document library and cannot be added");
|
||||
if(serialNumbers.size() != 0){
|
||||
if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){
|
||||
throw new JeroBootException(StringUtils.join(serialNumbers,",")+"文档库中不存在,不能添加");
|
||||
}else{
|
||||
throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the document library and cannot be added");
|
||||
}
|
||||
}
|
||||
}
|
||||
if(dummyInventoryInfoEOList.size() > 0){
|
||||
@@ -1718,18 +1724,21 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
case "设计交付物模板": return "designDeliverableTemplate";
|
||||
case "设计发起人": return "designInitiator";
|
||||
case "设计责任人": return "designDuty";
|
||||
case "pre交付物类型": return "prehomoDeliverableType";
|
||||
case "pre交付物模板": return "prehomoDeliverableTemplate";
|
||||
case "pre发起人": return "prehomoInitiator";
|
||||
case "pre责任人": return "prehomoDuty";
|
||||
case "设计交付物说明": return "designRemark";
|
||||
case "Pre交付物类型": return "prehomoDeliverableType";
|
||||
case "Pre交付物模板": return "prehomoDeliverableTemplate";
|
||||
case "Pre发起人": return "prehomoInitiator";
|
||||
case "Pre责任人": return "prehomoDuty";
|
||||
case "Pre交付物说明": return "prehomoRemark";
|
||||
case "验证交付物类型": return "verifyDeliverableType";
|
||||
case "验证交付物模板": return "verifyDeliverableTemplate";
|
||||
case "验证发起人": return "verifyInitiator";
|
||||
case "验证责任人": return "verifyDuty";
|
||||
case "验证交付物说明": return "verifyRemark";
|
||||
|
||||
|
||||
case "*Number": return "serialNumber";
|
||||
case "title": return "title";
|
||||
case "Title": return "title";
|
||||
case "Sub-Title": return "subtitle";
|
||||
// case "适用范围": return "shi4Yong4Fan4Wei2";
|
||||
// case "状态": return "state";
|
||||
@@ -1745,18 +1754,21 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
|
||||
case "*Responsible Field": return "dutyTerritory";
|
||||
// case "适用地区": return "region";
|
||||
case "Comments": return "remark";
|
||||
case "design type of deliverables": return "designDeliverableType";
|
||||
case "design deliverable template": return "designDeliverableTemplate";
|
||||
case "design initiator": return "designInitiator";
|
||||
case "design person liable": return "designDuty";
|
||||
case "pre type of deliverables": return "prehomoDeliverableType";
|
||||
case "pre deliverable template": return "prehomoDeliverableTemplate";
|
||||
case "pre initiator": return "prehomoInitiator";
|
||||
case "pre person liable": return "prehomoDuty";
|
||||
case "verify type of deliverables": return "verifyDeliverableType";
|
||||
case "verify deliverable template": return "verifyDeliverableTemplate";
|
||||
case "verify initiator": return "verifyInitiator";
|
||||
case "verify person liable": return "verifyDuty";
|
||||
case "Design Type of deliverables": return "designDeliverableType";
|
||||
case "Design Deliverable template": return "designDeliverableTemplate";
|
||||
case "Design Initiator": return "designInitiator";
|
||||
case "Design Person liable": return "designDuty";
|
||||
case "Design Deliverables description": return "designRemark";
|
||||
case "Pre Type of deliverables": return "prehomoDeliverableType";
|
||||
case "Pre Deliverable template": return "prehomoDeliverableTemplate";
|
||||
case "Pre Initiator": return "prehomoInitiator";
|
||||
case "Pre Person liable": return "prehomoDuty";
|
||||
case "Pre Deliverables description": return "prehomoRemark";
|
||||
case "Verify Type of deliverables": return "verifyDeliverableType";
|
||||
case "Verify Deliverable template": return "verifyDeliverableTemplate";
|
||||
case "Verify Initiator": return "verifyInitiator";
|
||||
case "Verify Person liable": return "verifyDuty";
|
||||
case "Verify Deliverables description": return "verifyRemark";
|
||||
default: return null;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -71,7 +71,7 @@ public class ProjectLawsInventoryEOEn implements Serializable {
|
||||
private String serialNumber;
|
||||
|
||||
/**标题*/
|
||||
@Excel(name = "title", width = 20)
|
||||
@Excel(name = "Title", width = 20)
|
||||
@ApiModelProperty(value = "标题")
|
||||
private String title;
|
||||
|
||||
@@ -101,7 +101,7 @@ public class ProjectLawsInventoryEOEn implements Serializable {
|
||||
/**适用地区*/
|
||||
@ApiModelProperty(value = "适用地区")
|
||||
@Dict(dicCode ="Area")
|
||||
@Excel(name = "Area", width = 15, dicCode = "region")
|
||||
@Excel(name = "Area", width = 15)
|
||||
private String region;
|
||||
|
||||
/**对应标准*/
|
||||
|
||||
+5
-3
@@ -71,7 +71,7 @@ public class InventoryAffirmJob implements Job {
|
||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.selectList(queryWrapper);
|
||||
|
||||
if(CollectionUtils.isNotEmpty(projectLibraryBaseList)){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
Date currentDate = new Date();
|
||||
|
||||
@@ -134,8 +134,10 @@ public class InventoryAffirmJob implements Job {
|
||||
|
||||
/*String msgContentCN = "您" + projectLibraryBase.getProjectName() + "(项目名称)法规清单的任务确认剩余处理时间还有3天,请及时查看处理";*/
|
||||
// XXX .
|
||||
String msgContentEN = "The remaining processing time for the regulation list confirmation of"
|
||||
+ projectNameInfoEO.getProjectName()
|
||||
String msgContentEN = "The remaining processing time for the regulation list confirmation of "
|
||||
+ projectNameInfoEO.getProjectName() + "-"
|
||||
+ projectYearNameInfoEO.getYearName()+ " "
|
||||
+ projectLibraryBase.getTargetMarket()
|
||||
+ " are 3 days. Please check and handle it in time.";
|
||||
|
||||
//飞书跳转链接
|
||||
|
||||
+4
-2
@@ -74,7 +74,7 @@ public class PrehomoJob implements Job {
|
||||
queryWrapper.lambda().in(ProjectLibraryBase::getId,projectLibraryIdList);
|
||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.selectList(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(projectLibraryBaseList)){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
Date currentDate = new Date();
|
||||
|
||||
@@ -137,7 +137,9 @@ public class PrehomoJob implements Job {
|
||||
//您XXX(项目名称)中GB 7258的Pre-Homo确认剩余处理时间还有3天,请及时查看处理
|
||||
//The remaining processing time for the Pre-Homo confirmation of GB 7258 in XXX (project name) is 3 days. Please check and handle it in time.
|
||||
String msgContentEN = "The remaining processing time for the Pre-Homo confirmation of "
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + "-"
|
||||
+ projectYearNameInfoEO.getYearName()+ " "
|
||||
+ projectLibraryBase.getTargetMarket()
|
||||
+ " are 3 days. Please check and handle it in time.";
|
||||
|
||||
//飞书跳转链接
|
||||
|
||||
+4
-2
@@ -73,7 +73,7 @@ public class VerifyComplianceJob implements Job {
|
||||
queryWrapper.lambda().in(ProjectLibraryBase::getId,projectLibraryIdList);
|
||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.selectList(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(projectLibraryBaseList)){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
Date currentDate = new Date();
|
||||
|
||||
@@ -135,7 +135,9 @@ public class VerifyComplianceJob implements Job {
|
||||
//您XXX(项目名称)中GB 7258的验证符合性确认剩余处理时间还有3天,请及时查看处理
|
||||
//The remaining processing time for the Verify compliance confirmation of GB 7258 in XXX (project name) is 3 days. Please check and handle it in time.
|
||||
String msgContentEN = "The remaining processing time for the validation compliance confirmation of "
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + "-"
|
||||
+ projectYearNameInfoEO.getYearName()+ " "
|
||||
+ projectLibraryBase.getTargetMarket()
|
||||
+ " are 3 days. Please check and handle it in time.";
|
||||
|
||||
//飞书跳转链接
|
||||
|
||||
+3
-1
@@ -73,7 +73,7 @@ public class designComplianceJob implements Job {
|
||||
queryWrapper.lambda().in(ProjectLibraryBase::getId,projectLibraryIdList);
|
||||
List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseMapper.selectList(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(projectLibraryBaseList)){
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
Date currentDate = new Date();
|
||||
|
||||
@@ -137,6 +137,8 @@ public class designComplianceJob implements Job {
|
||||
//您XXX(项目名称)中GB 7258的设计符合性确认剩余处理时间还有3天,请及时查看处理
|
||||
String msgContentEN = "The remaining processing time for the design compliance confirmation for "
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
+ projectYearNameInfoEO.getYearName()+ " "
|
||||
+ projectLibraryBase.getTargetMarket()
|
||||
+ " are 3 days. Please check and address it in a timely manner.";
|
||||
|
||||
//飞书跳转链接
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@
|
||||
</if>
|
||||
AND sd.dict_code = #{dictCode}
|
||||
</where>
|
||||
ORDER BY sdi.sort_order
|
||||
ORDER BY sdi.item_text ASC
|
||||
</select>
|
||||
|
||||
<select id="queryById" resultType="com.jero.modules.project.entity.ProjectRelatedPersonnel">
|
||||
|
||||
+18
-1
@@ -2929,8 +2929,14 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
fileTemp.mkdirs();
|
||||
//文件
|
||||
exportFile(dataList,fileInfos);
|
||||
String excelName = "";
|
||||
if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){
|
||||
excelName = "法规清单.xlsx";
|
||||
}else{
|
||||
excelName = "Regulation List.xlsx";
|
||||
}
|
||||
//excel
|
||||
OutputStream excelOS = new FileOutputStream(path + File.separator + "法规清单.xlsx");
|
||||
OutputStream excelOS = new FileOutputStream(path + File.separator + excelName);
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setType(ExcelType.XSSF);
|
||||
if(CutEnum.CN.getValue().equals(projectLawsInventoryEO.getCut())){
|
||||
@@ -3069,6 +3075,17 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
if(StringUtils.isNotBlank(pullVerifyDeliverableType)){
|
||||
projectLawsInventoryEOEn.setVerifyDeliverableType(pullVerifyDeliverableType);
|
||||
}
|
||||
//清单确认状态
|
||||
String inventoryAffirmStatus = projectLawsInventoryEOEn.getInventoryAffirmStatus();
|
||||
if(StringUtils.isNotBlank(inventoryAffirmStatus)){
|
||||
projectLawsInventoryEOEn.setInventoryAffirmStatusName(inventoryAffirmStatus);
|
||||
}
|
||||
|
||||
//任务确认状态
|
||||
String taskAffirmStatus = projectLawsInventoryEOEn.getTaskAffirmStatus();
|
||||
if(StringUtils.isNotBlank(taskAffirmStatus)){
|
||||
projectLawsInventoryEOEn.setTaskAffirmStatusName(taskAffirmStatus);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
@@ -211,6 +211,16 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
*/
|
||||
@Override
|
||||
public void checkData(String id, String cut) {
|
||||
//判断该条项目是否是自己创建,如果不是则不能删除
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<ProjectLibraryBase> projectLibraryBases = this.queryById(id);
|
||||
if(!loginUser.getUsername().equals(projectLibraryBases.get(0).getCreateBy())){
|
||||
if(CutEnum.CN.getValue().equals(cut)){
|
||||
throw new JeroBootException("该条项目非本人创建,不能删除");
|
||||
}else{
|
||||
throw new JeroBootException("This item is not created by myself and cannot be deleted");
|
||||
}
|
||||
}
|
||||
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryQueryWrapper = new QueryWrapper<>();
|
||||
lawsInventoryQueryWrapper.eq("project_library_id",id);
|
||||
List<ProjectLawsInventoryEO> lawsInventoryRecords = projectLawsInventoryEOMapper.selectList(lawsInventoryQueryWrapper);
|
||||
|
||||
+17
-18
@@ -1063,8 +1063,6 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if (CollectionUtils.isNotEmpty(certificationEngineerNameList) && StringUtils.isNotBlank(certificationEngineerNameList.get(0))) {
|
||||
certificationEngineerNameList = certificationEngineerNameList.stream().distinct().collect(Collectors.toList());
|
||||
certificationEngineerUsers=sysUserService.queryUserIdListByNameList(certificationEngineerNameList);
|
||||
@@ -1139,28 +1137,29 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
|
||||
List<ProjectLibraryBase> baseDataList = projectLibraryBaseService.list(baseQueryWrapper.eq("id", projectId));
|
||||
if (CollectionUtils.isNotEmpty(baseDataList)) {
|
||||
String baseCertificationEngineer = baseDataList.get(0).getCertificationEngineer();
|
||||
List<String> baseCertificationEngineerIdList = Arrays.asList(baseCertificationEngineer.split(","));
|
||||
String certificationEngineerName;
|
||||
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
|
||||
userqueryWrapper.in("id ", baseCertificationEngineerIdList);
|
||||
List<SysUser> userList = sysUserMapper.selectList(userqueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(userList)) {
|
||||
for (String baseUserId : baseCertificationEngineerIdList) {
|
||||
// 判断是否有工程师
|
||||
if (StringUtils.isNotEmpty(baseCertificationEngineer)){
|
||||
List<String> baseCertificationEngineerIdList = Arrays.asList(baseCertificationEngineer.split(","));
|
||||
String certificationEngineerName;
|
||||
QueryWrapper<SysUser> userqueryWrapper = new QueryWrapper<>();
|
||||
userqueryWrapper.in("id ", baseCertificationEngineerIdList);
|
||||
List<SysUser> userList = sysUserMapper.selectList(userqueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(userList)) {
|
||||
for (String baseUserId : baseCertificationEngineerIdList) {
|
||||
|
||||
if (StringUtils.isNotEmpty(baseUserId)) {
|
||||
certificationEngineerName = userList.stream().filter(e -> baseUserId.equals(e.getId()))
|
||||
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
|
||||
ProjectRelatedPersonnel relatedPersonnel =new ProjectRelatedPersonnel();
|
||||
relatedPersonnel.setCertificationEngineer(baseUserId);
|
||||
relatedPersonnel.setCertificationEngineerName(certificationEngineerName);
|
||||
certificationEngineerList.add(relatedPersonnel);
|
||||
if (StringUtils.isNotEmpty(baseUserId)) {
|
||||
certificationEngineerName = userList.stream().filter(e -> baseUserId.equals(e.getId()))
|
||||
.map(sysUser -> sysUser.getUsername()).collect(Collectors.joining(","));
|
||||
ProjectRelatedPersonnel relatedPersonnel =new ProjectRelatedPersonnel();
|
||||
relatedPersonnel.setCertificationEngineer(baseUserId);
|
||||
relatedPersonnel.setCertificationEngineerName(certificationEngineerName);
|
||||
certificationEngineerList.add(relatedPersonnel);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
certificationEngineerList = certificationEngineerList.stream().distinct().collect(Collectors.toList());
|
||||
return certificationEngineerList;
|
||||
|
||||
|
||||
+3
-2
@@ -111,8 +111,9 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsByDictCode("region");
|
||||
for (ProjectLibraryBase libraryBase : projectLibraryBaseList) {
|
||||
targetMarket(projectLibraryBase, dictItemList, libraryBase);
|
||||
Map<String,Object> mapList = new HashMap<>();
|
||||
List<List<TimeNodeVO>> collect = new ArrayList<>();
|
||||
if(ObjectUtils.isNotEmpty(startTime) && ObjectUtils.isNotEmpty(endTime)){
|
||||
@@ -124,7 +125,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
|
||||
if(collect.size() != 0){
|
||||
index ++;
|
||||
mapList.put("index",index);
|
||||
mapList.put("projectName",libraryBase.getProjectName());
|
||||
mapList.put("projectName",libraryBase.getProjectName()+" "+libraryBase.getYearName()+"-"+libraryBase.getTargetMarket());
|
||||
mapList.put("data",collect);
|
||||
result.add(mapList);
|
||||
}
|
||||
|
||||
+49
@@ -76,6 +76,55 @@ public class FileUnZip {
|
||||
return orgMkdirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 解压zip文件
|
||||
* 解决解压文件下有多个文件夹时,读不到orgMkdirs问题
|
||||
* @param sourceFile,待解压的zip文件; descDir,解压后的存放路径
|
||||
* @throws Exception
|
||||
* @author gaoyan
|
||||
**/
|
||||
public static String unZipFiles2(String sourceFile, String descDir) throws IOException {
|
||||
File zipFile = new File(sourceFile);
|
||||
|
||||
File pathFile = new File(descDir);
|
||||
if (!pathFile.exists()) {
|
||||
pathFile.mkdirs();
|
||||
}
|
||||
ZipFile zip = new ZipFile(zipFile,"gbk");
|
||||
String orgMkdirsLast = "";
|
||||
for (Enumeration entries = zip.getEntries(); entries.hasMoreElements(); ) {
|
||||
ZipEntry entry = (ZipEntry) entries.nextElement();
|
||||
String zipEntryName = entry.getName();
|
||||
String outPath = (descDir + "/" + zipEntryName).replaceAll("\\*", "/");
|
||||
orgMkdirsLast = zipEntryName.substring(0, zipEntryName.indexOf('/'));
|
||||
//判断路径是否存在,不存在则创建文件路径
|
||||
File file = new File(outPath.substring(0, outPath.lastIndexOf('/')));
|
||||
if (!file.exists()) {
|
||||
file.mkdirs();
|
||||
}
|
||||
//判断文件全路径是否为文件夹,如果是上面已经上传,不需要解压
|
||||
if (new File(outPath).isDirectory()) {
|
||||
continue;
|
||||
}
|
||||
//输出文件路径信息
|
||||
// InputStream in = null;
|
||||
// OutputStream out = null;
|
||||
try(InputStream in =zip.getInputStream(entry);
|
||||
OutputStream out =new FileOutputStream(outPath)){
|
||||
byte[] buf1 = new byte[1024];
|
||||
int len;
|
||||
while ((len = in.read(buf1)) > 0) {
|
||||
out.write(buf1, 0, len);
|
||||
}
|
||||
}catch(IOException e){
|
||||
logger.error(e.getMessage(),e);
|
||||
}
|
||||
}
|
||||
zip.close();
|
||||
String orgMkdirs = descDir + "/" + orgMkdirsLast;
|
||||
return orgMkdirs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 递归删除文件及文件夹
|
||||
*
|
||||
|
||||
+2
-2
@@ -1484,7 +1484,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
}
|
||||
return Result.error(resultMsg);
|
||||
}
|
||||
String path = uploadpath + "/modal/"+filenameorg;
|
||||
String path = uploadpath + File.separator + "modal" + File.separator + filenameorg + System.currentTimeMillis();
|
||||
File saveDirectory = new File(path);
|
||||
if(!saveDirectory.isDirectory()){
|
||||
saveDirectory.mkdir();
|
||||
@@ -1492,7 +1492,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
|
||||
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path +File.separator+ file.getOriginalFilename()));
|
||||
try{
|
||||
//解压缩
|
||||
String zipEntryName = FileUnZip.unZipFiles(path +File.separator+ file.getOriginalFilename(),path);
|
||||
String zipEntryName = FileUnZip.unZipFiles2(path +File.separator+ file.getOriginalFilename(),path);
|
||||
// 数据相关处理,
|
||||
// 1.获取其中的Excel,
|
||||
List<File> excelfilelist = FileUnZip.readExcelFile(zipEntryName);
|
||||
|
||||
@@ -671,6 +671,10 @@ module.exports = {
|
||||
listConfirmation: 'List Confirmation',
|
||||
ListConfirmationDeadline: 'List confirmation deadline',
|
||||
dataConfirmation: 'Please select the data whose list confirmation status is not initiated or rejected, and the regulatory engineer and certification engineer are not empty',
|
||||
pleaseSelectinitiatedOrRejected: 'Please select the data whose list confirmation status is not initiated or rejected',
|
||||
TheEngineerAndCertification: 'The regulatory engineer and Certification Engineer of cannot be blank',
|
||||
PleaseTaskConfirmationRejected: 'Please select the data whose list confirmation status is accepted and task confirmation status is not initiated or rejected',
|
||||
theProjectContactEmpty: 'The project contact person of cannot be empty',
|
||||
pleaseSelectPersonFirst: 'Please select a person first',
|
||||
onlyOnePersonCanBeSelected: 'Only one person can be selected',
|
||||
overrule: 'Overrule',
|
||||
@@ -939,5 +943,6 @@ module.exports = {
|
||||
question: 'Question',
|
||||
ConfirmQuestion: 'Confirm Question',
|
||||
disableInput: 'Disable input',
|
||||
taskConfirmationDeadline: 'Task Confirmation Deadline',
|
||||
OnlyOrTaskconfirmationOut: 'Only when the list confirmation status or task confirmation status is to be confirmed can the reminder be carried out'
|
||||
}
|
||||
@@ -680,7 +680,11 @@ module.exports = {
|
||||
listConfirmation: '清单确认',
|
||||
ListConfirmationDeadline: '清单确认截止时间',
|
||||
dataConfirmation: '请选择清单确认状态为未发起或拒绝的数据,以及法规工程师、认证工程师不为空',
|
||||
pleaseSelectinitiatedOrRejected:'请选择清单确认状态为未发起或拒绝的数据',
|
||||
TheEngineerAndCertification:'的法规工程师、认证工程师不能为空',
|
||||
taskDataConfirmation: '请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据,以及工程接口人不为空',
|
||||
theProjectContactEmpty:'的工程接口人不能为空',
|
||||
PleaseTaskConfirmationRejected:'请选择清单确认状态为接受及任务确认状态为未发起或拒绝的数据',
|
||||
pleaseSelectPersonFirst: '请先选择人员',
|
||||
onlyOnePersonCanBeSelected: '只能选择一个人员',
|
||||
overrule: '驳回',
|
||||
@@ -945,4 +949,5 @@ module.exports = {
|
||||
ConfirmQuestion: '确认催办?',
|
||||
OnlyOrTaskconfirmationOut:'只有清单确认状态或任务确认状态为待确认时才可以进行催办',
|
||||
disableInput:'禁止输入',
|
||||
taskConfirmationDeadline:'任务确认截止时间',
|
||||
}
|
||||
@@ -3,13 +3,20 @@
|
||||
<a-radio v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text }}</a-radio>
|
||||
</a-radio-group>
|
||||
|
||||
<a-radio-group v-else-if="tagType=='radioButton'" buttonStyle="solid" @change="handleInput" :value="getValueSting" :disabled="disabled">
|
||||
<a-radio-group v-else-if="tagType=='radioButton'" buttonStyle="solid" @change="handleInput" :value="getValueSting"
|
||||
:disabled="disabled">
|
||||
<a-radio-button v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text }}</a-radio-button>
|
||||
</a-radio-group>
|
||||
|
||||
<a-select v-else-if="tagType=='select'" allowClear :getPopupContainer = "getPopupContainer" :placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput">
|
||||
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
||||
<a-select-option v-for="(item, key) in dictOptionsValue" :key="key" :value="item.value">
|
||||
<a-select v-else-if="tagType=='select'" allowClear :getPopupContainer="getPopupContainer"
|
||||
show-search
|
||||
optionFilterProp="label"
|
||||
:placeholder="placeholder" :disabled="disabled" :value="getValueSting" @change="handleInput">
|
||||
<!-- <a-select-option :value="null">{{$t('pleaseSelect')}}</a-select-option>-->
|
||||
<a-select-option v-for="(item, key) in dictOptionsValue"
|
||||
:key="key"
|
||||
:label="item.text || item.label"
|
||||
:value="item.value">
|
||||
<span class="itemOption-index" :title=" item.text || item.label ">
|
||||
{{ item.text || item.label }}
|
||||
</span>
|
||||
@@ -18,19 +25,19 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {ajaxGetDictItems,getDictItemsFromCache} from '@/api/api'
|
||||
import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
|
||||
|
||||
export default {
|
||||
name: "JDictSelectTag",
|
||||
name: 'JDictSelectTag',
|
||||
props: {
|
||||
dictCode: String,
|
||||
placeholder: String,
|
||||
triggerChange: Boolean,
|
||||
disabled: Boolean,
|
||||
db_field_name:String,
|
||||
db_field_name: String,
|
||||
value: [String, Number],
|
||||
type: String,
|
||||
getPopupContainer:{
|
||||
getPopupContainer: {
|
||||
type: Function,
|
||||
default: (node) => node.parentNode
|
||||
}
|
||||
@@ -38,36 +45,36 @@
|
||||
data() {
|
||||
return {
|
||||
dictOptions: [],
|
||||
tagType:""
|
||||
tagType: ''
|
||||
}
|
||||
},
|
||||
watch:{
|
||||
dictCode:{
|
||||
immediate:true,
|
||||
watch: {
|
||||
dictCode: {
|
||||
immediate: true,
|
||||
handler() {
|
||||
this.initDictData()
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// console.log(this.dictCode);
|
||||
if(!this.type || this.type==="list"){
|
||||
this.tagType = "select"
|
||||
}else{
|
||||
if (!this.type || this.type === 'list') {
|
||||
this.tagType = 'select'
|
||||
} else {
|
||||
this.tagType = this.type
|
||||
}
|
||||
//获取字典数据
|
||||
// this.initDictData();
|
||||
},
|
||||
computed: {
|
||||
getValueSting(){
|
||||
getValueSting() {
|
||||
// update-begin author:wangshuai date:20200601 for: 不显示placeholder的文字 ------
|
||||
// 当有null或“” placeholder不显示
|
||||
return this.value != null ? this.value.toString() : undefined;
|
||||
return this.value != null ? this.value.toString() : undefined
|
||||
// update-end author:wangshuai date:20200601 for: 不显示placeholder的文字 ------
|
||||
},
|
||||
dictOptionsValue: function () {
|
||||
return this.dictOptions.filter(function (dictOption) {
|
||||
dictOptionsValue: function() {
|
||||
return this.dictOptions.filter(function(dictOption) {
|
||||
return dictOption.value
|
||||
})
|
||||
}
|
||||
@@ -75,8 +82,8 @@
|
||||
methods: {
|
||||
initDictData() {
|
||||
//优先从缓存中读取字典配置
|
||||
if(getDictItemsFromCache(this.dictCode)){
|
||||
this.dictOptions = getDictItemsFromCache(this.dictCode);
|
||||
if (getDictItemsFromCache(this.dictCode)) {
|
||||
this.dictOptions = getDictItemsFromCache(this.dictCode)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -84,34 +91,34 @@
|
||||
ajaxGetDictItems(this.dictCode, null).then((res) => {
|
||||
if (res.success) {
|
||||
// console.log(res.result);
|
||||
this.dictOptions = res.result;
|
||||
this.dictOptions = res.result
|
||||
}
|
||||
})
|
||||
},
|
||||
handleInput(e) {
|
||||
let val;
|
||||
if(this.tagType=="radio"){
|
||||
let val
|
||||
if (this.tagType == 'radio') {
|
||||
val = e.target.value
|
||||
}else{
|
||||
} else {
|
||||
val = e
|
||||
}
|
||||
let content = ''
|
||||
this.dictOptions.forEach(res=>{
|
||||
if (res.value == e){
|
||||
content = res.text || res.label
|
||||
}
|
||||
this.dictOptions.forEach(res => {
|
||||
if (res.value == e) {
|
||||
content = res.text || res.label
|
||||
}
|
||||
})
|
||||
if(this.triggerChange){
|
||||
this.$emit('change', val);
|
||||
}else{
|
||||
this.$emit('input', val);
|
||||
this.$emit('changeQuery', content,this.db_field_name);
|
||||
if (this.triggerChange) {
|
||||
this.$emit('change', val)
|
||||
} else {
|
||||
this.$emit('input', val)
|
||||
this.$emit('changeQuery', content, this.db_field_name)
|
||||
}
|
||||
},
|
||||
setCurrentDictOptions(dictOptions){
|
||||
setCurrentDictOptions(dictOptions) {
|
||||
this.dictOptions = dictOptions
|
||||
},
|
||||
getCurrentDictOptions(){
|
||||
getCurrentDictOptions() {
|
||||
return this.dictOptions
|
||||
}
|
||||
}
|
||||
@@ -124,6 +131,6 @@
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow:ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
@@ -387,7 +387,7 @@
|
||||
return str
|
||||
},
|
||||
handleOk() {
|
||||
if (!this.isNullArray(this.queryParamsModel)) {
|
||||
// if (!this.isNullArray(this.queryParamsModel)) {
|
||||
let event = {
|
||||
matchType: this.matchType,
|
||||
params: this.removeEmptyObject(this.queryParamsModel)
|
||||
@@ -397,9 +397,9 @@
|
||||
this.visible = false
|
||||
}
|
||||
this.emitCallback(event)
|
||||
} else {
|
||||
this.$message.warn(this.$t('CannotQueryEmpty'))
|
||||
}
|
||||
// } else {
|
||||
// this.$message.warn(this.$t('CannotQueryEmpty'))
|
||||
// }
|
||||
},
|
||||
emitCallback(event = {}) {
|
||||
let { params = [], matchType = this.matchType } = event
|
||||
@@ -408,6 +408,9 @@
|
||||
if (Array.isArray(param.val)) {
|
||||
param.val = param.val.join(',')
|
||||
}
|
||||
if (param.type == "Personnel" && !param.val){
|
||||
param.val = ' is null '
|
||||
}
|
||||
}
|
||||
console.debug('---高级查询参数--->', { params, matchType })
|
||||
this.$emit(this.callback, params, matchType)
|
||||
@@ -614,7 +617,6 @@
|
||||
item.val = values[item.popup['destFields']]
|
||||
},
|
||||
PersonnelSelectionChange(value, id,index){
|
||||
console.log(index)
|
||||
this.queryParamsModel[index].val = id
|
||||
this.queryParamsModel[index].valueId = id
|
||||
console.log(this.queryParamsModel)
|
||||
|
||||
@@ -120,6 +120,11 @@
|
||||
this.getData()
|
||||
this.getTableList()
|
||||
})
|
||||
eventBUs.$on('searchGetData', target => {
|
||||
this.selectedRowKeys = []
|
||||
this.getData()
|
||||
this.getTableList()
|
||||
})
|
||||
this.getData()
|
||||
this.getTableList()
|
||||
},
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'file',
|
||||
@@ -65,6 +66,7 @@
|
||||
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
perentHandleFunc(data) {
|
||||
this.myfileList = data
|
||||
if (data && data.length > 0) {
|
||||
@@ -182,7 +184,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix === '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix === '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
|
||||
@@ -30,6 +30,7 @@ import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'file',
|
||||
@@ -66,6 +67,7 @@ export default {
|
||||
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
perentHandleFunc(data) {
|
||||
this.myfileList = data
|
||||
if (data && data.length > 0) {
|
||||
@@ -187,7 +189,7 @@ export default {
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix === '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix === '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
|
||||
@@ -38,6 +38,7 @@ import Vue from 'vue'
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'file',
|
||||
@@ -87,6 +88,7 @@ export default {
|
||||
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
download() {
|
||||
downloadFile('/sys/common/downLoadFile', this.template.templateName, { id: this.template.templateId })
|
||||
},
|
||||
@@ -209,7 +211,7 @@ export default {
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix === '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix === '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
<script>
|
||||
import { Base64 } from 'js-base64'
|
||||
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'viewFileModel',
|
||||
@@ -64,13 +65,14 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
pdfPreview(fileQuery) {
|
||||
let fileName = fileQuery.fileName
|
||||
let index1 = fileName.lastIndexOf('.')
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -82,7 +84,7 @@
|
||||
}
|
||||
},
|
||||
download(item) {
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
|
||||
},
|
||||
clickButtonToUpload(item) {
|
||||
this.loading = true
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="monthlyReportRegulations-box-content">
|
||||
<div class="monthlyReportRegulations-text" v-for="item in 6">
|
||||
<div class="monthlyReportRegulations-text" v-for="item in monthlyReportRegulationsList">
|
||||
<div class="yuan"></div>
|
||||
<div class="text">文档库中新增了新的标准 GB 7258 机动车文件</div>
|
||||
<div class="time">2022-04-04 12:00:00</div>
|
||||
<div class="text" :title="item.name">{{item.name}}</div>
|
||||
<div class="time">{{item.time}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -19,7 +19,37 @@
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'monthlyReportRegulations'
|
||||
name: 'monthlyReportRegulations',
|
||||
data() {
|
||||
return {
|
||||
monthlyReportRegulationsList: [
|
||||
{
|
||||
name: '蔚来汽车法规月报_202201_主页面 CN.docx',
|
||||
time: '2022-01-01 13:24:36'
|
||||
},
|
||||
{
|
||||
name: '蔚来汽车法规月报_202202_主页面 CN.docx',
|
||||
time: '2022-02-01 15:50:06'
|
||||
},
|
||||
{
|
||||
name: '蔚来汽车法规月报_202203_主页面 CN.docx',
|
||||
time: '2022-03-01 13:56:20'
|
||||
},
|
||||
{
|
||||
name: '蔚来汽车法规月报_202204_主页面 CN.docx',
|
||||
time: '2022-04-01 16:24:45'
|
||||
},
|
||||
{
|
||||
name: '蔚来汽车法规月报_202205_主页面 CN.docx',
|
||||
time: '2022-06-01 17:24:06'
|
||||
},
|
||||
{
|
||||
name: '蔚来汽车法规月报_202206_主页面 CN.docx',
|
||||
time: '2022-06-01 17:24:06'
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<div class="myList-box">
|
||||
<div class="header-text">
|
||||
<div class="header-text-left">{{this.$t('myList')}}</div>
|
||||
<div class="header-text-left">{{this.$t('toDoProcess')}}</div>
|
||||
<div class="header-text-right" @click="moreClick">
|
||||
More
|
||||
<img src="../../../assets/gengduo.png" alt="">
|
||||
|
||||
@@ -264,6 +264,7 @@
|
||||
import { getAction, postAction, downFile, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import uploadFile from '@/components/uploadFile/file'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'docIndex',
|
||||
@@ -351,6 +352,7 @@
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
getTitle(callback) {
|
||||
let _id = this.$route.query.documentId === undefined ? this.$route.query.id : this.$route.query.documentId
|
||||
getAction(this.url.getTitle, { id: _id }).then((res) => {
|
||||
@@ -399,7 +401,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -411,7 +413,7 @@
|
||||
}
|
||||
},
|
||||
download(item) {
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
|
||||
},
|
||||
UpdateLog() {
|
||||
this.visible = true
|
||||
|
||||
@@ -151,13 +151,17 @@
|
||||
},
|
||||
//带文件导出
|
||||
handleFileExport() {
|
||||
let query = {
|
||||
...this.$refs.searchRef.queryParam,
|
||||
id: this.idList.join(','),
|
||||
flag: 'file'
|
||||
if (this.idList.length > 0) {
|
||||
let query = {
|
||||
...this.$refs.searchRef.queryParam,
|
||||
id: this.idList.join(','),
|
||||
flag: 'file'
|
||||
}
|
||||
let handlingTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
downloadFile('document/bussDocumentLibraryEO/exportZip', this.$t('DocumentLibrary')+handlingTime+'.zip', query, this.Deselect)
|
||||
}else{
|
||||
this.$message.warning(this.$t('selectLeastOne'))
|
||||
}
|
||||
let handlingTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
downloadFile('document/bussDocumentLibraryEO/exportZip', this.$t('DocumentLibrary')+handlingTime+'.zip', query, this.Deselect)
|
||||
},
|
||||
//新增
|
||||
handleAdd() {
|
||||
@@ -253,7 +257,7 @@
|
||||
getAction(url, { id: val.id }).then((res) => {
|
||||
if (res.success) {
|
||||
_this.$message.success(_this.$t('OperationSuccessful'))
|
||||
eventBUs.$emit('searchReset')
|
||||
eventBUs.$emit('searchGetData')
|
||||
} else {
|
||||
_this.$message.warning(_this.$t('operationFailed'))
|
||||
}
|
||||
@@ -276,7 +280,7 @@
|
||||
getAction(url, { id: val.id }).then((res) => {
|
||||
if (res.success) {
|
||||
_this.$message.success(_this.$t('OperationSuccessful'))
|
||||
eventBUs.$emit('searchReset')
|
||||
eventBUs.$emit('searchGetData')
|
||||
} else {
|
||||
_this.$message.warning(_this.$t('operationFailed'))
|
||||
}
|
||||
|
||||
@@ -96,6 +96,7 @@
|
||||
import Vue from 'vue'
|
||||
import eventBUs from '../../../common/event'
|
||||
import axios from 'axios'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'ocr',
|
||||
@@ -177,6 +178,7 @@
|
||||
|
||||
},
|
||||
methods:{
|
||||
...mapGetters(['userInfo']),
|
||||
initWebSocket: function () {
|
||||
let token = Vue.ls.get(ACCESS_TOKEN)
|
||||
// console.log("------------WebSocket连接成功");
|
||||
@@ -443,7 +445,7 @@
|
||||
},
|
||||
//文件详情跳转
|
||||
detailClick(val){
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + val.attId))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + val.attId+'&userName='+this.userInfo().username))
|
||||
},
|
||||
exportVisible(val){
|
||||
// this.fileVisible=val
|
||||
|
||||
@@ -5,44 +5,46 @@
|
||||
<div class="subscribtion-search-header">
|
||||
<!-- <search :url="url" :flag="'1'"></search>-->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('standard')">
|
||||
<span>{{$t('standard')}}</span>
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('standard')">
|
||||
<span>{{$t('standard')}}</span>
|
||||
</div>
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
|
||||
v-model="queryParams.serialNumber"></a-input>
|
||||
</div>
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('standard')"
|
||||
v-model="queryParams.serialNumber"></a-input>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('title')">
|
||||
<span>{{$t('title')}}</span>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('title')">
|
||||
<span>{{$t('title')}}</span>
|
||||
</div>
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
|
||||
v-model="queryParams.title"></a-input>
|
||||
</div>
|
||||
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
|
||||
v-model="queryParams.title"></a-input>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('status')">
|
||||
<span>{{$t('status')}}</span>
|
||||
</a-col>
|
||||
<a-col :md="6" :sm="8">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text" :title="$t('status')">
|
||||
<span>{{$t('status')}}</span>
|
||||
</div>
|
||||
<j-dict-select-tag class="box-input" v-model="queryParams.state"
|
||||
:placeholder="$t('PleaseSelect')+$t('status')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'state'"/>
|
||||
</div>
|
||||
<j-dict-select-tag class="box-input" v-model="queryParams.state"
|
||||
:placeholder="$t('PleaseSelect')+$t('status')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'state'"/>
|
||||
</div>
|
||||
</a-col>
|
||||
<span style="float: right;overflow: hidden;margin-right: 11px"
|
||||
class="table-page-search-submitButtons">
|
||||
</a-col>
|
||||
<span style="float: right;overflow: hidden;margin-right: 11px"
|
||||
class="table-page-search-submitButtons">
|
||||
<a-col :md="6" :sm="24">
|
||||
<a-button class="box-button" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
|
||||
<a-button class="box-button" style="margin-left: 8px" @click="searchReset">{{$t('reset')}}</a-button>
|
||||
</a-col>
|
||||
</span>
|
||||
</a-row>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,11 +2,10 @@
|
||||
<div class="dic-list">
|
||||
<div class="dic-list-content">
|
||||
<div class="dic-list-header">
|
||||
<a-form :model="queryParams" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||
<a-form :model="queryParams" :label-col="labelCol" @keyup.enter.native="search" :wrapper-col="wrapperCol">
|
||||
<a-form-item :label="$t('name')+':'">
|
||||
<a-input v-if="dictVal=='tree'" v-model="queryParams.name" :placeholder="$t('enterName')"/>
|
||||
<j-input v-if="dictVal=='list'" v-model="queryParams.itemText" :placeholder="$t('enterName')"/>
|
||||
|
||||
<a-input v-if="dictVal=='list'" v-model="queryParams.itemText" :placeholder="$t('enterName')"/>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<div class="form-btn">
|
||||
|
||||
@@ -230,6 +230,7 @@
|
||||
import libraryPush from '@/components/libraryPush/index'
|
||||
import moment from 'moment'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'DocumentLibrary',
|
||||
@@ -376,6 +377,7 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
handleChange() {
|
||||
|
||||
},
|
||||
@@ -677,7 +679,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
|
||||
@@ -90,6 +90,7 @@
|
||||
<script>
|
||||
import { getAction, postAction, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'whole',
|
||||
@@ -130,6 +131,7 @@
|
||||
// }
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
checkedClick(item) {
|
||||
if (item.checked) {
|
||||
this.checkboxText = this.checkboxText.filter(res => {
|
||||
@@ -151,7 +153,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32)))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id.slice(0, 32)+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id.slice(0, 32) + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
</a-select>
|
||||
<a-input
|
||||
:maxLength="100"
|
||||
@keyup.enter.native="onSearch(selectValueTwo)"
|
||||
v-model="selectValueTwo"
|
||||
style="width: calc(100% - 128px)"
|
||||
:placeholder="$t('pleaseEnter')+$t('searchContent')"
|
||||
@@ -21,6 +22,7 @@
|
||||
<a-input
|
||||
v-model="selectValueTwo"
|
||||
:maxLength="100"
|
||||
@keyup.enter.native="wholeOnSearch(selectValueTwo)"
|
||||
v-else-if="active === $t('whole')"
|
||||
class="inputSearch"
|
||||
:placeholder="$t('pleaseEnter')+$t('searchContent')"
|
||||
@@ -32,6 +34,7 @@
|
||||
</a-button>
|
||||
<a-button class="textSearch"
|
||||
v-if="active === $t('whole')"
|
||||
@keyup.enter.native="wholeOnSearch(selectValueTwo)"
|
||||
@click="wholeOnSearch(selectValueTwo)"
|
||||
>{{$t('query')}}
|
||||
</a-button>
|
||||
|
||||
@@ -31,11 +31,15 @@
|
||||
<span class="title-text-text" :title="$t('certificationType')">{{$t('certificationType')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationType"
|
||||
@input="handleInput('attestationType')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationType')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" dictCode="attestation_type"/>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationType')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_type'"/>
|
||||
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
|
||||
<!-- @input="handleInput('attestationType')"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -47,11 +51,15 @@
|
||||
<span class="title-text-text" :title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
@input="handleInput('attestationRank')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" dictCode="attestation_rank"/>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationRank"-->
|
||||
<!-- @input="handleInput('attestationRank')"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('certificationLevel')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" dictCode="attestation_rank"/>-->
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
<span class="title-text-text"
|
||||
:title="$t('certificationType')">{{$t('certificationType')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="certificationType">
|
||||
<a-form-model-item class="itemModel-multi" prop="certificationType">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationType')"
|
||||
:type="'select'"
|
||||
@@ -212,13 +212,11 @@
|
||||
<span class="title-text-text"
|
||||
:title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationRank">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:disabled="disabled"
|
||||
@input="handleInput('attestationRank')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
<a-form-model-item class="itemModel-multi" prop="attestationRank">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator">
|
||||
<div class="table-operator" style="margin-bottom: 16px">
|
||||
<!-- 导入-->
|
||||
<!-- <div class="operator-text"-->
|
||||
<!-- style="float: left;font-size: 16px;font-weight: 400;color: #040B29;">-->
|
||||
@@ -140,10 +140,10 @@
|
||||
<div style="width: 100%">
|
||||
<a-table
|
||||
ref="table"
|
||||
class="ant-table"
|
||||
class="ant-table tableList"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 200px)'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 170px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
@@ -247,6 +247,7 @@
|
||||
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
|
||||
import { getAction, postAction, downloadFile } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'virtualListDetails',
|
||||
@@ -320,8 +321,7 @@
|
||||
align: 'center',
|
||||
dataIndex: 'subtitle',
|
||||
width: 180,
|
||||
fixed: 'left',
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
ellipsis: true
|
||||
},
|
||||
{
|
||||
title: this.$t('zoneOfApplication'),
|
||||
@@ -630,6 +630,7 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
handleSuperQuery(params, matchType) {
|
||||
let sqp = {}
|
||||
if (!params || (params && params.length == 0)) {
|
||||
@@ -789,7 +790,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -806,7 +807,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -818,7 +819,7 @@
|
||||
}
|
||||
},
|
||||
download(item) {
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
|
||||
},
|
||||
clickButtonToUpload(item) {
|
||||
this.loading = true
|
||||
@@ -1007,4 +1008,7 @@
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.tableList .ant-table-thead > tr > th {
|
||||
padding: 7px 16px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -139,11 +139,12 @@
|
||||
<a-col :span="24" v-if="title == $t('addFeedback') || title == $t('edit')">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text"
|
||||
:title="$t('Deliverables')">{{$t('Deliverables')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="fileId">
|
||||
<!-- prop="fileId"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<a-button type="primary" class="button-text"
|
||||
@click="clickButtonToUpload('fileId')">
|
||||
{{ (formInline.fileId === 'null' || formInline.fileId === '' ||
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required" v-if="$route.query.isDisplay">*</span>
|
||||
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="approvalOpinion">
|
||||
@@ -148,6 +149,7 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required" v-if="$route.query.isDisplay">*</span>
|
||||
<span class="title-text-text" :title="$t('feedbackMessage')">{{$t('feedbackMessage')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="approvalOpinion">
|
||||
@@ -197,6 +199,11 @@
|
||||
}
|
||||
],
|
||||
approvalOpinion: [
|
||||
{
|
||||
required: true,
|
||||
message: this.$t('feedbackMessage') + this.$t('cannotEmpty'),
|
||||
trigger: 'blur'
|
||||
},
|
||||
{
|
||||
max: 300,
|
||||
message: this.$t('feedbackMessage') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
|
||||
@@ -227,6 +234,7 @@
|
||||
},
|
||||
mounted() {
|
||||
this.formInline.approvalOpinion = ''
|
||||
this.formInline = { ...this.formInline }
|
||||
this.$route.query.isDisplay = JSON.parse(this.$route.query.isDisplay)
|
||||
if (this.queryBy && this.$route.query.TaskKey == 'fqrsh') {
|
||||
this.formInline.reviewResult = this.queryBy.reviewResult || undefined
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
<script>
|
||||
import { Base64 } from 'js-base64'
|
||||
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'standardContentList',
|
||||
@@ -168,13 +169,14 @@
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
pdfPreview(fileQuery) {
|
||||
let fileName = fileQuery.fileName
|
||||
let index1 = fileName.lastIndexOf('.')
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -191,7 +193,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -203,7 +205,7 @@
|
||||
}
|
||||
},
|
||||
download(item) {
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
|
||||
},
|
||||
clickButtonToUpload(item) {
|
||||
this.loading = true
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
<div class="doc-detail">
|
||||
<div class="Virtual-detail-header" style="position: fixed;top: 0">
|
||||
<div class="Virtual-detail-title">
|
||||
<!-- <span style="line-height: 74px;display: inline-block;float: left">-->
|
||||
<!-- <a-icon type="left-circle" theme="filled" style="margin-right: 6px;font-size: 30px;color: #21c9cc;"/>-->
|
||||
<!-- </span>-->
|
||||
<span style="line-height: 74px;display: inline-block;float: left">
|
||||
<a-icon @click="backClick" type="left-circle" theme="filled"
|
||||
style="margin-right: 8px;font-size: 30px;color: #21c9cc;"/>
|
||||
</span>
|
||||
<span>
|
||||
{{this.title}}
|
||||
</span>
|
||||
@@ -26,7 +27,7 @@
|
||||
</div>
|
||||
<div style="padding: 67px 0 0 0;background: #ffffff;height:100%">
|
||||
<div class="detail-content" style="height: 100%">
|
||||
<div class="Virtual-detail-left">
|
||||
<div v-if="isDisplay" class="Virtual-detail-left">
|
||||
<div class="Virtual-detail-left-text" :title="$t('projectDetails')"
|
||||
v-has="'projectLawsInventory:projectDetails'"
|
||||
v-if="isTrue"
|
||||
@@ -36,28 +37,58 @@
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:list'" :title="$t('listOfRegulations')"
|
||||
@click="textClick(1,$t('listOfRegulations'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="control"/>
|
||||
{{$t('listOfRegulations')}}
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" :title="$t('taskList')"
|
||||
v-has="'projectLawsInventory:taskList'"
|
||||
@click="textClick(2,$t('taskList'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="safety"/>
|
||||
{{$t('taskList')}}
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'ncrTrack:queryPageInfo'" :title="$t('nonConformance')"
|
||||
@click="textClick(3,$t('nonConformance'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="safety-certificate"/>
|
||||
{{$t('nonConformance')}}
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
|
||||
:title="$t('TaskParameterCollection')"
|
||||
@click="textClick(4,$t('TaskParameterCollection'))">
|
||||
<a-icon type="container"/>
|
||||
<a-icon type="profile"/>
|
||||
{{$t('TaskParameterCollection')}}
|
||||
</div>
|
||||
<a-icon @click="textIconClick" type="menu-fold" class="text-icon"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-right">
|
||||
<div v-if="!isDisplay" class="Virtual-detail-left-One">
|
||||
<div class="Virtual-detail-left-text"
|
||||
:title="$t('projectDetails')"
|
||||
v-has="'projectLawsInventory:projectDetails'"
|
||||
v-if="isTrue"
|
||||
@click="textClick(0,$t('projectDetails'))">
|
||||
<a-icon type="container"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:list'" :title="$t('listOfRegulations')"
|
||||
@click="textClick(1,$t('listOfRegulations'))">
|
||||
<a-icon type="control"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" :title="$t('taskList')"
|
||||
v-has="'projectLawsInventory:taskList'"
|
||||
@click="textClick(2,$t('taskList'))">
|
||||
<a-icon type="safety"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'ncrTrack:queryPageInfo'" :title="$t('nonConformance')"
|
||||
@click="textClick(3,$t('nonConformance'))">
|
||||
<a-icon type="safety-certificate"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-left-text" v-has="'projectLawsInventory:TaskParameterCollection'"
|
||||
:title="$t('TaskParameterCollection')"
|
||||
@click="textClick(4,$t('TaskParameterCollection'))">
|
||||
<a-icon type="profile"/>
|
||||
</div>
|
||||
<a-icon @click="textIconClick" type="menu-unfold" class="text-icon-one"/>
|
||||
</div>
|
||||
<div class="Virtual-detail-right"
|
||||
:style="{'width':isDisplay?'calc(100% - 240px)':'calc(100% - 66px)'}">
|
||||
<ProjectDetailsName @TaskListChange="TaskListChange" v-if="textTitle === $t('projectDetails')"/>
|
||||
<listOfRegulations v-else-if="textTitle === $t('listOfRegulations')"/>
|
||||
<TaskList :isDisplayNum="isDisplayNum" :areaOfResponsibility="areaOfResponsibility"
|
||||
@@ -100,11 +131,13 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: this.$t('projectDetails'),
|
||||
title: '',
|
||||
isDisplayNum: '',
|
||||
textTitle: '',
|
||||
isTrue: true,
|
||||
loading: false,
|
||||
isDisplay: true,
|
||||
|
||||
url: {
|
||||
logList: '/project/projectLawsInventoryLogEO/page',
|
||||
historicalVersionUrl: '',
|
||||
@@ -116,6 +149,7 @@
|
||||
},
|
||||
created() {
|
||||
document.title = this.$t('projectDetails') + '-' + this.$route.query.projectName
|
||||
this.title = this.$route.query.projectName + '-' + this.$route.query.targetMarket_dictText
|
||||
},
|
||||
mounted() {
|
||||
this.getTaskId()
|
||||
@@ -149,6 +183,9 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
textIconClick() {
|
||||
this.isDisplay = !this.isDisplay
|
||||
},
|
||||
...mapGetters(['userInfo']),
|
||||
textColor(name) {
|
||||
let textColor = document.getElementsByClassName('Virtual-detail-left-text-color')
|
||||
@@ -261,6 +298,11 @@
|
||||
text[i].classList.add('Virtual-detail-left-text-color')
|
||||
}
|
||||
}
|
||||
},
|
||||
backClick() {
|
||||
this.$router.push({
|
||||
path: '/projectLibrary'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -305,11 +347,13 @@
|
||||
|
||||
.Virtual-detail-left {
|
||||
width: 240px;
|
||||
flex: 0 0 240px;
|
||||
padding: 16px 24px;
|
||||
box-sizing: border-box;
|
||||
font-size: 16px;
|
||||
line-height: 3;
|
||||
float: left;
|
||||
transition: all 0.2s;
|
||||
|
||||
.Virtual-detail-left-text {
|
||||
padding: 2px 12px;
|
||||
@@ -320,12 +364,30 @@
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-left-One {
|
||||
width: 66px;
|
||||
flex: 0 0 66px;
|
||||
display: inline-block;
|
||||
padding: 16px 16px;
|
||||
box-sizing: border-box;
|
||||
font-size: 18px;
|
||||
right: 0;
|
||||
transition: all 0.2s;
|
||||
|
||||
.Virtual-detail-left-text {
|
||||
padding: 2px 8px;
|
||||
cursor: pointer;
|
||||
margin-bottom: 18px;
|
||||
color: rgb(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
.Virtual-detail-right {
|
||||
border-left: 2px #eff1f3 solid;
|
||||
width: calc(100% - 240px);
|
||||
height: 100%;
|
||||
float: left;
|
||||
float: right;
|
||||
overflow: auto;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -337,4 +399,22 @@
|
||||
.Virtual-detail-text-right {
|
||||
|
||||
}
|
||||
|
||||
.text-icon {
|
||||
color: rgb(0, 0, 0);
|
||||
font-size: 22px;
|
||||
position: absolute;
|
||||
left: 200px;
|
||||
bottom: 20px;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.text-icon-one {
|
||||
color: rgb(0, 0, 0);
|
||||
font-size: 22px;
|
||||
position: absolute;
|
||||
left: 22px;
|
||||
bottom: 20px;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
</style>
|
||||
@@ -5,7 +5,8 @@
|
||||
{{$t('basicInformationOfParameters')}}
|
||||
</div>
|
||||
<div class="header-tight">
|
||||
<a-button v-has="'projectLibraryBase:edit'" class="box-button" style="line-height: 32px" @click="edit">
|
||||
<a-button v-if="this.$route.query.studioEngineer == this.userInfo().id" class="box-button"
|
||||
style="line-height: 32px" @click="edit">
|
||||
{{$t('edit')}}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -92,7 +93,8 @@
|
||||
{{$t('regulatoryCertificationTaskPlan')}}
|
||||
</div>
|
||||
<div class="header-tight">
|
||||
<a-button class="box-button" v-has="'projectTaskPlanning:queryByProjectId'" style="line-height: 32px"
|
||||
<a-button class="box-button" v-if="this.$route.query.studioEngineer == this.userInfo().id"
|
||||
style="line-height: 32px"
|
||||
@click="settingClick">{{$t('setting')}}
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -139,6 +141,7 @@
|
||||
import currentStatusOfTheProjectEcharts from './currentStatusOfTheProjectEcharts'
|
||||
import deliverableStatusEchart from './deliverableStatusEchart'
|
||||
import certificationProgressEchart from './certificationProgressEchart'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'ProjectDetails',
|
||||
@@ -171,6 +174,7 @@
|
||||
this.getSetting()
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
getForm() {
|
||||
getAction(this.url.queryById, { id: this.$route.query.id }).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
<a-table
|
||||
ref="table"
|
||||
bordered
|
||||
class="taskTable"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: true}"
|
||||
@@ -197,7 +198,7 @@
|
||||
scopedSlots: { customRender: 'CertificationProgress' }
|
||||
},
|
||||
{
|
||||
title: this.$t('CurrentProjectStatusEvaluation'),
|
||||
title: this.$t('CurrentStatus'),
|
||||
align: 'center',
|
||||
width: 150,
|
||||
dataIndex: 'CurrentProjectStatusEvaluation',
|
||||
@@ -406,7 +407,7 @@
|
||||
},
|
||||
CurrentProjectClick(val) {
|
||||
let item = JSON.parse(JSON.stringify(val))
|
||||
this.$refs.TaskListModelRef.getData(item, this.$t('CurrentProjectStatusEvaluation'))
|
||||
this.$refs.TaskListModelRef.getData(item, this.$t('CurrentStatus'))
|
||||
},
|
||||
TaskListModelList() {
|
||||
this.getList()
|
||||
@@ -603,4 +604,9 @@
|
||||
.box-input .ant-select-selection__rendered {
|
||||
line-height: 38px;
|
||||
}
|
||||
|
||||
.taskTable .ant-empty-normal {
|
||||
padding: 32px 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
</style>
|
||||
@@ -10,7 +10,7 @@
|
||||
>
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<div class="headerText" v-if="title == $t('CurrentProjectStatusEvaluation')">
|
||||
<div class="headerText" v-if="title == $t('CurrentStatus')">
|
||||
{{this.$t('redSchedule')}}<br/>
|
||||
{{this.$t('yellowSchedule')}}<br/>
|
||||
{{this.$t('greenRequirements')}}<br/>
|
||||
@@ -47,7 +47,7 @@
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
<a-col :span="24" v-if="title == $t('CurrentProjectStatusEvaluation') && this.formInline.roleCode != '0'">
|
||||
<a-col :span="24" v-if="title == $t('CurrentStatus') && this.formInline.roleCode != '0'">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
@@ -84,7 +84,7 @@
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
<a-col :span="24" v-if="title == $t('CurrentProjectStatusEvaluation') && this.formInline.roleCode != '0'">
|
||||
<a-col :span="24" v-if="title == $t('CurrentStatus') && this.formInline.roleCode != '0'">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="title-text-text"
|
||||
@@ -99,7 +99,7 @@
|
||||
</div>
|
||||
</a-col>
|
||||
<div v-for="item in studioList"
|
||||
v-if="title == $t('CurrentProjectStatusEvaluation') && formInline.roleCode == '0'">
|
||||
v-if="title == $t('CurrentStatus') && formInline.roleCode == '0'">
|
||||
<div class="headerText"
|
||||
v-if="item.roleCode == 1"
|
||||
style="margin-top: 10px">
|
||||
@@ -196,7 +196,7 @@
|
||||
getData(val, title) {
|
||||
this.visible = true
|
||||
this.title = title
|
||||
if (title == this.$t('CurrentProjectStatusEvaluation')) {
|
||||
if (title == this.$t('CurrentStatus')) {
|
||||
val.remark = val.projectStatusAssessRemark || ''
|
||||
val.conditionAssessment = val.projectStatusAssess || ''
|
||||
if (val.roleCode == '2' || val.roleCode == '4' || val.roleCode == '1') {
|
||||
|
||||
@@ -31,11 +31,15 @@
|
||||
<span class="title-text-text" :title="$t('certificationType')">{{$t('certificationType')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationType"
|
||||
@input="handleInput('attestationType')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationType')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" dictCode="attestation_type"/>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationType')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_type'"/>
|
||||
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationType"-->
|
||||
<!-- @input="handleInput('attestationType')"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('certificationType')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" dictCode="attestation_type"/>-->
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
@@ -61,11 +65,15 @@
|
||||
<span class="title-text-text" :title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
@input="handleInput('attestationRank')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" dictCode="attestation_rank"/>
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
<!-- <j-dict-select-tag class="box-input" v-model="formInline.attestationRank"-->
|
||||
<!-- @input="handleInput('attestationRank')"-->
|
||||
<!-- :placeholder="$t('PleaseSelect')+$t('certificationLevel')"-->
|
||||
<!-- :type="'select'"-->
|
||||
<!-- :triggerChange="false" dictCode="attestation_rank"/>-->
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
<span class="title-text-text"
|
||||
:title="$t('certificationType')">{{$t('certificationType')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationType">
|
||||
<a-form-model-item class="itemModel-multi" prop="attestationType">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationType"
|
||||
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationType')"
|
||||
@@ -158,13 +158,12 @@
|
||||
<span class="title-text-text"
|
||||
:title="$t('certificationLevel')">{{$t('certificationLevel')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" prop="attestationRank">
|
||||
<j-dict-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
|
||||
@input="handleInput('attestationRank')"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
<a-form-model-item class="itemModel-multi" prop="attestationRank">
|
||||
<j-multi-select-tag class="box-input" v-model="formInline.attestationRank"
|
||||
:disabled="formInline.roleCode == 0 || formInline.roleCode == 2 ? false : true"
|
||||
:placeholder="$t('PleaseSelect')+$t('certificationLevel')"
|
||||
:type="'select'"
|
||||
:triggerChange="false" :dictCode="'attestation_rank'"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<a-card :bordered="false">
|
||||
<div class="header-text">
|
||||
{{ $t('DocumentStandard') }}
|
||||
</div>
|
||||
<!-- <div class="header-text">-->
|
||||
<!-- {{ $t('DocumentStandard') }}-->
|
||||
<!-- </div>-->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
@@ -46,8 +46,10 @@
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<div class="table-operator" style="overflow:hidden;">
|
||||
<div style="float: left;margin-bottom: 10px;margin-left: 20px" v-if="isDisplay">
|
||||
<div class="table-operator"
|
||||
v-if="(isRoleSwitching && !isDisplay) || (!isDisplay && roleSwitchingList.length > 1) || isDisplay"
|
||||
style="overflow:hidden;margin-bottom: 20px">
|
||||
<div style="float: left;margin-bottom: 0px;margin-left: 20px" v-if="isDisplay">
|
||||
<div class="operator-text" @click="initiateListConfirmationcClick('清单')">
|
||||
<a-icon type="solution"/>
|
||||
{{ $t('initiateListConfirmation') }}
|
||||
@@ -124,7 +126,7 @@
|
||||
{{ $t('roleSwitching') }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 19px">
|
||||
<div v-if="!isDisplay" style="float: right;margin-top: 1px;margin-bottom: 0px">
|
||||
<div class="operator-text" @click="submitClick(0)" v-if="isRoleSwitching">
|
||||
<a-icon type="check-circle"/>
|
||||
{{ $t('submit') }}
|
||||
@@ -148,9 +150,10 @@
|
||||
<div style="width: 100%">
|
||||
<a-table
|
||||
ref="table"
|
||||
class="tableList"
|
||||
:loading="loading"
|
||||
:pagination="false"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 420px)'}"
|
||||
:scroll="{x: '100%',y:'calc(100vh - 170px)'}"
|
||||
rowKey="id"
|
||||
:data-source="dataSource"
|
||||
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
|
||||
@@ -220,7 +223,7 @@
|
||||
<transferList :url="url" @transferListForm="addModelList" ref="transferListRef"/>
|
||||
<fixedPlate @fixedPlateForm="addModelList" ref="fixedPlateRef"/>
|
||||
<a-modal
|
||||
:title="$t('ListConfirmationDeadline')"
|
||||
:title="listTitle"
|
||||
:width="500"
|
||||
:visible="visible"
|
||||
:confirm-loading="confirmLoading"
|
||||
@@ -228,39 +231,41 @@
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
>
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text-index">
|
||||
<div class="title-text-index">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>
|
||||
<a-spin :spinning="confirmLoading">
|
||||
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
|
||||
<a-row :gutter="24">
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text-index">
|
||||
<div class="title-text-index">
|
||||
<span class="Required">*</span>
|
||||
<span class="title-text-text"
|
||||
:title="$t('TaskCutOffTime')">{{ $t('TaskCutOffTime') }}</span>
|
||||
</div>
|
||||
<a-form-model-item v-if="this.timeName == '清单'" class="itemModel" prop="inventoryAffirmDueDate">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
|
||||
@change="dateChange({db_field_name:'inventoryAffirmDueDate'})"
|
||||
format="YYYY-MM-DD"
|
||||
:disabledDate="disabledDate"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.inventoryAffirmDueDate"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
<a-form-model-item v-else-if="this.timeName == '任务'" class="itemModel" prop="taskAffirmDueDate">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
|
||||
@change="dateChange({db_field_name:'taskAffirmDueDate'})"
|
||||
format="YYYY-MM-DD"
|
||||
:disabledDate="disabledDate"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.taskAffirmDueDate"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
<a-form-model-item v-if="this.timeName == '清单'" class="itemModel" prop="inventoryAffirmDueDate">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
|
||||
@change="dateChange({db_field_name:'inventoryAffirmDueDate'})"
|
||||
format="YYYY-MM-DD"
|
||||
:disabledDate="disabledDate"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.inventoryAffirmDueDate"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
<a-form-model-item v-else-if="this.timeName == '任务'" class="itemModel" prop="taskAffirmDueDate">
|
||||
<a-date-picker class="box-input"
|
||||
:placeholder="$t('PleaseSelect')+$t('TaskCutOffTime')"
|
||||
@change="dateChange({db_field_name:'taskAffirmDueDate'})"
|
||||
format="YYYY-MM-DD"
|
||||
:disabledDate="disabledDate"
|
||||
:getCalendarContainer="(trigger) => trigger.parentNode"
|
||||
v-model="formInline.taskAffirmDueDate"
|
||||
style="width: 100%"/>
|
||||
</a-form-model-item>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form-model>
|
||||
</a-spin>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
:title="fileTitle"
|
||||
@@ -391,6 +396,7 @@
|
||||
data() {
|
||||
return {
|
||||
roleSwitchingList: [],
|
||||
listTitle: '',
|
||||
columnsAll: [
|
||||
{
|
||||
title: this.$t('standard'),
|
||||
@@ -412,9 +418,8 @@
|
||||
title: this.$t('subtitle'),
|
||||
align: 'center',
|
||||
dataIndex: 'subtitle',
|
||||
width: 180,
|
||||
fixed: 'left',
|
||||
scopedSlots: { customRender: 'titleName' }
|
||||
ellipsis: true,
|
||||
width: 180
|
||||
},
|
||||
{
|
||||
title: this.$t('listConfirmationStatus'),
|
||||
@@ -1215,10 +1220,10 @@
|
||||
this.getList()
|
||||
},
|
||||
searchReset() {
|
||||
this.queryParam = {}
|
||||
this.$refs.globalAdvancedQueryRef.resetLine()
|
||||
this.$refs.globalAdvancedQueryRef.emitCallback()
|
||||
this.queryParam = {}
|
||||
this.getList()
|
||||
// this.getList()
|
||||
},
|
||||
addModelList() {
|
||||
this.getList()
|
||||
@@ -1253,8 +1258,8 @@
|
||||
roleCode: roleCode
|
||||
}
|
||||
this.loading = true
|
||||
this.getRoleByUserId()
|
||||
getAction(this.url.list, query).then((res) => {
|
||||
this.getRoleByUserId()
|
||||
if (res.success) {
|
||||
this.dataSource = res.result
|
||||
this.loading = false
|
||||
@@ -1269,6 +1274,7 @@
|
||||
this.getList()
|
||||
},
|
||||
initiateListConfirmationcClick(name) {
|
||||
this.listTitle = this.$t('ListConfirmationDeadline')
|
||||
this.timeName = name
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
@@ -1276,11 +1282,16 @@
|
||||
for (let i = 0; i < this.dataSource.length; i++) {
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if ((this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') &&
|
||||
this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
|
||||
isTrue = true
|
||||
if (this.dataSource[i].inventoryAffirmStatus == 'Not started' || this.dataSource[i].inventoryAffirmStatus == 'Rejected') {
|
||||
if (this.dataSource[i].homologationEngineerId && this.dataSource[i].regulationOwnerId) {
|
||||
isTrue = true
|
||||
} else {
|
||||
this.$message.warning(this.dataSource[i].serialNumber + this.$t('TheEngineerAndCertification'))
|
||||
isTrue = false
|
||||
return
|
||||
}
|
||||
} else {
|
||||
this.$message.warning(this.$t('dataConfirmation'))
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseSelectinitiatedOrRejected'))
|
||||
isTrue = false
|
||||
return
|
||||
}
|
||||
@@ -1298,6 +1309,7 @@
|
||||
|
||||
initiateTaskConfirmationClick(name) {
|
||||
this.timeName = name
|
||||
this.listTitle = this.$t('taskConfirmationDeadline')
|
||||
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
|
||||
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
|
||||
let isTrue = true
|
||||
@@ -1305,40 +1317,46 @@
|
||||
for (let j = 0; j < selectedRowKeys.length; j++) {
|
||||
if (this.dataSource[i].id == selectedRowKeys[j]) {
|
||||
if ((this.dataSource[i].taskAffirmStatus == 'Not started' || this.dataSource[i].taskAffirmStatus == 'Rejected') &&
|
||||
this.dataSource[i].engineeringInterfacePerson && this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
|
||||
if ((this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
|
||||
&& this.dataSource[i].verifyInitiatorId && this.dataSource[i].verifyDeliverableType) ||
|
||||
(!this.dataSource[i].verifyDueDate && !this.dataSource[i].verifyDutyId
|
||||
&& !this.dataSource[i].verifyInitiatorId && !this.dataSource[i].verifyDeliverableType)) {
|
||||
isTrue = true
|
||||
this.dataSource[i].inventoryAffirmStatus == 'Accepted') {
|
||||
if (this.dataSource[i].engineeringInterfacePerson) {
|
||||
if ((this.dataSource[i].verifyDueDate && this.dataSource[i].verifyDutyId
|
||||
&& this.dataSource[i].verifyInitiatorId && this.dataSource[i].verifyDeliverableType) ||
|
||||
(!this.dataSource[i].verifyDueDate && !this.dataSource[i].verifyDutyId
|
||||
&& !this.dataSource[i].verifyInitiatorId && !this.dataSource[i].verifyDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConformityVerification'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].prehomoDueDate && this.dataSource[i].prehomoDutyId
|
||||
&& this.dataSource[i].prehomoInitiatorId && this.dataSource[i].prehomoDeliverableType) ||
|
||||
(!this.dataSource[i].prehomoDueDate && !this.dataSource[i].prehomoDutyId
|
||||
&& !this.dataSource[i].prehomoInitiatorId && !this.dataSource[i].prehomoDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseConfirmedByPrehomo'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].designDueDate && this.dataSource[i].designDutyId
|
||||
&& this.dataSource[i].designInitiatorId && this.dataSource[i].designDeliverableType) ||
|
||||
(!this.dataSource[i].designDueDate && !this.dataSource[i].designDutyId
|
||||
&& !this.dataSource[i].designInitiatorId && !this.dataSource[i].designDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('pleaseDesignConformityConfirmation'))
|
||||
return
|
||||
}
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('pleaseConformityVerification'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].prehomoDueDate && this.dataSource[i].prehomoDutyId
|
||||
&& this.dataSource[i].prehomoInitiatorId && this.dataSource[i].prehomoDeliverableType) ||
|
||||
(!this.dataSource[i].prehomoDueDate && !this.dataSource[i].prehomoDutyId
|
||||
&& !this.dataSource[i].prehomoInitiatorId && !this.dataSource[i].prehomoDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('pleaseConfirmedByPrehomo'))
|
||||
return
|
||||
}
|
||||
if ((this.dataSource[i].designDueDate && this.dataSource[i].designDutyId
|
||||
&& this.dataSource[i].designInitiatorId && this.dataSource[i].designDeliverableType) ||
|
||||
(!this.dataSource[i].designDueDate && !this.dataSource[i].designDutyId
|
||||
&& !this.dataSource[i].designInitiatorId && !this.dataSource[i].designDeliverableType)) {
|
||||
isTrue = true
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('pleaseDesignConformityConfirmation'))
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('theProjectContactEmpty'))
|
||||
return
|
||||
}
|
||||
} else {
|
||||
isTrue = false
|
||||
this.$message.warning(this.$t('taskDataConfirmation'))
|
||||
this.$message.warning(this.dataSource[i].serialNumber + ',' + this.$t('PleaseTaskConfirmationRejected'))
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -1578,7 +1596,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -1596,7 +1614,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -1604,12 +1622,12 @@
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else {
|
||||
downloadFile('/sys/common/downLoadFile', name, { id: id })
|
||||
downloadFile('/sys/common/downLoadFile', name, { id: id ,userName:this.userInfo().username})
|
||||
}
|
||||
},
|
||||
|
||||
download(item) {
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
|
||||
},
|
||||
|
||||
clickButtonToUpload(item, num) {
|
||||
@@ -1885,4 +1903,8 @@
|
||||
.itemModelComment .ant-form-item-control-wrapper {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
||||
.tableList .ant-table-thead > tr > th {
|
||||
padding: 7px 16px !important;
|
||||
}
|
||||
</style>
|
||||
@@ -84,10 +84,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('regulatoryEngineer')">{{$t('regulatoryEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'lawEngineerName'">
|
||||
<!-- :prop="'lawEngineerName'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'lawEngineer',db_field_txt:$t('regulatoryEngineer')}"
|
||||
:personneQuery="formInline"
|
||||
@@ -101,10 +102,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('engineeringInterfacePerson')">{{$t('engineeringInterfacePerson')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'engineeringInterfacePersonName'">
|
||||
<!-- :prop="'engineeringInterfacePersonName'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<PersonnelSelection
|
||||
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('engineeringInterfacePerson')}"
|
||||
:personneQuery="formInline"
|
||||
@@ -118,10 +120,11 @@
|
||||
<a-col :span="24">
|
||||
<div class="box-title-text">
|
||||
<div class="title-text">
|
||||
<span class="Required">*</span>
|
||||
<!-- <span class="Required">*</span>-->
|
||||
<span class="title-text-text" :title="$t('certifiedEngineer')">{{$t('certifiedEngineer')}}</span>
|
||||
</div>
|
||||
<a-form-model-item class="itemModel" :prop="'certificationEngineer'">
|
||||
<!-- :prop="'certificationEngineer'"-->
|
||||
<a-form-model-item class="itemModel">
|
||||
<a-select allowClear
|
||||
v-model="formInline.certificationEngineer"
|
||||
:placeholder="$t('certifiedEngineer')+$t('areaOfResponsibility')">
|
||||
@@ -325,6 +328,9 @@
|
||||
editOk() {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
if (!this.formInline.certificationEngineer){
|
||||
this.formInline.certificationEngineer = ''
|
||||
}
|
||||
this.confirmLoading = true
|
||||
putAction(this.url.edit, this.formInline).then((res) => {
|
||||
if (res.success) {
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
import { ACCESS_TOKEN } from '@/store/mutation-types'
|
||||
import { getAction, postAction, downFile, downloadFile, putAction } from '@/api/manage'
|
||||
import { Base64 } from 'js-base64'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'resultReportedUpload',
|
||||
@@ -74,6 +75,7 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
clickButtonToUploadFile(item) {
|
||||
this.uploadQuery = item
|
||||
this.myfileList = []
|
||||
@@ -208,7 +210,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix === '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix === '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -216,7 +218,7 @@
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
} else {
|
||||
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id })
|
||||
downloadFile('/sys/common/downLoadFile', fileQuery.fileName, { id: fileQuery.id,userName:this.userInfo().username })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -463,7 +463,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + fileQuery.id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -480,7 +480,7 @@
|
||||
let index2 = fileName.length
|
||||
let fileSuffix = fileName.substring(index1, index2)
|
||||
if (fileSuffix == '.pdf') {
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id))
|
||||
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id+'&userName='+this.userInfo().username))
|
||||
} else if (fileSuffix == '.docx') {
|
||||
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + id + fileSuffix)
|
||||
window.open(url, '_blank')
|
||||
@@ -492,7 +492,7 @@
|
||||
}
|
||||
},
|
||||
download(item) {
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id })
|
||||
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.id ,userName:this.userInfo().username})
|
||||
},
|
||||
clickButtonToUpload(item) {
|
||||
this.loading = true
|
||||
|
||||
@@ -107,10 +107,10 @@
|
||||
<a-icon type="plus"/>
|
||||
{{$t('newlyAdded')}}
|
||||
</div>
|
||||
<div @click="handleDel" class="operator-text" v-has="'projectLibraryBase:deleteBatch'">
|
||||
<a-icon type="delete"/>
|
||||
{{$t('BatchDelete')}}
|
||||
</div>
|
||||
<!-- <div @click="handleDel" class="operator-text" v-has="'projectLibraryBase:deleteBatch'">-->
|
||||
<!-- <a-icon type="delete"/>-->
|
||||
<!-- {{$t('BatchDelete')}}-->
|
||||
<!-- </div>-->
|
||||
</div>
|
||||
<div>
|
||||
<a-table
|
||||
@@ -129,7 +129,10 @@
|
||||
</span>
|
||||
<span slot="operation" slot-scope="text,record">
|
||||
<!-- <a class="text-operation" @click="edit(record)">{{$t('edit')}}</a>-->
|
||||
<a class="text-operation" v-has="'projectLibraryBase:deleteBatch'" @click="deleteLib(record)">{{$t('deleteLib')}}</a>
|
||||
<a class="text-operation"
|
||||
v-has="'projectLibraryBase:delete'"
|
||||
v-if="record.createBy == userInfoQuery.username"
|
||||
@click="deleteLib(record)">{{$t('deleteLib')}}</a>
|
||||
<!-- <a class="text-operation" @click="entryNameClick(record)">{{$t('see')}}</a>-->
|
||||
</span>
|
||||
</a-table>
|
||||
@@ -153,6 +156,7 @@
|
||||
import { getAction, postAction, downloadFile, deleteAction } from '@/api/manage'
|
||||
import addModel from '../components/addModel'
|
||||
import PersonnelSelection from '@/components/PersonnelSelection/index'
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
export default {
|
||||
name: 'index',
|
||||
@@ -240,13 +244,16 @@
|
||||
scopedSlots: { customRender: 'operation' }
|
||||
}
|
||||
],
|
||||
userInfoQuery: {},
|
||||
queryParam: {}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
this.userInfoQuery = this.userInfo()
|
||||
},
|
||||
methods: {
|
||||
...mapGetters(['userInfo']),
|
||||
handleToggleSearch() {
|
||||
this.toggleSearchStatus = !this.toggleSearchStatus
|
||||
},
|
||||
|
||||
+87
-16
@@ -45,11 +45,12 @@
|
||||
<div class="process-content-right-xian"></div>
|
||||
<div class="process-content-content" :style="val.left"
|
||||
v-for="(val,indexOne) in item.data[0]" :key="indexOne">
|
||||
|
||||
<div class="process-content-right-top" :title="val.name">{{val.name}}</div>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template slot="title">
|
||||
<span>{{val.time.slice(0,11)}}</span>
|
||||
</template>
|
||||
<div class="process-content-right-top">{{val.name}}</div>
|
||||
<img v-if="val.status == 1" src="../../../../assets/done.svg" class="process-content-left" alt="">
|
||||
<img v-else-if="val.status == 2" src="../../../../assets/open.svg"
|
||||
class="process-content-left"
|
||||
@@ -109,10 +110,73 @@
|
||||
this.handlingTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
},
|
||||
methods: {
|
||||
getNewDate(flag, many) {
|
||||
|
||||
const thirtyDays = [4, 6, 9, 11] // 30天的月份
|
||||
|
||||
const thirtyOneDays = [1, 3, 5, 7, 8, 10, 12] // 31天的月份
|
||||
|
||||
const currDate = new Date() // 今天日期
|
||||
|
||||
const year = currDate.getFullYear()
|
||||
|
||||
let month = currDate.getMonth() + 1
|
||||
|
||||
let targetDateMilli = 0
|
||||
|
||||
let GMTDate = '' // 中国标准时间
|
||||
|
||||
let targetYear = '' // 年
|
||||
|
||||
let targetMonth = '' // 月
|
||||
|
||||
let targetDate = '' // 日
|
||||
|
||||
let dealTargetDays = '' // 目标日期
|
||||
|
||||
const isLeapYear = !!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 是否是闰年
|
||||
|
||||
let countDays = 0 // 累计天数
|
||||
|
||||
for (let i = 0; i < many; i++) {
|
||||
|
||||
if (flag === 'before') {
|
||||
|
||||
month = month - 1 <= 0 ? 12 : month - 1
|
||||
|
||||
} else {
|
||||
|
||||
month = month + 1 > 12 ? 1 : month + 1
|
||||
|
||||
}
|
||||
|
||||
thirtyDays.includes(month) ? (countDays += 30) : thirtyOneDays.includes(month) ? (countDays += 31) : isLeapYear ? (countDays += 29) : (countDays += 28)
|
||||
}
|
||||
|
||||
targetDateMilli = currDate.setDate(
|
||||
currDate.getDate() - (flag === 'before' ? countDays : countDays * -1)
|
||||
)
|
||||
|
||||
GMTDate = new Date(targetDateMilli)
|
||||
|
||||
targetYear = GMTDate.getFullYear()
|
||||
|
||||
targetMonth = GMTDate.getMonth() + 1
|
||||
|
||||
targetDate = GMTDate.getDate()
|
||||
|
||||
targetMonth = targetMonth.toString().padStart(2, '0')
|
||||
|
||||
targetDate = targetDate.toString().padStart(2, '0')
|
||||
|
||||
dealTargetDays = `${targetYear}-${targetMonth}`
|
||||
|
||||
return dealTargetDays
|
||||
},
|
||||
getTimeline() {
|
||||
let query = {
|
||||
startTime: this.startTime,
|
||||
endTime: this.endTime
|
||||
startTime: this.startTime || this.getNewDate('before', 6),
|
||||
endTime: this.endTime || this.getNewDate('after', 5)
|
||||
}
|
||||
this.loadingMain = true
|
||||
getAction(this.url.timeline, query).then((res) => {
|
||||
@@ -143,8 +207,8 @@
|
||||
},
|
||||
getTimelineList(time) {
|
||||
let query = {
|
||||
startTime: this.startTime,
|
||||
endTime: this.endTime
|
||||
startTime: this.startTime || this.getNewDate('before', 6),
|
||||
endTime: this.endTime || this.getNewDate('after', 5)
|
||||
}
|
||||
getAction(this.url.timelineList, query).then((res) => {
|
||||
if (res.success) {
|
||||
@@ -355,7 +419,7 @@
|
||||
}
|
||||
|
||||
.box-top-content-left {
|
||||
width: 160px;
|
||||
width: 140px;
|
||||
float: left;
|
||||
padding-top: 100px;
|
||||
margin-right: 20px;
|
||||
@@ -364,8 +428,8 @@
|
||||
.box-top-content-left-text {
|
||||
color: #191E29;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
height: 104px;
|
||||
font-size: 12px;
|
||||
height: 84px;
|
||||
letter-spacing: 0px;
|
||||
text-align: left;
|
||||
text-overflow: ellipsis;
|
||||
@@ -374,7 +438,7 @@
|
||||
}
|
||||
|
||||
.box-top-content-right {
|
||||
width: calc(100% - 180px);
|
||||
width: calc(100% - 160px);
|
||||
float: left;
|
||||
}
|
||||
|
||||
@@ -392,7 +456,7 @@
|
||||
height: 36px;
|
||||
color: #54565A;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
line-height: 36px;
|
||||
letter-spacing: 0px;
|
||||
text-align: center;
|
||||
@@ -409,7 +473,7 @@
|
||||
|
||||
.process-content {
|
||||
position: relative;
|
||||
height: 104px;
|
||||
height: 84px;
|
||||
|
||||
.process-content-content {
|
||||
background: #fff;
|
||||
@@ -430,15 +494,22 @@
|
||||
}
|
||||
|
||||
.process-content-right-top {
|
||||
font-size: 14px;
|
||||
font-size: 12px;
|
||||
color: #040B29;
|
||||
max-width: 155px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
width: 50px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
top: -14px;
|
||||
left: 50%;
|
||||
line-height: 1.2;
|
||||
display: -webkit-box;
|
||||
text-overflow: ellipsis;
|
||||
/*! autoprefixer: off */
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
/*! autoprefixer: on;*/
|
||||
text-justify: inter-ideograph;
|
||||
word-break: break-all;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
|
||||
@@ -71,11 +71,11 @@
|
||||
<div class="process-content-right-xian"></div>
|
||||
<div class="process-content-content" :style="val.left"
|
||||
v-for="(val,indexOne) in item.data[0]" :key="indexOne">
|
||||
<div class="process-content-right-top" :title="val.name">{{val.name}}</div>
|
||||
<a-tooltip placement="topLeft">
|
||||
<template slot="title">
|
||||
<span>{{val.time.slice(0,11)}}</span>
|
||||
</template>
|
||||
<div class="process-content-right-top">{{val.name}}</div>
|
||||
<img v-if="val.status == 1" src="../../../assets/done.svg" class="process-content-left"
|
||||
alt="">
|
||||
<img v-else-if="val.status == 2" src="../../../assets/open.svg"
|
||||
@@ -242,10 +242,73 @@
|
||||
this.handlingTime = moment(new Date()).format('YYYY-MM-DD')
|
||||
},
|
||||
methods: {
|
||||
getNewDate(flag, many) {
|
||||
|
||||
const thirtyDays = [4, 6, 9, 11] // 30天的月份
|
||||
|
||||
const thirtyOneDays = [1, 3, 5, 7, 8, 10, 12] // 31天的月份
|
||||
|
||||
const currDate = new Date() // 今天日期
|
||||
|
||||
const year = currDate.getFullYear()
|
||||
|
||||
let month = currDate.getMonth() + 1
|
||||
|
||||
let targetDateMilli = 0
|
||||
|
||||
let GMTDate = '' // 中国标准时间
|
||||
|
||||
let targetYear = '' // 年
|
||||
|
||||
let targetMonth = '' // 月
|
||||
|
||||
let targetDate = '' // 日
|
||||
|
||||
let dealTargetDays = '' // 目标日期
|
||||
|
||||
const isLeapYear = !!((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) // 是否是闰年
|
||||
|
||||
let countDays = 0 // 累计天数
|
||||
|
||||
for (let i = 0; i < many; i++) {
|
||||
|
||||
if (flag === 'before') {
|
||||
|
||||
month = month - 1 <= 0 ? 12 : month - 1
|
||||
|
||||
} else {
|
||||
|
||||
month = month + 1 > 12 ? 1 : month + 1
|
||||
|
||||
}
|
||||
|
||||
thirtyDays.includes(month) ? (countDays += 30) : thirtyOneDays.includes(month) ? (countDays += 31) : isLeapYear ? (countDays += 29) : (countDays += 28)
|
||||
}
|
||||
|
||||
targetDateMilli = currDate.setDate(
|
||||
currDate.getDate() - (flag === 'before' ? countDays : countDays * -1)
|
||||
)
|
||||
|
||||
GMTDate = new Date(targetDateMilli)
|
||||
|
||||
targetYear = GMTDate.getFullYear()
|
||||
|
||||
targetMonth = GMTDate.getMonth() + 1
|
||||
|
||||
targetDate = GMTDate.getDate()
|
||||
|
||||
targetMonth = targetMonth.toString().padStart(2, '0')
|
||||
|
||||
targetDate = targetDate.toString().padStart(2, '0')
|
||||
|
||||
dealTargetDays = `${targetYear}-${targetMonth}`
|
||||
|
||||
return dealTargetDays
|
||||
},
|
||||
getTimeline() {
|
||||
let query = {
|
||||
startTime: this.startTime,
|
||||
endTime: this.endTime,
|
||||
startTime: this.startTime || this.getNewDate('before',6),
|
||||
endTime: this.endTime || this.getNewDate('after',5),
|
||||
...this.queryParam
|
||||
}
|
||||
this.loadingMain = true
|
||||
@@ -277,8 +340,8 @@
|
||||
},
|
||||
getTimelineList(time) {
|
||||
let query = {
|
||||
startTime: this.startTime,
|
||||
endTime: this.endTime,
|
||||
startTime: this.startTime || this.getNewDate('before',6),
|
||||
endTime: this.endTime || this.getNewDate('after',5),
|
||||
...this.queryParam
|
||||
}
|
||||
getAction(this.url.timelineList, query).then((res) => {
|
||||
@@ -506,7 +569,7 @@
|
||||
}
|
||||
|
||||
.box-top-content-left {
|
||||
width: 160px;
|
||||
width: 140px;
|
||||
float: left;
|
||||
padding-top: 100px;
|
||||
margin-right: 20px;
|
||||
@@ -515,8 +578,8 @@
|
||||
.box-top-content-left-text {
|
||||
color: #191E29;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
height: 104px;
|
||||
font-size: 12px;
|
||||
height: 84px;
|
||||
letter-spacing: 0px;
|
||||
text-align: left;
|
||||
text-overflow: ellipsis;
|
||||
@@ -525,7 +588,7 @@
|
||||
}
|
||||
|
||||
.box-top-content-right {
|
||||
width: calc(100% - 180px);
|
||||
width: calc(100% - 160px);
|
||||
float: left;
|
||||
}
|
||||
|
||||
@@ -544,7 +607,7 @@
|
||||
padding-left: 10px;
|
||||
color: #54565A;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
font-size: 13px;
|
||||
line-height: 36px;
|
||||
letter-spacing: 0px;
|
||||
text-align: center;
|
||||
@@ -561,7 +624,7 @@
|
||||
|
||||
.process-content {
|
||||
position: relative;
|
||||
height: 104px;
|
||||
height: 84px;
|
||||
|
||||
.process-content-content {
|
||||
background: #fff;
|
||||
@@ -582,15 +645,22 @@
|
||||
}
|
||||
|
||||
.process-content-right-top {
|
||||
font-size: 14px;
|
||||
font-size: 12px;
|
||||
color: #040B29;
|
||||
max-width: 155px;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
width: 50px;
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: -8px;
|
||||
top: -14px;
|
||||
left: 50%;
|
||||
line-height: 1.2;
|
||||
display: -webkit-box;
|
||||
text-overflow: ellipsis;
|
||||
/*! autoprefixer: off */
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
/*! autoprefixer: on;*/
|
||||
text-justify: inter-ideograph;
|
||||
word-break: break-all;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user