浏览代码

🎨 按要求增加文化积分页面

快乐的梦鱼 1 月之前
父节点
当前提交
424c99f6e6
共有 4 个文件被更改,包括 39 次插入9 次删除
  1. 7 0
      src/pages.json
  2. 17 0
      src/pages/dig/about/point.vue
  3. 7 3
      src/pages/dig/details.vue
  4. 8 6
      src/pages/home/dig.vue

+ 7 - 0
src/pages.json

@@ -245,6 +245,13 @@
           }
         },
         {
+          "path": "about/point",
+          "style": {
+            "navigationBarTitleText": "文化积分帮助",
+            "enablePullDownRefresh": false
+          }
+        },
+        {
           "path": "admin/index",
           "style": {
             "navigationBarTitleText": "村社文化资源挖掘平台-管理员",

+ 17 - 0
src/pages/dig/about/point.vue

@@ -0,0 +1,17 @@
+<template>
+  <FlexCol>
+    <SimplePageContentLoader :loader="loader">
+      <Parse :content="loader.content?.value?.content || ''" />
+    </SimplePageContentLoader>
+  </FlexCol>
+</template>
+
+<script setup lang="ts">
+import FlexCol from '@/components/layout/FlexCol.vue';
+import Parse from '@/components/display/parse/Parse.vue';
+import SimplePageContentLoader from '@/components/loader/SimplePageContentLoader.vue';
+import CommonContent from '@/api/CommonContent';
+import { useSimpleDataLoader } from '@/components/composeabe/loader/SimpleDataLoader';
+
+const loader = useSimpleDataLoader(async () => await CommonContent.getContentDetail(7018, undefined, 18));
+</script>

+ 7 - 3
src/pages/dig/details.vue

@@ -7,18 +7,22 @@
         radius="radius.md"
         :width="690" 
       />
-      <FlexRow align="center" :gap="10" backgroundColor="white" :padding="20" radius="radius.md">
-        <FlexRow flexBasis="50%">
+      <FlexRow justify="space-between" align="center" :gap="10" backgroundColor="white" :padding="20" radius="radius.md">
+        <FlexRow>
           <Text :fontSize="30" :text="isJoined ? '已认领:' : '未认领:'" />
           <Width :width="20" />
           <Text :fontSize="30" color="primary" :text="decodeURIComponent(querys.name)" />
         </FlexRow>
-        <FlexRow flexBasis="50%" align="center">
+        <FlexRow align="center">
           <Text :fontSize="30" color="text.content" :text="`文化积分: `" />
           <Width :width="20" />
           <Text :fontSize="40" fontFamily="SongtiSCBlack" color="primary" :text="querys.points" />
           <Width :width="20" />
           <Text :fontSize="40" fontFamily="SongtiSCBlack" color="primary" :text="`Lv.${querys.level}`" />
+          <Width :width="20" />
+          <Touchable direction="row" align="center" :gap="10" @click="navTo('/pages/dig/about/point')">
+            <Icon icon="help-filling" color="primary" :size="40" />
+          </Touchable>
         </FlexRow>
       </FlexRow>
       <BackgroundBox

+ 8 - 6
src/pages/home/dig.vue

@@ -108,7 +108,10 @@
       <FlexRow v-if="authStore.isLogged" backgroundColor="white" radius="radius.md" :padding="[40,20]">
         <FlexCol :flex="1" :gap="10" center>
           <Text fontConfig="lightGoldTitle">{{ volunteerInfoLoader.content.value?.points || 0 }}</Text>
-          <Text>文化积分</Text>
+          <Touchable direction="row" align="center" :gap="10" @click="navTo('/pages/dig/about/point')">
+            <Text>文化积分</Text>
+            <Icon icon="help-filling" color="primary" :size="40" />
+          </Touchable>
         </FlexCol>
         <FlexCol :flex="1" :gap="10" center>
           <Text fontConfig="lightGoldTitle">Lv.{{ volunteerInfoLoader.content.value?.level || 1 }}</Text>
@@ -126,10 +129,8 @@
         <Height :size="20" />
         <Text textAlign="center">尊敬的用户,您未开通线上村史的使用权限,开通后即可使用!</Text>
         <Height :size="20" />
-        <Button size="large" type="primary">
-          <WxButton openType="contact">
-            联系客服开通功能
-          </WxButton>
+        <Button size="large" type="primary" @click="showOnlinePreviewDialog = false; navTo('/pages/home/about/contract')">
+          联系客服开通功能
         </Button>
       </FlexCol>
     </CommonDialog>
@@ -161,8 +162,9 @@ import HomeLargeTitle from '@/common/components/parts/HomeLargeTitle.vue';
 import type { RequestApiError } from '@imengyu/imengyu-utils';
 import FrameButton from '@/common/components/FrameButton.vue';
 import CommonDivider from '@/common/components/CommonDivider.vue';
-import WxButton from '@/components/basic/WxButton.vue';
 import CommonDialog from '@/common/components/CommonDialog.vue';
+import Touchable from '@/components/feedback/Touchable.vue';
+import Icon from '@/components/basic/Icon.vue';
 
 const showOnlinePreviewDialog = ref(false);
 const authStore = useAuthStore();