zhuli 1 hónapja
szülő
commit
3878534c73
1 módosított fájl, 0 hozzáadás és 474 törlés
  1. 0 474
      src/views/home/components/realName.vue

+ 0 - 474
src/views/home/components/realName.vue

@@ -1,474 +0,0 @@
-<template>
-  <!-- 第一步:个人实名 -->
-  <div v-if="currentStep === 1" class="form-container">
-    <el-button class="back-btn" @click="handleBack"> 返回 </el-button>
-
-    <!-- 进度条 -->
-    <div class="progress-container">
-      <el-steps align-center>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">个人实名</span>
-              <span class="step-time">约3分钟</span>
-            </div>
-          </template>
-        </el-step>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">填写信息</span>
-              <span class="step-time">约30分钟</span>
-            </div>
-          </template>
-        </el-step>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">等待审核</span>
-              <span class="step-time">约1-3个工作日</span>
-            </div>
-          </template>
-        </el-step>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">入驻成功</span>
-            </div>
-          </template>
-        </el-step>
-      </el-steps>
-    </div>
-
-    <!-- 表单 -->
-    <div class="form-content">
-      <el-form :model="step1Form" :rules="step1Rules" ref="step1FormRef" label-width="120px">
-        <el-form-item label="姓名" prop="name">
-          <el-input v-model="step1Form.name" placeholder="请输入姓名" style="width: 400px" />
-        </el-form-item>
-        <el-form-item label="身份证号码" prop="idNumber">
-          <el-input v-model="step1Form.idNumber" placeholder="请输入身份证号码" style="width: 400px" />
-        </el-form-item>
-      </el-form>
-    </div>
-
-    <!-- 按钮 -->
-    <div class="form-actions">
-      <el-button type="primary" size="large" @click="handleNextStep"> 下一步 </el-button>
-    </div>
-  </div>
-  <!-- 第二步:填写信息 -->
-  <div v-if="currentStep === 2" class="form-container">
-    <el-button class="back-btn" @click="handleBack"> 返回 </el-button>
-
-    <!-- 进度条 -->
-    <div class="progress-container">
-      <el-steps :active="currentStep - 1" align-center>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">个人实名</span>
-              <span class="step-time">约3分钟</span>
-            </div>
-          </template>
-        </el-step>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">填写信息</span>
-              <span class="step-time">约30分钟</span>
-            </div>
-          </template>
-        </el-step>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">等待审核</span>
-              <span class="step-time">约1-3个工作日</span>
-            </div>
-          </template>
-        </el-step>
-        <el-step>
-          <template #title>
-            <div class="step-title-wrapper">
-              <span class="step-title">入驻成功</span>
-            </div>
-          </template>
-        </el-step>
-      </el-steps>
-    </div>
-
-    <!-- 表单内容 -->
-    <div class="form-content step2-form">
-      <el-form :model="step2Form" :rules="step2Rules" ref="step2FormRef" label-width="120px">
-        <div class="form-row">
-          <!-- 左列 -->
-          <div class="form-col">
-            <el-form-item label="店铺名称" prop="storeName">
-              <el-input v-model="step2Form.storeName" placeholder="请输入店铺名称" />
-            </el-form-item>
-
-            <el-form-item label="容纳人数" prop="capacity">
-              <el-input-number v-model="step2Form.capacity" :min="1" :max="9999" />
-            </el-form-item>
-
-            <el-form-item label="门店电话" prop="storePhone">
-              <el-input v-model="step2Form.storePhone" placeholder="请输入门店电话" />
-            </el-form-item>
-
-            <el-form-item label="门店面积" prop="storeArea">
-              <el-radio-group v-model="step2Form.storeArea">
-                <el-radio label="小于20平米"> 小于20平米 </el-radio>
-                <el-radio label="20-50平米"> 20-50平米 </el-radio>
-                <el-radio label="50-100平米"> 50-100平米 </el-radio>
-                <el-radio label="100-300平米"> 100-300平米 </el-radio>
-                <el-radio label="300-500平米"> 300-500平米 </el-radio>
-                <el-radio label="500-1000平米"> 500-1000平米 </el-radio>
-                <el-radio label="大于1000平米"> 大于1000平米 </el-radio>
-              </el-radio-group>
-            </el-form-item>
-
-            <el-form-item label="所在地区" prop="location">
-              <el-select v-model="step2Form.province" placeholder="请选择" style="width: 150px; margin-right: 10px">
-                <el-option label="省份" value="province" />
-              </el-select>
-              <el-select v-model="step2Form.city" placeholder="请选择" style="width: 150px; margin-right: 10px">
-                <el-option label="城市" value="city" />
-              </el-select>
-              <el-select v-model="step2Form.district" placeholder="请选择" style="width: 150px">
-                <el-option label="区县" value="district" />
-              </el-select>
-            </el-form-item>
-
-            <el-form-item label="详细地址" prop="detailedAddress">
-              <el-input v-model="step2Form.detailedAddress" type="textarea" :rows="3" placeholder="请输入" />
-            </el-form-item>
-
-            <el-form-item label="门店简介" prop="storeIntro">
-              <el-input v-model="step2Form.storeIntro" type="textarea" :rows="3" placeholder="请输入" />
-            </el-form-item>
-
-            <el-form-item label="经营板块" prop="businessSector">
-              <el-radio-group v-model="step2Form.businessSector">
-                <el-radio label="美食"> 美食 </el-radio>
-                <el-radio label="酒店/民宿"> 酒店/民宿 </el-radio>
-                <el-radio label="KTV"> KTV </el-radio>
-                <el-radio label="洗浴汗蒸"> 洗浴汗蒸 </el-radio>
-                <el-radio label="按摩足疗"> 按摩足疗 </el-radio>
-                <el-radio label="丽人美发"> 丽人美发 </el-radio>
-                <el-radio label="运动健身"> 运动健身 </el-radio>
-                <el-radio label="医美医疗"> 医美医疗 </el-radio>
-              </el-radio-group>
-            </el-form-item>
-
-            <el-form-item label="经营种类" prop="businessType">
-              <el-checkbox-group v-model="step2Form.businessType">
-                <el-checkbox label="小吃快餐"> 小吃快餐 </el-checkbox>
-                <el-checkbox label="鱼鲜海鲜"> 鱼鲜海鲜 </el-checkbox>
-                <el-checkbox label="烧烤烤串"> 烧烤烤串 </el-checkbox>
-                <el-checkbox label="自助餐"> 自助餐 </el-checkbox>
-                <el-checkbox label="面包蛋糕甜品"> 面包蛋糕甜品 </el-checkbox>
-                <el-checkbox label="火锅"> 火锅 </el-checkbox>
-                <el-checkbox label="水果生鲜"> 水果生鲜 </el-checkbox>
-                <el-checkbox label="特色菜"> 特色菜 </el-checkbox>
-                <el-checkbox label="中餐"> 中餐 </el-checkbox>
-                <el-checkbox label="西餐"> 西餐 </el-checkbox>
-                <el-checkbox label="烤肉"> 烤肉 </el-checkbox>
-                <el-checkbox label="韩式料理"> 韩式料理 </el-checkbox>
-                <el-checkbox label="地方菜系"> 地方菜系 </el-checkbox>
-                <el-checkbox label="日式料理"> 日式料理 </el-checkbox>
-                <el-checkbox label="轻食"> 轻食 </el-checkbox>
-              </el-checkbox-group>
-            </el-form-item>
-          </div>
-
-          <!-- 右列 -->
-          <div class="form-col">
-            <el-form-item label="门店营业状态" prop="businessStatus">
-              <el-radio-group v-model="step2Form.businessStatus">
-                <el-radio label="正常营业"> 正常营业 </el-radio>
-                <el-radio label="暂停营业"> 暂停营业 </el-radio>
-                <el-radio label="筹建中"> 筹建中 </el-radio>
-              </el-radio-group>
-            </el-form-item>
-
-            <el-form-item label="经纬度查询" prop="coordinates">
-              <el-input v-model="step2Form.coordinates" placeholder="请输入经纬度" />
-            </el-form-item>
-
-            <el-form-item label="营业执照" prop="businessLicense">
-              <el-upload
-                v-model:file-list="step2Form.businessLicenseFiles"
-                action="#"
-                list-type="picture-card"
-                :limit="1"
-                :on-exceed="handleExceed"
-              >
-                <el-icon><Plus /></el-icon>
-                <template #tip>
-                  <div class="el-upload__tip">(0/1)</div>
-                </template>
-              </el-upload>
-            </el-form-item>
-
-            <el-form-item label="合同图片" prop="contractImages">
-              <el-upload
-                v-model:file-list="step2Form.contractImageFiles"
-                action="#"
-                list-type="picture-card"
-                :limit="20"
-                :on-exceed="handleExceed"
-              >
-                <el-icon><Plus /></el-icon>
-                <template #tip>
-                  <div class="el-upload__tip">(0/20)</div>
-                </template>
-              </el-upload>
-            </el-form-item>
-
-            <el-form-item label="食品经营许可证" prop="foodLicense">
-              <el-upload
-                v-model:file-list="step2Form.foodLicenseFiles"
-                action="#"
-                list-type="picture-card"
-                :limit="1"
-                :on-exceed="handleExceed"
-              >
-                <el-icon><Plus /></el-icon>
-                <template #tip>
-                  <div class="el-upload__tip">(0/1)</div>
-                </template>
-              </el-upload>
-            </el-form-item>
-          </div>
-        </div>
-      </el-form>
-    </div>
-
-    <!-- 按钮 -->
-    <div class="form-actions">
-      <el-button size="large" @click="handlePrevStep"> 上一步 </el-button>
-      <el-button type="primary" size="large" @click="handleSubmit"> 提交 </el-button>
-    </div>
-  </div>
-</template>
-<script setup lang="ts">
-import { ref, reactive, watch } from "vue";
-import { ElMessage, ElMessageBox, type FormInstance, type FormRules } from "element-plus";
-import { Plus } from "@element-plus/icons-vue";
-
-const props = defineProps({
-  currentStep: {
-    type: Number,
-    value: 0
-  }
-});
-
-const emit = defineEmits(["update:currentStep"]);
-
-// 内部步骤状态,和父组件同步
-const currentStep = ref<number>(props.currentStep || 0);
-watch(
-  () => props.currentStep,
-  val => {
-    if (typeof val === "number") currentStep.value = val;
-  }
-);
-
-const setStep = (val: number) => {
-  currentStep.value = val;
-  emit("update:currentStep", val);
-};
-
-// 第一步表单
-const step1FormRef = ref<FormInstance>();
-const step1Form = reactive({
-  name: "",
-  idNumber: ""
-});
-
-const step1Rules: FormRules = {
-  name: [{ required: true, message: "请输入姓名", trigger: "blur" }],
-  idNumber: [
-    { required: true, message: "请输入身份证号码", trigger: "blur" },
-    {
-      pattern: /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/,
-      message: "请输入正确的身份证号码",
-      trigger: "blur"
-    }
-  ]
-};
-
-// 第二步表单
-const step2FormRef = ref<FormInstance>();
-const step2Form = reactive({
-  storeName: "",
-  capacity: 1,
-  storePhone: "",
-  storeArea: "小于20平米",
-  province: "",
-  city: "",
-  district: "",
-  detailedAddress: "",
-  storeIntro: "",
-  businessSector: "美食",
-  businessType: ["小吃快餐", "火锅"],
-  businessStatus: "正常营业",
-  coordinates: "",
-  businessLicenseFiles: [],
-  contractImageFiles: [],
-  foodLicenseFiles: []
-});
-
-const step2Rules: FormRules = {
-  storeName: [{ required: true, message: "请输入店铺名称", trigger: "blur" }],
-  storePhone: [{ required: true, message: "请输入门店电话", trigger: "blur" }],
-  storeArea: [{ required: true, message: "请选择门店面积", trigger: "change" }],
-  businessSector: [{ required: true, message: "请选择经营板块", trigger: "change" }],
-  businessType: [{ required: true, message: "请选择经营种类", trigger: "change" }],
-  coordinates: [{ required: true, message: "请输入经纬度", trigger: "blur" }],
-  businessLicense: [{ required: true, message: "请上传营业执照", trigger: "change" }],
-  contractImages: [{ required: true, message: "请上传合同图片", trigger: "change" }],
-  foodLicense: [{ required: true, message: "请上传食品经营许可证", trigger: "change" }]
-};
-
-// 处理入驻按钮
-const handleRegister = () => {
-  setStep(1);
-};
-
-// 返回按钮
-const handleBack = () => {
-  if (currentStep.value === 1) {
-    setStep(0);
-  } else if (currentStep.value === 2) {
-    setStep(1);
-  }
-};
-
-// 下一步
-const handleNextStep = async () => {
-  if (!step1FormRef.value) return;
-
-  await step1FormRef.value.validate(valid => {
-    if (valid) {
-      setStep(2);
-    } else {
-      ElMessage.error("请完善表单信息");
-    }
-  });
-};
-
-// 上一步
-const handlePrevStep = () => {
-  setStep(1);
-};
-
-// 提交
-const handleSubmit = async () => {
-  if (!step2FormRef.value) return;
-
-  await step2FormRef.value.validate(valid => {
-    if (valid) {
-      ElMessageBox.confirm("确认提交入驻申请吗?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(() => {
-          // 这里可以调用API提交数据
-          ElMessage.success("提交成功,等待审核");
-          setStep(3); // 跳转到等待审核步骤
-        })
-        .catch(() => {
-          // 取消提交
-        });
-    } else {
-      ElMessage.error("请完善表单信息");
-    }
-  });
-};
-
-// 文件上传超出限制
-const handleExceed = () => {
-  ElMessage.warning("文件数量超出限制");
-};
-</script>
-
-<style scoped lang="scss">
-// 表单页面样式
-.form-container {
-  min-height: calc(100vh - 100px);
-  padding: 30px;
-  background: #ffffff;
-  border-radius: 8px;
-  .back-btn {
-    margin-bottom: 30px;
-    color: #606266;
-    border-color: #dcdfe6;
-  }
-  .progress-container {
-    padding: 0 100px;
-    margin-bottom: 40px;
-    :deep(.el-steps) {
-      .el-step__head {
-        .el-step__icon {
-          width: 30px;
-          height: 30px;
-          font-size: 16px;
-          font-weight: 600;
-        }
-      }
-      .el-step__title {
-        .step-title-wrapper {
-          display: flex;
-          flex-direction: column;
-          gap: 8px;
-          align-items: center;
-          .step-title {
-            font-size: 16px;
-            font-weight: 600;
-            color: #303133;
-          }
-          .step-time {
-            display: inline-block;
-            padding: 4px 12px;
-            font-size: 12px;
-            color: #909399;
-            white-space: nowrap;
-            background: #f5f7fa;
-            border-radius: 12px;
-          }
-        }
-      }
-    }
-  }
-  .form-content {
-    max-width: 800px;
-    margin: 0 auto;
-    &.step2-form {
-      max-width: 1400px;
-      .form-row {
-        display: flex;
-        gap: 40px;
-        .form-col {
-          flex: 1;
-        }
-      }
-    }
-  }
-  .form-actions {
-    display: flex;
-    gap: 20px;
-    justify-content: center;
-    padding-top: 30px;
-    margin-top: 40px;
-    border-top: 1px solid #e4e7ed;
-    .el-button {
-      width: 150px;
-      height: 44px;
-      font-size: 16px;
-    }
-  }
-}
-</style>