Pārlūkot izejas kodu

修改细节问题

快乐的梦鱼 1 mēnesi atpakaļ
vecāks
revīzija
3bff23cc11

+ 29 - 1
src/api/inhert/VillageInfoApi.ts

@@ -73,6 +73,32 @@ export class CommonInfoModel extends DataModel<CommonInfoModel> {
       }
     };
   }
+
+  /**
+   * 审核不通过
+   */
+  static STATUS_REJECT = -1;
+  /**
+   * 草稿
+   */
+  static STATUS_DRAFT = 0;
+  /**
+   * 待审核
+   */
+  static STATUS_AUDIT = 1;
+  /**
+   * 审核通过
+   */
+  static STATUS_PASS = 2;
+  /**
+   * 专家评估
+   */
+  static STATUS_EXPERT = 3;
+  /**
+   * 终审
+   */ 
+  static STATUS_FINAL = 4;
+
   id !: number;
   cityAddress?: string[];
   title = '';
@@ -229,7 +255,8 @@ export class VillageInfoApi extends AppServerRequestModule<DataModel> {
     catalogId?: number|undefined,
     page?: number,
     pageSize?: number,
-    modelClassCreator: (new () => T) = CommonInfoModel as any 
+    status?: number|undefined,
+    modelClassCreator: (new () => T) = CommonInfoModel as any ,
   ) {
     return (this.post(`/village/collect/list`, {
       collect_module_id: collectModuleId,
@@ -239,6 +266,7 @@ export class VillageInfoApi extends AppServerRequestModule<DataModel> {
       catalog_id: catalogId,
       page,
       pageSize: pageSize,
+      status,
     }, '获取信息详情'))
       .then(res => transformArrayDataModel<T>(modelClassCreator, (res.data2.data || res.data2) ?? [], `获取分类列表`, true))
       .catch(e => { throw e });

+ 1 - 1
src/components/feedback/DropdownMenu.vue

@@ -5,7 +5,7 @@
     </view>
     <scroll-view scroll-x>
       <DropdownMenuProvide :isExtra="true">
-        <view class="nana-dropdown-menu-extra">
+        <view v-if="$slots.extra" class="nana-dropdown-menu-extra">
           <slot name="extra" />
         </view>
       </DropdownMenuProvide>

+ 32 - 9
src/pages/dig/forms/submits.vue

@@ -6,6 +6,21 @@
       @search="search"
     />
     <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">
       <template #empty>
         <Empty image="search" description="这里还没提交过投稿,快来去写吧!">
@@ -44,16 +59,17 @@
                 <Tag 
                   size="small"
                   :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>
+              <Text v-if="item.opinion" :size="23" :text="`审核意见: ${item.opinion}`" />
             </FlexCol>
           </FlexRow>
           <Icon icon="arrow-right-bold" color="primary" :size="36" />
@@ -65,7 +81,7 @@
 </template>
 
 <script setup lang="ts">
-import { ref } from 'vue';
+import { ref, watch } from 'vue';
 import { onPullDownRefresh } from '@dcloudio/uni-app';
 import { DataDateUtils } from '@imengyu/js-request-transform';
 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 Tag from '@/components/display/Tag.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 authStore = useAuthStore();
 const collectStore = useCollectStore();
+const filterStatus = ref(-100);
 
 const listLoader = useSimplePageListLoader<CommonInfoModel>(8, async (page, pageSize) => {
   let res = await VillageInfoApi.getList(
@@ -105,6 +123,7 @@ const listLoader = useSimplePageListLoader<CommonInfoModel>(8, async (page, page
     undefined,
     page,
     pageSize,
+    filterStatus.value === -100 ? undefined : filterStatus.value,
   )
   if (searchText.value)
     res = res.filter((p) => p.title.includes(searchText.value));
@@ -136,6 +155,10 @@ const { querys } = useLoadQuerys({
   listLoader.loadData(querys)
 });
 
+watch(filterStatus, () => {
+  listLoader.loadData(undefined, true);
+})
+
 onPullDownRefresh(() => {
   listLoader.loadData(undefined, true);
 });