|
|
@@ -193,7 +193,7 @@ const props = defineProps({
|
|
|
// 参数如columns
|
|
|
mobilePrimaryFields: { type: Array, default: () => [] },
|
|
|
// API 请求函数
|
|
|
- api: { type: Function, required: true },
|
|
|
+ api: { type: Function },
|
|
|
// 查询参数
|
|
|
queryParams: { type: Object, default: () => ({}) },
|
|
|
// 是否立即加载
|
|
|
@@ -226,6 +226,8 @@ const props = defineProps({
|
|
|
showSummary: { type: Boolean, default: false },
|
|
|
// 自定义总计数据,若不传则尝试使用 api 响应中的 res.sum
|
|
|
summaryData: { type: Object, default: () => null },
|
|
|
+ // 传入的静态数据,有此数据时则不发起 api 请求
|
|
|
+ data: { type: Array, default: () => null },
|
|
|
// 自定义的合计计算方法,如果配置了,则使用该方法计算总计数据
|
|
|
summaryMethod: { type: Function, default: null },
|
|
|
// 总计行第一列的默认文本
|
|
|
@@ -546,6 +548,13 @@ const setDetailVisible = (visible) => {
|
|
|
|
|
|
// ========== 数据加载 ==========
|
|
|
const loadData = async () => {
|
|
|
+ if (props.data) {
|
|
|
+ tableData.value = props.data
|
|
|
+ if (props.summaryData) {
|
|
|
+ internalSummaryData.value = props.summaryData
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
tableData.value = []
|
|
|
if (loading.value) return
|
|
|
loading.value = true
|
|
|
@@ -691,6 +700,18 @@ const handleResize = () => {
|
|
|
}
|
|
|
// #endif
|
|
|
// ========== 监听参数变化 ==========
|
|
|
+watch(() => props.data, (newData) => {
|
|
|
+ if (newData) {
|
|
|
+ tableData.value = newData
|
|
|
+ }
|
|
|
+}, { deep: true, immediate: true })
|
|
|
+
|
|
|
+watch(() => props.summaryData, (newSum) => {
|
|
|
+ if (props.data && newSum) {
|
|
|
+ internalSummaryData.value = newSum
|
|
|
+ }
|
|
|
+}, { deep: true, immediate: true })
|
|
|
+
|
|
|
watch(() => props.queryParams, () => {
|
|
|
nextTick(() => {
|
|
|
// refreshTable()
|