|
@@ -6,6 +6,21 @@
|
|
|
@search="search"
|
|
@search="search"
|
|
|
/>
|
|
/>
|
|
|
<Height :height="20" />
|
|
<Height :height="20" />
|
|
|
|
|
+ <DropdownMenu>
|
|
|
|
|
+ <DropdownMenuItem
|
|
|
|
|
+ v-model="filterStatus"
|
|
|
|
|
+ :options="[
|
|
|
|
|
+ { text: '全部状态', value: -100 },
|
|
|
|
|
+ { text: '未通过', value: CommonInfoModel.STATUS_REJECT },
|
|
|
|
|
+ { text: '待审核', value: CommonInfoModel.STATUS_AUDIT },
|
|
|
|
|
+ { text: '审核通过', value: CommonInfoModel.STATUS_PASS },
|
|
|
|
|
+ { text: '专家评估', value: CommonInfoModel.STATUS_EXPERT },
|
|
|
|
|
+ { text: '终审', value: CommonInfoModel.STATUS_FINAL },
|
|
|
|
|
+ ]"
|
|
|
|
|
+ type="single-check"
|
|
|
|
|
+ />
|
|
|
|
|
+ </DropdownMenu>
|
|
|
|
|
+ <Height :height="20" />
|
|
|
<SimplePageListLoader :loader="listLoader" :noEmpty="true">
|
|
<SimplePageListLoader :loader="listLoader" :noEmpty="true">
|
|
|
<template #empty>
|
|
<template #empty>
|
|
|
<Empty image="search" description="这里还没提交过投稿,快来去写吧!">
|
|
<Empty image="search" description="这里还没提交过投稿,快来去写吧!">
|
|
@@ -44,16 +59,17 @@
|
|
|
<Tag
|
|
<Tag
|
|
|
size="small"
|
|
size="small"
|
|
|
:text="(item.statusText as string)"
|
|
:text="(item.statusText as string)"
|
|
|
- :type="selectObjectByType(item.status as string, '0', {
|
|
|
|
|
- '-1': 'danger',
|
|
|
|
|
- '0': 'default',
|
|
|
|
|
- '1': 'warning',
|
|
|
|
|
- '2': 'primary',
|
|
|
|
|
- '3': 'primary',
|
|
|
|
|
- '4': 'success',
|
|
|
|
|
|
|
+ :type="selectObjectByType(item.status as string, CommonInfoModel.STATUS_REJECT.toString(), {
|
|
|
|
|
+ [CommonInfoModel.STATUS_REJECT]: 'danger',
|
|
|
|
|
+ [CommonInfoModel.STATUS_DRAFT]: 'default',
|
|
|
|
|
+ [CommonInfoModel.STATUS_AUDIT]: 'warning',
|
|
|
|
|
+ [CommonInfoModel.STATUS_PASS]: 'primary',
|
|
|
|
|
+ [CommonInfoModel.STATUS_EXPERT]: 'primary',
|
|
|
|
|
+ [CommonInfoModel.STATUS_FINAL]: 'success',
|
|
|
})"
|
|
})"
|
|
|
/>
|
|
/>
|
|
|
</FlexRow>
|
|
</FlexRow>
|
|
|
|
|
+ <Text v-if="item.opinion" :size="23" :text="`审核意见: ${item.opinion}`" />
|
|
|
</FlexCol>
|
|
</FlexCol>
|
|
|
</FlexRow>
|
|
</FlexRow>
|
|
|
<Icon icon="arrow-right-bold" color="primary" :size="36" />
|
|
<Icon icon="arrow-right-bold" color="primary" :size="36" />
|
|
@@ -65,7 +81,7 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { ref } from 'vue';
|
|
|
|
|
|
|
+import { ref, watch } from 'vue';
|
|
|
import { onPullDownRefresh } from '@dcloudio/uni-app';
|
|
import { onPullDownRefresh } from '@dcloudio/uni-app';
|
|
|
import { DataDateUtils } from '@imengyu/js-request-transform';
|
|
import { DataDateUtils } from '@imengyu/js-request-transform';
|
|
|
import { useSimplePageListLoader } from '@/common/composeabe/SimplePageListLoader';
|
|
import { useSimplePageListLoader } from '@/common/composeabe/SimplePageListLoader';
|
|
@@ -88,11 +104,13 @@ import XBarSpace from '@/components/layout/space/XBarSpace.vue';
|
|
|
import FlexRow from '@/components/layout/FlexRow.vue';
|
|
import FlexRow from '@/components/layout/FlexRow.vue';
|
|
|
import Tag from '@/components/display/Tag.vue';
|
|
import Tag from '@/components/display/Tag.vue';
|
|
|
import Icon from '@/components/basic/Icon.vue';
|
|
import Icon from '@/components/basic/Icon.vue';
|
|
|
-import { waitTimeOut } from '@imengyu/imengyu-utils';
|
|
|
|
|
|
|
+import DropdownMenu from '@/components/feedback/DropdownMenu.vue';
|
|
|
|
|
+import DropdownMenuItem from '@/components/feedback/DropdownMenuItem.vue';
|
|
|
|
|
|
|
|
const searchText = ref('');
|
|
const searchText = ref('');
|
|
|
const authStore = useAuthStore();
|
|
const authStore = useAuthStore();
|
|
|
const collectStore = useCollectStore();
|
|
const collectStore = useCollectStore();
|
|
|
|
|
+const filterStatus = ref(-100);
|
|
|
|
|
|
|
|
const listLoader = useSimplePageListLoader<CommonInfoModel>(8, async (page, pageSize) => {
|
|
const listLoader = useSimplePageListLoader<CommonInfoModel>(8, async (page, pageSize) => {
|
|
|
let res = await VillageInfoApi.getList(
|
|
let res = await VillageInfoApi.getList(
|
|
@@ -105,6 +123,7 @@ const listLoader = useSimplePageListLoader<CommonInfoModel>(8, async (page, page
|
|
|
undefined,
|
|
undefined,
|
|
|
page,
|
|
page,
|
|
|
pageSize,
|
|
pageSize,
|
|
|
|
|
+ filterStatus.value === -100 ? undefined : filterStatus.value,
|
|
|
)
|
|
)
|
|
|
if (searchText.value)
|
|
if (searchText.value)
|
|
|
res = res.filter((p) => p.title.includes(searchText.value));
|
|
res = res.filter((p) => p.title.includes(searchText.value));
|
|
@@ -136,6 +155,10 @@ const { querys } = useLoadQuerys({
|
|
|
listLoader.loadData(querys)
|
|
listLoader.loadData(querys)
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
+watch(filterStatus, () => {
|
|
|
|
|
+ listLoader.loadData(undefined, true);
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
onPullDownRefresh(() => {
|
|
onPullDownRefresh(() => {
|
|
|
listLoader.loadData(undefined, true);
|
|
listLoader.loadData(undefined, true);
|
|
|
});
|
|
});
|