From 115f1dbff2e7a4d74e9f7b62d5e2e08fb009dac4 Mon Sep 17 00:00:00 2001 From: SHAOJIAHAO <55341701@qq.com> Date: Fri, 5 Aug 2022 14:38:12 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=E6=94=AF=E9=98=9F=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/home/home.module.ts | 4 +- .../task/zhi-audit/zhi-audit.component.html | 216 +++++++++++++++++- .../task/zhi-audit/zhi-audit.component.scss | 183 +++++++++++++++ .../task/zhi-audit/zhi-audit.component.ts | 110 ++++++++- .../zhi-indicators.component.html | 142 +++++++++++- .../zhi-indicators.component.ts | 19 +- src/assets/images/icon/agree.png | Bin 0 -> 5212 bytes src/assets/images/icon/reject.png | Bin 0 -> 5107 bytes src/styles.scss | 6 +- 9 files changed, 667 insertions(+), 13 deletions(-) create mode 100644 src/assets/images/icon/agree.png create mode 100644 src/assets/images/icon/reject.png diff --git a/src/app/home/home.module.ts b/src/app/home/home.module.ts index d27f592..cc307d0 100644 --- a/src/app/home/home.module.ts +++ b/src/app/home/home.module.ts @@ -45,6 +45,7 @@ import { AddUnitComponent } from './basic-info/add-unit/add-unit.component'; import { NzCollapseModule } from 'ng-zorro-antd/collapse'; import { NzPopoverModule } from 'ng-zorro-antd/popover'; import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; +import { ScrollingModule } from '@angular/cdk/scrolling'; @NgModule({ declarations: [ NavComponent, @@ -95,7 +96,8 @@ import { NzCheckboxModule } from 'ng-zorro-antd/checkbox'; NzTreeModule, NzCollapseModule, NzPopoverModule, - NzCheckboxModule + NzCheckboxModule, + ScrollingModule ], entryComponents: [AddroleComponent, EditroleComponent, AdduserComponent, EdituserComponent, AddorComponent, EditorComponent] }) diff --git a/src/app/home/task/zhi-audit/zhi-audit.component.html b/src/app/home/task/zhi-audit/zhi-audit.component.html index 8ba83c5..2e70ed2 100644 --- a/src/app/home/task/zhi-audit/zhi-audit.component.html +++ b/src/app/home/task/zhi-audit/zhi-audit.component.html @@ -1 +1,215 @@ -

zhi-audit works!

