乙方运维 用户资产功能优化;基础组件版本升级
Showing
25 changed files
with
993 additions
and
164 deletions
@@ -111,7 +111,7 @@ INSERT INTO `user-center`.`sys_menu` (`id`, `parentId`, `menuCode`, `name`, `url | @@ -111,7 +111,7 @@ INSERT INTO `user-center`.`sys_menu` (`id`, `parentId`, `menuCode`, `name`, `url | ||
111 | INSERT INTO `user-center`.`sys_role_menu` (`roleId`, `menuId`) VALUES (1, 1000009); | 111 | INSERT INTO `user-center`.`sys_role_menu` (`roleId`, `menuId`) VALUES (1, 1000009); |
112 | INSERT INTO `user-center`.`sys_role_menu` (`roleId`, `menuId`) VALUES (1, 1000011); | 112 | INSERT INTO `user-center`.`sys_role_menu` (`roleId`, `menuId`) VALUES (1, 1000011); |
113 | -- 8、修改项目表中的预留字段 | 113 | -- 8、修改项目表中的预留字段 |
114 | -ALTER TABLE `cloud_backend_monitor`.`b_ops_project` | 114 | +ALTER TABLE `cloud_backend_monitor`.`b_ops_project` |
115 | MODIFY COLUMN `state` int NULL DEFAULT 0 COMMENT '0:正常,1:延期,3:预留' AFTER `remark`; | 115 | MODIFY COLUMN `state` int NULL DEFAULT 0 COMMENT '0:正常,1:延期,3:预留' AFTER `remark`; |
116 | 116 | ||
117 | -- 9、同步流程业务添加触发器 | 117 | -- 9、同步流程业务添加触发器 |
@@ -120,7 +120,7 @@ DELIMITER $$ | @@ -120,7 +120,7 @@ DELIMITER $$ | ||
120 | CREATE TRIGGER syn_business_add AFTER INSERT ON b_bustype | 120 | CREATE TRIGGER syn_business_add AFTER INSERT ON b_bustype |
121 | FOR EACH ROW | 121 | FOR EACH ROW |
122 | begin | 122 | begin |
123 | - IF NEW.isLeaf = 1 THEN | 123 | + IF NEW.isLeaf = 1 THEN |
124 | INSERT INTO `itsm_demo`.`system_handler` (`system_id`, `system_name`, `sort`, `system_type`, `enable`) VALUES (NEW.busId, NEW.busTypeName, NEW.sort, "0","0"); | 124 | INSERT INTO `itsm_demo`.`system_handler` (`system_id`, `system_name`, `sort`, `system_type`, `enable`) VALUES (NEW.busId, NEW.busTypeName, NEW.sort, "0","0"); |
125 | END IF; | 125 | END IF; |
126 | end$$ | 126 | end$$ |
@@ -130,7 +130,7 @@ DELIMITER $$ | @@ -130,7 +130,7 @@ DELIMITER $$ | ||
130 | CREATE TRIGGER syn_business_change AFTER UPDATE ON b_bustype | 130 | CREATE TRIGGER syn_business_change AFTER UPDATE ON b_bustype |
131 | FOR EACH ROW | 131 | FOR EACH ROW |
132 | begin | 132 | begin |
133 | - IF NEW.isLeaf = 1 and OLD.isLeaf =1 THEN | 133 | + IF NEW.isLeaf = 1 and OLD.isLeaf =1 THEN |
134 | UPDATE `itsm_demo`.`system_handler` SET `system_name` = NEW.busTypeName, `sort` = NEW.sort WHERE `system_id` = OLD.busId; | 134 | UPDATE `itsm_demo`.`system_handler` SET `system_name` = NEW.busTypeName, `sort` = NEW.sort WHERE `system_id` = OLD.busId; |
135 | ELSE | 135 | ELSE |
136 | DELETE FROM `itsm_demo`.`system_handler` where `system_id` = OLD.busId; | 136 | DELETE FROM `itsm_demo`.`system_handler` where `system_id` = OLD.busId; |
@@ -142,7 +142,7 @@ DELIMITER $$ | @@ -142,7 +142,7 @@ DELIMITER $$ | ||
142 | CREATE TRIGGER syn_business_delete AFTER DELETE ON b_bustype | 142 | CREATE TRIGGER syn_business_delete AFTER DELETE ON b_bustype |
143 | FOR EACH ROW | 143 | FOR EACH ROW |
144 | begin | 144 | begin |
145 | - IF OLD.isLeaf = 1 THEN | 145 | + IF OLD.isLeaf = 1 THEN |
146 | DELETE FROM `itsm_demo`.`system_handler` where `system_id` = OLD.busId; | 146 | DELETE FROM `itsm_demo`.`system_handler` where `system_id` = OLD.busId; |
147 | END IF; | 147 | END IF; |
148 | end$$ | 148 | end$$ |
@@ -160,11 +160,5 @@ INSERT INTO `inspection-report`.`b_insepectionreport_type` (`id`, `pid`, `name`, | @@ -160,11 +160,5 @@ INSERT INTO `inspection-report`.`b_insepectionreport_type` (`id`, `pid`, `name`, | ||
160 | INSERT INTO `inspection-report`.`b_insepectionreport_type` (`id`, `pid`, `name`, `docNo`, `type`, `createUser`, `createTime`, `sort`, `status`) VALUES ('FOUR_HEALTH', '0', '健康检查报告', '10005', 'FOUR_HEALTH', 'admin', '2021-10-12 19:55:13', '10005', 0); | 160 | INSERT INTO `inspection-report`.`b_insepectionreport_type` (`id`, `pid`, `name`, `docNo`, `type`, `createUser`, `createTime`, `sort`, `status`) VALUES ('FOUR_HEALTH', '0', '健康检查报告', '10005', 'FOUR_HEALTH', 'admin', '2021-10-12 19:55:13', '10005', 0); |
161 | INSERT INTO `inspection-report`.`b_insepectionreport_type` (`id`, `pid`, `name`, `docNo`, `type`, `createUser`, `createTime`, `sort`, `status`) VALUES ('FOUR_MONTHLY', '0', '月报', '10003', 'FOUR_MONTHLY', 'admin', '2021-10-12 19:55:13', '10003', 0); | 161 | INSERT INTO `inspection-report`.`b_insepectionreport_type` (`id`, `pid`, `name`, `docNo`, `type`, `createUser`, `createTime`, `sort`, `status`) VALUES ('FOUR_MONTHLY', '0', '月报', '10003', 'FOUR_MONTHLY', 'admin', '2021-10-12 19:55:13', '10003', 0); |
162 | 162 | ||
163 | --- 王涛 inspection-report | ||
164 | -alter table b_inspection_document MODIFY column fileSize varchar(50) DEFAULT NULL COMMENT '文件大小'; | ||
165 | - | ||
166 | -ALTER TABLE `inspection-report`.`b_inspection_document` | ||
167 | -ADD COLUMN `status` int(1) DEFAULT '0' COMMENT '删除状态 0 正常,1删除,默认0'; | ||
168 | - | ||
169 | -ALTER TABLE `inspection-report`.`b_insepectionreport_type` | ||
170 | -ADD COLUMN `status` int(1) DEFAULT '0' COMMENT '删除状态 0 正常,1删除,默认0'; | ||
163 | +-- 12、修改属性分组字段长度 | ||
164 | +ALTER TABLE `cloud_backend_monitor`.`b_ops_person_property` MODIFY COLUMN `groupings` VARCHAR(100) NULL COMMENT '分组'; |
@@ -61,6 +61,7 @@ loading:{ | @@ -61,6 +61,7 @@ loading:{ | ||
61 | type: Boolean, | 61 | type: Boolean, |
62 | default: false | 62 | default: false |
63 | }, | 63 | }, |
64 | + | ||
64 | -------------------------------------------------------------------- | 65 | -------------------------------------------------------------------- |
65 | columns参数说明: | 66 | columns参数说明: |
66 | // 单元绑定数据key | 67 | // 单元绑定数据key |
@@ -77,3 +78,6 @@ render:function (row){ | @@ -77,3 +78,6 @@ render:function (row){ | ||
77 | // 表格个性化展示,返回html | 78 | // 表格个性化展示,返回html |
78 | return html; | 79 | return html; |
79 | } | 80 | } |
81 | +------------------------slot-------------------------------------------- | ||
82 | +#default 内容插槽 | ||
83 | +#tools 工具栏插槽 |
@@ -8,9 +8,11 @@ | @@ -8,9 +8,11 @@ | ||
8 | <script src="public/lib/vue/vue.global.prod.js"></script> | 8 | <script src="public/lib/vue/vue.global.prod.js"></script> |
9 | <script src="public/lib/vue/vue-router.global.prod.js"></script> | 9 | <script src="public/lib/vue/vue-router.global.prod.js"></script> |
10 | <script src="public/lib/vue/vuex.global.prod.js"></script> | 10 | <script src="public/lib/vue/vuex.global.prod.js"></script> |
11 | + <link href="public/lib/element-plus/index-icon.css" rel="stylesheet"> | ||
11 | <link href="public/lib/element-plus/index.css" rel="stylesheet"> | 12 | <link href="public/lib/element-plus/index.css" rel="stylesheet"> |
12 | <script src="public/lib/element-plus/index.full.js"></script> | 13 | <script src="public/lib/element-plus/index.full.js"></script> |
13 | <script src="public/lib/element-plus/zh-cn.js"></script> | 14 | <script src="public/lib/element-plus/zh-cn.js"></script> |
15 | + | ||
14 | <link href="public/lib/vant/index.css" rel="stylesheet"> | 16 | <link href="public/lib/vant/index.css" rel="stylesheet"> |
15 | <script src="public/lib/vant/vant.min.js"></script> | 17 | <script src="public/lib/vant/vant.min.js"></script> |
16 | <script src="public/lib/axios/axios.min.js"></script> | 18 | <script src="public/lib/axios/axios.min.js"></script> |
@@ -8,7 +8,6 @@ | @@ -8,7 +8,6 @@ | ||
8 | background-color: #CCCCCC; | 8 | background-color: #CCCCCC; |
9 | padding: 3px 3px; | 9 | padding: 3px 3px; |
10 | width:calc(100% - 10px); | 10 | width:calc(100% - 10px); |
11 | - overflow:hidden; | ||
12 | } | 11 | } |
13 | 12 | ||
14 | .container .cm-card{ | 13 | .container .cm-card{ |
@@ -39,7 +38,7 @@ custom-class="config-dialog" | @@ -39,7 +38,7 @@ custom-class="config-dialog" | ||
39 | 38 | ||
40 | 39 | ||
41 | /*加载图标*/ | 40 | /*加载图标*/ |
42 | -.el-loading-spinner .icon-mj{ | 41 | +.el-loading-spinner .el-icon{ |
43 | width: 70px; | 42 | width: 70px; |
44 | height: 70px; | 43 | height: 70px; |
45 | background: url(../../../start/layui/css/modules/layer/default/loading-mj.png) no-repeat center; | 44 | background: url(../../../start/layui/css/modules/layer/default/loading-mj.png) no-repeat center; |
@@ -55,6 +55,72 @@ | @@ -55,6 +55,72 @@ | ||
55 | <ul class="icon_lists dib-box"> | 55 | <ul class="icon_lists dib-box"> |
56 | 56 | ||
57 | <li class="dib"> | 57 | <li class="dib"> |
58 | + <span class="icon iconfont"></span> | ||
59 | + <div class="name">虚拟桌面</div> | ||
60 | + <div class="code-name">&#xe613;</div> | ||
61 | + </li> | ||
62 | + | ||
63 | + <li class="dib"> | ||
64 | + <span class="icon iconfont"></span> | ||
65 | + <div class="name">堡垒机</div> | ||
66 | + <div class="code-name">&#xe63c;</div> | ||
67 | + </li> | ||
68 | + | ||
69 | + <li class="dib"> | ||
70 | + <span class="icon iconfont"></span> | ||
71 | + <div class="name">堡垒机sas</div> | ||
72 | + <div class="code-name">&#xe61a;</div> | ||
73 | + </li> | ||
74 | + | ||
75 | + <li class="dib"> | ||
76 | + <span class="icon iconfont"></span> | ||
77 | + <div class="name">堡垒机授权申请流程</div> | ||
78 | + <div class="code-name">&#xe657;</div> | ||
79 | + </li> | ||
80 | + | ||
81 | + <li class="dib"> | ||
82 | + <span class="icon iconfont"></span> | ||
83 | + <div class="name">虚拟桌面</div> | ||
84 | + <div class="code-name">&#xe63d;</div> | ||
85 | + </li> | ||
86 | + | ||
87 | + <li class="dib"> | ||
88 | + <span class="icon iconfont"></span> | ||
89 | + <div class="name">水坝b</div> | ||
90 | + <div class="code-name">&#xe905;</div> | ||
91 | + </li> | ||
92 | + | ||
93 | + <li class="dib"> | ||
94 | + <span class="icon iconfont"></span> | ||
95 | + <div class="name">虚拟桌面</div> | ||
96 | + <div class="code-name">&#xe675;</div> | ||
97 | + </li> | ||
98 | + | ||
99 | + <li class="dib"> | ||
100 | + <span class="icon iconfont"></span> | ||
101 | + <div class="name">滚水坝</div> | ||
102 | + <div class="code-name">&#xe614;</div> | ||
103 | + </li> | ||
104 | + | ||
105 | + <li class="dib"> | ||
106 | + <span class="icon iconfont"></span> | ||
107 | + <div class="name">线</div> | ||
108 | + <div class="code-name">&#xebde;</div> | ||
109 | + </li> | ||
110 | + | ||
111 | + <li class="dib"> | ||
112 | + <span class="icon iconfont"></span> | ||
113 | + <div class="name">line</div> | ||
114 | + <div class="code-name">&#xe7fd;</div> | ||
115 | + </li> | ||
116 | + | ||
117 | + <li class="dib"> | ||
118 | + <span class="icon iconfont"></span> | ||
119 | + <div class="name">路由器</div> | ||
120 | + <div class="code-name">&#xec62;</div> | ||
121 | + </li> | ||
122 | + | ||
123 | + <li class="dib"> | ||
58 | <span class="icon iconfont"></span> | 124 | <span class="icon iconfont"></span> |
59 | <div class="name">搜索</div> | 125 | <div class="name">搜索</div> |
60 | <div class="code-name">&#xe752;</div> | 126 | <div class="code-name">&#xe752;</div> |
@@ -498,9 +564,9 @@ | @@ -498,9 +564,9 @@ | ||
498 | <pre><code class="language-css" | 564 | <pre><code class="language-css" |
499 | >@font-face { | 565 | >@font-face { |
500 | font-family: 'iconfont'; | 566 | font-family: 'iconfont'; |
501 | - src: url('iconfont.woff2?t=1634540750988') format('woff2'), | ||
502 | - url('iconfont.woff?t=1634540750988') format('woff'), | ||
503 | - url('iconfont.ttf?t=1634540750988') format('truetype'); | 567 | + src: url('iconfont.woff2?t=1635930253141') format('woff2'), |
568 | + url('iconfont.woff?t=1635930253141') format('woff'), | ||
569 | + url('iconfont.ttf?t=1635930253141') format('truetype'); | ||
504 | } | 570 | } |
505 | </code></pre> | 571 | </code></pre> |
506 | <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> | 572 | <h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3> |
@@ -527,6 +593,105 @@ | @@ -527,6 +593,105 @@ | ||
527 | <ul class="icon_lists dib-box"> | 593 | <ul class="icon_lists dib-box"> |
528 | 594 | ||
529 | <li class="dib"> | 595 | <li class="dib"> |
596 | + <span class="icon iconfont icon-xunizhuomian"></span> | ||
597 | + <div class="name"> | ||
598 | + 虚拟桌面 | ||
599 | + </div> | ||
600 | + <div class="code-name">.icon-xunizhuomian | ||
601 | + </div> | ||
602 | + </li> | ||
603 | + | ||
604 | + <li class="dib"> | ||
605 | + <span class="icon iconfont icon-baoleiji"></span> | ||
606 | + <div class="name"> | ||
607 | + 堡垒机 | ||
608 | + </div> | ||
609 | + <div class="code-name">.icon-baoleiji | ||
610 | + </div> | ||
611 | + </li> | ||
612 | + | ||
613 | + <li class="dib"> | ||
614 | + <span class="icon iconfont icon-baoleijisas"></span> | ||
615 | + <div class="name"> | ||
616 | + 堡垒机sas | ||
617 | + </div> | ||
618 | + <div class="code-name">.icon-baoleijisas | ||
619 | + </div> | ||
620 | + </li> | ||
621 | + | ||
622 | + <li class="dib"> | ||
623 | + <span class="icon iconfont icon-baoleijishouquanshenqingliucheng"></span> | ||
624 | + <div class="name"> | ||
625 | + 堡垒机授权申请流程 | ||
626 | + </div> | ||
627 | + <div class="code-name">.icon-baoleijishouquanshenqingliucheng | ||
628 | + </div> | ||
629 | + </li> | ||
630 | + | ||
631 | + <li class="dib"> | ||
632 | + <span class="icon iconfont icon-xunizhuomian1"></span> | ||
633 | + <div class="name"> | ||
634 | + 虚拟桌面 | ||
635 | + </div> | ||
636 | + <div class="code-name">.icon-xunizhuomian1 | ||
637 | + </div> | ||
638 | + </li> | ||
639 | + | ||
640 | + <li class="dib"> | ||
641 | + <span class="icon iconfont icon-shuiba2"></span> | ||
642 | + <div class="name"> | ||
643 | + 水坝b | ||
644 | + </div> | ||
645 | + <div class="code-name">.icon-shuiba2 | ||
646 | + </div> | ||
647 | + </li> | ||
648 | + | ||
649 | + <li class="dib"> | ||
650 | + <span class="icon iconfont icon-xunizhuomian2"></span> | ||
651 | + <div class="name"> | ||
652 | + 虚拟桌面 | ||
653 | + </div> | ||
654 | + <div class="code-name">.icon-xunizhuomian2 | ||
655 | + </div> | ||
656 | + </li> | ||
657 | + | ||
658 | + <li class="dib"> | ||
659 | + <span class="icon iconfont icon-gunshuiba"></span> | ||
660 | + <div class="name"> | ||
661 | + 滚水坝 | ||
662 | + </div> | ||
663 | + <div class="code-name">.icon-gunshuiba | ||
664 | + </div> | ||
665 | + </li> | ||
666 | + | ||
667 | + <li class="dib"> | ||
668 | + <span class="icon iconfont icon-line1"></span> | ||
669 | + <div class="name"> | ||
670 | + 线 | ||
671 | + </div> | ||
672 | + <div class="code-name">.icon-line1 | ||
673 | + </div> | ||
674 | + </li> | ||
675 | + | ||
676 | + <li class="dib"> | ||
677 | + <span class="icon iconfont icon-line"></span> | ||
678 | + <div class="name"> | ||
679 | + line | ||
680 | + </div> | ||
681 | + <div class="code-name">.icon-line | ||
682 | + </div> | ||
683 | + </li> | ||
684 | + | ||
685 | + <li class="dib"> | ||
686 | + <span class="icon iconfont icon-luyouqi"></span> | ||
687 | + <div class="name"> | ||
688 | + 路由器 | ||
689 | + </div> | ||
690 | + <div class="code-name">.icon-luyouqi | ||
691 | + </div> | ||
692 | + </li> | ||
693 | + | ||
694 | + <li class="dib"> | ||
530 | <span class="icon iconfont icon-sousuo"></span> | 695 | <span class="icon iconfont icon-sousuo"></span> |
531 | <div class="name"> | 696 | <div class="name"> |
532 | 搜索 | 697 | 搜索 |
@@ -1194,6 +1359,94 @@ | @@ -1194,6 +1359,94 @@ | ||
1194 | 1359 | ||
1195 | <li class="dib"> | 1360 | <li class="dib"> |
1196 | <svg class="icon svg-icon" aria-hidden="true"> | 1361 | <svg class="icon svg-icon" aria-hidden="true"> |
1362 | + <use xlink:href="#icon-xunizhuomian"></use> | ||
1363 | + </svg> | ||
1364 | + <div class="name">虚拟桌面</div> | ||
1365 | + <div class="code-name">#icon-xunizhuomian</div> | ||
1366 | + </li> | ||
1367 | + | ||
1368 | + <li class="dib"> | ||
1369 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1370 | + <use xlink:href="#icon-baoleiji"></use> | ||
1371 | + </svg> | ||
1372 | + <div class="name">堡垒机</div> | ||
1373 | + <div class="code-name">#icon-baoleiji</div> | ||
1374 | + </li> | ||
1375 | + | ||
1376 | + <li class="dib"> | ||
1377 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1378 | + <use xlink:href="#icon-baoleijisas"></use> | ||
1379 | + </svg> | ||
1380 | + <div class="name">堡垒机sas</div> | ||
1381 | + <div class="code-name">#icon-baoleijisas</div> | ||
1382 | + </li> | ||
1383 | + | ||
1384 | + <li class="dib"> | ||
1385 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1386 | + <use xlink:href="#icon-baoleijishouquanshenqingliucheng"></use> | ||
1387 | + </svg> | ||
1388 | + <div class="name">堡垒机授权申请流程</div> | ||
1389 | + <div class="code-name">#icon-baoleijishouquanshenqingliucheng</div> | ||
1390 | + </li> | ||
1391 | + | ||
1392 | + <li class="dib"> | ||
1393 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1394 | + <use xlink:href="#icon-xunizhuomian1"></use> | ||
1395 | + </svg> | ||
1396 | + <div class="name">虚拟桌面</div> | ||
1397 | + <div class="code-name">#icon-xunizhuomian1</div> | ||
1398 | + </li> | ||
1399 | + | ||
1400 | + <li class="dib"> | ||
1401 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1402 | + <use xlink:href="#icon-shuiba2"></use> | ||
1403 | + </svg> | ||
1404 | + <div class="name">水坝b</div> | ||
1405 | + <div class="code-name">#icon-shuiba2</div> | ||
1406 | + </li> | ||
1407 | + | ||
1408 | + <li class="dib"> | ||
1409 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1410 | + <use xlink:href="#icon-xunizhuomian2"></use> | ||
1411 | + </svg> | ||
1412 | + <div class="name">虚拟桌面</div> | ||
1413 | + <div class="code-name">#icon-xunizhuomian2</div> | ||
1414 | + </li> | ||
1415 | + | ||
1416 | + <li class="dib"> | ||
1417 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1418 | + <use xlink:href="#icon-gunshuiba"></use> | ||
1419 | + </svg> | ||
1420 | + <div class="name">滚水坝</div> | ||
1421 | + <div class="code-name">#icon-gunshuiba</div> | ||
1422 | + </li> | ||
1423 | + | ||
1424 | + <li class="dib"> | ||
1425 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1426 | + <use xlink:href="#icon-line1"></use> | ||
1427 | + </svg> | ||
1428 | + <div class="name">线</div> | ||
1429 | + <div class="code-name">#icon-line1</div> | ||
1430 | + </li> | ||
1431 | + | ||
1432 | + <li class="dib"> | ||
1433 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1434 | + <use xlink:href="#icon-line"></use> | ||
1435 | + </svg> | ||
1436 | + <div class="name">line</div> | ||
1437 | + <div class="code-name">#icon-line</div> | ||
1438 | + </li> | ||
1439 | + | ||
1440 | + <li class="dib"> | ||
1441 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1442 | + <use xlink:href="#icon-luyouqi"></use> | ||
1443 | + </svg> | ||
1444 | + <div class="name">路由器</div> | ||
1445 | + <div class="code-name">#icon-luyouqi</div> | ||
1446 | + </li> | ||
1447 | + | ||
1448 | + <li class="dib"> | ||
1449 | + <svg class="icon svg-icon" aria-hidden="true"> | ||
1197 | <use xlink:href="#icon-sousuo"></use> | 1450 | <use xlink:href="#icon-sousuo"></use> |
1198 | </svg> | 1451 | </svg> |
1199 | <div class="name">搜索</div> | 1452 | <div class="name">搜索</div> |
1 | @font-face { | 1 | @font-face { |
2 | font-family: "iconfont"; /* Project id 2843738 */ | 2 | font-family: "iconfont"; /* Project id 2843738 */ |
3 | - src: url('iconfont.woff2?t=1634540750988') format('woff2'), | ||
4 | - url('iconfont.woff?t=1634540750988') format('woff'), | ||
5 | - url('iconfont.ttf?t=1634540750988') format('truetype'); | 3 | + src: url('iconfont.woff2?t=1635930253141') format('woff2'), |
4 | + url('iconfont.woff?t=1635930253141') format('woff'), | ||
5 | + url('iconfont.ttf?t=1635930253141') format('truetype'); | ||
6 | } | 6 | } |
7 | 7 | ||
8 | .iconfont { | 8 | .iconfont { |
@@ -13,6 +13,50 @@ | @@ -13,6 +13,50 @@ | ||
13 | -moz-osx-font-smoothing: grayscale; | 13 | -moz-osx-font-smoothing: grayscale; |
14 | } | 14 | } |
15 | 15 | ||
16 | +.icon-xunizhuomian:before { | ||
17 | + content: "\e613"; | ||
18 | +} | ||
19 | + | ||
20 | +.icon-baoleiji:before { | ||
21 | + content: "\e63c"; | ||
22 | +} | ||
23 | + | ||
24 | +.icon-baoleijisas:before { | ||
25 | + content: "\e61a"; | ||
26 | +} | ||
27 | + | ||
28 | +.icon-baoleijishouquanshenqingliucheng:before { | ||
29 | + content: "\e657"; | ||
30 | +} | ||
31 | + | ||
32 | +.icon-xunizhuomian1:before { | ||
33 | + content: "\e63d"; | ||
34 | +} | ||
35 | + | ||
36 | +.icon-shuiba2:before { | ||
37 | + content: "\e905"; | ||
38 | +} | ||
39 | + | ||
40 | +.icon-xunizhuomian2:before { | ||
41 | + content: "\e675"; | ||
42 | +} | ||
43 | + | ||
44 | +.icon-gunshuiba:before { | ||
45 | + content: "\e614"; | ||
46 | +} | ||
47 | + | ||
48 | +.icon-line1:before { | ||
49 | + content: "\ebde"; | ||
50 | +} | ||
51 | + | ||
52 | +.icon-line:before { | ||
53 | + content: "\e7fd"; | ||
54 | +} | ||
55 | + | ||
56 | +.icon-luyouqi:before { | ||
57 | + content: "\ec62"; | ||
58 | +} | ||
59 | + | ||
16 | .icon-sousuo:before { | 60 | .icon-sousuo:before { |
17 | content: "\e752"; | 61 | content: "\e752"; |
18 | } | 62 | } |
This diff could not be displayed because it is too large.
@@ -6,6 +6,83 @@ | @@ -6,6 +6,83 @@ | ||
6 | "description": "", | 6 | "description": "", |
7 | "glyphs": [ | 7 | "glyphs": [ |
8 | { | 8 | { |
9 | + "icon_id": "4675111", | ||
10 | + "name": "虚拟桌面", | ||
11 | + "font_class": "xunizhuomian", | ||
12 | + "unicode": "e613", | ||
13 | + "unicode_decimal": 58899 | ||
14 | + }, | ||
15 | + { | ||
16 | + "icon_id": "7556320", | ||
17 | + "name": "堡垒机", | ||
18 | + "font_class": "baoleiji", | ||
19 | + "unicode": "e63c", | ||
20 | + "unicode_decimal": 58940 | ||
21 | + }, | ||
22 | + { | ||
23 | + "icon_id": "9018063", | ||
24 | + "name": "堡垒机sas", | ||
25 | + "font_class": "baoleijisas", | ||
26 | + "unicode": "e61a", | ||
27 | + "unicode_decimal": 58906 | ||
28 | + }, | ||
29 | + { | ||
30 | + "icon_id": "9344245", | ||
31 | + "name": "堡垒机授权申请流程", | ||
32 | + "font_class": "baoleijishouquanshenqingliucheng", | ||
33 | + "unicode": "e657", | ||
34 | + "unicode_decimal": 58967 | ||
35 | + }, | ||
36 | + { | ||
37 | + "icon_id": "9865796", | ||
38 | + "name": "虚拟桌面", | ||
39 | + "font_class": "xunizhuomian1", | ||
40 | + "unicode": "e63d", | ||
41 | + "unicode_decimal": 58941 | ||
42 | + }, | ||
43 | + { | ||
44 | + "icon_id": "11439036", | ||
45 | + "name": "水坝b", | ||
46 | + "font_class": "shuiba2", | ||
47 | + "unicode": "e905", | ||
48 | + "unicode_decimal": 59653 | ||
49 | + }, | ||
50 | + { | ||
51 | + "icon_id": "25091142", | ||
52 | + "name": "虚拟桌面", | ||
53 | + "font_class": "xunizhuomian2", | ||
54 | + "unicode": "e675", | ||
55 | + "unicode_decimal": 58997 | ||
56 | + }, | ||
57 | + { | ||
58 | + "icon_id": "25132617", | ||
59 | + "name": "滚水坝", | ||
60 | + "font_class": "gunshuiba", | ||
61 | + "unicode": "e614", | ||
62 | + "unicode_decimal": 58900 | ||
63 | + }, | ||
64 | + { | ||
65 | + "icon_id": "19710217", | ||
66 | + "name": "线", | ||
67 | + "font_class": "line1", | ||
68 | + "unicode": "ebde", | ||
69 | + "unicode_decimal": 60382 | ||
70 | + }, | ||
71 | + { | ||
72 | + "icon_id": "4767098", | ||
73 | + "name": "line", | ||
74 | + "font_class": "line", | ||
75 | + "unicode": "e7fd", | ||
76 | + "unicode_decimal": 59389 | ||
77 | + }, | ||
78 | + { | ||
79 | + "icon_id": "5961324", | ||
80 | + "name": "路由器", | ||
81 | + "font_class": "luyouqi", | ||
82 | + "unicode": "ec62", | ||
83 | + "unicode_decimal": 60514 | ||
84 | + }, | ||
85 | + { | ||
9 | "icon_id": "577365", | 86 | "icon_id": "577365", |
10 | "name": "搜索", | 87 | "name": "搜索", |
11 | "font_class": "sousuo", | 88 | "font_class": "sousuo", |
No preview for this file type
No preview for this file type
No preview for this file type
hg-monitor-web-base/src/main/resources/static/vue3/public/lib/element-plus/index-icon.css
0 → 100644
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
This diff could not be displayed because it is too large.
@@ -11,10 +11,12 @@ | @@ -11,10 +11,12 @@ | ||
11 | <slot :row="scope.row" :prop="item.prop" :column="item"> | 11 | <slot :row="scope.row" :prop="item.prop" :column="item"> |
12 | <div v-if="typeof(item.render) == 'function'" > | 12 | <div v-if="typeof(item.render) == 'function'" > |
13 | <div v-if="typeof(item.click) == 'function'"> | 13 | <div v-if="typeof(item.click) == 'function'"> |
14 | - <el-link :type="linkType" :underline="isLink" @click="item.click(scope.row)" v-html="item.render(scope.row)"></el-link> | 14 | + <!--<el-link :type="linkType" :underline="isLink" @click="item.click(scope.row)" v-html="item.render(scope.row)"></el-link>--> |
15 | + <span @click="item.click(scope.row)" v-html="item.render(scope.row)"></span> | ||
15 | </div> | 16 | </div> |
16 | <div v-else> | 17 | <div v-else> |
17 | - <el-link :type="linkType" :underline="isLink" v-html="item.render(scope.row)"></el-link> | 18 | + <!-- <el-link :type="linkType" :underline="isLink" v-html="item.render(scope.row)"></el-link>--> |
19 | + <span v-html="item.render(scope.row)"></span> | ||
18 | </div> | 20 | </div> |
19 | </div> | 21 | </div> |
20 | <span v-else> | 22 | <span v-else> |
@@ -72,16 +72,7 @@ export default { | @@ -72,16 +72,7 @@ export default { | ||
72 | type: Boolean, | 72 | type: Boolean, |
73 | default: false | 73 | default: false |
74 | }, | 74 | }, |
75 | - // 是否展示链接 | ||
76 | - isLink:{ | ||
77 | - type: Boolean, | ||
78 | - default: false | ||
79 | - }, | ||
80 | - // 是否展示链接 | ||
81 | - linkType:{ | ||
82 | - type: String, | ||
83 | - default: 'primary' | ||
84 | - }, | 75 | + |
85 | }, | 76 | }, |
86 | data() { | 77 | data() { |
87 | return {} | 78 | return {} |
@@ -19,7 +19,7 @@ global.showLoading = (callback) => { | @@ -19,7 +19,7 @@ global.showLoading = (callback) => { | ||
19 | const loading = ElementPlus.ElLoading.service({ | 19 | const loading = ElementPlus.ElLoading.service({ |
20 | lock: true, | 20 | lock: true, |
21 | text: '', | 21 | text: '', |
22 | - spinner: 'icon-mj', | 22 | + spinner: ' ', |
23 | background: 'rgba(0, 0, 0, 0.7)', | 23 | background: 'rgba(0, 0, 0, 0.7)', |
24 | }); | 24 | }); |
25 | 25 |
1 | /* 属性配置 -- start */ | 1 | /* 属性配置 -- start */ |
2 | -.assets-configmanager { | ||
3 | - padding: 6px 3px; | ||
4 | - background: white; | 2 | +.form-post { |
3 | + width: 100%; | ||
5 | } | 4 | } |
6 | -.col-class{ | ||
7 | - background: white; | ||
8 | - padding: 10px; | ||
9 | - margin: 5px; | 5 | + |
6 | +/* 属性配置 -- end */ | ||
7 | + | ||
8 | +.yfyw-user { | ||
9 | + padding-top: 6px; | ||
10 | + width: 99%; | ||
10 | } | 11 | } |
11 | -.yes{ | ||
12 | - color: green; | 12 | + |
13 | +.yfyw-user .title{ | ||
14 | + font-weight: bold;text-align: left;padding-left: 40px;margin-bottom: 6px | ||
13 | } | 15 | } |
14 | -.no{ | ||
15 | - color: red; | 16 | + |
17 | +.yfyw-user .form-class { | ||
18 | + margin-bottom: 0px !important; | ||
16 | } | 19 | } |
17 | -.assets-configmanagers { | ||
18 | - background: #F0F0F0; | 20 | + |
21 | +.yfyw-user .el-form--label-top .el-form-item__label { | ||
22 | + padding: 0px !important; | ||
23 | + line-height: 20px !important; | ||
19 | } | 24 | } |
20 | -.assets-configmanager .config-tools { | 25 | + |
26 | +.yfyw-user .el-form-item__content { | ||
21 | text-align: left; | 27 | text-align: left; |
22 | - margin-left: 2%; | ||
23 | - margin-bottom: 6px; | 28 | + width: 300px; |
24 | } | 29 | } |
25 | 30 | ||
26 | -.assets-configmanagers .tbl-header-class { | ||
27 | - color: #1E9FFF; | ||
28 | - font-weight: bold; | 31 | +.yfyw-user .el-input__inner, .el-textarea__inner { |
32 | + border: none; | ||
33 | + border-bottom: solid 1px #DCDFE6; | ||
34 | + border-bottom-left-radius: 0; | ||
35 | + border-bottom-right-radius: 0; | ||
29 | } | 36 | } |
30 | 37 | ||
31 | -.assets-configmanagers .tbl-header-class th { | ||
32 | - background: #EBF5F9 !important; | ||
33 | - text-align: center; | 38 | +.yfyw-user .el-form-item__content .el-date-editor--date { |
39 | + width: 300px; | ||
34 | } | 40 | } |
35 | 41 | ||
36 | -.assets-configmanagers .tbl-header-class th .cell { | ||
37 | - text-align: center !important; | 42 | +.yfyw-user .form-textarea .el-form-item__content { |
43 | + width: 90%; | ||
38 | } | 44 | } |
39 | 45 | ||
40 | -.assets-configmanager .el-table__row td{ | ||
41 | - padding: 2px 0px;!important; | ||
42 | - text-align: center; | 46 | +.yfyw-user .zc-view { |
47 | + display: flex; | ||
48 | + flex-wrap: nowrap; | ||
49 | + flex-direction: row; | ||
50 | + padding-left: 40px; | ||
51 | + border-bottom: solid 1px #DCDFE6; | ||
43 | } | 52 | } |
44 | -.form-class{ | ||
45 | - margin-bottom: 50px!important; | 53 | + |
54 | +.yfyw-user .zc-view .zc-img { | ||
55 | + width: 120px; | ||
56 | + padding: 3px; | ||
57 | +} | ||
58 | + | ||
59 | +.yfyw-user .zc-view .zc-img i { | ||
60 | + font-size: 100px | ||
61 | +} | ||
62 | + | ||
63 | +.yfyw-user .zc-view .zc-info { | ||
64 | + width: calc(100% - 120px); | ||
65 | + text-align: left; | ||
66 | +} | ||
67 | + | ||
68 | +.yfyw-user .zc-view .zc-item { | ||
69 | + display: flex; | ||
70 | + flex-wrap: wrap | ||
71 | +} | ||
72 | + | ||
73 | +.yfyw-user .zc-view .zc-item .zc-item-label { | ||
74 | + width: 33%; | ||
75 | + line-height: 30px | ||
76 | +} | ||
77 | + | ||
78 | +.yfyw-user .zc-view .zc-item .zc-item-label .zc-item-label-left { | ||
79 | + width: 200px; | ||
80 | + font-weight: bold; | ||
81 | + text-align: right | ||
82 | +} | ||
83 | + | ||
84 | +.yfyw-user .zc-view .zc-item .zc-item-label .zc-item-label-right { | ||
85 | + width: 200px; | ||
86 | + text-align: left; | ||
87 | + padding-left: 3px | ||
88 | +} | ||
89 | + | ||
90 | +.yfyw-user .zc-view .zc-info .zc-item-tools { | ||
91 | + text-align: right; | ||
92 | + padding: 3px | ||
46 | } | 93 | } |
47 | -/* 属性配置 -- end */ |
@@ -6,4 +6,16 @@ | @@ -6,4 +6,16 @@ | ||
6 | :showBorder="true" :currentPage="currentPage" :total="total" :loading="false" | 6 | :showBorder="true" :currentPage="currentPage" :total="total" :loading="false" |
7 | :showPage="true" :height="height" :pageSize="pageSize"></cm-table-page> | 7 | :showPage="true" :height="height" :pageSize="pageSize"></cm-table-page> |
8 | </div> | 8 | </div> |
9 | + <cm-dialog :title="title" width="80%" :showDialogVisible="dialogFlg" @hidedialog="showDialog" :showFooter="false"> | ||
10 | + <template v-slot> | ||
11 | + <div v-if="componentName && componentName != ''"> | ||
12 | + <component v-bind:is="componentName" | ||
13 | + :docType="docType" | ||
14 | + height="500" | ||
15 | + :docTypeName="docTypeName" | ||
16 | + :pageSize="pageSize" | ||
17 | + :treeNode="treeNode" :parentNode="parentNode" :projectId="projectId"></component> | ||
18 | + </div> | ||
19 | + </template> | ||
20 | + </cm-dialog> | ||
9 | </div> | 21 | </div> |
1 | export default { | 1 | export default { |
2 | name: 'projectUserIndex', | 2 | name: 'projectUserIndex', |
3 | template: '', | 3 | template: '', |
4 | - components: {}, | 4 | + components: { |
5 | + // 人员信息 | ||
6 | + 'USER': Vue.defineAsyncComponent( | ||
7 | + () => myImport('components/page/operationMaintenance/user/index') | ||
8 | + ), | ||
9 | + //文档 | ||
10 | + // 个人保密协议(THREE_PERSONAGE_NDA) | ||
11 | + // 月度总结 THREE_MONTHLY_SUMMARY | ||
12 | + // 月报 FOUR_MONTHLY | ||
13 | + // 考勤记录 FOUR_CHECKING_IN | ||
14 | + // 健康检查报告 FOUR_HEALTH | ||
15 | + // 文档资料 TWO_DOCUMENT_MATERIAL | ||
16 | + // 项目保密协议 TWO_NDA | ||
17 | + 'DOCUMENT': Vue.defineAsyncComponent( | ||
18 | + () => myImport('components/page/operationMaintenance/doc/index') | ||
19 | + ), | ||
20 | + }, | ||
5 | data() { | 21 | data() { |
6 | return {} | 22 | return {} |
7 | }, | 23 | }, |
@@ -26,16 +42,29 @@ export default { | @@ -26,16 +42,29 @@ export default { | ||
26 | type: Number, | 42 | type: Number, |
27 | default: 10 | 43 | default: 10 |
28 | }, | 44 | }, |
45 | + | ||
29 | }, | 46 | }, |
30 | setup(props, {attrs, slots, emit}) { | 47 | setup(props, {attrs, slots, emit}) { |
31 | 48 | ||
32 | const {proxy} = Vue.getCurrentInstance(); | 49 | const {proxy} = Vue.getCurrentInstance(); |
33 | 50 | ||
51 | + let title = Vue.ref(''); | ||
52 | + let docType = Vue.ref(''); | ||
53 | + let docTypeName = Vue.ref(''); | ||
54 | + let componentName = Vue.ref(''); | ||
55 | + let dialogFlg = Vue.ref(false); | ||
56 | + | ||
34 | 57 | ||
35 | let columns = Vue.ref([{ | 58 | let columns = Vue.ref([{ |
36 | prop: 'nickname', | 59 | prop: 'nickname', |
37 | label: '运维人员姓名', | 60 | label: '运维人员姓名', |
38 | sortable: true, | 61 | sortable: true, |
62 | + click: function (row) { | ||
63 | + // 点击弹框展示人员信息 | ||
64 | + title.value = "人员信息"; | ||
65 | + componentName.value = "USER"; | ||
66 | + showDialog(true); | ||
67 | + } | ||
39 | }, { | 68 | }, { |
40 | prop: 'phone', | 69 | prop: 'phone', |
41 | label: '联系电话', | 70 | label: '联系电话', |
@@ -72,9 +101,16 @@ export default { | @@ -72,9 +101,16 @@ export default { | ||
72 | label: '个人信息', | 101 | label: '个人信息', |
73 | sortable: true, | 102 | sortable: true, |
74 | width: '180px', | 103 | width: '180px', |
104 | + click: function (row) { | ||
105 | + // 点击弹框展示 个人信息 | ||
106 | + title.value = "个人信息"; | ||
107 | + componentName.value = "USER"; | ||
108 | + props.parentNode.id = row.id; | ||
109 | + showDialog(true); | ||
110 | + }, | ||
75 | render: function (row) { | 111 | render: function (row) { |
76 | if (row.personalMessage == "YES") { | 112 | if (row.personalMessage == "YES") { |
77 | - return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; | 113 | + return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;color:#409EFF"></i><span></span>`; |
78 | } else { | 114 | } else { |
79 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; | 115 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; |
80 | } | 116 | } |
@@ -82,12 +118,20 @@ export default { | @@ -82,12 +118,20 @@ export default { | ||
82 | 118 | ||
83 | }, { | 119 | }, { |
84 | prop: 'personalSecrecyBook', | 120 | prop: 'personalSecrecyBook', |
85 | - label: '个人保密协议书', | 121 | + label: '入场资料', |
86 | sortable: true, | 122 | sortable: true, |
87 | width: '180px', | 123 | width: '180px', |
124 | + click: function (row) { | ||
125 | + // 点击弹框展示 个人保密协议书 | ||
126 | + title.value = "入场资料"; | ||
127 | + componentName.value = "DOCUMENT"; | ||
128 | + docType.value = "THREE_PERSONAGE_NDA"; | ||
129 | + docTypeName.value = "入场资料"; | ||
130 | + showDialog(true); | ||
131 | + }, | ||
88 | render: function (row) { | 132 | render: function (row) { |
89 | if (row.personalSecrecyBook == "YES") { | 133 | if (row.personalSecrecyBook == "YES") { |
90 | - return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; | 134 | + return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;color:#409EFF"></i><span></span>`; |
91 | } else { | 135 | } else { |
92 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; | 136 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; |
93 | } | 137 | } |
@@ -97,9 +141,17 @@ export default { | @@ -97,9 +141,17 @@ export default { | ||
97 | label: '月度总结', | 141 | label: '月度总结', |
98 | sortable: true, | 142 | sortable: true, |
99 | width: '180px', | 143 | width: '180px', |
144 | + click: function (row) { | ||
145 | + // 点击弹框展示 月度总结 | ||
146 | + title.value = "月度总结"; | ||
147 | + componentName.value = "DOCUMENT"; | ||
148 | + docType.value = "THREE_MONTHLY_SUMMARY"; | ||
149 | + docTypeName.value = "月度总结"; | ||
150 | + showDialog(true); | ||
151 | + }, | ||
100 | render: function (row) { | 152 | render: function (row) { |
101 | if (row.monthlySummary == "YES") { | 153 | if (row.monthlySummary == "YES") { |
102 | - return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; | 154 | + return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;color:#409EFF"></i><span></span>`; |
103 | } else { | 155 | } else { |
104 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; | 156 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; |
105 | 157 | ||
@@ -107,6 +159,11 @@ export default { | @@ -107,6 +159,11 @@ export default { | ||
107 | } | 159 | } |
108 | }]); | 160 | }]); |
109 | 161 | ||
162 | + | ||
163 | + let showDialog = (flg) => { | ||
164 | + dialogFlg.value = flg; | ||
165 | + } | ||
166 | + | ||
110 | let dataList = Vue.ref([]); | 167 | let dataList = Vue.ref([]); |
111 | let currentPage = Vue.ref(1); | 168 | let currentPage = Vue.ref(1); |
112 | let total = Vue.ref(0); | 169 | let total = Vue.ref(0); |
@@ -140,6 +197,7 @@ export default { | @@ -140,6 +197,7 @@ export default { | ||
140 | }); | 197 | }); |
141 | } | 198 | } |
142 | 199 | ||
200 | + | ||
143 | // 挂载完 | 201 | // 挂载完 |
144 | Vue.onMounted(() => { | 202 | Vue.onMounted(() => { |
145 | getPage(); | 203 | getPage(); |
@@ -160,7 +218,13 @@ export default { | @@ -160,7 +218,13 @@ export default { | ||
160 | dataList, | 218 | dataList, |
161 | currentPage, | 219 | currentPage, |
162 | total, | 220 | total, |
163 | - getPage | 221 | + getPage, |
222 | + title, | ||
223 | + docType, | ||
224 | + docTypeName, | ||
225 | + dialogFlg, | ||
226 | + showDialog, | ||
227 | + componentName | ||
164 | } | 228 | } |
165 | } | 229 | } |
166 | } | 230 | } |
1 | -<div style="padding-top: 20px;"> | ||
2 | - <el-divider content-position="left">个人信息</el-divider> | ||
3 | - <el-form :model="ruleForm" label-width="120px" :size="$global.elementSize"> | ||
4 | - <el-row> | ||
5 | - <el-col :span="8"> | ||
6 | - <el-form-item label="姓名" prop="nickname" class="form-class"> | ||
7 | - <el-input v-model="ruleForm.nickname" disabled style='width: 190px;'></el-input> | ||
8 | - </el-form-item> | ||
9 | - <el-form-item label="性别" prop="sex" class="form-class"> | ||
10 | - <el-radio-group v-model="ruleForm.sex"> | ||
11 | - <el-radio :label="1">男</el-radio> | ||
12 | - <el-radio :label="0">女</el-radio> | ||
13 | - </el-radio-group> | ||
14 | - </el-form-item> | ||
15 | - <el-form-item label="学历" prop="education" class="form-class"> | ||
16 | - <el-input v-model="ruleForm.education" style='width: 190px;'></el-input> | ||
17 | - </el-form-item> | ||
18 | - <el-form-item label="手机号" prop="phone" class="form-class"> | ||
19 | - <el-input v-model="ruleForm.phone" disabled style='width: 190px;'></el-input> | ||
20 | - </el-form-item> | ||
21 | - <el-form-item label="电子邮箱" prop="email" class="form-class"> | ||
22 | - <el-input v-model="ruleForm.email" style='width: 190px;'></el-input> | ||
23 | - </el-form-item> | 1 | +<div class="yfyw-user"> |
2 | + <div> | ||
3 | + <el-avatar :size="80" :src="imageUrl"> | ||
4 | + <i class="iconfont icon-yonghu" style="font-size: 80px;"/> | ||
5 | + </el-avatar> | ||
6 | + <el-upload | ||
7 | + class="upload-demo" | ||
8 | + :show-file-list="false" | ||
9 | + :before-upload="beforeAvatarUpload" | ||
10 | + :multiple="false" | ||
11 | + :http-request="getFile" | ||
12 | + :auto-upload="true"> | ||
13 | + <el-button size="mini" type="primary">上传照片</el-button> | ||
14 | + </el-upload> | ||
15 | + </div> | ||
16 | + <div class="title"> | ||
17 | + <i class="iconfont icon-icon--yingbing" /> 人员基本信息 | ||
18 | + </div> | ||
19 | + <div style="padding-left: 40px;margin-bottom: 6px"> | ||
20 | + <el-form :model="ruleForm" label-width="120px" :size="$global.elementSize" label-position="top" > | ||
21 | + <el-row :gutter="5"> | ||
22 | + <el-col :span="8"> | ||
23 | + <el-form-item label="姓名" prop="nickname" class="form-class"> | ||
24 | + <el-input v-model="ruleForm.nickname" :readonly="isAdmin()"></el-input> | ||
25 | + </el-form-item> | ||
26 | + </el-col> | ||
27 | + <el-col :span="8"> | ||
28 | + <el-form-item label="性别" prop="sex" class="form-class"> | ||
29 | + <el-radio-group v-model="ruleForm.sex"> | ||
30 | + <el-radio :label="1">男</el-radio> | ||
31 | + <el-radio :label="0">女</el-radio> | ||
32 | + </el-radio-group> | ||
33 | + </el-form-item> | ||
34 | + </el-col> | ||
35 | + <el-col :span="8"> | ||
36 | + <el-form-item label="年龄" prop="age" class="form-class"> | ||
37 | + <el-input v-model="ruleForm.age" type="number"></el-input> | ||
38 | + </el-form-item> | ||
39 | + </el-col> | ||
40 | + </el-row> | ||
24 | 41 | ||
25 | - <el-form-item label="入职时间" prop="entryTime" class="form-class"> | ||
26 | - <el-date-picker | ||
27 | - disabled | ||
28 | - v-model="ruleForm.entryTime" | ||
29 | - type="date" | ||
30 | - style='width: 190px;' | ||
31 | - placeholder="选择日期"> | ||
32 | - </el-date-picker> | ||
33 | - </el-form-item> | ||
34 | - <el-form-item label="获得证书" prop="certificate" disabled class="form-class"> | ||
35 | - <el-input v-model="ruleForm.certificate" style='width: 190px;'></el-input> | ||
36 | - </el-form-item> | ||
37 | - </el-col> | ||
38 | - <el-col :span="8"> | ||
39 | - <el-form-item label="所在公司" prop="company" class="form-class"> | ||
40 | - <el-input v-model="ruleForm.company" disabled style='width: 190px;'></el-input> | ||
41 | - </el-form-item> | ||
42 | - <el-form-item label="年龄" prop="age" class="form-class"> | ||
43 | - <el-input v-model="ruleForm.age" style='width: 190px;'></el-input> | ||
44 | - </el-form-item> | ||
45 | - <el-form-item label="毕业院校" prop="university" class="form-class"> | ||
46 | - <el-input v-model="ruleForm.university" disabled style='width: 190px;'></el-input> | ||
47 | - </el-form-item> | ||
48 | - <el-form-item label="座机号码" prop="tel" class="form-class"> | ||
49 | - <el-input v-model="ruleForm.tel" style='width: 190px;'></el-input> | ||
50 | - </el-form-item> | ||
51 | - <el-form-item label="家庭住址" prop="post" class="form-class"> | ||
52 | - <el-input v-model="ruleForm.post" style='width: 190px;'></el-input> | ||
53 | - </el-form-item> | ||
54 | - <el-form-item label="离职时间" prop="quitTime" class="form-class"> | ||
55 | - <el-date-picker | ||
56 | - v-model="ruleForm.quitTime" | ||
57 | - disabled | ||
58 | - type="date" | ||
59 | - style='width: 190px;' | ||
60 | - placeholder="选择日期"> | ||
61 | - </el-date-picker> | ||
62 | - </el-form-item> | ||
63 | - </el-col> | ||
64 | - <el-col :span="8"> | ||
65 | - <el-image style="width: 200px; height: 200px" :src="imageUrl"></el-image> | ||
66 | - <el-upload | ||
67 | - class="upload-demo" | ||
68 | - :show-file-list="false" | ||
69 | - :before-upload="beforeAvatarUpload" | ||
70 | - :multiple="false" | ||
71 | - :http-request="getFile" | ||
72 | - :auto-upload="true"> | ||
73 | - <el-button size="small" type="primary">上传照片</el-button> | ||
74 | - </el-upload> | ||
75 | - </el-col> | ||
76 | - </el-row> | ||
77 | - <div style="text-align: center;"> | ||
78 | - <el-button type="primary" size="small" @click="saveUser">保存</el-button> | 42 | + |
43 | + <el-row :gutter="5"> | ||
44 | + <el-col :span="8"> | ||
45 | + <el-form-item label="座机号码" prop="tel" class="form-class"> | ||
46 | + <el-input v-model="ruleForm.tel"></el-input> | ||
47 | + </el-form-item> | ||
48 | + </el-col> | ||
49 | + <el-col :span="8"> | ||
50 | + <el-form-item label="手机号" prop="phone" class="form-class"> | ||
51 | + <el-input v-model="ruleForm.phone" :readonly="isAdmin()"></el-input> | ||
52 | + </el-form-item> | ||
53 | + </el-col> | ||
54 | + <el-col :span="8"> | ||
55 | + <el-form-item label="电子邮箱" prop="email" class="form-class"> | ||
56 | + <el-input v-model="ruleForm.email"></el-input> | ||
57 | + </el-form-item> | ||
58 | + </el-col> | ||
59 | + </el-row> | ||
60 | + | ||
61 | + <el-row :gutter="5"> | ||
62 | + <el-col :span="8"> | ||
63 | + <el-form-item label="毕业院校" prop="university" class="form-class"> | ||
64 | + <el-input v-model="ruleForm.university" :readonly="isAdmin()"></el-input> | ||
65 | + </el-form-item> | ||
66 | + | ||
67 | + </el-col> | ||
68 | + <el-col :span="8"> | ||
69 | + <el-form-item label="学历" prop="education" class="form-class"> | ||
70 | + <el-input v-model="ruleForm.education"></el-input> | ||
71 | + </el-form-item> | ||
72 | + </el-col> | ||
73 | + <el-col :span="8"> | ||
74 | + <el-form-item label="所在公司" prop="company" class="form-class"> | ||
75 | + <el-input v-model="ruleForm.company" :readonly="isAdmin()"></el-input> | ||
76 | + </el-form-item> | ||
77 | + </el-col> | ||
78 | + </el-row> | ||
79 | + | ||
80 | + <el-row :gutter="5"> | ||
81 | + <el-col :span="8"> | ||
82 | + <el-form-item label="在职状态" prop="certificate" :readonly="isAdmin()" class="form-class"> | ||
83 | + <el-radio-group v-model="ruleForm.state"> | ||
84 | + <el-radio :label="1">在职</el-radio> | ||
85 | + <el-radio :label="2">离职</el-radio> | ||
86 | + </el-radio-group> | ||
87 | + </el-form-item> | ||
88 | + </el-col> | ||
89 | + <el-col :span="8"> | ||
90 | + <el-form-item label="入职时间" prop="entryTime" class="form-class"> | ||
91 | + <el-date-picker | ||
92 | + :readonly="isAdmin()" | ||
93 | + v-model="ruleForm.entryTime" | ||
94 | + type="date" | ||
95 | + placeholder="选择日期"> | ||
96 | + </el-date-picker> | ||
97 | + </el-form-item> | ||
98 | + </el-col> | ||
99 | + <el-col :span="8"> | ||
100 | + <el-form-item label="离职时间" prop="quitTime" class="form-class"> | ||
101 | + <el-date-picker | ||
102 | + v-model="ruleForm.quitTime" | ||
103 | + :readonly="isAdmin()" | ||
104 | + type="date" | ||
105 | + placeholder="选择日期"> | ||
106 | + </el-date-picker> | ||
107 | + </el-form-item> | ||
108 | + </el-col> | ||
109 | + </el-row> | ||
110 | + | ||
111 | + <el-row :gutter="5"> | ||
112 | + <el-col :span="24"> | ||
113 | + <el-form-item label="获得证书" prop="post" class="form-textarea"> | ||
114 | + <el-input v-model="ruleForm.certificate" type="textarea"></el-input> | ||
115 | + </el-form-item> | ||
116 | + </el-col> | ||
117 | + </el-row> | ||
118 | + <el-row :gutter="5"> | ||
119 | + <el-col :span="24"> | ||
120 | + <el-form-item label="家庭住址" prop="post" class="form-textarea"> | ||
121 | + <el-input v-model="ruleForm.post" type="textarea"></el-input> | ||
122 | + </el-form-item> | ||
123 | + </el-col> | ||
124 | + </el-row> | ||
125 | + <div style="text-align: center;padding-top: 10px"> | ||
126 | + <el-button type="primary" size="mini" @click="saveUser">保存基本信息</el-button> | ||
127 | + </div> | ||
128 | + </el-form> | ||
129 | + </div> | ||
130 | + <!--资产信息--> | ||
131 | + <div class="title"> | ||
132 | + <i class="iconfont icon-liebiaomoshi"/> 资产信息 | ||
133 | + | ||
134 | + <el-dropdown size="mini" split-button @click="assetsAdd('bastion',`新建${icon['bastion'].name}资产`)" style="margin-left: 20px"> | ||
135 | + <i class="icon el-icon-plus"/>添加{{icon['bastion'].name}} | ||
136 | + <template #dropdown> | ||
137 | + <div style="max-height: 300px;overflow-y: auto"> | ||
138 | + <el-dropdown-menu> | ||
139 | + <el-dropdown-item v-for="(v,k) in icon" @click="assetsAdd(k,`新建${icon[k].name}资产`)"> | ||
140 | + 添加{{v.name}} | ||
141 | + </el-dropdown-item> | ||
142 | + </el-dropdown-menu> | ||
143 | + </div> | ||
144 | + </template> | ||
145 | + </el-dropdown> | ||
146 | + </div> | ||
147 | + | ||
148 | + <div v-for="(v,k) in assetsMaps"> | ||
149 | + <div class="zc-view" v-for="(arr,index) in v"> | ||
150 | + <div class="zc-img"> | ||
151 | + <i class="iconfont" :class="icon[k].icon"></i><br/> | ||
152 | + {{ icon[k].name }} | ||
153 | + <span v-if="index > 0">({{index}})</span> | ||
154 | + </div> | ||
155 | + <div class="zc-info"> | ||
156 | + <div class="zc-item"> | ||
157 | + <div class="zc-item-label" v-for="(item,index2) in arr"> | ||
158 | + <span class="zc-item-label-left">{{item.name}}:</span> | ||
159 | + <span class="zc-item-label-right">{{item.value}}</span> | ||
160 | + </div> | ||
161 | + </div> | ||
162 | + <div class="zc-item-tools"> | ||
163 | + <el-button-group size="mini"> | ||
164 | + <el-button @click="btnClick('add',arr,`新建${icon[k].name}资产`)"> | ||
165 | + <i class="el-icon-plus"/> | ||
166 | + </el-button> | ||
167 | + <!--<el-button @click="btnClick('save',arr,`保存${icon[k].name}资产`)"> | ||
168 | + <i class="el-icon-check"/> | ||
169 | + </el-button>--> | ||
170 | + <el-button @click="btnClick('edit',arr,`编辑${icon[k].name}资产`)"> | ||
171 | + <i class="el-icon-edit"/> | ||
172 | + </el-button> | ||
173 | + <el-button @click="deleteAssets(arr,`删除${icon[k].name}资产`)"> | ||
174 | + <i class="el-icon-remove"/> | ||
175 | + </el-button> | ||
176 | + </el-button-group> | ||
177 | + </div> | ||
178 | + </div> | ||
79 | </div> | 179 | </div> |
80 | - <!-- <el-form-item> | ||
81 | - <el-button type="primary" @click="submitForm('ruleForm')" | ||
82 | - >Create</el-button | ||
83 | - > | ||
84 | - <el-button @click="resetForm('ruleForm')">Reset</el-button> | ||
85 | - </el-form-item> --> | ||
86 | - </el-form> | 180 | + </div> |
181 | + | ||
182 | + <cm-dialog :title="btnType.title" width="60%" :showDialogVisible="op" @hidedialog="showDialog" :showFooter="true" @okfunc="okFunc"> | ||
183 | + <template v-slot style="padding: 10px"> | ||
184 | + <el-form label-width="120px" :size="$global.elementSize" label-position="top" > | ||
185 | + <el-row :gutter="5" > | ||
186 | + <el-col :span="8" v-for="item in btnType.data"> | ||
187 | + <el-form-item :label="item.name" :prop="item.name" class="form-class"> | ||
188 | + <el-input v-if="item.extend && item.extend.dict == undefined" v-model="item.value"></el-input> | ||
189 | + | ||
190 | + <el-select v-else v-model="item.value" :placeholder="`请选择${item.name}`"> | ||
191 | + <el-option | ||
192 | + v-for="item in item.extend.dict" | ||
193 | + :key="item.value" | ||
194 | + :label="item.name" | ||
195 | + :value="item.name" > | ||
196 | + </el-option> | ||
197 | + </el-select> | ||
198 | + | ||
199 | + </el-form-item> | ||
200 | + </el-col> | ||
201 | + | ||
202 | + </el-row> | ||
203 | + </el-form> | ||
204 | + </template> | ||
205 | + </cm-dialog> | ||
206 | + | ||
207 | + | ||
87 | </div> | 208 | </div> |
1 | +const assets = (props, {attrs, slots, emit}) => { | ||
2 | + | ||
3 | + const {proxy} = Vue.getCurrentInstance(); | ||
4 | + let assetsMaps = Vue.ref({}); | ||
5 | + let btnType = Vue.ref({ | ||
6 | + flg: '', | ||
7 | + data: [] | ||
8 | + }); | ||
9 | + | ||
10 | + // 类型 bastion 堡垒机,dam 防水坝,virtual 虚拟桌面 | ||
11 | + let icon = { | ||
12 | + bastion: { | ||
13 | + name: '堡垒机', | ||
14 | + icon: 'icon-baoleiji' | ||
15 | + }, | ||
16 | + dam: { | ||
17 | + name: '防水坝', | ||
18 | + icon: 'icon-shuiba2' | ||
19 | + }, | ||
20 | + virtual: { | ||
21 | + name: '虚拟桌面', | ||
22 | + icon: 'icon-xunizhuomian' | ||
23 | + }, | ||
24 | + } | ||
25 | + | ||
26 | + // 查询列表 | ||
27 | + let getAssets = () => { | ||
28 | + proxy.$http.get(`/api-web/person/assets/userList/${props.parentNode.id}`, {}, function (res) { | ||
29 | + if (res && res.map) { | ||
30 | + assetsMaps.value = res.map; | ||
31 | + } | ||
32 | + }); | ||
33 | + } | ||
34 | + | ||
35 | + let assetsAdd = (type, msg) => { | ||
36 | + proxy.$http.get(`/api-web/person/assets/typeList/${type}`, {}, function (res) { | ||
37 | + if (res && res.data && res.data.length > 0) { | ||
38 | + btnClick('add',res.data,msg); | ||
39 | + } else { | ||
40 | + proxy.$global.showMsg("没有配置属性!","warning"); | ||
41 | + } | ||
42 | + }); | ||
43 | + } | ||
44 | + | ||
45 | + /** | ||
46 | + * 新增资产 | ||
47 | + * <p> | ||
48 | + * 作者: Wang | ||
49 | + * 时间:2021/11/3 20:14 | ||
50 | + */ | ||
51 | + let btnClick = (flg, arr, title) => { | ||
52 | + let data = []; | ||
53 | + if ('add' == flg) { | ||
54 | + // 新增复制 | ||
55 | + arr.map((v) => { | ||
56 | + let obj = {...v}; | ||
57 | + obj.value = ''; | ||
58 | + obj.id = 0; | ||
59 | + obj.groupings = (new Date()).getTime(); | ||
60 | + data.push(obj) | ||
61 | + }) | ||
62 | + } else { | ||
63 | + data = arr; | ||
64 | + } | ||
65 | + | ||
66 | + data.map(function (v){ | ||
67 | + let str = v.extend; | ||
68 | + if(str){ | ||
69 | + try { | ||
70 | + let json = JSON.parse(str); | ||
71 | + v.extend = json; | ||
72 | + }catch (e){ | ||
73 | + } | ||
74 | + } | ||
75 | + }) | ||
76 | + | ||
77 | + btnType.value = { | ||
78 | + flg: flg, | ||
79 | + data: data, | ||
80 | + title: title | ||
81 | + } | ||
82 | + showDialog(true); | ||
83 | + } | ||
84 | + | ||
85 | + /** | ||
86 | + * 新增资产 | ||
87 | + * <p> | ||
88 | + * 作者: Wang | ||
89 | + * 时间:2021/11/3 20:14 | ||
90 | + */ | ||
91 | + let addAssets = () => { | ||
92 | + let data = btnType.value.data | ||
93 | + data.map(function (v){ | ||
94 | + v.extend = JSON.stringify(v.extend); | ||
95 | + }) | ||
96 | + proxy.$http.post(`/api-web/person/assets/add/${props.parentNode.id}`,data , function (res) { | ||
97 | + if (res && res.success) { | ||
98 | + proxy.$global.showMsg("添加成功"); | ||
99 | + showDialog(false); | ||
100 | + getAssets(); | ||
101 | + } | ||
102 | + }); | ||
103 | + } | ||
104 | + | ||
105 | + | ||
106 | + /** | ||
107 | + * 保存资产 | ||
108 | + * <p> | ||
109 | + * 作者: Wang | ||
110 | + * 时间:2021/11/3 20:14 | ||
111 | + */ | ||
112 | + let saveAssets = () => { | ||
113 | + let data = btnType.value.data | ||
114 | + data.map(function (v){ | ||
115 | + v.extend = JSON.stringify(v.extend); | ||
116 | + }) | ||
117 | + proxy.$http.post(`/api-web/person/assets/edit/${props.parentNode.id}`, data, function (res) { | ||
118 | + if (res && res.success) { | ||
119 | + proxy.$global.showMsg("编辑成功"); | ||
120 | + showDialog(false); | ||
121 | + getAssets(); | ||
122 | + } | ||
123 | + }); | ||
124 | + } | ||
125 | + | ||
126 | + /** | ||
127 | + * 删除资产 | ||
128 | + * <p> | ||
129 | + * 作者: Wang | ||
130 | + * 时间:2021/11/3 20:14 | ||
131 | + */ | ||
132 | + let deleteAssets = (arr) => { | ||
133 | + proxy.$global.confirm(`您确认永久删除该资产信息吗?`,function (){ | ||
134 | + proxy.$http.post(`/api-web/person/assets/delete/${props.parentNode.id}`, arr, function (res) { | ||
135 | + if (res && res.success) { | ||
136 | + proxy.$global.showMsg("删除成功"); | ||
137 | + } else { | ||
138 | + proxy.$global.showMsg("删除失败,资产不存在或者已被删除!","error"); | ||
139 | + } | ||
140 | + showDialog(false); | ||
141 | + getAssets(); | ||
142 | + }); | ||
143 | + }) | ||
144 | + } | ||
145 | + | ||
146 | + // 弹框标识 | ||
147 | + let op = Vue.ref(false); | ||
148 | + | ||
149 | + /** | ||
150 | + * 展示编辑弹框 | ||
151 | + * <p> | ||
152 | + * 作者: Wang | ||
153 | + * 时间:2021/11/3 20:17 | ||
154 | + */ | ||
155 | + let showDialog = (flg) => { | ||
156 | + op.value = flg; | ||
157 | + } | ||
158 | + | ||
159 | + let okFunc = () => { | ||
160 | + let flg = btnType.value.flg; | ||
161 | + if (flg == 'add') { | ||
162 | + addAssets(); | ||
163 | + } else if (flg == 'edit') { | ||
164 | + saveAssets(); | ||
165 | + } | ||
166 | + } | ||
167 | + | ||
168 | + return { | ||
169 | + icon, | ||
170 | + getAssets, | ||
171 | + assetsMaps, | ||
172 | + addAssets, | ||
173 | + saveAssets, | ||
174 | + deleteAssets, | ||
175 | + op, | ||
176 | + showDialog, | ||
177 | + okFunc, | ||
178 | + btnClick, | ||
179 | + btnType, | ||
180 | + assetsAdd | ||
181 | + } | ||
182 | +} | ||
183 | + | ||
184 | + | ||
1 | export default { | 185 | export default { |
2 | name: 'projectPJIndex', | 186 | name: 'projectPJIndex', |
3 | template: '', | 187 | template: '', |
@@ -25,6 +209,7 @@ export default { | @@ -25,6 +209,7 @@ export default { | ||
25 | const {proxy} = Vue.getCurrentInstance(); | 209 | const {proxy} = Vue.getCurrentInstance(); |
26 | let imageUrl = Vue.ref(''); | 210 | let imageUrl = Vue.ref(''); |
27 | 211 | ||
212 | + | ||
28 | let ruleForm = Vue.ref({ | 213 | let ruleForm = Vue.ref({ |
29 | nickname: '', | 214 | nickname: '', |
30 | sex: 0, | 215 | sex: 0, |
@@ -48,11 +233,12 @@ export default { | @@ -48,11 +233,12 @@ export default { | ||
48 | let getPage = () => { | 233 | let getPage = () => { |
49 | proxy.$http.get("/api-web/bOpsPerson/search", { | 234 | proxy.$http.get("/api-web/bOpsPerson/search", { |
50 | "nickname": props.parentNode.label, | 235 | "nickname": props.parentNode.label, |
236 | + "id": props.parentNode.id, | ||
51 | "projectId": props.projectId | 237 | "projectId": props.projectId |
52 | }, function (res) { | 238 | }, function (res) { |
53 | if (res && res.object) { | 239 | if (res && res.object) { |
54 | ruleForm.value = res.object | 240 | ruleForm.value = res.object |
55 | - }else { | 241 | + } else { |
56 | ruleForm.value = res.object | 242 | ruleForm.value = res.object |
57 | } | 243 | } |
58 | }); | 244 | }); |
@@ -65,7 +251,7 @@ export default { | @@ -65,7 +251,7 @@ export default { | ||
65 | // 保存用户信息 | 251 | // 保存用户信息 |
66 | let saveUser = () => { | 252 | let saveUser = () => { |
67 | 253 | ||
68 | - proxy.$http.post("/api-web/bOpsPerson/saveOrUpdate",ruleForm.value , function (res) { | 254 | + proxy.$http.post("/api-web/bOpsPerson/saveOrUpdate", ruleForm.value, function (res) { |
69 | if (res && res.code == 0) { | 255 | if (res && res.code == 0) { |
70 | proxy.$global.showMsg('保存成功!'); | 256 | proxy.$global.showMsg('保存成功!'); |
71 | } | 257 | } |
@@ -73,10 +259,10 @@ export default { | @@ -73,10 +259,10 @@ export default { | ||
73 | } | 259 | } |
74 | 260 | ||
75 | 261 | ||
76 | - let getFile = (param) =>{ | 262 | + let getFile = (param) => { |
77 | let fileObj = param.file | 263 | let fileObj = param.file |
78 | let params = { | 264 | let params = { |
79 | - file:fileObj, | 265 | + file: fileObj, |
80 | id: props.parentNode.id | 266 | id: props.parentNode.id |
81 | } | 267 | } |
82 | // 上传文件 | 268 | // 上传文件 |
@@ -88,30 +274,64 @@ export default { | @@ -88,30 +274,64 @@ export default { | ||
88 | imageUrl.value = URL.createObjectURL(fileObj); | 274 | imageUrl.value = URL.createObjectURL(fileObj); |
89 | } | 275 | } |
90 | 276 | ||
91 | - let beforeAvatarUpload = (file) =>{ | 277 | + let beforeAvatarUpload = (file) => { |
92 | const isJPG = file.type.indexOf('image/') != -1 | 278 | const isJPG = file.type.indexOf('image/') != -1 |
93 | if (!isJPG) { | 279 | if (!isJPG) { |
94 | - proxy.$global.showMsg('您上传的不是图片文件,请选择图片!','error'); | 280 | + proxy.$global.showMsg('您上传的不是图片文件,请选择图片!', 'error'); |
95 | } | 281 | } |
96 | return isJPG | 282 | return isJPG |
97 | } | 283 | } |
98 | 284 | ||
285 | + let isAdmin = () => { | ||
286 | + return localStorage.getItem('lgn') != 'admin'; | ||
287 | + } | ||
288 | + | ||
289 | + const { | ||
290 | + icon, | ||
291 | + getAssets, | ||
292 | + assetsMaps, | ||
293 | + addAssets, | ||
294 | + saveAssets, | ||
295 | + deleteAssets, | ||
296 | + op, | ||
297 | + showDialog, | ||
298 | + okFunc, | ||
299 | + btnClick, | ||
300 | + btnType, | ||
301 | + assetsAdd | ||
302 | + } = assets(props, {attrs, slots, emit}); | ||
303 | + | ||
99 | // // 挂载完 | 304 | // // 挂载完 |
100 | Vue.onMounted(() => { | 305 | Vue.onMounted(() => { |
101 | getPage(); | 306 | getPage(); |
307 | + getAssets(); | ||
102 | }) | 308 | }) |
103 | 309 | ||
104 | // 监听编辑状态 | 310 | // 监听编辑状态 |
105 | Vue.watch(() => props.projectId, (newValue, oldVlaue) => { | 311 | Vue.watch(() => props.projectId, (newValue, oldVlaue) => { |
106 | getPage(); | 312 | getPage(); |
313 | + getAssets(); | ||
107 | }); | 314 | }); |
108 | - | ||
109 | return { | 315 | return { |
110 | imageUrl, | 316 | imageUrl, |
111 | ruleForm, | 317 | ruleForm, |
112 | saveUser, | 318 | saveUser, |
113 | getFile, | 319 | getFile, |
114 | beforeAvatarUpload, | 320 | beforeAvatarUpload, |
321 | + isAdmin, | ||
322 | + // 资产属性 | ||
323 | + icon, | ||
324 | + getAssets, | ||
325 | + assetsMaps, | ||
326 | + addAssets, | ||
327 | + saveAssets, | ||
328 | + deleteAssets, | ||
329 | + op, | ||
330 | + showDialog, | ||
331 | + okFunc, | ||
332 | + btnClick, | ||
333 | + btnType, | ||
334 | + assetsAdd | ||
115 | } | 335 | } |
116 | } | 336 | } |
117 | } | 337 | } |
@@ -37,7 +37,7 @@ export default { | @@ -37,7 +37,7 @@ export default { | ||
37 | label: '日常资料', | 37 | label: '日常资料', |
38 | render: function (row) { | 38 | render: function (row) { |
39 | if(row.dayMaterial =="YES"){ | 39 | if(row.dayMaterial =="YES"){ |
40 | - return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; | 40 | + return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;color:#409EFF"></i><span></span>`; |
41 | }else{ | 41 | }else{ |
42 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; | 42 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; |
43 | } | 43 | } |
@@ -49,7 +49,7 @@ export default { | @@ -49,7 +49,7 @@ export default { | ||
49 | label: '文档资料', | 49 | label: '文档资料', |
50 | render: function (row) { | 50 | render: function (row) { |
51 | if(row.documentMaterial =="YES"){ | 51 | if(row.documentMaterial =="YES"){ |
52 | - return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; | 52 | + return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;color:#409EFF"></i><span></span>`; |
53 | }else{ | 53 | }else{ |
54 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; | 54 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; |
55 | } | 55 | } |
@@ -60,7 +60,7 @@ export default { | @@ -60,7 +60,7 @@ export default { | ||
60 | label: '项目保密协议', | 60 | label: '项目保密协议', |
61 | render: function (row) { | 61 | render: function (row) { |
62 | if(row.nda =="YES"){ | 62 | if(row.nda =="YES"){ |
63 | - return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;"></i><span></span>`; | 63 | + return `<i class="iconfont icon-icon--yes" style="font-size: 22px;margin-right: 10px;color:#409EFF"></i><span></span>`; |
64 | }else{ | 64 | }else{ |
65 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; | 65 | return `<i class="iconfont icon-icon--shanchu" style="font-size: 22px;margin-right: 10px;color:red"></i><span></span>`; |
66 | } | 66 | } |
@@ -14,7 +14,7 @@ | @@ -14,7 +14,7 @@ | ||
14 | </div> | 14 | </div> |
15 | </el-col> | 15 | </el-col> |
16 | <el-col :span="20" > | 16 | <el-col :span="20" > |
17 | - <div class="cm-card" :style="{'min-height':height+'px','height':'100%','padding-left':'5px'}" > | 17 | + <div class="cm-card" :style="{'max-height':height+'px','height':'100%','padding-left':'5px'}" > |
18 | <component v-bind:is="componentName" | 18 | <component v-bind:is="componentName" |
19 | :docType="docType" | 19 | :docType="docType" |
20 | :docTypeName="docTypeName" | 20 | :docTypeName="docTypeName" |
-
Please register or login to post a comment