w-web-perm 1.0.24 → 1.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * w-web-perm v1.0.24
2
+ * w-web-perm v1.0.25
3
3
  * (c) 2018-2021 yuda-lyu(semisphere)
4
4
  * Released under the MIT License.
5
5
  */
@@ -925,7 +925,7 @@
925
925
  <br class="clear">
926
926
 
927
927
  <footer>
928
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sun Oct 20 2024 09:46:40 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
928
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu Dec 26 2024 15:14:33 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
929
929
  </footer>
930
930
 
931
931
  <script>prettyPrint();</script>
@@ -1234,7 +1234,7 @@ export default WWebPerm
1234
1234
  <br class="clear">
1235
1235
 
1236
1236
  <footer>
1237
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sun Oct 20 2024 09:46:40 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1237
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu Dec 26 2024 15:14:33 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
1238
1238
  </footer>
1239
1239
 
1240
1240
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -71,7 +71,7 @@
71
71
  <br class="clear">
72
72
 
73
73
  <footer>
74
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Sun Oct 20 2024 09:46:40 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
74
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Thu Dec 26 2024 15:14:33 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
75
75
  </footer>
76
76
 
77
77
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "w-web-perm",
3
- "version": "1.0.24",
3
+ "version": "1.0.25",
4
4
  "main": "dist/w-web-perm.umd.js",
