@maketribe/ms-app 4.0.0-alpha.3 → 4.0.0-alpha.5

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 (208) hide show
  1. package/dist/cjs/{404-DWSwF-XG.cjs → 404-DGgEMQMF.cjs} +2 -2
  2. package/dist/cjs/{404-DWSwF-XG.cjs.map → 404-DGgEMQMF.cjs.map} +1 -1
  3. package/dist/cjs/{article-edit-add-page-DMGZ8mH4.cjs → article-edit-add-page-Bje080RK.cjs} +3 -3
  4. package/dist/cjs/{article-edit-add-page-DMGZ8mH4.cjs.map → article-edit-add-page-Bje080RK.cjs.map} +1 -1
  5. package/dist/cjs/{cms-settings-DIOam34M.cjs → cms-settings-Qdpc_nmk.cjs} +2 -2
  6. package/dist/cjs/{cms-settings-DIOam34M.cjs.map → cms-settings-Qdpc_nmk.cjs.map} +1 -1
  7. package/dist/cjs/{dialog-vkfjga6H.cjs → dialog-BOcxD8Ri.cjs} +2 -2
  8. package/dist/cjs/{dialog-vkfjga6H.cjs.map → dialog-BOcxD8Ri.cjs.map} +1 -1
  9. package/dist/cjs/{dialog-B947T7vf.cjs → dialog-DD9hjDmn.cjs} +2 -2
  10. package/dist/cjs/{dialog-B947T7vf.cjs.map → dialog-DD9hjDmn.cjs.map} +1 -1
  11. package/dist/cjs/{dialog-BqZgPcm2.cjs → dialog-aRYiTFfI.cjs} +2 -2
  12. package/dist/cjs/{dialog-BqZgPcm2.cjs.map → dialog-aRYiTFfI.cjs.map} +1 -1
  13. package/dist/cjs/{edit-6Zmg9aTH.cjs → edit-BL5dngfc.cjs} +2 -2
  14. package/dist/cjs/{edit-6Zmg9aTH.cjs.map → edit-BL5dngfc.cjs.map} +1 -1
  15. package/dist/cjs/{index-BM8SqnND.cjs → index-3lwyakW0.cjs} +2 -2
  16. package/dist/cjs/{index-BM8SqnND.cjs.map → index-3lwyakW0.cjs.map} +1 -1
  17. package/dist/cjs/{index-CYQny13b.cjs → index-63F98Jtn.cjs} +2 -2
  18. package/dist/cjs/{index-CYQny13b.cjs.map → index-63F98Jtn.cjs.map} +1 -1
  19. package/dist/cjs/index-B-Aeexgc.cjs +200 -0
  20. package/dist/cjs/index-B-Aeexgc.cjs.map +1 -0
  21. package/dist/cjs/{index-CJiJ6jy7.cjs → index-B1VQXzw4.cjs} +101 -69
  22. package/dist/cjs/index-B1VQXzw4.cjs.map +1 -0
  23. package/dist/cjs/{index-DB88N2cP.cjs → index-B7ZJf5GV.cjs} +2 -2
  24. package/dist/cjs/{index-DB88N2cP.cjs.map → index-B7ZJf5GV.cjs.map} +1 -1
  25. package/dist/cjs/{index-Bu_g8P0A.cjs → index-Ba7fImfP.cjs} +2 -2
  26. package/dist/cjs/{index-Bu_g8P0A.cjs.map → index-Ba7fImfP.cjs.map} +1 -1
  27. package/dist/cjs/{index-BaBoZUBz.cjs → index-Bc2B_X5p.cjs} +2 -2
  28. package/dist/cjs/index-Bc2B_X5p.cjs.map +1 -0
  29. package/dist/cjs/{index-BFgkbUEa.cjs → index-BjyJK1r7.cjs} +3 -3
  30. package/dist/cjs/{index-BFgkbUEa.cjs.map → index-BjyJK1r7.cjs.map} +1 -1
  31. package/dist/cjs/{index-BIjMV8Hr.cjs → index-BolEvnXh.cjs} +2 -2
  32. package/dist/cjs/{index-BIjMV8Hr.cjs.map → index-BolEvnXh.cjs.map} +1 -1
  33. package/dist/cjs/{index-BrZdnq8W.cjs → index-CaCUViDy.cjs} +2 -2
  34. package/dist/cjs/index-CaCUViDy.cjs.map +1 -0
  35. package/dist/cjs/{index-64qKudS1.cjs → index-CdtDddiW.cjs} +2 -2
  36. package/dist/cjs/{index-64qKudS1.cjs.map → index-CdtDddiW.cjs.map} +1 -1
  37. package/dist/cjs/{index-Dl_nvllQ.cjs → index-Cg0aBXSH.cjs} +2 -2
  38. package/dist/cjs/{index-Dl_nvllQ.cjs.map → index-Cg0aBXSH.cjs.map} +1 -1
  39. package/dist/cjs/{index-oxaOb3VO.cjs → index-Cir-kUe5.cjs} +3 -3
  40. package/dist/cjs/{index-oxaOb3VO.cjs.map → index-Cir-kUe5.cjs.map} +1 -1
  41. package/dist/cjs/{index-CAZDWsf3.cjs → index-CjULkhHo.cjs} +2 -2
  42. package/dist/cjs/{index-CAZDWsf3.cjs.map → index-CjULkhHo.cjs.map} +1 -1
  43. package/dist/cjs/{index-T3Vf8XMJ.cjs → index-DUxljBVo.cjs} +2 -2
  44. package/dist/cjs/{index-T3Vf8XMJ.cjs.map → index-DUxljBVo.cjs.map} +1 -1
  45. package/dist/cjs/{index-Dv6z6LqI.cjs → index-DWyoz9uB.cjs} +8 -10
  46. package/dist/cjs/index-DWyoz9uB.cjs.map +1 -0
  47. package/dist/cjs/{index-CvN_2DSE.cjs → index-DcyP91fA.cjs} +2 -2
  48. package/dist/cjs/{index-CvN_2DSE.cjs.map → index-DcyP91fA.cjs.map} +1 -1
  49. package/dist/cjs/{index-CEHVP61_.cjs → index-DkGZObr_.cjs} +2 -2
  50. package/dist/cjs/{index-CEHVP61_.cjs.map → index-DkGZObr_.cjs.map} +1 -1
  51. package/dist/cjs/{index-BLEQMNvQ.cjs → index-DkIRPJAw.cjs} +2 -2
  52. package/dist/cjs/{index-BLEQMNvQ.cjs.map → index-DkIRPJAw.cjs.map} +1 -1
  53. package/dist/cjs/{index-YRbQttqL.cjs → index-DrBXbJbx.cjs} +2 -2
  54. package/dist/cjs/index-DrBXbJbx.cjs.map +1 -0
  55. package/dist/cjs/{index-9Oy5JtDM.cjs → index-DtsfTu6t.cjs} +2 -2
  56. package/dist/cjs/{index-9Oy5JtDM.cjs.map → index-DtsfTu6t.cjs.map} +1 -1
  57. package/dist/cjs/{index-qBBjmPWr.cjs → index-HNgq3w7m.cjs} +2 -2
  58. package/dist/cjs/{index-qBBjmPWr.cjs.map → index-HNgq3w7m.cjs.map} +1 -1
  59. package/dist/cjs/{index-C2NSwxxH.cjs → index-MUZMUnyF.cjs} +9 -10
  60. package/dist/cjs/index-MUZMUnyF.cjs.map +1 -0
  61. package/dist/cjs/{index-DjP1khaa.cjs → index-Oe0BUapJ.cjs} +2 -2
  62. package/dist/cjs/{index-DjP1khaa.cjs.map → index-Oe0BUapJ.cjs.map} +1 -1
  63. package/dist/cjs/{index-DmsVtl33.cjs → index-T1YsHAiR.cjs} +3 -3
  64. package/dist/cjs/{index-DmsVtl33.cjs.map → index-T1YsHAiR.cjs.map} +1 -1
  65. package/dist/cjs/{index-BSPRCyGW.cjs → index-bj8-MXln.cjs} +3 -3
  66. package/dist/cjs/{index-BSPRCyGW.cjs.map → index-bj8-MXln.cjs.map} +1 -1
  67. package/dist/cjs/{index-Br7b64td.cjs → index-g-sCVX8Y.cjs} +2 -2
  68. package/dist/cjs/{index-Br7b64td.cjs.map → index-g-sCVX8Y.cjs.map} +1 -1
  69. package/dist/cjs/{index-Cr2MyczI.cjs → index-gYJKZkJ6.cjs} +3 -3
  70. package/dist/cjs/{index-Cr2MyczI.cjs.map → index-gYJKZkJ6.cjs.map} +1 -1
  71. package/dist/cjs/{index-DHbVriDb.cjs → index-h4ZlI0EM.cjs} +2 -2
  72. package/dist/cjs/{index-DHbVriDb.cjs.map → index-h4ZlI0EM.cjs.map} +1 -1
  73. package/dist/cjs/{index-x4E7Eggf.cjs → index-rVOOWou_.cjs} +3 -3
  74. package/dist/cjs/{index-x4E7Eggf.cjs.map → index-rVOOWou_.cjs.map} +1 -1
  75. package/dist/cjs/{index-Ddqk3hMe.cjs → index-z5P0Kaen.cjs} +2 -2
  76. package/dist/cjs/{index-Ddqk3hMe.cjs.map → index-z5P0Kaen.cjs.map} +1 -1
  77. package/dist/cjs/index.js +5 -5
  78. package/dist/cjs/{index.vue_vue_type_script_setup_true_lang-D8YMnc_N.cjs → index.vue_vue_type_script_setup_true_lang-C4ujB235.cjs} +2 -2
  79. package/dist/cjs/{index.vue_vue_type_script_setup_true_lang-D8YMnc_N.cjs.map → index.vue_vue_type_script_setup_true_lang-C4ujB235.cjs.map} +1 -1
  80. package/dist/cjs/{json-editor-DcwX0iMa.cjs → json-editor-BuDPJNoi.cjs} +2 -2
  81. package/dist/cjs/{json-editor-DcwX0iMa.cjs.map → json-editor-BuDPJNoi.cjs.map} +1 -1
  82. package/dist/cjs/{markdown-editor-8CPE3qxN.cjs → markdown-editor-VlKQ5rmm.cjs} +2 -2
  83. package/dist/cjs/{markdown-editor-8CPE3qxN.cjs.map → markdown-editor-VlKQ5rmm.cjs.map} +1 -1
  84. package/dist/cjs/{normal-BRUVTnIj.cjs → normal-162tp8x5.cjs} +2 -2
  85. package/dist/cjs/{normal-BRUVTnIj.cjs.map → normal-162tp8x5.cjs.map} +1 -1
  86. package/dist/cjs/{normal-Dr8AYe2r.cjs → normal-D2713i_m.cjs} +2 -2
  87. package/dist/cjs/{normal-Dr8AYe2r.cjs.map → normal-D2713i_m.cjs.map} +1 -1
  88. package/dist/cjs/{permission-manage-DeDXlRil.cjs → permission-manage-DphCZ2al.cjs} +3 -3
  89. package/dist/cjs/{permission-manage-DeDXlRil.cjs.map → permission-manage-DphCZ2al.cjs.map} +1 -1
  90. package/dist/cjs/{resource-select-input-DK-y2auR.cjs → resource-select-input-iHLmmMyn.cjs} +2 -2
  91. package/dist/cjs/{resource-select-input-DK-y2auR.cjs.map → resource-select-input-iHLmmMyn.cjs.map} +1 -1
  92. package/dist/cjs/style.css +3 -1
  93. package/dist/cjs/{table-C3yMZ6mu.cjs → table-gztffYjX.cjs} +2 -2
  94. package/dist/cjs/{table-C3yMZ6mu.cjs.map → table-gztffYjX.cjs.map} +1 -1
  95. package/dist/esm/{404-D5XFfiHo.js → 404-CW_9KTBN.js} +2 -2
  96. package/dist/esm/{404-D5XFfiHo.js.map → 404-CW_9KTBN.js.map} +1 -1
  97. package/dist/esm/{article-edit-add-page-AeJ2loBa.js → article-edit-add-page-BxbovMjH.js} +3 -3
  98. package/dist/esm/{article-edit-add-page-AeJ2loBa.js.map → article-edit-add-page-BxbovMjH.js.map} +1 -1
  99. package/dist/esm/{cms-settings-DHQmoLKI.js → cms-settings-3ysZKNMa.js} +2 -2
  100. package/dist/esm/{cms-settings-DHQmoLKI.js.map → cms-settings-3ysZKNMa.js.map} +1 -1
  101. package/dist/esm/{dialog-BQtjgY66.js → dialog-CoFIYAyR.js} +2 -2
  102. package/dist/esm/{dialog-BQtjgY66.js.map → dialog-CoFIYAyR.js.map} +1 -1
  103. package/dist/esm/{dialog-CPR8_y9H.js → dialog-DknjQoA1.js} +2 -2
  104. package/dist/esm/{dialog-CPR8_y9H.js.map → dialog-DknjQoA1.js.map} +1 -1
  105. package/dist/esm/{dialog-Cb7Lps0k.js → dialog-E7M9atVV.js} +2 -2
  106. package/dist/esm/{dialog-Cb7Lps0k.js.map → dialog-E7M9atVV.js.map} +1 -1
  107. package/dist/esm/{edit-Bk7te-2r.js → edit-BM-Do19m.js} +2 -2
  108. package/dist/esm/{edit-Bk7te-2r.js.map → edit-BM-Do19m.js.map} +1 -1
  109. package/dist/esm/{index-Cxr1pm2r.js → index-6pZHgXtY.js} +3 -3
  110. package/dist/esm/{index-Cxr1pm2r.js.map → index-6pZHgXtY.js.map} +1 -1
  111. package/dist/esm/{index-CPBRsmn3.js → index-B7V4NKgm.js} +2 -2
  112. package/dist/esm/{index-CPBRsmn3.js.map → index-B7V4NKgm.js.map} +1 -1
  113. package/dist/esm/index-BFKVNCwz.js +200 -0
  114. package/dist/esm/index-BFKVNCwz.js.map +1 -0
  115. package/dist/esm/{index-pWRDGnCA.js → index-BQuQ8jEs.js} +2 -2
  116. package/dist/esm/{index-pWRDGnCA.js.map → index-BQuQ8jEs.js.map} +1 -1
  117. package/dist/esm/{index-C-nug2my.js → index-BUQ8XMhN.js} +2 -2
  118. package/dist/esm/{index-C-nug2my.js.map → index-BUQ8XMhN.js.map} +1 -1
  119. package/dist/esm/{index-Bus0Ed53.js → index-C2Y6k5VU.js} +2 -2
  120. package/dist/esm/{index-Bus0Ed53.js.map → index-C2Y6k5VU.js.map} +1 -1
  121. package/dist/esm/{index-mNJ5Nh1F.js → index-CAmafqoX.js} +3 -3
  122. package/dist/esm/{index-mNJ5Nh1F.js.map → index-CAmafqoX.js.map} +1 -1
  123. package/dist/esm/{index-CYsTe22K.js → index-CKR8AVN2.js} +3 -3
  124. package/dist/esm/{index-CYsTe22K.js.map → index-CKR8AVN2.js.map} +1 -1
  125. package/dist/esm/{index-Cx70jXqW.js → index-CZ8jfaGv.js} +3 -3
  126. package/dist/esm/{index-Cx70jXqW.js.map → index-CZ8jfaGv.js.map} +1 -1
  127. package/dist/esm/{index-DulOSNCq.js → index-CdTUER4F.js} +2 -2
  128. package/dist/esm/{index-DulOSNCq.js.map → index-CdTUER4F.js.map} +1 -1
  129. package/dist/esm/{index-mq3nYYwD.js → index-ClxRVkUv.js} +275 -243
  130. package/dist/esm/index-ClxRVkUv.js.map +1 -0
  131. package/dist/esm/{index-BZDkvIT8.js → index-CpVtmerJ.js} +2 -2
  132. package/dist/esm/{index-BZDkvIT8.js.map → index-CpVtmerJ.js.map} +1 -1
  133. package/dist/esm/{index-BZ4nk74T.js → index-CuoLNqsR.js} +2 -2
  134. package/dist/esm/{index-BZ4nk74T.js.map → index-CuoLNqsR.js.map} +1 -1
  135. package/dist/esm/{index-Y7lD4xpK.js → index-Cw4Br85S.js} +2 -2
  136. package/dist/esm/index-Cw4Br85S.js.map +1 -0
  137. package/dist/esm/{index-B0JN-XM8.js → index-D9OxO5-n.js} +2 -2
  138. package/dist/esm/{index-B0JN-XM8.js.map → index-D9OxO5-n.js.map} +1 -1
  139. package/dist/esm/{index-84gxgRCL.js → index-DH4urB62.js} +2 -2
  140. package/dist/esm/{index-84gxgRCL.js.map → index-DH4urB62.js.map} +1 -1
  141. package/dist/esm/{index-WK-zyRhV.js → index-DNqEddef.js} +2 -2
  142. package/dist/esm/index-DNqEddef.js.map +1 -0
  143. package/dist/esm/{index-8H_Cvlt6.js → index-DRv4tRm_.js} +2 -2
  144. package/dist/esm/{index-8H_Cvlt6.js.map → index-DRv4tRm_.js.map} +1 -1
  145. package/dist/esm/{index-D0XxzoBI.js → index-DVprQ057.js} +2 -2
  146. package/dist/esm/{index-D0XxzoBI.js.map → index-DVprQ057.js.map} +1 -1
  147. package/dist/esm/{index-B4r9F3Zh.js → index-D_72zZcS.js} +2 -2
  148. package/dist/esm/index-D_72zZcS.js.map +1 -0
  149. package/dist/esm/{index-CvV8qbPg.js → index-DbE9AANc.js} +2 -2
  150. package/dist/esm/{index-CvV8qbPg.js.map → index-DbE9AANc.js.map} +1 -1
  151. package/dist/esm/{index-Cmc71fzA.js → index-Dh0Vib2I.js} +2 -2
  152. package/dist/esm/{index-Cmc71fzA.js.map → index-Dh0Vib2I.js.map} +1 -1
  153. package/dist/esm/{index-B0iifroA.js → index-Dt4bQBBJ.js} +9 -10
  154. package/dist/esm/index-Dt4bQBBJ.js.map +1 -0
  155. package/dist/esm/{index-BSvkrpO1.js → index-Dtte-7PW.js} +9 -11
  156. package/dist/esm/index-Dtte-7PW.js.map +1 -0
  157. package/dist/esm/{index-DCRMtVnn.js → index-DvMY_TAx.js} +2 -2
  158. package/dist/esm/{index-DCRMtVnn.js.map → index-DvMY_TAx.js.map} +1 -1
  159. package/dist/esm/{index-VZNiNwyo.js → index-Dw_8CNLO.js} +2 -2
  160. package/dist/esm/{index-VZNiNwyo.js.map → index-Dw_8CNLO.js.map} +1 -1
  161. package/dist/esm/{index-CpnOCrKn.js → index-Rs0Y4chB.js} +2 -2
  162. package/dist/esm/{index-CpnOCrKn.js.map → index-Rs0Y4chB.js.map} +1 -1
  163. package/dist/esm/{index-ELFtoTxz.js → index-Wod-kleB.js} +3 -3
  164. package/dist/esm/{index-ELFtoTxz.js.map → index-Wod-kleB.js.map} +1 -1
  165. package/dist/esm/{index-_hBIn8hO.js → index-ZsmNUCj7.js} +2 -2
  166. package/dist/esm/{index-_hBIn8hO.js.map → index-ZsmNUCj7.js.map} +1 -1
  167. package/dist/esm/{index-p8vYirVH.js → index-aRsrq1KN.js} +2 -2
  168. package/dist/esm/{index-p8vYirVH.js.map → index-aRsrq1KN.js.map} +1 -1
  169. package/dist/esm/{index-CgCwBVWj.js → index-vHGC9cSD.js} +3 -3
  170. package/dist/esm/{index-CgCwBVWj.js.map → index-vHGC9cSD.js.map} +1 -1
  171. package/dist/esm/index.js +176 -176
  172. package/dist/esm/{index.vue_vue_type_script_setup_true_lang-Bfxqixud.js → index.vue_vue_type_script_setup_true_lang-B9tW53id.js} +2 -2
  173. package/dist/esm/{index.vue_vue_type_script_setup_true_lang-Bfxqixud.js.map → index.vue_vue_type_script_setup_true_lang-B9tW53id.js.map} +1 -1
  174. package/dist/esm/{json-editor-wqz1RgJf.js → json-editor-CQkxKSXs.js} +2 -2
  175. package/dist/esm/{json-editor-wqz1RgJf.js.map → json-editor-CQkxKSXs.js.map} +1 -1
  176. package/dist/esm/{markdown-editor-DI3xA77v.js → markdown-editor-gKhIB3Bf.js} +2 -2
  177. package/dist/esm/{markdown-editor-DI3xA77v.js.map → markdown-editor-gKhIB3Bf.js.map} +1 -1
  178. package/dist/esm/{normal-BSDfzy52.js → normal-BX6dhg2W.js} +2 -2
  179. package/dist/esm/{normal-BSDfzy52.js.map → normal-BX6dhg2W.js.map} +1 -1
  180. package/dist/esm/{normal-kBdt-_xr.js → normal-W9IqF1DG.js} +2 -2
  181. package/dist/esm/{normal-kBdt-_xr.js.map → normal-W9IqF1DG.js.map} +1 -1
  182. package/dist/esm/{permission-manage-B7Gr83rb.js → permission-manage-CGSDXzZP.js} +3 -3
  183. package/dist/esm/{permission-manage-B7Gr83rb.js.map → permission-manage-CGSDXzZP.js.map} +1 -1
  184. package/dist/esm/{resource-select-input-Cm9nIaHj.js → resource-select-input-BHZ9ndaS.js} +2 -2
  185. package/dist/esm/{resource-select-input-Cm9nIaHj.js.map → resource-select-input-BHZ9ndaS.js.map} +1 -1
  186. package/dist/esm/style.css +3 -1
  187. package/dist/esm/{table-BeLB_exN.js → table-DJQh65QP.js} +2 -2
  188. package/dist/esm/{table-BeLB_exN.js.map → table-DJQh65QP.js.map} +1 -1
  189. package/dist/types/components/data-model/data-form/components/form-detail/form-detail.vue.d.ts +39 -0
  190. package/dist/types/components/data-model/data-form/components/form-detail/index.d.ts +2 -2
  191. package/dist/types/layouts/new/ui-kit/HDialog.vue.d.ts +1 -0
  192. package/package.json +3 -3
  193. package/dist/cjs/index-BaBoZUBz.cjs.map +0 -1
  194. package/dist/cjs/index-BrZdnq8W.cjs.map +0 -1
  195. package/dist/cjs/index-C2NSwxxH.cjs.map +0 -1
  196. package/dist/cjs/index-CJiJ6jy7.cjs.map +0 -1
  197. package/dist/cjs/index-Cw_e9O7Z.cjs +0 -167
  198. package/dist/cjs/index-Cw_e9O7Z.cjs.map +0 -1
  199. package/dist/cjs/index-Dv6z6LqI.cjs.map +0 -1
  200. package/dist/cjs/index-YRbQttqL.cjs.map +0 -1
  201. package/dist/esm/index-B0iifroA.js.map +0 -1
  202. package/dist/esm/index-B4r9F3Zh.js.map +0 -1
  203. package/dist/esm/index-BSvkrpO1.js.map +0 -1
  204. package/dist/esm/index-WK-zyRhV.js.map +0 -1
  205. package/dist/esm/index-Y7lD4xpK.js.map +0 -1
  206. package/dist/esm/index-mq3nYYwD.js.map +0 -1
  207. package/dist/esm/index-pzNnwUiS.js +0 -167
  208. package/dist/esm/index-pzNnwUiS.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"article-edit-add-page-AeJ2loBa.js","sources":["../../src/modules/cms/pages/cms-contents/components/article-atlas.vue","../../src/modules/cms/pages/cms-contents/article-edit-add-page.vue"],"sourcesContent":["<template>\r\n <el-card class=\"cms-article-atlas\">\r\n <template #header>\r\n <div @click=\"showAtlasFormHandle()\" class=\"cms-article-atlas__header\">\r\n <span>\r\n <MKSvgIcon iconClass=\"Picture\" style=\"margin-right: 5px;\" />\r\n 文章媒体库\r\n </span>\r\n <MKSvgIcon class=\"cms-article-atlas__header__btn\" iconClass=\"Plus\" style=\"color: #409EFF;\" />\r\n </div>\r\n </template>\r\n <el-empty v-if=\"atlas.length <= 0\" description=\"暂无内容\" />\r\n <el-scrollbar class=\"cms-article-atlas__list\" v-else>\r\n <el-card class=\"cms-article-atlas__list__item\" v-for=\"(item, index) in atlas\" :key=\"item.id\">\r\n <el-image class=\"images\" :src=\"item.path\" v-if=\"item.type == 1\" fit=\"contain\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" controls></video>\r\n <div class=\"cms-article-atlas__list__item__desc\">\r\n <div class=\"item-desc-left\">\r\n <div class=\"title ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"item.type == 1\" iconClass=\"Picture\"></MKSvgIcon>\r\n <MKSvgIcon class=\"icon\" v-if=\"item.type == 2\" iconClass=\"VideoCamera\"></MKSvgIcon>\r\n <span :title=\"item.title\">{{ item.title }}</span>\r\n </div>\r\n <div class=\"external-links ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"item.link\" iconClass=\"Link\"></MKSvgIcon>\r\n <a :href=\"item.link\" target=\"_blank\" :title=\"item.path\">{{ item.link }}</a>\r\n </div>\r\n </div>\r\n <el-dropdown trigger=\"click\" :teleported=\"false\" class=\"item-desc-right\">\r\n <span class=\"el-dropdown-link\">\r\n 更多<el-icon class=\"el-icon--right\"><arrow-down /></el-icon>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item class=\"edit-button\" :icon=\"EditPen\" @click=\"editHandle(item)\">编辑</el-dropdown-item>\r\n <el-dropdown-item class=\"delete-button\" :icon=\"Delete\"\r\n @click=\"deleteHandle(index)\">删除</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </el-card>\r\n <el-dialog v-model=\"formVisible\" append-to-body>\r\n <MKDataForm :dataForm=\"atlasDv\">\r\n <MKForm></MKForm>\r\n </MKDataForm>\r\n <template #footer>\r\n <el-button type=\"primary\" @click=\"saveAlatsHandle\">保存</el-button>\r\n <el-button @click=\"formVisible = false\"> 取消 </el-button>\r\n </template>\r\n </el-dialog>\r\n\r\n </el-scrollbar>\r\n </el-card>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, computed, ref, defineProps, watch, reactive } from \"vue\";\r\nimport { EditPen, ArrowDown, Delete } from \"@element-plus/icons-vue\"\r\nimport { CmsArticleAtlasForm } from \"../../../dataviews/cms-articles/cms-article-atlas\";\r\nimport { MKDataForm, MKForm } from \"../../../../../components\";\r\n\r\n// 参数\r\nconst props = defineProps({\r\n articleId: { type: Number, default: \"\" },\r\n modelValue: { type: Array<any>, default: () => [] },\r\n})\r\nconst emit = defineEmits([\"update:modelValue\"])\r\n//atlas表单\r\nconst atlasDv = reactive(new CmsArticleAtlasForm()) as CmsArticleAtlasForm;\r\nconst formVisible = ref(false);\r\n\r\nconst imgExtension = [\".jpg\", \".png\", \".gif\", \".jpeg\", \".bmp\", \".webp\", \".svg\", \".tiff\", \".tif\", \".ico\", \".jfif\", \".jpe\"]\r\nconst videoExtension = [\".mp4\", \".avi\", \".rmvb\", \".flv\", \".mkv\", \".wmv\", \".mov\", \".webm\", \".m4v\", \".mpg\", \".mpeg\", \".mts\", \".m2ts\", \".m2v\", \".mpe\", \".mpv\", \".vob\", \".ogv\", \".3gp\", \".3g2\", \".3gpp\", \".3gpp2\", \".3gp2\"]\r\n\r\n\r\n//图集数据\r\nconst atlas = computed(\r\n () => {\r\n const _arr = props.modelValue.map((item, index) => {\r\n const extension = item.path.slice(item.path.lastIndexOf(\".\"))\r\n let type = 0;\r\n if (imgExtension.includes(extension)) {\r\n type = 1\r\n } else if (videoExtension.includes(extension)) {\r\n type = 2\r\n }\r\n return { ...item, type, uid: item.title + index }\r\n })\r\n return _arr\r\n },\r\n);\r\n\r\n\r\n(window as any).atlasDv = atlasDv;\r\n(window as any).atlas = atlas;\r\n(window as any).modelValue = props.modelValue;\r\n/***\r\n * 展示atlas表单\r\n */\r\nconst showAtlasFormHandle = () => {\r\n formVisible.value = true;\r\n atlasDv.addRecord({\r\n cmsArticlesId: props.articleId\r\n })\r\n}\r\n\r\n//重置atlas表单\r\nwatch(formVisible, (v) => {\r\n atlasDv.reset();\r\n})\r\n\r\n/**\r\n * 保存\r\n */\r\nconst saveAlatsHandle = async () => {\r\n if (atlasDv.data.uid) {\r\n const index = atlas.value.findIndex(item => item.uid == atlasDv.data.uid)\r\n atlas.value[index] = { ...atlas.value[index], ...atlasDv.data }\r\n } else {\r\n atlas.value.push(atlasDv.data)\r\n }\r\n\r\n emit(\"update:modelValue\", atlas.value)\r\n formVisible.value = false;\r\n}\r\n/**\r\n * 删除\r\n */\r\nconst deleteHandle = (index: number) => {\r\n atlas.value.splice(index, 1)\r\n emit(\"update:modelValue\", atlas.value)\r\n}\r\n\r\nconst editHandle = (item: any) => {\r\n atlasDv.addRecord(item)\r\n formVisible.value = true;\r\n}\r\n// 挂在完成之后\r\nonMounted(async () => {\r\n await atlasDv.init();\r\n})\r\n\r\n</script>\r\n","<template>\r\n <div class=\"mk-cms-article-eidtadd__warp\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"ArrowLeftBold\" title=\"返回\"\r\n @back=\"() => router.push({ name: 'cms/contents', query: { pid: articleForm?.data?.cmsPartId } })\">\r\n <template #content>\r\n <template v-if=\"!articleForm.loading\">\r\n <el-text v-if=\"!articleForm.data?.modifier\">{{ !!route.query.id ? \"编辑文章\" : \"创建文章\" }}</el-text>\r\n <el-text v-else>{{ articleForm.data?.modifierName }} 于 {{ articleForm.data?.updatedAt }} 更新</el-text>\r\n </template>\r\n </template>\r\n <template #extra>\r\n <div class=\"mk-cms-article-eidtadd__header_tools\">\r\n\r\n <template v-if=\"!articleForm.loading\">\r\n <el-tag v-if=\"!articleForm.data?.publishTime\" effect=\"dark\" round>未发布</el-tag>\r\n <el-text v-else>发布时间:{{ articleForm.data?.publishTime }}</el-text>\r\n </template>\r\n\r\n <el-dropdown split-button type=\"primary\" style=\"margin-left: 10px;\" @click=\"saveHandle\">\r\n <MKSvgIcon name=\"carbon:save\" style=\"margin-right: 10px;\" />\r\n 保存\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static'\" @click=\"saveAndViewHandle\">\r\n <MKSvgIcon name=\"ep:view\" style=\"margin-right: 5px;\" />\r\n 保存并预览\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"saveAndPublishHandle\">\r\n <MKSvgIcon name=\"ep:share\" style=\"margin-right: 5px;\" />\r\n 保存并发布\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-article-eidtadd__body\" v-loading=\"articleForm.loading\">\r\n\r\n <MKDocEditor v-if=\"articleForm.data\" :css=\"CmsSettings.content.doc.css\" namespace=\"cms-article\"\r\n :js=\"CmsSettings.content.doc.js\" :modelValue=\"content\" @update:modelValue=\"docEditorChangeHandle\">\r\n <template #header>\r\n <div class=\"mk-cms-article-eidtadd__body__header\">\r\n <el-row>\r\n <el-input class=\"title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"请输入标题\" v-model=\"title\" />\r\n </el-row>\r\n <el-row>\r\n <el-input class=\"sub-title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"[选填] 请输入子标题\" v-model=\"subTitle\" />\r\n </el-row>\r\n </div>\r\n </template>\r\n <template #after-extentions>\r\n <div class=\"mk-cms-article-eidtadd__body__extentions\" :class=\"{ hide: closeExtentions! }\" ref=\"extentionsRef\">\r\n <MKSvgIcon name=\"ep:arrow-left\" class=\"open\" @click=\"closeExtentionsHandle\" v-if=\"closeExtentions\">\r\n </MKSvgIcon>\r\n <MKSvgIcon v-else name=\"ep:arrow-right\" class=\"close\" @click=\"hideExtentionsHandle\">\r\n </MKSvgIcon>\r\n <el-divider content-position=\"left\">文章设置</el-divider>\r\n <MKDataForm :dataForm=\"articleForm\">\r\n <MKForm :dataForm=\"articleForm\" style=\"width:225px\" label-width=\"110px\">\r\n <el-row v-if=\"CmsSettings.content.useTop\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isTop\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useNew\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isNew\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useHotRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isHotRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.usePartRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isPartRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isShowList\"></MKDataFormItem>\r\n </el-row>\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isDraft\"></MKDataFormItem>\r\n </el-row> -->\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"sortNo\"></MKDataFormItem>\r\n </el-row> -->\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n </template>\r\n <template #footer>\r\n <div class=\"mk-cms-article-eidtadd__body__footer\">\r\n <el-tabs v-model=\"articleOptionsActive\">\r\n <el-tab-pane label=\"基础内容\" name=\"content\">\r\n <div class=\"content\">\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"6\">\r\n <el-input placeholder=\"[选填] 作者\" v-model=\"articleForm.data.author\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon name=\"ep:user-filled\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-date-picker v-model=\"releaseDate\" type=\"datetime\" placeholder=\"发布时间\"\r\n :default-time=\"new Date()\" />\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-input placeholder=\"[选填] 发布地址\" v-model=\"articleForm.data.locationDesc\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon name=\"ep:location\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useTags\">\r\n <el-select v-model=\"tags\" multiple filterable allow-create default-first-option\r\n :reserve-keyword=\"false\" placeholder=\"[可选] 选择文章标签\" style=\"width: 100%\">\r\n <template #prefix>\r\n <MKSvgIcon name=\"ep:collection-tag\" />\r\n </template>\r\n </el-select>\r\n </el-row>\r\n <el-divider content-position=\"left\">\r\n 文章封面/简介\r\n <el-switch v-model=\"descAutoCreate\" style=\"margin-left: 10px;\" inline-prompt active-text=\"自动生成\"\r\n inactive-text=\"手动撰写\" />\r\n </el-divider>\r\n <el-row class=\"cover-desc\">\r\n <MKUploadImage style=\"margin-right: 10px;\" v-model=\"articleForm.data.cover\" width=\"115px\" height=\"115px\" \r\n :uploadContext=\"new ImageUploadContext(CmsSettings.content.coverImageSize)\">\r\n\r\n </MKUploadImage>\r\n <el-input class=\"desc\" type=\"textarea\" :autosize=\"{ minRows: 5, maxRows: 30 }\" maxlength=\"1000\"\r\n show-word-limit placeholder=\"[选填] 文章简介\" v-model=\"desc\" />\r\n </el-row>\r\n <el-divider content-position=\"left\">文章Banner图</el-divider>\r\n <el-row>\r\n <MKUploadImage v-model=\"articleForm.data.banner\" style=\"width: 100%;\" height=\"300px\" :uploadContext=\"new ImageUploadContext(CmsSettings.content.bannerImageSize)\">\r\n\r\n </MKUploadImage>\r\n </el-row>\r\n </div>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"文章资源库\" name=\"atlas\" v-if=\"CmsSettings.content.useAtlas\">\r\n <ArticleAtlas v-model=\"atlas\" :articleId=\"parseInt(articleForm.data?.id)\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面设置\" name=\"settings\" v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <MKDataForm :dataForm=\"articleForm\" label-width=\"120px\">\r\n <MKForm :dataForm=\"articleForm\">\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoKeywords\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoDesc\"></MKDataFormItem>\r\n </el-row>\r\n </MKForm>\r\n </MKDataForm>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </template>\r\n </MKDocEditor>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, reactive, ref, computed } from \"vue\";\r\nimport { ArrowLeftBold } from \"@element-plus/icons-vue\"\r\nimport { MKDocEditor, MKSvgIcon, MKUploadImage } from '../../../../components'\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../components\";\r\nimport ArticleAtlas from \"./components/article-atlas.vue\";\r\nimport { CmsArticlesForm } from \"../../dataviews\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { ImageUploadContext } from \"../../../ms\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\nconst route = useRoute()\r\nconst router = useRouter();\r\n\r\n\r\n// 文章请求\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\nconst articleOptionsActive = ref(\"content\");\r\n\r\n\r\n// 标题\r\nconst title = computed({\r\n get() { return articleForm.data?.title || \"\"; },\r\n set(val) { articleForm.data.title = val; }\r\n});\r\n// 子标题\r\nconst subTitle = computed({\r\n get() { return articleForm.data?.subTitle || \"\"; },\r\n set(val) { articleForm.data.subTitle = val; }\r\n});\r\n// 获取默认简介\r\nconst getDefaultDescContent = () => {\r\n if (!descAutoCreate.value) {\r\n return \"\";\r\n }\r\n let val: any = \"\";\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = content.value;\r\n val = div.textContent?.substring(0, 700);\r\n if (div.textContent!.length > 700) {\r\n val += \"...\";\r\n }\r\n return val;\r\n}\r\nconst descAutoCreate = ref(true)\r\n// 简介\r\nconst desc = computed({\r\n get() {\r\n return articleForm.data?.desc || getDefaultDescContent();\r\n },\r\n set(val) {\r\n articleForm.data.desc = val;\r\n }\r\n});\r\n// 发布时间\r\nconst releaseDate = computed({\r\n get() { return articleForm.data?.releaseDate || articleForm.data?.publishTime; },\r\n set(val) { articleForm.data.releaseDate = val; }\r\n});\r\n// 标签\r\nconst tags = ref([]);\r\n// computed({ \r\n// get() { return articleForm.data?.tags || [] }, \r\n// set(val) { articleForm.data.tags = val; } \r\n// });\r\n// 内容\r\nconst content = computed({\r\n get() { return articleForm.data?.content || \"\"; },\r\n set(val) { articleForm.data.content = val; }\r\n});\r\n\r\n// 图集\r\nconst atlas = computed({\r\n get() {\r\n return articleForm.data?.atlas\r\n },\r\n set(val) { articleForm.data.atlas = val; }\r\n});\r\n\r\n// 表单初始化\r\nconst formInitDataInfo = ()=>{\r\n // 初始化数据加载\r\n if (route.query.id) {\r\n articleForm.editRecord(route.query.id);\r\n }\r\n else if (route.query.partId) {\r\n articleForm.addRecord({ cmsPartId: route.query.partId,isDraft:1 });\r\n }\r\n else {\r\n articleForm.addRecord({ isDraft:1 });\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n formInitDataInfo();\r\n articleForm.init();\r\n\r\n})\r\n\r\n// 保存\r\nconst saveHandle = async () => {\r\n\r\n // 简介不存在的时候使用自动生成的\r\n if (!articleForm.data?.desc) {\r\n desc.value = getDefaultDescContent();\r\n }\r\n\r\n let result = await articleForm.submit();\r\n\r\n router.back();\r\n\r\n return result;\r\n}\r\n\r\n// 保存并预览\r\nconst saveAndViewHandle = async ()=>{\r\n const partId = articleForm.data.cmsPartId;\r\n const data = await saveHandle();\r\n if(data.data.code == 200 && data.data.data){\r\n window.open('/api/cms/content/preview/content/' + partId + '/' + data.data.data)\r\n }\r\n}\r\n\r\n// 保存并发布\r\nconst saveAndPublishHandle = async ()=>{\r\n const result:any = await articleForm.saveAndPublish(CmsSettings.publish.mode);\r\n if(result.data.code == 200){\r\n router.back();\r\n }\r\n}\r\n\r\n// 隐藏扩展\r\nconst closeExtentions = ref(true);\r\nconst extentionsRef = ref();\r\nconst hideExtentionsHandle = () => {\r\n closeExtentions.value = true;\r\n}\r\n//展示扩展\r\nconst closeExtentionsHandle = () => {\r\n closeExtentions.value = false;\r\n}\r\n\r\nconst docEditorChangeHandle = (v: any) => {\r\n articleForm.data.content = v;\r\n}\r\n\r\n</script>\r\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article-edit-add-page-BxbovMjH.js","sources":["../../src/modules/cms/pages/cms-contents/components/article-atlas.vue","../../src/modules/cms/pages/cms-contents/article-edit-add-page.vue"],"sourcesContent":["<template>\r\n <el-card class=\"cms-article-atlas\">\r\n <template #header>\r\n <div @click=\"showAtlasFormHandle()\" class=\"cms-article-atlas__header\">\r\n <span>\r\n <MKSvgIcon iconClass=\"Picture\" style=\"margin-right: 5px;\" />\r\n 文章媒体库\r\n </span>\r\n <MKSvgIcon class=\"cms-article-atlas__header__btn\" iconClass=\"Plus\" style=\"color: #409EFF;\" />\r\n </div>\r\n </template>\r\n <el-empty v-if=\"atlas.length <= 0\" description=\"暂无内容\" />\r\n <el-scrollbar class=\"cms-article-atlas__list\" v-else>\r\n <el-card class=\"cms-article-atlas__list__item\" v-for=\"(item, index) in atlas\" :key=\"item.id\">\r\n <el-image class=\"images\" :src=\"item.path\" v-if=\"item.type == 1\" fit=\"contain\">\r\n <div slot=\"placeholder\" class=\"image-slot\">\r\n 加载中<span class=\"dot\">...</span>\r\n </div>\r\n </el-image>\r\n <video class=\"video\" v-if=\"item.type == 2\" :src=\"item.path\" controls></video>\r\n <div class=\"cms-article-atlas__list__item__desc\">\r\n <div class=\"item-desc-left\">\r\n <div class=\"title ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"item.type == 1\" iconClass=\"Picture\"></MKSvgIcon>\r\n <MKSvgIcon class=\"icon\" v-if=\"item.type == 2\" iconClass=\"VideoCamera\"></MKSvgIcon>\r\n <span :title=\"item.title\">{{ item.title }}</span>\r\n </div>\r\n <div class=\"external-links ellipsis\">\r\n <MKSvgIcon class=\"icon\" v-if=\"item.link\" iconClass=\"Link\"></MKSvgIcon>\r\n <a :href=\"item.link\" target=\"_blank\" :title=\"item.path\">{{ item.link }}</a>\r\n </div>\r\n </div>\r\n <el-dropdown trigger=\"click\" :teleported=\"false\" class=\"item-desc-right\">\r\n <span class=\"el-dropdown-link\">\r\n 更多<el-icon class=\"el-icon--right\"><arrow-down /></el-icon>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item class=\"edit-button\" :icon=\"EditPen\" @click=\"editHandle(item)\">编辑</el-dropdown-item>\r\n <el-dropdown-item class=\"delete-button\" :icon=\"Delete\"\r\n @click=\"deleteHandle(index)\">删除</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </el-card>\r\n <el-dialog v-model=\"formVisible\" append-to-body>\r\n <MKDataForm :dataForm=\"atlasDv\">\r\n <MKForm></MKForm>\r\n </MKDataForm>\r\n <template #footer>\r\n <el-button type=\"primary\" @click=\"saveAlatsHandle\">保存</el-button>\r\n <el-button @click=\"formVisible = false\"> 取消 </el-button>\r\n </template>\r\n </el-dialog>\r\n\r\n </el-scrollbar>\r\n </el-card>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, computed, ref, defineProps, watch, reactive } from \"vue\";\r\nimport { EditPen, ArrowDown, Delete } from \"@element-plus/icons-vue\"\r\nimport { CmsArticleAtlasForm } from \"../../../dataviews/cms-articles/cms-article-atlas\";\r\nimport { MKDataForm, MKForm } from \"../../../../../components\";\r\n\r\n// 参数\r\nconst props = defineProps({\r\n articleId: { type: Number, default: \"\" },\r\n modelValue: { type: Array<any>, default: () => [] },\r\n})\r\nconst emit = defineEmits([\"update:modelValue\"])\r\n//atlas表单\r\nconst atlasDv = reactive(new CmsArticleAtlasForm()) as CmsArticleAtlasForm;\r\nconst formVisible = ref(false);\r\n\r\nconst imgExtension = [\".jpg\", \".png\", \".gif\", \".jpeg\", \".bmp\", \".webp\", \".svg\", \".tiff\", \".tif\", \".ico\", \".jfif\", \".jpe\"]\r\nconst videoExtension = [\".mp4\", \".avi\", \".rmvb\", \".flv\", \".mkv\", \".wmv\", \".mov\", \".webm\", \".m4v\", \".mpg\", \".mpeg\", \".mts\", \".m2ts\", \".m2v\", \".mpe\", \".mpv\", \".vob\", \".ogv\", \".3gp\", \".3g2\", \".3gpp\", \".3gpp2\", \".3gp2\"]\r\n\r\n\r\n//图集数据\r\nconst atlas = computed(\r\n () => {\r\n const _arr = props.modelValue.map((item, index) => {\r\n const extension = item.path.slice(item.path.lastIndexOf(\".\"))\r\n let type = 0;\r\n if (imgExtension.includes(extension)) {\r\n type = 1\r\n } else if (videoExtension.includes(extension)) {\r\n type = 2\r\n }\r\n return { ...item, type, uid: item.title + index }\r\n })\r\n return _arr\r\n },\r\n);\r\n\r\n\r\n(window as any).atlasDv = atlasDv;\r\n(window as any).atlas = atlas;\r\n(window as any).modelValue = props.modelValue;\r\n/***\r\n * 展示atlas表单\r\n */\r\nconst showAtlasFormHandle = () => {\r\n formVisible.value = true;\r\n atlasDv.addRecord({\r\n cmsArticlesId: props.articleId\r\n })\r\n}\r\n\r\n//重置atlas表单\r\nwatch(formVisible, (v) => {\r\n atlasDv.reset();\r\n})\r\n\r\n/**\r\n * 保存\r\n */\r\nconst saveAlatsHandle = async () => {\r\n if (atlasDv.data.uid) {\r\n const index = atlas.value.findIndex(item => item.uid == atlasDv.data.uid)\r\n atlas.value[index] = { ...atlas.value[index], ...atlasDv.data }\r\n } else {\r\n atlas.value.push(atlasDv.data)\r\n }\r\n\r\n emit(\"update:modelValue\", atlas.value)\r\n formVisible.value = false;\r\n}\r\n/**\r\n * 删除\r\n */\r\nconst deleteHandle = (index: number) => {\r\n atlas.value.splice(index, 1)\r\n emit(\"update:modelValue\", atlas.value)\r\n}\r\n\r\nconst editHandle = (item: any) => {\r\n atlasDv.addRecord(item)\r\n formVisible.value = true;\r\n}\r\n// 挂在完成之后\r\nonMounted(async () => {\r\n await atlasDv.init();\r\n})\r\n\r\n</script>\r\n","<template>\r\n <div class=\"mk-cms-article-eidtadd__warp\">\r\n <el-page-header style=\"background-color: #fff;padding: 10px;\" :icon=\"ArrowLeftBold\" title=\"返回\"\r\n @back=\"() => router.push({ name: 'cms/contents', query: { pid: articleForm?.data?.cmsPartId } })\">\r\n <template #content>\r\n <template v-if=\"!articleForm.loading\">\r\n <el-text v-if=\"!articleForm.data?.modifier\">{{ !!route.query.id ? \"编辑文章\" : \"创建文章\" }}</el-text>\r\n <el-text v-else>{{ articleForm.data?.modifierName }} 于 {{ articleForm.data?.updatedAt }} 更新</el-text>\r\n </template>\r\n </template>\r\n <template #extra>\r\n <div class=\"mk-cms-article-eidtadd__header_tools\">\r\n\r\n <template v-if=\"!articleForm.loading\">\r\n <el-tag v-if=\"!articleForm.data?.publishTime\" effect=\"dark\" round>未发布</el-tag>\r\n <el-text v-else>发布时间:{{ articleForm.data?.publishTime }}</el-text>\r\n </template>\r\n\r\n <el-dropdown split-button type=\"primary\" style=\"margin-left: 10px;\" @click=\"saveHandle\">\r\n <MKSvgIcon name=\"carbon:save\" style=\"margin-right: 10px;\" />\r\n 保存\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static'\" @click=\"saveAndViewHandle\">\r\n <MKSvgIcon name=\"ep:view\" style=\"margin-right: 5px;\" />\r\n 保存并预览\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"saveAndPublishHandle\">\r\n <MKSvgIcon name=\"ep:share\" style=\"margin-right: 5px;\" />\r\n 保存并发布\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-article-eidtadd__body\" v-loading=\"articleForm.loading\">\r\n\r\n <MKDocEditor v-if=\"articleForm.data\" :css=\"CmsSettings.content.doc.css\" namespace=\"cms-article\"\r\n :js=\"CmsSettings.content.doc.js\" :modelValue=\"content\" @update:modelValue=\"docEditorChangeHandle\">\r\n <template #header>\r\n <div class=\"mk-cms-article-eidtadd__body__header\">\r\n <el-row>\r\n <el-input class=\"title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"请输入标题\" v-model=\"title\" />\r\n </el-row>\r\n <el-row>\r\n <el-input class=\"sub-title\" type=\"textarea\" :autosize=\"{ minRows: 1, maxRows: 4 }\" maxlength=\"150\"\r\n show-word-limit placeholder=\"[选填] 请输入子标题\" v-model=\"subTitle\" />\r\n </el-row>\r\n </div>\r\n </template>\r\n <template #after-extentions>\r\n <div class=\"mk-cms-article-eidtadd__body__extentions\" :class=\"{ hide: closeExtentions! }\" ref=\"extentionsRef\">\r\n <MKSvgIcon name=\"ep:arrow-left\" class=\"open\" @click=\"closeExtentionsHandle\" v-if=\"closeExtentions\">\r\n </MKSvgIcon>\r\n <MKSvgIcon v-else name=\"ep:arrow-right\" class=\"close\" @click=\"hideExtentionsHandle\">\r\n </MKSvgIcon>\r\n <el-divider content-position=\"left\">文章设置</el-divider>\r\n <MKDataForm :dataForm=\"articleForm\">\r\n <MKForm :dataForm=\"articleForm\" style=\"width:225px\" label-width=\"110px\">\r\n <el-row v-if=\"CmsSettings.content.useTop\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isTop\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useNew\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isNew\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useHotRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isHotRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.usePartRecommend\">\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isPartRecommend\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isShowList\"></MKDataFormItem>\r\n </el-row>\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"isDraft\"></MKDataFormItem>\r\n </el-row> -->\r\n <!-- <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"sortNo\"></MKDataFormItem>\r\n </el-row> -->\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n </template>\r\n <template #footer>\r\n <div class=\"mk-cms-article-eidtadd__body__footer\">\r\n <el-tabs v-model=\"articleOptionsActive\">\r\n <el-tab-pane label=\"基础内容\" name=\"content\">\r\n <div class=\"content\">\r\n <el-row :gutter=\"20\">\r\n <el-col :span=\"6\">\r\n <el-input placeholder=\"[选填] 作者\" v-model=\"articleForm.data.author\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon name=\"ep:user-filled\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n <el-col :span=\"6\">\r\n <el-date-picker v-model=\"releaseDate\" type=\"datetime\" placeholder=\"发布时间\"\r\n :default-time=\"new Date()\" />\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-input placeholder=\"[选填] 发布地址\" v-model=\"articleForm.data.locationDesc\" clearable>\r\n <template #prefix>\r\n <MKSvgIcon name=\"ep:location\" />\r\n </template>\r\n </el-input>\r\n </el-col>\r\n </el-row>\r\n <el-row v-if=\"CmsSettings.content.useTags\">\r\n <el-select v-model=\"tags\" multiple filterable allow-create default-first-option\r\n :reserve-keyword=\"false\" placeholder=\"[可选] 选择文章标签\" style=\"width: 100%\">\r\n <template #prefix>\r\n <MKSvgIcon name=\"ep:collection-tag\" />\r\n </template>\r\n </el-select>\r\n </el-row>\r\n <el-divider content-position=\"left\">\r\n 文章封面/简介\r\n <el-switch v-model=\"descAutoCreate\" style=\"margin-left: 10px;\" inline-prompt active-text=\"自动生成\"\r\n inactive-text=\"手动撰写\" />\r\n </el-divider>\r\n <el-row class=\"cover-desc\">\r\n <MKUploadImage style=\"margin-right: 10px;\" v-model=\"articleForm.data.cover\" width=\"115px\" height=\"115px\" \r\n :uploadContext=\"new ImageUploadContext(CmsSettings.content.coverImageSize)\">\r\n\r\n </MKUploadImage>\r\n <el-input class=\"desc\" type=\"textarea\" :autosize=\"{ minRows: 5, maxRows: 30 }\" maxlength=\"1000\"\r\n show-word-limit placeholder=\"[选填] 文章简介\" v-model=\"desc\" />\r\n </el-row>\r\n <el-divider content-position=\"left\">文章Banner图</el-divider>\r\n <el-row>\r\n <MKUploadImage v-model=\"articleForm.data.banner\" style=\"width: 100%;\" height=\"300px\" :uploadContext=\"new ImageUploadContext(CmsSettings.content.bannerImageSize)\">\r\n\r\n </MKUploadImage>\r\n </el-row>\r\n </div>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"文章资源库\" name=\"atlas\" v-if=\"CmsSettings.content.useAtlas\">\r\n <ArticleAtlas v-model=\"atlas\" :articleId=\"parseInt(articleForm.data?.id)\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面设置\" name=\"settings\" v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <MKDataForm :dataForm=\"articleForm\" label-width=\"120px\">\r\n <MKForm :dataForm=\"articleForm\">\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoKeywords\"></MKDataFormItem>\r\n </el-row>\r\n <el-row>\r\n <MKDataFormItem style=\"width: 100%;\" name=\"seoDesc\"></MKDataFormItem>\r\n </el-row>\r\n </MKForm>\r\n </MKDataForm>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </template>\r\n </MKDocEditor>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { onMounted, reactive, ref, computed } from \"vue\";\r\nimport { ArrowLeftBold } from \"@element-plus/icons-vue\"\r\nimport { MKDocEditor, MKSvgIcon, MKUploadImage } from '../../../../components'\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../components\";\r\nimport ArticleAtlas from \"./components/article-atlas.vue\";\r\nimport { CmsArticlesForm } from \"../../dataviews\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { ImageUploadContext } from \"../../../ms\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\nconst route = useRoute()\r\nconst router = useRouter();\r\n\r\n\r\n// 文章请求\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\nconst articleOptionsActive = ref(\"content\");\r\n\r\n\r\n// 标题\r\nconst title = computed({\r\n get() { return articleForm.data?.title || \"\"; },\r\n set(val) { articleForm.data.title = val; }\r\n});\r\n// 子标题\r\nconst subTitle = computed({\r\n get() { return articleForm.data?.subTitle || \"\"; },\r\n set(val) { articleForm.data.subTitle = val; }\r\n});\r\n// 获取默认简介\r\nconst getDefaultDescContent = () => {\r\n if (!descAutoCreate.value) {\r\n return \"\";\r\n }\r\n let val: any = \"\";\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = content.value;\r\n val = div.textContent?.substring(0, 700);\r\n if (div.textContent!.length > 700) {\r\n val += \"...\";\r\n }\r\n return val;\r\n}\r\nconst descAutoCreate = ref(true)\r\n// 简介\r\nconst desc = computed({\r\n get() {\r\n return articleForm.data?.desc || getDefaultDescContent();\r\n },\r\n set(val) {\r\n articleForm.data.desc = val;\r\n }\r\n});\r\n// 发布时间\r\nconst releaseDate = computed({\r\n get() { return articleForm.data?.releaseDate || articleForm.data?.publishTime; },\r\n set(val) { articleForm.data.releaseDate = val; }\r\n});\r\n// 标签\r\nconst tags = ref([]);\r\n// computed({ \r\n// get() { return articleForm.data?.tags || [] }, \r\n// set(val) { articleForm.data.tags = val; } \r\n// });\r\n// 内容\r\nconst content = computed({\r\n get() { return articleForm.data?.content || \"\"; },\r\n set(val) { articleForm.data.content = val; }\r\n});\r\n\r\n// 图集\r\nconst atlas = computed({\r\n get() {\r\n return articleForm.data?.atlas\r\n },\r\n set(val) { articleForm.data.atlas = val; }\r\n});\r\n\r\n// 表单初始化\r\nconst formInitDataInfo = ()=>{\r\n // 初始化数据加载\r\n if (route.query.id) {\r\n articleForm.editRecord(route.query.id);\r\n }\r\n else if (route.query.partId) {\r\n articleForm.addRecord({ cmsPartId: route.query.partId,isDraft:1 });\r\n }\r\n else {\r\n articleForm.addRecord({ isDraft:1 });\r\n }\r\n}\r\n\r\nonMounted(() => {\r\n formInitDataInfo();\r\n articleForm.init();\r\n\r\n})\r\n\r\n// 保存\r\nconst saveHandle = async () => {\r\n\r\n // 简介不存在的时候使用自动生成的\r\n if (!articleForm.data?.desc) {\r\n desc.value = getDefaultDescContent();\r\n }\r\n\r\n let result = await articleForm.submit();\r\n\r\n router.back();\r\n\r\n return result;\r\n}\r\n\r\n// 保存并预览\r\nconst saveAndViewHandle = async ()=>{\r\n const partId = articleForm.data.cmsPartId;\r\n const data = await saveHandle();\r\n if(data.data.code == 200 && data.data.data){\r\n window.open('/api/cms/content/preview/content/' + partId + '/' + data.data.data)\r\n }\r\n}\r\n\r\n// 保存并发布\r\nconst saveAndPublishHandle = async ()=>{\r\n const result:any = await articleForm.saveAndPublish(CmsSettings.publish.mode);\r\n if(result.data.code == 200){\r\n router.back();\r\n }\r\n}\r\n\r\n// 隐藏扩展\r\nconst closeExtentions = ref(true);\r\nconst extentionsRef = ref();\r\nconst hideExtentionsHandle = () => {\r\n closeExtentions.value = true;\r\n}\r\n//展示扩展\r\nconst closeExtentionsHandle = () => {\r\n closeExtentions.value = false;\r\n}\r\n\r\nconst docEditorChangeHandle = (v: any) => {\r\n articleForm.data.content = v;\r\n}\r\n\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,UAAM,QAAQ;AAId,UAAM,OAAO;AAEb,UAAM,UAAU,SAAS,IAAI,oBAAqB,CAAA;AAC5C,UAAA,cAAc,IAAI,KAAK;AAE7B,UAAM,eAAe,CAAC,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,SAAS,MAAM;AAClH,UAAA,iBAAiB,CAAC,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,QAAQ,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,UAAU,OAAO;AAItN,UAAM,QAAQ;AAAA,MACZ,MAAM;AACJ,cAAM,OAAO,MAAM,WAAW,IAAI,CAAC,MAAM,UAAU;AAC3C,gBAAA,YAAY,KAAK,KAAK,MAAM,KAAK,KAAK,YAAY,GAAG,CAAC;AAC5D,cAAI,OAAO;AACP,cAAA,aAAa,SAAS,SAAS,GAAG;AAC7B,mBAAA;AAAA,UACE,WAAA,eAAe,SAAS,SAAS,GAAG;AACtC,mBAAA;AAAA,UACT;AACA,iBAAO,EAAE,GAAG,MAAM,MAAM,KAAK,KAAK,QAAQ;QAAM,CACjD;AACM,eAAA;AAAA,MACT;AAAA,IAAA;AAID,WAAe,UAAU;AACzB,WAAe,QAAQ;AACvB,WAAe,aAAa,MAAM;AAInC,UAAM,sBAAsB,MAAM;AAChC,kBAAY,QAAQ;AACpB,cAAQ,UAAU;AAAA,QAChB,eAAe,MAAM;AAAA,MAAA,CACtB;AAAA,IAAA;AAIG,UAAA,aAAa,CAAC,MAAM;AACxB,cAAQ,MAAM;AAAA,IAAA,CACf;AAKD,UAAM,kBAAkB,YAAY;AAC9B,UAAA,QAAQ,KAAK,KAAK;AACd,cAAA,QAAQ,MAAM,MAAM,UAAU,UAAQ,KAAK,OAAO,QAAQ,KAAK,GAAG;AAClE,cAAA,MAAM,KAAK,IAAI,EAAE,GAAG,MAAM,MAAM,KAAK,GAAG,GAAG,QAAQ,KAAK;AAAA,MAAA,OACzD;AACC,cAAA,MAAM,KAAK,QAAQ,IAAI;AAAA,MAC/B;AAEK,WAAA,qBAAqB,MAAM,KAAK;AACrC,kBAAY,QAAQ;AAAA,IAAA;AAKhB,UAAA,eAAe,CAAC,UAAkB;AAChC,YAAA,MAAM,OAAO,OAAO,CAAC;AACtB,WAAA,qBAAqB,MAAM,KAAK;AAAA,IAAA;AAGjC,UAAA,aAAa,CAAC,SAAc;AAChC,cAAQ,UAAU,IAAI;AACtB,kBAAY,QAAQ;AAAA,IAAA;AAGtB,cAAU,YAAY;AACpB,YAAM,QAAQ;IAAK,CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8BK,UAAA,cAAc,eAAe,IAAI;AAEvC,UAAM,QAAQ;AACd,UAAM,SAAS;AAIf,UAAM,cAAc,SAAS,IAAI,gBAAiB,CAAA;AAC5C,UAAA,uBAAuB,IAAI,SAAS;AAI1C,UAAM,QAAQ,SAAS;AAAA,MACrB,MAAM;;AAAS,iBAAA,iBAAY,SAAZ,mBAAkB,UAAS;AAAA,MAAI;AAAA,MAC9C,IAAI,KAAK;AAAE,oBAAY,KAAK,QAAQ;AAAA,MAAK;AAAA,IAAA,CAC1C;AAED,UAAM,WAAW,SAAS;AAAA,MACxB,MAAM;;AAAS,iBAAA,iBAAY,SAAZ,mBAAkB,aAAY;AAAA,MAAI;AAAA,MACjD,IAAI,KAAK;AAAE,oBAAY,KAAK,WAAW;AAAA,MAAK;AAAA,IAAA,CAC7C;AAED,UAAM,wBAAwB,MAAM;;AAC9B,UAAA,CAAC,eAAe,OAAO;AAClB,eAAA;AAAA,MACT;AACA,UAAI,MAAW;AACT,YAAA,MAAM,SAAS,cAAc,KAAK;AACxC,UAAI,YAAY,QAAQ;AACxB,aAAM,SAAI,gBAAJ,mBAAiB,UAAU,GAAG;AAChC,UAAA,IAAI,YAAa,SAAS,KAAK;AAC1B,eAAA;AAAA,MACT;AACO,aAAA;AAAA,IAAA;AAEH,UAAA,iBAAiB,IAAI,IAAI;AAE/B,UAAM,OAAO,SAAS;AAAA,MACpB,MAAM;;AACG,iBAAA,iBAAY,SAAZ,mBAAkB,SAAQ,sBAAsB;AAAA,MACzD;AAAA,MACA,IAAI,KAAK;AACP,oBAAY,KAAK,OAAO;AAAA,MAC1B;AAAA,IAAA,CACD;AAED,UAAM,cAAc,SAAS;AAAA,MAC3B,MAAM;;AAAE,iBAAO,iBAAY,SAAZ,mBAAkB,kBAAe,iBAAY,SAAZ,mBAAkB;AAAA,MAAa;AAAA,MAC/E,IAAI,KAAK;AAAE,oBAAY,KAAK,cAAc;AAAA,MAAK;AAAA,IAAA,CAChD;AAEK,UAAA,OAAO,IAAI,CAAA,CAAE;AAMnB,UAAM,UAAU,SAAS;AAAA,MACvB,MAAM;;AAAS,iBAAA,iBAAY,SAAZ,mBAAkB,YAAW;AAAA,MAAI;AAAA,MAChD,IAAI,KAAK;AAAE,oBAAY,KAAK,UAAU;AAAA,MAAK;AAAA,IAAA,CAC5C;AAGD,UAAM,QAAQ,SAAS;AAAA,MACrB,MAAM;;AACJ,gBAAO,iBAAY,SAAZ,mBAAkB;AAAA,MAC3B;AAAA,MACA,IAAI,KAAK;AAAE,oBAAY,KAAK,QAAQ;AAAA,MAAK;AAAA,IAAA,CAC1C;AAGD,UAAM,mBAAmB,MAAI;AAExB,UAAA,MAAM,MAAM,IAAI;AACL,oBAAA,WAAW,MAAM,MAAM,EAAE;AAAA,MAAA,WAE9B,MAAM,MAAM,QAAQ;AACf,oBAAA,UAAU,EAAE,WAAW,MAAM,MAAM,QAAO,SAAQ,GAAG;AAAA,MAAA,OAE9D;AACH,oBAAY,UAAU,EAAE,SAAQ,EAAG,CAAA;AAAA,MACrC;AAAA,IAAA;AAGF,cAAU,MAAM;AACG;AACjB,kBAAY,KAAK;AAAA,IAAA,CAElB;AAGD,UAAM,aAAa,YAAY;;AAGzB,UAAA,GAAC,iBAAY,SAAZ,mBAAkB,OAAM;AAC3B,aAAK,QAAQ;MACf;AAEI,UAAA,SAAS,MAAM,YAAY;AAE/B,aAAO,KAAK;AAEL,aAAA;AAAA,IAAA;AAIT,UAAM,oBAAoB,YAAU;AAC5B,YAAA,SAAS,YAAY,KAAK;AAC1B,YAAA,OAAO,MAAM;AACnB,UAAG,KAAK,KAAK,QAAQ,OAAO,KAAK,KAAK,MAAK;AACzC,eAAO,KAAK,sCAAsC,SAAS,MAAM,KAAK,KAAK,IAAI;AAAA,MACjF;AAAA,IAAA;AAIF,UAAM,uBAAuB,YAAU;AACrC,YAAM,SAAa,MAAM,YAAY,eAAe,YAAY,QAAQ,IAAI;AACzE,UAAA,OAAO,KAAK,QAAQ,KAAI;AACzB,eAAO,KAAK;AAAA,MACd;AAAA,IAAA;AAII,UAAA,kBAAkB,IAAI,IAAI;AAChC,UAAM,gBAAgB;AACtB,UAAM,uBAAuB,MAAM;AACjC,sBAAgB,QAAQ;AAAA,IAAA;AAG1B,UAAM,wBAAwB,MAAM;AAClC,sBAAgB,QAAQ;AAAA,IAAA;AAGpB,UAAA,wBAAwB,CAAC,MAAW;AACxC,kBAAY,KAAK,UAAU;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { reactive } from "vue";
2
- import { p as MsConfigTable } from "./index-mq3nYYwD.js";
2
+ import { p as MsConfigTable } from "./index-ClxRVkUv.js";
3
3
  const CmsSettings = reactive({
4
4
  publish: {
5
5
  mode: "dynamic"
@@ -47,4 +47,4 @@ export {
47
47
  CmsSettingsKEY as C,
48
48
  useCmsSettings as u
49
49
  };
50
- //# sourceMappingURL=cms-settings-DHQmoLKI.js.map
50
+ //# sourceMappingURL=cms-settings-3ysZKNMa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cms-settings-DHQmoLKI.js","sources":["../../src/modules/cms/cms-settings.ts"],"sourcesContent":["import { reactive } from \"vue\"\r\nimport { MsConfigTable } from \"../ms/dataviews/ms-config/MsConfigTable\"\r\nimport { registerLexicalEditorModule,unRegisterLexicalEditorModule } from \"../../components/basic/lexical-editor\"\r\n\r\n/**\r\n * 发布配置\r\n */\r\ntype PublishSettings = {\r\n // 发布模式 静态发布和动态发布\r\n mode:'static' | 'dynamic'\r\n}\r\n\r\n/**\r\n * cms 文档编辑设置\r\n */\r\ntype CmsDocSettings = {\r\n css:string,\r\n js:string\r\n}\r\n\r\n/**\r\n * 栏目配置\r\n */\r\ntype PartSettings = {\r\n doc:CmsDocSettings\r\n openBanner:boolean,\r\n bannerImageSize:string,\r\n // 文档模块\r\n docModules:Array<any>,\r\n // 文档模版\r\n docTemplates:Array<any>\r\n}\r\n\r\n/**\r\n * 内容设置\r\n */\r\ntype ContentSettings = {\r\n /**\r\n * 内容文档设置\r\n */\r\n doc:CmsDocSettings,\r\n /**\r\n * 开启文档置顶功能\r\n */\r\n useTop:boolean,\r\n /**\r\n * 开启最新文档功能\r\n */\r\n useNew:boolean,\r\n /**\r\n * 开启热点推荐功能\r\n */\r\n useHotRecommend:boolean,\r\n /**\r\n * 开启栏目推荐功能\r\n */\r\n usePartRecommend:boolean,\r\n /**\r\n * 开启内容标签\r\n */\r\n useTags:boolean,\r\n /**\r\n * 开启媒体库\r\n */\r\n useAtlas:boolean,\r\n /**\r\n * 封面图的尺寸 默认 300 * 300\r\n */\r\n coverImageSize:string,\r\n /**\r\n * banner图的尺寸 默认 1440 * 560\r\n */\r\n bannerImageSize:string,\r\n // 文档模块\r\n docModules:Array<any>,\r\n // 文档模版\r\n docTemplates:Array<any>\r\n}\r\n\r\n/**\r\n * cms 系统设置\r\n */\r\nexport type CmsSettingsType = {\r\n // 发布配置\r\n publish:PublishSettings,\r\n devices:Array<'pc' | 'mobile'>,\r\n part:PartSettings,\r\n content:ContentSettings\r\n}\r\n\r\n/**\r\n * cms 配置\r\n */\r\nconst CmsSettings = reactive<CmsSettingsType>({\r\n publish:{\r\n mode:\"dynamic\"\r\n },\r\n devices:[\"pc\"],\r\n part:{\r\n openBanner:true,\r\n bannerImageSize:\"1440*560\",\r\n docModules:[],\r\n docTemplates:[],\r\n doc:{\r\n js:\"\",\r\n css:\"\"\r\n }\r\n },\r\n content:{\r\n doc:{\r\n js:\"\",\r\n css:\"\"\r\n },\r\n docModules:[],\r\n docTemplates:[],\r\n useTop:true,\r\n useNew:true,\r\n useHotRecommend:false,\r\n usePartRecommend:false,\r\n useTags:false,\r\n useAtlas:false,\r\n coverImageSize:\"300*300\",\r\n bannerImageSize:\"1440*560\"\r\n }\r\n})\r\n\r\n/**\r\n * \r\n */\r\nexport const CmsSettingsKEY = \"cms:content:man:settings\";\r\n\r\n/**\r\n * 使用cms配置\r\n * @param load \r\n */\r\nexport const useCmsSettings = function(load:boolean|undefined = false):CmsSettingsType{\r\n\r\n if(load){\r\n \r\n MsConfigTable.getConfigValue<CmsSettingsType>(CmsSettingsKEY).then(data=>{\r\n if(data){ \r\n // 卸载掉老旧模块\r\n // CmsSettings.docModules.forEach(item=> unRegisterDocModule(item.name) );\r\n Object.assign(CmsSettings,data);\r\n // 加载新内容安装新模块\r\n // CmsSettings.docModules.forEach(item=>registerLexicalEditorModule(item,\"\"));\r\n }\r\n });\r\n\r\n }\r\n\r\n return CmsSettings;\r\n}\r\n"],"names":[],"mappings":";;AA6FA,MAAM,cAAc,SAA0B;AAAA,EAC5C,SAAQ;AAAA,IACN,MAAK;AAAA,EACP;AAAA,EACA,SAAQ,CAAC,IAAI;AAAA,EACb,MAAK;AAAA,IACH,YAAW;AAAA,IACX,iBAAgB;AAAA,IAChB,YAAW,CAAC;AAAA,IACZ,cAAa,CAAC;AAAA,IACd,KAAI;AAAA,MACF,IAAG;AAAA,MACH,KAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,SAAQ;AAAA,IACN,KAAI;AAAA,MACF,IAAG;AAAA,MACH,KAAI;AAAA,IACN;AAAA,IACA,YAAW,CAAC;AAAA,IACZ,cAAa,CAAC;AAAA,IACd,QAAO;AAAA,IACP,QAAO;AAAA,IACP,iBAAgB;AAAA,IAChB,kBAAiB;AAAA,IACjB,SAAQ;AAAA,IACR,UAAS;AAAA,IACT,gBAAe;AAAA,IACf,iBAAgB;AAAA,EAClB;AACF,CAAC;AAKM,MAAM,iBAAiB;AAMjB,MAAA,iBAAkB,SAAS,OAAyB,OAAsB;AAErF,MAAG,MAAK;AAEN,kBAAc,eAAgC,cAAc,EAAE,KAAK,CAAM,SAAA;AACvE,UAAG,MAAK;AAGC,eAAA,OAAO,aAAY,IAAI;AAAA,MAGhC;AAAA,IAAA,CACD;AAAA,EAEH;AAEO,SAAA;AACT;"}
1
+ {"version":3,"file":"cms-settings-3ysZKNMa.js","sources":["../../src/modules/cms/cms-settings.ts"],"sourcesContent":["import { reactive } from \"vue\"\r\nimport { MsConfigTable } from \"../ms/dataviews/ms-config/MsConfigTable\"\r\nimport { registerLexicalEditorModule,unRegisterLexicalEditorModule } from \"../../components/basic/lexical-editor\"\r\n\r\n/**\r\n * 发布配置\r\n */\r\ntype PublishSettings = {\r\n // 发布模式 静态发布和动态发布\r\n mode:'static' | 'dynamic'\r\n}\r\n\r\n/**\r\n * cms 文档编辑设置\r\n */\r\ntype CmsDocSettings = {\r\n css:string,\r\n js:string\r\n}\r\n\r\n/**\r\n * 栏目配置\r\n */\r\ntype PartSettings = {\r\n doc:CmsDocSettings\r\n openBanner:boolean,\r\n bannerImageSize:string,\r\n // 文档模块\r\n docModules:Array<any>,\r\n // 文档模版\r\n docTemplates:Array<any>\r\n}\r\n\r\n/**\r\n * 内容设置\r\n */\r\ntype ContentSettings = {\r\n /**\r\n * 内容文档设置\r\n */\r\n doc:CmsDocSettings,\r\n /**\r\n * 开启文档置顶功能\r\n */\r\n useTop:boolean,\r\n /**\r\n * 开启最新文档功能\r\n */\r\n useNew:boolean,\r\n /**\r\n * 开启热点推荐功能\r\n */\r\n useHotRecommend:boolean,\r\n /**\r\n * 开启栏目推荐功能\r\n */\r\n usePartRecommend:boolean,\r\n /**\r\n * 开启内容标签\r\n */\r\n useTags:boolean,\r\n /**\r\n * 开启媒体库\r\n */\r\n useAtlas:boolean,\r\n /**\r\n * 封面图的尺寸 默认 300 * 300\r\n */\r\n coverImageSize:string,\r\n /**\r\n * banner图的尺寸 默认 1440 * 560\r\n */\r\n bannerImageSize:string,\r\n // 文档模块\r\n docModules:Array<any>,\r\n // 文档模版\r\n docTemplates:Array<any>\r\n}\r\n\r\n/**\r\n * cms 系统设置\r\n */\r\nexport type CmsSettingsType = {\r\n // 发布配置\r\n publish:PublishSettings,\r\n devices:Array<'pc' | 'mobile'>,\r\n part:PartSettings,\r\n content:ContentSettings\r\n}\r\n\r\n/**\r\n * cms 配置\r\n */\r\nconst CmsSettings = reactive<CmsSettingsType>({\r\n publish:{\r\n mode:\"dynamic\"\r\n },\r\n devices:[\"pc\"],\r\n part:{\r\n openBanner:true,\r\n bannerImageSize:\"1440*560\",\r\n docModules:[],\r\n docTemplates:[],\r\n doc:{\r\n js:\"\",\r\n css:\"\"\r\n }\r\n },\r\n content:{\r\n doc:{\r\n js:\"\",\r\n css:\"\"\r\n },\r\n docModules:[],\r\n docTemplates:[],\r\n useTop:true,\r\n useNew:true,\r\n useHotRecommend:false,\r\n usePartRecommend:false,\r\n useTags:false,\r\n useAtlas:false,\r\n coverImageSize:\"300*300\",\r\n bannerImageSize:\"1440*560\"\r\n }\r\n})\r\n\r\n/**\r\n * \r\n */\r\nexport const CmsSettingsKEY = \"cms:content:man:settings\";\r\n\r\n/**\r\n * 使用cms配置\r\n * @param load \r\n */\r\nexport const useCmsSettings = function(load:boolean|undefined = false):CmsSettingsType{\r\n\r\n if(load){\r\n \r\n MsConfigTable.getConfigValue<CmsSettingsType>(CmsSettingsKEY).then(data=>{\r\n if(data){ \r\n // 卸载掉老旧模块\r\n // CmsSettings.docModules.forEach(item=> unRegisterDocModule(item.name) );\r\n Object.assign(CmsSettings,data);\r\n // 加载新内容安装新模块\r\n // CmsSettings.docModules.forEach(item=>registerLexicalEditorModule(item,\"\"));\r\n }\r\n });\r\n\r\n }\r\n\r\n return CmsSettings;\r\n}\r\n"],"names":[],"mappings":";;AA6FA,MAAM,cAAc,SAA0B;AAAA,EAC5C,SAAQ;AAAA,IACN,MAAK;AAAA,EACP;AAAA,EACA,SAAQ,CAAC,IAAI;AAAA,EACb,MAAK;AAAA,IACH,YAAW;AAAA,IACX,iBAAgB;AAAA,IAChB,YAAW,CAAC;AAAA,IACZ,cAAa,CAAC;AAAA,IACd,KAAI;AAAA,MACF,IAAG;AAAA,MACH,KAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA,SAAQ;AAAA,IACN,KAAI;AAAA,MACF,IAAG;AAAA,MACH,KAAI;AAAA,IACN;AAAA,IACA,YAAW,CAAC;AAAA,IACZ,cAAa,CAAC;AAAA,IACd,QAAO;AAAA,IACP,QAAO;AAAA,IACP,iBAAgB;AAAA,IAChB,kBAAiB;AAAA,IACjB,SAAQ;AAAA,IACR,UAAS;AAAA,IACT,gBAAe;AAAA,IACf,iBAAgB;AAAA,EAClB;AACF,CAAC;AAKM,MAAM,iBAAiB;AAMjB,MAAA,iBAAkB,SAAS,OAAyB,OAAsB;AAErF,MAAG,MAAK;AAEN,kBAAc,eAAgC,cAAc,EAAE,KAAK,CAAM,SAAA;AACvE,UAAG,MAAK;AAGC,eAAA,OAAO,aAAY,IAAI;AAAA,MAGhC;AAAA,IAAA,CACD;AAAA,EAEH;AAEO,SAAA;AACT;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, watch, computed, unref, resolveComponent, openBlock, createBlock, withCtx, createVNode, createCommentVNode } from "vue";
2
2
  import { useRouter } from "vue-router";
3
- import { x as DataModelDefines, C as useSingleViewWithDialog, E as MKTreeView } from "./index-mq3nYYwD.js";
3
+ import { x as DataModelDefines, C as useSingleViewWithDialog, E as MKTreeView } from "./index-ClxRVkUv.js";
4
4
  import "element-plus";
5
5
  import "@maketribe/request";
6
6
  import "@maketribe/utils";
@@ -49,4 +49,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
49
49
  export {
50
50
  _sfc_main as default
51
51
  };
52
- //# sourceMappingURL=dialog-BQtjgY66.js.map
52
+ //# sourceMappingURL=dialog-CoFIYAyR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-BQtjgY66.js","sources":["../../src/page/index/dv/default/single/tree/dialog.vue"],"sourcesContent":["<template>\n <MKDataTablePage v-if=\"dataTree\" :data-table=\"dataTree\">\n <MKTreeView />\n </MKDataTablePage>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref, Ref, ref, watch } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTree } from \"@maketribe/dm\";\nimport { MKTreeView } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport { useSingleViewWithDialog } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTree: Ref<DataTree | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTree.value = DataModelDefines.instance.getDataTree(name);\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAC3D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dialog-CoFIYAyR.js","sources":["../../src/page/index/dv/default/single/tree/dialog.vue"],"sourcesContent":["<template>\n <MKDataTablePage v-if=\"dataTree\" :data-table=\"dataTree\">\n <MKTreeView />\n </MKDataTablePage>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, unref, Ref, ref, watch } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTree } from \"@maketribe/dm\";\nimport { MKTreeView } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport { useSingleViewWithDialog } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTree: Ref<DataTree | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTree.value = DataModelDefines.instance.getDataTree(name);\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAC3D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ import { useRouter } from "vue-router";
3
3
  import "@maketribe/dm";
4
4
  import "element-plus";
5
5
  import "@maketribe/utils";
6
- import { x as DataModelDefines, C as useSingleViewWithDialog, z as MKPageContainer, A as MKDataTable, F as MKTableView, G as MKTableTree } from "./index-mq3nYYwD.js";
6
+ import { x as DataModelDefines, C as useSingleViewWithDialog, z as MKPageContainer, A as MKDataTable, F as MKTableView, G as MKTableTree } from "./index-ClxRVkUv.js";
7
7
  import "@maketribe/request";
8
8
  import "@maketribe/locale";
9
9
  import "@lexical/overflow";
@@ -58,4 +58,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
58
58
  export {
59
59
  _sfc_main as default
60
60
  };
61
- //# sourceMappingURL=dialog-CPR8_y9H.js.map
61
+ //# sourceMappingURL=dialog-DknjQoA1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-CPR8_y9H.js","sources":["../../src/page/index/dv/default/single/table-tree/dialog.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTree\">\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\n <MKTableView>\n <MKTableTree />\n </MKTableView>\n </MKDataTable>\n </MKPageContainer>\n</template>\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTree } from \"@maketribe/dm\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport {\n MKPageContainer,\n MKDataTable,\n MKTableView,\n MKTableTree,\n} from \"../../../../../../components\";\nimport { useSingleViewWithDialog } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTree: Ref<DataTree | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTree.value = DataModelDefines.instance.getDataTree(name);\n\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAE3D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dialog-DknjQoA1.js","sources":["../../src/page/index/dv/default/single/table-tree/dialog.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTree\">\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\n <MKTableView>\n <MKTableTree />\n </MKTableView>\n </MKDataTable>\n </MKPageContainer>\n</template>\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTree } from \"@maketribe/dm\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport {\n MKPageContainer,\n MKDataTable,\n MKTableView,\n MKTableTree,\n} from \"../../../../../../components\";\nimport { useSingleViewWithDialog } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTree: Ref<DataTree | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTree.value = DataModelDefines.instance.getDataTree(name);\n\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAsBA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAE3D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGpB,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, ref, watch, computed, unref, openBlock, createBlock, withCtx, createVNode, createCommentVNode } from "vue";
2
2
  import { useRouter } from "vue-router";
3
- import { x as DataModelDefines, C as useSingleViewWithDialog, z as MKPageContainer, A as MKDataTable } from "./index-mq3nYYwD.js";
3
+ import { x as DataModelDefines, C as useSingleViewWithDialog, z as MKPageContainer, A as MKDataTable } from "./index-ClxRVkUv.js";
4
4
  import "element-plus";
5
5
  import "@maketribe/request";
6
6
  import "@maketribe/utils";
@@ -48,4 +48,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48
48
  export {
49
49
  _sfc_main as default
50
50
  };
51
- //# sourceMappingURL=dialog-Cb7Lps0k.js.map
51
+ //# sourceMappingURL=dialog-E7M9atVV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-Cb7Lps0k.js","sources":["../../src/page/index/dv/default/single/list/dialog.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTable\">\n <MKDataTable :data-table=\"dataTable\" enableQueryParams />\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTable } from \"@maketribe/dm\";\nimport { MKDataTable, MKPageContainer } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport { useSingleViewWithDialog } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTable.value = DataModelDefines.instance.getDataTable(name);\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,UAAM,SAAS;AAET,UAAA,YAAmC,IAAI,IAAI;AAC3C,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,kBAAU,QAAQ,iBAAiB,SAAS,aAAa,IAAI;AAC7D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGI,4BAAA,EAAE,WAAW,SAAA,CAAU;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dialog-E7M9atVV.js","sources":["../../src/page/index/dv/default/single/list/dialog.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataTable\">\n <MKDataTable :data-table=\"dataTable\" enableQueryParams />\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, ref, Ref } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm, DataTable } from \"@maketribe/dm\";\nimport { MKDataTable, MKPageContainer } from \"../../../../../../components\";\nimport { DataModelDefines } from \"../../../../../../core\";\nimport { useSingleViewWithDialog } from \"../../../../../../composables\";\n\nconst router = useRouter();\n\nconst dataTable: Ref<DataTable | null> = ref(null);\nconst dataForm: Ref<DataForm | null> = ref(null);\n\nwatch(\n computed(() => unref(router.currentRoute).meta.name as string),\n (name) => {\n dataTable.value = DataModelDefines.instance.getDataTable(name);\n dataForm.value = DataModelDefines.instance.getDataForm(name);\n },\n { immediate: true }\n);\n\nuseSingleViewWithDialog({ dataTable, dataForm });\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAcA,UAAM,SAAS;AAET,UAAA,YAAmC,IAAI,IAAI;AAC3C,UAAA,WAAiC,IAAI,IAAI;AAE/C;AAAA,MACE,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,KAAK,IAAc;AAAA,MAC7D,CAAC,SAAS;AACR,kBAAU,QAAQ,iBAAiB,SAAS,aAAa,IAAI;AAC7D,iBAAS,QAAQ,iBAAiB,SAAS,YAAY,IAAI;AAAA,MAC7D;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;AAGI,4BAAA,EAAE,WAAW,SAAA,CAAU;;;;;;;;;;;;;;"}
@@ -3,7 +3,7 @@ import { useRouter } from "vue-router";
3
3
  import "@maketribe/dm";
4
4
  import "element-plus";
5
5
  import "@maketribe/utils";
6
- import { x as DataModelDefines, z as MKPageContainer, B as MKDataForm } from "./index-mq3nYYwD.js";
6
+ import { x as DataModelDefines, z as MKPageContainer, B as MKDataForm } from "./index-ClxRVkUv.js";
7
7
  import "@maketribe/request";
8
8
  import "@maketribe/locale";
9
9
  import "@lexical/overflow";
@@ -62,4 +62,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
62
62
  export {
63
63
  _sfc_main as default
64
64
  };
65
- //# sourceMappingURL=edit-Bk7te-2r.js.map
65
+ //# sourceMappingURL=edit-BM-Do19m.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"edit-Bk7te-2r.js","sources":["../../src/page/index/dv/default/edit.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataForm\">\n <MKDataForm :data-form=\"dataForm\" />\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, Ref, reactive } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm } from \"@maketribe/dm\";\nimport { DataModelDefines } from \"../../../../core\";\nimport { MKDataForm, MKPageContainer } from \"../../../../components\";\n\nconst router = useRouter();\n\nconst id = computed(() => unref(router.currentRoute).params.id as string);\n\nconst dataForm: Ref<DataForm | null> = computed(() => {\n const dataForm = DataModelDefines.instance.getDataForm(\n unref(router.currentRoute).meta.name as string\n );\n\n return dataForm ? (reactive(dataForm) as DataForm) : null;\n});\n\nwatch(\n dataForm,\n (dataForm) => {\n if (!dataForm) {\n return;\n }\n\n dataForm.submittedEvent.on(() => {\n router.push({ name: `dv/${dataForm.name}/list` });\n });\n\n dataForm.cancelEvent.on(() => {\n router.push({ name: `dv/${dataForm.name}/list` });\n });\n\n if (!unref(id)) {\n unref(dataForm)?.addRecord();\n return;\n }\n\n unref(dataForm)?.editRecord(unref(id));\n },\n { immediate: true }\n);\n</script>\n"],"names":["dataForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,UAAM,SAAS;AAET,UAAA,KAAK,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,OAAO,EAAY;AAElE,UAAA,WAAiC,SAAS,MAAM;AAC9CA,YAAAA,YAAW,iBAAiB,SAAS;AAAA,QACzC,MAAM,OAAO,YAAY,EAAE,KAAK;AAAA,MAAA;AAG3BA,aAAAA,YAAY,SAASA,SAAQ,IAAiB;AAAA,IAAA,CACtD;AAED;AAAA,MACE;AAAA,MACA,CAACA,cAAa;;AACZ,YAAI,CAACA,WAAU;AACb;AAAA,QACF;AAEAA,kBAAS,eAAe,GAAG,MAAM;AAC/B,iBAAO,KAAK,EAAE,MAAM,MAAMA,UAAS,IAAI,SAAS;AAAA,QAAA,CACjD;AAEDA,kBAAS,YAAY,GAAG,MAAM;AAC5B,iBAAO,KAAK,EAAE,MAAM,MAAMA,UAAS,IAAI,SAAS;AAAA,QAAA,CACjD;AAEG,YAAA,CAAC,MAAM,EAAE,GAAG;AACRA,sBAAAA,SAAQ,MAARA,mBAAW;AACjB;AAAA,QACF;AAEA,oBAAMA,SAAQ,MAAd,mBAAiB,WAAW,MAAM,EAAE;AAAA,MACtC;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;;;;;;;;;;;"}
1
+ {"version":3,"file":"edit-BM-Do19m.js","sources":["../../src/page/index/dv/default/edit.vue"],"sourcesContent":["<template>\n <MKPageContainer v-if=\"dataForm\">\n <MKDataForm :data-form=\"dataForm\" />\n </MKPageContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { unref, computed, watch, Ref, reactive } from \"vue\";\nimport { useRouter } from \"vue-router\";\nimport { DataForm } from \"@maketribe/dm\";\nimport { DataModelDefines } from \"../../../../core\";\nimport { MKDataForm, MKPageContainer } from \"../../../../components\";\n\nconst router = useRouter();\n\nconst id = computed(() => unref(router.currentRoute).params.id as string);\n\nconst dataForm: Ref<DataForm | null> = computed(() => {\n const dataForm = DataModelDefines.instance.getDataForm(\n unref(router.currentRoute).meta.name as string\n );\n\n return dataForm ? (reactive(dataForm) as DataForm) : null;\n});\n\nwatch(\n dataForm,\n (dataForm) => {\n if (!dataForm) {\n return;\n }\n\n dataForm.submittedEvent.on(() => {\n router.push({ name: `dv/${dataForm.name}/list` });\n });\n\n dataForm.cancelEvent.on(() => {\n router.push({ name: `dv/${dataForm.name}/list` });\n });\n\n if (!unref(id)) {\n unref(dataForm)?.addRecord();\n return;\n }\n\n unref(dataForm)?.editRecord(unref(id));\n },\n { immediate: true }\n);\n</script>\n"],"names":["dataForm"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,UAAM,SAAS;AAET,UAAA,KAAK,SAAS,MAAM,MAAM,OAAO,YAAY,EAAE,OAAO,EAAY;AAElE,UAAA,WAAiC,SAAS,MAAM;AAC9CA,YAAAA,YAAW,iBAAiB,SAAS;AAAA,QACzC,MAAM,OAAO,YAAY,EAAE,KAAK;AAAA,MAAA;AAG3BA,aAAAA,YAAY,SAASA,SAAQ,IAAiB;AAAA,IAAA,CACtD;AAED;AAAA,MACE;AAAA,MACA,CAACA,cAAa;;AACZ,YAAI,CAACA,WAAU;AACb;AAAA,QACF;AAEAA,kBAAS,eAAe,GAAG,MAAM;AAC/B,iBAAO,KAAK,EAAE,MAAM,MAAMA,UAAS,IAAI,SAAS;AAAA,QAAA,CACjD;AAEDA,kBAAS,YAAY,GAAG,MAAM;AAC5B,iBAAO,KAAK,EAAE,MAAM,MAAMA,UAAS,IAAI,SAAS;AAAA,QAAA,CACjD;AAEG,YAAA,CAAC,MAAM,EAAE,GAAG;AACRA,sBAAAA,SAAQ,MAARA,mBAAW;AACjB;AAAA,QACF;AAEA,oBAAMA,SAAQ,MAAd,mBAAiB,WAAW,MAAM,EAAE;AAAA,MACtC;AAAA,MACA,EAAE,WAAW,KAAK;AAAA,IAAA;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { defineComponent, ref, onMounted, watch, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, createVNode, withCtx, createElementVNode, unref, createTextVNode, createBlock, createCommentVNode } from "vue";
2
- import { u as useCmsSettings, C as CmsSettingsKEY } from "./cms-settings-DHQmoLKI.js";
2
+ import { u as useCmsSettings, C as CmsSettingsKEY } from "./cms-settings-3ysZKNMa.js";
3
3
  import "@maketribe/dm";
4
4
  import "element-plus";
5
5
  import "@maketribe/utils";
6
- import { p as MsConfigTable, q as MKSvgIcon } from "./index-mq3nYYwD.js";
6
+ import { p as MsConfigTable, q as MKSvgIcon } from "./index-ClxRVkUv.js";
7
7
  import "vue-router";
8
8
  import "@maketribe/request";
9
9
  import "@maketribe/locale";
@@ -403,4 +403,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
403
403
  export {
404
404
  _sfc_main as default
405
405
  };
406
- //# sourceMappingURL=index-Cxr1pm2r.js.map
406
+ //# sourceMappingURL=index-6pZHgXtY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-Cxr1pm2r.js","sources":["../../src/modules/cms/pages/cms-settigns/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-appsettings__warp\" v-loading=\"loading\" style=\"\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\">\r\n <el-page-header style=\"background-color: #fff; padding: 10px\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular);\" m=\"l-[10px]\" flex=\"~ items-center\">\r\n <MKSvgIcon name=\"ep:operation\" m=\"r-[5px]\"/>\r\n CMS应用设置\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div>\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text :disabled=\"!changed\" @click=\"saveHandle\">\r\n <MKSvgIcon name=\"carbon:save\" />\r\n 保存\r\n </el-button>\r\n </el-button-group>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-appsettings__form_warp\" style=\"\r\n background: #fff;\r\n flex: 1;\r\n height: 100%;\r\n padding: 10px;\r\n margin: 10px;\r\n overflow: auto;\r\n \">\r\n <el-tabs v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <el-tab-pane label=\"发布设置\" name=\"publish\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"发布模式 : \">\r\n <el-radio-group v-model=\"CmsSettings.publish.mode\">\r\n <el-radio value=\"static\">静态发布</el-radio>\r\n <el-radio value=\"dynamic\">动态发布</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"兼容设备 : \">\r\n <el-checkbox-group v-model=\"CmsSettings.devices\">\r\n <el-checkbox label=\"PC端\" value=\"pc\" />\r\n <el-checkbox label=\"移动端\" value=\"mobile\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-form>\r\n <!-- <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"文档模块 : \">\r\n <DocModuleEditForm :modules=\"CmsSettings.docModules\"></DocModuleEditForm>\r\n </el-form-item>\r\n </el-form> -->\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\">\r\n <el-divider content-position=\"left\">栏目内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"开启栏目轮播图 : \">\r\n <el-switch v-model=\"CmsSettings.part.openBanner\" />\r\n </el-form-item>\r\n\r\n <el-form-item v-if=\"CmsSettings.part.openBanner\" label=\"轮播图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.part.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n \r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.part.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.part.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"内容设置\" name=\"content\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"启用内容置顶 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTop\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用最新内容 : \">\r\n <el-switch v-model=\"CmsSettings.content.useNew\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用热门推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.useHotRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用栏目推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.usePartRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容标签 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTags\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容资源库 : \">\r\n <el-switch v-model=\"CmsSettings.content.useAtlas\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容封面图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.coverImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容Banner图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n \r\n <el-divider content-position=\"left\">内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.content.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.content.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref,onMounted,watch, } from \"vue\";\r\nimport { useCmsSettings,CmsSettingsKEY,type CmsSettingsType } from \"../../cms-settings\"\r\nimport { MsConfigTable } from \"../../../ms/dataviews/ms-config/\"\r\nimport DocModuleEditForm from \"./DocModuleEditForm.vue\"\r\nimport {MKSvgIcon} from \"../../../../components/basic\";\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true); \r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"publish\");\r\n// 激活的tab\r\nconst loading = ref(false);\r\nconst changed = ref(false);\r\n\r\n\r\nconst saveHandle = async ()=>{\r\n\r\n if(changed.value){\r\n loading.value = true;\r\n await MsConfigTable.setConfigValue(CmsSettingsKEY,JSON.stringify(CmsSettings))\r\n loading.value = false;\r\n changed.value = false;\r\n }\r\n\r\n}\r\n\r\nonMounted(async ()=>{\r\n\r\n // 初始化\r\n const data = await MsConfigTable.getConfigValue<CmsSettingsType>(CmsSettingsKEY);\r\n if(data){ Object.assign(CmsSettings,data) }\r\n setTimeout(() => {\r\n loading.value = false;\r\n }, 500);\r\n // 数据改变\r\n watch(CmsSettings,()=>{\r\n changed.value = true;\r\n },{ deep:true })\r\n})\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgJM,UAAA,cAAc,eAAe,IAAI;AAGjC,UAAA,gBAAgB,IAAI,SAAS;AAE7B,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,UAAU,IAAI,KAAK;AAGzB,UAAM,aAAa,YAAU;AAE3B,UAAG,QAAQ,OAAM;AACf,gBAAQ,QAAQ;AAChB,cAAM,cAAc,eAAe,gBAAe,KAAK,UAAU,WAAW,CAAC;AAC7E,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAIF,cAAU,YAAU;AAGlB,YAAM,OAAQ,MAAM,cAAc,eAAgC,cAAc;AAChF,UAAG,MAAK;AAAS,eAAA,OAAO,aAAY,IAAI;AAAA,MAAE;AAC1C,iBAAW,MAAM;AACf,gBAAQ,QAAQ;AAAA,SACf,GAAG;AAEN,YAAM,aAAY,MAAI;AACpB,gBAAQ,QAAQ;AAAA,MAAA,GAChB,EAAE,MAAK,KAAA,CAAM;AAAA,IAAA,CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index-6pZHgXtY.js","sources":["../../src/modules/cms/pages/cms-settigns/index.vue"],"sourcesContent":["<template>\r\n <div class=\"mk-cms-appsettings__warp\" v-loading=\"loading\" style=\"\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n\">\r\n <el-page-header style=\"background-color: #fff; padding: 10px\" :icon=\"null\">\r\n <template #title>\r\n <h3 style=\"color: var(--el-text-color-regular);\" m=\"l-[10px]\" flex=\"~ items-center\">\r\n <MKSvgIcon name=\"ep:operation\" m=\"r-[5px]\"/>\r\n CMS应用设置\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div>\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text :disabled=\"!changed\" @click=\"saveHandle\">\r\n <MKSvgIcon name=\"carbon:save\" />\r\n 保存\r\n </el-button>\r\n </el-button-group>\r\n </div>\r\n </template>\r\n </el-page-header>\r\n <div class=\"mk-cms-appsettings__form_warp\" style=\"\r\n background: #fff;\r\n flex: 1;\r\n height: 100%;\r\n padding: 10px;\r\n margin: 10px;\r\n overflow: auto;\r\n \">\r\n <el-tabs v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <el-tab-pane label=\"发布设置\" name=\"publish\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"发布模式 : \">\r\n <el-radio-group v-model=\"CmsSettings.publish.mode\">\r\n <el-radio value=\"static\">静态发布</el-radio>\r\n <el-radio value=\"dynamic\">动态发布</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"兼容设备 : \">\r\n <el-checkbox-group v-model=\"CmsSettings.devices\">\r\n <el-checkbox label=\"PC端\" value=\"pc\" />\r\n <el-checkbox label=\"移动端\" value=\"mobile\" />\r\n </el-checkbox-group>\r\n </el-form-item>\r\n </el-form>\r\n <!-- <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"文档模块 : \">\r\n <DocModuleEditForm :modules=\"CmsSettings.docModules\"></DocModuleEditForm>\r\n </el-form-item>\r\n </el-form> -->\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\">\r\n <el-divider content-position=\"left\">栏目内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"开启栏目轮播图 : \">\r\n <el-switch v-model=\"CmsSettings.part.openBanner\" />\r\n </el-form-item>\r\n\r\n <el-form-item v-if=\"CmsSettings.part.openBanner\" label=\"轮播图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.part.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n \r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.part.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.part.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"内容设置\" name=\"content\">\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\">\r\n <el-form-item label=\"启用内容置顶 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTop\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用最新内容 : \">\r\n <el-switch v-model=\"CmsSettings.content.useNew\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用热门推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.useHotRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用栏目推荐 : \">\r\n <el-switch v-model=\"CmsSettings.content.usePartRecommend\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容标签 : \">\r\n <el-switch v-model=\"CmsSettings.content.useTags\" />\r\n </el-form-item>\r\n <el-form-item label=\"启用内容资源库 : \">\r\n <el-switch v-model=\"CmsSettings.content.useAtlas\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容封面图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.coverImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n <el-form-item label=\"内容Banner图尺寸 : \">\r\n <el-input v-model=\"CmsSettings.content.bannerImageSize\" placeholder=\"\" style=\"max-width: 200px;\" />\r\n </el-form-item>\r\n </el-form>\r\n \r\n <el-divider content-position=\"left\">内容文档编辑器扩展设置</el-divider>\r\n <el-form :model=\"CmsSettings\" label-width=\"auto\" label-position=\"top\">\r\n <el-form-item label=\"引入的Css : \">\r\n <el-input v-model=\"CmsSettings.content.doc.css\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个css url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n \r\n <el-form-item label=\"引入的Js : \">\r\n <el-input v-model=\"CmsSettings.content.doc.js\"\r\n :autosize=\"{ minRows: 2, maxRows: 4 }\"\r\n type=\"textarea\"\r\n placeholder=\"多个 js url , 号分割,逗号必须是英文逗号\"\r\n />\r\n </el-form-item>\r\n </el-form>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { ref,onMounted,watch, } from \"vue\";\r\nimport { useCmsSettings,CmsSettingsKEY,type CmsSettingsType } from \"../../cms-settings\"\r\nimport { MsConfigTable } from \"../../../ms/dataviews/ms-config/\"\r\nimport DocModuleEditForm from \"./DocModuleEditForm.vue\"\r\nimport {MKSvgIcon} from \"../../../../components/basic\";\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true); \r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"publish\");\r\n// 激活的tab\r\nconst loading = ref(false);\r\nconst changed = ref(false);\r\n\r\n\r\nconst saveHandle = async ()=>{\r\n\r\n if(changed.value){\r\n loading.value = true;\r\n await MsConfigTable.setConfigValue(CmsSettingsKEY,JSON.stringify(CmsSettings))\r\n loading.value = false;\r\n changed.value = false;\r\n }\r\n\r\n}\r\n\r\nonMounted(async ()=>{\r\n\r\n // 初始化\r\n const data = await MsConfigTable.getConfigValue<CmsSettingsType>(CmsSettingsKEY);\r\n if(data){ Object.assign(CmsSettings,data) }\r\n setTimeout(() => {\r\n loading.value = false;\r\n }, 500);\r\n // 数据改变\r\n watch(CmsSettings,()=>{\r\n changed.value = true;\r\n },{ deep:true })\r\n})\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgJM,UAAA,cAAc,eAAe,IAAI;AAGjC,UAAA,gBAAgB,IAAI,SAAS;AAE7B,UAAA,UAAU,IAAI,KAAK;AACnB,UAAA,UAAU,IAAI,KAAK;AAGzB,UAAM,aAAa,YAAU;AAE3B,UAAG,QAAQ,OAAM;AACf,gBAAQ,QAAQ;AAChB,cAAM,cAAc,eAAe,gBAAe,KAAK,UAAU,WAAW,CAAC;AAC7E,gBAAQ,QAAQ;AAChB,gBAAQ,QAAQ;AAAA,MAClB;AAAA,IAAA;AAIF,cAAU,YAAU;AAGlB,YAAM,OAAQ,MAAM,cAAc,eAAgC,cAAc;AAChF,UAAG,MAAK;AAAS,eAAA,OAAO,aAAY,IAAI;AAAA,MAAE;AAC1C,iBAAW,MAAM;AACf,gBAAQ,QAAQ;AAAA,SACf,GAAG;AAEN,YAAM,aAAY,MAAI;AACpB,gBAAQ,QAAQ;AAAA,MAAA,GAChB,EAAE,MAAK,KAAA,CAAM;AAAA,IAAA,CAChB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, unref, createVNode } from "vue";
2
2
  import { buildProps } from "@maketribe/utils";
3
3
  import { TableColumn, TableActionColumn } from "@maketribe/dm";
4
- import { T as columnProps, V as MKButton } from "./index-mq3nYYwD.js";
4
+ import { T as columnProps, V as MKButton } from "./index-ClxRVkUv.js";
5
5
  import "vue-router";
6
6
  import "element-plus";
7
7
  import "@maketribe/request";
@@ -46,4 +46,4 @@ export {
46
46
  MKColumnAction,
47
47
  MKColumnAction as default
48
48
  };
49
- //# sourceMappingURL=index-CPBRsmn3.js.map
49
+ //# sourceMappingURL=index-B7V4NKgm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-CPBRsmn3.js","sources":["../../src/components/data-model/data-table/components/column-action/column-action-options.ts","../../src/components/data-model/data-table/components/column-action/column-action.tsx","../../src/components/data-model/data-table/components/column-action/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { buildProps } from \"@maketribe/utils\";\nimport { TableColumn } from \"@maketribe/dm\";\nimport { columnProps } from \"../../composables\";\n\nexport const columnActionProps = buildProps({\n ...columnProps,\n column: { type: TableColumn, required: true },\n buttons: { type: Array, default: () => [] }\n} as const);\n\nexport type ColumnActionProps = ExtractPropTypes<typeof columnActionProps>;\n","import { computed, defineComponent, unref } from \"vue\";\nimport { ElButton } from \"element-plus\";\n\nimport { columnActionProps } from \"./column-action-options\";\nimport { MKButton } from \"../../../../basic/button\";\nimport { ActionButton, TableActionColumn } from \"@maketribe/dm\";\n\nexport type MKColumnActionButton = {\n name?: string;\n label?: string;\n type?: InstanceType<typeof ElButton>[\"type\"];\n handler?: (row: any) => any;\n};\n\nexport default defineComponent({\n name: \"MKColumnAction\",\n props: columnActionProps,\n setup(props) {\n const buttons = computed(() => {\n if (props.column instanceof TableActionColumn) {\n return props.column.buttons;\n }\n\n return props.buttons as ActionButton[];\n });\n\n const handleColumnActionClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n return () => {\n const buttonVnodes = unref(buttons)\n .filter((button) => button.predicate(props.row))\n .map((button) => (\n <MKButton\n icon={button.icon}\n label={button.label}\n type={button.type}\n link\n onClick={() => button.handler(props.row)}\n />\n ));\n\n return (\n <span class=\"mk-column-action\" onClick={handleColumnActionClick}>\n {buttonVnodes}\n </span>\n );\n };\n },\n});\n","import ColumnAction from \"./column-action\";\r\n\r\nexport const MKColumnAction = ColumnAction;\r\nexport default MKColumnAction;\r\n"],"names":["defineComponent","name","props","columnActionProps","setup","buttons","computed","column","TableActionColumn","handleColumnActionClick","e","preventDefault","stopPropagation","buttonVnodes","unref","filter","button","predicate","row","map","_createVNode","MKButton","icon","label","type","onClick","handler"],"mappings":";;;;;;;;;AAKO,MAAM,oBAAoB,WAAW;AAAA,EAC1C,GAAG;AAAA,EACH,QAAQ,EAAE,MAAM,aAAa,UAAU,KAAK;AAAA,EAC5C,SAAS,EAAE,MAAM,OAAO,SAAS,MAAM,CAAA,EAAG;AAC5C,CAAU;ACKV,MAAeA,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AACX,UAAMG,UAAUC,SAAS,MAAM;AAC7B,UAAIJ,MAAMK,kBAAkBC,mBAAmB;AAC7C,eAAON,MAAMK,OAAOF;AAAAA,MACtB;AAEA,aAAOH,MAAMG;AAAAA,IACf,CAAC;AAED,UAAMI,0BAA2BC,OAAkB;AACjDA,QAAEC,eAAc;AAChBD,QAAEE,gBAAe;AAAA;AAGnB,WAAO,MAAM;AACX,YAAMC,eAAeC,MAAMT,OAAO,EAC/BU,OAAQC,YAAWA,OAAOC,UAAUf,MAAMgB,GAAG,CAAC,EAC9CC,IAAKH,YAAMI,YAAAC,UAAA;AAAA,QAAA,QAEFL,OAAOM;AAAAA,QAAI,SACVN,OAAOO;AAAAA,QAAK,QACbP,OAAOQ;AAAAA,QAAI,QAAA;AAAA,QAAA,WAERC,MAAMT,OAAOU,QAAQxB,MAAMgB,GAAG;AAAA,MAAC,GAAA,IAAA,CAE3C;AAEH,aAAAE,YAAA,QAAA;AAAA,QAAA,SAAA;AAAA,QAAA,WAC0CX;AAAAA,MAAuB,GAAA,CAC5DI,YAAY,CAAA;AAAA;EAIrB;AACF,CAAC;ACjDM,MAAM,iBAAiB;"}
1
+ {"version":3,"file":"index-B7V4NKgm.js","sources":["../../src/components/data-model/data-table/components/column-action/column-action-options.ts","../../src/components/data-model/data-table/components/column-action/column-action.tsx","../../src/components/data-model/data-table/components/column-action/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { buildProps } from \"@maketribe/utils\";\nimport { TableColumn } from \"@maketribe/dm\";\nimport { columnProps } from \"../../composables\";\n\nexport const columnActionProps = buildProps({\n ...columnProps,\n column: { type: TableColumn, required: true },\n buttons: { type: Array, default: () => [] }\n} as const);\n\nexport type ColumnActionProps = ExtractPropTypes<typeof columnActionProps>;\n","import { computed, defineComponent, unref } from \"vue\";\nimport { ElButton } from \"element-plus\";\n\nimport { columnActionProps } from \"./column-action-options\";\nimport { MKButton } from \"../../../../basic/button\";\nimport { ActionButton, TableActionColumn } from \"@maketribe/dm\";\n\nexport type MKColumnActionButton = {\n name?: string;\n label?: string;\n type?: InstanceType<typeof ElButton>[\"type\"];\n handler?: (row: any) => any;\n};\n\nexport default defineComponent({\n name: \"MKColumnAction\",\n props: columnActionProps,\n setup(props) {\n const buttons = computed(() => {\n if (props.column instanceof TableActionColumn) {\n return props.column.buttons;\n }\n\n return props.buttons as ActionButton[];\n });\n\n const handleColumnActionClick = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n return () => {\n const buttonVnodes = unref(buttons)\n .filter((button) => button.predicate(props.row))\n .map((button) => (\n <MKButton\n icon={button.icon}\n label={button.label}\n type={button.type}\n link\n onClick={() => button.handler(props.row)}\n />\n ));\n\n return (\n <span class=\"mk-column-action\" onClick={handleColumnActionClick}>\n {buttonVnodes}\n </span>\n );\n };\n },\n});\n","import ColumnAction from \"./column-action\";\r\n\r\nexport const MKColumnAction = ColumnAction;\r\nexport default MKColumnAction;\r\n"],"names":["defineComponent","name","props","columnActionProps","setup","buttons","computed","column","TableActionColumn","handleColumnActionClick","e","preventDefault","stopPropagation","buttonVnodes","unref","filter","button","predicate","row","map","_createVNode","MKButton","icon","label","type","onClick","handler"],"mappings":";;;;;;;;;AAKO,MAAM,oBAAoB,WAAW;AAAA,EAC1C,GAAG;AAAA,EACH,QAAQ,EAAE,MAAM,aAAa,UAAU,KAAK;AAAA,EAC5C,SAAS,EAAE,MAAM,OAAO,SAAS,MAAM,CAAA,EAAG;AAC5C,CAAU;ACKV,MAAeA,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AACX,UAAMG,UAAUC,SAAS,MAAM;AAC7B,UAAIJ,MAAMK,kBAAkBC,mBAAmB;AAC7C,eAAON,MAAMK,OAAOF;AAAAA,MACtB;AAEA,aAAOH,MAAMG;AAAAA,IACf,CAAC;AAED,UAAMI,0BAA2BC,OAAkB;AACjDA,QAAEC,eAAc;AAChBD,QAAEE,gBAAe;AAAA;AAGnB,WAAO,MAAM;AACX,YAAMC,eAAeC,MAAMT,OAAO,EAC/BU,OAAQC,YAAWA,OAAOC,UAAUf,MAAMgB,GAAG,CAAC,EAC9CC,IAAKH,YAAMI,YAAAC,UAAA;AAAA,QAAA,QAEFL,OAAOM;AAAAA,QAAI,SACVN,OAAOO;AAAAA,QAAK,QACbP,OAAOQ;AAAAA,QAAI,QAAA;AAAA,QAAA,WAERC,MAAMT,OAAOU,QAAQxB,MAAMgB,GAAG;AAAA,MAAC,GAAA,IAAA,CAE3C;AAEH,aAAAE,YAAA,QAAA;AAAA,QAAA,SAAA;AAAA,QAAA,WAC0CX;AAAAA,MAAuB,GAAA,CAC5DI,YAAY,CAAA;AAAA;EAIrB;AACF,CAAC;ACjDM,MAAM,iBAAiB;"}
@@ -0,0 +1,200 @@
1
+ import { buildProps, withInstall } from "@maketribe/utils";
2
+ import { inject, computed, unref, defineComponent, watch, ref, openBlock, createElementBlock, createVNode, withCtx, createTextVNode } from "vue";
3
+ import { a8 as DATA_FORM_ITEM_CONTEXT_KEY, A as MKDataTable, a9 as _sfc_main$1, z as MKPageContainer, aa as DataForm, a3 as MKForm } from "./index-ClxRVkUv.js";
4
+ import { FormDetailColumn, FormColumn, Messager } from "@maketribe/dm";
5
+ import { ElButton, ElEmpty } from "element-plus";
6
+ const formDetailProps = buildProps({
7
+ modelValue: {
8
+ type: null
9
+ },
10
+ disabled: {
11
+ type: Boolean,
12
+ default: false
13
+ },
14
+ column: { type: FormDetailColumn, required: true },
15
+ formWidth: {
16
+ type: String,
17
+ default: "400px"
18
+ }
19
+ });
20
+ const formDetailEmits = {
21
+ "update:model-value": (v) => true
22
+ };
23
+ buildProps({
24
+ column: { type: FormColumn, required: true }
25
+ });
26
+ function useFormItem() {
27
+ const dataFormItemContext = inject(DATA_FORM_ITEM_CONTEXT_KEY);
28
+ const column = computed(() => {
29
+ var _a;
30
+ return ((_a = unref(dataFormItemContext)) == null ? void 0 : _a.column) ?? null;
31
+ });
32
+ const value = computed({
33
+ get: () => {
34
+ const _column = unref(column);
35
+ if (!_column) {
36
+ return;
37
+ }
38
+ return _column.getValue();
39
+ },
40
+ set: (v) => {
41
+ const _column = unref(column);
42
+ if (!_column) {
43
+ return;
44
+ }
45
+ _column.setValue(v);
46
+ }
47
+ });
48
+ const disabled = computed(() => {
49
+ var _a;
50
+ return ((_a = unref(column)) == null ? void 0 : _a.disabled) ?? false;
51
+ });
52
+ return { column, value, disabled };
53
+ }
54
+ const _hoisted_1 = { class: "mk-form-detail" };
55
+ const _sfc_main = /* @__PURE__ */ defineComponent({
56
+ __name: "form-detail",
57
+ props: formDetailProps,
58
+ emits: formDetailEmits,
59
+ setup(__props, { emit: __emit }) {
60
+ const props = __props;
61
+ const detailTable = computed(() => props.column.detailTable);
62
+ const detailForm = computed(() => props.column.detailForm);
63
+ const { value } = useFormItem();
64
+ watch(
65
+ computed(() => unref(value)),
66
+ (value2) => {
67
+ const _detailTable = unref(detailTable);
68
+ value2 = Array.isArray(value2) ? value2 : [];
69
+ _detailTable.setList(
70
+ value2.map((item) => _detailTable.formatItem(item))
71
+ );
72
+ }
73
+ );
74
+ const isShowDataForm = ref(false);
75
+ watch(
76
+ detailTable,
77
+ (dataTable, _, onCleanup) => {
78
+ const addRecordDisposable = dataTable.addRecordEvent.on(async ({ item }) => {
79
+ const _dataForm = unref(detailForm);
80
+ if (!_dataForm) {
81
+ console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);
82
+ return;
83
+ }
84
+ isShowDataForm.value = true;
85
+ _dataForm.addRecord(item);
86
+ });
87
+ const editRecordDisposable = dataTable.editRecordEvent.on(
88
+ async ({ item }) => {
89
+ const _dataForm = unref(detailForm);
90
+ if (!_dataForm) {
91
+ console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);
92
+ return;
93
+ }
94
+ isShowDataForm.value = true;
95
+ try {
96
+ const response = await _dataForm.editRecord(item);
97
+ if (response.data.code !== 200) {
98
+ Messager.error({ message: response.data.msg });
99
+ isShowDataForm.value = false;
100
+ return;
101
+ }
102
+ } catch (e) {
103
+ console.error(e);
104
+ isShowDataForm.value = false;
105
+ }
106
+ }
107
+ );
108
+ onCleanup(() => {
109
+ addRecordDisposable.dispose();
110
+ editRecordDisposable.dispose();
111
+ });
112
+ },
113
+ { immediate: true }
114
+ );
115
+ watch(
116
+ detailForm,
117
+ (dataForm, _, onCleanup) => {
118
+ const submittedDisposable = dataForm.submittedEvent.on(() => {
119
+ var _a;
120
+ isShowDataForm.value = false;
121
+ (_a = unref(detailTable)) == null ? void 0 : _a.load();
122
+ });
123
+ const cancelDisposable = dataForm.cancelEvent.on(() => {
124
+ isShowDataForm.value = false;
125
+ });
126
+ onCleanup(() => {
127
+ submittedDisposable.dispose();
128
+ cancelDisposable.dispose();
129
+ });
130
+ },
131
+ { immediate: true }
132
+ );
133
+ const handleFormSave = async () => {
134
+ var _a;
135
+ await ((_a = unref(detailForm)) == null ? void 0 : _a.simpleSubmit());
136
+ };
137
+ const handleFormCancel = () => {
138
+ unref(detailForm).cancel();
139
+ };
140
+ return (_ctx, _cache) => {
141
+ return openBlock(), createElementBlock("div", _hoisted_1, [
142
+ createVNode(unref(MKDataTable), {
143
+ dataTable: detailTable.value,
144
+ autoLoad: false
145
+ }, null, 8, ["dataTable"]),
146
+ createVNode(_sfc_main$1, {
147
+ modelValue: isShowDataForm.value,
148
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isShowDataForm.value = $event),
149
+ title: "fdasfsaf"
150
+ }, {
151
+ footer: withCtx(() => [
152
+ createVNode(unref(ElButton), { onClick: handleFormCancel }, {
153
+ default: withCtx(() => [
154
+ createTextVNode("取消")
155
+ ]),
156
+ _: 1
157
+ }),
158
+ createVNode(unref(ElButton), {
159
+ type: "primary",
160
+ onClick: handleFormSave
161
+ }, {
162
+ default: withCtx(() => [
163
+ createTextVNode("保存")
164
+ ]),
165
+ _: 1
166
+ })
167
+ ]),
168
+ empty: withCtx(() => [
169
+ createVNode(unref(ElEmpty), { "image-size": 100 })
170
+ ]),
171
+ default: withCtx(() => [
172
+ createVNode(unref(MKPageContainer), null, {
173
+ default: withCtx(() => [
174
+ createVNode(DataForm, {
175
+ dataForm: detailForm.value,
176
+ autoLoad: false
177
+ }, {
178
+ default: withCtx(() => [
179
+ createVNode(unref(MKForm))
180
+ ]),
181
+ _: 1
182
+ }, 8, ["dataForm"])
183
+ ]),
184
+ _: 1
185
+ })
186
+ ]),
187
+ _: 1
188
+ }, 8, ["modelValue"])
189
+ ]);
190
+ };
191
+ }
192
+ });
193
+ const MKFormDetail = withInstall(_sfc_main);
194
+ export {
195
+ MKFormDetail,
196
+ MKFormDetail as default,
197
+ formDetailEmits,
198
+ formDetailProps
199
+ };
200
+ //# sourceMappingURL=index-BFKVNCwz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BFKVNCwz.js","sources":["../../src/components/data-model/data-form/components/form-detail/form-detail-options.ts","../../src/components/data-model/data-form/composables/use-form-item.ts","../../src/components/data-model/data-form/components/form-detail/form-detail.vue","../../src/components/data-model/data-form/components/form-detail/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\nimport { buildProps } from \"@maketribe/utils\";\nimport { FormDetailColumn } from \"@maketribe/dm\";\n\nexport const formDetailProps = buildProps({\n modelValue: {\n type: null,\n },\n disabled: {\n type: Boolean,\n default: false,\n },\n column: { type: FormDetailColumn, required: true },\n formWidth: {\n type: String,\n default: \"400px\",\n },\n} as const);\n\nexport type FormDetailProps = ExtractPropTypes<typeof formDetailProps>;\n\nexport const formDetailEmits = {\n \"update:model-value\": (v: any) => true,\n};\n\nexport type FormDetailEmits = ExtractPropTypes<typeof formDetailEmits>;\n","import { ExtractPropTypes, computed, inject, unref } from \"vue\";\nimport { DATA_FORM_ITEM_CONTEXT_KEY } from \"../token\";\nimport { FormColumn } from \"@maketribe/dm\";\nimport { buildProps } from \"@maketribe/utils\";\n\nexport const columnProps = buildProps({\n column: { type: FormColumn, required: true },\n} as const);\n\nexport type ColumnProps = ExtractPropTypes<typeof columnProps>;\n\nexport function useFormItem() {\n const dataFormItemContext = inject(DATA_FORM_ITEM_CONTEXT_KEY);\n const column = computed(() => unref(dataFormItemContext)?.column ?? null);\n\n const value = computed({\n get: () => {\n const _column = unref(column);\n\n if (!_column) {\n return;\n }\n\n return _column.getValue();\n },\n set: (v: any) => {\n const _column = unref(column);\n\n if (!_column) {\n return;\n }\n\n _column.setValue(v);\n },\n });\n\n const disabled = computed(() => unref(column)?.disabled ?? false);\n\n return { column, value, disabled };\n}\n","<script setup lang=\"ts\">\r\nimport {computed, defineComponent, ref, unref, watch} from \"vue\";\r\nimport {MKPageContainer} from \"../../../../basic/page-container\";\r\nimport {MKDataTable} from \"../../../data-table\";\r\nimport DataForm from \"../../data-form.vue\";\r\nimport {formDetailEmits, formDetailProps} from \"./form-detail-options\";\r\nimport {useFormItem} from \"../../composables\";\r\nimport {MKForm} from '../../views'\r\nimport {ElButton, ElEmpty} from \"element-plus\";\r\nimport {Messager} from \"@maketribe/dm\";\r\nimport HSlideover from '../../../../../layouts/new/ui-kit/HSlideover.vue'\r\n\r\nconst props = defineProps(formDetailProps);\r\n\r\nconst emit = defineEmits(formDetailEmits)\r\n\r\nconst detailTable = computed(() => props.column.detailTable);\r\nconst detailForm = computed(() => props.column.detailForm!);\r\n\r\nconst {value} = useFormItem();\r\n\r\nwatch(\r\n computed(() => unref(value)),\r\n (value) => {\r\n const _detailTable = unref(detailTable);\r\n\r\n value = Array.isArray(value) ? value : [];\r\n\r\n _detailTable.setList(\r\n value.map((item: any) => _detailTable.formatItem(item))\r\n );\r\n }\r\n);\r\n\r\nconst isShowDataForm = ref(false);\r\n\r\nwatch(\r\n detailTable,\r\n (dataTable, _, onCleanup) => {\r\n const addRecordDisposable = dataTable.addRecordEvent.on(async ({item}) => {\r\n const _dataForm = unref(detailForm);\r\n\r\n if (!_dataForm) {\r\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\r\n return;\r\n }\r\n\r\n isShowDataForm.value = true;\r\n\r\n _dataForm.addRecord(item);\r\n });\r\n\r\n const editRecordDisposable = dataTable.editRecordEvent.on(\r\n async ({item}) => {\r\n const _dataForm = unref(detailForm);\r\n\r\n if (!_dataForm) {\r\n console.warn(`没有对应的 (${dataTable.name}) DataForm 实现`);\r\n return;\r\n }\r\n\r\n isShowDataForm.value = true;\r\n\r\n try {\r\n const response = await _dataForm.editRecord(item);\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({message: response.data.msg});\r\n isShowDataForm.value = false;\r\n return;\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n isShowDataForm.value = false;\r\n }\r\n }\r\n );\r\n\r\n onCleanup(() => {\r\n addRecordDisposable.dispose();\r\n editRecordDisposable.dispose();\r\n });\r\n },\r\n {immediate: true}\r\n);\r\n\r\nwatch(\r\n detailForm,\r\n (dataForm, _, onCleanup) => {\r\n const submittedDisposable = dataForm.submittedEvent.on(() => {\r\n isShowDataForm.value = false;\r\n\r\n unref(detailTable)?.load();\r\n });\r\n\r\n const cancelDisposable = dataForm.cancelEvent.on(() => {\r\n isShowDataForm.value = false;\r\n });\r\n\r\n onCleanup(() => {\r\n submittedDisposable.dispose();\r\n cancelDisposable.dispose();\r\n });\r\n },\r\n {immediate: true}\r\n);\r\n\r\nconst handleFormSave = async () => {\r\n await unref(detailForm)?.simpleSubmit();\r\n};\r\n\r\nconst handleFormCancel = () => {\r\n unref(detailForm).cancel();\r\n};\r\n\r\n\r\n</script>\r\n\r\n<template>\r\n <div class=\"mk-form-detail\">\r\n <MKDataTable\r\n :dataTable=\"detailTable\"\r\n :autoLoad=\"false\"\r\n />\r\n <HSlideover v-model=\"isShowDataForm\" title=\"fdasfsaf\">\r\n <MKPageContainer>\r\n <DataForm :dataForm=\"detailForm\" :autoLoad=\"false\">\r\n <MKForm/>\r\n </DataForm>\r\n </MKPageContainer>\r\n\r\n <template #footer>\r\n\r\n <ElButton @click=\"handleFormCancel\">取消</ElButton>\r\n <ElButton type=\"primary\" @click=\"handleFormSave\">保存</ElButton>\r\n </template>\r\n\r\n <template #empty>\r\n <ElEmpty :image-size=\"100\"/>\r\n </template>\r\n </HSlideover>\r\n </div>\r\n</template>\r\n","import { withInstall } from \"@maketribe/utils\";\r\nimport FormDetail from \"./form-detail.vue\";\r\n\r\nexport const MKFormDetail = withInstall(FormDetail);\r\nexport default MKFormDetail;\r\n\r\nexport * from \"./form-detail-options\";\r\n"],"names":["value","FormDetail"],"mappings":"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"}