|
@@ -41,6 +41,9 @@
|
|
/>
|
|
/>
|
|
</template>
|
|
</template>
|
|
</SimpleInput>
|
|
</SimpleInput>
|
|
|
|
+ <button class="tab-button" v-if="showTableSwitch" @click="tableListShow=!tableListShow">
|
|
|
|
+ ▼ 清单
|
|
|
|
+ </button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -53,7 +56,25 @@
|
|
>
|
|
>
|
|
<!-- 新闻列表 -->
|
|
<!-- 新闻列表 -->
|
|
<SimplePageContentLoader :loader="newsLoader">
|
|
<SimplePageContentLoader :loader="newsLoader">
|
|
- <div class="list">
|
|
|
|
|
|
+ <div v-if="tableListShow" class="table-list">
|
|
|
|
+ <table>
|
|
|
|
+ <thead>
|
|
|
|
+ <tr>
|
|
|
|
+ <th>序号</th>
|
|
|
|
+ <th>{{ tableSwitchOptions.title ?? '标题'}}</th>
|
|
|
|
+ <th v-for="(t, k) in newsLoader.list.value[0]?.addItems || []" :key="k">{{ t.name }}</th>
|
|
|
|
+ </tr>
|
|
|
|
+ </thead>
|
|
|
|
+ <tbody>
|
|
|
|
+ <tr v-for="(item, k) in newsLoader.list.value" :key="item.id">
|
|
|
|
+ <td>{{ k + 1 }}</td>
|
|
|
|
+ <td>{{ item.title }}</td>
|
|
|
|
+ <td v-for="(t, k) in item.addItems || []" :key="k">{{ t.text }}</td>
|
|
|
|
+ </tr>
|
|
|
|
+ </tbody>
|
|
|
|
+ </table>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else class="list">
|
|
<div
|
|
<div
|
|
v-for="(item, k) in newsLoader.list.value"
|
|
v-for="(item, k) in newsLoader.list.value"
|
|
:key="item.id"
|
|
:key="item.id"
|
|
@@ -66,7 +87,7 @@
|
|
/>
|
|
/>
|
|
<TitleDescBlock
|
|
<TitleDescBlock
|
|
:title="item.title"
|
|
:title="item.title"
|
|
- :desc="item.desc || item.title"
|
|
|
|
|
|
+ :desc="item.desc"
|
|
>
|
|
>
|
|
<template #addon>
|
|
<template #addon>
|
|
<div v-if="item.bottomTags" class="tags">
|
|
<div v-if="item.bottomTags" class="tags">
|
|
@@ -133,11 +154,21 @@ export interface DropDownNames {
|
|
defaultSelectedValue: number|string,
|
|
defaultSelectedValue: number|string,
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+const tableListShow = ref(false);
|
|
|
|
+
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
title: {
|
|
title: {
|
|
type: String,
|
|
type: String,
|
|
default: '',
|
|
default: '',
|
|
},
|
|
},
|
|
|
|
+ showTableSwitch: {
|
|
|
|
+ type: Boolean,
|
|
|
|
+ default: false,
|
|
|
|
+ },
|
|
|
|
+ tableSwitchOptions: {
|
|
|
|
+ type: Object,
|
|
|
|
+ default: () => ({}),
|
|
|
|
+ },
|
|
showNav: {
|
|
showNav: {
|
|
type: Boolean,
|
|
type: Boolean,
|
|
default: false,
|
|
default: false,
|
|
@@ -266,7 +297,7 @@ function handleShowDetail(item: any) {
|
|
}
|
|
}
|
|
|
|
|
|
const newsLoader = useSimplePagerDataLoader(props.pageSize, (page, size) => props.load(
|
|
const newsLoader = useSimplePagerDataLoader(props.pageSize, (page, size) => props.load(
|
|
- page, size,
|
|
|
|
|
|
+ tableListShow.value ? 1 : page, tableListShow.value ? 100 : size,
|
|
selectedTag.value,
|
|
selectedTag.value,
|
|
searchText.value,
|
|
searchText.value,
|
|
dropDownValues.value,
|
|
dropDownValues.value,
|
|
@@ -284,6 +315,9 @@ watch(() => props.dropDownNames, () => {
|
|
watch(selectedTag, () => {
|
|
watch(selectedTag, () => {
|
|
newsLoader.loadData(undefined, true);
|
|
newsLoader.loadData(undefined, true);
|
|
})
|
|
})
|
|
|
|
+watch(tableListShow, () => {
|
|
|
|
+ newsLoader.loadData(undefined, true);
|
|
|
|
+})
|
|
|
|
|
|
function loadDropValues() {
|
|
function loadDropValues() {
|
|
dropDownValues.value = [];
|
|
dropDownValues.value = [];
|