@maketribe/ms-app 4.0.0-alpha.4 → 4.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/dist/cjs/{404-C5dmqK1T.cjs → 404-B7NnT2gM.cjs} +2 -2
  2. package/dist/cjs/404-B7NnT2gM.cjs.map +1 -0
  3. package/dist/cjs/{article-edit-add-page-BhIbt8mY.cjs → article-edit-add-page-ByMqxxgu.cjs} +5 -3
  4. package/dist/cjs/{article-edit-add-page-BhIbt8mY.cjs.map → article-edit-add-page-ByMqxxgu.cjs.map} +1 -1
  5. package/dist/cjs/{cms-settings-XOAsKe2w.cjs → cms-settings-B5SQCWZJ.cjs} +2 -2
  6. package/dist/cjs/{cms-settings-XOAsKe2w.cjs.map → cms-settings-B5SQCWZJ.cjs.map} +1 -1
  7. package/dist/cjs/code-editor-BK6E3jKG.cjs.map +1 -1
  8. package/dist/cjs/{dialog-DYWmSX78.cjs → dialog-BKFMFeN8.cjs} +4 -2
  9. package/dist/cjs/dialog-BKFMFeN8.cjs.map +1 -0
  10. package/dist/cjs/{dialog-9t4PpBq_.cjs → dialog-CxU-j_2o.cjs} +4 -2
  11. package/dist/cjs/dialog-CxU-j_2o.cjs.map +1 -0
  12. package/dist/cjs/{dialog-rl_frDK9.cjs → dialog-CzIX1Cf8.cjs} +4 -2
  13. package/dist/cjs/dialog-CzIX1Cf8.cjs.map +1 -0
  14. package/dist/cjs/{edit-YTd9VNsI.cjs → edit-B8i8ha4p.cjs} +4 -2
  15. package/dist/cjs/edit-B8i8ha4p.cjs.map +1 -0
  16. package/dist/cjs/{index-CqTnJlET.cjs → index-8m_Qfcd7.cjs} +4 -2
  17. package/dist/cjs/index-8m_Qfcd7.cjs.map +1 -0
  18. package/dist/cjs/{index-DF9tph7D.cjs → index-B2WZSyta.cjs} +2 -2
  19. package/dist/cjs/index-B2WZSyta.cjs.map +1 -0
  20. package/dist/cjs/{index-BEXhwBqh.cjs → index-B3e0rOJs.cjs} +5 -3
  21. package/dist/cjs/{index-BEXhwBqh.cjs.map → index-B3e0rOJs.cjs.map} +1 -1
  22. package/dist/cjs/{index-C2OOg-9r.cjs → index-B6rRcZ6D.cjs} +4 -2
  23. package/dist/cjs/{index-C2OOg-9r.cjs.map → index-B6rRcZ6D.cjs.map} +1 -1
  24. package/dist/cjs/{index-BcHCVUXJ.cjs → index-BBPZypJc.cjs} +2 -2
  25. package/dist/cjs/index-BBPZypJc.cjs.map +1 -0
  26. package/dist/cjs/{index-CVvSVtzA.cjs → index-BIMO2PR_.cjs} +3 -3
  27. package/dist/cjs/index-BIMO2PR_.cjs.map +1 -0
  28. package/dist/cjs/{index-7G4aDLGX.cjs → index-BXDEu-XA.cjs} +4 -2
  29. package/dist/cjs/index-BXDEu-XA.cjs.map +1 -0
  30. package/dist/cjs/{index-D9nmASDU.cjs → index-Bai9QQCc.cjs} +4 -2
  31. package/dist/cjs/index-Bai9QQCc.cjs.map +1 -0
  32. package/dist/cjs/{index-D3yfcKl6.cjs → index-BxG6qdNK.cjs} +2 -2
  33. package/dist/cjs/index-BxG6qdNK.cjs.map +1 -0
  34. package/dist/cjs/{index-BQjfBtn7.cjs → index-BxU_LT2e.cjs} +2 -2
  35. package/dist/cjs/index-BxU_LT2e.cjs.map +1 -0
  36. package/dist/cjs/{index-VgamPuGl.cjs → index-BxtDhN0U.cjs} +3 -3
  37. package/dist/cjs/index-BxtDhN0U.cjs.map +1 -0
  38. package/dist/cjs/{index-P7aJrY9b.cjs → index-C1XNlE_P.cjs} +718 -696
  39. package/dist/cjs/index-C1XNlE_P.cjs.map +1 -0
  40. package/dist/cjs/index-C2CjifJI.cjs.map +1 -1
  41. package/dist/cjs/{index-KKM-xN3u.cjs → index-C6D2ofzy.cjs} +11 -10
  42. package/dist/cjs/index-C6D2ofzy.cjs.map +1 -0
  43. package/dist/cjs/{index-DoAWnYyy.cjs → index-CFnMYkKP.cjs} +2 -2
  44. package/dist/cjs/index-CFnMYkKP.cjs.map +1 -0
  45. package/dist/cjs/{index-CxONh6ck.cjs → index-CGeJ9pOk.cjs} +4 -2
  46. package/dist/cjs/{index-CxONh6ck.cjs.map → index-CGeJ9pOk.cjs.map} +1 -1
  47. package/dist/cjs/{index-pzYNuMPD.cjs → index-CR-upPjf.cjs} +2 -2
  48. package/dist/cjs/index-CR-upPjf.cjs.map +1 -0
  49. package/dist/cjs/index-CgY5IPuU.cjs.map +1 -1
  50. package/dist/cjs/index-Cj3GY0CU.cjs.map +1 -1
  51. package/dist/cjs/{index-PPh3CcUq.cjs → index-Cn5Amco_.cjs} +2 -2
  52. package/dist/cjs/index-Cn5Amco_.cjs.map +1 -0
  53. package/dist/cjs/{index-Ch0S2DrM.cjs → index-CzwK5miY.cjs} +2 -2
  54. package/dist/cjs/index-CzwK5miY.cjs.map +1 -0
  55. package/dist/cjs/{index-D675maEE.cjs → index-DAwkIeXU.cjs} +4 -2
  56. package/dist/cjs/{index-D675maEE.cjs.map → index-DAwkIeXU.cjs.map} +1 -1
  57. package/dist/cjs/{index-BtU3tqPr.cjs → index-DPCvcvKp.cjs} +5 -3
  58. package/dist/cjs/{index-BtU3tqPr.cjs.map → index-DPCvcvKp.cjs.map} +1 -1
  59. package/dist/cjs/{index-BSdIPRXO.cjs → index-DTFa1Ww6.cjs} +132 -4
  60. package/dist/cjs/index-DTFa1Ww6.cjs.map +1 -0
  61. package/dist/cjs/{index-CbhJwIay.cjs → index-DYNaj0_Z.cjs} +4 -2
  62. package/dist/cjs/{index-CbhJwIay.cjs.map → index-DYNaj0_Z.cjs.map} +1 -1
  63. package/dist/cjs/index-D_CB0k2e.cjs.map +1 -1
  64. package/dist/cjs/index-DdpqZVD9.cjs +213 -0
  65. package/dist/cjs/index-DdpqZVD9.cjs.map +1 -0
  66. package/dist/cjs/{index-BGFeVpUZ.cjs → index-Dnat27O8.cjs} +2 -2
  67. package/dist/cjs/index-Dnat27O8.cjs.map +1 -0
  68. package/dist/cjs/{index-CALg925z.cjs → index-DqB49ApO.cjs} +2 -2
  69. package/dist/cjs/index-DqB49ApO.cjs.map +1 -0
  70. package/dist/cjs/index-RjnvS-h4.cjs.map +1 -1
  71. package/dist/cjs/{index-BK8MnCss.cjs → index-TWi3oKMo.cjs} +2 -2
  72. package/dist/cjs/index-TWi3oKMo.cjs.map +1 -0
  73. package/dist/cjs/{index-DBmVCYfK.cjs → index-ZGoUOa5V.cjs} +2 -2
  74. package/dist/cjs/{index-DBmVCYfK.cjs.map → index-ZGoUOa5V.cjs.map} +1 -1
  75. package/dist/cjs/{index-ChvoLKrL.cjs → index-j30omdZn.cjs} +2 -2
  76. package/dist/cjs/index-j30omdZn.cjs.map +1 -0
  77. package/dist/cjs/{index-CN4Rj6Na.cjs → index-phHDGoms.cjs} +2 -2
  78. package/dist/cjs/index-phHDGoms.cjs.map +1 -0
  79. package/dist/cjs/index-tJqqtY57.cjs.map +1 -1
  80. package/dist/cjs/{index-DrKpdqBV.cjs → index-vNHmVMPt.cjs} +3 -3
  81. package/dist/cjs/{index-DrKpdqBV.cjs.map → index-vNHmVMPt.cjs.map} +1 -1
  82. package/dist/cjs/{index-mI3PgWZJ.cjs → index-weLIwAoT.cjs} +3 -3
  83. package/dist/cjs/{index-mI3PgWZJ.cjs.map → index-weLIwAoT.cjs.map} +1 -1
  84. package/dist/cjs/{index-CvHE6ZPf.cjs → index-z8zYH85G.cjs} +9 -10
  85. package/dist/cjs/index-z8zYH85G.cjs.map +1 -0
  86. package/dist/cjs/index.js +3 -1
  87. package/dist/cjs/index.js.map +1 -1
  88. package/dist/cjs/{index.vue_vue_type_script_setup_true_lang-C8mQbE_f.cjs → index.vue_vue_type_script_setup_true_lang-D9yLenYM.cjs} +2 -2
  89. package/dist/cjs/{index.vue_vue_type_script_setup_true_lang-C8mQbE_f.cjs.map → index.vue_vue_type_script_setup_true_lang-D9yLenYM.cjs.map} +1 -1
  90. package/dist/cjs/{json-editor-B1Tcl8VY.cjs → json-editor-4CFMkph7.cjs} +2 -2
  91. package/dist/cjs/json-editor-4CFMkph7.cjs.map +1 -0
  92. package/dist/cjs/{markdown-editor-BW1jNYfM.cjs → markdown-editor-De1onsGh.cjs} +2 -2
  93. package/dist/cjs/markdown-editor-De1onsGh.cjs.map +1 -0
  94. package/dist/cjs/{normal-Bsspj4QK.cjs → normal-BGahUaoQ.cjs} +4 -2
  95. package/dist/cjs/{normal-Bsspj4QK.cjs.map → normal-BGahUaoQ.cjs.map} +1 -1
  96. package/dist/cjs/{normal-CeD-Oud5.cjs → normal-CdX-Z1kF.cjs} +4 -2
  97. package/dist/cjs/{normal-CeD-Oud5.cjs.map → normal-CdX-Z1kF.cjs.map} +1 -1
  98. package/dist/cjs/{permission-manage-B6TKnw0T.cjs → permission-manage-DfLTwZS8.cjs} +5 -3
  99. package/dist/cjs/permission-manage-DfLTwZS8.cjs.map +1 -0
  100. package/dist/cjs/{resource-select-input-FPwFgXzl.cjs → resource-select-input-BAe3ahDC.cjs} +2 -2
  101. package/dist/cjs/{resource-select-input-FPwFgXzl.cjs.map → resource-select-input-BAe3ahDC.cjs.map} +1 -1
  102. package/dist/cjs/style.css +30 -30
  103. package/dist/cjs/{table-DTn-HXFZ.cjs → table-CZgeT7gE.cjs} +4 -2
  104. package/dist/cjs/table-CZgeT7gE.cjs.map +1 -0
  105. package/dist/cjs/use-condition-BsNGbgF4.cjs.map +1 -1
  106. package/dist/esm/{404-C1lIpndy.js → 404-DcBAAs1N.js} +2 -2
  107. package/dist/esm/404-DcBAAs1N.js.map +1 -0
  108. package/dist/esm/{article-edit-add-page-ClytcmO4.js → article-edit-add-page-Dc0vmRaK.js} +5 -3
  109. package/dist/esm/{article-edit-add-page-ClytcmO4.js.map → article-edit-add-page-Dc0vmRaK.js.map} +1 -1
  110. package/dist/esm/{cms-settings-jjd73rEK.js → cms-settings-Dz_GifCM.js} +2 -2
  111. package/dist/esm/{cms-settings-jjd73rEK.js.map → cms-settings-Dz_GifCM.js.map} +1 -1
  112. package/dist/esm/code-editor-CvI_XMp5.js.map +1 -1
  113. package/dist/esm/{dialog-DBVAimvZ.js → dialog-CPKjg0DX.js} +4 -2
  114. package/dist/esm/dialog-CPKjg0DX.js.map +1 -0
  115. package/dist/esm/{dialog-DwwYU6ht.js → dialog-DTQPV-3U.js} +4 -2
  116. package/dist/esm/dialog-DTQPV-3U.js.map +1 -0
  117. package/dist/esm/{dialog-D6rgkM2v.js → dialog-FqmRibM1.js} +4 -2
  118. package/dist/esm/dialog-FqmRibM1.js.map +1 -0
  119. package/dist/esm/{edit-o5nFwY2w.js → edit-B6TCx0BN.js} +4 -2
  120. package/dist/esm/edit-B6TCx0BN.js.map +1 -0
  121. package/dist/esm/{index-z5v336Rn.js → index-3gLHscRe.js} +5 -3
  122. package/dist/esm/{index-z5v336Rn.js.map → index-3gLHscRe.js.map} +1 -1
  123. package/dist/esm/{index-Bdpr5BhD.js → index-4YyShMO2.js} +4 -2
  124. package/dist/esm/index-4YyShMO2.js.map +1 -0
  125. package/dist/esm/{index-Gog2XV76.js → index-B9gvbtvi.js} +2 -2
  126. package/dist/esm/index-B9gvbtvi.js.map +1 -0
  127. package/dist/esm/{index-DLTcz_Lh.js → index-BCB6CWfF.js} +4 -2
  128. package/dist/esm/{index-DLTcz_Lh.js.map → index-BCB6CWfF.js.map} +1 -1
  129. package/dist/esm/{index-D3JpAH_K.js → index-BEpzO-nt.js} +2 -2
  130. package/dist/esm/index-BEpzO-nt.js.map +1 -0
  131. package/dist/esm/{index-C0OV7CMI.js → index-BJ4X4ZCh.js} +4 -2
  132. package/dist/esm/index-BJ4X4ZCh.js.map +1 -0
  133. package/dist/esm/{index-C58Q2T-f.js → index-BMKLnXb8.js} +2 -2
  134. package/dist/esm/index-BMKLnXb8.js.map +1 -0
  135. package/dist/esm/{index-Bk3DoVIM.js → index-BVGJ-lj0.js} +2 -2
  136. package/dist/esm/index-BVGJ-lj0.js.map +1 -0
  137. package/dist/esm/index-C8z_gFCT.js.map +1 -1
  138. package/dist/esm/{index-DBmsWB9D.js → index-CAYL9D_L.js} +4 -2
  139. package/dist/esm/{index-DBmsWB9D.js.map → index-CAYL9D_L.js.map} +1 -1
  140. package/dist/esm/{index-CEIFlqQ6.js → index-CQcGPTKm.js} +2 -2
  141. package/dist/esm/index-CQcGPTKm.js.map +1 -0
  142. package/dist/esm/index-CZs0cX5Z.js.map +1 -1
  143. package/dist/esm/{index-BzC8nFti.js → index-CbUKHq9d.js} +4 -2
  144. package/dist/esm/{index-BzC8nFti.js.map → index-CbUKHq9d.js.map} +1 -1
  145. package/dist/esm/{index-fJ9vuH0d.js → index-CctJKPWt.js} +2 -2
  146. package/dist/esm/index-CctJKPWt.js.map +1 -0
  147. package/dist/esm/{index-DknNVWIH.js → index-CjTw5oMj.js} +903 -881
  148. package/dist/esm/index-CjTw5oMj.js.map +1 -0
  149. package/dist/esm/{index-5yHWO2PM.js → index-Ck__G3dT.js} +2 -2
  150. package/dist/esm/{index-5yHWO2PM.js.map → index-Ck__G3dT.js.map} +1 -1
  151. package/dist/esm/{index-BY1xSjU9.js → index-CmfVxSph.js} +3 -3
  152. package/dist/esm/{index-BY1xSjU9.js.map → index-CmfVxSph.js.map} +1 -1
  153. package/dist/esm/{index-D6Z7Ujhs.js → index-CxiERKgx.js} +2 -2
  154. package/dist/esm/index-CxiERKgx.js.map +1 -0
  155. package/dist/esm/{index-CBNDTPbG.js → index-D5qC56R7.js} +10 -11
  156. package/dist/esm/index-D5qC56R7.js.map +1 -0
  157. package/dist/esm/{index-B07kUUxH.js → index-D6FVWHtq.js} +4 -2
  158. package/dist/esm/index-D6FVWHtq.js.map +1 -0
  159. package/dist/esm/{index-B8tP_Pku.js → index-D7ivtDc3.js} +5 -3
  160. package/dist/esm/{index-B8tP_Pku.js.map → index-D7ivtDc3.js.map} +1 -1
  161. package/dist/esm/{index-wRgJJ7hu.js → index-DNwOf-dv.js} +4 -2
  162. package/dist/esm/{index-wRgJJ7hu.js.map → index-DNwOf-dv.js.map} +1 -1
  163. package/dist/esm/{index-Dqckp6RL.js → index-DVOHWdtM.js} +132 -4
  164. package/dist/esm/index-DVOHWdtM.js.map +1 -0
  165. package/dist/esm/index-DVjlAsMm.js.map +1 -1
  166. package/dist/esm/{index-C2CKP0Ko.js → index-DVtCtPhj.js} +2 -2
  167. package/dist/esm/index-DVtCtPhj.js.map +1 -0
  168. package/dist/esm/{index-BF7lUn1x.js → index-DlVXWdE0.js} +11 -10
  169. package/dist/esm/index-DlVXWdE0.js.map +1 -0
  170. package/dist/esm/index-DofoKQB_.js +213 -0
  171. package/dist/esm/index-DofoKQB_.js.map +1 -0
  172. package/dist/esm/{index-CGAkIBXU.js → index-DomdHZab.js} +3 -3
  173. package/dist/esm/index-DomdHZab.js.map +1 -0
  174. package/dist/esm/{index-Cc0BSacV.js → index-Dvv0k5Vo.js} +2 -2
  175. package/dist/esm/index-Dvv0k5Vo.js.map +1 -0
  176. package/dist/esm/{index-Bg87MBB-.js → index-Dyal-jEY.js} +2 -2
  177. package/dist/esm/index-Dyal-jEY.js.map +1 -0
  178. package/dist/esm/{index-CIfSdmY3.js → index-GBJFK33a.js} +3 -3
  179. package/dist/esm/index-GBJFK33a.js.map +1 -0
  180. package/dist/esm/{index-D9IagxRh.js → index-K8aRp1Ff.js} +2 -2
  181. package/dist/esm/index-K8aRp1Ff.js.map +1 -0
  182. package/dist/esm/{index-DvPP6Wol.js → index-KI9lCmIu.js} +2 -2
  183. package/dist/esm/index-KI9lCmIu.js.map +1 -0
  184. package/dist/esm/index-UGKoGZpd.js.map +1 -1
  185. package/dist/esm/index-WLPh41ZY.js.map +1 -1
  186. package/dist/esm/index-YO7GGbnc.js.map +1 -1
  187. package/dist/esm/{index-BuMWOrRH.js → index-YqbbF-kM.js} +3 -3
  188. package/dist/esm/{index-BuMWOrRH.js.map → index-YqbbF-kM.js.map} +1 -1
  189. package/dist/esm/{index-Co757Yb3.js → index-eTSwO_Y8.js} +2 -2
  190. package/dist/esm/index-eTSwO_Y8.js.map +1 -0
  191. package/dist/esm/index.js +183 -181
  192. package/dist/esm/{index.vue_vue_type_script_setup_true_lang-JlluKuL-.js → index.vue_vue_type_script_setup_true_lang-Da7_JQcB.js} +2 -2
  193. package/dist/esm/{index.vue_vue_type_script_setup_true_lang-JlluKuL-.js.map → index.vue_vue_type_script_setup_true_lang-Da7_JQcB.js.map} +1 -1
  194. package/dist/esm/{json-editor-BT0C5D4u.js → json-editor-BNjpvvZM.js} +2 -2
  195. package/dist/esm/json-editor-BNjpvvZM.js.map +1 -0
  196. package/dist/esm/{markdown-editor-CFcH6yNx.js → markdown-editor-Br91Y0dk.js} +2 -2
  197. package/dist/esm/markdown-editor-Br91Y0dk.js.map +1 -0
  198. package/dist/esm/{normal-UXk824cE.js → normal-5OVhMvLw.js} +4 -2
  199. package/dist/esm/{normal-UXk824cE.js.map → normal-5OVhMvLw.js.map} +1 -1
  200. package/dist/esm/{normal-CT0vCPEg.js → normal-DzIY0NTX.js} +4 -2
  201. package/dist/esm/{normal-CT0vCPEg.js.map → normal-DzIY0NTX.js.map} +1 -1
  202. package/dist/esm/{permission-manage-dCLfCBD9.js → permission-manage-B74eWZu2.js} +5 -3
  203. package/dist/esm/permission-manage-B74eWZu2.js.map +1 -0
  204. package/dist/esm/{resource-select-input-MU3WMOqe.js → resource-select-input-FBr-Yxb5.js} +2 -2
  205. package/dist/esm/{resource-select-input-MU3WMOqe.js.map → resource-select-input-FBr-Yxb5.js.map} +1 -1
  206. package/dist/esm/style.css +30 -30
  207. package/dist/esm/{table-GSEHVDi3.js → table-CDFn1EG8.js} +4 -2
  208. package/dist/esm/table-CDFn1EG8.js.map +1 -0
  209. package/dist/esm/use-condition-CM-TzG8I.js.map +1 -1
  210. package/dist/types/components/data-model/data-form/components/form-detail/form-detail.vue.d.ts +39 -0
  211. package/dist/types/components/data-model/data-form/components/form-detail/index.d.ts +2 -2
  212. package/dist/types/{layouts/new/ui-kit/HDialog.vue.d.ts → components/headless/dialog/dialog.vue.d.ts} +1 -0
  213. package/dist/types/components/headless/dialog/index.d.ts +137 -0
  214. package/dist/types/components/headless/drawer/index.d.ts +144 -0
  215. package/dist/types/components/headless/dropdown/dropdown.vue.d.ts +12 -0
  216. package/dist/types/components/headless/dropdown/index.d.ts +19 -0
  217. package/dist/types/components/headless/index.d.ts +2 -0
  218. package/dist/types/components/headless/tooltip/index.d.ts +69 -0
  219. package/dist/types/components/headless/tooltip/tooltip.vue.d.ts +45 -0
  220. package/dist/types/components/index.d.ts +1 -0
  221. package/dist/types/modules/ms/pages/to-do/ToDoForm.d.ts +8 -0
  222. package/package.json +3 -3
  223. package/dist/cjs/404-C5dmqK1T.cjs.map +0 -1
  224. package/dist/cjs/dialog-9t4PpBq_.cjs.map +0 -1
  225. package/dist/cjs/dialog-DYWmSX78.cjs.map +0 -1
  226. package/dist/cjs/dialog-rl_frDK9.cjs.map +0 -1
  227. package/dist/cjs/edit-YTd9VNsI.cjs.map +0 -1
  228. package/dist/cjs/index-7G4aDLGX.cjs.map +0 -1
  229. package/dist/cjs/index-BGFeVpUZ.cjs.map +0 -1
  230. package/dist/cjs/index-BK8MnCss.cjs.map +0 -1
  231. package/dist/cjs/index-BQjfBtn7.cjs.map +0 -1
  232. package/dist/cjs/index-BSdIPRXO.cjs.map +0 -1
  233. package/dist/cjs/index-BcHCVUXJ.cjs.map +0 -1
  234. package/dist/cjs/index-CALg925z.cjs.map +0 -1
  235. package/dist/cjs/index-CN4Rj6Na.cjs.map +0 -1
  236. package/dist/cjs/index-CVvSVtzA.cjs.map +0 -1
  237. package/dist/cjs/index-Ch0S2DrM.cjs.map +0 -1
  238. package/dist/cjs/index-ChvoLKrL.cjs.map +0 -1
  239. package/dist/cjs/index-CqTnJlET.cjs.map +0 -1
  240. package/dist/cjs/index-CvHE6ZPf.cjs.map +0 -1
  241. package/dist/cjs/index-D3yfcKl6.cjs.map +0 -1
  242. package/dist/cjs/index-D9nmASDU.cjs.map +0 -1
  243. package/dist/cjs/index-DF9tph7D.cjs.map +0 -1
  244. package/dist/cjs/index-DoAWnYyy.cjs.map +0 -1
  245. package/dist/cjs/index-DozqAI-B.cjs +0 -167
  246. package/dist/cjs/index-DozqAI-B.cjs.map +0 -1
  247. package/dist/cjs/index-KKM-xN3u.cjs.map +0 -1
  248. package/dist/cjs/index-P7aJrY9b.cjs.map +0 -1
  249. package/dist/cjs/index-PPh3CcUq.cjs.map +0 -1
  250. package/dist/cjs/index-VgamPuGl.cjs.map +0 -1
  251. package/dist/cjs/index-pzYNuMPD.cjs.map +0 -1
  252. package/dist/cjs/json-editor-B1Tcl8VY.cjs.map +0 -1
  253. package/dist/cjs/markdown-editor-BW1jNYfM.cjs.map +0 -1
  254. package/dist/cjs/permission-manage-B6TKnw0T.cjs.map +0 -1
  255. package/dist/cjs/table-DTn-HXFZ.cjs.map +0 -1
  256. package/dist/esm/404-C1lIpndy.js.map +0 -1
  257. package/dist/esm/dialog-D6rgkM2v.js.map +0 -1
  258. package/dist/esm/dialog-DBVAimvZ.js.map +0 -1
  259. package/dist/esm/dialog-DwwYU6ht.js.map +0 -1
  260. package/dist/esm/edit-o5nFwY2w.js.map +0 -1
  261. package/dist/esm/index-B07kUUxH.js.map +0 -1
  262. package/dist/esm/index-BF7lUn1x.js.map +0 -1
  263. package/dist/esm/index-Bdpr5BhD.js.map +0 -1
  264. package/dist/esm/index-Bg87MBB-.js.map +0 -1
  265. package/dist/esm/index-Bk3DoVIM.js.map +0 -1
  266. package/dist/esm/index-C0OV7CMI.js.map +0 -1
  267. package/dist/esm/index-C2CKP0Ko.js.map +0 -1
  268. package/dist/esm/index-C58Q2T-f.js.map +0 -1
  269. package/dist/esm/index-CBNDTPbG.js.map +0 -1
  270. package/dist/esm/index-CEIFlqQ6.js.map +0 -1
  271. package/dist/esm/index-CGAkIBXU.js.map +0 -1
  272. package/dist/esm/index-CIfSdmY3.js.map +0 -1
  273. package/dist/esm/index-Cc0BSacV.js.map +0 -1
  274. package/dist/esm/index-Co757Yb3.js.map +0 -1
  275. package/dist/esm/index-Cxq2d0cF.js +0 -167
  276. package/dist/esm/index-Cxq2d0cF.js.map +0 -1
  277. package/dist/esm/index-D3JpAH_K.js.map +0 -1
  278. package/dist/esm/index-D6Z7Ujhs.js.map +0 -1
  279. package/dist/esm/index-D9IagxRh.js.map +0 -1
  280. package/dist/esm/index-DknNVWIH.js.map +0 -1
  281. package/dist/esm/index-Dqckp6RL.js.map +0 -1
  282. package/dist/esm/index-DvPP6Wol.js.map +0 -1
  283. package/dist/esm/index-Gog2XV76.js.map +0 -1
  284. package/dist/esm/index-fJ9vuH0d.js.map +0 -1
  285. package/dist/esm/json-editor-BT0C5D4u.js.map +0 -1
  286. package/dist/esm/markdown-editor-CFcH6yNx.js.map +0 -1
  287. package/dist/esm/permission-manage-dCLfCBD9.js.map +0 -1
  288. package/dist/esm/table-GSEHVDi3.js.map +0 -1
  289. package/dist/types/{layouts/new/ui-kit/HSlideover.vue.d.ts → components/headless/drawer/drawer.vue.d.ts} +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-z5v336Rn.js","sources":["../../src/modules/cms/components/part-tree/index.vue","../../src/modules/cms/components/part-tree/index.ts","../../src/modules/cms/pages/cms-contents/components/article-list.vue","../../src/modules/cms/pages/cms-contents/components/part-info.vue","../../src/modules/cms/pages/cms-contents/components/part-banner.vue","../../src/modules/cms/pages/cms-contents/components/part-banner-edit.vue","../../src/modules/cms/pages/cms-contents/index.vue"],"sourcesContent":["<template>\r\n <div class=\"cms-part-tree\">\r\n <div class=\"cms-part-tree__header\">\r\n <div>\r\n <MKSvgIcon name=\"ep:notebook\" />\r\n 栏目\r\n </div>\r\n <el-switch v-model=\"isDrag\" inline-prompt active-text=\"开启排序\"\r\n inactive-text=\"关闭排序\" />\r\n </div>\r\n <div class=\"cms-part-tree__body\">\r\n <ElScrollbar style=\"height: 100%;\">\r\n <MKDataTable :auto-load=\"true\" :data-table=\"dataTree\" highlight-current>\r\n <MKTree :data-tree=\"dataTree\" @nodeClick=\"selectPart\" defaultExpandAll :draggable=\"isDrag\" ref=\"treeRef\" :currentNodeKey=\"selectNodeId\">\r\n <template #node-main=\"{ data }\">\r\n {{ data.data.title }}\r\n </template>\r\n <template #node-tools=\"{ data }\">\r\n <el-dropdown>\r\n <ElIcon>\r\n <MoreFilled />\r\n </ElIcon>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item :icon=\"Edit\" @click=\"handleEditClick(data.data)\">编辑</el-dropdown-item>\r\n <el-dropdown-item :icon=\"Delete\" @click=\"handleDeleteClick(data.data)\">删除</el-dropdown-item>\r\n <el-dropdown-item v-if=\"data.data.cmsPartTypeId != 1\" :icon=\"Plus\"\r\n @click=\"handleAddClick(data.data)\">添加子菜单</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </template>\r\n </MKTree>\r\n </MKDataTable>\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { ElMessageBox, ElScrollbar } from \"element-plus\"\r\nimport { Plus, Edit, Delete, MoreFilled } from \"@element-plus/icons-vue\";\r\nimport { reactive, defineProps, watch, defineEmits, ref } from \"vue\";\r\nimport { MKDataTable, MKTree } from \"../../../../components/data-model/data-table\"\r\nimport { CmsPartTree } from \"../../dataviews\";\r\nimport { useI18n } from \"../../../../composables\";\r\nimport { DataTreeNode } from \"@maketribe/dm\";\r\nimport {MKSvgIcon} from \"../../../../components/basic\";\r\n\r\ndefineOptions({ name: \"MKPartTree\" });\r\nconst treeRef = ref(null);\r\n// 配置选项\r\nconst optionSettings = defineProps<{\r\n curSelectId?:string|undefined\r\n}>();\r\n\r\n// 事件定义\r\nconst emit = defineEmits([\"edit\", \"add\", \"deleteSuccessfully\", \"select\"]);\r\n\r\nconst i18n = useI18n()!;\r\nconst dataTree = reactive(new CmsPartTree()) as CmsPartTree;\r\n\r\nconst isDrag = ref(false)\r\n\r\nconst selectNodeId = ref(optionSettings.curSelectId);\r\n\r\nwatch(()=>optionSettings.curSelectId,()=>{\r\n selectNodeId.value = optionSettings.curSelectId\r\n})\r\n\r\n// 监听数据变化\r\ndataTree.listChangeEvent.on(() => {\r\n\r\n const list = dataTree.getList();\r\n\r\n if (list.length > 0) {\r\n //默认选择第一条\r\n if(!selectNodeId.value){ selectNodeId.value = list[0].id; }\r\n\r\n for(let i=0;i<list.length;i++){\r\n\r\n let item = list[i]\r\n \r\n if(item.id == selectNodeId.value){\r\n emit(\"select\", item);\r\n break;\r\n }\r\n item.children?.forEach((child:any)=>list.push(child))\r\n\r\n }\r\n }\r\n})\r\n\r\n/**\r\n * 点击添加栏目按钮\r\n * @param item \r\n */\r\nconst handleAddClick = (item: any) => {\r\n emit(\"add\", item);\r\n}\r\n\r\n/**\r\n * 编辑栏目\r\n * @param item \r\n */\r\nconst handleEditClick = (item: any) => {\r\n emit(\"edit\", item);\r\n}\r\n/**\r\n * 删除栏目\r\n * @param item \r\n */\r\nconst handleDeleteClick = async (item: any) => {\r\n // 删除提示\r\n const isConfirm = await ElMessageBox.confirm(\r\n i18n.translate(\"mk.dataTablePage.deleteMessage\"),\r\n i18n.translate(\"mk.dataTablePage.deleteTitle\"),\r\n { type: \"warning\" }\r\n )\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n const result = await dataTree.deleteAfterRefresh(item.id);\r\n if (result.data.code == 200) {\r\n emit('deleteSuccessfully', item)\r\n }\r\n}\r\n\r\n/**\r\n * 选择栏目\r\n * @param data \r\n */\r\nconst selectPart = (data: DataTreeNode) => {\r\n emit(\"select\", data.data);\r\n}\r\n\r\ndefineExpose({ dataTree });\r\n\r\n\r\n</script>\r\n","import { withInstall } from \"@maketribe/utils\";\r\nimport PartTree from \"./index.vue\";\r\n\r\nexport const MKPartTree = withInstall(PartTree);\r\nexport default MKPartTree;\r\n","<template>\r\n <MKDataTable :data-table=\"articlesDv\" :auto-load=\"false\" class=\"mk-cms-article-list\">\r\n <el-empty v-if=\"part && part.cmsPartTypeId == 1\" description=\"外链栏目下无文章内容\" />\r\n <MKTableView v-else-if=\"part\" :data-table=\"articlesDv\">\r\n <el-scrollbar class=\"mk-cms-article-list__content\" style=\"box-sizing: border-box;font-size: 0;\"\r\n v-if=\"articlesDv.getList().length > 0\">\r\n <el-card class=\"mk-cms-article-list__item\" v-for=\"article in articlesDv.getList()\" :key=\"article.id\">\r\n <div class=\"mk-cms-article-list__item__content\">\r\n <div class=\"left\">\r\n <el-image class=\"cover-image\" :src=\"article.cover\" fit=\"contain\">\r\n <template #error>\r\n <MKSvgIcon iconClass=\"Picture\" />\r\n </template>\r\n </el-image>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"top\">\r\n <div class=\"title\" :title=\"article.title\"> {{ article.title }}</div>\r\n <div class=\"tags\">\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useTop && article.isTop == 1\"\r\n @click=\"changeArticleStatus(article, 'isTop', 0)\">置顶</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useNew && article.isNew == 1\"\r\n @click=\"changeArticleStatus(article, 'isNew', 0)\">最新</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 0)\">热门推荐</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 0)\">栏目推荐</el-tag>\r\n </div>\r\n </div>\r\n <div class=\"sub-title\" v-if=\"article.subTitle\" :title=\"article.subTitle\"> {{ article.subTitle }}</div>\r\n <div class=\"desc\">\r\n {{ article.desc }}\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"ext\">\r\n <div class=\"author\">\r\n <MKSvgIcon iconClass=\"UserFilled\"></MKSvgIcon>\r\n 作者 : {{ article.author || \"-\" }}\r\n </div>\r\n <div class=\"publish-time\" v-if=\"article.releaseDate\">\r\n <MKSvgIcon iconClass=\"Timer\"></MKSvgIcon>\r\n 新闻日期 : {{ article.releaseDate }}\r\n </div>\r\n </div>\r\n <div class=\"tools\">\r\n <el-button type=\"primary\" size=\"large\" @click=\"editArticleHandle(article)\" text>\r\n 编辑\r\n </el-button>\r\n <el-button type=\"danger\" size=\"large\" @click=\"deleteArticleHandle(article)\" text>\r\n 删除\r\n </el-button>\r\n <!-- <a v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>访问</el-button>\r\n </a> -->\r\n <a :href=\"'/api/cms/content/preview/content/' + article.cmsPartId + '/' + article.id\"\r\n v-if=\"CmsSettings.publish.mode == 'static'\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>预览</el-button>\r\n </a>\r\n <el-dropdown>\r\n <el-button type=\"primary\" size=\"large\" text>\r\n 更多\r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static' && article.url\">\r\n <a style=\"text-decoration: none;color: #606266;\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\"\r\n target=\"_blank\">\r\n 访问\r\n </a>\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"publishArticleHandle(article)\">\r\n 发布\r\n </el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useTop && article.isTop == 0\"\r\n @click=\"changeArticleStatus(article, 'isTop', 1)\">设为置顶</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useNew && article.isNew == 0\"\r\n @click=\"changeArticleStatus(article, 'isNew', 1)\">设为最新</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 1)\">设为热门推荐</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 1)\">设为栏目推荐</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n <el-empty v-if=\"articlesDv.getList().length <= 0\" description=\"暂无文章内容\" />\r\n </MKTableView>\r\n </MKDataTable>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { MKTableView } from \"../../../../../components\"\r\nimport { CmsArticlesTable, CmsArticlesForm } from \"../../../dataviews\"\r\nimport { reactive, defineProps, watch, onMounted } from \"vue\";\r\nimport { Dialoger, isWhereFilter, Messager } from '@maketribe/dm'\r\nimport { useRouter } from \"vue-router\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\n\r\n// 文章\r\nconst articlesDv = reactive(new CmsArticlesTable()) as CmsArticlesTable;\r\n// 发布文章表单\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n// 草稿文章\r\nconst draftArticleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n\r\n// 参数\r\nconst props = defineProps({\r\n part: { type: Object, default: null }\r\n})\r\n\r\nconst router = useRouter();\r\n\r\n//改变文章指定,最新,推荐状态\r\nconst changeArticleStatus = async (article: any, item: string, status: number) => {\r\n const text: Record<string, string[]> = {\r\n \"isTop\": ['取消置顶', '设为置顶'],\r\n \"isNew\": ['取消最新', '设为最新'],\r\n \"isHotRecommend\": ['取消热门推荐', '设为热门推荐'],\r\n \"isPartRecommend\": ['取消栏目推荐', '设为栏目推荐'],\r\n }\r\n\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"修改文章状态\",\r\n message: `是否${text[item][status]}?`,\r\n type: \"warning\"\r\n })\r\n if (!isConfirm) {\r\n return\r\n }\r\n try {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n await articleForm.editRecord(article.id)\r\n const isSuccess = await articleForm.simpleSubmit({\r\n id: article.id,\r\n [item]: status\r\n })\r\n\r\n if (isSuccess) {\r\n articlesDv.load();\r\n }\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n\r\n\r\n}\r\n\r\n// 初始化\r\nonMounted(() => {\r\n articleForm.init();\r\n draftArticleForm.init();\r\n\r\n // 监听栏目数据变化\r\n watch(() => props.part, (item: any) => {\r\n if (item.cmsPartTypeId != 1) {\r\n \r\n const dataFilter = articlesDv.dataFilter;\r\n\r\n if (isWhereFilter(dataFilter)) {\r\n\r\n const defaultGroup = dataFilter.getDefaultGroup();\r\n\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"cmsPartId\", \"=\", item.id);\r\n // 只查草稿\r\n defaultGroup.addCondition(\"isDraft\", \"=\", 1);\r\n }\r\n\r\n articlesDv.load()\r\n }\r\n }, { immediate: true })\r\n})\r\n\r\n/**\r\n * 删除文章\r\n */\r\nconst deleteArticleHandle = async (item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"删除文章?\",\r\n message: \"是否删除文章?\",\r\n type: \"warning\"\r\n })\r\n\r\n if (!isConfirm) { return; }\r\n await articlesDv.deleteAfterRefresh(item.id);\r\n}\r\n\r\n/**\r\n * 编辑文章\r\n */\r\nconst editArticleHandle = (item: any, isEdit = false) => {\r\n router.push({ path: \"/cms/article\", query: { id: isEdit ? undefined : item.id, partId: isEdit ? item.id : undefined } })\r\n}\r\n\r\n// 添加记录\r\narticlesDv.addRecordEvent.on(() => editArticleHandle(props.part, true))\r\n\r\n/**\r\n * fault文章\r\n * @param article \r\n */\r\nconst publishArticleHandle = async (article: any) => {\r\n\r\n try {\r\n\r\n if (await Dialoger.confirm({ title: \"文章发布\", message: \"是否发布文章?\", type: \"warning\" })) {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n\r\n // 调用发布接口\r\n const response: any = await CmsArticlesForm.publish(CmsSettings.publish.mode, article.cmsPartId, article.id);\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n Messager.success({ message: \"发布成功\" });\r\n }\r\n\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n}\r\n\r\n\r\n</script>\r\n","<template>\r\n <div class=\"mk-cms-part-info\">\r\n <MKDataForm :dataForm=\"partDataForm\" style=\"height: 100%;\">\r\n <MKForm :dataForm=\"partDataForm\">\r\n <div class=\"mk-cms-part-info__body__form\">\r\n <div class=\"mk-cms-part-info__body__form-options\">\r\n <ElScrollbar>\r\n <MKDataFormItem name=\"cmsPartTypeId\" v-if=\"hideHandle('cmsPartTypeId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"parentId\" v-if=\"hideHandle('parentId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"cmsCoverArticleId\" v-if=\"hideHandle('cmsCoverArticleId')\">\r\n </MKDataFormItem>\r\n <MKDataFormItem name=\"title\" v-if=\"hideHandle('title')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"name\" v-if=\"hideHandle('name')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"externalLink\" v-if=\"hideHandle('externalLink')\">\r\n </MKDataFormItem>\r\n <el-row :gutter=\"22\" justify=\"space-between\">\r\n <el-col :span=\"10\" v-if=\"hideHandle('isShowMenu')\">\r\n <MKDataFormItem name=\"isShowMenu\"></MKDataFormItem>\r\n </el-col>\r\n <el-col :span=\"10\" v-if=\"hideHandle('isHome')\">\r\n <MKDataFormItem name=\"isHome\"></MKDataFormItem>\r\n </el-col>\r\n </el-row>\r\n <template v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverRouter')\">路由配置</el-divider>\r\n <MKDataFormItem name=\"coverRouter\" v-if=\"hideHandle('coverRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listRouter\" v-if=\"hideHandle('listRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentRouter\" v-if=\"hideHandle('contentRouter')\"></MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverTemplate')\">模版配置</el-divider>\r\n <MKDataFormItem name=\"coverTemplate\" v-if=\"hideHandle('coverTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listTemplate\" v-if=\"hideHandle('listTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentTemplate\" v-if=\"hideHandle('contentTemplate')\">\r\n </MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('seoKeywords')\">SEO</el-divider>\r\n <MKDataFormItem name=\"seoKeywords\" v-if=\"hideHandle('seoKeywords')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"seoDesc\" v-if=\"hideHandle('seoDesc')\"></MKDataFormItem>\r\n </template>\r\n \r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../../components\";\r\nimport { CmsPartForm } from \"../../../dataviews/cms-parts/CmsPartForm\";\r\nimport { computed, reactive, Ref, watch } from \"vue\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\nconst props = defineProps({\r\n part: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n partDataForm: {\r\n type: CmsPartForm,\r\n default: () => {\r\n return new CmsPartForm()\r\n }\r\n }\r\n})\r\n\r\n//监听保存成功事件\r\n// props.partDataForm.submittedEvent.on(() => {\r\n// props.partDataForm.editRecord(props.part.id)\r\n// })\r\n\r\n/**\r\n * 需要隐藏的行\r\n */\r\nconst hideHandle = (name: string) => {\r\n if (props.partDataForm.data.cmsPartTypeId == 1 && CmsPartForm.outerChainHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 2 && CmsPartForm.contentHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 3 && CmsPartForm.menuHideColumn.includes(name)) {\r\n props.partDataForm.data.isShowMenu = 1;\r\n return false;\r\n } \r\n else {\r\n return true;\r\n }\r\n}\r\n\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n","<template>\r\n <div v-loading=\"loading\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" :height=\"partAdBannerHeight\"\r\n arrow=\"always\" ref=\"carouselRef\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\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\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdContentHandle(item.id)\">\r\n 编辑当前轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加新轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"danger\" style=\"margin-left: 10px;\" :icon=\"Delete\" @click=\"deleteAdContentHandle(item.id)\">\r\n 删除当前素材\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n <el-empty v-else :image-size=\"80\" :style=\"{ height: partAdBannerHeight }\">\r\n <template #description>\r\n <el-text>暂无{{ title }}轮播素材数据</el-text>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加\r\n </el-button>\r\n </template>\r\n </el-empty>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport { onMounted, reactive, ref, watch, defineProps, computed } from \"vue\";\r\nimport { DataViewRequest, DVQueryable, Where } from \"@maketribe/request\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../../dataviews\";\r\nimport { EditPen, Plus, Delete } from \"@element-plus/icons-vue\"\r\n\r\nconst props = defineProps({ adkey: { type: String }, title: { type: String }, deviceValue: { type: String, default: \"\" }, viewWidth: { type: Number } })\r\n\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\nconst adContentRequest = new DataViewRequest({ name: \"ad-content\", moduleName: \"cms\" });\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\n// 栏目广告\r\nconst partAdBanner = ref<any | null>(null);\r\nconst loading = ref(true);\r\nconst adContentForm = reactive<CmsAdContentsForm>(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }))\r\nconst adDefineForm = reactive<CmsAdDefinesForm>(new CmsAdDefinesForm())\r\nconst warpRef = ref<any | null>(null);\r\n// 计算广告的高度\r\nconst partAdBannerHeight = computed(() => {\r\n\r\n // 全局Banner尺寸信息\r\n const sizes = cmsSettings.part.bannerImageSize.split(\"*\") as Array<any>;\r\n\r\n // 宽高比\r\n let widthHeightRatio = 0;\r\n\r\n //设定的比例\r\n if (!!partAdBanner.value?.width && !!partAdBanner.value?.height) {\r\n widthHeightRatio = partAdBanner.value.width / partAdBanner.value.height;\r\n }\r\n else if (sizes.length && sizes[0] && sizes[1]) {\r\n widthHeightRatio = sizes[0] / sizes[1]\r\n }\r\n\r\n if (widthHeightRatio && props.viewWidth) { return (props.viewWidth / widthHeightRatio) + \"px\" }\r\n\r\n return \"240px\"\r\n\r\n})\r\n\r\n// 内容添加之前监测广告是否存在不存在先添加广告\r\nadContentForm.beforeSubmitEvent.on(async ({ data }) => {\r\n\r\n if (partAdBanner.value) {\r\n data.adDefineId = partAdBanner.value.id as any;\r\n }\r\n else {\r\n try {\r\n\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n // 添加广告\r\n const result = await adRequest.add({ key: props.adkey, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] })\r\n\r\n if (result.data.code == 200) {\r\n partAdBanner.value = { id: result.data.data as string }\r\n data.adDefineId = result.data.data;\r\n }\r\n\r\n } catch (error) {\r\n Messager.error({ message: \"添加失败!\" });\r\n }\r\n }\r\n\r\n})\r\n\r\n//提交判断是否存在,判断更新还是添加\r\nadDefineForm.formatSubmitData = ((data) => {\r\n if (partAdBanner.value) {\r\n data.id = partAdBanner.value.id as any;\r\n } else {\r\n data.key = props.adkey\r\n data.desc = `${props.title}的Banner`\r\n }\r\n return data\r\n})\r\n\r\n// 添加完成则刷新\r\nadContentForm.submittedEvent.on(() => loadPartAdDefineData())\r\n// 添加完成则刷新\r\nadDefineForm.submittedEvent.on(() => loadPartAdDefineData())\r\n\r\n//加载栏目广告\r\nconst loadPartAdDefineData = async () => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n const where = new Where()\r\n where.addCondition(\"key\", \"=\", props.adkey);\r\n // 加载广告定义\r\n partAdBanner.value = (await adRequest.query({\r\n data: {\r\n pn: 1,\r\n pc: 1000000,\r\n condition: where\r\n }\r\n })).data.data?.[0] ?? null;\r\n\r\n if (partAdBanner.value?.width && partAdBanner.value?.width) {\r\n adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`)\r\n }\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\n//显示栏目广告的编辑弹窗\r\nconst showAdContentHandle = async (id: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: id\r\n })\r\n}\r\n\r\n//显示栏目广告定义的编辑弹窗\r\nconst showAdDefineHandle = async () => {\r\n await Dialoger.dataFormDialog({\r\n title: \"设置素材显示尺寸\",\r\n dataForm: adDefineForm as CmsAdDefinesForm,\r\n recId: partAdBanner.value?.id\r\n })\r\n adDefineForm.getColumn(\"contents\")!.visible = false;\r\n adDefineForm.getColumn(\"key\")!.visible = false;\r\n adDefineForm.getColumn(\"desc\")!.visible = false;\r\n}\r\n\r\nconst deleteAdContentHandle = async (id: any) => {\r\n try {\r\n const isConfirm = await Dialoger.confirm({ title: \"确定删除?\", message: \"确定删除当前轮播吗?\", type: \"warning\" })\r\n if (!isConfirm) return;\r\n const result = await adContentRequest.delete(id)\r\n if (result.data.code != 200) {\r\n Messager.error({ message: result.data.msg || \"删除失败!\" })\r\n return\r\n };\r\n loadPartAdDefineData()\r\n } catch (error) {\r\n Messager.error({ message: \"删除失败!\" })\r\n }\r\n}\r\n\r\n// 组件挂载的时候\r\nonMounted(() => {\r\n watch(() => props.adkey, () => loadPartAdDefineData(), { immediate: true })\r\n})\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n","<template>\r\n <div class=\"mk-cms-part-banner__warp\" v-if=\"cmsSettings.part.openBanner\" ref=\"warpElRef\">\r\n <el-tabs v-model=\"activePartAdType\">\r\n <el-tab-pane label=\"PC端\" name=\"pc\" v-if=\"cmsSettings.devices.includes('pc')\">\r\n <PartBannerComponent :adkey=\"`part_${partId}`\" :title=\"`${title}PC端`\" :viewWidth=\"warpElRef?.offsetWidth\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"移动端\" name=\"mobile\" v-if=\"cmsSettings.devices.includes('mobile')\">\r\n <PartBannerComponent :adkey=\"`part_${partId}_mobile`\" :title=\"`${title}移动端`\" :viewWidth=\"750\"\r\n style=\"max-width: 750px;margin: auto;\" />\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { ref, defineProps } from \"vue\"\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport PartBannerComponent from \"./part-banner.vue\"\r\n\r\ndefineProps({ partId: { type: String }, title: { type: String } })\r\n\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\nconsole.log(cmsSettings.devices);\r\n// cms 配置\r\nconst warpElRef = ref<any>()\r\n// 栏目广告\r\nconst activePartAdType = ref(cmsSettings.devices[0])\r\n\r\n</script>\r\n","<template>\r\n <div class=\"mk-cms-contents__warp\" v-loading=\"loading\">\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=\"f7:doc-richtext\" m=\"r-[5px]\"/>\r\n 内容管理\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div class=\"flex items-center\">\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text v-if=\"CmsSettings.publish.mode == 'static'\"\r\n @click=\"publishAllPartHandle\">\r\n <MKSvgIcon name=\"ep:promotion\" m=\"r-[10]x\"/>\r\n 整站发布\r\n </el-button>\r\n <el-button type=\"primary\" size=\"large\" text @click=\"showPartFormHandle\">\r\n <MKSvgIcon name=\"ep:plus\" m=\"r-[10]x\"/>\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-contents__body\">\r\n <MKPartTree class=\"mk-cms-contents__body__left\" @select=\"selectPartHandle\" @edit=\"editPartHandle\"\r\n @add=\"showPartFormHandle\" @deleteSuccessfully=\"deletePartHandle\" ref=\"partTreeRef\"\r\n :curSelectId=\"curSelectPartId\" />\r\n <el-tabs v-if=\"curSelectPartItem\" v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <div class=\"mk-cms-contents__body__right__action\">\r\n\r\n <template v-for=\"(ext, i) in partExList\" :label=\"ext.title || `页面扩展设置 ${i+1}`\" :name=\"\">\r\n <el-button type=\"primary\" text @click=\"ext.save()\" v-if=\"activeTabName == `part-ext${i}` && ext.save\">\r\n <MKSvgIcon name=\"carbon:save\" m=\"r-[5px]\" />\r\n 保存{{ ext.title }}\r\n </el-button>\r\n </template>\r\n <template v-if=\"activeTabName == 'part' || (activeTabName == 'part-content' && !partContentExtension?.component)\">\r\n <el-button type=\"primary\" text @click=\"savePartHandle()\" :disabled=\"!partDataForm?.isChanged\">\r\n <MKSvgIcon name=\"carbon:save\" m=\"r-[5px]\" />\r\n 保存\r\n </el-button>\r\n </template>\r\n <el-dropdown\r\n v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate || curSelectPartItem.listTemplate || curSelectPartItem.contentTemplate\">\r\n <span class=\"el-dropdown-link\">\r\n <el-button type=\"primary\" text>\r\n <MKSvgIcon name=\"ep:more-filled\" />\r\n </el-button>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item @click=\"previewHandle()\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate\">\r\n <MKSvgIcon name=\"ep:view\" m=\"l-[10px]\" />\r\n 预览封面\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"previewHandle(1)\"\r\n v-if=\"curSelectPartItem.listTemplate\">\r\n <MKSvgIcon name=\"ep:view\" m=\"l-[10px]\" />\r\n 预览列表\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"showPublish = true\">\r\n <MKSvgIcon name=\"ep:promotion\" m=\"l-[10px]\" />\r\n 发布当前栏目\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n <el-tab-pane label=\"文章列表\" name=\"article-list\" v-if=\"curSelectPartItem.contentTemplate\">\r\n <ArticleList v-if=\"activeTabName == 'article-list'\" :part=\"curSelectPartItem\" style=\"height: 99%;\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\" v-loading=\"partDataForm.loading\">\r\n <PartInfo v-if=\"activeTabName == 'part'\" :part=\"curSelectPartItem\" ref=\"partInfoRef\"\r\n :partDataForm=\"partDataForm\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面内容\" name=\"part-content\" style=\"background-color: #f4f4f4\"\r\n v-if=\"curSelectPartItem.cmsPartTypeId != 1\">\r\n <!-- 存在内容扩展配置 -->\r\n <template v-if=\"partContentExtension && activeTabName == 'part-content'\">\r\n\r\n <!-- 都自定义扩展的话 -->\r\n <template v-if=\"partContentExtension.component && partContentExtension.adComponent\">\r\n <div style=\"background: #fff;margin-top: -10px;padding: 10px;box-sizing: border-box;\">\r\n <component :is=\"partContentExtension.adComponent\" />\r\n </div>\r\n <div style=\"background: #fff;\">\r\n <component :is=\"partContentExtension.component\" />\r\n </div>\r\n </template>\r\n <!-- 只扩展内容 -->\r\n <template v-if=\"partContentExtension.component && !partContentExtension.adComponent\">\r\n <PartBannerEdit v-if=\"partDataForm.data?.id\" :partId=\"partDataForm.data?.id\" :title=\"partDataForm.data?.title\" />\r\n <div style=\"background: #fff;margin-top: -10px;padding: 10px;box-sizing: border-box;\" v-if=\"partContentExtension.component\">\r\n <component :is=\"partContentExtension.component\" />\r\n </div>\r\n </template>\r\n <!-- 只扩展栏目广告栏 -->\r\n <template v-if=\"!partContentExtension.component && partContentExtension.adComponent\">\r\n <MKDocEditor :css=\"CmsSettings.part.doc.css\" :js=\"CmsSettings.part.doc.js\" :loading=\"partDataForm.loading\" namespace=\"cms-part\"\r\n :modelValue=\"partDataForm.data?.content\" placeholder=\"从这里开始写正文...\" @update:modelValue=\"docEditorChangeHandle\">\r\n <template #before-extentions>\r\n <div style=\"background: #fff;margin-bottom: 10px;\">\r\n <component :is=\"partContentExtension.adComponent\" />\r\n </div>\r\n </template>\r\n </MKDocEditor>\r\n </template>\r\n \r\n </template>\r\n\r\n <template v-else-if=\"activeTabName == 'part-content'\">\r\n <MKDocEditor :css=\"CmsSettings.part.doc.css\" :js=\"CmsSettings.part.doc.js\" :loading=\"partDataForm.loading\" namespace=\"cms-part\"\r\n :modelValue=\"partDataForm.data?.content\" @update:modelValue=\"docEditorChangeHandle\" placeholder=\"从这里开始写正文...\">\r\n <template #before-extentions>\r\n <PartBannerEdit v-if=\"partDataForm.data?.id\" :partId=\"partDataForm.data?.id\"\r\n :title=\"partDataForm.data?.title\" />\r\n </template>\r\n </MKDocEditor>\r\n </template>\r\n\r\n </el-tab-pane>\r\n <el-tab-pane v-for=\"(ext, i) in partExList\" :label=\"ext.title || `页面扩展设置 ${i == 0 ? '' : i}`\" :name=\"`part-ext${i}`\">\r\n <component :is=\"ext.component\" />\r\n </el-tab-pane>\r\n\r\n </el-tabs>\r\n <el-empty v-else description=\"请选择栏目\" style=\"width: 100%\" />\r\n </div>\r\n <el-dialog v-model=\"showPublish\" title=\"栏目发布\" width=\"475px\" :append-to-body=\"false\">\r\n <div class=\"mk-cms-contents__publish\">\r\n <div><span>是否发布列表:</span> <el-switch v-model=\"optionData.isPublishList\"\r\n :disabled=\"!curSelectPartItem.listTemplate\" /></div>\r\n <div><span>是否发布封面:</span> <el-switch v-model=\"optionData.isPublishCover\"\r\n :disabled=\"!curSelectPartItem.coverTemplate\" /></div>\r\n <div><span>是否发布内容:</span> <el-switch v-model=\"optionData.isPublishContent\"\r\n :disabled=\"!curSelectPartItem.contentTemplate\" /></div>\r\n <div><span>是否发布资源:</span> <el-switch v-model=\"optionData.isPublishAssets\" /></div>\r\n <div><span>是否强制发布:</span> <el-switch v-model=\"optionData.isCompulsion\" /></div>\r\n </div>\r\n <template #footer>\r\n <el-button @click=\"showPublish = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"publishPartHandle\" :loading=\"publishLoading\">确定</el-button>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { MKPartTree } from \"../../components\";\r\nimport ArticleList from \"./components/article-list.vue\";\r\nimport PartInfo from \"./components/part-info.vue\";\r\nimport PartBannerEdit from \"./components/part-banner-edit.vue\";\r\nimport { MKDocEditor } from \"../../../../components\";\r\nimport { reactive, ref,shallowRef, watch, watchEffect } from \"vue\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsContentManPartForm, CmsPartForm, CmsPartMiniForm } from \"../../dataviews/cms-parts\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { usePartExtensionList, usePartContentComponent, type PartExtension } from \"../../composables/part-extensions\"\r\nimport { ElSwitch } from \"element-plus\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\nimport {MKSvgIcon} from \"../../../../components/basic\";\r\n//路由 \r\nconst route = useRoute();\r\nconst router = useRouter();\r\n\r\n// 当前选中的栏目id\r\nconst curSelectPartId = ref<string>(route.query.pid as string)\r\nwatch(() => route.query.pid, (v: any) => {\r\n curSelectPartId.value = v\r\n}, { immediate: true });\r\n\r\n//栏目Mini表单\r\nconst partMiniForm = reactive<CmsPartMiniForm>(new CmsPartMiniForm());\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\n//发布栏目时的配置\r\nconst showPublish = ref(false)\r\n\r\n//发布配置项\r\nconst optionData = ref({\r\n isPublishList: false,\r\n isPublishCover: false,\r\n isPublishContent: false,\r\n isPublishAssets: false,\r\n isCompulsion: true\r\n});\r\n\r\n//发布加载状态\r\nconst publishLoading = ref(false);\r\n\r\n// 数据加载状态\r\nconst loading = ref(false)\r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"article-list\");\r\n\r\n// 当前选中的菜单\r\nconst curSelectPartItem = ref(null as any);\r\n\r\n// 栏目树ref\r\nconst partTreeRef = ref(null);\r\n\r\n//栏目扩展\r\nconst partExList = shallowRef<Array<PartExtension>>([]);\r\nconst partContentExtension = shallowRef<any>(null)\r\n\r\n//栏目数据\r\nconst partDataForm = reactive(new CmsContentManPartForm()) as CmsContentManPartForm;\r\n\r\n// 初始化表单\r\npartDataForm.init();\r\n\r\n// 切换tab 加载栏目表单数据\r\nlet beforeInitFormPart: any = null;\r\nwatchEffect(async () => {\r\n if ((activeTabName.value == \"part\" || activeTabName.value == \"part-content\") && curSelectPartItem.value != beforeInitFormPart && curSelectPartItem.value) {\r\n try {\r\n beforeInitFormPart = curSelectPartItem.value;\r\n await partDataForm.editRecord(curSelectPartItem.value.id);\r\n } catch (error) {\r\n console.log(132)\r\n console.log(error)\r\n }\r\n }\r\n});\r\n\r\n// 选择栏目\r\nconst selectPartHandle = async (item: any) => {\r\n\r\n if (curSelectPartItem.value != item) {\r\n\r\n curSelectPartItem.value = item;\r\n\r\n if (!curSelectPartItem.value.contentTemplate) {\r\n activeTabName.value = \"part\";\r\n }\r\n else {\r\n activeTabName.value = \"article-list\";\r\n }\r\n router.replace({ name: 'cms/contents', query: { pid: curSelectPartItem.value.id } } as any)\r\n partExList.value = usePartExtensionList(curSelectPartItem.value.id).concat(usePartExtensionList(curSelectPartItem.value.name));\r\n partContentExtension.value = usePartContentComponent(curSelectPartItem.value.id) || usePartContentComponent(curSelectPartItem.value.name)\r\n }\r\n};\r\n\r\n//删除栏目\r\nconst deletePartHandle = (item: any) => {\r\n if (item.id == curSelectPartItem.value.id) {\r\n curSelectPartItem.value = null;\r\n }\r\n};\r\n\r\n//编辑栏目\r\nconst editPartHandle = (item: any) => {\r\n curSelectPartItem.value = item;\r\n activeTabName.value = \"part\";\r\n};\r\n\r\n/**\r\n * 显示添加栏目表单\r\n */\r\nconst showPartFormHandle = async (item?: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: partMiniForm as CmsContentManPartForm,\r\n });\r\n\r\n if (item.id) {\r\n partMiniForm.addRecord({ parentId: item.id });\r\n }\r\n\r\n};\r\n\r\nwatch(showPublish, async (v) => {\r\n if (v) {\r\n console.log(2)\r\n optionData.value.isPublishList = !!curSelectPartItem.value.listTemplate\r\n optionData.value.isPublishCover = !!curSelectPartItem.value.coverTemplate\r\n optionData.value.isPublishContent = !!curSelectPartItem.value.contentTemplate\r\n }\r\n})\r\n\r\n//监听表单完成事件\r\npartMiniForm.submittedEvent.on(({ response }: any) => {\r\n if (response.data.data) {\r\n // 重置选中\r\n curSelectPartId.value = response.data.data;\r\n // 刷新完成直接选中\r\n (partTreeRef.value! as any).dataTree?.load();\r\n }\r\n\r\n});\r\n\r\n//栏目发布\r\nconst publishAllPartHandle = async () => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n\r\n await CmsPartForm.publishAll()\r\n }\r\n finally {\r\n loading.value = false;\r\n }\r\n\r\n}\r\nconst publishPartHandle = async () => {\r\n\r\n try {\r\n //表单未保存,默认保存\r\n try{\r\n if(partDataForm.isChanged){\r\n await savePartHandle()\r\n }\r\n }catch{\r\n Messager.error({\r\n message:\"保存失败\"\r\n })\r\n return \r\n }\r\n\r\n publishLoading.value = true\r\n\r\n await CmsPartForm.publish(curSelectPartItem.value.id, optionData.value);\r\n\r\n showPublish.value = false;\r\n\r\n } finally {\r\n publishLoading.value = false\r\n }\r\n}\r\n\r\n/**\r\n * 预览\r\n */\r\nconst previewHandle =async (num?:string|number)=>{\r\n if(partDataForm.isChanged){\r\n await savePartHandle()\r\n }\r\n if(num){\r\n CmsPartForm.openPreview(curSelectPartItem.value.id, '1')\r\n }else{\r\n CmsPartForm.openPreview(curSelectPartItem.value.id)\r\n }\r\n}\r\n\r\n/**\r\n * 保存栏目信息\r\n */\r\nconst savePartHandle = async () => {\r\n curSelectPartItem.value = partDataForm.data;\r\n await partDataForm.submit();\r\n}\r\n\r\n/**\r\n * 更新编辑器内容\r\n * @param v 内容\r\n */\r\nconst docEditorChangeHandle = (v: any) => {\r\n if(partDataForm.data){\r\n partDataForm.data.content = v\r\n }\r\n}\r\n</script>\r\n"],"names":["PartTree"],"mappings":"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"}
