UNPKG

@cmstops/pro-compo

Version:

[物料平台文档中心](https://arco.design/docs/material/guide)

161 lines (160 loc) 3.91 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); var vue = require("vue"); var request = require("../utils/request.js"); function getAttachmentsAll(BASE_API, query) { return request(BASE_API, { url: `/poplar/v3/attachments`, method: "get", params: query }); } function getAttachmentsMy(BASE_API, query) { return request(BASE_API, { url: `/poplar/v3/my/attachments`, method: "get", params: query }); } function getAttachmentsMyMessage(BASE_API, query) { return request(BASE_API, { url: `/poplar/v3/remind/to/my/attachments`, method: "get", params: query }); } function useAttachement(options) { const key = vue.ref(options.key); const limit = vue.ref(30); const offset = vue.ref(0); const filter = vue.ref({}); const params = vue.computed(() => { return { limit: limit.value, offset: offset.value, ...filter.value }; }); const pageIdx = vue.computed(() => Math.floor(offset.value / limit.value) + 1); const loading = vue.ref(true); const list = vue.ref([]); const total = vue.ref(0); async function loadData() { let apiFunc; if (key.value === "all") apiFunc = getAttachmentsAll; if (key.value === "my") apiFunc = getAttachmentsMy; if (key.value === "remind") apiFunc = getAttachmentsMyMessage; list.value = []; if (!apiFunc) return; loading.value = true; try { const { code, message } = await apiFunc(options.BASE_API, params.value); if (code !== 0) return; const { data, count } = message; list.value = data || []; total.value = count; } catch (e) { console.log("\u83B7\u53D6\u7D20\u6750\u5217\u8868\u5F02\u5E38", e); } finally { loading.value = false; } } function changePage(o) { offset.value = o; loadData(); } function changeSize(s) { limit.value = s; changePage(0); } function changeKey(k) { if (k === key.value) return; key.value = k; changePage(0); } function changeFilter(f) { filter.value = f; changePage(0); } return { list, total, limit, offset, pageIdx, loading, changeFilter, changeKey, changePage, changeSize, loadData }; } function getSysRsByTag(BASE_API, params) { return request(BASE_API, { url: "/poplar/v3/classified/sys_attachments", method: "get", params }); } function getSysRsPage(BASE_API, params) { return request(BASE_API, { url: "/poplar/v3/sys_attachments", method: "get", params }); } function getDirectory(BASE_API, params) { return request(BASE_API, { url: "/poplar/v3/directory/tree", method: "get", params }); } function useDirectory(options) { const tree = vue.ref([]); async function loadDirTree(parent_id) { const params = parent_id ? { parent_id } : {}; const { code, message } = await getDirectory(options.BASE_API, params); if (code === 0) { if (!Array.isArray(message.data)) return []; return message.data; } return []; } async function init() { const result = await loadDirTree(); if (!Array.isArray(result)) return; tree.value = result; } async function loadMore(target) { const children = await loadDirTree(target.key); target.children = children; if (children.length === 0) target.isLeaf = true; } vue.onMounted(() => { init(); }); return { tree, init, loadMore }; } exports["default"] = useAttachement; exports.getAttachmentsAll = getAttachmentsAll; exports.getAttachmentsMy = getAttachmentsMy; exports.getAttachmentsMyMessage = getAttachmentsMyMessage; exports.getDirectory = getDirectory; exports.getSysRsByTag = getSysRsByTag; exports.getSysRsPage = getSysRsPage; exports.useDirectory = useDirectory;