auth.vue 4.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <template>
  2. <view class="auth-container">
  3. <!-- 顶部提示 -->
  4. <view class="top-tip">请确保身份信息的准确,以免影响后续履约费用结算。</view>
  5. <!-- 表单信息 -->
  6. <view class="form-card">
  7. <!-- 证件类型 -->
  8. <view class="form-item">
  9. <text class="label">证件类型</text>
  10. <view class="read-only-text">居民身份证</view>
  11. </view>
  12. <!-- 真实姓名 -->
  13. <view class="form-item">
  14. <text class="label">真实姓名</text>
  15. <view class="gray-input-box">
  16. <input class="input-area" type="text" v-model="formData.name" placeholder="证件姓名" placeholder-class="input-placeholder" />
  17. </view>
  18. </view>
  19. <!-- 证件号码 -->
  20. <view class="form-item">
  21. <text class="label">证件号码</text>
  22. <view class="gray-input-box">
  23. <input class="input-area" type="idcard" v-model="formData.idNumber" placeholder="身份证号" placeholder-class="input-placeholder" />
  24. </view>
  25. </view>
  26. <!-- 有效日期 -->
  27. <view class="form-item">
  28. <text class="label">有效日期</text>
  29. <view class="gray-input-box">
  30. <picker mode="date" @change="onDateChange" style="width: 100%;">
  31. <view class="input-area" :class="{'input-placeholder': !formData.expiryDate}">
  32. {{ formData.expiryDate || '选择有效结束期限' }}
  33. </view>
  34. </picker>
  35. <!-- 箭头SVG -->
  36. <svg class="arrow-right" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg">
  37. <path d="M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-45.056L382.592 149.312a29.12 29.12 0 0 0-41.728 0z" fill="#CCCCCC"></path>
  38. </svg>
  39. </view>
  40. </view>
  41. </view>
  42. <!-- 身份证正面 -->
  43. <view class="upload-card">
  44. <view class="upload-box" @click="chooseImage('front')">
  45. <image v-if="idCardFront" :src="idCardFront" class="preview-img" mode="aspectFill"></image>
  46. <template v-else>
  47. <!-- 相机图标SVG -->
  48. <svg class="camera-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  49. <path d="M12 12C14.7614 12 17 9.76142 17 7C17 4.23858 14.7614 2 12 2C9.23858 2 7 4.23858 7 7C7 9.76142 9.23858 12 12 12Z" fill="#E0E0E0"/>
  50. <circle cx="12" cy="12" r="3" stroke="#CCCCCC" stroke-width="2"/>
  51. <path d="M20 6H17.82L16.4 4.47C15.96 4 15.34 3.73 14.68 3.73H9.32C8.66 3.73 8.04 4 7.6 4.47L6.18 6H4C2.9 6 2 6.9 2 8V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6ZM12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7C14.76 7 17 9.24 17 12C17 14.76 14.76 17 12 17Z" fill="#CCCCCC"/>
  52. </svg>
  53. <text class="upload-text">点击上传</text>
  54. </template>
  55. </view>
  56. <text class="card-label">证件带照片面</text>
  57. </view>
  58. <!-- 身份证反面 -->
  59. <view class="upload-card">
  60. <view class="upload-box" @click="chooseImage('back')">
  61. <image v-if="idCardBack" :src="idCardBack" class="preview-img" mode="aspectFill"></image>
  62. <template v-else>
  63. <!-- 相机图标SVG -->
  64. <svg class="camera-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
  65. <path d="M20 6H17.82L16.4 4.47C15.96 4 15.34 3.73 14.68 3.73H9.32C8.66 3.73 8.04 4 7.6 4.47L6.18 6H4C2.9 6 2 6.9 2 8V18C2 19.1 2.9 20 4 20H20C21.1 20 22 19.1 22 18V8C22 6.9 21.1 6 20 6ZM12 17C9.24 17 7 14.76 7 12C7 9.24 9.24 7 12 7C14.76 7 17 9.24 17 12C17 14.76 14.76 17 12 17Z" fill="#CCCCCC"/>
  66. </svg>
  67. <text class="upload-text">点击上传</text>
  68. </template>
  69. </view>
  70. <text class="card-label">证件国徽面</text>
  71. </view>
  72. <!-- 底部按钮 -->
  73. <view class="footer-btn-area">
  74. <button class="next-btn" @click="goToQualifications">下一步,完善资质</button>
  75. </view>
  76. </view>
  77. </template>
  78. <script>
  79. import logic from './auth_logic.js'; // 注意文件名可能需要对应
  80. export default logic;
  81. </script>
  82. <style>
  83. @import './auth.css';
  84. </style>