@vrx-arco/pro-components
Version:
<p align="center"> <img src="https://vrx-arco.github.io/arco-design-pro/favicon.svg" width="200" height="250"> </p>
157 lines (156 loc) • 4.36 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const vue = require("vue");
const webVue = require("@arco-design/web-vue");
const use = require("@vrx-arco/use");
const index = require("../ProList/index.js");
const props = require("../ProPagination/props.js");
const ProCardList = /* @__PURE__ */ vue.defineComponent({
name: "vrx-arco-pro-card-list",
props: __spreadProps(__spreadValues({}, props.proPaginationProps()), {
bottomOffset: {
type: Number,
default: 0
},
/**
* 等同于 v-for的 key,用于性能优化
*/
rowKey: String,
/**
* 根据数据key值筛选每个卡片获取的数据,可传递类似 "res.data.data" 的路径字符串
*/
dataKey: String,
/**
* 加载状态
*/
loading: {
type: Boolean,
default: false
},
/**
* 列表的最大高度受控
*/
maxHeight: [Number, String],
/**
* 一行显示的列数
*/
column: {
type: [Number, Object],
default: () => ({
xs: 1,
sm: 2,
md: 2,
lg: 3,
xl: 3,
xxl: 4
})
},
/**
* item的间距
*/
gutter: {
type: [Number, Array],
default: 0
}
}),
emits: {
/**
* @zh 表格分页发生改变时触发
* @en Triggered when the table pagination changes
* @param {number} page
*/
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unused-vars
pageChange: (page) => true,
/**
* @zh 表格每页数据数量发生改变时触发
* @en Triggered when the number of data per page of the table changes
* @param {number} pageSize
*/
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unused-vars
pageSizeChange: (pageSize) => true,
// @ts-ignore
// eslint-disable-next-line @typescript-eslint/no-unused-vars
itemClick: (item, index2) => true
},
setup: (props2, {
emit,
slots
}) => {
const column = vue.toRef(props2, "column");
const gutter = vue.toRef(props2, "gutter");
const {
gridProps
} = use.useGrid(true, column, gutter);
return () => {
const {
pagination,
paginationProps,
data,
rowKey,
bottomOffset,
loading,
dataKey,
maxHeight
} = props2;
return vue.createVNode(index.ProList, {
"data": data,
"bordered": false,
"split": false,
"pagination": pagination,
"paginationProps": paginationProps,
"onPageChange": (current) => {
emit("pageChange", current);
},
"onPageSizeChange": (pageSize) => {
emit("pageSizeChange", pageSize);
},
"rowKey": rowKey,
"dataKey": dataKey,
"loading": loading,
"bottomOffset": bottomOffset,
"maxHeight": maxHeight,
"gridProps": gridProps.value
}, {
header: slots.header,
item: ({
item,
index: index2
}) => vue.createVNode(webVue.Card, vue.mergeProps({
"hoverable": true
}, {
onClick: () => emit("itemClick", item, index2)
}), {
default: () => {
var _a;
return [(_a = slots.item) == null ? void 0 : _a.call(slots, {
item,
index: index2
})];
}
})
});
};
}
});
exports.ProCardList = ProCardList;