w-web-api 1.0.15 → 1.0.18

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/docs/WWebApi.html CHANGED
@@ -59,7 +59,7 @@
59
59
 
60
60
 
61
61
 
62
- <h4 class="name" id="WWebApi"><span class="type-signature">(async) </span>new WWebApi<span class="signature">(WOrm, url, db, opt<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Object}</span></h4>
62
+ <h4 class="name" id="WWebApi"><span class="type-signature"></span>new WWebApi<span class="signature">(WOrm, url, db, opt<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {Object}</span></h4>
63
63
 
64
64
 
65
65
 
@@ -71,7 +71,7 @@
71
71
 
72
72
  <dt class="tag-source">Source:</dt>
73
73
  <dd class="tag-source"><ul class="dummy"><li>
74
- <a href="WWebApi.mjs.html">WWebApi.mjs</a>, <a href="WWebApi.mjs.html#line68">line 68</a>
74
+ <a href="WWebApi.mjs.html">WWebApi.mjs</a>, <a href="WWebApi.mjs.html#line69">line 69</a>
75
75
  </li></ul></dd>
76
76
 
77
77
 
@@ -124,7 +124,7 @@
124
124
 
125
125
  <h5>Example</h5>
126
126
 
127
- <pre class="prettyprint"><code>import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
128
127
  getUserById: null,
129
128
  bCheckUser: false,
130
129
  bExcludeWhenNotAdmin: false,
131
130
  serverPort: 11005,
132
131
  webName: {
133
132
  'eng': 'API Service',
134
133
  'cht': 'API管理系統'
135
134
  },
136
135
  .catch((err) => {
137
136
  console.log(err)
138
137
  })</code></pre>
138
+ <pre class="prettyprint"><code>import WOrm from 'w-orm-mongodb/src/WOrmMongodb.mjs' //自行選擇引用ORM, 使用Mongodb測試
139
139
  getUserById: null,
140
140
  bCheckUser: false,
141
141
  bExcludeWhenNotAdmin: false,
142
142
  serverPort: 11005,
143
143
  webName: {
144
144
  'eng': 'API Service',
145
145
  'cht': 'API管理系統'
146
146
  },
147
147
  console.log(err)
148
148
 
149
149
 
150
150
 
@@ -604,7 +604,7 @@
604
604
  <br class="clear">
605
605
 
606
606
  <footer>
607
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Mon Apr 18 2022 09:56:05 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
607
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Tue Apr 19 2022 17:00:10 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
608
608
  </footer>
609
609
 
610
610
  <script>prettyPrint();</script>
@@ -103,13 +103,15 @@ import WServOrm from 'w-serv-orm/src/WServOrm.mjs'
103
103
  * }
104
104
  *
105
105
  * //WWebApi
106
- * WWebApi(WOrm, url, db, opt)
107
- * .catch((err) => {
108
- * console.log(err)
109
- * })
106
+ * let instWWebApi = WWebApi(WOrm, url, db, opt)
107
+ *
108
+ * instWWebApi.on('error', (err) => {
109
+ * console.log(err)
110
+ * })
110
111
  *
111
112
  */
