页面显示优化
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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> </text>
|
||||
<text class="bold-price" decode="{{true}}">实付 </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;
|
||||
|
||||
Reference in New Issue
Block a user