index.tsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import AssetsList from "@/components/AssetsList";
  2. import { useResource } from "@/modules/resource";
  3. import { defineComponent, onMounted } from "vue";
  4. import Toolbar from "./Toolbar";
  5. export default defineComponent({
  6. setup() {
  7. const resource = useResource();
  8. const { store, controls, actions } = resource;
  9. const loadPage = () => {
  10. controls.materialListCtrl.state.query = { fileType: store.type };
  11. controls.materialListCtrl.loadPage(1);
  12. };
  13. const changeType = (v: string) => {
  14. resource.store.setSourceType(v);
  15. if (v == "task") {
  16. controls.renderTaskListCtrl.loadPage(1);
  17. return;
  18. }
  19. loadPage();
  20. };
  21. onMounted(() => loadPage());
  22. return () => {
  23. const control =
  24. store.type == "task"
  25. ? controls.renderTaskListCtrl
  26. : controls.materialListCtrl;
  27. return (
  28. <>
  29. <Toolbar onChange={changeType} />
  30. <AssetsList
  31. columns={6}
  32. class="mt-30px"
  33. control={control}
  34. item={(record: any) => (
  35. <resource.components.MaterialItem
  36. record={record}
  37. use={store.type == "task" ? "task" : "show"}
  38. onDelete={() => actions.deleteMaterial(record)}
  39. onDownload={() => actions.downloadMaterial(record)}
  40. />
  41. )}
  42. />
  43. </>
  44. );
  45. };
  46. },
  47. });