w-web-perm 1.0.44 → 1.0.46

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.
Files changed (45) hide show
  1. package/.github/workflows/ci-test.yml +1 -1
  2. package/db/wperm/grups/data.mdb +0 -0
  3. package/db/wperm/grups/lock.mdb +0 -0
  4. package/db/wperm/pemis/data.mdb +0 -0
  5. package/db/wperm/pemis/lock.mdb +0 -0
  6. package/db/wperm/targets/data.mdb +0 -0
  7. package/db/wperm/targets/lock.mdb +0 -0
  8. package/db/wperm/users/data.mdb +0 -0
  9. package/db/wperm/users/lock.mdb +0 -0
  10. package/dist/css/app.30e81bfe.css +1 -0
  11. package/dist/css/chunk-vendors.f149e124.css +1 -0
  12. package/dist/index.tmp +1 -1
  13. package/dist/js/app-legacy.7a0dda14.js +1 -0
  14. package/dist/js/app.7a0dda14.js +1 -0
  15. package/dist/js/chunk-vendors-legacy.e8703728.js +21 -0
  16. package/dist/js/chunk-vendors.e8703728.js +21 -0
  17. package/dist/w-web-perm.umd.js +2 -2
  18. package/dist/w-web-perm.umd.js.map +1 -1
  19. package/docs/WWebPerm.html +2 -2
  20. package/docs/WWebPerm.mjs.html +9 -5
  21. package/docs/index.html +1 -1
  22. package/g.initialData.mjs +3 -3
  23. package/g.provideUsers.mjs +3 -3
  24. package/package.json +9 -8
  25. package/server/WWebPerm.mjs +8 -4
  26. package/{src/plugins/mLang.mjs → server/procLang.mjs} +837 -754
  27. package/src/components/LayoutContentGrups.vue +26 -62
  28. package/src/components/LayoutContentPemis.vue +26 -62
  29. package/src/components/LayoutContentTargets.vue +16 -45
  30. package/src/components/LayoutContentUsers.vue +30 -90
  31. package/src/components/VeCgrups.vue +15 -46
  32. package/src/components/VeCpemis.vue +15 -46
  33. package/src/components/VeCrules.vue +11 -26
  34. package/src/components/VeGrupBlngUsers.vue +26 -72
  35. package/src/components/VePemiBlngGrups.vue +26 -72
  36. package/src/plugins/mUI.mjs +5 -60
  37. package/src/schema/tables/users.mjs +3 -3
  38. package/tableTags.json +1 -1
  39. package/test/getUserRules.test.mjs +899 -0
  40. package/dist/css/app.5eabcb89.css +0 -1
  41. package/dist/js/app-legacy.d506ca61.js +0 -1
  42. package/dist/js/app.d506ca61.js +0 -1
  43. package/dist/js/chunk-vendors-legacy.18b85e4c.js +0 -14
  44. package/dist/js/chunk-vendors.18b85e4c.js +0 -14
  45. package/test/all.test.mjs +0 -10
@@ -116,13 +116,22 @@
116
116
  </div>
117
117
 
118
118
  <template v-if="items">
119
- <WAggridVueDyn
119
+ <WAggridVue
120
120
  ref="rftable"
121
121
  :style="`width:100%;`"
122
122
  :height="contentHeight"
123
123
  :opt="opt"
124
124
  >
125
- </WAggridVueDyn>
125
+ <template v-slot:cell-render="props">
126
+ <span v-if="props.key==='name'">{{ props.value }}</span>
127
+ <select v-else-if="props.key==='mode'" @change="showVeCgrupsToggleItemModeByName(props.row.name, $event.target.value)" :disabled="!isEditable">
128
+ <option value="OR" :selected="props.row.mode === 'OR'">OR</option>
129
+ <option value="AND" :selected="props.row.mode === 'AND'">AND</option>
130
+ </select>
131
+ <input v-else-if="props.key==='enable'" type="checkbox" :checked="props.value === 'y'" @click="showVeCgrupsToggleItemEnableByName(props.row.name)" :disabled="!isEditable" />
132
+ <span v-else>{{ props.value }}</span>
133
+ </template>
134
+ </WAggridVue>
126
135
  </template>
