Commit 55f4eb42 authored by xinzhedeai's avatar xinzhedeai

add:消费者首页new

parent aea0a9bf
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
id="app" id="app"
class="page_wrapper" class="page_wrapper"
v-cloak v-cloak
v-if="!['consumers'].includes(userInfo.userType)"
> >
<!-- 第二层:商户图标、名称、等级、场所类型和地址 --> <!-- 第二层:商户图标、名称、等级、场所类型和地址 -->
<div <div
...@@ -74,7 +75,7 @@ ...@@ -74,7 +75,7 @@
<!-- 第二层:商户图标、名称、等级、场所类型和地址 --> <!-- 第二层:商户图标、名称、等级、场所类型和地址 -->
<div <div
class="second-layer-sj" class="second-layer-sj"
v-if="userInfo.userType=='shop'" v-if="['shop'].includes(userInfo.userType)"
v-cloak v-cloak
> >
<div class="header"> <div class="header">
......
...@@ -38,7 +38,8 @@ window.onload = function () { ...@@ -38,7 +38,8 @@ window.onload = function () {
}, },
], ],
userInfo: { userInfo: {
userType: 'sj1', // 登录用户type userType: 'sj1', // 登录用户type
userType: 'consumers', // 登录用户type
userId: '1', // 登录用户id userId: '1', // 登录用户id
userName: '张三', // 登录用户name userName: '张三', // 登录用户name
deptId: '1', // 登录用户部门id deptId: '1', // 登录用户部门id
...@@ -246,7 +247,32 @@ window.onload = function () { ...@@ -246,7 +247,32 @@ window.onload = function () {
merId: result.data.merchantInfoNumVo?.id, // merId: result.data.merchantInfoNumVo?.id, //
} }
gemhoUtil.setCookie('userType', this.userInfo.userType) gemhoUtil.setCookie('userType', this.userInfo.userType)
if (this.userInfo.userType === 'shop') {
if(this.userInfo.userType = 'consumers'){ // 2025年5月14日新增消费者逻辑
// 根据url地址的merid获取商户信息
if(gemhoUtil.getParameter('merId')){ // 消费者直接在爱山东扫商户码进入首页
// this.getMerInfo()
param = {
merId: gemhoUtil.getParameter('merId'),
pageName: 'src/_consumer_home',
}
let url = gemhoUtil.setParameter(`${param.pageName}.html`, param)
gemhoUtil.navigatePage(url, '跳转中...')
return
}else{ // 消费者不扫码后,直接退出到爱山东首页。(用户直接在爱山东点击应用进入首页)
vant.Dialog.alert({
title: '信息提示',
message: '请扫描商户码访问~',
}).then(() => { // 关闭当前访问页面回到爱山东
lightAppJssdk.navigation.close({
success: function (data) { },
fail: function (data) { },
})
});
}
return
}else if (this.userInfo.userType === 'shop') {
this.defaultMenuList[1].navTo = 'checkrecord' this.defaultMenuList[1].navTo = 'checkrecord'
} else { } else {
this.defaultMenuList[1].navTo = 'shanghu_list' this.defaultMenuList[1].navTo = 'shanghu_list'
...@@ -261,21 +287,12 @@ window.onload = function () { ...@@ -261,21 +287,12 @@ window.onload = function () {
remark: moduleItem.remark || '', remark: moduleItem.remark || '',
}) })
) )
if (this.page * this.size >= this.total) {
this.finished = true // 下滑不在刷新数据
}
} }
this.loading = false
setTimeout(() => { setTimeout(() => {
this.$nextTick(() => { this.$nextTick(() => {
vant.Toast.clear() vant.Toast.clear()
}) })
}, 0) }, 0)
this.$nextTick(() => {
// 滚动条跳转位置
window.scrollTo(0, gemhoUtil.getCookie('scrollPosition'))
})
} }
) )
}, 0) }, 0)
...@@ -299,6 +316,7 @@ window.onload = function () { ...@@ -299,6 +316,7 @@ window.onload = function () {
pageSize: this.size, pageSize: this.size,
date: this.selectedDate, date: this.selectedDate,
sort: 'lawId,desc', sort: 'lawId,desc',
merId: gemhoUtil.getParameter('merId'),
}, },
}, },
(res) => { (res) => {
...@@ -318,16 +336,6 @@ window.onload = function () { ...@@ -318,16 +336,6 @@ window.onload = function () {
} }
) )
}, 0) }, 0)
// http
// .get(
// '/gq/checkRecord/merHomeStatistics?merId=1&date=' +
// this.selectedDate
// )
// .then((res) => {
// if (res.code == 200) {
// this.userData = res.data
// }
// })
}, },
}, },
//过滤器 //过滤器
...@@ -339,5 +347,6 @@ window.onload = function () { ...@@ -339,5 +347,6 @@ window.onload = function () {
return `${year}${month}月` return `${year}${month}月`
}, },
}, },
}) })
} }
...@@ -8,9 +8,16 @@ axios.defaults.timeout = 50000 ...@@ -8,9 +8,16 @@ axios.defaults.timeout = 50000
// axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'
axios.defaults.headers.post['Content-Type'] = 'application/json' axios.defaults.headers.post['Content-Type'] = 'application/json'
// axios.defaults.headers.common['Authorization'] = gemhoUtil.getCookie('token') // axios.defaults.headers.common['Authorization'] = gemhoUtil.getCookie('token')
// 商户token
// 消费者token
axios.defaults.headers.common['Authorization'] = axios.defaults.headers.common['Authorization'] =
'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiLlvKDlrZ3lvakiLCJsb2dpbl91c2VyX2tleSI6ImYzZDMwY2Q4LWY5ODAtNGE0NC1iNzE1LTZiMTJlNGQyZTQ1OCJ9.HjtdJuJS7NjTw4GMaAtDtOeA2EnF75pXVQefzwkdrxQdxyHB6L8h0XhKSB5A_YMsznQMd4DZrGZ5TPEmc1fueg' 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiLmtojotLnogIUiLCJsb2dpbl91c2VyX2tleSI6ImExNWIwMDNjLWRlYWItNGU2MC04ODg4LTJiODNjMzVkNDUzNSJ9.l6gHzFX-U5rKGJ7zoDA4jMBIxkhVgCjWr5ynFg1DR6xspM9Ls6raTxyEo2Kr61UbG2UD6P2kN63vF_U8nX8afg'
// // 商户token
// axios.defaults.headers.common['Authorization'] =
// 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiLlvKDlrZ3lvakiLCJsb2dpbl91c2VyX2tleSI6ImYzZDMwY2Q4LWY5ODAtNGE0NC1iNzE1LTZiMTJlNGQyZTQ1OCJ9.HjtdJuJS7NjTw4GMaAtDtOeA2EnF75pXVQefzwkdrxQdxyHB6L8h0XhKSB5A_YMsznQMd4DZrGZ5TPEmc1fueg'
// admin账号token // admin账号token
// axios.defaults.headers.common['Authorization'] = // axios.defaults.headers.common['Authorization'] =
......
...@@ -4,14 +4,20 @@ ...@@ -4,14 +4,20 @@
// 环境的切换 // 环境的切换
if (window.env == 'dev') { if (window.env == 'dev') {
axios.defaults.baseURL = 'http://192.168.2.37:8080' axios.defaults.baseURL = 'http://192.168.2.37:8080'
// 消费者token
axios.defaults.headers.common['Authorization'] =
'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiLmtojotLnogIUiLCJsb2dpbl91c2VyX2tleSI6ImExNWIwMDNjLWRlYWItNGU2MC04ODg4LTJiODNjMzVkNDUzNSJ9.l6gHzFX-U5rKGJ7zoDA4jMBIxkhVgCjWr5ynFg1DR6xspM9Ls6raTxyEo2Kr61UbG2UD6P2kN63vF_U8nX8afg'
// 商户token // 商户token
// axios.defaults.headers.common['Authorization'] = // axios.defaults.headers.common['Authorization'] =
// 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiLlvKDlrZ3lvakiLCJsb2dpbl91c2VyX2tleSI6IjNjMmRiMWFiLWIyZGMtNDBjYi04YjM5LWRiNTJmM2VmYzNkYyJ9.sfZyPP-COShNCjwxKR26zGDsPHXss97gu7JEpaMapIZyMQEsxzMigVickcqdhaqDwTRcfr0IxAj64vnrriS9Cw' // 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiLlvKDlrZ3lvakiLCJsb2dpbl91c2VyX2tleSI6IjNjMmRiMWFiLWIyZGMtNDBjYi04YjM5LWRiNTJmM2VmYzNkYyJ9.sfZyPP-COShNCjwxKR26zGDsPHXss97gu7JEpaMapIZyMQEsxzMigVickcqdhaqDwTRcfr0IxAj64vnrriS9Cw'
// admin账号token // admin账号token
axios.defaults.headers.common['Authorization'] = // axios.defaults.headers.common['Authorization'] =
'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiNTljMWVhMTMtODNmYy00OWI2LWI5YzMtM2VkNzliODFhZjg4In0.XHl0IpagNwLJBqW_s2n6Kzhs9eY-TrMUBfAO8oeikYRUH72eshEXwMsTyTWgVnX_okY4tuB4U124AeF6EO_qiQ' // 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJhZG1pbiIsImxvZ2luX3VzZXJfa2V5IjoiNTljMWVhMTMtODNmYy00OWI2LWI5YzMtM2VkNzliODFhZjg4In0.XHl0IpagNwLJBqW_s2n6Kzhs9eY-TrMUBfAO8oeikYRUH72eshEXwMsTyTWgVnX_okY4tuB4U124AeF6EO_qiQ'
}else{ }else{
axios.defaults.baseURL = 'https://gqyjpt.weihai.cn/prod-api' axios.defaults.baseURL = 'https://gqyjpt.weihai.cn/prod-api'
......
html, html,
body { body {
letter-spacing: .01rem; letter-spacing: .01rem;
background-color: #FFF;
overflow-x: hidden;
} }
.wrapper { .wrapper {
...@@ -10,6 +12,7 @@ body { ...@@ -10,6 +12,7 @@ body {
.header { .header {
padding: .2rem; padding: .2rem;
background: #fff;
} }
.header .title { .header .title {
...@@ -29,7 +32,7 @@ body { ...@@ -29,7 +32,7 @@ body {
} }
.detail { .detail {
width: 6.5rem; width: 100%;
/* height: 1.88rem; */ /* height: 1.88rem; */
background: #F5F6FA; background: #F5F6FA;
border-radius: 0.01rem; border-radius: 0.01rem;
......
...@@ -102,8 +102,8 @@ ...@@ -102,8 +102,8 @@
line-height: 50px; line-height: 50px;
padding: 0 12px; padding: 0 12px;
font-size: 14px; font-size: 14px;
border-bottom: 1px solid #f0f2f5; /* border-bottom: 1px solid #f0f2f5; */
margin-bottom: 10px; /* margin-bottom: 10px; */
font-weight: 400; font-weight: 400;
} }
.save-btn { .save-btn {
...@@ -117,6 +117,19 @@ ...@@ -117,6 +117,19 @@
cursor: pointer; cursor: pointer;
margin-bottom: .4rem; margin-bottom: .4rem;
} }
.textareaEle{
width: 100%;
border: 1px solid #CACACA;
font-size: .28rem;
border-radius: .05rem;
padding: .15rem;
}
.merchant-icon{
width: 100%;
}
.date-wrapper .van-cell{
padding-left: 0;
}
</style> </style>
<!-- 在 includeHead.js 之后添加环境判断 --> <!-- 在 includeHead.js 之后添加环境判断 -->
<script src="../sdk/includeHead.js"></script> <script src="../sdk/includeHead.js"></script>
...@@ -125,7 +138,7 @@ ...@@ -125,7 +138,7 @@
<div id="app" class="page_wrapper" v-cloak> <div id="app" class="page_wrapper" v-cloak>
<!-- 第一层:标题图 --> <!-- 第一层:标题图 -->
<div class="second-layer second-layer-zf"> <div class="second-layer second-layer-zf">
<img class="merchant-icon" src="image/code/zhengfu_logo.png" alt="" /> <img class="merchant-icon" src="../image/code/banner.png" alt="" />
</div> </div>
<!-- 第二层:商户图标、名称、等级、场所类型和地址 --> <!-- 第二层:商户图标、名称、等级、场所类型和地址 -->
...@@ -136,7 +149,7 @@ ...@@ -136,7 +149,7 @@
class="tag">安全等级-绿</span> class="tag">安全等级-绿</span>
</div> </div>
<div class="detail"> <div class="detail">
<van-row> <van-row style="margin-bottom: .25rem;">
<van-col span="24">场所类型: {{merInformation.smallPlaceTypeName}}</van-col> <van-col span="24">场所类型: {{merInformation.smallPlaceTypeName}}</van-col>
</van-row> </van-row>
<van-row> <van-row>
...@@ -148,19 +161,24 @@ ...@@ -148,19 +161,24 @@
<div class="third-layer"> <div class="third-layer">
<!-- form开始 --> <!-- form开始 -->
<div class="form-container"> <div class="form-container">
<h2 style="font-family: PingFang SC;
font-weight: 500;
font-size: .26rem;
color: #0587FE;border-radius: .04rem;padding:.2rem;
border: 0.02rem solid #7DC3FF;">消费者安全建议:如您有建议,可填写下方内容</h2>
<div> <div>
<h5 class="imager-item-title"> <h5 class="imager-item-title">
<span>*安全建议</span> <span>*安全建议</span>
<span></span> <span></span>
</h5> </h5>
<div> <div>
<textarea name="" id="" cols="10" rows="2"></textarea> <textarea class="textareaEle" name="" id="" cols="10" rows="2" style="resize: none;"></textarea>
</div> </div>
</div> </div>
<div> <div>
<h5 class="imager-item-title"> <h5 class="imager-item-title">
<span>请上传图片(最多张)</span> <span>请上传图片(最多4张)</span>
<span></span> <span></span>
</h5> </h5>
<div> <div>
...@@ -172,26 +190,47 @@ ...@@ -172,26 +190,47 @@
<div class="form-item"> <div class="form-item">
<span class="form-label">联系人</span> <span class="form-label">联系人</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.owner" class="form-input" placeholder="请输入11位手机号" <input type="text" v-model="formData.owner" class="form-input" placeholder="请输入姓名">
pattern="[0-9]{11}">
</div> </div>
</div> </div>
<div class="form-item"> <div class="form-item">
<span class="form-label">联系电话</span> <span class="form-label">联系方式</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.merchantPhone" class="form-input" <input type="text" v-model="formData.merchantPhone" class="form-input"
placeholder="请输入联系地址"> placeholder="请输入手机号">
</div> </div>
</div> </div>
<div class="form-item"> <!-- <div class="form-item">
<van-cell @click="showDatePicker=true" >日期<span class="formValue">{{formData.date}}</span></van-cell>
</div> -->
<van-popup v-model="showDatePicker" position="bottom">
<van-datetime-picker
type="date"
@confirm="onDateConfirm"
@cancel="showDatePicker = false"
/>
</van-popup>
<div class="form-item date-wrapper">
<span class="form-label">日期</span> <span class="form-label">日期</span>
<div class="form-input-wrap"> <div class="form-input-wrap">
<input type="text" v-model="formData.businessAddress" v-model="formData.merchantPhone" <van-field
class="form-input" placeholder="请输入联系地址"> readonly
v-model="formData.date"
:min-date="minDate"
:max-date="maxDate"
placeholder="请选择日期"
@click="showDatePicker = true"
class="form-input"
/>
</div> </div>
</div> </div>
<!-- form结束 --> <!-- form结束 -->
<button class="save-btn" style="margin-left: 50%; transform: translateX(-50%);" onclick="save" <button class="save-btn" style="margin-left: 50%; transform: translateX(-50%);" onclick="save"
>提交</button> >提交</button>
......
...@@ -9,6 +9,9 @@ window.addEventListener("load", function () { ...@@ -9,6 +9,9 @@ window.addEventListener("load", function () {
el: '#app', el: '#app',
data() { data() {
return { return {
showDatePicker: false, // 控制日期选择器显示
minDate: new Date(gemhoUtil.getTargetDateYMD()), // 最小可选日期
maxDate: new Date(2099, 11, 31), // 最大可选日期
// 新增子Tab数据 // 新增子Tab数据
subActiveTab: 0, subActiveTab: 0,
hazardList: [// 更多示例数据... hazardList: [// 更多示例数据...
...@@ -19,7 +22,7 @@ window.addEventListener("load", function () { ...@@ -19,7 +22,7 @@ window.addEventListener("load", function () {
showTypePicker: false, showTypePicker: false,
typeOptions: ['小餐饮', '酒店', '商场', '学校', '医疗机构'], typeOptions: ['小餐饮', '酒店', '商场', '学校', '医疗机构'],
formData: { formData: {
principal: '', date: gemhoUtil.getTargetDateYMD(),
phone: '', phone: '',
area: '', area: '',
businessHours: '', businessHours: '',
...@@ -50,7 +53,36 @@ window.addEventListener("load", function () { ...@@ -50,7 +53,36 @@ window.addEventListener("load", function () {
mounted() { mounted() {
this.getShopInfo() // 获取商户信息 this.getShopInfo() // 获取商户信息
}, },
watch: {
'formData.date': {
handler(newVal) {
console.log('date 属性变化:', newVal);
},
deep: true // 深度监听对象属性
}
},
methods: { methods: {
// 日期格式化函数(确保格式为 YYYY-MM-DD)
dateFormatter(type, value) {
if (type === 'year') {
return `${value}年`;
} else if (type === 'month') {
return `${value}月`;
}
return `${value}日`;
},
// 确认日期选择
onDateConfirm(date) {
// 将 Date 对象格式化为 YYYY-MM-DD 字符串
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0');
const day = String(date.getDate()).padStart(2, '0');
this.formData.date = `${year}-${month}-${day}`;
this.showDatePicker = false;
},
dateChange(e){
console.log('date 属性变化22222:', e);
},
// 文件上传处理 // 文件上传处理
handleFileUpload(file) { handleFileUpload(file) {
console.log('上传文件:', file); console.log('上传文件:', file);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment