| | |
| | | <script lang="ts" setup> |
| | | import type { WxCpActivityApi } from '#/api/wxcp/activity'; |
| | | |
| | | import { ref } from 'vue'; |
| | | import { computed, ref } from 'vue'; |
| | | |
| | | import { useVbenModal } from '@vben/common-ui'; |
| | | import { Alert, Button, message } from 'ant-design-vue'; |
| | | |
| | | import { pushActivity } from '#/api/wxcp/activity'; |
| | | import { ACTIVITY_TYPE, pushActivity } from '#/api/wxcp/activity'; |
| | | |
| | | import PushScopePicker from '../../components/push-scope-picker.vue'; |
| | | import { PUSH_SCOPE } from '../../data'; |
| | |
| | | const pushing = ref(false); |
| | | const resultMessage = ref(''); |
| | | const resultSuccess = ref(true); |
| | | |
| | | /** 按模板说明本次推送会发什么 */ |
| | | const pushHint = computed(() => { |
| | | switch (activity.value.activityType) { |
| | | case ACTIVITY_TYPE.TEXT: |
| | | return '成员会收到一条纯文本消息,内容为活动标题 + 活动详情。'; |
| | | case ACTIVITY_TYPE.MESSAGE: |
| | | return '成员会收到一张可点击的卡片消息,点击打开活动详情页。'; |
| | | case ACTIVITY_TYPE.IMAGE: |
| | | return '成员会先收到文字说明,再逐张收到上传的图片消息。'; |
| | | case ACTIVITY_TYPE.FILE: |
| | | return '成员会先收到文字说明,再逐个收到附件,可直接下载查看。'; |
| | | default: |
| | | return '成员会收到卡片消息,点击按钮打开采集页填写并提交评价。'; |
| | | } |
| | | }); |
| | | |
| | | const [Modal, modalApi] = useVbenModal({ |
| | | onOpenChange(isOpen: boolean) { |
| | |
| | | <Modal title="推送活动" class="w-2/5"> |
| | | <div class="px-4"> |
| | | <div class="mb-4 rounded bg-gray-50 p-3 text-sm dark:bg-gray-800"> |
| | | <div class="mb-1 font-medium">{{ activity.title }}</div> |
| | | <div class="text-gray-500"> |
| | | 推送后成员的企业微信会收到卡片消息,点击「立即报名」直接打开报名页。 |
| | | <div class="mb-1 font-medium"> |
| | | {{ activity.title }} |
| | | <span v-if="activity.activityTypeName" class="ml-2 text-xs text-gray-400"> |
| | | {{ activity.activityTypeName }} |
| | | </span> |
| | | </div> |
| | | <div class="text-gray-500">{{ pushHint }}</div> |
| | | </div> |
| | | |
| | | <div class="mb-2 text-sm font-medium">推送范围</div> |