页面显示优化

This commit is contained in:
Dev
2026-09-22 11:16:56 +08:00
parent b9c5d3fdcb
commit 229c361e9a
21 changed files with 120 additions and 93 deletions
+3 -3
View File
@@ -19,10 +19,10 @@ return [
// 商户 API 证书(商户平台-账户中心-API安全 下载, v2/v3 共用同一套)
'private_key' => APP_PATH . 'extra/cert/apiclient_key.pem', // 商户证书私钥 绝对路径
'certificate' => APP_PATH . 'extra/cert/apiclient_cert.pem', // 商户API证书 绝对路径
// 微信支付公钥模式(2024Q3+ 推荐): 公钥ID以 PUB_KEY_ID_ 开头, 公钥文件存放于 extra/cert/wechatpay_pub.pem
// 微信支付公钥模式(2024Q3+ 推荐): 公钥ID以 PUB_KEY_ID_ 开头, 公钥文件存放于 extra/cert/pub_key.pem
// 两者都配置后无需再下载平台证书
'platform_certs' => (Env::get('wechat.pub_key_id') && is_file(APP_PATH . 'extra/cert/wechatpay_pub.pem'))
? [Env::get('wechat.pub_key_id') => APP_PATH . 'extra/cert/wechatpay_pub.pem']
'platform_certs' => (Env::get('wechat.pub_key_id') && is_file(APP_PATH . 'extra/cert/pub_key.pem'))
? [Env::get('wechat.pub_key_id') => APP_PATH . 'extra/cert/pub_key.pem']
: [],
// 支付结果通知地址(也可在下单时单独覆盖)
'notify_url' => Env::get('app.url') . '/api/order/payNotify',
@@ -32,6 +32,12 @@ Component({
value: '¥',
},
// 是否展示"购买"引导按钮(仅商品列表等售卖场景开启)
showBuy: {
type: Boolean,
value: false,
},
thresholds: {
type: Array,
value: [],
@@ -19,6 +19,9 @@
<view class="goods-card__down">
<price wx:if="{{ goods.price }}" wr-class="spec-for-price" symbol-class="spec-for-symbol" symbol="{{currency}}" price="{{goods.price}}" />
<price wx:if="{{ goods.originPrice && isValidityLinePrice }}" wr-class="goods-card__origin-price" symbol="{{currency}}" price="{{goods.originPrice}}" type="delthrough" />
<view wx:if="{{showBuy}}" class="goods-card__buy" hover-class="goods-card__buy--hover" hover-stay-time="60" catchtap="clickHandle" data-goods="{{ goods }}">
<t-icon name="cart" size="28rpx" color="#ffffff" />
</view>
</view>
</view>
</view>
@@ -112,6 +112,28 @@
line-height: 44rpx;
}
/* "购买"引导按钮:圆形加号图标,沉底右对齐 */
.goods-card__buy {
display: flex;
align-items: center;
justify-content: center;
align-self: flex-end;
margin-left: auto;
width: 52rpx;
height: 52rpx;
flex-shrink: 0;
color: var(--text-inverse);
background: var(--brand-gradient);
border-radius: var(--radius-round);
box-shadow: 0 4rpx 12rpx rgba(255, 95, 21, 0.28);
transition: transform 0.16s ease, box-shadow 0.16s ease;
}
.goods-card__buy--hover {
transform: scale(0.9);
box-shadow: 0 2rpx 6rpx rgba(255, 95, 21, 0.2);
}
.goods-card__origin-price {
order: 2;
margin: 0 0 0 12rpx;
@@ -17,6 +17,11 @@ Component({
type: Array,
value: [],
},
// 是否展示卡片上的"购买"引导按钮
showBuy: {
type: Boolean,
value: false,
},
},
data: {
@@ -1,5 +1,5 @@
<view class="goods-list-wrap wr-class" id="{{independentID}}">
<block wx:for="{{goodsList}}" wx:for-item="item" wx:key="index">
<goods-card id="{{independentID}}-gd-{{index}}" data="{{item}}" currency="{{item.currency || '¥'}}" thresholds="{{thresholds}}" class="goods-card-inside" data-index="{{index}}" bind:click="onClickGoods" />
<goods-card id="{{independentID}}-gd-{{index}}" data="{{item}}" currency="{{item.currency || '¥'}}" thresholds="{{thresholds}}" show-buy="{{showBuy}}" class="goods-card-inside" data-index="{{index}}" bind:click="onClickGoods" />
</block>
</view>
@@ -17,7 +17,6 @@
decimalSmaller
class="cart-bar__total--bold cart-bar__total--price"
/>
<text class="cart-bar__total--normal">(不含运费)</text>
</view>
<view wx:if="{{totalDiscountAmount}}">
<text class="cart-bar__total--normal text-padding-right">已优惠</text>
+18 -7
View File
@@ -12,6 +12,9 @@ Page({
languageSelected: [],
frontSelected: [],
backendSelected: [],
languageSelectedMap: {},
frontSelectedMap: {},
backendSelectedMap: {},
desc: '',
job: '',
workYears: 0,
@@ -33,13 +36,21 @@ Page({
});
},
handleGroupChange(event) {
console.log('group', event.detail.value);
const { field } = event.currentTarget.dataset; // 获取 data-field 的值
console.log(field);
this.setData({
[field + 'Selected']: event.detail.value, // 动态设置对应的Selected数组
});
onChipTap(e) {
const { field, value } = e.currentTarget.dataset;
const key = field + 'Selected';
const mapKey = field + 'SelectedMap';
const selected = this.data[key].slice();
const map = Object.assign({}, this.data[mapKey]);
const idx = selected.indexOf(value);
if (idx > -1) {
selected.splice(idx, 1);
delete map[value];
} else {
selected.push(value);
map[value] = true;
}
this.setData({ [key]: selected, [mapKey]: map });
},
onInputChange(e) {
@@ -1,10 +1,6 @@
{
"navigationBarTitleText": "人才入驻",
"usingComponents": {
"t-tag": "tdesign-miniprogram/tag/tag",
"t-check-tag": "tdesign-miniprogram/check-tag/check-tag",
"t-checkbox": "tdesign-miniprogram/checkbox/checkbox",
"t-checkbox-group": "tdesign-miniprogram/checkbox-group/checkbox-group",
"t-textarea": "tdesign-miniprogram/textarea/textarea",
"t-input": "tdesign-miniprogram/input/input",
"t-divider": "tdesign-miniprogram/divider/divider",
@@ -3,25 +3,40 @@
<view class="skill-label">1.请选择你掌握的技术栈</view>
<t-collapse theme="card" defaultValue="{{[0]}}" expandIcon>
<t-collapse-panel header="编程语言" value="{{0}}">
<t-checkbox-group t-class="box" borderless data-field="language" bind:change="handleGroupChange" defaultValue="{{frontCurrent}}">
<block wx:for="{{languageLabels}}" wx:key="index">
<t-checkbox t-class="t-class-text" icon="rectangle" block="{{false}}" value="{{item}}" label="{{item}}" />
</block>
</t-checkbox-group>
<view class="chip-list">
<view
wx:for="{{languageLabels}}"
wx:key="index"
class="chip-item {{languageSelectedMap[item] ? 'chip-item--active' : ''}}"
data-field="language"
data-value="{{item}}"
bindtap="onChipTap"
>{{item}}</view>
</view>
</t-collapse-panel>
<t-collapse-panel header="前端技术" value="{{1}}">
<t-checkbox-group t-class="box" borderless data-field="front" bind:change="handleGroupChange" defaultValue="{{frontCurrent}}">
<block wx:for="{{frontLabels}}" wx:key="index">
<t-checkbox t-class="t-class-text" icon="rectangle" block="{{false}}" value="{{item}}" label="{{item}}" />
</block>
</t-checkbox-group>
<view class="chip-list">
<view
wx:for="{{frontLabels}}"
wx:key="index"
class="chip-item {{frontSelectedMap[item] ? 'chip-item--active' : ''}}"
data-field="front"
data-value="{{item}}"
bindtap="onChipTap"
>{{item}}</view>
</view>
</t-collapse-panel>
<t-collapse-panel header="后端技术" value="{{2}}">
<t-checkbox-group t-class="box" borderless data-field="backend" bind:change="handleGroupChange" defaultValue="{{backendCurrent}}">
<block wx:for="{{backendLabels}}" wx:key="index">
<t-checkbox t-class="t-class-text" icon="rectangle" block="{{false}}" value="{{item}}" label="{{item}}" />
</block>
</t-checkbox-group>
<view class="chip-list">
<view
wx:for="{{backendLabels}}"
wx:key="index"
class="chip-item {{backendSelectedMap[item] ? 'chip-item--active' : ''}}"
data-field="backend"
data-value="{{item}}"
bindtap="onChipTap"
>{{item}}</view>
</view>
</t-collapse-panel>
</t-collapse>
@@ -170,10 +170,34 @@ page view {
padding-left: 32rpx;
}
.t-class-text {
margin-right: 15rpx;
/* ================= 技能胶囊多选(横排自动换行) ================= */
.chip-list {
display: flex;
flex-wrap: wrap;
margin-right: -20rpx;
}
.t-checkbox__icon--left {
margin-right: 3rpx !important;
.chip-item {
box-sizing: border-box;
max-width: 100%;
padding: 14rpx 36rpx;
margin: 0 20rpx 20rpx 0;
border: 2rpx solid var(--border-level-1);
border-radius: var(--radius-round);
background: var(--bg-grey);
font-size: 28rpx;
line-height: 44rpx;
color: var(--text-primary);
transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.chip-item:active {
opacity: 0.8;
}
.chip-item--active {
background: var(--brand-light);
border-color: var(--brand);
color: var(--brand);
font-weight: 500;
}
@@ -322,12 +322,5 @@ Component({
buyNum,
});
},
handleBuyNumChange(e) {
const { value } = e.detail;
this.setData({
buyNum: value,
});
},
},
});
@@ -54,9 +54,8 @@
<view class="popup-sku-stepper-container">
<view class="popup-sku__stepper-title">
购买数量
<view class="limit-text" wx:if="{{limitBuyInfo}}"> ({{limitBuyInfo}}) </view>
</view>
<t-stepper value="{{buyNum}}" min="{{1}}" max="{{2}}" theme="filled" bind:change="handleBuyNumChange" />
<t-stepper value="{{1}}" min="{{1}}" max="{{1}}" disabled theme="filled" />
</view>
</view>
</view>
+1 -1
View File
@@ -29,7 +29,7 @@
</view>
</view>
<view class="category-goods-list" wx:if="{{goodsList.length}}">
<goods-list wr-class="wr-goods-list" goodsList="{{goodsList}}" bind:click="gotoGoodsDetail" />
<goods-list wr-class="wr-goods-list" goodsList="{{goodsList}}" show-buy="{{true}}" bind:click="gotoGoodsDetail" />
</view>
<view class="empty-wrap" wx:if="{{goodsList.length === 0 && hasLoaded}}">
<t-empty t-class="empty-tips" size="240rpx" description="暂无相关产品" />
@@ -56,8 +56,6 @@ export const resp = {
rightsStatusName: '已完成',
rightsType: 20,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -239,8 +237,6 @@ export const resp = {
rightsStatusName: '已审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -360,8 +356,6 @@ export const resp = {
rightsStatusName: '已关闭',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -479,8 +473,6 @@ export const resp = {
rightsStatusName: '已完成',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName:
'大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店',
@@ -594,8 +586,6 @@ export const resp = {
rightsStatusName: '已审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -709,8 +699,6 @@ export const resp = {
rightsStatusName: '待审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName:
'大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店-大猫集团旗舰店',
@@ -826,8 +814,6 @@ export const resp = {
rightsStatusName: '已审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -941,8 +927,6 @@ export const resp = {
rightsStatusName: '已审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -1055,8 +1039,6 @@ export const resp = {
rightsStatusName: '已审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -1169,8 +1151,6 @@ export const resp = {
rightsStatusName: '已审核',
rightsType: 10,
saasId: 123,
shippingFee: 99,
shippingFeeBear: 1,
storeId: 123,
storeName: '大猫集团旗舰店',
uid: '123',
@@ -154,10 +154,7 @@ Page({
current: res.data.refundableAmount,
},
'serviceFrom.returnNum': res.data.numOfSku,
amountTip: `最多可申请退款¥ ${priceFormat(res.data.refundableAmount, 2)},含发货运费¥ ${priceFormat(
res.data.shippingFeeIncluded,
2,
)}`,
amountTip: `最多可申请退款¥ ${priceFormat(res.data.refundableAmount, 2)}`,
maxApplyNum: res.data.numOfSkuAvailable,
});
} catch (err) {
@@ -26,16 +26,6 @@
<text>商品总额</text>
<price fill decimalSmaller wr-class="pay-item__right font-bold" price="{{settleDetailData.totalSalePrice || '0'}}" />
</view>
<view class="pay-item">
<text>运费</text>
<view class="pay-item__right font-bold">
<block wx:if="{{settleDetailData.totalDeliveryFee && settleDetailData.totalDeliveryFee != 0}}">
+
<price fill decimalSmaller price="{{settleDetailData.totalDeliveryFee}}" />
</block>
<text wx:else>免运费</text>
</view>
</view>
<view class="pay-item">
<text>活动优惠</text>
<view class="pay-item__right primary font-bold">
@@ -11,16 +11,6 @@
<text>商品总额</text>
<price fill decimalSmaller wr-class="pay-item__right font-bold" price="{{order.totalAmount || '0'}}" />
</view>
<!-- <view class="pay-item">
<text>运费666</text>
<view class="pay-item__right font-bold">
<block wx:if="{{order.freightFee}}">
+
<price fill decimalSmaller price="{{order.freightFee}}" />
</block>
<text wx:else>免运费</text>
</view>
</view> -->
<view class="pay-item">
<text>活动优惠</text>
<view class="pay-item__right primary font-bold">
@@ -115,7 +115,6 @@ Page({
})),
buttons: order.buttonVOs || [],
groupInfoVo: order.groupInfoVo,
freightFee: order.freightFee,
};
});
}
@@ -16,9 +16,6 @@
<view class="price-total">
<text>总价</text>
<price fill price="{{order.totalAmount + ''}}" />
<text>,运费</text>
<price fill price="{{order.freightFee + ''}}" />
<text decode>&nbsp;</text>
<text class="bold-price" decode="{{true}}">实付&nbsp;</text>
<price fill class="real-pay" price="{{order.amount + ''}}" decimalSmaller />
</view>
@@ -81,6 +81,7 @@ wr-order-goods-card:not(:first-child) .wr-goods-card {
}
.price-total .bold-price {
margin-left: 24rpx;
color: var(--text-primary);
font-size: 28rpx;
line-height: 40rpx;