127
136
 
128
137
  <div
@@ -155,14 +164,14 @@ import iseobj from 'wsemi/src/iseobj.mjs'
155
164
  import isestr from 'wsemi/src/isestr.mjs'
156
165
  import WDialog from 'w-component-vue/src/components/WDialog.vue'
157
166
  import WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'
158
- import WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'
167
+ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
159
168
 
160
169
 
161
170
  export default {
162
171
  components: {
163
172
  WDialog,
164
173
  WButtonCircle,
165
- WAggridVueDyn,
174
+ WAggridVue,
166
175
  },
167
176
  props: {
168
177
  },
@@ -380,46 +389,6 @@ export default {
380
389
  // kpHeadCheckBox: {
381
390
  // 'name': true,
382
391
  // },
383
- kpCellRender: {
384
- 'name': (v, k, r) => {
385
- // console.log('kpCellRender name', v)
386
-
387
- return v
388
- },
389
- 'mode': (v, k, r) => {
390
- // console.log('kpCellRender mode', v)
391
-
392
- //name
393
- let name = get(r, 'name', '')
394
- // console.log('name', name, k, r)
395
-
396
- //mode
397
- let mode = get(r, 'mode', '')
398
- // console.log('mode', mode, k, r)
399
-
400
- let t = `
401
- <select onchange="$vo.$dg.showVeCgrupsToggleItemModeByName('${name}',this.value)" ${vo.isEditable ? '' : 'disabled'}>
402
- <option value="OR" ${mode === 'OR' ? 'selected' : ''}>OR</option>
403
- <option value="AND" ${mode === 'AND' ? 'selected' : ''}>AND</option>
404
- </select>
405
- `
406
-
407
- return t
408
- },
409
- 'enable': (v, k, r) => {
410
- // console.log('kpCellRender enable', v, k, r)
411
-
412
- //name
413
- let name = get(r, 'name', '')
414
- // console.log('name', name, k, r)
415
-
416
- let t = `
417
- <input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVeCgrupsToggleItemEnableByName('${name}')" ${vo.isEditable ? '' : 'disabled'} />
418
- `
419
-
420
- return t
421
- },
422
- },
423
392
  rowsChange: (rs) => {
424
393
  // console.log('rowsChange', rs)
425
394
  // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))
@@ -491,7 +460,7 @@ export default {
491
460
  let vo = this
492
461
 
493
462
  //cmp
494
- let cmp = get(vo, '$refs.rftable.$refs.$self')
463
+ let cmp = get(vo, '$refs.rftable')
495
464
  // console.log('cmp', cmp)
496
465
 
497
466
  //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據
@@ -503,7 +472,7 @@ export default {
503
472
  let vo = this
504
473
 
505
474
  //cmp
506
- let cmp = get(vo, '$refs.rftable.$refs.$self')
475
+ let cmp = get(vo, '$refs.rftable')
507
476
  // console.log('cmp', cmp)
508
477
 
509
478
  //getDisplayData
@@ -116,13 +116,22 @@
116
116
  </div>
117
117
 
118
118
  <template v-if="items">
119
- <WAggridVueDyn
119
+ <WAggridVue
120
120
  ref="rftable"
121
121
  :style="`width:100%;`"
122
122
  :height="contentHeight"
123
123
  :opt="opt"
124
124
  >
125
- </WAggridVueDyn>
125
+ <template v-slot:cell-render="props">
126
+ <span v-if="props.key==='name'">{{ props.value }}</span>
127
+ <select v-else-if="props.key==='mode'" @change="showVeCpemisToggleItemModeByName(props.row.name, $event.target.value)" :disabled="!isEditable">
128
+ <option value="OR" :selected="props.row.mode === 'OR'">OR</option>
129
+ <option value="AND" :selected="props.row.mode === 'AND'">AND</option>
130
+ </select>
131
+ <input v-else-if="props.key==='enable'" type="checkbox" :checked="props.value === 'y'" @click="showVeCpemisToggleItemEnableByName(props.row.name)" :disabled="!isEditable" />
132
+ <span v-else>{{ props.value }}</span>
133
+ </template>
134
+ </WAggridVue>
126
135
  </template>
127
136
 
128
137
  <div
@@ -155,14 +164,14 @@ import iseobj from 'wsemi/src/iseobj.mjs'
155
164
  import isestr from 'wsemi/src/isestr.mjs'
156
165
  import WDialog from 'w-component-vue/src/components/WDialog.vue'
157
166
  import WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'
158
- import WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'
167
+ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
159
168
 
160
169
 
161
170
  export default {
162
171
  components: {
163
172
  WDialog,
164
173
  WButtonCircle,
165
- WAggridVueDyn,
174
+ WAggridVue,
166
175
  },
167
176
  props: {
168
177
  },
@@ -380,46 +389,6 @@ export default {
380
389
  // kpHeadCheckBox: {
381
390
  // 'name': true,
382
391
  // },
383
- kpCellRender: {
384
- 'name': (v, k, r) => {
385
- // console.log('kpCellRender name', v)
386
-
387
- return v
388
- },
389
- 'mode': (v, k, r) => {
390
- // console.log('kpCellRender mode', v)
391
-
392
- //name
393
- let name = get(r, 'name', '')
394
- // console.log('name', name, k, r)
395
-
396
- //mode
397
- let mode = get(r, 'mode', '')
398
- // console.log('mode', mode, k, r)
399
-
400
- let t = `
401
- <select onchange="$vo.$dg.showVeCpemisToggleItemModeByName('${name}',this.value)" ${vo.isEditable ? '' : 'disabled'}>
402
- <option value="OR" ${mode === 'OR' ? 'selected' : ''}>OR</option>
403
- <option value="AND" ${mode === 'AND' ? 'selected' : ''}>AND</option>
404
- </select>
405
- `
406
-
407
- return t
408
- },
409
- 'enable': (v, k, r) => {
410
- // console.log('kpCellRender enable', v, k, r)
411
-
412
- //name
413
- let name = get(r, 'name', '')
414
- // console.log('name', name, k, r)
415
-
416
- let t = `
417
- <input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVeCpemisToggleItemEnableByName('${name}')" ${vo.isEditable ? '' : 'disabled'} />
418
- `
419
-
420
- return t
421
- },
422
- },
423
392
  rowsChange: (rs) => {
424
393
  // console.log('rowsChange', rs)
425
394
  // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))
@@ -491,7 +460,7 @@ export default {
491
460
  let vo = this
492
461
 
493
462
  //cmp
494
- let cmp = get(vo, '$refs.rftable.$refs.$self')
463
+ let cmp = get(vo, '$refs.rftable')
495
464
  // console.log('cmp', cmp)
496
465
 
497
466
  //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據
@@ -503,7 +472,7 @@ export default {
503
472
  let vo = this
504
473
 
505
474
  //cmp
506
- let cmp = get(vo, '$refs.rftable.$refs.$self')
475
+ let cmp = get(vo, '$refs.rftable')
507
476
  // console.log('cmp', cmp)
508
477
 
509
478
  //getDisplayData
@@ -116,13 +116,18 @@
116
116
  </div>
117
117
 
118
118
  <template v-if="items">
119
- <WAggridVueDyn
119
+ <WAggridVue
120
120
  ref="rftable"
121
121
  :style="`width:100%;`"
122
122
  :height="contentHeight"
123
123
  :opt="opt"
124
124
  >
125
- </WAggridVueDyn>
125
+ <template v-slot:cell-render="props">
126
+ <span v-if="props.key==='id'">{{ props.value }}</span>
127
+ <input v-else-if="props.key==='enable'" type="checkbox" :checked="props.value === 'y'" @click="toggleItemEnableById(props.row.id)" :disabled="!isEditable" />
128
+ <span v-else>{{ props.value }}</span>
129
+ </template>
130
+ </WAggridVue>
126
131
  </template>
127
132
 
128
133
  <div
@@ -155,14 +160,14 @@ import iseobj from 'wsemi/src/iseobj.mjs'
155
160
  import isestr from 'wsemi/src/isestr.mjs'
156
161
  import WDialog from 'w-component-vue/src/components/WDialog.vue'
157
162
  import WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'
158
- import WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'
163
+ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
159
164
 
160
165
 
161
166
  export default {
162
167
  components: {
163
168
  WDialog,
164
169
  WButtonCircle,
165
- WAggridVueDyn,
170
+ WAggridVue,
166
171
  },
167
172
  props: {
168
173
  },
@@ -374,26 +379,6 @@ export default {
374
379
  // kpHeadCheckBox: {
375
380
  // 'id': true,
376
381
  // },
377
- kpCellRender: {
378
- 'id': (v, k, r) => {
379
- // console.log('kpCellRender id', v)
380
-
381
- return v
382
- },
383
- 'enable': (v, k, r) => {
384
- // console.log('kpCellRender enable', v, k, r)
385
-
386
- //id
387
- let id = get(r, 'id', '')
388
- // console.log('id', id, k, r)
389
-
390
- let t = `
391
- <input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.toggleItemEnableById('${id}')" ${vo.isEditable ? '' : 'disabled'} />
392
- `
393
-
394
- return t
395
- },
396
- },
397
382
  rowsChange: (rs) => {
398
383
  // console.log('rowsChange', rs)
399
384
  // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))
@@ -465,7 +450,7 @@ export default {
465
450
  let vo = this
466
451
 
467
452
  //cmp
468
- let cmp = get(vo, '$refs.rftable.$refs.$self')
453
+ let cmp = get(vo, '$refs.rftable')
469
454
  // console.log('cmp', cmp)
470
455
 
471
456
  //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據
@@ -477,7 +462,7 @@ export default {
477
462
  let vo = this
478
463
 
479
464
  //cmp
480
- let cmp = get(vo, '$refs.rftable.$refs.$self')
465
+ let cmp = get(vo, '$refs.rftable')
481
466
  // console.log('cmp', cmp)
482
467
 
483
468
  //getDisplayData
@@ -129,13 +129,33 @@
129
129
  </div>
130
130
 
131
131
  <template v-if="items">
132
- <WAggridVueDyn
132
+ <WAggridVue
133
133
  ref="rftable"
134
134
  :style="`width:100%;`"
135
135
  :height="contentHeight"
136
136
  :opt="opt"
137
137
  >
138
- </WAggridVueDyn>
138
+ <template v-slot:cell-render="props">
139
+ <template v-if="props.key==='grupsNames'">
140
+ <span v-for="(item, idx) in props.row.grups" :key="idx" style="display:inline-block; line-height:20px; height:20px;">
141
+ <div style="display:flex;">
142
+ <div :style="'padding:0px 5px; border-top-left-radius:4px; border-bottom-left-radius:4px; ' + (item.enable === 'y' ? 'border-left:1px solid #ac2451; border-right:1px solid #9e2149; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#be295a; color:#fff;' : 'border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#ffffff; color:#555;')">
143
+ {{ item.mode }}
144
+ </div>
145
+ <div :style="'padding:0px 5px; border-top-right-radius:4px; border-bottom-right-radius:4px; ' + (item.enable === 'y' ? '_border-left:1px solid #ac2451; border-right:1px solid #ac2451; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#d22f64; color:#fff;' : '_border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#eeeeee; color:#555;')">
146
+ {{ item.name }}
147
+ </div>
148
+ </div>
149
+ </span>
150
+ </template>
151
+ <select v-else-if="props.key==='mode'" @change="showVeGrupBlngUsersToggleItemModeByName(props.row.name, $event.target.value)" :disabled="!isEditable">
152
+ <option value="OR" :selected="props.row.mode === 'OR'">OR</option>
153
+ <option value="AND" :selected="props.row.mode === 'AND'">AND</option>
154
+ </select>
155
+ <input v-else-if="props.key==='enable'" type="checkbox" :checked="props.value === 'y'" @click="showVeGrupBlngUsersToggleItemEnableByName(props.row.name)" :disabled="!isEditable" />
156
+ <span v-else>{{ props.value }}</span>
157
+ </template>
158
+ </WAggridVue>
139
159
  </template>
140
160
 
141
161
  <div
@@ -171,14 +191,14 @@ import iseobj from 'wsemi/src/iseobj.mjs'
171
191
  import isestr from 'wsemi/src/isestr.mjs'
172
192
  import WDialog from 'w-component-vue/src/components/WDialog.vue'
173
193
  import WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'
174
- import WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'
194
+ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
175
195
 
176
196
 
177
197
  export default {
178
198
  components: {
179
199
  WDialog,
180
200
  WButtonCircle,
181
- WAggridVueDyn,
201
+ WAggridVue,
182
202
  },
183
203
  props: {
184
204
  },
@@ -410,72 +430,6 @@ export default {
410
430
  kpHeadFocusHighlight: { //雖然效果不完全, 但因按鈕與cell有padding可被點擊, 故還是需要開啟
411
431
  'grupsNames': false,
412
432
  },
413
- kpCellRender: {
414
- 'grupsNames': (v, k, r) => {
415
- // console.log('kpCellRender grupsNames', v, k, r)
416
-
417
- let csp = `border-top-left-radius:4px; border-bottom-left-radius:4px;`
418
- let csnp = `border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#ffffff; color:#555;`
419
- let csep = `border-left:1px solid #ac2451; border-right:1px solid #9e2149; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#be295a; color:#fff;`
420
-
421
- let csa = `border-top-right-radius:4px; border-bottom-right-radius:4px;`
422
- let csna = `_border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#eeeeee; color:#555;`
423
- let csea = `_border-left:1px solid #ac2451; border-right:1px solid #ac2451; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#d22f64; color:#fff;`
424
-
425
- let vs = r.grups
426
-
427
- let t = ''
428
- each(vs, (v) => {
429
- t += `
430
- <span style="display:inline-block; line-height:20px; height:20px;">
431
- <div style="display:flex;">
432
- <div style="padding:0px 5px; ${csp} ${v.enable === 'y' ? csep : csnp}">
433
- ${v.mode}
434
- </div>
435
- <div style="padding:0px 5px; ${csa} ${v.enable === 'y' ? csea : csna}">
436
- ${v.name}
437
- </div>
438
- </div>
439
- </span>
440
- `
441
- })
442
-
443
- return t
444
- },
445
- 'mode': (v, k, r) => {
446
- // console.log('kpCellRender mode', v)
447
-
448
- //name
449
- let name = get(r, 'name', '')
450
- // console.log('name', name, k, r)
451
-
452
- //mode
453
- let mode = get(r, 'mode', '')
454
- // console.log('mode', mode, k, r)
455
-
456
- let t = `
457
- <select onchange="$vo.$dg.showVeGrupBlngUsersToggleItemModeByName('${name}',this.value)" ${vo.isEditable ? '' : 'disabled'}>
458
- <option value="OR" ${mode === 'OR' ? 'selected' : ''}>OR</option>
459
- <option value="AND" ${mode === 'AND' ? 'selected' : ''}>AND</option>
460
- </select>
461
- `
462
-
463
- return t
464
- },
465
- 'enable': (v, k, r) => {
466
- // console.log('kpCellRender enable', v, k, r)
467
-
468
- //name
469
- let name = get(r, 'name', '')
470
- // console.log('name', name, k, r)
471
-
472
- let t = `
473
- <input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVeGrupBlngUsersToggleItemEnableByName('${name}')" ${vo.isEditable ? '' : 'disabled'} />
474
- `
475
-
476
- return t
477
- },
478
- },
479
433
  rowsChange: (rs) => {
480
434
  // console.log('rowsChange', rs)
481
435
  // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))
@@ -547,7 +501,7 @@ export default {
547
501
  let vo = this
548
502
 
549
503
  //cmp
550
- let cmp = get(vo, '$refs.rftable.$refs.$self')
504
+ let cmp = get(vo, '$refs.rftable')
551
505
  // console.log('cmp', cmp)
552
506
 
553
507
  //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據
@@ -559,7 +513,7 @@ export default {
559
513
  let vo = this
560
514
 
561
515
  //cmp
562
- let cmp = get(vo, '$refs.rftable.$refs.$self')
516
+ let cmp = get(vo, '$refs.rftable')
563
517
  // console.log('cmp', cmp)
564
518
 
565
519
  //getDisplayData
@@ -129,13 +129,33 @@
129
129
  </div>
130
130
 
131
131
  <template v-if="items">
132
- <WAggridVueDyn
132
+ <WAggridVue
133
133
  ref="rftable"
134
134
  :style="`width:100%;`"
135
135
  :height="contentHeight"
136
136
  :opt="opt"
137
137
  >
138
- </WAggridVueDyn>
138
+ <template v-slot:cell-render="props">
139
+ <template v-if="props.key==='pemisNames'">
140
+ <span v-for="(item, idx) in props.row.pemis" :key="idx" style="display:inline-block; line-height:20px; height:20px;">
141
+ <div style="display:flex;">
142
+ <div :style="'padding:0px 5px; border-top-left-radius:4px; border-bottom-left-radius:4px; ' + (item.enable === 'y' ? 'border-left:1px solid #ac2451; border-right:1px solid #9e2149; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#be295a; color:#fff;' : 'border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#ffffff; color:#555;')">
143
+ {{ item.mode }}
144
+ </div>
145
+ <div :style="'padding:0px 5px; border-top-right-radius:4px; border-bottom-right-radius:4px; ' + (item.enable === 'y' ? '_border-left:1px solid #ac2451; border-right:1px solid #ac2451; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#d22f64; color:#fff;' : '_border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#eeeeee; color:#555;')">
146
+ {{ item.name }}
147
+ </div>
148
+ </div>
149
+ </span>
150
+ </template>
151
+ <select v-else-if="props.key==='mode'" @change="showVePemiBlngGrupsToggleItemModeByName(props.row.name, $event.target.value)" :disabled="!isEditable">
152
+ <option value="OR" :selected="props.row.mode === 'OR'">OR</option>
153
+ <option value="AND" :selected="props.row.mode === 'AND'">AND</option>
154
+ </select>
155
+ <input v-else-if="props.key==='enable'" type="checkbox" :checked="props.value === 'y'" @click="showVePemiBlngGrupsToggleItemEnableByName(props.row.name)" :disabled="!isEditable" />
156
+ <span v-else>{{ props.value }}</span>
157
+ </template>
158
+ </WAggridVue>
139
159
  </template>
140
160
 
141
161
  <div
@@ -171,14 +191,14 @@ import iseobj from 'wsemi/src/iseobj.mjs'
171
191
  import isestr from 'wsemi/src/isestr.mjs'
172
192
  import WDialog from 'w-component-vue/src/components/WDialog.vue'
173
193
  import WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'
174
- import WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'
194
+ import WAggridVue from 'w-aggrid-vue/src/components/WAggridVue.vue'
175
195
 
176
196
 
177
197
  export default {
178
198
  components: {
179
199
  WDialog,
180
200
  WButtonCircle,
181
- WAggridVueDyn,
201
+ WAggridVue,
182
202
  },
183
203
  props: {
184
204
  },
@@ -410,72 +430,6 @@ export default {
410
430
  kpHeadFocusHighlight: { //雖然效果不完全, 但因按鈕與cell有padding可被點擊, 故還是需要開啟
411
431
  'pemisNames': false,
412
432
  },
413
- kpCellRender: {
414
- 'pemisNames': (v, k, r) => {
415
- // console.log('kpCellRender pemisNames', v, k, r)
416
-
417
- let csp = `border-top-left-radius:4px; border-bottom-left-radius:4px;`
418
- let csnp = `border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#ffffff; color:#555;`
419
- let csep = `border-left:1px solid #ac2451; border-right:1px solid #9e2149; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#be295a; color:#fff;`
420
-
421
- let csa = `border-top-right-radius:4px; border-bottom-right-radius:4px;`
422
- let csna = `_border-left:1px solid #aaaaaa; border-right:1px solid #aaaaaa; border-top:1px solid #aaaaaa; border-bottom:1px solid #aaaaaa; background:#eeeeee; color:#555;`
423
- let csea = `_border-left:1px solid #ac2451; border-right:1px solid #ac2451; border-top:1px solid #ac2451; border-bottom:1px solid #ac2451; background:#d22f64; color:#fff;`
424
-
425
- let vs = r.pemis
426
-
427
- let t = ''
428
- each(vs, (v) => {
429
- t += `
430
- <span style="display:inline-block; line-height:20px; height:20px;">
431
- <div style="display:flex;">
432
- <div style="padding:0px 5px; ${csp} ${v.enable === 'y' ? csep : csnp}">
433
- ${v.mode}
434
- </div>
435
- <div style="padding:0px 5px; ${csa} ${v.enable === 'y' ? csea : csna}">
436
- ${v.name}
437
- </div>
438
- </div>
439
- </span>
440
- `
441
- })
442
-
443
- return t
444
- },
445
- 'mode': (v, k, r) => {
446
- // console.log('kpCellRender mode', v)
447
-
448
- //name
449
- let name = get(r, 'name', '')
450
- // console.log('name', name, k, r)
451
-
452
- //mode
453
- let mode = get(r, 'mode', '')
454
- // console.log('mode', mode, k, r)
455
-
456
- let t = `
457
- <select onchange="$vo.$dg.showVePemiBlngGrupsToggleItemModeByName('${name}',this.value)" ${vo.isEditable ? '' : 'disabled'}>
458
- <option value="OR" ${mode === 'OR' ? 'selected' : ''}>OR</option>
459
- <option value="AND" ${mode === 'AND' ? 'selected' : ''}>AND</option>
460
- </select>
461
- `
462
-
463
- return t
464
- },
465
- 'enable': (v, k, r) => {
466
- // console.log('kpCellRender enable', v, k, r)
467
-
468
- //name
469
- let name = get(r, 'name', '')
470
- // console.log('name', name, k, r)
471
-
472
- let t = `
473
- <input type="checkbox" ${v === 'y' ? 'checked' : ''} onclick="$vo.$dg.showVePemiBlngGrupsToggleItemEnableByName('${name}')" ${vo.isEditable ? '' : 'disabled'} />
474
- `
475
-
476
- return t
477
- },
478
- },
479
433
  rowsChange: (rs) => {
480
434
  // console.log('rowsChange', rs)
481
435
  // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))
@@ -547,7 +501,7 @@ export default {
547
501
  let vo = this
548
502
 
549
503
  //cmp
550
- let cmp = get(vo, '$refs.rftable.$refs.$self')
504
+ let cmp = get(vo, '$refs.rftable')
551
505
  // console.log('cmp', cmp)
552
506
 
553
507
  //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據
@@ -559,7 +513,7 @@ export default {
559
513
  let vo = this
560
514
 
561
515
  //cmp
562
- let cmp = get(vo, '$refs.rftable.$refs.$self')
516
+ let cmp = get(vo, '$refs.rftable')
563
517
  // console.log('cmp', cmp)
564
518
 
565
519
  //getDisplayData