112
- async function WWebApi(WOrm, url, db, opt = {}) {
113
+ function WWebApi(WOrm, url, db, opt = {}) {
114
+ let instWServHapiServer = null
113
115
 
114
116
 
115
117
  //check WOrm
@@ -362,7 +364,7 @@ async function WWebApi(WOrm, url, db, opt = {}) {
362
364
 
363
365
 
364
366
  //WServHapiServer
365
- let wshs = WServHapiServer({
367
+ instWServHapiServer = new WServHapiServer({
366
368
  port: opt.serverPort,
367
369
  pathStaticFiles,
368
370
  apis,
@@ -386,7 +388,7 @@ async function WWebApi(WOrm, url, db, opt = {}) {
386
388
  })
387
389
 
388
390
 
389
- return wshs
391
+ return instWServHapiServer
390
392
  }
391
393
 
392
394
 
@@ -405,7 +407,7 @@ export default WWebApi
405
407
  <br class="clear">
406
408
 
407
409
  <footer>
408
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Mon Apr 18 2022 09:56:05 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
410
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Tue Apr 19 2022 17:00:10 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
409
411
  </footer>
410
412
 
411
413
  <script>prettyPrint();</script>
package/docs/index.html CHANGED
@@ -68,7 +68,7 @@
68
68
  <br class="clear">
69
69
 
70
70
  <footer>
71
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Mon Apr 18 2022 09:56:05 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
71
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.10</a> on Tue Apr 19 2022 17:00:10 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
72
72
  </footer>
73
73
 
74
74
  <script>prettyPrint();</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "w-web-api",
3
- "version": "1.0.15",
3
+ "version": "1.0.18",
4
4
  "main": "dist/w-web-api.umd.js",
5
5
  "dependencies": {
6
6
  "@mdi/js": "^6.6.96",
@@ -9,9 +9,9 @@
9
9
  "showdown": "^2.0.3",
10
10
  "w-component-vue": "^2.2.6",
11
11
  "w-data-collector": "^1.0.13",
12
- "w-serv-hapi": "^1.0.6",
12
+ "w-serv-hapi": "^1.0.9",
13
13
  "w-serv-orm": "^1.0.2",
14
- "wsemi": "^1.6.55"
14
+ "wsemi": "^1.6.57"
15
15
  },
16
16
  "devDependencies": {
17
17
  "@vue/cli-plugin-babel": "^4.5.13",
@@ -59,13 +59,15 @@ import WServOrm from 'w-serv-orm/src/WServOrm.mjs'
59
59
  * }
60
60
  *
61
61
  * //WWebApi
62
- * WWebApi(WOrm, url, db, opt)
63
- * .catch((err) => {
64
- * console.log(err)
65
- * })
62
+ * let instWWebApi = WWebApi(WOrm, url, db, opt)
63
+ *
64
+ * instWWebApi.on('error', (err) => {
65
+ * console.log(err)
66
+ * })
66
67
  *
67
68
  */
68
- async function WWebApi(WOrm, url, db, opt = {}) {
69
+ function WWebApi(WOrm, url, db, opt = {}) {
70
+ let instWServHapiServer = null
69
71
 
70
72
 
71
73
  //check WOrm
@@ -318,7 +320,7 @@ async function WWebApi(WOrm, url, db, opt = {}) {
318
320
 
319
321
 
320
322
  //WServHapiServer
321
- let wshs = WServHapiServer({
323
+ instWServHapiServer = new WServHapiServer({
322
324
  port: opt.serverPort,
323
325
  pathStaticFiles,
324
326
  apis,
@@ -342,7 +344,7 @@ async function WWebApi(WOrm, url, db, opt = {}) {
342
344
  })
343
345
 
344
346
 
345
- return wshs
347
+ return instWServHapiServer
346
348
  }
347
349
 
348
350
 
@@ -5,6 +5,7 @@ import genPm from 'wsemi/src/genPm.mjs'
5
5
 
6
6
  async function provideApis(url, group, apis) {
7
7
  //url: 指API伺服器提供的接入網址, 例如 http://localhost:11005/replaceAPIsByLevels
8
+ //group: 指API所屬群組, 主要呼叫replaceAPIsByLevels為主
8
9
 
9
10
  //pm
10
11
  let pm = genPm()
@@ -7,7 +7,7 @@
7
7
  :icon="'mdi-menu'"
8
8
  :tooltip="'左側選單'"
9
9
  :shadow="false"
10
- @click="drawer = !drawer"
10
+ @click="drawer=!drawer"
11
11
  v-if="false"
12
12
  ></WButtonCircle>
13
13
 
package/srv.mjs CHANGED
@@ -29,10 +29,11 @@ let opt = {
29
29
  }
30
30
 
31
31
  //WWebApi
32
- WWebApi(WOrm, url, db, opt)
33
- .catch((err) => {
34
- console.log(err)
35
- })
32
+ let instWWebApi = WWebApi(WOrm, url, db, opt)
33
+
34
+ instWWebApi.on('error', (err) => {
35
+ console.log(err)
36
+ })
36
37
 
37
38
 
38
39
  //node --experimental-modules --es-module-specifier-resolution=node srv.mjs
@@ -1 +1 @@
1
- {"apis":"RnCO2r"}
1
+ {"apis":"E90dfN"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?a022","webpack:///./src/components/MdPanel.vue?2ae0","webpack:///./src/App.vue?01b3","webpack:///./src/components/Layout.vue?1541","webpack:///./src/components/LayoutContent.vue?966f","webpack:///./src/components/LayoutContentList.vue?52db","webpack:///./src/components/MdPanel.vue?bdbd","webpack:///src/components/MdPanel.vue","webpack:///./src/components/MdPanel.vue?45ad","webpack:///./src/components/MdPanel.vue","webpack:///src/components/LayoutContentList.vue","webpack:///./src/components/LayoutContentList.vue?7190","webpack:///./src/components/LayoutContentList.vue","webpack:///src/components/LayoutContent.vue","webpack:///./src/components/LayoutContent.vue?5b65","webpack:///./src/components/LayoutContent.vue","webpack:///src/components/Layout.vue","webpack:///./src/components/Layout.vue?ff31","webpack:///./src/components/Layout.vue","webpack:///src/App.vue","webpack:///./src/App.vue?4c4f","webpack:///./src/App.vue?430b","webpack:///./src/store/types.mjs","webpack:///./server/filePathToCode.mjs","webpack:///./src/schema/tables/apis.mjs","webpack:///./src/schema/index.mjs","webpack:///./src/store/mutations.mjs","webpack:///./src/store/index.mjs","webpack:///./src/plugins/mVuetify.mjs","webpack:///./src/plugins/mUI.mjs","webpack:///./src/plugins/mDataSelectorSchema.mjs","webpack:///./src/plugins/mDataSupport.mjs","webpack:///./src/main.js","webpack:///./src/components/LayoutContentList.vue?435f"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","_vm","this","_h","$createElement","_c","_self","directives","rawName","on","resize","attrs","_e","staticRenderFns","staticStyle","style","heightToolbar","webLogo","_v","_s","webName","$t","tgLangs","changeLang","model","callback","$$v","tgLangSelect","expression","changeApis","resizeTree","heightTree","apisTree","lineHeightTree","apiActive","funActive","scopedSlots","_u","fn","props","type","$event","ckItem","getItemByKey","text","getMethodColorByKey","getMethodByKey","$ui","gv","getMethodColor","apiSelect","getMethod","staticClass","getDay","optputMenuItems","optputMenuItemSelect","top","changeOptputMenuItemSelect","optputMenuItemSelectId","getOutputJsonObj","getOutputJson","domProps","mdh","components","md","default","computed","cv","methods","component","WGroupRadio","WTree","WJsonView","MdPanel","kpApisTree","kpColorMethod","GET","POST","PUT","DEL","apis","vo","hasApis","id","icon","genTree","each","kpTree","set","bindRoot","LayoutContentList","syncState","WButtonCircle","WTextSelect","LayoutContent","drawer","beforeMount","viewState","document","Layout","ready","mounted","UpdateWebInfor","UpdateLang","UpdateKpText","UpdateConnState","UpdateSyncState","UpdateLoading","UpdateViewState","UpdateTableData","UpdateData","UpdateHeightApp","UpdateHeightAppEff","UpdateHeightToolbar","UpdateMenu","UpdateUserToken","UpdateUserSelf","filePathToCode","indexOf","keyTable","tableNameCht","tableNameEng","settings","pk","funNew","ndata","dtmapping","keys","now2strp","genID","timeCreate","nowms2str","timeUpdate","isActive","funTest","rs","map","item","k","v","order","isestr","dtpick","console","log","tab","cs","ds","build","useCreateStorage","state","hostname","location","origin","webInfor","connState","loading","leftDrawerWidth","heightApp","heightAppEff","menu","userToken","userSelf","email","isAdmin","lang","keyLangs","empty","eng","cht","noSelectApi","waitingData","tokens","version","levels","keywords","creator","dataSource","mdInputParams","inputExample","mdOutputParams","outputExample","outputMenuTree","outputMenuRaw","kpText","mutations","types","msg","tableName","path","Vue","use","Vuex","st","Store","getters","actions","strict","$store","Vuetify","icons","iconfont","setVo","vObj","updateConnState","commit","updateLoading","updateViewState","forceUpdate","broadcast","chs","$forceUpdate","$children","setLang","getKpLang","webDescription","kls","getKpText","def","isfun","syncHeight","innerHeight","waitData","delay","waitFun","iseobj","mUI","mDataSelectorSchema","getTableInforBy","keyFind","valueFind","keyPick","find","getTableChtByKey","mDataSupport","config","productionTip","$alert","arguments","WAlert","dssm","dspt","ui","$s","$dssm","$dspt","$dg","directive","domResize","domMutation","domDragDrop","bFirstSync","WServHapiClient","getUrl","pathname","useWaitToken","getToken","getServerMethods","_fapi","$fapi","getWebInfor","then","wi","catch","err","recvData","getAfterUpdateTableTags","vuetify","mVuetify","store","render","h","App","$mount"],"mappings":"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","file":"js/app.3361a687.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=css&\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MdPanel.vue?vue&type=style&index=0&id=6700278b&scoped=true&lang=css&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],on:{\"domresize\":_vm.resize}},[_c('transition',{attrs:{\"enter-active-class\":\"fade-enter-active\",\"leave-active-class\":\"fade-leave-active\"}},[(_vm.ready)?_c('Layout'):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100vh\",\"background\":\"#f5f5f5\"}},[_c('div',{style:((\"height:\" + _vm.heightToolbar + \"px; padding:0px 10px; display:flex; align-items:center; background:#fff; border-bottom:1px solid #ccc;\"))},[(false)?_c('WButtonCircle',{attrs:{\"icon\":'mdi-menu',\"tooltip\":'左側選單',\"shadow\":false},on:{\"click\":function($event){_vm.drawer = !_vm.drawer}}}):_vm._e(),_c('div',{staticStyle:{\"padding-left\":\"5px\",\"white-space\":\"nowrap\"}},[_c('div',{staticStyle:{\"display\":\"flex\",\"align-items\":\"center\"}},[(_vm.webLogo)?_c('div',{staticStyle:{\"padding-right\":\"10px\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('img',{staticStyle:{\"width\":\"36px\",\"height\":\"36px\"},attrs:{\"src\":_vm.webLogo}})]):_vm._e(),_c('div',[_c('div',{staticStyle:{\"font-size\":\"1.2rem\",\"color\":\"#000\"}},[_vm._v(_vm._s(_vm.webName))]),_c('div',{staticStyle:{\"font-size\":\"0.8rem\",\"color\":\"#666\"}},[_vm._v(_vm._s(_vm.$t('webDescription')))])])])]),_c('div',{staticStyle:{\"width\":\"100%\"}}),_c('div',{staticStyle:{\"padding-right\":\"10px\",\"white-space\":\"nowrap\"}},[_c('WTextSelect',{attrs:{\"items\":_vm.tgLangs},on:{\"input\":_vm.changeLang},model:{value:(_vm.tgLangSelect),callback:function ($$v) {_vm.tgLangSelect=$$v},expression:\"tgLangSelect\"}})],1)],1),_c('div',{style:((\"height:calc( 100% - \" + _vm.heightToolbar + \"px );\"))},[_c('LayoutContent')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"}},[(_vm.syncState)?[_c('LayoutContentList')]:_c('div',{staticStyle:{\"padding\":\"20px\",\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticStyle:{\"height\":\"100%\"},attrs:{\"changeApis\":_vm.changeApis}},[(_vm.hasApis)?_c('div',{staticStyle:{\"display\":\"flex\",\"height\":\"100%\"}},[_c('div',{directives:[{name:\"domresize\",rawName:\"v-domresize\"}],staticStyle:{\"min-width\":\"400px\",\"height\":\"100%\",\"color\":\"#444\",\"background\":\"#fff\"},on:{\"domresize\":_vm.resizeTree}},[_c('WTree',{attrs:{\"viewHeightMax\":_vm.heightTree,\"data\":_vm.apisTree,\"iconHeight\":_vm.lineHeightTree,\"defItemHeight\":_vm.lineHeightTree,\"activable\":true,\"activeItem\":_vm.apiActive,\"fun-active\":_vm.funActive,\"itemTextColorActive\":'#000',\"itemBackgroundColorActive\":'rgba(100,100,100,0.15)'},scopedSlots:_vm._u([{key:\"item\",fn:function(props){return [(props.data.type!=='node')?_c('div',{style:((\"display:flex; align-items:center; min-height:\" + _vm.lineHeightTree + \"px;\"))},[_vm._v(\" \"+_vm._s(props.data.key)+\" \")]):_c('div',{style:((\"display:flex; align-items:center; min-height:\" + _vm.lineHeightTree + \"px; cursor:pointer;\")),on:{\"click\":function($event){_vm.ckItem(_vm.getItemByKey(props.data.text))}}},[_c('div',{staticStyle:{\"padding-right\":\"5px\"}},[_c('div',{style:((\"padding:0px 6px; font-size:0.7rem; border-radius:10px; border:1px solid #ddd; color:#fff; background:\" + (_vm.getMethodColorByKey(props.data.text)) + \";\"))},[_vm._v(\" \"+_vm._s(_vm.getMethodByKey(props.data.text))+\" \")])]),_c('div',[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.getItemByKey(props.data.text),'name'))+\" \")])])]}}],null,false,901240009)})],1),_c('div',{staticStyle:{\"height\":\"100%\",\"border-right\":\"1px solid #ddd\"}}),(_vm.apiSelect)?_c('div',{staticStyle:{\"width\":\"100%\",\"height\":\"100%\",\"overflow-y\":\"auto\"}},[_c('div',{staticStyle:{\"padding\":\"15px 20px 10px 10px\"}},[_c('div',{staticStyle:{\"padding\":\"5px\"}},[_c('div',{staticStyle:{\"padding\":\"10px\",\"border-radius\":\"5px\",\"border\":\"1px solid #ddd\",\"background\":\"#fff\",\"display\":\"flex\",\"align-items\":\"center\"}},[_c('div',{staticStyle:{\"padding-right\":\"5px\"}},[_c('div',{style:((\"padding:0px 6px; font-size:0.7rem; border-radius:10px; border:1px solid #ddd; color:#fff; background:\" + (_vm.getMethodColor(_vm.apiSelect)) + \";\"))},[_vm._v(\" \"+_vm._s(_vm.getMethod(_vm.apiSelect))+\" \")])]),_c('div',{staticStyle:{\"font-size\":\"0.8rem\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'url'))+\" \")])])]),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticStyle:{\"color\":\"#485ed5\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'name'))+\" \")]),_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'description'))+\" \")])]),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('tokens'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'tokens'))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('version'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'version'))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('levels'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,''))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('keywords'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,''))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('state'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,''))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('timeCreate'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'timeCreate',_vm.getDay))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('timeUpdate'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'timeUpdate',_vm.getDay))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('creator'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'creator'))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('dataSource'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'dataSource'))+\" \")])]),_c('div',{staticClass:\"bk\"},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('isActive'))+\" \")]),_c('div',{staticClass:\"bk-item\"},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'isActive'))+\" \")])])]),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('mdInputParams'))+\" \")]),_c('div',{staticClass:\"bk-item\",staticStyle:{\"padding\":\"10px\"}},[_c('MdPanel',{attrs:{\"md\":_vm.$ui.gv(_vm.apiSelect,'mdInputParams')}})],1)]),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('inputExample'))+\" \")]),_c('div',{staticClass:\"bk-item\",staticStyle:{\"padding\":\"10px\"}},[_vm._v(\" \"+_vm._s(_vm.$ui.gv(_vm.apiSelect,'inputExample'))+\" \")])]),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('mdOutputParams'))+\" \")]),_c('div',{staticClass:\"bk-item\",staticStyle:{\"padding\":\"10px\"}},[_c('MdPanel',{attrs:{\"md\":_vm.$ui.gv(_vm.apiSelect,'mdOutputParams')}})],1)]),_c('div',{staticStyle:{\"padding\":\"10px\"}},[_c('div',{staticClass:\"bk-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('outputExample'))+\" \")]),_c('div',{staticStyle:{\"padding-top\":\"10px\"}},[_c('div',{staticStyle:{\"padding-left\":\"10px\",\"margin-bottom\":\"-1px\"}},[_c('WGroupRadio',{attrs:{\"items\":_vm.optputMenuItems,\"value\":_vm.optputMenuItemSelect,\"group\":true,\"group-border-radius-style\":{top:true},\"group-shift\":7,\"border-radius\":20,\"border-color\":'#ddd',\"border-color-hover\":'#dadada',\"border-color-active\":'orange lighten-2',\"margin-style\":{}},on:{\"input\":_vm.changeOptputMenuItemSelect}})],1),_c('div',{staticStyle:{\"border\":\"1px solid #ddd\",\"background\":\"#fff\"}},[(_vm.optputMenuItemSelectId==='tree')?_c('div',{},[_c('WJsonView',{staticStyle:{\"width\":\"100%\"},attrs:{\"viewHeightMax\":null,\"data\":_vm.getOutputJsonObj(_vm.apiSelect)}})],1):_vm._e(),(_vm.optputMenuItemSelectId==='raw')?_c('div',{staticStyle:{\"padding\":\"10px\",\"color\":\"#555\",\"font-size\":\"0.85rem\"}},[_c('pre',[_vm._v(_vm._s(_vm.getOutputJson(_vm.apiSelect)))])]):_vm._e()])])])])]):_c('div',{staticStyle:{\"padding\":\"20px\",\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('noSelectApi'))+\" \")])]):_c('div',{staticStyle:{\"padding\":\"20px\",\"font-size\":\"0.9rem\"}},[_vm._v(\" \"+_vm._s(_vm.$t('waitingData'))+\" \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"md\",domProps:{\"innerHTML\":_vm._s(_vm.mdh)}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n <div>\r\n <div class=\"md\" v-html=\"mdh\"></div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n// import get from 'lodash/get'\r\n// import find from 'lodash/find'\r\n// import each from 'lodash/each'\r\n// import map from 'lodash/map'\r\n// import size from 'lodash/size'\r\n// import sortBy from 'lodash/sortBy'\r\n// import isNumber from 'lodash/isNumber'\r\n// import cloneDeep from 'lodash/cloneDeep'\r\n// import sep from 'wsemi/src/sep.mjs'\r\n// import isobj from 'wsemi/src/isobj.mjs'\r\n// import iseobj from 'wsemi/src/iseobj.mjs'\r\n// import isestr from 'wsemi/src/isestr.mjs'\r\n// import isearr from 'wsemi/src/isearr.mjs'\r\n// import pmSeries from 'wsemi/src/pmSeries.mjs'\r\n// import waitFun from 'wsemi/src/waitFun.mjs'\r\n// import strleft from 'wsemi/src/strleft.mjs'\r\n// import strdelleft from 'wsemi/src/strdelleft.mjs'\r\n// import str2aes from 'wsemi/src/str2aes.mjs'\r\n// import timeTZ2past from 'wsemi/src/timeTZ2past.mjs'\r\nimport Showdown from 'showdown'\r\n// import MarkdownIt from 'markdown-it'\r\n\r\n\r\nexport default {\r\n components: {\r\n },\r\n props: {\r\n md: {\r\n type: String,\r\n default: '',\r\n },\r\n },\r\n data: function() {\r\n return {\r\n }\r\n },\r\n computed: {\r\n\r\n mdh: function() {\r\n let vo = this\r\n\r\n // md = `| 參數 | 型別 | 範例 |\r\n // | -- | -- | -- |\r\n // | token | STRING | key-for-token |\r\n // | id | STRING | id-for-test |\r\n // | paramA | INTEGER | 123 |\r\n // | paramB | DOUBLE | 123.456 |\r\n // `\r\n\r\n let cv = new Showdown.Converter()\r\n cv.setOption('tables', true)\r\n let html = cv.makeHtml(vo.md)\r\n\r\n // let cv = new MarkdownIt()\r\n // let html = cv.render(vo.md)\r\n\r\n // console.log('md', md)\r\n // console.log('html', html)\r\n return html\r\n },\r\n\r\n },\r\n methods: {\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n\r\n.md >>> table {\r\n border-collapse: collapse;\r\n margin: 0;\r\n padding: 0;\r\n word-break: initial;\r\n}\r\n\r\n.md >>> tr {\r\n margin: 0;\r\n padding: 0;\r\n}\r\n\r\n.md >>> table tr th {\r\n font-weight: bold;\r\n background: #eee;\r\n border: 1px solid #ddd;\r\n border-bottom: 0;\r\n margin: 0;\r\n padding: 6px 13px;\r\n}\r\n\r\n.md >>> table tr td {\r\n border: 1px solid #ddd;\r\n margin: 0;\r\n padding: 6px 13px;\r\n}\r\n\r\n.md >>> h1 {\r\n font-weight: bold;\r\n font-size: 1.2rem;\r\n line-height: 1.2rem;\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.md >>> h2 {\r\n font-weight: bold;\r\n font-size: 1.1rem;\r\n line-height: 1.1rem;\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.md >>> h3 {\r\n font-weight: bold;\r\n font-size: 1rem;\r\n line-height: 1rem;\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.md >>> h4 {\r\n font-weight: bold;\r\n font-size: 1rem;\r\n line-height: 1rem;\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.md >>> h5 {\r\n font-weight: bold;\r\n font-size: 1rem;\r\n line-height: 1rem;\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.md >>> h6 {\r\n font-weight: bold;\r\n font-size: 1rem;\r\n line-height: 1rem;\r\n margin-top: 0.5rem;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MdPanel.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MdPanel.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MdPanel.vue?vue&type=template&id=6700278b&scoped=true&\"\nimport script from \"./MdPanel.vue?vue&type=script&lang=js&\"\nexport * from \"./MdPanel.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MdPanel.vue?vue&type=style&index=0&id=6700278b&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6700278b\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div\r\n style=\"height:100%;\"\r\n :changeApis=\"changeApis\"\r\n >\r\n\r\n <div style=\"display:flex; height:100%;\" v-if=\"hasApis\">\r\n\r\n <div\r\n style=\"min-width:400px; height:100%; color:#444; background:#fff;\"\r\n v-domresize\r\n @domresize=\"resizeTree\"\r\n >\r\n\r\n <WTree\r\n :viewHeightMax=\"heightTree\"\r\n :data=\"apisTree\"\r\n :iconHeight=\"lineHeightTree\"\r\n :defItemHeight=\"lineHeightTree\"\r\n :activable=\"true\"\r\n :activeItem=\"apiActive\"\r\n :fun-active=\"funActive\"\r\n :itemTextColorActive=\"'#000'\"\r\n :itemBackgroundColorActive =\"'rgba(100,100,100,0.15)'\"\r\n >\r\n <template v-slot:item=\"props\">\r\n\r\n <div\r\n :style=\"`display:flex; align-items:center; min-height:${lineHeightTree}px;`\"\r\n v-if=\"props.data.type!=='node'\"\r\n >\r\n {{props.data.key}}\r\n </div>\r\n\r\n <div\r\n :style=\"`display:flex; align-items:center; min-height:${lineHeightTree}px; cursor:pointer;`\"\r\n @click=\"ckItem(getItemByKey(props.data.text))\"\r\n v-else\r\n >\r\n\r\n <div style=\"padding-right:5px;\">\r\n <div :style=\"`padding:0px 6px; font-size:0.7rem; border-radius:10px; border:1px solid #ddd; color:#fff; background:${getMethodColorByKey(props.data.text)};`\">\r\n {{getMethodByKey(props.data.text)}}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n {{$ui.gv(getItemByKey(props.data.text),'name')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </template>\r\n </WTree>\r\n\r\n </div>\r\n\r\n <div style=\"height:100%; border-right:1px solid #ddd;\"></div>\r\n\r\n <div style=\"width:100%; height:100%; overflow-y:auto;\" v-if=\"apiSelect\">\r\n <div style=\"padding:15px 20px 10px 10px;\">\r\n\r\n <div style=\"padding:5px;\">\r\n\r\n <div style=\"padding:10px; border-radius:5px; border:1px solid #ddd; background:#fff; display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:5px;\">\r\n <div :style=\"`padding:0px 6px; font-size:0.7rem; border-radius:10px; border:1px solid #ddd; color:#fff; background:${getMethodColor(apiSelect)};`\">\r\n {{getMethod(apiSelect)}}\r\n </div>\r\n </div>\r\n\r\n <div style=\"font-size:0.8rem;\">\r\n {{$ui.gv(apiSelect,'url')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px;\">\r\n\r\n <div style=\"color:#485ed5;\">\r\n {{$ui.gv(apiSelect,'name')}}\r\n </div>\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$ui.gv(apiSelect,'description')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px;\">\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('tokens')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'tokens')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('version')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'version')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('levels')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('keywords')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('state')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('timeCreate')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'timeCreate',getDay)}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('timeUpdate')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'timeUpdate',getDay)}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('creator')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'creator')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('dataSource')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'dataSource')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"bk\" style=\"\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('isActive')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"\">\r\n {{$ui.gv(apiSelect,'isActive')}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px;\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('mdInputParams')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"padding:10px;\">\r\n <MdPanel\r\n :md=\"$ui.gv(apiSelect,'mdInputParams')\"\r\n ></MdPanel>\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px;\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('inputExample')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"padding:10px;\">\r\n {{$ui.gv(apiSelect,'inputExample')}}\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px;\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('mdOutputParams')}}\r\n </div>\r\n\r\n <div class=\"bk-item\" style=\"padding:10px;\">\r\n <MdPanel\r\n :md=\"$ui.gv(apiSelect,'mdOutputParams')\"\r\n ></MdPanel>\r\n </div>\r\n\r\n </div>\r\n\r\n <div style=\"padding:10px;\">\r\n\r\n <div class=\"bk-title\" style=\"\">\r\n {{$t('outputExample')}}\r\n </div>\r\n\r\n <div style=\"padding-top:10px;\">\r\n\r\n <div style=\"padding-left:10px; margin-bottom:-1px;\">\r\n <!-- 因上下皆有border, 故需負margin-bottom來吃掉重複border -->\r\n <WGroupRadio\r\n :items=\"optputMenuItems\"\r\n :value=\"optputMenuItemSelect\"\r\n @input=\"changeOptputMenuItemSelect\"\r\n :group=\"true\"\r\n :group-border-radius-style=\"{top:true}\"\r\n :group-shift=\"7\"\r\n :border-radius=\"20\"\r\n :border-color=\"'#ddd'\"\r\n :border-color-hover=\"'#dadada'\"\r\n :border-color-active=\"'orange lighten-2'\"\r\n :margin-style=\"{}\"\r\n ></WGroupRadio>\r\n </div>\r\n\r\n <div style=\"border:1px solid #ddd; background:#fff\">\r\n\r\n <div style=\"\" v-if=\"optputMenuItemSelectId==='tree'\">\r\n <WJsonView\r\n style=\"width:100%;\"\r\n :viewHeightMax=\"null\"\r\n :data=\"getOutputJsonObj(apiSelect)\"\r\n ></WJsonView>\r\n </div>\r\n\r\n <div style=\"padding:10px; color:#555; font-size:0.85rem;\" v-if=\"optputMenuItemSelectId==='raw'\">\r\n <pre>{{getOutputJson(apiSelect)}}</pre>\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 </div>\r\n\r\n <div\r\n style=\"padding:20px; font-size:0.9rem;\"\r\n v-else\r\n >\r\n {{$t('noSelectApi')}}\r\n </div>\r\n\r\n </div>\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 get from 'lodash/get'\r\nimport set from 'lodash/set'\r\n// import map from 'lodash/map'\r\nimport each from 'lodash/each'\r\nimport size from 'lodash/size'\r\n// import join from 'lodash/join'\r\nimport trim from 'lodash/trim'\r\nimport find from 'lodash/find'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\n// import isestr from 'wsemi/src/isestr.mjs'\r\n// import isnum from 'wsemi/src/isnum.mjs'\r\n// import isarr from 'wsemi/src/isarr.mjs'\r\nimport isobj from 'wsemi/src/isobj.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport j2o from 'wsemi/src/j2o.mjs'\r\n// import cdbl from 'wsemi/src/cdbl.mjs'\r\n// import str2md5 from 'wsemi/src/str2md5.mjs'\r\n// import sep from 'wsemi/src/sep.mjs'\r\nimport timemsTZ2day from 'wsemi/src/timemsTZ2day.mjs'\r\nimport convertToTree from 'wsemi/src/convertToTree.mjs'\r\nimport WGroupRadio from 'w-component-vue/src/components/WGroupRadio.vue'\r\nimport WTree from 'w-component-vue/src/components/WTree.vue'\r\nimport WJsonView from 'w-component-vue/src/components/WJsonView.vue'\r\nimport MdPanel from './MdPanel.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n WGroupRadio,\r\n WTree,\r\n WJsonView,\r\n MdPanel,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n heightTree: 2,\r\n lineHeightTree: 38,\r\n\r\n apisTree: [],\r\n kpApisTree: {},\r\n apiActive: null,\r\n apiSelect: null,\r\n\r\n kpColorMethod: {\r\n GET: '#7c2',\r\n POST: '#68f',\r\n PUT: '#f82',\r\n DEL: '#f26',\r\n },\r\n\r\n optputMenuItemSelectId: 'tree',\r\n\r\n }\r\n },\r\n computed: {\r\n\r\n apis: function() {\r\n return get(this, '$store.state.apis')\r\n },\r\n\r\n changeApis: function() {\r\n let vo = this\r\n vo.genTree(vo.apis)\r\n return ''\r\n },\r\n\r\n hasApis: function() {\r\n return size(this.apisTree) > 0\r\n },\r\n\r\n optputMenuItems: function() {\r\n let vo = this\r\n let ms = [\r\n {\r\n id: 'tree',\r\n text: vo.$t('outputMenuTree'),\r\n icon: 'mdi-vanity-light',\r\n },\r\n {\r\n id: 'raw',\r\n text: vo.$t('outputMenuRaw'),\r\n icon: 'mdi-lan',\r\n },\r\n ]\r\n return ms\r\n },\r\n\r\n optputMenuItemSelect: function() {\r\n let vo = this\r\n let r = find(vo.optputMenuItems, { id: vo.optputMenuItemSelectId })\r\n // console.log(r)\r\n return r\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n resizeTree: function(msg) {\r\n // console.log('methods resizeTree', msg)\r\n\r\n let vo = this\r\n\r\n //h\r\n let h = get(msg, 'snew.clientHeight')\r\n // console.log(h)\r\n\r\n //update\r\n vo.heightTree = h\r\n\r\n },\r\n\r\n genTree: function () {\r\n let vo = this\r\n\r\n //default\r\n vo.apisTree = []\r\n vo.kpApisTree = {}\r\n\r\n //cloneDeep\r\n let apis = cloneDeep(vo.apis)\r\n // console.log('apis', cloneDeep(apis))\r\n\r\n //tr\r\n let tr = {}\r\n let kpTree = {}\r\n each(apis, (v) => {\r\n\r\n //id, levels\r\n let id = v.id\r\n let levels = `${v.levels}.${v.name}`\r\n\r\n //save\r\n kpTree[id] = v\r\n\r\n //check\r\n if (!isobj(get(tr, levels))) {\r\n set(tr, levels, id)\r\n }\r\n\r\n })\r\n // console.log('tr', cloneDeep(tr))\r\n // console.log('kpTree', cloneDeep(kpTree))\r\n\r\n //convertToTree, 由預處理tree物件轉成tree物件\r\n let tree = convertToTree(tr, { bindRoot: '全部' })\r\n // console.log('tree', cloneDeep(tree))\r\n\r\n //apiSelect, 預先選定api項目, 非tree選單active物件, 因id由convertToTree轉換提供, 故不能直接算得active選單物件id\r\n let apiSelect = get(apis, 0, null)\r\n // console.log('apiSelect', cloneDeep(apiSelect))\r\n\r\n //save\r\n vo.apiSelect = apiSelect\r\n vo.apisTree = tree\r\n vo.kpApisTree = kpTree\r\n\r\n },\r\n\r\n getItemByKey: function(key) {\r\n let vo = this\r\n // let k = `kpApisTree.${key}`\r\n // console.log('getItemByKey k', k)\r\n let r = vo.kpApisTree[key]\r\n // console.log('getItemByKey r', r, vo.kpApisTree)\r\n return r\r\n },\r\n\r\n getMethod: function(item) {\r\n // let vo = this\r\n let method = get(item, 'method', '').toUpperCase()\r\n return method\r\n },\r\n\r\n getMethodByKey: function(key) {\r\n let vo = this\r\n let item = vo.getItemByKey(key)\r\n let method = get(item, 'method', '').toUpperCase()\r\n return method\r\n },\r\n\r\n getMethodColor: function(item) {\r\n let vo = this\r\n let method = vo.getMethod(item)\r\n let color = get(vo.kpColorMethod, method, '#888')\r\n return color\r\n },\r\n\r\n getMethodColorByKey: function(key) {\r\n let vo = this\r\n let method = vo.getMethodByKey(key)\r\n let color = get(vo.kpColorMethod, method, '#888')\r\n return color\r\n },\r\n\r\n getDay: function(t) {\r\n return timemsTZ2day(t)\r\n },\r\n\r\n getOutputJson: function(item) {\r\n // let vo = this\r\n let j = get(item, 'outputExample', '')\r\n j = trim(j)\r\n return j\r\n },\r\n\r\n getOutputJsonObj: function(item) {\r\n // let vo = this\r\n let j = this.getOutputJson(item)\r\n // console.log(j)\r\n let o = j2o(j)\r\n return o\r\n },\r\n\r\n funActive: function(msg) {\r\n let vo = this\r\n let b = !Array.isArray(msg.item.children) //children非陣列代表沒有所屬節點\r\n if (b) {\r\n if (!iseobj(vo.apiActive)) { //偵測若沒有apiActive才初始化預先選擇之api項目, 非api完整資訊\r\n let id = msg.item.id\r\n vo.apiActive = { id }\r\n // console.log('!iseobj(vo.apiActive)', vo.apiActive)\r\n }\r\n }\r\n return b\r\n },\r\n\r\n changeOptputMenuItemSelect: function(msg) {\r\n // console.log('changeOptputMenuItemSelect', msg)\r\n let vo = this\r\n vo.optputMenuItemSelectId = msg.id\r\n },\r\n\r\n ckItem: function(item) {\r\n // console.log('ckItem', item)\r\n let vo = this\r\n vo.apiSelect = cloneDeep(item)\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.bk {\r\n display:inline-block;\r\n width:200px;\r\n padding:0px 10px 10px 0px;\r\n vertical-align:top;\r\n}\r\n.bk-title {\r\n font-size:0.8rem;\r\n color:#888;\r\n}\r\n.bk-item {\r\n padding:3px 5px;\r\n font-size:0.9rem;\r\n line-height:0.9rem;\r\n border-radius:5px;\r\n border:1px solid #ddd;\r\n background:#fff;\r\n}\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutContentList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutContentList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LayoutContentList.vue?vue&type=template&id=7c186c61&scoped=true&\"\nimport script from \"./LayoutContentList.vue?vue&type=script&lang=js&\"\nexport * from \"./LayoutContentList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LayoutContentList.vue?vue&type=style&index=0&id=7c186c61&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c186c61\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div style=\"height:100%;\">\r\n\r\n <template v-if=\"syncState\">\r\n\r\n <LayoutContentList></LayoutContentList>\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 get from 'lodash/get'\r\n// import map from 'lodash/map'\r\n// import each from 'lodash/each'\r\n// import size from 'lodash/size'\r\n// import cloneDeep from 'lodash/cloneDeep'\r\n// import isestr from 'wsemi/src/isestr.mjs'\r\n// import isnum from 'wsemi/src/isnum.mjs'\r\n// import cdbl from 'wsemi/src/cdbl.mjs'\r\n// import WPanelBulge from 'w-component-vue/src/components/WPanelBulge.vue'\r\n// import WButtonChip from 'w-component-vue/src/components/WButtonChip.vue'\r\n// import WGroupCheck from 'w-component-vue/src/components/WGroupCheck.vue'\r\n// import WTree from 'w-component-vue/src/components/WTree.vue'\r\nimport LayoutContentList from './LayoutContentList.vue'\r\n\r\n\r\nexport default {\r\n components: {\r\n // WPanelBulge,\r\n // WButtonChip,\r\n // WGroupCheck,\r\n // WTree,\r\n LayoutContentList,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n }\r\n },\r\n computed: {\r\n\r\n syncState: function() {\r\n return get(this, '$store.state.syncState')\r\n },\r\n\r\n },\r\n methods: {\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutContent.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutContent.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LayoutContent.vue?vue&type=template&id=9b2333d2&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-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b2333d2\",\n null\n \n)\n\nexport default component.exports","<template>\r\n <div style=\"height:100vh; background:#f5f5f5;\">\r\n\r\n <div :style=\"`height:${heightToolbar}px; padding:0px 10px; display:flex; align-items:center; background:#fff; border-bottom:1px solid #ccc;`\">\r\n\r\n <WButtonCircle\r\n :icon=\"'mdi-menu'\"\r\n :tooltip=\"'左側選單'\"\r\n :shadow=\"false\"\r\n @click=\"drawer = !drawer\"\r\n v-if=\"false\"\r\n ></WButtonCircle>\r\n\r\n <div style=\"padding-left:5px; white-space:nowrap\">\r\n <div style=\"display:flex; align-items:center;\">\r\n\r\n <div style=\"padding-right:10px; display:flex; align-items:center;\" v-if=\"webLogo\">\r\n <img style=\"width:36px; height:36px;\" :src=\"webLogo\" />\r\n </div>\r\n\r\n <div>\r\n <div style=\"font-size:1.2rem; color:#000;\">{{webName}}</div>\r\n <div style=\"font-size:0.8rem; color:#666;\">{{$t('webDescription')}}</div>\r\n </div>\r\n\r\n </div>\r\n\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 :items=\"tgLangs\"\r\n v-model=\"tgLangSelect\"\r\n @input=\"changeLang\"\r\n ></WTextSelect>\r\n </div>\r\n\r\n </div>\r\n\r\n <div :style=\"`height:calc( 100% - ${heightToolbar}px );`\">\r\n <LayoutContent\r\n ></LayoutContent>\r\n </div>\r\n\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport get from 'lodash/get'\r\n// import cloneDeep from 'lodash/cloneDeep'\r\nimport isestr from 'wsemi/src/isestr.mjs'\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 WButtonCircle,\r\n WTextSelect,\r\n LayoutContent,\r\n },\r\n props: {\r\n },\r\n data: function() {\r\n return {\r\n\r\n drawer: false, //null,\r\n\r\n tgLangs: [\r\n {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n {\r\n id: 'eng',\r\n text: 'English',\r\n },\r\n ],\r\n tgLangSelect: {\r\n id: 'cht',\r\n text: '中文',\r\n },\r\n\r\n }\r\n },\r\n beforeMount: function() {\r\n // console.log('beforeMount')\r\n\r\n let vo = this\r\n\r\n //setLang\r\n vo.$ui.setLang(vo.tgLangSelect.id)\r\n\r\n },\r\n computed: {\r\n\r\n viewState: function() {\r\n return get(this, `$store.state.viewState`)\r\n },\r\n\r\n heightToolbar: function() {\r\n return get(this, `$store.state.heightToolbar`)\r\n },\r\n\r\n webName: {\r\n get() {\r\n let vo = this\r\n let c = vo.$t('webName')\r\n // console.log('get webName1', c)\r\n if (!isestr(c)) {\r\n c = vo.$t('waitingData')\r\n }\r\n // console.log('get webName2', c)\r\n document.title = c //更換網頁title\r\n return c\r\n },\r\n // set(value) {\r\n // return value\r\n // },\r\n },\r\n\r\n webLogo: function() {\r\n return get(this, `$store.state.webInfor.webLogo`)\r\n },\r\n\r\n },\r\n methods: {\r\n\r\n changeLang: function(msg) {\r\n // console.log('methods changeLang', msg)\r\n let vo = this\r\n let lang = msg.id\r\n vo.$ui.setLang(lang)\r\n },\r\n\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n</style>\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=a357a654&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-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a357a654\",\n null\n \n)\n\nexport default component.exports","<template>\n <div\n v-domresize\n @domresize=\"resize\"\n >\n\n <transition enter-active-class=\"fade-enter-active\" leave-active-class=\"fade-leave-active\">\n <Layout v-if=\"ready\"></Layout>\n </transition>\n\n </div>\n</template>\n\n<script>\n// import get from 'lodash/get'\n// import find from 'lodash/find'\nimport Layout from './components/Layout.vue'\n\n\nexport default {\n components: {\n Layout,\n },\n data: function() {\n return {\n\n ready: true,\n\n }\n },\n mounted: function() {\n // console.log('mounted')\n\n let vo = this\n\n //setVo, 更換ui內vo, 才能使用廣播技術, 更換語系才能用廣播通知全部組件forceUpdate\n vo.$ui.setVo(vo)\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.v-application, .v-application--wrap {\n font-family: inherit;\n}\n\n.v-chip {\n cursor: inherit;\n}\n\n.fade-enter-active {\n animation: go 1s;\n}\n\n.fade-leave-active {\n animation: back 1s;\n}\n\n@keyframes go {\n from { opacity: 0; }\n to {opacity: 1;}\n}\n\n@keyframes back {\n from { opacity: 1; }\n to { opacity: 0; }\n}\n\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=289b1ebc&\"\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&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/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","function filePathToCode(c) {\r\n if (c.indexOf('\\\\\\\\') >= 0) {\r\n return '```' + c + '```'\r\n }\r\n return c\r\n}\r\n\r\n\r\nexport default filePathToCode\r\n","import map from 'lodash/map'\r\nimport keys from 'lodash/keys'\r\n// import get from 'lodash/get'\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 isestr from 'wsemi/src/isestr'\r\nimport filePathToCode from '../../../server/filePathToCode.mjs'\r\n\r\n\r\nlet keyTable = 'apis'\r\nlet tableNameCht = 'APIs'\r\nlet tableNameEng = 'APIs'\r\n\r\nlet settings = {\r\n 'id': {\r\n pk: true,\r\n name: '主鍵',\r\n type: 'STRING',\r\n },\r\n 'order': {\r\n name: '順序',\r\n type: 'INTEGER',\r\n },\r\n 'name': {\r\n name: '名稱',\r\n type: 'STRING',\r\n },\r\n 'description': {\r\n name: '說明',\r\n type: 'TEXT',\r\n },\r\n 'url': {\r\n name: '網址',\r\n type: 'STRING',\r\n },\r\n 'method': {\r\n name: '方法',\r\n type: 'STRING',\r\n },\r\n 'version': {\r\n name: '版本',\r\n type: 'STRING',\r\n },\r\n 'group': { //用來統一管理外部API來源\r\n name: '群組',\r\n type: 'STRING',\r\n },\r\n 'levels': { //階層群組用英文句點「.」分隔\r\n name: '階層群組',\r\n type: 'STRING',\r\n },\r\n 'keywords': {\r\n name: '關鍵字',\r\n type: 'STRING',\r\n },\r\n 'state': {\r\n name: '狀態',\r\n type: 'STRING',\r\n },\r\n 'creator': {\r\n name: '創建者',\r\n type: 'STRING',\r\n },\r\n 'dataSource': {\r\n name: '資料提供者',\r\n type: 'STRING',\r\n },\r\n 'tokens': { //多金鑰用分號分隔\r\n name: '金鑰',\r\n type: 'TEXT',\r\n },\r\n 'mdInputParams': {\r\n name: '輸入參數md說明',\r\n type: 'STRING',\r\n },\r\n 'inputExample': {\r\n name: '輸入範例',\r\n type: 'STRING',\r\n },\r\n 'mdOutputParams': {\r\n name: '輸出資料md說明',\r\n type: 'STRING',\r\n },\r\n 'outputExample': {\r\n name: '輸出範例',\r\n type: 'STRING',\r\n },\r\n 'timeCreate': {\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.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 = map([\r\n {\r\n 'id': 'id-for-apis-sys-1',\r\n 'name': '取得API清單',\r\n 'description': 'API管理中心取得API清單資訊',\r\n 'url': 'http://localhost:11005/getAPIsList',\r\n 'method': 'get',\r\n 'version': 'v1',\r\n 'group': '全部',\r\n 'levels': 'API',\r\n 'keywords': 'API;center',\r\n 'state': 'ok',\r\n 'creator': 'apis-system',\r\n 'dataSource': 'apis-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-1',\r\n 'name': '取得寵物清單',\r\n 'description': '寵物管理中心取得寵物清單資訊',\r\n 'url': 'http://localhost:11005/getPetsList',\r\n 'method': 'get',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物',\r\n 'keywords': 'pets',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-dogs-1',\r\n 'name': '取得狗狗清單',\r\n 'description': '取得狗狗清單資訊',\r\n 'url': 'http://localhost:11005/getDogsList',\r\n 'method': 'get',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.狗狗',\r\n 'keywords': 'pets;dogs',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-dogs-2',\r\n 'name': '新增狗狗資訊',\r\n 'description': '新增狗狗資訊',\r\n 'url': 'http://localhost:11005/addDog',\r\n 'method': 'post',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.狗狗',\r\n 'keywords': 'pets;dogs',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### POST參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-dogs-3',\r\n 'name': '變更狗狗資訊',\r\n 'description': '變更狗狗資訊',\r\n 'url': 'http://localhost:11005/updateDog',\r\n 'method': 'put',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.狗狗',\r\n 'keywords': 'pets;dogs',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-dogs-4',\r\n 'name': '刪除狗狗資訊',\r\n 'description': '刪除狗狗資訊',\r\n 'url': 'http://localhost:11005/deleteDog',\r\n 'method': 'del',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.狗狗',\r\n 'keywords': 'pets;dogs',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-cats-1',\r\n 'name': '取得貓咪清單',\r\n 'description': '取得貓咪清單資訊',\r\n 'url': 'http://localhost:11005/getCatsList',\r\n 'method': 'get',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.貓咪',\r\n 'keywords': 'pets;cats',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-cats-2',\r\n 'name': '新增貓咪資訊',\r\n 'description': '新增貓咪資訊',\r\n 'url': 'http://localhost:11005/addCat',\r\n 'method': 'post',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.貓咪',\r\n 'keywords': 'pets;cats',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### POST參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-cats-3',\r\n 'name': '變更貓咪資訊',\r\n 'description': '變更貓咪資訊',\r\n 'url': 'http://localhost:11005/updateCat',\r\n 'method': 'put',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.貓咪',\r\n 'keywords': 'pets;cats',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-pets-cats-4',\r\n 'name': '刪除貓咪資訊',\r\n 'description': '刪除貓咪資訊',\r\n 'url': 'http://localhost:11005/deleteCat',\r\n 'method': 'del',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '寵物.貓咪',\r\n 'keywords': 'pets;cats',\r\n 'state': 'ok',\r\n 'creator': 'pets-system',\r\n 'dataSource': 'pets-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-vehicles-cars-1',\r\n 'name': '取得汽車清單',\r\n 'description': '取得汽車清單資訊',\r\n 'url': 'http://localhost:11005/getcarsList',\r\n 'method': 'get',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '交通工具.汽車',\r\n 'keywords': 'vehicles;cars',\r\n 'state': 'ok',\r\n 'creator': 'vehicles-system',\r\n 'dataSource': 'vehicles-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-vehicles-cars-2',\r\n 'name': '新增汽車資訊',\r\n 'description': '新增汽車資訊',\r\n 'url': 'http://localhost:11005/addDog',\r\n 'method': 'post',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '交通工具.汽車',\r\n 'keywords': 'vehicles;cars',\r\n 'state': 'ok',\r\n 'creator': 'vehicles-system',\r\n 'dataSource': 'vehicles-data',\r\n 'mdInputParams': `### POST參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-vehicles-cars-3',\r\n 'name': '變更汽車資訊',\r\n 'description': '變更汽車資訊',\r\n 'url': 'http://localhost:11005/updateDog',\r\n 'method': 'put',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '交通工具.汽車',\r\n 'keywords': 'vehicles;cars',\r\n 'state': 'ok',\r\n 'creator': 'vehicles-system',\r\n 'dataSource': 'vehicles-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n {\r\n 'id': 'id-for-apis-vehicles-cars-4',\r\n 'name': '刪除汽車資訊',\r\n 'description': '刪除汽車資訊',\r\n 'url': 'http://localhost:11005/deleteDog',\r\n 'method': 'del',\r\n 'version': 'v1',\r\n 'group': '寵物',\r\n 'levels': '交通工具.汽車',\r\n 'keywords': 'vehicles;cars',\r\n 'state': 'ok',\r\n 'creator': 'vehicles-system',\r\n 'dataSource': 'vehicles-data',\r\n 'mdInputParams': `### GET網址參數\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| token | STRING | key-for-token |\r\n| id | STRING | id-for-test |\r\n| paramA | INTEGER | 123 |\r\n| paramB | DOUBLE | 123.456 |\r\n `,\r\n 'inputExample': `http://localhost:11005/getAPIsList?token={token}&id={id}&paramA=123&paramB=123.456`,\r\n 'mdOutputParams': `### 回傳數據欄位: Array of objects\r\n| 參數 | 型別 | 範例 |\r\n| -- | -- | -- |\r\n| id | STRING | id-for-test |\r\n| weight | DOUBLE | 12.3 |\r\n| color | STRING | #f26 |\r\n| paramA | INTEGER | 321 |\r\n| paramB | DOUBLE | 654.321 |\r\n| paramC | STRING | ${filePathToCode('C:\\\\\\\\pj\\\\abc\\\\filename.pdf')} |\r\n `,\r\n 'outputExample': `\r\n[\r\n {\r\n \"id\": \"id-for-test-1\",\r\n \"weight\": 12.3,\r\n \"color\": \"#f26\",\r\n \"paramA\": 101,\r\n \"paramB\": 0.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename1.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-2\",\r\n \"weight\": 22.3,\r\n \"color\": \"#2f6\",\r\n \"paramA\": 102,\r\n \"paramB\": 1.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename2.pdf\"\r\n },\r\n {\r\n \"id\": \"id-for-test-3\",\r\n \"weight\": 32.3,\r\n \"color\": \"#26f\",\r\n \"paramA\": 103,\r\n \"paramB\": 2.01,\r\n \"paramC\": \"C:\\\\\\\\\\\\\\\\pj\\\\\\\\abc\\\\\\\\filename3.pdf\"\r\n }\r\n]\r\n `,\r\n },\r\n ], (item, k) => {\r\n let v = funNew({ ...item, order: k })\r\n v.id = item.id\r\n if (isestr(item.timeUpdate)) {\r\n v.timeUpdate = item.timeUpdate\r\n }\r\n v = dtpick(v, keys(settings))\r\n return v\r\n })\r\n console.log(`已產生: {keyTable} 測試資料`, rs)\r\n return rs\r\n}\r\n\r\nlet tab = {\r\n keyTable,\r\n tableNameCht,\r\n tableNameEng,\r\n settings,\r\n funNew,\r\n funTest,\r\n}\r\n\r\n\r\nexport default tab\r\n","import apis from './tables/apis.mjs'\nimport build from 'w-data-collector/src/build.mjs'\n\n\nlet cs = {\n apis,\n}\n\n//ds\nlet ds = {}\nfor (let k in cs) {\n ds[k] = build(cs[k], { useCreateStorage: false })\n}\n\n\nexport default ds\n","import each from 'lodash/each'\r\nimport set from 'lodash/set'\r\nimport * as types from './types.mjs'\r\nimport ds from '../schema/index.mjs'\r\n\r\n\r\n//state, 全域狀態\r\nlet state = {\r\n\r\n hostname: `${window.location.origin}`,\r\n webInfor: {},\r\n connState: '連線中...',\r\n syncState: false,\r\n viewState: 'lists',\r\n loading: false,\r\n settings: {\r\n leftDrawerWidth: 200,\r\n },\r\n\r\n heightApp: 0,\r\n heightAppEff: 0,\r\n heightToolbar: 60,\r\n\r\n menu: {}, //初始值需為物件, 否則LayoutContent會取menu.key出錯\r\n\r\n userToken: '',\r\n userSelf: {\r\n id: 'id-for-admin',\r\n name: '系統管理員',\r\n email: 'admin@email.com',\r\n isAdmin: true,\r\n },\r\n\r\n lang: 'cht',\r\n keyLangs: {\r\n\r\n empty: {\r\n eng: 'Empty',\r\n cht: '無',\r\n },\r\n noSelectApi: {\r\n eng: 'No Select',\r\n cht: '尚未選擇API',\r\n },\r\n waitingData: {\r\n eng: 'Waiting data...',\r\n cht: '等待數據中...',\r\n },\r\n tokens: {\r\n eng: 'Tokens',\r\n cht: '授權金鑰',\r\n },\r\n version: {\r\n eng: 'Version',\r\n cht: '版本',\r\n },\r\n levels: {\r\n eng: 'Levels',\r\n cht: '所屬階層',\r\n },\r\n keywords: {\r\n eng: 'Keywords',\r\n cht: '關鍵字',\r\n },\r\n state: {\r\n eng: 'State',\r\n cht: '狀態',\r\n },\r\n timeCreate: {\r\n eng: 'Create time',\r\n cht: '創建時間',\r\n },\r\n timeUpdate: {\r\n eng: 'Update time',\r\n cht: '更新時間',\r\n },\r\n creator: {\r\n eng: 'Creator',\r\n cht: 'API創建者',\r\n },\r\n dataSource: {\r\n eng: 'Source',\r\n cht: '資料提供者',\r\n },\r\n isActive: {\r\n eng: 'Active',\r\n cht: '有效',\r\n },\r\n mdInputParams: {\r\n eng: 'Input',\r\n cht: '輸入參數資訊或結構',\r\n },\r\n inputExample: {\r\n eng: 'Input example',\r\n cht: '輸入範例',\r\n },\r\n mdOutputParams: {\r\n eng: 'Output',\r\n cht: '回傳數據結構',\r\n },\r\n outputExample: {\r\n eng: 'Output example',\r\n cht: '回傳數據範例',\r\n },\r\n\r\n outputMenuTree: {\r\n eng: 'Tree',\r\n cht: '樹狀組件',\r\n },\r\n outputMenuRaw: {\r\n eng: 'Raw',\r\n cht: '原始數據',\r\n },\r\n\r\n },\r\n kpText: {},\r\n\r\n}\r\n\r\n//添加各資料表\r\neach(ds, (v, k) => {\r\n state[k] = null //初始化null\r\n})\r\n\r\n//儲存至state\r\nexport { state }\r\n\r\n//mutations, 同步執行\r\nexport let mutations = {\r\n\r\n [types.UpdateWebInfor] (state, webInfor) {\r\n state.webInfor = webInfor\r\n },\r\n\r\n [types.UpdateLang] (state, lang) {\r\n state.lang = lang\r\n },\r\n\r\n [types.UpdateKpText] (state, kpText) {\r\n state.kpText = kpText\r\n },\r\n\r\n [types.UpdateConnState] (state, connState) {\r\n state.connState = connState\r\n },\r\n\r\n [types.UpdateSyncState] (state, syncState) {\r\n state.syncState = syncState\r\n },\r\n\r\n [types.UpdateLoading] (state, loading) {\r\n state.loading = loading\r\n },\r\n\r\n [types.UpdateViewState] (state, viewState) {\r\n state.viewState = viewState\r\n },\r\n\r\n [types.UpdateTableData] (state, msg) {\r\n state[msg.tableName] = msg.data\r\n },\r\n\r\n [types.UpdateData] (state, msg) {\r\n //msg.path內為存取路徑, 需使用lodash的set處理\r\n // console.log('UpdateData msg', msg)\r\n set(state, msg.path, msg.data)\r\n },\r\n\r\n [types.UpdateHeightApp] (state, heightApp) {\r\n state.heightApp = heightApp\r\n },\r\n\r\n [types.UpdateHeightAppEff] (state, heightAppEff) {\r\n state.heightAppEff = heightAppEff\r\n },\r\n\r\n [types.UpdateHeightToolbar] (state, heightToolbar) {\r\n state.heightToolbar = heightToolbar\r\n },\r\n\r\n [types.UpdateMenu] (state, menu) {\r\n state.menu = menu\r\n },\r\n\r\n [types.UpdateUserToken] (state, userToken) {\r\n state.userToken = userToken\r\n },\r\n\r\n [types.UpdateUserSelf] (state, userSelf) {\r\n state.userSelf = userSelf\r\n },\r\n\r\n}\r\n\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport { state, mutations } from './mutations.mjs'\r\nimport * as getters from './getters.mjs'\r\nimport * as actions from './actions.mjs'\r\nimport * as types from './types.mjs'\r\n\r\n\r\n//use\r\nVue.use(Vuex)\r\n\r\nlet st = new Vuex.Store({\r\n state,\r\n mutations,\r\n getters,\r\n actions,\r\n strict: true, //嚴格模式禁止修改state\r\n})\r\n\r\n//save to $store\r\nst.types = types\r\nVue.prototype.$store = st\r\n// console.log('$store', st)\r\n\r\nexport default st\r\n","import Vue from 'vue'\nimport Vuetify from 'vuetify/lib'\n// import Vuetify from 'vuetify'\n// import 'vuetify/dist/vuetify.min.css'\n\nVue.use(Vuetify)\n\nexport default new Vuetify({\n icons: {\n iconfont: 'mdiSvg',\n },\n})\n","import Vue from 'vue'\r\nimport min from 'lodash/min'\r\nimport size from 'lodash/size'\r\nimport take from 'lodash/take'\r\nimport isEqual from 'lodash/isEqual'\r\nimport uniq from 'lodash/uniq'\r\nimport set from 'lodash/set'\r\nimport get from 'lodash/get'\r\nimport each from 'lodash/each'\r\nimport map from 'lodash/map'\r\nimport filter from 'lodash/filter'\r\nimport last from 'lodash/last'\r\nimport split from 'lodash/split'\r\nimport join from 'lodash/join'\r\nimport drop from 'lodash/drop'\r\nimport dropRight from 'lodash/dropRight'\r\nimport groupBy from 'lodash/groupBy'\r\nimport sortBy from 'lodash/sortBy'\r\nimport cloneDeep from 'lodash/cloneDeep'\r\nimport cint from 'wsemi/src/cint.mjs'\r\nimport delay from 'wsemi/src/delay.mjs'\r\nimport isarr from 'wsemi/src/isarr.mjs'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\nimport isfun from 'wsemi/src/isfun.mjs'\r\nimport iseobj from 'wsemi/src/iseobj.mjs'\r\nimport isearr from 'wsemi/src/isearr.mjs'\r\nimport isEle from 'wsemi/src/isEle.mjs'\r\nimport strleft from 'wsemi/src/strleft.mjs'\r\nimport strdelleft from 'wsemi/src/strdelleft.mjs'\r\nimport sep from 'wsemi/src/sep.mjs'\r\nimport aes2str from 'wsemi/src/aes2str.mjs'\r\nimport str2aes from 'wsemi/src/str2aes.mjs'\r\nimport haskey from 'wsemi/src/haskey.mjs'\r\nimport genPm from 'wsemi/src/genPm.mjs'\r\nimport pmSeries from 'wsemi/src/pmSeries.mjs'\r\nimport waitFun from 'wsemi/src/waitFun.mjs'\r\nimport browserView from 'wsemi/src/browserView.mjs'\r\nimport arrHas from 'wsemi/src/arrHas.mjs'\r\nimport arrSort from 'wsemi/src/arrSort.mjs'\r\nimport arrInsert from 'wsemi/src/arrInsert.mjs'\r\nimport replace from 'wsemi/src/replace.mjs'\r\nimport timemsTZ2past from 'wsemi/src/timemsTZ2past.mjs'\r\nimport convertToTree from 'wsemi/src/convertToTree.mjs'\r\n// import WUiDwload from 'w-ui-dwload/src/WUiDwload.mjs'\r\n\r\n\r\nlet vo = Vue.prototype\r\n\r\n\r\nfunction setVo(vObj) {\r\n vo = vObj\r\n}\r\n\r\n\r\nfunction updateConnState(connState) {\r\n vo.$store.commit(vo.$store.types.UpdateConnState, connState)\r\n}\r\n\r\n\r\nfunction updateLoading(loading) {\r\n vo.$store.commit(vo.$store.types.UpdateLoading, loading)\r\n}\r\n\r\n\r\nfunction updateViewState(viewState) {\r\n vo.$store.commit(vo.$store.types.UpdateViewState, viewState)\r\n}\r\n\r\n\r\nfunction forceUpdate() {\r\n // console.log('call forceUpdate')\r\n\r\n function broadcast(chs) {\r\n each(chs, (v) => {\r\n // console.log(v.$el)\r\n v.$forceUpdate()\r\n if (v.$children) {\r\n broadcast(v.$children)\r\n }\r\n })\r\n }\r\n\r\n //broadcast, 注意此處需使用更換ui內vo為mounted後的vo, 也就是含元素, 才能使用廣播技術\r\n broadcast(vo.$children)\r\n\r\n}\r\n\r\n\r\nfunction setLang(lang = null) {\r\n // console.log('call setLang')\r\n\r\n //check lang, 若有輸入才commit\r\n if (isestr(lang)) {\r\n vo.$store.commit(vo.$store.types.UpdateLang, lang)\r\n }\r\n\r\n //getKpLang, 切換lang得調用getKpLang重算kpText\r\n getKpLang()\r\n\r\n //forceUpdate\r\n forceUpdate()\r\n\r\n}\r\n\r\n\r\nfunction getKpLang() {\r\n // console.log('call getKpLang')\r\n\r\n //merge keyLangs\r\n let keyLangs = get(vo, '$store.state.keyLangs')\r\n let webName = get(vo, '$store.state.webInfor.webName')\r\n let webDescription = get(vo, '$store.state.webInfor.webDescription')\r\n let kls = {\r\n ...keyLangs,\r\n webName: {\r\n ...webName,\r\n },\r\n webDescription: {\r\n ...webDescription,\r\n },\r\n }\r\n\r\n //lang\r\n let lang = get(vo, '$store.state.lang')\r\n\r\n //kpText\r\n let kpText = {}\r\n each(kls, (v, k) => {\r\n kpText[k] = v[lang]\r\n })\r\n\r\n //commit\r\n vo.$store.commit(vo.$store.types.UpdateKpText, kpText)\r\n\r\n return kpText\r\n}\r\n\r\n\r\nfunction getKpText(key) {\r\n // console.log('call getKpText')\r\n let kpText = get(vo, '$store.state.kpText')\r\n return get(kpText, key, '')\r\n}\r\n\r\n\r\nfunction gv(o, k, cv = null) {\r\n let r = get(o, k, '')\r\n if (!isestr(r)) {\r\n let def = getKpText('empty')\r\n return def\r\n }\r\n if (isfun(cv)) {\r\n r = cv(r)\r\n }\r\n return r\r\n}\r\n\r\n\r\nfunction syncHeight() {\r\n\r\n //heightToolbar\r\n let heightToolbar = get(vo, '$store.state.heightToolbar')\r\n\r\n //heightAppEff\r\n let heightAppEff = window.innerHeight - heightToolbar\r\n\r\n //commit\r\n // vo.$store.commit(vo.$store.types.UpdateHeightToolbar, heightToolbar)\r\n vo.$store.commit(vo.$store.types.UpdateHeightApp, window.innerHeight)\r\n vo.$store.commit(vo.$store.types.UpdateHeightAppEff, heightAppEff)\r\n\r\n return ''\r\n}\r\n\r\n\r\nasync function waitData(t = 0) {\r\n\r\n //delay\r\n if (t > 0) {\r\n await delay(t)\r\n }\r\n\r\n //waitFun, 等待dsrl模組掛載\r\n await waitFun(() => {\r\n return iseobj(get(vo, '$dsrl'))\r\n })\r\n\r\n //等待前端第一次同步完畢數據\r\n await waitFun(() => {\r\n return get(vo, '$store.state.syncState')\r\n })\r\n\r\n}\r\n\r\n\r\nlet mUI = {\r\n\r\n setVo,\r\n\r\n updateConnState,\r\n updateLoading,\r\n updateViewState,\r\n forceUpdate,\r\n\r\n setLang,\r\n getKpLang,\r\n getKpText,\r\n\r\n gv,\r\n syncHeight,\r\n\r\n waitData,\r\n\r\n}\r\n\r\n\r\nexport default mUI\r\n","import get from 'lodash/get'\r\nimport find from 'lodash/find'\r\nimport isestr from 'wsemi/src/isestr.mjs'\r\n\r\n\r\nfunction mDataSelectorSchema(ds, opt = {}) {\r\n\r\n function getTableInforBy(keyFind, valueFind, keyPick) {\r\n let r = find(ds, { [keyFind]: valueFind })\r\n if (!r) {\r\n r = ''\r\n }\r\n if (isestr(keyPick)) {\r\n r = get(r, keyPick, '')\r\n }\r\n return r\r\n }\r\n\r\n function getTableChtByKey(valueFind) {\r\n return getTableInforBy('keyTable', valueFind, 'tableNameCht')\r\n }\r\n\r\n return {\r\n getTableInforBy,\r\n getTableChtByKey,\r\n }\r\n}\r\n\r\n\r\nexport default mDataSelectorSchema\r\n","// import min from 'lodash/min'\r\n// import size from 'lodash/size'\r\n// import take from 'lodash/take'\r\n// import isEqual from 'lodash/isEqual'\r\n// import uniq from 'lodash/uniq'\r\n// import set from 'lodash/set'\r\n// import get from 'lodash/get'\r\n// import each from 'lodash/each'\r\n// import map from 'lodash/map'\r\n// import filter from 'lodash/filter'\r\n// import last from 'lodash/last'\r\n// import split from 'lodash/split'\r\n// import join from 'lodash/join'\r\n// import drop from 'lodash/drop'\r\n// import dropRight from 'lodash/dropRight'\r\n// import groupBy from 'lodash/groupBy'\r\n// import sortBy from 'lodash/sortBy'\r\n// import cloneDeep from 'lodash/cloneDeep'\r\n// import cint from 'wsemi/src/cint.mjs'\r\n// import delay from 'wsemi/src/delay.mjs'\r\n// import isarr from 'wsemi/src/isarr.mjs'\r\n// import isestr from 'wsemi/src/isestr.mjs'\r\n// import isfun from 'wsemi/src/isfun.mjs'\r\n// import iseobj from 'wsemi/src/iseobj.mjs'\r\n// import isearr from 'wsemi/src/isearr.mjs'\r\n// import isEle from 'wsemi/src/isEle.mjs'\r\n// import strleft from 'wsemi/src/strleft.mjs'\r\n// import strdelleft from 'wsemi/src/strdelleft.mjs'\r\n// import sep from 'wsemi/src/sep.mjs'\r\n// import aes2str from 'wsemi/src/aes2str.mjs'\r\n// import str2aes from 'wsemi/src/str2aes.mjs'\r\n// import haskey from 'wsemi/src/haskey.mjs'\r\n// import genPm from 'wsemi/src/genPm.mjs'\r\n// import pmSeries from 'wsemi/src/pmSeries.mjs'\r\n// import waitFun from 'wsemi/src/waitFun.mjs'\r\n// import browserView from 'wsemi/src/browserView.mjs'\r\n// import arrHas from 'wsemi/src/arrHas.mjs'\r\n// import arrSort from 'wsemi/src/arrSort.mjs'\r\n// import arrInsert from 'wsemi/src/arrInsert.mjs'\r\n// import replace from 'wsemi/src/replace.mjs'\r\n// import timemsTZ2past from 'wsemi/src/timemsTZ2past.mjs'\r\n// import convertToTree from 'wsemi/src/convertToTree.mjs'\r\n// import html2picDyn from 'wsemi/src/html2picDyn.mjs'\r\n// import urlParse from 'wsemi/src/urlParse.mjs'\r\n// import domConvertToPicDyn from 'wsemi/src/domConvertToPicDyn.mjs'\r\n// import ltdtkeysheads2mat from 'wsemi/src/ltdtkeysheads2mat.mjs'\r\n// import downloadFileFromB64 from 'wsemi/src/downloadFileFromB64.mjs'\r\n// import downloadExcelFileFromDataDyn from 'wsemi/src/downloadExcelFileFromDataDyn.mjs'\r\n// import getFileAccept from 'wsemi/src/getFileAccept.mjs'\r\n// import downloadFileFromU8Arr from 'wsemi/src/downloadFileFromU8Arr.mjs'\r\n\r\n\r\nfunction mDataSupport(vo, opt = {}) {\r\n\r\n\r\n return {\r\n\r\n // mdCheckKeyInd,\r\n // mdGetTextByKey,\r\n // mdGetTextByKeyIndAndKey,\r\n\r\n }\r\n}\r\n\r\n\r\nexport default mDataSupport\r\n","import get from 'lodash/get'\r\n// import '@babel/polyfill' //需提供Vuetify的Symbol等API\r\n// import 'core-js/stable' //需提供Vuetify的Symbol等API, 官網說使用transpileDependencies但不夠, 改用之前提到的@babel/polyfill會被提示已廢棄, 改使用給webpack的polyfill方式才行\r\n// import 'regenerator-runtime/runtime'\r\n// import 'intersection-observer' //需供Vuetify的Intersection Observer, 專案內有使用v-intersect才需引入, 而w-component-vue沒用v-intersect\r\nimport Vue from 'vue'\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 mVuetify from './plugins/mVuetify.mjs'\r\nimport ui from './plugins/mUI.mjs'\r\nimport mDataSelectorSchema from './plugins/mDataSelectorSchema.mjs'\r\nimport mDataSupport from './plugins/mDataSupport.mjs'\r\nimport * as s from './plugins/mShare.mjs'\r\nimport ds from './schema/index.mjs'\r\n// console.log('globalState', globalState)\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\nlet 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\nVue.prototype.$dspt = dspt\r\n// Vue.prototype.$ds = ds\r\nVue.prototype.$dg = {}\r\n\r\n//directive\r\nVue.directive('domresize', domResize())\r\nVue.directive('dommutation', domMutation())\r\nVue.directive('domdragdrop', domDragDrop())\r\n\r\n//WServHapiClient\r\nlet bFirstSync = false\r\nWServHapiClient({\r\n getUrl: () => {\r\n return window.location.origin + window.location.pathname\r\n },\r\n useWaitToken: false,\r\n getToken: () => {\r\n return get(Vue.prototype, `$store.state.userToken`, '')\r\n },\r\n getServerMethods: (_fapi) => {\r\n console.log('$fapi', _fapi)\r\n Vue.prototype.$fapi = _fapi\r\n _fapi.getWebInfor() //已有fapi時優先取得web資訊\r\n .then((wi) => {\r\n console.log('$fapi getWebInfor', wi)\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateWebInfor, wi)\r\n ui.setLang() //因更新webInfor得要重刷語系才能依照語言取得顯示文字\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n },\r\n recvData: (r) => {\r\n console.log('sync data', r.tableName, r.data)\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateTableData, r)\r\n },\r\n getAfterUpdateTableTags: (r) => {\r\n // console.log('getAfterUpdateTableTags', r, 'needToRefresh', JSON.stringify(r.oldTableTags) !== JSON.stringify(r.newTableTags))\r\n if (bFirstSync) {\r\n return\r\n }\r\n bFirstSync = true\r\n console.log('first-sync')\r\n Vue.prototype.$store.commit(Vue.prototype.$store.types.UpdateSyncState, true)\r\n },\r\n})\r\n\r\n//new\r\nnew Vue({\r\n vuetify: mVuetify,\r\n store,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LayoutContentList.vue?vue&type=style&index=0&id=7c186c61&scoped=true&lang=css&\""],"sourceRoot":""}