diff --git a/frontend/components.d.ts b/frontend/components.d.ts
index 1bbeec5..92bd16a 100644
--- a/frontend/components.d.ts
+++ b/frontend/components.d.ts
@@ -62,6 +62,7 @@ declare module 'vue' {
ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
ElTooltip: typeof import('element-plus/es')['ElTooltip']
+ GuideImage: typeof import('./src/components/GuideImage.vue')['default']
InAppBrowserPrompt: typeof import('./src/components/InAppBrowserPrompt.vue')['default']
MobileBottomNav: typeof import('./src/components/MobileBottomNav.vue')['default']
RouterLink: typeof import('vue-router')['RouterLink']
diff --git a/frontend/src/assets/tencent-security-guide.webp b/frontend/src/assets/tencent-security-guide.webp
new file mode 100644
index 0000000..6c778d9
Binary files /dev/null and b/frontend/src/assets/tencent-security-guide.webp differ
diff --git a/frontend/src/components/GuideImage.vue b/frontend/src/components/GuideImage.vue
new file mode 100644
index 0000000..7dfd0cd
--- /dev/null
+++ b/frontend/src/components/GuideImage.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
![示例大图]()
+
+
+
+
+
+
diff --git a/frontend/src/features/seller/composables/usePublishDraft.ts b/frontend/src/features/seller/composables/usePublishDraft.ts
index 5f38b59..303ce33 100644
--- a/frontend/src/features/seller/composables/usePublishDraft.ts
+++ b/frontend/src/features/seller/composables/usePublishDraft.ts
@@ -17,6 +17,7 @@ export function defaultPublishForm(): PublishForm {
login_method: '',
online_start: '',
online_end: '',
+ unlock_said: '',
ban_record: '',
common_regions: [],
depositAmountYuan: '',
diff --git a/frontend/src/features/seller/composables/usePublishForm.ts b/frontend/src/features/seller/composables/usePublishForm.ts
index 5c0ff32..3cc7f05 100644
--- a/frontend/src/features/seller/composables/usePublishForm.ts
+++ b/frontend/src/features/seller/composables/usePublishForm.ts
@@ -285,6 +285,7 @@ export function usePublishForm(options: UsePublishFormOptions) {
login_method: listing.login_platform || '',
online_start: stringValue(onlineTime.start),
online_end: stringValue(onlineTime.end),
+ unlock_said: stringValue(summary.unlock_said),
ban_record: stringValue(summary.ban_record),
common_regions: stringArray(summary.common_regions),
depositAmountYuan: listing.deposit_amount_cent > 0 ? listing.deposit_amount_cent / 100 : '',
@@ -730,6 +731,7 @@ export function usePublishForm(options: UsePublishFormOptions) {
}
}
if (pricing.banRecordOptions.value.length && !form.ban_record) return '请选择封禁记录'
+ if (!form.unlock_said) return '请选择是否解锁赛伊德'
if (form.depositAmountYuan === '' || Number(form.depositAmountYuan) < 0) return '请填写押金'
if (!Number.isFinite(Number(form.depositAmountYuan))) return '押金格式不正确'
if (
@@ -825,6 +827,7 @@ export function usePublishForm(options: UsePublishFormOptions) {
start: form.online_start,
end: form.online_end,
},
+ unlock_said: form.unlock_said,
ban_record: form.ban_record,
common_regions: form.common_regions,
remark: form.remark,
diff --git a/frontend/src/features/seller/views/MobileSellerListingCreateView.vue b/frontend/src/features/seller/views/MobileSellerListingCreateView.vue
index 961d6a0..a6263b7 100644
--- a/frontend/src/features/seller/views/MobileSellerListingCreateView.vue
+++ b/frontend/src/features/seller/views/MobileSellerListingCreateView.vue
@@ -6,6 +6,8 @@ import MobileBottomNav from '@/components/MobileBottomNav.vue'
import { usePublishForm } from '@/features/seller/composables/usePublishForm'
import { formatMoney } from '@/shared/utils/money'
import type { AgreementContent } from '@/features/listings/api/listingOptions'
+import GuideImage from '@/components/GuideImage.vue'
+import tencentSecurityGuide from '@/assets/tencent-security-guide.webp'
const {
commonOnlineTimes,
@@ -115,6 +117,13 @@ function openPublishAgreement(agreement: AgreementContent) {
function selectRadio(value: T, setter: (value: T) => void) {
setter(value)
}
+
+const unlockSaidOptions = ['是', '否']
+
+// 截图槽位的指导示例图(仅展示、点击放大,不占用上传数量)
+const screenshotGuides: Record = {
+ tencentSecurity: tencentSecurityGuide,
+}
@@ -356,6 +365,23 @@ function selectRadio(value: T, setter: (value: T) => void) {
优先推荐【账密登录】,出售速度约为扫码的数倍,两种方式安全性一致,账密登录更便捷,请自行衡量
+
+
+
+
+
+
+
+
(value: T, setter: (value: T) => void) {
{{
getScreenshotLimitHint(slot.key)
}}
+
(null)
const activeAgreementTitle = computed(() => activeAgreement.value?.title || '协议内容')
const activeAgreementContent = computed(() => activeAgreement.value?.content || '')
+const unlockSaidOptions = ['是', '否']
+
+// 截图槽位的指导示例图(仅展示、点击放大,不占用上传数量)
+const screenshotGuides: Record = {
+ tencentSecurity: tencentSecurityGuide,
+}
+
function toggleSkinOption(value: string | number) {
toggleSkin(String(value))
}
@@ -322,6 +331,15 @@ function selectDailyLoss(value: string | number) {
+
+
+
+
+
在线开始*
@@ -427,6 +445,11 @@ function selectDailyLoss(value: string | number) {
{{
getScreenshotLimitHint(slot.key)
}}
+