完善医疗项目页面
This commit is contained in:
38
pages/mall/merchant/certification.uvue
Normal file
38
pages/mall/merchant/certification.uvue
Normal file
@@ -0,0 +1,38 @@
|
||||
<!-- 机构端 - 资质管理页面 -->
|
||||
<template>
|
||||
<view class="page">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<view class="detail-navbar">
|
||||
<view class="detail-navbar-back" @click="uni.navigateBack()">
|
||||
<text class="back-arrow">‹</text>
|
||||
<text class="back-text">返回</text>
|
||||
</view>
|
||||
<text class="detail-navbar-title">资质管理</text>
|
||||
<view style="width: 120rpx;"></view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="content">
|
||||
<text class="tip">资质管理功能开发中,敬请期待</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="uts">
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.page { background-color: #f5f5f5; min-height: 100vh; }
|
||||
.detail-navbar { display: flex; flex-direction: row; align-items: flex-end; background-color: #ffffff; border-bottom-width: 1rpx; border-bottom-style: solid; border-bottom-color: #eeeeee; box-sizing: border-box; padding-top: var(--status-bar-height); height: calc(88rpx + var(--status-bar-height)); }
|
||||
.detail-navbar-back { display: flex; flex-direction: row; align-items: center; padding: 0 30rpx; height: 88rpx; width: 120rpx; }
|
||||
.back-arrow { font-size: 44rpx; color: #333333; line-height: 1; margin-right: 4rpx; }
|
||||
.back-text { font-size: 28rpx; color: #333333; }
|
||||
.detail-navbar-title { flex: 1; text-align: center; font-size: 32rpx; font-weight: 600; color: #1a1a1a; height: 88rpx; line-height: 88rpx; }
|
||||
.content { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 40rpx; }
|
||||
.tip { font-size: 28rpx; color: #999; }
|
||||
</style>
|
||||
@@ -156,15 +156,18 @@
|
||||
async loadLevels() {
|
||||
const res = await supa.from('ml_member_levels').select('*').order('level_rank', { ascending: true }).execute()
|
||||
if (res.data != null) {
|
||||
this.levels = (res.data as any[]).map((item: any) => {
|
||||
const obj = item as UTSJSONObject
|
||||
return {
|
||||
const raw = res.data as any[]
|
||||
const levels: MemberLevel[] = []
|
||||
for (let i = 0; i < raw.length; i++) {
|
||||
const obj = raw[i] as UTSJSONObject
|
||||
levels.push({
|
||||
id: obj.getString('id') || '',
|
||||
name: obj.getString('name') || '',
|
||||
discount_rate: obj.getNumber('discount_rate') || 1.0,
|
||||
level_rank: obj.getNumber('level_rank') || 0
|
||||
} as MemberLevel
|
||||
})
|
||||
} as MemberLevel)
|
||||
}
|
||||
this.levels = levels
|
||||
}
|
||||
},
|
||||
async loadUsers() {
|
||||
@@ -467,66 +470,415 @@
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.members-page { background-color: #f8f9fa; min-height: 100vh; }
|
||||
/* ===== tabs 横排 ===== */
|
||||
.tabs { display: flex; flex-direction: row; background: #fff; padding: 20rpx 0; border-bottom: 1rpx solid #eee; }
|
||||
.tab { flex: 1; text-align: center; font-size: 28rpx; color: #666; }
|
||||
.tab.active { color: rgb(66, 121, 240); font-weight: bold; }
|
||||
.members-page {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #f8f9fa;
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.list-container { padding: 20rpx; }
|
||||
.section-card { background: #fff; border-radius: 16rpx; padding: 30rpx; }
|
||||
/* ===== 卡片头部横排 ===== */
|
||||
.card-header { display: flex; flex-direction: row; justify-content: space-between; align-items: center; margin-bottom: 30rpx; }
|
||||
.card-title { font-size: 32rpx; font-weight: bold; }
|
||||
.add-btn { color: rgb(66, 121, 240); font-size: 26rpx; }
|
||||
.tabs {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background: #ffffff;
|
||||
padding: 0;
|
||||
border-bottom: 1rpx solid #eeeeee;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* ===== 等级列表项横排(左名称+折扣 / 右操作)===== */
|
||||
.level-item { display: flex; flex-direction: row; justify-content: space-between; align-items: center; border-bottom: 1rpx solid #f5f5f5; padding: 20rpx 0; }
|
||||
.level-info { display: flex; flex-direction: column; flex: 1; }
|
||||
.level-name { font-size: 30rpx; color: #333; margin-bottom: 4rpx; }
|
||||
.level-rate { font-size: 24rpx; color: #FF9500; }
|
||||
.level-actions { display: flex; flex-direction: row; align-items: center; }
|
||||
.action-edit { color: rgb(66, 121, 240); font-size: 26rpx; margin-right: 24rpx; }
|
||||
.action-del { color: #FF3B30; font-size: 26rpx; }
|
||||
.tab {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 88rpx;
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.search-bar { display: flex; flex-direction: row; align-items: center; padding: 20rpx; background: #fff; margin-bottom: 20rpx; border-radius: 12rpx; }
|
||||
.search-input { flex: 1; height: 72rpx; background: #f5f5f5; border-radius: 36rpx; padding: 0 30rpx; font-size: 26rpx; }
|
||||
.search-btn { margin-left: 20rpx; color: rgb(66, 121, 240); line-height: 72rpx; font-size: 28rpx; }
|
||||
.tab.active {
|
||||
color: rgb(66, 121, 240);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/* ===== 用户列表项横排(左头像 / 中信息 / 右操作)===== */
|
||||
.user-item { display: flex; flex-direction: row; align-items: center; background: #fff; padding: 24rpx; border-radius: 16rpx; margin-bottom: 20rpx; }
|
||||
.user-avatar { width: 90rpx; height: 90rpx; border-radius: 45rpx; background: #eee; flex-shrink: 0; }
|
||||
.user-info { flex: 1; margin-left: 24rpx; display: flex; flex-direction: column; }
|
||||
/* 姓名行:昵称 + 等级标签横排 */
|
||||
.user-title-row { display: flex; flex-direction: row; align-items: center; flex-wrap: wrap; margin-bottom: 4rpx; }
|
||||
.user-name { font-size: 30rpx; font-weight: bold; color: #333; margin-right: 10rpx; }
|
||||
.user-email { font-size: 22rpx; color: #999; margin-bottom: 4rpx; }
|
||||
.user-phone { font-size: 24rpx; color: #999; }
|
||||
.user-tier-tag { background: #FF9500; color: #fff; font-size: 20rpx; padding: 2rpx 12rpx; border-radius: 4rpx; }
|
||||
/* ===== 操作按钮区横排 ===== */
|
||||
.user-actions { display: flex; flex-direction: row; align-items: center; flex-shrink: 0; margin-left: 16rpx; }
|
||||
.action-set { font-size: 24rpx; color: rgb(66, 121, 240); padding: 10rpx 16rpx; background-color: #e8f0fe; border-radius: 8rpx; }
|
||||
.action-set.discount-btn { color: #FF9800; background-color: #FFF8E1; margin-left: 12rpx; }
|
||||
.tab.active::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 44rpx;
|
||||
height: 4rpx;
|
||||
background: rgb(66, 121, 240);
|
||||
border-radius: 2rpx;
|
||||
}
|
||||
|
||||
/* 弹窗样式 */
|
||||
.modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); display: flex; flex-direction: row; align-items: center; justify-content: center; z-index: 999; }
|
||||
.modal-content { background: #fff; width: 600rpx; border-radius: 24rpx; padding: 40rpx; }
|
||||
.modal-title { text-align: center; font-size: 34rpx; font-weight: bold; margin-bottom: 30rpx; }
|
||||
.form-item { margin-bottom: 30rpx; }
|
||||
.label { font-size: 26rpx; color: #666; margin-bottom: 12rpx; display: block; }
|
||||
.input { background: #f5f5f5; height: 80rpx; border-radius: 12rpx; padding: 0 20rpx; font-size: 28rpx; }
|
||||
/* ===== modal 按钮横排 ===== */
|
||||
.modal-btns { display: flex; flex-direction: row; justify-content: flex-end; margin-top: 40rpx; }
|
||||
.btn { padding: 16rpx 40rpx; border-radius: 12rpx; font-size: 28rpx; margin-left: 20rpx; }
|
||||
.btn.cancel { background: #eee; color: #666; }
|
||||
.btn.confirm { background: rgb(66, 121, 240); color: #fff; }
|
||||
.list-container {
|
||||
flex: 1;
|
||||
height: calc(100vh - 176rpx);
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* ===== 等级选择横向排列 ===== */
|
||||
.tier-options { display: flex; flex-direction: row; flex-wrap: wrap; }
|
||||
.tier-option { padding: 16rpx 30rpx; background: #f5f5f5; margin: 10rpx; border-radius: 36rpx; font-size: 26rpx; }
|
||||
.tier-option.selected { background: rgb(66, 121, 240); color: #fff; }
|
||||
.section-card {
|
||||
background: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.card-header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.card-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.add-btn {
|
||||
font-size: 26rpx;
|
||||
color: rgb(66, 121, 240);
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.level-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.level-item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 24rpx 0;
|
||||
border-bottom: 1rpx solid #f5f5f5;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.level-info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-right: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.level-name {
|
||||
font-size: 30rpx;
|
||||
color: #333333;
|
||||
font-weight: 500;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.level-rate {
|
||||
font-size: 24rpx;
|
||||
color: #ff9500;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.level-actions {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.action-edit,
|
||||
.action-del {
|
||||
font-size: 24rpx;
|
||||
line-height: 1.4;
|
||||
padding: 8rpx 0;
|
||||
}
|
||||
|
||||
.action-edit {
|
||||
color: rgb(66, 121, 240);
|
||||
margin-right: 24rpx;
|
||||
}
|
||||
|
||||
.action-del {
|
||||
color: #ff3b30;
|
||||
}
|
||||
|
||||
.user-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.empty-tip {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-height: 220rpx;
|
||||
background: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.user-item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
background: #ffffff;
|
||||
padding: 24rpx;
|
||||
border-radius: 16rpx;
|
||||
margin-bottom: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.user-avatar {
|
||||
width: 90rpx;
|
||||
height: 90rpx;
|
||||
border-radius: 45rpx;
|
||||
background: #eeeeee;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.user-info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 24rpx;
|
||||
margin-right: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.user-title-row {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.user-name {
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
line-height: 1.4;
|
||||
margin-right: 12rpx;
|
||||
}
|
||||
|
||||
.user-tier-tag {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 36rpx;
|
||||
padding: 0 14rpx;
|
||||
background: #ff9500;
|
||||
color: #ffffff;
|
||||
font-size: 20rpx;
|
||||
border-radius: 18rpx;
|
||||
line-height: 1;
|
||||
box-sizing: border-box;
|
||||
margin-top: 4rpx;
|
||||
}
|
||||
|
||||
.user-email {
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 6rpx;
|
||||
}
|
||||
|
||||
.user-phone {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.user-actions {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
flex-wrap: wrap;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.action-set {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 60rpx;
|
||||
padding: 0 20rpx;
|
||||
font-size: 24rpx;
|
||||
color: rgb(66, 121, 240);
|
||||
background-color: #e8f0fe;
|
||||
border-radius: 30rpx;
|
||||
box-sizing: border-box;
|
||||
margin-left: 12rpx;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
|
||||
.action-set.discount-btn {
|
||||
color: #ff9800;
|
||||
background-color: #fff8e1;
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
padding: 20rpx;
|
||||
background: #ffffff;
|
||||
margin-bottom: 20rpx;
|
||||
border-radius: 12rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.search-input {
|
||||
flex: 1;
|
||||
height: 72rpx;
|
||||
background: #f5f5f5;
|
||||
border-radius: 36rpx;
|
||||
padding: 0 30rpx;
|
||||
font-size: 26rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.search-btn {
|
||||
margin-left: 20rpx;
|
||||
height: 72rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: rgb(66, 121, 240);
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.modal {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 999;
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
width: 600rpx;
|
||||
max-width: 100%;
|
||||
background: #ffffff;
|
||||
border-radius: 24rpx;
|
||||
padding: 40rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.modal-title {
|
||||
text-align: center;
|
||||
font-size: 34rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.form-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
|
||||
.label {
|
||||
font-size: 26rpx;
|
||||
color: #666666;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.input {
|
||||
background: #f5f5f5;
|
||||
height: 80rpx;
|
||||
border-radius: 12rpx;
|
||||
padding: 0 20rpx;
|
||||
font-size: 28rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.modal-btns {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-top: 40rpx;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 160rpx;
|
||||
height: 76rpx;
|
||||
padding: 0 32rpx;
|
||||
border-radius: 12rpx;
|
||||
font-size: 28rpx;
|
||||
box-sizing: border-box;
|
||||
margin-left: 20rpx;
|
||||
}
|
||||
|
||||
.btn.cancel {
|
||||
background: #eeeeee;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
.btn.confirm {
|
||||
background: rgb(66, 121, 240);
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.tier-options {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin: -10rpx;
|
||||
}
|
||||
|
||||
.tier-option {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 16rpx 30rpx;
|
||||
background: #f5f5f5;
|
||||
margin: 10rpx;
|
||||
border-radius: 36rpx;
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.tier-option.selected {
|
||||
background: rgb(66, 121, 240);
|
||||
color: #ffffff;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -84,11 +84,7 @@
|
||||
const session = supa.getSession()
|
||||
this.merchantId = session?.user?.getString('id') || uni.getStorageSync('user_id') || ''
|
||||
} catch (e) {}
|
||||
},
|
||||
|
||||
async loadPromotions() {
|
||||
this.loading = true
|
||||
|
||||
this.loadPromotions()
|
||||
try {
|
||||
const response = await supa
|
||||
.from('ml_coupon_templates')
|
||||
|
||||
@@ -100,7 +100,12 @@
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
this.initMerchantId()
|
||||
// 同步设置 merchantId,不用 async 包裹,避免 generator 内 this 绑定异常
|
||||
try {
|
||||
const session = supa.getSession()
|
||||
this.merchantId = session?.user?.getString('id') || uni.getStorageSync('user_id') || ''
|
||||
} catch (e) {}
|
||||
this.loadReviews()
|
||||
},
|
||||
|
||||
onShow() {
|
||||
@@ -108,17 +113,10 @@
|
||||
},
|
||||
|
||||
methods: {
|
||||
async initMerchantId() {
|
||||
try {
|
||||
const session = supa.getSession()
|
||||
this.merchantId = session?.user?.getString('id') || uni.getStorageSync('user_id') || ''
|
||||
} catch (e) {}
|
||||
},
|
||||
|
||||
async loadReviews() {
|
||||
if (!this.merchantId || this.merchantId.split('-').length !== 5) return
|
||||
if (this.loading) return
|
||||
this.loading = true
|
||||
|
||||
try {
|
||||
let query = supa
|
||||
.from('ml_product_reviews')
|
||||
@@ -127,7 +125,6 @@
|
||||
.order('created_at', { ascending: false })
|
||||
.page(this.page)
|
||||
.limit(this.limit)
|
||||
|
||||
const response = await query.execute()
|
||||
|
||||
if (response.error != null || !response.data) {
|
||||
@@ -186,7 +183,8 @@
|
||||
if (!this.loadingMore && this.hasMore) {
|
||||
this.loadingMore = true
|
||||
this.page++
|
||||
this.loadReviews().then(() => { this.loadingMore = false })
|
||||
const resetMore = () => { this.loadingMore = false }
|
||||
this.loadReviews().then(resetMore).catch(resetMore)
|
||||
}
|
||||
},
|
||||
|
||||
@@ -253,44 +251,334 @@
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.reviews-page { background-color: #f5f5f5; min-height: 100vh; }
|
||||
.filter-tabs { display: flex; flex-direction: row; background-color: #fff; padding: 0 20rpx; margin-bottom: 20rpx; }
|
||||
.filter-tab { flex: 1; text-align: center; padding: 24rpx 0; font-size: 26rpx; color: #666; position: relative; }
|
||||
.filter-tab.active { color: rgb(66, 121, 240); font-weight: bold; }
|
||||
.filter-tab.active::after { content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 40rpx; height: 4rpx; background-color: rgb(66, 121, 240); border-radius: 2rpx; }
|
||||
.reviews-list { padding: 0 20rpx; height: calc(100vh - 120rpx); }
|
||||
.loading-container, .empty-container { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 100rpx 0; }
|
||||
.empty-icon { font-size: 100rpx; margin-bottom: 20rpx; }
|
||||
.empty-text, .loading-text { font-size: 28rpx; color: #999; }
|
||||
.review-card { background-color: #fff; border-radius: 16rpx; margin-bottom: 20rpx; padding: 24rpx; }
|
||||
.review-header { display: flex; flex-direction: row; align-items: center; margin-bottom: 20rpx; }
|
||||
.user-avatar { width: 70rpx; height: 70rpx; border-radius: 50%; margin-right: 16rpx; background-color: #f5f5f5; }
|
||||
.user-info { flex: 1; }
|
||||
.user-name { font-size: 26rpx; color: #333; font-weight: 500; display: block; margin-bottom: 8rpx; }
|
||||
.rating { display: flex; flex-direction: row; }
|
||||
.star { font-size: 22rpx; color: #ddd; margin-right: 4rpx; }
|
||||
.star.filled { color: #FFB800; }
|
||||
.review-time { font-size: 22rpx; color: #999; }
|
||||
.review-product { font-size: 24rpx; color: #666; margin-bottom: 12rpx; }
|
||||
.review-content { font-size: 26rpx; color: #333; line-height: 1.5; margin-bottom: 16rpx; }
|
||||
.review-images { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12rpx; margin-bottom: 16rpx; }
|
||||
.review-image { width: 120rpx; height: 120rpx; border-radius: 8rpx; }
|
||||
.review-reply { background-color: #f5f5f5; padding: 16rpx; border-radius: 8rpx; margin-top: 16rpx; }
|
||||
.reply-label { font-size: 24rpx; color: rgb(66, 121, 240); font-weight: 500; display: block; margin-bottom: 8rpx; }
|
||||
.reply-content { font-size: 24rpx; color: #666; }
|
||||
.review-actions { margin-top: 16rpx; text-align: right; }
|
||||
.action-btn { display: inline-block; padding: 12rpx 24rpx; font-size: 24rpx; background-color: #E3F2FD; color: rgb(66, 121, 240); border-radius: 24rpx; }
|
||||
.load-more { padding: 30rpx 0; text-align: center; }
|
||||
.load-more-text { font-size: 24rpx; color: #999; }
|
||||
.modal-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0,0,0,0.5); display: flex; align-items: flex-end; justify-content: center; z-index: 1000; }
|
||||
.modal-content { width: 100%; background-color: #fff; border-radius: 24rpx 24rpx 0 0; padding-bottom: env(safe-area-inset-bottom); }
|
||||
.modal-header { display: flex; flex-direction: row; justify-content: space-between; align-items: center; padding: 30rpx; border-bottom: 1rpx solid #f5f5f5; }
|
||||
.modal-title { font-size: 32rpx; font-weight: bold; color: #333; }
|
||||
.modal-close { font-size: 44rpx; color: #999; }
|
||||
.modal-body { padding: 30rpx; }
|
||||
.reply-input { width: 100%; height: 200rpx; border: 1rpx solid #e5e5e5; border-radius: 8rpx; padding: 20rpx; font-size: 28rpx; box-sizing: border-box; }
|
||||
.modal-footer { display: flex; flex-direction: row; border-top: 1rpx solid #f5f5f5; }
|
||||
.modal-btn { flex: 1; height: 88rpx; line-height: 88rpx; text-align: center; font-size: 28rpx; }
|
||||
.modal-btn.cancel { color: #666; border-right: 1rpx solid #f5f5f5; }
|
||||
.modal-btn.confirm { color: rgb(66, 121, 240); font-weight: bold; }
|
||||
.reviews-page {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #f5f5f5;
|
||||
min-height: 100vh;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.filter-tabs {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background-color: #ffffff;
|
||||
padding: 0 20rpx;
|
||||
margin-bottom: 20rpx;
|
||||
border-bottom: 1rpx solid #f2f2f2;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.filter-tab {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 88rpx;
|
||||
font-size: 26rpx;
|
||||
color: #666666;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.filter-tab.active {
|
||||
color: rgb(66, 121, 240);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.filter-tab.active::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 44rpx;
|
||||
height: 4rpx;
|
||||
background-color: rgb(66, 121, 240);
|
||||
border-radius: 2rpx;
|
||||
}
|
||||
|
||||
.reviews-list {
|
||||
flex: 1;
|
||||
height: calc(100vh - 176rpx);
|
||||
padding: 0 20rpx 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.loading-container,
|
||||
.empty-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 120rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.empty-icon {
|
||||
font-size: 100rpx;
|
||||
line-height: 1;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.empty-text,
|
||||
.loading-text {
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.review-card {
|
||||
background-color: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
margin-bottom: 20rpx;
|
||||
padding: 24rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.review-header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
margin-bottom: 20rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.user-avatar {
|
||||
width: 72rpx;
|
||||
height: 72rpx;
|
||||
border-radius: 36rpx;
|
||||
margin-right: 16rpx;
|
||||
background-color: #f5f5f5;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.user-info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.user-name {
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
font-weight: 500;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.rating {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.star {
|
||||
font-size: 22rpx;
|
||||
line-height: 1;
|
||||
color: #dddddd;
|
||||
margin-right: 4rpx;
|
||||
}
|
||||
|
||||
.star.filled {
|
||||
color: #ffb800;
|
||||
}
|
||||
|
||||
.review-time {
|
||||
margin-left: 16rpx;
|
||||
font-size: 22rpx;
|
||||
color: #999999;
|
||||
line-height: 1.4;
|
||||
text-align: right;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.review-product {
|
||||
margin-bottom: 12rpx;
|
||||
}
|
||||
|
||||
.product-name {
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.review-content {
|
||||
font-size: 26rpx;
|
||||
color: #333333;
|
||||
line-height: 1.6;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.review-images {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
margin-bottom: 16rpx;
|
||||
}
|
||||
|
||||
.review-image {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-right: 12rpx;
|
||||
margin-bottom: 12rpx;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
.review-reply {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
background-color: #f7f8fa;
|
||||
padding: 18rpx 20rpx;
|
||||
border-radius: 10rpx;
|
||||
margin-top: 16rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.reply-label {
|
||||
font-size: 24rpx;
|
||||
color: rgb(66, 121, 240);
|
||||
font-weight: 500;
|
||||
line-height: 1.4;
|
||||
margin-bottom: 8rpx;
|
||||
}
|
||||
|
||||
.reply-content {
|
||||
font-size: 24rpx;
|
||||
color: #666666;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.review-actions {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: flex-end;
|
||||
align-items: center;
|
||||
margin-top: 16rpx;
|
||||
}
|
||||
|
||||
.action-btn {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 12rpx 24rpx;
|
||||
font-size: 24rpx;
|
||||
line-height: 1.4;
|
||||
background-color: #e8f0fe;
|
||||
color: rgb(66, 121, 240);
|
||||
border-radius: 24rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.load-more {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 30rpx 0;
|
||||
}
|
||||
|
||||
.load-more-text {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.modal-mask {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
background-color: rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: flex-end;
|
||||
justify-content: center;
|
||||
z-index: 1000;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
width: 100%;
|
||||
background-color: #ffffff;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.modal-header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 30rpx;
|
||||
border-bottom: 1rpx solid #f2f2f2;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.modal-title {
|
||||
font-size: 32rpx;
|
||||
font-weight: bold;
|
||||
color: #333333;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.modal-close {
|
||||
font-size: 44rpx;
|
||||
color: #999999;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.modal-body {
|
||||
padding: 30rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.reply-input {
|
||||
width: 100%;
|
||||
height: 220rpx;
|
||||
border: 1rpx solid #e5e5e5;
|
||||
border-radius: 12rpx;
|
||||
padding: 20rpx;
|
||||
font-size: 28rpx;
|
||||
line-height: 1.6;
|
||||
box-sizing: border-box;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
border-top: 1rpx solid #f2f2f2;
|
||||
}
|
||||
|
||||
.modal-btn {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 88rpx;
|
||||
font-size: 28rpx;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.modal-btn.cancel {
|
||||
color: #666666;
|
||||
border-right: 1rpx solid #f2f2f2;
|
||||
}
|
||||
|
||||
.modal-btn.confirm {
|
||||
color: rgb(66, 121, 240);
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
71
pages/mall/merchant/search.uvue
Normal file
71
pages/mall/merchant/search.uvue
Normal file
@@ -0,0 +1,71 @@
|
||||
<!-- 机构端 - 搜索页面 -->
|
||||
<template>
|
||||
<view class="page">
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<view class="detail-navbar">
|
||||
<view class="detail-navbar-back" @click="uni.navigateBack()">
|
||||
<text class="back-arrow">‹</text>
|
||||
<text class="back-text">返回</text>
|
||||
</view>
|
||||
<text class="detail-navbar-title">搜索</text>
|
||||
<view style="width: 120rpx;"></view>
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="search-bar-row">
|
||||
<input
|
||||
class="search-input"
|
||||
type="text"
|
||||
placeholder="搜索商品、订单、用户…"
|
||||
:value="keyword"
|
||||
@input="onInput"
|
||||
@confirm="doSearch"
|
||||
/>
|
||||
<view class="search-btn" @click="doSearch">
|
||||
<text class="search-btn-text">搜索</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="content" v-if="!searched">
|
||||
<text class="tip">输入关键字开始搜索</text>
|
||||
</view>
|
||||
<view class="content" v-else>
|
||||
<text class="tip">暂无搜索结果</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="uts">
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
keyword: '' as string,
|
||||
searched: false as boolean
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
onInput(e : InputEvent) {
|
||||
this.keyword = e.detail.value
|
||||
},
|
||||
doSearch() {
|
||||
if (!this.keyword.trim()) return
|
||||
this.searched = true
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.page { background-color: #f5f5f5; min-height: 100vh; }
|
||||
.detail-navbar { display: flex; flex-direction: row; align-items: flex-end; background-color: #ffffff; border-bottom-width: 1rpx; border-bottom-style: solid; border-bottom-color: #eeeeee; box-sizing: border-box; padding-top: var(--status-bar-height); height: calc(88rpx + var(--status-bar-height)); }
|
||||
.detail-navbar-back { display: flex; flex-direction: row; align-items: center; padding: 0 30rpx; height: 88rpx; width: 120rpx; }
|
||||
.back-arrow { font-size: 44rpx; color: #333333; line-height: 1; margin-right: 4rpx; }
|
||||
.back-text { font-size: 28rpx; color: #333333; }
|
||||
.detail-navbar-title { flex: 1; text-align: center; font-size: 32rpx; font-weight: 600; color: #1a1a1a; height: 88rpx; line-height: 88rpx; }
|
||||
.search-bar-row { display: flex; flex-direction: row; align-items: center; background-color: #ffffff; padding: 20rpx 30rpx; margin-bottom: 20rpx; }
|
||||
.search-input { flex: 1; height: 72rpx; background-color: #f5f5f5; border-radius: 36rpx; padding: 0 30rpx; font-size: 28rpx; }
|
||||
.search-btn { margin-left: 20rpx; padding: 0 30rpx; height: 72rpx; line-height: 72rpx; background-color: rgb(66, 121, 240); border-radius: 36rpx; }
|
||||
.search-btn-text { font-size: 28rpx; color: #ffffff; }
|
||||
.content { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 120rpx 40rpx; }
|
||||
.tip { font-size: 28rpx; color: #999; }
|
||||
</style>
|
||||
@@ -1,117 +1,39 @@
|
||||
VM12683 vendor.js:6839 GET http://119.146.131.237:9126/rest/v1/ml_shops?select=*&limit=1&merchant_id=eq.demo-merchant-001 400 (Bad Request)(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
(anonymous) @ VM12683 vendor.js:6839
|
||||
invokeApi @ VM12683 vendor.js:6217
|
||||
promiseApi @ VM12683 vendor.js:6715
|
||||
(anonymous) @ VM12746 ak-req.js:250
|
||||
doOnce @ VM12746 ak-req.js:248
|
||||
_loop$ @ VM12746 ak-req.js:310
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
_ @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
fulfilled @ VM12683 vendor.js:9601
|
||||
Promise.then (async)
|
||||
step @ VM12683 vendor.js:9614
|
||||
(anonymous) @ VM12683 vendor.js:9616
|
||||
__awaiter @ VM12683 vendor.js:9598
|
||||
request @ VM12746 ak-req.js:177
|
||||
_callee19$ @ VM12684 aksupa.js:1838
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12683 vendor.js:9616
|
||||
__awaiter @ VM12683 vendor.js:9598
|
||||
requestWithAutoRefresh @ VM12684 aksupa.js:1832
|
||||
_callee11$ @ VM12684 aksupa.js:1492
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12683 vendor.js:9616
|
||||
__awaiter @ VM12683 vendor.js:9598
|
||||
select @ VM12684 aksupa.js:1425
|
||||
_callee$ @ VM12684 aksupa.js:715
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12683 vendor.js:9616
|
||||
__awaiter @ VM12683 vendor.js:9598
|
||||
execute @ VM12684 aksupa.js:691
|
||||
_callee2$ @ shop-edit.uvue:108
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12683 vendor.js:9616
|
||||
__awaiter @ VM12683 vendor.js:9598
|
||||
loadShop @ shop-edit.uvue:101
|
||||
_callee$ @ shop-edit.uvue:95
|
||||
s @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12687 regeneratorRuntime.js:1
|
||||
(anonymous) @ VM12683 vendor.js:9616
|
||||
__awaiter @ VM12683 vendor.js:9598
|
||||
initMerchantId @ shop-edit.uvue:86
|
||||
onLoad @ shop-edit.uvue:82
|
||||
callWithErrorHandling @ VM12683 vendor.js:1733
|
||||
callWithAsyncErrorHandling @ VM12683 vendor.js:1740
|
||||
hook.__weh.hook.__weh @ VM12683 vendor.js:2725
|
||||
invokeArrayFns @ VM12683 vendor.js:259
|
||||
callHook @ VM12683 vendor.js:8827
|
||||
methods.onLoad @ VM12683 vendor.js:9367
|
||||
Show 30 more frames
|
||||
Error: MiniProgramError
|
||||
{"errMsg":"navigateTo:fail page \"pages/mall/merchant/health-management\" is not found"}
|
||||
at Object.errorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Function.thirdErrorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.thirdErrorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at i (VM12659 WASubContext.js:1)
|
||||
at Object.cb (VM12659 WASubContext.js:1)
|
||||
at X._privEmit (VM12659 WASubContext.js:1)
|
||||
at X.emit (VM12659 WASubContext.js:1)
|
||||
at VM12659 WASubContext.js:1
|
||||
at n (VM12659 WASubContext.js:1)
|
||||
at He (VM12659 WASubContext.js:1)(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
VM12683 vendor.js:7499 {reason: {…}, promise: Promise}(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
onError2 @ VM12683 vendor.js:7499
|
||||
(anonymous) @ VM12683 vendor.js:6764
|
||||
Error: SystemError (appServiceSDKScriptError)
|
||||
{"errMsg":"SocketTask.send:fail SocketTask.readyState is not OPEN"}
|
||||
at Function.errorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.<anonymous> (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.cb (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at J._privEmit (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at J.emit (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at WAServiceMainContext.js?t=wechat&v=3.14.2:1
|
||||
at a (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at ze (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.He (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at ae (WAServiceMainContext.js?t=wechat&v=3.14.2:1)(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
Error: MiniProgramError
|
||||
{"errMsg":"navigateTo:fail page \"pages/mall/merchant/ai-consultation\" is not found"}
|
||||
at Object.errorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Function.thirdErrorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.thirdErrorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at i (VM12659 WASubContext.js:1)
|
||||
at Object.cb (VM12659 WASubContext.js:1)
|
||||
at X._privEmit (VM12659 WASubContext.js:1)
|
||||
at X.emit (VM12659 WASubContext.js:1)
|
||||
at VM12659 WASubContext.js:1
|
||||
at n (VM12659 WASubContext.js:1)
|
||||
at He (VM12659 WASubContext.js:1)(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
VM12683 vendor.js:7499 {reason: {…}, promise: Promise}(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
onError2 @ VM12683 vendor.js:7499
|
||||
(anonymous) @ VM12683 vendor.js:6764
|
||||
Error: SystemError (appServiceSDKScriptError)
|
||||
{"errMsg":"SocketTask.send:fail SocketTask.readyState is not OPEN"}
|
||||
at Function.errorReport (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.<anonymous> (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.cb (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at J._privEmit (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at J.emit (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at WAServiceMainContext.js?t=wechat&v=3.14.2:1
|
||||
at a (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at ze (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at Object.He (WAServiceMainContext.js?t=wechat&v=3.14.2:1)
|
||||
at ae (WAServiceMainContext.js?t=wechat&v=3.14.2:1)(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
mp.esm.js:126 TypeError: this.loadReviews is not a function
|
||||
at Proxy.onShow (reviews.uvue:107)
|
||||
at callWithErrorHandling (vue.runtime.esm.js:1356)
|
||||
at callWithAsyncErrorHandling (vue.runtime.esm.js:1363)
|
||||
at Array.hook.__weh.hook.__weh (vue.runtime.esm.js:2461)
|
||||
at invokeArrayFns (uni-shared.es.js:469)
|
||||
at Proxy.callHook (uni.mp.esm.js:944)
|
||||
at ai.mpOptions.<computed> [as onShow] (uni.mp.esm.js:984)
|
||||
at ai.<anonymous> (VM16334 WASubContext.js:1)
|
||||
at ai.s.__callPageLifeTime__ (VM16334 WASubContext.js:1)
|
||||
at VM16334 WASubContext.js:1(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
onError2 @ mp.esm.js:126
|
||||
callWithErrorHandling @ vue.runtime.esm.js:1356
|
||||
callWithAsyncErrorHandling @ vue.runtime.esm.js:1363
|
||||
hook.__weh.hook.__weh @ vue.runtime.esm.js:2461
|
||||
invokeArrayFns @ uni-shared.es.js:469
|
||||
callHook @ uni.mp.esm.js:944
|
||||
errorHandler @ vue.runtime.esm.js:5331
|
||||
callWithErrorHandling @ vue.runtime.esm.js:1356
|
||||
handleError @ vue.runtime.esm.js:1396
|
||||
callWithErrorHandling @ vue.runtime.esm.js:1358
|
||||
callWithAsyncErrorHandling @ vue.runtime.esm.js:1363
|
||||
hook.__weh.hook.__weh @ vue.runtime.esm.js:2461
|
||||
invokeArrayFns @ uni-shared.es.js:469
|
||||
callHook @ uni.mp.esm.js:944
|
||||
mpOptions.<computed> @ uni.mp.esm.js:984
|
||||
TypeError: this.loadReviews is not a function
|
||||
at Proxy._callee$ (reviews.uvue:116)
|
||||
at s (regeneratorRuntime.js?forceSync=true:1)
|
||||
at Generator.<anonymous> (regeneratorRuntime.js?forceSync=true:1)
|
||||
at Generator.next (regeneratorRuntime.js?forceSync=true:1)
|
||||
at tslib.es6.js:76
|
||||
at new Promise (<anonymous>)
|
||||
at Object.__awaiter (tslib.es6.js:72)
|
||||
at Proxy.initMerchantId (reviews.uvue:111)
|
||||
at Proxy.onLoad (reviews.uvue:103)
|
||||
at callWithErrorHandling (vue.runtime.esm.js:1356)(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
mp.esm.js:126 {reason: TypeError: this.loadReviews is not a function
|
||||
at Proxy._callee$ (weapp:///pages/mall/merchant/r…, promise: Promise}(env: Windows,mp,1.06.2504030; lib: 3.14.2)
|
||||
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {\n keyword: '',\n searched: false\n };\n },\n methods: {\n onInput(e) {\n this.keyword = e.detail.value;\n },\n doSearch() {\n if (!this.keyword.trim())\n return null;\n this.searched = true;\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/merchant/search.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"search.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"search.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,IAAI;QACH,OAAO;YACN,OAAO,EAAE,EAAY;YACrB,QAAQ,EAAE,KAAgB;SAC1B,CAAA;IACF,CAAC;IACD,OAAO,EAAE;QACR,OAAO,CAAC,CAAc;YACrB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,CAAC;QACD,QAAQ;YACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBAAE,YAAM;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACrB,CAAC;KACD;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {};\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/merchant/certification.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"certification.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"certification.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,IAAI;QACH,OAAO,EAAE,CAAA;IACV,CAAC;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nimport { mockService, LogisticsConstants } from \"./mock-service\";\nexport default defineComponent({\n data() {\n return {\n isTestMode: mockService.isTestMode,\n config: new UTSJSONObject({\n mockUrl: mockService.mockUrl,\n webhookSecret: '********',\n autoPush: mockService.autoPush\n }),\n carriers: LogisticsConstants.CARRIERS.map((c) => {\n return new UTSJSONObject({\n name: c['label'],\n code: c['value'],\n enabled: true,\n callback_status: true,\n polling: false\n });\n })\n };\n },\n methods: {\n goBack() {\n uni.navigateBack();\n },\n toggleTestMode(e = null) {\n const val = e.detail.value;\n this.isTestMode = val;\n mockService.isTestMode = val; // 同步到 Mock 服务\n },\n onScenarioChange(e = null) {\n const isAuto = e.detail.value.includes('auto');\n this.config.autoPush = isAuto;\n mockService.autoPush = isAuto; // 同步到 Mock 服务\n },\n saveConfig() {\n uni.showLoading({ title: '保存中...' });\n setTimeout(() => {\n mockService.mockUrl = this.config.mockUrl;\n uni.hideLoading();\n uni.showToast({ title: '全局配置已同步' });\n }, 1000);\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/delivery/test/platform-config-center.uvue?vue&type=script&uts=true&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.showLoading","uni.hideLoading","uni.showToast"],"map":"{\"version\":3,\"file\":\"platform-config-center.uvue?vue&type=script&uts=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"platform-config-center.uvue?vue&type=script&uts=true&lang.uts\"],\"names\":[],\"mappings\":\";OACQ,EAAE,WAAW,EAAE,kBAAkB,EAAE;AAE1C,+BAAe;IACd,IAAI;QACH,OAAO;YACN,UAAU,EAAE,WAAW,CAAC,UAAU;YAClC,MAAM,oBAAE;gBACP,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,aAAa,EAAE,UAAU;gBACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;aAC9B,CAAA;YACD,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAiB;gBAC3D,yBAAO;oBACN,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;oBAChB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;oBAChB,OAAO,EAAE,IAAI;oBACb,eAAe,EAAE,IAAI;oBACrB,OAAO,EAAE,KAAK;iBACG,EAAA;YACnB,CAAC,CAAC;SACF,CAAA;IACF,CAAC;IACD,OAAO,EAAE;QACR,MAAM;YACL,GAAG,CAAC,YAAY,EAAE,CAAA;QACnB,CAAC;QACD,cAAc,CAAC,QAAM;YACpB,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,KAAgB,CAAA;YACrC,IAAI,CAAC,UAAU,GAAG,GAAG,CAAA;YACrB,WAAW,CAAC,UAAU,GAAG,GAAG,CAAA,CAAC,cAAc;QAC5C,CAAC;QACD,gBAAgB,CAAC,QAAM;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAA;YAC7B,WAAW,CAAC,QAAQ,GAAG,MAAM,CAAA,CAAC,cAAc;QAC7C,CAAC;QACD,UAAU;YACT,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YACpC,UAAU,CAAC;gBACV,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAA;gBACzC,GAAG,CAAC,WAAW,EAAE,CAAA;gBACjB,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;YACpC,CAAC,EAAE,IAAI,CAAC,CAAA;QACT,CAAC;KACD;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import {} from \"vue\";\nimport { setIsLoggedIn, setUserProfile, getCurrentUser } from \"@/utils/store\";\nimport supa from \"@/components/supadb/aksupainstance\";\nexport default defineComponent({\n onLaunch: function () {\n uni.__f__('log', 'at App.uvue:7', 'App Launch');\n // 检查是否已有有效会话,有则恢复登录状态\n this.checkExistingSession();\n },\n onShow: function () {\n uni.__f__('log', 'at App.uvue:13', 'App Show');\n },\n onHide: function () {\n uni.__f__('log', 'at App.uvue:16', 'App Hide');\n },\n methods: {\n checkExistingSession: function () {\n // 检查是否已有有效会话\n const session = supa.getSession();\n if (session.user != null) {\n uni.__f__('log', 'at App.uvue:23', '已有有效会话,恢复登录状态');\n setIsLoggedIn(true);\n uni.reLaunch({ url: '/pages/mall/merchant/index' });\n return null;\n }\n // 检查本地存储的登录状态\n const savedUserId = uni.getStorageSync('user_id');\n if (savedUserId != null && savedUserId != '') {\n uni.__f__('log', 'at App.uvue:40', '本地存储中有用户ID,尝试恢复会话');\n getCurrentUser().then((profile = null) => {\n if (profile != null) {\n uni.__f__('log', 'at App.uvue:43', '会话恢复成功');\n setIsLoggedIn(true);\n uni.reLaunch({ url: '/pages/mall/merchant/index' });\n }\n }).catch(() => {\n uni.__f__('log', 'at App.uvue:56', '会话恢复失败,需要重新登录');\n });\n }\n // 没有有效会话,显示登录页\n uni.__f__('log', 'at App.uvue:61', '无有效会话,显示登录页');\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/App.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.reLaunch","uni.getStorageSync"],"map":"{\"version\":3,\"file\":\"App.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"App.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";OACQ,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE;OACjD,IAAI;AAEX,+BAAe;IACd,QAAQ,EAAE;QACT,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,eAAe,EAAC,YAAY,CAAC,CAAA;QAE7C,sBAAsB;QACtB,IAAI,CAAC,oBAAoB,EAAE,CAAA;IAC5B,CAAC;IACD,MAAM,EAAE;QACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IACD,MAAM,EAAE;QACP,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,UAAU,CAAC,CAAA;IAC7C,CAAC;IACD,OAAO,EAAE;QACR,oBAAoB,EAAE;YACrB,aAAa;YACb,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;YACjC,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE;gBACzB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,eAAe,CAAC,CAAA;gBACjD,aAAa,CAAC,IAAI,CAAC,CAAA;gBAKnB,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAA;gBAKnD,YAAM;aACN;YAED,cAAc;YACd,MAAM,WAAW,GAAG,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;YACjD,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,EAAE,EAAE;gBAC7C,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,mBAAmB,CAAC,CAAA;gBACrD,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,OAAA;oBAC7B,IAAI,OAAO,IAAI,IAAI,EAAE;wBACpB,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,QAAQ,CAAC,CAAA;wBAC1C,aAAa,CAAC,IAAI,CAAC,CAAA;wBAKnB,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAA;qBAKnD;gBACF,CAAC,CAAC,CAAC,KAAK,CAAC;oBACR,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,eAAe,CAAC,CAAA;gBAClD,CAAC,CAAC,CAAA;aACF;YAED,eAAe;YACf,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,gBAAgB,EAAC,aAAa,CAAC,CAAA;QAChD,CAAC;KACD;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nimport supa from \"@/components/supadb/aksupainstance\";\nimport { IS_TEST_MODE } from \"@/ak/config\";\nexport default defineComponent({\n onLoad() {\n // 启动页:根据登录态重定向\n this.checkAndRedirect();\n },\n onShow() {\n // 启动页仅在首次进入时做一次跳转,避免影响 H5 手动输入 URL\n },\n methods: {\n checkAndRedirect() {\n uni.__f__('log', 'at pages/user/boot.uvue:40', 'boot: start redirect check');\n if (IS_TEST_MODE) {\n // 测试阶段:不做强制重定向,保留你手动输入的 URL / 目标页面\n return null;\n }\n let isLoggedIn = false;\n try {\n const sessionInfo = supa.getSession();\n isLoggedIn = sessionInfo != null && sessionInfo.user != null;\n }\n catch (e) {\n uni.__f__('error', 'at pages/user/boot.uvue:52', 'boot: error checking session', e);\n }\n // 微信小程序 → merchant 商家端\n if (isLoggedIn) {\n uni.reLaunch({ url: '/pages/mall/merchant/index' });\n }\n else {\n uni.reLaunch({ url: '/pages/user/login' });\n }\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/user/boot.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.__f__","uni.reLaunch"],"map":"{\"version\":3,\"file\":\"boot.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"boot.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";OACQ,IAAI;OACJ,EAAE,YAAY,EAAE;AAEvB,+BAAe;IACd,MAAM;QACL,eAAe;QACf,IAAI,CAAC,gBAAgB,EAAE,CAAC;IACzB,CAAC;IACD,MAAM;QACL,mCAAmC;IACpC,CAAC;IACD,OAAO,EAAE;QACR,gBAAgB;YACf,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,4BAA4B,EAAC,4BAA4B,CAAC,CAAA;YAE1E,IAAI,YAAY,EAAE;gBACjB,mCAAmC;gBACnC,YAAM;aACN;YAED,IAAI,UAAU,GAAG,KAAK,CAAA;YACtB,IAAI;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAA;gBACrC,UAAU,GAAG,WAAW,IAAI,IAAI,IAAI,WAAW,CAAC,IAAI,IAAI,IAAI,CAAA;aAC5D;YAAC,OAAO,CAAC,EAAE;gBACX,GAAG,CAAC,KAAK,CAAC,OAAO,EAAC,4BAA4B,EAAC,8BAA8B,EAAE,CAAC,CAAC,CAAA;aACjF;YAYD,uBAAuB;YACvB,IAAI,UAAU,EAAE;gBACf,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,4BAA4B,EAAE,CAAC,CAAA;aACnD;iBAAM;gBACN,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,mBAAmB,EAAE,CAAC,CAAA;aAC1C;QAWF,CAAC;KACD;CACD,EAAC\"}"}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {\n keyword: '',\n searched: false\n };\n },\n methods: {\n onInput(e) {\n this.keyword = e.detail.value;\n },\n doSearch() {\n if (!this.keyword.trim())\n return null;\n this.searched = true;\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/merchant/search.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"search.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"search.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,IAAI;QACH,OAAO;YACN,OAAO,EAAE,EAAY;YACrB,QAAQ,EAAE,KAAgB;SAC1B,CAAA;IACF,CAAC;IACD,OAAO,EAAE;QACR,OAAO,CAAC,CAAc;YACrB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAA;QAC9B,CAAC;QACD,QAAQ;YACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBAAE,YAAM;YAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACrB,CAAC;KACD;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent as _defineComponent } from 'vue';\nimport { unref as _unref, gei as _gei, sei as _sei } from \"vue\";\nconst __BINDING_COMPONENTS__ = '{\"AdminLayout\":{\"name\":\"_unref(AdminLayout)\",\"type\":\"setup\"}}';\nif (!Math) {\n (_unref(AdminLayout))();\n}\nimport { ref, onMounted } from 'vue';\nimport AdminLayout from '@/layouts/admin/AdminLayout.uvue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'index',\n setup(__props) {\n const title = ref('管理后台首页');\n onMounted(() => {\n uni.__f__('log', 'at pages/mall/admin/homePage/index.uvue:15', '首页加载完成');\n uni.__f__('log', 'at pages/mall/admin/homePage/index.uvue:16', '首页显示');\n });\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/admin/homePage/index.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Hbiulder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Hbiulder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Hbiulder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/骅锋/医疗/layouts/admin/AdminLayout.uvue.ts"],"uniExtApis":["uni.__f__"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\"AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,KAAK,IAAI,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/D,MAAM,sBAAsB,GAAG,+DAA+D,CAAA;AAC9F,IAAI,CAAC,IAAI,EAAE;IAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAA;CAAE;AAEtC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,WAAW,MAAM,kCAAkC,CAAA;AAG1D,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,OAAO;IACf,KAAK,CAAC,OAAO;QAEf,MAAM,KAAK,GAAG,GAAG,CAAS,QAAQ,CAAC,CAAA;QAEnC,SAAS,CAAC;YACR,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,4CAA4C,EAAC,QAAQ,CAAC,CAAA;YACtE,GAAG,CAAC,KAAK,CAAC,KAAK,EAAC,4CAA4C,EAAC,MAAM,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n methods: {\n goBack() {\n uni.navigateBack();\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/user/terms.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack"],"map":"{\"version\":3,\"file\":\"terms.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"terms.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,OAAO,EAAE;QACR,MAAM;YACL,GAAG,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC;KACD;CACD,EAAC\"}"}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { o as _o, gei as _gei, sei as _sei } from \"vue\";\nimport { ref } from 'vue';\nexport default /*#__PURE__*/ _defineComponent({\n __name: 'change-password',\n setup(__props) {\n const oldPassword = ref('');\n const newPassword = ref('');\n const confirmPassword = ref('');\n const handleSubmit = () => { return __awaiter(this, void 0, void 0, function* () {\n if (oldPassword.value == '' || newPassword.value == '' || confirmPassword.value == '') {\n uni.showToast({\n title: '请填写完整信息',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n if (newPassword.value != confirmPassword.value) {\n uni.showToast({\n title: '两次输入的密码不一致',\n icon: 'none'\n });\n return Promise.resolve(null);\n }\n uni.showLoading({ title: '提交中...' });\n uni.hideLoading();\n uni.showToast({\n title: '修改成功',\n icon: 'success'\n });\n setTimeout(() => {\n uni.navigateBack();\n }, 1500);\n }); };\n return (_ctx, _cache) => {\n \"raw js\";\n const __returned__ = {\n a: oldPassword.value,\n b: _o($event => { return oldPassword.value = $event.detail.value; }),\n c: newPassword.value,\n d: _o($event => { return newPassword.value = $event.detail.value; }),\n e: confirmPassword.value,\n f: _o($event => { return confirmPassword.value = $event.detail.value; }),\n g: _o(handleSubmit),\n h: _sei(_gei(_ctx, ''), 'view')\n };\n return __returned__;\n };\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/user/change-password.uvue?vue&type=script&setup=true&lang.uts.js.map","references":["D:/Hbiulder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Hbiulder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts","D:/Hbiulder/HBuilderX/plugins/uniapp-cli-vite/node_modules/@vue/runtime-core/dist/runtime-core.d.ts"],"uniExtApis":["uni.showToast","uni.showLoading","uni.hideLoading","uni.navigateBack"],"map":"{\"version\":3,\"file\":\"change-password.uvue?vue&type=script&setup=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"change-password.uvue?vue&type=script&setup=true&lang.uts\"],\"names\":[],\"mappings\":\";AAAA,OAAO,EAAE,eAAe,IAAI,gBAAgB,EAAE,MAAM,KAAK,CAAA;AACzD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,MAAM,KAAK,CAAA;AAEvD,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAGzB,eAAe,aAAa,CAAA,gBAAgB,CAAC;IAC3C,MAAM,EAAE,iBAAiB;IACzB,KAAK,CAAC,OAAO;QAEf,MAAM,WAAW,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QACnC,MAAM,WAAW,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QACnC,MAAM,eAAe,GAAG,GAAG,CAAS,EAAE,CAAC,CAAA;QAEvC,MAAM,YAAY,GAAG;YACnB,IAAI,WAAW,CAAC,KAAK,IAAI,EAAE,IAAI,WAAW,CAAC,KAAK,IAAI,EAAE,IAAI,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE;gBACrF,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;gBACF,6BAAM;aACP;YAED,IAAI,WAAW,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,EAAE;gBAC9C,GAAG,CAAC,SAAS,CAAC;oBACZ,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,MAAM;iBACb,CAAC,CAAA;gBACF,6BAAM;aACP;YAED,GAAG,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;YAEpC,GAAG,CAAC,WAAW,EAAE,CAAA;YAEjB,GAAG,CAAC,SAAS,CAAC;gBACZ,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,SAAS;aAChB,CAAC,CAAA;YAEF,UAAU,CAAC;gBACT,GAAG,CAAC,YAAY,EAAE,CAAA;YACpB,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC,IAAA,CAAA;QAED,OAAO,CAAC,IAAI,EAAE,MAAM;YAAO,QAAQ,CAAA;YACjC,MAAM,YAAY,GAAG;gBACrB,CAAC,EAAE,WAAW,CAAC,KAAK;gBACpB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAvC,CAAuC,CAAC;gBACxD,CAAC,EAAE,WAAW,CAAC,KAAK;gBACpB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,WAAW,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAvC,CAAuC,CAAC;gBACxD,CAAC,EAAE,eAAe,CAAC,KAAK;gBACxB,CAAC,EAAE,EAAE,CAAC,MAAM,MAAI,OAAA,eAAe,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAA3C,CAA2C,CAAC;gBAC5D,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC;gBACnB,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC;aAChC,CAAA;YACC,OAAO,YAAY,CAAA;QACrB,CAAC,CAAA;IACD,CAAC;CAEA,CAAC,CAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n data() {\n return {};\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/merchant/certification.uvue?vue&type=script&lang.uts.js.map","references":[],"uniExtApis":[],"map":"{\"version\":3,\"file\":\"certification.uvue?vue&type=script&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"certification.uvue?vue&type=script&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,IAAI;QACH,OAAO,EAAE,CAAA;IACV,CAAC;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { __awaiter } from \"tslib\";\nimport { defineComponent } from \"vue\";\nimport { mockService } from \"./mock-service\";\nimport { getCurrentUser } from \"@/utils/store\";\nexport default defineComponent({\n data() {\n return {\n currentTab: 'all',\n orders: []\n };\n },\n onShow() {\n this.loadData();\n },\n computed: {\n filteredOrders() {\n if (this.currentTab === 'all') {\n return this.orders;\n }\n if (this.currentTab === 'completed') {\n return this.orders.filter((o) => { return o.status === 'DELIVERED'; });\n }\n else {\n return this.orders.filter((o) => { return o.status !== 'DELIVERED'; });\n }\n }\n },\n methods: {\n goBack() {\n uni.navigateBack();\n },\n loadData() {\n return __awaiter(this, void 0, void 0, function* () {\n // Ensure user mapping is ready before querying orders\n try {\n yield getCurrentUser();\n }\n catch (e) {\n uni.__f__('warn', 'at pages/mall/delivery/test/consumer-order-list.uvue:81', 'getCurrentUser failed:', e);\n }\n const data = yield mockService.getMockOrders();\n this.orders = [...data];\n });\n },\n getStatusText(status) {\n return mockService.getStatusText(status);\n },\n getDisplayMessage(text, status) {\n return mockService.getDisplayMessage(text, status);\n },\n goDetail(orderNo) {\n uni.navigateTo({\n url: `/pages/mall/delivery/test/consumer-logistics-detail?order_no=${orderNo}`\n });\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/delivery/test/consumer-order-list.uvue?vue&type=script&uts=true&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.__f__","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"consumer-order-list.uvue?vue&type=script&uts=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"consumer-order-list.uvue?vue&type=script&uts=true&lang.uts\"],\"names\":[],\"mappings\":\";;OACQ,EAAE,WAAW,EAAa;OAC1B,EAAE,cAAc,EAAE;AAEzB,+BAAe;IACd,IAAI;QACH,OAAO;YACN,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,EAAiB;SACzB,CAAA;IACF,CAAC;IACD,MAAM;QACL,IAAI,CAAC,QAAQ,EAAE,CAAA;IAChB,CAAC;IACD,QAAQ,EAAE;QACT,cAAc;YACb,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;gBAC9B,OAAO,IAAI,CAAC,MAAM,CAAA;aAClB;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,EAAE;gBACpC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAY,OAAc,OAAA,CAAC,CAAC,MAAM,KAAK,WAAW,EAAxB,CAAwB,CAAC,CAAA;aAC9E;iBAAM;gBACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAY,OAAc,OAAA,CAAC,CAAC,MAAM,KAAK,WAAW,EAAxB,CAAwB,CAAC,CAAA;aAC9E;QACF,CAAC;KACD;IACD,OAAO,EAAE;QACR,MAAM;YACL,GAAG,CAAC,YAAY,EAAE,CAAA;QACnB,CAAC;QACK,QAAQ;;gBACb,sDAAsD;gBACtD,IAAI;oBACH,MAAM,cAAc,EAAE,CAAA;iBACtB;gBAAC,OAAO,CAAC,EAAE;oBACX,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,yDAAyD,EAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;iBACvG;gBAED,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAA;gBAC9C,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;YACxB,CAAC;SAAA;QACD,aAAa,CAAC,MAAc;YAC3B,OAAO,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACzC,CAAC;QACD,iBAAiB,CAAC,IAAY,EAAE,MAAc;YAC7C,OAAO,WAAW,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACnD,CAAC;QACD,QAAQ,CAAC,OAAe;YACvB,GAAG,CAAC,UAAU,CAAC;gBACd,GAAG,EAAE,gEAAgE,OAAO,EAAE;aAC9E,CAAC,CAAA;QACH,CAAC;KACD;CACD,EAAA\"}"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
{"code":"import { defineComponent } from \"vue\";\nexport default defineComponent({\n methods: {\n goBack() {\n uni.navigateBack();\n },\n goto(url) {\n uni.navigateTo({ url: url });\n }\n }\n});\n//# sourceMappingURL=D:/%E9%AA%85%E9%94%8B/%E5%8C%BB%E7%96%97/pages/mall/delivery/test/index.uvue?vue&type=script&uts=true&lang.uts.js.map","references":[],"uniExtApis":["uni.navigateBack","uni.navigateTo"],"map":"{\"version\":3,\"file\":\"index.uvue?vue&type=script&uts=true&lang.uts.js\",\"sourceRoot\":\"\",\"sources\":[\"index.uvue?vue&type=script&uts=true&lang.uts\"],\"names\":[],\"mappings\":\";AACC,+BAAe;IACd,OAAO,EAAE;QACR,MAAM;YACL,GAAG,CAAC,YAAY,EAAE,CAAA;QACnB,CAAC;QACD,IAAI,CAAC,GAAW;YACf,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7B,CAAC;KACD;CACD,EAAA\"}"}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user