w-web-perm 1.0.12 → 1.0.13
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/.vscode/launch.json +0 -1
- package/README.md +0 -1
- package/dist/css/app.f22995d1.css +1 -0
- package/dist/index.tmp +1 -1
- package/dist/js/app-legacy.82274c39.js +2 -0
- package/dist/js/app-legacy.82274c39.js.map +1 -0
- package/dist/js/app.82274c39.js +2 -0
- package/dist/js/app.82274c39.js.map +1 -0
- package/dist/js/chunk-vendors-legacy.d89048a8.js +13 -0
- package/dist/js/chunk-vendors-legacy.d89048a8.js.map +1 -0
- package/dist/js/chunk-vendors.d89048a8.js +13 -0
- package/dist/js/chunk-vendors.d89048a8.js.map +1 -0
- package/dist/w-web-perm.umd.js +2 -2
- package/dist/w-web-perm.umd.js.map +1 -1
- package/docs/WWebPerm.html +2 -2
- package/docs/WWebPerm.mjs.html +212 -64
- package/docs/index.html +1 -1
- package/g.backupDb.mjs +1 -1
- package/g.initialData.mjs +211 -111
- package/g.initialTestData.mjs +2 -1
- package/g.mjs +0 -0
- package/g.provideGrups.mjs +87 -0
- package/g.providePemis.mjs +43 -0
- package/g.provideTargets.mjs +20 -13
- package/g.provideUsers.mjs +45 -13
- package/package.json +8 -8
- package/script.txt +5 -5
- package/server/WWebPerm.mjs +211 -63
- package/server/provideGrups.mjs +64 -0
- package/server/{provideRuleGroups.mjs → providePemis.mjs} +14 -15
- package/server/provideTargets.mjs +8 -5
- package/server/provideUsers.mjs +9 -9
- package/src/App.vue +16 -3
- package/src/components/Layout.vue +13 -5
- package/src/components/LayoutContent.vue +31 -16
- package/src/components/LayoutContentGrups.vue +793 -0
- package/src/components/LayoutContentPemis.vue +793 -0
- package/src/components/LayoutContentTargets.vue +481 -307
- package/src/components/LayoutContentUsers.vue +796 -291
- package/src/components/VeCgrups.vue +926 -0
- package/src/components/VeCpemis.vue +926 -0
- package/src/components/VeCrules.vue +820 -0
- package/src/main.js +2 -2
- package/src/perm.mjs +5 -5
- package/src/plugins/mShare.mjs +444 -153
- package/src/plugins/mUI.mjs +37 -19
- package/src/schema/gi.mjs +1 -1
- package/src/schema/index.mjs +4 -2
- package/src/schema/tables/grups.mjs +154 -0
- package/src/schema/tables/{ruleGroups.mjs → pemis.mjs} +27 -16
- package/src/schema/tables/targets.mjs +49 -16
- package/src/schema/tables/users.mjs +55 -27
- package/src/store/mutations.mjs +375 -150
- package/srv.mjs +2 -2
- package/tableTags-web-perm.json +1 -1
- package/dist/css/app.f6c50bec.css +0 -1
- package/dist/js/app-legacy.767522f1.js +0 -2
- package/dist/js/app-legacy.767522f1.js.map +0 -1
- package/dist/js/app.767522f1.js +0 -2
- package/dist/js/app.767522f1.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.b0d63e17.js +0 -13
- package/dist/js/chunk-vendors-legacy.b0d63e17.js.map +0 -1
- package/dist/js/chunk-vendors.b0d63e17.js +0 -13
- package/dist/js/chunk-vendors.b0d63e17.js.map +0 -1
- package/g.provideRuleGroups.mjs +0 -56
- package/src/components/LayoutContentGroups.vue +0 -671
- package/src/components/VeUser.vue +0 -446
- package/src/components/ruleGroup.vue +0 -645
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/app.767522f1.js","mappings":"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","sources":["webpack://w-web-perm/./src/App.vue","webpack://w-web-perm/./src/components/Common/LoadingWinBar.vue","webpack://w-web-perm/src/components/Common/LoadingWinBar.vue","webpack://w-web-perm/./src/components/Common/LoadingWinBar.vue?20f2","webpack://w-web-perm/./src/components/Common/LoadingWinBar.vue?0bae","webpack://w-web-perm/./src/components/Common/CheckYesNo.vue","webpack://w-web-perm/src/components/Common/CheckYesNo.vue","webpack://w-web-perm/./src/components/Common/CheckYesNo.vue?0786","webpack://w-web-perm/./src/components/Common/CheckYesNo.vue?5d88","webpack://w-web-perm/./src/components/Common/CheckYes.vue","webpack://w-web-perm/src/components/Common/CheckYes.vue","webpack://w-web-perm/./src/components/Common/CheckYes.vue?6829","webpack://w-web-perm/./src/components/Common/CheckYes.vue?d003","webpack://w-web-perm/./src/components/LayoutState.vue","webpack://w-web-perm/src/components/LayoutState.vue","webpack://w-web-perm/./src/components/LayoutState.vue?4eb5","webpack://w-web-perm/./src/components/LayoutState.vue?272c","webpack://w-web-perm/./src/components/Layout.vue","webpack://w-web-perm/./src/components/LayoutContent.vue","webpack://w-web-perm/./src/components/LayoutContentTargets.vue","webpack://w-web-perm/./src/plugins/mShare.mjs","webpack://w-web-perm/src/components/LayoutContentTargets.vue","webpack://w-web-perm/./src/components/LayoutContentTargets.vue?8196","webpack://w-web-perm/./src/components/LayoutContentTargets.vue?1e0d","webpack://w-web-perm/./src/components/LayoutContentGroups.vue","webpack://w-web-perm/./src/components/ruleGroup.vue","webpack://w-web-perm/src/components/ruleGroup.vue","webpack://w-web-perm/./src/components/ruleGroup.vue?78ee","webpack://w-web-perm/./src/components/ruleGroup.vue?35ac","webpack://w-web-perm/src/components/LayoutContentGroups.vue","webpack://w-web-perm/./src/components/LayoutContentGroups.vue?6b42","webpack://w-web-perm/./src/components/LayoutContentGroups.vue?997e","webpack://w-web-perm/./src/components/LayoutContentUsers.vue","webpack://w-web-perm/src/components/LayoutContentUsers.vue","webpack://w-web-perm/./src/components/LayoutContentUsers.vue?6395","webpack://w-web-perm/./src/components/LayoutContentUsers.vue?9c9b","webpack://w-web-perm/src/components/LayoutContent.vue","webpack://w-web-perm/./src/components/LayoutContent.vue?07f8","webpack://w-web-perm/./src/components/LayoutContent.vue?a8dd","webpack://w-web-perm/src/components/Layout.vue","webpack://w-web-perm/./src/components/Layout.vue?620d","webpack://w-web-perm/./src/components/Layout.vue?6d15","webpack://w-web-perm/./src/components/VeUser.vue","webpack://w-web-perm/src/components/VeUser.vue","webpack://w-web-perm/./src/components/VeUser.vue?2f49","webpack://w-web-perm/./src/components/VeUser.vue?ebb2","webpack://w-web-perm/src/App.vue","webpack://w-web-perm/./src/App.vue?c036","webpack://w-web-perm/./src/App.vue?0e40","webpack://w-web-perm/./src/store/types.mjs","webpack://w-web-perm/./src/schema/tables/ruleGroups.mjs","webpack://w-web-perm/./src/schema/tables/targets.mjs","webpack://w-web-perm/./src/schema/tables/users.mjs","webpack://w-web-perm/./src/schema/index.mjs","webpack://w-web-perm/./src/store/mutations.mjs","webpack://w-web-perm/./src/store/index.mjs","webpack://w-web-perm/./src/plugins/mUI.mjs","webpack://w-web-perm/./src/plugins/mDataSelectorSchema.mjs","webpack://w-web-perm/./src/main.js","webpack://w-web-perm/webpack/bootstrap","webpack://w-web-perm/webpack/runtime/chunk loaded","webpack://w-web-perm/webpack/runtime/compat get default export","webpack://w-web-perm/webpack/runtime/define property getters","webpack://w-web-perm/webpack/runtime/global","webpack://w-web-perm/webpack/runtime/hasOwnProperty shorthand","webpack://w-web-perm/webpack/runtime/make namespace object","webpack://w-web-perm/webpack/runtime/jsonp chunk loading","webpack://w-web-perm/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],on:{\"domresize\":_vm.resize}},[(!_vm.ready)?_c('LayoutState',{style:(`opacity:${_vm.ready?0:1};`)}):_vm._e(),_c('transition',{attrs:{\"enter-active-class\":\"fade-enter-active\",\"leave-active-class\":\"fade-leave-active\"}},[(_vm.ready)?_c('Layout'):_vm._e()],1),_c('LoadingWinBar'),_c('CheckYesNo'),_c('CheckYes'),_c('VeUser')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WDialog',{attrs:{\"show\":_vm.loading,\"maxWidth\":_vm.dialogWidth},on:{\"update:show\":function($event){_vm.loading=$event},\"resize\":_vm.resizeDialog},scopedSlots:_vm._u([{key:\"panel\",fn:function(){return [_c('div',{style:(`padding:${_vm.barPadding-5}px ${_vm.barPadding}px ${_vm.barPadding}px ${_vm.barPadding}px;`)},[_c('div',{staticStyle:{\"padding-bottom\":\"3px\",\"font-size\":\"0.9rem\",\"color\":\"#666\"}},[(_vm.msg!=='')?_c('span',[_vm._v(_vm._s(_vm.msg))]):_c('span',[_vm._v(\"處理中請稍後...\")])]),_c('WProgressBar',{style:(`width:${_vm.barWidth}px;`),attrs:{\"height\":3,\"enableContinuous\":true,\"progColor\":'deep-purple lighten-1',\"progBackgroundColor\":'deep-purple lighten-4'}})],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WDialog\r\n :show.sync=\"loading\"\r\n :maxWidth=\"dialogWidth\"\r\n @resize=\"resizeDialog\"\r\n >\r\n\r\n <template v-slot:panel>\r\n\r\n <div :style=\"`padding:${barPadding-5}px ${barPadding}px ${barPadding}px ${barPadding}px;`\">\r\n\r\n\r\n <div style=\"padding-bottom:3px; font-size:0.9rem; color:#666;\">\r\n\r\n <span v-if=\"msg!==''\">{{msg}}</span>\r\n\r\n <span v-else>處理中請稍後...</span>\r\n\r\n </div>\r\n\r\n <WProgressBar\r\n :style=\"`width:${barWidth}px;`\"\r\n :height=\"3\"\r\n :enableContinuous=\"true\"\r\n :progColor=\"'deep-purple lighten-1'\"\r\n :progBackgroundColor=\"'deep-purple lighten-4'\"\r\n ></WProgressBar>\r\n\r\n </div>\r\n\r\n </template>\r\n\r\n </WDialog>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue'\r\nimport get from 'lodash-es/get.js'\nimport WDialog from 'w-component-vue/src/components/WDialog.vue'\r\nimport WProgressBar from 'w-component-vue/src/components/WProgressBar.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WDialog,\r\n WProgressBar,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n dialogWidth: 0,\r\n dialogWidthMax: 600,\r\n\r\n barPadding: 20,\r\n barWidth: 0,\r\n msg: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.setLoadingWinBarMessage = vo.setMessage\r\n\r\n },\r\n computed: {\r\n\r\n loading: function() {\r\n let vo = this\r\n let b = get(vo, `$store.state.loading`)\r\n // console.log('loading', b)\r\n return b\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n setMessage: function(msg) {\r\n this.msg = msg\r\n },\r\n\r\n resizeDialog: function(msg) {\r\n // console.log('methods resizeDialog', msg)\r\n\r\n let vo = this\r\n\r\n let w = window.innerWidth\r\n // console.log('window.innerWidth', window.innerWidth)\r\n\r\n //dialogWidth\r\n let dialogWidth = w - vo.barPadding * 2\r\n dialogWidth = Math.max(dialogWidth, 0)\r\n dialogWidth = Math.min(dialogWidth, vo.dialogWidthMax)\r\n vo.dialogWidth = dialogWidth\r\n // console.log('dialogWidth', dialogWidth)\r\n\r\n //barWidth\r\n let barWidth = dialogWidth - vo.barPadding * 2\r\n barWidth = Math.max(barWidth, 0)\r\n vo.barWidth = barWidth\r\n // console.log('barWidth', barWidth)\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingWinBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingWinBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoadingWinBar.vue?vue&type=template&id=ff3d4996&scoped=true\"\nimport script from \"./LoadingWinBar.vue?vue&type=script&lang=js\"\nexport * from \"./LoadingWinBar.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ff3d4996\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WConfirm',{attrs:{\"show\":_vm.bShow,\"title\":_vm.$t('systemMessage'),\"content\":_vm.content,\"_contentColor\":'white',\"_contentIconColor\":'white',\"_contentBackgroundColor\":'orange lighten-5',\"_titleColor\":'white',\"headerBackgroundColor\":'grey lighten-3',\"noBtnText\":_vm.$t('no'),\"yesBtnText\":_vm.$t('yes')},on:{\"update:show\":function($event){_vm.bShow=$event},\"click-no\":function($event){return _vm.clickBtn(false)},\"click-yes\":function($event){return _vm.clickBtn(true)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WConfirm\r\n :show.sync=\"bShow\"\r\n :title=\"$t('systemMessage')\"\r\n :content=\"content\"\r\n :_contentColor=\"'white'\"\r\n :_contentIconColor=\"'white'\"\r\n :_contentBackgroundColor=\"'orange lighten-5'\"\r\n :_titleColor=\"'white'\"\r\n :headerBackgroundColor=\"'grey lighten-3'\"\r\n :noBtnText=\"$t('no')\"\r\n :yesBtnText=\"$t('yes')\"\r\n @click-no=\"clickBtn(false)\"\r\n @click-yes=\"clickBtn(true)\"\r\n ></WConfirm>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport WConfirm from 'w-component-vue/src/components/WConfirm.vue'\r\n\r\nexport default {\r\n components: {\r\n WConfirm,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n bShow: false,\r\n pm: null,\r\n\r\n content: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.showCheckYesNo = vo.show\r\n\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n\r\n show: function (content) {\r\n //console.log('methods show', content)\r\n\r\n let vo = this\r\n\r\n //pm\r\n vo.pm = genPm()\r\n\r\n //save\r\n vo.content = content\r\n\r\n //show\r\n vo.bShow = true\r\n\r\n return vo.pm\r\n },\r\n\r\n clickBtn: function(mode) {\r\n //console.log('methods clickBtn', mode)\r\n\r\n let vo = this\r\n\r\n if (mode) {\r\n vo.pm.resolve()\r\n }\r\n else {\r\n vo.pm.reject('close')\r\n }\r\n\r\n //hide\r\n vo.bShow = false\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYesNo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYesNo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckYesNo.vue?vue&type=template&id=cfad0048&scoped=true\"\nimport script from \"./CheckYesNo.vue?vue&type=script&lang=js\"\nexport * from \"./CheckYesNo.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cfad0048\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WConfirm',{attrs:{\"show\":_vm.bShow,\"title\":_vm.$t('systemMessage'),\"content\":_vm.content,\"_contentColor\":'white',\"_contentIconColor\":'white',\"_contentBackgroundColor\":'orange lighten-5',\"headerBackgroundColor\":'grey lighten-3',\"hasNoBtn\":false,\"yesBtnText\":_vm.$t('ok')},on:{\"update:show\":function($event){_vm.bShow=$event},\"click-yes\":function($event){return _vm.clickUnit()}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WConfirm\r\n :show.sync=\"bShow\"\r\n :title=\"$t('systemMessage')\"\r\n :content=\"content\"\r\n :_contentColor=\"'white'\"\r\n :_contentIconColor=\"'white'\"\r\n :_contentBackgroundColor=\"'orange lighten-5'\"\r\n :headerBackgroundColor=\"'grey lighten-3'\"\r\n :hasNoBtn=\"false\"\r\n :yesBtnText=\"$t('ok')\"\r\n @click-yes=\"clickUnit()\"\r\n ></WConfirm>\r\n</template>\r\n\r\n<script>\r\nimport Vue from 'vue'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport WConfirm from 'w-component-vue/src/components/WConfirm.vue'\r\n\r\nexport default {\r\n components: {\r\n WConfirm,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n bShow: false,\r\n pm: null,\r\n\r\n content: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.showCheckYes = vo.show\r\n\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n\r\n show: function (content) {\r\n //console.log('methods show', content)\r\n\r\n let vo = this\r\n\r\n //pm\r\n vo.pm = genPm()\r\n\r\n //save\r\n vo.content = content\r\n\r\n //show\r\n vo.bShow = true\r\n\r\n return vo.pm\r\n },\r\n\r\n clickUnit: function() {\r\n //console.log('methods clickUnit')\r\n\r\n let vo = this\r\n\r\n //resolve\r\n vo.pm.resolve()\r\n\r\n //hide\r\n vo.bShow = false\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CheckYes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CheckYes.vue?vue&type=template&id=9943c370&scoped=true\"\nimport script from \"./CheckYes.vue?vue&type=script&lang=js\"\nexport * from \"./CheckYes.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9943c370\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{style:(`position:absolute; top:0px; left:0px; width:100%; height:100%; transition:all 0.5s linear; display:flex; align-items:center; justify-content:center;`)},[(_vm.connState==='已連線' || _vm.connState==='連線中...')?[_c('img',{staticStyle:{\"width\":\"100px\",\"height\":\"100px\"},attrs:{\"src\":_vm.img_connection}}),_c('div',{staticStyle:{\"margin-left\":\"10px\"}},[_c('div',{staticStyle:{\"color\":\"#aaa\"}},[_vm._v(\" \"+_vm._s(_vm.connState)+\" \")])])]:(_vm.connState==='已登出')?[_c('img',{staticStyle:{\"width\":\"75px\",\"height\":\"75px\"},attrs:{\"src\":_vm.img_logout}}),_c('div',{staticStyle:{\"margin-left\":\"10px\"}},[_c('div',{staticStyle:{\"color\":\"#aaa\"}},[_vm._v(\" \"+_vm._s(_vm.connState)+\" \")])])]:(_vm.connState==='無法連線')?[_c('img',{staticStyle:{\"width\":\"75px\",\"height\":\"75px\"},attrs:{\"src\":_vm.img_dissconnection}}),_c('div',{staticStyle:{\"margin-left\":\"10px\"}},[_c('div',{staticStyle:{\"color\":\"#aaa\"}},[_vm._v(\" \"+_vm._s(_vm.connState)+\" \")])])]:[_c('img',{staticStyle:{\"width\":\"75px\",\"height\":\"75px\"},attrs:{\"src\":_vm.img_deny}}),_c('div',{staticStyle:{\"margin-left\":\"10px\"}},[_c('div',{staticStyle:{\"color\":\"#aaa\"}},[_vm._v(\" \"+_vm._s(_vm.connState)+\" \")])])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div\r\n :style=\"`position:absolute; top:0px; left:0px; width:100%; height:100%; transition:all 0.5s linear; display:flex; align-items:center; justify-content:center;`\"\r\n >\r\n\r\n <template v-if=\"connState==='已連線' || connState==='連線中...'\">\r\n\r\n <img style=\"width:100px; height:100px;\" :src=\"img_connection\">\r\n\r\n <div style=\"margin-left:10px;\">\r\n <div style=\"color:#aaa;\">\r\n {{connState}}\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n <template v-else-if=\"connState==='已登出'\">\r\n\r\n <img style=\"width:75px; height:75px;\" :src=\"img_logout\">\r\n\r\n <div style=\"margin-left:10px;\">\r\n <div style=\"color:#aaa;\">\r\n {{connState}}\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n <template v-else-if=\"connState==='無法連線'\">\r\n\r\n <img style=\"width:75px; height:75px;\" :src=\"img_dissconnection\">\r\n\r\n <div style=\"margin-left:10px;\">\r\n <div style=\"color:#aaa;\">\r\n {{connState}}\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n <template v-else>\r\n\r\n <img style=\"width:75px; height:75px;\" :src=\"img_deny\">\r\n\r\n <div style=\"margin-left:10px;\">\r\n <div style=\"color:#aaa;\">\r\n {{connState}}\r\n </div>\r\n </div>\r\n\r\n </template>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\n\r\n\r\nexport default {\r\n components: {\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n img_connection: `data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMTAwcHgiIGhlaWdodD0iMTAwcHgiIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWlkWU1pZCI+DQo8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSIxMy44MTkzIiBmaWxsPSJub25lIiBzdHJva2U9IiM1ZjJhNjIiIHN0cm9rZS13aWR0aD0iMiI+DQogIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuMjY1ODIyNzg0ODEwMTI2NHMiIHZhbHVlcz0iMDs0NCIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMCAwLjIgMC44IDEiIGNhbGNNb2RlPSJzcGxpbmUiIGJlZ2luPSItMC42MzI5MTEzOTI0MDUwNjMycyI+PC9hbmltYXRlPg0KICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJvcGFjaXR5IiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgZHVyPSIxLjI2NTgyMjc4NDgxMDEyNjRzIiB2YWx1ZXM9IjE7MCIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMC4yIDAgMC44IDEiIGNhbGNNb2RlPSJzcGxpbmUiIGJlZ2luPSItMC42MzI5MTEzOTI0MDUwNjMycyI+PC9hbmltYXRlPg0KPC9jaXJjbGU+DQo8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSIzNS44MTY1IiBmaWxsPSJub25lIiBzdHJva2U9IiNhOTc2YzMiIHN0cm9rZS13aWR0aD0iMiI+DQogIDxhbmltYXRlIGF0dHJpYnV0ZU5hbWU9InIiIHJlcGVhdENvdW50PSJpbmRlZmluaXRlIiBkdXI9IjEuMjY1ODIyNzg0ODEwMTI2NHMiIHZhbHVlcz0iMDs0NCIga2V5VGltZXM9IjA7MSIga2V5U3BsaW5lcz0iMCAwLjIgMC44IDEiIGNhbGNNb2RlPSJzcGxpbmUiPjwvYW5pbWF0ZT4NCiAgPGFuaW1hdGUgYXR0cmlidXRlTmFtZT0ib3BhY2l0eSIgcmVwZWF0Q291bnQ9ImluZGVmaW5pdGUiIGR1cj0iMS4yNjU4MjI3ODQ4MTAxMjY0cyIgdmFsdWVzPSIxOzAiIGtleVRpbWVzPSIwOzEiIGtleVNwbGluZXM9IjAuMiAwIDAuOCAxIiBjYWxjTW9kZT0ic3BsaW5lIj48L2FuaW1hdGU+DQo8L2NpcmNsZT4NCjwvc3ZnPg==`,\r\n img_logout: `data:image/png;base64,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`,\r\n img_dissconnection: `data:image/png;base64,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`,\r\n img_deny: `data:image/png;base64,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`,\r\n }\r\n },\r\n computed: {\r\n\r\n connState: function() {\r\n //console.log('computed loading')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.connState`)\r\n },\r\n\r\n },\r\n methods: {\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutState.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutState.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutState.vue?vue&type=template&id=3630a75a&scoped=true\"\nimport script from \"./LayoutState.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutState.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3630a75a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"height\":\"100vh\",\"background\":\"#f5f5f5\"}},[_c('div',{style:(`height:${_vm.heightToolbar}px; overflow-y:hidden; padding:0px 10px; background:#fff; border-bottom:1px solid #ccc; display:flex; align-items:center;`)},[(false)?_c('WButtonCircle',{attrs:{\"icon\":'mdi-menu',\"tooltip\":'左側選單',\"shadow\":false},on:{\"click\":function($event){_vm.drawer=!_vm.drawer}}}):_vm._e(),_c('div',{staticStyle:{\"padding-left\":\"5px\",\"white-space\":\"nowrap\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[(_vm.webLogo)?_c('div',{staticStyle:{\"padding-right\":\"10px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticStyle:{\"width\":\"36px\",\"height\":\"36px\"},attrs:{\"src\":_vm.webLogo}})]):_vm._e(),_c('div',[_c('div',{staticStyle:{\"font-size\":\"1.2rem\",\"color\":\"#000\"}},[_vm._v(_vm._s(_vm.webName))]),_c('div',{staticStyle:{\"font-size\":\"0.8rem\",\"color\":\"#666\"}},[_vm._v(_vm._s(_vm.$t('webDescription')))])])])]),_c('div',{staticStyle:{\"width\":\"100%\"}}),_c('div',{staticStyle:{\"padding-right\":\"10px\",\"white-space\":\"nowrap\"}},[_c('WTextSelect',{staticStyle:{\"width\":\"100px\"},attrs:{\"items\":_vm.tgLangs},on:{\"input\":_vm.changeLang},model:{value:(_vm.tgLangSelect),callback:function ($$v) {_vm.tgLangSelect=$$v},expression:\"tgLangSelect\"}})],1)],1),_c('div',{style:(`height:calc( 100% - ${_vm.heightToolbar}px );`)},[_c('LayoutContent')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"height\":\"100%\",\"width\":\"100%\"},on:{\"domresize\":_vm.resize}},[(_vm.syncState)?[_c('WDrawer',{style:(`height:${_vm.panelHeight}px; width:100%;`),attrs:{\"drawerWidth\":_vm.drawerWidth,\"drawerWidthMin\":_vm.drawerWidthMin,\"drawerWidthMax\":_vm.drawerWidthMax,\"mode\":'from-left',\"dragDrawerWidth\":true,\"autoSwitch\":true,\"switchWidth\":_vm.drawerWidth*2.3},on:{\"update:drawerWidth\":function($event){_vm.drawerWidth=$event},\"update:drawer-width\":function($event){_vm.drawerWidth=$event}},scopedSlots:_vm._u([{key:\"drawer\",fn:function(props){return [_c('div',{style:(`height:${props.height}px; background:#fff; position:relative;`)},[_c('WListVertical',{staticStyle:{\"height\":\"100%\"},attrs:{\"items\":_vm.menus,\"itemActive\":_vm.menuActive,\"item-text-color\":'#222',\"item-text-color-hover\":'#444',\"item-text-color-active\":'#EF6C00',\"item-icon-color\":'#222',\"item-icon-color-hover\":'#444',\"item-icon-color-active\":'#EF6C00',\"item-background-color\":'#fff',\"item-background-color-hover\":'#f2f2f2',\"item-background-color-active\":'#FFF3E0',\"paddingStyle\":{v:15,h:15}},on:{\"click\":(menu)=>{_vm.menuKey=menu.key}}}),(_vm.drawer)?_c('div',{style:(`position:absolute; top:1px; right:4px;`)},[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:3,h:3},\"icon\":'mdi-arrow-left',\"iconSize\":16,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#eee',\"backgroundColorFocus\":'#fff',\"borderColor\":'transparent',\"borderColorHover\":'#eee',\"borderColorFocus\":'#eee',\"tooltip\":_vm.$t('menuTreeHide'),\"shadow\":true},on:{\"click\":function($event){_vm.drawer=false}}})],1):_vm._e()],1)]}},{key:\"content\",fn:function(props){return [_c('div',{style:(`height:${props.height}px; width:${props.width}px; position:relative;`)},[[(_vm.menuKey==='targets')?_c('LayoutContentTargets'):_vm._e(),(_vm.menuKey==='groups')?_c('LayoutContentGroups'):_vm._e(),(_vm.menuKey==='users')?_c('LayoutContentUsers'):_vm._e()],(!_vm.drawer)?_c('div',{style:(`position:absolute; top:1px; left:4px;`)},[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:3,h:3},\"icon\":'mdi-arrow-right',\"iconSize\":16,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#eee',\"backgroundColorFocus\":'#fff',\"borderColor\":'transparent',\"borderColorHover\":'#eee',\"borderColorFocus\":'#eee',\"tooltip\":_vm.$t('menuTreeShow'),\"shadow\":true},on:{\"click\":function($event){_vm.drawer=true}}})],1):_vm._e()],2)]}}],null,false,1968923588),model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}})]:[_c('div',{staticStyle:{\"padding\":\"20px\",\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"height\":\"100%\"},attrs:{\"changeTargets\":_vm.changeTargets},on:{\"domresize\":_vm.resizePanel}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"border-bottom\":\"1px solid #ddd\",\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeHead}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\",\"padding\":\"10px 0px 5px 20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"5px 15px 5px 5px\",\"border-bottom\":\"3px solid #FF9100\"}},[_c('WIcon',{attrs:{\"icon\":_vm.mdiGamepadCircle,\"color\":'#FF9800'}}),_c('div',{staticStyle:{\"padding-left\":\"10px\",\"font-size\":\"1.3rem\",\"color\":\"#d3912c\"}},[_vm._v(\" \"+_vm._s(_vm.$t('managementTargets'))+\" \")])],1)]),_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\"}},[_c('div',{staticStyle:{\"padding\":\"15px 20px 15px 20px\",\"background\":\"#fff\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('WSwitch',{attrs:{\"text\":_vm.$t('isEditabled'),\"checkedSwitchCircleColor\":'#D81B60',\"checkedSwitchCircleColorHover\":'#f26',\"checkedSwitchBarColor\":'#F8BBD0',\"checkedSwitchBarColorHover\":'#F8BBD0',\"_v-model\":\"isOperatable\",\"value\":_vm.isOperatable},on:{\"input\":_vm.updateIsOperatable}})],1),(_vm.isOperatable)?_c('div',{staticStyle:{\"padding-top\":\"5px\",\"font-size\":\"0.8rem\",\"_color\":\"#f26\"}},[_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 1. \"+_vm._s(_vm.$t('targetMsg1'))+\" \")]),_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 2. \"+_vm._s(_vm.$t('targetMsg2'))+\" \")])]):_vm._e()])]),(_vm.isModified)?_c('div',{staticStyle:{\"padding\":\"10px 10px 12px 10px\",\"border-top\":\"1px solid #F48FB1\",\"border-bottom\":\"1px solid #F48FB1\",\"background\":\"#FCE4EC\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"flex-end\"}},[_c('WButtonChip',{attrs:{\"paddingStyle\":{v:0,h:11},\"text\":_vm.$t('saveChanges'),\"icon\":_vm.mdiCloudUploadOutline,\"backgroundColor\":'rgba(255,0,50,0.7)',\"backgroundColorHover\":'rgba(255,0,50,0.8)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff'},on:{\"click\":_vm.saveRuleGroupsAndTargets}})],1):_vm._e()]),(!_vm.firstLoading)?_c('div',{style:(`padding:${_vm.spacePading}px;`)},[_c('div',{staticStyle:{\"background\":\"#fff\",\"box-shadow\":\"0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12)\"}},[_c('WTree',{ref:\"wt\",attrs:{\"viewHeightMax\":_vm.treeHeight,\"separatorColor\":'rgba(0,0,0,0.1)',\"data\":_vm.treeBlocks,\"indent\":0.5,\"iconToggleColor\":'#666',\"iconToggleBackgroundColor\":'transparent',\"iconToggleBackgroundColorHover\":'transparent',\"operatable\":_vm.isOperatable,\"operateBtnTooltip\":_vm.$t('edit'),\"operateItemTextForRename\":_vm.$t('changeName'),\"operateItemTextForInsertBefore\":_vm.$t('insertBefore'),\"operateItemTextForInsertChild\":_vm.$t('insertChild'),\"operateItemTextForInsertAfter\":_vm.$t('insertAfter'),\"operateItemTextForDelete\":_vm.$t('deleteTarget'),\"editorRenameSaveBtnText\":_vm.$t('save'),\"editorRenameSaveBtnTextColor\":'#444',\"editorRenameSaveBtnTextColorHover\":'#222',\"editorRenameCancelBtnText\":_vm.$t('cancel'),\"editorRenameCancelBtnTextColor\":'#444',\"editorRenameCancelBtnTextColorHover\":'#222'},on:{\"update:data\":function($event){_vm.treeBlocks=$event},\"click-operate-item\":_vm.clickOperateItem}})],1)]):_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","//前後端共用函數區\r\nimport JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\nimport each from 'lodash-es/each.js'\nimport map from 'lodash-es/map.js'\nimport find from 'lodash-es/find.js'\nimport join from 'lodash-es/join.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport takeRight from 'lodash-es/takeRight.js'\nimport dropRight from 'lodash-es/dropRight.js'\nimport sortBy from 'lodash-es/sortBy.js'\nimport sep from 'wsemi/src/sep.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport composeToTree from 'wsemi/src/composeToTree.mjs'\r\n\r\n\r\n//dlm\r\nlet dlm = '/'\r\n\r\n\r\nfunction getAllBlocks(targets) {\r\n\r\n //rs\r\n let rs = map(targets, (v) => {\r\n\r\n //text, parentId\r\n let s = sep(v.id, dlm) //[tag:dlm]\r\n let text = get(takeRight(s), 0) //取最後節點\r\n s = dropRight(s, 1)\r\n let parentId = join(s, dlm) //[tag:dlm] 取父節點\r\n\r\n return {\r\n ...v,\r\n idTemp: v.id,\r\n parentId,\r\n text,\r\n }\r\n })\r\n // console.log('rs', rs)\r\n\r\n //sortBy\r\n rs = sortBy(rs, 'order')\r\n // console.log('rs sortBy', rs)\r\n\r\n return rs\r\n}\r\n\r\n\r\nfunction getTreeBlocks(targets) {\r\n\r\n //getAllBlocks\r\n let blocks = getAllBlocks(targets)\r\n // console.log('blocks', blocks)\r\n\r\n //opt\r\n let opt = {\r\n bindKey: 'id',\r\n bindParent: 'parentId',\r\n bindChildren: 'children',\r\n saveExtProps: true,\r\n }\r\n\r\n //composeToTree\r\n let r\r\n try {\r\n r = composeToTree(blocks, opt)\r\n }\r\n catch (err) {\r\n console.log(err)\r\n }\r\n // console.log('treeBlocks', cloneDeep(r))\r\n\r\n return r\r\n}\r\n\r\n\r\nfunction getUserGroups(user, ruleGroups) {\r\n\r\n //userGroups\r\n let ruleGroupsIds = get(user, 'ruleGroupsIds', '')\r\n\r\n //sep\r\n let s = sep(ruleGroupsIds, ';')\r\n\r\n //gs\r\n let gs = []\r\n each(s, (id) => {\r\n let g = find(ruleGroups, { id })\r\n if (iseobj(g)) {\r\n gs.push(g)\r\n }\r\n })\r\n\r\n //add rules\r\n gs = map(gs, (g) => {\r\n let rules = JSON5.parse(g.crules)\r\n g.rules = rules\r\n return g\r\n })\r\n\r\n return gs\r\n}\r\n\r\n\r\nfunction getTargetsByGroup(targets, group) {\r\n\r\n //cloneDeep\r\n targets = cloneDeep(targets)\r\n\r\n //sortBy\r\n targets = sortBy(targets, 'order')\r\n\r\n //cloneDeep\r\n group = cloneDeep(group)\r\n\r\n //rules\r\n let rules = JSON5.parse(group.crules)\r\n\r\n //rulesDisplay\r\n let rulesDisplay = {}\r\n let ks = ['show', 'active']\r\n each(ks, (k) => {\r\n\r\n //___all___\r\n let def = get(rules, `___all___.${k}`)\r\n def = (def === 'y') ? 'y' : 'n'\r\n\r\n //other props\r\n each(targets, (v) => {\r\n\r\n //krule\r\n let krule = v.id\r\n\r\n //check\r\n if (!rulesDisplay[krule]) {\r\n rulesDisplay[krule] = {}\r\n }\r\n\r\n //rule\r\n let rule = rules[krule]\r\n\r\n //r\r\n let r = null\r\n\r\n //b\r\n let b = get(rule, `${k}`)\r\n if (b === 'y' || b === 'n') {\r\n r = b\r\n }\r\n else {\r\n r = def\r\n }\r\n\r\n //save\r\n rulesDisplay[krule][k] = r //因krule內含有「.」故不能用set\r\n\r\n })\r\n\r\n })\r\n // console.log('rulesDisplay', rulesDisplay)\r\n\r\n return rulesDisplay\r\n}\r\n\r\n\r\nfunction getUserRules(user, ruleGroups, targets) {\r\n //依照使用者所允許之ruleGroups轉出對全部targets權限\r\n\r\n //ruleGroupsIds\r\n let ruleGroupsIds = get(user, 'ruleGroupsIds', '')\r\n\r\n //getUserGroups\r\n let gs = getUserGroups(user, ruleGroups)\r\n // console.log('gs', gs)\r\n\r\n //ruleGroupsNames\r\n let ruleGroupsNames = map(gs, 'name')\r\n ruleGroupsNames = join(ruleGroupsNames, ';')\r\n\r\n //getTargetsByGroup\r\n let rulesDisplay = {}\r\n each(gs, (g) => {\r\n let r = getTargetsByGroup(targets, g)\r\n each(r, (v, k) => {\r\n\r\n //check\r\n if (!haskey(rulesDisplay, k)) {\r\n rulesDisplay[k] = {}\r\n }\r\n\r\n //merge\r\n let ks = ['show', 'active']\r\n each(ks, (kk) => {\r\n let bOld = rulesDisplay[k][kk]\r\n let bNew = r[k][kk]\r\n if (bOld === 'y') {\r\n //不用覆寫\r\n }\r\n else {\r\n //需覆寫\r\n if (bNew === 'y') {\r\n rulesDisplay[k][kk] = 'y'\r\n }\r\n else {\r\n rulesDisplay[k][kk] = 'n'\r\n }\r\n }\r\n })\r\n\r\n })\r\n })\r\n // console.log('rulesDisplay', rulesDisplay)\r\n\r\n return {\r\n ruleGroupsIds,\r\n ruleGroupsNames,\r\n rules: rulesDisplay,\r\n }\r\n}\r\n\r\n\r\nexport {\r\n // atSep,\r\n // atJoin,\r\n // atParse,\r\n // atMerge,\r\n // atRemove,\r\n // getAllBlocks,\r\n getTreeBlocks,\r\n // getUserGroups,\r\n // getTargetsByGroup,\r\n getUserRules\r\n}\r\n","<template>\r\n <div\r\n style=\"height:100%;\"\r\n v-domresize\r\n @domresize=\"resizePanel\"\r\n :changeTargets=\"changeTargets\"\r\n >\r\n\r\n <div\r\n style=\"border-bottom:1px solid #ddd; background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n >\r\n\r\n <!-- 標題區 -->\r\n <div style=\"display:inline-block; vertical-align:top; padding:10px 0px 5px 20px;\">\r\n <div style=\"display:flex; align-items:center; padding:5px 15px 5px 5px; border-bottom:3px solid #FF9100;\">\r\n\r\n <WIcon\r\n :icon=\"mdiGamepadCircle\"\r\n :color=\"'#FF9800'\"\r\n ></WIcon>\r\n\r\n <div style=\"padding-left:10px; font-size:1.3rem; color:#d3912c;\">\r\n {{$t('managementTargets')}}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- 編輯設定區 -->\r\n <div style=\"display:inline-block; vertical-align:top;\">\r\n\r\n <div style=\"padding:15px 20px 15px 20px; background:#fff;\">\r\n\r\n <div style=\"display:flex;\">\r\n <WSwitch\r\n :text=\"$t('isEditabled')\"\r\n :checkedSwitchCircleColor=\"'#D81B60'\"\r\n :checkedSwitchCircleColorHover=\"'#f26'\"\r\n :checkedSwitchBarColor=\"'#F8BBD0'\"\r\n :checkedSwitchBarColorHover=\"'#F8BBD0'\"\r\n _v-model=\"isOperatable\"\r\n :value=\"isOperatable\"\r\n @input=\"updateIsOperatable\"\r\n ></WSwitch>\r\n </div>\r\n\r\n <div style=\"padding-top:5px; font-size:0.8rem; _color:#f26;\" v-if=\"isOperatable\">\r\n <div style=\"padding:3px 0px;\">\r\n 1. {{$t('targetMsg1')}}\r\n </div>\r\n <div style=\"padding:3px 0px;\">\r\n 2. {{$t('targetMsg2')}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- 儲存變更提示區 -->\r\n <div\r\n style=\"padding:10px 10px 12px 10px; border-top:1px solid #F48FB1; border-bottom:1px solid #F48FB1; background:#FCE4EC; display:flex; align-items:center; justify-content:flex-end;\"\r\n v-if=\"isModified\"\r\n >\r\n\r\n <WButtonChip\r\n :paddingStyle=\"{v:0,h:11}\"\r\n :text=\"$t('saveChanges')\"\r\n :icon=\"mdiCloudUploadOutline\"\r\n :backgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :backgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n @click=\"saveRuleGroupsAndTargets\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div\r\n :style=\"`padding:${spacePading}px;`\"\r\n v-if=\"!firstLoading\"\r\n >\r\n\r\n <div style=\"background:#fff; box-shadow:0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);\">\r\n <WTree\r\n ref=\"wt\"\r\n :viewHeightMax=\"treeHeight\"\r\n :separatorColor=\"'rgba(0,0,0,0.1)'\"\r\n :data.sync=\"treeBlocks\"\r\n :indent=\"0.5\"\r\n :iconToggleColor=\"'#666'\"\r\n :iconToggleBackgroundColor=\"'transparent'\"\r\n :iconToggleBackgroundColorHover=\"'transparent'\"\r\n :operatable=\"isOperatable\"\r\n :operateBtnTooltip=\"$t('edit')\"\r\n :operateItemTextForRename=\"$t('changeName')\"\r\n :operateItemTextForInsertBefore=\"$t('insertBefore')\"\r\n :operateItemTextForInsertChild=\"$t('insertChild')\"\r\n :operateItemTextForInsertAfter=\"$t('insertAfter')\"\r\n :operateItemTextForDelete=\"$t('deleteTarget')\"\r\n :editorRenameSaveBtnText=\"$t('save')\"\r\n :editorRenameSaveBtnTextColor=\"'#444'\"\r\n :editorRenameSaveBtnTextColorHover=\"'#222'\"\r\n :editorRenameCancelBtnText=\"$t('cancel')\"\r\n :editorRenameCancelBtnTextColor=\"'#444'\"\r\n :editorRenameCancelBtnTextColorHover=\"'#222'\"\r\n @click-operate-item=\"clickOperateItem\"\r\n ></WTree>\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px 15px; font-size:0.8rem;\" v-else>\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiGamepadCircle, mdiStackOverflow, mdiAccountGroupOutline, mdiBallotRecountOutline, mdiCloudUploadOutline } from '@mdi/js/mdi.js'\r\nimport JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\nimport set from 'lodash-es/set.js'\nimport each from 'lodash-es/each.js'\nimport map from 'lodash-es/map.js'\nimport size from 'lodash-es/size.js'\nimport dropRight from 'lodash-es/dropRight.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport genID from 'wsemi/src/genID.mjs'\r\nimport delay from 'wsemi/src/delay.mjs'\r\nimport flattenTree from 'wsemi/src/flattenTree.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WTree from 'w-component-vue/src/components/WTree.vue'\r\nimport { getTreeBlocks } from '../plugins/mShare.mjs'\r\n\r\n\r\n//dlm\r\nlet dlm = '.'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WButtonChip,\r\n WSwitch,\r\n WTree,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiGamepadCircle,\r\n mdiStackOverflow,\r\n mdiAccountGroupOutline,\r\n mdiBallotRecountOutline,\r\n mdiCloudUploadOutline,\r\n\r\n panelWidth: 100,\r\n panelHeight: 100,\r\n headHeight: 100,\r\n\r\n firstLoading: true,\r\n isOperatable: true,\r\n isModified: false,\r\n\r\n treeBlocks: null,\r\n listRename: [],\r\n\r\n }\r\n },\r\n mounted: function() {\r\n // console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //clear\r\n vo.listRename = []\r\n\r\n },\r\n computed: {\r\n\r\n targets: function() {\r\n return get(this, `$store.state.targets`)\r\n },\r\n\r\n ruleGroups: function() {\r\n return get(this, `$store.state.ruleGroups`)\r\n },\r\n\r\n changeTargets: function() {\r\n // console.log('computed changeTargets')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (size(vo.targets) === 0) {\r\n return ''\r\n }\r\n\r\n //getTreeBlocks\r\n let treeBlocks = getTreeBlocks(vo.targets)\r\n // console.log('targets', vo.targets)\r\n // console.log('treeBlocks', treeBlocks)\r\n\r\n //save\r\n vo.treeBlocks = treeBlocks\r\n\r\n //firstLoading\r\n vo.firstLoading = false\r\n\r\n return ''\r\n },\r\n\r\n spacePading: function() {\r\n let vo = this\r\n if (vo.panelWidth < 400) {\r\n return 0\r\n }\r\n else if (vo.panelWidth < 800) {\r\n return 10\r\n }\r\n return 20\r\n },\r\n\r\n treeHeight: function() {\r\n let vo = this\r\n\r\n //h\r\n let h = vo.panelHeight - vo.headHeight - 2 * vo.spacePading\r\n h = Math.max(h, 0)\r\n\r\n return h\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizePanel: function(msg) {\r\n // console.log('methods resizePanel', msg)\r\n\r\n let vo = this\r\n\r\n //panelWidth, panelHeight\r\n vo.panelWidth = msg.snew.offsetWidth\r\n vo.panelHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeHead: function(msg) {\r\n // console.log('methods resizeHead', msg)\r\n\r\n let vo = this\r\n\r\n //headHeight\r\n vo.headHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n updateIsOperatable: function(isOperatable) {\r\n // console.log('methods updateIsOperatable', isOperatable)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n // let errTemp = null\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //isOperatable\r\n if (isOperatable) {\r\n //切換至編輯模式時\r\n try {\r\n\r\n //先顯示全部節點\r\n let toUnfolding = true\r\n let toLevel = null\r\n vo.$refs.wt.toggleItemsAll(toUnfolding, toLevel)\r\n\r\n //若節點多顯示全部節點須一些時間, 故延遲變更\r\n await delay(300)\r\n\r\n //update\r\n vo.isOperatable = isOperatable\r\n\r\n\r\n }\r\n catch (err) {}\r\n }\r\n else {\r\n //切換至顯示模式時\r\n\r\n //update\r\n vo.isOperatable = isOperatable\r\n\r\n }\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickOperateItem: function(msg) {\r\n // console.log('methods clickOperateItem', msg)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n\r\n //fun, 僅處理並回傳新項目, 不處理其他項目\r\n let fun = async function() {\r\n let id = genID()\r\n let text = vo.$t('newTarget')\r\n let dataNew = {\r\n id,\r\n text,\r\n }\r\n return dataNew\r\n }\r\n\r\n //targetInd\r\n let targetInd = msg.rowItem.index\r\n\r\n //operateItem\r\n await msg.operateItem(targetInd, msg.opItem.key, fun)\r\n\r\n //modifyTreeBlocks\r\n vo.modifyTreeBlocks()\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n\r\n },\r\n\r\n modifyTreeBlocks: function() {\r\n // console.log('methods modifyTreeBlocks')\r\n\r\n let vo = this\r\n\r\n //treeBlocksTemp\r\n let treeBlocksTemp = cloneDeep(vo.treeBlocks)\r\n\r\n //flattenTree\r\n let blocksNew = flattenTree(treeBlocksTemp)\r\n // console.log('blocksNew', cloneDeep(blocksNew))\r\n\r\n //calc id, parentId, order\r\n each(blocksNew, (v, k) => {\r\n if (size(v.nk) === 1) {\r\n v.parentId = ''\r\n v.id = v.text\r\n }\r\n else { //size(v.nk)>=3\r\n let nkParent = dropRight(v.nk, 2)\r\n let p = get(treeBlocksTemp, nkParent)\r\n v.parentId = p.id\r\n v.id = `${v.parentId}${dlm}${v.text}` //[tag:dlm]\r\n }\r\n v.order = k //需重新給予order\r\n set(treeBlocksTemp, v.nk, v)\r\n })\r\n\r\n //save\r\n vo.treeBlocks = treeBlocksTemp\r\n // console.log('treeBlocks', cloneDeep(treeBlocksTemp))\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n\r\n saveRuleGroupsAndTargets: function() {\r\n // console.log('method saveRuleGroupsAndTargets')\r\n\r\n let vo = this\r\n\r\n //replaceObjKeys\r\n let replaceObjKeys = (obj, kpKeys) => {\r\n // console.log('methods replaceObjKeys', obj, kpKeys)\r\n\r\n //r\r\n let b = false\r\n let r = {}\r\n each(obj, (v, k) => {\r\n if (haskey(kpKeys, k)) {\r\n b = true\r\n let kk = kpKeys[k]\r\n r[kk] = v\r\n }\r\n else {\r\n r[k] = v\r\n }\r\n })\r\n\r\n return {\r\n obj: r,\r\n isChanged: b,\r\n }\r\n }\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //treeBlocksTemp\r\n let treeBlocksTemp = cloneDeep(vo.treeBlocks)\r\n\r\n //flattenTree\r\n let blocksNew = flattenTree(treeBlocksTemp)\r\n // console.log('blocksNew1', cloneDeep(blocksNew))\r\n\r\n //kpDiffs\r\n let kpDiffs = {}\r\n map(blocksNew, (v, k) => {\r\n if (v.id !== v.idTemp) {\r\n kpDiffs[v.idTemp] = v.id\r\n }\r\n })\r\n // console.log('kpDiffs', kpDiffs)\r\n\r\n //gs\r\n let gs = []\r\n each(vo.ruleGroups, (v) => {\r\n let rules = JSON5.parse(v.crules)\r\n let r = replaceObjKeys(rules, kpDiffs)\r\n if (r.isChanged) {\r\n gs.push({\r\n id: v.id,\r\n crules: JSON.stringify(r.obj),\r\n })\r\n }\r\n })\r\n // console.log('ruleGroups', vo.ruleGroups, gs)\r\n\r\n //save\r\n await vo.$fapi.ruleGroups.save(gs)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToChangePermissionGroups')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //rs\r\n let rs = map(blocksNew, (v, k) => {\r\n return {\r\n id: v.id,\r\n order: v.order,\r\n }\r\n })\r\n // console.log('targets rs', rs)\r\n\r\n //delAll\r\n await vo.$fapi.targets.delAll()\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToClearTargets')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //save\r\n await vo.$fapi.targets.save(rs)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToSaveTargets')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //isModified\r\n vo.isModified = false\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToSaveTargets'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentTargets.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentTargets.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContentTargets.vue?vue&type=template&id=6d13fdb8&scoped=true\"\nimport script from \"./LayoutContentTargets.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContentTargets.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6d13fdb8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"height\":\"100%\"},attrs:{\"changeGroups\":_vm.changeGroups},on:{\"domresize\":_vm.resizePanel}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"border-bottom\":\"1px solid #ddd\",\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeHead}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\",\"padding\":\"10px 0px 5px 20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"5px 15px 5px 5px\",\"border-bottom\":\"3px solid #FF9100\"}},[_c('WIcon',{attrs:{\"icon\":_vm.mdiStackOverflow,\"color\":'#FF9800'}}),_c('div',{staticStyle:{\"padding-left\":\"10px\",\"font-size\":\"1.3rem\",\"color\":\"#d3912c\"}},[_vm._v(\" \"+_vm._s(_vm.$t('permissionGroups'))+\" \")])],1)]),_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\"}},[_c('div',{staticStyle:{\"padding\":\"15px 20px 15px 20px\",\"background\":\"#fff\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('WSwitch',{attrs:{\"text\":_vm.$t('isEditabled'),\"checkedSwitchCircleColor\":'#D81B60',\"checkedSwitchCircleColorHover\":'#f26',\"checkedSwitchBarColor\":'#F8BBD0',\"checkedSwitchBarColorHover\":'#F8BBD0'},model:{value:(_vm.isOperatable),callback:function ($$v) {_vm.isOperatable=$$v},expression:\"isOperatable\"}})],1),(_vm.isOperatable)?_c('div',{staticStyle:{\"padding-top\":\"5px\",\"font-size\":\"0.8rem\",\"_color\":\"#f26\"}},[_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 1. \"+_vm._s(_vm.$t('groupMsg1'))+\" \")]),_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 2. \"+_vm._s(_vm.$t('groupMsg2'))+\" \")])]):_vm._e()])]),(_vm.isModified)?_c('div',{staticStyle:{\"padding\":\"10px 10px 12px 10px\",\"border-top\":\"1px solid #F48FB1\",\"border-bottom\":\"1px solid #F48FB1\",\"background\":\"#FCE4EC\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"flex-end\"}},[_c('WButtonChip',{attrs:{\"paddingStyle\":{v:0,h:11},\"text\":_vm.$t('saveChanges'),\"icon\":_vm.mdiCloudUploadOutline,\"backgroundColor\":'rgba(255,0,50,0.7)',\"backgroundColorHover\":'rgba(255,0,50,0.8)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff'},on:{\"click\":_vm.saveGroups}})],1):_vm._e()]),(!_vm.firstLoading)?_c('div',{style:(`padding:${_vm.spacePading}px;`)},[_c('div',{staticStyle:{\"background\":\"#fff\",\"box-shadow\":\"0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12)\"}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],on:{\"domresize\":_vm.resizeGroupInfor}},[_c('div',{staticStyle:{\"padding\":\"10px 20px\",\"border-bottom\":\"3px solid #ddd\"}},[_c('WGroupTags',{attrs:{\"keyText\":'name',\"draggable\":_vm.isOperatable,\"editableClose\":_vm.isOperatable,\"editableInput\":_vm.isOperatable,\"addButtonText\":_vm.$t('addGroup'),\"addButtonTooltip\":_vm.$t('addPermissionGroup'),\"addButtonTextColor\":'#eee',\"addButtonTextColorHover\":'#fff',\"addButtonIconColor\":'#eee',\"addButtonIconColorHover\":'#fff',\"addButtonBackgroundColor\":'rgba(255,0,50,0.7)',\"addButtonBackgroundColorHover\":'rgba(255,0,50,0.8)',\"value\":_vm.groupsTrans},on:{\"input\":_vm.dragGroupsOrder,\"click\":_vm.clickGroup,\"click-add\":_vm.clickAddGroup,\"click-close\":_vm.clickRemoveGroup}})],1)]),(_vm.pickGroup)?_c('ruleGroup',{attrs:{\"height\":_vm.ruleGroupHeight,\"group\":_vm.pickGroup,\"editable\":_vm.isOperatable},on:{\"update\":_vm.modifyGroup}}):_c('div',{staticStyle:{\"padding\":\"20px\",\"_color\":\"#666\",\"font-size\":\"0.85rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('groupMsgNoPick'))+\" \")])],1)]):_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.treeBlocks!==null)?_c('div',{attrs:{\"changeGroup\":_vm.changeGroup}},[(_vm.showHead)?_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],on:{\"domresize\":_vm.resizeHead}},[(_vm.editable)?_c('div',{staticStyle:{\"padding\":\"15px\",\"border-bottom\":\"1px solid #ddd\"}},[_c('div',{staticStyle:{\"padding\":\"5px 0px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"5px\",\"font-size\":\"0.9rem\",\"color\":\"#888\"}},[_vm._v(\" \"+_vm._s(_vm.$t('name'))+\": \")]),_c('div',{},[_c('WText',{staticStyle:{\"width\":\"300px\"},attrs:{\"value\":_vm.getName(_vm.group)},on:{\"input\":(v)=>{_vm.updateProp('name',v)}}})],1)]),_c('div',{staticStyle:{\"padding\":\"5px 0px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"5px\",\"font-size\":\"0.9rem\",\"color\":\"#888\"}},[_vm._v(\" \"+_vm._s(_vm.$t('description'))+\": \")]),_c('div',{},[_c('WText',{staticStyle:{\"width\":\"300px\"},attrs:{\"value\":_vm.getDescription(_vm.group)},on:{\"input\":(v)=>{_vm.updateProp('description',v)}}})],1)])]):_c('div',{staticStyle:{\"padding\":\"15px\",\"border-bottom\":\"1px solid #ddd\"}},[_c('div',{staticStyle:{\"font-size\":\"1.2rem\",\"white-space\":\"nowrap\"}},[_vm._v(\" \"+_vm._s(_vm.group.name)+\" \")]),_c('div',{staticStyle:{\"color\":\"#888\",\"font-size\":\"0.8rem\",\"white-space\":\"nowrap\"}},[_vm._v(\" \"+_vm._s(_vm.getDescription(_vm.group))+\" \")])]),(false)?_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"20px 15px 15px 15px\",\"background\":\"#eee\",\"border-bottom\":\"1px solid #ddd\"}},[_c('div',{staticStyle:{\"margin-right\":\"10px\"}},[_vm._v(_vm._s(_vm.$t('allDefaults'))+\":\")]),_c('div',{staticStyle:{\"margin-right\":\"10px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"margin-right\":\"5px\"}},[_vm._v(_vm._s(_vm.$t('show')))]),_c('div',[_c('WSwitch',{attrs:{\"value\":_vm.defaultShow},on:{\"input\":(b)=>{_vm.setDefaultShow(b)}}})],1)]),_c('div',{staticStyle:{\"margin-right\":\"10px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"margin-right\":\"5px\"}},[_vm._v(_vm._s(_vm.$t('active')))]),_c('div',[_c('WSwitch',{attrs:{\"value\":_vm.defaultActive},on:{\"input\":(b)=>{_vm.setDefaultActive(b)}}})],1)])]):_vm._e()]):_vm._e(),_c('WTree',{attrs:{\"viewHeightMax\":_vm.treeHeight,\"indent\":0.5,\"iconToggleColor\":'#666',\"iconToggleBackgroundColor\":'transparent',\"iconToggleBackgroundColorHover\":'transparent',\"data\":_vm.treeBlocks},scopedSlots:_vm._u([{key:\"item\",fn:function(props){return [_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"min-height\":\"34px\"}},[_c('div',{},[_vm._v(\" \"+_vm._s(props.data.text)+\" \")])]),_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"5px\",\"right\":\"15px\"}},[(_vm.editable)?_c('div',{staticStyle:{\"margin-left\":\"10px\",\"display\":\"inline-block\"}},[_c('WButtonCircle',{attrs:{\"icon\":_vm.mdiEyeCheck,\"iconSize\":18,\"paddingStyle\":{v:4,h:4},\"shadow\":false,\"tooltip\":_vm.$t('showChildren'),\"backgroundColor\":'rgba(200,200,200,0.2)',\"backgroundColorHover\":'rgba(255,150,100,0.2)',\"backgroundColorFocus\":'rgba(255,150,100,0.2)',\"iconColor\":'#444',\"iconColorHover\":'#EF6C00',\"iconColorFocus\":'#EF6C00'},on:{\"click\":function($event){return _vm.treeToogleShowAndActive(props.data,true,'show')}}}),_c('WButtonCircle',{attrs:{\"icon\":_vm.mdiEyeOff,\"iconSize\":18,\"paddingStyle\":{v:4,h:4},\"shadow\":false,\"tooltip\":_vm.$t('hideChildren'),\"backgroundColor\":'rgba(200,200,200,0.2)',\"backgroundColorHover\":'rgba(255,150,100,0.2)',\"backgroundColorFocus\":'rgba(255,150,100,0.2)',\"iconColor\":'#444',\"iconColorHover\":'#EF6C00',\"iconColorFocus\":'#EF6C00'},on:{\"click\":function($event){return _vm.treeToogleShowAndActive(props.data,false,'show')}}}),_c('WButtonCircle',{attrs:{\"icon\":_vm.mdiEyedropper,\"iconSize\":18,\"paddingStyle\":{v:4,h:4},\"shadow\":false,\"tooltip\":_vm.$t('activateChildren'),\"backgroundColor\":'rgba(200,200,200,0.2)',\"backgroundColorHover\":'rgba(255,150,100,0.2)',\"backgroundColorFocus\":'rgba(255,150,100,0.2)',\"iconColor\":'#444',\"iconColorHover\":'#EF6C00',\"iconColorFocus\":'#EF6C00'},on:{\"click\":function($event){return _vm.treeToogleShowAndActive(props.data,true,'active')}}}),_c('WButtonCircle',{attrs:{\"icon\":_vm.mdiEyedropperOff,\"iconSize\":18,\"paddingStyle\":{v:4,h:4},\"shadow\":false,\"tooltip\":_vm.$t('deactivateChildren'),\"backgroundColor\":'rgba(200,200,200,0.2)',\"backgroundColorHover\":'rgba(255,150,100,0.2)',\"backgroundColorFocus\":'rgba(255,150,100,0.2)',\"iconColor\":'#444',\"iconColorHover\":'#EF6C00',\"iconColorFocus\":'#EF6C00'},on:{\"click\":function($event){return _vm.treeToogleShowAndActive(props.data,false,'active')}}})],1):_vm._e(),_c('div',{staticStyle:{\"margin-left\":\"10px\",\"display\":\"inline-block\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"margin-right\":\"3px\",\"font-size\":\"0.8rem\"}},[_vm._v(_vm._s(_vm.$t('show')))]),_c('WCheckbox',{attrs:{\"checkedIconColor\":'yellow darken-4',\"uncheckedIconColor\":'yellow darken-4',\"value\":_vm.getShow(props.data),\"editable\":_vm.editable},on:{\"input\":function($event){return _vm.toogleShow(props.data)}}})],1)]),_c('div',{staticStyle:{\"margin-left\":\"10px\",\"display\":\"inline-block\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"margin-right\":\"3px\",\"font-size\":\"0.8rem\"}},[_vm._v(_vm._s(_vm.$t('active')))]),_c('WCheckbox',{attrs:{\"checkedIconColor\":'yellow darken-4',\"uncheckedIconColor\":'yellow darken-4',\"value\":_vm.getActive(props.data),\"editable\":_vm.editable},on:{\"input\":function($event){return _vm.toogleActive(props.data)}}})],1)])])]}}],null,false,946372497)},[_vm._v(\" > \")])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div\r\n :changeGroup=\"changeGroup\"\r\n v-if=\"treeBlocks!==null\"\r\n >\r\n\r\n <div\r\n style=\"\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n v-if=\"showHead\"\r\n >\r\n\r\n <div\r\n style=\"padding:15px; border-bottom:1px solid #ddd;\"\r\n v-if=\"editable\"\r\n >\r\n\r\n <div style=\"padding:5px 0px; display:flex; align-items:center;\">\r\n <div style=\"padding-right:5px; font-size:0.9rem; color:#888;\">\r\n {{$t('name')}}:\r\n </div>\r\n <div style=\"\">\r\n <WText\r\n style=\"width:300px;\"\r\n :value=\"getName(group)\"\r\n @input=\"(v)=>{updateProp('name',v)}\"\r\n ></WText>\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding:5px 0px; display:flex; align-items:center;\">\r\n <div style=\"padding-right:5px; font-size:0.9rem; color:#888;\">\r\n {{$t('description')}}:\r\n </div>\r\n <div style=\"\">\r\n <WText\r\n style=\"width:300px;\"\r\n :value=\"getDescription(group)\"\r\n @input=\"(v)=>{updateProp('description',v)}\"\r\n ></WText>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div\r\n style=\"padding:15px; border-bottom:1px solid #ddd;\"\r\n v-else\r\n >\r\n\r\n <div style=\"font-size:1.2rem; white-space:nowrap;\">\r\n {{group.name}}\r\n </div>\r\n\r\n <div style=\"color:#888; font-size:0.8rem; white-space:nowrap;\">\r\n {{getDescription(group)}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div\r\n style=\"display:flex; align-items:center; padding:20px 15px 15px 15px; background:#eee; border-bottom:1px solid #ddd;\"\r\n v-if=\"false\"\r\n >\r\n\r\n <div style=\"margin-right:10px;\">{{$t('allDefaults')}}:</div>\r\n\r\n <div style=\"margin-right:10px; display:flex; align-items:center;\">\r\n <div style=\"margin-right:5px;\">{{$t('show')}}</div>\r\n <div>\r\n <WSwitch\r\n :value=\"defaultShow\"\r\n @input=\"(b)=>{setDefaultShow(b)}\"\r\n ></WSwitch>\r\n </div>\r\n </div>\r\n\r\n <div style=\"margin-right:10px; display:flex; align-items:center;\">\r\n <div style=\"margin-right:5px;\">{{$t('active')}}</div>\r\n <div>\r\n <WSwitch\r\n :value=\"defaultActive\"\r\n @input=\"(b)=>{setDefaultActive(b)}\"\r\n ></WSwitch>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <WTree\r\n :viewHeightMax=\"treeHeight\"\r\n :indent=\"0.5\"\r\n :iconToggleColor=\"'#666'\"\r\n :iconToggleBackgroundColor=\"'transparent'\"\r\n :iconToggleBackgroundColorHover=\"'transparent'\"\r\n :data=\"treeBlocks\"\r\n >\r\n <template v-slot:item=\"props\">\r\n <div style=\"display:flex; align-items:center; min-height:34px;\">\r\n\r\n <div style=\"\">\r\n {{props.data.text}}\r\n </div>\r\n\r\n </div>\r\n <div style=\"position:absolute; top:5px; right:15px;\">\r\n\r\n <div style=\"margin-left:10px; display:inline-block;\" v-if=\"editable\">\r\n\r\n <WButtonCircle\r\n :icon=\"mdiEyeCheck\"\r\n :iconSize=\"18\"\r\n :paddingStyle=\"{v:4,h:4}\"\r\n :shadow=\"false\"\r\n :tooltip=\"$t('showChildren')\"\r\n :backgroundColor=\"'rgba(200,200,200,0.2)'\"\r\n :backgroundColorHover=\"'rgba(255,150,100,0.2)'\"\r\n :backgroundColorFocus=\"'rgba(255,150,100,0.2)'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#EF6C00'\"\r\n :iconColorFocus=\"'#EF6C00'\"\r\n @click=\"treeToogleShowAndActive(props.data,true,'show')\"\r\n ></WButtonCircle>\r\n\r\n <WButtonCircle\r\n :icon=\"mdiEyeOff\"\r\n :iconSize=\"18\"\r\n :paddingStyle=\"{v:4,h:4}\"\r\n :shadow=\"false\"\r\n :tooltip=\"$t('hideChildren')\"\r\n :backgroundColor=\"'rgba(200,200,200,0.2)'\"\r\n :backgroundColorHover=\"'rgba(255,150,100,0.2)'\"\r\n :backgroundColorFocus=\"'rgba(255,150,100,0.2)'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#EF6C00'\"\r\n :iconColorFocus=\"'#EF6C00'\"\r\n @click=\"treeToogleShowAndActive(props.data,false,'show')\"\r\n ></WButtonCircle>\r\n\r\n <WButtonCircle\r\n :icon=\"mdiEyedropper\"\r\n :iconSize=\"18\"\r\n :paddingStyle=\"{v:4,h:4}\"\r\n :shadow=\"false\"\r\n :tooltip=\"$t('activateChildren')\"\r\n :backgroundColor=\"'rgba(200,200,200,0.2)'\"\r\n :backgroundColorHover=\"'rgba(255,150,100,0.2)'\"\r\n :backgroundColorFocus=\"'rgba(255,150,100,0.2)'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#EF6C00'\"\r\n :iconColorFocus=\"'#EF6C00'\"\r\n @click=\"treeToogleShowAndActive(props.data,true,'active')\"\r\n ></WButtonCircle>\r\n\r\n <WButtonCircle\r\n :icon=\"mdiEyedropperOff\"\r\n :iconSize=\"18\"\r\n :paddingStyle=\"{v:4,h:4}\"\r\n :shadow=\"false\"\r\n :tooltip=\"$t('deactivateChildren')\"\r\n :backgroundColor=\"'rgba(200,200,200,0.2)'\"\r\n :backgroundColorHover=\"'rgba(255,150,100,0.2)'\"\r\n :backgroundColorFocus=\"'rgba(255,150,100,0.2)'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#EF6C00'\"\r\n :iconColorFocus=\"'#EF6C00'\"\r\n @click=\"treeToogleShowAndActive(props.data,false,'active')\"\r\n ></WButtonCircle>\r\n\r\n </div>\r\n\r\n <div style=\"margin-left:10px; display:inline-block;\">\r\n <div style=\"display:flex; align-items:center;\">\r\n <div style=\"margin-right:3px; font-size:0.8rem;\">{{$t('show')}}</div>\r\n <WCheckbox\r\n :checkedIconColor=\"'yellow darken-4'\"\r\n :uncheckedIconColor=\"'yellow darken-4'\"\r\n :value=\"getShow(props.data)\"\r\n :editable=\"editable\"\r\n @input=\"toogleShow(props.data)\"\r\n ></WCheckbox>\r\n </div>\r\n </div>\r\n\r\n <div style=\"margin-left:10px; display:inline-block;\">\r\n <div style=\"display:flex; align-items:center;\">\r\n <div style=\"margin-right:3px; font-size:0.8rem;\">{{$t('active')}}</div>\r\n <WCheckbox\r\n :checkedIconColor=\"'yellow darken-4'\"\r\n :uncheckedIconColor=\"'yellow darken-4'\"\r\n :value=\"getActive(props.data)\"\r\n :editable=\"editable\"\r\n @input=\"toogleActive(props.data)\"\r\n ></WCheckbox>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n >\r\n </WTree>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiEyeCheck, mdiEyeOff, mdiEyedropper, mdiEyedropperOff } from '@mdi/js/mdi.js'\r\nimport JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\nimport set from 'lodash-es/set.js'\nimport each from 'lodash-es/each.js'\nimport size from 'lodash-es/size.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isobj from 'wsemi/src/isobj.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport debounce from 'wsemi/src/debounce.mjs'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport WTree from 'w-component-vue/src/components/WTree.vue'\r\nimport WCheckbox from 'w-component-vue/src/components/WCheckbox.vue'\r\nimport WText from 'w-component-vue/src/components/WText.vue'\r\nimport { getTreeBlocks } from '../plugins/mShare.mjs'\r\n\r\n\r\nexport default {\r\n components: {\r\n WButtonCircle,\r\n WTree,\r\n WCheckbox,\r\n WText,\r\n },\r\n props: {\r\n height: {\r\n type: Number,\r\n default: 100,\r\n },\r\n group: {\r\n type: Object,\r\n default: () => {},\r\n },\r\n showHead: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n editable: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n dbc: debounce(),\r\n\r\n mdiEyeCheck,\r\n mdiEyeOff,\r\n mdiEyedropper,\r\n mdiEyedropperOff,\r\n\r\n headHeight: 100,\r\n\r\n groupTrans: null,\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n changeGroup: function() {\r\n // console.log('computed changeGroup')\r\n\r\n let vo = this\r\n\r\n //save\r\n let group = cloneDeep(vo.group)\r\n\r\n //save rules\r\n let rules = JSON5.parse(group.crules)\r\n group.rules = rules\r\n // console.log('rules', rules)\r\n\r\n //delete\r\n delete group.crules\r\n\r\n //save\r\n vo.groupTrans = group\r\n // console.log('group', group)\r\n\r\n return ''\r\n },\r\n\r\n treeHeight: function() {\r\n let vo = this\r\n\r\n //h\r\n let h = vo.height - vo.headHeight\r\n h = Math.max(h, 0)\r\n\r\n return h\r\n },\r\n\r\n targets: function() {\r\n return get(this, `$store.state.targets`)\r\n },\r\n\r\n treeBlocks: function() {\r\n // console.log('computed treeBlocks')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (size(vo.targets) === 0) {\r\n return null\r\n }\r\n\r\n //getTreeBlocks\r\n let r = getTreeBlocks(vo.targets)\r\n\r\n return r\r\n },\r\n\r\n defaultShow: function() {\r\n let r = get(this.groupTrans, 'rules.___all___.show', 'n')\r\n return r === 'y'\r\n },\r\n\r\n defaultActive: function() {\r\n let r = get(this.groupTrans, 'rules.___all___.active', 'n')\r\n return r === 'y'\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizeHead: function(msg) {\r\n // console.log('methods resizeHead', msg)\r\n\r\n let vo = this\r\n\r\n //headHeight\r\n vo.headHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n getName: function(g) {\r\n // console.log('methods getName', g)\r\n\r\n //r\r\n let r = get(g, 'name', '')\r\n\r\n //check\r\n if (!isestr(r)) {\r\n r = '無名稱'\r\n }\r\n\r\n return r\r\n },\r\n\r\n getDescription: function(g) {\r\n // console.log('methods getDescription', g)\r\n\r\n //r\r\n let r = get(g, 'description', '')\r\n\r\n //check\r\n if (!isestr(r)) {\r\n r = '無說明'\r\n }\r\n\r\n return r\r\n },\r\n\r\n setDefaultShow: function(b) {\r\n let r = b ? 'y' : 'n'\r\n return set(this.groupTrans, 'rules.___all___.show', r)\r\n },\r\n\r\n setDefaultActive: function(b) {\r\n let r = b ? 'y' : 'n'\r\n return set(this.groupTrans, 'rules.___all___.active', r)\r\n },\r\n\r\n getShowAndActive: function(item, key, def) {\r\n // console.log('getShowAndActive', item, key, def)\r\n\r\n let vo = this\r\n\r\n //rules\r\n let rules = get(vo.groupTrans, 'rules', null)\r\n\r\n //rule\r\n let rule = null\r\n if (haskey(rules, item.id)) {\r\n rule = rules[item.id]\r\n }\r\n\r\n //r\r\n let r = get(rule, key, null)\r\n // console.log(item.id, r, def)\r\n\r\n //b\r\n let b = def\r\n if (r === 'y' || r === 'n') { //若權限內有定義則優先使用(覆蓋)\r\n b = r === 'y'\r\n }\r\n\r\n return b\r\n },\r\n\r\n getShow: function(item) {\r\n // console.log('getShow', item)\r\n\r\n let vo = this\r\n\r\n //def\r\n let def = vo.defaultShow\r\n\r\n //getShowAndActive\r\n let b = vo.getShowAndActive(item, 'show', def)\r\n\r\n return b\r\n },\r\n\r\n getActive: function(item) {\r\n // console.log('getActive', item)\r\n\r\n let vo = this\r\n\r\n //def\r\n let def = vo.defaultActive\r\n\r\n //getShowAndActive\r\n let b = vo.getShowAndActive(item, 'active', def)\r\n\r\n return b\r\n },\r\n\r\n getDefaultShowAndActive: function(key) {\r\n if (key === 'show') {\r\n return this.defaultShow\r\n }\r\n return this.defaultActive\r\n },\r\n\r\n toogleShowAndActive: function(id, b, key) {\r\n // console.log('toogleShowAndActive', id, b, key)\r\n\r\n let vo = this\r\n\r\n //def\r\n let def = vo.getDefaultShowAndActive(key)\r\n\r\n //groupTrans\r\n let groupTrans = cloneDeep(vo.groupTrans)\r\n\r\n //cb\r\n let cb = b ? 'y' : 'n'\r\n\r\n //rules\r\n let rules = get(vo.groupTrans, 'rules', null)\r\n\r\n //rule\r\n let rule = null\r\n if (haskey(rules, id)) {\r\n rule = rules[id]\r\n }\r\n\r\n //r\r\n let r = get(rule, key, null)\r\n\r\n //toogle\r\n if (r === 'y' || r === 'n') { //若權限內有定義則優先使用(覆蓋)\r\n // console.log('權限內有定義')\r\n\r\n //check\r\n if (b === def) { //欲切換值與預設值相同\r\n\r\n //delete\r\n delete rule[key]\r\n\r\n }\r\n else {\r\n\r\n //save rule\r\n rule[key] = cb\r\n\r\n }\r\n\r\n }\r\n else {\r\n // console.log('權限內無定義')\r\n\r\n //check\r\n if (b === def) { //欲切換值與預設值相同, 不變更\r\n // console.log('不變更')\r\n }\r\n else {\r\n\r\n //save rule\r\n if (isobj(rule)) {\r\n rule[key] = cb\r\n }\r\n else {\r\n rule = {\r\n [key]: cb,\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n //check\r\n if (iseobj(rule)) {\r\n\r\n //save rule\r\n groupTrans.rules[id] = rule\r\n\r\n }\r\n else {\r\n\r\n //delete rule\r\n delete groupTrans.rules[id]\r\n\r\n }\r\n\r\n //save groupTrans\r\n vo.groupTrans = groupTrans\r\n // console.log('groupTrans', cloneDeep(vo.groupTrans))\r\n\r\n //emitGroupDebounce\r\n vo.emitGroupDebounce()\r\n\r\n },\r\n\r\n toogleShow: function(item) {\r\n // console.log('toogleShow', item)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //b\r\n let b = !vo.getShow(item)\r\n\r\n //toogleShowAndActive\r\n vo.toogleShowAndActive(item.id, b, 'show')\r\n\r\n },\r\n\r\n toogleActive: function(item) {\r\n // console.log('toogleActive', item)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.editable) {\r\n return\r\n }\r\n\r\n //b\r\n let b = !vo.getActive(item)\r\n\r\n //toogleShowAndActive\r\n vo.toogleShowAndActive(item.id, b, 'active')\r\n\r\n },\r\n\r\n treeToogleShowAndActive: function(item, b, key) {\r\n // console.log('treeToogleShowAndActive', item, b, key)\r\n\r\n let vo = this\r\n\r\n //self\r\n vo.toogleShowAndActive(item.id, b, key)\r\n\r\n //children\r\n each(item.children, (v) => {\r\n vo.treeToogleShowAndActive(v, b, key)\r\n })\r\n\r\n },\r\n\r\n updateProp: function(key, value) {\r\n // console.log('methods updateProp', key, value)\r\n\r\n let vo = this\r\n\r\n //groupTrans\r\n let groupTrans = cloneDeep(vo.groupTrans)\r\n\r\n //save value\r\n groupTrans[key] = value\r\n\r\n //save groupTrans\r\n vo.groupTrans = groupTrans\r\n // console.log('groupTrans', cloneDeep(vo.groupTrans))\r\n\r\n //emitGroupDebounce\r\n vo.emitGroupDebounce()\r\n\r\n },\r\n\r\n emitGroupDebounce: function() {\r\n //console.log('methods emitGroupDebounce')\r\n\r\n let vo = this\r\n\r\n //dbc\r\n vo.dbc(() => {\r\n\r\n //emitGroup\r\n vo.emitGroup()\r\n\r\n })\r\n\r\n },\r\n\r\n emitGroup: function() {\r\n //console.log('methods emitGroup')\r\n\r\n let vo = this\r\n\r\n //groupTrans\r\n let groupTrans = cloneDeep(vo.groupTrans)\r\n\r\n //save crules\r\n groupTrans.crules = JSON.stringify(vo.groupTrans.rules)\r\n\r\n //emit\r\n vo.$emit('update', groupTrans)\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ruleGroup.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ruleGroup.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ruleGroup.vue?vue&type=template&id=37bdaada&scoped=true\"\nimport script from \"./ruleGroup.vue?vue&type=script&lang=js\"\nexport * from \"./ruleGroup.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"37bdaada\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n style=\"height:100%;\"\r\n v-domresize\r\n @domresize=\"resizePanel\"\r\n :changeGroups=\"changeGroups\"\r\n >\r\n\r\n <div\r\n style=\"border-bottom:1px solid #ddd; background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n >\r\n\r\n <!-- 標題區 -->\r\n <div style=\"display:inline-block; vertical-align:top; padding:10px 0px 5px 20px;\">\r\n <div style=\"display:flex; align-items:center; padding:5px 15px 5px 5px; border-bottom:3px solid #FF9100;\">\r\n\r\n <WIcon\r\n :icon=\"mdiStackOverflow\"\r\n :color=\"'#FF9800'\"\r\n ></WIcon>\r\n\r\n <div style=\"padding-left:10px; font-size:1.3rem; color:#d3912c;\">\r\n {{$t('permissionGroups')}}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- 編輯設定區 -->\r\n <div style=\"display:inline-block; vertical-align:top;\">\r\n\r\n <div style=\"padding:15px 20px 15px 20px; background:#fff;\">\r\n\r\n <div style=\"display:flex;\">\r\n <WSwitch\r\n :text=\"$t('isEditabled')\"\r\n :checkedSwitchCircleColor=\"'#D81B60'\"\r\n :checkedSwitchCircleColorHover=\"'#f26'\"\r\n :checkedSwitchBarColor=\"'#F8BBD0'\"\r\n :checkedSwitchBarColorHover=\"'#F8BBD0'\"\r\n v-model=\"isOperatable\"\r\n ></WSwitch>\r\n </div>\r\n\r\n <div style=\"padding-top:5px; font-size:0.8rem; _color:#f26;\" v-if=\"isOperatable\">\r\n <div style=\"padding:3px 0px;\">\r\n 1. {{$t('groupMsg1')}}\r\n </div>\r\n <div style=\"padding:3px 0px;\">\r\n 2. {{$t('groupMsg2')}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- 儲存變更提示區 -->\r\n <div\r\n style=\"padding:10px 10px 12px 10px; border-top:1px solid #F48FB1; border-bottom:1px solid #F48FB1; background:#FCE4EC; display:flex; align-items:center; justify-content:flex-end;\"\r\n v-if=\"isModified\"\r\n >\r\n\r\n <WButtonChip\r\n :paddingStyle=\"{v:0,h:11}\"\r\n :text=\"$t('saveChanges')\"\r\n :icon=\"mdiCloudUploadOutline\"\r\n :backgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :backgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n @click=\"saveGroups\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div\r\n :style=\"`padding:${spacePading}px;`\"\r\n v-if=\"!firstLoading\"\r\n >\r\n\r\n <div style=\"background:#fff; box-shadow:0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);\">\r\n\r\n <div\r\n v-domresize\r\n @domresize=\"resizeGroupInfor\"\r\n >\r\n\r\n <!-- 權限群組區(含新增) -->\r\n <div style=\"padding:10px 20px; border-bottom:3px solid #ddd;\">\r\n\r\n <WGroupTags\r\n :keyText=\"'name'\"\r\n :draggable=\"isOperatable\"\r\n :editableClose=\"isOperatable\"\r\n :editableInput=\"isOperatable\"\r\n :addButtonText=\"$t('addGroup')\"\r\n :addButtonTooltip=\"$t('addPermissionGroup')\"\r\n :addButtonTextColor=\"'#eee'\"\r\n :addButtonTextColorHover=\"'#fff'\"\r\n :addButtonIconColor=\"'#eee'\"\r\n :addButtonIconColorHover=\"'#fff'\"\r\n :addButtonBackgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :addButtonBackgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :value=\"groupsTrans\"\r\n @input=\"dragGroupsOrder\"\r\n @click=\"clickGroup\"\r\n @click-add=\"clickAddGroup\"\r\n @click-close=\"clickRemoveGroup\"\r\n ></WGroupTags>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <ruleGroup\r\n :height=\"ruleGroupHeight\"\r\n :group=\"pickGroup\"\r\n :editable=\"isOperatable\"\r\n @update=\"modifyGroup\"\r\n v-if=\"pickGroup\"\r\n ></ruleGroup>\r\n\r\n <div\r\n style=\"padding:20px; _color:#666; font-size:0.85rem;\"\r\n v-else\r\n >\r\n {{$t('groupMsgNoPick')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px 15px; font-size:0.8rem;\" v-else>\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiStackOverflow, mdiVectorPolylinePlus, mdiCheckboxMarkedCircle, mdiCloudUploadOutline } from '@mdi/js/mdi.js'\r\n// import JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\nimport each from 'lodash-es/each.js'\nimport map from 'lodash-es/map.js'\nimport find from 'lodash-es/find.js'\nimport size from 'lodash-es/size.js'\nimport max from 'lodash-es/max.js'\nimport sortBy from 'lodash-es/sortBy.js'\nimport isEqual from 'lodash-es/isEqual.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport genID from 'wsemi/src/genID.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport cstr from 'wsemi/src/cstr.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WGroupTags from 'w-component-vue/src/components/WGroupTags.vue'\r\nimport ruleGroup from './ruleGroup.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WButtonChip,\r\n WSwitch,\r\n WGroupTags,\r\n ruleGroup,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiStackOverflow,\r\n mdiVectorPolylinePlus,\r\n mdiCheckboxMarkedCircle,\r\n mdiCloudUploadOutline,\r\n\r\n panelWidth: 100,\r\n panelHeight: 100,\r\n headHeight: 100,\r\n groupInforHeight: 100,\r\n\r\n firstLoading: true,\r\n isOperatable: true,\r\n isModified: false,\r\n\r\n groupsTrans: [],\r\n\r\n pickGroupId: '',\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n ruleGroups: function() {\r\n return get(this, `$store.state.ruleGroups`)\r\n },\r\n\r\n groups: function() {\r\n // console.log('computed groups')\r\n\r\n let vo = this\r\n\r\n //rs\r\n let rs = map(vo.ruleGroups, (v) => {\r\n // let rules = JSON5.parse(v.crules)\r\n return {\r\n ...v,\r\n // rules,\r\n }\r\n })\r\n\r\n //sortBy\r\n rs = sortBy(rs, 'order')\r\n\r\n return rs\r\n },\r\n\r\n changeGroups: function() {\r\n // console.log('computed changeGroups')\r\n\r\n let vo = this\r\n\r\n //default\r\n vo.groupsTrans = []\r\n\r\n //check\r\n if (size(vo.groups) === 0) { //不能用被修改的groupsTrans, 否則會反覆觸發\r\n return ''\r\n }\r\n\r\n //save\r\n vo.groupsTrans = cloneDeep(vo.groups)\r\n\r\n //firstLoading\r\n vo.firstLoading = false\r\n\r\n return ''\r\n },\r\n\r\n spacePading: function() {\r\n let vo = this\r\n if (vo.panelWidth < 400) {\r\n return 0\r\n }\r\n else if (vo.panelWidth < 800) {\r\n return 10\r\n }\r\n return 20\r\n },\r\n\r\n ruleGroupHeight: function() {\r\n let vo = this\r\n\r\n //h\r\n let h = vo.panelHeight - vo.headHeight - 2 * vo.spacePading - vo.groupInforHeight\r\n h = Math.max(h, 0)\r\n\r\n return h\r\n },\r\n\r\n pickGroup: function() {\r\n // console.log('computed pickGroup')\r\n\r\n let vo = this\r\n\r\n //find, 點擊權限按鈕提供權限物件, 刪除後找不到亦可自動清空\r\n let r = find(vo.groupsTrans, { id: vo.pickGroupId })\r\n\r\n return r\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizePanel: function(msg) {\r\n // console.log('methods resizePanel', msg)\r\n\r\n let vo = this\r\n\r\n //panelWidth, panelHeight\r\n vo.panelWidth = msg.snew.offsetWidth\r\n vo.panelHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeHead: function(msg) {\r\n // console.log('methods resizeHead', msg)\r\n\r\n let vo = this\r\n\r\n //headHeight\r\n vo.headHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeGroupInfor: function(msg) {\r\n // console.log('methods resizeGroupInfor', msg)\r\n\r\n let vo = this\r\n\r\n //groupInforHeight\r\n vo.groupInforHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n getDescription: function(g) {\r\n // console.log('methods getDescription', g)\r\n\r\n let vo = this\r\n\r\n //r\r\n let r = get(g, 'description', '')\r\n\r\n //check\r\n if (!isestr(r)) {\r\n r = vo.$t('noDescription')\r\n }\r\n\r\n return r\r\n },\r\n\r\n clickGroup: function(msg) {\r\n // console.log('methods clickGroup', msg)\r\n\r\n let vo = this\r\n\r\n //g\r\n let g = get(msg, 'item', {})\r\n // console.log('g', g)\r\n\r\n //id\r\n let id = get(g, 'id', '')\r\n\r\n //save\r\n vo.pickGroupId = id\r\n\r\n },\r\n\r\n clickAddGroup: function() {\r\n // console.log('methods clickAddGroup')\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //orderMax\r\n let orderMax = null\r\n orderMax = map(vo.groupsTrans, 'order')\r\n orderMax = max(orderMax) + 1\r\n\r\n //g\r\n let g = {\r\n id: genID(),\r\n name: vo.$t('newGroup'),\r\n crules: `{ \"___all___\": { \"show\": \"n\", \"active\": \"n\" } }`,\r\n order: orderMax,\r\n }\r\n\r\n //save\r\n await vo.$fapi.ruleGroups.insert(g)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToAddPermissionGroup')}: ${errTemp}`, { type: 'error' })\r\n }\r\n\r\n //gn\r\n let gn = null\r\n await waitFun(() => {\r\n gn = find(vo.groupsTrans, { id: g.id })\r\n let b = iseobj(gn) //確認g.id已存在\r\n // console.log('waitFun', gn, b)\r\n return b\r\n })\r\n // console.log('gn', gn)\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToAddPermissionGroup'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickRemoveGroup: function(msg) {\r\n // console.log('methods clickRemoveGroup', msg)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //g\r\n let g = get(msg, 'item', {})\r\n\r\n //name\r\n let name = get(g, 'name', vo.$t('unknow'))\r\n\r\n //showCheckYesNo\r\n let bExit = false\r\n let t_confirmToDeletePermissionGroup = vo.$t('confirmToDeletePermissionGroup')\r\n t_confirmToDeletePermissionGroup = t_confirmToDeletePermissionGroup.replace('{name}', name)\r\n await vo.$dg.showCheckYesNo(t_confirmToDeletePermissionGroup)\r\n .catch(() => {\r\n bExit = true\r\n })\r\n if (bExit) {\r\n return\r\n }\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //save\r\n await vo.$fapi.ruleGroups.del(g)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToDeletePermissionGroup')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //gn\r\n let gn = null\r\n await waitFun(() => {\r\n gn = find(vo.groupsTrans, { id: g.id })\r\n let b = !iseobj(gn) //確認g.id已不存在\r\n // console.log('waitFun', gn, b)\r\n return b\r\n })\r\n // console.log('gn', gn)\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToDeletePermissionGroup'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n dragGroupsOrder: function(groupsNew) {\r\n // console.log('dragGroupsOrder', groupsNew)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //check, 新增或刪除皆跳出, 僅處理排序之操作\r\n if (size(vo.groupsTrans) !== size(groupsNew)) {\r\n return\r\n }\r\n // console.log(`size(vo.groupsTrans)`, size(vo.groupsTrans))\r\n // console.log(`size(groupsNew)`, size(groupsNew))\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //gs\r\n let gs = []\r\n each(groupsNew, (v, k) => {\r\n gs.push({\r\n id: v.id,\r\n order: k,\r\n })\r\n })\r\n // console.log('gs', gs)\r\n\r\n //save\r\n await vo.$fapi.ruleGroups.save(gs)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToChangeOrderPermissionGroup')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //gsn\r\n let gsn = null\r\n await waitFun(() => {\r\n gsn = map(vo.groupsTrans, (v, k) => {\r\n return {\r\n id: v.id,\r\n order: k,\r\n }\r\n })\r\n return isEqual(gsn, gs)\r\n })\r\n // console.log('gsn', gsn)\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToChangeOrderPermissionGroup'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n modifyGroup: function(group) {\r\n // console.log('methods modifyGroup', group)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!isestr(group.name)) {\r\n vo.$alert(vo.$t('rememberToGivePermissionGroupName'), { type: 'warning' })\r\n }\r\n\r\n //modify\r\n each(vo.groupsTrans, (v, k) => {\r\n if (v.id === group.id) {\r\n vo.groupsTrans[k] = group\r\n }\r\n })\r\n // console.log('vo.groupsTrans', cloneDeep(vo.groupsTrans))\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n\r\n saveGroups: function() {\r\n // console.log('methods saveGroups')\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //check\r\n let b = false\r\n each(vo.groupsTrans, (v, k) => {\r\n if (!isestr(v.name)) {\r\n let t_isPermissionGroupNameEmpty = vo.$t('isPermissionGroupNameEmpty')\r\n t_isPermissionGroupNameEmpty = t_isPermissionGroupNameEmpty.replace('{n}', cstr(k + 1))\r\n vo.$alert(t_isPermissionGroupNameEmpty, { type: 'error' })\r\n b = true\r\n }\r\n })\r\n if (b) {\r\n return\r\n }\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //groups\r\n let groups = map(vo.groupsTrans, (group) => {\r\n let g = {\r\n id: group.id,\r\n name: group.name,\r\n description: group.description,\r\n crules: group.crules,\r\n }\r\n return g\r\n })\r\n\r\n //save\r\n await vo.$fapi.ruleGroups.save(groups)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToSavePermissionGroup')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //isModified\r\n vo.isModified = false\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToSavePermissionGroup'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentGroups.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentGroups.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContentGroups.vue?vue&type=template&id=d23c3cb6&scoped=true\"\nimport script from \"./LayoutContentGroups.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContentGroups.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d23c3cb6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"height\":\"100%\"},attrs:{\"changeUsers\":_vm.changeUsers},on:{\"domresize\":_vm.resizePanel}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"border-bottom\":\"1px solid #ddd\",\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeHead}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\",\"padding\":\"10px 0px 5px 20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"5px 15px 5px 5px\",\"border-bottom\":\"3px solid #FF9100\"}},[_c('WIcon',{attrs:{\"icon\":_vm.mdiAccountGroupOutline,\"color\":'#FF9800'}}),_c('div',{staticStyle:{\"padding-left\":\"10px\",\"font-size\":\"1.3rem\",\"color\":\"#d3912c\"}},[_vm._v(\" \"+_vm._s(_vm.$t('userPermissions'))+\" \")])],1)]),_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\"}},[_c('div',{staticStyle:{\"padding\":\"15px 20px 15px 20px\",\"background\":\"#fff\"}},[_c('div',{staticStyle:{\"display\":\"flex\"}},[_c('WSwitch',{attrs:{\"text\":_vm.$t('isEditabled'),\"checkedSwitchCircleColor\":'#D81B60',\"checkedSwitchCircleColorHover\":'#f26',\"checkedSwitchBarColor\":'#F8BBD0',\"checkedSwitchBarColorHover\":'#F8BBD0'},model:{value:(_vm.isOperatable),callback:function ($$v) {_vm.isOperatable=$$v},expression:\"isOperatable\"}})],1),(_vm.isOperatable)?_c('div',{staticStyle:{\"padding-top\":\"5px\",\"font-size\":\"0.8rem\",\"_color\":\"#f26\"}},[_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 1. \"+_vm._s(_vm.$t('userMsg1'))+\" \")]),_c('div',{staticStyle:{\"padding\":\"3px 0px\"}},[_vm._v(\" 2. \"+_vm._s(_vm.$t('userMsg2'))+\" \")])]):_vm._e()])]),(_vm.isModified)?_c('div',{staticStyle:{\"padding\":\"10px 10px 12px 10px\",\"border-top\":\"1px solid #F48FB1\",\"border-bottom\":\"1px solid #F48FB1\",\"background\":\"#FCE4EC\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"flex-end\"}},[_c('WButtonChip',{attrs:{\"paddingStyle\":{v:0,h:11},\"text\":_vm.$t('saveChanges'),\"icon\":_vm.mdiCloudUploadOutline,\"backgroundColor\":'rgba(255,0,50,0.7)',\"backgroundColorHover\":'rgba(255,0,50,0.8)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff'},on:{\"click\":_vm.saveGroups}})],1):_vm._e()]),(!_vm.firstLoading)?_c('div',{style:(`padding:${_vm.spacePading}px;`)},[_c('div',{staticStyle:{\"background\":\"#fff\",\"box-shadow\":\"0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12)\"}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"padding\":\"20px 10px 10px 20px\",\"border-bottom\":\"3px solid #ddd\"},on:{\"domresize\":_vm.resizeGroupInfor}},[_c('div',{staticStyle:{\"padding\":\"0px 10px 10px 0px\",\"display\":\"inline-block\",\"vertical-align\":\"middle\",\"color\":\"#666\",\"font-size\":\"1.1rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('userList'))+\" \")]),(_vm.isOperatable)?_c('div',{staticStyle:{\"padding\":\"0px 10px 10px 0px\",\"display\":\"inline-block\",\"vertical-align\":\"middle\"}},[_c('WButtonChip',{attrs:{\"paddingStyle\":{v:0,h:11},\"text\":_vm.$t('addUser'),\"icon\":_vm.mdiAccountPlusOutline,\"backgroundColor\":'rgba(255,0,50,0.7)',\"backgroundColorHover\":'rgba(255,0,50,0.8)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff'},on:{\"click\":_vm.clickAddUser}})],1):_vm._e()]),_c('WPanelScrolly',{style:(`height:${_vm.usersGroupsHeight}px; _overflow-y:auto;`)},[_c('div',{staticStyle:{\"padding\":\"10px\"}},_vm._l((_vm.usersGroups),function(us,kus){return _c('div',{key:'kus:'+kus,staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticStyle:{\"padding-bottom\":\"5px\",\"display\":\"flex\",\"align-items\":\"center\",\"border-bottom\":\"1px dashed #ddd\"}},[_c('div',{staticStyle:{\"padding-right\":\"5px\",\"color\":\"#888\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('from'))+\": \")]),_c('div',{staticStyle:{\"color\":\"#000\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.getFrom(kus))+\" \")])]),_c('div',{staticStyle:{\"padding-top\":\"10px\"}},_vm._l((us),function(u,ku){return _c('div',{key:'ku:'+ku,staticStyle:{\"display\":\"inline-block\",\"margin\":\"0px 10px 10px 0px\"}},[_c('WButtonChip',{attrs:{\"text\":u.name,\"paddingStyle\":{\n v: 2,\n h: 12,\n },\"icon\":_vm.getIsAdmin(u)?_vm.mdiChessRook:'',\"backgroundColor\":_vm.getIsNotActive(u)?'rgba(130,130,130,0.8)':_vm.getIsAdmin(u)?'rgba(216, 27, 96, 0.8)':'rgba(50,110,230,0.8)',\"backgroundColorHover\":_vm.getIsNotActive(u)?'rgba(130,130,130,0.9)':_vm.getIsAdmin(u)?'rgba(216, 27, 96, 0.9)':'rgba(50,110,230,0.9)',\"textColor\":'#eee',\"textColorHover\":'#fff',\"iconColor\":'#eee',\"iconColorHover\":'#fff',\"close\":_vm.isOperatable},on:{\"click\":function($event){return _vm.clickEditUser(u)},\"click-close\":function($event){return _vm.clickRemoveUser(u)}}})],1)}),0)])}),0)])],1)]):_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div\r\n style=\"height:100%;\"\r\n v-domresize\r\n @domresize=\"resizePanel\"\r\n :changeUsers=\"changeUsers\"\r\n >\r\n\r\n <div\r\n style=\"border-bottom:1px solid #ddd; background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n >\r\n\r\n <!-- 標題區 -->\r\n <div style=\"display:inline-block; vertical-align:top; padding:10px 0px 5px 20px;\">\r\n <div style=\"display:flex; align-items:center; padding:5px 15px 5px 5px; border-bottom:3px solid #FF9100;\">\r\n\r\n <WIcon\r\n :icon=\"mdiAccountGroupOutline\"\r\n :color=\"'#FF9800'\"\r\n ></WIcon>\r\n\r\n <div style=\"padding-left:10px; font-size:1.3rem; color:#d3912c;\">\r\n {{$t('userPermissions')}}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- 編輯設定區 -->\r\n <div style=\"display:inline-block; vertical-align:top;\">\r\n\r\n <div style=\"padding:15px 20px 15px 20px; background:#fff;\">\r\n\r\n <div style=\"display:flex;\">\r\n <WSwitch\r\n :text=\"$t('isEditabled')\"\r\n :checkedSwitchCircleColor=\"'#D81B60'\"\r\n :checkedSwitchCircleColorHover=\"'#f26'\"\r\n :checkedSwitchBarColor=\"'#F8BBD0'\"\r\n :checkedSwitchBarColorHover=\"'#F8BBD0'\"\r\n v-model=\"isOperatable\"\r\n ></WSwitch>\r\n </div>\r\n\r\n <div style=\"padding-top:5px; font-size:0.8rem; _color:#f26;\" v-if=\"isOperatable\">\r\n <div style=\"padding:3px 0px;\">\r\n 1. {{$t('userMsg1')}}\r\n </div>\r\n <div style=\"padding:3px 0px;\">\r\n 2. {{$t('userMsg2')}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <!-- 儲存變更提示區 -->\r\n <div\r\n style=\"padding:10px 10px 12px 10px; border-top:1px solid #F48FB1; border-bottom:1px solid #F48FB1; background:#FCE4EC; display:flex; align-items:center; justify-content:flex-end;\"\r\n v-if=\"isModified\"\r\n >\r\n\r\n <WButtonChip\r\n :paddingStyle=\"{v:0,h:11}\"\r\n :text=\"$t('saveChanges')\"\r\n :icon=\"mdiCloudUploadOutline\"\r\n :backgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :backgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n @click=\"saveGroups\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div\r\n :style=\"`padding:${spacePading}px;`\"\r\n v-if=\"!firstLoading\"\r\n >\r\n\r\n <div style=\"background:#fff; box-shadow:0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px 0 rgba(0,0,0,.14), 0 1px 5px 0 rgba(0,0,0,.12);\">\r\n\r\n <div\r\n style=\"padding:20px 10px 10px 20px; border-bottom:3px solid #ddd;\"\r\n v-domresize\r\n @domresize=\"resizeGroupInfor\"\r\n >\r\n\r\n <div style=\"padding:0px 10px 10px 0px; display:inline-block; vertical-align:middle; color:#666; font-size:1.1rem;\">\r\n {{$t('userList')}}\r\n </div>\r\n\r\n <div\r\n style=\"padding:0px 10px 10px 0px; display:inline-block; vertical-align:middle;\"\r\n v-if=\"isOperatable\"\r\n >\r\n\r\n <WButtonChip\r\n :paddingStyle=\"{v:0,h:11}\"\r\n :text=\"$t('addUser')\"\r\n :icon=\"mdiAccountPlusOutline\"\r\n :backgroundColor=\"'rgba(255,0,50,0.7)'\"\r\n :backgroundColorHover=\"'rgba(255,0,50,0.8)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n @click=\"clickAddUser\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <WPanelScrolly\r\n :style=\"`height:${usersGroupsHeight}px; _overflow-y:auto;`\"\r\n >\r\n <div style=\"padding:10px;\">\r\n\r\n <div\r\n style=\"padding:10px;\"\r\n :key=\"'kus:'+kus\"\r\n v-for=\"(us,kus) in usersGroups\"\r\n >\r\n\r\n <div style=\"padding-bottom:5px; display:flex; align-items:center; border-bottom:1px dashed #ddd;\">\r\n <div style=\"padding-right:5px; color:#888; font-size:0.8rem;\">\r\n {{$t('from')}}:\r\n </div>\r\n <div style=\"color:#000; font-size:0.8rem;\">\r\n {{getFrom(kus)}}\r\n </div>\r\n </div>\r\n\r\n <div style=\"padding-top:10px;\">\r\n\r\n <div\r\n style=\"display:inline-block; margin:0px 10px 10px 0px;\"\r\n :key=\"'ku:'+ku\"\r\n v-for=\"(u,ku) in us\"\r\n >\r\n\r\n <WButtonChip\r\n :text=\"u.name\"\r\n :paddingStyle=\"{\r\n v: 2,\r\n h: 12,\r\n }\"\r\n :icon=\"getIsAdmin(u)?mdiChessRook:''\"\r\n :backgroundColor=\"getIsNotActive(u)?'rgba(130,130,130,0.8)':getIsAdmin(u)?'rgba(216, 27, 96, 0.8)':'rgba(50,110,230,0.8)'\"\r\n :backgroundColorHover=\"getIsNotActive(u)?'rgba(130,130,130,0.9)':getIsAdmin(u)?'rgba(216, 27, 96, 0.9)':'rgba(50,110,230,0.9)'\"\r\n :textColor=\"'#eee'\"\r\n :textColorHover=\"'#fff'\"\r\n :iconColor=\"'#eee'\"\r\n :iconColorHover=\"'#fff'\"\r\n :close=\"isOperatable\"\r\n @click=\"clickEditUser(u)\"\r\n @click-close=\"clickRemoveUser(u)\"\r\n ></WButtonChip>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </WPanelScrolly>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px 15px; font-size:0.8rem;\" v-else>\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiAccountGroupOutline, mdiAccountPlusOutline, mdiCheckboxMarkedCircle, mdiChessRook } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\nimport each from 'lodash-es/each.js'\nimport keys from 'lodash-es/keys.js'\nimport sortBy from 'lodash-es/sortBy.js'\nimport find from 'lodash-es/find.js'\nimport size from 'lodash-es/size.js'\nimport groupBy from 'lodash-es/groupBy.js'\nimport genID from 'wsemi/src/genID.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WPanelScrolly from 'w-component-vue/src/components/WPanelScrolly.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WButtonChip,\r\n WSwitch,\r\n WPanelScrolly,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiAccountGroupOutline,\r\n mdiAccountPlusOutline,\r\n mdiCheckboxMarkedCircle,\r\n mdiChessRook,\r\n\r\n panelWidth: 100,\r\n panelHeight: 100,\r\n headHeight: 100,\r\n groupInforHeight: 100,\r\n\r\n firstLoading: true,\r\n isOperatable: true,\r\n isModified: false,\r\n\r\n pickGroupId: '',\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n users: function() {\r\n return get(this, `$store.state.users`)\r\n },\r\n\r\n usersGroups: function() {\r\n let gs = groupBy(this.users, 'from')\r\n let ks = keys(gs)\r\n ks = sortBy(ks)\r\n let gsTemp = {}\r\n each(ks, (k) => {\r\n gsTemp[k] = gs[k]\r\n })\r\n gs = gsTemp\r\n return gs\r\n },\r\n\r\n changeUsers: function() {\r\n // console.log('computed changeUsers')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (size(vo.users) === 0) {\r\n return ''\r\n }\r\n\r\n //firstLoading\r\n vo.firstLoading = false\r\n\r\n return ''\r\n },\r\n\r\n spacePading: function() {\r\n let vo = this\r\n if (vo.panelWidth < 400) {\r\n return 0\r\n }\r\n else if (vo.panelWidth < 800) {\r\n return 10\r\n }\r\n return 20\r\n },\r\n\r\n usersGroupsHeight: function() {\r\n let vo = this\r\n\r\n //h\r\n let h = vo.panelHeight - vo.headHeight - 2 * vo.spacePading - vo.groupInforHeight\r\n h = Math.max(h, 0)\r\n\r\n return h\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizePanel: function(msg) {\r\n // console.log('methods resizePanel', msg)\r\n\r\n let vo = this\r\n\r\n //panelWidth, panelHeight\r\n vo.panelWidth = msg.snew.offsetWidth\r\n vo.panelHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeHead: function(msg) {\r\n // console.log('methods resizeHead', msg)\r\n\r\n let vo = this\r\n\r\n //headHeight\r\n vo.headHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n resizeGroupInfor: function(msg) {\r\n // console.log('methods resizeGroupInfor', msg)\r\n\r\n let vo = this\r\n\r\n //groupInforHeight\r\n vo.groupInforHeight = msg.snew.offsetHeight\r\n\r\n },\r\n\r\n getFrom: function(kus) {\r\n // console.log('methods getFrom', kus)\r\n let vo = this\r\n if (!isestr(kus)) {\r\n kus = vo.$t('empty')\r\n }\r\n return kus\r\n },\r\n\r\n getIsAdmin: function(u) {\r\n return get(u, 'isAdmin') === 'y'\r\n },\r\n\r\n getIsNotActive: function(u) {\r\n return get(u, 'isActive') === 'n'\r\n },\r\n\r\n clickAddUser: function() {\r\n // console.log('methods clickAddUser')\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //u\r\n let u = {\r\n id: genID(),\r\n name: vo.$t('newUser'),\r\n from: '',\r\n isAdmin: 'n',\r\n isActive: 'y',\r\n }\r\n\r\n //save\r\n await vo.$fapi.users.insert(u)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToAddUser')}: ${errTemp}`, { type: 'error' })\r\n }\r\n\r\n //un\r\n let un = null\r\n await waitFun(() => {\r\n un = find(vo.users, { id: u.id })\r\n return iseobj(un) //確認g.id已存在\r\n })\r\n // console.log('un', un)\r\n\r\n //showVeUser\r\n vo.$dg.showVeUser(un)\r\n .catch(() => {})\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToAddUser'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickRemoveUser: function(u) {\r\n // console.log('methods clickRemoveUser', u)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //showCheckYesNo\r\n let bExit = false\r\n let t_confirmToDeleteUser = vo.$t('confirmToDeleteUser')\r\n t_confirmToDeleteUser = t_confirmToDeleteUser.replace('{name}', u.name)\r\n await vo.$dg.showCheckYesNo(t_confirmToDeleteUser)\r\n .catch(() => {\r\n bExit = true\r\n })\r\n if (bExit) {\r\n return\r\n }\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //save\r\n await vo.$fapi.users.del(u)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToDeleteUser')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //un\r\n let un = null\r\n await waitFun(() => {\r\n un = find(vo.users, (v) => {\r\n return v.id === u.id\r\n })\r\n return !iseobj(un) //確認g.id已不存在\r\n })\r\n // console.log('un', un)\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToDeleteUser'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n // .then((res) => {\r\n // console.log('then', res)\r\n // })\r\n .catch((err) => {\r\n console.log('catch', err)\r\n vo.$alert(vo.$t('anUnexpectedErrorOccurred'), { type: 'error' })\r\n })\r\n .finally(() => {\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickEditUser: function(u) {\r\n // console.log('clickEditGroup', u)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!vo.isOperatable) {\r\n vo.$alert(vo.$t('cannotShowUserDetailsInViewMode'), { type: 'error' })\r\n return\r\n }\r\n\r\n //showVeUser\r\n vo.$dg.showVeUser(u)\r\n .catch(() => {})\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentUsers.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContentUsers.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContentUsers.vue?vue&type=template&id=cdaa9ede&scoped=true\"\nimport script from \"./LayoutContentUsers.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContentUsers.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cdaa9ede\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n style=\"height:100%; width:100%;\"\r\n v-domresize\r\n @domresize=\"resize\"\r\n >\r\n\r\n <template v-if=\"syncState\">\r\n\r\n <WDrawer\r\n :style=\"`height:${panelHeight}px; width:100%;`\"\r\n v-model=\"drawer\"\r\n :drawerWidth.sync=\"drawerWidth\"\r\n :drawerWidthMin=\"drawerWidthMin\"\r\n :drawerWidthMax=\"drawerWidthMax\"\r\n :mode=\"'from-left'\"\r\n :dragDrawerWidth=\"true\"\r\n :autoSwitch=\"true\"\r\n :switchWidth=\"drawerWidth*2.3\"\r\n >\r\n\r\n <template v-slot:drawer=\"props\">\r\n <div :style=\"`height:${props.height}px; background:#fff; position:relative;`\">\r\n\r\n <WListVertical\r\n style=\"height:100%;\"\r\n :items=\"menus\"\r\n :itemActive=\"menuActive\"\r\n :item-text-color=\"'#222'\"\r\n :item-text-color-hover=\"'#444'\"\r\n :item-text-color-active=\"'#EF6C00'\"\r\n :item-icon-color=\"'#222'\"\r\n :item-icon-color-hover=\"'#444'\"\r\n :item-icon-color-active=\"'#EF6C00'\"\r\n :item-background-color=\"'#fff'\"\r\n :item-background-color-hover=\"'#f2f2f2'\"\r\n :item-background-color-active=\"'#FFF3E0'\"\r\n :paddingStyle=\"{v:15,h:15}\"\r\n @click=\"(menu)=>{menuKey=menu.key}\"\r\n ></WListVertical>\r\n\r\n <div\r\n :style=\"`position:absolute; top:1px; right:4px;`\"\r\n v-if=\"drawer\"\r\n >\r\n <WButtonCircle\r\n :paddingStyle=\"{v:3,h:3}\"\r\n :icon=\"'mdi-arrow-left'\"\r\n :iconSize=\"16\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#eee'\"\r\n :backgroundColorFocus=\"'#fff'\"\r\n :borderColor=\"'transparent'\"\r\n :borderColorHover=\"'#eee'\"\r\n :borderColorFocus=\"'#eee'\"\r\n :tooltip=\"$t('menuTreeHide')\"\r\n :shadow=\"true\"\r\n @click=\"drawer=false\"\r\n ></WButtonCircle>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n\r\n <template v-slot:content=\"props\">\r\n <div :style=\"`height:${props.height}px; width:${props.width}px; position:relative;`\">\r\n\r\n <template>\r\n\r\n <LayoutContentTargets\r\n v-if=\"menuKey==='targets'\"\r\n ></LayoutContentTargets>\r\n\r\n <LayoutContentGroups\r\n v-if=\"menuKey==='groups'\"\r\n ></LayoutContentGroups>\r\n\r\n <LayoutContentUsers\r\n v-if=\"menuKey==='users'\"\r\n ></LayoutContentUsers>\r\n\r\n </template>\r\n\r\n <div\r\n :style=\"`position:absolute; top:1px; left:4px;`\"\r\n v-if=\"!drawer\"\r\n >\r\n <WButtonCircle\r\n :paddingStyle=\"{v:3,h:3}\"\r\n :icon=\"'mdi-arrow-right'\"\r\n :iconSize=\"16\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#eee'\"\r\n :backgroundColorFocus=\"'#fff'\"\r\n :borderColor=\"'transparent'\"\r\n :borderColorHover=\"'#eee'\"\r\n :borderColorFocus=\"'#eee'\"\r\n :tooltip=\"$t('menuTreeShow')\"\r\n :shadow=\"true\"\r\n @click=\"drawer=true\"\r\n ></WButtonCircle>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n\r\n </WDrawer>\r\n\r\n </template>\r\n\r\n <template v-else>\r\n <div\r\n style=\"padding:20px; font-size:0.9rem;\"\r\n >\r\n {{$t('waitingData')}}\r\n </div>\r\n </template>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiGamepadCircle, mdiStackOverflow, mdiAccountGroupOutline } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\nimport find from 'lodash-es/find.js'\nimport WDrawer from 'w-component-vue/src/components/WDrawer.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport WListVertical from 'w-component-vue/src/components/WListVertical.vue'\r\nimport LayoutContentTargets from './LayoutContentTargets.vue'\r\nimport LayoutContentGroups from './LayoutContentGroups.vue'\r\nimport LayoutContentUsers from './LayoutContentUsers.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WDrawer,\r\n WButtonCircle,\r\n WListVertical,\r\n LayoutContentTargets,\r\n LayoutContentGroups,\r\n LayoutContentUsers,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n menuKey: 'targets',\r\n\r\n panelWidth: 0,\r\n panelHeight: 0,\r\n\r\n drawer: true,\r\n drawerWidth: 180,\r\n drawerWidthMin: 150,\r\n drawerWidthMax: 300,\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n syncState: function() {\r\n return get(this, '$store.state.syncState')\r\n },\r\n\r\n menus: function() {\r\n let vo = this\r\n let ms = [\r\n {\r\n key: 'targets',\r\n text: vo.$t('managementTargets'),\r\n icon: mdiGamepadCircle,\r\n },\r\n {\r\n key: 'groups',\r\n text: vo.$t('permissionGroups'),\r\n icon: mdiStackOverflow,\r\n },\r\n {\r\n key: 'users',\r\n text: vo.$t('userPermissions'),\r\n icon: mdiAccountGroupOutline,\r\n },\r\n ]\r\n return ms\r\n },\r\n\r\n menuActive: function() {\r\n let vo = this\r\n let r = find(vo.menus, { key: vo.menuKey })\r\n // console.log(r)\r\n return r\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resize: function(msg) {\r\n // console.log('methods resize', msg)\r\n\r\n let vo = this\r\n\r\n //save\r\n vo.panelWidth = msg.snew.clientWidth\r\n vo.panelHeight = msg.snew.clientHeight\r\n // console.log('vo.panelHeight', vo.panelHeight)\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LayoutContent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContent.vue?vue&type=template&id=1c238eca&scoped=true\"\nimport script from \"./LayoutContent.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContent.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1c238eca\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div style=\"height:100vh; background:#f5f5f5;\">\r\n\r\n <!-- menu top, 因窄版導致名稱換行故須使用overflow-y:hidden -->\r\n <div :style=\"`height:${heightToolbar}px; overflow-y:hidden; padding:0px 10px; background:#fff; border-bottom:1px solid #ccc; display:flex; align-items:center;`\">\r\n\r\n <WButtonCircle\r\n :icon=\"'mdi-menu'\"\r\n :tooltip=\"'左側選單'\"\r\n :shadow=\"false\"\r\n @click=\"drawer=!drawer\"\r\n v-if=\"false\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:5px; white-space:nowrap\">\r\n <div style=\"display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; display:flex; align-items:center;\" v-if=\"webLogo\">\r\n <img style=\"width:36px; height:36px;\" :src=\"webLogo\" />\r\n </div>\r\n\r\n <div>\r\n <div style=\"font-size:1.2rem; color:#000;\">{{webName}}</div>\r\n <div style=\"font-size:0.8rem; color:#666;\">{{$t('webDescription')}}</div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div style=\"width:100%;\"></div>\r\n\r\n <div style=\"padding-right:10px; white-space:nowrap\">\r\n <WTextSelect\r\n style=\"width:100px;\"\r\n :items=\"tgLangs\"\r\n v-model=\"tgLangSelect\"\r\n @input=\"changeLang\"\r\n ></WTextSelect>\r\n </div>\r\n\r\n </div>\r\n\r\n <div :style=\"`height:calc( 100% - ${heightToolbar}px );`\">\r\n <LayoutContent\r\n ></LayoutContent>\r\n </div>\r\n\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiMenu } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\n// import cloneDeep from 'lodash-es/cloneDeep.js'\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport WTextSelect from 'w-component-vue/src/components/WTextSelect.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport LayoutContent from './LayoutContent.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WTextSelect,\r\n WButtonCircle,\r\n LayoutContent,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n mdiMenu,\r\n // drawer: null, //null false\r\n // menuKey: 'blocks',\r\n userName: 'tester',\r\n\r\n drawer: true, //null,\r\n\r\n tgLangs: [\r\n {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n {\r\n id: 'eng',\r\n text: 'English',\r\n },\r\n ],\r\n tgLangSelect: {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n\r\n }\r\n },\r\n beforeMount: function() {\r\n // console.log('beforeMount')\r\n\r\n let vo = this\r\n\r\n //setLang\r\n vo.$ui.setLang(vo.tgLangSelect.id)\r\n\r\n },\r\n computed: {\r\n\r\n viewState: function() {\r\n return get(this, `$store.state.viewState`)\r\n },\r\n\r\n heightToolbar: function() {\r\n return get(this, `$store.state.heightToolbar`)\r\n },\r\n\r\n webName: {\r\n get() {\r\n let vo = this\r\n let c = vo.$t('webName')\r\n // console.log('get webName1', c)\r\n if (!isestr(c)) {\r\n c = vo.$t('waitingData')\r\n }\r\n // console.log('get webName2', c)\r\n document.title = c //更換網頁title\r\n return c\r\n },\r\n // set(value) {\r\n // return value\r\n // },\r\n },\r\n\r\n webLogo: function() {\r\n return get(this, `$store.state.webInfor.webLogo`)\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n changeLang: function(msg) {\r\n // console.log('methods changeLang', msg)\r\n let vo = this\r\n let lang = msg.id\r\n vo.$ui.setLang(lang)\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=44162718&scoped=true\"\nimport script from \"./Layout.vue?vue&type=script&lang=js\"\nexport * from \"./Layout.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44162718\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WDialog',{attrs:{\"show\":_vm.bShow,\"icon\":_vm.mdiAccountEdit,\"_maxWidth\":\"1200\",\"_minWidth\":\"1200\",\"fullscreen\":true,\"title\":_vm.$t('editUser'),\"save-btn-tooltip\":_vm.$t('save'),\"close-btn-tooltip\":_vm.$t('close')},on:{\"update:show\":function($event){_vm.bShow=$event},\"click-save\":_vm.clickSave,\"click-close\":_vm.clickClose,\"resize\":_vm.resize},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('div',{staticStyle:{\"min-height\":\"400px\"}},[_c('div',{staticStyle:{\"padding-top\":\"20px\"}}),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('username'))+\":\")]),_c('WText',{staticStyle:{\"width\":\"100%\"},model:{value:(_vm.u.name),callback:function ($$v) {_vm.$set(_vm.u, \"name\", $$v)},expression:\"u.name\"}})],1),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('email'))+\":\")]),_c('WText',{staticStyle:{\"width\":\"100%\"},model:{value:(_vm.u.email),callback:function ($$v) {_vm.$set(_vm.u, \"email\", $$v)},expression:\"u.email\"}})],1),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('from'))+\":\")]),_c('WTextSuggest',{staticStyle:{\"width\":\"200px\"},attrs:{\"noResultsText\":'無',\"items\":_vm.userFroms},model:{value:(_vm.u.from),callback:function ($$v) {_vm.$set(_vm.u, \"from\", $$v)},expression:\"u.from\"}})],1),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"border-top\":\"1px solid #ddd\"}}),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\"}},[_c('div',{staticStyle:{\"padding-bottom\":\"5px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('belongToPermissionGroup'))+\":\")]),_vm._l((_vm.groups),function(g,kg){return _c('div',{key:kg,staticStyle:{\"display\":\"inline-block\",\"padding\":\"0px 15px 15px 0px\"}},[_c('div',{staticStyle:{\"padding\":\"3px 15px 3px 0px\",\"_border-radius\":\"30px\",\"_border\":\"1px dashed #aaa\",\"display\":\"flex\",\"align-content\":\"center\"}},[_c('WCheckbox',{attrs:{\"value\":_vm.kpugs[g.id],\"_checkedIconColor\":\"'rgba(200,70,20,0.8)'\",\"_uncheckedIconColor\":\"'rgba(200,70,20,0.8)'\"},on:{\"input\":(v)=>{_vm.modifyUserRuleGroupsIds(g.id,v)}}}),_c('div',[_vm._v(\" \"+_vm._s(g.name)+\" \")])],1)])}),_c('div',{staticStyle:{\"padding-bottom\":\"5px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('availableTarget'))+\":\")]),_c('div',{staticStyle:{\"border\":\"1px dashed #f26\",\"background\":\"rgba(255,50,100,0.05)\"}},[_c('ruleGroup',{attrs:{\"height\":600,\"group\":_vm.mergedGroup,\"showHead\":false,\"editable\":false}})],1)],2),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"border-top\":\"1px solid #ddd\"}}),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('isAManager'))+\":\")]),_c('WSwitch',{attrs:{\"value\":_vm.u.isAdmin==='y'},on:{\"input\":(v)=>{_vm.u.isAdmin=v?'y':'n'}}})],1),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('isActive'))+\":\")]),_c('WSwitch',{attrs:{\"value\":_vm.u.isActive==='y'},on:{\"input\":(v)=>{_vm.u.isActive=v?'y':'n'}}})],1),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"border-top\":\"1px solid #ddd\"}}),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('remark'))+\":\")]),_c('WText',{staticStyle:{\"width\":\"100%\"},model:{value:(_vm.u.description),callback:function ($$v) {_vm.$set(_vm.u, \"description\", $$v)},expression:\"u.description\"}})],1),_c('div',{staticStyle:{\"padding-top\":\"20px\",\"border-top\":\"1px solid #ddd\"}}),_c('div',{staticStyle:{\"padding\":\"0px 20px 20px 20px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"10px\",\"color\":\"#777\",\"white-space\":\"nowrap\"}},[_vm._v(_vm._s(_vm.$t('dayCreate'))+\":\")]),_c('div',{staticStyle:{\"padding\":\"0px 7px\",\"border-radius\":\"20px\",\"font-size\":\"0.8rem\",\"color\":\"#fff\",\"background\":\"#A1887F\"}},[_vm._v(\" \"+_vm._s(_vm.getCreateDay(_vm.u))+\" \")])])])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <WDialog\r\n :show.sync=\"bShow\"\r\n :icon=\"mdiAccountEdit\"\r\n _maxWidth=\"1200\"\r\n _minWidth=\"1200\"\r\n :fullscreen=\"true\"\r\n :title=\"$t('editUser')\"\r\n :save-btn-tooltip=\"$t('save')\"\r\n :close-btn-tooltip=\"$t('close')\"\r\n @click-save=\"clickSave\"\r\n @click-close=\"clickClose\"\r\n @resize=\"resize\"\r\n >\r\n <template v-slot:content>\r\n <div style=\"min-height:400px;\">\r\n\r\n <div style=\"padding-top:20px;\"></div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('username')}}:</div>\r\n\r\n <WText\r\n style=\"width:100%;\"\r\n v-model=\"u.name\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('email')}}:</div>\r\n\r\n <WText\r\n style=\"width:100%;\"\r\n v-model=\"u.email\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('from')}}:</div>\r\n\r\n <WTextSuggest\r\n style=\"width:200px;\"\r\n :noResultsText=\"'無'\"\r\n :items=\"userFroms\"\r\n v-model=\"u.from\"\r\n ></WTextSuggest>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:20px; border-top:1px solid #ddd;\"></div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px;\">\r\n\r\n <div style=\"padding-bottom:5px; color:#777; white-space:nowrap;\">{{$t('belongToPermissionGroup')}}:</div>\r\n\r\n <div\r\n style=\"display:inline-block; padding:0px 15px 15px 0px;\"\r\n :key=\"kg\"\r\n v-for=\"(g,kg) in groups\"\r\n >\r\n\r\n <div style=\"padding:3px 15px 3px 0px; _border-radius:30px; _border:1px dashed #aaa; display:flex; align-content:center;\">\r\n\r\n <WCheckbox\r\n :value=\"kpugs[g.id]\"\r\n _checkedIconColor=\"'rgba(200,70,20,0.8)'\"\r\n _uncheckedIconColor=\"'rgba(200,70,20,0.8)'\"\r\n @input=\"(v)=>{modifyUserRuleGroupsIds(g.id,v)}\"\r\n ></WCheckbox>\r\n\r\n <div>\r\n {{g.name}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-bottom:5px; color:#777; white-space:nowrap;\">{{$t('availableTarget')}}:</div>\r\n\r\n <div style=\"border:1px dashed #f26; background:rgba(255,50,100,0.05);\">\r\n\r\n <ruleGroup\r\n :height=\"600\"\r\n :group=\"mergedGroup\"\r\n :showHead=\"false\"\r\n :editable=\"false\"\r\n ></ruleGroup>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:20px; border-top:1px solid #ddd;\"></div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('isAManager')}}:</div>\r\n\r\n <WSwitch\r\n :value=\"u.isAdmin==='y'\"\r\n @input=\"(v)=>{u.isAdmin=v?'y':'n'}\"\r\n ></WSwitch>\r\n\r\n </div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('isActive')}}:</div>\r\n\r\n <WSwitch\r\n :value=\"u.isActive==='y'\"\r\n @input=\"(v)=>{u.isActive=v?'y':'n'}\"\r\n ></WSwitch>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:20px; border-top:1px solid #ddd;\"></div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('remark')}}:</div>\r\n\r\n <WText\r\n style=\"width:100%;\"\r\n v-model=\"u.description\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:20px; border-top:1px solid #ddd;\"></div>\r\n\r\n <div style=\"padding:0px 20px 20px 20px; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; color:#777; white-space:nowrap;\">{{$t('dayCreate')}}:</div>\r\n\r\n <div style=\"padding:0px 7px; border-radius:20px; font-size:0.8rem; color:#fff; background:#A1887F;\">\r\n {{getCreateDay(u)}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </template>\r\n </WDialog>\r\n</template>\r\n\r\n<script>\r\nimport { mdiAccountEdit, mdiFileTree } from '@mdi/js/mdi.js'\r\nimport Vue from 'vue'\r\n// import JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\nimport each from 'lodash-es/each.js'\nimport map from 'lodash-es/map.js'\nimport trim from 'lodash-es/trim.js'\nimport uniq from 'lodash-es/uniq.js'\nimport filter from 'lodash-es/filter.js'\nimport join from 'lodash-es/join.js'\nimport sortBy from 'lodash-es/sortBy.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport sep from 'wsemi/src/sep.mjs'\r\nimport timemsTZ2day from 'wsemi/src/timemsTZ2day.mjs'\r\nimport isernot from 'wsemi/src/isernot.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport WDialog from 'w-component-vue/src/components/WDialog.vue'\r\nimport WText from 'w-component-vue/src/components/WText.vue'\r\nimport WTextSuggest from 'w-component-vue/src/components/WTextSuggest.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WCheckbox from 'w-component-vue/src/components/WCheckbox.vue'\r\nimport { getUserRules } from '../plugins/mShare.mjs'\r\nimport ruleGroup from './ruleGroup.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WDialog,\r\n WText,\r\n WTextSuggest,\r\n WSwitch,\r\n WCheckbox,\r\n ruleGroup,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiAccountEdit,\r\n mdiFileTree,\r\n\r\n bShow: false,\r\n pm: null,\r\n\r\n // panelHeight: 100,\r\n\r\n u: null,\r\n kpugs: {},\r\n mergedGroup: {},\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.showVeUser = vo.show\r\n\r\n },\r\n computed: {\r\n\r\n targets: function() {\r\n return get(this, `$store.state.targets`)\r\n },\r\n\r\n ruleGroups: function() {\r\n return get(this, `$store.state.ruleGroups`)\r\n },\r\n\r\n groups: function() {\r\n // console.log('computed groups')\r\n\r\n let vo = this\r\n\r\n //rs\r\n let rs = map(vo.ruleGroups, (v) => {\r\n // let rules = JSON5.parse(v.crules)\r\n return {\r\n ...v,\r\n // rules,\r\n }\r\n })\r\n\r\n //sortBy\r\n rs = sortBy(rs, 'order')\r\n\r\n return rs\r\n },\r\n\r\n users: function() {\r\n return get(this, `$store.state.users`)\r\n },\r\n\r\n userFroms: function() {\r\n let vo = this\r\n let froms = map(vo.users, 'from')\r\n froms = uniq(froms)\r\n froms = filter(froms, isernot)\r\n froms = sortBy(froms)\r\n return froms\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resize: function(msg) {\r\n // console.log('methods resize', msg)\r\n\r\n // let vo = this\r\n\r\n // //panelHeight\r\n // vo.panelHeight = msg.contentHeightMax - 59 //- 61.6\r\n\r\n },\r\n\r\n getCreateDay: function(u) {\r\n let timeCreate = get(u, 'timeCreate', '')\r\n return timemsTZ2day(timeCreate)\r\n },\r\n\r\n modifyUserRuleGroupsIds: function(ruleGroupsId, b) {\r\n // console.log('methods modifyUserRuleGroupsIds', ruleGroupsId, b)\r\n\r\n let vo = this\r\n\r\n //kpugs, 因kugs初始化可能不是全部群組, 得用set才能觸發所有checkbox的value記憶體變更\r\n // vo.kpugs[ruleGroupsId] = b\r\n vo.$set(vo.kpugs, ruleGroupsId, b)\r\n\r\n //modify ruleGroupsIds\r\n let ruleGroupsIds = []\r\n each(vo.kpugs, (v, k) => {\r\n if (v) {\r\n ruleGroupsIds.push(k)\r\n }\r\n })\r\n ruleGroupsIds = join(ruleGroupsIds, ';')\r\n vo.u.ruleGroupsIds = ruleGroupsIds\r\n // console.log('ruleGroupsIds', ruleGroupsIds)\r\n\r\n //calcMergedGroup\r\n vo.calcMergedGroup()\r\n\r\n },\r\n\r\n calcMergedGroup: function() {\r\n let vo = this\r\n\r\n //save\r\n let u = cloneDeep(vo.u)\r\n\r\n //getUserRules\r\n let urs = getUserRules(u, vo.ruleGroups, vo.targets)\r\n // console.log('urs', urs)\r\n\r\n //mergedGroup\r\n let mergedGroup = {\r\n id: 'merged-group',\r\n name: urs.ruleGroupsNames,\r\n crules: JSON.stringify(urs.rules),\r\n }\r\n\r\n //mergedGroup\r\n vo.mergedGroup = mergedGroup\r\n\r\n },\r\n\r\n clickSave: function(msg) {\r\n //console.log('methods clickSave', msg)\r\n\r\n let vo = this\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //check\r\n if (!isestr(vo.u.name)) {\r\n vo.$alert(vo.$t('isUsernameEmpty'), { type: 'error' })\r\n return\r\n }\r\n\r\n //show loading\r\n vo.$ui.updateLoading(true)\r\n\r\n //u\r\n let u = {\r\n id: vo.u.id,\r\n name: trim(vo.u.name),\r\n email: trim(vo.u.email),\r\n description: trim(vo.u.description),\r\n ruleGroupsIds: trim(vo.u.ruleGroupsIds),\r\n from: trim(vo.u.from),\r\n isAdmin: vo.u.isAdmin,\r\n isActive: vo.u.isActive,\r\n // userId, //insert時自動由後端給予\r\n // timeCreate, //insert時自動由後端給予\r\n // userIdUpdate: userId, //虛擬使用者皆與創建者相同\r\n // timeUpdate: timeCreate,\r\n }\r\n\r\n //save\r\n await vo.$fapi.users.save(u)\r\n .catch((err) => {\r\n errTemp = err\r\n })\r\n\r\n //check\r\n if (errTemp !== null) {\r\n vo.$alert(`${vo.$t('failedToSaveUser')}: ${errTemp}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //alert\r\n vo.$alert(vo.$t('successfulToSaveUser'))\r\n\r\n }\r\n\r\n //core\r\n core()\r\n .then(() => {\r\n\r\n //resolve\r\n vo.pm.resolve()\r\n\r\n //hide\r\n vo.bShow = false\r\n\r\n })\r\n .catch(() => { })\r\n .finally(() => {\r\n\r\n //save按鈕解除loading\r\n msg.pm.resolve()\r\n\r\n //hide loading\r\n vo.$ui.updateLoading(false)\r\n\r\n })\r\n\r\n },\r\n\r\n clickClose: function() {\r\n //console.log('methods clickClose')\r\n\r\n let vo = this\r\n\r\n //reject\r\n vo.pm.reject('close window')\r\n\r\n //hide\r\n vo.bShow = false\r\n\r\n },\r\n\r\n show: function (u) {\r\n // console.log('methods show', u)\r\n\r\n let vo = this\r\n\r\n //pm\r\n vo.pm = genPm()\r\n\r\n //save u\r\n u = cloneDeep(u)\r\n vo.u = u\r\n\r\n //save kpugs\r\n let kpugs = {}\r\n let ruleGroupsIds = get(u, 'ruleGroupsIds', '')\r\n let s = sep(ruleGroupsIds, ';')\r\n each(s, (v) => {\r\n kpugs[v] = true\r\n })\r\n vo.kpugs = kpugs\r\n\r\n //calcMergedGroup\r\n vo.calcMergedGroup()\r\n\r\n //bShow\r\n vo.bShow = true\r\n\r\n return vo.pm\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VeUser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VeUser.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VeUser.vue?vue&type=template&id=34a13790&scoped=true\"\nimport script from \"./VeUser.vue?vue&type=script&lang=js\"\nexport * from \"./VeUser.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"34a13790\",\n null\n \n)\n\nexport default component.exports","<template>\n <div\n v-domresize\n @domresize=\"resize\"\n >\n\n <LayoutState :style=\"`opacity:${ready?0:1};`\" v-if=\"!ready\"></LayoutState>\n\n <transition enter-active-class=\"fade-enter-active\" leave-active-class=\"fade-leave-active\">\n <Layout v-if=\"ready\"></Layout>\n </transition>\n\n <LoadingWinBar></LoadingWinBar>\n <CheckYesNo></CheckYesNo>\n <CheckYes></CheckYes>\n\n <VeUser></VeUser>\n\n </div>\n</template>\n\n<script>\nimport get from 'lodash-es/get.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport isestr from 'wsemi/src/isestr.mjs'\nimport isDev from 'wsemi/src/isDev.mjs'\nimport wui from 'w-ui-loginout/src/WUiLoginout.mjs'\nimport LoadingWinBar from './components/Common/LoadingWinBar.vue'\nimport CheckYesNo from './components/Common/CheckYesNo.vue'\nimport CheckYes from './components/Common/CheckYes.vue'\nimport LayoutState from './components/LayoutState.vue'\nimport Layout from './components/Layout.vue'\nimport VeUser from './components/VeUser.vue'\n\n\nexport default {\n components: {\n LoadingWinBar,\n CheckYesNo,\n CheckYes,\n LayoutState,\n Layout,\n VeUser,\n },\n data: function() {\n return {\n ll: null,\n }\n },\n beforeMount: function() {\n // console.log('methods beforeMount')\n\n let vo = this\n\n //setVo, 更換ui內vo, 才能使用廣播技術, 更換語系才能用廣播通知全部組件forceUpdate\n vo.$ui.setVo(vo)\n\n function loginSuccess(data) {\n console.log('login success', cloneDeep(data.user))\n vo.$ui.updateConnState('已連線')\n vo.$ui.updateUserToken(data.token)\n vo.$ui.updateUserSelf(data.user)\n }\n\n function loginError(data) {\n console.log('login error', cloneDeep(data))\n vo.$ui.updateConnState(data.text)\n vo.$ui.updateUserToken('')\n let urlRedirect = get(window, '___pmwperm___.urlRedirect', '')\n if (!isestr(urlRedirect)) {\n console.log('urlRedirect', urlRedirect)\n throw new Error(`invalid urlRedirect`)\n }\n if (isDev()) {\n console.log('60s redirect to:', urlRedirect)\n setTimeout(() => {\n window.location.href = urlRedirect\n }, 60 * 1000)\n }\n else {\n window.location.href = urlRedirect\n }\n }\n\n //login\n console.log('login...')\n let ll = wui('wperm', {\n timeWaitAnimation: 2000,\n params: {},\n })\n ll.login({\n afterGetUser: null,\n afterLogin: null,\n loginSuccess,\n loginError,\n })\n vo.ll = ll\n\n },\n computed: {\n\n ready: function() {\n let connState = get(this, `$store.state.connState`)\n return connState === '已連線'\n },\n\n },\n methods: {\n\n resize: function(msg) {\n // console.log('methods resize', msg)\n\n let vo = this\n\n //syncHeight\n vo.$ui.syncHeight()\n\n },\n\n },\n}\n</script>\n\n<style>\nhtml,\nbody {\n font-family: '微軟正黑體', 'Microsoft JhengHei', 'MicrosoftJhengHeiRegular', 'Avenir', Helvetica, Arial, sans-serif;\n overflow-y: hidden;\n}\n\ndiv,\np,\nspan,\na,\npre,\ninput,\ntextarea,\nbutton {\n font-family: inherit;\n}\n\n.fade-enter-active {\n animation: go 1s;\n}\n\n.fade-leave-active {\n animation: back 1s;\n}\n\n@keyframes go {\n from { opacity: 0; }\n to {opacity: 1;}\n}\n\n@keyframes back {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n</style>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=1f2a5d84\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=1f2a5d84&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const UpdateWebInfor = 'UpdateWebInfor'\r\nexport const UpdateLang = 'UpdateLang'\r\nexport const UpdateKpText = 'UpdateKpText'\r\nexport const UpdateConnState = 'UpdateConnState'\r\nexport const UpdateSyncState = 'UpdateSyncState'\r\nexport const UpdateLoading = 'UpdateLoading'\r\nexport const UpdateViewState = 'UpdateViewState'\r\nexport const UpdateTableData = 'UpdateTableData'\r\nexport const UpdateData = 'UpdateData'\r\nexport const UpdateHeightApp = 'UpdateHeightApp'\r\nexport const UpdateHeightAppEff = 'UpdateHeightAppEff'\r\nexport const UpdateHeightToolbar = 'UpdateHeightToolbar'\r\nexport const UpdateMenu = 'UpdateMenu'\r\nexport const UpdateUserToken = 'UpdateUserToken'\r\nexport const UpdateUserSelf = 'UpdateUserSelf'\r\n","import map from 'lodash-es/map.js'\nimport keys from 'lodash-es/keys.js'\nimport genID from 'wsemi/src/genID.mjs'\r\nimport dtmapping from 'wsemi/src/dtmapping.mjs'\r\nimport dtpick from 'wsemi/src/dtpick.mjs'\r\nimport nowms2str from 'wsemi/src/nowms2str.mjs'\r\nimport now2strp from 'wsemi/src/now2strp.mjs'\r\n\r\n\r\nlet keyTable = 'ruleGroups'\r\nlet tableNameCht = '權限群組'\r\nlet tableNameEng = 'Rule groups'\r\n\r\n\r\nlet settings = {\r\n id: {\r\n pk: true,\r\n name: '主鍵',\r\n type: 'STRING',\r\n },\r\n order: {\r\n name: '順序',\r\n type: 'INTEGER',\r\n },\r\n name: {\r\n name: '名稱',\r\n type: 'STRING',\r\n },\r\n description: {\r\n name: '說明',\r\n type: 'TEXT',\r\n },\r\n from: {\r\n name: '來源',\r\n type: 'STRING',\r\n },\r\n crules: {\r\n name: '規則', //為json字串, 例如{ '___all___': {show:'y',active:'n'}, '專案A/頁A': {show:'y',active:'y'}, '專案A/頁B': {show:'n',active:'n'} }\r\n type: 'TEXT',\r\n },\r\n userId: {\r\n name: '創建使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeCreate: {\r\n name: '創建時間',\r\n type: 'STRING',\r\n },\r\n userIdUpdate: {\r\n name: '最新變更使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeUpdate: {\r\n name: '更新時間',\r\n type: 'STRING',\r\n },\r\n}\r\n\r\nlet funNew = (ndata = {}) => {\r\n let o = dtmapping(ndata, keys(settings))\r\n o.id = `${now2strp()}-${genID()}`\r\n o.userIdUpdate = o.userId\r\n o.timeCreate = nowms2str()\r\n o.timeUpdate = o.timeCreate\r\n // o.isActive = 'y'\r\n return o\r\n}\r\n\r\nlet funTest = () => {\r\n let rs = [\r\n ['權限群組1', `{ \"___all___\": { \"show\": \"y\", \"active\": \"n\" }, \"專案A/頁A\": { \"show\": \"y\", \"active\": \"y\" }, \"專案A/頁B\": { \"show\": \"n\", \"active\": \"n\" } }`],\r\n ['權限群組2', `{ \"___all___\": { \"show\": \"y\", \"active\": \"n\" } }`],\r\n ['權限群組3', `{ \"___all___\": { \"show\": \"y\", \"active\": \"y\" } }`],\r\n ]\r\n rs = map(rs, ([g, crules], k) => {\r\n let v = funNew({ userId: 'id-for-admin', crules })\r\n v.id = `id-for-${g}`\r\n v.order = k\r\n v.name = g\r\n v.description = `${g}的說明`\r\n v = dtpick(v, keys(settings))\r\n return v\r\n })\r\n console.log(`已產生: ${keyTable} 測試資料`, rs)\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n\r\n","import map from 'lodash-es/map.js'\nimport keys from 'lodash-es/keys.js'\nimport genID from 'wsemi/src/genID.mjs'\r\nimport dtmapping from 'wsemi/src/dtmapping.mjs'\r\nimport dtpick from 'wsemi/src/dtpick.mjs'\r\n// import nowms2str from 'wsemi/src/nowms2str.mjs'\r\nimport now2strp from 'wsemi/src/now2strp.mjs'\r\n\r\n\r\nlet keyTable = 'targets'\r\nlet tableNameCht = '管控對象'\r\nlet tableNameEng = 'Targets'\r\n\r\n\r\nlet settings = {\r\n id: {\r\n pk: true,\r\n name: '主鍵', //儲存對象路徑, 不同階層用句點「.」分開, 可用unicode\r\n type: 'STRING',\r\n },\r\n order: {\r\n name: '順序',\r\n type: 'INTEGER',\r\n },\r\n description: {\r\n name: '說明',\r\n type: 'TEXT',\r\n },\r\n from: {\r\n name: '來源',\r\n type: 'STRING',\r\n },\r\n}\r\n\r\nlet funNew = (ndata = {}) => {\r\n let o = dtmapping(ndata, keys(settings))\r\n o.id = `${now2strp()}-${genID()}`\r\n // o.timeCreate = nowms2str()\r\n // o.timeUpdate = o.timeCreate\r\n // o.isActive = 'y'\r\n return o\r\n}\r\n\r\nlet funTest = () => {\r\n let rs = [\r\n '專案A',\r\n '專案A/頁A',\r\n '專案A/頁A/區塊A',\r\n '專案A/頁A/區塊A/執行按鈕',\r\n '專案A/頁A/區塊A/分析按鈕',\r\n '專案A/頁B',\r\n '專案A/頁B/區塊A',\r\n '專案A/頁B/區塊A/執行按鈕',\r\n '專案A/頁B/區塊A/分析按鈕',\r\n '專案A/頁B/區塊B',\r\n '專案A/頁B/區塊B/展開按鈕',\r\n '專案A/頁B/區塊B/下載按鈕',\r\n '專案B',\r\n '專案B/頁A',\r\n '專案B/頁A/區塊A',\r\n '專案B/頁A/區塊A/下載報表按鈕',\r\n '專案B/頁A/區塊A/下載數據按鈕',\r\n '專案B/頁B/區塊A',\r\n '專案B/頁B/區塊B',\r\n '專案B/頁B/區塊B/顯示後台按鈕',\r\n '專案B/頁B/區塊B/轉跳主站按鈕',\r\n ]\r\n rs = map(rs, (key, k) => {\r\n let v = funNew({ description: key })\r\n v.id = key\r\n v.order = k\r\n v = dtpick(v, keys(settings))\r\n return v\r\n })\r\n console.log(`已產生: ${keyTable} 測試資料`, rs)\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n\r\n","import map from 'lodash-es/map.js'\nimport keys from 'lodash-es/keys.js'\nimport genID from 'wsemi/src/genID.mjs'\r\nimport dtmapping from 'wsemi/src/dtmapping.mjs'\r\nimport dtpick from 'wsemi/src/dtpick.mjs'\r\nimport nowms2str from 'wsemi/src/nowms2str.mjs'\r\nimport now2strp from 'wsemi/src/now2strp.mjs'\r\n\r\n\r\nlet keyTable = 'users'\r\nlet tableNameCht = '使用者'\r\nlet tableNameEng = 'Users'\r\n\r\n\r\nlet settings = {\r\n id: {\r\n pk: true,\r\n name: '主鍵',\r\n type: 'STRING',\r\n },\r\n order: {\r\n name: '順序',\r\n type: 'INTEGER',\r\n },\r\n name: {\r\n name: '姓名',\r\n type: 'STRING',\r\n },\r\n email: {\r\n name: '電子郵件',\r\n type: 'STRING',\r\n },\r\n description: {\r\n name: '描述',\r\n type: 'TEXT',\r\n },\r\n from: {\r\n name: '來源',\r\n type: 'STRING',\r\n },\r\n ruleGroupsIds: {\r\n name: '所屬權限群組主鍵', //多主鍵用分號區隔\r\n type: 'STRING',\r\n },\r\n isAdmin: {\r\n name: '是否為系統管理員',\r\n type: 'STRING',\r\n },\r\n userId: {\r\n name: '創建使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeCreate: {\r\n name: '創建時間',\r\n type: 'STRING',\r\n },\r\n userIdUpdate: {\r\n name: '最新變更使用者主鍵',\r\n type: 'STRING',\r\n },\r\n timeUpdate: {\r\n name: '更新時間',\r\n type: 'STRING',\r\n },\r\n isActive: {\r\n name: '是否有效',\r\n type: 'STRING',\r\n },\r\n}\r\n\r\nlet funNew = (ndata = {}) => {\r\n let o = dtmapping(ndata, keys(settings))\r\n o.id = `${now2strp()}-${genID()}`\r\n o.isAdmin = 'n'\r\n o.userIdUpdate = o.userId\r\n o.timeCreate = nowms2str()\r\n o.timeUpdate = o.timeCreate\r\n o.isActive = 'y'\r\n return o\r\n}\r\n\r\nlet funTest = () => {\r\n let rs = [\r\n '王小明',\r\n 'peter',\r\n 'mary',\r\n 'john',\r\n 'bill',\r\n 'admin',\r\n ]\r\n rs = map(rs, (name, k) => {\r\n let v = funNew({ userId: 'id-for-admin', name })\r\n v.id = `id-for-${name}`\r\n v.order = k\r\n v.email = `${name}@example.com`\r\n v = dtpick(v, keys(settings))\r\n return v\r\n })\r\n rs[0].ruleGroupsIds = `id-for-權限群組1;id-for-權限群組2`\r\n rs[1].ruleGroupsIds = `id-for-權限群組1`\r\n rs[0].from = 'teamA'\r\n rs[1].from = 'teamA'\r\n rs[2].from = 'teamA'\r\n rs[3].from = 'teamB'\r\n rs[4].from = 'teamB'\r\n rs[4].isActive = 'n'\r\n rs[5].ruleGroupsIds = `id-for-權限群組1`\r\n rs[5].description = '測試系統管理員描述說明'\r\n rs[5].isAdmin = 'y' //admin\r\n console.log(`已產生: ${keyTable} 測試資料`, rs)\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n\r\n","import ruleGroups from './tables/ruleGroups.mjs'\nimport targets from './tables/targets.mjs'\nimport users from './tables/users.mjs'\nimport build from 'w-data-collector/src/build.mjs'\n\n\nlet cs = {\n ruleGroups,\n targets,\n users,\n}\n\n//ds\nlet ds = {}\nfor (let k in cs) {\n ds[k] = build(cs[k], { useCreateStorage: false })\n}\n\n\nexport default ds\n","import each from 'lodash-es/each.js'\nimport set from 'lodash-es/set.js'\nimport * as types from './types.mjs'\r\nimport ds from '../schema/index.mjs'\r\n\r\n\r\n//state, 全域狀態\r\nlet state = {\r\n\r\n hostname: `${window.location.origin}`,\r\n webInfor: {},\r\n connState: '連線中...',\r\n syncState: false,\r\n viewState: 'lists',\r\n loading: false,\r\n settings: {\r\n leftDrawerWidth: 200,\r\n },\r\n\r\n heightApp: 0,\r\n heightAppEff: 0,\r\n heightToolbar: 60,\r\n\r\n menu: {}, //初始值需為物件, 否則LayoutContent會取menu.key出錯\r\n\r\n userToken: '',\r\n user: {\r\n id: '', //id-for-admin\r\n name: '', //測試者\r\n email: '', //admin@example.com\r\n isAdmin: 'n',\r\n },\r\n\r\n lang: 'cht',\r\n keyLangs: {\r\n\r\n systemMessage: {\r\n eng: 'System message',\r\n cht: '系統確認訊息',\r\n },\r\n ok: {\r\n eng: 'OK',\r\n cht: '確認',\r\n },\r\n no: {\r\n eng: 'No',\r\n cht: '取消',\r\n },\r\n yes: {\r\n eng: 'Yes',\r\n cht: '確定',\r\n },\r\n\r\n empty: {\r\n eng: 'Empty',\r\n cht: '無',\r\n },\r\n waitingData: {\r\n eng: 'Waiting data...',\r\n cht: '等待數據中...',\r\n },\r\n\r\n isEditabled: {\r\n eng: 'Editable',\r\n cht: '是否編輯',\r\n },\r\n saveChanges: {\r\n eng: `Save changes`,\r\n cht: `儲存變更`,\r\n },\r\n from: {\r\n eng: `From`,\r\n cht: `來源`,\r\n },\r\n save: {\r\n eng: `Save`,\r\n cht: `儲存`,\r\n },\r\n close: {\r\n eng: `Close`,\r\n cht: `關閉`,\r\n },\r\n cancel: {\r\n eng: `Cancel`,\r\n cht: `取消`,\r\n },\r\n processing: {\r\n eng: `Processing...`,\r\n cht: `處理中請稍後...`,\r\n },\r\n anUnexpectedErrorOccurred: {\r\n eng: `An unexpected error occurred, please contact the administrator`,\r\n cht: `發生非預期錯誤,請洽管理員`,\r\n },\r\n unknow: {\r\n eng: `Unknow`,\r\n cht: `未知`,\r\n },\r\n\r\n username: {\r\n eng: `Username`,\r\n cht: `使用者姓名`,\r\n },\r\n email: {\r\n eng: `Email`,\r\n cht: `電子郵件`,\r\n },\r\n name: {\r\n eng: `Name`,\r\n cht: `名稱`,\r\n },\r\n description: {\r\n eng: `Description`,\r\n cht: `說明`,\r\n },\r\n noDescription: {\r\n eng: `No description`,\r\n cht: `無說明`,\r\n },\r\n\r\n managementTargets: {\r\n eng: `Targets`,\r\n cht: `管理區塊`,\r\n },\r\n permissionGroups: {\r\n eng: `Groups`,\r\n cht: `權限群組`,\r\n },\r\n userPermissions: {\r\n eng: 'Users',\r\n cht: '使用者權限',\r\n },\r\n\r\n userMsg1: {\r\n eng: `Please give the appropriate permission group according to the user's identity.`,\r\n cht: '請依照使用者身份給予適合之權限群組。',\r\n },\r\n userMsg2: {\r\n eng: `Please confirm that the new user is an approved user.`,\r\n cht: `請確認新增使用者為核可之使用者。`,\r\n },\r\n userList: {\r\n eng: `User list`,\r\n cht: `使用者分類清單`,\r\n },\r\n addUser: {\r\n eng: `Add user`,\r\n cht: `新增使用者`,\r\n },\r\n\r\n targetMsg1: {\r\n eng: `Please click the button on the right side of each target to perform operations, such as changing the name, inserting or deleting targets.`,\r\n cht: `請於各區塊右側點擊按鈕即可進行操作,例如變更名稱、插入或刪除區塊。`,\r\n },\r\n targetMsg2: {\r\n eng: `Disable the sub-target function when editing a target.`,\r\n cht: `編輯區塊時禁止顯隱子區塊功能。`,\r\n },\r\n edit: {\r\n eng: `Edit`,\r\n cht: `編輯`,\r\n },\r\n changeName: {\r\n eng: `Change name`,\r\n cht: `變更名稱`,\r\n },\r\n insertBefore: {\r\n eng: `Insert before`,\r\n cht: `插入前區塊`,\r\n },\r\n insertChild: {\r\n eng: `Insert child`,\r\n cht: `插入子區塊`,\r\n },\r\n insertAfter: {\r\n eng: `Insert after`,\r\n cht: `插入後區塊`,\r\n },\r\n deleteTarget: {\r\n eng: `Delete target`,\r\n cht: `刪除區塊`,\r\n },\r\n newTarget: {\r\n eng: `New target`,\r\n cht: `新區塊`,\r\n },\r\n failedToChangePermissionGroups: {\r\n eng: `Failed to change permission groups`,\r\n cht: `連動變更權限群組失敗`,\r\n },\r\n failedToClearTargets: {\r\n eng: `Failed to clear existing targets`,\r\n cht: `清除既有區塊數據失敗`,\r\n },\r\n failedToSaveTargets: {\r\n eng: `Failed to save targets`,\r\n cht: `儲存區塊數據失敗`,\r\n },\r\n successfulToSaveTargets: {\r\n eng: `Save targets successfully`,\r\n cht: `儲存區塊數據成功`,\r\n },\r\n\r\n groupMsg1: {\r\n eng: `Please create appropriate permission groups for various users according to system management requirements.`,\r\n cht: `請依照系統管理需求創建適合各類使用者適合的權限群組。`,\r\n },\r\n groupMsg2: {\r\n eng: `When using edit mode, you can drag permission groups to change their relative order.`,\r\n cht: `開啟編輯時可拖曳權限群組變更其相對順序。`,\r\n },\r\n addGroup: {\r\n eng: `Add group`,\r\n cht: `新增群組`,\r\n },\r\n addPermissionGroup: {\r\n eng: `Add permission group`,\r\n cht: `新增權限群組`,\r\n },\r\n groupMsgNoPick: {\r\n eng: `No permission group is selected.`,\r\n cht: `未選擇權限群組,請點擇上方任一權限群組以顯示管理範圍。`,\r\n },\r\n newGroup: {\r\n eng: `New group`,\r\n cht: `新權限群組`,\r\n },\r\n failedToAddPermissionGroup: {\r\n eng: `Failed to add the permission group`,\r\n cht: `新增權限群組失敗`,\r\n },\r\n successfulToAddPermissionGroup: {\r\n eng: `Add permission group successfully`,\r\n cht: `新增權限群組成功`,\r\n },\r\n confirmToDeletePermissionGroup: {\r\n eng: `Do you want to delete the permission group[{name}]?`,\r\n cht: `確認是否刪除權限群組`,\r\n },\r\n failedToDeletePermissionGroup: {\r\n eng: `Failed to delete the permission group`,\r\n cht: `刪除權限群組失敗`,\r\n },\r\n successfulToDeletePermissionGroup: {\r\n eng: `Delete the permission group successfully`,\r\n cht: `刪除權限群組成功`,\r\n },\r\n failedToChangeOrderPermissionGroup: {\r\n eng: `Failed to change the order of permission group`,\r\n cht: `變更權限群組順序失敗`,\r\n },\r\n successfulToChangeOrderPermissionGroup: {\r\n eng: `Change the order of permission groups successfully`,\r\n cht: `變更權限群組順序成功`,\r\n },\r\n rememberToGivePermissionGroupName: {\r\n eng: `You need to give the permission group name`,\r\n cht: `權限群組名稱請記得給予`,\r\n },\r\n isPermissionGroupNameEmpty: {\r\n eng: `The {n}th permission group name is empty`,\r\n cht: `第 {n} 個權限群組名稱為空`,\r\n },\r\n failedToSavePermissionGroup: {\r\n eng: `Failed to save the permission group`,\r\n cht: `儲存權限群組失敗`,\r\n },\r\n successfulToSavePermissionGroup: {\r\n eng: `Save the permission group successfully`,\r\n cht: `儲存權限群組成功`,\r\n },\r\n\r\n editUser: {\r\n eng: `Edit user`,\r\n cht: `編修使用者`,\r\n },\r\n belongToPermissionGroup: {\r\n eng: `Permission group`,\r\n cht: `隸屬權限群組`,\r\n },\r\n availableTarget: {\r\n eng: `Available targets`,\r\n cht: `使用者可用區塊`,\r\n },\r\n isAManager: {\r\n eng: `Is a manager`,\r\n cht: `是否為管理者`,\r\n },\r\n isActive: {\r\n eng: 'Is active',\r\n cht: '是否有效',\r\n },\r\n remark: {\r\n eng: `Remark`,\r\n cht: `備註`,\r\n },\r\n dayCreate: {\r\n eng: 'Create day',\r\n cht: '創建日期',\r\n },\r\n newUser: {\r\n eng: `New user`,\r\n cht: `新使用者`,\r\n },\r\n failedToAddUser: {\r\n eng: `Failed to add the user`,\r\n cht: `新增使用者失敗`,\r\n },\r\n successfulToAddUser: {\r\n eng: `Add the user successfully`,\r\n cht: `新增使用者成功`,\r\n },\r\n confirmToDeleteUser: {\r\n eng: `Do you want to delete the user[{name}]?`,\r\n cht: `確認是否刪除使用者`,\r\n },\r\n failedToDeleteUser: {\r\n eng: `Failed to delete the user`,\r\n cht: `刪除使用者失敗`,\r\n },\r\n successfulToDeleteUser: {\r\n eng: `Delete the user successfully`,\r\n cht: `刪除使用者成功`,\r\n },\r\n cannotShowUserDetailsInViewMode: {\r\n eng: `Can not show the user details in the view mode`,\r\n cht: `非編輯模式無法查閱使用者詳細資訊`,\r\n },\r\n\r\n allDefaults: {\r\n eng: `All defaults`,\r\n cht: `全部項目預設值`,\r\n },\r\n show: {\r\n eng: `Show`,\r\n cht: `顯示`,\r\n },\r\n active: {\r\n eng: `Active`,\r\n cht: `啟用`,\r\n },\r\n showChildren: {\r\n eng: `Show children`,\r\n cht: `所屬顯示`,\r\n },\r\n hideChildren: {\r\n eng: `Hide children`,\r\n cht: `所屬不顯示`,\r\n },\r\n activateChildren: {\r\n eng: `Activate children`,\r\n cht: `所屬啟用`,\r\n },\r\n deactivateChildren: {\r\n eng: `Deactivate children`,\r\n cht: `所屬不啟用`,\r\n },\r\n isUsernameEmpty: {\r\n eng: `Username is empty`,\r\n cht: `使用者名稱不得為空`,\r\n },\r\n failedToSaveUser: {\r\n eng: `Failed to save the user`,\r\n cht: `變更使用者失敗`,\r\n },\r\n successfulToSaveUser: {\r\n eng: `Save the user successfully`,\r\n cht: `變更使用者成功`,\r\n },\r\n\r\n },\r\n kpText: {},\r\n\r\n}\r\n\r\n//添加各資料表\r\neach(ds, (v, k) => {\r\n state[k] = null //初始化null\r\n})\r\n\r\n//儲存至state\r\nexport { state }\r\n\r\n//mutations, 同步執行\r\nexport let mutations = {\r\n\r\n [types.UpdateWebInfor] (state, webInfor) {\r\n state.webInfor = webInfor\r\n },\r\n\r\n [types.UpdateLang] (state, lang) {\r\n state.lang = lang\r\n },\r\n\r\n [types.UpdateKpText] (state, kpText) {\r\n state.kpText = kpText\r\n },\r\n\r\n [types.UpdateConnState] (state, connState) {\r\n state.connState = connState\r\n },\r\n\r\n [types.UpdateSyncState] (state, syncState) {\r\n state.syncState = syncState\r\n },\r\n\r\n [types.UpdateLoading] (state, loading) {\r\n state.loading = loading\r\n },\r\n\r\n [types.UpdateViewState] (state, viewState) {\r\n state.viewState = viewState\r\n },\r\n\r\n [types.UpdateTableData] (state, msg) {\r\n state[msg.tableName] = msg.data\r\n },\r\n\r\n [types.UpdateData] (state, msg) {\r\n //msg.path內為存取路徑, 需使用set處理\r\n // console.log('UpdateData msg', msg)\r\n set(state, msg.path, msg.data)\r\n },\r\n\r\n [types.UpdateHeightApp] (state, heightApp) {\r\n state.heightApp = heightApp\r\n },\r\n\r\n [types.UpdateHeightAppEff] (state, heightAppEff) {\r\n state.heightAppEff = heightAppEff\r\n },\r\n\r\n [types.UpdateHeightToolbar] (state, heightToolbar) {\r\n state.heightToolbar = heightToolbar\r\n },\r\n\r\n [types.UpdateMenu] (state, menu) {\r\n state.menu = menu\r\n },\r\n\r\n [types.UpdateUserToken] (state, userToken) {\r\n state.userToken = userToken\r\n },\r\n\r\n [types.UpdateUserSelf] (state, userSelf) {\r\n state.userSelf = userSelf\r\n },\r\n\r\n}\r\n\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport { state, mutations } from './mutations.mjs'\r\nimport * as getters from './getters.mjs'\r\nimport * as actions from './actions.mjs'\r\nimport * as types from './types.mjs'\r\n\r\n\r\n//use\r\nVue.use(Vuex)\r\n\r\nlet st = new Vuex.Store({\r\n state,\r\n mutations,\r\n getters,\r\n actions,\r\n strict: true, //嚴格模式禁止修改state\r\n})\r\n\r\n//save to $store\r\nst.types = types\r\nVue.prototype.$store = st\r\n// console.log('$store', st)\r\n\r\nexport default st\r\n","import Vue from 'vue'\r\nimport min from 'lodash-es/min.js'\nimport size from 'lodash-es/size.js'\nimport take from 'lodash-es/take.js'\nimport isEqual from 'lodash-es/isEqual.js'\nimport uniq from 'lodash-es/uniq.js'\nimport set from 'lodash-es/set.js'\nimport get from 'lodash-es/get.js'\nimport each from 'lodash-es/each.js'\nimport map from 'lodash-es/map.js'\nimport filter from 'lodash-es/filter.js'\nimport last from 'lodash-es/last.js'\nimport split from 'lodash-es/split.js'\nimport join from 'lodash-es/join.js'\nimport drop from 'lodash-es/drop.js'\nimport dropRight from 'lodash-es/dropRight.js'\nimport groupBy from 'lodash-es/groupBy.js'\nimport sortBy from 'lodash-es/sortBy.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport cint from 'wsemi/src/cint.mjs'\r\nimport delay from 'wsemi/src/delay.mjs'\r\nimport isarr from 'wsemi/src/isarr.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isearr from 'wsemi/src/isearr.mjs'\r\nimport isEle from 'wsemi/src/isEle.mjs'\r\nimport strleft from 'wsemi/src/strleft.mjs'\r\nimport strdelleft from 'wsemi/src/strdelleft.mjs'\r\nimport sep from 'wsemi/src/sep.mjs'\r\nimport aes2str from 'wsemi/src/aes2str.mjs'\r\nimport str2aes from 'wsemi/src/str2aes.mjs'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport pmSeries from 'wsemi/src/pmSeries.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport browserView from 'wsemi/src/browserView.mjs'\r\nimport arrHas from 'wsemi/src/arrHas.mjs'\r\nimport arrSort from 'wsemi/src/arrSort.mjs'\r\nimport arrInsert from 'wsemi/src/arrInsert.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport timemsTZ2past from 'wsemi/src/timemsTZ2past.mjs'\r\nimport convertToTree from 'wsemi/src/convertToTree.mjs'\r\n// import WUiDwload from 'w-ui-dwload/src/WUiDwload.mjs'\r\n\r\n\r\nlet vo = Vue.prototype\r\n\r\n\r\nfunction setVo(vObj) {\r\n vo = vObj\r\n}\r\n\r\n\r\nfunction updateConnState(connState) {\r\n vo.$store.commit(vo.$store.types.UpdateConnState, connState)\r\n}\r\n\r\n\r\nfunction updateLoading(loading) {\r\n vo.$store.commit(vo.$store.types.UpdateLoading, loading)\r\n}\r\n\r\n\r\nfunction updateViewState(viewState) {\r\n vo.$store.commit(vo.$store.types.UpdateViewState, viewState)\r\n}\r\n\r\n\r\nfunction updateUserToken(userToken) {\r\n vo.$store.commit(vo.$store.types.UpdateUserToken, userToken)\r\n}\r\n\r\n\r\nfunction updateUserSelf(userSelf) {\r\n vo.$store.commit(vo.$store.types.UpdateUserSelf, userSelf)\r\n}\r\n\r\n\r\nfunction forceUpdate() {\r\n // console.log('call forceUpdate')\r\n\r\n function broadcast(chs) {\r\n each(chs, (v) => {\r\n // console.log(v.$el)\r\n v.$forceUpdate()\r\n if (v.$children) {\r\n broadcast(v.$children)\r\n }\r\n })\r\n }\r\n\r\n //broadcast, 注意此處需使用更換ui內vo為mounted後的vo, 也就是含元素, 才能使用廣播技術\r\n broadcast(vo.$children)\r\n\r\n}\r\n\r\n\r\nfunction setLang(lang = null) {\r\n // console.log('call setLang')\r\n\r\n //check lang, 若有輸入才commit\r\n if (isestr(lang)) {\r\n vo.$store.commit(vo.$store.types.UpdateLang, lang)\r\n }\r\n\r\n //getKpLang, 切換lang得調用getKpLang重算kpText\r\n getKpLang()\r\n\r\n //forceUpdate\r\n forceUpdate()\r\n\r\n}\r\n\r\n\r\nfunction getKpLang() {\r\n // console.log('call getKpLang')\r\n\r\n //merge keyLangs\r\n let keyLangs = get(vo, '$store.state.keyLangs')\r\n let webName = get(vo, '$store.state.webInfor.webName')\r\n let webDescription = get(vo, '$store.state.webInfor.webDescription')\r\n let kls = {\r\n ...keyLangs,\r\n webName: {\r\n ...webName,\r\n },\r\n webDescription: {\r\n ...webDescription,\r\n },\r\n }\r\n\r\n //lang\r\n let lang = get(vo, '$store.state.lang')\r\n\r\n //kpText\r\n let kpText = {}\r\n each(kls, (v, k) => {\r\n kpText[k] = v[lang]\r\n })\r\n\r\n //commit\r\n vo.$store.commit(vo.$store.types.UpdateKpText, kpText)\r\n\r\n return kpText\r\n}\r\n\r\n\r\nfunction getKpText(key) {\r\n // console.log('call getKpText')\r\n let kpText = get(vo, '$store.state.kpText')\r\n return get(kpText, key, '')\r\n}\r\n\r\n\r\nfunction gv(o, k, cv = null) {\r\n let r = get(o, k, '')\r\n if (!isestr(r)) {\r\n let def = getKpText('empty')\r\n return def\r\n }\r\n if (isfun(cv)) {\r\n r = cv(r)\r\n }\r\n return r\r\n}\r\n\r\n\r\nfunction syncHeight() {\r\n\r\n //heightToolbar\r\n let heightToolbar = get(vo, '$store.state.heightToolbar')\r\n\r\n //heightAppEff\r\n let heightAppEff = window.innerHeight - heightToolbar\r\n\r\n //commit\r\n // vo.$store.commit(vo.$store.types.UpdateHeightToolbar, heightToolbar)\r\n vo.$store.commit(vo.$store.types.UpdateHeightApp, window.innerHeight)\r\n vo.$store.commit(vo.$store.types.UpdateHeightAppEff, heightAppEff)\r\n\r\n return ''\r\n}\r\n\r\n\r\nasync function waitData(t = 0) {\r\n\r\n //delay\r\n if (t > 0) {\r\n await delay(t)\r\n }\r\n\r\n //waitFun, 等待dsrl模組掛載\r\n await waitFun(() => {\r\n return iseobj(get(vo, '$dsrl'))\r\n })\r\n\r\n //等待前端第一次同步完畢數據\r\n await waitFun(() => {\r\n return get(vo, '$store.state.syncState')\r\n })\r\n\r\n}\r\n\r\n\r\nlet mUI = {\r\n\r\n setVo,\r\n\r\n updateConnState,\r\n updateLoading,\r\n updateViewState,\r\n updateUserToken,\r\n updateUserSelf,\r\n forceUpdate,\r\n\r\n setLang,\r\n getKpLang,\r\n getKpText,\r\n\r\n gv,\r\n syncHeight,\r\n\r\n waitData,\r\n\r\n}\r\n\r\n\r\nexport default mUI\r\n","import get from 'lodash-es/get.js'\nimport find from 'lodash-es/find.js'\nimport isestr from 'wsemi/src/isestr.mjs'\r\n\r\n\r\nfunction mDataSelectorSchema(ds, opt = {}) {\r\n\r\n function getTableInforBy(keyFind, valueFind, keyPick) {\r\n let r = find(ds, { [keyFind]: valueFind })\r\n if (!r) {\r\n r = ''\r\n }\r\n if (isestr(keyPick)) {\r\n r = get(r, keyPick, '')\r\n }\r\n return r\r\n }\r\n\r\n function getTableChtByKey(valueFind) {\r\n return getTableInforBy('keyTable', valueFind, 'tableNameCht')\r\n }\r\n\r\n return {\r\n getTableInforBy,\r\n getTableChtByKey,\r\n }\r\n}\r\n\r\n\r\nexport default mDataSelectorSchema\r\n","import Vue from 'vue'\r\nimport get from 'lodash-es/get'\r\nimport WServHapiClient from 'w-serv-hapi/src/WServHapiClient.mjs'\r\nimport WAlert from 'w-component-vue/src/components/WAlert.mjs'\r\nimport domMutation from 'w-component-vue/src/js/domMutation.mjs'\r\nimport domResize from 'w-component-vue/src/js/domResize.mjs'\r\nimport domDragDrop from 'w-component-vue/src/js/domDragDrop.mjs'\r\nimport App from './App.vue'\r\nimport store from './store/index.mjs'\r\nimport ui from './plugins/mUI.mjs'\r\nimport mDataSelectorSchema from './plugins/mDataSelectorSchema.mjs'\r\n// import mDataSupport from './plugins/mDataSupport.mjs'\r\nimport * as s from './plugins/mShare.mjs'\r\nimport ds from './schema/index.mjs'\r\n// console.log('ds', ds)\r\n\r\n\r\n//不提示vue產品\r\nVue.config.productionTip = false\r\n\r\n//$alert\r\nVue.prototype.$alert = function() {\r\n let [msg, type] = arguments\r\n console.log(msg, type)\r\n if (msg !== 'close') {\r\n WAlert(msg, type)\r\n }\r\n}\r\n\r\n//dssm\r\nlet dssm = mDataSelectorSchema(ds)\r\n\r\n// //dspt\r\n// let dspt = mDataSupport(Vue.prototype)\r\n\r\n//prototype\r\nVue.prototype.$ui = ui\r\nVue.prototype.$t = ui.getKpText\r\nVue.prototype.$s = s\r\nVue.prototype.$dssm = dssm\r\n// Vue.prototype.$dspt = dspt\r\n// Vue.prototype.$ds = ds\r\nVue.prototype.$dg = {}\r\n\r\n//directive\r\nVue.directive('domresize', domResize())\r\nVue.directive('dommutation', domMutation())\r\nVue.directive('domdragdrop', domDragDrop())\r\n\r\n//WServHapiClient\r\nlet bFirstSync = false\r\nWServHapiClient({\r\n showLog: false,\r\n getUrl: () => {\r\n return window.location.origin + window.location.pathname\r\n },\r\n useWaitToken: true,\r\n getToken: () => {\r\n let token = get(Vue.prototype, `$store.state.userToken`, '')\r\n // console.log('getToken', token)\r\n return token\r\n },\r\n getServerMethods: (_fapi) => {\r\n console.log('$fapi', _fapi)\r\n Vue.prototype.$fapi = _fapi\r\n _fapi.getWebInfor() //已有fapi時優先取得web資訊\r\n .then((wi) => {\r\n console.log('$fapi getWebInfor', wi)\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateWebInfor, wi)\r\n ui.setLang() //因更新webInfor得要重刷語系才能依照語言取得顯示文字\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n },\r\n recvData: (r) => {\r\n console.log('sync data', r.tableName, r.data)\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateTableData, r)\r\n },\r\n getAfterUpdateTableTags: (r) => {\r\n // console.log('getAfterUpdateTableTags', r, 'needToRefresh', JSON.stringify(r.oldTableTags) !== JSON.stringify(r.newTableTags))\r\n if (bFirstSync) {\r\n return\r\n }\r\n bFirstSync = true\r\n console.log('first-sync')\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateSyncState, true)\r\n },\r\n})\r\n\r\n//new\r\nnew Vue({\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkw_web_perm\"] = self[\"webpackChunkw_web_perm\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(2878); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","on","resize","ready","_e","style","concat","attrs","staticRenderFns","loading","dialogWidth","$event","resizeDialog","scopedSlots","_u","key","fn","barPadding","staticStyle","msg","_v","_s","barWidth","proxy","components","WDialog","WProgressBar","props","data","dialogWidthMax","mounted","vo","Vue","prototype","$dg","setLoadingWinBarMessage","setMessage","computed","b","get","methods","w","window","innerWidth","Math","max","min","component","bShow","$t","content","clickBtn","WConfirm","pm","showCheckYesNo","show","genPm","mode","resolve","reject","clickUnit","showCheckYes","connState","img_connection","img_logout","img_dissconnection","img_deny","heightToolbar","webLogo","webName","tgLangs","changeLang","model","value","tgLangSelect","callback","$$v","expression","syncState","panelHeight","drawerWidth","drawerWidthMin","drawerWidthMax","height","menus","menuActive","v","h","menu","menuKey","drawer","width","changeTargets","resizePanel","resizeHead","mdiGamepadCircle","isOperatable","updateIsOperatable","isModified","mdiCloudUploadOutline","saveRuleGroupsAndTargets","firstLoading","spacePading","ref","treeHeight","treeBlocks","clickOperateItem","dlm","getAllBlocks","targets","rs","map","s","sep","id","text","takeRight","dropRight","parentId","join","_objectSpread","idTemp","sortBy","getTreeBlocks","r","blocks","opt","bindKey","bindParent","bindChildren","saveExtProps","composeToTree","err","console","log","getUserGroups","user","ruleGroups","ruleGroupsIds","gs","each","g","find","iseobj","push","rules","JSON5","crules","getTargetsByGroup","group","cloneDeep","rulesDisplay","ks","k","def","krule","rule","getUserRules","ruleGroupsNames","haskey","kk","bOld","bNew","WIcon","WButtonChip","WSwitch","WTree","mdiStackOverflow","mdiAccountGroupOutline","mdiBallotRecountOutline","panelWidth","headHeight","listRename","size","snew","offsetWidth","offsetHeight","core","_core","apply","arguments","_asyncToGenerator","_regeneratorRuntime","_callee","toUnfolding","toLevel","_context","prev","next","$ui","updateLoading","$refs","wt","toggleItemsAll","delay","t0","stop","catch","$alert","type","finally","_core2","_callee3","fun","targetInd","_context3","_ref","_callee2","dataNew","_context2","genID","abrupt","rowItem","index","operateItem","opItem","modifyTreeBlocks","treeBlocksTemp","blocksNew","flattenTree","nk","nkParent","p","order","set","replaceObjKeys","obj","kpKeys","isChanged","_core3","_callee4","errTemp","kpDiffs","_context4","JSON","stringify","$fapi","save","delAll","changeGroups","saveGroups","resizeGroupInfor","groupsTrans","dragGroupsOrder","clickGroup","clickAddGroup","clickRemoveGroup","pickGroup","ruleGroupHeight","modifyGroup","changeGroup","showHead","editable","getName","updateProp","getDescription","mdiEyeCheck","treeToogleShowAndActive","mdiEyeOff","mdiEyedropper","mdiEyedropperOff","getShow","toogleShow","getActive","toogleActive","WButtonCircle","WCheckbox","WText","Number","default","Object","Boolean","dbc","debounce","groupTrans","defaultShow","defaultActive","isestr","setDefaultShow","setDefaultActive","getShowAndActive","item","getDefaultShowAndActive","toogleShowAndActive","cb","isobj","_defineProperty","emitGroupDebounce","children","emitGroup","$emit","WGroupTags","ruleGroup","mdiVectorPolylinePlus","mdiCheckboxMarkedCircle","groupInforHeight","pickGroupId","groups","orderMax","gn","insert","waitFun","bExit","t_confirmToDeletePermissionGroup","replace","del","groupsNew","gsn","isEqual","_core4","t_isPermissionGroupNameEmpty","cstr","description","changeUsers","mdiAccountPlusOutline","clickAddUser","usersGroupsHeight","_l","usersGroups","us","kus","getFrom","u","ku","getIsAdmin","mdiChessRook","getIsNotActive","clickEditUser","clickRemoveUser","WPanelScrolly","users","groupBy","keys","gsTemp","un","from","isAdmin","isActive","showVeUser","t_confirmToDeleteUser","WDrawer","WListVertical","LayoutContentTargets","LayoutContentGroups","LayoutContentUsers","ms","icon","clientWidth","clientHeight","WTextSelect","LayoutContent","mdiMenu","userName","beforeMount","setLang","viewState","c","document","title","lang","mdiAccountEdit","clickSave","clickClose","$set","email","userFroms","kg","kpugs","modifyUserRuleGroupsIds","mergedGroup","getCreateDay","WTextSuggest","mdiFileTree","froms","uniq","filter","isernot","timeCreate","timemsTZ2day","ruleGroupsId","calcMergedGroup","urs","trim","then","LoadingWinBar","CheckYesNo","CheckYes","LayoutState","Layout","VeUser","ll","loginSuccess","updateConnState","updateUserToken","token","updateUserSelf","loginError","urlRedirect","Error","isDev","setTimeout","location","href","setVo","wui","timeWaitAnimation","params","login","afterGetUser","afterLogin","syncHeight","UpdateWebInfor","UpdateLang","UpdateKpText","UpdateConnState","UpdateSyncState","UpdateLoading","UpdateViewState","UpdateTableData","UpdateData","UpdateHeightApp","UpdateHeightAppEff","UpdateHeightToolbar","UpdateMenu","UpdateUserToken","UpdateUserSelf","keyTable","tableNameCht","tableNameEng","settings","pk","userId","userIdUpdate","timeUpdate","funNew","ndata","length","undefined","o","dtmapping","now2strp","nowms2str","funTest","_ref2","_slicedToArray","dtpick","tab","cs","ds","build","useCreateStorage","state","hostname","origin","webInfor","leftDrawerWidth","heightApp","heightAppEff","userToken","keyLangs","systemMessage","eng","cht","ok","no","yes","empty","waitingData","isEditabled","saveChanges","close","cancel","processing","anUnexpectedErrorOccurred","unknow","username","noDescription","managementTargets","permissionGroups","userPermissions","userMsg1","userMsg2","userList","addUser","targetMsg1","targetMsg2","edit","changeName","insertBefore","insertChild","insertAfter","deleteTarget","newTarget","failedToChangePermissionGroups","failedToClearTargets","failedToSaveTargets","successfulToSaveTargets","groupMsg1","groupMsg2","addGroup","addPermissionGroup","groupMsgNoPick","newGroup","failedToAddPermissionGroup","successfulToAddPermissionGroup","confirmToDeletePermissionGroup","failedToDeletePermissionGroup","successfulToDeletePermissionGroup","failedToChangeOrderPermissionGroup","successfulToChangeOrderPermissionGroup","rememberToGivePermissionGroupName","isPermissionGroupNameEmpty","failedToSavePermissionGroup","successfulToSavePermissionGroup","editUser","belongToPermissionGroup","availableTarget","isAManager","remark","dayCreate","newUser","failedToAddUser","successfulToAddUser","confirmToDeleteUser","failedToDeleteUser","successfulToDeleteUser","cannotShowUserDetailsInViewMode","allDefaults","active","showChildren","hideChildren","activateChildren","deactivateChildren","isUsernameEmpty","failedToSaveUser","successfulToSaveUser","kpText","mutations","_mutations","types","tableName","path","userSelf","use","Vuex","st","getters","actions","strict","$store","vObj","commit","updateViewState","forceUpdate","broadcast","chs","$forceUpdate","$children","getKpLang","webDescription","kls","getKpText","gv","cv","isfun","innerHeight","waitData","_waitData","t","_args","mUI","mDataSelectorSchema","getTableInforBy","keyFind","valueFind","keyPick","getTableChtByKey","config","productionTip","_arguments","Array","slice","call","WAlert","dssm","ui","$s","$dssm","directive","domResize","domMutation","domDragDrop","bFirstSync","WServHapiClient","showLog","getUrl","pathname","useWaitToken","getToken","getServerMethods","_fapi","getWebInfor","wi","recvData","getAfterUpdateTableTags","store","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","n","getter","__esModule","d","a","definition","defineProperty","enumerable","globalThis","Function","e","prop","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}
|