mm_os 1.3.4 → 1.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. package/README.en.md +36 -0
  2. package/README.md +25 -166
  3. package/conf.json +3 -0
  4. package/core/base/index.js +29 -0
  5. package/core/base/mqtt/index.js +268 -0
  6. package/core/base/mqtt/lib.js +40 -0
  7. package/core/base/web/index.js +110 -0
  8. package/core/com/api/com.json +4 -0
  9. package/{bin → core}/com/api/config.tpl.json +9 -7
  10. package/{bin → core}/com/api/drive.js +239 -64
  11. package/{bin → core}/com/api/index.js +8 -9
  12. package/{bin → core}/com/api/oauth.js +23 -14
  13. package/core/com/api/script.js +32 -0
  14. package/core/com/db/com.json +4 -0
  15. package/{bin → core}/com/db/drive.js +99 -65
  16. package/{bin → core}/com/db/index.js +2 -2
  17. package/core/com/event/com.json +4 -0
  18. package/{bin → core}/com/event/config.tpl.json +2 -2
  19. package/core/com/event/drive.js +125 -0
  20. package/{bin → core}/com/event/index.js +5 -10
  21. package/core/com/event/script.js +26 -0
  22. package/core/com/eventer/com.js +450 -0
  23. package/core/com/eventer/com.json +4 -0
  24. package/core/com/middleware/com.js +128 -0
  25. package/core/com/middleware/com.json +4 -0
  26. package/core/com/middleware/config.tpl.json +8 -0
  27. package/core/com/middleware/script.js +9 -0
  28. package/core/com/mqtt/com.json +4 -0
  29. package/core/com/mqtt/config.tpl.json +12 -0
  30. package/core/com/mqtt/drive.js +139 -0
  31. package/core/com/mqtt/index.js +138 -0
  32. package/core/com/mqtt/script.js +33 -0
  33. package/core/com/msg/com.js +296 -0
  34. package/core/com/msg/com.json +4 -0
  35. package/{bin → core}/com/nav/drive.js +42 -17
  36. package/{bin → core}/com/nav/index.js +4 -4
  37. package/core/com/nav/tpl/admin_pc/page_channel.vue +299 -0
  38. package/core/com/nav/tpl/admin_pc/page_config.vue +279 -0
  39. package/core/com/nav/tpl/admin_pc/page_config_form.vue +194 -0
  40. package/core/com/nav/tpl/admin_pc/page_default.vue +287 -0
  41. package/core/com/nav/tpl/admin_pc/page_form.vue +180 -0
  42. package/core/com/nav/tpl/admin_pc/page_lang.vue +265 -0
  43. package/core/com/nav/tpl/admin_pc/page_nav.vue +313 -0
  44. package/core/com/nav/tpl/admin_pc/page_table.vue +285 -0
  45. package/core/com/nav/tpl/admin_pc/page_type.vue +313 -0
  46. package/core/com/nav/tpl/dev_pc/page_channel.vue +253 -0
  47. package/core/com/nav/tpl/dev_pc/page_config.vue +253 -0
  48. package/core/com/nav/tpl/dev_pc/page_default.vue +247 -0
  49. package/core/com/nav/tpl/dev_pc/page_form.vue +162 -0
  50. package/core/com/nav/tpl/dev_pc/page_nav.vue +253 -0
  51. package/core/com/nav/tpl/dev_pc/page_table.vue +247 -0
  52. package/core/com/nav/tpl/dev_pc/page_type.vue +253 -0
  53. package/{bin/com/nav/tpl/home_phone → core/com/nav/tpl/home_pc}/page_channel.vue +231 -231
  54. package/{bin/com/nav/tpl/home_phone → core/com/nav/tpl/home_pc}/page_default.vue +231 -231
  55. package/{bin → core}/com/nav/tpl/home_pc/page_form.vue +9 -9
  56. package/{bin → core}/com/nav/tpl/home_pc/page_list.vue +231 -231
  57. package/{bin → core}/com/nav/tpl/home_pc/page_nav.vue +221 -221
  58. package/{bin/com/nav/tpl/home_phone → core/com/nav/tpl/home_pc}/page_type.vue +231 -231
  59. package/{bin → core}/com/nav/tpl/home_pc/page_view.vue +8 -8
  60. package/{bin/com/nav/tpl/home_pc → core/com/nav/tpl/home_phone}/page_channel.vue +231 -231
  61. package/{bin/com/nav/tpl/home_pc → core/com/nav/tpl/home_phone}/page_default.vue +231 -231
  62. package/{bin → core}/com/nav/tpl/home_phone/page_form.vue +9 -9
  63. package/{bin → core}/com/nav/tpl/home_phone/page_list.vue +231 -231
  64. package/{bin/com/nav/tpl/admin_pc → core/com/nav/tpl/home_phone}/page_nav.vue +236 -220
  65. package/{bin/com/nav/tpl/home_pc → core/com/nav/tpl/home_phone}/page_type.vue +231 -231
  66. package/{bin → core}/com/nav/tpl/home_phone/page_view.vue +8 -8
  67. package/core/com/nav/viewmodel.js +296 -0
  68. package/{bin → core}/com/param/config.tpl.json +24 -0
  69. package/{bin → core}/com/param/drive.js +47 -15
  70. package/core/com/plugin/com.json +4 -0
  71. package/core/com/plugin/config.tpl.json +20 -0
  72. package/{bin → core}/com/plugin/drive.js +5 -8
  73. package/{bin → core}/com/plugin/index.js +11 -56
  74. package/core/com/socket/README.md +47 -0
  75. package/core/com/socket/com.json +4 -0
  76. package/core/com/socket/config.tpl.json +14 -0
  77. package/{bin → core}/com/socket/drive.js +74 -51
  78. package/{bin → core}/com/socket/index.js +4 -2
  79. package/{bin → core}/com/socket/script.js +8 -6
  80. package/core/com/sql/config.tpl.json +70 -0
  81. package/{bin → core}/com/sql/drive.js +281 -58
  82. package/core/com/static/com.json +4 -0
  83. package/core/com/static/config.tpl.json +20 -0
  84. package/{bin → core}/com/static/drive.js +6 -4
  85. package/{bin → core}/com/static/index.js +5 -1
  86. package/core/com/task/com.json +4 -0
  87. package/core/com/task/config.tpl.json +24 -0
  88. package/core/com/task/drive.js +374 -0
  89. package/{bin → core}/com/task/index.js +14 -20
  90. package/core/com/task/script.js +37 -0
  91. package/core/com/timer/com.js +217 -0
  92. package/core/com/timer/com.json +4 -0
  93. package/core/com/tpl/com.js +19 -0
  94. package/core/com/tpl/com.json +4 -0
  95. package/index.js +161 -740
  96. package/lib/actions.js +50 -0
  97. package/lib/app.js +73 -0
  98. package/lib/base.js +355 -0
  99. package/lib/com.js +31 -0
  100. package/lib/game.js +31 -0
  101. package/lib/ref.js +121 -0
  102. package/middleware/cors/index.js +57 -0
  103. package/middleware/cors/middleware.json +7 -0
  104. package/middleware/mqtt_base/index.js +10 -0
  105. package/middleware/mqtt_base/middleware.json +8 -0
  106. package/{waf.js → middleware/waf/index.js} +12 -2
  107. package/middleware/waf/middleware.json +9 -0
  108. package/middleware/web_base/index.js +67 -0
  109. package/middleware/web_base/middleware.json +9 -0
  110. package/middleware/web_event/index.js +411 -0
  111. package/middleware/web_event/middleware.json +10 -0
  112. package/middleware/web_proxy/index.js +24 -0
  113. package/middleware/web_proxy/middleware.json +9 -0
  114. package/middleware/web_router/index.js +33 -0
  115. package/middleware/web_router/middleware.json +10 -0
  116. package/middleware/web_socket/index.js +21 -0
  117. package/middleware/web_socket/middleware.json +9 -0
  118. package/middleware/web_static/index.js +26 -0
  119. package/middleware/web_static/middleware.json +9 -0
  120. package/nodemon.json +12 -2
  121. package/package.json +56 -66
  122. package/.gitattributes +0 -5
  123. package/bin/com/README.md +0 -2
  124. package/bin/com/api/script.js +0 -14
  125. package/bin/com/cmd/README.md +0 -3
  126. package/bin/com/cmd/config.tpl.json +0 -41
  127. package/bin/com/cmd/drive.js +0 -512
  128. package/bin/com/cmd/index.js +0 -213
  129. package/bin/com/cmd/old/5w2h.js +0 -54
  130. package/bin/com/cmd/old/drive.js +0 -423
  131. package/bin/com/cmd/script.js +0 -11
  132. package/bin/com/event/drive.js +0 -69
  133. package/bin/com/event/script.js +0 -12
  134. package/bin/com/nav/tpl/admin_pc/page_channel.vue +0 -234
  135. package/bin/com/nav/tpl/admin_pc/page_default.vue +0 -236
  136. package/bin/com/nav/tpl/admin_pc/page_form.vue +0 -152
  137. package/bin/com/nav/tpl/admin_pc/page_table.vue +0 -236
  138. package/bin/com/nav/tpl/admin_pc/page_type.vue +0 -234
  139. package/bin/com/nav/tpl/home_phone/page_nav.vue +0 -221
  140. package/bin/com/nav/viewmodel.js +0 -161
  141. package/bin/com/plugin/config.tpl.json +0 -11
  142. package/bin/com/socket/config.tpl.json +0 -8
  143. package/bin/com/sql/config.tpl.json +0 -34
  144. package/bin/com/static/config.tpl.json +0 -11
  145. package/bin/com/task/config.tpl.json +0 -13
  146. package/bin/com/task/drive.js +0 -288
  147. package/bin/com/task/script.js +0 -38
  148. package/bin/com.js +0 -74
  149. package/bin/mm.conf +0 -48
  150. package/bin/static/404.html +0 -52
  151. package/bin/static/README.md +0 -1
  152. package/bin/static/css/font-awesome.min.css +0 -7
  153. package/bin/static/css/mm_base.css +0 -220
  154. package/bin/static/css/mm_common.css +0 -518
  155. package/bin/static/css/mm_component.css +0 -307
  156. package/bin/static/css/mm_expand.css +0 -634
  157. package/bin/static/css/mm_theme.css +0 -291
  158. package/bin/static/css/new_file.css +0 -79
  159. package/bin/static/css/swiper.min.css +0 -12
  160. package/bin/static/favicon.ico +0 -0
  161. package/bin/static/font/FontAwesome.otf +0 -0
  162. package/bin/static/font/HelveticaNeue.eot +0 -0
  163. package/bin/static/font/HelveticaNeue.otf +0 -0
  164. package/bin/static/font/HelveticaNeue.svg +0 -1273
  165. package/bin/static/font/HelveticaNeue.woff +0 -0
  166. package/bin/static/font/HelveticaNeue.woff2 +0 -0
  167. package/bin/static/font/fontawesome-webfont.eot +0 -0
  168. package/bin/static/font/fontawesome-webfont.svg +0 -2671
  169. package/bin/static/font/fontawesome-webfont.ttf +0 -0
  170. package/bin/static/font/fontawesome-webfont.woff +0 -0
  171. package/bin/static/font/fontawesome-webfont.woff2 +0 -0
  172. package/bin/static/h5.html +0 -325
  173. package/bin/static/highlight/highlight.pack.js +0 -2
  174. package/bin/static/highlight/styles/a11y-dark.css +0 -99
  175. package/bin/static/highlight/styles/a11y-light.css +0 -99
  176. package/bin/static/highlight/styles/agate.css +0 -108
  177. package/bin/static/highlight/styles/an-old-hope.css +0 -89
  178. package/bin/static/highlight/styles/androidstudio.css +0 -66
  179. package/bin/static/highlight/styles/arduino-light.css +0 -88
  180. package/bin/static/highlight/styles/arta.css +0 -73
  181. package/bin/static/highlight/styles/ascetic.css +0 -45
  182. package/bin/static/highlight/styles/atelier-cave-dark.css +0 -83
  183. package/bin/static/highlight/styles/atelier-cave-light.css +0 -85
  184. package/bin/static/highlight/styles/atelier-dune-dark.css +0 -69
  185. package/bin/static/highlight/styles/atelier-dune-light.css +0 -69
  186. package/bin/static/highlight/styles/atelier-estuary-dark.css +0 -84
  187. package/bin/static/highlight/styles/atelier-estuary-light.css +0 -84
  188. package/bin/static/highlight/styles/atelier-forest-dark.css +0 -69
  189. package/bin/static/highlight/styles/atelier-forest-light.css +0 -69
  190. package/bin/static/highlight/styles/atelier-heath-dark.css +0 -69
  191. package/bin/static/highlight/styles/atelier-heath-light.css +0 -69
  192. package/bin/static/highlight/styles/atelier-lakeside-dark.css +0 -69
  193. package/bin/static/highlight/styles/atelier-lakeside-light.css +0 -69
  194. package/bin/static/highlight/styles/atelier-plateau-dark.css +0 -84
  195. package/bin/static/highlight/styles/atelier-plateau-light.css +0 -84
  196. package/bin/static/highlight/styles/atelier-savanna-dark.css +0 -84
  197. package/bin/static/highlight/styles/atelier-savanna-light.css +0 -84
  198. package/bin/static/highlight/styles/atelier-seaside-dark.css +0 -69
  199. package/bin/static/highlight/styles/atelier-seaside-light.css +0 -69
  200. package/bin/static/highlight/styles/atelier-sulphurpool-dark.css +0 -69
  201. package/bin/static/highlight/styles/atelier-sulphurpool-light.css +0 -69
  202. package/bin/static/highlight/styles/atom-one-dark-reasonable.css +0 -77
  203. package/bin/static/highlight/styles/atom-one-dark.css +0 -96
  204. package/bin/static/highlight/styles/atom-one-light.css +0 -96
  205. package/bin/static/highlight/styles/brown-paper.css +0 -64
  206. package/bin/static/highlight/styles/brown-papersq.png +0 -0
  207. package/bin/static/highlight/styles/codepen-embed.css +0 -60
  208. package/bin/static/highlight/styles/color-brewer.css +0 -71
  209. package/bin/static/highlight/styles/darcula.css +0 -77
  210. package/bin/static/highlight/styles/dark.css +0 -63
  211. package/bin/static/highlight/styles/darkula.css +0 -6
  212. package/bin/static/highlight/styles/default.css +0 -99
  213. package/bin/static/highlight/styles/docco.css +0 -97
  214. package/bin/static/highlight/styles/dracula.css +0 -76
  215. package/bin/static/highlight/styles/far.css +0 -71
  216. package/bin/static/highlight/styles/foundation.css +0 -88
  217. package/bin/static/highlight/styles/github-gist.css +0 -79
  218. package/bin/static/highlight/styles/github.css +0 -99
  219. package/bin/static/highlight/styles/gml.css +0 -78
  220. package/bin/static/highlight/styles/googlecode.css +0 -89
  221. package/bin/static/highlight/styles/grayscale.css +0 -101
  222. package/bin/static/highlight/styles/gruvbox-dark.css +0 -108
  223. package/bin/static/highlight/styles/gruvbox-light.css +0 -108
  224. package/bin/static/highlight/styles/hopscotch.css +0 -83
  225. package/bin/static/highlight/styles/hybrid.css +0 -102
  226. package/bin/static/highlight/styles/idea.css +0 -97
  227. package/bin/static/highlight/styles/ir-black.css +0 -73
  228. package/bin/static/highlight/styles/isbl-editor-dark.css +0 -112
  229. package/bin/static/highlight/styles/isbl-editor-light.css +0 -112
  230. package/bin/static/highlight/styles/kimbie.dark.css +0 -74
  231. package/bin/static/highlight/styles/kimbie.light.css +0 -74
  232. package/bin/static/highlight/styles/lightfair.css +0 -87
  233. package/bin/static/highlight/styles/magula.css +0 -70
  234. package/bin/static/highlight/styles/mono-blue.css +0 -59
  235. package/bin/static/highlight/styles/monokai-sublime.css +0 -83
  236. package/bin/static/highlight/styles/monokai.css +0 -70
  237. package/bin/static/highlight/styles/nord.css +0 -309
  238. package/bin/static/highlight/styles/obsidian.css +0 -88
  239. package/bin/static/highlight/styles/ocean.css +0 -74
  240. package/bin/static/highlight/styles/paraiso-dark.css +0 -72
  241. package/bin/static/highlight/styles/paraiso-light.css +0 -72
  242. package/bin/static/highlight/styles/pojoaque.css +0 -83
  243. package/bin/static/highlight/styles/pojoaque.jpg +0 -0
  244. package/bin/static/highlight/styles/purebasic.css +0 -96
  245. package/bin/static/highlight/styles/qtcreator_dark.css +0 -83
  246. package/bin/static/highlight/styles/qtcreator_light.css +0 -83
  247. package/bin/static/highlight/styles/railscasts.css +0 -106
  248. package/bin/static/highlight/styles/rainbow.css +0 -85
  249. package/bin/static/highlight/styles/routeros.css +0 -108
  250. package/bin/static/highlight/styles/school-book.css +0 -69
  251. package/bin/static/highlight/styles/school-book.png +0 -0
  252. package/bin/static/highlight/styles/shades-of-purple.css +0 -97
  253. package/bin/static/highlight/styles/solarized-dark.css +0 -84
  254. package/bin/static/highlight/styles/solarized-light.css +0 -84
  255. package/bin/static/highlight/styles/sunburst.css +0 -102
  256. package/bin/static/highlight/styles/tomorrow-night-blue.css +0 -75
  257. package/bin/static/highlight/styles/tomorrow-night-bright.css +0 -74
  258. package/bin/static/highlight/styles/tomorrow-night-eighties.css +0 -74
  259. package/bin/static/highlight/styles/tomorrow-night.css +0 -75
  260. package/bin/static/highlight/styles/tomorrow.css +0 -72
  261. package/bin/static/highlight/styles/vs.css +0 -68
  262. package/bin/static/highlight/styles/vs2015.css +0 -115
  263. package/bin/static/highlight/styles/xcode.css +0 -104
  264. package/bin/static/highlight/styles/xt256.css +0 -92
  265. package/bin/static/highlight/styles/zenburn.css +0 -80
  266. package/bin/static/highlight/vue-highlight.js +0 -29
  267. package/bin/static/ifame.html +0 -24
  268. package/bin/static/img/add.png +0 -0
  269. package/bin/static/img/avatar.png +0 -0
  270. package/bin/static/img/banner_2.png +0 -0
  271. package/bin/static/img/default.png +0 -0
  272. package/bin/static/img/loading.svg +0 -1
  273. package/bin/static/img/logo.png +0 -0
  274. package/bin/static/img/logo1.png +0 -0
  275. package/bin/static/img/logo_gray.png +0 -0
  276. package/bin/static/img/logo_round.png +0 -0
  277. package/bin/static/img/mm.ico +0 -0
  278. package/bin/static/img/mm.jpg +0 -0
  279. package/bin/static/img/select.png +0 -0
  280. package/bin/static/img/web.png +0 -0
  281. package/bin/static/index.html +0 -12
  282. package/bin/static/js/clipboard.min.js +0 -257
  283. package/bin/static/js/css.min.js +0 -1
  284. package/bin/static/js/echarts.js +0 -22
  285. package/bin/static/js/html5.min.js +0 -1
  286. package/bin/static/js/jquery.lazyload.min.js +0 -2
  287. package/bin/static/js/jquery.min.js +0 -4189
  288. package/bin/static/js/jquery.scrollstop.min.js +0 -2
  289. package/bin/static/js/mm-requirejs-vue.js +0 -283
  290. package/bin/static/js/mm_check.js +0 -490
  291. package/bin/static/js/mm_flexble.js +0 -112
  292. package/bin/static/js/mm_picker.js +0 -1417
  293. package/bin/static/js/mm_pinyinlite.js +0 -873
  294. package/bin/static/js/mm_sdk.js +0 -2841
  295. package/bin/static/js/mm_ui_expand.js +0 -468
  296. package/bin/static/js/mm_vue.js +0 -376
  297. package/bin/static/js/mm_vue_ui.js +0 -2375
  298. package/bin/static/js/mm_websocket.js +0 -145
  299. package/bin/static/js/require.js +0 -5
  300. package/bin/static/js/sortable.min.js +0 -3
  301. package/bin/static/js/swiper.min.js +0 -13
  302. package/bin/static/js/text.min.js +0 -1
  303. package/bin/static/js/vue-router.min.js +0 -6
  304. package/bin/static/js/vue.js +0 -12338
  305. package/bin/static/js/vuedraggable.min.js +0 -2
  306. package/bin/static/js/vuex.min.js +0 -6
  307. package/bin/static/src/components/bar/mm_action.vue +0 -19
  308. package/bin/static/src/components/bar/mm_buy.vue +0 -19
  309. package/bin/static/src/components/bar/mm_chat.vue +0 -18
  310. package/bin/static/src/components/bar/mm_count.vue +0 -18
  311. package/bin/static/src/components/bar/mm_filter.vue +0 -18
  312. package/bin/static/src/components/bar/mm_search.vue +0 -18
  313. package/bin/static/src/components/bar/mm_sort.vue +0 -18
  314. package/bin/static/src/components/bar/mm_tag.vue +0 -18
  315. package/bin/static/src/components/bar/mm_title.vue +0 -19
  316. package/bin/static/src/components/content/mm_pre.vue +0 -70
  317. package/bin/static/src/components/expand/mm_drag.vue +0 -39
  318. package/bin/static/src/components/item/mm_article.vue +0 -115
  319. package/bin/static/src/components/item/mm_base.vue +0 -26
  320. package/bin/static/src/components/item/mm_contact.vue +0 -25
  321. package/bin/static/src/components/item/mm_goods.vue +0 -23
  322. package/bin/static/src/components/item/mm_img.vue +0 -21
  323. package/bin/static/src/components/item/mm_media.vue +0 -18
  324. package/bin/static/src/components/item/mm_message.vue +0 -18
  325. package/bin/static/src/components/item/mm_music.vue +0 -95
  326. package/bin/static/src/components/item/mm_news.vue +0 -22
  327. package/bin/static/src/components/item/mm_number.vue +0 -26
  328. package/bin/static/src/components/item/mm_question.vue +0 -35
  329. package/bin/static/src/components/item/mm_user.vue +0 -22
  330. package/bin/static/src/components/item/mm_video.vue +0 -95
  331. package/bin/static/src/components/slide/mm_slide_card.vue +0 -64
  332. package/bin/static/src/components/slide/mm_slide_img.vue +0 -47
  333. package/bin/static/src/components/slide/mm_slide_page.vue +0 -8
  334. package/bin/static/src/components/slide/mm_slide_text.vue +0 -54
  335. package/bin/static/src/main.js +0 -84
  336. package/bin/static/src/mixins/form.js +0 -223
  337. package/bin/static/src/mixins/item.js +0 -242
  338. package/bin/static/src/mixins/list.js +0 -244
  339. package/bin/static/src/mixins/page.js +0 -1011
  340. package/bin/static/src/mm_component.js +0 -74
  341. package/bin/static/src/router.js +0 -72
  342. package/bin/static/src/store/user.js +0 -75
  343. package/bin/static/src/store/web.js +0 -50
  344. package/bin/static/user/1/number_info.xlsx +0 -0
  345. package/bin/static/w3c.html +0 -94
  346. package/init.js +0 -55
  347. package/update.md +0 -1
  348. /package/{bin → core}/com/api/README.md +0 -0
  349. /package/{bin → core}/com/api/rpc.js +0 -0
  350. /package/{bin → core}/com/db/README.md +0 -0
  351. /package/{bin → core}/com/event/README.md +0 -0
  352. /package/{bin/com/socket → core/com/mqtt}/README.md +0 -0
  353. /package/{bin → core}/com/nav/README.md +0 -0
  354. /package/{bin → core}/com/nav/config.tpl.json +0 -0
  355. /package/{bin → core}/com/param/README.md +0 -0
  356. /package/{bin → core}/com/param/index.js +0 -0
  357. /package/{bin → core}/com/param/script.js +0 -0
  358. /package/{bin → core}/com/param/test.js +0 -0
  359. /package/{bin → core}/com/plugin/README.md +0 -0
  360. /package/{bin → core}/com/plugin/script.js +0 -0
  361. /package/{bin → core}/com/sql/README.md +0 -0
  362. /package/{bin → core}/com/sql/index.js +0 -0
  363. /package/{bin → core}/com/sql/script.js +0 -0
  364. /package/{bin → core}/com/static/README.md +0 -0
  365. /package/{bin → core}/com/static/script.js +0 -0
  366. /package/{bin → core}/com/task/README.md +0 -0
  367. /package/{bin/rps.bat → rps.bat} +0 -0
  368. /package/{bin/tps.bat → tps.bat} +0 -0