1
+ {"version":3,"file":"index-3gLHscRe.js","sources":["../../src/modules/cms/components/part-tree/index.vue","../../src/modules/cms/components/part-tree/index.ts","../../src/modules/cms/pages/cms-contents/components/article-list.vue","../../src/modules/cms/pages/cms-contents/components/part-info.vue","../../src/modules/cms/pages/cms-contents/components/part-banner.vue","../../src/modules/cms/pages/cms-contents/components/part-banner-edit.vue","../../src/modules/cms/pages/cms-contents/index.vue"],"sourcesContent":["<template>\r\n <div class=\"cms-part-tree\">\r\n <div class=\"cms-part-tree__header\">\r\n <div>\r\n <MKSvgIcon name=\"ep:notebook\" />\r\n 栏目\r\n </div>\r\n <el-switch v-model=\"isDrag\" inline-prompt active-text=\"开启排序\"\r\n inactive-text=\"关闭排序\" />\r\n </div>\r\n <div class=\"cms-part-tree__body\">\r\n <ElScrollbar style=\"height: 100%;\">\r\n <MKDataTable :auto-load=\"true\" :data-table=\"dataTree\" highlight-current>\r\n <MKTree :data-tree=\"dataTree\" @nodeClick=\"selectPart\" defaultExpandAll :draggable=\"isDrag\" ref=\"treeRef\" :currentNodeKey=\"selectNodeId\">\r\n <template #node-main=\"{ data }\">\r\n {{ data.data.title }}\r\n </template>\r\n <template #node-tools=\"{ data }\">\r\n <el-dropdown>\r\n <ElIcon>\r\n <MoreFilled />\r\n </ElIcon>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item :icon=\"Edit\" @click=\"handleEditClick(data.data)\">编辑</el-dropdown-item>\r\n <el-dropdown-item :icon=\"Delete\" @click=\"handleDeleteClick(data.data)\">删除</el-dropdown-item>\r\n <el-dropdown-item v-if=\"data.data.cmsPartTypeId != 1\" :icon=\"Plus\"\r\n @click=\"handleAddClick(data.data)\">添加子菜单</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </template>\r\n </MKTree>\r\n </MKDataTable>\r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { ElMessageBox, ElScrollbar } from \"element-plus\"\r\nimport { Plus, Edit, Delete, MoreFilled } from \"@element-plus/icons-vue\";\r\nimport { reactive, defineProps, watch, defineEmits, ref } from \"vue\";\r\nimport { MKDataTable, MKTree } from \"../../../../components/data-model/data-table\"\r\nimport { CmsPartTree } from \"../../dataviews\";\r\nimport { useI18n } from \"../../../../composables\";\r\nimport { DataTreeNode } from \"@maketribe/dm\";\r\nimport {MKSvgIcon} from \"../../../../components/basic\";\r\n\r\ndefineOptions({ name: \"MKPartTree\" });\r\nconst treeRef = ref(null);\r\n// 配置选项\r\nconst optionSettings = defineProps<{\r\n curSelectId?:string|undefined\r\n}>();\r\n\r\n// 事件定义\r\nconst emit = defineEmits([\"edit\", \"add\", \"deleteSuccessfully\", \"select\"]);\r\n\r\nconst i18n = useI18n()!;\r\nconst dataTree = reactive(new CmsPartTree()) as CmsPartTree;\r\n\r\nconst isDrag = ref(false)\r\n\r\nconst selectNodeId = ref(optionSettings.curSelectId);\r\n\r\nwatch(()=>optionSettings.curSelectId,()=>{\r\n selectNodeId.value = optionSettings.curSelectId\r\n})\r\n\r\n// 监听数据变化\r\ndataTree.listChangeEvent.on(() => {\r\n\r\n const list = dataTree.getList();\r\n\r\n if (list.length > 0) {\r\n //默认选择第一条\r\n if(!selectNodeId.value){ selectNodeId.value = list[0].id; }\r\n\r\n for(let i=0;i<list.length;i++){\r\n\r\n let item = list[i]\r\n \r\n if(item.id == selectNodeId.value){\r\n emit(\"select\", item);\r\n break;\r\n }\r\n item.children?.forEach((child:any)=>list.push(child))\r\n\r\n }\r\n }\r\n})\r\n\r\n/**\r\n * 点击添加栏目按钮\r\n * @param item \r\n */\r\nconst handleAddClick = (item: any) => {\r\n emit(\"add\", item);\r\n}\r\n\r\n/**\r\n * 编辑栏目\r\n * @param item \r\n */\r\nconst handleEditClick = (item: any) => {\r\n emit(\"edit\", item);\r\n}\r\n/**\r\n * 删除栏目\r\n * @param item \r\n */\r\nconst handleDeleteClick = async (item: any) => {\r\n // 删除提示\r\n const isConfirm = await ElMessageBox.confirm(\r\n i18n.translate(\"mk.dataTablePage.deleteMessage\"),\r\n i18n.translate(\"mk.dataTablePage.deleteTitle\"),\r\n { type: \"warning\" }\r\n )\r\n\r\n if (!isConfirm) {\r\n return;\r\n }\r\n const result = await dataTree.deleteAfterRefresh(item.id);\r\n if (result.data.code == 200) {\r\n emit('deleteSuccessfully', item)\r\n }\r\n}\r\n\r\n/**\r\n * 选择栏目\r\n * @param data \r\n */\r\nconst selectPart = (data: DataTreeNode) => {\r\n emit(\"select\", data.data);\r\n}\r\n\r\ndefineExpose({ dataTree });\r\n\r\n\r\n</script>\r\n","import { withInstall } from \"@maketribe/utils\";\r\nimport PartTree from \"./index.vue\";\r\n\r\nexport const MKPartTree = withInstall(PartTree);\r\nexport default MKPartTree;\r\n","<template>\r\n <MKDataTable :data-table=\"articlesDv\" :auto-load=\"false\" class=\"mk-cms-article-list\">\r\n <el-empty v-if=\"part && part.cmsPartTypeId == 1\" description=\"外链栏目下无文章内容\" />\r\n <MKTableView v-else-if=\"part\" :data-table=\"articlesDv\">\r\n <el-scrollbar class=\"mk-cms-article-list__content\" style=\"box-sizing: border-box;font-size: 0;\"\r\n v-if=\"articlesDv.getList().length > 0\">\r\n <el-card class=\"mk-cms-article-list__item\" v-for=\"article in articlesDv.getList()\" :key=\"article.id\">\r\n <div class=\"mk-cms-article-list__item__content\">\r\n <div class=\"left\">\r\n <el-image class=\"cover-image\" :src=\"article.cover\" fit=\"contain\">\r\n <template #error>\r\n <MKSvgIcon iconClass=\"Picture\" />\r\n </template>\r\n </el-image>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"top\">\r\n <div class=\"title\" :title=\"article.title\"> {{ article.title }}</div>\r\n <div class=\"tags\">\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useTop && article.isTop == 1\"\r\n @click=\"changeArticleStatus(article, 'isTop', 0)\">置顶</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useNew && article.isNew == 1\"\r\n @click=\"changeArticleStatus(article, 'isNew', 0)\">最新</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 0)\">热门推荐</el-tag>\r\n <el-tag class=\"tag\" v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 1\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 0)\">栏目推荐</el-tag>\r\n </div>\r\n </div>\r\n <div class=\"sub-title\" v-if=\"article.subTitle\" :title=\"article.subTitle\"> {{ article.subTitle }}</div>\r\n <div class=\"desc\">\r\n {{ article.desc }}\r\n </div>\r\n <div class=\"footer\">\r\n <div class=\"ext\">\r\n <div class=\"author\">\r\n <MKSvgIcon iconClass=\"UserFilled\"></MKSvgIcon>\r\n 作者 : {{ article.author || \"-\" }}\r\n </div>\r\n <div class=\"publish-time\" v-if=\"article.releaseDate\">\r\n <MKSvgIcon iconClass=\"Timer\"></MKSvgIcon>\r\n 新闻日期 : {{ article.releaseDate }}\r\n </div>\r\n </div>\r\n <div class=\"tools\">\r\n <el-button type=\"primary\" size=\"large\" @click=\"editArticleHandle(article)\" text>\r\n 编辑\r\n </el-button>\r\n <el-button type=\"danger\" size=\"large\" @click=\"deleteArticleHandle(article)\" text>\r\n 删除\r\n </el-button>\r\n <!-- <a v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>访问</el-button>\r\n </a> -->\r\n <a :href=\"'/api/cms/content/preview/content/' + article.cmsPartId + '/' + article.id\"\r\n v-if=\"CmsSettings.publish.mode == 'static'\" target=\"_blank\">\r\n <el-button type=\"primary\" size=\"large\" text>预览</el-button>\r\n </a>\r\n <el-dropdown>\r\n <el-button type=\"primary\" size=\"large\" text>\r\n 更多\r\n </el-button>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item v-if=\"CmsSettings.publish.mode == 'static' && article.url\">\r\n <a style=\"text-decoration: none;color: #606266;\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && article.url\" :href=\"article.url\"\r\n target=\"_blank\">\r\n 访问\r\n </a>\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"publishArticleHandle(article)\">\r\n 发布\r\n </el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useTop && article.isTop == 0\"\r\n @click=\"changeArticleStatus(article, 'isTop', 1)\">设为置顶</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useNew && article.isNew == 0\"\r\n @click=\"changeArticleStatus(article, 'isNew', 1)\">设为最新</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.useHotRecommend && article.isHotRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isHotRecommend', 1)\">设为热门推荐</el-dropdown-item>\r\n <el-dropdown-item v-if=\"CmsSettings.content.usePartRecommend && article.isPartRecommend == 0\"\r\n @click=\"changeArticleStatus(article, 'isPartRecommend', 1)\">设为栏目推荐</el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </el-card>\r\n </el-scrollbar>\r\n <el-empty v-if=\"articlesDv.getList().length <= 0\" description=\"暂无文章内容\" />\r\n </MKTableView>\r\n </MKDataTable>\r\n</template>\r\n<script setup lang='ts'>\r\nimport { MKTableView } from \"../../../../../components\"\r\nimport { CmsArticlesTable, CmsArticlesForm } from \"../../../dataviews\"\r\nimport { reactive, defineProps, watch, onMounted } from \"vue\";\r\nimport { Dialoger, isWhereFilter, Messager } from '@maketribe/dm'\r\nimport { useRouter } from \"vue-router\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\n\r\n// 文章\r\nconst articlesDv = reactive(new CmsArticlesTable()) as CmsArticlesTable;\r\n// 发布文章表单\r\nconst articleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n// 草稿文章\r\nconst draftArticleForm = reactive(new CmsArticlesForm()) as CmsArticlesForm;\r\n\r\n// 参数\r\nconst props = defineProps({\r\n part: { type: Object, default: null }\r\n})\r\n\r\nconst router = useRouter();\r\n\r\n//改变文章指定,最新,推荐状态\r\nconst changeArticleStatus = async (article: any, item: string, status: number) => {\r\n const text: Record<string, string[]> = {\r\n \"isTop\": ['取消置顶', '设为置顶'],\r\n \"isNew\": ['取消最新', '设为最新'],\r\n \"isHotRecommend\": ['取消热门推荐', '设为热门推荐'],\r\n \"isPartRecommend\": ['取消栏目推荐', '设为栏目推荐'],\r\n }\r\n\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"修改文章状态\",\r\n message: `是否${text[item][status]}?`,\r\n type: \"warning\"\r\n })\r\n if (!isConfirm) {\r\n return\r\n }\r\n try {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n await articleForm.editRecord(article.id)\r\n const isSuccess = await articleForm.simpleSubmit({\r\n id: article.id,\r\n [item]: status\r\n })\r\n\r\n if (isSuccess) {\r\n articlesDv.load();\r\n }\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n\r\n\r\n}\r\n\r\n// 初始化\r\nonMounted(() => {\r\n articleForm.init();\r\n draftArticleForm.init();\r\n\r\n // 监听栏目数据变化\r\n watch(() => props.part, (item: any) => {\r\n if (item.cmsPartTypeId != 1) {\r\n \r\n const dataFilter = articlesDv.dataFilter;\r\n\r\n if (isWhereFilter(dataFilter)) {\r\n\r\n const defaultGroup = dataFilter.getDefaultGroup();\r\n\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"cmsPartId\", \"=\", item.id);\r\n // 只查草稿\r\n defaultGroup.addCondition(\"isDraft\", \"=\", 1);\r\n }\r\n\r\n articlesDv.load()\r\n }\r\n }, { immediate: true })\r\n})\r\n\r\n/**\r\n * 删除文章\r\n */\r\nconst deleteArticleHandle = async (item: any) => {\r\n const isConfirm = await Dialoger.confirm({\r\n title: \"删除文章?\",\r\n message: \"是否删除文章?\",\r\n type: \"warning\"\r\n })\r\n\r\n if (!isConfirm) { return; }\r\n await articlesDv.deleteAfterRefresh(item.id);\r\n}\r\n\r\n/**\r\n * 编辑文章\r\n */\r\nconst editArticleHandle = (item: any, isEdit = false) => {\r\n router.push({ path: \"/cms/article\", query: { id: isEdit ? undefined : item.id, partId: isEdit ? item.id : undefined } })\r\n}\r\n\r\n// 添加记录\r\narticlesDv.addRecordEvent.on(() => editArticleHandle(props.part, true))\r\n\r\n/**\r\n * fault文章\r\n * @param article \r\n */\r\nconst publishArticleHandle = async (article: any) => {\r\n\r\n try {\r\n\r\n if (await Dialoger.confirm({ title: \"文章发布\", message: \"是否发布文章?\", type: \"warning\" })) {\r\n\r\n articlesDv.getLoadingManager().startLoading();\r\n\r\n // 调用发布接口\r\n const response: any = await CmsArticlesForm.publish(CmsSettings.publish.mode, article.cmsPartId, article.id);\r\n\r\n if (response.data.code !== 200) {\r\n Messager.error({ message: response.data.msg });\r\n return;\r\n }\r\n\r\n Messager.success({ message: \"发布成功\" });\r\n }\r\n\r\n } finally {\r\n articlesDv.getLoadingManager().completeLoading();\r\n }\r\n}\r\n\r\n\r\n</script>\r\n","<template>\r\n <div class=\"mk-cms-part-info\">\r\n <MKDataForm :dataForm=\"partDataForm\" style=\"height: 100%;\">\r\n <MKForm :dataForm=\"partDataForm\">\r\n <div class=\"mk-cms-part-info__body__form\">\r\n <div class=\"mk-cms-part-info__body__form-options\">\r\n <ElScrollbar>\r\n <MKDataFormItem name=\"cmsPartTypeId\" v-if=\"hideHandle('cmsPartTypeId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"parentId\" v-if=\"hideHandle('parentId')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"cmsCoverArticleId\" v-if=\"hideHandle('cmsCoverArticleId')\">\r\n </MKDataFormItem>\r\n <MKDataFormItem name=\"title\" v-if=\"hideHandle('title')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"name\" v-if=\"hideHandle('name')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"externalLink\" v-if=\"hideHandle('externalLink')\">\r\n </MKDataFormItem>\r\n <el-row :gutter=\"22\" justify=\"space-between\">\r\n <el-col :span=\"10\" v-if=\"hideHandle('isShowMenu')\">\r\n <MKDataFormItem name=\"isShowMenu\"></MKDataFormItem>\r\n </el-col>\r\n <el-col :span=\"10\" v-if=\"hideHandle('isHome')\">\r\n <MKDataFormItem name=\"isHome\"></MKDataFormItem>\r\n </el-col>\r\n </el-row>\r\n <template v-if=\"CmsSettings.publish.mode == 'static'\">\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverRouter')\">路由配置</el-divider>\r\n <MKDataFormItem name=\"coverRouter\" v-if=\"hideHandle('coverRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listRouter\" v-if=\"hideHandle('listRouter')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentRouter\" v-if=\"hideHandle('contentRouter')\"></MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('coverTemplate')\">模版配置</el-divider>\r\n <MKDataFormItem name=\"coverTemplate\" v-if=\"hideHandle('coverTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"listTemplate\" v-if=\"hideHandle('listTemplate')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"contentTemplate\" v-if=\"hideHandle('contentTemplate')\">\r\n </MKDataFormItem>\r\n <el-divider content-position=\"left\" v-if=\"hideHandle('seoKeywords')\">SEO</el-divider>\r\n <MKDataFormItem name=\"seoKeywords\" v-if=\"hideHandle('seoKeywords')\"></MKDataFormItem>\r\n <MKDataFormItem name=\"seoDesc\" v-if=\"hideHandle('seoDesc')\"></MKDataFormItem>\r\n </template>\r\n \r\n </ElScrollbar>\r\n </div>\r\n </div>\r\n </MKForm>\r\n </MKDataForm>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { MKDataForm, MKForm, MKDataFormItem } from \"../../../../../components\";\r\nimport { CmsPartForm } from \"../../../dataviews/cms-parts/CmsPartForm\";\r\nimport { computed, reactive, Ref, watch } from \"vue\";\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings();\r\nconst props = defineProps({\r\n part: {\r\n type: Object,\r\n default: () => {\r\n return {}\r\n }\r\n },\r\n partDataForm: {\r\n type: CmsPartForm,\r\n default: () => {\r\n return new CmsPartForm()\r\n }\r\n }\r\n})\r\n\r\n//监听保存成功事件\r\n// props.partDataForm.submittedEvent.on(() => {\r\n// props.partDataForm.editRecord(props.part.id)\r\n// })\r\n\r\n/**\r\n * 需要隐藏的行\r\n */\r\nconst hideHandle = (name: string) => {\r\n if (props.partDataForm.data.cmsPartTypeId == 1 && CmsPartForm.outerChainHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 2 && CmsPartForm.contentHideColumn.includes(name)) {\r\n return false;\r\n } \r\n else if (props.partDataForm.data.cmsPartTypeId == 3 && CmsPartForm.menuHideColumn.includes(name)) {\r\n props.partDataForm.data.isShowMenu = 1;\r\n return false;\r\n } \r\n else {\r\n return true;\r\n }\r\n}\r\n\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n","<template>\r\n <div v-loading=\"loading\">\r\n <el-carousel v-if=\"partAdBanner && partAdBanner.contents?.length\" :autoplay=\"false\" :height=\"partAdBannerHeight\"\r\n arrow=\"always\" ref=\"carouselRef\">\r\n <el-carousel-item v-for=\"item in partAdBanner.contents\" :key=\"item.id\">\r\n <div class=\"mk-cms-part-banner__list_item\">\r\n <div class=\"mk-cms-part-banner__list_content\">\r\n <el-image class=\"mk-cms-part-banner__list_content_img\" v-if=\"item.type == 1\" :src=\"item.path\" fit=\"cover\"\r\n tyle=\"width: 100%;height: 100%;\">\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\" style=\"width: 100%;height: 100%;\"\r\n controls></video>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_bottom\">\r\n <div class=\"mk-cms-part-banner__list_title\">{{ item.title }}</div>\r\n <div>{{ item.desc }}</div>\r\n </div>\r\n <div class=\"mk-cms-part-banner__list_action-mask\">\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdContentHandle(item.id)\">\r\n 编辑当前轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加新轮播素材\r\n </el-button>\r\n <el-button type=\"primary\" style=\"margin-left: 10px;\" :icon=\"EditPen\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"danger\" style=\"margin-left: 10px;\" :icon=\"Delete\" @click=\"deleteAdContentHandle(item.id)\">\r\n 删除当前素材\r\n </el-button>\r\n </div>\r\n </div>\r\n </el-carousel-item>\r\n </el-carousel>\r\n <el-empty v-else :image-size=\"80\" :style=\"{ height: partAdBannerHeight }\">\r\n <template #description>\r\n <el-text>暂无{{ title }}轮播素材数据</el-text>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdDefineHandle()\">\r\n 设置素材显示尺寸\r\n </el-button>\r\n <el-button type=\"primary\" text style=\"margin-left: 10px;\" :icon=\"Plus\" @click=\"showAdContentHandle(null)\">\r\n 添加\r\n </el-button>\r\n </template>\r\n </el-empty>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport { onMounted, reactive, ref, watch, defineProps, computed } from \"vue\";\r\nimport { DataViewRequest, DVQueryable, Where } from \"@maketribe/request\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsAdContentsForm, CmsAdDefinesForm } from \"../../../dataviews\";\r\nimport { EditPen, Plus, Delete } from \"@element-plus/icons-vue\"\r\n\r\nconst props = defineProps({ adkey: { type: String }, title: { type: String }, deviceValue: { type: String, default: \"\" }, viewWidth: { type: Number } })\r\n\r\n// 广告定义数据表\r\nconst adRequest = new DataViewRequest({ name: \"ad-define\", moduleName: \"cms\" });\r\nconst adContentRequest = new DataViewRequest({ name: \"ad-content\", moduleName: \"cms\" });\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\n// 栏目广告\r\nconst partAdBanner = ref<any | null>(null);\r\nconst loading = ref(true);\r\nconst adContentForm = reactive<CmsAdContentsForm>(new CmsAdContentsForm({ cutSise: cmsSettings.part.bannerImageSize }))\r\nconst adDefineForm = reactive<CmsAdDefinesForm>(new CmsAdDefinesForm())\r\nconst warpRef = ref<any | null>(null);\r\n// 计算广告的高度\r\nconst partAdBannerHeight = computed(() => {\r\n\r\n // 全局Banner尺寸信息\r\n const sizes = cmsSettings.part.bannerImageSize.split(\"*\") as Array<any>;\r\n\r\n // 宽高比\r\n let widthHeightRatio = 0;\r\n\r\n //设定的比例\r\n if (!!partAdBanner.value?.width && !!partAdBanner.value?.height) {\r\n widthHeightRatio = partAdBanner.value.width / partAdBanner.value.height;\r\n }\r\n else if (sizes.length && sizes[0] && sizes[1]) {\r\n widthHeightRatio = sizes[0] / sizes[1]\r\n }\r\n\r\n if (widthHeightRatio && props.viewWidth) { return (props.viewWidth / widthHeightRatio) + \"px\" }\r\n\r\n return \"240px\"\r\n\r\n})\r\n\r\n// 内容添加之前监测广告是否存在不存在先添加广告\r\nadContentForm.beforeSubmitEvent.on(async ({ data }) => {\r\n\r\n if (partAdBanner.value) {\r\n data.adDefineId = partAdBanner.value.id as any;\r\n }\r\n else {\r\n try {\r\n\r\n const widthAndHeight = cmsSettings.part.bannerImageSize.split(\"*\");\r\n // 添加广告\r\n const result = await adRequest.add({ key: props.adkey, desc: `${props.title}的Banner`, width: widthAndHeight[0], height: widthAndHeight[1] })\r\n\r\n if (result.data.code == 200) {\r\n partAdBanner.value = { id: result.data.data as string }\r\n data.adDefineId = result.data.data;\r\n }\r\n\r\n } catch (error) {\r\n Messager.error({ message: \"添加失败!\" });\r\n }\r\n }\r\n\r\n})\r\n\r\n//提交判断是否存在,判断更新还是添加\r\nadDefineForm.formatSubmitData = ((data) => {\r\n if (partAdBanner.value) {\r\n data.id = partAdBanner.value.id as any;\r\n } else {\r\n data.key = props.adkey\r\n data.desc = `${props.title}的Banner`\r\n }\r\n return data\r\n})\r\n\r\n// 添加完成则刷新\r\nadContentForm.submittedEvent.on(() => loadPartAdDefineData())\r\n// 添加完成则刷新\r\nadDefineForm.submittedEvent.on(() => loadPartAdDefineData())\r\n\r\n//加载栏目广告\r\nconst loadPartAdDefineData = async () => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n const where = new Where()\r\n where.addCondition(\"key\", \"=\", props.adkey);\r\n // 加载广告定义\r\n partAdBanner.value = (await adRequest.query({\r\n data: {\r\n pn: 1,\r\n pc: 1000000,\r\n condition: where\r\n }\r\n })).data.data?.[0] ?? null;\r\n\r\n if (partAdBanner.value?.width && partAdBanner.value?.width) {\r\n adContentForm.changeCutSise(`${partAdBanner.value.width}*${partAdBanner.value.height}`)\r\n }\r\n\r\n } catch (e) {\r\n console.error(e)\r\n } finally {\r\n loading.value = false;\r\n }\r\n}\r\n\r\n//显示栏目广告的编辑弹窗\r\nconst showAdContentHandle = async (id: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: adContentForm as CmsAdContentsForm,\r\n recId: id\r\n })\r\n}\r\n\r\n//显示栏目广告定义的编辑弹窗\r\nconst showAdDefineHandle = async () => {\r\n await Dialoger.dataFormDialog({\r\n title: \"设置素材显示尺寸\",\r\n dataForm: adDefineForm as CmsAdDefinesForm,\r\n recId: partAdBanner.value?.id\r\n })\r\n adDefineForm.getColumn(\"contents\")!.visible = false;\r\n adDefineForm.getColumn(\"key\")!.visible = false;\r\n adDefineForm.getColumn(\"desc\")!.visible = false;\r\n}\r\n\r\nconst deleteAdContentHandle = async (id: any) => {\r\n try {\r\n const isConfirm = await Dialoger.confirm({ title: \"确定删除?\", message: \"确定删除当前轮播吗?\", type: \"warning\" })\r\n if (!isConfirm) return;\r\n const result = await adContentRequest.delete(id)\r\n if (result.data.code != 200) {\r\n Messager.error({ message: result.data.msg || \"删除失败!\" })\r\n return\r\n };\r\n loadPartAdDefineData()\r\n } catch (error) {\r\n Messager.error({ message: \"删除失败!\" })\r\n }\r\n}\r\n\r\n// 组件挂载的时候\r\nonMounted(() => {\r\n watch(() => props.adkey, () => loadPartAdDefineData(), { immediate: true })\r\n})\r\n\r\n</script>\r\n<style lang='scss'></style>\r\n","<template>\r\n <div class=\"mk-cms-part-banner__warp\" v-if=\"cmsSettings.part.openBanner\" ref=\"warpElRef\">\r\n <el-tabs v-model=\"activePartAdType\">\r\n <el-tab-pane label=\"PC端\" name=\"pc\" v-if=\"cmsSettings.devices.includes('pc')\">\r\n <PartBannerComponent :adkey=\"`part_${partId}`\" :title=\"`${title}PC端`\" :viewWidth=\"warpElRef?.offsetWidth\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"移动端\" name=\"mobile\" v-if=\"cmsSettings.devices.includes('mobile')\">\r\n <PartBannerComponent :adkey=\"`part_${partId}_mobile`\" :title=\"`${title}移动端`\" :viewWidth=\"750\"\r\n style=\"max-width: 750px;margin: auto;\" />\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { ref, defineProps } from \"vue\"\r\nimport { useCmsSettings } from \"../../../cms-settings\"\r\nimport PartBannerComponent from \"./part-banner.vue\"\r\n\r\ndefineProps({ partId: { type: String }, title: { type: String } })\r\n\r\n// cms 配置\r\nconst cmsSettings = useCmsSettings();\r\nconsole.log(cmsSettings.devices);\r\n// cms 配置\r\nconst warpElRef = ref<any>()\r\n// 栏目广告\r\nconst activePartAdType = ref(cmsSettings.devices[0])\r\n\r\n</script>\r\n","<template>\r\n <div class=\"mk-cms-contents__warp\" v-loading=\"loading\">\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=\"f7:doc-richtext\" m=\"r-[5px]\"/>\r\n 内容管理\r\n </h3>\r\n </template>\r\n <template #extra>\r\n <div class=\"flex items-center\">\r\n <el-button-group>\r\n <el-button type=\"primary\" size=\"large\" text v-if=\"CmsSettings.publish.mode == 'static'\"\r\n @click=\"publishAllPartHandle\">\r\n <MKSvgIcon name=\"ep:promotion\" m=\"r-[10]x\"/>\r\n 整站发布\r\n </el-button>\r\n <el-button type=\"primary\" size=\"large\" text @click=\"showPartFormHandle\">\r\n <MKSvgIcon name=\"ep:plus\" m=\"r-[10]x\"/>\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-contents__body\">\r\n <MKPartTree class=\"mk-cms-contents__body__left\" @select=\"selectPartHandle\" @edit=\"editPartHandle\"\r\n @add=\"showPartFormHandle\" @deleteSuccessfully=\"deletePartHandle\" ref=\"partTreeRef\"\r\n :curSelectId=\"curSelectPartId\" />\r\n <el-tabs v-if=\"curSelectPartItem\" v-model=\"activeTabName\" class=\"mk-cms-contents__body__right\">\r\n <div class=\"mk-cms-contents__body__right__action\">\r\n\r\n <template v-for=\"(ext, i) in partExList\" :label=\"ext.title || `页面扩展设置 ${i+1}`\" :name=\"\">\r\n <el-button type=\"primary\" text @click=\"ext.save()\" v-if=\"activeTabName == `part-ext${i}` && ext.save\">\r\n <MKSvgIcon name=\"carbon:save\" m=\"r-[5px]\" />\r\n 保存{{ ext.title }}\r\n </el-button>\r\n </template>\r\n <template v-if=\"activeTabName == 'part' || (activeTabName == 'part-content' && !partContentExtension?.component)\">\r\n <el-button type=\"primary\" text @click=\"savePartHandle()\" :disabled=\"!partDataForm?.isChanged\">\r\n <MKSvgIcon name=\"carbon:save\" m=\"r-[5px]\" />\r\n 保存\r\n </el-button>\r\n </template>\r\n <el-dropdown\r\n v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate || curSelectPartItem.listTemplate || curSelectPartItem.contentTemplate\">\r\n <span class=\"el-dropdown-link\">\r\n <el-button type=\"primary\" text>\r\n <MKSvgIcon name=\"ep:more-filled\" />\r\n </el-button>\r\n </span>\r\n <template #dropdown>\r\n <el-dropdown-menu>\r\n <el-dropdown-item @click=\"previewHandle()\"\r\n v-if=\"CmsSettings.publish.mode == 'static' && curSelectPartItem.coverTemplate\">\r\n <MKSvgIcon name=\"ep:view\" m=\"l-[10px]\" />\r\n 预览封面\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"previewHandle(1)\"\r\n v-if=\"curSelectPartItem.listTemplate\">\r\n <MKSvgIcon name=\"ep:view\" m=\"l-[10px]\" />\r\n 预览列表\r\n </el-dropdown-item>\r\n <el-dropdown-item @click=\"showPublish = true\">\r\n <MKSvgIcon name=\"ep:promotion\" m=\"l-[10px]\" />\r\n 发布当前栏目\r\n </el-dropdown-item>\r\n </el-dropdown-menu>\r\n </template>\r\n </el-dropdown>\r\n </div>\r\n <el-tab-pane label=\"文章列表\" name=\"article-list\" v-if=\"curSelectPartItem.contentTemplate\">\r\n <ArticleList v-if=\"activeTabName == 'article-list'\" :part=\"curSelectPartItem\" style=\"height: 99%;\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"栏目设置\" name=\"part\" v-loading=\"partDataForm.loading\">\r\n <PartInfo v-if=\"activeTabName == 'part'\" :part=\"curSelectPartItem\" ref=\"partInfoRef\"\r\n :partDataForm=\"partDataForm\" />\r\n </el-tab-pane>\r\n <el-tab-pane label=\"页面内容\" name=\"part-content\" style=\"background-color: #f4f4f4\"\r\n v-if=\"curSelectPartItem.cmsPartTypeId != 1\">\r\n <!-- 存在内容扩展配置 -->\r\n <template v-if=\"partContentExtension && activeTabName == 'part-content'\">\r\n\r\n <!-- 都自定义扩展的话 -->\r\n <template v-if=\"partContentExtension.component && partContentExtension.adComponent\">\r\n <div style=\"background: #fff;margin-top: -10px;padding: 10px;box-sizing: border-box;\">\r\n <component :is=\"partContentExtension.adComponent\" />\r\n </div>\r\n <div style=\"background: #fff;\">\r\n <component :is=\"partContentExtension.component\" />\r\n </div>\r\n </template>\r\n <!-- 只扩展内容 -->\r\n <template v-if=\"partContentExtension.component && !partContentExtension.adComponent\">\r\n <PartBannerEdit v-if=\"partDataForm.data?.id\" :partId=\"partDataForm.data?.id\" :title=\"partDataForm.data?.title\" />\r\n <div style=\"background: #fff;margin-top: -10px;padding: 10px;box-sizing: border-box;\" v-if=\"partContentExtension.component\">\r\n <component :is=\"partContentExtension.component\" />\r\n </div>\r\n </template>\r\n <!-- 只扩展栏目广告栏 -->\r\n <template v-if=\"!partContentExtension.component && partContentExtension.adComponent\">\r\n <MKDocEditor :css=\"CmsSettings.part.doc.css\" :js=\"CmsSettings.part.doc.js\" :loading=\"partDataForm.loading\" namespace=\"cms-part\"\r\n :modelValue=\"partDataForm.data?.content\" placeholder=\"从这里开始写正文...\" @update:modelValue=\"docEditorChangeHandle\">\r\n <template #before-extentions>\r\n <div style=\"background: #fff;margin-bottom: 10px;\">\r\n <component :is=\"partContentExtension.adComponent\" />\r\n </div>\r\n </template>\r\n </MKDocEditor>\r\n </template>\r\n \r\n </template>\r\n\r\n <template v-else-if=\"activeTabName == 'part-content'\">\r\n <MKDocEditor :css=\"CmsSettings.part.doc.css\" :js=\"CmsSettings.part.doc.js\" :loading=\"partDataForm.loading\" namespace=\"cms-part\"\r\n :modelValue=\"partDataForm.data?.content\" @update:modelValue=\"docEditorChangeHandle\" placeholder=\"从这里开始写正文...\">\r\n <template #before-extentions>\r\n <PartBannerEdit v-if=\"partDataForm.data?.id\" :partId=\"partDataForm.data?.id\"\r\n :title=\"partDataForm.data?.title\" />\r\n </template>\r\n </MKDocEditor>\r\n </template>\r\n\r\n </el-tab-pane>\r\n <el-tab-pane v-for=\"(ext, i) in partExList\" :label=\"ext.title || `页面扩展设置 ${i == 0 ? '' : i}`\" :name=\"`part-ext${i}`\">\r\n <component :is=\"ext.component\" />\r\n </el-tab-pane>\r\n\r\n </el-tabs>\r\n <el-empty v-else description=\"请选择栏目\" style=\"width: 100%\" />\r\n </div>\r\n <el-dialog v-model=\"showPublish\" title=\"栏目发布\" width=\"475px\" :append-to-body=\"false\">\r\n <div class=\"mk-cms-contents__publish\">\r\n <div><span>是否发布列表:</span> <el-switch v-model=\"optionData.isPublishList\"\r\n :disabled=\"!curSelectPartItem.listTemplate\" /></div>\r\n <div><span>是否发布封面:</span> <el-switch v-model=\"optionData.isPublishCover\"\r\n :disabled=\"!curSelectPartItem.coverTemplate\" /></div>\r\n <div><span>是否发布内容:</span> <el-switch v-model=\"optionData.isPublishContent\"\r\n :disabled=\"!curSelectPartItem.contentTemplate\" /></div>\r\n <div><span>是否发布资源:</span> <el-switch v-model=\"optionData.isPublishAssets\" /></div>\r\n <div><span>是否强制发布:</span> <el-switch v-model=\"optionData.isCompulsion\" /></div>\r\n </div>\r\n <template #footer>\r\n <el-button @click=\"showPublish = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"publishPartHandle\" :loading=\"publishLoading\">确定</el-button>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport { MKPartTree } from \"../../components\";\r\nimport ArticleList from \"./components/article-list.vue\";\r\nimport PartInfo from \"./components/part-info.vue\";\r\nimport PartBannerEdit from \"./components/part-banner-edit.vue\";\r\nimport { MKDocEditor } from \"../../../../components\";\r\nimport { reactive, ref,shallowRef, watch, watchEffect } from \"vue\";\r\nimport { Dialoger, Messager } from \"@maketribe/dm\";\r\nimport { CmsContentManPartForm, CmsPartForm, CmsPartMiniForm } from \"../../dataviews/cms-parts\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport { usePartExtensionList, usePartContentComponent, type PartExtension } from \"../../composables/part-extensions\"\r\nimport { ElSwitch } from \"element-plus\";\r\nimport { useCmsSettings } from \"../../cms-settings\"\r\nimport {MKSvgIcon} from \"../../../../components/basic\";\r\n//路由 \r\nconst route = useRoute();\r\nconst router = useRouter();\r\n\r\n// 当前选中的栏目id\r\nconst curSelectPartId = ref<string>(route.query.pid as string)\r\nwatch(() => route.query.pid, (v: any) => {\r\n curSelectPartId.value = v\r\n}, { immediate: true });\r\n\r\n//栏目Mini表单\r\nconst partMiniForm = reactive<CmsPartMiniForm>(new CmsPartMiniForm());\r\n\r\n// cms 配置\r\nconst CmsSettings = useCmsSettings(true);\r\n\r\n//发布栏目时的配置\r\nconst showPublish = ref(false)\r\n\r\n//发布配置项\r\nconst optionData = ref({\r\n isPublishList: false,\r\n isPublishCover: false,\r\n isPublishContent: false,\r\n isPublishAssets: false,\r\n isCompulsion: true\r\n});\r\n\r\n//发布加载状态\r\nconst publishLoading = ref(false);\r\n\r\n// 数据加载状态\r\nconst loading = ref(false)\r\n\r\n// 激活的tab\r\nconst activeTabName = ref(\"article-list\");\r\n\r\n// 当前选中的菜单\r\nconst curSelectPartItem = ref(null as any);\r\n\r\n// 栏目树ref\r\nconst partTreeRef = ref(null);\r\n\r\n//栏目扩展\r\nconst partExList = shallowRef<Array<PartExtension>>([]);\r\nconst partContentExtension = shallowRef<any>(null)\r\n\r\n//栏目数据\r\nconst partDataForm = reactive(new CmsContentManPartForm()) as CmsContentManPartForm;\r\n\r\n// 初始化表单\r\npartDataForm.init();\r\n\r\n// 切换tab 加载栏目表单数据\r\nlet beforeInitFormPart: any = null;\r\nwatchEffect(async () => {\r\n if ((activeTabName.value == \"part\" || activeTabName.value == \"part-content\") && curSelectPartItem.value != beforeInitFormPart && curSelectPartItem.value) {\r\n try {\r\n beforeInitFormPart = curSelectPartItem.value;\r\n await partDataForm.editRecord(curSelectPartItem.value.id);\r\n } catch (error) {\r\n console.log(132)\r\n console.log(error)\r\n }\r\n }\r\n});\r\n\r\n// 选择栏目\r\nconst selectPartHandle = async (item: any) => {\r\n\r\n if (curSelectPartItem.value != item) {\r\n\r\n curSelectPartItem.value = item;\r\n\r\n if (!curSelectPartItem.value.contentTemplate) {\r\n activeTabName.value = \"part\";\r\n }\r\n else {\r\n activeTabName.value = \"article-list\";\r\n }\r\n router.replace({ name: 'cms/contents', query: { pid: curSelectPartItem.value.id } } as any)\r\n partExList.value = usePartExtensionList(curSelectPartItem.value.id).concat(usePartExtensionList(curSelectPartItem.value.name));\r\n partContentExtension.value = usePartContentComponent(curSelectPartItem.value.id) || usePartContentComponent(curSelectPartItem.value.name)\r\n }\r\n};\r\n\r\n//删除栏目\r\nconst deletePartHandle = (item: any) => {\r\n if (item.id == curSelectPartItem.value.id) {\r\n curSelectPartItem.value = null;\r\n }\r\n};\r\n\r\n//编辑栏目\r\nconst editPartHandle = (item: any) => {\r\n curSelectPartItem.value = item;\r\n activeTabName.value = \"part\";\r\n};\r\n\r\n/**\r\n * 显示添加栏目表单\r\n */\r\nconst showPartFormHandle = async (item?: any) => {\r\n await Dialoger.dataFormDialog({\r\n dataForm: partMiniForm as CmsContentManPartForm,\r\n });\r\n\r\n if (item.id) {\r\n partMiniForm.addRecord({ parentId: item.id });\r\n }\r\n\r\n};\r\n\r\nwatch(showPublish, async (v) => {\r\n if (v) {\r\n console.log(2)\r\n optionData.value.isPublishList = !!curSelectPartItem.value.listTemplate\r\n optionData.value.isPublishCover = !!curSelectPartItem.value.coverTemplate\r\n optionData.value.isPublishContent = !!curSelectPartItem.value.contentTemplate\r\n }\r\n})\r\n\r\n//监听表单完成事件\r\npartMiniForm.submittedEvent.on(({ response }: any) => {\r\n if (response.data.data) {\r\n // 重置选中\r\n curSelectPartId.value = response.data.data;\r\n // 刷新完成直接选中\r\n (partTreeRef.value! as any).dataTree?.load();\r\n }\r\n\r\n});\r\n\r\n//栏目发布\r\nconst publishAllPartHandle = async () => {\r\n\r\n try {\r\n\r\n loading.value = true;\r\n\r\n await CmsPartForm.publishAll()\r\n }\r\n finally {\r\n loading.value = false;\r\n }\r\n\r\n}\r\nconst publishPartHandle = async () => {\r\n\r\n try {\r\n //表单未保存,默认保存\r\n try{\r\n if(partDataForm.isChanged){\r\n await savePartHandle()\r\n }\r\n }catch{\r\n Messager.error({\r\n message:\"保存失败\"\r\n })\r\n return \r\n }\r\n\r\n publishLoading.value = true\r\n\r\n await CmsPartForm.publish(curSelectPartItem.value.id, optionData.value);\r\n\r\n showPublish.value = false;\r\n\r\n } finally {\r\n publishLoading.value = false\r\n }\r\n}\r\n\r\n/**\r\n * 预览\r\n */\r\nconst previewHandle =async (num?:string|number)=>{\r\n if(partDataForm.isChanged){\r\n await savePartHandle()\r\n }\r\n if(num){\r\n CmsPartForm.openPreview(curSelectPartItem.value.id, '1')\r\n }else{\r\n CmsPartForm.openPreview(curSelectPartItem.value.id)\r\n }\r\n}\r\n\r\n/**\r\n * 保存栏目信息\r\n */\r\nconst savePartHandle = async () => {\r\n curSelectPartItem.value = partDataForm.data;\r\n await partDataForm.submit();\r\n}\r\n\r\n/**\r\n * 更新编辑器内容\r\n * @param v 内容\r\n */\r\nconst docEditorChangeHandle = (v: any) => {\r\n if(partDataForm.data){\r\n partDataForm.data.content = v\r\n }\r\n}\r\n</script>\r\n"],"names":["PartTree"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, ref, computed, unref, onMounted, resolveComponent, openBlock, createBlock, withCtx, createVNode, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString } from "vue";
2
2
  import { ElMessage } from "element-plus";
3
3
  import * as elIcons from "@element-plus/icons-vue";
4
- import { z as MKPageContainer } from "./index-DknNVWIH.js";
4
+ import { z as MKPageContainer } from "./index-CjTw5oMj.js";
5
5
  import "@maketribe/request";
6
6
  import "@maketribe/utils";
7
7
  import "@lexical/overflow";
@@ -17,6 +17,8 @@ import "@lexical/dragon";
17
17
  import "@lexical/plain-text";
18
18
  import "vue-router";
19
19
  import "@maketribe/locale";
20
+ import "@headlessui/vue";
21
+ import "overlayscrollbars-vue";
20
22
  const _hoisted_1 = { class: "mk-icon-list" };
21
23
  const _hoisted_2 = { class: "mk-icon-list__item" };
22
24
  const _hoisted_3 = ["onClick"];
@@ -105,4 +107,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
105
107
  export {
106
108
  _sfc_main as default
107
109
  };
108
- //# sourceMappingURL=index-Bdpr5BhD.js.map
110
+ //# sourceMappingURL=index-4YyShMO2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-4YyShMO2.js","sources":["../../src/modules/ms/pages/icons/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer>\r\n <ElCard>\r\n <ElScrollbar height=\"100%\">\r\n <ElInput\r\n v-model=\"search\"\r\n placeholder=\"搜索图标\"\r\n :suffix-icon=\"elIcons.Search\"\r\n />\r\n\r\n <ul class=\"mk-icon-list\">\r\n <li class=\"mk-icon-list__item\" v-for=\"icon in filteredIcons\">\r\n <div class=\"mk-icon-item\" @click=\"handleClick(icon)\">\r\n <div class=\"mk-icon-item__icon\">\r\n <MKSvgIcon :iconClass=\"icon\" />\r\n </div>\r\n\r\n <div class=\"mk-icon-item__name\">\r\n {{ icon }}\r\n </div>\r\n </div>\r\n </li>\r\n </ul>\r\n </ElScrollbar>\r\n </ElCard>\r\n </MKPageContainer>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed, onMounted, ref, Ref, unref } from \"vue\";\r\nimport { ElMessage } from \"element-plus\";\r\nimport * as elIcons from \"@element-plus/icons-vue\";\r\nimport { MKPageContainer } from \"../../../../components\";\r\n\r\nconst icons: Ref<string[]> = ref([]);\r\n\r\nconst search = ref(\"\");\r\n\r\nconst filteredIcons = computed(() => {\r\n const _search = unref(search).toLowerCase();\r\n\r\n return unref(icons).filter((icon) => icon.toLowerCase().includes(_search));\r\n});\r\n\r\nonMounted(() => {\r\n const svgList: NodeListOf<SVGElement> = document.querySelectorAll(\r\n 'body > svg[aria-hidden=\"true\"]'\r\n );\r\n\r\n let iconList: string[] = [];\r\n\r\n for (const svg of Array.from(svgList)) {\r\n const symbols = svg.querySelectorAll(\"symbol\");\r\n\r\n iconList = iconList.concat(\r\n Array.from(symbols).map((symbol) => symbol.id.replace(/^icon-/, \"\"))\r\n );\r\n }\r\n\r\n icons.value = Array.from(new Set([...Object.keys(elIcons), ...iconList]));\r\n});\r\n\r\nconst handleClick = (icon: string) => {\r\n const content = `<MKSvgIcon iconClass=\"${icon}\"/>`;\r\n\r\n if (navigator.clipboard === undefined) {\r\n //通过input标签进行复制\r\n const input = document.createElement(\"input\");\r\n input.value = content;\r\n document.body.appendChild(input);\r\n input.select();\r\n document.execCommand(\"Copy\");\r\n document.body.removeChild(input);\r\n } else {\r\n navigator.clipboard.writeText(content);\r\n }\r\n\r\n ElMessage.success(\"复制成功\");\r\n};\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCM,UAAA,QAAuB,IAAI,CAAA,CAAE;AAE7B,UAAA,SAAS,IAAI,EAAE;AAEf,UAAA,gBAAgB,SAAS,MAAM;AACnC,YAAM,UAAU,MAAM,MAAM,EAAE,YAAY;AAEnC,aAAA,MAAM,KAAK,EAAE,OAAO,CAAC,SAAS,KAAK,YAAY,EAAE,SAAS,OAAO,CAAC;AAAA,IAAA,CAC1E;AAED,cAAU,MAAM;AACd,YAAM,UAAkC,SAAS;AAAA,QAC/C;AAAA,MAAA;AAGF,UAAI,WAAqB,CAAA;AAEzB,iBAAW,OAAO,MAAM,KAAK,OAAO,GAAG;AAC/B,cAAA,UAAU,IAAI,iBAAiB,QAAQ;AAE7C,mBAAW,SAAS;AAAA,UAClB,MAAM,KAAK,OAAO,EAAE,IAAI,CAAC,WAAW,OAAO,GAAG,QAAQ,UAAU,EAAE,CAAC;AAAA,QAAA;AAAA,MAEvE;AAEA,YAAM,QAAQ,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG,GAAG,QAAQ,CAAC,CAAC;AAAA,IAAA,CACzE;AAEK,UAAA,cAAc,CAAC,SAAiB;AAC9B,YAAA,UAAU,yBAAyB,IAAI;AAEzC,UAAA,UAAU,cAAc,QAAW;AAE/B,cAAA,QAAQ,SAAS,cAAc,OAAO;AAC5C,cAAM,QAAQ;AACL,iBAAA,KAAK,YAAY,KAAK;AAC/B,cAAM,OAAO;AACb,iBAAS,YAAY,MAAM;AAClB,iBAAA,KAAK,YAAY,KAAK;AAAA,MAAA,OAC1B;AACK,kBAAA,UAAU,UAAU,OAAO;AAAA,MACvC;AAEA,gBAAU,QAAQ,MAAM;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { buildProps, withInstall } from "@maketribe/utils";
2
2
  import { defineComponent, ref, computed, createVNode, Fragment, unref, isVNode } from "vue";
3
3
  import { ElButton, ElDialog, ElScrollbar } from "element-plus";
4
- import { T as columnProps, X as useColumn, Y as MKJsonEditor } from "./index-DknNVWIH.js";
4
+ import { T as columnProps, X as useColumn, Y as MKJsonEditor } from "./index-CjTw5oMj.js";
5
5
  import "vue-router";
6
6
  import "@maketribe/dm";
7
7
  import "@maketribe/request";
@@ -59,4 +59,4 @@ export {
59
59
  columnJsonProps,
60
60
  MKColumnJson as default
61
61
  };
62
- //# sourceMappingURL=index-Gog2XV76.js.map
62
+ //# sourceMappingURL=index-B9gvbtvi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-B9gvbtvi.js","sources":["../../src/components/data-model/data-table/components/column-json/column-json-options.ts","../../src/components/data-model/data-table/components/column-json/column-json.tsx","../../src/components/data-model/data-table/components/column-json/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\nimport { columnProps } from \"../../composables\";\r\n\r\nexport const columnJsonProps = buildProps({\r\n ...columnProps,\r\n buttonText: {\r\n type: String,\r\n default: \"查看\",\r\n },\r\n} as const);\r\n\r\nexport type ColumnJsonProps = ExtractPropTypes<typeof columnJsonProps>;\r\n","import { Fragment, computed, defineComponent, ref, unref } from \"vue\";\r\nimport { ElButton, ElDialog, ElScrollbar } from \"element-plus\";\r\nimport { useColumn } from \"../../composables\";\r\nimport { columnJsonProps } from \"./column-json-options\";\r\nimport { MKJsonEditor } from \"../../../../basic/json-editor\";\r\n\r\nexport default defineComponent({\r\n name: \"MKColumnJson\",\r\n props: columnJsonProps,\r\n setup(props) {\r\n const { value } = useColumn(props);\r\n\r\n const isShowDialog = ref(false);\r\n\r\n const buttonText = computed(() => props.buttonText);\r\n\r\n const handleClick = () => {\r\n isShowDialog.value = true;\r\n };\r\n\r\n return () => {\r\n return (\r\n <Fragment>\r\n <ElButton onClick={handleClick}>{unref(buttonText)}</ElButton>\r\n\r\n <ElDialog\r\n class=\"mk-column-json__dialog\"\r\n appendToBody\r\n modelValue={unref(isShowDialog)}\r\n onUpdate:modelValue={(v: boolean) => (isShowDialog.value = v)}\r\n >\r\n <ElScrollbar height=\"100%\">\r\n <MKJsonEditor disabled modelValue={unref(value) as string} />\r\n </ElScrollbar>\r\n </ElDialog>\r\n </Fragment>\r\n );\r\n };\r\n },\r\n});\r\n","import { withInstall } from \"@maketribe/utils\";\r\nimport ColumnJson from \"./column-json\";\r\n\r\nexport const MKColumnJson = withInstall(ColumnJson);\r\n\r\nexport default MKColumnJson;\r\n\r\nexport * from \"./column-json-options\";\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","defineComponent","name","props","columnJsonProps","setup","value","useColumn","isShowDialog","ref","buttonText","computed","handleClick","_slot","_createVNode","_Fragment","ElButton","unref","default","ElDialog","v","ElScrollbar","MKJsonEditor"],"mappings":";;;;;;;;;AAIO,MAAM,kBAAkB,WAAW;AAAA,EACxC,GAAG;AAAA,EACH,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAU;ACNmD,SAAAA,QAAAC,GAAA;AAAA,SAAA,OAAAA,MAAA,cAAAC,OAAAC,UAAAC,SAAAC,KAAAJ,CAAA,MAAAK,qBAAAA,CAAAA,QAAAL,CAAA;AAAA;AAE7D,MAAeM,6CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AACX,UAAM;AAAA,MAAEG;AAAAA,IAAM,IAAIC,UAAUJ,KAAK;AAEjC,UAAMK,eAAeC,IAAI,KAAK;AAE9B,UAAMC,aAAaC,SAAS,MAAMR,MAAMO,UAAU;AAElD,UAAME,cAAcA,MAAM;AACxBJ,mBAAaF,QAAQ;AAAA;AAGvB,WAAO,MAAM;AAAA,UAAAO;AACX,aAAAC,YAAAC,UAAAD,MAAAA,CAAAA,YAAAE,UAAA;AAAA,QAAA,WAEuBJ;AAAAA,SAAWlB,QAAAmB,QAAGI,MAAMP,UAAU,CAAC,IAAAG,QAAA;AAAA,QAAAK,SAAAA,MAAA,CAAAL,KAAA;AAAA,OAAAC,GAAAA,YAAAK,UAAA;AAAA,QAAA,SAAA;AAAA,QAAA,gBAAA;AAAA,QAAA,cAKpCF,MAAMT,YAAY;AAAA,QAAC,uBACTY,OAAgBZ,aAAaF,QAAQc;AAAAA,MAAE,GAAA;AAAA,QAAAF,SAAAA,MAAAJ,CAAAA,YAAAO,aAAA;AAAA,UAAA,UAAA;AAAA,QAAA,GAAA;AAAA,UAAAH,SAAAA,MAAAJ,CAAAA,YAAAQ,cAAA;AAAA,YAAA,YAAA;AAAA,YAAA,cAGxBL,MAAMX,KAAK;AAAA,UAAC,GAAA,IAAA,CAAA;AAAA,QAAA,CAAA,CAAA;AAAA,MAAA,CAAA,CAAA,CAAA;AAAA;EAM3D;AACF,CAAC;ACpCY,MAAA,eAAe,YAAY,UAAU;"}
@@ -4,7 +4,7 @@ import { Dialoger } from "@maketribe/dm";
4
4
  import { DvOpt } from "@maketribe/request";
5
5
  import { ElMessage } from "element-plus";
6
6
  import "@maketribe/utils";
7
- import { K as MsRouteTable, x as DataModelDefines, C as useSingleViewWithDialog, z as MKPageContainer, A as MKDataTable, F as MKTableView, G as MKTableTree, q as MKSvgIcon, L as MenuType } from "./index-DknNVWIH.js";
7
+ import { K as MsRouteTable, x as DataModelDefines, C as useSingleViewWithDialog, z as MKPageContainer, A as MKDataTable, F as MKTableView, G as MKTableTree, q as MKSvgIcon, L as MenuType } from "./index-CjTw5oMj.js";
8
8
  import "@maketribe/locale";
9
9
  import "@lexical/overflow";
10
10
  import "@lexical/text";
@@ -17,6 +17,8 @@ import "@element-plus/icons-vue";
17
17
  import "@lexical/history";
18
18
  import "@lexical/dragon";
19
19
  import "@lexical/plain-text";
20
+ import "@headlessui/vue";
21
+ import "overlayscrollbars-vue";
20
22
  import "lodash-es";
21
23
  const _hoisted_1 = { flex: "inline items-center" };
22
24
  const _hoisted_2 = { class: "ms-menu__title" };
@@ -116,4 +118,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
116
118
  export {
117
119
  _sfc_main as default
118
120
  };
119
- //# sourceMappingURL=index-DLTcz_Lh.js.map
121
+ //# sourceMappingURL=index-BCB6CWfF.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-DLTcz_Lh.js","sources":["../../src/modules/ms/pages/ms-menu/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer v-if=\"dataTree\">\r\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\r\n <MKTableView>\r\n <MKTableTree defaultExpandAll>\r\n <template #col-data.title-content=\"{ row }\">\r\n <div flex=\"inline items-center\">\r\n <MKSvgIcon :name=\"row.data.iconName\" />\r\n <span class=\"ms-menu__title\">{{ row.data.title }}</span>\r\n <ElButton\r\n v-if=\"row.data.type === MenuType.Menu\"\r\n link\r\n type=\"primary\"\r\n class=\"ms-menu__url\"\r\n @click=\"handleUrlClick(row.data)\"\r\n >\r\n {{ row.data.targetUrl || \"空\" }}\r\n </ElButton>\r\n </div>\r\n </template>\r\n </MKTableTree>\r\n </MKTableView>\r\n </MKDataTable>\r\n </MKPageContainer>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {\r\n unref,\r\n computed,\r\n watch,\r\n ref,\r\n Ref,\r\n reactive,\r\n onBeforeUnmount,\r\n} from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { DataForm, DataTree, Dialoger } from \"@maketribe/dm\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { ElMessage } from \"element-plus\";\r\nimport { DataModelDefines } from \"../../../../core\";\r\nimport { MKSvgIcon } from \"../../../../components\";\r\nimport {\r\n MKPageContainer,\r\n MKDataTable,\r\n MKTableView,\r\n MKTableTree,\r\n} from \"../../../../components\";\r\nimport { useSingleViewWithDialog } from \"../../../../composables\";\r\nimport { MenuType } from \"../../../../constants\";\r\nimport { MsRouteTable, MsMenuItemNode } from \"../../dataviews\";\r\n\r\nconst router = useRouter();\r\n\r\nconst dataTree: Ref<DataTree | null> = ref(null);\r\nconst dataForm: Ref<DataForm | null> = ref(null);\r\n\r\nconst routeTable = reactive(new MsRouteTable()) as MsRouteTable;\r\n\r\nwatch(\r\n computed(() => unref(router.currentRoute).meta.name as string),\r\n (name) => {\r\n dataTree.value = DataModelDefines.instance.getDataTree(name);\r\n\r\n dataForm.value = DataModelDefines.instance.getDataForm(name);\r\n },\r\n { immediate: true }\r\n);\r\n\r\nconst handleUrlClick = async (item: MsMenuItemNode) => {\r\n routeTable.useCondition((defaultGroup) => {\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"menuId\", \"=\", item.id);\r\n });\r\n\r\n const result = await Dialoger.dataTableSelectDialog(routeTable);\r\n\r\n if (!result.isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n unref(dataTree)?.getLoadingManager().startLoading();\r\n\r\n const response = await DvOpt.createInstance({ name: \"ms-menu\" }).save({\r\n id: item.id,\r\n routeId: result.selections[0],\r\n });\r\n\r\n if (response.code !== 200) {\r\n ElMessage.error(response.msg);\r\n return;\r\n }\r\n\r\n unref(dataTree)?.load();\r\n\r\n ElMessage.success(\"更新成功\");\r\n } catch {\r\n ElMessage.error(\"网络异常\");\r\n } finally {\r\n unref(dataTree)?.getLoadingManager().completeLoading();\r\n }\r\n};\r\n\r\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\r\n\r\nonBeforeUnmount(() => {\r\n routeTable.dispose();\r\n});\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C,UAAM,aAAa,SAAS,IAAI,aAAc,CAAA;AAE9C;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;AAGd,UAAA,iBAAiB,OAAO,SAAyB;;AAC1C,iBAAA,aAAa,CAAC,iBAAiB;AACxC,qBAAa,MAAM;AACnB,qBAAa,aAAa,UAAU,KAAK,KAAK,EAAE;AAAA,MAAA,CACjD;AAED,YAAM,SAAS,MAAM,SAAS,sBAAsB,UAAU;AAE1D,UAAA,CAAC,OAAO,WAAW;AACrB;AAAA,MACF;AAEI,UAAA;AACF,oBAAM,QAAQ,MAAd,mBAAiB,oBAAoB;AAE/B,cAAA,WAAW,MAAM,MAAM,eAAe,EAAE,MAAM,UAAA,CAAW,EAAE,KAAK;AAAA,UACpE,IAAI,KAAK;AAAA,UACT,SAAS,OAAO,WAAW,CAAC;AAAA,QAAA,CAC7B;AAEG,YAAA,SAAS,SAAS,KAAK;AACf,oBAAA,MAAM,SAAS,GAAG;AAC5B;AAAA,QACF;AAEM,oBAAA,QAAQ,MAAR,mBAAW;AAEjB,kBAAU,QAAQ,MAAM;AAAA,MAAA,QAClB;AACN,kBAAU,MAAM,MAAM;AAAA,MAAA,UACtB;AACA,oBAAM,QAAQ,MAAd,mBAAiB,oBAAoB;AAAA,MACvC;AAAA,IAAA;AAGF,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;AAEzD,oBAAgB,MAAM;AACpB,iBAAW,QAAQ;AAAA,IAAA,CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index-BCB6CWfF.js","sources":["../../src/modules/ms/pages/ms-menu/index.vue"],"sourcesContent":["<template>\r\n <MKPageContainer v-if=\"dataTree\">\r\n <MKDataTable :data-table=\"dataTree\" enableQueryParams>\r\n <MKTableView>\r\n <MKTableTree defaultExpandAll>\r\n <template #col-data.title-content=\"{ row }\">\r\n <div flex=\"inline items-center\">\r\n <MKSvgIcon :name=\"row.data.iconName\" />\r\n <span class=\"ms-menu__title\">{{ row.data.title }}</span>\r\n <ElButton\r\n v-if=\"row.data.type === MenuType.Menu\"\r\n link\r\n type=\"primary\"\r\n class=\"ms-menu__url\"\r\n @click=\"handleUrlClick(row.data)\"\r\n >\r\n {{ row.data.targetUrl || \"空\" }}\r\n </ElButton>\r\n </div>\r\n </template>\r\n </MKTableTree>\r\n </MKTableView>\r\n </MKDataTable>\r\n </MKPageContainer>\r\n</template>\r\n<script setup lang=\"ts\">\r\nimport {\r\n unref,\r\n computed,\r\n watch,\r\n ref,\r\n Ref,\r\n reactive,\r\n onBeforeUnmount,\r\n} from \"vue\";\r\nimport { useRouter } from \"vue-router\";\r\nimport { DataForm, DataTree, Dialoger } from \"@maketribe/dm\";\r\nimport { DvOpt } from \"@maketribe/request\";\r\nimport { ElMessage } from \"element-plus\";\r\nimport { DataModelDefines } from \"../../../../core\";\r\nimport { MKSvgIcon } from \"../../../../components\";\r\nimport {\r\n MKPageContainer,\r\n MKDataTable,\r\n MKTableView,\r\n MKTableTree,\r\n} from \"../../../../components\";\r\nimport { useSingleViewWithDialog } from \"../../../../composables\";\r\nimport { MenuType } from \"../../../../constants\";\r\nimport { MsRouteTable, MsMenuItemNode } from \"../../dataviews\";\r\n\r\nconst router = useRouter();\r\n\r\nconst dataTree: Ref<DataTree | null> = ref(null);\r\nconst dataForm: Ref<DataForm | null> = ref(null);\r\n\r\nconst routeTable = reactive(new MsRouteTable()) as MsRouteTable;\r\n\r\nwatch(\r\n computed(() => unref(router.currentRoute).meta.name as string),\r\n (name) => {\r\n dataTree.value = DataModelDefines.instance.getDataTree(name);\r\n\r\n dataForm.value = DataModelDefines.instance.getDataForm(name);\r\n },\r\n { immediate: true }\r\n);\r\n\r\nconst handleUrlClick = async (item: MsMenuItemNode) => {\r\n routeTable.useCondition((defaultGroup) => {\r\n defaultGroup.clear();\r\n defaultGroup.addCondition(\"menuId\", \"=\", item.id);\r\n });\r\n\r\n const result = await Dialoger.dataTableSelectDialog(routeTable);\r\n\r\n if (!result.isConfirm) {\r\n return;\r\n }\r\n\r\n try {\r\n unref(dataTree)?.getLoadingManager().startLoading();\r\n\r\n const response = await DvOpt.createInstance({ name: \"ms-menu\" }).save({\r\n id: item.id,\r\n routeId: result.selections[0],\r\n });\r\n\r\n if (response.code !== 200) {\r\n ElMessage.error(response.msg);\r\n return;\r\n }\r\n\r\n unref(dataTree)?.load();\r\n\r\n ElMessage.success(\"更新成功\");\r\n } catch {\r\n ElMessage.error(\"网络异常\");\r\n } finally {\r\n unref(dataTree)?.getLoadingManager().completeLoading();\r\n }\r\n};\r\n\r\nuseSingleViewWithDialog({ dataTable: dataTree, dataForm });\r\n\r\nonBeforeUnmount(() => {\r\n routeTable.dispose();\r\n});\r\n</script>\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAmDA,UAAM,SAAS;AAET,UAAA,WAAiC,IAAI,IAAI;AACzC,UAAA,WAAiC,IAAI,IAAI;AAE/C,UAAM,aAAa,SAAS,IAAI,aAAc,CAAA;AAE9C;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;AAGd,UAAA,iBAAiB,OAAO,SAAyB;;AAC1C,iBAAA,aAAa,CAAC,iBAAiB;AACxC,qBAAa,MAAM;AACnB,qBAAa,aAAa,UAAU,KAAK,KAAK,EAAE;AAAA,MAAA,CACjD;AAED,YAAM,SAAS,MAAM,SAAS,sBAAsB,UAAU;AAE1D,UAAA,CAAC,OAAO,WAAW;AACrB;AAAA,MACF;AAEI,UAAA;AACF,oBAAM,QAAQ,MAAd,mBAAiB,oBAAoB;AAE/B,cAAA,WAAW,MAAM,MAAM,eAAe,EAAE,MAAM,UAAA,CAAW,EAAE,KAAK;AAAA,UACpE,IAAI,KAAK;AAAA,UACT,SAAS,OAAO,WAAW,CAAC;AAAA,QAAA,CAC7B;AAEG,YAAA,SAAS,SAAS,KAAK;AACf,oBAAA,MAAM,SAAS,GAAG;AAC5B;AAAA,QACF;AAEM,oBAAA,QAAQ,MAAR,mBAAW;AAEjB,kBAAU,QAAQ,MAAM;AAAA,MAAA,QAClB;AACN,kBAAU,MAAM,MAAM;AAAA,MAAA,UACtB;AACA,oBAAM,QAAQ,MAAd,mBAAiB,oBAAoB;AAAA,MACvC;AAAA,IAAA;AAGF,4BAAwB,EAAE,WAAW,UAAU,SAAU,CAAA;AAEzD,oBAAgB,MAAM;AACpB,iBAAW,QAAQ;AAAA,IAAA,CACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, computed, createVNode, unref } from "vue";
2
2
  import { ElSwitch } from "element-plus";
3
- import { T as columnProps, X as useColumn } from "./index-DknNVWIH.js";
3
+ import { T as columnProps, X as useColumn } from "./index-CjTw5oMj.js";
4
4
  import { buildProps } from "@maketribe/utils";
5
5
  import "vue-router";
6
6
  import "@maketribe/dm";
@@ -51,4 +51,4 @@ export {
51
51
  columnSwitchProps,
52
52
  MKColumnSwitch as default
53
53
  };
54
- //# sourceMappingURL=index-D3JpAH_K.js.map
54
+ //# sourceMappingURL=index-BEpzO-nt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BEpzO-nt.js","sources":["../../src/components/data-model/data-table/components/column-switch/column-switch-options.ts","../../src/components/data-model/data-table/components/column-switch/column-switch.tsx","../../src/components/data-model/data-table/components/column-switch/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\nimport { ColumnEventData, columnProps } from \"../../composables\";\r\n\r\nexport const columnSwitchProps = buildProps({\r\n ...columnProps,\r\n disabled: { type: Boolean, default: true },\r\n} as const);\r\n\r\nexport type ColumnSwitchProps = ExtractPropTypes<typeof columnSwitchProps>;\r\n\r\nexport const columnSwitchEmits = {\r\n change: (data: ColumnEventData & { value: boolean }) => true,\r\n};\r\n\r\nexport type ColumnSwitchEmits = typeof columnSwitchEmits;\r\n","import { computed, defineComponent, unref } from \"vue\";\r\nimport { ElSwitch } from \"element-plus\";\r\n\r\nimport { useColumn } from \"../../composables\";\r\nimport { columnSwitchEmits, columnSwitchProps } from \"./column-switch-options\";\r\n\r\nexport default defineComponent({\r\n name: \"MKColumnSwitch\",\r\n props: columnSwitchProps,\r\n emits: columnSwitchEmits,\r\n setup(props, { emit }) {\r\n const { value } = useColumn(props);\r\n\r\n const disabled = computed(() => props.disabled);\r\n\r\n const handleChange = (value: boolean) => {\r\n emit(\"change\", {\r\n row: props.row,\r\n column: props.column,\r\n index: props.index,\r\n value,\r\n });\r\n };\r\n\r\n return () => {\r\n return (\r\n <div class=\"mk-column-switch\">\r\n <ElSwitch\r\n disabled={unref(disabled)}\r\n modelValue={unref(value)}\r\n onChange={handleChange as any}\r\n />\r\n </div>\r\n );\r\n };\r\n },\r\n});\r\n","import ColumnSwitch from \"./column-switch\";\r\n\r\nexport const MKColumnSwitch = ColumnSwitch;\r\nexport default MKColumnSwitch;\r\n\r\nexport * from \"./column-switch-options\";\r\n"],"names":["defineComponent","name","props","columnSwitchProps","emits","columnSwitchEmits","setup","emit","value","useColumn","disabled","computed","handleChange","row","column","index","_createVNode","ElSwitch","unref"],"mappings":";;;;;;;;;AAIO,MAAM,oBAAoB,WAAW;AAAA,EAC1C,GAAG;AAAA,EACH,UAAU,EAAE,MAAM,SAAS,SAAS,KAAK;AAC3C,CAAU;AAIH,MAAM,oBAAoB;AAAA,EAC/B,QAAQ,CAAC,SAA+C;AAC1D;ACPA,MAAeA,+CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,OAAOC;AAAAA,EACPC,MAAMJ,OAAO;AAAA,IAAEK;AAAAA,EAAK,GAAG;AACrB,UAAM;AAAA,MAAEC;AAAAA,IAAM,IAAIC,UAAUP,KAAK;AAEjC,UAAMQ,WAAWC,SAAS,MAAMT,MAAMQ,QAAQ;AAE9C,UAAME,eAAgBJ,CAAAA,WAAmB;AACvCD,WAAK,UAAU;AAAA,QACbM,KAAKX,MAAMW;AAAAA,QACXC,QAAQZ,MAAMY;AAAAA,QACdC,OAAOb,MAAMa;AAAAA,QACbP,OAAAA;AAAAA,MACF,CAAC;AAAA;AAGH,WAAO,MAAM;AACX,aAAAQ,YAAA,OAAA;AAAA,QAAA,SAAA;AAAA,SAAAA,CAAAA,YAAAC,UAAA;AAAA,QAAA,YAGgBC,MAAMR,QAAQ;AAAA,QAAC,cACbQ,MAAMV,KAAK;AAAA,QAAC,YACdI;AAAAA,MAAY,GAAA,IAAA,CAAA,CAAA;AAAA;EAKhC;AACF,CAAC;AClCM,MAAM,iBAAiB;"}
@@ -1,5 +1,5 @@
1
1
  import { defineComponent, openBlock, createBlock, unref, withCtx, createVNode } from "vue";
2
- import { z as MKPageContainer, I as MKMaterialList } from "./index-DknNVWIH.js";
2
+ import { z as MKPageContainer, I as MKMaterialList } from "./index-CjTw5oMj.js";
3
3
  import "element-plus";
4
4
  import "@maketribe/request";
5
5
  import "@maketribe/utils";
@@ -17,6 +17,8 @@ import "@lexical/dragon";
17
17
  import "@lexical/plain-text";
18
18
  import "vue-router";
19
19
  import "@maketribe/locale";
20
+ import "@headlessui/vue";
21
+ import "overlayscrollbars-vue";
20
22
  import "lodash-es";
21
23
  const _sfc_main = /* @__PURE__ */ defineComponent({
22
24
  __name: "index",
@@ -34,4 +36,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
34
36
  export {
35
37
  _sfc_main as default
36
38
  };
37
- //# sourceMappingURL=index-C0OV7CMI.js.map
39
+ //# sourceMappingURL=index-BJ4X4ZCh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BJ4X4ZCh.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, inject, createVNode } from "vue";
2
2
  import { buildProps } from "@maketribe/utils";
3
- import { T as columnProps, D as DATA_TABLE_CONTEXT_KEY, q as MKSvgIcon } from "./index-DknNVWIH.js";
3
+ import { T as columnProps, D as DATA_TABLE_CONTEXT_KEY, q as MKSvgIcon } from "./index-CjTw5oMj.js";
4
4
  import "vue-router";
5
5
  import "@maketribe/dm";
6
6
  import { ElTooltip } from "element-plus";
@@ -103,4 +103,4 @@ export {
103
103
  columnSortProps,
104
104
  MKColumnSort as default
105
105
  };
106
- //# sourceMappingURL=index-C58Q2T-f.js.map
106
+ //# sourceMappingURL=index-BMKLnXb8.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BMKLnXb8.js","sources":["../../src/components/data-model/data-table/components/column-sort/column-sort-options.ts","../../src/components/data-model/data-table/components/column-sort/column-sort.tsx","../../src/components/data-model/data-table/components/column-sort/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\nimport { columnProps } from \"../../composables\";\r\n\r\nexport const columnSortProps = buildProps({\r\n ...columnProps,\r\n drag: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n});\r\n\r\nexport type ColumnSortProps = ExtractPropTypes<typeof columnSortProps>;\r\n","import { defineComponent, inject } from \"vue\";\r\nimport { columnSortProps } from \"./column-sort-options\";\r\nimport { MKSvgIcon } from \"../../../../basic\";\r\nimport { ElTooltip } from \"element-plus\";\r\nimport { DATA_TABLE_CONTEXT_KEY } from \"../../token\";\r\n\r\nexport default defineComponent({\r\n name: \"MKColumnSort\",\r\n props: columnSortProps,\r\n setup(props) {\r\n const dataTableContext = inject(DATA_TABLE_CONTEXT_KEY)!;\r\n\r\n const handleMoveUp = () => {\r\n dataTableContext.dataTable.moveUp(props.row);\r\n };\r\n\r\n const handleMoveDown = () => {\r\n dataTableContext.dataTable.moveDown(props.row);\r\n };\r\n\r\n const handleToTop = () => {\r\n dataTableContext.dataTable.toTop(props.row);\r\n };\r\n\r\n const handleToBottom = () => {\r\n dataTableContext.dataTable.toBottom(props.row);\r\n };\r\n\r\n return () => {\r\n let children = null;\r\n\r\n if (props.drag) {\r\n children = (\r\n <span class=\"mk-column-sort__drag\">\r\n <MKSvgIcon name=\"ep:rank\" />\r\n </span>\r\n );\r\n } else {\r\n children = (\r\n <span class=\"mk-column-sort__switch\">\r\n <ElTooltip content=\"置顶\" placement=\"top\">\r\n <MKSvgIcon name=\"radix-icons:pin-top\" class=\"cursor-pointer\" onClick={handleToTop} />\r\n </ElTooltip>\r\n <ElTooltip content=\"上移\" placement=\"top\">\r\n <MKSvgIcon name=\"radix-icons:arrow-up\" class=\"cursor-pointer\" onClick={handleMoveUp} />\r\n </ElTooltip>\r\n <ElTooltip content=\"下移\" placement=\"top\">\r\n <MKSvgIcon name=\"radix-icons:arrow-down\" class=\"cursor-pointer\" onClick={handleMoveDown} />\r\n </ElTooltip>\r\n <ElTooltip content=\"置底\" placement=\"top\">\r\n <MKSvgIcon name=\"radix-icons:pin-bottom\" class=\"cursor-pointer\" onClick={handleToBottom} />\r\n </ElTooltip>\r\n </span>\r\n );\r\n }\r\n\r\n return <span class=\"mk-column-sort\">{children}</span>;\r\n };\r\n },\r\n});\r\n","import ColumnSort from \"./column-sort\";\r\n\r\nexport const MKColumnSort = ColumnSort;\r\nexport default MKColumnSort;\r\n\r\nexport * from \"./column-sort-options\";\r\n"],"names":["defineComponent","name","props","columnSortProps","setup","dataTableContext","inject","DATA_TABLE_CONTEXT_KEY","handleMoveUp","dataTable","moveUp","row","handleMoveDown","moveDown","handleToTop","toTop","handleToBottom","toBottom","children","drag","_createVNode","MKSvgIcon","ElTooltip","default"],"mappings":";;;;;;;;;;;;;;;;;;;;AAIO,MAAM,kBAAkB,WAAW;AAAA,EACxC,GAAG;AAAA,EACH,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF,CAAC;ACJD,MAAeA,6CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AACX,UAAMG,mBAAmBC,OAAOC,sBAAsB;AAEtD,UAAMC,eAAeA,MAAM;AACzBH,uBAAiBI,UAAUC,OAAOR,MAAMS,GAAG;AAAA;AAG7C,UAAMC,iBAAiBA,MAAM;AAC3BP,uBAAiBI,UAAUI,SAASX,MAAMS,GAAG;AAAA;AAG/C,UAAMG,cAAcA,MAAM;AACxBT,uBAAiBI,UAAUM,MAAMb,MAAMS,GAAG;AAAA;AAG5C,UAAMK,iBAAiBA,MAAM;AAC3BX,uBAAiBI,UAAUQ,SAASf,MAAMS,GAAG;AAAA;AAG/C,WAAO,MAAM;AACX,UAAIO,WAAW;AAEf,UAAIhB,MAAMiB,MAAM;AACdD,mBAAQE,YAAA,QAAA;AAAA,UAAA,SAAA;AAAA,WAAAA,CAAAA,YAAAC,WAAA;AAAA,UAAA,QAAA;AAAA,WAIP,IAAA,CAAA,CAAA;AAAA,MACH,OAAO;AACLH,mBAAQE,YAAA,QAAA;AAAA,UAAA,SAAA;AAAA,WAAAA,CAAAA,YAAAE,WAAA;AAAA,UAAA,WAAA;AAAA,UAAA,aAAA;AAAA,QAAA,GAAA;AAAA,UAAAC,SAAAA,MAAAH,CAAAA,YAAAC,WAAA;AAAA,YAAA,QAAA;AAAA,YAAA,SAAA;AAAA,YAAA,WAGoEP;AAAAA,UAAW,GAAA,IAAA,CAAA;AAAA,SAAAM,GAAAA,YAAAE,WAAA;AAAA,UAAA,WAAA;AAAA,UAAA,aAAA;AAAA,QAAA,GAAA;AAAA,UAAAC,SAAAA,MAAAH,CAAAA,YAAAC,WAAA;AAAA,YAAA,QAAA;AAAA,YAAA,SAAA;AAAA,YAAA,WAGVb;AAAAA,UAAY,GAAA,IAAA,CAAA;AAAA,SAAAY,GAAAA,YAAAE,WAAA;AAAA,UAAA,WAAA;AAAA,UAAA,aAAA;AAAA,QAAA,GAAA;AAAA,UAAAC,SAAAA,MAAAH,CAAAA,YAAAC,WAAA;AAAA,YAAA,QAAA;AAAA,YAAA,SAAA;AAAA,YAAA,WAGVT;AAAAA,UAAc,GAAA,IAAA,CAAA;AAAA,SAAAQ,GAAAA,YAAAE,WAAA;AAAA,UAAA,WAAA;AAAA,UAAA,aAAA;AAAA,QAAA,GAAA;AAAA,UAAAC,SAAAA,MAAAH,CAAAA,YAAAC,WAAA;AAAA,YAAA,QAAA;AAAA,YAAA,SAAA;AAAA,YAAA,WAGdL;AAAAA,UAAc,GAAA,IAAA,CAAA;AAAA,QAG5F,CAAA,CAAA,CAAA;AAAA,MACH;AAEA,aAAAI,YAAA,QAAA;AAAA,QAAA,SAAA;AAAA,MAAA,GAAA,CAAqCF,QAAQ,CAAA;AAAA;EAEjD;AACF,CAAC;ACzDM,MAAM,eAAe;"}
@@ -1,6 +1,6 @@
1
1
  import { buildProps, withInstall } from "@maketribe/utils";
2
2
  import { defineComponent, computed, unref, watch, createVNode } from "vue";
3
- import { Z as abstractSelectEmits, $ as abstractSelectProps, a0 as MKAbstractSelect } from "./index-DknNVWIH.js";
3
+ import { Z as abstractSelectEmits, $ as abstractSelectProps, a0 as MKAbstractSelect } from "./index-CjTw5oMj.js";
4
4
  import { DataTree } from "@maketribe/dm";
5
5
  import { ElTreeSelect } from "element-plus";
6
6
  const { dataTable, ...restAbstractSelectProps } = abstractSelectProps;
@@ -124,4 +124,4 @@ export {
124
124
  dataTreeSelectProps,
125
125
  MKDataTreeSelect as default
126
126
  };
127
- //# sourceMappingURL=index-Bk3DoVIM.js.map
127
+ //# sourceMappingURL=index-BVGJ-lj0.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-BVGJ-lj0.js","sources":["../../src/components/basic/data-tree-select/data-tree-select-options.ts","../../src/components/basic/data-tree-select/data-tree-select.tsx","../../src/components/basic/data-tree-select/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\nimport { abstractSelectEmits, abstractSelectProps } from \"../../abstract\";\r\nimport { DataTree } from \"@maketribe/dm\";\r\n\r\nconst { dataTable, ...restAbstractSelectProps } = abstractSelectProps;\r\n\r\nexport const dataTreeSelectProps = buildProps({\r\n ...restAbstractSelectProps,\r\n dataTree: DataTree<any>,\r\n checkStrictly: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n clearable: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n formatOptions: {\r\n type: Function,\r\n default: (item: any) => {\r\n const value = item.value ?? item.id ?? item.name;\r\n const label = item.label ?? item.desc ?? item.title ?? item.name;\r\n const children = item.children ?? [];\r\n\r\n return { value, label, children };\r\n },\r\n },\r\n});\r\n\r\nexport type DataTreeSelectProps = ExtractPropTypes<typeof dataTreeSelectProps>;\r\n\r\nexport const dataTreeSelectEmits = {\r\n ...abstractSelectEmits,\r\n};\r\n\r\nexport type DataTreeSelectEmits = typeof dataTreeSelectEmits;\r\n","import { computed, defineComponent, ref, Ref, unref, watch } from \"vue\";\r\nimport { MKAbstractSelect } from \"../../abstract\";\r\nimport {\r\n dataTreeSelectEmits,\r\n dataTreeSelectProps,\r\n} from \"./data-tree-select-options\";\r\nimport { ElTreeSelect } from \"element-plus\";\r\n\r\nexport default defineComponent({\r\n name: \"MKDataTreeSelect\",\r\n props: dataTreeSelectProps,\r\n emits: dataTreeSelectEmits,\r\n setup(props, { emit, slots }) {\r\n const primaryKey = computed(\r\n () => props.primaryFieldName ?? props.dataTree?.primaryKey ?? \"value\"\r\n );\r\n\r\n const loading = computed(() => props.dataTree?.loading ?? false);\r\n\r\n const modelValue = computed({\r\n get: () => unref(props.modelValue),\r\n set: (v) => {\r\n emit(\"update:model-value\", v);\r\n },\r\n });\r\n\r\n watch(\r\n computed(() => props.dataTree),\r\n async (dataTree) => {\r\n if (!dataTree) {\r\n return;\r\n }\r\n await dataTree.init();\r\n dataTree.dataFilter.setReady();\r\n await dataTree.loadAll();\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const formatOptions = (item: any) => {\r\n let _formatOptions;\r\n\r\n if (props.labelFieldName) {\r\n _formatOptions = (item: any) => {\r\n return {\r\n value: item[unref(primaryKey)],\r\n label: item[props.labelFieldName!],\r\n children: (item.children ?? []).map(formatOptions),\r\n };\r\n };\r\n } else {\r\n _formatOptions = props.formatOptions;\r\n }\r\n\r\n let option = _formatOptions(item);\r\n\r\n option.data = item;\r\n\r\n return option;\r\n };\r\n\r\n return () => {\r\n return (\r\n <MKAbstractSelect\r\n class=\"mk-data-tree-select\"\r\n modelValue={unref(modelValue)}\r\n onUpdate:model-value={(v: any) => {\r\n modelValue.value = v;\r\n }}\r\n additional={false}\r\n dataTable={props.dataTree}\r\n objectValue={props.objectValue}\r\n multiple={props.multiple}\r\n options={props.options}\r\n primaryFieldName={props.primaryFieldName}\r\n formatOptions={formatOptions}\r\n v-slots={{\r\n default: ({ selections, setSelections, options }: any) => {\r\n return (\r\n <ElTreeSelect\r\n popper-class=\"mk-data-tree-select__popper\"\r\n clearable={props.clearable}\r\n data={options}\r\n disabled={props.disabled}\r\n loading={unref(loading)}\r\n modelValue={selections}\r\n onUpdate:modelValue={setSelections}\r\n multiple={props.multiple}\r\n checkStrictly={props.checkStrictly}\r\n v-slots={slots}\r\n />\r\n );\r\n },\r\n }}\r\n />\r\n );\r\n };\r\n },\r\n});\r\n","import { withInstall } from \"@maketribe/utils\";\r\nimport DataTreeSelect from \"./data-tree-select\";\r\n\r\nexport const MKDataTreeSelect = withInstall(DataTreeSelect);\r\n\r\nexport default MKDataTreeSelect;\r\n\r\nexport * from \"./data-tree-select-options\";\r\n"],"names":["defineComponent","name","props","dataTreeSelectProps","emits","dataTreeSelectEmits","setup","emit","slots","primaryKey","computed","primaryFieldName","dataTree","loading","modelValue","get","unref","set","v","watch","init","dataFilter","setReady","loadAll","immediate","formatOptions","item","_formatOptions","labelFieldName","value","label","children","map","option","data","_createVNode","MKAbstractSelect","objectValue","multiple","options","default","selections","setSelections","ElTreeSelect","clearable","disabled","checkStrictly"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-C8z_gFCT.js","sources":["../../src/modules/ms/components/material-list/components/image-view/image-view-options.ts","../../src/modules/ms/components/material-list/components/image-view/image-view.tsx","../../src/modules/ms/components/material-list/components/image-view/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\n\r\nexport const imageViewProps = buildProps({\r\n showPreview: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n src: {\r\n type: String,\r\n },\r\n} as const);\r\n\r\nexport type ImageViewProps = ExtractPropTypes<typeof imageViewProps>;\r\n","import { computed, defineComponent, unref } from \"vue\";\nimport { ElImage } from \"element-plus\";\nimport { imageViewProps } from \"./image-view-options\";\n\nexport default defineComponent({\n name: \"MKImageView\",\n inheritAttrs: false,\n props: imageViewProps,\n setup(props, { slots }) {\n const showPreview = computed(() => props.showPreview);\n\n const src = computed(() => props.src);\n\n const previewSrcList = computed(() =>\n unref(showPreview) && unref(src) ? [unref(src)!] : []\n );\n\n return () => (\n <ElImage\n class=\"mk-image-view\"\n src={unref(src)}\n v-slots={slots}\n fit=\"cover\"\n previewSrcList={unref(previewSrcList)}\n preview-teleported\n hide-on-click-modal\n />\n );\n },\n});\n","import { withInstall } from \"@maketribe/utils\";\r\nimport ImageView from \"./image-view\";\r\n\r\nexport const MKImageView = withInstall(ImageView);\r\nexport default MKImageView;\r\n\r\nexport * from \"./image-view-options\";\r\n"],"names":["defineComponent","name","inheritAttrs","props","imageViewProps","setup","slots","showPreview","computed","src","previewSrcList","unref","_createVNode","ElImage"],"mappings":";;;AAGO,MAAM,iBAAiB,WAAW;AAAA,EACvC,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,EACR;AACF,CAAU;ACPV,MAAeA,4CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,cAAc;AAAA,EACdC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AAAA,IAAEG;AAAAA,EAAM,GAAG;AACtB,UAAMC,cAAcC,SAAS,MAAML,MAAMI,WAAW;AAEpD,UAAME,MAAMD,SAAS,MAAML,MAAMM,GAAG;AAEpC,UAAMC,iBAAiBF,SAAS,MAC9BG,MAAMJ,WAAW,KAAKI,MAAMF,GAAG,IAAI,CAACE,MAAMF,GAAG,CAAC,IAAK,CACrD,CAAA;AAEA,WAAO,MAAAG,YAAAC,SAAA;AAAA,MAAA,SAAA;AAAA,MAAA,OAGEF,MAAMF,GAAG;AAAA,MAAC,OAAA;AAAA,MAAA,kBAGCE,MAAMD,cAAc;AAAA,MAAC,sBAAA;AAAA,MAAA,uBAAA;AAAA,IAAA,GAF5BJ,KAAK;AAAA,EAOpB;AACF,CAAC;AC1BY,MAAA,cAAc,YAAY,SAAS;"}
1
+ {"version":3,"file":"index-C8z_gFCT.js","sources":["../../src/modules/ms/components/material-list/components/image-view/image-view-options.ts","../../src/modules/ms/components/material-list/components/image-view/image-view.tsx","../../src/modules/ms/components/material-list/components/image-view/index.ts"],"sourcesContent":["import { ExtractPropTypes } from \"vue\";\r\nimport { buildProps } from \"@maketribe/utils\";\r\n\r\nexport const imageViewProps = buildProps({\r\n showPreview: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n src: {\r\n type: String,\r\n },\r\n} as const);\r\n\r\nexport type ImageViewProps = ExtractPropTypes<typeof imageViewProps>;\r\n","import { computed, defineComponent, unref } from \"vue\";\r\nimport { ElImage } from \"element-plus\";\r\nimport { imageViewProps } from \"./image-view-options\";\r\n\r\nexport default defineComponent({\r\n name: \"MKImageView\",\r\n inheritAttrs: false,\r\n props: imageViewProps,\r\n setup(props, { slots }) {\r\n const showPreview = computed(() => props.showPreview);\r\n\r\n const src = computed(() => props.src);\r\n\r\n const previewSrcList = computed(() =>\r\n unref(showPreview) && unref(src) ? [unref(src)!] : []\r\n );\r\n\r\n return () => (\r\n <ElImage\r\n class=\"mk-image-view\"\r\n src={unref(src)}\r\n v-slots={slots}\r\n fit=\"cover\"\r\n previewSrcList={unref(previewSrcList)}\r\n preview-teleported\r\n hide-on-click-modal\r\n />\r\n );\r\n },\r\n});\r\n","import { withInstall } from \"@maketribe/utils\";\r\nimport ImageView from \"./image-view\";\r\n\r\nexport const MKImageView = withInstall(ImageView);\r\nexport default MKImageView;\r\n\r\nexport * from \"./image-view-options\";\r\n"],"names":["defineComponent","name","inheritAttrs","props","imageViewProps","setup","slots","showPreview","computed","src","previewSrcList","unref","_createVNode","ElImage"],"mappings":";;;AAGO,MAAM,iBAAiB,WAAW;AAAA,EACvC,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,EACR;AACF,CAAU;ACPV,MAAeA,4CAAgB;AAAA,EAC7BC,MAAM;AAAA,EACNC,cAAc;AAAA,EACdC,OAAOC;AAAAA,EACPC,MAAMF,OAAO;AAAA,IAAEG;AAAAA,EAAM,GAAG;AACtB,UAAMC,cAAcC,SAAS,MAAML,MAAMI,WAAW;AAEpD,UAAME,MAAMD,SAAS,MAAML,MAAMM,GAAG;AAEpC,UAAMC,iBAAiBF,SAAS,MAC9BG,MAAMJ,WAAW,KAAKI,MAAMF,GAAG,IAAI,CAACE,MAAMF,GAAG,CAAC,IAAK,CACrD,CAAA;AAEA,WAAO,MAAAG,YAAAC,SAAA;AAAA,MAAA,SAAA;AAAA,MAAA,OAGEF,MAAMF,GAAG;AAAA,MAAC,OAAA;AAAA,MAAA,kBAGCE,MAAMD,cAAc;AAAA,MAAC,sBAAA;AAAA,MAAA,uBAAA;AAAA,IAAA,GAF5BJ,KAAK;AAAA,EAOpB;AACF,CAAC;AC1BY,MAAA,cAAc,YAAY,SAAS;"}
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, ref, reactive, onMounted, watch, resolveComponent, resolveDirective, openBlock, createElementBlock, createVNode, withCtx, createElementVNode, unref, createTextVNode, withDirectives, createBlock, Fragment, renderList, toDisplayString, createCommentVNode } from "vue";
2
2
  import { DataViewRequest, Group } from "@maketribe/request";
3
3
  import { FormColumn, Dialoger, Messager } from "@maketribe/dm";
4
- import { Q as CmsAdContentsForm, S as CmsAdDefinesForm, q as MKSvgIcon } from "./index-DknNVWIH.js";
4
+ import { Q as CmsAdContentsForm, S as CmsAdDefinesForm, q as MKSvgIcon } from "./index-CjTw5oMj.js";
5
5
  import "element-plus";
6
6
  import "@maketribe/utils";
7
7
  import "vue-router";
@@ -18,6 +18,8 @@ import { EditPen, Delete, ArrowDown } from "@element-plus/icons-vue";
18
18
  import "@lexical/history";
19
19
  import "@lexical/dragon";
20
20
  import "@lexical/plain-text";
21
+ import "@headlessui/vue";
22
+ import "overlayscrollbars-vue";
21
23
  import "@codemirror/lang-html";
22
24
  const _hoisted_1 = { class: "mk-cms-ad__warp" };
23
25
  const _hoisted_2 = {
@@ -390,4 +392,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
390
392
  export {
391
393
  _sfc_main as default
392
394
  };
393
- //# sourceMappingURL=index-DBmsWB9D.js.map
395
+ //# sourceMappingURL=index-CAYL9D_L.js.map