+ +
+
+ + + + +
+ {{item.name}} +
+
+
+ +
+
+
+
+ + 双随机 +
+ + 已选择: 15 家单位 + + | + + 已分配: 14 家单位 + + | + + 已通过: 14/15 家单位 + +
+
+ + + + {{doubleRandom.isExpand ? '收起' :'展开'}} + + +
+
+
+ + + + 责任机构 + 任务额 + 单位名称 + 监督员 + 说明 + 操作 + + + + + 访客 + 2021-11-19 + + 22 + + + 22 + + + 一段简短的说明文字... + + + + + 同意 + 驳回 + + + + +
+
+ + + +
+
+
+
+ + 熟悉演练 +
+ + 已选择: 15 家单位 + + | + + 已分配: 14 家单位 + + | + + 已通过: 14/15 家单位 + +
+
+ + + + {{rehearsal.isExpand ? '收起' :'展开'}} + + +
+
+
+ + + + 责任机构 + 任务额 + 单位名称 + 监督员 + 说明 + 操作 + + + + + 访客 + 2021-11-19 + + 22 + + + 22 + + + 一段简短的说明文字... + + + + + 同意 + 驳回 + + + + +
+
+ + + + +
+
+
+
+ + 重大活动 +
+ + + 已分配: 0/0 家单位 + +
+
+ +
+
+
+
+
+
+
+ + 消防宣传 +
+ + + 已分配: 0/0 家单位 + +
+
+ +
+
+
+
+
+
+
+ + 火灾调查 +
+ + + 已分配: 0/0 家单位 + +
+
+ +
+
+
+
+
\ No newline at end of file diff --git a/src/app/home/task/zhi-audit/zhi-audit.component.scss b/src/app/home/task/zhi-audit/zhi-audit.component.scss index e69de29..feac492 100644 --- a/src/app/home/task/zhi-audit/zhi-audit.component.scss +++ b/src/app/home/task/zhi-audit/zhi-audit.component.scss @@ -0,0 +1,183 @@ +.box { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.timebox { + width: 100%; + height: 68px; + box-sizing: border-box; + padding: 0 20px; + display: flex; + align-items: center; + + border-bottom: 1px dashed #C7CAD0; + + nz-select { + margin-right: 16px; + border-radius: 4px 4px 4px 4px; + } + + .monthbtn { + width: 80px; + height: 32px; + line-height: 32px; + background: #FFFFFF; + border-radius: 4px 4px 4px 4px; + opacity: 1; + border: 1px solid #E4E7EC; + color: #303133; + margin-right: 16px; + cursor: pointer; + } + + .selectedMonth { + + background: #2C4DC0; + color: #FFFFFF; + } +} + +.content { + box-sizing: border-box; + padding: 20px; + flex: 1; + overflow-y: auto; + color: #606266; +} + +.panel { + margin-bottom: 16px; + + .panelheader { + justify-content: space-between; + + .panelheaderleft { + display: flex; + align-items: center; + + .panelheadername { + width: 130px; + height: 36px; + box-sizing: border-box; + padding: 8px 28px; + border-radius: 6px 0px 6px 6px; + color: #fff; + margin-right: 36px; + + img { + vertical-align: text-top; + } + } + + .spanline { + color: rgba(44, 77, 192, 0.4000); + margin: 0 20px; + } + } + + .panelheaderright { + display: flex; + align-items: center; + + .expand { + margin-left: 36px; + } + } + } + + .panelcontent { + nz-table { + margin-top: 16px; + } + .explain{ + position: relative; + img{ + width: 36px; + height: 36px; + position: absolute; + right: 20px; + top: 4px; + } + } + } +} + +.panelheadernameblue { + background-color: #1D9DFF; +} + +.panelheadernamepurple { + background-color: #9D80FF; +} + +.panelheadernameblue2 { + background-color: #5087FF; +} + +.panelheadernamegreen { + background-color: #42B983; +} + +.panelheadernameor { + background-color: #FF9203; +} + +.panelheadernameor2 { + background-color: #FF5D2A; +} + +.panelheadernamered { + background-color: #FF404D; +} + +.selectUnitPopover { + width: 550px; + height: 492px; + + nz-form-item { + margin: 12px 0; + } + + display: flex; + flex-direction: column; + + .popoverTitle { + display: flex; + align-items: center; + + span { + color: #C7CAD0; + cursor: pointer; + } + + .selectedspan { + color: #2C4DC0; + } + } + + .popoverContent { + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; + + .popoverContentitem { + flex: 1; + overflow-y: auto; + } + } + + .popoverBtn { + display: flex; + justify-content: flex-end; + margin-top: 16px; + + button { + margin-left: 18px; + } + } +} diff --git a/src/app/home/task/zhi-audit/zhi-audit.component.ts b/src/app/home/task/zhi-audit/zhi-audit.component.ts index e4c6be2..c9d85d8 100644 --- a/src/app/home/task/zhi-audit/zhi-audit.component.ts +++ b/src/app/home/task/zhi-audit/zhi-audit.component.ts @@ -1,5 +1,7 @@ -import { Component, OnInit } from '@angular/core'; - +import { HttpClient } from '@angular/common/http'; +import { Component, OnInit, ViewChild } from '@angular/core'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { TreeService } from 'src/app/service/tree.service'; @Component({ selector: 'app-zhi-audit', templateUrl: './zhi-audit.component.html', @@ -7,9 +9,111 @@ import { Component, OnInit } from '@angular/core'; }) export class ZhiAuditComponent implements OnInit { - constructor() { } + validateForm!: FormGroup; + + constructor(private fb: FormBuilder, private http: HttpClient, private toTree: TreeService) { } + + months = [ + { name: '1月', isable: true }, + { name: '2月', isable: true }, + { name: '3月', isable: true }, + { name: '4月', isable: true }, + { name: '5月', isable: true }, + { name: '6月', isable: true }, + { name: '7月', isable: true }, + { name: '8月', isable: true }, + { name: '9月', isable: true }, + { name: '10月', isable: true }, + { name: '11月', isable: true }, + { name: '12月', isable: true } + ] + selectedMonth + selectMonth(item) { + this.selectedMonth = item.name + } + + + // 双随机 + doubleRandom = { + isExpand: true,//卡片展开 + isPopover: false,//选择单位气泡卡片 + search1: '',//选择单位气泡卡片---单位选择列表 + search1Value: [], + search2: '',//选择单位气泡卡片---组织选择列表 + search2Value: [], + selectedMenu: 1,//选择单位气泡卡片 + data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],//表格数据 + nodes: [] + } + + // 熟悉演练 + rehearsal = { + isExpand: false,//卡片展开 + isPopover: false,//选择单位气泡卡片 + search1: '',//选择单位气泡卡片---单位选择列表 + search1Value: [], + search2: '',//选择单位气泡卡片---组织选择列表 + search2Value: [], + selectedMenu: 1,//选择单位气泡卡片 + data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],//表格数据 + nodes: [] + } + isPopover(data) { + data.isPopover = !data.isPopover + } + //搜索框提交 + submitForm(value): void { + // console.log(value) + } + // 弹出 tab + popoverMenuSelect(data, type) { + data.selectedMenu = type + } + expand(data) { + data.isExpand = !data.isExpand + } ngOnInit(): void { + this.getAllOrganization() } + nzExpandAll = false; + totalCount: string + + allOrList: any + nodes + getAllOrganization() { + let params = { + ContainsChildren: true, + pageSize: 9999 + } + this.http.get('/api/Organizations', { + params: params + }).subscribe((data: any) => { + this.totalCount = data.totalCount + data.items.forEach(element => { + element.key = element.id + element.title = element.name + element.selectable = false + }); + this.allOrList = data.items + this.nodes = [...this.toTree.toTree(data.items)] + + this.doubleRandom.nodes = JSON.parse(JSON.stringify(this.nodes)) + this.rehearsal.nodes = JSON.parse(JSON.stringify(this.nodes)) + }) + } + orcheckbox(data, $event, node) { + if ($event) { + data.search2Value.push(node.origin.name) + } else { + for (let index = 0; index < data.search2Value.length; index++) { + const element = data.search2Value[index]; + if (element == node.origin.name) { + data.search2Value.splice(index, 1) + } + } + } + console.log(data.search2Value) + } } diff --git a/src/app/home/task/zhi-indicators/zhi-indicators.component.html b/src/app/home/task/zhi-indicators/zhi-indicators.component.html index 1c28d08..02eb18f 100644 --- a/src/app/home/task/zhi-indicators/zhi-indicators.component.html +++ b/src/app/home/task/zhi-indicators/zhi-indicators.component.html @@ -10,7 +10,8 @@ {{item.name}} -
+
+
@@ -62,14 +63,16 @@
- + - + {{ node.title }}
@@ -125,14 +128,145 @@ 22 + + + + + + +
+
+ + + +
+
+
+
+ + 熟悉演练 +
+ + +
+
+ 单位名称 + | + 组织机构 +
+
+
+
+ + + + + + + + +
+
+
+
+
+
+
+
+ + + + + + + +
+
+
+ + + +
+ + + + {{ node.title }} + +
+
+ + + + + + + + +
+
+
+ + +
+
+
+ + 已分配: 14/15 家单位 + +
+
+ + + {{rehearsal.isExpand ? '收起' :'展开'}} + + +
+
+
+ + + + 责任机构 + 任务额 + 单位名称 + 监督员 + 说明 + + + + + 访客 + 2021-11-19 + + 22 + 22 + + +
+ + + +
diff --git a/src/app/home/task/zhi-indicators/zhi-indicators.component.ts b/src/app/home/task/zhi-indicators/zhi-indicators.component.ts index 96313d7..172710a 100644 --- a/src/app/home/task/zhi-indicators/zhi-indicators.component.ts +++ b/src/app/home/task/zhi-indicators/zhi-indicators.component.ts @@ -43,7 +43,21 @@ export class ZhiIndicatorsComponent implements OnInit { search2: '',//选择单位气泡卡片---组织选择列表 search2Value: [], selectedMenu: 1,//选择单位气泡卡片 - data: [1]//表格数据 + data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],//表格数据 + nodes: [] + } + + // 熟悉演练 + rehearsal = { + isExpand: false,//卡片展开 + isPopover: false,//选择单位气泡卡片 + search1: '',//选择单位气泡卡片---单位选择列表 + search1Value: [], + search2: '',//选择单位气泡卡片---组织选择列表 + search2Value: [], + selectedMenu: 1,//选择单位气泡卡片 + data: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],//表格数据 + nodes: [] } isPopover(data) { data.isPopover = !data.isPopover @@ -85,6 +99,9 @@ export class ZhiIndicatorsComponent implements OnInit { }); this.allOrList = data.items this.nodes = [...this.toTree.toTree(data.items)] + + this.doubleRandom.nodes = JSON.parse(JSON.stringify(this.nodes)) + this.rehearsal.nodes = JSON.parse(JSON.stringify(this.nodes)) }) } orcheckbox(data, $event, node) { diff --git a/src/assets/images/icon/agree.png b/src/assets/images/icon/agree.png new file mode 100644 index 0000000000000000000000000000000000000000..761de4e9009e67ad9adf601f45d1b3f772e0c293 GIT binary patch literal 5212 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 WHY#ArYj5+-VvlQ& zw%UTWw&RTZAkr;JYwM_pxU_bUYb&#~+I}hq2niuT8x}V zq>>_l;3xe)>Pyvo@7{a<_ndonlpLW;izq26ab?>!NBZ{YCB7aY%Gn~0d#Q*X$}%fO z%P{^ryt#>tDLwNm?4o%HS%j5&odr!)QpJ_hVc@!@)~ZZBH%{aJ5Qxj+lgVdO3!#1ZyO+-n#x9dUtr8VP*@Umy06;r~ zxPLy+&w#Tp@$3`sFHkcp0DfrKApz6_2Bb+|uaiW=zeKbyX7MEe_zMJl$$2^vBEHA+ zXY%Z1p4IUAn(v%BT_@V92mA(0o^np$es{+7;saMz7QfHs{m=P)f;cba-WP1*iM;)T z_%r>UG)JdO-R{p1MQjfmpe`)zAsNokSn#Luv!(w82bYTL1cW=IbD!%^& zbFN1t-^6nxx{u4Q=2z6hg}V;~@_+!XA_=;`+ah+)N-X+{ggiLu`~qOv5b=aW^wU<= z2f7>Q?^B6|Hc4)|mKmI`1E_mzUW}UBUZTW{_F<0GxYHm}Z;Pa4`E791C z;)Sl@`7hw`T5)z=q-K7!r!$b90*r&pzMeC47vl0;SWw2c-^-$ioI@2Xp$U+8jy(r4f4aCTSN8a;Rdsc3D=;|X z@;$Idzm37x1qE4>?u>%N$FTb$%)=XMW_&{uP6F@qld~M>yw1<>E1AwI%(hKDcU;T) zUm|{VB1(EFwB5^FpNZ`Gu_~*9%N?(j0IfpFFCjDKQHul|auG9h(cGb+UQq`u6JDj_s5C0Ar2D>jvk~RkP-; zwS=W=#&qwI=of-}+f0--M)ak98BXVkd_La~8*y!xP$xh#>H(xZ#Z7i(XN7>s4XKcc~2X7TMJY3o&ad8|D+3&Mz6ka;R& z{tbX-5KyINRbmfYIAJtqem-7~G;(gOU)pm1PLxpaeSV(D+OJEq`YUVHci2Fyq#}9t z>>CftQU8KFHy!2oI%jeUlYNRL{I0FXlMHZl;brXpB#3(uFf8Cc#oyHuL~np|X|l6v zSt`zTAf&XQpM2F+*Lwa^ZAJ>>yIPxARkanO;&wB|WyQ5;`Vbh7p*K+m-vtu^{G+TB=Dh~$S!GJm3cj6$! z#n6c6bf!`VO$$7^jmi_qP|Eizi>AV8K-5i1mD4+Xf%Z^u#5{v^ZIlH@rvJ89AI7bX9`030ebZt@Go=yzu0dO8q>DQYE@BVmT9hFUfbI*VVZ@yG z$jtelDC<6jVmQ&xbs$GP2~9-(1K)4OpJ-IGD=NNgAf2tRM->o(5VbhYedbCyhNR8DsI?w0H)4HcJbQPPdJBo>3A>AY9VJ2({S`&y6Bu-33nL|g9>3z79ih3 zqy7pEOQm-E{mQyf;?Cf~0&dpu@IJ(JGOkc9hj#A%Y~IlV*-D@j6a(%Al;qve{%cGd zNiH%D;$Nb4X+a@g!5f@6G^mR!q{g9kZ{_bQDXUn~nN2zpAob{yVe&!wQs(ldpr9*% z;lcr~Xfz^=7S$WttS2;P1fG^dKF4_s5yf`&m^7DI2m(Y)(@&?u;FBE$h zru~j1cM&35M3kT|0pLw6Ze$nl-+$K-(CRK(OZ#ihNg0XP6KH{+7o98cWLb^S5SG=6TT__4>u^`7Lt*8y1kCiM3skh}&{ zaV6Ztp2XI%qt&Xasv&{F`kCn?*qMzu!XGE$D=A4A&mRl$VXXk|!lgx(i2fY}$;f~n zkLtdf+r3F8l6o*oAqYXlV-iGWNWI@^0gCP^O`M~!CJ}{u*m@b)%=>zaNOu$Ej9`;~ zl>lgCO;Q<-OG1ovhw+<3p+7L!1_N*kFOOi??qHXvGWaimoFfr`NfN+Og(ooqerm8t zLe0-7?QJuOT$OeWyLx7VgNEy)M{dTyyog8v+a#Ew;3?*~o=1BSAGj18&#vFdn$Jo7 zp0^VKBaIJ9S_bJt6~$bcybFn92}9!~qzta70GQ^U!}=E@0Y74$U$V|ayf+^uQ#>0| zhz|5bCj284zJ`*SBMJlGCQ8;8po6C%1gGROlP_|hN)Z`(I_Bl((q7+4Gk z&xb$*@bAgOy)ComE|gKjN%)3uL!_RQ20W5h4r)>%$~7C!hQ>aGll}3F@8EPif|Q)q z0iX?-)6a#z3*xb%MjEk&S`n6yE-nML29!wy`~mc@0$`4WqKnnL`?6LEfLbAMD2(LG z1t3XY((aAHBokQ^8=gptg8*6HVtyk!U2T+N)i+mc_v7MaUB$S|F~}E?r*S#})c%dC ztZE)>p8`NcSwDV2fXcZHWrj346L3`AxQL1_02pzgIhguwkk2ONw=|`Qik>Gs_dJ_~ zudz`{@2uVc%9Q%XbtdYt2`lN20VWq3=pJ#=VdG37t?>G_{xjh48|6XH^ot24W6oeJ z2Tjzjg#r#zBh)$qeP2p|<_so8RIyHs421JAYgZY7Z}EkCKpQ0^{#vq=3sM6N<`Shp zol?P-&Ct(wxBwO!Cj2nF%|;IfKfX%(uC! ztdc0Y<7K^jWzLFX_w)||K*dQ{uF!iVevCo9>rc zi|Waj?z`}{xB?kdOtzq%l4)xul+GXkMwH!YtT{uq$oG2?gt$0{s1AnS0xT-ZC098f zg3o6|s<@S$a1C^rdt}sP7aHT=ay~6+O}%0rG+duB6YULs5WK^tKFa2OU!e?&S;*8GT3j_j zZJTUz>@z8=PIA@sn0%srkJ^MY5CTv(NtcfZZbCF)mk+8In{1f{SX%T1f6fBjTIOBD z*d3Ul8CDS)NB_87&I_Bft$wQX?(uWRo4m|iI32Ggw!aj$5Mx-I^h6VcTUV_#e-Lz? z3aH1ET(!XeX=-QNN89Px1_{CyhwE(Hn9ZS-R$aZT(_D+OnOs?o>1Ik&Lq)#@Y7w=WN?>DVK0bCx=T)SHj{&M}4?dQqqeQB&Mf*xTKdz z?T(2p0dGLSYdnp=#ejDtK5&qUSU=V#;DuqqbJFZR6;D}=89^nLl!d4dZOXzW3JCrN zQWmDHmz_2=k+RTYBoX%ypIArlMTackmvr*7?qwHD={TNr(kPNh(`d5BB%P{`&ZN_* zk+^1!0~usB5mm0j~2owC2gol8wzy-MTND=sXZ#whHi*bxH}xi zP_JxF8*U+d%t`C4?jElYw-jGo)4tNa_@Y-~>>u85@g?qgP(D*F<+Et)0i0VC zZM2lnoaJbzT4{*ZrYxTsucG93K)|d0(n>6Ql0CEa$R9ecAlJY&_*Nhnk7Al6=nHiSk*5@>xYE>zRiXk@fQ^fGP^0G$HuGG+O{Qk%?B*rM7N*dp)uL5_SfI z#JPt>;w5ZTm{IBsCVl~1GgD%i(0~$lOR3os8+UqtgP2?kCjyD-(P~a*m9@1O6b#}_ zn=;o(TUQT)7i8AFcNrGQ=pu3~j@by)lJWvY&HL2sc->#;<)zC>Ckz(P^w%hAh^B;1 zvydO`D`6}Bfb7+OI;awMV%O|$cX=Cv26ozn5R0y9P2X99Mi*X%2JXjZuX1P*W(minPUtwnlH0&(2r?(ELNvtI2=M#GKz9=GcCpw0DrWY;xv6{7Tt34~`%E~fb77+u$0=Jz~$|RIW z1CaI*eM_q{upAyRAdC}DA7Tb!u9Jh(rX`HXL&wNmd$+RI7T&8ffmuo{69AWevp9mcZ}62n4QA+22El2md` zBLFFL+sgGQdT%xF#9O&+0mrBJGrTL&%9YXNNQ0*_A@MYXY31@LTWgP2E}tXea?W%F zJ-e@!OVMaxibCRlVOzOGeUBqEjoi=62UFJTR76_=?h~UOe(LpQVFMG&+Y5ZEo+DP3)ph{>YS983D$Jkz*Rww+SZPAMtcDT7=K z#FV{S+bKn`wb)Q!F(=AO$i^wUtF)kTo1c{Rb!*%A!n9>X`|k(M!6a_lhS-3HSO+j@ zLqn9Pg_dh3`=z8O_e?SvwQu~{R1L9Yw?*%?T+(>Cn