index.tsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { css } from "@linaria/core";
  2. import { Card } from "ant-design-vue";
  3. import { defineComponent } from "vue";
  4. import Editor from "../components/Editor";
  5. import { useArticle, useCategory } from "@/modules/admin";
  6. import { useRoute } from "vue-router";
  7. import { CategoryItem } from "@/typings/asset";
  8. import DetailEditor from "./components/DetailEditor";
  9. import ListEditor from "./components/ListEditor";
  10. import DownloadEditor from "./components/DownloadEditor";
  11. export default defineComponent({
  12. setup() {
  13. const route = useRoute();
  14. const categoryStore = useCategory();
  15. return () => {
  16. const id = route.params.id;
  17. const currCategory = categoryStore.listController.state.list.find(
  18. (e: CategoryItem) => {
  19. return e._id == id;
  20. }
  21. );
  22. return (
  23. <Card class={Page}>
  24. {currCategory?.type == "detail" && (
  25. <DetailEditor key={currCategory._id} data={currCategory} />
  26. )}
  27. {currCategory?.type == "list" && (
  28. <ListEditor key={currCategory._id} data={currCategory} />
  29. )}
  30. {currCategory?.type == "download" && (
  31. <DownloadEditor key={currCategory._id} data={currCategory} />
  32. )}
  33. </Card>
  34. );
  35. };
  36. },
  37. });
  38. const Page = css`
  39. height: 100%;
  40. .ant-card-body {
  41. height: 100%;
  42. }
  43. `;