This commit is contained in:
2026-08-20 16:41:26 +08:00
parent de46a2404d
commit 4803c7320e
41 changed files with 5873 additions and 1075 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

@@ -9,7 +9,8 @@
finished-text="没有更多了"
@load="onLoad">
<div class="table-list-container">
<div v-for="(row, index) in tableData" :key="index" class="table-list-item">
<div v-for="(row, index) in tableData" :key="index" class="table-list-item"
:data-row-id="row && row.id ? row.id : ''">
<slot name="header" :index="index" :row="row">
<div class="item-header">
<div class="item-title">{{ calcTitle(row) }}</div>
@@ -91,6 +92,33 @@ module.exports = {
}
},
methods: {
/**
* 获取当前列表快照。
* 返回值包含已加载记录、分页参数和加载完成状态,供业务页面在进入详情前暂存列表现场。
*/
getListState() {
return {
tableData: JSON.parse(JSON.stringify(this.tableData)),
localPageForm: JSON.parse(JSON.stringify(this.localPageForm)),
tableFinished: this.tableFinished
}
},
/**
* 恢复列表快照。
* state 应包含 tableData、localPageForm 和 tableFinished;返回 true 表示恢复成功。
*/
restoreListState(state) {
if (!state || !Array.isArray(state.tableData)) return false
this.$set(this, "tableData", state.tableData)
this.$set(this, "localPageForm", {...this.localPageForm, ...(state.localPageForm || {})})
this.$set(this, "tableFinished", !!state.tableFinished)
this.$set(this, "tableLoading", false)
this.$set(this, "tableRefreshing", false)
this.$emit("update:page_form", {...this.localPageForm})
return true
},
calcTitle(row) {
if (!this.title) return ""
// 处理key1.key2.key3 这样的形式