index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template>
  2. <view class="store-apply-page">
  3. <view class="hero-banner">
  4. <text class="hero-title">商家入驻申请</text>
  5. <text class="hero-desc">加入我们,共享宠物服务市场</text>
  6. </view>
  7. <view class="form-card">
  8. <view class="form-item"><text class="form-label">商家名称</text><input class="form-input" v-model="form.name"
  9. placeholder="请输入商家名称" /></view>
  10. <view class="form-item"><text class="form-label">联系人</text><input class="form-input" v-model="form.contact"
  11. placeholder="请输入联系人姓名" /></view>
  12. <view class="form-item"><text class="form-label">联系电话</text><input class="form-input" v-model="form.phone"
  13. type="number" placeholder="请输入联系电话" /></view>
  14. <view class="form-item"><text class="form-label">经营地址</text><input class="form-input" v-model="form.address"
  15. placeholder="请输入经营地址" /></view>
  16. <view class="form-item">
  17. <text class="form-label">服务类型</text>
  18. <picker :range="serviceTypes" @change="onTypeChange">
  19. <view class="picker-value">{{ form.serviceType || '请选择' }}</view>
  20. </picker>
  21. </view>
  22. <view class="form-item column"><text class="form-label">商家简介</text><textarea class="form-textarea"
  23. v-model="form.intro" placeholder="请简要介绍商家情况"></textarea></view>
  24. </view>
  25. <button class="submit-btn" @click="onSubmit">提交申请</button>
  26. </view>
  27. </template>
  28. <script setup>
  29. import { reactive } from 'vue'
  30. const serviceTypes = ['宠物接送', '上门喂遛', '上门洗护', '宠物就医', '综合服务']
  31. const form = reactive({ name: '', contact: '', phone: '', address: '', serviceType: '', intro: '' })
  32. const onTypeChange = (e) => { form.serviceType = serviceTypes[e.detail.value] }
  33. const onSubmit = () => {
  34. if (!form.name || !form.phone) { uni.showToast({ title: '请填写必要信息', icon: 'none' }); return }
  35. uni.showToast({ title: '申请已提交,请等待审核', icon: 'success' })
  36. setTimeout(() => uni.navigateBack(), 1500)
  37. }
  38. </script>
  39. <style lang="scss" scoped>
  40. .store-apply-page {
  41. min-height: 100vh;
  42. background: #f7f8fa;
  43. padding-bottom: 160rpx;
  44. }
  45. .hero-banner {
  46. background: linear-gradient(135deg, #ffd53f, #ff9500);
  47. padding: 80rpx 40rpx 60rpx;
  48. }
  49. .hero-title {
  50. display: block;
  51. font-size: 44rpx;
  52. font-weight: 900;
  53. color: #fff;
  54. }
  55. .hero-desc {
  56. display: block;
  57. font-size: 28rpx;
  58. color: rgba(255, 255, 255, 0.85);
  59. margin-top: 12rpx;
  60. }
  61. .form-card {
  62. background: #fff;
  63. border-radius: 32rpx 32rpx 0 0;
  64. margin-top: -30rpx;
  65. padding: 40rpx 32rpx;
  66. position: relative;
  67. z-index: 3;
  68. }
  69. .form-item {
  70. display: flex;
  71. align-items: center;
  72. padding: 28rpx 0;
  73. border-bottom: 2rpx solid #EEEEEE;
  74. }
  75. .form-item.column {
  76. flex-direction: column;
  77. align-items: flex-start;
  78. }
  79. .form-item:last-child {
  80. border-bottom: none;
  81. }
  82. .form-label {
  83. width: 180rpx;
  84. font-size: 28rpx;
  85. color: #333;
  86. flex-shrink: 0;
  87. margin-bottom: 16rpx;
  88. }
  89. .form-input {
  90. flex: 1;
  91. font-size: 28rpx;
  92. color: #333;
  93. text-align: right;
  94. }
  95. .picker-value {
  96. font-size: 28rpx;
  97. color: #333;
  98. }
  99. .form-textarea {
  100. width: 100%;
  101. font-size: 28rpx;
  102. color: #333;
  103. height: 200rpx;
  104. background: #f9f9f9;
  105. border-radius: 16rpx;
  106. padding: 20rpx;
  107. }
  108. .submit-btn {
  109. margin: 40rpx 32rpx;
  110. width: calc(100% - 64rpx);
  111. height: 96rpx;
  112. background: linear-gradient(90deg, #ffd53f, #ff9500);
  113. color: #fff;
  114. border: none;
  115. border-radius: 48rpx;
  116. font-size: 32rpx;
  117. font-weight: bold;
  118. line-height: 96rpx;
  119. }
  120. </style>