|
|
|
@ -52,24 +52,24 @@ |
|
|
|
|
|
|
|
<!-- 商品基本信息 --> |
|
|
|
<view class="goods-info"> |
|
|
|
<view style="display: flex; align-items: center; justify-content: space-between; margin-bottom: 10rpx;"> |
|
|
|
<view style="display: flex; align-items: center; flex: 1;"> |
|
|
|
<view style="display: inline-block; margin-right: 10rpx; font-size: 18rpx; color: #fff; background: rgba(218, 165, 32, 0.8); padding: 4rpx 10rpx; border-radius: 15rpx; vertical-align: middle; backdrop-filter: blur(10rpx); border: 1rpx solid rgba(255, 255, 255, 0.3); box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.15), inset 0 1rpx 0 rgba(255, 255, 255, 0.5); text-shadow: 0 1rpx 2rpx rgba(0, 0, 0, 0.2); font-weight: bold; margin-top: -20rpx;">{{goodsDetail.supplyStatus || '暂无状态'}}</view> |
|
|
|
<view class="goods-header"> |
|
|
|
<view class="goods-name-container"> |
|
|
|
<view class="supply-status-badge">{{goodsDetail.supplyStatus || '暂无状态'}}</view> |
|
|
|
<text class="goods-name">{{goodsDetail.name}}</text> |
|
|
|
<span style="vertical-align: middle; font-size: 20rpx; color: white; background: linear-gradient(135deg, #4a90e2 0%, #2b66f0 50%, #1a4bbd 100%); padding: 4rpx 8rpx; clip-path: polygon(50% 0%, 70% 10%, 100% 30%, 100% 70%, 70% 90%, 50% 100%, 30% 90%, 0% 70%, 0% 30%, 30% 10%); margin-left: 8rpx; box-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.3), inset 0 1rpx 2rpx rgba(255, 255, 255, 0.5); text-shadow: 0 1rpx 2rpx rgba(0, 0, 0, 0.5); font-weight: bold; margin-top: -20rpx;">V</span> |
|
|
|
<span class="verified-badge">V</span> |
|
|
|
</view> |
|
|
|
<view style="display: flex; align-items: flex-start;"> |
|
|
|
<view class="source-type-badge" style="display: flex; align-items: center; justify-content: center; margin-right: 10rpx;"> |
|
|
|
<view class="source-type-container"> |
|
|
|
<view class="source-type-badge"> |
|
|
|
<text style="color: {{goodsDetail.sourceTypeColor}}; font-weight: bold;">{{goodsDetail.sourceType || '暂无'}}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="goods-price" style="position: relative; display: flex; align-items: center; justify-content: space-between;"> |
|
|
|
<view style="display: flex; align-items: center;"> |
|
|
|
<view class="goods-price"> |
|
|
|
<view class="price-item"> |
|
|
|
<text class="price-symbol">销售价格:</text> |
|
|
|
<text class="price-value">{{goodsDetail.price || '暂无'}}</text> |
|
|
|
</view> |
|
|
|
<view style="display: flex; align-items: center;"> |
|
|
|
<view class="price-item"> |
|
|
|
<text class="price-symbol">采购价格:</text> |
|
|
|
<text class="price-value">{{goodsDetail.costprice || '暂无'}}</text> |
|
|
|
</view> |
|
|
|
@ -140,12 +140,12 @@ |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 货源描述 --> |
|
|
|
<view class="goods-description product-description" wx:if="{{goodsDetail.description || goodsDetail.remark || true}}"> |
|
|
|
<view class="gd-label-container"> |
|
|
|
<text class="gd-label">货源描述</text> |
|
|
|
</view> |
|
|
|
<view class="gd-content"> |
|
|
|
<text class="gd-value">{{goodsDetail.description || goodsDetail.remark || '暂无描述'}}</text> |
|
|
|
<view class="goods-description" wx:if="{{goodsDetail.description || goodsDetail.remark || true}}"> |
|
|
|
<view class="wq-title">货源描述</view> |
|
|
|
<view class="wq-list"> |
|
|
|
<view class="wq-item"> |
|
|
|
<text class="wq-text">{{goodsDetail.description || goodsDetail.remark || '暂无描述'}}</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
@ -198,28 +198,28 @@ |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 编辑货源弹窗(全屏) --> |
|
|
|
<view class="modal" wx:if="{{showEditModal}}" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: white; z-index: 999;"> |
|
|
|
<view class="modal" wx:if="{{showEditModal}}"> |
|
|
|
<!-- 顶部导航栏 --> |
|
|
|
<view style="display: flex; justify-content: space-between; align-items: center; padding: 30rpx; border-bottom: 1rpx solid #eee; background-color: #fafafa; position: sticky; top: 0; z-index: 10;"> |
|
|
|
<view bindtap="hideEditModal" style="font-size: 32rpx; color: #666;">取消</view> |
|
|
|
<view style="font-size: 32rpx; font-weight: bold; color: #333;">编辑货源</view> |
|
|
|
<view bindtap="saveEdit" style="font-size: 32rpx; color: #07c160;">提交</view> |
|
|
|
<view class="modal-header"> |
|
|
|
<view class="modal-btn cancel-btn" bindtap="hideEditModal">取消</view> |
|
|
|
<view class="modal-title">编辑货源</view> |
|
|
|
<view class="modal-btn confirm-btn" bindtap="saveEdit">提交</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<scroll-view scroll-y="true" style="height: calc(100vh - 90rpx); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 40rpx 60rpx; box-sizing: border-box;"> |
|
|
|
<scroll-view scroll-y="true" style="height: calc(100vh - 160rpx); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 160rpx 60rpx 40rpx; box-sizing: border-box;"> |
|
|
|
<view> |
|
|
|
|
|
|
|
<view style="font-size: 28rpx; font-weight: 500; color: #333; margin-bottom: 12rpx; margin-left: 10rpx;">销售价格</view> |
|
|
|
<input class="input" type="text" placeholder="请输入销售价格" bindinput="onEditInput" data-field="price" value="{{editSupply.price}}" style="width: 100%; height: 90rpx; line-height: 90rpx; padding: 0 24rpx; font-size: 30rpx; border: 2rpx solid #eee; border-radius: 12rpx; box-sizing: border-box; margin: 0 auto 30rpx; display: block;" placeholder-style="font-size: 24rpx; color: #999; text-align: left;"></input> |
|
|
|
<view class="edit-form-label">销售价格</view> |
|
|
|
<input class="edit-form-input" type="text" placeholder="请输入销售价格" bindinput="onEditInput" data-field="price" value="{{editSupply.price}}"></input> |
|
|
|
|
|
|
|
<view style="font-size: 28rpx; font-weight: 500; color: #333; margin-bottom: 12rpx; margin-left: 10rpx;">联系人</view> |
|
|
|
<view bindtap="openSalesPersonModal" style="width: 100%; height: 90rpx; line-height: 90rpx; padding: 0 24rpx; font-size: 30rpx; border: 2rpx solid #eee; border-radius: 12rpx; box-sizing: border-box; margin: 0 auto 30rpx; display: flex; align-items: center; justify-content: space-between; background: white;" placeholder-style="font-size: 24rpx; color: #999; text-align: left;"> |
|
|
|
<text style="{{editSupply.product_contact ? 'color: #333;' : 'color: #999;'}}">{{editSupply.product_contact || '请选择联系人'}}</text> |
|
|
|
<text style="color: #999; font-size: 24rpx;">▼</text> |
|
|
|
<view class="edit-form-label">联系人</view> |
|
|
|
<view class="edit-form-select" bindtap="openSalesPersonModal"> |
|
|
|
<text class="select-text">{{editSupply.product_contact || '请选择联系人'}}</text> |
|
|
|
<text class="select-arrow">▼</text> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view style="font-size: 28rpx; font-weight: 500; color: #333; margin-bottom: 12rpx; margin-left: 10rpx;">联系电话</view> |
|
|
|
<input class="input" type="number" placeholder="请输入联系电话" bindinput="onEditInput" data-field="contact_phone" value="{{editSupply.contact_phone}}" style="width: 100%; height: 90rpx; line-height: 90rpx; padding: 0 24rpx; font-size: 30rpx; border: 2rpx solid #eee; border-radius: 12rpx; box-sizing: border-box; margin: 0 auto 30rpx; display: block;" placeholder-style="font-size: 24rpx; color: #999; text-align: left;"></input> |
|
|
|
<view class="edit-form-label">联系电话</view> |
|
|
|
<input class="edit-form-input" type="number" placeholder="请输入联系电话" bindinput="onEditInput" data-field="contact_phone" value="{{editSupply.contact_phone}}"></input> |
|
|
|
|
|
|
|
<!-- 添加底部空白区域 --> |
|
|
|
<view style="height: 20vh; background: transparent;"></view> |
|
|
|
@ -228,10 +228,10 @@ |
|
|
|
</view> |
|
|
|
|
|
|
|
<!-- 图片预览弹窗 --> |
|
|
|
<view class="image-preview-mask" wx:if="{{showImagePreview}}" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.9); display: flex; justify-content: center; align-items: center; z-index: 9999;" catchtouchmove="true" bindtap="closeImagePreview"> |
|
|
|
<view style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center;"> |
|
|
|
<view class="image-preview-mask" wx:if="{{showImagePreview}}" catchtouchmove="true" bindtap="closeImagePreview"> |
|
|
|
<view class="image-preview-content"> |
|
|
|
<swiper |
|
|
|
style="width: 100%; height: 100%;" |
|
|
|
class="image-preview-swiper" |
|
|
|
current="{{previewImageIndex}}" |
|
|
|
bindchange="onPreviewImageChange" |
|
|
|
indicator-dots="true" |
|
|
|
@ -242,7 +242,8 @@ |
|
|
|
<image |
|
|
|
src="{{item}}" |
|
|
|
mode="aspectFit" |
|
|
|
style="width: 100%; height: 100%; transform: scale({{scale}}) translate({{offsetX}}px, {{offsetY}}px); transform-origin: center; transition: transform 0.1s;" |
|
|
|
class="preview-image" |
|
|
|
style="transform: scale({{scale}}) translate({{offsetX}}px, {{offsetY}}px);" |
|
|
|
bindtap="handleImageTap" |
|
|
|
bindtouchstart="handleTouchStart" |
|
|
|
bindtouchmove="handleTouchMove" |
|
|
|
@ -252,8 +253,8 @@ |
|
|
|
</swiper-item> |
|
|
|
</block> |
|
|
|
</swiper> |
|
|
|
<view style="position: absolute; top: 40rpx; right: 40rpx; color: white; font-size: 40rpx;"> |
|
|
|
<text bindtap="closeImagePreview" style="background: rgba(0,0,0,0.5); padding: 10rpx 20rpx; border-radius: 50%;">×</text> |
|
|
|
<view class="image-preview-close"> |
|
|
|
<text bindtap="closeImagePreview">×</text> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|