w-web-sso 1.0.11 → 1.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.tmp +1 -1
- package/dist/js/{app.eb86b892.js → app-legacy.d468ef7f.js} +2 -2
- package/dist/js/app-legacy.d468ef7f.js.map +1 -0
- package/dist/js/{app-legacy.eb86b892.js → app.d468ef7f.js} +2 -2
- package/dist/js/app.d468ef7f.js.map +1 -0
- package/dist/js/{chunk-vendors.37e522b4.js → chunk-vendors-legacy.f51f58bb.js} +4 -4
- package/dist/js/chunk-vendors-legacy.f51f58bb.js.map +1 -0
- package/dist/js/{chunk-vendors-legacy.37e522b4.js → chunk-vendors.f51f58bb.js} +4 -4
- package/dist/js/chunk-vendors.f51f58bb.js.map +1 -0
- package/dist/w-web-sso.umd.js +2 -2
- package/dist/w-web-sso.umd.js.map +1 -1
- package/docs/WWebSso.html +3 -3
- package/docs/WWebSso.mjs.html +20 -16
- package/docs/index.html +1 -1
- package/package.json +3 -3
- package/server/WWebSso.mjs +19 -15
- package/src/main.js +2 -3
- package/srv.mjs +8 -5
- package/dist/js/app-legacy.eb86b892.js.map +0 -1
- package/dist/js/app.eb86b892.js.map +0 -1
- package/dist/js/chunk-vendors-legacy.37e522b4.js.map +0 -1
- package/dist/js/chunk-vendors.37e522b4.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js/app-legacy.d468ef7f.js","mappings":"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","sources":["webpack://w-web-sso/./src/App.vue","webpack://w-web-sso/./src/components/Common/LoadingWinBar.vue","webpack://w-web-sso/src/components/Common/LoadingWinBar.vue","webpack://w-web-sso/./src/components/Common/LoadingWinBar.vue?20f2","webpack://w-web-sso/./src/components/Common/LoadingWinBar.vue?0bae","webpack://w-web-sso/./src/components/Common/CheckYesNo.vue","webpack://w-web-sso/src/components/Common/CheckYesNo.vue","webpack://w-web-sso/./src/components/Common/CheckYesNo.vue?0786","webpack://w-web-sso/./src/components/Common/CheckYesNo.vue?5d88","webpack://w-web-sso/./src/components/Common/CheckYes.vue","webpack://w-web-sso/src/components/Common/CheckYes.vue","webpack://w-web-sso/./src/components/Common/CheckYes.vue?6829","webpack://w-web-sso/./src/components/Common/CheckYes.vue?d003","webpack://w-web-sso/./src/components/PageLogin.vue","webpack://w-web-sso/src/components/PageLogin.vue","webpack://w-web-sso/./src/components/PageLogin.vue?33c0","webpack://w-web-sso/./src/components/PageLogin.vue?29ef","webpack://w-web-sso/./src/components/Layout.vue","webpack://w-web-sso/./src/components/LayoutContent.vue","webpack://w-web-sso/./src/components/LayoutContentInfor.vue","webpack://w-web-sso/src/components/LayoutContentInfor.vue","webpack://w-web-sso/./src/components/LayoutContentInfor.vue?f2b9","webpack://w-web-sso/./src/components/LayoutContentInfor.vue?2ff3","webpack://w-web-sso/./src/components/LayoutContentUsers.vue","webpack://w-web-sso/src/components/LayoutContentUsers.vue","webpack://w-web-sso/./src/components/LayoutContentUsers.vue?6395","webpack://w-web-sso/./src/components/LayoutContentUsers.vue?9c9b","webpack://w-web-sso/./src/components/LayoutContentSettings.vue","webpack://w-web-sso/src/components/LayoutContentSettings.vue","webpack://w-web-sso/./src/components/LayoutContentSettings.vue?1a88","webpack://w-web-sso/./src/components/LayoutContentSettings.vue?8698","webpack://w-web-sso/src/components/LayoutContent.vue","webpack://w-web-sso/./src/components/LayoutContent.vue?07f8","webpack://w-web-sso/./src/components/LayoutContent.vue?a8dd","webpack://w-web-sso/src/components/Layout.vue","webpack://w-web-sso/./src/components/Layout.vue?620d","webpack://w-web-sso/./src/components/Layout.vue?6d15","webpack://w-web-sso/src/App.vue","webpack://w-web-sso/./src/App.vue?c036","webpack://w-web-sso/./src/App.vue?0e40","webpack://w-web-sso/./src/store/types.mjs","webpack://w-web-sso/./src/schema/tables/tokens.mjs","webpack://w-web-sso/./src/schema/tables/users.mjs","webpack://w-web-sso/./src/schema/index.mjs","webpack://w-web-sso/./src/store/mutations.mjs","webpack://w-web-sso/./src/store/index.mjs","webpack://w-web-sso/./src/plugins/mLang.mjs","webpack://w-web-sso/./src/plugins/mUI.mjs","webpack://w-web-sso/./src/plugins/mDataSelectorSchema.mjs","webpack://w-web-sso/./src/plugins/mShare.mjs","webpack://w-web-sso/./src/main.js","webpack://w-web-sso/./node_modules/w-converhp/src/ lazy strict namespace object","webpack://w-web-sso/webpack/bootstrap","webpack://w-web-sso/webpack/runtime/chunk loaded","webpack://w-web-sso/webpack/runtime/compat get default export","webpack://w-web-sso/webpack/runtime/define property getters","webpack://w-web-sso/webpack/runtime/global","webpack://w-web-sso/webpack/runtime/hasOwnProperty shorthand","webpack://w-web-sso/webpack/runtime/make namespace object","webpack://w-web-sso/webpack/runtime/jsonp chunk loading","webpack://w-web-sso/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.autoLogining)?[(_vm.viewState==='login')?_c('PageLogin'):_vm._e(),(_vm.viewState==='backstage')?_c('Layout'):_vm._e()]:_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"0px\",\"left\":\"0px\",\"width\":\"100%\",\"height\":\"100%\",\"display\":\"flex\",\"align-items\":\"center\",\"justify-content\":\"center\"}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"30px\",\"height\":\"30px\",\"viewBox\":\"0 0 24 24\"}},[_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"1.5\",\"y\":\"1.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"id\":\"svgSpinnersBlocksScale0\",\"attributeName\":\"x\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"0;svgSpinnersBlocksScale1.end+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})]),_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"13.5\",\"y\":\"1.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"attributeName\":\"x\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.15s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})]),_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"13.5\",\"y\":\"13.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"attributeName\":\"x\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.3s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})]),_c('rect',{attrs:{\"width\":\"9\",\"height\":\"9\",\"x\":\"1.5\",\"y\":\"13.5\",\"fill\":\"currentColor\",\"rx\":\"1\"}},[_c('animate',{attrs:{\"id\":\"svgSpinnersBlocksScale1\",\"attributeName\":\"x\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"1.5;.5;1.5\"}}),_c('animate',{attrs:{\"attributeName\":\"y\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"13.5;12.5;13.5\"}}),_c('animate',{attrs:{\"attributeName\":\"width\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}}),_c('animate',{attrs:{\"attributeName\":\"height\",\"begin\":\"svgSpinnersBlocksScale0.begin+0.45s\",\"dur\":\"0.6s\",\"keyTimes\":\"0;.2;1\",\"values\":\"9;11;9\"}})])])]),_c('LoadingWinBar'),_c('CheckYesNo'),_c('CheckYes')],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('WDialog',{attrs:{\"show\":_vm.loading,\"maxWidth\":_vm.dialogWidth},on:{\"update:show\":function($event){_vm.loading=$event},\"resize\":_vm.resizeDialog},scopedSlots:_vm._u([{key:\"panel\",fn:function(){return [_c('div',{style:(`padding:${_vm.barPadding-5}px ${_vm.barPadding}px ${_vm.barPadding}px ${_vm.barPadding}px;`)},[_c('div',{staticStyle:{\"padding-bottom\":\"3px\",\"font-size\":\"0.9rem\",\"color\":\"#666\"}},[(_vm.msg!=='')?_c('span',[_vm._v(_vm._s(_vm.msg))]):_c('span',[_vm._v(_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=\"dialogWidth\"\r\n @resize=\"resizeDialog\"\r\n >\r\n\r\n <template v-slot:panel>\r\n\r\n <div :style=\"`padding:${barPadding-5}px ${barPadding}px ${barPadding}px ${barPadding}px;`\">\r\n\r\n\r\n <div style=\"padding-bottom:3px; font-size:0.9rem; color:#666;\">\r\n\r\n <span v-if=\"msg!==''\">{{msg}}</span>\r\n\r\n <span v-else>{{$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-es/get.js'\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\r\n dialogWidth: 0,\r\n dialogWidthMax: 600,\r\n\r\n barPadding: 20,\r\n barWidth: 0,\r\n msg: '',\r\n\r\n }\r\n },\r\n mounted: function() {\r\n //console.log('mounted')\r\n\r\n let vo = this\r\n\r\n //set\r\n Vue.prototype.$dg.setLoadingWinBarMessage = vo.setMessage\r\n\r\n },\r\n computed: {\r\n\r\n loading: function() {\r\n let vo = this\r\n let b = get(vo, `$store.state.loading`)\r\n // console.log('loading', b)\r\n return b\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n setMessage: function(msg) {\r\n this.msg = msg\r\n },\r\n\r\n resizeDialog: function(msg) {\r\n // console.log('methods resizeDialog', msg)\r\n\r\n let vo = this\r\n\r\n let w = window.innerWidth\r\n // console.log('window.innerWidth', window.innerWidth)\r\n\r\n //dialogWidth\r\n let dialogWidth = w - vo.barPadding * 2\r\n dialogWidth = Math.max(dialogWidth, 0)\r\n dialogWidth = Math.min(dialogWidth, vo.dialogWidthMax)\r\n vo.dialogWidth = dialogWidth\r\n // console.log('dialogWidth', dialogWidth)\r\n\r\n //barWidth\r\n let barWidth = dialogWidth - vo.barPadding * 2\r\n barWidth = Math.max(barWidth, 0)\r\n vo.barWidth = barWidth\r\n // console.log('barWidth', barWidth)\r\n\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingWinBar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LoadingWinBar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LoadingWinBar.vue?vue&type=template&id=9bcb4aee&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 \"9bcb4aee\",\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',{staticStyle:{\"position\":\"relative\",\"width\":\"100vw\",\"height\":\"100svh\"}},[_c('div',{style:(`\n position:absolute; top:0px; left:0px; width:100%; height:100%; display:flex; align-items:center; justify-content:center;\n background-image: linear-gradient(-225deg, ${_vm.c1} 0%, ${_vm.c2} 50%, ${_vm.c3} 100%);\n `)},[_c('div',{},[_c('div',{style:(`padding-top:${_vm.logoSize/2}px;`)}),_c('div',{style:(`\n position:relative;\n width:${_vm.contentWidth}px; padding:10px; border-radius:30px; background:${_vm.c4};\n box-shadow: rgb(0 0 0 / 2%) 2.76726px 2.76726px 2.21381px 0px, rgb(0 0 0 / 3%) 6.6501px 6.6501px 5.32008px 0px, rgb(0 0 0 / 4%) 12.5216px 12.5216px 10.0172px 0px, rgb(0 0 0 / 4%) 22.3363px 22.3363px 17.869px 0px, rgb(0 0 0 / 5%) 41.7776px 41.7776px 33.4221px 0px, rgb(0 0 0 / 7%) 100px 100px 80px 0px;\n `)},[_c('div',{style:(`position:absolute; top:0px; left:50%; transform:translateX(-50%) translateY(-50%); padding:15px 15px 10px 15px; border-radius:50%; background:${_vm.c5};`)},[_c('img',{attrs:{\"width\":_vm.logoSize,\"height\":_vm.logoSize,\"src\":_vm.webLogo}})]),_c('div',{style:(`padding:${_vm.logoSize/2+_vm.contentPadding}px ${_vm.contentPadding}px ${_vm.contentPadding}px ${_vm.contentPadding}px;`)},[_c('div',{staticStyle:{\"padding-bottom\":\"20px\",\"text-align\":\"center\",\"font-size\":\"1.3rem\"}},[_vm._v(\" \"+_vm._s(_vm.webName)+\" \")]),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"stretch\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"0px 10px\",\"background\":\"rgba(34, 44, 77, 0.9)\"}},[_c('WIcon',{attrs:{\"icon\":'mdi-account',\"color\":'#ddd',\"colorHover\":'#eee',\"size\":24}})],1),_c('div',{staticStyle:{\"width\":\"100%\",\"padding\":\"5px 10px\",\"background\":\"rgba(34, 44, 77, 0.8)\"}},[_c('div',{style:(`font-size:0.8rem; color:#eee;`)},[_vm._v(\" \"+_vm._s(_vm.$t('account'))+\" \")]),_c('WText',{attrs:{\"textColor\":'#fff',\"bottomLineBorderColor\":'#b6b6b6',\"bottomLineBorderColorHover\":'#ccc',\"bottomLineBorderColorFocus\":'#ddd'},on:{\"enter\":_vm.login},model:{value:(_vm.account),callback:function ($$v) {_vm.account=$$v},expression:\"account\"}})],1)]),_c('div',{staticStyle:{\"padding-top\":\"10px\"}}),_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"stretch\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"padding\":\"0px 10px\",\"background\":\"rgba(34, 44, 77, 0.9)\"}},[_c('WIcon',{attrs:{\"icon\":'mdi-lock',\"color\":'#ddd',\"colorHover\":'#eee',\"size\":24}})],1),_c('div',{staticStyle:{\"width\":\"100%\",\"padding\":\"5px 10px\",\"background\":\"rgba(34, 44, 77, 0.8)\"}},[_c('div',{style:(`font-size:0.8rem; color:#eee;`)},[_vm._v(\" \"+_vm._s(_vm.$t('password'))+\" \")]),_c('WText',{attrs:{\"textColor\":'#fff',\"bottomLineBorderColor\":'#b6b6b6',\"bottomLineBorderColorHover\":'#ccc',\"bottomLineBorderColorFocus\":'#ddd',\"rightIcon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off',\"rightIconColor\":'#ddd',\"rightIconColorHover\":'#eee',\"rightIconColorFocus\":'#ddd',\"rightIconTooltip\":_vm.showPassword ? _vm.$t('toggleToHidePassword') : _vm.$t('toggleToShowPassword'),\"password\":!_vm.showPassword},on:{\"click-right\":function($event){_vm.showPassword=!_vm.showPassword},\"enter\":_vm.login},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)]),_c('div',{staticStyle:{\"padding-top\":\"30px\"}}),_c('div',{staticStyle:{\"padding\":\"5px 0px\",\"text-align\":\"center\"}},[_c('WButtonChip',{style:(`opacity:${_vm.hasAcPw?1:0.5};`),attrs:{\"text\":_vm.$t('login'),\"textFontSize\":'1.0rem',\"paddingStyle\":{v:8,h:130},\"backgroundColor\":'rgba(255,255,255,0.5)',\"backgroundColorHover\":'rgba(255,255,255,0.7)',\"_shadow\":\"false\",\"editable\":_vm.hasAcPw},on:{\"click\":_vm.login}})],1)])])])]),_c('div',{staticStyle:{\"position\":\"absolute\",\"top\":\"10px\",\"right\":\"10px\"}},[_c('div',{staticStyle:{\"_white-space\":\"nowrap\"}},[_c('WTextSelect',{staticStyle:{\"width\":\"100px\"},attrs:{\"items\":_vm.keysLang,\"value\":_vm.lang},on:{\"input\":_vm.toggleLang},scopedSlots:_vm._u([{key:\"select\",fn:function(props){return [_vm._v(\" \"+_vm._s(_vm.getLangText(props.item))+\" \")]}},{key:\"item\",fn:function(props){return [_vm._v(\" \"+_vm._s(_vm.getLangText(props.item))+\" \")]}}])})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div style=\"position:relative; width:100vw; height:100svh;\">\r\n\r\n <div\r\n :style=\"`\r\n position:absolute; top:0px; left:0px; width:100%; height:100%; display:flex; align-items:center; justify-content:center;\r\n background-image: linear-gradient(-225deg, ${c1} 0%, ${c2} 50%, ${c3} 100%);\r\n `\"\r\n >\r\n\r\n <div style=\"\">\r\n\r\n <div :style=\"`padding-top:${logoSize/2}px;`\"></div>\r\n\r\n <div\r\n :style=\"`\r\n position:relative;\r\n width:${contentWidth}px; padding:10px; border-radius:30px; background:${c4};\r\n box-shadow: rgb(0 0 0 / 2%) 2.76726px 2.76726px 2.21381px 0px, rgb(0 0 0 / 3%) 6.6501px 6.6501px 5.32008px 0px, rgb(0 0 0 / 4%) 12.5216px 12.5216px 10.0172px 0px, rgb(0 0 0 / 4%) 22.3363px 22.3363px 17.869px 0px, rgb(0 0 0 / 5%) 41.7776px 41.7776px 33.4221px 0px, rgb(0 0 0 / 7%) 100px 100px 80px 0px;\r\n `\"\r\n >\r\n\r\n <div :style=\"`position:absolute; top:0px; left:50%; transform:translateX(-50%) translateY(-50%); padding:15px 15px 10px 15px; border-radius:50%; background:${c5};`\">\r\n <img :width=\"logoSize\" :height=\"logoSize\" :src=\"webLogo\">\r\n </div>\r\n\r\n <div :style=\"`padding:${logoSize/2+contentPadding}px ${contentPadding}px ${contentPadding}px ${contentPadding}px;`\">\r\n\r\n <div style=\"padding-bottom:20px; text-align:center; font-size:1.3rem;\">\r\n {{webName}}\r\n </div>\r\n\r\n <div style=\"display:flex; align-items:stretch;\">\r\n\r\n <div style=\"display:flex; align-items:center; padding:0px 10px; background:rgba(34, 44, 77, 0.9);\">\r\n <WIcon\r\n :icon=\"'mdi-account'\"\r\n :color=\"'#ddd'\"\r\n :colorHover=\"'#eee'\"\r\n :size=\"24\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"width:100%; padding:5px 10px; background:rgba(34, 44, 77, 0.8);\">\r\n\r\n <div :style=\"`font-size:0.8rem; color:#eee;`\">\r\n {{$t('account')}}\r\n </div>\r\n\r\n <WText\r\n :textColor=\"'#fff'\"\r\n :bottomLineBorderColor=\"'#b6b6b6'\"\r\n :bottomLineBorderColorHover=\"'#ccc'\"\r\n :bottomLineBorderColorFocus=\"'#ddd'\"\r\n v-model=\"account\"\r\n @enter=\"login\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:10px\"></div>\r\n\r\n <div style=\"display:flex; align-items:stretch;\">\r\n\r\n <div style=\"display:flex; align-items:center; padding:0px 10px; background:rgba(34, 44, 77, 0.9);\">\r\n <WIcon\r\n :icon=\"'mdi-lock'\"\r\n :color=\"'#ddd'\"\r\n :colorHover=\"'#eee'\"\r\n :size=\"24\"\r\n ></WIcon>\r\n </div>\r\n\r\n <div style=\"width:100%; padding:5px 10px; background:rgba(34, 44, 77, 0.8);\">\r\n\r\n <div :style=\"`font-size:0.8rem; color:#eee;`\">\r\n {{$t('password')}}\r\n </div>\r\n\r\n <WText\r\n :textColor=\"'#fff'\"\r\n :bottomLineBorderColor=\"'#b6b6b6'\"\r\n :bottomLineBorderColorHover=\"'#ccc'\"\r\n :bottomLineBorderColorFocus=\"'#ddd'\"\r\n :rightIcon=\"showPassword ? 'mdi-eye' : 'mdi-eye-off'\"\r\n :rightIconColor=\"'#ddd'\"\r\n :rightIconColorHover=\"'#eee'\"\r\n :rightIconColorFocus=\"'#ddd'\"\r\n :rightIconTooltip=\"showPassword ? $t('toggleToHidePassword') : $t('toggleToShowPassword')\"\r\n :password=\"!showPassword\"\r\n v-model=\"password\"\r\n @click-right=\"showPassword=!showPassword\"\r\n @enter=\"login\"\r\n ></WText>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:30px\"></div>\r\n\r\n <div style=\"padding:5px 0px; text-align:center;\">\r\n <WButtonChip\r\n :style=\"`opacity:${hasAcPw?1:0.5};`\"\r\n :text=\"$t('login')\"\r\n :textFontSize=\"'1.0rem'\"\r\n :paddingStyle=\"{v:8,h:130}\"\r\n :backgroundColor=\"'rgba(255,255,255,0.5)'\"\r\n :backgroundColorHover=\"'rgba(255,255,255,0.7)'\"\r\n _shadow=\"false\"\r\n :editable=\"hasAcPw\"\r\n @click=\"login\"\r\n ></WButtonChip>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"position:absolute; top:10px; right:10px;\">\r\n <div style=\"_white-space:nowrap\">\r\n <WTextSelect\r\n style=\"width:100px;\"\r\n :items=\"keysLang\"\r\n :value=\"lang\"\r\n @input=\"toggleLang\"\r\n >\r\n <template v-slot:select=\"props\">\r\n {{getLangText(props.item)}}\r\n </template>\r\n <template v-slot:item=\"props\">\r\n {{getLangText(props.item)}}\r\n </template>\r\n </WTextSelect>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash-es/get.js'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport isDev from 'wsemi/src/isDev.mjs'\r\nimport delay from 'wsemi/src/delay.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WText from 'w-component-vue/src/components/WText.vue'\r\nimport WTextSelect from 'w-component-vue/src/components/WTextSelect.vue'\r\nimport WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WText,\r\n WTextSelect,\r\n WButtonChip,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n firstSetting: true,\r\n\r\n showLangSelect: false,\r\n\r\n keysLang: [\r\n 'eng',\r\n 'cht',\r\n ],\r\n kpLangSelect: {\r\n 'eng': 'English',\r\n 'cht': '中文',\r\n },\r\n\r\n logoSize: 120,\r\n\r\n contentWidth: 380,\r\n contentPadding: 30,\r\n\r\n account: '',\r\n\r\n showPassword: false,\r\n password: '',\r\n\r\n //申請註冊使用者 bbb\r\n\r\n }\r\n },\r\n computed: {\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 let vo = this\r\n return get(vo, `$store.state.webInfor.webLogo`, '')\r\n },\r\n\r\n webBackgoundGradientColors: function() {\r\n let vo = this\r\n return get(vo, `$store.state.webInfor.webBackgoundGradientColors`, [])\r\n },\r\n\r\n c1: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.0', '#fff')\r\n return c\r\n },\r\n\r\n c2: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.1', '#fff')\r\n return c\r\n },\r\n\r\n c3: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.2', '#fff')\r\n return c\r\n },\r\n\r\n c4: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.3', '#fff')\r\n return c\r\n },\r\n\r\n c5: function() {\r\n let vo = this\r\n let c = get(vo, 'webBackgoundGradientColors.4', '#fff')\r\n return c\r\n },\r\n\r\n webKey: function() {\r\n let vo = this\r\n return get(vo, '$store.state.webInfor.webKey', '')\r\n },\r\n\r\n lang: function() {\r\n let vo = this\r\n return get(vo, '$store.state.lang', '')\r\n },\r\n\r\n hasAcPw: function() {\r\n let vo = this\r\n return isestr(vo.account) && isestr(vo.password)\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n getLangText: function(lang) {\r\n // console.log('methods getLangText', lang)\r\n\r\n let vo = this\r\n\r\n let t = get(vo, `kpLangSelect.${lang}`, '')\r\n\r\n return t\r\n },\r\n\r\n toggleLang: function(lang) {\r\n // console.log('methods toggleLang', lang)\r\n\r\n let vo = this\r\n\r\n //setLang\r\n vo.$ui.setLang(lang, 'toggle')\r\n\r\n },\r\n\r\n login: function() {\r\n // console.log('methods login')\r\n\r\n let vo = this\r\n\r\n //view\r\n let view = vo.$ui.getUrlView()\r\n\r\n //login\r\n vo.$ui.login(vo.account, vo.password, { useRedir: view === 'login' })\r\n .then(() => {\r\n\r\n //提交變更viewState前往指定功能頁\r\n vo.$ui.updateViewState(view)\r\n console.log(`login, goto view[${view}] page`)\r\n\r\n })\r\n .catch((err) => {\r\n\r\n //錯誤發生時提交變更viewState返回登入頁\r\n vo.$ui.updateViewState('login')\r\n console.log(`login err[${err}], goto view['login'] page`)\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!./PageLogin.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!./PageLogin.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PageLogin.vue?vue&type=template&id=d77e5118&scoped=true\"\nimport script from \"./PageLogin.vue?vue&type=script&lang=js\"\nexport * from \"./PageLogin.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 \"d77e5118\",\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\":\"100svh\",\"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;`)},[_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.keysLang,\"value\":_vm.lang},on:{\"input\":_vm.toggleLang},scopedSlots:_vm._u([{key:\"select\",fn:function(props){return [_vm._v(\" \"+_vm._s(_vm.getLangText(props.item))+\" \")]}},{key:\"item\",fn:function(props){return [_vm._v(\" \"+_vm._s(_vm.getLangText(props.item))+\" \")]}}])})],1),_c('div',{staticStyle:{\"padding-right\":\"10px\"}},[_c('WPopup',{attrs:{\"isolated\":true,\"_show\":\"\",\"_hide\":\"\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"white-space\":\"nowrap\",\"user-select\":\"none\",\"cursor\":\"pointer\"}},[_c('div',{staticStyle:{\"padding-top\":\"2px\"}},[_c('WIcon',{attrs:{\"icon\":_vm.mdiAccountCircleOutline,\"size\":20}})],1),_c('div',{staticStyle:{\"padding-left\":\"5px\",\"font-size\":\"0.85rem\"}},[_vm._v(\" \"+_vm._s(_vm.userName)+\" \")])])]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\",\"white-space\":\"nowrap\",\"user-select\":\"none\",\"cursor\":\"pointer\"},on:{\"click\":_vm.logOut}},[_c('div',{staticStyle:{\"padding-top\":\"2px\"}},[_c('WIcon',{attrs:{\"icon\":_vm.mdiLogoutVariant,\"size\":18}})],1),_c('div',{staticStyle:{\"padding-left\":\"5px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('logout'))+\" \")])])])]},proxy:true}])})],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,\"autoSwitchToHide\":true,\"autoSwitchToShow\":true,\"autoSwitchToFloat\":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:2px; right:4px;`)},[_c('WButtonCircle',{attrs:{\"paddingStyle\":{h:2,v:2},\"icon\":_vm.mdiArrowLeftBoldHexagonOutline,\"iconSize\":20,\"backgroundColor\":'rgba(255,255,255,0.1)',\"backgroundColorHover\":'rgba(255,255,255,0.4)',\"backgroundColorFocus\":'rgba(255,255,255,0.7)',\"borderColor\":'transparent',\"borderColorHover\":'transparent',\"borderColorFocus\":'transparent',\"_tooltip\":\"$t('menuTreeHide')\",\"shadow\":false},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==='mmUserInfor')?_c('LayoutContentInfor'):_vm._e(),(_vm.menuKey==='mmUsersList')?_c('LayoutContentUsers'):_vm._e(),(_vm.menuKey==='mmSettings')?_c('LayoutContentSettings'):_vm._e()],(!_vm.drawer)?_c('div',{style:(`position:absolute; top:3px; left:5px;`)},[_c('WButtonCircle',{attrs:{\"paddingStyle\":{h:2,v:2},\"icon\":_vm.mdiArrowRightBoldHexagonOutline,\"iconSize\":20,\"backgroundColor\":'rgba(255,255,255,0.1)',\"backgroundColorHover\":'rgba(255,255,255,0.4)',\"backgroundColorFocus\":'rgba(255,255,255,0.7)',\"borderColor\":'transparent',\"borderColorHover\":'transparent',\"borderColorFocus\":'transparent',\"_tooltip\":\"$t('menuTreeShow')\",\"shadow\":false},on:{\"click\":function($event){_vm.drawer=true}}})],1):_vm._e()],2)]}}],null,false,665702839),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%\"},on:{\"domresize\":_vm.resizePanel}},[(!_vm.isLoading && !_vm.errMsg)?_c('div',{staticStyle:{\"height\":\"100%\",\"background\":\"#fff\",\"overflow-y\":\"auto\"}},[_c('div',{staticStyle:{\"padding\":\"20px\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"padding\":\"0px\",\"border\":\"1px solid #ddd\",\"border-radius\":\"50%\"}},[_c('svg',{attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"120\",\"height\":\"120\",\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"fill\":\"currentColor\",\"d\":\"M6.196 17.485q1.275-.918 2.706-1.451Q10.332 15.5 12 15.5t3.098.534t2.706 1.45q.99-1.025 1.593-2.42Q20 13.667 20 12q0-3.325-2.337-5.663T12 4T6.337 6.338T4 12q0 1.667.603 3.064q.603 1.396 1.593 2.42m5.805-4.984q-1.264 0-2.133-.868T9 9.501t.868-2.133T12 6.5t2.132.868T15 9.5t-.868 2.132t-2.131.868M12 21q-1.883 0-3.525-.701t-2.858-1.916t-1.916-2.858T3 12t.701-3.525t1.916-2.858q1.216-1.215 2.858-1.916T12 3t3.525.701t2.858 1.916t1.916 2.858T21 12t-.701 3.525t-1.916 2.858q-1.216 1.215-2.858 1.916T12 21m0-1q1.383 0 2.721-.484q1.338-.483 2.313-1.324q-.974-.783-2.255-1.237T12 16.5t-2.789.445t-2.246 1.247q.975.84 2.314 1.324T12 20m0-8.5q.842 0 1.421-.579T14 9.5t-.579-1.421T12 7.5t-1.421.579T10 9.5t.579 1.421T12 11.5m0 6.75\"}})])]),_c('div',{staticStyle:{\"padding-left\":\"20px\"}},[_c('div',{staticStyle:{\"font-size\":\"3.0rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'name'))+\" \")]),_c('div',{staticStyle:{\"font-size\":\"1.5rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'account'))+\" \")])])]),_c('div',{staticStyle:{\"padding-top\":\"20px\"}}),_c('div',{},[_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('account')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'account'))+\" \")])]},proxy:true}],null,false,148492502)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('description')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'description'))+\" \")])]},proxy:true}],null,false,1009840657)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('email')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'email'))+\" \")])]},proxy:true}],null,false,16056411)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('from')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'from'))+\" \")])]},proxy:true}],null,false,958058977)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('isAdmin')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'isAdmin','')==='y'?_vm.$t('isAdminY'):_vm.$t('isAdminN'))+\" \")])]},proxy:true}],null,false,1266723288)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('isVerified')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.isVerified?_vm.$t('isVerifiedY'):_vm.$t('isVerifiedN'))+\" \")])]},proxy:true}],null,false,533929442)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('timeVerified')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'timeVerified'))+\" \")])]},proxy:true}],null,false,1188770180)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('isExpired')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.isExpired?_vm.$t('isExpiredY'):_vm.$t('isExpiredN'))+\" \")])]},proxy:true}],null,false,967424019)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('timeExpired')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'timeExpired'))+\" \")])]},proxy:true}],null,false,1288958773)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('isBlocked')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.isBlocked?_vm.$t('isBlockedY'):_vm.$t('isBlockedN'))+\" \")])]},proxy:true}],null,false,831769548)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('timeBlocked')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'timeBlocked'))+\" \")])]},proxy:true}],null,false,849975018)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('redir')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'redir'))+\" \")])]},proxy:true}],null,false,405815327)}),_c('WPanelLabelItem',{staticStyle:{\"padding\":\"5px 0px\"},attrs:{\"label\":_vm.$t('isActive')},scopedSlots:_vm._u([{key:\"item\",fn:function(){return [_c('div',{staticStyle:{\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.user,'isActive','')==='y'?_vm.$t('isActiveY'):_vm.$t('isActiveN'))+\" \")])]},proxy:true}],null,false,2004945851)})],1)])]):[(_vm.isLoading)?_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")]):_vm._e(),(_vm.errMsg)?_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.errMsg)+\" \")]):_vm._e()]],2)\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 >\r\n\r\n <div\r\n style=\"height:100%; background:#fff; overflow-y:auto;\"\r\n v-if=\"!isLoading && !errMsg\"\r\n >\r\n\r\n <div style=\"padding:20px;\">\r\n\r\n <div style=\"display:flex; align-items:center;\">\r\n\r\n <div style=\"display:inline-block; padding:0px; border:1px solid #ddd; border-radius:50%;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"120\" height=\"120\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" d=\"M6.196 17.485q1.275-.918 2.706-1.451Q10.332 15.5 12 15.5t3.098.534t2.706 1.45q.99-1.025 1.593-2.42Q20 13.667 20 12q0-3.325-2.337-5.663T12 4T6.337 6.338T4 12q0 1.667.603 3.064q.603 1.396 1.593 2.42m5.805-4.984q-1.264 0-2.133-.868T9 9.501t.868-2.133T12 6.5t2.132.868T15 9.5t-.868 2.132t-2.131.868M12 21q-1.883 0-3.525-.701t-2.858-1.916t-1.916-2.858T3 12t.701-3.525t1.916-2.858q1.216-1.215 2.858-1.916T12 3t3.525.701t2.858 1.916t1.916 2.858T21 12t-.701 3.525t-1.916 2.858q-1.216 1.215-2.858 1.916T12 21m0-1q1.383 0 2.721-.484q1.338-.483 2.313-1.324q-.974-.783-2.255-1.237T12 16.5t-2.789.445t-2.246 1.247q.975.84 2.314 1.324T12 20m0-8.5q.842 0 1.421-.579T14 9.5t-.579-1.421T12 7.5t-1.421.579T10 9.5t.579 1.421T12 11.5m0 6.75\"/></svg>\r\n </div>\r\n\r\n <div style=\"padding-left:20px;\">\r\n\r\n <div style=\"font-size:3.0rem;\">\r\n {{$ui.gv(user,'name')}}\r\n </div>\r\n\r\n <div style=\"font-size:1.5rem;\">\r\n {{$ui.gv(user,'account')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding-top:20px;\"></div>\r\n\r\n <div style=\"\">\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('account')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'account')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('description')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'description')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('email')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'email')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('from')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'from')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('isAdmin')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'isAdmin','')==='y'?$t('isAdminY'):$t('isAdminN')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('isVerified')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{isVerified?$t('isVerifiedY'):$t('isVerifiedN')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('timeVerified')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'timeVerified')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('isExpired')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{isExpired?$t('isExpiredY'):$t('isExpiredN')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('timeExpired')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'timeExpired')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('isBlocked')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{isBlocked?$t('isBlockedY'):$t('isBlockedN')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('timeBlocked')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'timeBlocked')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('redir')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'redir')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n <WPanelLabelItem\r\n style=\"padding:5px 0px;\"\r\n :label=\"$t('isActive')\"\r\n >\r\n <template v-slot:item>\r\n\r\n <div style=\"font-size:0.9rem;\">\r\n {{$ui.gv(user,'isActive','')==='y'?$t('isActiveY'):$t('isActiveN')}}\r\n </div>\r\n\r\n <!-- <WText\r\n :value=\"'Adelina'\"\r\n :text-font-size=\"'0.85rem'\"\r\n ></WText> -->\r\n </template>\r\n </WPanelLabelItem>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n <template v-else>\r\n <div\r\n style=\"padding:10px 15px; font-size:0.8rem;\"\r\n v-if=\"isLoading\"\r\n >\r\n {{$t('waitingData')}}\r\n </div>\r\n <div\r\n style=\"padding:10px 15px; font-size:0.8rem;\"\r\n v-if=\"errMsg\"\r\n >\r\n {{errMsg}}\r\n </div>\r\n </template>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiAccountCircleOutline, mdiAccountPlusOutline, mdiCheckboxMarkedCircle, mdiChessRook } from '@mdi/js/mdi.js'\r\nimport ot from 'dayjs'\r\nimport get from 'lodash-es/get.js'\r\nimport each from 'lodash-es/each.js'\r\nimport keys from 'lodash-es/keys.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport find from 'lodash-es/find.js'\r\nimport size from 'lodash-es/size.js'\r\nimport groupBy from 'lodash-es/groupBy.js'\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 istimeTZ from 'wsemi/src/istimeTZ.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 WText from 'w-component-vue/src/components/WText.vue'\r\nimport WPanelLabelItem from 'w-component-vue/src/components/WPanelLabelItem.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 WText,\r\n WPanelLabelItem,\r\n WPanelScrolly,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiAccountCircleOutline,\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 isLoading: true,\r\n errMsg: '',\r\n isOperatable: true,\r\n // isModified: false,\r\n\r\n user: null,\r\n\r\n }\r\n },\r\n mounted: function() {\r\n let vo = this\r\n\r\n //isLoading, errMsg\r\n vo.isLoading = true\r\n vo.errMsg = ''\r\n\r\n //token\r\n let token = vo.userToken\r\n // console.log('token', token)\r\n\r\n //getUserByToken\r\n vo.$fapi.getUserByToken(token)\r\n .then((res) => {\r\n // console.log(res)\r\n vo.user = res\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n vo.errMsg = vo.$t('getDataError')\r\n })\r\n .finally(() => {\r\n vo.isLoading = false\r\n })\r\n\r\n },\r\n computed: {\r\n\r\n userToken: function() {\r\n let vo = this\r\n return get(vo, `$store.state.userToken`)\r\n },\r\n\r\n isVerified: function() {\r\n let vo = this\r\n\r\n //timeVerified\r\n let timeVerified = get(vo, 'user.timeVerified', '')\r\n // console.log('timeVerified', timeVerified)\r\n\r\n //check\r\n if (!istimeTZ(timeVerified)) {\r\n return true\r\n }\r\n\r\n //tt\r\n let tt = ot(timeVerified, 'YYYY-MM-DDTHH:mm:ssZ')\r\n // console.log('tt', tt)\r\n\r\n //tn\r\n let tn = ot()\r\n\r\n //tds\r\n let tds = tt.diff(tn, 'second')\r\n // console.log('tds', tds)\r\n\r\n //check\r\n if (tds > 0) {\r\n return false\r\n }\r\n\r\n return true\r\n },\r\n\r\n isExpired: function() {\r\n let vo = this\r\n\r\n //timeExpired\r\n let timeExpired = get(vo, 'user.timeExpired', '')\r\n // console.log('timeExpired', timeExpired)\r\n\r\n //check\r\n if (!istimeTZ(timeExpired)) {\r\n return true\r\n }\r\n\r\n //tt\r\n let tt = ot(timeExpired, 'YYYY-MM-DDTHH:mm:ssZ')\r\n // console.log('tt', tt)\r\n\r\n //tn\r\n let tn = ot()\r\n\r\n //tds\r\n let tds = tt.diff(tn, 'second')\r\n // console.log('tds', tds)\r\n\r\n //check\r\n if (tds > 0) {\r\n return false\r\n }\r\n\r\n return true\r\n },\r\n\r\n isBlocked: function() {\r\n let vo = this\r\n\r\n //timeBlocked\r\n let timeBlocked = get(vo, 'user.timeBlocked', '')\r\n // console.log('timeBlocked', timeBlocked)\r\n\r\n //check\r\n if (!istimeTZ(timeBlocked)) {\r\n return true\r\n }\r\n\r\n //tt\r\n let tt = ot(timeBlocked, 'YYYY-MM-DDTHH:mm:ssZ')\r\n // console.log('tt', tt)\r\n\r\n //tn\r\n let tn = ot()\r\n\r\n //tds\r\n let tds = tt.diff(tn, 'second')\r\n // console.log('tds', tds)\r\n\r\n //check\r\n if (tds > 0) {\r\n return false\r\n }\r\n\r\n return true\r\n },\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 // changeParams: function() {\r\n // // console.log('computed changeParams')\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) //bbb 待改為後端fun\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!./LayoutContentInfor.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!./LayoutContentInfor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContentInfor.vue?vue&type=template&id=30f24a84&scoped=true\"\nimport script from \"./LayoutContentInfor.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContentInfor.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 \"30f24a84\",\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:{\"changeParams\":_vm.changeParams},on:{\"domresize\":_vm.resizePanel}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeHead}},[_c('div',{staticStyle:{\"padding\":\"10px 10px 10px 20px\"}},[_c('div',{style:(`display:flex; align-items:center; padding:${_vm.drawer?'5px':'5px 5px 5px 20px'};`)},[_c('WIcon',{attrs:{\"icon\":_vm.mdiAccountGroupOutline,\"color\":'#000',\"size\":32}}),_c('div',{staticStyle:{\"padding-left\":\"12px\"}},[_c('div',{staticStyle:{\"font-size\":\"1.4rem\",\"color\":\"#000\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mmUsersList'))+\" \")]),_c('div',{staticStyle:{\"padding-top\":\"2px\",\"font-size\":\"0.8rem\",\"color\":\"#666\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mmUsersListMsg'))+\" \")])])],1)]),_c('div',{staticStyle:{\"padding\":\"5px\",\"border-top\":\"1px solid #ddd\",\"display\":\"flex\",\"align-items\":\"center\"},attrs:{\"_v-if\":\"showIsEditable || isEditable\"}},[(_vm.showIsEditable)?[_c('div',{staticStyle:{\"padding\":\"6px 0px 4px 4px\"}},[_c('WSwitch',{attrs:{\"text\":_vm.$t('modeEdit')},model:{value:(_vm.isEditable),callback:function ($$v) {_vm.isEditable=$$v},expression:\"isEditable\"}})],1),_c('div',{staticStyle:{\"padding-left\":\"10px\"}})]:_vm._e(),(true)?[_c('WPopup',{attrs:{\"isolated\":true,\"_show\":\"\",\"_hide\":\"\"},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){return [_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:6,h:6},\"tooltip\":_vm.$t('showTabCols'),\"icon\":_vm.mdiTableHeadersEye,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#f2f2f2',\"_textColor\":\"'#eee'\",\"_textColorHover\":\"'#fff'\",\"iconColor\":'#444',\"iconColorHover\":'#222',\"shadow\":false,\"_click\":\"\"}})]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticStyle:{\"padding\":\"10px 0px 10px 0px\"}},[_c('div',{staticStyle:{\"padding\":\"7px 10px\",\"font-size\":\"0.85rem\",\"color\":\"#222\",\"background\":\"#f2f2f2\"}},[_vm._v(\" \"+_vm._s(_vm.$t('showTabCols'))+\" \")]),_c('div',{staticStyle:{\"padding\":\"7px 9px 0px 7px\"}},[_c('WInputCheckbox',{attrs:{\"items\":_vm.tabKeysPick},on:{\"input\":_vm.toggleTabKeys},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('div',{staticStyle:{\"padding-left\":\"3px\",\"display\":\"flex\",\"align-items\":\"center\",\"font-size\":\"0.85rem\",\"height\":\"24px\",\"cursor\":\"pointer\"}},[_vm._v(\" \"+_vm._s(_vm.getHead(props.item.data))+\" \")])]}}],null,false,286315898),model:{value:(_vm.tabKeysShow),callback:function ($$v) {_vm.tabKeysShow=$$v},expression:\"tabKeysShow\"}})],1)])]},proxy:true}],null,false,1031542656)}),_c('div',{staticStyle:{\"padding-left\":\"4px\"}})]:_vm._e(),(_vm.isEditable)?[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:6,h:6},\"tooltip\":_vm.$t('userAdd'),\"icon\":_vm.mdiPlus,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#f2f2f2',\"_textColor\":\"'#eee'\",\"_textColorHover\":\"'#fff'\",\"iconColor\":'#444',\"iconColorHover\":'#222',\"shadow\":false},on:{\"click\":_vm.addItem}}),_c('div',{staticStyle:{\"padding-left\":\"4px\"}})]:_vm._e(),(_vm.isEditable && _vm.hasItemCheckOne)?[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:6,h:6},\"tooltip\":_vm.$t('userCopy'),\"icon\":_vm.mdiContentCopy,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#f2f2f2',\"_textColor\":\"'#eee'\",\"_textColorHover\":\"'#fff'\",\"iconColor\":'#444',\"iconColorHover\":'#222',\"shadow\":false},on:{\"click\":_vm.copyItem}}),_c('div',{staticStyle:{\"padding-left\":\"4px\"}})]:_vm._e(),(_vm.isEditable && _vm.hasItemsCheck)?[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:6,h:6},\"tooltip\":_vm.$t('userDeleteCheckUsers'),\"icon\":_vm.mdiTrashCanOutline,\"backgroundColor\":'#fff',\"backgroundColorHover\":'#f2f2f2',\"_textColor\":\"'#eee'\",\"_textColorHover\":\"'#fff'\",\"iconColor\":'#444',\"iconColorHover\":'#222',\"shadow\":false},on:{\"click\":_vm.deleteItemsCheck}}),_c('div',{staticStyle:{\"padding-left\":\"4px\"}})]:_vm._e(),(_vm.isEditable && _vm.isModified)?[_c('WButtonCircle',{attrs:{\"paddingStyle\":{v:6,h:6},\"tooltip\":_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',\"shadow\":false},on:{\"click\":_vm.saveUsers}}),_c('div',{staticStyle:{\"padding-left\":\"4px\"}})]:_vm._e()],2)]),(!_vm.isLoading)?[(_vm.items)?[_c('WAggridVueDyn',{ref:\"rftable\",style:(`width:100%;`),attrs:{\"height\":_vm.contentHeight,\"opt\":_vm.opt}})]:_vm._e()]:_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])],2)\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 :changeParams=\"changeParams\"\r\n >\r\n\r\n <div\r\n style=\"background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n >\r\n\r\n <!-- 標題區 -->\r\n <div style=\"padding:10px 10px 10px 20px;\">\r\n <div :style=\"`display:flex; align-items:center; padding:${drawer?'5px':'5px 5px 5px 20px'};`\">\r\n\r\n <WIcon\r\n :icon=\"mdiAccountGroupOutline\"\r\n :color=\"'#000'\"\r\n :size=\"32\"\r\n ></WIcon>\r\n\r\n <div style=\"padding-left:12px;\">\r\n\r\n <div style=\"font-size:1.4rem; color:#000;\">\r\n {{$t('mmUsersList')}}\r\n </div>\r\n\r\n <div style=\"padding-top:2px; font-size:0.8rem; color:#666;\">\r\n {{$t('mmUsersListMsg')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <!-- 功能區 -->\r\n <div\r\n style=\"padding:5px; border-top:1px solid #ddd; display:flex; align-items:center;\"\r\n _v-if=\"showIsEditable || isEditable\"\r\n >\r\n\r\n <template v-if=\"showIsEditable\">\r\n\r\n <div style=\"padding:6px 0px 4px 4px;\">\r\n <WSwitch\r\n v-model=\"isEditable\"\r\n :text=\"$t('modeEdit')\"\r\n ></WSwitch>\r\n </div>\r\n\r\n <div style=\"padding-left:10px;\"></div>\r\n\r\n </template>\r\n\r\n <template v-if=\"true\">\r\n\r\n <WPopup\r\n :isolated=\"true\"\r\n _show=\"\"\r\n _hide=\"\"\r\n >\r\n <template v-slot:trigger>\r\n <WButtonCircle\r\n :paddingStyle=\"{v:6,h:6}\"\r\n :tooltip=\"$t('showTabCols')\"\r\n :icon=\"mdiTableHeadersEye\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#f2f2f2'\"\r\n _textColor=\"'#eee'\"\r\n _textColorHover=\"'#fff'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#222'\"\r\n :shadow=\"false\"\r\n _click=\"\"\r\n ></WButtonCircle>\r\n </template>\r\n\r\n <template v-slot:content>\r\n <div style=\"padding:10px 0px 10px 0px;\">\r\n\r\n <div style=\"padding:7px 10px; font-size:0.85rem; color:#222; background:#f2f2f2;\">\r\n {{$t('showTabCols')}}\r\n </div>\r\n\r\n <div style=\"padding:7px 9px 0px 7px;\">\r\n <WInputCheckbox\r\n :items=\"tabKeysPick\"\r\n v-model=\"tabKeysShow\"\r\n @input=\"toggleTabKeys\"\r\n >\r\n <template v-slot=\"props\">\r\n <div style=\"padding-left:3px; display:flex; align-items:center; font-size:0.85rem; height:24px; cursor:pointer;\">\r\n {{getHead(props.item.data)}}\r\n </div>\r\n </template>\r\n </WInputCheckbox>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n </WPopup>\r\n\r\n <div style=\"padding-left:4px;\"></div>\r\n\r\n </template>\r\n\r\n <template v-if=\"isEditable\">\r\n\r\n <WButtonCircle\r\n :paddingStyle=\"{v:6,h:6}\"\r\n :tooltip=\"$t('userAdd')\"\r\n :icon=\"mdiPlus\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#f2f2f2'\"\r\n _textColor=\"'#eee'\"\r\n _textColorHover=\"'#fff'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#222'\"\r\n :shadow=\"false\"\r\n @click=\"addItem\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:4px;\"></div>\r\n\r\n </template>\r\n\r\n <template v-if=\"isEditable && hasItemCheckOne\">\r\n\r\n <WButtonCircle\r\n :paddingStyle=\"{v:6,h:6}\"\r\n :tooltip=\"$t('userCopy')\"\r\n :icon=\"mdiContentCopy\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#f2f2f2'\"\r\n _textColor=\"'#eee'\"\r\n _textColorHover=\"'#fff'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#222'\"\r\n :shadow=\"false\"\r\n @click=\"copyItem\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:4px;\"></div>\r\n\r\n </template>\r\n\r\n <template v-if=\"isEditable && hasItemsCheck\">\r\n\r\n <WButtonCircle\r\n :paddingStyle=\"{v:6,h:6}\"\r\n :tooltip=\"$t('userDeleteCheckUsers')\"\r\n :icon=\"mdiTrashCanOutline\"\r\n :backgroundColor=\"'#fff'\"\r\n :backgroundColorHover=\"'#f2f2f2'\"\r\n _textColor=\"'#eee'\"\r\n _textColorHover=\"'#fff'\"\r\n :iconColor=\"'#444'\"\r\n :iconColorHover=\"'#222'\"\r\n :shadow=\"false\"\r\n @click=\"deleteItemsCheck\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:4px;\"></div>\r\n\r\n </template>\r\n\r\n <template v-if=\"isEditable && isModified\">\r\n\r\n <WButtonCircle\r\n :paddingStyle=\"{v:6,h:6}\"\r\n :tooltip=\"$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 :shadow=\"false\"\r\n @click=\"saveUsers\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:4px;\"></div>\r\n\r\n </template>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <template\r\n v-if=\"!isLoading\"\r\n >\r\n\r\n <template v-if=\"items\">\r\n <WAggridVueDyn\r\n ref=\"rftable\"\r\n :style=\"`width:100%;`\"\r\n :height=\"contentHeight\"\r\n :opt=\"opt\"\r\n >\r\n </WAggridVueDyn>\r\n </template>\r\n\r\n </template>\r\n\r\n <div\r\n style=\"padding:10px 15px; font-size:0.8rem;\"\r\n v-else\r\n >\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiAccountGroupOutline, mdiVectorPolylinePlus, mdiCheckboxMarkedCircle, mdiCloudUploadOutline, mdiTrashCanOutline, mdiTableHeadersEye, mdiPlus, mdiPencilOutline, mdiContentCopy } from '@mdi/js/mdi.js'\r\nimport JSON5 from 'json5'\r\nimport ot from 'dayjs'\r\nimport get from 'lodash-es/get.js'\r\nimport set from 'lodash-es/set.js'\r\nimport each from 'lodash-es/each.js'\r\nimport size from 'lodash-es/size.js'\r\nimport filter from 'lodash-es/filter.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport cloneDeep from 'lodash-es/cloneDeep.js'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isnum from 'wsemi/src/isnum.mjs'\r\nimport istime from 'wsemi/src/istime.mjs'\r\nimport istimeTZ from 'wsemi/src/istimeTZ.mjs'\r\nimport isEmail from 'wsemi/src/isEmail.mjs'\r\nimport cdbl from 'wsemi/src/cdbl.mjs'\r\nimport cstr from 'wsemi/src/cstr.mjs'\r\nimport arrPull from 'wsemi/src/arrPull.mjs'\r\nimport domShowInputDatatime from 'wsemi/src/domShowInputDatatime.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport WPopup from 'w-component-vue/src/components/WPopup.vue'\r\nimport WInputCheckbox from 'w-component-vue/src/components/WInputCheckbox.vue'\r\nimport WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WSwitch,\r\n WButtonCircle,\r\n WPopup,\r\n WInputCheckbox,\r\n WAggridVueDyn,\r\n },\r\n props: {\r\n drawer: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n mdiAccountGroupOutline,\r\n mdiVectorPolylinePlus,\r\n mdiCheckboxMarkedCircle,\r\n mdiCloudUploadOutline,\r\n mdiTrashCanOutline,\r\n mdiTableHeadersEye,\r\n mdiPlus,\r\n mdiPencilOutline,\r\n mdiContentCopy,\r\n\r\n ttt: '',\r\n\r\n panelWidth: 100,\r\n panelHeight: 100,\r\n headHeight: 100,\r\n\r\n isLoading: true,\r\n firstSetting: true,\r\n showIsEditable: false,\r\n isEditable: false,\r\n isModified: false,\r\n\r\n tabKeys: [\r\n 'id',\r\n 'order',\r\n 'account',\r\n 'password', //後端api不提供, 前端自動渲染提供變更密碼用\r\n 'name',\r\n 'email',\r\n 'description',\r\n 'from',\r\n 'redir',\r\n 'isAdmin',\r\n 'isVerified',\r\n 'timeVerified',\r\n 'timeExpired',\r\n 'timeBlocked',\r\n 'userId',\r\n 'timeCreate',\r\n 'userIdUpdate',\r\n 'timeUpdate',\r\n 'isActive',\r\n ],\r\n tabKeysPick: [\r\n 'account',\r\n 'password', //後端api不提供, 前端自動渲染提供變更密碼用\r\n 'name',\r\n 'email',\r\n 'description',\r\n 'from',\r\n 'redir',\r\n 'isAdmin',\r\n 'isVerified',\r\n 'timeVerified',\r\n 'timeExpired',\r\n 'timeBlocked',\r\n 'userId',\r\n 'timeCreate',\r\n 'userIdUpdate',\r\n 'timeUpdate',\r\n 'isActive',\r\n ],\r\n tabKeysShow: [\r\n 'account',\r\n 'password', //後端api不提供, 前端自動渲染提供變更密碼用\r\n 'name',\r\n 'email',\r\n 'description',\r\n 'from',\r\n 'redir',\r\n 'isAdmin',\r\n 'isVerified',\r\n 'timeVerified',\r\n 'timeExpired',\r\n 'timeBlocked',\r\n 'userId',\r\n 'timeCreate',\r\n 'userIdUpdate',\r\n 'timeUpdate',\r\n 'isActive',\r\n ],\r\n\r\n widthUsersName: null,\r\n widthUsersEmail: null,\r\n widthUsersDescription: null,\r\n\r\n users: [],\r\n items: [],\r\n itemsCheck: [],\r\n opt: null,\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 //註冊至$dg供使用\r\n vo.$dg.toggleItemIsAdminById = vo.toggleItemIsAdminById\r\n vo.$dg.toggleItemIsVerifiedById = vo.toggleItemIsVerifiedById\r\n vo.$dg.toggleItemIsActiveById = vo.toggleItemIsActiveById\r\n vo.$dg.modifyItemPasswordById = vo.modifyItemPasswordById\r\n vo.$dg.modifyItemTimeVerifiedById = vo.modifyItemTimeVerifiedById\r\n vo.$dg.modifyItemTimeExpiredById = vo.modifyItemTimeExpiredById\r\n vo.$dg.modifyItemTimeBlockedById = vo.modifyItemTimeBlockedById\r\n\r\n //firstSetting\r\n if (vo.firstSetting) {\r\n // console.log('webInfor', vo.webInfor)\r\n\r\n let showModeEditUsers = get(vo, 'webInfor.showModeEditUsers', '')\r\n vo.showIsEditable = showModeEditUsers === 'y'\r\n let modeEditUsers = get(vo, 'webInfor.modeEditUsers', '')\r\n vo.isEditable = modeEditUsers === 'y'\r\n\r\n vo.widthUsersName = get(vo, 'webInfor.widthUsersName', '')\r\n vo.widthUsersEmail = get(vo, 'webInfor.widthUsersEmail', '')\r\n vo.widthUsersDescription = get(vo, 'webInfor.widthUsersDescription', '')\r\n\r\n vo.firstSetting = false\r\n }\r\n\r\n //token\r\n let token = vo.userToken\r\n // console.log('token', token)\r\n\r\n //getUsersList\r\n vo.$fapi.getUsersList(token)\r\n .then((res) => {\r\n // console.log(res)\r\n res = sortBy(res, 'order')\r\n vo.users = res\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n vo.errMsg = vo.$t('getDataError')\r\n })\r\n .finally(() => {\r\n vo.isLoading = false\r\n })\r\n\r\n },\r\n computed: {\r\n\r\n webInfor: function() {\r\n let wi = get(this, `$store.state.webInfor`)\r\n return wi\r\n },\r\n\r\n userToken: function() {\r\n let vo = this\r\n return get(vo, `$store.state.userToken`)\r\n },\r\n\r\n changeParams: function() {\r\n // console.log('computed changeParams')\r\n\r\n let vo = this\r\n\r\n //trigger\r\n let isEditable = vo.isEditable\r\n\r\n //items\r\n let items = cloneDeep(vo.users)\r\n\r\n //save\r\n vo.items = items\r\n\r\n //genOpt\r\n vo.genOpt({ isEditable })\r\n\r\n //isLoading\r\n vo.isLoading = false\r\n\r\n return ''\r\n },\r\n\r\n contentHeight: function() {\r\n let vo = this\r\n\r\n //h\r\n let h = vo.panelHeight - vo.headHeight\r\n h = Math.max(h, 0)\r\n\r\n return h\r\n },\r\n\r\n hasItemsCheck: function() {\r\n let vo = this\r\n\r\n //h\r\n let b = size(vo.itemsCheck) > 0\r\n\r\n return b\r\n },\r\n\r\n hasItemCheckOne: function() {\r\n let vo = this\r\n\r\n //h\r\n let b = size(vo.itemsCheck) === 1\r\n\r\n return b\r\n },\r\n\r\n errItemsByAccount: function() {\r\n let vo = this\r\n\r\n //rows\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //kpErr\r\n let kpErr = {}\r\n let kpAccount = {}\r\n each(rows, (v, k) => {\r\n\r\n //account\r\n let account = get(v, 'account', '')\r\n\r\n //check\r\n if (!isestr(account)) {\r\n\r\n //kpErr\r\n kpErr[account] = vo.$t(`userAccountEmpty`)\r\n\r\n return true //跳出換下一個\r\n }\r\n\r\n //check\r\n if (haskey(kpAccount, account)) {\r\n\r\n //kpErr\r\n kpErr[account] = vo.$t(`userAccountDuplicate`)\r\n\r\n return true //跳出換下一個\r\n }\r\n\r\n //kpAccount\r\n kpAccount[account] = true\r\n\r\n })\r\n\r\n return kpErr\r\n },\r\n\r\n errItemsByEmail: function() {\r\n let vo = this\r\n\r\n //rows\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //kpErr\r\n let kpErr = {}\r\n let kpEmail = {}\r\n each(rows, (v, k) => {\r\n\r\n //email\r\n let email = get(v, 'email', '')\r\n\r\n //check\r\n if (!isestr(email)) {\r\n\r\n //kpErr\r\n kpErr[email] = vo.$t(`userEmailEmpty`)\r\n\r\n return true //跳出換下一個\r\n }\r\n\r\n //check\r\n if (!isEmail(email)) {\r\n\r\n //kpErr\r\n kpErr[email] = vo.$t(`userEmailError`)\r\n\r\n return true //跳出換下一個\r\n }\r\n\r\n //check\r\n if (haskey(kpEmail, email)) {\r\n\r\n //kpErr\r\n kpErr[email] = vo.$t(`userEmailDuplicate`)\r\n\r\n return true //跳出換下一個\r\n }\r\n\r\n //kpEmail\r\n kpEmail[email] = true\r\n\r\n })\r\n\r\n return kpErr\r\n },\r\n\r\n errItemsByRedir: function() {\r\n let vo = this\r\n\r\n //rows\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //kpErr\r\n let kpErr = {}\r\n each(rows, (v, k) => {\r\n\r\n //redir\r\n let redir = get(v, 'redir', '')\r\n\r\n //check\r\n if (!isestr(redir)) {\r\n\r\n //kpErr\r\n kpErr[redir] = vo.$t(`userRedirEmpty`)\r\n\r\n return true //跳出換下一個\r\n }\r\n\r\n })\r\n\r\n return kpErr\r\n },\r\n\r\n isError: function() {\r\n let vo = this\r\n\r\n let c = ''\r\n let b = false\r\n b = iseobj(vo.errItemsByAccount)\r\n if (b) {\r\n c = vo.$t('errInAccounts')\r\n return c\r\n }\r\n b = iseobj(vo.errItemsByEmail)\r\n if (b) {\r\n c = vo.$t('errInEmails')\r\n return c\r\n }\r\n b = iseobj(vo.errItemsByRedir)\r\n if (b) {\r\n c = vo.$t('errInRedir')\r\n return c\r\n }\r\n\r\n return ''\r\n },\r\n\r\n kpHead: function() {\r\n let vo = this\r\n\r\n let kp = {\r\n 'id': vo.$t('id'),\r\n 'order': vo.$t('order'),\r\n 'account': vo.$t('account'),\r\n 'password': vo.$t('password'),\r\n 'name': vo.$t('name'),\r\n 'email': vo.$t('email'),\r\n 'description': vo.$t('description'),\r\n 'from': vo.$t('from'),\r\n 'redir': vo.$t('redir'),\r\n 'isAdmin': vo.$t('isAdmin'),\r\n 'isVerified': vo.$t('isVerified'),\r\n 'timeVerified': vo.$t('timeVerified'),\r\n 'timeExpired': vo.$t('timeExpired'),\r\n 'timeBlocked': vo.$t('timeBlocked'),\r\n 'userId': vo.$t('userId'),\r\n 'timeCreate': vo.$t('timeCreate'),\r\n 'userIdUpdate': vo.$t('userIdUpdate'),\r\n 'timeUpdate': vo.$t('timeUpdate'),\r\n 'isActive': vo.$t('isActive'),\r\n }\r\n\r\n return kp\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 getHead: function(key) {\r\n // console.log('methods getHead', key)\r\n\r\n let vo = this\r\n\r\n let head = get(vo, `kpHead.${key}`, '')\r\n\r\n return head\r\n },\r\n\r\n genOpt: function() {\r\n // console.log('methods genOpt')\r\n\r\n let vo = this\r\n\r\n //default\r\n vo.itemsCheck = []\r\n\r\n //opt\r\n let opt = null\r\n if (size(vo.items) > 0) {\r\n\r\n //ks\r\n let ks = vo.tabKeys\r\n // console.log('ks', ks)\r\n\r\n //kpHead\r\n let kpHead = vo.kpHead\r\n\r\n //kpCellEditable, kpRowDrag, kpHeadCheckBox\r\n let kpCellEditable = {}\r\n let kpRowDrag = {}\r\n let kpHeadCheckBox = {}\r\n if (vo.isEditable) {\r\n kpCellEditable = {\r\n 'account': true,\r\n 'name': true,\r\n 'email': true,\r\n 'description': true,\r\n 'from': true,\r\n 'redir': true,\r\n }\r\n kpRowDrag = {\r\n 'account': true,\r\n }\r\n kpHeadCheckBox = {\r\n 'account': true,\r\n }\r\n }\r\n\r\n //kpHeadHide\r\n let kpHeadHide = {\r\n 'id': true,\r\n 'order': true,\r\n }\r\n if (true) {\r\n let tabKeysHide = arrPull(vo.tabKeysPick, vo.tabKeysShow)\r\n each(tabKeysHide, (k) => {\r\n kpHeadHide[k] = true\r\n })\r\n }\r\n\r\n //opt\r\n opt = {\r\n language: vo.$t('aggridLanguage'),\r\n rows: vo.items,\r\n keys: ks,\r\n kpHead,\r\n // autoFitColumn: true,\r\n defCellEditable: false, //vo.isEditable\r\n defHeadFilter: true,\r\n defCellAlignH: 'left',\r\n kpHeadHide,\r\n kpHeadFixLeft: {\r\n 'account': true,\r\n },\r\n defHeadMinWidth: 150,\r\n kpHeadWidth: {\r\n // 'name': isnum(vo.widthUsersName) ? cdbl(vo.widthUsersName) : 200,\r\n // 'email': isnum(vo.widthUsersEmail) ? cdbl(vo.widthUsersEmail) : 300,\r\n // 'description': isnum(vo.widthUsersDescription) ? cdbl(vo.widthUsersDescription) : 300,\r\n // 'cgrups': 300,\r\n // 'isAdmin': 100,\r\n // 'isActive': 100,\r\n // 'timeCreate': 220,\r\n // 'timeUpdate': 220,\r\n },\r\n kpHeadFilterType: {\r\n 'id': 'text',\r\n 'order': 'text',\r\n 'account': 'text',\r\n 'password': 'text',\r\n 'name': 'text',\r\n 'email': 'text',\r\n 'description': 'text',\r\n 'from': 'text',\r\n 'redir': 'text',\r\n 'isAdmin': 'text',\r\n 'isVerified': 'text',\r\n 'timeVerified': 'text',\r\n 'timeExpired': 'text',\r\n 'timeBlocked': 'text',\r\n 'userId': 'text',\r\n 'timeCreate': 'text',\r\n 'userIdUpdate': 'text',\r\n 'timeUpdate': 'text',\r\n 'isActive': 'text',\r\n },\r\n kpCellEditable,\r\n kpRowDrag,\r\n kpHeadCheckBox,\r\n kpHeadFilter: {\r\n 'password': false,\r\n },\r\n kpHeadSort: {\r\n 'password': false,\r\n },\r\n kpHeadFocusHighlight: { //雖然效果不完全, 但因按鈕與cell有padding可被點擊, 故還是需要開啟\r\n 'password': false,\r\n 'timeVerified': false,\r\n 'timeExpired': false,\r\n 'timeBlocked': false,\r\n },\r\n kpCellRender: {\r\n 'account': (v) => {\r\n // console.log('kpCellRender account', v)\r\n\r\n //err\r\n let err = get(vo.errItemsByAccount, v, '')\r\n // console.log(v, err)\r\n\r\n //check\r\n if (isestr(err)) {\r\n v = `\r\n <span title=\"${err}\">\r\n <span style=\"color:#F57C00;\">${cstr(v)}</span>\r\n <img style=\"vertical-align:sub; width:16px; height:16px;\" src=\"${vo.$ui.getIcon('warning')}\" />\r\n </span>\r\n `\r\n }\r\n\r\n return v\r\n },\r\n 'password': (v, k, r) => {\r\n // console.log('kpCellRender password', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n // `\r\n let t = `\r\n <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemPasswordById('${id}')\" ${vo.isEditable ? '' : 'disabled'} >${vo.$t('userResetPassword')}</button>\r\n </div>\r\n `\r\n\r\n return t\r\n },\r\n 'email': (v) => {\r\n // console.log('kpCellRender email', v)\r\n\r\n //err\r\n let err = get(vo.errItemsByEmail, v, '')\r\n // console.log(v, err)\r\n\r\n //check\r\n if (isestr(err)) {\r\n v = `\r\n <span title=\"${err}\">\r\n <span style=\"color:#F57C00;\">${cstr(v)}</span>\r\n <img style=\"vertical-align:sub; width:16px; height:16px;\" src=\"${vo.$ui.getIcon('warning')}\" />\r\n </span>\r\n `\r\n }\r\n\r\n return v\r\n },\r\n 'redir': (v) => {\r\n // console.log('kpCellRender redir', v)\r\n\r\n //err\r\n let err = get(vo.errItemsByRedir, v, '')\r\n // console.log(v, err)\r\n\r\n //check\r\n if (isestr(err)) {\r\n v = `\r\n <span title=\"${err}\">\r\n <span style=\"color:#F57C00;\">${cstr(v)}</span>\r\n <img style=\"vertical-align:sub; width:16px; height:16px;\" src=\"${vo.$ui.getIcon('warning')}\" />\r\n </span>\r\n `\r\n }\r\n\r\n return v\r\n },\r\n 'isAdmin': (v, k, r) => {\r\n // console.log('kpCellRender isAdmin', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n let t = `\r\n <input type=\"checkbox\" ${v === 'y' ? 'checked' : ''} onclick=\"$vo.$dg.toggleItemIsAdminById('${id}')\" ${vo.isEditable ? '' : 'disabled'} />\r\n `\r\n\r\n return t\r\n },\r\n 'isVerified': (v, k, r) => {\r\n // console.log('kpCellRender isAdmin', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n let t = `\r\n <input type=\"checkbox\" ${v === 'y' ? 'checked' : ''} onclick=\"$vo.$dg.toggleItemIsVerifiedById('${id}')\" ${vo.isEditable ? '' : 'disabled'} />\r\n `\r\n\r\n return t\r\n },\r\n 'isActive': (v, k, r) => {\r\n // console.log('kpCellRender isActive', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n let t = `\r\n <input type=\"checkbox\" ${v === 'y' ? 'checked' : ''} onclick=\"$vo.$dg.toggleItemIsActiveById('${id}')\" ${vo.isEditable ? '' : 'disabled'} />\r\n `\r\n\r\n return t\r\n },\r\n 'timeVerified': (v, k, r) => {\r\n // console.log('kpCellRender timeVerified', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n //vv, vm\r\n let vv = ''\r\n let vm = vo.$t('userTimeEmpty')\r\n if (istimeTZ(v)) { //原始數據為timeTZ格式\r\n let vt = ot(v)\r\n vv = vt.format('YYYY-MM-DDTHH:mm')\r\n vm = vt.format('YYYY-MM-DD HH:mm')\r\n }\r\n // console.log('vv', vv)\r\n // console.log('vm', vm)\r\n\r\n // `\r\n let t = `\r\n <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemTimeVerifiedById(this,'${vv}','${id}')\" ${vo.isEditable ? '' : 'disabled'}>${vm}</button>\r\n </div>\r\n `\r\n\r\n return t\r\n },\r\n 'timeExpired': (v, k, r) => {\r\n // console.log('kpCellRender timeExpired', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n //vv, vm\r\n let vv = ''\r\n let vm = vo.$t('userTimeEmpty')\r\n if (istimeTZ(v)) { //原始數據為timeTZ格式\r\n let vt = ot(v)\r\n vv = vt.format('YYYY-MM-DDTHH:mm')\r\n vm = vt.format('YYYY-MM-DD HH:mm')\r\n }\r\n // console.log('vv', vv)\r\n // console.log('vm', vm)\r\n\r\n // `\r\n let t = `\r\n <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemTimeExpiredById(this,'${vv}','${id}')\" ${vo.isEditable ? '' : 'disabled'}>${vm}</button>\r\n </div>\r\n `\r\n\r\n return t\r\n },\r\n 'timeBlocked': (v, k, r) => {\r\n // console.log('kpCellRender timeBlocked', v, k, r)\r\n\r\n //id\r\n let id = get(r, 'id', '')\r\n // console.log('id', id, k, r)\r\n\r\n //vv, vm\r\n let vv = ''\r\n let vm = vo.$t('userTimeEmpty')\r\n if (istimeTZ(v)) { //原始數據為timeTZ格式\r\n let vt = ot(v)\r\n vv = vt.format('YYYY-MM-DDTHH:mm')\r\n vm = vt.format('YYYY-MM-DD HH:mm')\r\n }\r\n // console.log('vv', vv)\r\n // console.log('vm', vm)\r\n\r\n // `\r\n let t = `\r\n <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemTimeBlockedById(this,'${vv}','${id}')\" ${vo.isEditable ? '' : 'disabled'}>${vm}</button>\r\n </div>\r\n `\r\n\r\n return t\r\n },\r\n },\r\n rowsChange: (rs) => {\r\n // console.log('rowsChange', rs)\r\n // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n rowChecked: (rs) => {\r\n // console.log('rowChecked', rs)\r\n // console.log('rowChecked cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))\r\n\r\n //save itemsCheck\r\n vo.itemsCheck = cloneDeep(rs)\r\n\r\n },\r\n }\r\n // console.log('opt', opt)\r\n\r\n }\r\n\r\n //save\r\n vo.opt = opt\r\n\r\n },\r\n\r\n refresh: function() {\r\n let vo = this\r\n\r\n //cmp\r\n let cmp = get(vo, '$refs.rftable.$refs.$self')\r\n // console.log('cmp', cmp)\r\n\r\n //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據\r\n cmp.refresh()\r\n\r\n },\r\n\r\n toggleTabKeys: function() {\r\n let vo = this\r\n\r\n //cmp\r\n let cmp = get(vo, '$refs.rftable.$refs.$self')\r\n // console.log('cmp', cmp)\r\n\r\n //showKeys\r\n cmp.showKeys(vo.tabKeysShow)\r\n // console.log('tabKeysShow', vo.tabKeysShow)\r\n\r\n },\r\n\r\n modifyItemPasswordById: function(id) {\r\n // console.log('modifyItemPasswordById', id)\r\n\r\n let vo = this\r\n\r\n vo.$alert(`尚待開發`, { type: 'error' }) //bbb\r\n\r\n // //k\r\n // let k = 'password'\r\n\r\n // //check\r\n // if (!isestr(id)) {\r\n // vo.$alert(`${vo.$t('userEditNoUserId')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //find\r\n // let r = null\r\n // let kr = null\r\n // each(rows, (v, k) => {\r\n // if (get(v, 'id', '') === id) {\r\n // r = v\r\n // kr = k\r\n // return false //跳出\r\n // }\r\n // })\r\n\r\n // //check\r\n // if (!iseobj(r)) {\r\n // vo.$alert(`${vo.$t('userEditNoUserData')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //v\r\n // let _v = get(r, k, 'n')\r\n // let v = _v === 'y' ? 'n' : 'y'\r\n // // console.log(k, v)\r\n\r\n // //set\r\n // set(vo, `opt.rows[${kr}].${k}`, v)\r\n // // console.log('vo.opt.rows[kr]', cloneDeep(vo.opt.rows[kr]))\r\n\r\n // //refresh\r\n // vo.refresh()\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n },\r\n\r\n toggleItemByKeyAndId: function(key, id) {\r\n // console.log('toggleItemByKeyAndId', key, id)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!isestr(id)) {\r\n vo.$alert(`${vo.$t('userEditNoUserId')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //rows\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //find\r\n let r = null\r\n let kr = null\r\n each(rows, (v, k) => {\r\n if (get(v, 'id', '') === id) {\r\n r = v\r\n kr = k\r\n return false //跳出\r\n }\r\n })\r\n\r\n //check\r\n if (!iseobj(r)) {\r\n vo.$alert(`${vo.$t('userEditNoUserData')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //v\r\n let _v = get(r, key, 'n')\r\n let v = _v === 'y' ? 'n' : 'y'\r\n // console.log(key, v)\r\n\r\n //set\r\n set(vo, `opt.rows[${kr}].${key}`, v)\r\n // console.log('vo.opt.rows[kr]', cloneDeep(vo.opt.rows[kr]))\r\n\r\n //refresh\r\n vo.refresh()\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n\r\n toggleItemIsAdminById: function(id) {\r\n // console.log('toggleItemIsAdminById', id)\r\n\r\n let vo = this\r\n\r\n //toggleItemByKeyAndId\r\n vo.toggleItemByKeyAndId('isAdmin', id)\r\n\r\n },\r\n\r\n toggleItemIsVerifiedById: function(id) {\r\n // console.log('toggleItemIsVerifiedById', id)\r\n\r\n let vo = this\r\n\r\n //toggleItemByKeyAndId\r\n vo.toggleItemByKeyAndId('isVerified', id)\r\n\r\n },\r\n\r\n toggleItemIsActiveById: function(id) {\r\n // console.log('toggleItemIsActiveById', id)\r\n\r\n let vo = this\r\n\r\n //toggleItemByKeyAndId\r\n vo.toggleItemByKeyAndId('isActive', id)\r\n\r\n },\r\n\r\n modifyItemByKeyAndId: function(key, ele, t, id) {\r\n // console.log('modifyItemTimeVerifiedById', ele, t, id)\r\n\r\n let vo = this\r\n\r\n //check\r\n if (!isestr(id)) {\r\n vo.$alert(`${vo.$t('userEditNoUserId')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //timePrev\r\n let timePrev = ''\r\n if (istime(t)) {\r\n timePrev = t\r\n }\r\n\r\n //domShowInputDatatime\r\n let type = 'datetime-local' //'datetime-local', 'date'\r\n domShowInputDatatime(timePrev, { eleRef: ele, type })\r\n .then((timeNew) => {\r\n // console.log(k, 'timeNew', timeNew)\r\n\r\n //rows\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //find\r\n let r = null\r\n let kr = null\r\n each(rows, (v, k) => {\r\n if (get(v, 'id', '') === id) {\r\n r = v\r\n kr = k\r\n return false //跳出\r\n }\r\n })\r\n\r\n //check\r\n if (!iseobj(r)) {\r\n vo.$alert(`${vo.$t('userEditNoUserData')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //v\r\n let vt = ot(timeNew, 'YYYY-MM-DDTHH:mm') //domShowInputDatatime數據為年月日時分\r\n let v = vt.format('YYYY-MM-DDTHH:mm:ssZ') //轉回原始數據為timeTZ格式\r\n // console.log('v', v)\r\n\r\n //set\r\n set(vo, `opt.rows[${kr}].${key}`, v)\r\n // console.log('vo.opt.rows[kr]', cloneDeep(vo.opt.rows[kr]))\r\n\r\n //refresh\r\n vo.refresh()\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n })\r\n\r\n },\r\n\r\n modifyItemTimeVerifiedById: function(ele, t, id) {\r\n // console.log('modifyItemTimeVerifiedById', ele, t, id)\r\n\r\n let vo = this\r\n\r\n //modifyItemByKeyAndId\r\n vo.modifyItemByKeyAndId('timeVerified', ele, t, id)\r\n\r\n },\r\n\r\n modifyItemTimeExpiredById: function(ele, t, id) {\r\n // console.log('modifyItemTimeExpiredById', ele, t, id)\r\n\r\n let vo = this\r\n\r\n //modifyItemByKeyAndId\r\n vo.modifyItemByKeyAndId('timeExpired', ele, t, id)\r\n\r\n },\r\n\r\n modifyItemTimeBlockedById: function(ele, t, id) {\r\n // console.log('modifyItemTimeBlockedById', ele, t, id)\r\n\r\n let vo = this\r\n\r\n //modifyItemByKeyAndId\r\n vo.modifyItemByKeyAndId('timeBlocked', ele, t, id)\r\n\r\n },\r\n\r\n addItem: function() {\r\n // console.log('method addItem')\r\n\r\n let vo = this\r\n\r\n //cloneDeep\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //cloneDeep\r\n rows = cloneDeep(rows)\r\n\r\n //r\r\n let r = vo.$ds.users.funNew()\r\n r.name = vo.$s.getNameNew(rows, 'name', '', vo.$t('userAddNameNew'))\r\n r.userId = `{${vo.$t('userAddIdNew')}}`\r\n r.timeCreate = `{${vo.$t('userAddIdNew')}}`\r\n r.userIdUpdate = `{${vo.$t('userAddIdNew')}}`\r\n r.timeUpdate = `{${vo.$t('userAddIdNew')}}`\r\n // console.log('r', r)\r\n\r\n //添加至最首\r\n rows = [\r\n r,\r\n ...rows,\r\n ]\r\n\r\n //save\r\n vo.users = cloneDeep(rows) //直接更新由getUsersList取得的users, 連帶驅動computed重算, 故不用另外更新vo.items與vo.opt.rows\r\n // console.log('cloneDeep(vo.users)', cloneDeep(vo.users))\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n\r\n copyItem: function() {\r\n // console.log('method copyItem')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (size(vo.itemsCheck) !== 1) {\r\n console.log(`size(vo.itemsCheck) !== 1`, vo.itemsCheck)\r\n vo.$alert(`${vo.$t('anUnexpectedErrorOccurred')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //cloneDeep\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //cloneDeep\r\n rows = cloneDeep(rows)\r\n\r\n //find\r\n let tar = vo.itemsCheck[0]\r\n let tarId = get(tar, 'data.id', '')\r\n let row = null\r\n each(rows, (v) => {\r\n let id = get(v, 'id', '')\r\n if (id === tarId) {\r\n row = v\r\n return false //跳出\r\n }\r\n })\r\n // console.log('tar', tar)\r\n // console.log('row', row)\r\n\r\n //check\r\n if (!iseobj(row)) {\r\n console.log(`!iseobj(row)`, row)\r\n vo.$alert(`${vo.$t('anUnexpectedErrorOccurred')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //r\r\n let r = cloneDeep(row)\r\n // let nameOld = r.name\r\n let _r = vo.$ds.users.funNew()\r\n r.id = _r.id //使用新建方式預先產生id避免重複\r\n // r.name = vo.$s.getNameNew(rows, 'name', nameOld, vo.$t('userCopyNameNew'))\r\n r.userId = `{${vo.$t('userAddIdNew')}}`\r\n r.timeCreate = `{${vo.$t('userAddIdNew')}}`\r\n r.userIdUpdate = `{${vo.$t('userAddIdNew')}}`\r\n r.timeUpdate = `{${vo.$t('userAddIdNew')}}`\r\n // console.log('r', r)\r\n\r\n //添加至最首\r\n rows = [\r\n r,\r\n ...rows,\r\n ]\r\n\r\n //save\r\n vo.users = cloneDeep(rows) //直接更新由getUsersList取得的users, 連帶驅動computed重算, 故不用另外更新vo.items與vo.opt.rows\r\n // console.log('cloneDeep(vo.users)', cloneDeep(vo.users))\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n\r\n deleteItemsCheck: function() {\r\n // console.log('method deleteItemsCheck')\r\n\r\n let vo = this\r\n\r\n //check\r\n if (size(vo.itemsCheck) === 0) {\r\n console.log(`size(vo.itemsCheck) === 0`, vo.itemsCheck)\r\n vo.$alert(`${vo.$t('anUnexpectedErrorOccurred')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //cloneDeep\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //cloneDeep\r\n rows = cloneDeep(rows)\r\n\r\n //filter\r\n each(vo.itemsCheck, (v) => {\r\n // console.log('v', v)\r\n let id = get(v, 'data.id', '')\r\n if (!isestr(id)) {\r\n console.log(`invalid id`)\r\n return true //跳出換下一個\r\n }\r\n rows = filter(rows, (vv) => {\r\n return vv.id !== id\r\n })\r\n })\r\n\r\n //clear\r\n vo.itemsCheck = []\r\n\r\n //save\r\n vo.users = cloneDeep(rows) //直接更新由getUsersList取得的users, 連帶驅動computed重算, 故不用另外更新vo.items與vo.opt.rows\r\n // console.log('cloneDeep(vo.users)', cloneDeep(vo.users))\r\n\r\n //isModified\r\n vo.isModified = true\r\n\r\n },\r\n\r\n saveUsers: function() {\r\n // console.log('method saveUsers')\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 //check\r\n if (isestr(vo.isError)) {\r\n vo.$alert(`${vo.isError}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //rows\r\n let rows = get(vo, 'opt.rows', [])\r\n\r\n //check\r\n if (size(rows) === 0) {\r\n vo.$alert(`${vo.$t('userAddEmpty')}`, { type: 'error' })\r\n return\r\n }\r\n\r\n //token\r\n let token = vo.userToken\r\n // console.log('token', token)\r\n\r\n //updateUsersList\r\n await vo.$fapi.updateUsersList(token, rows)\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('userSaveUsersFail')}: ${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('userSaveUsersSuccess'))\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!./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=a09ddae0&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 \"a09ddae0\",\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:{\"changeParams\":_vm.changeParams},on:{\"domresize\":_vm.resizePanel}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeHead}},[_c('div',{staticStyle:{\"padding\":\"10px 10px 10px 20px\"}},[_c('div',{style:(`display:flex; align-items:center; padding:${_vm.drawer?'5px':'5px 5px 5px 20px'};`)},[_c('WIcon',{attrs:{\"icon\":_vm.mdiCogOutline,\"color\":'#000',\"size\":32}}),_c('div',{staticStyle:{\"padding-left\":\"12px\"}},[_c('div',{staticStyle:{\"font-size\":\"1.4rem\",\"color\":\"#000\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mmSettings'))+\" \")]),_c('div',{staticStyle:{\"padding-top\":\"2px\",\"font-size\":\"0.8rem\",\"color\":\"#666\"}},[_vm._v(\" \"+_vm._s(_vm.$t('mmSettingsMsg'))+\" \")])])],1)])]),(!_vm.isLoading)?[(true)?[_vm._v(\" bbb \")]:_vm._e()]:_c('div',{staticStyle:{\"padding\":\"10px 15px\",\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])],2)\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 :changeParams=\"changeParams\"\r\n >\r\n\r\n <div\r\n style=\"background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeHead\"\r\n >\r\n\r\n <!-- 標題區 -->\r\n <div style=\"padding:10px 10px 10px 20px;\">\r\n <div :style=\"`display:flex; align-items:center; padding:${drawer?'5px':'5px 5px 5px 20px'};`\">\r\n\r\n <WIcon\r\n :icon=\"mdiCogOutline\"\r\n :color=\"'#000'\"\r\n :size=\"32\"\r\n ></WIcon>\r\n\r\n <div style=\"padding-left:12px;\">\r\n\r\n <div style=\"font-size:1.4rem; color:#000;\">\r\n {{$t('mmSettings')}}\r\n </div>\r\n\r\n <div style=\"padding-top:2px; font-size:0.8rem; color:#666;\">\r\n {{$t('mmSettingsMsg')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <template\r\n v-if=\"!isLoading\"\r\n >\r\n\r\n <template v-if=\"true\">\r\n bbb\r\n </template>\r\n\r\n </template>\r\n\r\n <div\r\n style=\"padding:10px 15px; font-size:0.8rem;\"\r\n v-else\r\n >\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiCogOutline, mdiVectorPolylinePlus, mdiCheckboxMarkedCircle, mdiCloudUploadOutline, mdiTrashCanOutline, mdiTableHeadersEye, mdiPlus, mdiPencilOutline, mdiContentCopy } from '@mdi/js/mdi.js'\r\nimport JSON5 from 'json5'\r\nimport ot from 'dayjs'\r\nimport get from 'lodash-es/get.js'\r\nimport set from 'lodash-es/set.js'\r\nimport each from 'lodash-es/each.js'\r\nimport size from 'lodash-es/size.js'\r\nimport filter from 'lodash-es/filter.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport cloneDeep from 'lodash-es/cloneDeep.js'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isnum from 'wsemi/src/isnum.mjs'\r\nimport istime from 'wsemi/src/istime.mjs'\r\nimport istimeTZ from 'wsemi/src/istimeTZ.mjs'\r\nimport isEmail from 'wsemi/src/isEmail.mjs'\r\nimport cdbl from 'wsemi/src/cdbl.mjs'\r\nimport cstr from 'wsemi/src/cstr.mjs'\r\nimport arrPull from 'wsemi/src/arrPull.mjs'\r\nimport domShowInputDatatime from 'wsemi/src/domShowInputDatatime.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WSwitch from 'w-component-vue/src/components/WSwitch.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport WPopup from 'w-component-vue/src/components/WPopup.vue'\r\nimport WInputCheckbox from 'w-component-vue/src/components/WInputCheckbox.vue'\r\nimport WAggridVueDyn from 'w-component-vue/src/components/WAggridVueDyn.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WSwitch,\r\n WButtonCircle,\r\n WPopup,\r\n WInputCheckbox,\r\n WAggridVueDyn,\r\n },\r\n props: {\r\n drawer: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data: function() {\r\n return {\r\n mdiCogOutline,\r\n mdiVectorPolylinePlus,\r\n mdiCheckboxMarkedCircle,\r\n mdiCloudUploadOutline,\r\n mdiTrashCanOutline,\r\n mdiTableHeadersEye,\r\n mdiPlus,\r\n mdiPencilOutline,\r\n mdiContentCopy,\r\n\r\n ttt: '',\r\n\r\n panelWidth: 100,\r\n panelHeight: 100,\r\n headHeight: 100,\r\n\r\n isLoading: true,\r\n firstSetting: true,\r\n showIsEditable: false,\r\n isEditable: false,\r\n // isModified: false,\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 // //註冊至$dg供使用\r\n // vo.$dg.toggleItemIsAdminById = vo.toggleItemIsAdminById\r\n // vo.$dg.toggleItemIsVerifiedById = vo.toggleItemIsVerifiedById\r\n // vo.$dg.toggleItemIsActiveById = vo.toggleItemIsActiveById\r\n // vo.$dg.modifyItemPasswordById = vo.modifyItemPasswordById\r\n // vo.$dg.modifyItemTimeVerifiedById = vo.modifyItemTimeVerifiedById\r\n // vo.$dg.modifyItemTimeExpiredById = vo.modifyItemTimeExpiredById\r\n // vo.$dg.modifyItemTimeBlockedById = vo.modifyItemTimeBlockedById\r\n\r\n //firstSetting\r\n if (vo.firstSetting) {\r\n // console.log('webInfor', vo.webInfor)\r\n\r\n let showModeEditUsers = get(vo, 'webInfor.showModeEditUsers', '')\r\n vo.showIsEditable = showModeEditUsers === 'y'\r\n let modeEditUsers = get(vo, 'webInfor.modeEditUsers', '')\r\n vo.isEditable = modeEditUsers === 'y'\r\n\r\n // vo.widthUsersName = get(vo, 'webInfor.widthUsersName', '')\r\n // vo.widthUsersEmail = get(vo, 'webInfor.widthUsersEmail', '')\r\n // vo.widthUsersDescription = get(vo, 'webInfor.widthUsersDescription', '')\r\n\r\n vo.firstSetting = false\r\n }\r\n vo.isEditable = true //bbb\r\n\r\n //token\r\n let token = vo.userToken\r\n // console.log('token', token)\r\n\r\n // //getUsersList\r\n // vo.$fapi.getUsersList(token)\r\n // .then((res) => {\r\n // // console.log(res)\r\n // res = sortBy(res, 'order')\r\n // vo.users = res\r\n // })\r\n // .catch((err) => {\r\n // console.log(err)\r\n // vo.errMsg = vo.$t('getDataError')\r\n // })\r\n // .finally(() => {\r\n // vo.isLoading = false\r\n // })\r\n\r\n },\r\n computed: {\r\n\r\n webInfor: function() {\r\n let wi = get(this, `$store.state.webInfor`)\r\n return wi\r\n },\r\n\r\n userToken: function() {\r\n let vo = this\r\n return get(vo, `$store.state.userToken`)\r\n },\r\n\r\n changeParams: function() {\r\n // console.log('computed changeParams')\r\n\r\n let vo = this\r\n\r\n // //trigger\r\n // let isEditable = vo.isEditable\r\n\r\n // //items\r\n // let items = cloneDeep(vo.users)\r\n\r\n // //save\r\n // vo.items = items\r\n\r\n // //genOpt\r\n // vo.genOpt({ isEditable })\r\n\r\n // //isLoading\r\n // vo.isLoading = false\r\n\r\n return ''\r\n },\r\n\r\n // contentHeight: function() {\r\n // let vo = this\r\n\r\n // //h\r\n // let h = vo.panelHeight - vo.headHeight\r\n // h = Math.max(h, 0)\r\n\r\n // return h\r\n // },\r\n\r\n // hasItemsCheck: function() {\r\n // let vo = this\r\n\r\n // //h\r\n // let b = size(vo.itemsCheck) > 0\r\n\r\n // return b\r\n // },\r\n\r\n // hasItemCheckOne: function() {\r\n // let vo = this\r\n\r\n // //h\r\n // let b = size(vo.itemsCheck) === 1\r\n\r\n // return b\r\n // },\r\n\r\n // errItemsByAccount: function() {\r\n // let vo = this\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //kpErr\r\n // let kpErr = {}\r\n // let kpAccount = {}\r\n // each(rows, (v, k) => {\r\n\r\n // //account\r\n // let account = get(v, 'account', '')\r\n\r\n // //check\r\n // if (!isestr(account)) {\r\n\r\n // //kpErr\r\n // kpErr[account] = vo.$t(`userAccountEmpty`)\r\n\r\n // return true //跳出換下一個\r\n // }\r\n\r\n // //check\r\n // if (haskey(kpAccount, account)) {\r\n\r\n // //kpErr\r\n // kpErr[account] = vo.$t(`userAccountDuplicate`)\r\n\r\n // return true //跳出換下一個\r\n // }\r\n\r\n // //kpAccount\r\n // kpAccount[account] = true\r\n\r\n // })\r\n\r\n // return kpErr\r\n // },\r\n\r\n // errItemsByEmail: function() {\r\n // let vo = this\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //kpErr\r\n // let kpErr = {}\r\n // let kpEmail = {}\r\n // each(rows, (v, k) => {\r\n\r\n // //email\r\n // let email = get(v, 'email', '')\r\n\r\n // //check\r\n // if (!isestr(email)) {\r\n\r\n // //kpErr\r\n // kpErr[email] = vo.$t(`userEmailEmpty`)\r\n\r\n // return true //跳出換下一個\r\n // }\r\n\r\n // //check\r\n // if (!isEmail(email)) {\r\n\r\n // //kpErr\r\n // kpErr[email] = vo.$t(`userEmailError`)\r\n\r\n // return true //跳出換下一個\r\n // }\r\n\r\n // //check\r\n // if (haskey(kpEmail, email)) {\r\n\r\n // //kpErr\r\n // kpErr[email] = vo.$t(`userEmailDuplicate`)\r\n\r\n // return true //跳出換下一個\r\n // }\r\n\r\n // //kpEmail\r\n // kpEmail[email] = true\r\n\r\n // })\r\n\r\n // return kpErr\r\n // },\r\n\r\n // errItemsByRedir: function() {\r\n // let vo = this\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //kpErr\r\n // let kpErr = {}\r\n // each(rows, (v, k) => {\r\n\r\n // //redir\r\n // let redir = get(v, 'redir', '')\r\n\r\n // //check\r\n // if (!isestr(redir)) {\r\n\r\n // //kpErr\r\n // kpErr[redir] = vo.$t(`userRedirEmpty`)\r\n\r\n // return true //跳出換下一個\r\n // }\r\n\r\n // })\r\n\r\n // return kpErr\r\n // },\r\n\r\n // isError: function() {\r\n // let vo = this\r\n\r\n // let c = ''\r\n // let b = false\r\n // b = iseobj(vo.errItemsByAccount)\r\n // if (b) {\r\n // c = vo.$t('errInAccounts')\r\n // return c\r\n // }\r\n // b = iseobj(vo.errItemsByEmail)\r\n // if (b) {\r\n // c = vo.$t('errInEmails')\r\n // return c\r\n // }\r\n // b = iseobj(vo.errItemsByRedir)\r\n // if (b) {\r\n // c = vo.$t('errInRedir')\r\n // return c\r\n // }\r\n\r\n // return ''\r\n // },\r\n\r\n // kpHead: function() {\r\n // let vo = this\r\n\r\n // let kp = {\r\n // 'id': vo.$t('id'),\r\n // 'order': vo.$t('order'),\r\n // 'account': vo.$t('account'),\r\n // 'password': vo.$t('password'),\r\n // 'name': vo.$t('name'),\r\n // 'email': vo.$t('email'),\r\n // 'description': vo.$t('description'),\r\n // 'from': vo.$t('from'),\r\n // 'redir': vo.$t('redir'),\r\n // 'isAdmin': vo.$t('isAdmin'),\r\n // 'isVerified': vo.$t('isVerified'),\r\n // 'timeVerified': vo.$t('timeVerified'),\r\n // 'timeExpired': vo.$t('timeExpired'),\r\n // 'timeBlocked': vo.$t('timeBlocked'),\r\n // 'userId': vo.$t('userId'),\r\n // 'timeCreate': vo.$t('timeCreate'),\r\n // 'userIdUpdate': vo.$t('userIdUpdate'),\r\n // 'timeUpdate': vo.$t('timeUpdate'),\r\n // 'isActive': vo.$t('isActive'),\r\n // }\r\n\r\n // return kp\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 // getHead: function(key) {\r\n // // console.log('methods getHead', key)\r\n\r\n // let vo = this\r\n\r\n // let head = get(vo, `kpHead.${key}`, '')\r\n\r\n // return head\r\n // },\r\n\r\n // genOpt: function() {\r\n // // console.log('methods genOpt')\r\n\r\n // let vo = this\r\n\r\n // //default\r\n // vo.itemsCheck = []\r\n\r\n // //opt\r\n // let opt = null\r\n // if (size(vo.items) > 0) {\r\n\r\n // //ks\r\n // let ks = vo.tabKeys\r\n // // console.log('ks', ks)\r\n\r\n // //kpHead\r\n // let kpHead = vo.kpHead\r\n\r\n // //kpCellEditable, kpRowDrag, kpHeadCheckBox\r\n // let kpCellEditable = {}\r\n // let kpRowDrag = {}\r\n // let kpHeadCheckBox = {}\r\n // if (vo.isEditable) {\r\n // kpCellEditable = {\r\n // 'account': true,\r\n // 'name': true,\r\n // 'email': true,\r\n // 'description': true,\r\n // 'from': true,\r\n // 'redir': true,\r\n // }\r\n // kpRowDrag = {\r\n // 'account': true,\r\n // }\r\n // kpHeadCheckBox = {\r\n // 'account': true,\r\n // }\r\n // }\r\n\r\n // //kpHeadHide\r\n // let kpHeadHide = {\r\n // 'id': true,\r\n // 'order': true,\r\n // }\r\n // if (true) {\r\n // let tabKeysHide = arrPull(vo.tabKeysPick, vo.tabKeysShow)\r\n // each(tabKeysHide, (k) => {\r\n // kpHeadHide[k] = true\r\n // })\r\n // }\r\n\r\n // //opt\r\n // opt = {\r\n // language: vo.$t('aggridLanguage'),\r\n // rows: vo.items,\r\n // keys: ks,\r\n // kpHead,\r\n // // autoFitColumn: true,\r\n // defCellEditable: false, //vo.isEditable\r\n // defHeadFilter: true,\r\n // defCellAlignH: 'left',\r\n // kpHeadHide,\r\n // kpHeadFixLeft: {\r\n // 'account': true,\r\n // },\r\n // defHeadMinWidth: 150,\r\n // kpHeadWidth: {\r\n // // 'name': isnum(vo.widthUsersName) ? cdbl(vo.widthUsersName) : 200,\r\n // // 'email': isnum(vo.widthUsersEmail) ? cdbl(vo.widthUsersEmail) : 300,\r\n // // 'description': isnum(vo.widthUsersDescription) ? cdbl(vo.widthUsersDescription) : 300,\r\n // // 'cgrups': 300,\r\n // // 'isAdmin': 100,\r\n // // 'isActive': 100,\r\n // // 'timeCreate': 220,\r\n // // 'timeUpdate': 220,\r\n // },\r\n // kpHeadFilterType: {\r\n // 'id': 'text',\r\n // 'order': 'text',\r\n // 'account': 'text',\r\n // 'password': 'text',\r\n // 'name': 'text',\r\n // 'email': 'text',\r\n // 'description': 'text',\r\n // 'from': 'text',\r\n // 'redir': 'text',\r\n // 'isAdmin': 'text',\r\n // 'isVerified': 'text',\r\n // 'timeVerified': 'text',\r\n // 'timeExpired': 'text',\r\n // 'timeBlocked': 'text',\r\n // 'userId': 'text',\r\n // 'timeCreate': 'text',\r\n // 'userIdUpdate': 'text',\r\n // 'timeUpdate': 'text',\r\n // 'isActive': 'text',\r\n // },\r\n // kpCellEditable,\r\n // kpRowDrag,\r\n // kpHeadCheckBox,\r\n // kpHeadFilter: {\r\n // 'password': false,\r\n // },\r\n // kpHeadSort: {\r\n // 'password': false,\r\n // },\r\n // kpHeadFocusHighlight: { //雖然效果不完全, 但因按鈕與cell有padding可被點擊, 故還是需要開啟\r\n // 'password': false,\r\n // 'timeVerified': false,\r\n // 'timeExpired': false,\r\n // 'timeBlocked': false,\r\n // },\r\n // kpCellRender: {\r\n // 'account': (v) => {\r\n // // console.log('kpCellRender account', v)\r\n\r\n // //err\r\n // let err = get(vo.errItemsByAccount, v, '')\r\n // // console.log(v, err)\r\n\r\n // //check\r\n // if (isestr(err)) {\r\n // v = `\r\n // <span title=\"${err}\">\r\n // <span style=\"color:#F57C00;\">${cstr(v)}</span>\r\n // <img style=\"vertical-align:sub; width:16px; height:16px;\" src=\"${vo.$ui.getIcon('warning')}\" />\r\n // </span>\r\n // `\r\n // }\r\n\r\n // return v\r\n // },\r\n // 'password': (v, k, r) => {\r\n // // console.log('kpCellRender password', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // // `\r\n // let t = `\r\n // <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n // <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemPasswordById('${id}')\">${vo.$t('userResetPassword')}</button>\r\n // </div>\r\n // `\r\n\r\n // return t\r\n // },\r\n // 'email': (v) => {\r\n // // console.log('kpCellRender email', v)\r\n\r\n // //err\r\n // let err = get(vo.errItemsByEmail, v, '')\r\n // // console.log(v, err)\r\n\r\n // //check\r\n // if (isestr(err)) {\r\n // v = `\r\n // <span title=\"${err}\">\r\n // <span style=\"color:#F57C00;\">${cstr(v)}</span>\r\n // <img style=\"vertical-align:sub; width:16px; height:16px;\" src=\"${vo.$ui.getIcon('warning')}\" />\r\n // </span>\r\n // `\r\n // }\r\n\r\n // return v\r\n // },\r\n // 'redir': (v) => {\r\n // // console.log('kpCellRender redir', v)\r\n\r\n // //err\r\n // let err = get(vo.errItemsByRedir, v, '')\r\n // // console.log(v, err)\r\n\r\n // //check\r\n // if (isestr(err)) {\r\n // v = `\r\n // <span title=\"${err}\">\r\n // <span style=\"color:#F57C00;\">${cstr(v)}</span>\r\n // <img style=\"vertical-align:sub; width:16px; height:16px;\" src=\"${vo.$ui.getIcon('warning')}\" />\r\n // </span>\r\n // `\r\n // }\r\n\r\n // return v\r\n // },\r\n // 'isAdmin': (v, k, r) => {\r\n // // console.log('kpCellRender isAdmin', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // let t = `\r\n // <input type=\"checkbox\" ${v === 'y' ? 'checked' : ''} onclick=\"$vo.$dg.toggleItemIsAdminById('${id}')\" ${vo.isEditable ? '' : 'disabled'} />\r\n // `\r\n\r\n // return t\r\n // },\r\n // 'isVerified': (v, k, r) => {\r\n // // console.log('kpCellRender isAdmin', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // let t = `\r\n // <input type=\"checkbox\" ${v === 'y' ? 'checked' : ''} onclick=\"$vo.$dg.toggleItemIsVerifiedById('${id}')\" ${vo.isEditable ? '' : 'disabled'} />\r\n // `\r\n\r\n // return t\r\n // },\r\n // 'isActive': (v, k, r) => {\r\n // // console.log('kpCellRender isActive', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // let t = `\r\n // <input type=\"checkbox\" ${v === 'y' ? 'checked' : ''} onclick=\"$vo.$dg.toggleItemIsActiveById('${id}')\" ${vo.isEditable ? '' : 'disabled'} />\r\n // `\r\n\r\n // return t\r\n // },\r\n // 'timeVerified': (v, k, r) => {\r\n // // console.log('kpCellRender timeVerified', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // //vv, vm\r\n // let vv = ''\r\n // let vm = vo.$t('userTimeEmpty')\r\n // if (istimeTZ(v)) { //原始數據為timeTZ格式\r\n // let vt = ot(v)\r\n // vv = vt.format('YYYY-MM-DDTHH:mm')\r\n // vm = vt.format('YYYY-MM-DD HH:mm')\r\n // }\r\n // // console.log('vv', vv)\r\n // // console.log('vm', vm)\r\n\r\n // // `\r\n // let t = `\r\n // <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n // <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemTimeVerifiedById(this,'${vv}','${id}')\">${vm}</button>\r\n // </div>\r\n // `\r\n\r\n // return t\r\n // },\r\n // 'timeExpired': (v, k, r) => {\r\n // // console.log('kpCellRender timeExpired', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // //vv, vm\r\n // let vv = ''\r\n // let vm = vo.$t('userTimeEmpty')\r\n // if (istimeTZ(v)) { //原始數據為timeTZ格式\r\n // let vt = ot(v)\r\n // vv = vt.format('YYYY-MM-DDTHH:mm')\r\n // vm = vt.format('YYYY-MM-DD HH:mm')\r\n // }\r\n // // console.log('vv', vv)\r\n // // console.log('vm', vm)\r\n\r\n // // `\r\n // let t = `\r\n // <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n // <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemTimeExpiredById(this,'${vv}','${id}')\">${vm}</button>\r\n // </div>\r\n // `\r\n\r\n // return t\r\n // },\r\n // 'timeBlocked': (v, k, r) => {\r\n // // console.log('kpCellRender timeBlocked', v, k, r)\r\n\r\n // //id\r\n // let id = get(r, 'id', '')\r\n // // console.log('id', id, k, r)\r\n\r\n // //vv, vm\r\n // let vv = ''\r\n // let vm = vo.$t('userTimeEmpty')\r\n // if (istimeTZ(v)) { //原始數據為timeTZ格式\r\n // let vt = ot(v)\r\n // vv = vt.format('YYYY-MM-DDTHH:mm')\r\n // vm = vt.format('YYYY-MM-DD HH:mm')\r\n // }\r\n // // console.log('vv', vv)\r\n // // console.log('vm', vm)\r\n\r\n // // `\r\n // let t = `\r\n // <div onclick=\"event.stopPropagation();event.preventDefault();\" onmousedown=\"event.stopPropagation();event.preventDefault();\">\r\n // <button style=\"width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;\" onclick=\"$vo.$dg.modifyItemTimeBlockedById(this,'${vv}','${id}')\">${vm}</button>\r\n // </div>\r\n // `\r\n\r\n // return t\r\n // },\r\n // },\r\n // rowsChange: (rs) => {\r\n // // console.log('rowsChange', rs)\r\n // // console.log('rowsChange cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n // },\r\n // rowChecked: (rs) => {\r\n // // console.log('rowChecked', rs)\r\n // // console.log('rowChecked cloneDeep(vo.opt.rows)', cloneDeep(vo.opt.rows))\r\n\r\n // //save itemsCheck\r\n // vo.itemsCheck = cloneDeep(rs)\r\n\r\n // },\r\n // }\r\n // // console.log('opt', opt)\r\n\r\n // }\r\n\r\n // //save\r\n // vo.opt = opt\r\n\r\n // },\r\n\r\n // refresh: function() {\r\n // let vo = this\r\n\r\n // //cmp\r\n // let cmp = get(vo, '$refs.rftable.$refs.$self')\r\n // // console.log('cmp', cmp)\r\n\r\n // //refresh, 因set不會觸發kpCellRender, 故須另外調用組件函數refresh, 進而觸發kpCellRender, 使能更新數據\r\n // cmp.refresh()\r\n\r\n // },\r\n\r\n // toggleTabKeys: function() {\r\n // let vo = this\r\n\r\n // //cmp\r\n // let cmp = get(vo, '$refs.rftable.$refs.$self')\r\n // // console.log('cmp', cmp)\r\n\r\n // //showKeys\r\n // cmp.showKeys(vo.tabKeysShow)\r\n // // console.log('tabKeysShow', vo.tabKeysShow)\r\n\r\n // },\r\n\r\n // modifyItemPasswordById: function(id) {\r\n // // console.log('modifyItemPasswordById', id)\r\n\r\n // let vo = this\r\n\r\n // vo.$alert(`尚待開發`, { type: 'error' }) //bbb\r\n\r\n // // //k\r\n // // let k = 'password'\r\n\r\n // // //check\r\n // // if (!isestr(id)) {\r\n // // vo.$alert(`${vo.$t('userEditNoUserId')}`, { type: 'error' })\r\n // // return\r\n // // }\r\n\r\n // // //rows\r\n // // let rows = get(vo, 'opt.rows', [])\r\n\r\n // // //find\r\n // // let r = null\r\n // // let kr = null\r\n // // each(rows, (v, k) => {\r\n // // if (get(v, 'id', '') === id) {\r\n // // r = v\r\n // // kr = k\r\n // // return false //跳出\r\n // // }\r\n // // })\r\n\r\n // // //check\r\n // // if (!iseobj(r)) {\r\n // // vo.$alert(`${vo.$t('userEditNoUserData')}`, { type: 'error' })\r\n // // return\r\n // // }\r\n\r\n // // //v\r\n // // let _v = get(r, k, 'n')\r\n // // let v = _v === 'y' ? 'n' : 'y'\r\n // // // console.log(k, v)\r\n\r\n // // //set\r\n // // set(vo, `opt.rows[${kr}].${k}`, v)\r\n // // // console.log('vo.opt.rows[kr]', cloneDeep(vo.opt.rows[kr]))\r\n\r\n // // //refresh\r\n // // vo.refresh()\r\n\r\n // // //isModified\r\n // // vo.isModified = true\r\n\r\n // },\r\n\r\n // toggleItemByKeyAndId: function(key, id) {\r\n // // console.log('toggleItemByKeyAndId', key, id)\r\n\r\n // let vo = this\r\n\r\n // //check\r\n // if (!isestr(id)) {\r\n // vo.$alert(`${vo.$t('userEditNoUserId')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //find\r\n // let r = null\r\n // let kr = null\r\n // each(rows, (v, k) => {\r\n // if (get(v, 'id', '') === id) {\r\n // r = v\r\n // kr = k\r\n // return false //跳出\r\n // }\r\n // })\r\n\r\n // //check\r\n // if (!iseobj(r)) {\r\n // vo.$alert(`${vo.$t('userEditNoUserData')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //v\r\n // let _v = get(r, key, 'n')\r\n // let v = _v === 'y' ? 'n' : 'y'\r\n // // console.log(key, v)\r\n\r\n // //set\r\n // set(vo, `opt.rows[${kr}].${key}`, v)\r\n // // console.log('vo.opt.rows[kr]', cloneDeep(vo.opt.rows[kr]))\r\n\r\n // //refresh\r\n // vo.refresh()\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n // },\r\n\r\n // toggleItemIsAdminById: function(id) {\r\n // // console.log('toggleItemIsAdminById', id)\r\n\r\n // let vo = this\r\n\r\n // //toggleItemByKeyAndId\r\n // vo.toggleItemByKeyAndId('isAdmin', id)\r\n\r\n // },\r\n\r\n // toggleItemIsVerifiedById: function(id) {\r\n // // console.log('toggleItemIsVerifiedById', id)\r\n\r\n // let vo = this\r\n\r\n // //toggleItemByKeyAndId\r\n // vo.toggleItemByKeyAndId('isVerified', id)\r\n\r\n // },\r\n\r\n // toggleItemIsActiveById: function(id) {\r\n // // console.log('toggleItemIsActiveById', id)\r\n\r\n // let vo = this\r\n\r\n // //toggleItemByKeyAndId\r\n // vo.toggleItemByKeyAndId('isActive', id)\r\n\r\n // },\r\n\r\n // modifyItemByKeyAndId: function(key, ele, t, id) {\r\n // // console.log('modifyItemTimeVerifiedById', ele, t, id)\r\n\r\n // let vo = this\r\n\r\n // //check\r\n // if (!isestr(id)) {\r\n // vo.$alert(`${vo.$t('userEditNoUserId')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //timePrev\r\n // let timePrev = ''\r\n // if (istime(t)) {\r\n // timePrev = t\r\n // }\r\n\r\n // //domShowInputDatatime\r\n // let type = 'datetime-local' //'datetime-local', 'date'\r\n // domShowInputDatatime(timePrev, { eleRef: ele, type })\r\n // .then((timeNew) => {\r\n // // console.log(k, 'timeNew', timeNew)\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //find\r\n // let r = null\r\n // let kr = null\r\n // each(rows, (v, k) => {\r\n // if (get(v, 'id', '') === id) {\r\n // r = v\r\n // kr = k\r\n // return false //跳出\r\n // }\r\n // })\r\n\r\n // //check\r\n // if (!iseobj(r)) {\r\n // vo.$alert(`${vo.$t('userEditNoUserData')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //v\r\n // let vt = ot(timeNew, 'YYYY-MM-DDTHH:mm') //domShowInputDatatime數據為年月日時分\r\n // let v = vt.format('YYYY-MM-DDTHH:mm:ssZ') //轉回原始數據為timeTZ格式\r\n // // console.log('v', v)\r\n\r\n // //set\r\n // set(vo, `opt.rows[${kr}].${key}`, v)\r\n // // console.log('vo.opt.rows[kr]', cloneDeep(vo.opt.rows[kr]))\r\n\r\n // //refresh\r\n // vo.refresh()\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n // })\r\n\r\n // },\r\n\r\n // modifyItemTimeVerifiedById: function(ele, t, id) {\r\n // // console.log('modifyItemTimeVerifiedById', ele, t, id)\r\n\r\n // let vo = this\r\n\r\n // //modifyItemByKeyAndId\r\n // vo.modifyItemByKeyAndId('timeVerified', ele, t, id)\r\n\r\n // },\r\n\r\n // modifyItemTimeExpiredById: function(ele, t, id) {\r\n // // console.log('modifyItemTimeExpiredById', ele, t, id)\r\n\r\n // let vo = this\r\n\r\n // //modifyItemByKeyAndId\r\n // vo.modifyItemByKeyAndId('timeExpired', ele, t, id)\r\n\r\n // },\r\n\r\n // modifyItemTimeBlockedById: function(ele, t, id) {\r\n // // console.log('modifyItemTimeBlockedById', ele, t, id)\r\n\r\n // let vo = this\r\n\r\n // //modifyItemByKeyAndId\r\n // vo.modifyItemByKeyAndId('timeBlocked', ele, t, id)\r\n\r\n // },\r\n\r\n // addItem: function() {\r\n // // console.log('method addItem')\r\n\r\n // let vo = this\r\n\r\n // //cloneDeep\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //cloneDeep\r\n // rows = cloneDeep(rows)\r\n\r\n // //r\r\n // let r = vo.$ds.users.funNew()\r\n // r.name = vo.$s.getNameNew(rows, 'name', '', vo.$t('userAddNameNew'))\r\n // r.userId = `{${vo.$t('userAddIdNew')}}`\r\n // r.timeCreate = `{${vo.$t('userAddIdNew')}}`\r\n // r.userIdUpdate = `{${vo.$t('userAddIdNew')}}`\r\n // r.timeUpdate = `{${vo.$t('userAddIdNew')}}`\r\n // // console.log('r', r)\r\n\r\n // //添加至最首\r\n // rows = [\r\n // r,\r\n // ...rows,\r\n // ]\r\n\r\n // //save\r\n // vo.users = cloneDeep(rows) //直接更新由getUsersList取得的users, 連帶驅動computed重算, 故不用另外更新vo.items與vo.opt.rows\r\n // // console.log('cloneDeep(vo.users)', cloneDeep(vo.users))\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n // },\r\n\r\n // copyItem: function() {\r\n // // console.log('method copyItem')\r\n\r\n // let vo = this\r\n\r\n // //check\r\n // if (size(vo.itemsCheck) !== 1) {\r\n // console.log(`size(vo.itemsCheck) !== 1`, vo.itemsCheck)\r\n // vo.$alert(`${vo.$t('anUnexpectedErrorOccurred')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //cloneDeep\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //cloneDeep\r\n // rows = cloneDeep(rows)\r\n\r\n // //find\r\n // let tar = vo.itemsCheck[0]\r\n // let tarId = get(tar, 'data.id', '')\r\n // let row = null\r\n // each(rows, (v) => {\r\n // let id = get(v, 'id', '')\r\n // if (id === tarId) {\r\n // row = v\r\n // return false //跳出\r\n // }\r\n // })\r\n // // console.log('tar', tar)\r\n // // console.log('row', row)\r\n\r\n // //check\r\n // if (!iseobj(row)) {\r\n // console.log(`!iseobj(row)`, row)\r\n // vo.$alert(`${vo.$t('anUnexpectedErrorOccurred')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //r\r\n // let r = cloneDeep(row)\r\n // // let nameOld = r.name\r\n // let _r = vo.$ds.users.funNew()\r\n // r.id = _r.id //使用新建方式預先產生id避免重複\r\n // // r.name = vo.$s.getNameNew(rows, 'name', nameOld, vo.$t('userCopyNameNew'))\r\n // r.userId = `{${vo.$t('userAddIdNew')}}`\r\n // r.timeCreate = `{${vo.$t('userAddIdNew')}}`\r\n // r.userIdUpdate = `{${vo.$t('userAddIdNew')}}`\r\n // r.timeUpdate = `{${vo.$t('userAddIdNew')}}`\r\n // // console.log('r', r)\r\n\r\n // //添加至最首\r\n // rows = [\r\n // r,\r\n // ...rows,\r\n // ]\r\n\r\n // //save\r\n // vo.users = cloneDeep(rows) //直接更新由getUsersList取得的users, 連帶驅動computed重算, 故不用另外更新vo.items與vo.opt.rows\r\n // // console.log('cloneDeep(vo.users)', cloneDeep(vo.users))\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n // },\r\n\r\n // deleteItemsCheck: function() {\r\n // // console.log('method deleteItemsCheck')\r\n\r\n // let vo = this\r\n\r\n // //check\r\n // if (size(vo.itemsCheck) === 0) {\r\n // console.log(`size(vo.itemsCheck) === 0`, vo.itemsCheck)\r\n // vo.$alert(`${vo.$t('anUnexpectedErrorOccurred')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //cloneDeep\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //cloneDeep\r\n // rows = cloneDeep(rows)\r\n\r\n // //filter\r\n // each(vo.itemsCheck, (v) => {\r\n // // console.log('v', v)\r\n // let id = get(v, 'data.id', '')\r\n // if (!isestr(id)) {\r\n // console.log(`invalid id`)\r\n // return true //跳出換下一個\r\n // }\r\n // rows = filter(rows, (vv) => {\r\n // return vv.id !== id\r\n // })\r\n // })\r\n\r\n // //clear\r\n // vo.itemsCheck = []\r\n\r\n // //save\r\n // vo.users = cloneDeep(rows) //直接更新由getUsersList取得的users, 連帶驅動computed重算, 故不用另外更新vo.items與vo.opt.rows\r\n // // console.log('cloneDeep(vo.users)', cloneDeep(vo.users))\r\n\r\n // //isModified\r\n // vo.isModified = true\r\n\r\n // },\r\n\r\n // saveUsers: function() {\r\n // // console.log('method saveUsers')\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 // //check\r\n // if (isestr(vo.isError)) {\r\n // vo.$alert(`${vo.isError}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //rows\r\n // let rows = get(vo, 'opt.rows', [])\r\n\r\n // //check\r\n // if (size(rows) === 0) {\r\n // vo.$alert(`${vo.$t('userAddEmpty')}`, { type: 'error' })\r\n // return\r\n // }\r\n\r\n // //token\r\n // let token = vo.userToken\r\n // // console.log('token', token)\r\n\r\n // //updateUsersList\r\n // await vo.$fapi.updateUsersList(token, rows)\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('userSaveUsersFail')}: ${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('userSaveUsersSuccess'))\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!./LayoutContentSettings.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!./LayoutContentSettings.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LayoutContentSettings.vue?vue&type=template&id=5cb4ceb0&scoped=true\"\nimport script from \"./LayoutContentSettings.vue?vue&type=script&lang=js\"\nexport * from \"./LayoutContentSettings.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 \"5cb4ceb0\",\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 :autoSwitchToHide=\"true\"\r\n :autoSwitchToShow=\"true\"\r\n :autoSwitchToFloat=\"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:2px; right:4px;`\"\r\n v-if=\"drawer\"\r\n >\r\n <WButtonCircle\r\n :paddingStyle=\"{h:2,v:2}\"\r\n :icon=\"mdiArrowLeftBoldHexagonOutline\"\r\n :iconSize=\"20\"\r\n :backgroundColor=\"'rgba(255,255,255,0.1)'\"\r\n :backgroundColorHover=\"'rgba(255,255,255,0.4)'\"\r\n :backgroundColorFocus=\"'rgba(255,255,255,0.7)'\"\r\n :borderColor=\"'transparent'\"\r\n :borderColorHover=\"'transparent'\"\r\n :borderColorFocus=\"'transparent'\"\r\n _tooltip=\"$t('menuTreeHide')\"\r\n :shadow=\"false\"\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 <LayoutContentInfor\r\n v-if=\"menuKey==='mmUserInfor'\"\r\n ></LayoutContentInfor>\r\n\r\n <LayoutContentUsers\r\n v-if=\"menuKey==='mmUsersList'\"\r\n ></LayoutContentUsers>\r\n\r\n <LayoutContentSettings\r\n v-if=\"menuKey==='mmSettings'\"\r\n ></LayoutContentSettings>\r\n\r\n </template>\r\n\r\n <div\r\n :style=\"`position:absolute; top:3px; left:5px;`\"\r\n v-if=\"!drawer\"\r\n >\r\n <WButtonCircle\r\n :paddingStyle=\"{h:2,v:2}\"\r\n :icon=\"mdiArrowRightBoldHexagonOutline\"\r\n :iconSize=\"20\"\r\n :backgroundColor=\"'rgba(255,255,255,0.1)'\"\r\n :backgroundColorHover=\"'rgba(255,255,255,0.4)'\"\r\n :backgroundColorFocus=\"'rgba(255,255,255,0.7)'\"\r\n :borderColor=\"'transparent'\"\r\n :borderColorHover=\"'transparent'\"\r\n :borderColorFocus=\"'transparent'\"\r\n _tooltip=\"$t('menuTreeShow')\"\r\n :shadow=\"false\"\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 <div\r\n style=\"padding:20px; font-size:0.9rem;\"\r\n v-else\r\n >\r\n {{$t('waitingData')}}\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiInformationVariantCircleOutline, mdiCogOutline, mdiCellphoneKey, mdiLockOpenRemoveOutline, mdiShieldKeyOutline, mdiArrowLeftBoldHexagonOutline, mdiArrowRightBoldHexagonOutline, mdiGamepadCircle, mdiStackOverflow, mdiAccountGroupOutline } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\r\nimport find from 'lodash-es/find.js'\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 LayoutContentInfor from './LayoutContentInfor.vue'\r\nimport LayoutContentUsers from './LayoutContentUsers.vue'\r\nimport LayoutContentSettings from './LayoutContentSettings.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WDrawer,\r\n WButtonCircle,\r\n WListVertical,\r\n LayoutContentInfor,\r\n LayoutContentUsers,\r\n LayoutContentSettings,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiInformationVariantCircleOutline,\r\n mdiCogOutline,\r\n mdiCellphoneKey,\r\n mdiLockOpenRemoveOutline,\r\n mdiShieldKeyOutline,\r\n mdiArrowLeftBoldHexagonOutline,\r\n mdiArrowRightBoldHexagonOutline,\r\n\r\n menuKey: 'mmUserInfor',\r\n\r\n panelWidth: 0,\r\n panelHeight: 0,\r\n\r\n drawer: true,\r\n drawerWidth: 220,\r\n drawerWidthMin: 150,\r\n drawerWidthMax: 350,\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n syncState: function() {\r\n let vo = this\r\n return get(vo, '$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: 'mmUserInfor',\r\n text: vo.$t('mmUserInfor'),\r\n icon: mdiInformationVariantCircleOutline,\r\n },\r\n {\r\n key: 'mmUsersList',\r\n text: vo.$t('mmUsersList'),\r\n icon: mdiAccountGroupOutline,\r\n },\r\n {\r\n key: 'mmSettings',\r\n text: vo.$t('mmSettings'),\r\n icon: mdiCogOutline,\r\n },\r\n {\r\n key: 'nowActiveTokensList',\r\n text: vo.$t('nowActiveTokensList'),\r\n icon: mdiCellphoneKey,\r\n },\r\n {\r\n key: 'nowBlockList',\r\n text: vo.$t('nowBlockList'),\r\n icon: mdiLockOpenRemoveOutline,\r\n },\r\n {\r\n key: 'systemTokenList',\r\n text: vo.$t('systemTokenList'),\r\n icon: mdiShieldKeyOutline,\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=27e37b39&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 \"27e37b39\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div style=\"height:100svh; 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 <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=\"keysLang\"\r\n :value=\"lang\"\r\n @input=\"toggleLang\"\r\n >\r\n <template v-slot:select=\"props\">\r\n {{getLangText(props.item)}}\r\n </template>\r\n <template v-slot:item=\"props\">\r\n {{getLangText(props.item)}}\r\n </template>\r\n </WTextSelect>\r\n </div>\r\n\r\n <div style=\"padding-right:10px;\">\r\n\r\n <WPopup\r\n :isolated=\"true\"\r\n _show=\"\"\r\n _hide=\"\"\r\n >\r\n <template v-slot:trigger>\r\n\r\n <div style=\"display:flex; align-items:center; white-space:nowrap; user-select:none; cursor:pointer;\">\r\n <div style=\"padding-top:2px;\">\r\n <WIcon\r\n :icon=\"mdiAccountCircleOutline\"\r\n :size=\"20\"\r\n ></WIcon>\r\n </div>\r\n <div style=\"padding-left:5px; font-size:0.85rem;\">\r\n {{userName}}\r\n </div>\r\n </div>\r\n\r\n </template>\r\n <template v-slot:content>\r\n <div style=\"padding:10px;\">\r\n\r\n <div\r\n style=\"display:flex; align-items:center; white-space:nowrap; user-select:none; cursor:pointer;\"\r\n @click=\"logOut\"\r\n >\r\n <div style=\"padding-top:2px;\">\r\n <WIcon\r\n :icon=\"mdiLogoutVariant\"\r\n :size=\"18\"\r\n ></WIcon>\r\n </div>\r\n <div style=\"padding-left:5px; font-size:0.8rem;\">\r\n {{$t('logout')}}\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </template>\r\n </WPopup>\r\n\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 </div>\r\n</template>\r\n\r\n<script>\r\nimport { mdiAccountCircleOutline, mdiLogoutVariant } from '@mdi/js/mdi.js'\r\nimport get from 'lodash-es/get.js'\r\n// import cloneDeep from 'lodash-es/cloneDeep.js'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport WIcon from 'w-component-vue/src/components/WIcon.vue'\r\nimport WPopup from 'w-component-vue/src/components/WPopup.vue'\r\nimport WButtonCircle from 'w-component-vue/src/components/WButtonCircle.vue'\r\nimport WTextSelect from 'w-component-vue/src/components/WTextSelect.vue'\r\nimport LayoutContent from './LayoutContent.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WIcon,\r\n WPopup,\r\n WButtonCircle,\r\n WTextSelect,\r\n LayoutContent,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n mdiAccountCircleOutline,\r\n mdiLogoutVariant,\r\n\r\n firstSetting: true,\r\n\r\n showLangSelect: false,\r\n\r\n keysLang: [\r\n 'eng',\r\n 'cht',\r\n ],\r\n kpLangSelect: {\r\n 'eng': 'English',\r\n 'cht': '中文',\r\n },\r\n\r\n drawer: true, //null,\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 //firstSetting\r\n if (vo.firstSetting) {\r\n // console.log('webInfor', vo.webInfor)\r\n let showLanguage = get(vo, 'webInfor.showLanguage', '')\r\n // console.log('showLanguage', showLanguage)\r\n vo.showLangSelect = showLanguage === 'y'\r\n let language = get(vo, 'webInfor.language', '')\r\n // console.log('language', language)\r\n vo.$ui.setLang(language, 'layout mounted')\r\n vo.firstSetting = false\r\n }\r\n\r\n },\r\n computed: {\r\n\r\n viewState: function() {\r\n let vo = this\r\n return get(vo, '$store.state.viewState', '')\r\n },\r\n\r\n heightToolbar: function() {\r\n let vo = this\r\n return get(vo, `$store.state.heightToolbar`, 0)\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 let vo = this\r\n return get(vo, `$store.state.webInfor.webLogo`, '')\r\n },\r\n\r\n lang: function() {\r\n let vo = this\r\n return get(vo, `$store.state.lang`, '')\r\n },\r\n\r\n userSelf: function() {\r\n let vo = this\r\n return get(vo, `$store.state.userSelf`, '')\r\n },\r\n\r\n userName: function() {\r\n let vo = this\r\n return get(vo, `userSelf.name`, '')\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n getLangText: function(lang) {\r\n // console.log('methods getLangText', lang)\r\n\r\n let vo = this\r\n\r\n let t = get(vo, `kpLangSelect.${lang}`, '')\r\n\r\n return t\r\n },\r\n\r\n toggleLang: function(lang) {\r\n // console.log('methods toggleLang', lang)\r\n\r\n let vo = this\r\n\r\n //setLang\r\n vo.$ui.setLang(lang, 'toggle')\r\n\r\n },\r\n\r\n logOut: function() {\r\n // console.log('methods logOut')\r\n\r\n let vo = this\r\n\r\n //logOut\r\n vo.$ui.logOut()\r\n .then(() => {\r\n\r\n //登出時提交變更viewState返回登入頁\r\n vo.$ui.updateViewState('login')\r\n console.log(`logOut, goto view['login'] page`)\r\n\r\n })\r\n .catch((err) => {\r\n console.log(`logOut err[${err}]`)\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!./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=15c1ec76&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 \"15c1ec76\",\n null\n \n)\n\nexport default component.exports","<template>\n <div\n v-domresize\n @domresize=\"resize\"\n >\n\n <template v-if=\"!autoLogining\">\n\n <PageLogin v-if=\"viewState==='login'\"></PageLogin>\n\n <Layout v-if=\"viewState==='backstage'\"></Layout>\n\n </template>\n\n <div\n style=\"position:absolute; top:0px; left:0px; width:100%; height:100%; display:flex; align-items:center; justify-content:center;\"\n v-else\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30px\" height=\"30px\" viewBox=\"0 0 24 24\"><rect width=\"9\" height=\"9\" x=\"1.5\" y=\"1.5\" fill=\"currentColor\" rx=\"1\"><animate id=\"svgSpinnersBlocksScale0\" attributeName=\"x\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"y\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"width\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"0;svgSpinnersBlocksScale1.end+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect><rect width=\"9\" height=\"9\" x=\"13.5\" y=\"1.5\" fill=\"currentColor\" rx=\"1\"><animate attributeName=\"x\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"y\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"width\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"svgSpinnersBlocksScale0.begin+0.15s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect><rect width=\"9\" height=\"9\" x=\"13.5\" y=\"13.5\" fill=\"currentColor\" rx=\"1\"><animate attributeName=\"x\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"y\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"width\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"svgSpinnersBlocksScale0.begin+0.3s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect><rect width=\"9\" height=\"9\" x=\"1.5\" y=\"13.5\" fill=\"currentColor\" rx=\"1\"><animate id=\"svgSpinnersBlocksScale1\" attributeName=\"x\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"1.5;.5;1.5\"/><animate attributeName=\"y\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"13.5;12.5;13.5\"/><animate attributeName=\"width\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/><animate attributeName=\"height\" begin=\"svgSpinnersBlocksScale0.begin+0.45s\" dur=\"0.6s\" keyTimes=\"0;.2;1\" values=\"9;11;9\"/></rect></svg>\n </div>\n\n <LoadingWinBar></LoadingWinBar>\n <CheckYesNo></CheckYesNo>\n <CheckYes></CheckYes>\n\n <!-- <VeUser></VeUser> -->\n\n </div>\n</template>\n\n<script>\nimport get from 'lodash-es/get.js'\nimport cloneDeep from 'lodash-es/cloneDeep.js'\nimport isestr from 'wsemi/src/isestr.mjs'\nimport iseobj from 'wsemi/src/iseobj.mjs'\nimport isDev from 'wsemi/src/isDev.mjs'\nimport waitFun from 'wsemi/src/waitFun.mjs'\nimport wui from 'w-ui-loginout/src/WUiLoginout.mjs'\nimport LoadingWinBar from './components/Common/LoadingWinBar.vue'\nimport CheckYesNo from './components/Common/CheckYesNo.vue'\nimport CheckYes from './components/Common/CheckYes.vue'\n// import LayoutState from './components/LayoutState.vue'\nimport PageLogin from './components/PageLogin.vue'\nimport Layout from './components/Layout.vue'\n// import VeUser from './components/VeUser.vue'\n\n\nexport default {\n components: {\n LoadingWinBar,\n CheckYesNo,\n CheckYes,\n // LayoutState,\n PageLogin,\n Layout,\n // VeUser,\n },\n data: function() {\n return {\n\n autoLogining: true,\n\n }\n },\n beforeMount: function() {\n // console.log('beforeMount')\n\n let vo = this\n\n //setVo, 更換ui內vo, 才能使用廣播技術, 更換語系才能用廣播通知全部組件forceUpdate\n vo.$ui.setVo(vo)\n\n //setLang\n let lang = get(window, '___pmwsso___.language', '')\n vo.$ui.setLang(lang, 'app init') //初始化先讀取html內語系設定進行變更\n // console.log('lang', lang)\n\n },\n mounted: function() {\n // console.log('mounted')\n\n let vo = this\n\n //set, 把目前vo儲存至window供外部非vue環境使用\n window.$vo = vo\n\n //autoLogin\n if (vo.autoLogining) {\n\n //view\n let view = vo.$ui.getUrlView()\n // console.log('view', view)\n\n //autoLogin\n vo.$ui.autoLogin({ useRedir: view === 'login' })\n .then(() => {\n\n //提交變更viewState前往指定功能頁\n vo.$ui.updateViewState(view)\n vo.autoLogining = false\n console.log(`autoLogin, goto view[${view}] page`)\n\n })\n .catch((err) => {\n\n //錯誤發生時提交變更viewState返回登入頁\n vo.$ui.updateViewState('login')\n vo.autoLogining = false\n console.log(`autoLogin err[${err}], goto view['login'] page`)\n\n })\n }\n\n },\n computed: {\n\n syncState: function() {\n let vo = this\n return get(vo, '$store.state.syncState')\n },\n\n viewState: function() {\n let vo = this\n return get(vo, '$store.state.viewState', '')\n },\n\n webKey: function() {\n let vo = this\n return get(vo, '$store.state.webInfor.webKey', '')\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</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=bfbe9730\"\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=bfbe9730&prod&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const UpdateWebInfor = 'UpdateWebInfor'\r\nexport const UpdateLang = 'UpdateLang'\r\nexport const UpdateKpText = 'UpdateKpText'\r\nexport const UpdateConnState = 'UpdateConnState'\r\nexport const UpdateSyncState = 'UpdateSyncState'\r\nexport const UpdateLoading = 'UpdateLoading'\r\nexport const UpdateViewState = 'UpdateViewState'\r\nexport const UpdateTableData = 'UpdateTableData'\r\nexport const UpdateData = 'UpdateData'\r\nexport const UpdateHeightApp = 'UpdateHeightApp'\r\nexport const UpdateHeightAppEff = 'UpdateHeightAppEff'\r\nexport const UpdateHeightToolbar = 'UpdateHeightToolbar'\r\nexport const UpdateMenu = 'UpdateMenu'\r\nexport const UpdateUserToken = 'UpdateUserToken'\r\nexport const UpdateUserSelf = 'UpdateUserSelf'\r\n","import map from 'lodash-es/map.js'\r\nimport keys from 'lodash-es/keys.js'\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\nimport ot from 'dayjs'\r\n\r\n\r\nlet keyTable = 'tokens'\r\nlet tableNameCht = '金鑰'\r\nlet tableNameEng = 'Tokens'\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 token: {\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 timeEnd: {\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.token = `${now2strp()}-${genID()}`\r\n o.timeCreate = nowms2str()\r\n o.timeEnd = ot().add(30, 'minute').format() //預設30min\r\n o.timeUpdate = o.timeCreate\r\n return o\r\n}\r\n\r\nlet funTest = () => {\r\n let rs = []\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n\r\n","import map from 'lodash-es/map.js'\r\nimport keys from 'lodash-es/keys.js'\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 account: {\r\n name: '帳號',\r\n type: 'STRING',\r\n },\r\n password: {\r\n name: '密碼', //須儲存加鹽雜湊處理後密碼\r\n type: 'STRING',\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 redir: {\r\n name: '登入後轉址',\r\n type: 'STRING',\r\n },\r\n isAdmin: {\r\n name: '是否為系統管理員',\r\n type: 'STRING',\r\n },\r\n isVerified: {\r\n name: '帳號是否驗證',\r\n type: 'STRING',\r\n },\r\n timeVerified: {\r\n name: '驗證時間',\r\n type: 'STRING',\r\n },\r\n // isExpired: {\r\n // name: '帳號是否過期',\r\n // type: 'STRING',\r\n // },\r\n timeExpired: {\r\n name: '過期時間',\r\n type: 'STRING',\r\n },\r\n // isBlocked: {\r\n // name: '帳號是否封鎖',\r\n // type: 'STRING',\r\n // },\r\n timeBlocked: {\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 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 tokens from './tables/tokens.mjs'\nimport users from './tables/users.mjs'\nimport build from 'w-data-collector/src/build.mjs'\n\n\nlet cs = {\n tokens,\n users,\n}\n\n//ds\nlet ds = {}\nfor (let k in cs) {\n ds[k] = build(cs[k], { useCreateStorage: false })\n}\n\n\nexport default ds\n","import each from 'lodash-es/each.js'\r\nimport set from 'lodash-es/set.js'\r\nimport * as types from './types.mjs'\r\nimport ds from '../schema/index.mjs'\r\n\r\n\r\n//state, 全域狀態\r\nlet state = {\r\n\r\n hostname: `${window.location.origin}`,\r\n webInfor: {},\r\n connState: 'csIng', //'csIng', 'csLogin', 'csLogout', 'csErrConn', 'csErrLogin'\r\n syncState: false,\r\n viewState: 'login', //'login', 'backstage'\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 userSelf: {},\r\n\r\n lang: 'cht', //'eng', 'cht'\r\n kpText: {}, //一定要放在vuex內, 否則無法用broadcast驅動變更語系文字\r\n\r\n}\r\n\r\n//添加各資料表\r\neach(ds, (v, k) => {\r\n state[k] = null //初始化null\r\n})\r\n\r\n//儲存至state\r\nexport { state }\r\n\r\n//mutations, 同步執行\r\nexport let mutations = {\r\n\r\n [types.UpdateWebInfor] (state, webInfor) {\r\n state.webInfor = webInfor\r\n },\r\n\r\n [types.UpdateLang] (state, lang) {\r\n state.lang = lang\r\n },\r\n\r\n [types.UpdateKpText] (state, kpText) {\r\n state.kpText = kpText\r\n },\r\n\r\n [types.UpdateConnState] (state, connState) {\r\n state.connState = connState\r\n },\r\n\r\n [types.UpdateSyncState] (state, syncState) {\r\n state.syncState = syncState\r\n },\r\n\r\n [types.UpdateLoading] (state, loading) {\r\n state.loading = loading\r\n },\r\n\r\n [types.UpdateViewState] (state, viewState) {\r\n state.viewState = viewState\r\n },\r\n\r\n [types.UpdateTableData] (state, msg) {\r\n state[msg.tableName] = msg.data\r\n },\r\n\r\n [types.UpdateData] (state, msg) {\r\n //msg.path內為存取路徑, 需使用set處理\r\n // console.log('UpdateData msg', msg)\r\n set(state, msg.path, msg.data)\r\n },\r\n\r\n [types.UpdateHeightApp] (state, heightApp) {\r\n state.heightApp = heightApp\r\n },\r\n\r\n [types.UpdateHeightAppEff] (state, heightAppEff) {\r\n state.heightAppEff = heightAppEff\r\n },\r\n\r\n [types.UpdateHeightToolbar] (state, heightToolbar) {\r\n state.heightToolbar = heightToolbar\r\n },\r\n\r\n [types.UpdateMenu] (state, menu) {\r\n state.menu = menu\r\n },\r\n\r\n [types.UpdateUserToken] (state, userToken) {\r\n state.userToken = userToken\r\n },\r\n\r\n [types.UpdateUserSelf] (state, userSelf) {\r\n state.userSelf = userSelf\r\n },\r\n\r\n}\r\n\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport { state, mutations } from './mutations.mjs'\r\nimport * as getters from './getters.mjs'\r\nimport * as actions from './actions.mjs'\r\nimport * as types from './types.mjs'\r\n\r\n\r\n//use\r\nVue.use(Vuex)\r\n\r\nlet st = new Vuex.Store({\r\n state,\r\n mutations,\r\n getters,\r\n actions,\r\n strict: true, //嚴格模式禁止修改state\r\n})\r\n\r\n//save to $store\r\nst.types = types\r\nVue.prototype.$store = st\r\n// console.log('$store', st)\r\n\r\nexport default st\r\n","\r\n\r\nlet kpLang = {\r\n\r\n csIng: {\r\n eng: 'Connecting...',\r\n cht: '連線中...',\r\n },\r\n csLogin: {\r\n eng: 'Logged in',\r\n cht: '已登入',\r\n },\r\n csLogout: {\r\n eng: 'Logged out',\r\n cht: '已登出',\r\n },\r\n csErrConn: {\r\n eng: 'Unable to connect',\r\n cht: '無法連線',\r\n },\r\n csErrLogin: {\r\n eng: 'Login denied',\r\n cht: '拒絕登入',\r\n },\r\n\r\n aggridLanguage: {\r\n eng: 'en',\r\n cht: 'zh-tw',\r\n },\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 y: {\r\n eng: `Yes`,\r\n cht: `是`,\r\n },\r\n n: {\r\n eng: `No`,\r\n cht: `否`,\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 getDataError: {\r\n eng: `Failed to get data, please try again later`,\r\n cht: `取得數據失敗,請稍後再試`,\r\n },\r\n unknow: {\r\n eng: `Unknow`,\r\n cht: `未知`,\r\n },\r\n\r\n account: {\r\n eng: `Account`,\r\n cht: `帳號`,\r\n },\r\n password: {\r\n eng: `Password`,\r\n cht: `密碼`,\r\n },\r\n toggleToShowPassword: {\r\n eng: `To show password`,\r\n cht: `變更為顯示密碼模式`,\r\n },\r\n toggleToHidePassword: {\r\n eng: `To hide password`,\r\n cht: `變更為隱藏密碼模式`,\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 redir: {\r\n eng: `Redirect`,\r\n cht: `登入後轉至網址`,\r\n },\r\n\r\n login: {\r\n eng: `Log in`,\r\n cht: `登入`,\r\n },\r\n logout: {\r\n eng: `Log out`,\r\n cht: `登出`,\r\n },\r\n\r\n menuTreeShow: {\r\n eng: `Show menu`,\r\n cht: `顯示選單`,\r\n },\r\n menuTreeHide: {\r\n eng: `Hide menu`,\r\n cht: `隱藏選單`,\r\n },\r\n\r\n mmUserInfor: {\r\n eng: `User information`,\r\n cht: `使用者資訊`,\r\n },\r\n\r\n mmUsersList: {\r\n eng: `Users list`,\r\n cht: `使用者清單`,\r\n },\r\n mmUsersListMsg: {\r\n eng: `Provides a list of users, which can be added, edited, deleted, etc.`,\r\n cht: `提供目前使用者資料清單,可進行新增、編輯、刪除等作業。`,\r\n },\r\n\r\n mmSettings: {\r\n eng: `Settings`,\r\n cht: `設定`,\r\n },\r\n mmSettingsMsg: {\r\n eng: `Provides important settings of the current system, such as detection and blocking settings, various email templates, etc.`,\r\n cht: `提供目前系統重要設定,例如偵測與封鎖設定、各類寄信Email模板等。`,\r\n },\r\n\r\n nowActiveTokensList: {\r\n eng: `Active tokens list`,\r\n cht: `當前token登入清單`,\r\n },\r\n nowBlockList: {\r\n eng: `Block list`,\r\n cht: `當前封鎖清單`,\r\n },\r\n systemTokenList: {\r\n eng: `System token list`,\r\n cht: `系統金鑰清單`,\r\n },\r\n\r\n failedLoginForNoWebKey: {\r\n eng: `Can not get the web key`,\r\n cht: `無有效站台唯一識別資訊`,\r\n },\r\n failedLoginForNoToken: {\r\n eng: `Can not get the token`,\r\n cht: `無有效金鑰`,\r\n },\r\n failedLoginForNoRedir: {\r\n eng: `Can not get the url for redirection`,\r\n cht: `無有效轉址`,\r\n },\r\n failedLoginForCatch: {\r\n eng: `User account or password is incorrect`,\r\n cht: `使用者帳密錯誤無法登入`,\r\n },\r\n\r\n failedLogoutForNoWebKey: {\r\n eng: `Can not get the web key`,\r\n cht: `無有效站台唯一識別資訊`,\r\n },\r\n failedLogoutForCatch: {\r\n eng: `Can not logout`,\r\n cht: `使用者登出失敗`,\r\n },\r\n\r\n isVerified: {\r\n eng: `Verified`,\r\n cht: `帳號是否驗證`,\r\n },\r\n isVerifiedY: {\r\n eng: `Verified`,\r\n cht: `帳號已驗證`,\r\n },\r\n isVerifiedN: {\r\n eng: `Not verified`,\r\n cht: `帳號未驗證`,\r\n },\r\n timeVerified: {\r\n eng: `Verified time`,\r\n cht: `帳號驗證時間`,\r\n },\r\n\r\n isExpired: {\r\n eng: `Expired`,\r\n cht: `帳號是否過期`,\r\n },\r\n isExpiredY: {\r\n eng: `Expired`,\r\n cht: `帳號已過期`,\r\n },\r\n isExpiredN: {\r\n eng: `Not expired`,\r\n cht: `帳號未過期`,\r\n },\r\n timeExpired: {\r\n eng: `Expired time`,\r\n cht: `帳號過期時間`,\r\n },\r\n\r\n isBlocked: {\r\n eng: `Blocked`,\r\n cht: `帳號是否被封鎖`,\r\n },\r\n isBlockedY: {\r\n eng: `Blocked`,\r\n cht: `帳號已被封鎖`,\r\n },\r\n isBlockedN: {\r\n eng: `Not blocked`,\r\n cht: `帳號未被封鎖`,\r\n },\r\n timeBlocked: {\r\n eng: `Blocked time`,\r\n cht: `帳號被封鎖時間`,\r\n },\r\n\r\n isAdmin: {\r\n eng: `Administrator`,\r\n cht: `是否為系統管理者`,\r\n },\r\n isAdminY: {\r\n eng: `System Administrator`,\r\n cht: `系統管理者`,\r\n },\r\n isAdminN: {\r\n eng: `Non-System Administrator`,\r\n cht: `非系統管理者`,\r\n },\r\n\r\n isActive: {\r\n eng: 'Active',\r\n cht: '帳號是否有效',\r\n },\r\n isActiveY: {\r\n eng: 'Active',\r\n cht: '帳號有效',\r\n },\r\n isActiveN: {\r\n eng: 'Inactive',\r\n cht: '帳號無效',\r\n },\r\n\r\n errInNames: {\r\n eng: `Name errors`,\r\n cht: `名稱出現錯誤待修復`,\r\n },\r\n errInAccounts: {\r\n eng: `Account errors`,\r\n cht: `帳號出現錯誤待修復`,\r\n },\r\n errInEmails: {\r\n eng: `Email errors`,\r\n cht: `Email出現錯誤待修復`,\r\n },\r\n errItemsByRedir: {\r\n eng: `Redirect errors`,\r\n cht: `登入後轉址出現錯誤待修復`,\r\n },\r\n\r\n modeEdit: {\r\n eng: `Edit mode`,\r\n cht: `編輯模式`,\r\n },\r\n showTabCols: {\r\n eng: `Show columns`,\r\n cht: `顯示欄位`,\r\n },\r\n\r\n userList: {\r\n eng: `User list`,\r\n cht: `使用者分類清單`,\r\n },\r\n userName: {\r\n eng: `Name of user`,\r\n cht: `使用者名稱`,\r\n },\r\n userNameEmpty: {\r\n eng: `Invalid name of user`,\r\n cht: `尚未給予有效使用者名稱`,\r\n },\r\n userNameDuplicate: {\r\n eng: `Duplicate name of user`,\r\n cht: `使用者名稱出現重複`,\r\n },\r\n userAccountEmpty: {\r\n eng: `Invalid account of user`,\r\n cht: `尚未給予有效使用者帳號`,\r\n },\r\n userAccountDuplicate: {\r\n eng: `Duplicate account of user`,\r\n cht: `使用者帳號出現重複`,\r\n },\r\n userEmailEmpty: {\r\n eng: `Empty email of user`,\r\n cht: `尚未給予使用者Email`,\r\n },\r\n userEmailError: {\r\n eng: `Invalid email of user`,\r\n cht: `使用者Email格式錯誤`,\r\n },\r\n userEmailDuplicate: {\r\n eng: `Duplicate email of user`,\r\n cht: `使用者Email出現重複`,\r\n },\r\n userRedirEmpty: {\r\n eng: `Invalid redirect of user`,\r\n cht: `尚未給予有效登入後轉址`,\r\n },\r\n userTimeEmpty: {\r\n eng: `Invalid time`,\r\n cht: `尚未給予時間`,\r\n },\r\n userAddEmpty: {\r\n eng: `No user`,\r\n cht: `尚未新增使用者資料`,\r\n },\r\n userAdd: {\r\n eng: `Add user`,\r\n cht: `新增使用者`,\r\n },\r\n userAddNameNew: {\r\n eng: `New user`,\r\n cht: `新使用者`,\r\n },\r\n userAddIdNew: {\r\n eng: `Waiting generation`,\r\n cht: `待自動給予`,\r\n },\r\n userCopy: {\r\n eng: `Copy user`,\r\n cht: `複製使用者`,\r\n },\r\n userCopyNameNew: {\r\n eng: `copy`,\r\n cht: `複製`,\r\n },\r\n userDeleteCheckUsers: {\r\n eng: `Delete user(s)`,\r\n cht: `刪除勾選使用者`,\r\n },\r\n userResetPassword: {\r\n eng: `Reset password`,\r\n cht: `重設密碼`,\r\n },\r\n userSaveUsersEmpty: {\r\n eng: `No user`,\r\n cht: `未有變更使用者資料`,\r\n },\r\n userSaveUsersFail: {\r\n eng: `Failed to save users`,\r\n cht: `儲存使用者數據失敗`,\r\n },\r\n userSaveUsersSuccess: {\r\n eng: `Save users successfully`,\r\n cht: `儲存使用者數據成功`,\r\n },\r\n userEditNoUserId: {\r\n eng: `Can not find the id of user`,\r\n cht: `無法找到使用者Id`,\r\n },\r\n userEditNoUserData: {\r\n eng: `Can not find the data of user`,\r\n cht: `無法找到使用者數據`,\r\n },\r\n\r\n userId: {\r\n eng: `ID of the created user`,\r\n cht: '創建使用者主鍵',\r\n },\r\n timeCreate: {\r\n eng: `Created time`,\r\n cht: '創建時間',\r\n },\r\n userIdUpdate: {\r\n eng: `ID of the updated user`,\r\n cht: '最新變更使用者主鍵',\r\n },\r\n timeUpdate: {\r\n eng: `Updated time`,\r\n cht: '更新時間',\r\n },\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\r\n\r\nexport default kpLang\r\n","import Vue from 'vue'\r\nimport min from 'lodash-es/min.js'\r\nimport size from 'lodash-es/size.js'\r\nimport take from 'lodash-es/take.js'\r\nimport isEqual from 'lodash-es/isEqual.js'\r\nimport uniq from 'lodash-es/uniq.js'\r\nimport set from 'lodash-es/set.js'\r\nimport get from 'lodash-es/get.js'\r\nimport each from 'lodash-es/each.js'\r\nimport map from 'lodash-es/map.js'\r\nimport filter from 'lodash-es/filter.js'\r\nimport last from 'lodash-es/last.js'\r\nimport split from 'lodash-es/split.js'\r\nimport join from 'lodash-es/join.js'\r\nimport drop from 'lodash-es/drop.js'\r\nimport dropRight from 'lodash-es/dropRight.js'\r\nimport groupBy from 'lodash-es/groupBy.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport cloneDeep from 'lodash-es/cloneDeep.js'\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\nimport kpLang from './mLang.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 validLang(lang) {\r\n if (lang !== 'eng' && lang !== 'cht') {\r\n // console.log(`invalid lang[${lang}]`)\r\n lang = 'eng'\r\n }\r\n return lang\r\n}\r\n\r\n\r\nfunction getLang() {\r\n let lang = ''\r\n\r\n //from window\r\n if (!isestr(lang)) {\r\n let _lang = get(window, '___pmwsso___.language', '')\r\n // console.log('_lang(from window)', _lang)\r\n if (isestr(_lang)) {\r\n lang = validLang(_lang) //有可能取到未取代前模板符號\r\n }\r\n }\r\n\r\n //from store\r\n if (!isestr(lang)) {\r\n let _lang = get(vo, '$store.state.lang', '')\r\n // console.log('_lang(from store)', _lang)\r\n if (isestr(_lang)) {\r\n lang = validLang(_lang) //有可能給予非預期lang\r\n }\r\n }\r\n\r\n //return\r\n if (!isestr(lang)) {\r\n return 'eng'\r\n }\r\n return lang\r\n}\r\n\r\n\r\nfunction setLang(lang = null, from = '') {\r\n // console.log('setLang', lang, from)\r\n\r\n //check\r\n if (!isestr(lang)) {\r\n lang = getLang()\r\n }\r\n else {\r\n lang = validLang(lang)\r\n }\r\n // console.log('get lang', lang)\r\n\r\n //check, 若有變更才commit\r\n if (true) {\r\n let _lang = get(vo, '$store.state.lang', '')\r\n if (lang !== _lang) {\r\n vo.$store.commit(vo.$store.types.UpdateLang, lang)\r\n // console.log('commit lang', lang)\r\n }\r\n }\r\n\r\n //genKpText, 切換lang得調用getKpLang重算kpText\r\n genKpText(lang)\r\n\r\n //forceUpdate\r\n forceUpdate()\r\n\r\n}\r\n\r\n\r\nfunction genKpText(lang) {\r\n // console.log('genKpText', lang)\r\n\r\n //kp\r\n let kp = {}\r\n\r\n //kpLang\r\n kp = {\r\n ...kp,\r\n ...kpLang,\r\n }\r\n\r\n //kpLangExt\r\n let kpLangExt = get(vo, '$store.state.webInfor.kpLangExt', {})\r\n // console.log('kpLangExt', kpLangExt)\r\n if (iseobj(kpLangExt)) {\r\n kp = {\r\n ...kp,\r\n ...kpLangExt,\r\n }\r\n }\r\n\r\n //webName\r\n let webName = get(vo, '$store.state.webInfor.webName', {})\r\n // console.log('webName', webName)\r\n if (iseobj(webName)) {\r\n kp = {\r\n ...kp,\r\n webName: {\r\n ...webName,\r\n },\r\n }\r\n }\r\n\r\n //webDescription\r\n let webDescription = get(vo, '$store.state.webInfor.webDescription', {})\r\n // console.log('webDescription', webDescription)\r\n if (iseobj(webDescription)) {\r\n kp = {\r\n ...kp,\r\n webDescription: {\r\n ...webDescription,\r\n },\r\n }\r\n }\r\n\r\n //kpText\r\n let kpText = {}\r\n each(kp, (v, k) => {\r\n kpText[k] = v[lang]\r\n })\r\n // console.log('kp', kp)\r\n // console.log('kpText', kpText)\r\n\r\n //commit\r\n vo.$store.commit(vo.$store.types.UpdateKpText, kpText)\r\n // console.log('commit kpText', kpText)\r\n\r\n}\r\n\r\n\r\nfunction getKpText(key) {\r\n // console.log('getKpText', key)\r\n\r\n //kpText\r\n let kpText = get(vo, '$store.state.kpText')\r\n // console.log('kpText', cloneDeep(kpText))\r\n\r\n //t\r\n let t = get(kpText, key, '')\r\n if (!isestr(t)) {\r\n t = key\r\n }\r\n\r\n return t\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\n// async 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\nfunction parseUrlParams() {\r\n\r\n //kp\r\n let kp = {}\r\n try {\r\n\r\n //ulps\r\n let ulps = new URLSearchParams(window.location.search)\r\n // console.log('ulps', ulps, window.location.search, window.location.href)\r\n\r\n //forEach\r\n ulps.forEach((v, k) => {\r\n // console.log(k, v)\r\n kp[k] = v\r\n })\r\n\r\n }\r\n catch (err) {\r\n console.log('err', err)\r\n }\r\n // console.log('kp', kp)\r\n\r\n return kp\r\n}\r\n\r\n\r\nfunction getUrlView() {\r\n\r\n //parseUrlParams\r\n let kp = parseUrlParams()\r\n // console.log('kp', kp)\r\n //http://localhost:8080/?view=backstage => {view: 'backstage'}\r\n\r\n //view\r\n let view = get(kp, 'view', '')\r\n if (view === '') {\r\n view = 'login'\r\n }\r\n if (view !== 'login' && view !== 'backstage') {\r\n console.log(`invalid view[${view}]`)\r\n view = 'login'\r\n }\r\n // console.log('view', view)\r\n\r\n return view\r\n}\r\n\r\n\r\nfunction goUrl(url, token) {\r\n\r\n //replace\r\n url = url.replaceAll('{token}', token)\r\n\r\n //href\r\n // if (isDev()) {\r\n // console.log('10s後重導至:', url)\r\n // setTimeout(() => {\r\n // window.location.href = url\r\n // }, 10 * 1000)\r\n // }\r\n // else {\r\n // window.location.href = url\r\n // }\r\n window.location.href = url\r\n\r\n}\r\n\r\n\r\nfunction login(account, password, opt = {}) {\r\n\r\n //測試\r\n //http://localhost:8080/ => 登入後轉至指定頁\r\n //http://localhost:8080/?token=sys => 網址給予token但不使用, 登入後轉至指定頁\r\n //http://localhost:8080/?view=backstage => 登入後轉至後台\r\n //http://localhost:8080/?view=backstage&token=sys => 網址給予token但不使用, 登入後轉至後台\r\n\r\n //useRedir\r\n let useRedir = get(opt, 'useRedir', false)\r\n // console.log('useRedir', useRedir)\r\n\r\n //pm\r\n let pm = genPm()\r\n\r\n async function core() {\r\n\r\n //show loading\r\n updateLoading(true)\r\n\r\n //delay\r\n await delay(1000)\r\n\r\n //$keyLS\r\n let $keyLS = get(vo, '$store.state.webInfor.webKey', '')\r\n\r\n //check\r\n if (!isestr($keyLS)) {\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoWebKey'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject('invalid $keyLS')\r\n\r\n return\r\n }\r\n\r\n //key\r\n let key = `${$keyLS}:userToken`\r\n // console.log('key', key)\r\n\r\n //loginByAccountAndPassword\r\n let u = await vo.$fapi.loginByAccountAndPassword(account, password)\r\n // console.log('u', u)\r\n\r\n //setItem, 清空token\r\n await localStorage.setItem(key, '')\r\n\r\n //token\r\n let token = get(u, 'token', '')\r\n // console.log('token', token)\r\n\r\n //check\r\n if (!iseobj(u)) {\r\n // console.log('invalid user')\r\n\r\n //reject\r\n pm.reject('invalid user')\r\n\r\n return\r\n }\r\n\r\n //check\r\n if (!isestr(token)) {\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoToken'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject('invalid token')\r\n\r\n return\r\n }\r\n\r\n //setItem\r\n await localStorage.setItem(key, token)\r\n\r\n //update token and user\r\n updateUserToken(token)\r\n updateUserSelf(u)\r\n\r\n //useRedir\r\n if (useRedir) {\r\n\r\n //redir\r\n let redir = get(u, 'redir', '')\r\n // console.log('redir', redir)\r\n\r\n //check\r\n if (!isestr(redir)) {\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoRedir'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject('invalid redir')\r\n\r\n return\r\n }\r\n\r\n //goUrl\r\n goUrl(redir, token)\r\n // console.log('goUrl', redir, 'token', token)\r\n\r\n //resolve\r\n pm.resolve('redir')\r\n\r\n // //hide loading, 登入成功不能先隱藏loading, 開始轉址到轉跳會有一段時間, 持續顯示loading不隱藏, 避免使用者誤會登入失敗\r\n // updateLoading(false)\r\n\r\n return\r\n }\r\n\r\n //hide loading, 登入成功後且非轉址時隱藏loading\r\n updateLoading(false)\r\n\r\n //resolve\r\n pm.resolve('done')\r\n\r\n }\r\n\r\n //core\r\n core()\r\n .catch((err) => {\r\n // console.log('login', err)\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForCatch'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject(err)\r\n\r\n //hide loading, 登入失敗後隱藏loading\r\n updateLoading(false)\r\n\r\n })\r\n\r\n return pm\r\n}\r\n\r\n\r\nfunction autoLogin(opt = {}) {\r\n\r\n //測試\r\n //http://localhost:8080/ => 無token須轉至登入頁\r\n //http://localhost:8080/?token=sys => 雖網址有token但cache無token, 須轉至登入頁\r\n //http://localhost:8080/?view=backstage => 無token須轉至登入頁\r\n //http://localhost:8080/?view=backstage&token=sys => 雖網址有token但cache無token, 須轉至登入頁\r\n //http://localhost:8080/, with cache token => 有cache內token可至指定頁\r\n //http://localhost:8080/?view=backstage, with cache token => 有cache內token可至後台\r\n //http://localhost:8080/?view=backstage&token=sys, with cache token => 雖網址有token但須以cache內token為主, 有cache內token可至後台\r\n\r\n //useRedir\r\n let useRedir = get(opt, 'useRedir', false)\r\n // console.log('useRedir', useRedir)\r\n\r\n //pm\r\n let pm = genPm()\r\n\r\n async function core() {\r\n let errTemp = null\r\n\r\n //waitFun, 因須使用webKey故須等待syncState\r\n // console.log('wait syncState...')\r\n await waitFun(() => {\r\n return get(vo, '$store.state.syncState', false)\r\n })\r\n // console.log('wait syncState done', vo.syncState)\r\n\r\n //$keyLS\r\n let $keyLS = get(vo, '$store.state.webInfor.webKey', '')\r\n // console.log('$keyLS', $keyLS)\r\n\r\n //check\r\n if (!isestr($keyLS)) {\r\n // console.log('invalid $keyLS')\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoWebKey'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject('invalid $keyLS')\r\n\r\n return\r\n }\r\n\r\n //key\r\n let key = `${$keyLS}:userToken`\r\n // console.log('key', key)\r\n\r\n //getItem\r\n let token = await localStorage.getItem(key)\r\n // console.log('token', token)\r\n\r\n //check\r\n if (!isestr(token)) {\r\n // console.log('invalid token')\r\n\r\n //reject\r\n pm.reject('invalid token')\r\n\r\n return\r\n }\r\n\r\n //checkToken\r\n await vo.$fapi.checkToken(token)\r\n .catch((err) => {\r\n // console.log('checkToken error', err)\r\n errTemp = err\r\n //無有效token改為提供使用者進行帳密登入\r\n })\r\n if (errTemp) {\r\n\r\n //setItem, 清空token\r\n await localStorage.setItem(key, '')\r\n\r\n //reject\r\n pm.reject('token error')\r\n\r\n return\r\n }\r\n\r\n //getUserByToken\r\n let u = await vo.$fapi.getUserByToken(token)\r\n // console.log('getUserByToken u', u)\r\n\r\n //check\r\n if (!iseobj(u)) {\r\n // console.log('invalid user')\r\n\r\n //reject\r\n pm.reject('invalid user')\r\n\r\n return\r\n }\r\n\r\n //update token and user\r\n updateUserToken(token)\r\n updateUserSelf(u)\r\n\r\n //useRedir\r\n if (useRedir) {\r\n\r\n //redir\r\n let redir = get(u, 'redir', '')\r\n // console.log('redir', redir)\r\n\r\n //check\r\n if (!isestr(redir)) {\r\n // console.log('invalid redir')\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForNoRedir'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject('invalid redir')\r\n\r\n return\r\n }\r\n\r\n //goUrl\r\n goUrl(redir, token)\r\n // console.log('goUrl', redir, 'token', token)\r\n\r\n //resolve\r\n pm.resolve('redir')\r\n\r\n return\r\n }\r\n\r\n //resolve\r\n pm.resolve('done')\r\n\r\n }\r\n\r\n //core\r\n core()\r\n .catch((err) => {\r\n // console.log('autoLogin', err)\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLoginForCatch'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject(err)\r\n\r\n })\r\n\r\n return pm\r\n}\r\n\r\n\r\nfunction logOut() {\r\n\r\n //pm\r\n let pm = genPm()\r\n\r\n async function core() {\r\n\r\n //$keyLS\r\n let $keyLS = get(vo, '$store.state.webInfor.webKey', '')\r\n\r\n //check\r\n if (!isestr($keyLS)) {\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLogoutForNoWebKey'), { type: 'error' })\r\n\r\n return Promise.reject(`invalid $keyLS`)\r\n }\r\n\r\n //key\r\n let key = `${$keyLS}:userToken`\r\n // console.log('key', key)\r\n\r\n //setItem, 清空token\r\n await localStorage.setItem(key, '')\r\n\r\n }\r\n\r\n //core\r\n core()\r\n .then(() => {\r\n\r\n //resolve\r\n pm.resolve('done')\r\n\r\n })\r\n .catch((err) => {\r\n // console.log('logOut', err)\r\n\r\n //alert\r\n vo.$alert(vo.$t('failedLogoutForCatch'), { type: 'error' })\r\n\r\n //reject\r\n pm.reject(err)\r\n\r\n })\r\n\r\n return pm\r\n}\r\n\r\n\r\nlet kpIcon = {\r\n warning: `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAhCAYAAACxzQkrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOwwAADsMBx2+oZAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOS8xOS8yNP52YhIAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAADMklEQVRYha2WTWgTQRiGn0k2SU2KNQjmoiL+gGAVD/5gEelAkSKOiILei+hBRAQv/tBDsQiK1CJFDz331tNePAjRm60eBL0pXsSDF+dimmzbZDzsRJNmm+xPXliyOzP7zrNfvpn5hDGGJNJSHQJmAQHcLpbdL0n8RBIgLdVhYBHYb5u+AZeLZfdzXM9UbBpfC8AB/OgIe7+QxDA2kJZqAhgO6Bq2fbEU6y/TUuWB70BpkyG/gL3FsrsS1TtuhO53gcH23Y9jHDlCWqqd+Mmb6zHUA/YVy+7PKP5xIvQkBAx2zNOo5pEipKU6Bnzo6Kg3/N904PcdL5bdj2HniBqh2bYnITDVGmQcyDj+vRDd3+kXkJbqEjDS2mYqK2THTjO0MMfQwhzZsdOYSsfCGrHv9g9IS+UAz9oajUFkHPITV0mVSqRKJfITVxAZBzrT4Jn16A8QcBvY0w4EZDL+/mw8/xIpv60zLfdYj+RAWqrtwGRgpzHQaJm90QiKTlOT1isZEPAI2BpiXC9ttV5d1RVIS3UQuN4HmKZuWM94QMBMiDFRJKznptp0Mi3VGDDeR5imxq13eCB95iz0+JKEmtFj58IDkc5dI7jWaZcQ7cdFOhW0UwdpmHr6WiggLVUBmO4NA6bmYSpVEIMgBjGVKqbm+ZnSW9N2ru5AwANgR28gf9bKzDxry+9ZW35PZWa+ra+Hdti52m1bT3st1S7gK+HKi/+Ha73uP6fTiC0D3TbHjfKAA8Wy+6PZsDFCT0PDAGAQ2Qys12G97t8HnBtd1FEz/YuQluoEsBTFjXoDnDQ5u4o9940PF1wXddPJYtldBmg9gZ9HdTG1GoMPb5G9cBEAZ+9u/ky/QBTyUa2eY0ubFICWSgGnotEYxEAO59gRoAJUcI4fQQzkouRQU6csAykt1TZgKqqDn9Aeq6/fAQWgwOrrt5iqF3aVbdSUlmpI/B49vwiErujaZAxmbZ3syaMArC598gu0eEAAi+L36PkakVZWANRKFQCR35IEBqCaAl4mcUAIRCHvJ3IyGIBXjhHcEYYGcJMkkUomD5gziLut+9Bj4DKQJeLulkACWAUWi2X3HsBfLU4ARuGaUEMAAAAASUVORK5CYII=`,\r\n}\r\nfunction getIcon(icon) {\r\n let c = get(kpIcon, icon, '')\r\n if (!isestr(c)) {\r\n console.log(`invalid icon[${icon}]`)\r\n }\r\n return c\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 getKpText,\r\n\r\n gv,\r\n syncHeight,\r\n\r\n // waitData,\r\n\r\n parseUrlParams,\r\n getUrlView,\r\n goUrl,\r\n\r\n login,\r\n autoLogin,\r\n logOut,\r\n\r\n getIcon,\r\n\r\n}\r\n\r\n\r\nexport default mUI\r\n","import get from 'lodash-es/get.js'\nimport find from 'lodash-es/find.js'\nimport isestr from 'wsemi/src/isestr.mjs'\r\n\r\n\r\nfunction mDataSelectorSchema(ds, opt = {}) {\r\n\r\n function getTableInforBy(keyFind, valueFind, keyPick) {\r\n let r = find(ds, { [keyFind]: valueFind })\r\n if (!r) {\r\n r = ''\r\n }\r\n if (isestr(keyPick)) {\r\n r = get(r, keyPick, '')\r\n }\r\n return r\r\n }\r\n\r\n function getTableChtByKey(valueFind) {\r\n return getTableInforBy('keyTable', valueFind, 'tableNameCht')\r\n }\r\n\r\n return {\r\n getTableInforBy,\r\n getTableChtByKey,\r\n }\r\n}\r\n\r\n\r\nexport default mDataSelectorSchema\r\n","//前後端共用函數區\r\nimport JSON5 from 'json5'\r\nimport get from 'lodash-es/get.js'\r\nimport each from 'lodash-es/each.js'\r\nimport map from 'lodash-es/map.js'\r\nimport find from 'lodash-es/find.js'\r\nimport join from 'lodash-es/join.js'\r\nimport cloneDeep from 'lodash-es/cloneDeep.js'\r\nimport takeRight from 'lodash-es/takeRight.js'\r\nimport dropRight from 'lodash-es/dropRight.js'\r\nimport sortBy from 'lodash-es/sortBy.js'\r\nimport sep from 'wsemi/src/sep.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isestr from 'wsemi/src/isestr.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\n// let dlm = '/'\r\n\r\n\r\nfunction getNameNew(rows, key = 'name', nameBase = '', nameExt = '') {\r\n\r\n //hasName\r\n let hasName = (name) => {\r\n let b = false\r\n each(rows, (r) => {\r\n let _name = get(r, key, '')\r\n if (_name === name) {\r\n b = true\r\n return false //跳出\r\n }\r\n })\r\n return b\r\n }\r\n\r\n //nameNew\r\n let nameNew = ''\r\n let b = true\r\n let i = 0\r\n while (b) {\r\n i++\r\n let pre = ''\r\n if (isestr(nameBase)) {\r\n pre = `${nameBase} - `\r\n }\r\n nameNew = `${pre}${nameExt}(${i})` //vo.$t('pemiAddNameNew') vo.$t('pemiCopyNameNew')\r\n b = hasName(nameNew)\r\n }\r\n\r\n return nameNew\r\n}\r\n\r\n\r\n// function 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\n// function 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\n// function 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\n// function 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\n// function 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 getNameNew\r\n // getAllBlocks,\r\n // getTreeBlocks\r\n // getUserGroups,\r\n // getTargetsByGroup,\r\n // getUserRules\r\n}\r\n","import Vue from 'vue'\r\nimport get from 'lodash-es/get.js'\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\nVue.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\n// let bFirstSync = false\r\nWServHapiClient({\r\n showLog: false,\r\n url: window.location.origin + window.location.pathname,\r\n useWaitToken: false,\r\n apiName: 'api',\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\r\n //save $fapi\r\n Vue.prototype.$fapi = _fapi\r\n\r\n //getWebInfor\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(null, 'get webInfor') //因更新webInfor可取得webName與webDescription, 得要重刷語系才能依照語言取得顯示文字\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n\r\n //commit syncState\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateSyncState, true)\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","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 9297;\nmodule.exports = webpackEmptyAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t524: 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_sso\"] = self[\"webpackChunkw_web_sso\"] || [];\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, [504], function() { return __webpack_require__(4532); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["render","_vm","this","_c","_self","directives","name","rawName","on","resize","autoLogining","staticStyle","attrs","viewState","_e","staticRenderFns","loading","dialogWidth","$event","resizeDialog","scopedSlots","_u","key","fn","style","concat","barPadding","msg","_v","_s","$t","barWidth","proxy","components","WDialog","WProgressBar","props","data","dialogWidthMax","mounted","vo","Vue","prototype","$dg","setLoadingWinBarMessage","setMessage","computed","b","get","methods","w","window","innerWidth","Math","max","min","component","bShow","content","clickBtn","WConfirm","pm","showCheckYesNo","show","genPm","mode","resolve","reject","clickUnit","showCheckYes","c1","c2","c3","logoSize","contentWidth","c4","c5","webLogo","contentPadding","webName","login","model","value","account","callback","$$v","expression","showPassword","password","hasAcPw","v","h","keysLang","lang","toggleLang","getLangText","item","WIcon","WText","WTextSelect","WButtonChip","firstSetting","showLangSelect","kpLangSelect","c","isestr","document","title","webBackgoundGradientColors","webKey","t","$ui","setLang","view","getUrlView","useRedir","then","updateViewState","console","log","catch","err","heightToolbar","mdiAccountCircleOutline","userName","logOut","mdiLogoutVariant","syncState","panelHeight","drawerWidth","drawerWidthMin","drawerWidthMax","height","menus","menuActive","menu","menuKey","drawer","mdiArrowLeftBoldHexagonOutline","width","mdiArrowRightBoldHexagonOutline","resizePanel","isLoading","errMsg","gv","user","isVerified","isExpired","isBlocked","WSwitch","WPanelLabelItem","WPanelScrolly","panelWidth","headHeight","isOperatable","token","userToken","$fapi","getUserByToken","res","finally","timeVerified","istimeTZ","tt","ot","tn","tds","diff","timeExpired","timeBlocked","snew","offsetWidth","offsetHeight","changeParams","resizeHead","mdiAccountGroupOutline","showIsEditable","isEditable","mdiTableHeadersEye","tabKeysPick","toggleTabKeys","getHead","tabKeysShow","mdiPlus","addItem","hasItemCheckOne","mdiContentCopy","copyItem","hasItemsCheck","mdiTrashCanOutline","deleteItemsCheck","isModified","mdiCloudUploadOutline","saveUsers","items","ref","contentHeight","opt","WButtonCircle","WPopup","WInputCheckbox","WAggridVueDyn","type","Boolean","default","mdiVectorPolylinePlus","mdiCheckboxMarkedCircle","mdiPencilOutline","ttt","tabKeys","widthUsersName","widthUsersEmail","widthUsersDescription","users","itemsCheck","toggleItemIsAdminById","toggleItemIsVerifiedById","toggleItemIsActiveById","modifyItemPasswordById","modifyItemTimeVerifiedById","modifyItemTimeExpiredById","modifyItemTimeBlockedById","showModeEditUsers","modeEditUsers","getUsersList","sortBy","webInfor","wi","cloneDeep","genOpt","size","errItemsByAccount","rows","kpErr","kpAccount","each","k","haskey","errItemsByEmail","kpEmail","email","isEmail","errItemsByRedir","redir","isError","iseobj","kpHead","kp","head","ks","kpCellEditable","kpRowDrag","kpHeadCheckBox","kpHeadHide","tabKeysHide","arrPull","language","keys","defCellEditable","defHeadFilter","defCellAlignH","kpHeadFixLeft","defHeadMinWidth","kpHeadWidth","kpHeadFilterType","kpHeadFilter","kpHeadSort","kpHeadFocusHighlight","kpCellRender","cstr","getIcon","r","id","vv","vm","vt","format","rowsChange","rs","rowChecked","refresh","cmp","showKeys","$alert","toggleItemByKeyAndId","kr","set","modifyItemByKeyAndId","ele","timePrev","istime","domShowInputDatatime","eleRef","timeNew","$ds","funNew","$s","getNameNew","userId","timeCreate","userIdUpdate","timeUpdate","_toConsumableArray","tar","tarId","row","_r","filter","core","_core","apply","arguments","_asyncToGenerator","_regeneratorRuntime","_callee","errTemp","_context","prev","next","updateLoading","abrupt","updateUsersList","stop","mdiCogOutline","WDrawer","WListVertical","LayoutContentInfor","LayoutContentUsers","LayoutContentSettings","mdiInformationVariantCircleOutline","mdiCellphoneKey","mdiLockOpenRemoveOutline","mdiShieldKeyOutline","ms","text","icon","find","clientWidth","clientHeight","LayoutContent","beforeMount","showLanguage","userSelf","LoadingWinBar","CheckYesNo","CheckYes","PageLogin","Layout","setVo","$vo","autoLogin","syncHeight","UpdateWebInfor","UpdateLang","UpdateKpText","UpdateConnState","UpdateSyncState","UpdateLoading","UpdateViewState","UpdateTableData","UpdateData","UpdateHeightApp","UpdateHeightAppEff","UpdateHeightToolbar","UpdateMenu","UpdateUserToken","UpdateUserSelf","keyTable","tableNameCht","tableNameEng","settings","pk","timeEnd","ndata","length","undefined","o","dtmapping","now2strp","genID","nowms2str","add","funTest","tab","order","description","from","isAdmin","isActive","cs","tokens","ds","build","useCreateStorage","state","hostname","location","origin","connState","leftDrawerWidth","heightApp","heightAppEff","kpText","mutations","_mutations","_defineProperty","types","tableName","path","use","Vuex","st","getters","actions","strict","$store","kpLang","csIng","eng","cht","csLogin","csLogout","csErrConn","csErrLogin","aggridLanguage","systemMessage","ok","no","yes","y","n","empty","waitingData","isEditabled","saveChanges","save","close","cancel","processing","anUnexpectedErrorOccurred","getDataError","unknow","toggleToShowPassword","toggleToHidePassword","username","noDescription","logout","menuTreeShow","menuTreeHide","mmUserInfor","mmUsersList","mmUsersListMsg","mmSettings","mmSettingsMsg","nowActiveTokensList","nowBlockList","systemTokenList","failedLoginForNoWebKey","failedLoginForNoToken","failedLoginForNoRedir","failedLoginForCatch","failedLogoutForNoWebKey","failedLogoutForCatch","isVerifiedY","isVerifiedN","isExpiredY","isExpiredN","isBlockedY","isBlockedN","isAdminY","isAdminN","isActiveY","isActiveN","errInNames","errInAccounts","errInEmails","modeEdit","showTabCols","userList","userNameEmpty","userNameDuplicate","userAccountEmpty","userAccountDuplicate","userEmailEmpty","userEmailError","userEmailDuplicate","userRedirEmpty","userTimeEmpty","userAddEmpty","userAdd","userAddNameNew","userAddIdNew","userCopy","userCopyNameNew","userDeleteCheckUsers","userResetPassword","userSaveUsersEmpty","userSaveUsersFail","userSaveUsersSuccess","userEditNoUserId","userEditNoUserData","dayCreate","newUser","failedToAddUser","successfulToAddUser","confirmToDeleteUser","failedToDeleteUser","successfulToDeleteUser","cannotShowUserDetailsInViewMode","allDefaults","active","showChildren","hideChildren","activateChildren","deactivateChildren","isUsernameEmpty","failedToSaveUser","successfulToSaveUser","vObj","updateConnState","commit","updateUserToken","updateUserSelf","forceUpdate","broadcast","chs","$forceUpdate","$children","validLang","getLang","_lang","genKpText","_objectSpread","kpLangExt","webDescription","getKpText","cv","def","isfun","innerHeight","parseUrlParams","ulps","URLSearchParams","search","forEach","goUrl","url","replaceAll","href","$keyLS","u","delay","loginByAccountAndPassword","sent","localStorage","setItem","_core2","_callee2","_context2","waitFun","getItem","checkToken","_core3","_callee3","_context3","Promise","kpIcon","warning","mUI","mDataSelectorSchema","getTableInforBy","keyFind","valueFind","keyPick","getTableChtByKey","nameBase","nameExt","hasName","_name","nameNew","i","pre","config","productionTip","_arguments","Array","slice","call","WAlert","dssm","ui","s","$dssm","directive","domResize","domMutation","domDragDrop","WServHapiClient","showLog","pathname","useWaitToken","apiName","getToken","getServerMethods","_fapi","getWebInfor","recvData","store","App","$mount","webpackEmptyAsyncContext","req","e","Error","code","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","deferred","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","every","splice","getter","__esModule","d","a","definition","defineProperty","enumerable","g","globalThis","Function","obj","prop","hasOwnProperty","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}
|