details.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <FlexCol :padding="30" :gap="20">
  3. <Image
  4. src="https://mn.wenlvti.net/app_static/xiangan/banner_dig_1.jpg"
  5. :radius="20"
  6. round
  7. mode="widthFix"
  8. :width="690"
  9. />
  10. <FlexRow align="center" :gap="10" backgroundColor="white" :padding="20" :radius="20">
  11. <FlexRow flexBasis="50%">
  12. <Text :fontSize="30" text="已认领:" />
  13. <Width :width="20" />
  14. <Text :fontSize="30" color="primary" :text="decodeURIComponent(querys.name)" />
  15. </FlexRow>
  16. <FlexRow flexBasis="50%" align="center">
  17. <Text :fontSize="30" color="text.content" :text="`文化积分: `" />
  18. <Text :fontSize="40" fontFamily="Rockwell" color="primary" :text="querys.points" />
  19. <Width :width="20" />
  20. <Text :fontSize="40" fontFamily="Rockwell" color="primary" :text="`Lv.${querys.level}`" />
  21. </FlexRow>
  22. </FlexRow>
  23. <Touchable
  24. direction="column"
  25. touchable
  26. :radius="20"
  27. :padding="30"
  28. align="center"
  29. backgroundColor="background.primary"
  30. @click="goCollect"
  31. >
  32. <Icon icon="edit-filling" color="primary" :size="100" />
  33. <Height :height="20" />
  34. <Text :fontSize="34">写随手记</Text>
  35. <Text :fontSize="22" color="gray">写随手记,记录下村庄文化发现和思考,自动分类</Text>
  36. <Text :fontSize="22" color="gray">也可点击下方进入指定的分类采集信息</Text>
  37. </Touchable>
  38. <FlexCol :gap="20">
  39. <Alert
  40. v-if="!authStore.isAdmin && isEmpty"
  41. type="warning"
  42. message="您当前没有可完成的任务"
  43. description="请联系管理员认领可采编栏目"
  44. />
  45. <CollectModuleList
  46. :villageId="querys.villageId"
  47. :villageVolunteerId="querys.villageVolunteerId"
  48. :taskName="''"
  49. :taskTitle="''"
  50. :taskPid="0"
  51. />
  52. </FlexCol>
  53. <XBarSpace />
  54. </FlexCol>
  55. </template>
  56. <script setup lang="ts">
  57. import { useLoadQuerys } from '@/common/composeabe/LoadQuerys';
  58. import { useAuthStore } from '@/store/auth';
  59. import { useCollectStore } from '@/store/collect';
  60. import { useTaskEntryForm } from './forms/composeable/TaskEntryForm';
  61. import Icon from '@/components/basic/Icon.vue';
  62. import Text from '@/components/basic/Text.vue';
  63. import Touchable from '@/components/feedback/Touchable.vue';
  64. import Height from '@/components/layout/space/Height.vue';
  65. import FlexCol from '@/components/layout/FlexCol.vue';
  66. import Image from '@/components/basic/Image.vue';
  67. import FlexRow from '@/components/layout/FlexRow.vue';
  68. import CollectModuleList from './components/CollectModuleList.vue';
  69. import XBarSpace from '@/components/layout/space/XBarSpace.vue';
  70. import Width from '@/components/layout/space/Width.vue';
  71. import Alert from '@/components/feedback/Alert.vue';
  72. const { querys } = useLoadQuerys({
  73. name: '',
  74. points: 0,
  75. level: 0,
  76. villageId: 0,
  77. villageVolunteerId: 0,
  78. });
  79. const authStore = useAuthStore();
  80. const { canCollect, isEmpty } = useCollectStore();
  81. const { goForm } = useTaskEntryForm();
  82. function goCollect() {
  83. if (!canCollect('collect')) {
  84. uni.showToast({
  85. title: '您当前没有可采编随手记的权限',
  86. icon: 'none',
  87. duration: 2000
  88. });
  89. return;
  90. }
  91. goForm('collect', 1, '随手记')
  92. }
  93. </script>