@cmstops/pro-compo
Version:
[物料平台文档中心](https://arco.design/docs/material/guide)
161 lines (160 loc) • 3.91 kB
JavaScript
;
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;