w-web-perm 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +9 -4
  2. package/dist/css/app.dad1d596.css +1 -0
  3. package/dist/index.tmp +1 -1
  4. package/dist/js/app-legacy.4e39a313.js +2 -0
  5. package/dist/js/app-legacy.4e39a313.js.map +1 -0
  6. package/dist/js/app.4e39a313.js +2 -0
  7. package/dist/js/app.4e39a313.js.map +1 -0
  8. package/dist/js/chunk-vendors-legacy.827f1c54.js +13 -0
  9. package/dist/js/chunk-vendors-legacy.827f1c54.js.map +1 -0
  10. package/dist/js/chunk-vendors.827f1c54.js +13 -0
  11. package/dist/js/chunk-vendors.827f1c54.js.map +1 -0
  12. package/dist/w-web-perm.umd.js +2 -2
  13. package/dist/w-web-perm.umd.js.map +1 -1
  14. package/docs/WWebPerm.html +41 -5
  15. package/docs/WWebPerm.mjs.html +341 -25
  16. package/docs/index.html +1 -1
  17. package/{g.mDb.mjs → g.backupDb.mjs} +1 -1
  18. package/g.initialData.mjs +111 -0
  19. package/{g.mInitialTestData.mjs → g.initialTestData.mjs} +1 -1
  20. package/g.provideRuleGroups.mjs +56 -0
  21. package/g.provideTargets.mjs +57 -0
  22. package/g.provideUsers.mjs +45 -0
  23. package/package.json +2 -7
  24. package/public/index.html +1 -1
  25. package/server/WWebPerm.mjs +340 -24
  26. package/server/provideRuleGroups.mjs +65 -0
  27. package/server/provideTargets.mjs +59 -0
  28. package/server/provideUsers.mjs +68 -0
  29. package/src/App.vue +2 -10
  30. package/src/components/Common/CheckYes.vue +2 -2
  31. package/src/components/Common/CheckYesNo.vue +3 -3
  32. package/src/components/Common/LoadingWinBar.vue +1 -1
  33. package/src/components/LayoutContent.vue +37 -68
  34. package/src/components/LayoutContentGroups.vue +68 -62
  35. package/src/components/LayoutContentTargets.vue +56 -54
  36. package/src/components/LayoutContentUsers.vue +66 -61
  37. package/src/components/VeUser.vue +18 -26
  38. package/src/components/ruleGroup.vue +11 -11
  39. package/src/main.js +0 -2
  40. package/src/schema/tables/ruleGroups.mjs +11 -11
  41. package/src/schema/tables/targets.mjs +6 -9
  42. package/src/schema/tables/users.mjs +5 -5
  43. package/src/store/mutations.mjs +324 -69
  44. package/srv.mjs +10 -11
  45. package/tableTags-web-perm.json +1 -1
  46. package/vue.config.js +1 -1
  47. package/dist/css/app.79b4b59b.css +0 -1
  48. package/dist/css/chunk-vendors.99633b53.css +0 -5
  49. package/dist/js/app-legacy.48e6e535.js +0 -2
  50. package/dist/js/app-legacy.48e6e535.js.map +0 -1
  51. package/dist/js/app.7f6428ac.js +0 -2
  52. package/dist/js/app.7f6428ac.js.map +0 -1
  53. package/dist/js/chunk-vendors-legacy.7cb6c366.js +0 -13
  54. package/dist/js/chunk-vendors-legacy.7cb6c366.js.map +0 -1
  55. package/dist/js/chunk-vendors.7cb6c366.js +0 -13
  56. package/dist/js/chunk-vendors.7cb6c366.js.map +0 -1
  57. package/g.mInitialData.mjs +0 -147
  58. package/src/plugins/mVuetify.mjs +0 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"js/app-legacy.4e39a313.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/node module decorator","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.barWidth+_vm.barPadding*2},on:{\"update:show\":function($event){_vm.loading=$event}},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(_vm._s(_vm.$t('processing')))])]),_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=\"barWidth+barPadding*2\"\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>{{$t('processing')}}</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/get'\r\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 barPadding: 20,\r\n barWidth: 600,\r\n msg: '',\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 //console.log('computed loading')\r\n\r\n let vo = this\r\n\r\n return get(vo, `$store.state.loading`)\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 }\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=04946b80&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 \"04946b80\",\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/get'\r\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=68a6c545&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 \"68a6c545\",\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/get'\r\nimport each from 'lodash/each'\r\nimport map from 'lodash/map'\r\nimport find from 'lodash/find'\r\nimport join from 'lodash/join'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\nimport takeRight from 'lodash/takeRight'\r\nimport dropRight from 'lodash/dropRight'\r\nimport sortBy from 'lodash/sortBy'\r\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/get'\r\nimport set from 'lodash/set'\r\nimport each from 'lodash/each'\r\nimport map from 'lodash/map'\r\nimport size from 'lodash/size'\r\nimport dropRight from 'lodash/dropRight'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\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=d56fdb0c&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 \"d56fdb0c\",\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/get'\r\nimport set from 'lodash/set'\r\nimport each from 'lodash/each'\r\nimport size from 'lodash/size'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\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=7748cdfa&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 \"7748cdfa\",\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/get'\r\nimport each from 'lodash/each'\r\nimport map from 'lodash/map'\r\nimport find from 'lodash/find'\r\nimport size from 'lodash/size'\r\nimport max from 'lodash/max'\r\nimport sortBy from 'lodash/sortBy'\r\nimport isEqual from 'lodash/isEqual'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\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=3867ffc6&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 \"3867ffc6\",\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/get'\r\nimport each from 'lodash/each'\r\nimport keys from 'lodash/keys'\r\nimport sortBy from 'lodash/sortBy'\r\nimport find from 'lodash/find'\r\nimport size from 'lodash/size'\r\nimport groupBy from 'lodash/groupBy'\r\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=fffde796&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 \"fffde796\",\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/get'\r\nimport find from 'lodash/find'\r\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=39ed0727&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 \"39ed0727\",\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/get'\r\n// import cloneDeep from 'lodash/cloneDeep'\r\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=4f4ea7ec&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 \"4f4ea7ec\",\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/get'\r\nimport each from 'lodash/each'\r\nimport map from 'lodash/map'\r\nimport trim from 'lodash/trim'\r\nimport uniq from 'lodash/uniq'\r\nimport filter from 'lodash/filter'\r\nimport join from 'lodash/join'\r\nimport sortBy from 'lodash/sortBy'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\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=128ab15c&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 \"128ab15c\",\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/get'\nimport cloneDeep from 'lodash/cloneDeep'\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 vo.$ui.updateUserSelf(get(vo, `$store.state.userDef`))\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=4f3651fe\"\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=4f3651fe&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/map'\r\nimport keys from 'lodash/keys'\r\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/map'\r\nimport keys from 'lodash/keys'\r\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/map'\r\nimport keys from 'lodash/keys'\r\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/each'\r\nimport set from 'lodash/set'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\nimport * as types from './types.mjs'\r\nimport ds from '../schema/index.mjs'\r\n\r\n\r\n//userDef\r\nlet userDef = {\r\n id: '', //id-for-admin\r\n name: '', //測試者\r\n email: '', //admin@example.com\r\n isAdmin: 'n',\r\n // isActive: 'n',\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 userDef: cloneDeep(userDef),\r\n userSelf: cloneDeep(userDef),\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內為存取路徑, 需使用lodash的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/min'\r\nimport size from 'lodash/size'\r\nimport take from 'lodash/take'\r\nimport isEqual from 'lodash/isEqual'\r\nimport uniq from 'lodash/uniq'\r\nimport set from 'lodash/set'\r\nimport get from 'lodash/get'\r\nimport each from 'lodash/each'\r\nimport map from 'lodash/map'\r\nimport filter from 'lodash/filter'\r\nimport last from 'lodash/last'\r\nimport split from 'lodash/split'\r\nimport join from 'lodash/join'\r\nimport drop from 'lodash/drop'\r\nimport dropRight from 'lodash/dropRight'\r\nimport groupBy from 'lodash/groupBy'\r\nimport sortBy from 'lodash/sortBy'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\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/get'\r\nimport find from 'lodash/find'\r\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/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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\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};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\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__(463); })\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","barWidth","barPadding","$event","scopedSlots","_u","key","fn","staticStyle","msg","_v","_s","$t","proxy","components","WDialog","WProgressBar","props","data","mounted","vo","Vue","prototype","$dg","setLoadingWinBarMessage","setMessage","computed","get","methods","component","bShow","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","b","getUserRules","ruleGroupsNames","haskey","kk","bOld","bNew","WIcon","WButtonChip","WSwitch","WTree","mdiStackOverflow","mdiAccountGroupOutline","mdiBallotRecountOutline","panelWidth","headHeight","listRename","size","Math","max","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","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","userDef","state","hostname","window","location","origin","webInfor","leftDrawerWidth","heightApp","heightAppEff","userToken","userSelf","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","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","loaded","__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","nmd","paths","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","forEach","bind","__webpack_exports__"],"sourceRoot":""}