增加发布协议确认配置
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
<script setup lang="ts">
|
||||
import { showDialog, showToast } from 'vant'
|
||||
import { computed, ref } from 'vue'
|
||||
import MobileBottomNav from '@/components/MobileBottomNav.vue'
|
||||
|
||||
import { usePublishForm } from '@/features/seller/composables/usePublishForm'
|
||||
import type { AgreementContent } from '@/features/listings/api/listingOptions'
|
||||
|
||||
const {
|
||||
commonOnlineTimes,
|
||||
@@ -11,6 +13,10 @@ const {
|
||||
router,
|
||||
loading,
|
||||
uploading,
|
||||
publishAgreements,
|
||||
virtualAssetSaleAgreementChecked,
|
||||
sellerAgreementChecked,
|
||||
canPublishAfterAgreements,
|
||||
fileInput,
|
||||
activeUploadKey,
|
||||
form,
|
||||
@@ -78,7 +84,15 @@ const {
|
||||
notifyError: (message) => showToast({ message, icon: 'cross' }),
|
||||
})
|
||||
|
||||
const agreementPopupVisible = ref(false)
|
||||
const activeAgreement = ref<AgreementContent | null>(null)
|
||||
const activeAgreementTitle = computed(() => activeAgreement.value?.title || '协议内容')
|
||||
const activeAgreementContent = computed(() => activeAgreement.value?.content || '')
|
||||
|
||||
function openPublishAgreement(agreement: AgreementContent) {
|
||||
activeAgreement.value = agreement
|
||||
agreementPopupVisible.value = true
|
||||
}
|
||||
|
||||
function selectRadio<T extends string>(value: T, setter: (value: T) => void) {
|
||||
setter(value)
|
||||
@@ -637,6 +651,33 @@ function selectOnlineEnd(value: string) {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="publish-agreement-card">
|
||||
<van-checkbox v-model="virtualAssetSaleAgreementChecked" icon-size="18px">
|
||||
<span class="agreement-check-label">
|
||||
我已阅读并同意
|
||||
<button
|
||||
type="button"
|
||||
class="agreement-link"
|
||||
@click.stop.prevent="openPublishAgreement(publishAgreements.virtual_asset_sale)"
|
||||
>
|
||||
《{{ publishAgreements.virtual_asset_sale.title }}》
|
||||
</button>
|
||||
</span>
|
||||
</van-checkbox>
|
||||
<van-checkbox v-model="sellerAgreementChecked" icon-size="18px">
|
||||
<span class="agreement-check-label">
|
||||
我已阅读并同意
|
||||
<button
|
||||
type="button"
|
||||
class="agreement-link"
|
||||
@click.stop.prevent="openPublishAgreement(publishAgreements.seller_agreement)"
|
||||
>
|
||||
《{{ publishAgreements.seller_agreement.title }}》
|
||||
</button>
|
||||
</span>
|
||||
</van-checkbox>
|
||||
</div>
|
||||
|
||||
<div class="publish-actions">
|
||||
<van-button
|
||||
round
|
||||
@@ -651,6 +692,7 @@ function selectOnlineEnd(value: string) {
|
||||
round
|
||||
class="submit-btn"
|
||||
:loading="loading"
|
||||
:disabled="!canPublishAfterAgreements"
|
||||
loading-text="发布中..."
|
||||
@click="handleSubmit"
|
||||
>
|
||||
@@ -659,6 +701,13 @@ function selectOnlineEnd(value: string) {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<van-popup v-model:show="agreementPopupVisible" round closeable position="bottom" lock-scroll class="publish-agreement-popup">
|
||||
<div class="agreement-popup-body">
|
||||
<h3>{{ activeAgreementTitle }}</h3>
|
||||
<div class="agreement-popup-content">{{ activeAgreementContent }}</div>
|
||||
</div>
|
||||
</van-popup>
|
||||
|
||||
<MobileBottomNav />
|
||||
</main>
|
||||
</template>
|
||||
|
||||
Reference in New Issue
Block a user