@@ -0,0 +1,285 @@
1
+ <template>
2
+ <main id="${id}">
3
+ <mm_warp>
4
+ <mm_container>
5
+ <mm_row>
6
+ <mm_col class="col-12">
7
+ <mm_card :class="{ 'hide_filter': !show_filter }">
8
+ <div class="card_head arrow" @click="show_filter = !show_filter">
9
+ <h5>${api.title}</h5>
10
+ </div>
11
+ <div class="card_body">
12
+ <mm_form class="bar_filter">
13
+ <div class="title">
14
+ <h5><span>筛选条件</span></h5>
15
+ </div>
16
+ <mm_list :col="3">
17
+ <!--{loop param.list v idx}-->
18
+ <!--{if(v.name === 'keyword')}-->
19
+ <mm_item>
20
+ <control_input v-model="query.keyword" title="${v.title}" desc="${v.description.replace(/\([0-9A-Za-z_]+\)/g, '').replace('用于搜索', '').replace(/、/g, ' / ')}"
21
+ @blur="search()" />
22
+ </mm_item>
23
+ <!--{/if}-->
24
+ <!--{/loop}-->
25
+ <!--{loop field v idx}-->
26
+ <!--{if(v.show.search)}-->
27
+ <!--{if(v.show.search === "input")}-->
28
+ <mm_item>
29
+ <control_input v-model="query.${v.name}" title="${v.title}" @blur="search()" />
30
+ </mm_item>
31
+ <!--{else if(v.show.search === "select")}-->
32
+ <!--{if(v.format.table)}-->
33
+ <mm_item>
34
+ <!--{if(v.format.key.endWith('_id') !== -1)}-->
35
+ <control_select type="list" v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')" @change="search()" />
36
+ <!--{else}-->
37
+ <control_select v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')"
38
+ @change="search()" />
39
+ <!--{/if}-->
40
+ </mm_item>
41
+ <!--{else if(v.format.key.indexOf('user_id') !== -1)}-->
42
+ <mm_item>
43
+ <control_select v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label})" @change="search()" />
44
+ </mm_item>
45
+ <!--{else}-->
46
+ <mm_item>
47
+ <control_select v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label})" @change="search()" />
48
+ </mm_item>
49
+ <!--{/if}-->
50
+ <!--{/if}-->
51
+ <!--{/if}-->
52
+ <!--{/loop}-->
53
+ <mm_item>
54
+ <mm_btn class="btn_primary-x" type="reset" @click.native="reset();search()">重置</mm_btn>
55
+ </mm_item>
56
+ </mm_list>
57
+ </mm_form>
58
+ <div class="bar_action">
59
+ <h5><span>操作</span></h5>
60
+ <div class="btns">
61
+ <mm_btn class="btn_primary-x" url="./${name}_form?">添加</mm_btn>
62
+ <mm_btn @click.native="show = true" class="btn_primary-x" v-bind:class="{ 'disabled': !selects }">批量修改</mm_btn>
63
+ </div>
64
+ <div class="btn_small">
65
+ <control_file class="btn_default-x" type="excel" :func="import_db" v-if="url_import"></control_file>
66
+ <mm_btn class="btn_default-x" @click.native="export_db()" v-if="url_export">导出</mm_btn>
67
+ </div>
68
+ </div>
69
+ <mm_table type="2">
70
+ <thead class="table-sm">
71
+ <tr>
72
+ <th class="th_selected"><input type="checkbox" :checked="select_state" @click="select_all()" /></th>
73
+ <th class="th_id"><span>#</span></th>
74
+ <!--{loop field v idx}-->
75
+ <!--{if(v.show.table)}-->
76
+ <!--{if(v.name !== sql.key)}-->
77
+ <th class="th_${v.name}">
78
+ <control_reverse title="${v.title}" v-model="query.orderby" field="${v.name}" :func="search"></control_reverse>
79
+ </th>
80
+ <!--{/if}-->
81
+ <!--{/if}-->
82
+ <!--{/loop}-->
83
+ <th class="th_handle"><span>操作</span></th>
84
+ </tr>
85
+ </thead>
86
+ <tbody>
87
+ <!-- <draggable v-model="list" tag="tbody" @change="sort_change"> -->
88
+ <tr v-for="(o, idx) in list" :key="idx" :class="{'active': select == idx}" @click="selected(idx)">
89
+ <th class="th_selected"><input type="checkbox" :checked="select_has(o[field])" @click="select_change(o[field])" /></th>
90
+ <td>{{ o[field] }}</td>
91
+ <!--{loop field v idx}-->
92
+ <!--{if(v.show.table)}-->
93
+ <!--{if(v.name !== sql.key)}-->
94
+ <td>
95
+ <!--{if(v.dataType === 'tinyint')}-->
96
+ <control_switch v-model="o.${v.name}" @click.native="set(o)" />
97
+ <!--{else if(v.format)}-->
98
+ <!--{if(v.format.table)}-->
99
+ <span>{{ $get_name(${v.label}, o.${v.format.key}, '${v.format.id || v.format.key}', '${v.format.name}') }}</span>
100
+ <!--{else if(v.name == 'state' || v.name == 'status')}-->
101
+ <span v-bind:class="arr_color[o.${v.name}]">{{ ${v.label}[o.${v.name}] }}</span>
102
+ <!--{else}-->
103
+ <span>{{ ${v.label}[o.${v.name}] }}</span>
104
+ <!--{/if}-->
105
+ <!--{else if(v.name.indexOf('img') !== -1 || v.name.indexOf('icon') !== -1 || v.name === 'avatar')}-->
106
+ <img class="${v.name}" :src="o.${v.name}" alt="${v.title}" />
107
+ <!--{else if(v.dataType === 'date')}-->
108
+ <span>{{ $to_time(o.${v.name}, 'yyyy-MM-dd') }}</span>
109
+ <!--{else if(v.dataType === 'time')}-->
110
+ <span>{{ o.${v.name} }}</span>
111
+ <!--{else if(v.dataType === 'timestamp' || v.dataType === 'datetime')}-->
112
+ <span>{{ $to_time(o.${v.name}, 'yyyy-MM-dd hh:mm') }}</span>
113
+ <!--{else if(v.name === 'display' || v.name === 'orderby')}-->
114
+ <input class="input_display" v-model.number="o.${v.name}" @blur="set(o)" min="0" max="1000" />
115
+ <!--{else}-->
116
+ <span>{{ o.${v.name} }}</span>
117
+ <!--{/if}-->
118
+ </td>
119
+ <!--{/if}-->
120
+ <!--{/if}-->
121
+ <!--{/loop}-->
122
+ <td>
123
+ <mm_btn class="btn_primary" :url="'./${name}_form?${sql.key}=' + o[field]">修改</mm_btn>
124
+ <mm_btn class="btn_warning" @click.native="del_show(o, field)">删除</mm_btn>
125
+ </td>
126
+ </tr>
127
+ </tbody>
128
+ <!-- </draggable> -->
129
+
130
+ <template v-slot:right>
131
+ <thead class="table-sm">
132
+ <tr>
133
+ <th class="th_handle"><span>操作</span></th>
134
+ </tr>
135
+ </thead>
136
+ <tbody>
137
+ <tr v-for="(o, idx) in list" :key="idx" :class="{'active': select == idx}" @click="selected(idx)">
138
+ <td>
139
+ <mm_btn class="btn_primary" :url="'./${name}_form?${sql.key}=' + o[field]">修改</mm_btn>
140
+ <mm_btn class="btn_warning" @click.native="del_show(o, field)">删除</mm_btn>
141
+ </td>
142
+ </tr>
143
+ </tbody>
144
+ </template>
145
+ </mm_table>
146
+ </div>
147
+ <div class="card_foot">
148
+ <div class="fl">
149
+ <control_select v-model="query.size" :options="$to_size()" @change="search()" />
150
+ </div>
151
+ <div class="fr">
152
+ <span class="mr">共 {{ count }} 条</span>
153
+ <span>当前</span>
154
+ <input type="number" class="pager_now" v-model.number="page_now" @blur="goTo(page_now)" @change="page_change" />
155
+ <span>/{{ page_count }}页</span>
156
+ </div>
157
+ <control_pager display="2" v-model="query.page" :count="count / query.size" :func="goTo" :icons="['首页', '上一页', '下一页', '尾页']"></control_pager>
158
+ </div>
159
+ </mm_card>
160
+ </mm_col>
161
+ </mm_row>
162
+ </mm_container>
163
+ </mm_warp>
164
+ <mm_modal v-model="show" mask="true">
165
+ <mm_card class="card">
166
+ <div class="card_head">
167
+ <h5>批量修改</h5>
168
+ </div>
169
+ <div class="card_body pa">
170
+ <dl>
171
+ <!--{loop field v idx}-->
172
+ <!--{if(v.show.batch)}-->
173
+ <dt>${v.title}</dt>
174
+ <dd>
175
+ <!--{if(v.show.batch === "input")}-->
176
+ <control_input v-model="form.${v.name}" />
177
+ <!--{else if(v.show.batch === "select")}-->
178
+ <!--{if(v.format.table)}-->
179
+ <!--{if(v.format.key.endWith('_id') !== -1)}-->
180
+ <control_select type="list" v-model="form.${v.format.key}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')" />
181
+ <!--{else}-->
182
+ <control_select v-model="form.${v.format.key}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')" />
183
+ <!--{/if}-->
184
+ <!--{else}-->
185
+ <control_select v-model="form.${v.format.key}" :options="$to_kv(${v.label})" />
186
+ <!--{/if}-->
187
+ <!--{/if}-->
188
+ </dd>
189
+ <!--{/if}-->
190
+ <!--{/loop}-->
191
+ </dl>
192
+ </div>
193
+ <div class="card_foot">
194
+ <div class="mm_group">
195
+ <button class="btn_default" type="reset" @click="show = false">取消</button>
196
+ <button class="btn_primary" type="button" @click="batchSet()">提交</button>
197
+ </div>
198
+ </div>
199
+ </mm_card>
200
+ </mm_modal>
201
+ </main>
202
+ </template>
203
+
204
+ <script>
205
+ import mixin from '/src/mixins/page.js';
206
+
207
+ export default {
208
+ mixins: [mixin],
209
+ data() {
210
+ return {
211
+ // 列表请求地址
212
+ url_get_list: "${api.path}",
213
+ url_del: "${api.path}?method=del&",
214
+ url_set: "${api.path}?method=set&",
215
+ url_import: "${api.path}?method=import&",
216
+ url_export: "${api.path}?method=export&",
217
+ field: "${sql.key}",
218
+ query_set: {
219
+ "${sql.key}": ""
220
+ },
221
+ // 查询条件
222
+ query: {
223
+ //页码
224
+ page: 1,
225
+ //页面大小
226
+ size: 10,
227
+ /*[loop js.query v idx]*/
228
+ // ${' ' + v.title}
229
+ /*[if v.type === 'number' && !v.select]*/
230
+ '${v.name}': 0,
231
+ /*[else]*/
232
+ '${v.name}': '',
233
+ /*[/if]*/
234
+ /*[/loop]*/
235
+ //排序
236
+ orderby: ""
237
+ },
238
+ form: {},
239
+ //颜色
240
+ arr_color: ['', '', 'font_yellow', 'font_success', 'font_warning', 'font_primary', 'font_info', 'font_default'],
241
+ /*[loop js.data v idx]*/
242
+ // ${' ' + v.title}
243
+ '${v.name}': ${@JSON.stringify(v.value)},
244
+ /*[/loop]*/
245
+ // 视图模型
246
+ vm: {}
247
+ }
248
+ },
249
+ methods: {
250
+ /*[loop js.data v idx]*/
251
+ /*[if(v.path)]*/
252
+ /**
253
+ * 获取 ${v.title}
254
+ * @param {query} 查询条件
255
+ */
256
+ get_/*[v.basename]*/(query) {
257
+ var _this = this;
258
+ if (!query) {
259
+ query = {
260
+ field: "${v.id},${v.field}${v.father_id ? ',' + v.father_id : '' }${v.title_name ? ',title' : '' }"
261
+ };
262
+ }
263
+ this.$get('~${v.path}', query, function(json) {
264
+ if (json.result) {
265
+ _this/*['.' + v.name]*/.clear();
266
+ _this/*['.' + v.name]*/.addList(json.result.list)
267
+ }
268
+ });
269
+ },
270
+ /*[/if]*/
271
+ /*[/loop]*/
272
+ },
273
+ created() {
274
+ /*[loop js.data v idx]*/
275
+ /*[if(v.path)]*/
276
+ // 获取 ${v.title}
277
+ this.get_/*[v.basename]*/();
278
+ /*[/if]*/
279
+ /*[/loop]*/
280
+ }
281
+ }
282
+ </script>
283
+
284
+ <style>
285
+ </style>
@@ -0,0 +1,313 @@
1
+ <template>
2
+ <main id="${id}">
3
+ <mm_warp>
4
+ <mm_container>
5
+ <mm_row>
6
+ <mm_col class="col-12">
7
+ <mm_card :class="{ 'hide_filter': !show_filter }">
8
+ <div class="card_head arrow" @click="show_filter = !show_filter">
9
+ <h5>${api.title}</h5>
10
+ </div>
11
+ <div class="card_body">
12
+ <mm_form class="bar_filter">
13
+ <div class="title">
14
+ <h5><span>筛选条件</span></h5>
15
+ </div>
16
+ <mm_list :col="3">
17
+ <!--{loop param.list v idx}-->
18
+ <!--{if(v.name === 'keyword')}-->
19
+ <mm_item>
20
+ <control_input v-model="query.keyword" title="${v.title}" desc="${v.description.replace(/\([0-9A-Za-z_]+\)/g, '').replace('用于搜索', '').replace(/、/g, ' / ')}"
21
+ />
22
+ </mm_item>
23
+ <!--{/if}-->
24
+ <!--{/loop}-->
25
+ <!--{loop field v idx}-->
26
+ <!--{if(v.show.search)}-->
27
+ <!--{if(v.show.search === "input")}-->
28
+ <mm_item>
29
+ <control_input v-model="query.${v.name}" title="${v.title}" @blur="search()" />
30
+ </mm_item>
31
+ <!--{else if(v.show.search === "select")}-->
32
+ <!--{if(v.format.table)}-->
33
+ <mm_item>
34
+ <!--{if(v.format.key.endWith('_id') !== -1)}-->
35
+ <control_select type="list" v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')" @change="search()" />
36
+ <!--{else}-->
37
+ <control_select v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')"
38
+ @change="search()" />
39
+ <!--{/if}-->
40
+ </mm_item>
41
+ <!--{else if(v.format.key.indexOf('user_id') !== -1)}-->
42
+ <mm_item>
43
+ <control_select v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label})" @change="search()" />
44
+ </mm_item>
45
+ <!--{else}-->
46
+ <mm_item>
47
+ <control_select v-model="query.${v.format.key}" title="${v.title}" :options="$to_kv(${v.label})" @change="search()" />
48
+ </mm_item>
49
+ <!--{/if}-->
50
+ <!--{/if}-->
51
+ <!--{/if}-->
52
+ <!--{/loop}-->
53
+ <mm_item>
54
+ <mm_btn class="btn_primary-x" type="reset" @click.native="reset();">重置</mm_btn>
55
+ </mm_item>
56
+ </mm_list>
57
+ </mm_form>
58
+ <div class="bar_action">
59
+ <h5><span>操作</span></h5>
60
+ <div class="btns">
61
+ <mm_btn class="btn_primary-x" url="./${name}_form?">添加</mm_btn>
62
+ <mm_btn @click.native="show = true" class="btn_primary-x" v-bind:class="{ 'disabled': !selects }">批量修改</mm_btn>
63
+ </div>
64
+ <div class="btn_small">
65
+ <control_file class="btn_default-x" type="excel" :func="import_db" v-if="url_import"></control_file>
66
+ <mm_btn class="btn_default-x" @click.native="export_db()" v-if="url_export">导出</mm_btn>
67
+ </div>
68
+ </div>
69
+ <mm_table type="3">
70
+ <thead class="table-sm">
71
+ <tr>
72
+ <th class="th_open"></th>
73
+ <th class="th_selected"><input type="checkbox" :checked="select_state" @click="select_all()" /></th>
74
+ <th class="th_id"><span>#</span></th>
75
+ <!--{loop field v idx}-->
76
+ <!--{if(v.show.table)}-->
77
+ <!--{if(v.name !== sql.key)}-->
78
+ <th class="th_${v.name}">
79
+ <span>${v.title}</span>
80
+ </th>
81
+ <!--{/if}-->
82
+ <!--{/if}-->
83
+ <!--{/loop}-->
84
+ <th class="th_handle"><span>操作</span></th>
85
+ </tr>
86
+ </thead>
87
+ <tbody>
88
+ <!-- <draggable v-model="list" tag="tbody" @change="sort_change"> -->
89
+ <tr v-for="(o, idx) in list_new" :key="idx" :class="{'active': select == idx, sub: o[father_id], open: opens_has(o[field]), no_sub: !opens_has_sub(o[field]) }"
90
+ @click="selected(idx)">
91
+ <th class="th_open"><button class="btn_open" :style="'margin-left:' + (1.5 * opens_lv(o[father_id])) + 'rem;'"
92
+ @click="opens_change(o[field])"><i class="fa-caret-right"></i></button></th>
93
+ <th class="th_selected"><input type="checkbox" :checked="select_has(o[field])" @click="select_change(o[field])" /></th>
94
+ <td>{{ o[field] }}</td>
95
+ <!--{loop field v idx}-->
96
+ <!--{if(v.show.table)}-->
97
+ <!--{if(v.name !== sql.key)}-->
98
+ <td>
99
+ <!--{if(v.dataType === 'tinyint')}-->
100
+ <control_switch v-model="o.${v.name}" @click.native="set(o)" />
101
+ <!--{else if(v.format)}-->
102
+ <!--{if(v.format.table)}-->
103
+ <span>{{ $get_name(${v.label}, o.${v.format.key}, '${v.format.id || v.format.key}', '${v.format.name}') }}</span>
104
+ <!--{else if(v.name == 'state' || v.name == 'status')}-->
105
+ <span v-bind:class="arr_color[o.${v.name}]">{{ ${v.label}[o.${v.name}] }}</span>
106
+ <!--{else}-->
107
+ <span>{{ ${v.label}[o.${v.name}] }}</span>
108
+ <!--{/if}-->
109
+ <!--{else if(v.name.indexOf('img') !== -1 || v.name.indexOf('icon') !== -1 || v.name === 'avatar')}-->
110
+ <img class="${v.name}" :src="o.${v.name}" alt="${v.title}" />
111
+ <!--{else if(v.dataType === 'date')}-->
112
+ <span>{{ $to_time(o.${v.name}, 'yyyy-MM-dd') }}</span>
113
+ <!--{else if(v.dataType === 'time')}-->
114
+ <span>{{ o.${v.name} }}</span>
115
+ <!--{else if(v.dataType === 'timestamp' || v.dataType === 'datetime')}-->
116
+ <span>{{ $to_time(o.${v.name}, 'yyyy-MM-dd hh:mm') }}</span>
117
+ <!--{else if(v.name === 'display' || v.name === 'orderby')}-->
118
+ <input class="input_display" v-model.number="o.${v.name}" @blur="set(o)" min="0" max="1000" />
119
+ <!--{else}-->
120
+ <control_input :auto="true" v-model="o.${v.name}" @blur="set(o)" />
121
+ <!--{/if}-->
122
+ </td>
123
+ <!--{/if}-->
124
+ <!--{/if}-->
125
+ <!--{/loop}-->
126
+ <td>
127
+ <mm_btn class="btn_primary" :url="'./${name}_form?${sql.key}=' + o[field]">修改</mm_btn>
128
+ <mm_btn class="btn_warning" @click.native="del_show(o, field)">删除</mm_btn>
129
+ </td>
130
+ </tr>
131
+ </tbody>
132
+ <!-- </draggable> -->
133
+
134
+ <template v-slot:right>
135
+ <thead class="table-sm">
136
+ <tr>
137
+ <th class="th_handle"><span>操作</span></th>
138
+ </tr>
139
+ </thead>
140
+ <tbody>
141
+ <tr v-for="(o, idx) in list_new" :key="idx" :class="{'active': select == idx, sub: o[father_id], open: opens_has(o[field]), no_sub: !opens_has_sub(o[field]) }"
142
+ @click="selected(idx)">
143
+ <td>
144
+ <mm_btn class="btn_primary" :url="'./${name}_form?${sql.key}=' + o[field]">修改</mm_btn>
145
+ <mm_btn class="btn_warning" @click.native="del_show(o, field)">删除</mm_btn>
146
+ </td>
147
+ </tr>
148
+ </tbody>
149
+ </template>
150
+ </mm_table>
151
+ </div>
152
+ </mm_card>
153
+ </mm_col>
154
+ </mm_row>
155
+ </mm_container>
156
+ </mm_warp>
157
+ <mm_modal v-model="show" mask="true">
158
+ <mm_card class="card">
159
+ <div class="card_head">
160
+ <h5>批量修改</h5>
161
+ </div>
162
+ <div class="card_body pa">
163
+ <dl>
164
+ <!--{loop field v idx}-->
165
+ <!--{if(v.show.batch)}-->
166
+ <dt>${v.title}</dt>
167
+ <dd>
168
+ <!--{if(v.show.batch === "input")}-->
169
+ <control_input v-model="form.${v.name}" />
170
+ <!--{else if(v.show.batch === "select")}-->
171
+ <!--{if(v.format.table)}-->
172
+ <!--{if(v.format.key.endWith('_id') !== -1)}-->
173
+ <control_select type="list" v-model="form.${v.format.key}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')" />
174
+ <!--{else}-->
175
+ <control_select v-model="form.${v.format.key}" :options="$to_kv(${v.label}, '${v.format.id || v.format.key}', '${v.format.name}')" />
176
+ <!--{/if}-->
177
+ <!--{else}-->
178
+ <control_select v-model="form.${v.format.key}" :options="$to_kv(${v.label})" />
179
+ <!--{/if}-->
180
+ <!--{/if}-->
181
+ </dd>
182
+ <!--{/if}-->
183
+ <!--{/loop}-->
184
+ </dl>
185
+ </div>
186
+ <div class="card_foot">
187
+ <div class="mm_group">
188
+ <button class="btn_default" type="reset" @click="show = false">取消</button>
189
+ <button class="btn_primary" type="button" @click="batchSet()">提交</button>
190
+ </div>
191
+ </div>
192
+ </mm_card>
193
+ </mm_modal>
194
+ </main>
195
+ </template>
196
+
197
+ <script>
198
+ import mixin from '/src/mixins/page.js';
199
+
200
+ export default {
201
+ mixins: [mixin],
202
+ data() {
203
+ return {
204
+ // 列表请求地址
205
+ url_get_list: "${api.path}",
206
+ url_del: "${api.path}?method=del&",
207
+ url_set: "${api.path}?method=set&",
208
+ url_import: "${api.path}?method=import&",
209
+ url_export: "${api.path}?method=export&",
210
+ field: "${sql.key}",
211
+ query_set: {
212
+ "${sql.key}": ""
213
+ },
214
+ // 查询条件
215
+ query: {
216
+ //排序
217
+ orderby: "",
218
+ // 上级分类ID
219
+ father_id: '',
220
+ // 关键词
221
+ keyword: ''
222
+ },
223
+ form: {},
224
+ //颜色
225
+ arr_color: ['', '', 'font_yellow', 'font_success', 'font_warning', 'font_primary', 'font_info', 'font_default'],
226
+ /*[loop js.data v idx]*/
227
+ // ${' ' + v.title}
228
+ '${v.name}': ${@JSON.stringify(v.value)},
229
+ /*[/loop]*/
230
+ // 视图模型
231
+ vm: {}
232
+ }
233
+ },
234
+ methods: {
235
+ /*[loop js.data v idx]*/
236
+ /*[if(v.path)]*/
237
+ /**
238
+ * 获取 ${v.title}
239
+ * @param {query} 查询条件
240
+ */
241
+ get_ /*[v.basename]*/(query) {
242
+ var _this = this;
243
+ if (!query) {
244
+ query = {
245
+ field: "${v.id},${v.field}${v.father_id ? ',' + v.father_id : '' }${v.title_name ? ',title' : '' }"
246
+ };
247
+ }
248
+ this.$get('~${v.path}', query, function(json) {
249
+ if (json.result) {
250
+ _this/*['.' + v.name]*/.clear();
251
+ _this/*['.' + v.name]*/.addList(json.result.list)
252
+ }
253
+ });
254
+ },
255
+ /*[/if]*/
256
+ /*[/loop]*/
257
+ /**
258
+ * 获取列表之前
259
+ * @param {Object} param 参数
260
+ */
261
+ get_list_before(param){
262
+ delete param.page;
263
+ param.size = "0";
264
+ return param;
265
+ }
266
+ },
267
+ created() {
268
+ /*[loop js.data v idx]*/
269
+ /*[if(v.path)]*/
270
+ // 获取 ${v.title}
271
+ this.get_ /*[v.basename]*/();
272
+ /*[/if]*/
273
+ /*[/loop]*/
274
+ },
275
+ computed: {
276
+ list_new() {
277
+ var list = [];
278
+ var {
279
+ keyword,
280
+ father_id
281
+ } = this.query;
282
+
283
+ if (keyword && father_id) {
284
+ return this.list.filter(function(o) {
285
+ return o.father_id == father_id && (o.title.indexOf(keyword) !== -1 || o.name.indexOf(
286
+ keyword) !== -1);
287
+ });
288
+ } else if (father_id) {
289
+ return this.list.filter(function(o) {
290
+ return o.father_id == father_id;
291
+ });
292
+ } else if (keyword) {
293
+ return this.list.filter(function(o) {
294
+ return o.title.indexOf(keyword) !== -1 || o.name.indexOf(keyword) !== -1;
295
+ });
296
+ } else {
297
+ var lt = this.list.toTree(this.field).toList();
298
+ var arr = this.opens;
299
+ for (var i = 0; i < lt.length; i++) {
300
+ var o = lt[i];
301
+ if (this.opens.indexOf(o[this.father_id]) !== -1) {
302
+ list.push(o);
303
+ }
304
+ }
305
+ return list;
306
+ }
307
+ }
308
+ }
309
+ }
310
+ </script>
311
+
312
+ <style>
313
+ </style>