w-web-perm 1.0.48 → 1.0.50
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.
- package/.github/workflows/ci-test.yml +2 -2
- package/README.md +5 -5
- package/dist/css/app.8781355a.css +1 -0
- package/dist/css/{chunk-vendors.f149e124.css → chunk-vendors.58917286.css} +1 -1
- package/dist/index.tmp +2 -2
- package/dist/js/app-legacy.b2754bb1.js +1 -0
- package/dist/js/app.b2754bb1.js +1 -0
- package/dist/js/chunk-vendors-legacy.c14a1ed1.js +21 -0
- package/dist/js/chunk-vendors.c14a1ed1.js +21 -0
- package/dist/w-web-perm.umd.js +2 -2
- package/dist/w-web-perm.umd.js.map +1 -1
- package/docs/WWebPerm.html +3 -3
- package/docs/WWebPerm.mjs.html +162 -210
- package/docs/index.html +1 -1
- package/logs/2026-06-19T16.log +191 -0
- package/logs/2026-06-19T23.log +0 -0
- package/logs/2026-06-20T00.log +207 -0
- package/logs/2026-06-20T11.log +221 -0
- package/logs/2026-06-20T12.log +146 -0
- package/logs/2026-06-20T13.log +134 -0
- package/logs/2026-06-20T14.log +296 -0
- package/logs/2026-06-20T15.log +225 -0
- package/logs/2026-06-20T16.log +174 -0
- package/logs/2026-06-21T16.log +110 -0
- package/logs/2026-06-21T17.log +301 -0
- package/logs/2026-06-21T18.log +238 -0
- package/logs/2026-06-21T19.log +141 -0
- package/logs/2026-06-21T20.log +99 -0
- package/logs/2026-06-21T21.log +143 -0
- package/logs/2026-06-21T23.log +26 -0
- package/logs/2026-06-22T00.log +33 -0
- package/logs/2026-06-22T08.log +235 -0
- package/logs/2026-06-22T09.log +246 -0
- package/logs/2026-06-22T10.log +301 -0
- package/logs/2026-06-22T11.log +140 -0
- package/logs/2026-06-22T12.log +22 -0
- package/logs/2026-06-22T14.log +44 -0
- package/logs/2026-06-22T23.log +951 -0
- package/logs/2026-06-23T00.log +263 -0
- package/logs/2026-06-23T08.log +611 -0
- package/logs/2026-06-30T21.log +3609 -0
- package/logs/2026-06-30T22.log +3682 -0
- package/logs/2026-06-30T23.log +592 -0
- package/logs/2026-07-01T12.log +0 -0
- package/logs/2026-07-09T22.log +2220 -0
- package/logs/2026-07-09T23.log +1140 -0
- package/logs/2026-07-10T12.log +6 -0
- package/logs/2026-07-10T13.log +351 -0
- package/logs/2026-07-10T16.log +1272 -0
- package/logs/2026-07-10T19.log +6 -0
- package/logs/2026-07-10T20.log +1883 -0
- package/logs/2026-07-10T21.log +3505 -0
- package/logs/2026-07-10T22.log +3395 -0
- package/logs/2026-07-11T00.log +1338 -0
- package/logs/2026-07-11T01.log +2492 -0
- package/logs/2026-07-11T17.log +19 -0
- package/package.json +23 -16
- package/public/index.html +2 -2
- package/server/WWebPerm.mjs +161 -209
- package/server/procCore.mjs +187 -0
- package/server/procLang.mjs +276 -60
- package/server/procStaInfor.mjs +128 -0
- package/server/provideTabs.mjs +1 -1
- package/server/srLog.mjs +30 -0
- package/server/staLogs/filterVpfsByWindow.mjs +27 -0
- package/server/staLogs/staEvent.callWorker.mjs +46 -0
- package/server/staLogs/staEvent.mjs +118 -0
- package/server/staLogs/staEvent.shellWorker.mjs +19 -0
- package/server/staLogs/staEventTable.mjs +102 -0
- package/settings.json +43 -0
- package/src/components/Common/CheckYes.vue +18 -1
- package/src/components/Layout.vue +1 -1
- package/src/components/LayoutContent.vue +13 -3
- package/src/components/LayoutContentGrups.vue +32 -25
- package/src/components/LayoutContentPemis.vue +32 -25
- package/src/components/LayoutContentStaInfor.vue +534 -0
- package/src/components/LayoutContentTargets.vue +35 -28
- package/src/components/LayoutContentUsers.vue +32 -25
- package/src/components/LayoutState.vue +5 -0
- package/src/components/VeCgrups.vue +19 -9
- package/src/components/VeCpemis.vue +19 -9
- package/src/components/VeCrules.vue +19 -9
- package/src/components/VeGrupBlngUsers.vue +35 -29
- package/src/components/VePemiBlngGrups.vue +35 -29
- package/src/getPerm.mjs +7 -17
- package/src/getPermUserInfor.mjs +8 -18
- package/src/main.js +4 -9
- package/src/perm.mjs +3 -4
- package/src/plugins/mShare.mjs +8 -13
- package/src/plugins/mUI.mjs +7 -44
- package/src/store/mutations.mjs +0 -10
- package/src/store/types.mjs +0 -2
- package/srv.mjs +76 -101
- package/tableTags.json +1 -1
- package/z/344/277/256/346/255/243/350/246/217/345/212/203/346/233/270.md +450 -0
- package/db/wperm/grups/data.mdb +0 -0
- package/db/wperm/grups/lock.mdb +0 -0
- package/db/wperm/pemis/data.mdb +0 -0
- package/db/wperm/pemis/lock.mdb +0 -0
- package/db/wperm/targets/data.mdb +0 -0
- package/db/wperm/targets/lock.mdb +0 -0
- package/db/wperm/users/data.mdb +0 -0
- package/db/wperm/users/lock.mdb +0 -0
- package/dist/css/app.30e81bfe.css +0 -1
- package/dist/js/app-legacy.3324392e.js +0 -1
- package/dist/js/app.3324392e.js +0 -1
- package/dist/js/chunk-vendors-legacy.e8703728.js +0 -21
- package/dist/js/chunk-vendors.e8703728.js +0 -21
- package/src/plugins/mDataSelectorSchema.mjs +0 -30
- package/tableTags-web-perm.json +0 -1
- package/test/getUserRules.test.mjs +0 -899
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
<!-- 功能區 -->
|
|
41
41
|
<div
|
|
42
|
+
data-fmid="grups-toolbar"
|
|
42
43
|
style="padding:5px; border-top:1px solid #ddd; display:flex; align-items:center;"
|
|
43
44
|
_v-if="showIsEditable || isEditable"
|
|
44
45
|
>
|
|
@@ -185,6 +186,7 @@
|
|
|
185
186
|
:iconColor="'#eee'"
|
|
186
187
|
:iconColorHover="'#fff'"
|
|
187
188
|
:shadow="false"
|
|
189
|
+
:promiseUnlock="true"
|
|
188
190
|
@click="saveGrups"
|
|
189
191
|
></WButtonCircle>
|
|
190
192
|
|
|
@@ -294,7 +296,6 @@ export default {
|
|
|
294
296
|
mdiPencilOutline,
|
|
295
297
|
mdiContentCopy,
|
|
296
298
|
|
|
297
|
-
panelWidth: 100,
|
|
298
299
|
panelHeight: 100,
|
|
299
300
|
headHeight: 100,
|
|
300
301
|
|
|
@@ -622,7 +623,6 @@ export default {
|
|
|
622
623
|
let vo = this
|
|
623
624
|
|
|
624
625
|
//panelWidth, panelHeight
|
|
625
|
-
vo.panelWidth = msg.snew.offsetWidth
|
|
626
626
|
vo.panelHeight = msg.snew.offsetHeight
|
|
627
627
|
|
|
628
628
|
},
|
|
@@ -1177,20 +1177,28 @@ export default {
|
|
|
1177
1177
|
|
|
1178
1178
|
},
|
|
1179
1179
|
|
|
1180
|
-
saveGrups: function() {
|
|
1181
|
-
// console.log('method saveGrups')
|
|
1180
|
+
saveGrups: function(msg) {
|
|
1182
1181
|
|
|
1183
1182
|
let vo = this
|
|
1184
1183
|
|
|
1185
|
-
|
|
1186
|
-
|
|
1184
|
+
//第一行立刻釋放按鈕視覺鎖
|
|
1185
|
+
msg.pm.resolve()
|
|
1187
1186
|
|
|
1188
|
-
|
|
1189
|
-
|
|
1187
|
+
//fire-and-forget, 不 await
|
|
1188
|
+
vo.doSaveGrups()
|
|
1190
1189
|
|
|
1191
|
-
|
|
1190
|
+
},
|
|
1191
|
+
|
|
1192
|
+
doSaveGrups: function() {
|
|
1193
|
+
// console.log('method doSaveGrups')
|
|
1194
|
+
|
|
1195
|
+
let vo = this
|
|
1196
|
+
|
|
1197
|
+
async function core() {
|
|
1198
|
+
|
|
1199
|
+
//1) 同步檢測 (在開 loading 之前)
|
|
1192
1200
|
if (isestr(vo.isError)) {
|
|
1193
|
-
vo.$
|
|
1201
|
+
await vo.$dg.showCheckYes(`${vo.isError}`)
|
|
1194
1202
|
return
|
|
1195
1203
|
}
|
|
1196
1204
|
|
|
@@ -1199,35 +1207,34 @@ export default {
|
|
|
1199
1207
|
|
|
1200
1208
|
//check
|
|
1201
1209
|
if (size(rows) === 0) {
|
|
1202
|
-
vo.$
|
|
1210
|
+
await vo.$dg.showCheckYes(`${vo.$t('grupAddEmpty')}`)
|
|
1203
1211
|
return
|
|
1204
1212
|
}
|
|
1205
1213
|
|
|
1206
|
-
//
|
|
1214
|
+
//2) 確定打 API 才開 loading
|
|
1215
|
+
vo.$ui.updateLoading(true)
|
|
1216
|
+
|
|
1217
|
+
//3) updateGrups, 各自 catch + 旗標短路
|
|
1218
|
+
let okSave = false
|
|
1207
1219
|
await vo.$fapi.updateGrups(rows)
|
|
1208
|
-
.
|
|
1209
|
-
|
|
1220
|
+
.then(() => { okSave = true })
|
|
1221
|
+
.catch(async (err) => {
|
|
1222
|
+
vo.$ui.updateLoading(false) //showCheckYes 前關 loading(modal 阻斷期間避免 loading 疊在底下)
|
|
1223
|
+
await vo.$dg.showCheckYes(`${vo.$t('grupSaveGrupsFail')}: ${vo.$tErr(err)}`)
|
|
1210
1224
|
})
|
|
1211
|
-
|
|
1212
|
-
//check
|
|
1213
|
-
if (errTemp !== null) {
|
|
1214
|
-
vo.$alert(`${vo.$t('grupSaveGrupsFail')}: ${errTemp}`, { type: 'error' })
|
|
1215
|
-
return
|
|
1216
|
-
}
|
|
1225
|
+
if (!okSave) return
|
|
1217
1226
|
|
|
1218
1227
|
//isModified
|
|
1219
1228
|
vo.isModified = false
|
|
1220
1229
|
|
|
1221
|
-
//alert
|
|
1222
|
-
vo.$
|
|
1230
|
+
//alert(showCheckYes 前關 loading,避免 modal 等待期間 loading 疊在底下)
|
|
1231
|
+
vo.$ui.updateLoading(false)
|
|
1232
|
+
await vo.$dg.showCheckYes(vo.$t('grupSaveGrupsSuccess'), { type: 'success' })
|
|
1223
1233
|
|
|
1224
1234
|
}
|
|
1225
1235
|
|
|
1226
1236
|
//core
|
|
1227
1237
|
core()
|
|
1228
|
-
// .then((res) => {
|
|
1229
|
-
// console.log('then', res)
|
|
1230
|
-
// })
|
|
1231
1238
|
.catch((err) => {
|
|
1232
1239
|
console.log('catch', err)
|
|
1233
1240
|
vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
<!-- 功能區 -->
|
|
41
41
|
<div
|
|
42
|
+
data-fmid="pemis-toolbar"
|
|
42
43
|
style="padding:5px; border-top:1px solid #ddd; display:flex; align-items:center;"
|
|
43
44
|
_v-if="showIsEditable || isEditable"
|
|
44
45
|
>
|
|
@@ -185,6 +186,7 @@
|
|
|
185
186
|
:iconColor="'#eee'"
|
|
186
187
|
:iconColorHover="'#fff'"
|
|
187
188
|
:shadow="false"
|
|
189
|
+
:promiseUnlock="true"
|
|
188
190
|
@click="savePemis"
|
|
189
191
|
></WButtonCircle>
|
|
190
192
|
|
|
@@ -294,7 +296,6 @@ export default {
|
|
|
294
296
|
mdiPencilOutline,
|
|
295
297
|
mdiContentCopy,
|
|
296
298
|
|
|
297
|
-
panelWidth: 100,
|
|
298
299
|
panelHeight: 100,
|
|
299
300
|
headHeight: 100,
|
|
300
301
|
|
|
@@ -622,7 +623,6 @@ export default {
|
|
|
622
623
|
let vo = this
|
|
623
624
|
|
|
624
625
|
//panelWidth, panelHeight
|
|
625
|
-
vo.panelWidth = msg.snew.offsetWidth
|
|
626
626
|
vo.panelHeight = msg.snew.offsetHeight
|
|
627
627
|
|
|
628
628
|
},
|
|
@@ -1179,20 +1179,28 @@ export default {
|
|
|
1179
1179
|
|
|
1180
1180
|
},
|
|
1181
1181
|
|
|
1182
|
-
savePemis: function() {
|
|
1183
|
-
// console.log('method savePemis')
|
|
1182
|
+
savePemis: function(msg) {
|
|
1184
1183
|
|
|
1185
1184
|
let vo = this
|
|
1186
1185
|
|
|
1187
|
-
|
|
1188
|
-
|
|
1186
|
+
//第一行立刻釋放按鈕視覺鎖
|
|
1187
|
+
msg.pm.resolve()
|
|
1189
1188
|
|
|
1190
|
-
|
|
1191
|
-
|
|
1189
|
+
//fire-and-forget, 不 await
|
|
1190
|
+
vo.doSavePemis()
|
|
1192
1191
|
|
|
1193
|
-
|
|
1192
|
+
},
|
|
1193
|
+
|
|
1194
|
+
doSavePemis: function() {
|
|
1195
|
+
// console.log('method doSavePemis')
|
|
1196
|
+
|
|
1197
|
+
let vo = this
|
|
1198
|
+
|
|
1199
|
+
async function core() {
|
|
1200
|
+
|
|
1201
|
+
//1) 同步檢測 (在開 loading 之前)
|
|
1194
1202
|
if (isestr(vo.isError)) {
|
|
1195
|
-
vo.$
|
|
1203
|
+
await vo.$dg.showCheckYes(`${vo.isError}`)
|
|
1196
1204
|
return
|
|
1197
1205
|
}
|
|
1198
1206
|
|
|
@@ -1201,35 +1209,34 @@ export default {
|
|
|
1201
1209
|
|
|
1202
1210
|
//check
|
|
1203
1211
|
if (size(rows) === 0) {
|
|
1204
|
-
vo.$
|
|
1212
|
+
await vo.$dg.showCheckYes(`${vo.$t('pemiAddEmpty')}`)
|
|
1205
1213
|
return
|
|
1206
1214
|
}
|
|
1207
1215
|
|
|
1208
|
-
//
|
|
1216
|
+
//2) 確定打 API 才開 loading
|
|
1217
|
+
vo.$ui.updateLoading(true)
|
|
1218
|
+
|
|
1219
|
+
//3) updatePemis, 各自 catch + 旗標短路
|
|
1220
|
+
let okSave = false
|
|
1209
1221
|
await vo.$fapi.updatePemis(rows)
|
|
1210
|
-
.
|
|
1211
|
-
|
|
1222
|
+
.then(() => { okSave = true })
|
|
1223
|
+
.catch(async (err) => {
|
|
1224
|
+
vo.$ui.updateLoading(false) //showCheckYes 前關 loading(modal 阻斷期間避免 loading 疊在底下)
|
|
1225
|
+
await vo.$dg.showCheckYes(`${vo.$t('pemiSavePemisFail')}: ${vo.$tErr(err)}`)
|
|
1212
1226
|
})
|
|
1213
|
-
|
|
1214
|
-
//check
|
|
1215
|
-
if (errTemp !== null) {
|
|
1216
|
-
vo.$alert(`${vo.$t('pemiSavePemisFail')}: ${errTemp}`, { type: 'error' })
|
|
1217
|
-
return
|
|
1218
|
-
}
|
|
1227
|
+
if (!okSave) return
|
|
1219
1228
|
|
|
1220
1229
|
//isModified
|
|
1221
1230
|
vo.isModified = false
|
|
1222
1231
|
|
|
1223
|
-
//alert
|
|
1224
|
-
vo.$
|
|
1232
|
+
//alert(showCheckYes 前關 loading,避免 modal 等待期間 loading 疊在底下)
|
|
1233
|
+
vo.$ui.updateLoading(false)
|
|
1234
|
+
await vo.$dg.showCheckYes(vo.$t('pemiSavePemisSuccess'), { type: 'success' })
|
|
1225
1235
|
|
|
1226
1236
|
}
|
|
1227
1237
|
|
|
1228
1238
|
//core
|
|
1229
1239
|
core()
|
|
1230
|
-
// .then((res) => {
|
|
1231
|
-
// console.log('then', res)
|
|
1232
|
-
// })
|
|
1233
1240
|
.catch((err) => {
|
|
1234
1241
|
console.log('catch', err)
|
|
1235
1242
|
vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })
|