完善小程序

main
yanzai 5 days ago
parent 658bbc1027
commit 462cac7075

2
.gitignore vendored

@ -3,3 +3,5 @@
/xiaochengxu/unpackage/dist
/xiaochengxu/unpackage
/xiaochengxu/unpackage
/xiaochengxu/unpackage
/xiaochengxu/unpackage

@ -2,6 +2,7 @@
namespace App\Http\Controllers\API\H5;
use App\Http\Controllers\API\SmsController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
@ -37,6 +38,11 @@ class MemberController
}
// 验证通过,处理业务逻辑
$sms=new SmsController();
$check=$sms->CheckCode($info['tel'],$info['verifyCode']);
if(!$check){
return \Yz::echoError1('验证码错误!');
}
// 例如:创建用户、保存银行卡信息等
$insertData = [
'tel' => $info['tel'],

@ -21,4 +21,7 @@ class LiuYanController
}
return \Yz::echoError1('留言失败');
}
public function Mp_InsertInfo(){
return \Yz::Return(true,'填写成功');
}
}

@ -17,11 +17,15 @@ class LoginController
if ($response->successful()) {
$data = $response->json(); // 获取响应的 JSON 数据
// var_dump($data);
$h5url="";
if (isset($data['openid'])) {
$openid = $data['openid'];
$member = DB::table('members')->where('openid', $openid)->first();
$url="https://www.baidu.com";
return \Yz::Return(true, '获取openid成功', ['openid' => $openid, 'member' => $member,'url'=>$url]);
if(!!$member){
$h5url="https://www.baidu.com";
}
return \Yz::Return(true, '获取openid成功', ['openid' => $openid, 'member' => $member,'url'=>$h5url]);
} else {
return \Yz::echoError1('获取openid失败');
}

@ -2,11 +2,10 @@
return [
'globals' => [
'WxAppid' => 'wx9ba939d2590a8103', //岚科小程序
'WxAppSecret' => 'c03df7f14c206d619f41d4558bf3be9f', //岚科小程序
'WxAppid' => 'wx166d139c3183e1e0',
'WxAppSecret' => 'aa2c82a6d175be1670d3aa9a108c7284',
// 'WxAppid' => 'wx8f83ab76a99ba560',//测试
// 'WxAppSecret' => 'eebc53a9e94f676bd680d3a09eb20303',//测试
'BaseServerUrl' =>'http://localhostcommon',
'WxRedirectUrl'=>'https://www.yanzai.vip/common/laravel/public/wxGetCode', //微信授权登录,重定向地址

@ -83,6 +83,7 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'H5'],function () {
Route::post('mp/wxGetOpenid','App\Http\Controllers\API\Mp\LoginController@wxGetOpenid');
Route::post('mp/LiuYanCreate','App\Http\Controllers\API\LiuYanController@Mp_Create')->middleware('log');
Route::post('mp/InsertInfo','App\Http\Controllers\API\LiuYanController@Mp_InsertInfo')->middleware('log');

@ -1,4 +1,4 @@
ENV = 'production'
VITE_APP_API = 'https://www.yanzai.vip/common/laravel/public/api/'
VITE_APP_FILE = 'https://www.yanzai.vip/common/laravel/public'
VITE_APP_API = 'https://member.qhdboyue.com/api/'
VITE_APP_FILE = 'https://member.qhdboyue.com'

@ -51,7 +51,9 @@ import {
export const ResetPassword = (data) => {
return sendRequest({url: BaseUrl+"H5/ResetPassword",method: 'POST',data:data});
}
export const SmsSendCode = (data) => {
return sendRequest({url: BaseUrl+"SmsSendCode",method: 'POST',data:data});
}
export const GetBaseUrl = (data) => {
return Url
}

@ -96,7 +96,7 @@
import {
MemberRegister,
UpFileNoLogin,
GetBaseUrl
GetBaseUrl,SmsSendCode
} from "@/api"
import {
onShow
@ -169,13 +169,19 @@
sending.value = true;
//
setTimeout(() => {
sending.value = false;
uni.showToast({
title: '验证码已发送',
icon: 'success'
});
}, 2000);
SmsSendCode({
tel: formData.value.tel
}).then(res => {
sending.value = false;
if (res.status) {
uni.showToast({
title: '验证码已发送',
icon: 'success'
});
}
})
}
//
@ -337,7 +343,7 @@
}
.send-btn {
width: 140rpx;
width: 200rpx;
height: 60rpx;
background-color: #0047e5;
color: white;

@ -5,8 +5,8 @@ import {
isLoading,
sendRequest
} = useHttp();
//let Url='https://mbmg.yuluo.online/Laravel/public'
let Url='http://huisuo-local';
let Url='https://member.qhdboyue.com'
//let Url='http://huisuo-local';
let BaseUrl=Url+'/api/'
export const BaseFileUrl=()=>{
@ -19,4 +19,6 @@ import {
export const LiuYan = (data) => {
return sendRequest({url: BaseUrl+"mp/LiuYanCreate",method: 'POST',data:data});
}
export const InsertInfo = (data) => {
return sendRequest({url: BaseUrl+"mp/InsertInfo",method: 'POST',data:data});
}

@ -2,8 +2,8 @@
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app",
"navigationStyle": "custom"
"navigationBarTitleText": "秦皇岛安尔然"
}
},
{
@ -28,6 +28,20 @@
"navigationBarTitleText" : "",
"navigationStyle": "custom"
}
},
{
"path" : "pages/yuyue_form",
"style" :
{
"navigationBarTitleText" : ""
}
},
{
"path" : "pages/ShangWuZiXun",
"style" :
{
"navigationBarTitleText" : ""
}
}],
"globalStyle": {
"navigationBarTextStyle": "black",

@ -0,0 +1,78 @@
<template>
<view class="consult-page">
<view class="section">
<view class="title">我们能为您提供</view>
<view class="service-list">
<text> 品牌营销策略咨询</text>
<text> 会议/展览/庆典策划</text>
<text> 企业年度活动方案</text>
<text> 资源对接与执行支持</text>
</view>
</view>
<view class="section">
<view class="title">立即咨询</view>
<!-- 微信客服消息审核最爱 -->
<!-- <button open-type="contact" class="contact-btn">
📩 发起微信咨询
</button> -->
<!-- 或者表单入口 -->
<navigator url="/pages/yuyue_form" class="form-btn">填写需求表单</navigator>
</view>
<view class="section">
<view class="title">常见问题</view>
<view class="faq-item">
<text class="q">Q咨询是否收费</text>
<text class="a">A首次沟通免费深度方案按需报价</text>
</view>
<view class="faq-item">
<text class="q">Q多久能收到回复</text>
<text class="a">A工作日2小时内节假日顺延</text>
</view>
</view>
<section class="section">
<view class="title">我们服务的行业</view>
<view class="logos">
<text> 快速消费品FMCG</text>
<text> 互联网与科技</text>
<text> 金融与保险</text>
<text> 教育与培训</text>
<text> 医疗健康</text>
<text> 汽车与制造</text>
</view>
</section>
</view>
</template>
<style scoped>
.service-list{
font-size: 26rpx;
}
.logos{
font-size: 26rpx;
}
.consult-page { padding: 20rpx; background: #f8f8f8; }
.section { background: #fff; margin: 20rpx 0; padding: 30rpx; border-radius: 12rpx; }
.title { font-size: 32rpx; font-weight: bold; margin-bottom: 20rpx; color: #333; }
.contact-btn {
background: #007aff;
color: white;
font-size: 30rpx;
height: 80rpx;
line-height: 80rpx;
}
.faq-item { margin: 15rpx 0;font-size: 26rpx; }
.q { font-weight: bold; color: #007aff; }
.a { color: #666; display: block; margin-top: 8rpx; }
.form-btn{
text-align: center;
height: 80rpx;
line-height: 80rpx;
background-color: #3182ce;
color:#fff;
border-radius: 10rpx;
}
</style>

@ -71,7 +71,7 @@
color: #94a3b8;
font-size: 24rpx;
position: absolute;
bottom: 60rpx;
bottom: 30rpx;
width: 100%;
opacity: 0;
transform: translateY(20px);

@ -1,6 +1,6 @@
<template>
<view>
<web-view :webview-styles="webviewStyles" :src="url"></web-view>
<web-view :src="url"></web-view>
</view>
</template>

@ -8,13 +8,20 @@
<button class="btn" @click="gotoAbout"></button>
</view>
<!-- 服务区域 -->
<!-- 服务标签区域仅展示非交互 -->
<view class="section">
<text class="section-title">我们的服务</text>
<view class="service-list">
<view class="service-item" v-for="(item, index) in services" :key="index">
{{ item }}
</view>
<view class="tag-list">
<text class="tag" v-for="(item, index) in services" :key="index">{{ item }}</text>
</view>
</view>
<!-- 功能入口模块可点击 -->
<view class="action-section">
<text class="section-title">咨询预约</text>
<view class="action-list">
<view class="action-item" @click="gotoShangWuZiXun">📞 </view>
<view class="action-item" @click="gotoYuYue">📅 </view>
</view>
</view>
@ -31,12 +38,13 @@
</template>
<script setup>
import { ref } from "vue"
import { Login } from "@/api"
import { onLoad } from "@dcloudio/uni-app"
import { onLoad } from '@dcloudio/uni-app'
import { Login } from '@/api'
const services = ['营销策划', '会议服务', '商务咨询', '庆典服务', '礼仪服务']
//
const services = ['营销策划', '会议服务', '庆典服务', '礼仪服务']
//
const gotoAbout = () => {
uni.navigateTo({ url: '/pages/about' })
}
@ -45,25 +53,34 @@ const lianxi = () => {
uni.navigateTo({ url: '/pages/contact' })
}
const gotoYuYue = () => {
uni.navigateTo({ url: '/pages/yuyue_form' })
}
const gotoShangWuZiXun = () => {
uni.navigateTo({ url: '/pages/ShangWuZiXun' })
}
//
const handleLogin = async () => {
try {
const res = await wx.login()
if (res.code) {
Login({ code: res.code }).then(res => {
if(res.status){
uni.setStorageSync("openid",res.data.openid)
if ( res.data.member !== null && res.data.url !== null) {
uni.navigateTo({ url: '/pages/h5?url=' + res.data.url })
if (res.status) {
uni.setStorageSync('openid', res.data.openid)
if (res.data.member !== null && res.data.member!==undefined && res.data.url !== null && res.data.url !== undefined) {
let url= res.data.url+'&openid='+ res.data.openid
console.log(url)
uni.navigateTo({ url:'/pages/h5?url=' +url })
}
}
})
} else {
console.error('登录失败', res.errMsg)
}
} catch (error) {
console.error('登录异常', error)
}
}
@ -78,9 +95,9 @@ onLoad(() => {
background: #f9fafb;
box-sizing: border-box;
min-height: 100vh;
position: relative;
}
/* Hero 区域 */
.hero {
text-align: center;
padding: 80rpx 40rpx;
@ -131,33 +148,66 @@ onLoad(() => {
transform: scale(0.96);
}
/* 标题通用样式 */
.section-title {
font-size: 36rpx;
font-weight: bold;
margin-bottom: 24rpx;
color: #1e293b;
display: block;
text-align: center;
margin-bottom: 24rpx;
}
.service-list {
/* 服务标签 - 真正的 tag 风格 */
.tag-list {
display: flex;
flex-wrap: wrap;
gap: 24rpx;
justify-content: center;
gap: 16rpx;
padding: 0 20rpx;
}
.service-item {
background: #ffffff;
.tag {
background-color: #e0e7ff; /* 浅蓝底 */
color: #4f46e5; /* 主色文字 */
font-size: 24rpx;
padding: 8rpx 24rpx;
border-radius: 50rpx; /* 大圆角 */
line-height: 1;
white-space: nowrap;
user-select: none; /* 禁止选中 */
}
/* 功能入口模块 */
.action-section {
margin-top: 50rpx;
}
.action-list {
display: flex;
justify-content: center;
gap: 30rpx;
flex-wrap: wrap;
}
.action-item {
background: linear-gradient(135deg, #4f46e5, #6366f1);
color: white;
font-size: 28rpx;
font-weight: bold;
padding: 24rpx 40rpx;
border-radius: 18rpx;
font-size: 28rpx;
color: #1e293b;
box-shadow: 0 4rpx 10rpx rgba(0, 0, 0, 0.05);
min-width: 180rpx;
text-align: center;
min-width: 220rpx;
box-shadow: 0 6rpx 16rpx rgba(79, 70, 229, 0.3);
transition: transform 0.2s;
}
.action-item:active {
transform: scale(0.96);
}
/* 联系我们模块 */
/* 联系我们按钮 */
.contact-section {
text-align: center;
margin: 50rpx 0;
@ -179,6 +229,7 @@ onLoad(() => {
box-shadow: 0 4rpx 12rpx rgba(59, 130, 246, 0.3);
}
/* 页脚 */
.footer {
text-align: center;
margin-top: 40rpx;

@ -0,0 +1,171 @@
<template>
<view class="container">
<view class="form-title">服务预约</view>
<view class="form-item">
<text class="label">姓名</text>
<input
v-model="formData.name"
placeholder="请输入您的姓名"
class="input"
/>
</view>
<view class="form-item">
<text class="label">电话</text>
<input
v-model="formData.phone"
placeholder="请输入手机号"
type="number"
class="input"
/>
</view>
<view class="form-item">
<text class="label">服务类型</text>
<picker mode="selector" :range="serviceOptions" @change="onServiceChange">
<view class="picker">{{ serviceOptions[formData.serviceIndex] || '请选择服务' }}</view>
</picker>
</view>
<view class="form-item">
<text class="label">预约时间</text>
<picker mode="date" @change="onDateChange">
<view class="picker">{{ formData.date || '请选择日期' }}</view>
</picker>
</view>
<view class="form-item">
<text class="label">备注</text>
<textarea
v-model="formData.remark"
placeholder="请输入其他需求(选填)"
class="textarea"
/>
</view>
<button class="submit-btn" @click="submitForm"></button>
</view>
</template>
<script setup>
import {
ref
} from "vue"
import { InsertInfo } from '@/api'
let formData=ref({
name: '',
phone: '',
serviceIndex: 0,
date: '',
remark: ''
})
let serviceOptions=ref(['营销策划', '会议服务', '庆典活动', '品牌推广', '其他'])
const onServiceChange=(e)=> {
formData.value.serviceIndex = e.detail.value
}
const onDateChange=(e)=> {
formData.value.date = e.detail.value
}
const validate=()=> {
if (!formData.value.name.trim()) {
uni.showToast({ title: '请输入姓名', icon: 'none' })
return false
}
const phoneReg = /^1[3-9]\d{9}$/
if (!phoneReg.test(formData.value.phone)) {
uni.showToast({ title: '请输入正确的手机号', icon: 'none' })
return false
}
if (!formData.value.date) {
uni.showToast({ title: '请选择预约时间', icon: 'none' })
return false
}
return true
}
const submitForm=async()=> {
if (!validate()) return
// 👇
// uniCloud.callFunction({ name: 'saveBooking', data: formData.value })
//
uni.showLoading({ title: '提交中...' })
InsertInfo({ info: formData.value }).then(res => {
uni.hideLoading()
if (res.status) {
uni.showToast({ title: '预约成功!', icon: 'success' })
setTimeout(() => {
formData.value = {
name: '',
phone: '',
serviceIndex: 0,
date: '',
remark: ''
}
//
uni.navigateTo({ url: '/pages/index/index' })
}, 800)
}
})
}
</script>
<style scoped>
.container {
padding: 20rpx;
background-color: #f5f5f5;
}
.form-title {
font-size: 36rpx;
font-weight: bold;
text-align: center;
margin: 40rpx 0;
color: #333;
}
.form-item {
background: #fff;
padding: 20rpx 30rpx;
margin-bottom: 20rpx;
border-radius: 12rpx;
display: flex;
align-items: center;
}
.label {
width: 160rpx;
font-size: 28rpx;
color: #555;
}
.input, .picker {
flex: 1;
font-size: 28rpx;
color: #333;
}
.textarea {
flex: 1;
height: 120rpx;
font-size: 28rpx;
color: #333;
border: 1rpx solid #eee;
border-radius: 8rpx;
padding: 10rpx;
}
.submit-btn {
margin-top: 60rpx;
background-color: #3182ce;
color: white;
font-size: 32rpx;
height: 80rpx;
line-height: 80rpx;
border-radius: 12rpx;
}
</style>

@ -1 +1 @@
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\n\t\t\tconsole.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t/*每个页面公共css */\n\t@import '@/uni_modules/uni-scss/index.scss';\n\t/* #ifndef APP-NVUE */\n\t@import '@/static/customicons.css';\n\t// 设置整个项目的背景色\n\tpage {\n\t\tbackground-color: #f5f5f5;\n\t}\n\n\t/* #endif */\n\t.example-info {\n\t\tfont-size: 14px;\n\t\tcolor: #333;\n\t\tpadding: 10px;\n\t}\r\n</style>\n","\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport App from './App'\r\n\r\nVue.config.productionTip = false\r\n\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()\r\n// #endif\n\n// #ifdef VUE3\r\nimport { createSSRApp } from 'vue'\nimport App from './App.vue'\nexport function createApp() {\n const app = createSSRApp(App)\n return {\n app\n }\n}\r\n// #endif"],"names":["uni","createSSRApp","App"],"mappings":";;;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,QAAA,gBAAa,uDAAuD;AACpEA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACMM,SAAS,YAAY;AAC1B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAC5B,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script>\r\n\texport default {\r\n\t\tonLaunch: function() {\n\t\t\tconsole.warn('当前组件仅支持 uni_modules 目录结构 ,请升级 HBuilderX 到 3.1.0 版本以上!')\r\n\t\t\tconsole.log('App Launch')\r\n\t\t},\r\n\t\tonShow: function() {\r\n\t\t\tconsole.log('App Show')\r\n\t\t},\r\n\t\tonHide: function() {\r\n\t\t\tconsole.log('App Hide')\r\n\t\t}\r\n\t}\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n\t/*每个页面公共css */\n\t@import '@/uni_modules/uni-scss/index.scss';\n\t/* #ifndef APP-NVUE */\n\t@import '@/static/customicons.css';\n\t// 设置整个项目的背景色\n\tpage {\n\t\tbackground-color: #f5f5f5;\n\t}\n\n\t/* #endif */\n\t.example-info {\n\t\tfont-size: 14px;\n\t\tcolor: #333;\n\t\tpadding: 10px;\n\t}\r\n</style>\n","\n// #ifndef VUE3\r\nimport Vue from 'vue'\r\nimport App from './App'\r\n\r\nVue.config.productionTip = false\r\n\r\nApp.mpType = 'app'\r\n\r\nconst app = new Vue({\r\n ...App\r\n})\r\napp.$mount()\r\n// #endif\n\n// #ifdef VUE3\r\nimport { createSSRApp } from 'vue'\nimport App from './App.vue'\nexport function createApp() {\n const app = createSSRApp(App)\n return {\n app\n }\n}\r\n// #endif"],"names":["uni","createSSRApp","App"],"mappings":";;;;;;;;;;;AACC,MAAK,YAAU;AAAA,EACd,UAAU,WAAW;AACpBA,kBAAAA,MAAA,MAAA,QAAA,gBAAa,uDAAuD;AACpEA,kBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,EACxB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,gBAAA,UAAU;AAAA,EACtB;AAAA,EACD,QAAQ,WAAW;AAClBA,kBAAAA,MAAY,MAAA,OAAA,iBAAA,UAAU;AAAA,EACvB;AACD;ACMM,SAAS,YAAY;AAC1B,QAAM,MAAMC,cAAY,aAACC,SAAG;AAC5B,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}

File diff suppressed because one or more lines are too long

@ -6,6 +6,8 @@ if (!Math) {
"./pages/about.js";
"./pages/contact.js";
"./pages/h5.js";
"./pages/yuyue_form.js";
"./pages/ShangWuZiXun.js";
}
const _sfc_main = {
onLaunch: function() {

@ -3,7 +3,9 @@
"pages/index/index",
"pages/about",
"pages/contact",
"pages/h5"
"pages/h5",
"pages/yuyue_form",
"pages/ShangWuZiXun"
],
"window": {
"navigationBarTextStyle": "black",

@ -6916,9 +6916,9 @@ function isConsoleWritable() {
return isWritable;
}
function initRuntimeSocketService() {
const hosts = "192.168.0.103,127.0.0.1";
const hosts = "192.168.0.102,127.0.0.1";
const port = "8090";
const id = "mp-weixin_1frMf2";
const id = "mp-weixin_08cDJa";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();

@ -39,7 +39,7 @@
color: #94a3b8;
font-size: 24rpx;
position: absolute;
bottom: 60rpx;
bottom: 30rpx;
width: 100%;
opacity: 0;
transform: translateY(20px);

@ -5,13 +5,19 @@ const api_index = require("../../api/index.js");
const _sfc_main = {
__name: "index",
setup(__props) {
const services = ["营销策划", "会议服务", "商务咨询", "庆典服务", "礼仪服务"];
const services = ["营销策划", "会议服务", "庆典服务", "礼仪服务"];
const gotoAbout = () => {
common_vendor.index.navigateTo({ url: "/pages/about" });
};
const lianxi = () => {
common_vendor.index.navigateTo({ url: "/pages/contact" });
};
const gotoYuYue = () => {
common_vendor.index.navigateTo({ url: "/pages/yuyue_form" });
};
const gotoShangWuZiXun = () => {
common_vendor.index.navigateTo({ url: "/pages/ShangWuZiXun" });
};
const handleLogin = async () => {
try {
const res = await common_vendor.wx$1.login();
@ -19,16 +25,16 @@ const _sfc_main = {
api_index.Login({ code: res.code }).then((res2) => {
if (res2.status) {
common_vendor.index.setStorageSync("openid", res2.data.openid);
if (res2.data.member !== null && res2.data.url !== null) {
common_vendor.index.navigateTo({ url: "/pages/h5?url=" + res2.data.url });
if (res2.data.member !== null && res2.data.member !== void 0 && res2.data.url !== null && res2.data.url !== void 0) {
let url = res2.data.url + "&openid=" + res2.data.openid;
common_vendor.index.__f__("log", "at pages/index/index.vue:74", url);
common_vendor.index.navigateTo({ url: "/pages/h5?url=" + url });
}
}
});
} else {
common_vendor.index.__f__("error", "at pages/index/index.vue:63", "登录失败", res.errMsg);
}
} catch (error) {
common_vendor.index.__f__("error", "at pages/index/index.vue:66", "登录异常", error);
}
};
common_vendor.onLoad(() => {
@ -44,7 +50,9 @@ const _sfc_main = {
b: index
};
}),
d: common_vendor.o(lianxi)
d: common_vendor.o(gotoShangWuZiXun),
e: common_vendor.o(gotoYuYue),
f: common_vendor.o(lianxi)
};
};
}

@ -1,5 +1,4 @@
{
"navigationBarTitleText": "uni-app",
"navigationStyle": "custom",
"navigationBarTitleText": "秦皇岛安尔然",
"usingComponents": {}
}

@ -1 +1 @@
<view class="container data-v-1cf27b2a"><view class="hero data-v-1cf27b2a"><image src="{{a}}" class="logo data-v-1cf27b2a" mode="aspectFit"/><text class="title data-v-1cf27b2a">秦皇岛安尔然营销策划有限公司</text><text class="subtitle data-v-1cf27b2a">为您提供专业的营销策划服务</text><button class="btn data-v-1cf27b2a" bindtap="{{b}}">了解更多</button></view><view class="section data-v-1cf27b2a"><text class="section-title data-v-1cf27b2a">我们的服务</text><view class="service-list data-v-1cf27b2a"><view wx:for="{{c}}" wx:for-item="item" wx:key="b" class="service-item data-v-1cf27b2a">{{item.a}}</view></view></view><view class="contact-section data-v-1cf27b2a"><button class="contact-btn data-v-1cf27b2a" bindtap="{{d}}">联系我们</button></view><view class="footer data-v-1cf27b2a"><text class="data-v-1cf27b2a">© 2025 秦皇岛安尔然营销策划有限公司</text></view></view>
<view class="container data-v-1cf27b2a"><view class="hero data-v-1cf27b2a"><image src="{{a}}" class="logo data-v-1cf27b2a" mode="aspectFit"/><text class="title data-v-1cf27b2a">秦皇岛安尔然营销策划有限公司</text><text class="subtitle data-v-1cf27b2a">为您提供专业的营销策划服务</text><button class="btn data-v-1cf27b2a" bindtap="{{b}}">了解更多</button></view><view class="section data-v-1cf27b2a"><text class="section-title data-v-1cf27b2a">我们的服务</text><view class="tag-list data-v-1cf27b2a"><text wx:for="{{c}}" wx:for-item="item" wx:key="b" class="tag data-v-1cf27b2a">{{item.a}}</text></view></view><view class="action-section data-v-1cf27b2a"><text class="section-title data-v-1cf27b2a">咨询预约</text><view class="action-list data-v-1cf27b2a"><view class="action-item data-v-1cf27b2a" bindtap="{{d}}">📞 商务咨询</view><view class="action-item data-v-1cf27b2a" bindtap="{{e}}">📅 预约服务</view></view></view><view class="contact-section data-v-1cf27b2a"><button class="contact-btn data-v-1cf27b2a" bindtap="{{f}}">联系我们</button></view><view class="footer data-v-1cf27b2a"><text class="data-v-1cf27b2a">© 2025 秦皇岛安尔然营销策划有限公司</text></view></view>

@ -4,8 +4,9 @@
background: #f9fafb;
box-sizing: border-box;
min-height: 100vh;
position: relative;
}
/* Hero 区域 */
.hero.data-v-1cf27b2a {
text-align: center;
padding: 80rpx 40rpx;
@ -51,31 +52,64 @@
.btn.data-v-1cf27b2a:active {
transform: scale(0.96);
}
/* 标题通用样式 */
.section-title.data-v-1cf27b2a {
font-size: 36rpx;
font-weight: bold;
margin-bottom: 24rpx;
color: #1e293b;
display: block;
text-align: center;
margin-bottom: 24rpx;
}
.service-list.data-v-1cf27b2a {
/* 服务标签 - 真正的 tag 风格 */
.tag-list.data-v-1cf27b2a {
display: flex;
flex-wrap: wrap;
gap: 24rpx;
justify-content: center;
gap: 16rpx;
padding: 0 20rpx;
}
.service-item.data-v-1cf27b2a {
background: #ffffff;
.tag.data-v-1cf27b2a {
background-color: #e0e7ff; /* 浅蓝底 */
color: #4f46e5; /* 主色文字 */
font-size: 24rpx;
padding: 8rpx 24rpx;
border-radius: 50rpx; /* 大圆角 */
line-height: 1;
white-space: nowrap;
-webkit-user-select: none;
user-select: none; /* 禁止选中 */
}
/* 功能入口模块 */
.action-section.data-v-1cf27b2a {
margin-top: 50rpx;
}
.action-list.data-v-1cf27b2a {
display: flex;
justify-content: center;
gap: 30rpx;
flex-wrap: wrap;
}
.action-item.data-v-1cf27b2a {
background: linear-gradient(135deg, #4f46e5, #6366f1);
color: white;
font-size: 28rpx;
font-weight: bold;
padding: 24rpx 40rpx;
border-radius: 18rpx;
font-size: 28rpx;
color: #1e293b;
box-shadow: 0 4rpx 10rpx rgba(0, 0, 0, 0.05);
min-width: 180rpx;
text-align: center;
min-width: 220rpx;
box-shadow: 0 6rpx 16rpx rgba(79, 70, 229, 0.3);
transition: transform 0.2s;
}
.action-item.data-v-1cf27b2a:active {
transform: scale(0.96);
}
/* 联系我们模块 */
/* 联系我们按钮 */
.contact-section.data-v-1cf27b2a {
text-align: center;
margin: 50rpx 0;
@ -95,6 +129,8 @@
transform: scale(0.97);
box-shadow: 0 4rpx 12rpx rgba(59, 130, 246, 0.3);
}
/* 页脚 */
.footer.data-v-1cf27b2a {
text-align: center;
margin-top: 40rpx;

Loading…
Cancel
Save