5
5
  "dependencies": {
6
6
  "@mdi/js": "^7.4.47",
@@ -231,6 +231,80 @@ export default {
231
231
  return rs
232
232
  },
233
233
 
234
+ useUsers: function() {
235
+ let vo = this
236
+
237
+ //parse cgrups
238
+ let users = map(vo.users, (u) => {
239
+
240
+ //cloneDeep
241
+ u = cloneDeep(u)
242
+
243
+ //kpGrup
244
+ let kpGrup = {}
245
+ try {
246
+ // console.log('u.cgrups', u.cgrups)
247
+ kpGrup = JSON5.parse(u.cgrups)
248
+ }
249
+ catch (err) {}
250
+
251
+ //save kpGrup
252
+ u.kpGrup = kpGrup
253
+
254
+ return u
255
+ })
256
+ // console.log('users', users)
257
+
258
+ return users
259
+ },
260
+
261
+ kpGrupUser: function() {
262
+ let vo = this
263
+
264
+ //kp
265
+ let kp = {}
266
+ each(vo.useUsers, (u) => {
267
+ each(u.kpGrup, (v, k) => {
268
+ let isActive = get(v, 'isActive', '')
269
+ if (isActive !== 'y') {
270
+ return true //跳出換下一個
271
+ }
272
+ if (!haskey(kp, k)) {
273
+ kp[k] = []
274
+ }
275
+ kp[k].push({
276
+ user: u,
277
+ grup: v,
278
+ })
279
+ })
280
+ })
281
+ // console.log('kp', kp)
282
+
283
+ return kp
284
+ },
285
+
286
+ kpUseGrupUser: function() {
287
+ let vo = this
288
+
289
+ //_kp
290
+ let _kp = {}
291
+ each(vo.grups, (v, k) => {
292
+ _kp[v.name] = true
293
+ })
294
+ // console.log('_kp', _kp)
295
+
296
+ //kp
297
+ let kp = {}
298
+ each(vo.kpGrupUser, (v, k) => {
299
+ if (haskey(_kp, k)) {
300
+ kp[k] = v
301
+ }
302
+ })
303
+ // console.log('kp', kp)
304
+
305
+ return kp
306
+ },
307
+
234
308
  changeGrups: function() {
235
309
  // console.log('computed changeGrups')
236
310
 
@@ -241,12 +315,12 @@ export default {
241
315
  return ''
242
316
  }
243
317
 
244
- //grups, users
318
+ //grups, kpUseGrupUser
245
319
  let grups = cloneDeep(vo.grups)
246
- let users = cloneDeep(vo.users)
320
+ let kpUseGrupUser = cloneDeep(vo.kpUseGrupUser)
247
321
 
248
- //addUsers
249
- let items = vo.addUsers(grups, users)
322
+ //genItems
323
+ let items = vo.genItems(grups, kpUseGrupUser)
250
324
 
251
325
  //save
252
326
  vo.items = items
@@ -557,45 +631,18 @@ export default {
557
631
 
558
632
  },
559
633
 
560
- addUsers: function(grups, users) {
561
- // console.log('method addUsers', grups, users)
634
+ genItems: function(grups, kpUseGrupUser) {
635
+ // console.log('method genItems', grups, kpUseGrupUser)
562
636
 
563
637
  let vo = this
564
638
 
565
- //parse cgrups
566
- users = map(users, (u) => {
567
- let kpGrup = JSON5.parse(u.cgrups)
568
- u.kpGrup = kpGrup
569
- return u
570
- })
571
- // console.log('users', users)
572
-
573
- //kp
574
- let kp = {}
575
- each(users, (u) => {
576
- each(u.kpGrup, (v, k) => {
577
- let isActive = get(v, 'isActive', '')
578
- if (isActive !== 'y') {
579
- return true //跳出換下一個
580
- }
581
- if (!haskey(kp, k)) {
582
- kp[k] = []
583
- }
584
- kp[k].push({
585
- user: u,
586
- grup: v,
587
- })
588
- })
589
- })
590
- // console.log('kp', kp)
591
-
592
639
  //items
593
640
  let items = map(grups, (g) => {
594
641
 
595
642
  //us
596
643
  let us = []
597
- if (haskey(kp, g.name)) {
598
- us = kp[g.name]
644
+ if (haskey(kpUseGrupUser, g.name)) {
645
+ us = kpUseGrupUser[g.name]
599
646
  }
600
647
  // console.log('us', us)
601
648
 
@@ -617,6 +664,7 @@ export default {
617
664
  //save belongUsers, us
618
665
  g.belongUsers = belongUsers
619
666
  g.us = us
667
+ // console.log('g', g)
620
668
 
621
669
  return g
622
670
  })
@@ -645,6 +693,15 @@ export default {
645
693
  r.timeUpdate = `{${vo.$t('grupAddIdNew')}}`
646
694
  // console.log('r', r)
647
695
 
696
+ //belongUsers, us
697
+ let us = []
698
+ let belongUsers = vo.$t('grupBlngRnderNoUser')
699
+
700
+ //save belongUsers, us
701
+ r.belongUsers = belongUsers
702
+ r.us = us
703
+ // console.log('r', r)
704
+
648
705
  //添加至最首
649
706
  rows = [
650
707
  r,
@@ -711,6 +768,15 @@ export default {
711
768
  r.timeUpdate = `{${vo.$t('grupAddIdNew')}}`
712
769
  // console.log('r', r)
713
770
 
771
+ //belongUsers, us
772
+ let us = []
773
+ let belongUsers = vo.$t('grupBlngRnderNoUser')
774
+
775
+ //save belongUsers, us
776
+ r.belongUsers = belongUsers
777
+ r.us = us
778
+ // console.log('r', r)
779
+
714
780
  //添加至最首
715
781
  rows = [
716
782
  r,
@@ -769,14 +835,48 @@ export default {
769
835
 
770
836
  },
771
837
 
838
+ fltKpPemi: function(kp) {
839
+ // console.log('fltKpPemi', kp)
840
+
841
+ let vo = this
842
+
843
+ //_kp
844
+ let _kp = {}
845
+ each(vo.pemis, (v, k) => {
846
+ _kp[v.name] = true
847
+ })
848
+ // console.log('_kp', _kp)
849
+
850
+ //kpt
851
+ let kpt = {}
852
+ each(kp, (v, k) => {
853
+ if (haskey(_kp, k)) {
854
+ kpt[k] = v
855
+ }
856
+ })
857
+
858
+ return kpt
859
+ },
860
+
772
861
  getCpemisText: function(cpemis) {
773
862
  // console.log('method getCpemisText', cpemis)
774
863
 
775
864
  let vo = this
776
865
 
777
866
  //kpPemi
778
- let kpPemi = JSON5.parse(cpemis)
867
+ let kpPemi = {}
868
+ try {
869
+ // console.log('cpemis', cpemis)
870
+ kpPemi = JSON5.parse(cpemis)
871
+ }
872
+ catch (err) {}
873
+ // console.log('kpPemi', kpPemi)
779
874
 
875
+ //fltKpPemi
876
+ kpPemi = vo.fltKpPemi(kpPemi)
877
+ // console.log('kpPemi(fltKpPemi)', kpPemi)
878
+
879
+ //vs
780
880
  let vs = []
781
881
  each(kpPemi, (v, k) => {
782
882
  // console.log(k, 'v', v)
@@ -835,6 +935,7 @@ export default {
835
935
  return false //跳出
836
936
  }
837
937
  })
938
+ // console.log('r', r)
838
939
 
839
940
  //check
840
941
  if (!iseobj(r)) {
@@ -231,6 +231,80 @@ export default {
231
231
  return rs
232
232
  },
233
233
 
234
+ useGrups: function() {
235
+ let vo = this
236
+
237
+ //parse cpemis
238
+ let grups = map(vo.grups, (g) => {
239
+
240
+ //cloneDeep
241
+ g = cloneDeep(g)
242
+
243
+ //kpPemi
244
+ let kpPemi = {}
245
+ try {
246
+ // console.log('g.cpemis', g.cpemis)
247
+ kpPemi = JSON5.parse(g.cpemis)
248
+ }
249
+ catch (err) {}
250
+
251
+ //save kpPemi
252
+ g.kpPemi = kpPemi
253
+
254
+ return g
255
+ })
256
+ // console.log('grups', grups)
257
+
258
+ return grups
259
+ },
260
+
261
+ kpPemiGrup: function() {
262
+ let vo = this
263
+
264
+ //kp
265
+ let kp = {}
266
+ each(vo.useGrups, (g) => {
267
+ each(g.kpPemi, (v, k) => {
268
+ let isActive = get(v, 'isActive', '')
269
+ if (isActive !== 'y') {
270
+ return true //跳出換下一個
271
+ }
272
+ if (!haskey(kp, k)) {
273
+ kp[k] = []
274
+ }
275
+ kp[k].push({
276
+ grup: g,
277
+ pemi: v,
278
+ })
279
+ })
280
+ })
281
+ // console.log('kp', kp)
282
+
283
+ return kp
284
+ },
285
+
286
+ kpUsePemiGrup: function() {
287
+ let vo = this
288
+
289
+ //_kp
290
+ let _kp = {}
291
+ each(vo.pemis, (v, k) => {
292
+ _kp[v.name] = true
293
+ })
294
+ // console.log('_kp', _kp)
295
+
296
+ //kp
297
+ let kp = {}
298
+ each(vo.kpPemiGrup, (v, k) => {
299
+ if (haskey(_kp, k)) {
300
+ kp[k] = v
301
+ }
302
+ })
303
+ // console.log('kp', kp)
304
+
305
+ return kp
306
+ },
307
+
234
308
  changePemis: function() {
235
309
  // console.log('computed changePemis')
236
310
 
@@ -241,12 +315,12 @@ export default {
241
315
  return ''
242
316
  }
243
317
 
244
- //pemis, grups
318
+ //pemis, kpUsePemiGrup
245
319
  let pemis = cloneDeep(vo.pemis)
246
- let grups = cloneDeep(vo.grups)
320
+ let kpUsePemiGrup = cloneDeep(vo.kpUsePemiGrup)
247
321
 
248
- //addGrups
249
- let items = vo.addGrups(pemis, grups)
322
+ //genItems
323
+ let items = vo.genItems(pemis, kpUsePemiGrup)
250
324
 
251
325
  // //cloneDeep
252
326
  // let items = cloneDeep(vo.pemis)
@@ -515,7 +589,7 @@ export default {
515
589
  //因stopPropagation只吃掉訊息, 原本focus會處於原本可focus的cell, 再重複點時會於前個focus的cell出現highlight邊框, 故再多使用preventDefault阻止瀏覽器預設行為, 此等同於return false
516
590
  let t = `
517
591
  <div onclick="event.stopPropagation();event.preventDefault();" onmousedown="event.stopPropagation();event.preventDefault();">
518
- <button style="width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;" onclick="$vo.$dg.showVeCrulesById('${id}')">${vo.$t('pemiEditCrulesSimple')}</button>
592
+ <button style="width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;" onclick="$vo.$dg.showVeCrulesById('${id}')">${vo.getCrulesText(v)}</button>
519
593
  </div>
520
594
  `
521
595
 
@@ -560,45 +634,18 @@ export default {
560
634
 
561
635
  },
562
636
 
563
- addGrups: function(pemis, grups) {
564
- // console.log('method addGrups', pemis, grups)
637
+ genItems: function(pemis, kpUsePemiGrup) {
638
+ // console.log('method genItems', pemis, kpUsePemiGrup)
565
639
 
566
640
  let vo = this
567
641
 
568
- //parse cpemis
569
- grups = map(grups, (g) => {
570
- let kpPemi = JSON5.parse(g.cpemis)
571
- g.kpPemi = kpPemi
572
- return g
573
- })
574
- // console.log('users', users)
575
-
576
- //kp
577
- let kp = {}
578
- each(grups, (g) => {
579
- each(g.kpPemi, (v, k) => {
580
- let isActive = get(v, 'isActive', '')
581
- if (isActive !== 'y') {
582
- return true //跳出換下一個
583
- }
584
- if (!haskey(kp, k)) {
585
- kp[k] = []
586
- }
587
- kp[k].push({
588
- grup: g,
589
- pemi: v,
590
- })
591
- })
592
- })
593
- // console.log('kp', kp)
594
-
595
642
  //items
596
643
  let items = map(pemis, (p) => {
597
644
 
598
645
  //gs
599
646
  let gs = []
600
- if (haskey(kp, p.name)) {
601
- gs = kp[p.name]
647
+ if (haskey(kpUsePemiGrup, p.name)) {
648
+ gs = kpUsePemiGrup[p.name]
602
649
  }
603
650
  // console.log('gs', gs)
604
651
 
@@ -620,6 +667,7 @@ export default {
620
667
  //save belongGrups, gs
621
668
  p.belongGrups = belongGrups
622
669
  p.gs = gs
670
+ // console.log('p', p)
623
671
 
624
672
  return p
625
673
  })
@@ -642,12 +690,22 @@ export default {
642
690
  //r
643
691
  let r = vo.$ds.pemis.funNew()
644
692
  r.name = vo.$s.getNameNew(rows, 'name', '', vo.$t('pemiAddNameNew'))
693
+ // r.crules = ''
645
694
  r.userId = `{${vo.$t('pemiAddIdNew')}}`
646
695
  r.timeCreate = `{${vo.$t('pemiAddIdNew')}}`
647
696
  r.userIdUpdate = `{${vo.$t('pemiAddIdNew')}}`
648
697
  r.timeUpdate = `{${vo.$t('pemiAddIdNew')}}`
649
698
  // console.log('r', r)
650
699
 
700
+ //belongGrups, gs
701
+ let gs = []
702
+ let belongGrups = vo.$t('pemiBlngRnderNoGrup')
703
+
704
+ //save belongGrups, gs
705
+ r.belongGrups = belongGrups
706
+ r.gs = gs
707
+ // console.log('r', r)
708
+
651
709
  //添加至最首
652
710
  rows = [
653
711
  r,
@@ -714,6 +772,15 @@ export default {
714
772
  r.timeUpdate = `{${vo.$t('pemiAddIdNew')}}`
715
773
  // console.log('r', r)
716
774
 
775
+ //belongGrups, gs
776
+ let gs = []
777
+ let belongGrups = vo.$t('pemiBlngRnderNoGrup')
778
+
779
+ //save belongGrups, gs
780
+ r.belongGrups = belongGrups
781
+ r.gs = gs
782
+ // console.log('r', r)
783
+
717
784
  //添加至最首
718
785
  rows = [
719
786
  r,
@@ -772,6 +839,83 @@ export default {
772
839
 
773
840
  },
774
841
 
842
+ fltKpRule: function(kp) {
843
+ // console.log('fltKpRule', kp)
844
+
845
+ let vo = this
846
+
847
+ //_kp
848
+ let _kp = {}
849
+ each(vo.targets, (v, k) => {
850
+ _kp[v.id] = true //管控對象須使用id
851
+ })
852
+ // console.log('_kp', _kp)
853
+
854
+ //kpt
855
+ let kpt = {}
856
+ each(kp, (v, k) => {
857
+ if (haskey(_kp, k)) {
858
+ kpt[k] = v
859
+ }
860
+ })
861
+
862
+ return kpt
863
+ },
864
+
865
+ getCrulesText: function(crules) {
866
+ // console.log('method getCrulesText', crules)
867
+
868
+ let vo = this
869
+
870
+ //kpRule
871
+ let kpRule = {}
872
+ try {
873
+ // console.log('crules', crules)
874
+ kpRule = JSON5.parse(crules)
875
+ }
876
+ catch (err) {}
877
+ // console.log('kpRule', kpRule)
878
+
879
+ //fltKpRule
880
+ kpRule = vo.fltKpRule(kpRule)
881
+ // console.log('kpRule(fltKpRule)', kpRule)
882
+
883
+ //vs
884
+ let vs = []
885
+ each(kpRule, (v, k) => {
886
+ // console.log(k, 'v', v)
887
+
888
+ //isActive
889
+ let isActive = v //crules各值為直接儲存y或n
890
+ if (isActive !== 'y') {
891
+ return true //跳出換下一個
892
+ }
893
+ // console.log(k, '_isActive', _isActive)
894
+
895
+ //push
896
+ vs.push(k)
897
+
898
+ })
899
+
900
+ //crulesText
901
+ let crulesText = vo.$t('pemiRnderCrulesNoRule')
902
+ let t = vo.$t('pemiRnderCrulesHasNRule')
903
+ let n = size(vs)
904
+ if (n > 0) {
905
+ t = t.replace('{n}', n)
906
+ // if (n === 1) {
907
+ // t = t.replace('{nms}', `(${vs[0]})`)
908
+ // }
909
+ // else {
910
+ // t = t.replace('{nms}', '')
911
+ // }
912
+ t = t.replace('{nms}', '') //管控對象id太長, 顯示按鈕預設寬度小, 故皆僅顯示數量
913
+ crulesText = t
914
+ }
915
+
916
+ return crulesText
917
+ },
918
+
775
919
  showVePemiBlngGrupsById: function(id) {
776
920
  // console.log('method showVePemiBlngGrupsById', id)
777
921
 
@@ -796,6 +940,7 @@ export default {
796
940
  return false //跳出
797
941
  }
798
942
  })
943
+ // console.log('r', r)
799
944
 
800
945
  //check
801
946
  if (!iseobj(r)) {
@@ -883,7 +883,12 @@ export default {
883
883
  let vo = this
884
884
 
885
885
  //kpGrup
886
- let kpGrup = JSON5.parse(cgrups)
886
+ let kpGrup = {}
887
+ try {
888
+ // console.log('cgrups', cgrups)
889
+ kpGrup = JSON5.parse(cgrups)
890
+ }
891
+ catch (err) {}
887
892
 
888
893
  let vs = []
889
894
  each(kpGrup, (v, k) => {
@@ -353,7 +353,7 @@ export default {
353
353
  //kpHead
354
354
  let kpHead = {
355
355
  'name': vo.$t('pemiName'),
356
- 'mode': vo.$t('operEnable'),
356
+ 'mode': vo.$t('operGrupEnable'),
357
357
  'enable': vo.$t('operMode'),
358
358
  }
359
359
 
@@ -353,7 +353,7 @@ export default {
353
353
  //kpHead
354
354
  let kpHead = {
355
355
  'name': vo.$t('pemiName'),
356
- 'mode': vo.$t('operEnable'),
356
+ 'mode': vo.$t('operPemiEnable'),
357
357
  'enable': vo.$t('operMode'),
358
358
  }
359
359