feat: 初始化居家上门服务系统完整项目代码

- Spring Boot 后端服务 (hss-home-service)
- delivery-miniapp 配送小程序
- website 官网 (Nuxt)
- docs 架构设计文档
- Docker 容器化部署配置

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-19 09:04:49 +08:00
parent 46c7887a18
commit c02029a5f3
471 changed files with 42313 additions and 2 deletions

View File

@@ -0,0 +1,48 @@
<script setup lang="ts">
import { useLeadForm } from '~/composables/useLeadForm'
const { form, loading, success, error, submit } = useLeadForm('contact')
const coopTypes = ['政府项目', '医院合作', '养老机构合作', '社区服务', '技术合作', '其他']
</script>
<template>
<div class="max-w-lg mx-auto">
<form v-if="!success" @submit.prevent="submit" class="space-y-5">
<div class="grid sm:grid-cols-2 gap-5">
<div>
<label class="block text-sm font-medium mb-1 text-left">姓名 <span class="text-red-500">*</span></label>
<input v-model="form.name" class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary-50 outline-none" placeholder="您的姓名" />
</div>
<div>
<label class="block text-sm font-medium mb-1 text-left">单位名称 <span class="text-red-500">*</span></label>
<input v-model="form.orgName" class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary-50 outline-none" placeholder="您所在的单位" />
</div>
</div>
<div>
<label class="block text-sm font-medium mb-1 text-left">手机号 <span class="text-red-500">*</span></label>
<input v-model="form.phone" type="tel" class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary-50 outline-none" placeholder="您的手机号" />
</div>
<div>
<label class="block text-sm font-medium mb-1 text-left">合作类型</label>
<select v-model="form.contact" class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary-50 outline-none">
<option value="">请选择</option>
<option v-for="t in coopTypes" :key="t" :value="t">{{ t }}</option>
</select>
</div>
<div>
<label class="block text-sm font-medium mb-1 text-left">需求描述</label>
<textarea v-model="form.message" rows="4" class="w-full px-4 py-3 rounded-xl border border-gray-200 focus:border-primary focus:ring-2 focus:ring-primary-50 outline-none resize-none" placeholder="请描述您的合作需求"></textarea>
</div>
<p v-if="error" class="text-red-500 text-sm">{{ error }}</p>
<button type="submit" :disabled="loading"
class="w-full px-6 py-3 bg-cta text-white rounded-xl font-semibold hover:bg-cta-700 transition-colors disabled:opacity-50">
{{ loading ? '提交中...' : '提交咨询' }}
</button>
</form>
<div v-else class="text-center py-12">
<div class="w-16 h-16 mx-auto mb-4 rounded-full bg-green-100 text-green-500 flex items-center justify-center"><svg class="w-10 h-10" fill="none" stroke="currentColor" stroke-width="2" viewBox="0 0 24 24"><path d="M5 13l4 4L19 7" stroke-linecap="round" stroke-linejoin="round"/></svg></div>
<h3 class="text-2xl font-bold mb-2">提交成功</h3>
<p class="text-text-secondary">感谢您的咨询我们将尽快与您联系</p>
</div>
</div>
</template>