<template>
|
<div class="result-wrapper" v-bind="$attrs">
|
<div class="result-content">
|
<img class="result-content-icon" :src="icon" />
|
<div class="result-content-title">{{ title }}</div>
|
<div class="result-content-remark">
|
<slot name="remark"> </slot>
|
</div>
|
</div>
|
<div class="result-order-number">
|
<div class="result-order-number-label">订单编号:</div>
|
<div class="result-order-number-value">{{ orderNo }}</div>
|
</div>
|
<div class="result-wrapper-tips">
|
<slot name="tips"> </slot>
|
</div>
|
<div class="result-wrapper-actions">
|
<slot name="actions">
|
<div class="chunk-form-actions">
|
<nut-button class="recharge-button" type="primary" @click="emit('goBackHome')">
|
<div class="recharge-button-inner">
|
<div class="recharge-button-text">返回首页</div>
|
</div>
|
</nut-button>
|
</div>
|
</slot>
|
</div>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import { computed } from 'vue';
|
import { OssAssets } from '../../constants/img';
|
import { Button as NutButton } from '@nutui/nutui-taro';
|
|
defineOptions({
|
name: 'Result',
|
});
|
|
type Props = {
|
title?: string;
|
type?: 'success' | 'fail';
|
orderNo?: string;
|
servicePhone?: string;
|
dangerTips?: string;
|
warningTips?: string;
|
customerServiceTips?: string;
|
};
|
|
const props = withDefaults(defineProps<Props>(), {});
|
|
const emit = defineEmits<{
|
(e: 'goBackHome'): void;
|
}>();
|
|
const icon = computed(() => {
|
switch (props.type) {
|
case 'success':
|
return OssAssets.result.Success;
|
case 'fail':
|
return OssAssets.result.Fail;
|
default:
|
return OssAssets.result.Success;
|
}
|
});
|
</script>
|