const render = global => { async function getCloudBaseApp() { const app = cloudbase.init({ env: "cloud1-6gbxfp9x33ff3b7c", }); // 登录 const auth = app.auth({ persistence: "local" }); const loginState = await auth.getLoginState(); // 匿名登录 if (!loginState) { await auth.anonymousAuthProvider().signIn(); } return app; } global.layui.use(["jquery", "laypage"], async function () { var laypage = layui.laypage; var $ = layui.jquery; var selectFiles = []; var data = { Administration: [], page: 1, pageSize: 20, }; // 配置环境 const app = await getCloudBaseApp(); const db = app.database(); const _ = db.command; let database = db.collection("data_asset"); let count = await database.count(); count = count ? count.total : 0; let ori = await database .skip(0) .limit(count) .get(); let li = ori.data || []; data.Administration = sort(li); let len = data.Administration.length; for (let i = 0; i < len; i++) { const v = (data.Administration || [])[i]; let url = v.url.split("/").reverse(); url[0] && (v.downUrl = "https://636c-cloud1-6gbxfp9x33ff3b7c-1306051304.tcb.qcloud.la/" + url[0]); } //执行渲染. laypage.render({ elem: "page", limit: data.pageSize, count, //数据总数,从服务端得到 jump: async function (obj, first) { //obj包含了当前分页的所有参数,比如: console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。 data.page = obj.curr; render_table(); }, }); // 渲染table function render_table() { let tb = $(".tb"); tb.html(""); let act = (data.page - 1) * data.pageSize; let end = data.page * data.pageSize; if (end > data.Administration.length) end = data.Administration.length; for (let i = act; i < end; i++) { const v = data.Administration[i]; let type = ""; if (v.type == "video") type = "视频"; else type = "图片"; let tr = $(""); let tdType = $("" + type + ""); let tdImg = v.type == "img" ? $("") : $("-"); let tdUrl = $("" + v.url + ""); let tdTool = $( '删除' ); tr.append(tdType); tr.append(tdUrl); tr.append(tdImg); tr.append(tdTool); tb.append(tr); } } $(".tb").on("click", ".delete", function () { let obj = data.Administration[$(this).attr("data-index")]; let remove = $(this).parent().parent(); console.log("---"); //删除 layer.confirm("确定要删除该文件么", async function (index) { layer.close(index); //向服务端发送删除指令 try { // 数据库删除 await database .where({ _id: _.eq(obj._id), }) .remove(); // 云存储删除 await app.deleteFile({ fileList: [obj.url], }); remove.remove(); layer.msg("删除成功"); } catch (err) { layer.msg("删除失败"); } }); }); $("#up").change(function () { let filesList = document.getElementById("up").files || []; let pathlist = document.getElementById("up").value.split("\\"); pathlist.pop(); data.filePath = pathlist.join("\\") + "\\"; selectFiles = []; let err = ""; for (let i = 0; i < filesList.length; i++) { const f = filesList[i]; let file = { name: f.name, type: /image\/\w+/.test(f.type) ? "img" : /^video/.test(f.type) ? "video" : "orther", file: f, }; if (file.type == "orther") { err = "已过滤非音视频文件"; continue; } if (file.type != "img") { var url = null; if (window.createObjectURL != undefined) { // basic url = window.createObjectURL(f); } else if (window.URL != undefined) { // mozilla(firefox) url = window.URL.createObjectURL(f); } else if (window.webkitURL != undefined) { // webkit or chrome url = window.webkitURL.createObjectURL(f); } $(".upImg").append($("