Compare commits

..

10 Commits

148 changed files with 1439 additions and 434 deletions

View File

@@ -364,7 +364,7 @@ export default {
uniacid: this.getUniacid(), uniacid: this.getUniacid(),
token: store.state.token || 'test_token', token: store.state.token || 'test_token',
user_id: store.state.memberInfo?.id || 'anonymous', user_id: store.state.memberInfo?.id || 'anonymous',
member_id: store.state.memberInfo?.id || '', member_id: store.state.memberInfo?.id || 'anonymous',
...getDomainParams() ...getDomainParams()
}, },
header: { header: {
@@ -437,7 +437,7 @@ export default {
user_id: params.user_id || store.state.memberInfo?.id || 'anonymous', user_id: params.user_id || store.state.memberInfo?.id || 'anonymous',
limit: params.limit || 20, limit: params.limit || 20,
offset: params.offset || 0, offset: params.offset || 0,
member_id: params.member_id || store.state.memberInfo?.id || '', member_id: params.member_id || store.state.memberInfo?.id || 'anonymous',
token: params.token || '', token: params.token || '',
...getDomainParams() ...getDomainParams()
}; };
@@ -480,7 +480,9 @@ export default {
} }
const paramsObj = { const paramsObj = {
uniacid: this.getUniacid(), uniacid: this.getUniacid(),
user_id: store.state.memberInfo?.id, user_id: store.state.memberInfo?.id || 'anonymous',
member_id: store.state.memberInfo?.id || 'anonymous',
token: store.state.token || 'test_token',
query: message, query: message,
conversation_id: conversationId || '', conversation_id: conversationId || '',
stream: 'true', stream: 'true',

View File

@@ -98,6 +98,54 @@ export default {
}); });
} }
// #endif // #endif
// #ifdef H5_XCX_5G_QUICKAPP_COM || H5_XCX_AIGC_QUICKAPP_COM || H5_5G_AIGC_QUICKAPP_COM || H5_TEST_AIGC_QUICKAPP_COM
this._huaweiSignIn(callback);
// #endif
},
/**
* 华为快应用帐号登录
*/
async _huaweiSignIn(callback) {
try {
const HwService = require('@/common/js/hw-jssdk.js').default;
// 确保 HwService 已初始化
if (!HwService.isQuickAppEnv()) {
console.warn('[Auth] 非快应用环境,跳过华为帐号登录');
return;
}
const userInfo = await HwService.Account.signIn();
if (userInfo && userInfo.openId) {
// 将华为 openId 传给后端换取系统 token
this.$api.sendRequest({
url: '/wechat/api/quickapp/huawei_auth',
data: {
openid: userInfo.openId,
unionid: userInfo.unionId,
nickname: userInfo.displayName,
avatar: userInfo.avatarUrl,
gender: userInfo.gender
},
success: res => {
if (res.code >= 0) {
if (res.data.openid) this.authInfo.hw_openid = res.data.openid;
if (res.data.unionid) this.authInfo.hw_unionid = res.data.unionid;
typeof callback == 'function' && callback(this.authInfo);
} else {
this.$util.showToast({
title: res.message ? res.message : '华为帐号登录失败'
});
}
}
});
}
} catch (error) {
console.error('[Auth] 华为帐号登录失败:', error);
this.$util.showToast({
title: '华为帐号登录失败'
});
}
} }
} }
} }

View File

@@ -120,5 +120,16 @@ export default {
pingInterval: 1500, pingInterval: 1500,
// 版本号 // 版本号
version: '1.0' version: '1.0',
// 华为快应用 HwService 配置
// 需在 AppGallery Connect 创建应用后获取
huawei: {
// AGC 应用配置(替换为实际的 AGC 配置值)
appId: '', // 应用ID
clientId: '', // 客户端ID
clientSecret: '', // 客户端密钥(注意安全,建议由后端下发)
// 华为帐号登录回调地址
redirectUri: window.location.origin + '/hwappx/common/',
}
}; };

View File

@@ -61,6 +61,9 @@ class EventBus {
return 'xhs' return 'xhs'
// #endif // #endif
// #ifdef H5_XCX_5G_QUICKAPP_COM || H5_XCX_AIGC_QUICKAPP_COM || H5_5G_AIGC_QUICKAPP_COM || H5_TEST_AIGC_QUICKAPP_COM
return 'quickapp'
// #endif
return 'unknown' return 'unknown'
} }

View File

@@ -37,6 +37,11 @@ const app_type = 'app';
const app_type_name = 'APP'; const app_type_name = 'APP';
// #endif // #endif
// #ifdef H5_XCX_5G_QUICKAPP_COM || H5_XCX_AIGC_QUICKAPP_COM || H5_5G_AIGC_QUICKAPP_COM || H5_TEST_AIGC_QUICKAPP_COM
const app_type = 'quickapp';
const app_type_name = '快应用';
// #endif
export default { export default {
sendRequest(params) { sendRequest(params) {
if (!Config.baseUrl) { if (!Config.baseUrl) {

361
common/js/hw-jssdk.js Normal file
View File

@@ -0,0 +1,361 @@
/**
* 华为快应用 HwService JS SDK 统一封装
* 用于 H5 壳模式下的快应用环境,通过 hms-js-base 桥接层调用 HMS Core 服务
*
* 架构说明:
* - 所有 HMS 服务通过 @hw-hmscore/hms-js-base 的 hmsjsb.invoke() 统一桥接
* - Analytics Kit 有独立封装 @hw-hmscore/analytics-sdk-quickapp(可选安装)
* - Account Kit 无独立 quickapp npm 包,直接通过 hmsjsb.invoke 调用
* - Push Kit 无独立 quickapp npm 包,直接通过 hmsjsb.invoke 调用
*
* 使用方式:
* import HwService from '@/common/js/hw-jssdk.js'
*
* // 初始化
* await HwService.init()
*
* // 华为帐号登录
* const userInfo = await HwService.Account.signIn()
*
* // 分析服务埋点
* HwService.Analytics.onEvent('event_name', { key: 'value' })
*
* @version 1.1.0
*/
// hms-js-base 提供底层 JS Bridge 桥接能力
let hmsjsb = null
let hmsbase = null
// Analytics SDK 独立包(可选安装)
let HiAnalytics = null
// #ifdef H5_XCX_5G_QUICKAPP_COM || H5_XCX_AIGC_QUICKAPP_COM || H5_5G_AIGC_QUICKAPP_COM || H5_TEST_AIGC_QUICKAPP_COM
try {
// 加载基础桥接库(必装)
const hmsBase = require('@hw-hmscore/hms-js-base')
hmsjsb = hmsBase.hmsjsb
hmsbase = hmsBase.hmsbase
// 尝试加载 Analytics SDK(可选)
try {
HiAnalytics = require('@hw-hmscore/analytics-sdk-quickapp')
} catch (e) {
console.log('[HwService] Analytics SDK 未安装,将使用 invoke 桥接方式')
}
} catch (e) {
console.log('[HwService] hms-js-base 未安装或不在快应用环境')
}
// #endif
class HwService {
constructor() {
this._initialized = false
this._config = null
// 子服务实例
this.Account = null
this.Analytics = null
this.Push = null
}
/**
* 判断当前是否运行在快应用引擎环境
*/
isQuickAppEnv() {
// #ifdef H5_XCX_5G_QUICKAPP_COM || H5_XCX_AIGC_QUICKAPP_COM || H5_5G_AIGC_QUICKAPP_COM || H5_TEST_AIGC_QUICKAPP_COM
if (typeof window !== 'undefined') {
return !!(
window.qa ||
window.__HwService__ ||
window.hms ||
hmsjsb || // hms-js-base 加载成功
navigator.userAgent.indexOf('QuickApp') > -1
)
}
// #endif
return false
}
/**
* 初始化 HwService
* @param {Object} config { appId, clientId, clientSecret }
*/
async init(config = {}) {
if (this._initialized) {
console.log('[HwService] 已初始化,跳过')
return
}
this._config = config
console.log('[HwService] 开始初始化...')
try {
// 子服务实例化
this.Account = new AccountService(hmsjsb)
this.Analytics = new AnalyticsService(hmsjsb, HiAnalytics)
this.Push = new PushService(hmsjsb)
this._initialized = true
console.log('[HwService] 初始化完成')
} catch (error) {
console.error('[HwService] 初始化失败:', error)
throw error
}
}
}
// ============================================================
// 底层 invoke 封装
// ============================================================
/**
* 通过 hmsjsb.invoke 调用 HMS Core API 的 Promise 封装
* @param {Object} hmsjsbRef hmsjsb 引用
* @param {string} apiName API 名称
* @param {Object} args 参数
* @returns {Promise<Object>}
*/
function invokeHmsApi(hmsjsbRef, apiName, args = {}) {
return new Promise((resolve, reject) => {
if (!hmsjsbRef || typeof hmsjsbRef.invoke !== 'function') {
reject(new Error('[HwService] hmsjsb.invoke 不可用'))
return
}
hmsjsbRef.invoke({
apiName,
args,
success: (res) => resolve(res),
fail: (err) => reject(err)
})
})
}
// ============================================================
// 华为帐号服务 (Account Kit)
// 通过 hmsjsb.invoke 桥接(无独立 npm 包)
// ============================================================
class AccountService {
constructor(hmsjsbRef) {
this._hmsjsb = hmsjsbRef
}
/**
* 华为帐号登录
* @param {Array} scopes 授权范围
* @returns {Promise<Object>} 用户信息
*/
async signIn(scopes = ['openid', 'profile']) {
console.log('[HwService.Account] signIn...')
// apiName 需根据实际华为文档确认,常见值有:
// 'accountSignIn' | 'com.huawei.hms.api.Account.signIn'
const result = await invokeHmsApi(this._hmsjsb, 'accountSignIn', { scopes })
return this._formatUserInfo(result)
}
/**
* 静默获取华为帐号用户信息
*/
async getUserInfo() {
const result = await invokeHmsApi(this._hmsjsb, 'accountGetUserInfo', {})
return this._formatUserInfo(result)
}
/**
* 退出登录
*/
async signOut() {
try {
await invokeHmsApi(this._hmsjsb, 'accountSignOut', {})
} catch (e) {
console.warn('[HwService.Account] signOut 失败:', e)
}
}
/**
* 统一格式化用户信息
*/
_formatUserInfo(rawInfo) {
if (!rawInfo) return null
return {
openId: rawInfo.openId || rawInfo.openid || '',
unionId: rawInfo.unionId || rawInfo.unionid || '',
displayName: rawInfo.displayName || rawInfo.nickName || rawInfo.nickname || '',
avatarUrl: rawInfo.avatarUrl || rawInfo.avatar || rawInfo.headPictureUrl || '',
gender: rawInfo.gender || 0,
country: rawInfo.country || '',
province: rawInfo.province || '',
city: rawInfo.city || '',
raw: rawInfo
}
}
}
// ============================================================
// 华为分析服务 (Analytics Kit)
// 支持 @hw-hmscore/analytics-sdk-quickapp(优先)或 invoke 桥接
// ============================================================
class AnalyticsService {
constructor(hmsjsbRef, hiAnalyticsSdk) {
this._hmsjsb = hmsjsbRef
this._sdk = hiAnalyticsSdk
}
/**
* 上报事件
* @param {string} eventName 事件名称
* @param {Object} params 事件参数
*/
onEvent(eventName, params = {}) {
// 方案一:Analytics SDK(独立封装包)
if (this._sdk && typeof this._sdk.onEvent === 'function') {
this._sdk.onEvent(eventName, params)
return
}
if (this._sdk && typeof this._sdk.HiAnalytics?.getInstance === 'function') {
try {
const instance = this._sdk.HiAnalytics.getInstance()
instance.onEvent(eventName, params)
return
} catch (e) {
// fallthrough
}
}
// 方案二:invoke 桥接
if (this._hmsjsb) {
this._hmsjsb.invoke({
apiName: 'analyticsOnEvent',
args: { eventName, params },
success: () => {},
fail: (err) => console.warn('[HwService.Analytics] onEvent 失败:', err)
})
return
}
// fallback
console.log('[HwService.Analytics] onEvent (fallback):', eventName, params)
}
/**
* 设置用户属性
* @param {Object} profile
*/
setUserProfile(profile = {}) {
if (this._sdk && typeof this._sdk.setUserProfile === 'function') {
this._sdk.setUserProfile(profile)
return
}
if (this._sdk && typeof this._sdk.HiAnalytics?.getInstance === 'function') {
try {
const instance = this._sdk.HiAnalytics.getInstance()
instance.setUserProfile(profile)
return
} catch (e) {}
}
if (this._hmsjsb) {
this._hmsjsb.invoke({
apiName: 'analyticsSetUserProfile',
args: { profile },
success: () => {},
fail: (err) => console.warn('[HwService.Analytics] setUserProfile 失败:', err)
})
return
}
console.log('[HwService.Analytics] setUserProfile (fallback):', profile)
}
/**
* 设置用户 ID
* @param {string} userId
*/
setUserId(userId) {
if (this._sdk && typeof this._sdk.setUserId === 'function') {
this._sdk.setUserId(userId)
return
}
if (this._sdk && typeof this._sdk.HiAnalytics?.getInstance === 'function') {
try {
const instance = this._sdk.HiAnalytics.getInstance()
instance.setUserId(userId)
return
} catch (e) {}
}
if (this._hmsjsb) {
this._hmsjsb.invoke({
apiName: 'analyticsSetUserId',
args: { userId },
success: () => {},
fail: (err) => console.warn('[HwService.Analytics] setUserId 失败:', err)
})
return
}
console.log('[HwService.Analytics] setUserId (fallback):', userId)
}
/**
* 页面浏览事件
*/
onPageView(pageName, pageClassOverride = '') {
this.onEvent('$PageView', {
pageName,
pageClassOverride: pageClassOverride || pageName
})
}
}
// ============================================================
// 华为推送服务 (Push Kit)
// 通过 hmsjsb.invoke 桥接(无独立 npm 包)
// ============================================================
class PushService {
constructor(hmsjsbRef) {
this._hmsjsb = hmsjsbRef
this._token = null
}
/**
* 获取推送令牌
*/
async getToken() {
if (this._token) return this._token
try {
const result = await invokeHmsApi(this._hmsjsb, 'pushGetToken', {})
this._token = result.token || result
return this._token
} catch (e) {
console.warn('[HwService.Push] getToken 不可用:', e)
return null
}
}
/**
* 监听推送令牌变更
*/
onTokenReceived(callback) {
if (!this._hmsjsb) return
this._hmsjsb.on('pushOnToken', callback)
}
/**
* 监听消息到达
*/
onMessageReceived(callback) {
if (!this._hmsjsb) return
this._hmsjsb.on('pushOnMessageReceived', callback)
}
/**
* 监听通知点击
*/
onNotificationClicked(callback) {
if (!this._hmsjsb) return
this._hmsjsb.on('pushOnNotificationClicked', callback)
}
}
// ============================================================
// 导出单例
// ============================================================
const hwService = new HwService()
export default hwService
export { AccountService, AnalyticsService, PushService }

View File

@@ -213,6 +213,8 @@ export default {
// console.log(img_path) // console.log(img_path)
path = img_path; path = img_path;
} }
// 修复:去除 URL 中的双斜杠,避免微信 downloadFile 域名匹配失败
path = path.replace(/([^:]\/)\/+/g, "$1");
} }
// path += '?t=' + parseInt(new Date().getTime() / 1000); // path += '?t=' + parseInt(new Date().getTime() / 1000);

View File

@@ -0,0 +1,38 @@
/**
* 微信小程序图片长按识别二维码 mixin
* 自动为页面中的所有 image 组件添加 show-menu-by-longpress 属性
*/
export default {
data() {
return {
// 需要排除的图片类名(不需要长按识别的)
excludeImageClass: ['no-longpress', 'swiper-image', 'banner-image']
}
},
mounted() {
// #ifdef MP-WEIXIN
this.$nextTick(() => {
this.addLongpressToImages()
})
// #endif
},
methods: {
/**
* 为页面中的所有 image 添加长按识别支持
*/
addLongpressToImages() {
// 获取当前页面所有 image 组件
const images = document.querySelectorAll && document.querySelectorAll('image')
if (images) {
images.forEach(img => {
// 检查是否需要排除
const className = img.className || ''
const shouldExclude = this.excludeImageClass.some(cls => className.includes(cls))
if (!shouldExclude) {
img.setAttribute('show-menu-by-longpress', 'true')
}
})
}
}
}
}

View File

@@ -12,7 +12,7 @@
<view :class="['item', value.ornament.type]" :style="itemCss"> <view :class="['item', value.ornament.type]" :style="itemCss">
<view class="article-img"> <view class="article-img">
<image class="cover-img" :src="$util.img(item.cover_img)" mode="widthFix" <image class="cover-img" :src="$util.img(item.cover_img)" mode="widthFix"
@error="imgError(index)" /> @error="imgError(index)" show-menu-by-longpress/>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
<text class="title">{{ item.article_title }}</text> <text class="title">{{ item.article_title }}</text>

View File

@@ -17,7 +17,7 @@
<view class="fui-audio style3" :style="{ background: value.background }" v-else> <view class="fui-audio style3" :style="{ background: value.background }" v-else>
<!-- <audio src="/static/audio/bgm.mp3" controls loop></audio> --> <!-- <audio src="/static/audio/bgm.mp3" controls loop></audio> -->
<view class="img"> <view class="img">
<image :src="$util.img(value.imageUrl)"></image> <image :src="$util.img(value.imageUrl)" show-menu-by-longpress></image>
</view> </view>
<view class="content"> <view class="content">
<view class="name" :style="{ color: value.textcolor }">{{ value.text }}</view> <view class="name" :style="{ color: value.textcolor }">{{ value.text }}</view>

View File

@@ -10,7 +10,7 @@
:style="{ fontSize: value.titleStyle.fontSize * 2 + 'rpx', color: value.titleStyle.textColor, fontWeight: value.titleStyle.fontWeight ? 'bold' : '' }"> :style="{ fontSize: value.titleStyle.fontSize * 2 + 'rpx', color: value.titleStyle.textColor, fontWeight: value.titleStyle.fontWeight ? 'bold' : '' }">
{{ value.titleStyle.leftText }} {{ value.titleStyle.leftText }}
</view> </view>
<image v-else class="left-img" :src="$util.img(value.titleStyle.leftImg)" mode="heightFix"></image> <image v-else class="left-img" :src="$util.img(value.titleStyle.leftImg)" mode="heightFix" show-menu-by-longpress></image>
<view class="head-content" v-if="value.titleStyle.style == 'style-1'" <view class="head-content" v-if="value.titleStyle.style == 'style-1'"
:style="{ color: value.titleStyle.textColor }">低至0元免费拿</view> :style="{ color: value.titleStyle.textColor }">低至0元免费拿</view>
<view class="head-right" <view class="head-right"
@@ -28,7 +28,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content" <view class="content"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.btnStyle.control"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.btnStyle.control">
@@ -41,7 +41,7 @@
<view class="bg"> <view class="bg">
<view class="curr" :style="{ width: progress(item) * 2 + 'rpx' }"> <view class="curr" :style="{ width: progress(item) * 2 + 'rpx' }">
<image class="progress-bar" mode="widthFix" <image class="progress-bar" mode="widthFix"
:src="$util.img('public/uniapp/bargain/progress_bar_01.png')" /> :src="$util.img('public/uniapp/bargain/progress_bar_01.png')" show-menu-by-longpress/>
</view> </view>
</view> </view>
<view class="num" v-if="item.is_bargaining"> <view class="num" v-if="item.is_bargaining">
@@ -89,7 +89,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" :lazy-load="true" /> @error="imageError(index)" :lazy-load="true" show-menu-by-longpress/>
<image class="bg" <image class="bg"
v-if="value.saleStyle.control && value.template == 'horizontal-slide' && value.style != 'style-2'" v-if="value.saleStyle.control && value.template == 'horizontal-slide' && value.style != 'style-2'"
:src="$util.img('public/uniapp/bargain/bg.png')" mode="widthFix" /> :src="$util.img('public/uniapp/bargain/bg.png')" mode="widthFix" />
@@ -134,7 +134,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(dataIndex)" :lazy-load="true" /> @error="imageError(dataIndex)" :lazy-load="true" show-menu-by-longpress/>
<image class="bg" <image class="bg"
v-if="value.saleStyle.control && value.template == 'horizontal-slide' && value.style != 'style-2'" v-if="value.saleStyle.control && value.template == 'horizontal-slide' && value.style != 'style-2'"
:src="$util.img('public/uniapp/bargain/bg.png')" mode="widthFix" /> :src="$util.img('public/uniapp/bargain/bg.png')" mode="widthFix" />

View File

@@ -2,7 +2,7 @@
<view data-component-name="diy-category-item" class="item-wrap" :class="type"> <view data-component-name="diy-category-item" class="item-wrap" :class="type">
<block v-if="type == 'category' && category.child_list && category.child_list.length"> <block v-if="type == 'category' && category.child_list && category.child_list.length">
<view class="category-adv" v-if="category.image_adv" @tap.stop="diyRedirectTo(category.link_url)"> <view class="category-adv" v-if="category.image_adv" @tap.stop="diyRedirectTo(category.link_url)">
<image :src="$util.img(category.image_adv)" mode="widthFix" /> <image :src="$util.img(category.image_adv)" mode="widthFix" show-menu-by-longpress />
</view> </view>
<block v-if="value.level == 2"> <block v-if="value.level == 2">
@@ -11,7 +11,7 @@
<view class="category-item" v-for="(one, oneIndex) in category.child_list" :key="oneIndex" <view class="category-item" v-for="(one, oneIndex) in category.child_list" :key="oneIndex"
@tap.stop="$util.redirectTo('/pages_goods/list', { category_id: one.category_id })"> @tap.stop="$util.redirectTo('/pages_goods/list', { category_id: one.category_id })">
<view class="img-box"> <view class="img-box">
<image :src="$util.img(one.image)" mode="widthFix" /> <image :src="$util.img(one.image)" mode="widthFix" show-menu-by-longpress />
</view> </view>
<view class="name">{{ one.category_name }}</view> <view class="name">{{ one.category_name }}</view>
</view> </view>
@@ -25,7 +25,7 @@
<view class="category-item" v-for="(two, twoIndex) in one.child_list" :key="twoIndex" <view class="category-item" v-for="(two, twoIndex) in one.child_list" :key="twoIndex"
@tap.stop="$util.redirectTo('/pages_goods/list', { category_id: two.category_id })"> @tap.stop="$util.redirectTo('/pages_goods/list', { category_id: two.category_id })">
<view class="img-box"> <view class="img-box">
<image :src="$util.img(two.image)" mode="widthFix" :lazy-load="true" /> <image :src="$util.img(two.image)" mode="widthFix" :lazy-load="true" show-menu-by-longpress />
</view> </view>
<view class="name">{{ two.category_name }}</view> <view class="name">{{ two.category_name }}</view>
</view> </view>
@@ -82,7 +82,7 @@
<block v-if="goodsList.length"> <block v-if="goodsList.length">
<view class="goods-item" v-for="(item, index) in goodsList" :key="index"> <view class="goods-item" v-for="(item, index) in goodsList" :key="index">
<view class="goods-img" @tap.stop="toDetail(item)"> <view class="goods-img" @tap.stop="toDetail(item)">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true" /> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress />
<view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }} <view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }}
</view> </view>
</view> </view>
@@ -102,11 +102,11 @@
</view> </view>
<view class="member-price-tag" <view class="member-price-tag"
v-if="item.member_price && item.member_price == showPrice(item)"> v-if="item.member_price && item.member_price == showPrice(item)">
<image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix" show-menu-by-longpress />
</view> </view>
<view class="member-price-tag" v-else-if="item.promotion_type == 1"> <view class="member-price-tag" v-else-if="item.promotion_type == 1">
<image :src="$util.img('public/uniapp/index/discount.png')" <image :src="$util.img('public/uniapp/index/discount.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress />
</view> </view>
</view> </view>
<view class="footer-wrap"> <view class="footer-wrap">
@@ -158,7 +158,7 @@
</view> </view>
</block> </block>
<view class="category-empty" v-else> <view class="category-empty" v-else>
<image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix" show-menu-by-longpress />
</view> </view>
<!-- <view class="end-tips" ref="endTips" v-if="last && (categoryId == -1 || !category.child_list || (category.child_list && categoryId == category.child_list.length - 1))">已经到底了~</view> <!-- <view class="end-tips" ref="endTips" v-if="last && (categoryId == -1 || !category.child_list || (category.child_list && categoryId == category.child_list.length - 1))">已经到底了~</view>
<view class="end-tips" ref="endTips" v-else @tap.stop="switchCategory('next')"> <view class="end-tips" ref="endTips" v-else @tap.stop="switchCategory('next')">
@@ -178,7 +178,7 @@
<view class="goods-item" v-for="(item, index) in goodsList" :key="index"> <view class="goods-item" v-for="(item, index) in goodsList" :key="index">
<view class="goods-img" @tap.stop="toDetail(item)"> <view class="goods-img" @tap.stop="toDetail(item)">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"
:lazy-load="true" :show-menu-by-longpress="true" /> :lazy-load="true" show-menu-by-longpress />
<view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }}</view> <view class="color-base-bg goods-tag" v-if="item.label_name">{{ item.label_name }}</view>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
@@ -197,10 +197,10 @@
</view> </view>
<view class="member-price-tag" <view class="member-price-tag"
v-if="item.member_price && item.member_price == showPrice(item)"> v-if="item.member_price && item.member_price == showPrice(item)">
<image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix" show-menu-by-longpress />
</view> </view>
<view class="member-price-tag" v-else-if="item.promotion_type == 1"> <view class="member-price-tag" v-else-if="item.promotion_type == 1">
<image :src="$util.img('public/uniapp/index/discount.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/index/discount.png')" mode="widthFix" show-menu-by-longpress />
</view> </view>
</view> </view>
<view class="footer-wrap"> <view class="footer-wrap">

View File

@@ -43,7 +43,7 @@
<view class="category-item" :id="'category-one-' + index" v-for="(item, index) in templateFourData" <view class="category-item" :id="'category-one-' + index" v-for="(item, index) in templateFourData"
:key="index" :class="{ select: oneCategorySelect == index }" @tap.stop="templateFourOneFn(index)"> :key="index" :class="{ select: oneCategorySelect == index }" @tap.stop="templateFourOneFn(index)">
<view class="image-warp" :class="[{ 'color-base-border': oneCategorySelect == index }]"> <view class="image-warp" :class="[{ 'color-base-border': oneCategorySelect == index }]">
<image :src="$util.img(item.image)" mode="aspectFill" /> <image :src="$util.img(item.image)" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view :class="['text', { 'color-base-bg': oneCategorySelect == index }]">{{ item.category_name }} <view :class="['text', { 'color-base-bg': oneCategorySelect == index }]">{{ item.category_name }}
</view> </view>
@@ -52,7 +52,7 @@
<view class="category-item-all" @tap.stop="$refs.templateFourPopup.open()"> <view class="category-item-all" @tap.stop="$refs.templateFourPopup.open()">
<view class="category-item-all-wrap"> <view class="category-item-all-wrap">
<text class="text">展开</text> <text class="text">展开</text>
<image class="img" :src="$util.img('/public/uniapp/category/unfold.png')" mode="aspectFill"></image> <image class="img" :src="$util.img('/public/uniapp/category/unfold.png')" mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
</view> </view>
<uni-popup type="top" ref="templateFourPopup" :top="uniPopupTop"> <uni-popup type="top" ref="templateFourPopup" :top="uniPopupTop">
@@ -61,7 +61,7 @@
<view class="item" :class="{ selected: oneCategorySelect == index }" <view class="item" :class="{ selected: oneCategorySelect == index }"
@tap.stop="templateFourOneFn(index)" v-for="(item, index) in templateFourData" :key="index"> @tap.stop="templateFourOneFn(index)" v-for="(item, index) in templateFourData" :key="index">
<view class="image-warp" :class="[{ 'color-base-border': oneCategorySelect == index }]"> <view class="image-warp" :class="[{ 'color-base-border': oneCategorySelect == index }]">
<image :src="$util.img(item.image)" mode="aspectFill"></image> <image :src="$util.img(item.image)" mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
<view :class="['text', { 'color-base-bg': oneCategorySelect == index }]">{{ <view :class="['text', { 'color-base-bg': oneCategorySelect == index }]">{{
item.category_name }}</view> item.category_name }}</view>
@@ -119,12 +119,12 @@
</view> </view>
</block> </block>
<view class="category-empty" v-else> <view class="category-empty" v-else>
<image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix" show-menu-by-longpress></image>
<view class="tips">暂时没有分类哦!</view> <view class="tips">暂时没有分类哦!</view>
</view> </view>
</view> </view>
<view class="category-empty" v-else> <view class="category-empty" v-else>
<image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix" show-menu-by-longpress></image>
<view class="tips">暂时没有分类哦!</view> <view class="tips">暂时没有分类哦!</view>
</view> </view>

View File

@@ -24,7 +24,7 @@
<!-- 跳转式视频播放 --> <!-- 跳转式视频播放 -->
<view v-else @tap.stop="playVideo" class="video-container"> <view v-else @tap.stop="playVideo" class="video-container">
<view class="video-cover-wrap" :style="[coverStyle]"> <view class="video-cover-wrap" :style="[coverStyle]">
<image class="video-cover" :src="$util.img(value.coverUrl)" mode="aspectFill"></image> <image class="video-cover" :src="$util.img(value.coverUrl)" mode="aspectFill" show-menu-by-longpress></image>
<view class="channel-play-btn" v-if="showPlayBtn" :style="[playBtnStyle]"> <view class="channel-play-btn" v-if="showPlayBtn" :style="[playBtnStyle]">
<view class="play-icon-css"></view> <view class="play-icon-css"></view>
</view> </view>

View File

@@ -5,7 +5,7 @@
:class="[value.ornament.type]" :style="goodsItemCss"> :class="[value.ornament.type]" :style="goodsItemCss">
<view class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" @error="imgError(index)" /> :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" @error="imgError(index)" show-menu-by-longpress/>
</view> </view>
<view class="info-wrap" <view class="info-wrap"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.priceStyle.lineControl || value.btnStyle.control"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.priceStyle.lineControl || value.btnStyle.control">

View File

@@ -6,7 +6,7 @@
<view class="button-box" @tap.stop="$util.diyRedirectTo(item.link)" <view class="button-box" @tap.stop="$util.diyRedirectTo(item.link)"
:style="{ width: value.imageSize + 'px', height: value.imageSize + 'px', fontSize: value.imageSize + 'px' }"> :style="{ width: value.imageSize + 'px', height: value.imageSize + 'px', fontSize: value.imageSize + 'px' }">
<image v-if="!item.iconType || item.iconType == 'img'" :src="$util.img(item.imageUrl)" mode="aspectFit" <image v-if="!item.iconType || item.iconType == 'img'" :src="$util.img(item.imageUrl)" mode="aspectFit"
:show-menu-by-longpress="true" /> show-menu-by-longpress />
<diy-icon v-else-if="item.iconType && item.iconType == 'icon'" :icon="item.icon" <diy-icon v-else-if="item.iconType && item.iconType == 'icon'" :icon="item.icon"
:value="item.style ? item.style : null"></diy-icon> :value="item.style ? item.style : null"></diy-icon>
</view> </view>

View File

@@ -9,7 +9,7 @@
<view class="li-item" v-for="(item, index) in list" :key="index"> <view class="li-item" v-for="(item, index) in list" :key="index">
<image class="brand-pic" :src="$util.img(item.image_url)" mode="aspectFit" <image class="brand-pic" :src="$util.img(item.image_url)" mode="aspectFit"
@tap.stop="handlerClick(item)" @error="imgError(index)" @tap.stop="handlerClick(item)" @error="imgError(index)"
:style="itemCss" /> :style="itemCss" show-menu-by-longpress/>
</view> </view>
</view> </view>
</view> </view>

View File

@@ -9,7 +9,7 @@
:src="$util.img(item.goods_image, { size: goodsValue.template == 'large-mode' ? 'big' : 'mid' })" :src="$util.img(item.goods_image, { size: goodsValue.template == 'large-mode' ? 'big' : 'mid' })"
mode="widthFix" @error="imgError(index)" mode="widthFix" @error="imgError(index)"
:style="{ borderRadius: goodsValue.imgAroundRadius * 2 + 'rpx' }" :style="{ borderRadius: goodsValue.imgAroundRadius * 2 + 'rpx' }"
:show-menu-by-longpress="true" /> show-menu-by-longpress />
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>
@@ -49,9 +49,9 @@
<view class="member-price" <view class="member-price"
v-if="(item.member_price && item.member_price == showPrice(item)) || item.promotion_type == 1"> v-if="(item.member_price && item.member_price == showPrice(item)) || item.promotion_type == 1">
<image v-if="item.member_price && item.member_price == showPrice(item)" <image v-if="item.member_price && item.member_price == showPrice(item)"
:src="$util.img('public/uniapp/index/VIP.png')" /> :src="$util.img('public/uniapp/index/VIP.png')" show-menu-by-longpress />
<image v-else-if="item.promotion_type == 1" <image v-else-if="item.promotion_type == 1"
:src="$util.img('public/uniapp/index/discount.png')" /> :src="$util.img('public/uniapp/index/discount.png')" show-menu-by-longpress />
</view> </view>
<view v-if="goodsValue.priceStyle.lineControl && showMarketPrice(item)" <view v-if="goodsValue.priceStyle.lineControl && showMarketPrice(item)"
class="delete-price price-font" class="delete-price price-font"
@@ -118,7 +118,7 @@
<view class="goods-img-wrap"> <view class="goods-img-wrap">
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" @error="imgError(index)" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" @error="imgError(index)"
:lazy-load="true" :show-menu-by-longpress="true" /> :lazy-load="true" show-menu-by-longpress />
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>
@@ -157,9 +157,9 @@
<view class="member-price" <view class="member-price"
v-if="(item.member_price && item.member_price == showPrice(item)) || item.promotion_type == 1"> v-if="(item.member_price && item.member_price == showPrice(item)) || item.promotion_type == 1">
<image v-if="item.member_price && item.member_price == showPrice(item)" <image v-if="item.member_price && item.member_price == showPrice(item)"
:src="$util.img('public/uniapp/index/VIP.png')" /> :src="$util.img('public/uniapp/index/VIP.png')" show-menu-by-longpress />
<image v-else-if="item.promotion_type == 1" <image v-else-if="item.promotion_type == 1"
:src="$util.img('public/uniapp/index/discount.png')" /> :src="$util.img('public/uniapp/index/discount.png')" show-menu-by-longpress />
</view> </view>
<view v-if="goodsValue.priceStyle.lineControl && showMarketPrice(item)" <view v-if="goodsValue.priceStyle.lineControl && showMarketPrice(item)"
class="delete-price price-font" class="delete-price price-font"
@@ -185,7 +185,7 @@
<view class="goods-img-wrap"> <view class="goods-img-wrap">
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(dataItem.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(dataItem.goods_image, { size: 'mid' })" mode="widthFix"
@error="imgError(dataIndex)" :lazy-load="true" :show-menu-by-longpress="true" /> @error="imgError(dataIndex)" :lazy-load="true" show-menu-by-longpress />
<view class="sell-out" v-if="dataItem.stock <= 0"> <view class="sell-out" v-if="dataItem.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>
@@ -227,9 +227,9 @@
v-if="(dataItem.member_price && dataItem.member_price == showPrice(dataItem)) || dataItem.promotion_type == 1"> v-if="(dataItem.member_price && dataItem.member_price == showPrice(dataItem)) || dataItem.promotion_type == 1">
<image <image
v-if="dataItem.member_price && dataItem.member_price == showPrice(dataItem)" v-if="dataItem.member_price && dataItem.member_price == showPrice(dataItem)"
:src="$util.img('public/uniapp/index/VIP.png')" /> :src="$util.img('public/uniapp/index/VIP.png')" show-menu-by-longpress />
<image v-else-if="dataItem.promotion_type == 1" <image v-else-if="dataItem.promotion_type == 1"
:src="$util.img('public/uniapp/index/discount.png')" /> :src="$util.img('public/uniapp/index/discount.png')" show-menu-by-longpress />
</view> </view>
<view v-if="goodsValue.priceStyle.lineControl && showMarketPrice(dataItem)" <view v-if="goodsValue.priceStyle.lineControl && showMarketPrice(dataItem)"
class="delete-price" class="delete-price"

View File

@@ -17,7 +17,7 @@
<div class="goods-img-wrap"> <div class="goods-img-wrap">
<image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image class="goods-img" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(dataItem.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(dataItem.goods_image, { size: 'mid' })" mode="widthFix"
@error="imgError(index, dataIndex)" :lazy-load="true" :show-menu-by-longpress="true" /> @error="imgError(index, dataIndex)" :lazy-load="true" show-menu-by-longpress />
<view class="sell-out" v-if="dataItem.stock <= 0"> <view class="sell-out" v-if="dataItem.stock <= 0">
<text class="iconfont icon-shuqing"></text> <text class="iconfont icon-shuqing"></text>
</view> </view>
@@ -33,7 +33,7 @@
<view class="label-wrap" v-if="goodsValue.labelStyle.support" <view class="label-wrap" v-if="goodsValue.labelStyle.support"
:style="{ background: goodsValue.labelStyle.bgColor, color: goodsValue.labelStyle.color }"> :style="{ background: goodsValue.labelStyle.bgColor, color: goodsValue.labelStyle.color }">
<image :src="$util.img('app/component/view/goods_recommend/img/label.png')" <image :src="$util.img('app/component/view/goods_recommend/img/label.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress />
<text>{{ goodsValue.labelStyle.title }}</text> <text>{{ goodsValue.labelStyle.title }}</text>
</view> </view>
<view class="discount-price"> <view class="discount-price">

View File

@@ -23,7 +23,7 @@
:src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')"
mode="aspectFill" mode="aspectFill"
:style="{ maxWidth: value.imageSize * 2 + 'rpx', maxHeight: value.imageSize * 2 + 'rpx', borderRadius: value.aroundRadius * 2 + 'rpx' }" :style="{ maxWidth: value.imageSize * 2 + 'rpx', maxHeight: value.imageSize * 2 + 'rpx', borderRadius: value.aroundRadius * 2 + 'rpx' }"
:show-menu-by-longpress="true" /> show-menu-by-longpress />
<diy-icon v-if="item.iconType == 'icon'" :icon="item.icon" <diy-icon v-if="item.iconType == 'icon'" :icon="item.icon"
:value="item.style ? item.style : null" :value="item.style ? item.style : null"
@@ -69,7 +69,7 @@
:src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')"
mode="aspectFill" mode="aspectFill"
:style="{ maxWidth: value.imageSize * 2 + 'rpx', maxHeight: value.imageSize * 2 + 'rpx', borderRadius: value.aroundRadius * 2 + 'rpx' }" :style="{ maxWidth: value.imageSize * 2 + 'rpx', maxHeight: value.imageSize * 2 + 'rpx', borderRadius: value.aroundRadius * 2 + 'rpx' }"
:show-menu-by-longpress="true" /> show-menu-by-longpress />
<diy-icon v-if="item.iconType == 'icon'" :icon="item.icon" <diy-icon v-if="item.iconType == 'icon'" :icon="item.icon"
:value="item.style ? item.style : null" :value="item.style ? item.style : null"
:style="{ maxWidth: value.imageSize * 2 + 'rpx', maxHeight: value.imageSize * 2 + 'rpx', width: '100%', height: '100%' }"></diy-icon> :style="{ maxWidth: value.imageSize * 2 + 'rpx', maxHeight: value.imageSize * 2 + 'rpx', width: '100%', height: '100%' }"></diy-icon>

View File

@@ -7,7 +7,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)"> @error="imageError(index)" show-menu-by-longpress>
</image> </image>
</view> </view>
<view class="content" <view class="content"
@@ -44,7 +44,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
<image class="bg" v-if="value.saleStyle.control" <image class="bg" v-if="value.saleStyle.control"
:src="$util.img('public/uniapp/groupbuy/bg.png')" mode="widthFix" /> :src="$util.img('public/uniapp/groupbuy/bg.png')" mode="widthFix" />
<view class="num" v-if="value.saleStyle.control" <view class="num" v-if="value.saleStyle.control"
@@ -85,7 +85,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(dataIndex)" /> @error="imageError(dataIndex)" show-menu-by-longpress/>
<image class="bg" v-if="value.saleStyle.control" <image class="bg" v-if="value.saleStyle.control"
:src="$util.img('public/uniapp/groupbuy/bg.png')" mode="widthFix" /> :src="$util.img('public/uniapp/groupbuy/bg.png')" mode="widthFix" />
<view class="num" v-if="value.saleStyle.control" <view class="num" v-if="value.saleStyle.control"

View File

@@ -2,7 +2,7 @@
<view data-component-name="diy-hot-area" :style="hotAreaWarp" class="hot-area-box"> <view data-component-name="diy-hot-area" :style="hotAreaWarp" class="hot-area-box">
<view class="simple-graph-wrap"> <view class="simple-graph-wrap">
<image :style="{ height: value.imgHeight }" :src="$util.img(value.imageUrl)" mode="widthFix" <image :style="{ height: value.imgHeight }" :src="$util.img(value.imageUrl)" mode="widthFix"
:show-menu-by-longpress="true" /> show-menu-by-longpress />
<!-- 热区功能 --> <!-- 热区功能 -->
<view class="heat-map" v-for="(mapItem, mapIndex) in value.heatMapData" :key="mapIndex" :style="{ <view class="heat-map" v-for="(mapItem, mapIndex) in value.heatMapData" :key="mapIndex" :style="{
width: mapItem.width + '%', width: mapItem.width + '%',

View File

@@ -15,12 +15,12 @@
'width': (item.imgWidth / 2 + 'rpx') + ';', 'width': (item.imgWidth / 2 + 'rpx') + ';',
'height': (item.imgHeight / 2 + 'rpx') + ';' 'height': (item.imgHeight / 2 + 'rpx') + ';'
}" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" }" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')"
:show-menu-by-longpress="true" @tap.stop="redirectTo(item.link)"></image> show-menu-by-longpress @tap.stop="redirectTo(item.link)"></image>
<image v-else :style="{ <image v-else :style="{
'width': (item.imgWidth / 2 + 'rpx') + ';', 'width': (item.imgWidth / 2 + 'rpx') + ';',
'height': (item.imgHeight / 2 + 'rpx') + ';' 'height': (item.imgHeight / 2 + 'rpx') + ';'
}" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" }" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')"
:show-menu-by-longpress="true" @tap.stop="previewImg(item.imageUrl)"></image> show-menu-by-longpress @tap.stop="previewImg(item.imageUrl)"></image>
</view> </view>
<!-- 文字部分 --> <!-- 文字部分 -->

View File

@@ -4,7 +4,7 @@
<block v-if="imgAdsValue.list.length == 1"> <block v-if="imgAdsValue.list.length == 1">
<view class="simple-graph-wrap" :style="imgAdsSwiper" @tap.stop="handlerClick(imgAdsValue.list[0].link)"> <view class="simple-graph-wrap" :style="imgAdsSwiper" @tap.stop="handlerClick(imgAdsValue.list[0].link)">
<image :style="{ height: imgAdsValue.list[0].imgHeight }" <image :style="{ height: imgAdsValue.list[0].imgHeight }"
:src="$util.img(imgAdsValue.list[0].imageUrl)" mode="widthFix" :show-menu-by-longpress="true" /> :src="$util.img(imgAdsValue.list[0].imageUrl)" mode="widthFix" show-menu-by-longpress />
</view> </view>
</block> </block>
<swiper v-else class="swiper" :style="{ height: swiperHeight }" :class="{ <swiper v-else class="swiper" :style="{ height: swiperHeight }" :class="{
@@ -18,7 +18,7 @@
:key="index" v-if="item.imageUrl" @tap.stop="handlerClick(item.link)"> :key="index" v-if="item.imageUrl" @tap.stop="handlerClick(item.link)">
<view class="item" :style="imgAdsSwiper + 'height: ' + item.imgHeight"> <view class="item" :style="imgAdsSwiper + 'height: ' + item.imgHeight">
<image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'" <image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'"
:show-menu-by-longpress="true" /> show-menu-by-longpress />
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>

View File

@@ -58,9 +58,9 @@
:key="index" @tap.stop="toCateGoodsList(item.category_id_2, 2)"> :key="index" @tap.stop="toCateGoodsList(item.category_id_2, 2)">
<view class="item-box"> <view class="item-box">
<image :src="$util.img(item.image)" v-if="item.image" <image :src="$util.img(item.image)" v-if="item.image"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress/>
<image :src="$util.getDefaultImage().goods" v-else <image :src="$util.getDefaultImage().goods" v-else
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress/>
<view>{{ item.category_name }}</view> <view>{{ item.category_name }}</view>
</view> </view>
</view> </view>
@@ -73,9 +73,9 @@
:key="index" @tap.stop="toCateGoodsList(item.category_id_2, 2)"> :key="index" @tap.stop="toCateGoodsList(item.category_id_2, 2)">
<view class="item-box"> <view class="item-box">
<image :src="$util.img(item.image)" v-if="item.image" <image :src="$util.img(item.image)" v-if="item.image"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress/>
<image :src="$util.getDefaultImage().goods" v-else <image :src="$util.getDefaultImage().goods" v-else
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress/>
<view>{{ item.category_name }}</view> <view>{{ item.category_name }}</view>
</view> </view>
</view> </view>
@@ -88,7 +88,7 @@
:key="index" v-if="index >= (page - 1) * 10 && index < page * 10" :key="index" v-if="index >= (page - 1) * 10 && index < page * 10"
@tap.stop="toCateGoodsList(item.category_id_2, 2)"> @tap.stop="toCateGoodsList(item.category_id_2, 2)">
<view class="item-box"> <view class="item-box">
<image :src="item.image" mode="aspectFill" /> <image :src="item.image" mode="aspectFill" show-menu-by-longpress/>
<view>{{ item.category_name }}</view> <view>{{ item.category_name }}</view>
</view> </view>
</view> </view>
@@ -104,19 +104,19 @@
<!-- 分类广告 --> <!-- 分类广告 -->
<image class="category_adv" v-if="cateList[pageIndex].image_adv" <image class="category_adv" v-if="cateList[pageIndex].image_adv"
:src="$util.img(cateList[pageIndex].image_adv)" mode="widthFix" /> :src="$util.img(cateList[pageIndex].image_adv)" mode="widthFix" show-menu-by-longpress/>
<view class="goods-list double-column" v-if="goodsList[pageIndex].list.length"> <view class="goods-list double-column" v-if="goodsList[pageIndex].list.length">
<view class="goods-item" v-for="(item, index) in goodsList[pageIndex].list" <view class="goods-item" v-for="(item, index) in goodsList[pageIndex].list"
:key="index" @tap.stop="toDetail(item)"> :key="index" @tap.stop="toDetail(item)">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" <image :src="goodsImg(item.goods_image)" mode="widthFix"
@error="imgError(index)" /> @error="imgError(index)" show-menu-by-longpress/>
<view class="color-base-bg goods-tag" <view class="color-base-bg goods-tag"
v-if="value.goodsTag == 'default' && goodsTag(item) != ''">{{ v-if="value.goodsTag == 'default' && goodsTag(item) != ''">{{
goodsTag(item) }}</view> goodsTag(item) }}</view>
<view class="goods-tag-img" v-if="value.goodsTag == 'diy'"> <view class="goods-tag-img" v-if="value.goodsTag == 'diy'">
<image :src="$util.img(value.tagImg.imageUrl)" /> <image :src="$util.img(value.tagImg.imageUrl)" show-menu-by-longpress/>
</view> </view>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
@@ -133,11 +133,11 @@
<view class="member-price-tag" <view class="member-price-tag"
v-if="item.member_price && item.member_price == showPrice(item)"> v-if="item.member_price && item.member_price == showPrice(item)">
<image :src="$util.img('public/uniapp/index/VIP.png')" <image :src="$util.img('public/uniapp/index/VIP.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress/>
</view> </view>
<view class="member-price-tag" v-else-if="item.promotion_type == 1"> <view class="member-price-tag" v-else-if="item.promotion_type == 1">
<image :src="$util.img('public/uniapp/index/discount.png')" <image :src="$util.img('public/uniapp/index/discount.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress/>
</view> </view>
</view> </view>
<view class="pro-info"> <view class="pro-info">

View File

@@ -3,7 +3,7 @@
<view class="fui-list-group merchgroup" v-for="(item, index) in value.list" :key="index"> <view class="fui-list-group merchgroup" v-for="(item, index) in value.list" :key="index">
<view class="fui-list jump" v-if="index == 0"> <view class="fui-list jump" v-if="index == 0">
<view class="fui-list-media"> <view class="fui-list-media">
<image class="round" :src="$util.img(item.imageUrl)" style="border-radius:6rpx"></image> <image class="round" :src="$util.img(item.imageUrl)" style="border-radius:6rpx" show-menu-by-longpress></image>
</view> </view>
<view class="fui-list-inner"> <view class="fui-list-inner">
<view class="title" style="height: 75rpx;"> <view class="title" style="height: 75rpx;">

View File

@@ -1,7 +1,7 @@
<template> <template>
<view data-component-name="diy-listmenu" class="diy-listmenu" :style="style"> <view data-component-name="diy-listmenu" class="diy-listmenu" :style="style">
<view class="fui-cell-group"> <view class="fui-cell-group">
<!-- <image mode="widthFix" style="width: 100%;" :src="$util.img(item.imageUrl)"></image> --> <!-- <image mode="widthFix" style="width: 100%;" :src="$util.img(item.imageUrl)" show-menu-by-longpress></image> -->
<view v-for="(item, index) in value.list" @tap.stop="redirectTo(item.link)" class="fui-cell" <view v-for="(item, index) in value.list" @tap.stop="redirectTo(item.link)" class="fui-cell"
:class="item.iconType == 'img' ? 'img-cell' : ''"> :class="item.iconType == 'img' ? 'img-cell' : ''">

View File

@@ -25,7 +25,7 @@
<block v-if="value.isShowAnchorInfo"> <block v-if="value.isShowAnchorInfo">
<image <image
:src="liveInfo.anchor_img != '' ? $util.img(liveInfo.anchor_img) : $util.getDefaultImage().head" :src="liveInfo.anchor_img != '' ? $util.img(liveInfo.anchor_img) : $util.getDefaultImage().head"
class="anchor-img" @error="liveInfo.anchor_img = $util.getDefaultImage().head" /> class="anchor-img" @error="liveInfo.anchor_img = $util.getDefaultImage().head" show-menu-by-longpress/>
<text class="anchor-name">主播:{{ liveInfo.anchor_name }}</text> <text class="anchor-name">主播:{{ liveInfo.anchor_name }}</text>
</block> </block>
<text class="separate" v-if="value.isShowAnchorInfo && value.isShowLiveGood">|</text> <text class="separate" v-if="value.isShowAnchorInfo && value.isShowLiveGood">|</text>

View File

@@ -6,7 +6,7 @@
<view class="info-wrap" :style="infoStyle" v-if="memberInfo"> <view class="info-wrap" :style="infoStyle" v-if="memberInfo">
<view class="headimg" @tap.stop="getWxAuth"> <view class="headimg" @tap.stop="getWxAuth">
<image :src="memberInfo.headimg ? $util.img(memberInfo.headimg) : $util.getDefaultImage().head" <image :src="memberInfo.headimg ? $util.img(memberInfo.headimg) : $util.getDefaultImage().head"
mode="widthFix" @error="memberInfo.headimg = $util.getDefaultImage().head" /> mode="widthFix" @error="memberInfo.headimg = $util.getDefaultImage().head" show-menu-by-longpress/>
</view> </view>
<view class="info"> <view class="info">
<!-- #ifdef MP --> <!-- #ifdef MP -->
@@ -66,7 +66,7 @@
<view class="info-wrap" v-else :style="infoStyle" @tap.stop="redirect($util.MEMBER_PAGE_URL)"> <view class="info-wrap" v-else :style="infoStyle" @tap.stop="redirect($util.MEMBER_PAGE_URL)">
<view class="headimg"> <view class="headimg">
<image :src="$util.getDefaultImage().head" mode="widthFix"></image> <image :src="$util.getDefaultImage().head" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="info"> <view class="info">
<view class="nickname"><text class="name">{{ $lang('login') }}</text></view> <view class="nickname"><text class="name">{{ $lang('login') }}</text></view>
@@ -117,7 +117,7 @@
</block> </block>
<block v-if="value.style == 3"> <block v-if="value.style == 3">
<view class="super-info"> <view class="super-info">
<image :src="$util.img('public/uniapp/member/open_member.png')" class="title" mode="heightFix" /> <image :src="$util.img('public/uniapp/member/open_member.png')" class="title" mode="heightFix" show-menu-by-longpress/>
<view class="desc">开通可享更多权益</view> <view class="desc">开通可享更多权益</view>
</view> </view>
<view class="super-text"> <view class="super-text">
@@ -130,7 +130,7 @@
<view class="member-info-style4" v-show="value.style == 4"> <view class="member-info-style4" v-show="value.style == 4">
<view class="super-member" v-if="superMember" :style="superMemberStyle"> <view class="super-member" v-if="superMember" :style="superMemberStyle">
<view class="super-info"> <view class="super-info">
<image :src="$util.img('app/component/view/member_info/img/style_4_vip_huangguan.png')" class="title" mode="widthFix" /> <image :src="$util.img('app/component/view/member_info/img/style_4_vip_huangguan.png')" class="title" mode="widthFix" show-menu-by-longpress/>
<view class="desc">开通可享更多权益</view> <view class="desc">开通可享更多权益</view>
</view> </view>
<view class="super-text" :class="{ 'more' : memberInfo && memberInfo.member_level_type }"> <view class="super-text" :class="{ 'more' : memberInfo && memberInfo.member_level_type }">
@@ -203,7 +203,7 @@
<text class="label">头像</text> <text class="label">头像</text>
<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> <button open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head" <image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head"
@error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" /> @error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
<text class="iconfont icon-right color-tip"></text> <text class="iconfont icon-right color-tip"></text>
</button> </button>
</view> </view>
@@ -218,7 +218,7 @@
<button open-type="getAuthorize" scope="userInfo" @getAuthorize="aliappGetUserinfo" <button open-type="getAuthorize" scope="userInfo" @getAuthorize="aliappGetUserinfo"
:plain="true" class="border-0"> :plain="true" class="border-0">
<image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head" <image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head"
@error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" /> @error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
<text class="iconfont icon-right color-tip"></text> <text class="iconfont icon-right color-tip"></text>
</button> </button>
</view> </view>

View File

@@ -6,7 +6,7 @@
style="margin-right: 10rpx;"> style="margin-right: 10rpx;">
<view class="icon-block"> <view class="icon-block">
<template v-if="value.style == 3"> <template v-if="value.style == 3">
<image :src="$util.img('public/uniapp/member/order/wait_pay.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/member/order/wait_pay.png')" mode="widthFix" show-menu-by-longpress/>
<view class="icon-shade" <view class="icon-shade"
:style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_pay_shade.png') + ')'"> :style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_pay_shade.png') + ')'">
</view> </view>
@@ -25,7 +25,7 @@
style="margin-right: 10rpx;"> style="margin-right: 10rpx;">
<view class="icon-block"> <view class="icon-block">
<template v-if="value.style == 3"> <template v-if="value.style == 3">
<image :src="$util.img('public/uniapp/member/order/wait_send.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/member/order/wait_send.png')" mode="widthFix" show-menu-by-longpress></image>
<view class="icon-shade" <view class="icon-shade"
:style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_send_shade.png') + ')'"> :style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_send_shade.png') + ')'">
</view> </view>
@@ -44,7 +44,7 @@
style="margin-right: 10rpx;"> style="margin-right: 10rpx;">
<view class="icon-block"> <view class="icon-block">
<template v-if="value.style == 3"> <template v-if="value.style == 3">
<image :src="$util.img('public/uniapp/member/order/wait_confirm.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/member/order/wait_confirm.png')" mode="widthFix" show-menu-by-longpress/>
<view class="icon-shade" <view class="icon-shade"
:style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_confirm_shade.png') + ')'"> :style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_confirm_shade.png') + ')'">
</view> </view>
@@ -63,7 +63,7 @@
style="margin-right: 10rpx;"> style="margin-right: 10rpx;">
<view class="icon-block"> <view class="icon-block">
<template v-if="value.style == 3"> <template v-if="value.style == 3">
<image :src="$util.img('public/uniapp/member/order/wait_use.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/member/order/wait_use.png')" mode="widthFix" show-menu-by-longpress/>
<view class="icon-shade" <view class="icon-shade"
:style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_rate_shade.png') + ')'"> :style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/wait_rate_shade.png') + ')'">
</view> </view>
@@ -79,7 +79,7 @@
<view class="item-wrap" @tap.stop="redirect('/pages_tool/order/activist')"> <view class="item-wrap" @tap.stop="redirect('/pages_tool/order/activist')">
<view class="icon-block"> <view class="icon-block">
<template v-if="value.style == 3"> <template v-if="value.style == 3">
<image :src="$util.img('public/uniapp/member/order/refunding.png')" mode="widthFix" /> <image :src="$util.img('public/uniapp/member/order/refunding.png')" mode="widthFix" show-menu-by-longpress/>
<view class="icon-shade" <view class="icon-shade"
:style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/refunding_shade.png') + ')'"> :style="'-webkit-mask-image: url(' + $util.img('public/uniapp/member/order/refunding_shade.png') + ')'">
</view> </view>

View File

@@ -7,7 +7,7 @@
:style="itemCss" @tap.stop="handlerClick(item)"> :style="itemCss" @tap.stop="handlerClick(item)">
<view class="merch-img"> <view class="merch-img">
<image class="cover-img" :src="$util.img(item.merch_image)" mode="widthFix" <image class="cover-img" :src="$util.img(item.merch_image)" mode="widthFix"
@error="imgError(index)" /> @error="imgError(index)" show-menu-by-longpress />
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
<text class="title">{{ item.merch_name }}</text> <text class="title">{{ item.merch_name }}</text>
@@ -30,7 +30,7 @@
:style="{ fontSize: value.imageSize * 2 + 'rpx', width: value.imageSize * 2 + 'rpx', height: value.imageSize * 2 + 'rpx' }"> :style="{ fontSize: value.imageSize * 2 + 'rpx', width: value.imageSize * 2 + 'rpx', height: value.imageSize * 2 + 'rpx' }">
<image <image
:src="$util.img(item.merch_image) || $util.img('public/uniapp/default_img/goods.png')" :src="$util.img(item.merch_image) || $util.img('public/uniapp/default_img/goods.png')"
mode="aspectFill" :show-menu-by-longpress="true" mode="aspectFill" show-menu-by-longpress
style="max-width: 80rpx; max-height: 80rpx; border-radius: 50rpx;" /> style="max-width: 80rpx; max-height: 80rpx; border-radius: 50rpx;" />
</view> </view>
<text class="graphic-text" <text class="graphic-text"

View File

@@ -25,10 +25,10 @@
<view class="notes-img-wrap" :class="{ 'notes-img-wrap-list': item.cover_type == 1 }"> <view class="notes-img-wrap" :class="{ 'notes-img-wrap-list': item.cover_type == 1 }">
<image v-if="item.cover_type == 0" :src="$util.img(item.img)" @error="imageError(i)" <image v-if="item.cover_type == 0" :src="$util.img(item.img)" @error="imageError(i)"
mode="aspectFill" class="notes-item-image" /> mode="aspectFill" class="notes-item-image" show-menu-by-longpress/>
<image v-else v-for="(imgItem, imgIndex) in item.img" :key="imgIndex" <image v-else v-for="(imgItem, imgIndex) in item.img" :key="imgIndex"
:src="$util.img(imgItem)" @error="imageError(i)" mode="aspectFit" :src="$util.img(imgItem)" @error="imageError(i)" mode="aspectFit"
class="notes-item-image-li" /> class="notes-item-image-li" show-menu-by-longpress/>
</view> </view>
<view class="notes-item-con"> <view class="notes-item-con">

View File

@@ -3,9 +3,9 @@
<view class="fui-picture"> <view class="fui-picture">
<view v-for="(item, index) in value.list" style="line-height: 0;"> <view v-for="(item, index) in value.list" style="line-height: 0;">
<image mode="widthFix" style="width: 100%;height:auto" :src="$util.img(item.imageUrl)" <image mode="widthFix" style="width: 100%;height:auto" :src="$util.img(item.imageUrl)"
v-if="item.link.wap_url" @tap.stop="handlerClick(item)"></image> v-if="item.link.wap_url" @tap.stop="handlerClick(item)" show-menu-by-longpress></image>
<image mode="widthFix" style="width: 100%;height:auto" :src="$util.img(item.imageUrl)" v-else <image mode="widthFix" style="width: 100%;height:auto" :src="$util.img(item.imageUrl)" v-else
@tap.stop="handlerClick(item)"></image> @tap.stop="handlerClick(item)" show-menu-by-longpress></image>
</view> </view>
<!-- <view wx:if="{{!childitem.linkurl}}" bindtap="previewImg" data-src="{{childitem.imgurl}}" style="padding:{{diyitem.style.paddingtop==0?0:diyitem.style.paddingtop+'rpx'}} {{diyitem.style.paddingleft==0?0:diyitem.style.paddingleft+'rpx'}}" wx:for="{{diyitem.data}}" wx:for-index="childid" wx:for-item="childitem" wx:key="{{childid}}"> <!-- <view wx:if="{{!childitem.linkurl}}" bindtap="previewImg" data-src="{{childitem.imgurl}}" style="padding:{{diyitem.style.paddingtop==0?0:diyitem.style.paddingtop+'rpx'}} {{diyitem.style.paddingleft==0?0:diyitem.style.paddingleft+'rpx'}}" wx:for="{{diyitem.data}}" wx:for-index="childid" wx:for-item="childitem" wx:key="{{childid}}">
<image mode="widthFix" src="{{childitem.imgurl}}" style="{{bannerheight?'height:'+bannerheight+'px':'height:auto'}}"></image> <image mode="widthFix" src="{{childitem.imgurl}}" style="{{bannerheight?'height:'+bannerheight+'px':'height:auto'}}"></image>

View File

@@ -7,7 +7,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content" <view class="content"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.priceStyle.lineControl || value.btnStyle.control"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.priceStyle.lineControl || value.btnStyle.control">
@@ -66,7 +66,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]" <view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">
@@ -117,7 +117,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(dataIndex)" /> @error="imageError(dataIndex)" show-menu-by-longpress/>
</view> </view>
<view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]" <view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">

View File

@@ -10,18 +10,18 @@
:style="{ fontSize: value.titleStyle.fontSize * 2 + 'rpx', color: value.titleStyle.textColor, fontWeight: value.titleStyle.fontWeight ? 'bold' : '' }"> :style="{ fontSize: value.titleStyle.fontSize * 2 + 'rpx', color: value.titleStyle.textColor, fontWeight: value.titleStyle.fontWeight ? 'bold' : '' }">
{{ value.titleStyle.leftText }} {{ value.titleStyle.leftText }}
</view> </view>
<image v-else class="left-img" :src="$util.img(value.titleStyle.leftImg)" mode="heightFix" /> <image v-else class="left-img" :src="$util.img(value.titleStyle.leftImg)" mode="heightFix" show-menu-by-longpress/>
<view class="head-content"> <view class="head-content">
<view class="img-warp"> <view class="img-warp">
<block v-if="headData && headData.member_list && headData.member_list.length"> <block v-if="headData && headData.member_list && headData.member_list.length">
<image v-for="(item, index) in headData.member_list" :key="index" <image v-for="(item, index) in headData.member_list" :key="index"
:src="$util.img(item.member_img || 'public/static/img/default_img/square.png')" :src="$util.img(item.member_img || 'public/static/img/default_img/square.png')"
mode="aspectFill" @error="headImageError(index)" /> mode="aspectFill" @error="headImageError(index)" show-menu-by-longpress/>
</block> </block>
<block v-else> <block v-else>
<image :src="$util.img('public/static/img/default_img/square.png')" mode="aspectFill" /> <image :src="$util.img('public/static/img/default_img/square.png')" mode="aspectFill" show-menu-by-longpress/>
<image :src="$util.img('public/static/img/default_img/square.png')" mode="aspectFill" /> <image :src="$util.img('public/static/img/default_img/square.png')" mode="aspectFill" show-menu-by-longpress/>
<image :src="$util.img('public/static/img/default_img/square.png')" mode="aspectFill" /> <image :src="$util.img('public/static/img/default_img/square.png')" mode="aspectFill" show-menu-by-longpress/>
</block> </block>
</view> </view>
<view :style="{ color: value.titleStyle.textColor }"> <view :style="{ color: value.titleStyle.textColor }">
@@ -43,7 +43,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content" <view class="content"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.priceStyle.lineControl || value.btnStyle.control"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.priceStyle.lineControl || value.btnStyle.control">
@@ -105,7 +105,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
<view v-if="value.groupStyle.control && value.style == 'style-1'" class="num" :style="{ <view v-if="value.groupStyle.control && value.style == 'style-1'" class="num" :style="{
color: value.theme == 'diy' ? value.groupStyle.color : '', color: value.theme == 'diy' ? value.groupStyle.color : '',
background: value.theme == 'diy' ? 'linear-gradient(to right,' + value.groupStyle.bgColorStart + ',' + value.groupStyle.bgColorEnd + ')' : '' background: value.theme == 'diy' ? 'linear-gradient(to right,' + value.groupStyle.bgColorStart + ',' + value.groupStyle.bgColorEnd + ')' : ''
@@ -165,7 +165,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(dataIndex)" /> @error="imageError(dataIndex)" show-menu-by-longpress/>
<view v-if="value.groupStyle.control && value.style != 'style-2'" class="num" :style="{ <view v-if="value.groupStyle.control && value.style != 'style-2'" class="num" :style="{
color: value.theme == 'diy' ? value.groupStyle.color : '', color: value.theme == 'diy' ? value.groupStyle.color : '',
background: value.theme == 'diy' ? 'linear-gradient(to right,' + value.groupStyle.bgColorStart + ',' + value.groupStyle.bgColorEnd + ')' : '' background: value.theme == 'diy' ? 'linear-gradient(to right,' + value.groupStyle.bgColorStart + ',' + value.groupStyle.bgColorEnd + ')' : ''

View File

@@ -7,7 +7,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content" <view class="content"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.btnStyle.control"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl || value.btnStyle.control">
@@ -45,7 +45,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]" <view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">
@@ -79,7 +79,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(dataIndex)" /> @error="imageError(dataIndex)" show-menu-by-longpress/>
</view> </view>
<view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]" <view :class="['content', { 'multi-content': value.nameLineMode == 'multiple' }]"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">

View File

@@ -10,7 +10,7 @@
<view class="quick-img" v-if="item.imageUrl || item.icon"> <view class="quick-img" v-if="item.imageUrl || item.icon">
<image v-if="item.iconType == 'img'" <image v-if="item.iconType == 'img'"
:src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')"
mode="heightFix" :show-menu-by-longpress="true"></image> mode="heightFix" show-menu-by-longpress ></image>
<diy-icon v-if="item.iconType == 'icon'" :icon="item.icon" <diy-icon v-if="item.iconType == 'icon'" :icon="item.icon"
:value="item.style ? item.style : null" :style="{ fontSize: '60rpx' }"></diy-icon> :value="item.style ? item.style : null" :style="{ fontSize: '60rpx' }"></diy-icon>
</view> </view>

View File

@@ -11,7 +11,7 @@
<view :class="['item', value.mode]" @tap.stop="handlerClick(value.list[0].link, value.list[0].imageUrl)" <view :class="['item', value.mode]" @tap.stop="handlerClick(value.list[0].link, value.list[0].imageUrl)"
:style="{ marginRight: value.imageGap * 2 + 'rpx', width: list[0].imgWidth, height: list[0].imgHeight + 'px' }"> :style="{ marginRight: value.imageGap * 2 + 'rpx', width: list[0].imgWidth, height: list[0].imgHeight + 'px' }">
<image :src="$util.img(value.list[0].imageUrl)" :mode="list[0].imageMode || 'scaleToFill'" <image :src="$util.img(value.list[0].imageUrl)" :mode="list[0].imageMode || 'scaleToFill'"
:style="list[0].pageItemStyle" :show-menu-by-longpress="true" /> :style="list[0].pageItemStyle" show-menu-by-longpress />
</view> </view>
</view> </view>
@@ -21,7 +21,7 @@
<view :key="index" :class="['item', value.mode]" @tap.stop="handlerClick(item.link, item.imageUrl)" <view :key="index" :class="['item', value.mode]" @tap.stop="handlerClick(item.link, item.imageUrl)"
:style="{ marginBottom: value.imageGap * 2 + 'rpx', width: item.imgWidth, height: item.imgHeight + 'px' }"> :style="{ marginBottom: value.imageGap * 2 + 'rpx', width: item.imgWidth, height: item.imgHeight + 'px' }">
<image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'" <image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'"
:style="item.pageItemStyle" :show-menu-by-longpress="true" /> :style="item.pageItemStyle" show-menu-by-longpress />
</view> </view>
</template> </template>
</template> </template>
@@ -35,7 +35,7 @@
:style="{ marginRight: value.imageGap * 2 + 'rpx', width: list[0].imgWidth, height: list[0].imgHeight + 'px' }" :style="{ marginRight: value.imageGap * 2 + 'rpx', width: list[0].imgWidth, height: list[0].imgHeight + 'px' }"
@tap.stop="handlerClick(value.list[0].link, value.list[0].imageUrl)"> @tap.stop="handlerClick(value.list[0].link, value.list[0].imageUrl)">
<image :src="$util.img(value.list[0].imageUrl)" :mode="list[0].imageMode || 'scaleToFill'" <image :src="$util.img(value.list[0].imageUrl)" :mode="list[0].imageMode || 'scaleToFill'"
:style="list[0].pageItemStyle" :show-menu-by-longpress="true" /> :style="list[0].pageItemStyle" show-menu-by-longpress />
</view> </view>
</view> </view>
@@ -44,7 +44,7 @@
:style="{ marginBottom: value.imageGap * 2 + 'rpx', width: list[1].imgWidth, height: list[1].imgHeight + 'px' }" :style="{ marginBottom: value.imageGap * 2 + 'rpx', width: list[1].imgWidth, height: list[1].imgHeight + 'px' }"
@tap.stop="handlerClick(value.list[1].link, value.list[1].imageUrl)"> @tap.stop="handlerClick(value.list[1].link, value.list[1].imageUrl)">
<image :src="$util.img(value.list[1].imageUrl)" :mode="list[1].imageMode || 'scaleToFill'" <image :src="$util.img(value.list[1].imageUrl)" :mode="list[1].imageMode || 'scaleToFill'"
:style="list[1].pageItemStyle" :show-menu-by-longpress="true" /> :style="list[1].pageItemStyle" show-menu-by-longpress />
</view> </view>
<view class="template-bottom"> <view class="template-bottom">
<template v-for="(item, index) in list"> <template v-for="(item, index) in list">
@@ -55,7 +55,7 @@
height: item.imgHeight + 'px' height: item.imgHeight + 'px'
}"> }">
<image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'" <image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'"
:style="item.pageItemStyle" :show-menu-by-longpress="true" /> :style="item.pageItemStyle" show-menu-by-longpress />
</view> </view>
</template> </template>
</template> </template>
@@ -68,7 +68,7 @@
@tap.stop="handlerClick(item.link, item.imageUrl)" @tap.stop="handlerClick(item.link, item.imageUrl)"
:style="{ marginRight: value.imageGap * 2 + 'rpx', marginBottom: value.imageGap * 2 + 'rpx', width: item.widthStyle, height: item.imgHeight + 'px' }"> :style="{ marginRight: value.imageGap * 2 + 'rpx', marginBottom: value.imageGap * 2 + 'rpx', width: item.widthStyle, height: item.imgHeight + 'px' }">
<image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'" <image :src="$util.img(item.imageUrl)" :mode="item.imageMode || 'scaleToFill'"
:style="item.pageItemStyle" :show-menu-by-longpress="true" /> :style="item.pageItemStyle" show-menu-by-longpress />
</view> </view>
</template> </template>
</view> </view>

View File

@@ -5,7 +5,7 @@
@tap.stop="handlerSearchClick"> @tap.stop="handlerSearchClick">
<block v-if="[1, 2].includes(value.searchStyle)"> <block v-if="[1, 2].includes(value.searchStyle)">
<view class="img" v-if="value.searchStyle == 2 && value.iconType == 'img'"> <view class="img" v-if="value.searchStyle == 2 && value.iconType == 'img'">
<image :src="$util.img(value.imageUrl)" mode="heightFix" /> <image :src="$util.img(value.imageUrl)" mode="heightFix" show-menu-by-longpress/>
</view> </view>
<diy-icon class="icon" v-if="value.searchStyle == 2 && value.iconType == 'icon'" :icon="value.icon" <diy-icon class="icon" v-if="value.searchStyle == 2 && value.iconType == 'icon'" :icon="value.icon"
:value="value.style ? value.style : 'null'" :value="value.style ? value.style : 'null'"
@@ -32,7 +32,7 @@
</view> </view>
<view class="img" v-if="value.iconType == 'img'" <view class="img" v-if="value.iconType == 'img'"
@tap.stop="handlerRedirectToClick(value.searchLink)"> @tap.stop="handlerRedirectToClick(value.searchLink)">
<image :src="$util.img(value.imageUrl)" mode="heightFix" /> <image :src="$util.img(value.imageUrl)" mode="heightFix" show-menu-by-longpress/>
</view> </view>
<diy-icon class="icon" v-if="value.iconType == 'icon'" :icon="value.icon" <diy-icon class="icon" v-if="value.iconType == 'icon'" :icon="value.icon"
:value="value.style ? value.style : 'null'" :value="value.style ? value.style : 'null'"

View File

@@ -11,7 +11,7 @@
:style="{ fontSize: value.titleStyle.fontSize * 2 + 'rpx', color: value.titleStyle.textColor, fontWeight: value.titleStyle.fontWeight ? 'bold' : '' }"> :style="{ fontSize: value.titleStyle.fontSize * 2 + 'rpx', color: value.titleStyle.textColor, fontWeight: value.titleStyle.fontWeight ? 'bold' : '' }">
{{ value.titleStyle.leftText }} {{ value.titleStyle.leftText }}
</view> </view>
<image v-else class="title-img" :src="$util.img(value.titleStyle.leftImg)" mode="heightFix" /> <image v-else class="title-img" :src="$util.img(value.titleStyle.leftImg)" mode="heightFix" show-menu-by-longpress/>
<text v-if="value.titleStyle.style == 'style-2' && isFuture" <text v-if="value.titleStyle.style == 'style-2' && isFuture"
:style="{ color: value.titleStyle.textColor }" class="seckill-style-name">距离开始</text> :style="{ color: value.titleStyle.textColor }" class="seckill-style-name">距离开始</text>
<view class="time" :style="{ background: value.titleStyle.timeBgColor }"> <view class="time" :style="{ background: value.titleStyle.timeBgColor }">
@@ -40,7 +40,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content"> <view class="content">
<view class="goods-name" v-if="value.goodsNameStyle.control" <view class="goods-name" v-if="value.goodsNameStyle.control"
@@ -57,7 +57,7 @@
}"> }">
<image v-if="value.style == 'style-2'" class="progress-bar" <image v-if="value.style == 'style-2'" class="progress-bar"
:src="$util.img('public/uniapp/seckill/progress_bar_01.png')" :src="$util.img('public/uniapp/seckill/progress_bar_01.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress/>
</view> </view>
</view> </view>
<view class="num" <view class="num"
@@ -110,7 +110,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content" v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> <view class="content" v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">
<view class="goods-name" v-if="value.goodsNameStyle.control" <view class="goods-name" v-if="value.goodsNameStyle.control"
@@ -155,7 +155,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(index)" /> @error="imageError(index)" show-menu-by-longpress/>
</view> </view>
<view class="content" v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> <view class="content" v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">
<view class="goods-name" v-if="value.goodsNameStyle.control" <view class="goods-name" v-if="value.goodsNameStyle.control"
@@ -166,7 +166,7 @@
<view class="discount-price" v-if="value.priceStyle.mainControl"> <view class="discount-price" v-if="value.priceStyle.mainControl">
<image v-if="value.style == 'style-2'" class="tag" <image v-if="value.style == 'style-2'" class="tag"
:src="$util.img('addon/seckill/component/view/seckill/img/style_4_tag.png')" :src="$util.img('addon/seckill/component/view/seckill/img/style_4_tag.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress/>
<text class="unit price-style small" <text class="unit price-style small"
:style="{ color: value.theme == 'diy' ? value.priceStyle.mainColor : '' }">¥</text> :style="{ color: value.theme == 'diy' ? value.priceStyle.mainColor : '' }">¥</text>
<text class="price price-style large" <text class="price price-style large"
@@ -194,7 +194,7 @@
<view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"> <view class="img-wrap" :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }">
<image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }" <image :style="{ borderRadius: value.imgAroundRadius * 2 + 'rpx' }"
:src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix" :src="$util.img(item.goods_image, { size: 'mid' })" mode="widthFix"
@error="imageError(dataIndex, pageIndex)" /> @error="imageError(dataIndex, pageIndex)" show-menu-by-longpress/>
</view> </view>
<view class="content" <view class="content"
v-if="value.goodsNameStyle.control || value.priceStyle.mainControl"> v-if="value.goodsNameStyle.control || value.priceStyle.mainControl">
@@ -206,7 +206,7 @@
<view class="discount-price" v-if="value.priceStyle.mainControl"> <view class="discount-price" v-if="value.priceStyle.mainControl">
<image v-if="value.style == 'style-2'" class="tag" <image v-if="value.style == 'style-2'" class="tag"
:src="$util.img('addon/seckill/component/view/seckill/img/style_4_tag.png')" :src="$util.img('addon/seckill/component/view/seckill/img/style_4_tag.png')"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress/>
<text class="unit price-style small" <text class="unit price-style small"
:style="{ color: value.theme == 'diy' ? value.priceStyle.mainColor : '' }">¥</text> :style="{ color: value.theme == 'diy' ? value.priceStyle.mainColor : '' }">¥</text>
<text class="price price-style large" <text class="price price-style large"

View File

@@ -22,8 +22,8 @@
</view> </view>
<view class="store-image" @tap.stop="selectStore()"> <view class="store-image" @tap.stop="selectStore()">
<image :src="$util.img(globalStoreInfo.store_image)" <image :src="$util.img(globalStoreInfo.store_image)"
v-if="globalStoreInfo && globalStoreInfo.store_image" mode="aspectFill"></image> v-if="globalStoreInfo && globalStoreInfo.store_image" mode="aspectFill" show-menu-by-longpress></image>
<image :src="$util.getDefaultImage().store" v-else mode="aspectFill"></image> <image :src="$util.getDefaultImage().store" v-else mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
</view> </view>
</block> </block>
@@ -33,8 +33,8 @@
<view class="store-info"> <view class="store-info">
<view class="store-image" @tap.stop="selectStore()"> <view class="store-image" @tap.stop="selectStore()">
<image :src="$util.img(globalStoreInfo.store_image)" <image :src="$util.img(globalStoreInfo.store_image)"
v-if="globalStoreInfo && globalStoreInfo.store_image" mode="aspectFill"></image> v-if="globalStoreInfo && globalStoreInfo.store_image" mode="aspectFill" show-menu-by-longpress></image>
<image :src="$util.getDefaultImage().store" v-else mode="aspectFill"></image> <image :src="$util.getDefaultImage().store" v-else mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
<view class="info-box" :style="{ color: value.textColor }"> <view class="info-box" :style="{ color: value.textColor }">
<block v-if="globalStoreInfo && globalStoreInfo.store_id"> <block v-if="globalStoreInfo && globalStoreInfo.store_id">

View File

@@ -30,12 +30,14 @@
<!-- 内容区域 --> <!-- 内容区域 -->
<view class="tab-content" :style="[contentStyle]"> <view class="tab-content" :style="[contentStyle]">
<view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)" class="tab-panel" <view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)"
class="tab-panel"
:class="{ active: activeTab === idx }" :class="{ active: activeTab === idx }"
v-if="activeTab === idx"
:style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]"> :style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]">
<view v-if="tab.components && tab.components.length > 0" class="tab-components"> <view v-if="tab.components && tab.components.length > 0" class="tab-components">
<!-- 渲染每个标签下的组件 --> <!-- 渲染每个标签下的组件 -->
<diy-group v-if="tab.components" :diyData="{ value: tab.components, global: diyGlobal, tabIndex: idx }" <diy-group :diyData="{ value: tab.components, global: diyGlobal, tabIndex: idx }"
:scrollTop="tab.scrollTop || 0" /> :scrollTop="tab.scrollTop || 0" />
</view> </view>
</view> </view>
@@ -46,12 +48,14 @@
<template v-else-if="mergedValue.tabPosition === 'bottom'"> <template v-else-if="mergedValue.tabPosition === 'bottom'">
<!-- 内容区域 --> <!-- 内容区域 -->
<view class="tab-content" :style="[contentStyle]"> <view class="tab-content" :style="[contentStyle]">
<view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)" class="tab-panel" <view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)"
class="tab-panel"
:class="{ active: activeTab === idx }" :class="{ active: activeTab === idx }"
v-if="activeTab === idx"
:style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]"> :style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]">
<view v-if="tab.components && tab.components.length > 0" class="tab-components"> <view v-if="tab.components && tab.components.length > 0" class="tab-components">
<!-- 渲染每个标签下的组件 --> <!-- 渲染每个标签下的组件 -->
<diy-group v-if="tab.components" :diyData="{ value: tab.components, global: diyGlobal, tabIndex: idx }" <diy-group :diyData="{ value: tab.components, global: diyGlobal, tabIndex: idx }"
:scrollTop="tab.scrollTop || 0" /> :scrollTop="tab.scrollTop || 0" />
</view> </view>
</view> </view>
@@ -110,12 +114,14 @@
<!-- 右侧内容区域 --> <!-- 右侧内容区域 -->
<view class="tab-content" :style="[contentStyle]"> <view class="tab-content" :style="[contentStyle]">
<view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)" class="tab-panel" <view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)"
class="tab-panel"
:class="{ active: activeTab === idx }" :class="{ active: activeTab === idx }"
v-if="activeTab === idx"
:style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]"> :style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]">
<view v-if="tab.components && tab.components.length > 0" class="tab-components"> <view v-if="tab.components && tab.components.length > 0" class="tab-components">
<!-- 渲染每个标签下的组件 --> <!-- 渲染每个标签下的组件 -->
<diy-group v-if="tab.components" :diyData="{ value: tab.components, global: diyGlobal }" <diy-group :diyData="{ value: tab.components, global: diyGlobal }"
:scrollTop="tab.scrollTop || 0" /> :scrollTop="tab.scrollTop || 0" />
</view> </view>
</view> </view>
@@ -128,12 +134,14 @@
<view class="tab-layout-horizontal"> <view class="tab-layout-horizontal">
<!-- 左侧内容区域 --> <!-- 左侧内容区域 -->
<view class="tab-content" :style="[contentStyle]"> <view class="tab-content" :style="[contentStyle]">
<view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)" class="tab-panel" <view v-for="(tab, idx) in mergedValue.tabs" :key="getPanelKey(tab, idx)"
class="tab-panel"
:class="{ active: activeTab === idx }" :class="{ active: activeTab === idx }"
v-if="activeTab === idx"
:style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]"> :style="[panelStyle, activeTab === idx ? panelActiveStyle : {}]">
<view v-if="tab.components && tab.components.length > 0" class="tab-components"> <view v-if="tab.components && tab.components.length > 0" class="tab-components">
<!-- 渲染每个标签下的组件 --> <!-- 渲染每个标签下的组件 -->
<diy-group v-if="tab.components" :diyData="{ value: tab.components, global: diyGlobal }" <diy-group :diyData="{ value: tab.components, global: diyGlobal }"
:scrollTop="tab.scrollTop || 0" /> :scrollTop="tab.scrollTop || 0" />
</view> </view>
</view> </view>
@@ -1135,7 +1143,6 @@ export default {
// ===== 标签面板样式 ===== // ===== 标签面板样式 =====
.tab-panel { .tab-panel {
display: none;
opacity: 0; opacity: 0;
transform: translateY(8px); transform: translateY(8px);
transition: opacity var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out), transform var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out); transition: opacity var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out), transform var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out);
@@ -1143,10 +1150,10 @@ export default {
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
min-height: 200px; min-height: 200px;
// 显示/隐藏由 v-show 控制,不使用 display: none
// 激活状态 // 激活状态
&.active { &.active {
display: block;
opacity: 1; opacity: 1;
transform: translateY(0); transform: translateY(0);
transition: opacity var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out), transform var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out); transition: opacity var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out), transform var(--animation-duration, 0.3s) var(--animation-timing-function, ease-in-out);

View File

@@ -89,14 +89,14 @@
<view class="style9-box"> <view class="style9-box">
<view class="style9-center"> <view class="style9-center">
<view class="left-img"> <view class="left-img">
<image :src="$util.img('public/uniapp/diy/style9-1.png')" /> <image :src="$util.img('public/uniapp/diy/style9-1.png')" show-menu-by-longpress/>
</view> </view>
<text class="style9-title" <text class="style9-title"
:style="{ fontSize: value.fontSize * 2 + 'rpx', color: value.textColor, fontWeight: value.fontWeight }"> :style="{ fontSize: value.fontSize * 2 + 'rpx', color: value.textColor, fontWeight: value.fontWeight }">
{{ value.text }} {{ value.text }}
</text> </text>
<view class="right-img"> <view class="right-img">
<image :src="$util.img('public/uniapp/diy/style9-2.png')" /> <image :src="$util.img('public/uniapp/diy/style9-2.png')" show-menu-by-longpress/>
</view> </view>
<view class="style9-more" v-if="value.more.isShow" :style="{ color: value.more.color }" <view class="style9-more" v-if="value.more.isShow" :style="{ color: value.more.color }"
@tap.stop="handlerClick(value.more.link)"> @tap.stop="handlerClick(value.more.link)">
@@ -114,7 +114,7 @@
<view class="style10-box"> <view class="style10-box">
<view class="style10-center"> <view class="style10-center">
<view class="left-img"> <view class="left-img">
<image :src="$util.img('public/uniapp/diy/style10-1.png')"></image> <image :src="$util.img('public/uniapp/diy/style10-1.png')" show-menu-by-longpress></image>
</view> </view>
<text class="style10-title" v-if="$util.img('public/uniapp/diy/style10-3.png')" :style="{ <text class="style10-title" v-if="$util.img('public/uniapp/diy/style10-3.png')" :style="{
backgroundImage: 'url(' + $util.img('public/uniapp/diy/style10-3.png') + ')', backgroundImage: 'url(' + $util.img('public/uniapp/diy/style10-3.png') + ')',
@@ -128,7 +128,7 @@
{{ value.text }} {{ value.text }}
</text> </text>
<view class="right-img"> <view class="right-img">
<image :src="$util.img('public/uniapp/diy/style10-2.png')"></image> <image :src="$util.img('public/uniapp/diy/style10-2.png')" show-menu-by-longpress></image>
</view> </view>
<view class="style10-more" v-if="value.more.isShow" :style="{ color: value.more.color }" <view class="style10-more" v-if="value.more.isShow" :style="{ color: value.more.color }"
@tap.stop="handlerClick(value.more.link)"> @tap.stop="handlerClick(value.more.link)">
@@ -164,10 +164,10 @@
</view> </view>
<image class="center-img" :src="$util.img('public/uniapp/diy/style11-1.png')" <image class="center-img" :src="$util.img('public/uniapp/diy/style11-1.png')"
mode="widthFix"></image> mode="widthFix" show-menu-by-longpress></image>
<image class="right-img" :src="$util.img('public/uniapp/diy/style11-2.png')" <image class="right-img" :src="$util.img('public/uniapp/diy/style11-2.png')"
mode="widthFix"></image> mode="widthFix" show-menu-by-longpress></image>
</view> </view>
</view> </view>
</view> </view>
@@ -190,7 +190,7 @@
</view> </view>
</view> </view>
<view class="style13" v-else-if="value.style == 'style-13'"> <view class="style13" v-else-if="value.style == 'style-13'">
<image class="left-img" :src="$util.img('public/uniapp/diy/style13-1.png')" mode="widthFix"></image> <image class="left-img" :src="$util.img('public/uniapp/diy/style13-1.png')" mode="widthFix" show-menu-by-longpress></image>
<view class="style13-title" :style="{ <view class="style13-title" :style="{
fontSize: value.fontSize * 2 + 'rpx', fontSize: value.fontSize * 2 + 'rpx',
color: value.textColor, color: value.textColor,
@@ -198,7 +198,7 @@
}"> }">
{{ value.text }} {{ value.text }}
</view> </view>
<image class="right-img" :src="$util.img('public/uniapp/diy/style13-1.png')" mode="widthFix"></image> <image class="right-img" :src="$util.img('public/uniapp/diy/style13-1.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="style14" v-else-if="value.style == 'style-14'"> <view class="style14" v-else-if="value.style == 'style-14'">
<view class="title-wrap"> <view class="title-wrap">

View File

@@ -6,10 +6,10 @@
<view v-for="(item, index) in value.list" :key="index" class="goods-item" @tap="showVideo(item)"> <view v-for="(item, index) in value.list" :key="index" class="goods-item" @tap="showVideo(item)">
<view class="goods-img-wrap"> <view class="goods-img-wrap">
<image class="goods-img" style="border-radius:10rpx 10rpx 0 0;" :src="$util.img(item.imageUrl)" <image class="goods-img" style="border-radius:10rpx 10rpx 0 0;" :src="$util.img(item.imageUrl)"
mode="widthFix" @error="imgError(index)"></image> mode="widthFix" @error="imgError(index)" show-menu-by-longpress ></image>
<view style="position:absolute;top:10rpx;right:10rpx;"> <view style="position:absolute;top:10rpx;right:10rpx;">
<image style="width:30rpx;" :src="$util.img('addon/personnel/shop/view/enterprise/play.png')" <image style="width:30rpx;" :src="$util.img('addon/personnel/shop/view/enterprise/play.png')"
mode="widthFix"></image> mode="widthFix" show-menu-by-longpress ></image>
</view> </view>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
@@ -34,10 +34,10 @@
'max-height': '200rpx;', 'max-height': '200rpx;',
'border-radius': '8rpx;' 'border-radius': '8rpx;'
}" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" mode="widthFix" }" :src="$util.img(item.imageUrl) || $util.img('public/uniapp/default_img/goods.png')" mode="widthFix"
:show-menu-by-longpress="true"></image> show-menu-by-longpress ></image>
<view style="position:absolute;top:10rpx;right:10rpx;"> <view style="position:absolute;top:10rpx;right:10rpx;">
<image style="width:30rpx;" <image style="width:30rpx;"
:src="$util.img('addon/personnel/shop/view/enterprise/play.png')" mode="widthFix"> :src="$util.img('addon/personnel/shop/view/enterprise/play.png')" mode="widthFix" show-menu-by-longpress >
</image> </image>
</view> </view>
</view> </view>

View File

@@ -13,14 +13,14 @@
<view class="message-item " :class="message.isItMe ? 'right' : 'left'"> <view class="message-item " :class="message.isItMe ? 'right' : 'left'">
<block v-if="message.isItMe"> <block v-if="message.isItMe">
<view class="head_img"> <view class="head_img">
<image class="img" :src="myHeadImg" v-if="myHeadImg" @error="myHeadImgError" mode="aspectFit"/> <image class="img" :src="myHeadImg" v-if="myHeadImg" @error="myHeadImgError" mode="aspectFit" show-menu-by-longpress/>
<image class="img" :src="defaultHead" mode="aspectFit" v-else/> <image class="img" :src="defaultHead" mode="aspectFit" v-else show-menu-by-longpress/>
</view> </view>
</block> </block>
<block v-else> <block v-else>
<view class="head_img"> <view class="head_img">
<image class="img" :src="avatar" mode="aspectFit" v-if="avatar"></image> <image class="img" :src="avatar" mode="aspectFit" v-if="avatar" show-menu-by-longpress></image>
<image class="img" :src="defaultHead" mode="aspectFit" v-else></image> <image class="img" :src="defaultHead" mode="aspectFit" v-else show-menu-by-longpress></image>
</view> </view>
</block> </block>
<view class="chat_text"> <view class="chat_text">
@@ -34,20 +34,20 @@
<view class="message-item " :class="message.isItMe ? 'right' : 'left'"> <view class="message-item " :class="message.isItMe ? 'right' : 'left'">
<block v-if="message.isItMe"> <block v-if="message.isItMe">
<view class="head_img"> <view class="head_img">
<image class="img" :src="myHeadImg" v-if="myHeadImg" mode="aspectFit"></image> <image class="img" :src="myHeadImg" v-if="myHeadImg" mode="aspectFit" show-menu-by-longpress></image>
<image class="img" :src="defaultHead" mode="aspectFit" v-else></image> <image class="img" :src="defaultHead" mode="aspectFit" v-else show-menu-by-longpress></image>
</view> </view>
</block> </block>
<block v-else> <block v-else>
<view class="head_img"> <view class="head_img">
<image class="img" :src="avatar" mode="aspectFit" v-if="avatar"></image> <image class="img" :src="avatar" mode="aspectFit" v-if="avatar" show-menu-by-longpress></image>
<image class="img" :src="defaultHead" mode="aspectFit" v-else></image> <image class="img" :src="defaultHead" mode="aspectFit" v-else show-menu-by-longpress></image>
</view> </view>
</block> </block>
<view class="chat_img"> <view class="chat_img">
<text class="iconfont icon-warn margin-right color-base-text" v-if="message.isItMe && !message.sendStatus"></text> <text class="iconfont icon-warn margin-right color-base-text" v-if="message.isItMe && !message.sendStatus"></text>
<view class="content_img" @click="previewMedia($util.img(message.image))" :style="{ backgroundImage: 'url(' + $util.img(message.image) + ')' }"> <view class="content_img" @click="previewMedia($util.img(message.image))" :style="{ backgroundImage: 'url(' + $util.img(message.image) + ')' }">
<!-- <image class="img_img" :src="$util.img(message.image)" mode="aspectFit"></image> --> <!-- <image class="img_img" :src="$util.img(message.image)" mode="aspectFit" show-menu-by-longpress></image> -->
</view> </view>
<!-- <text class="iconfont icon-warn margin-left" v-if="!message.isItMe && !message.sendStatus"></text> --> <!-- <text class="iconfont icon-warn margin-left" v-if="!message.isItMe && !message.sendStatus"></text> -->
</view> </view>
@@ -64,7 +64,7 @@
</view> </view>
<uni-popup ref="imgPopup" type="center"> <uni-popup ref="imgPopup" type="center">
<view class="imagePop"> <view class="imagePop">
<image :src="$util.img(currImg)" mode="aspectFit"></image> <image :src="$util.img(currImg)" mode="aspectFit" show-menu-by-longpress></image>
</view> </view>
</uni-popup> </uni-popup>
</view> </view>

View File

@@ -33,7 +33,7 @@
:src="currentKefuImg" :src="currentKefuImg"
mode="aspectFill" mode="aspectFill"
class="kefu-img" class="kefu-img"
></image> show-menu-by-longpress></image>
<text class="ai-icon" v-if="isAIKefu && !currentKefuImg">🤖</text> <text class="ai-icon" v-if="isAIKefu && !currentKefuImg">🤖</text>
<text class="ai-icon" v-if="isWxworkKefu && !currentKefuImg">💬</text> <text class="ai-icon" v-if="isWxworkKefu && !currentKefuImg">💬</text>
<text class="ai-icon" v-if="!isAIKefu && !isWxworkKefu && !currentKefuImg">👤</text> <text class="ai-icon" v-if="!isAIKefu && !isWxworkKefu && !currentKefuImg">👤</text>
@@ -50,7 +50,7 @@
:src="currentKefuImg" :src="currentKefuImg"
mode="aspectFill" mode="aspectFill"
class="kefu-img" class="kefu-img"
></image> show-menu-by-longpress></image>
<text class="ai-icon" v-if="isAIKefu && !currentKefuImg">🤖</text> <text class="ai-icon" v-if="isAIKefu && !currentKefuImg">🤖</text>
<text class="ai-icon" v-if="isWxworkKefu && !currentKefuImg">💬</text> <text class="ai-icon" v-if="isWxworkKefu && !currentKefuImg">💬</text>
<text class="ai-icon" v-if="!isAIKefu && !isWxworkKefu && !currentKefuImg">👤</text> <text class="ai-icon" v-if="!isAIKefu && !isWxworkKefu && !currentKefuImg">👤</text>

View File

@@ -8,7 +8,7 @@
:src="mOption.src" :src="mOption.src"
mode="widthFix" mode="widthFix"
@click="toTopClick" @click="toTopClick"
/> show-menu-by-longpress/>
</template> </template>
<script> <script>

View File

@@ -3,12 +3,12 @@
<swiper :indicator-dots="advList.length > 1" indicator-active-color="#ffffff" :autoplay="true" :interval="3000" :duration="1000" v-if="advList.length > 1" @change="changeSwiper" :current="currentIndex" :style="{ height: swiperHeight + 'px' }" class="item-wrap"> <swiper :indicator-dots="advList.length > 1" indicator-active-color="#ffffff" :autoplay="true" :interval="3000" :duration="1000" v-if="advList.length > 1" @change="changeSwiper" :current="currentIndex" :style="{ height: swiperHeight + 'px' }" class="item-wrap">
<swiper-item v-for="(item, index) in advList" :key="index" @click="jumppage(item.adv_url)"> <swiper-item v-for="(item, index) in advList" :key="index" @click="jumppage(item.adv_url)">
<view class="image-box"> <view class="image-box">
<image :src="$util.img(item.adv_image)" mode="widthFix" :id="'content-wrap' + index"/> <image :src="$util.img(item.adv_image)" mode="widthFix" :id="'content-wrap' + index" show-menu-by-longpress/>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
<view v-else class="container-box item-wrap"> <view v-else class="container-box item-wrap">
<image :src="$util.img(advList[0]['adv_image'])" mode="widthFix" lazy-load="true" @load="imageLoad" @click="jumppage(advList[0].adv_url)"/> <image :src="$util.img(advList[0]['adv_image'])" mode="widthFix" lazy-load="true" @load="imageLoad" @click="jumppage(advList[0].adv_url)" show-menu-by-longpress/>
</view> </view>
</view> </view>
</template> </template>

View File

@@ -1,7 +1,7 @@
<template> <template>
<view class="message"> <view class="message">
<view class="goods-item" v-if="goodsInfo.goods_name || goodsInfo.en_goods_name"> <view class="goods-item" v-if="goodsInfo.goods_name || goodsInfo.en_goods_name">
<image :src="$util.img(goodsInfo.sku_image)" mode="aspectFill"></image> <image :src="$util.img(goodsInfo.sku_image)" mode="aspectFill" show-menu-by-longpress></image>
<view class="goods-info"> <view class="goods-info">
<view class="goods-name">{{ goodsInfo.sku_name ? goodsInfo.sku_name : (isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name) }}</view> <view class="goods-name">{{ goodsInfo.sku_name ? goodsInfo.sku_name : (isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name) }}</view>
<view class="goods-bottom"> <view class="goods-bottom">
@@ -14,7 +14,7 @@
</view> </view>
</view> </view>
<view class="goods-item" v-else-if="goodsDetail"> <view class="goods-item" v-else-if="goodsDetail">
<image :src="$util.img(goodsDetail.sku_image)" mode="aspectFill"></image> <image :src="$util.img(goodsDetail.sku_image)" mode="aspectFill" show-menu-by-longpress></image>
<view class="goods-info"> <view class="goods-info">
<view class="goods-name">{{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ? goodsDetail.en_goods_name : goodsDetail.goods_name) }}</view> <view class="goods-name">{{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ? goodsDetail.en_goods_name : goodsDetail.goods_name) }}</view>
<view class="goods-bottom"> <view class="goods-bottom">

View File

@@ -1,7 +1,7 @@
<template> <template>
<view class="message"> <view class="message">
<view class="goods-item" v-if="orderdetails"> <view class="goods-item" v-if="orderdetails">
<image :src="$util.img(orderdetails.order_goods ? orderdetails.order_goods[0].sku_image : '')" mode="aspectFill"></image> <image :src="$util.img(orderdetails.order_goods ? orderdetails.order_goods[0].sku_image : '')" mode="aspectFill" show-menu-by-longpress></image>
<view class="goods-info"> <view class="goods-info">
<view class="goods-name">{{ orderdetails.order_goods ? orderdetails.order_goods[0].sku_name : '' }}</view> <view class="goods-name">{{ orderdetails.order_goods ? orderdetails.order_goods[0].sku_name : '' }}</view>
<view class="font-size-goods-tag">订单状态:{{ orderdetails.order_status_name }}</view> <view class="font-size-goods-tag">订单状态:{{ orderdetails.order_status_name }}</view>
@@ -16,7 +16,7 @@
</view> </view>
</view> </view>
<view class="goods-item" v-else-if="orderInfo"> <view class="goods-item" v-else-if="orderInfo">
<image :src="$util.img(orderInfo.order_goods ? orderInfo.order_goods[0].sku_image : '')" mode="aspectFill"></image> <image :src="$util.img(orderInfo.order_goods ? orderInfo.order_goods[0].sku_image : '')" mode="aspectFill" show-menu-by-longpress></image>
<view class="goods-info"> <view class="goods-info">
<view class="goods-name">{{ orderInfo.order_goods ? orderInfo.order_goods[0].sku_name : '' }}</view> <view class="goods-name">{{ orderInfo.order_goods ? orderInfo.order_goods[0].sku_name : '' }}</view>
<view class="font-size-goods-tag">订单状态:{{ orderInfo.order_status_name }}</view> <view class="font-size-goods-tag">订单状态:{{ orderInfo.order_status_name }}</view>

View File

@@ -1,7 +1,7 @@
<template> <template>
<view class="goods"> <view class="goods">
<view class="goods-msg"> <view class="goods-msg">
<image :src="$util.img(goodsInfo.sku_image)" mode="aspectFill"></image> <image :src="$util.img(goodsInfo.sku_image)" mode="aspectFill" show-menu-by-longpress></image>
<view class="goods-item"> <view class="goods-item">
<view class="title">{{ isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name }}</view> <view class="title">{{ isEnEnv ? goodsInfo.en_goods_name : goodsInfo.goods_name }}</view>
<view class="goods-sku"> <view class="goods-sku">

View File

@@ -10,7 +10,7 @@
</view> </view>
<view v-if="copyright && copyright.gov_record" class="gov-wrap" @click="toHref(copyright.gov_url)" target="_blank"> <view v-if="copyright && copyright.gov_record" class="gov-wrap" @click="toHref(copyright.gov_url)" target="_blank">
<image :src="$util.img('public/uniapp/common/gov_record.png')" alt="公安备案" /> <image :src="$util.img('public/uniapp/common/gov_record.png')" alt="公安备案" show-menu-by-longpress/>
<text>{{ copyright.gov_record }}</text> <text>{{ copyright.gov_record }}</text>
</view> </view>
</view> --> </view> -->

View File

@@ -1,6 +1,6 @@
<template> <template>
<view class="empty" :class="{ fixed: fixed }"> <view class="empty" :class="{ fixed: fixed }">
<view class="empty_img"><image :src="$util.img('public/uniapp/common/common-empty.png')" mode="aspectFit"></image></view> <view class="empty_img"><image :src="$util.img('public/uniapp/common/common-empty.png')" mode="aspectFit" show-menu-by-longpress></image></view>
<view class="color-tip margin-top title" :style="{ color: textColor + ' !important' }">{{ text }}</view> <view class="color-tip margin-top title" :style="{ color: textColor + ' !important' }">{{ text }}</view>
<view class="color-tip margin-bottom font-size-sub">{{ subText }}</view> <view class="color-tip margin-bottom font-size-sub">{{ subText }}</view>
<button type="primary" size="mini" class="button mini" @click="goIndex()" v-if="isIndex">{{ emptyBtn.text }}</button> <button type="primary" size="mini" class="button mini" @click="goIndex()" v-if="isIndex">{{ emptyBtn.text }}</button>

View File

@@ -89,7 +89,7 @@
</view> </view>
<view class="box img-boxs"> <view class="box img-boxs">
<view class="img-box" v-for="(v, k) in item.img_lists" :key="k" @click="uploadImg(index)"> <view class="img-box" v-for="(v, k) in item.img_lists" :key="k" @click="uploadImg(index)">
<image :src="$util.img(v)" mode="aspectFill"></image> <image :src="$util.img(v)" mode="aspectFill" show-menu-by-longpress></image>
<text class="iconfont icon-guanbi" @click.stop="delImg(k, index)"></text> <text class="iconfont icon-guanbi" @click.stop="delImg(k, index)"></text>
</view> </view>
<view class="img-box" @click="addImg(index)"><text class="iconfont icon-add1"></text></view> <view class="img-box" @click="addImg(index)"><text class="iconfont icon-add1"></text></view>

View File

@@ -6,7 +6,7 @@
<view class="sku-info" :style="{ height: systemInfo.windowHeight * 2 + 'rpx' }"> <view class="sku-info" :style="{ height: systemInfo.windowHeight * 2 + 'rpx' }">
<view class="header"> <view class="header">
<view class="img-wrap" @click="previewMedia()"> <view class="img-wrap" @click="previewMedia()">
<image :src="$util.img(goodsDetail.sku_image, { size: 'mid' })" @error="imageError()" /> <image :src="$util.img(goodsDetail.sku_image, { size: 'mid' })" @error="imageError()" show-menu-by-longpress/>
</view> </view>
<view class="main"> <view class="main">
<view class="goodname">{{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ? <view class="goodname">{{ goodsDetail.sku_name ? goodsDetail.sku_name : (isEnEnv ?
@@ -33,7 +33,7 @@
@click="change(item_value.sku_id, item_value.spec_id)"> @click="change(item_value.sku_id, item_value.spec_id)">
<image v-if="item_value.image" <image v-if="item_value.image"
:src="$util.img(item_value.image, { size: 'small' })" :src="$util.img(item_value.image, { size: 'small' })"
@error="valueImageError(index, index_value)" /> @error="valueImageError(index, index_value)" show-menu-by-longpress/>
<text>{{ item_value.spec_value_name }}</text> <text>{{ item_value.spec_value_name }}</text>
</view> </view>
</view> </view>

View File

@@ -5,14 +5,14 @@
<view class="header"> <view class="header">
<block v-if="type == 'point' && goodsDetail.type && goodsDetail.type != 1"> <block v-if="type == 'point' && goodsDetail.type && goodsDetail.type != 1">
<view class="img-wrap" v-if="goodsDetail.type == 2"> <view class="img-wrap" v-if="goodsDetail.type == 2">
<image :src="goodsDetail.image ? $util.img(goodsDetail.image) : $util.img('public/uniapp/point/coupon.png')" mode="aspectFit" /> <image :src="goodsDetail.image ? $util.img(goodsDetail.image) : $util.img('public/uniapp/point/coupon.png')" mode="aspectFit" show-menu-by-longpress/>
</view> </view>
<view class="img-wrap" v-if="goodsDetail.type == 3"> <view class="img-wrap" v-if="goodsDetail.type == 3">
<image :src="goodsDetail.image ? $util.img(goodsDetail.image) : $util.img('public/uniapp/point/hongbao.png')" mode="aspectFit" /> <image :src="goodsDetail.image ? $util.img(goodsDetail.image) : $util.img('public/uniapp/point/hongbao.png')" mode="aspectFit" show-menu-by-longpress/>
</view> </view>
</block> </block>
<view v-else class="img-wrap" @click="previewMedia()"> <view v-else class="img-wrap" @click="previewMedia()">
<image :src="$util.img(goodsDetail.sku_image, { size: 'mid' })" @error="imageError()" mode="aspectFit" /> <image :src="$util.img(goodsDetail.sku_image, { size: 'mid' })" @error="imageError()" mode="aspectFit" show-menu-by-longpress/>
</view> </view>
<view class="main"> <view class="main">
@@ -151,7 +151,7 @@
selected: item_value['selected'] || skuId == item_value.sku_id, selected: item_value['selected'] || skuId == item_value.sku_id,
disabled: item_value['disabled'] || (!item_value['selected'] && disabled) disabled: item_value['disabled'] || (!item_value['selected'] && disabled)
}" class="items" @click="change(item_value.sku_id, item_value.spec_id)"> }" class="items" @click="change(item_value.sku_id, item_value.spec_id)">
<image v-if="item_value.image" :src="$util.img(item_value.image, { size: 'small' })" @error="valueImageError(index, index_value)" /> <image v-if="item_value.image" :src="$util.img(item_value.image, { size: 'small' })" @error="valueImageError(index, index_value)" show-menu-by-longpress/>
<text>{{ item_value.spec_value_name }}</text> <text>{{ item_value.spec_value_name }}</text>
</view> </view>
</view> </view>

View File

@@ -0,0 +1,80 @@
<template>
<image
:src="src"
:mode="mode"
:lazy-load="lazyLoad"
:fade-show="fadeShow"
:webp="webp"
:show-menu-by-longpress="enableLongpress"
:class="imageClass"
:style="imageStyle"
@load="onLoad"
@error="onError"
@tap="onClick"
>
<slot></slot>
</image>
</template>
<script>
export default {
name: 'NsImage',
props: {
// 图片路径
src: {
type: String,
required: true
},
// 图片裁剪模式
mode: {
type: String,
default: 'aspectFill'
},
// 是否开启长按识别二维码(默认开启)
enableLongpress: {
type: Boolean,
default: true
},
// 是否懒加载
lazyLoad: {
type: Boolean,
default: false
},
// 图片显示动画
fadeShow: {
type: Boolean,
default: true
},
// 支持webp
webp: {
type: Boolean,
default: false
},
// 自定义类名
imageClass: {
type: [String, Array, Object],
default: ''
},
// 自定义样式
imageStyle: {
type: [String, Object],
default: ''
}
},
methods: {
onLoad(e) {
this.$emit('load', e)
},
onError(e) {
this.$emit('error', e)
},
onClick(e) {
this.$emit('tap', e)
}
}
}
</script>
<style lang="scss" scoped>
/* 可添加全局图片样式 */
</style>

View File

@@ -18,7 +18,7 @@
<view class="item-wrap" v-if="isOpenCaptcha"> <view class="item-wrap" v-if="isOpenCaptcha">
<text class="label">验证码</text> <text class="label">验证码</text>
<input type="number" placeholder="请输入验证码" v-model="formData.vercode" maxlength="4" /> <input type="number" placeholder="请输入验证码" v-model="formData.vercode" maxlength="4" />
<image :src="captcha.img" class="captcha" @click="getCaptcha"></image> <image :src="captcha.img" class="captcha" @click="getCaptcha" show-menu-by-longpress></image>
</view> </view>
<view class="item-wrap"> <view class="item-wrap">
<text class="label">动态码</text> <text class="label">动态码</text>
@@ -79,7 +79,7 @@
<text class="label">头像</text> <text class="label">头像</text>
<button open-type="chooseAvatar" @chooseavatar="onChooseAvatar"> <button open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
<image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head" <image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head"
@error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" /> @error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
<text class="iconfont icon-right color-tip"></text> <text class="iconfont icon-right color-tip"></text>
</button> </button>
</view> </view>
@@ -96,7 +96,7 @@
<button open-type="getAuthorize" scope="userInfo" @getAuthorize="aliappGetUserinfo" <button open-type="getAuthorize" scope="userInfo" @getAuthorize="aliappGetUserinfo"
:plain="true" class="border-0"> :plain="true" class="border-0">
<image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head" <image :src="avatarUrl ? avatarUrl : $util.getDefaultImage().head"
@error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" /> @error="avatarUrl = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
<text class="iconfont icon-right color-tip"></text> <text class="iconfont icon-right color-tip"></text>
</button> </button>
</view> </view>

View File

@@ -16,7 +16,7 @@
<view v-if="data.navStyle == 2" class="content-wrap" @click="toLink(data.moreLink.wap_url)"> <view v-if="data.navStyle == 2" class="content-wrap" @click="toLink(data.moreLink.wap_url)">
<view class="title-wrap" :style="{ color: data.textNavColor }"> <view class="title-wrap" :style="{ color: data.textNavColor }">
<view> <view>
<image :src="$util.img(data.topNavImg)" mode="heightFix"></image> <image :src="$util.img(data.topNavImg)" mode="heightFix" show-menu-by-longpress></image>
</view> </view>
<view :style="{ color: data.textNavColor }">{{ data.title }}</view> <view :style="{ color: data.textNavColor }">{{ data.title }}</view>
</view> </view>
@@ -24,7 +24,7 @@
<view v-if="data.navStyle == 3" class="content-wrap"> <view v-if="data.navStyle == 3" class="content-wrap">
<view class="title-wrap" @click="toLink(data.moreLink.wap_url)"> <view class="title-wrap" @click="toLink(data.moreLink.wap_url)">
<image :src="$util.img(data.topNavImg)" mode="aspectFit"></image> <image :src="$util.img(data.topNavImg)" mode="aspectFit" show-menu-by-longpress></image>
</view> </view>
<view class="search" @click="$util.redirectTo('/pages_tool/goods/search')" :style="{ height: menuButtonInfo.height - 2 + 'px', lineHeight: menuButtonInfo.height - 2 + 'px' }"> <view class="search" @click="$util.redirectTo('/pages_tool/goods/search')" :style="{ height: menuButtonInfo.height - 2 + 'px', lineHeight: menuButtonInfo.height - 2 + 'px' }">
<text class="iconfont icon-sousuo3"></text> <text class="iconfont icon-sousuo3"></text>

View File

@@ -6,7 +6,7 @@
:src="$util.img('public/uniapp/common/mescroll-totop.png')" :src="$util.img('public/uniapp/common/mescroll-totop.png')"
mode="widthFix" mode="widthFix"
@click="toTopClick" @click="toTopClick"
/> show-menu-by-longpress/>
</template> </template>
<script> <script>

View File

@@ -0,0 +1,158 @@
# 华为快应用 HwService JS SDK 集成指南
## 概述
本文档介绍如何将该 uni-app 项目以 H5 壳模式部署到华为快应用平台,并集成华为 HwService JS SDK(帐号服务 + 分析服务)。
## 项目架构
```
H5 壳模式快应用架构:
┌─────────────────────────────────────┐
│ 华为快应用引擎 (QuickApp Runtime) │
│ ┌─────────────────────────────────┐ │
│ │ WebView (H5 页面) │ │
│ │ ┌───────────────────────────┐ │ │
│ │ │ uni-app 应用 │ │ │
│ │ │ ├─ common/js/hw-jssdk.js │ │ │
│ │ │ ├─ common/js/auth.js │ │ │
│ │ │ └─ store/index.js │ │ │
│ │ └───────────────────────────┘ │ │
│ └─────────────────────────────────┘ │
│ │ HwService Bridge │
│ ▼ │
│ ┌─────────────────────────────────┐ │
│ │ HMS Core (华为移动服务) │ │
│ │ ├─ Account Kit (帐号服务) │ │
│ │ ├─ Analytics Kit (分析服务) │ │
│ │ └─ Push Kit (推送服务,可选) │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────┘
```
## 部署前准备
### 1. 华为 AppGallery Connect 配置
1. 登录 [AppGallery Connect](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html)
2. 创建应用(选择「快应用」类型)
3. 开启以下服务:
- **华为帐号服务 (Account Kit)**
- **华为分析服务 (Analytics Kit)**(可选)
- **华为推送服务 (Push Kit)**(可选)
4. 下载 `agconnect-services.json` 配置文件
5. 将配置文件放入项目根目录
### 2. 安装 npm 依赖
```bash
# 基础桥接库(必装,提供 hmsjsb.invoke 桥接能力)
npm install --save @hw-hmscore/hms-js-base
# 华为分析服务封装包(可选,提供更完善的 API 封装)
npm install --save @hw-hmscore/analytics-sdk-quickapp
```
**注意:**
- **Account Kit(帐号服务)** 和 **Push Kit(推送服务)** 没有独立的 quickapp npm 包,统一通过 `@hw-hmscore/hms-js-base` 的 `hmsjsb.invoke()` 桥接调用
- `@hw-hmscore/analytics-sdk-quickapp` 版本 `6.10.0-301`(ISC 许可证),**可选安装**——不装则走 invoke 桥接
- 相关 npm 包由华为官方发布(`hmscore@huawei.com`)
### 3. 配置 HUAWEI 条件编译
本项目的 `package.json` 已为各快应用域名定义自定义发行脚本:
| 脚本名 | 条件编译标记 | 用途 |
|--------|------------|------|
| `h5-xcx20.5g-quickapp.com` | `H5_XCX_5G_QUICKAPP_COM` | 5G 快应用 |
| `h5-xcx.aigc-quickapp.com` | `H5_XCX_AIGC_QUICKAPP_COM` | AIGC 快应用 |
| `h5-5g.aigc-quickapp.com` | `H5_5G_AIGC_QUICKAPP_COM` | 5G AIGC 快应用 |
| `h5-test.aigc-quickapp.com` | `H5_TEST_AIGC_QUICKAPP_COM` | 测试快应用 |
当使用 HBuilderX → 发行 → 自定义发行 时,对应的 `#ifdef` 条件编译块会被激活。
### 4. 配置华为参数
编辑 `common/js/config.js` 中的 `huawei` 配置项:
```javascript
huawei: {
appId: '你的AGC应用ID',
clientId: '你的客户端ID',
clientSecret: '你的客户端密钥(建议由后端下发)',
redirectUri: window.location.origin + '/hwappx/common/',
}
```
**注意**:`clientSecret` 敏感信息建议由后端接口动态下发,避免在前端硬编码。
## 后端配合
### 新增接口
华为帐号登录需要后端增加以下接口:
| 接口路径 | 方法 | 说明 |
|---------|------|------|
| `/wechat/api/quickapp/huawei_auth` | POST | 华为 openId 换 token |
**请求参数**:
| 字段 | 类型 | 说明 |
|------|------|------|
| `openid` | string | 华为帐号 openId |
| `unionid` | string | 华为帐号 unionId(可选) |
| `nickname` | string | 用户昵称 |
| `avatar` | string | 头像 URL |
| `gender` | int | 性别(0:未知 1:男 2:女) |
**返回格式**(需与现有登录接口保持一致):
```json
{
"code": 0,
"data": {
"openid": "华为openId",
"unionid": "华为unionId"
}
}
```
## 已修改的文件清单
| 文件 | 变更类型 | 说明 |
|------|---------|------|
| `common/js/hw-jssdk.js` | **新增** | HwService 统一封装(Account/Analytics/Push) |
| `common/js/auth.js` | 修改 | 新增 `_huaweiSignIn` 方法,快应用环境下使用华为帐号登录 |
| `common/js/http.js` | 修改 | 新增 `H5_XCX_*_QUICKAPP_COM` 条件编译,请求类型为 `quickapp` |
| `common/js/event-bus.js` | 修改 | 新增 `quickapp` 平台检测分支 |
| `common/js/config.js` | 修改 | 新增 `huawei` 配置项 |
| `store/index.js` | 修改 | 新增 `huaweiAccountInfo` 状态/`initHwService` action |
## 发布流程
1. 使用 HBuilderX 打开项目
2. 修改 `manifest.json` → Web 配置 → 基础路径(`/hwappx/common/`)
3. 选择「发行」→「自定义发行」→ 选择对应的快应用脚本
4. 构建完成后,将 `unpackage/dist/build/web/` 目录打包为 zip
5. 使用华为快应用 IDE 导入并发布
## 验证方式
### 检查 HwService 是否可用
```javascript
const HwService = require('@/common/js/hw-jssdk.js').default;
console.log('是否快应用环境:', HwService.isQuickAppEnv());
```
### 验证华为帐号登录
在华为手机上打开快应用,点击登录,应弹出华为帐号授权窗口。
### 验证分析服务
集成后可在 AppGallery Connect 控制台查看埋点数据。
## 注意事项
1. **H5 壳模式限制**:HwService 依赖华为快应用引擎注入的 Bridge,在普通浏览器中不可用
2. **真机测试**:必须在华为手机上测试,模拟器可能无法完整模拟 Bridge
3. **条件编译生效**:必须通过 HBuilderX 的自定义发行脚本构建,`#ifdef` 标记才会生效
4. **clientSecret 安全**:建议由后端接口动态下发,不要前端硬编码
5. **登录降级**:如果华为帐号服务不可用,建议提供短信验证码或其他登录方式作为降级方案

View File

@@ -54,8 +54,8 @@
indicator-color="rgba(255,255,255,0.6)" :indicator-dots="true" interval="3000"> indicator-color="rgba(255,255,255,0.6)" :indicator-dots="true" interval="3000">
<swiper-item v-for="(item, index) in adv.list" :key="index"> <swiper-item v-for="(item, index) in adv.list" :key="index">
<image class="slide-image" @click="$util.diyRedirectTo(item.link)" height="100%" <image class="slide-image" @click="$util.diyRedirectTo(item.link)" height="100%"
:src="$util.img(item.imageUrl)" width="100%"></image> :src="$util.img(item.imageUrl)" width="100%" show-menu-by-longpress></image>
<!-- <image bindtap="adverclose" class="slide-image" height="100%" src="{{item.imgurl}}" width="100%" wx:if="{{item.click==1}}"></image> --> <!-- <image bindtap="adverclose" class="slide-image" height="100%" src="{{item.imgurl}}" width="100%" wx:if="{{item.click==1}}" show-menu-by-longpress></image> -->
</swiper-item> </swiper-item>
</swiper> </swiper>
<view bindtap="adverclose" class="small-bot-close" @click="closePopupWindow"> <view bindtap="adverclose" class="small-bot-close" @click="closePopupWindow">
@@ -66,7 +66,7 @@
<swiper class="swiper" style="width:100%;height: 1200rpx;" :autoplay="true" interval="3000" circular="true" :indicator-dots="true" indicator-color="#000" indicator-active-color="red"> <swiper class="swiper" style="width:100%;height: 1200rpx;" :autoplay="true" interval="3000" circular="true" :indicator-dots="true" indicator-color="#000" indicator-active-color="red">
<swiper-item class="swiper-item" v-for="(item, index) in adv.list" :key="index" v-if="item.imageUrl" @click="$util.diyRedirectTo(item.link)"> <swiper-item class="swiper-item" v-for="(item, index) in adv.list" :key="index" v-if="item.imageUrl" @click="$util.diyRedirectTo(item.link)">
<view class="item"> <view class="item">
<image :src="$util.img(item.imageUrl)" mode="aspectFit" :show-menu-by-longpress="true"/> <image :src="$util.img(item.imageUrl)" mode="aspectFit" show-menu-by-longpress></image>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
@@ -85,7 +85,7 @@
<view @touchmove.prevent class="official-accounts-inner" v-if="wechatQrcode"> <view @touchmove.prevent class="official-accounts-inner" v-if="wechatQrcode">
<uni-popup ref="officialAccountsPopup" type="center"> <uni-popup ref="officialAccountsPopup" type="center">
<view class="official-accounts-wrap"> <view class="official-accounts-wrap">
<image class="content" :src="$util.img(wechatQrcode)" mode="aspectFit"></image> <image class="content" :src="$util.img(wechatQrcode)" mode="aspectFit" show-menu-by-longpress></image>
<text class="desc">关注了解更多</text> <text class="desc">关注了解更多</text>
<text class="close iconfont icon-round-close" @click="officialAccountsClose"></text> <text class="close iconfont icon-round-close" @click="officialAccountsClose"></text>
</view> </view>
@@ -96,7 +96,7 @@
<uni-popup ref="collectPopupWindow" type="top" class="wap-floating wap-floating-collect"> <uni-popup ref="collectPopupWindow" type="top" class="wap-floating wap-floating-collect">
<view v-if="showTip" class="collectPopupWindow" <view v-if="showTip" class="collectPopupWindow"
:style="{ marginTop: (collectTop + statusBarHeight) * 2 + 'rpx' }"> :style="{ marginTop: (collectTop + statusBarHeight) * 2 + 'rpx' }">
<image :src="$util.img('public/uniapp/index/collect2.png')" mode="aspectFit" /> <image :src="$util.img('public/uniapp/index/collect2.png')" mode="aspectFit" show-menu-by-longpress/>
<text @click="closeCollectPopupWindow">我知道了</text> <text @click="closeCollectPopupWindow">我知道了</text>
</view> </view>
</uni-popup> </uni-popup>

View File

@@ -22,7 +22,7 @@
:item-id="'goods_id_' + index"> :item-id="'goods_id_' + index">
<view class="item" @click="previewMedia(index)"> <view class="item" @click="previewMedia(index)">
<image :src="$util.img(item, { size: 'big' })" @error="swiperImageError(index)" <image :src="$util.img(item, { size: 'big' })" @error="swiperImageError(index)"
mode="aspectFit" :show-menu-by-longpress="true" /> mode="aspectFit" show-menu-by-longpress />
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
@@ -135,7 +135,7 @@
<view class="list-wrap" style="display: flex;"> <view class="list-wrap" style="display: flex;">
<view class="name-wrap"> <view class="name-wrap">
<image :src="$util.img(goodsSkuDetail.merchinfo.merch_image)" mode="widthFix" <image :src="$util.img(goodsSkuDetail.merchinfo.merch_image)" mode="widthFix"
style="width: 100rpx;height: 100rpx;border-radius: 50rpx;"></image> style="width: 100rpx;height: 100rpx;border-radius: 50rpx;" show-menu-by-longpress ></image>
</view> </view>
<view class="other-wrap"> <view class="other-wrap">
<view class="address" style="margin-left: 30rpx;"> <view class="address" style="margin-left: 30rpx;">
@@ -219,8 +219,8 @@
@click="selectStore(item)"> @click="selectStore(item)">
<view class="item-box"> <view class="item-box">
<view class="item-image"> <view class="item-image">
<image :src="$util.img(item.store_image)" v-if="item.store_image" /> <image :src="$util.img(item.store_image)" v-if="item.store_image" show-menu-by-longpress />
<image :src="$util.getDefaultImage().store" v-else /> <image :src="$util.getDefaultImage().store" v-else show-menu-by-longpress />
</view> </view>
<view class="item-info"> <view class="item-info">
<view class="item-title"> <view class="item-title">
@@ -248,7 +248,7 @@
<view class="detail-community" v-if="goodsSkuDetail.qr_data && goodsSkuDetail.qr_data.qr_state == 1"> <view class="detail-community" v-if="goodsSkuDetail.qr_data && goodsSkuDetail.qr_data.qr_state == 1">
<view class="community-box"> <view class="community-box">
<image :src="$util.img('public/uniapp/goods/detail_erweiImage.png')" mode="aspectFill"></image> <image :src="$util.img('public/uniapp/goods/detail_erweiImage.png')" mode="aspectFill" show-menu-by-longpress ></image>
<view class="community-content"> <view class="community-content">
<view class="community-title">{{ goodsSkuDetail.qr_data.qr_name }}</view> <view class="community-title">{{ goodsSkuDetail.qr_data.qr_name }}</view>
<view class="community-txt">{{ goodsSkuDetail.qr_data.community_describe }}</view> <view class="community-txt">{{ goodsSkuDetail.qr_data.community_describe }}</view>
@@ -264,7 +264,7 @@
<view>添加社群</view> <view>添加社群</view>
</view> </view>
<view class="community-model-content-draw" v-if="goodsSkuDetail.qr_data && goodsSkuDetail.qr_data.qr_img"> <view class="community-model-content-draw" v-if="goodsSkuDetail.qr_data && goodsSkuDetail.qr_data.qr_img">
<image :src="goodsSkuDetail.qr_data.qr_img != '' && goodsSkuDetail.qr_data.qr_state == 1 ? $util.img(goodsSkuDetail.qr_data.qr_img) : $util.img('public/uniapp/goods/detail_erweiImage.png') " mode="aspectFill" show-menu-by-longpress="true"/> <image :src="goodsSkuDetail.qr_data.qr_img != '' && goodsSkuDetail.qr_data.qr_state == 1 ? $util.img(goodsSkuDetail.qr_data.qr_img) : $util.img('public/uniapp/goods/detail_erweiImage.png') " mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="community-model-content-text">长按识别二维码,添加社群</view> <view class="community-model-content-text">长按识别二维码,添加社群</view>
</view> </view>
@@ -301,10 +301,10 @@
<view class="evaluator-face"> <view class="evaluator-face">
<image v-if="item.member_headimg" :src="$util.img(item.member_headimg)" <image v-if="item.member_headimg" :src="$util.img(item.member_headimg)"
@error="item.member_headimg = $util.getDefaultImage().head" @error="item.member_headimg = $util.getDefaultImage().head"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress />
<image v-else :src="$util.getDefaultImage().head" <image v-else :src="$util.getDefaultImage().head"
@error="item.member_headimg = $util.getDefaultImage().head" @error="item.member_headimg = $util.getDefaultImage().head"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress />
</view> </view>
<view class="evaluator-name-wrap"> <view class="evaluator-name-wrap">
<text class="evaluator-name using-hidden" <text class="evaluator-name using-hidden"
@@ -325,7 +325,7 @@
<view class="evaluate-img" v-if="item.images"> <view class="evaluate-img" v-if="item.images">
<view class="img-box" v-for="(img, img_index) in item.images" :key="img_index" <view class="img-box" v-for="(img, img_index) in item.images" :key="img_index"
@click="previewEvaluate(index, img_index, 'images')"> @click="previewEvaluate(index, img_index, 'images')">
<image :src="$util.img(img)" mode="aspectFill" /> <image :src="$util.img(img)" mode="aspectFill" show-menu-by-longpress />
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
@@ -390,7 +390,7 @@
<template v-if="poster != '-1'"> <template v-if="poster != '-1'">
<view class="poster-wrap"> <view class="poster-wrap">
<view class="image-wrap"> <view class="image-wrap">
<image :src="$util.img(poster)" :show-menu-by-longpress="true" mode="widthFix" /> <image :src="$util.img(poster)" show-menu-by-longpress mode="widthFix" />
<view class="close iconfont icon-close" @click="closePosterPopup()"></view> <view class="close iconfont icon-close" @click="closePosterPopup()"></view>
</view> </view>
<!-- #ifdef MP || APP-PLUS --> <!-- #ifdef MP || APP-PLUS -->

View File

@@ -6,38 +6,38 @@
<text class="promotion-mark ">限时折扣</text> <text class="promotion-mark ">限时折扣</text>
<text class="title">当前商品正在参加{{ item.promotion_name }}</text> <text class="title">当前商品正在参加{{ item.promotion_name }}</text>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<view v-else-if="item.promotion_type == 'groupbuy'" class="item" @click="redirectTo('/pages_promotion/groupbuy/detail', { groupbuy_id: item.groupbuy_id })"> <view v-else-if="item.promotion_type == 'groupbuy'" class="item" @click="redirectTo('/pages_promotion/groupbuy/detail', { groupbuy_id: item.groupbuy_id })">
<!-- <view v-else-if="item.promotion_type == 'groupbuy'" class="item" @click="redirectTo('/pages_promotion/groupbuy/detail', { id: item.groupbuy_id })"> --> <!-- <view v-else-if="item.promotion_type == 'groupbuy'" class="item" @click="redirectTo('/pages_promotion/groupbuy/detail', { id: item.groupbuy_id })"> -->
<text class="promotion-mark ">团购</text> <text class="promotion-mark ">团购</text>
<text class="title">当前商品正在参加{{ item.promotion_name }}</text> <text class="title">当前商品正在参加{{ item.promotion_name }}</text>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<view v-else-if="item.promotion_type == 'pintuan'" class="item" @click="redirectTo('/pages_promotion/pintuan/detail', { pintuan_id: item.pintuan_id })"> <view v-else-if="item.promotion_type == 'pintuan'" class="item" @click="redirectTo('/pages_promotion/pintuan/detail', { pintuan_id: item.pintuan_id })">
<text class="promotion-mark ">拼团</text> <text class="promotion-mark ">拼团</text>
<text class="title">当前商品正在参加{{ item.promotion_name }}</text> <text class="title">当前商品正在参加{{ item.promotion_name }}</text>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<view v-else-if="item.promotion_type == 'seckill'" class="item" @click="redirectTo('/pages_promotion/seckill/detail', { seckill_id: item.id })"> <view v-else-if="item.promotion_type == 'seckill'" class="item" @click="redirectTo('/pages_promotion/seckill/detail', { seckill_id: item.id })">
<text class="promotion-mark ">秒杀</text> <text class="promotion-mark ">秒杀</text>
<text class="title">当前商品正在参加{{ item.promotion_name }}</text> <text class="title">当前商品正在参加{{ item.promotion_name }}</text>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<view v-else-if="item.promotion_type == 'topic'" class="item" @click="redirectTo('/pages_promotion/topics/goods_detail', { id: item.id })"> <view v-else-if="item.promotion_type == 'topic'" class="item" @click="redirectTo('/pages_promotion/topics/goods_detail', { id: item.id })">
<text class="promotion-mark ">专题活动</text> <text class="promotion-mark ">专题活动</text>
<text class="title">当前商品正在参加{{ item.promotion_name }}</text> <text class="title">当前商品正在参加{{ item.promotion_name }}</text>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<view v-else-if="item.promotion_type == 'bargain'" class="item" @click="redirectTo('/pages_promotion/bargain/detail', { b_id: item.bargain_id })"> <view v-else-if="item.promotion_type == 'bargain'" class="item" @click="redirectTo('/pages_promotion/bargain/detail', { b_id: item.bargain_id })">
<text class="promotion-mark ">砍价</text> <text class="promotion-mark ">砍价</text>
<text class="title">当前商品正在参加{{ item.promotion_name }}</text> <text class="title">当前商品正在参加{{ item.promotion_name }}</text>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<view v-else-if="item.promotion_type == 'pinfan'" class="item" @click="redirectTo('/pages_promotion/pinfan/detail', { pinfan_id: item.pintuan_id })"> <view v-else-if="item.promotion_type == 'pinfan'" class="item" @click="redirectTo('/pages_promotion/pinfan/detail', { pinfan_id: item.pintuan_id })">
<text class="promotion-mark ">拼团返利</text> <text class="promotion-mark ">拼团返利</text>

View File

@@ -4,7 +4,7 @@
<view class="round bg-gradual-orange flex justify-start shadow" style="padding: 3px;"> <view class="round bg-gradual-orange flex justify-start shadow" style="padding: 3px;">
<view class="cu-avatar cu-a-sm round" :style="{ backgroundImage: 'url(' + $util.img(penpaiData.img) + ')' }"> <view class="cu-avatar cu-a-sm round" :style="{ backgroundImage: 'url(' + $util.img(penpaiData.img) + ')' }">
<!-- #ifdef APP-NVUE --> <!-- #ifdef APP-NVUE -->
<!-- <image :src="penpaiData.img" class="avatarimg"></image> --> <!-- <image :src="penpaiData.img" class="avatarimg" show-menu-by-longpress></image> -->
<!-- #endif --> <!-- #endif -->
</view> </view>
<view class="padding-lr-sm flex align-center"> <view class="padding-lr-sm flex align-center">

View File

@@ -34,7 +34,7 @@
@click="singleElection(siteIndex, cartIndex)"></view> @click="singleElection(siteIndex, cartIndex)"></view>
<view @click="toGoodsDetail(item)" class="goods-img"> <view @click="toGoodsDetail(item)" class="goods-img">
<image :src="$util.img(item.sku_image, { size: 'mid' })" <image :src="$util.img(item.sku_image, { size: 'mid' })"
@error="imageError(siteIndex, cartIndex)" mode="aspectFill" /> @error="imageError(siteIndex, cartIndex)" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="goods-info"> <view class="goods-info">
<view> <view>
@@ -66,7 +66,7 @@
<text class="unit price-style small">.{{ <text class="unit price-style small">.{{
parseFloat(item.member_price).toFixed(2).split('.')[1] parseFloat(item.member_price).toFixed(2).split('.')[1]
}}</text> }}</text>
<image :src="$util.img('public/uniapp/index/VIP.png')" /> <image :src="$util.img('public/uniapp/index/VIP.png')" show-menu-by-longpress/>
</view> </view>
</view> </view>
</block> </block>
@@ -81,7 +81,7 @@
parseFloat(item.discount_price).toFixed(2).split('.')[1] parseFloat(item.discount_price).toFixed(2).split('.')[1]
}}</text> }}</text>
<image <image
:src="$util.img('public/uniapp/index/discount.png')" /> :src="$util.img('public/uniapp/index/discount.png')" show-menu-by-longpress/>
</view> </view>
</view> </view>
</block> </block>
@@ -96,7 +96,7 @@
<text class="unit price-style small">.{{ <text class="unit price-style small">.{{
parseFloat(item.member_price).toFixed(2).split('.')[1] parseFloat(item.member_price).toFixed(2).split('.')[1]
}}</text> }}</text>
<image :src="$util.img('public/uniapp/index/VIP.png')" /> <image :src="$util.img('public/uniapp/index/VIP.png')" show-menu-by-longpress/>
</view> </view>
</view> </view>
</block> </block>
@@ -150,7 +150,7 @@
<view class="iconfont icon-yuan_checked color-tip"></view> <view class="iconfont icon-yuan_checked color-tip"></view>
<view class="goods-img"> <view class="goods-img">
<image :src="$util.img(goodsItem.sku_image, { size: 'mid' })" <image :src="$util.img(goodsItem.sku_image, { size: 'mid' })"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="goods-info"> <view class="goods-info">
<view class="goods-name">{{ goodsItem.sku_name }}</view> <view class="goods-name">{{ goodsItem.sku_name }}</view>
@@ -176,7 +176,7 @@
<text class="unit price-style small">.{{ <text class="unit price-style small">.{{
parseFloat(goodsItem.member_price).toFixed(2).split('.')[1] parseFloat(goodsItem.member_price).toFixed(2).split('.')[1]
}}</text> }}</text>
<image :src="$util.img('public/uniapp/index/VIP.png')" /> <image :src="$util.img('public/uniapp/index/VIP.png')" show-menu-by-longpress/>
</template> </template>
<template v-else> <template v-else>
<text class="unit price-style small">{{ <text class="unit price-style small">{{
@@ -256,7 +256,7 @@
:style="{ backgroundColor: discount.coupon_info.receive_type != 'wait' ? '#F2F2F2' : 'var(--main-color-shallow)' }"> :style="{ backgroundColor: discount.coupon_info.receive_type != 'wait' ? '#F2F2F2' : 'var(--main-color-shallow)' }">
<view class="info-wrap"> <view class="info-wrap">
<image class="coupon-line" mode="heightFix" <image class="coupon-line" mode="heightFix"
:src="$util.img('public/uniapp/coupon/coupon_line.png')" /> :src="$util.img('public/uniapp/coupon/coupon_line.png')" show-menu-by-longpress/>
<view class="coupon-money"> <view class="coupon-money">
<template v-if="discount.coupon_info.type == 'reward'"> <template v-if="discount.coupon_info.type == 'reward'">
<text class="unit">{{ $lang('common.currencySymbol') }}</text> <text class="unit">{{ $lang('common.currencySymbol') }}</text>

View File

@@ -49,7 +49,7 @@
<text class="price price-font">{{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[0] }}</text> <text class="price price-font">{{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[0] }}</text>
<text class="price-symbol price-font">.{{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[1] }}</text> <text class="price-symbol price-font">.{{ parseFloat(goodsSkuDetail.member_price).toFixed(2).split('.')[1] }}</text>
<view class="member-vip-wrap"> <view class="member-vip-wrap">
<image :src="$util.img('public/uniapp/goods/member_vip.png')" mode="aspectFit"/> <image :src="$util.img('public/uniapp/goods/member_vip.png')" mode="aspectFit" show-menu-by-longpress/>
</view> </view>
<view class="member-price-wrap" v-if="!goodsSkuDetail.market_price_show"> <view class="member-price-wrap" v-if="!goodsSkuDetail.market_price_show">
<text class="unit price-font">原价</text> <text class="unit price-font">原价</text>
@@ -140,7 +140,7 @@
v-for="(item, index) in goodsSkuDetail.card_info.relation_goods" v-for="(item, index) in goodsSkuDetail.card_info.relation_goods"
@click="$util.redirectTo('/pages_goods/detail', { goods_id: item.goods_id })" @click="$util.redirectTo('/pages_goods/detail', { goods_id: item.goods_id })"
> >
<image :src="$util.img(item.sku_image)" mode="aspectFill"/> <image :src="$util.img(item.sku_image)" mode="aspectFill" show-menu-by-longpress/>
<view class="content"> <view class="content">
<view class="name multi-hidden">{{ item.sku_name }}</view> <view class="name multi-hidden">{{ item.sku_name }}</view>
<view class="price">¥{{ item.price }}</view> <view class="price">¥{{ item.price }}</view>
@@ -221,13 +221,13 @@
<text>{{ bundling[0].bl_name }}</text> <text>{{ bundling[0].bl_name }}</text>
</view> </view>
<text class="iconfont icon-right"></text> <text class="iconfont icon-right"></text>
<!-- <view class="more-img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" /></view> --> <!-- <view class="more-img-wrap"><image :src="$util.img('public/uniapp/goods/detail_more.png')" mode="aspectFit" show-menu-by-longpress/></view> -->
</view> </view>
<scroll-view class="combo-goods-wrap color-tip" scroll-x="true"> <scroll-view class="combo-goods-wrap color-tip" scroll-x="true">
<view class="goods-wrap"> <view class="goods-wrap">
<view class="goods-item" @click="toGoodsDetail(skuId)" v-if="bundlingType == true"> <view class="goods-item" @click="toGoodsDetail(skuId)" v-if="bundlingType == true">
<view class="combo-img"> <view class="combo-img">
<image :src="$util.img(goodsSkuDetail.sku_image, { size: 'mid' })" @error="imageError()" /> <image :src="$util.img(goodsSkuDetail.sku_image, { size: 'mid' })" @error="imageError()" show-menu-by-longpress/>
<view class="price-wrap"> <view class="price-wrap">
<text class="unit price-font">{{ $lang('common.currencySymbol') }}</text> <text class="unit price-font">{{ $lang('common.currencySymbol') }}</text>
<text class="price price-font">{{ goodsSkuDetail.price }}</text> <text class="price price-font">{{ goodsSkuDetail.price }}</text>
@@ -239,7 +239,7 @@
<template v-if="index < 3"> <template v-if="index < 3">
<view class="goods-item" @click="toGoodsDetail(item.sku_id)"> <view class="goods-item" @click="toGoodsDetail(item.sku_id)">
<view class="combo-img"> <view class="combo-img">
<image :src="$util.img(item.sku_image, { size: 'mid' })" @error="bundlingImageError(0, index)" /> <image :src="$util.img(item.sku_image, { size: 'mid' })" @error="bundlingImageError(0, index)" show-menu-by-longpress/>
<view class="price-wrap"> <view class="price-wrap">
<text class="unit price-font">{{ $lang('common.currencySymbol') }}</text> <text class="unit price-font">{{ $lang('common.currencySymbol') }}</text>
<text class="price price-font">{{ item.price }}</text> <text class="price price-font">{{ item.price }}</text>
@@ -272,7 +272,7 @@
<view class="goods-wrap"> <view class="goods-wrap">
<view class="goods-item" @click="toGoodsDetail(skuId)"> <view class="goods-item" @click="toGoodsDetail(skuId)">
<view class="combo-img"> <view class="combo-img">
<image :src="$util.img(goodsSkuDetail.sku_image, { size: 'mid' })" @error="imageError()" /> <image :src="$util.img(goodsSkuDetail.sku_image, { size: 'mid' })" @error="imageError()" show-menu-by-longpress/>
<view class="price-wrap"> <view class="price-wrap">
<text class="unit price-font">{{ $lang('common.currencySymbol') }}</text> <text class="unit price-font">{{ $lang('common.currencySymbol') }}</text>
<text class="price price-font">{{ goodsSkuDetail.price }}</text> <text class="price price-font">{{ goodsSkuDetail.price }}</text>
@@ -284,7 +284,7 @@
<template v-if="goods_index < 3"> <template v-if="goods_index < 3">
<view class="goods-item" @click="toGoodsDetail(goods.sku_id)"> <view class="goods-item" @click="toGoodsDetail(goods.sku_id)">
<view class="combo-img"> <view class="combo-img">
<image :src="$util.img(goods.sku_image, { size: 'mid' })" @error="bundlingImageError(index, goods_index)" /> <image :src="$util.img(goods.sku_image, { size: 'mid' })" @error="bundlingImageError(index, goods_index)" show-menu-by-longpress/>
<view class="price-wrap"> <view class="price-wrap">
<text class="unit price-font">{{ $lang('common.currencySymbol') }}</text> <text class="unit price-font">{{ $lang('common.currencySymbol') }}</text>
<text class="price price-font">{{ goods.price }}</text> <text class="price price-font">{{ goods.price }}</text>
@@ -323,7 +323,7 @@
<view class="coupon-item ns-gradient-diy-goods-list" v-for="(item, index) in couponList" :key="index" v-if="hackReset"> <view class="coupon-item ns-gradient-diy-goods-list" v-for="(item, index) in couponList" :key="index" v-if="hackReset">
<view class="coupon-info" :style="{ backgroundColor: item.useState == 2 ? '#F2F2F2' : 'var(--main-color-shallow)' }"> <view class="coupon-info" :style="{ backgroundColor: item.useState == 2 ? '#F2F2F2' : 'var(--main-color-shallow)' }">
<view class="info-wrap" :class="{ disabled: item.useState == 2 }"> <view class="info-wrap" :class="{ disabled: item.useState == 2 }">
<image class="coupon-line" mode="heightFix" :src="$util.img('public/uniapp/coupon/coupon_line.png')"></image> <image class="coupon-line" mode="heightFix" :src="$util.img('public/uniapp/coupon/coupon_line.png')" show-menu-by-longpress></image>
<view class="coupon-money"> <view class="coupon-money">
<template v-if="item.type == 'reward'"> <template v-if="item.type == 'reward'">
<text class="unit">{{ $lang('common.currencySymbol') }}</text> <text class="unit">{{ $lang('common.currencySymbol') }}</text>

View File

@@ -51,7 +51,7 @@
<view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index" <view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index"
@click="toDetail(item)"> @click="toDetail(item)">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress ></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }} <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}
</view> </view>
<view class="sell-out" v-if="item.goods_stock <= 0"> <view class="sell-out" v-if="item.goods_stock <= 0">
@@ -102,7 +102,7 @@
@click="toDetail(item)" @click="toDetail(item)"
:style="{ left: listPosition[index] ? listPosition[index].left : '', top: listPosition[index] ? listPosition[index].top : '' }"> :style="{ left: listPosition[index] ? listPosition[index].left : '', top: listPosition[index] ? listPosition[index].top : '' }">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" :show-menu-by-longpress="true"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress ></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }} <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}
</view> </view>
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">

View File

@@ -59,7 +59,7 @@
<view class="iconfont icon-right"></view> <view class="iconfont icon-right"></view>
</view> </view>
</view> </view>
<image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')"></image> <image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')" show-menu-by-longpress></image>
</view> </view>
<view class="address-box" :class="{ 'not-delivery-type': goodsData.delivery.express_type.length <= 1 }" v-if="orderCreateData.delivery.delivery_type == 'local'"> <view class="address-box" :class="{ 'not-delivery-type': goodsData.delivery.express_type.length <= 1 }" v-if="orderCreateData.delivery.delivery_type == 'local'">
@@ -112,7 +112,7 @@
</view> </view>
</view> </view>
<image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')"></image> <image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')" show-menu-by-longpress></image>
</view> </view>
<!-- 门店信息 --> <!-- 门店信息 -->
@@ -154,7 +154,7 @@
</view> </view>
</block> </block>
<view v-else class="empty">当前无自提门店,请选择其它配送方式</view> <view v-else class="empty">当前无自提门店,请选择其它配送方式</view>
<image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')"></image> <image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')" show-menu-by-longpress></image>
</view> </view>
</template> </template>
@@ -170,7 +170,7 @@
<view class="goods-item" v-for="(goodsItem, goodsIndex) in goodsSpecFormat(calculateGoodsData.goods_list)" :key="goodsIndex"> <view class="goods-item" v-for="(goodsItem, goodsIndex) in goodsSpecFormat(calculateGoodsData.goods_list)" :key="goodsIndex">
<view class="goods-wrap"> <view class="goods-wrap">
<view class="goods-img" @click="$util.redirectTo('/pages_goods/detail', { goods_id: goodsItem.goods_id })"> <view class="goods-img" @click="$util.redirectTo('/pages_goods/detail', { goods_id: goodsItem.goods_id })">
<image :src="$util.img(goodsItem.sku_image, { size: 'mid' })" @error="imageError(goodsIndex)" mode="aspectFill"/> <image :src="$util.img(goodsItem.sku_image, { size: 'mid' })" @error="imageError(goodsIndex)" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="goods-info"> <view class="goods-info">
<view class="top-wrap"> <view class="top-wrap">
@@ -521,7 +521,7 @@
<view class="coupon-item" v-for="(couponItem, couponIndex) in merchCoupon.data" :key="couponIndex" @click="selectCoupon(couponItem,merchCoupon.merch_id)"> <view class="coupon-item" v-for="(couponItem, couponIndex) in merchCoupon.data" :key="couponIndex" @click="selectCoupon(couponItem,merchCoupon.merch_id)">
<view class="coupon-info" :style="{ backgroundColor: 'var(--main-color-shallow)' }"> <view class="coupon-info" :style="{ backgroundColor: 'var(--main-color-shallow)' }">
<view class="info-wrap"> <view class="info-wrap">
<image class="coupon-line" mode="heightFix" :src="$util.img('public/uniapp/coupon/coupon_line.png')"/> <image class="coupon-line" mode="heightFix" :src="$util.img('public/uniapp/coupon/coupon_line.png')" show-menu-by-longpress/>
<view class="coupon-money"> <view class="coupon-money">
<template v-if="couponItem.type == 'divideticket'"> <template v-if="couponItem.type == 'divideticket'">
<text class="unit">{{ $lang('common.currencySymbol') }}</text> <text class="unit">{{ $lang('common.currencySymbol') }}</text>

View File

@@ -111,9 +111,9 @@
<view class="code"> <view class="code">
<image :src="$util.img(orderData.pickup_barcode)" <image :src="$util.img(orderData.pickup_barcode)"
@click="previewMedia($util.img(orderData.pickup_barcode))" class="barcode" @click="previewMedia($util.img(orderData.pickup_barcode))" class="barcode"
mode="widthFix" /> mode="widthFix" show-menu-by-longpress/>
<image :src="$util.img(orderData.pickup)" @click="previewMedia($util.img(orderData.pickup))" <image :src="$util.img(orderData.pickup)" @click="previewMedia($util.img(orderData.pickup))"
class="qrcode" mode="widthFix" /> class="qrcode" mode="widthFix" show-menu-by-longpress/>
</view> </view>
</view> </view>
</view> </view>
@@ -126,7 +126,7 @@
<view class="goods-wrap"> <view class="goods-wrap">
<view class="goods-img" @click="goDetail(goodsItem)"> <view class="goods-img" @click="goDetail(goodsItem)">
<image :src="$util.img(goodsItem.sku_image, { size: 'mid' })" <image :src="$util.img(goodsItem.sku_image, { size: 'mid' })"
@error="imageError(goodsIndex)" mode="aspectFill" /> @error="imageError(goodsIndex)" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="goods-info" @click="goDetail(goodsItem)"> <view class="goods-info" @click="goDetail(goodsItem)">
<view class="goods-name">{{ goodsItem.sku_name }}</view> <view class="goods-name">{{ goodsItem.sku_name }}</view>
@@ -174,7 +174,7 @@
<view class="box img-box" v-if="item.controller == 'Img'"> <view class="box img-box" v-if="item.controller == 'Img'">
<view class="img" v-for="(img, imgIndex) in item.img_lists" :key="imgIndex"> <view class="img" v-for="(img, imgIndex) in item.img_lists" :key="imgIndex">
<image :src="$util.img(img)" mode="widthFix" <image :src="$util.img(img)" mode="widthFix"
@click="previewMedia($util.img(img))" /> @click="previewMedia($util.img(img))" show-menu-by-longpress/>
</view> </view>
</view> </view>
<view class="box" v-else> <view class="box" v-else>
@@ -314,7 +314,7 @@
<text class="tit">{{ item.value.title }}:</text> <text class="tit">{{ item.value.title }}:</text>
<view class="box img-box" v-if="item.controller == 'Img'"> <view class="box img-box" v-if="item.controller == 'Img'">
<view class="img" v-for="(img, imgIndex) in item.img_lists" :key="imgIndex"> <view class="img" v-for="(img, imgIndex) in item.img_lists" :key="imgIndex">
<image :src="$util.img(img)" mode="widthFix" @click="previewMedia($util.img(img))"></image> <image :src="$util.img(img)" mode="widthFix" @click="previewMedia($util.img(img))" show-menu-by-longpress></image>
</view> </view>
</view> </view>
<view class="box" v-else> <view class="box" v-else>
@@ -345,8 +345,8 @@
<block v-if="orderData.virtual_goods && orderData.goods_class == 2 && orderData.virtual_goods.is_veirfy == 0"> <block v-if="orderData.virtual_goods && orderData.goods_class == 2 && orderData.virtual_goods.is_veirfy == 0">
<view class="verify-code-wrap"> <view class="verify-code-wrap">
<view class="code"> <view class="code">
<image :src="$util.img(orderData.virtualgoods_barcode)" class="barcode" mode="widthFix"></image> <image :src="$util.img(orderData.virtualgoods_barcode)" class="barcode" mode="widthFix" show-menu-by-longpress></image>
<image :src="$util.img(orderData.virtualgoods)" class="qrcode" mode="widthFix"></image> <image :src="$util.img(orderData.virtualgoods)" class="qrcode" mode="widthFix" show-menu-by-longpress></image>
<text>请将条形码或二维码出示给核销员</text> <text>请将条形码或二维码出示给核销员</text>
</view> </view>
<view class="hr"></view> <view class="hr"></view>
@@ -426,8 +426,8 @@
<block v-if="orderData.virtual_goods && orderData.goods_class == 4"> <block v-if="orderData.virtual_goods && orderData.goods_class == 4">
<view class="verify-code-wrap" v-if="orderData.virtual_goods.is_veirfy == 0"> <view class="verify-code-wrap" v-if="orderData.virtual_goods.is_veirfy == 0">
<view class="code"> <view class="code">
<image :src="$util.img(orderData.virtualgoods_barcode)" class="barcode" mode="widthFix"></image> <image :src="$util.img(orderData.virtualgoods_barcode)" class="barcode" mode="widthFix" show-menu-by-longpress></image>
<image :src="$util.img(orderData.virtualgoods)" class="qrcode" mode="widthFix"></image> <image :src="$util.img(orderData.virtualgoods)" class="qrcode" mode="widthFix" show-menu-by-longpress></image>
<text>请将条形码或二维码出示给核销员</text> <text>请将条形码或二维码出示给核销员</text>
</view> </view>
<view class="hr"></view> <view class="hr"></view>

View File

@@ -24,7 +24,7 @@
<view class="goods-item"> <view class="goods-item">
<view class="goods-wrap"> <view class="goods-wrap">
<view @click="goDetail(orderData.exchange_goods_id)" class="goods-img"> <view @click="goDetail(orderData.exchange_goods_id)" class="goods-img">
<image :src="exchangeImage(orderData)" @error="imageError()" mode="aspectFill"></image> <image :src="exchangeImage(orderData)" @error="imageError()" mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
<view class="goods-info" @click="goDetail(orderData.exchange_goods_id)"> <view class="goods-info" @click="goDetail(orderData.exchange_goods_id)">
<view class="goods-name">{{ orderData.exchange_name }}</view> <view class="goods-name">{{ orderData.exchange_name }}</view>

View File

@@ -43,7 +43,7 @@
<view class="goods-img"> <view class="goods-img">
<image :src="$util.img(goodsItem.sku_image, { size: 'mid' })" <image :src="$util.img(goodsItem.sku_image, { size: 'mid' })"
@error="imageError(orderIndex, goodsIndex)" mode="aspectFill" @error="imageError(orderIndex, goodsIndex)" mode="aspectFill"
:lazy-load="true" /> :lazy-load="true" show-menu-by-longpress/>
</view> </view>
<view class="goods-info"> <view class="goods-info">
<view class="pro-info"> <view class="pro-info">
@@ -85,12 +85,12 @@
:key="goodsIndex"> :key="goodsIndex">
<image :src="$util.img(goodsItem.sku_image, { size: 'mid' })" <image :src="$util.img(goodsItem.sku_image, { size: 'mid' })"
@error="imageError(orderIndex, goodsIndex)" mode="aspectFill" @error="imageError(orderIndex, goodsIndex)" mode="aspectFill"
:lazy-load="true" /> :lazy-load="true" show-menu-by-longpress/>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="shade"> <view class="shade">
<image :src="$util.img('public/uniapp/order/order-shade.png')"></image> <image :src="$util.img('public/uniapp/order/order-shade.png')" show-menu-by-longpress></image>
</view> </view>
</view> </view>
</block> </block>
@@ -108,7 +108,7 @@
</view> </view>
<view class="order-action" v-if="orderItem.action.length > 0"> <view class="order-action" v-if="orderItem.action.length > 0">
<view class="order-time" v-if="orderItem.order_status == 0" id="action-date"> <view class="order-time" v-if="orderItem.order_status == 0" id="action-date">
<image :src="$util.img('public/uniapp/order/time.png')"></image> <image :src="$util.img('public/uniapp/order/time.png')" show-menu-by-longpress></image>
剩余时间: 剩余时间:
<uni-count-down :day="orderItem.discountTimeMachine.d" <uni-count-down :day="orderItem.discountTimeMachine.d"
:hour="orderItem.discountTimeMachine.h" :hour="orderItem.discountTimeMachine.h"

View File

@@ -11,11 +11,11 @@
<view v-if="status === ''"> <view v-if="status === ''">
<block v-if="basicsConfig.is_apply == 1"> <block v-if="basicsConfig.is_apply == 1">
<view class="image" :class="fenXiaoAgreement.agreement.img ? '' : 'color-base-bg'"> <view class="image" :class="fenXiaoAgreement.agreement.img ? '' : 'color-base-bg'">
<image v-if="fenXiaoAgreement.agreement.img" class="apply-adv" :src="$util.img(fenXiaoAgreement.agreement.img)" mode="widthFix" style="width: 100%;"/> <image v-if="fenXiaoAgreement.agreement.img" class="apply-adv" :src="$util.img(fenXiaoAgreement.agreement.img)" mode="widthFix" style="width: 100%;" show-menu-by-longpress/>
<view class="bg ns-gradient-otherpages-fenxiao-apply-apply-bg" v-else> <view class="bg ns-gradient-otherpages-fenxiao-apply-apply-bg" v-else>
<view class="bg-title"><text>请填写申请信息</text></view> <view class="bg-title"><text>请填写申请信息</text></view>
<view class="bg-img"> <view class="bg-img">
<image :src="$util.img('public/uniapp/fenxiao/apply/edit.png')" mode="scaleToFill"></image> <image :src="$util.img('public/uniapp/fenxiao/apply/edit.png')" mode="scaleToFill" show-menu-by-longpress></image>
</view> </view>
</view> </view>
</view> </view>
@@ -65,7 +65,7 @@
</view> </view>
<view class="goods-list" v-for="(item, index) in goodsList" :key="index" @click="toDetail(item)"> <view class="goods-list" v-for="(item, index) in goodsList" :key="index" @click="toDetail(item)">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"/> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress/>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}</view> <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}</view>
</view> </view>
<view class="goods-content"> <view class="goods-content">
@@ -88,7 +88,7 @@
</block> </block>
<view class="empty" v-else-if="basicsConfig.is_apply == 0" style="margin-top:40rpx;"> <view class="empty" v-else-if="basicsConfig.is_apply == 0" style="margin-top:40rpx;">
<block v-if="fenxiaoConfig.fenxiao_condition == 2 || fenxiaoConfig.fenxiao_condition == 3"> <block v-if="fenxiaoConfig.fenxiao_condition == 2 || fenxiaoConfig.fenxiao_condition == 3">
<image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix" show-menu-by-longpress></image>
<text v-if="fenxiaoConfig.fenxiao_condition == 2">申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费次数需要达到{{ fenxiaoConfig.consume_count }}次</text> <text v-if="fenxiaoConfig.fenxiao_condition == 2">申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费次数需要达到{{ fenxiaoConfig.consume_count }}次</text>
<text v-if="fenxiaoConfig.fenxiao_condition == 3"> <text v-if="fenxiaoConfig.fenxiao_condition == 3">
申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费金额需要达到{{ fenxiaoConfig.consume_money | moneyFormat }}元 申请成为{{ fenxiaoWords.fenxiao_name }},需要您的消费金额需要达到{{ fenxiaoConfig.consume_money | moneyFormat }}元
@@ -102,7 +102,7 @@
</view> </view>
<view class="goods-list" v-for="(item, index) in goodsList" :key="index" @click="toDetail(item)"> <view class="goods-list" v-for="(item, index) in goodsList" :key="index" @click="toDetail(item)">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"/> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress/>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}</view> <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}</view>
</view> </view>
<view class="goods-content"> <view class="goods-content">
@@ -122,12 +122,12 @@
</view> </view>
</view> </view>
<view class="empty" v-else> <view class="empty" v-else>
<image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix" show-menu-by-longpress></image>
<text>您还不是分销商</text> <text>您还不是分销商</text>
</view> </view>
</view> </view>
<view class="empty" v-else> <view class="empty" v-else>
<image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix" show-menu-by-longpress></image>
<text v-if="status == 1">您已提交{{ fenxiaoWords.fenxiao_name }}申请,等待平台审核</text> <text v-if="status == 1">您已提交{{ fenxiaoWords.fenxiao_name }}申请,等待平台审核</text>
<block v-else-if="status == -1"> <block v-else-if="status == -1">
<text>您提交的{{ fenxiaoWords.fenxiao_name }}申请,已被拒绝,请再接再厉</text> <text>您提交的{{ fenxiaoWords.fenxiao_name }}申请,已被拒绝,请再接再厉</text>

View File

@@ -4,8 +4,8 @@
<block slot="list"> <block slot="list">
<view class="balances" v-if="accountList.length" v-for="item in accountList" :key="item.id"> <view class="balances" v-if="accountList.length" v-for="item in accountList" :key="item.id">
<image v-if="item.type == 'order'" :src="$util.img('public/uniapp/fenxiao/bill/jiesuan.png')" <image v-if="item.type == 'order'" :src="$util.img('public/uniapp/fenxiao/bill/jiesuan.png')"
mode="widthFix"></image> mode="widthFix" show-menu-by-longpress></image>
<image v-else :src="$util.img('public/uniapp/fenxiao/bill/withdraw.png')" mode="widthFix"></image> <image v-else :src="$util.img('public/uniapp/fenxiao/bill/withdraw.png')" mode="widthFix" show-menu-by-longpress></image>
<view class="balances-info"> <view class="balances-info">
<text>{{ item.type_name }}</text> <text>{{ item.type_name }}</text>
<text>账单编号: {{ item.account_no }}</text> <text>账单编号: {{ item.account_no }}</text>

View File

@@ -6,8 +6,8 @@
@click="toFenxiaoOrder(item)"> @click="toFenxiaoOrder(item)">
<view class="li-box" :class="{ active: index + 1 == teamList.length }"> <view class="li-box" :class="{ active: index + 1 == teamList.length }">
<image v-if="item.headimg" :src="$util.img(item.headimg)" @error="imageError(index)" <image v-if="item.headimg" :src="$util.img(item.headimg)" @error="imageError(index)"
mode="aspectFill"></image> mode="aspectFill" show-menu-by-longpress></image>
<image v-else :src="$util.getDefaultImage().head"></image> <image v-else :src="$util.getDefaultImage().head" show-menu-by-longpress></image>
<view class="member-info"> <view class="member-info">
<view class="member-name"> <view class="member-name">
<view class="left"> <view class="left">

View File

@@ -23,7 +23,7 @@
@click="navToDetailPage(item)"> @click="navToDetailPage(item)">
<view class="image-wrap"> <view class="image-wrap">
<image :src="$util.img(item.sku_image, { size: 'mid' })" @error="imageError(index)" <image :src="$util.img(item.sku_image, { size: 'mid' })" @error="imageError(index)"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress />
</view> </view>
<view class="goods-content"> <view class="goods-content">
<view class="goods-name"> <view class="goods-name">
@@ -109,7 +109,7 @@
<template v-if="poster != '-1'"> <template v-if="poster != '-1'">
<view> <view>
<view class="image-wrap"> <view class="image-wrap">
<image :src="$util.img(poster)" :show-menu-by-longpress="true" /> <image :src="$util.img(poster)" show-menu-by-longpress />
</view> </view>
<!-- #ifdef MP || APP-PLUS --> <!-- #ifdef MP || APP-PLUS -->
<view class="save" @click="saveGoodsPoster()">保存图片</view> <view class="save" @click="saveGoodsPoster()">保存图片</view>

View File

@@ -8,7 +8,7 @@
<view class="member"> <view class="member">
<view class="member-pic"> <view class="member-pic">
<image :src="info.headimg ? $util.img(info.headimg) : $util.getDefaultImage().head" <image :src="info.headimg ? $util.img(info.headimg) : $util.getDefaultImage().head"
@error="info.headimg = $util.getDefaultImage().head" mode="aspectFill" /> @error="info.headimg = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
<!-- <text class="level-name ">{{ info.level_name }}</text> --> <!-- <text class="level-name ">{{ info.level_name }}</text> -->
</view> </view>
<view class="member-info"> <view class="member-info">
@@ -79,14 +79,14 @@
<view class="fenxiao-index-allmoney" style="padding: 0;border-radius:24rpx;margin-top: 0;" <view class="fenxiao-index-allmoney" style="padding: 0;border-radius:24rpx;margin-top: 0;"
@click="toPoster()"> @click="toPoster()">
<image :src="$util.img('public/uniapp/fenxiao/index/commissionFission-qrcode1.png')" mode="widthFix" <image :src="$util.img('public/uniapp/fenxiao/index/commissionFission-qrcode1.png')" mode="widthFix"
style="width: 100%;border-radius:24rpx" /> style="width: 100%;border-radius:24rpx" show-menu-by-longpress/>
</view> </view>
<!-- 功能列表 --> <!-- 功能列表 -->
<view class="fenxiao-menu-list"> <view class="fenxiao-menu-list">
<view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/team')"> <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/team')">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/down-line.png')" mode="widthFix"> <image :src="$util.img('public/uniapp/fenxiao/index/down-line.png')" mode="widthFix" show-menu-by-longpress>
</image> </image>
</view> </view>
<view class="info"> <view class="info">
@@ -96,7 +96,7 @@
</view> </view>
<view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/withdraw_list')"> <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/withdraw_list')">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/jifenjiangli.png')" mode="widthFix"> <image :src="$util.img('public/uniapp/fenxiao/index/jifenjiangli.png')" mode="widthFix" show-menu-by-longpress>
</image> </image>
</view> </view>
<view class="info"> <view class="info">
@@ -107,7 +107,7 @@
</view> </view>
<view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/order')"> <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/order')">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/fenxiaodingdan.png')" mode="widthFix"> <image :src="$util.img('public/uniapp/fenxiao/index/fenxiaodingdan.png')" mode="widthFix" show-menu-by-longpress>
</image> </image>
</view> </view>
<view class="info"> <view class="info">
@@ -118,7 +118,7 @@
<view class="menu-item" @click="toPoster()"> <view class="menu-item" @click="toPoster()">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/friend.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/friend.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="info"> <view class="info">
<view class="title">我的邀请码</view> <view class="title">我的邀请码</view>
@@ -127,7 +127,7 @@
</view> </view>
<!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/promote')"> <!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/promote')">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/code.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/code.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="info"> <view class="info">
<view class="title">邀请好友</view> <view class="title">邀请好友</view>
@@ -136,7 +136,7 @@
</view> --> </view> -->
<!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/bill')"> <!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/bill')">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/bill.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/bill.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="info"> <view class="info">
<view class="title">账单报表</view> <view class="title">账单报表</view>
@@ -145,7 +145,7 @@
</view> </view>
<view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/goods_list', { templateId: templateId })"> <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/goods_list', { templateId: templateId })">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/market.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/market.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="info"> <view class="info">
<view class="title">{{ fenxiaoWords.concept }}商品</view> <view class="title">{{ fenxiaoWords.concept }}商品</view>
@@ -154,7 +154,7 @@
</view> --> </view> -->
<!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/ranking_list', { type: 'profit' })"> <!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/ranking_list', { type: 'profit' })">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/commission_rank.png')" mode="widthFix"> <image :src="$util.img('public/uniapp/fenxiao/index/commission_rank.png')" mode="widthFix" show-menu-by-longpress>
</image> </image>
</view> </view>
<view class="info"> <view class="info">
@@ -164,7 +164,7 @@
</view> --> </view> -->
<!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/ranking_list', { type: 'invited_num' })"> <!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/ranking_list', { type: 'invited_num' })">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/promoter_rank.png')" mode="widthFix"> <image :src="$util.img('public/uniapp/fenxiao/index/promoter_rank.png')" mode="widthFix" show-menu-by-longpress>
</image> </image>
</view> </view>
<view class="info"> <view class="info">
@@ -174,7 +174,7 @@
</view> --> </view> -->
<!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/level')" v-if="levelList.length"> <!-- <view class="menu-item" @click="$util.redirectTo('/pages_promotion/fenxiao/level')" v-if="levelList.length">
<view class="icon-wrap"> <view class="icon-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/team_reward.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/team_reward.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="info"> <view class="info">
<view class="title">等级说明</view> <view class="title">等级说明</view>
@@ -187,7 +187,7 @@
<view class="fenxiao-index-other"> <view class="fenxiao-index-other">
<view @click="$util.redirectTo('/pages_promotion/fenxiao/team')" class="all-money-item"> <view @click="$util.redirectTo('/pages_promotion/fenxiao/team')" class="all-money-item">
<view class="img-wrap"> <view class="img-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/down-line.png')" mode="aspectFill"></image> <image :src="$util.img('public/uniapp/fenxiao/index/down-line.png')" mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
<view class="all-money-tit-wrap"> <view class="all-money-tit-wrap">
<text class="all-money-tit">我的粉丝</text> <text class="all-money-tit">我的粉丝</text>
@@ -198,7 +198,7 @@
<view class="fenxiao-index-other"> <view class="fenxiao-index-other">
<view @click="$util.redirectTo('/pages_promotion/fenxiao/child_fenxiao')" class="all-money-item"> <view @click="$util.redirectTo('/pages_promotion/fenxiao/child_fenxiao')" class="all-money-item">
<view class="img-wrap"> <view class="img-wrap">
<image :src="$util.img('public/uniapp/fenxiao/index/yejikaohe.png')" mode="aspectFill"></image> <image :src="$util.img('public/uniapp/fenxiao/index/yejikaohe.png')" mode="aspectFill" show-menu-by-longpress></image>
</view> </view>
<view class="all-money-tit-wrap"> <view class="all-money-tit-wrap">
<text class="all-money-tit">{{ fenxiaoWords.fenxiao_name }}</text> <text class="all-money-tit">{{ fenxiaoWords.fenxiao_name }}</text>
@@ -210,7 +210,7 @@
</block> </block>
<ns-copyright></ns-copyright> <ns-copyright></ns-copyright>
<view class="empty" v-if="!info.fenxiao_id > 0 && showEmpty"> <view class="empty" v-if="!info.fenxiao_id > 0 && showEmpty">
<image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/fenxiao/index/no-fenxiao.png')" mode="widthFix" show-menu-by-longpress></image>
<text>您还不是{{ fenxiaoWords.fenxiao_name }},请先提交申请</text> <text>您还不是{{ fenxiaoWords.fenxiao_name }},请先提交申请</text>
<view @click="$util.redirectTo('/pages_promotion/fenxiao/apply')" class="color-base-bg">立即加入</view> <view @click="$util.redirectTo('/pages_promotion/fenxiao/apply')" class="color-base-bg">立即加入</view>
</view> </view>

View File

@@ -10,7 +10,7 @@
<view class="level-wrap"> <view class="level-wrap">
<view class="member-info"> <view class="member-info">
<view class="head-img"> <view class="head-img">
<image :src="fenxiaoInfo.headimg ? $util.img(fenxiaoInfo.headimg) : $util.getDefaultImage().head" @error="fenxiaoInfo.headimg = $util.getDefaultImage().head" mode="aspectFill"/> <image :src="fenxiaoInfo.headimg ? $util.img(fenxiaoInfo.headimg) : $util.getDefaultImage().head" @error="fenxiaoInfo.headimg = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="nickname">{{ fenxiaoInfo.nickname }}</view> <view class="nickname">{{ fenxiaoInfo.nickname }}</view>
<view class="level-name">{{ item.level_name }}</view> <view class="level-name">{{ item.level_name }}</view>

View File

@@ -24,7 +24,7 @@
<view class="goods-wrap"> <view class="goods-wrap">
<view class="goods-img"> <view class="goods-img">
<image :src="$util.img(orderItem.sku_image, { size: 'mid' })" <image :src="$util.img(orderItem.sku_image, { size: 'mid' })"
@error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true"></image> @error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true" show-menu-by-longpress></image>
</view> </view>
<view class="goods-info"> <view class="goods-info">
<view class="top-wrap"> <view class="top-wrap">

View File

@@ -12,7 +12,7 @@
</view> </view>
<view class="detail-body"> <view class="detail-body">
<view class="detail-body-box"> <view class="detail-body-box">
<view class="goods-image"><image :src="$util.img(orderData.sku_image, { size: 'mid' })" @error="imageError()" mode="aspectFill"></image></view> <view class="goods-image"><image :src="$util.img(orderData.sku_image, { size: 'mid' })" @error="imageError()" mode="aspectFill" show-menu-by-longpress></image></view>
<view class="order-info"> <view class="order-info">
<view class="goods-name">{{ orderData.sku_name }}</view> <view class="goods-name">{{ orderData.sku_name }}</view>
<view class="goods-sub-section margin-top"> <view class="goods-sub-section margin-top">

View File

@@ -6,7 +6,7 @@
<view class="earnings-head-wrap"> <view class="earnings-head-wrap">
<view class="earnings-head"> <view class="earnings-head">
<image class="name" :src="$util.img('public/uniapp/fenxiao/promote/my_earnings.png')" <image class="name" :src="$util.img('public/uniapp/fenxiao/promote/my_earnings.png')"
mode="aspectFit"></image> mode="aspectFit" show-menu-by-longpress></image>
<image class="money-bg" :src="$util.img('public/uniapp/fenxiao/promote/money.png')" <image class="money-bg" :src="$util.img('public/uniapp/fenxiao/promote/money.png')"
mode="aspectFill"></image> mode="aspectFill"></image>
<view class="content"> <view class="content">
@@ -26,7 +26,7 @@
<view class="earnings-item" v-for="(item, index) in promote.list" :key="index"> <view class="earnings-item" v-for="(item, index) in promote.list" :key="index">
<image class="item-img" <image class="item-img"
:src="item.headimg ? $util.img(item.headimg) : $util.getDefaultImage().head" :src="item.headimg ? $util.img(item.headimg) : $util.getDefaultImage().head"
@error="item.headimg = $util.getDefaultImage().head" mode="aspectFill"></image> @error="item.headimg = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress></image>
<view class="item-content"> <view class="item-content">
<view class="item-name multi-hidden">{{ item.nickname }}</view> <view class="item-name multi-hidden">{{ item.nickname }}</view>
</view> </view>
@@ -38,7 +38,7 @@
</view> </view>
<view class="activity-rules"> <view class="activity-rules">
<image class="rules-name" :src="$util.img('public/uniapp/fenxiao/promote/activity_rules.png')" <image class="rules-name" :src="$util.img('public/uniapp/fenxiao/promote/activity_rules.png')"
mode="aspectFit"></image> mode="aspectFit" show-menu-by-longpress></image>
<view class="content" v-if="promoteContent.content"><rich-text <view class="content" v-if="promoteContent.content"><rich-text
:nodes="promoteContent.content"></rich-text></view> :nodes="promoteContent.content"></rich-text></view>
<view class="rules-empty" v-else>暂无活动规则</view> <view class="rules-empty" v-else>暂无活动规则</view>

View File

@@ -4,7 +4,7 @@
<swiper-item v-for="(item, index) in poster" :key="index"> <swiper-item v-for="(item, index) in poster" :key="index">
<view class="swiper-item"> <view class="swiper-item">
<view class="poster-wrap"> <view class="poster-wrap">
<image :src="$util.img(item)" mode="widthFix" :show-menu-by-longpress="true" /> <image :src="$util.img(item)" mode="widthFix" show-menu-by-longpress />
</view> </view>
</view> </view>
</swiper-item> </swiper-item>

View File

@@ -8,7 +8,7 @@
<view class="info"> <view class="info">
<view class="info-pic"> <view class="info-pic">
<image :src="info.headimg ? $util.img(info.headimg) : $util.getDefaultImage().head" <image :src="info.headimg ? $util.img(info.headimg) : $util.getDefaultImage().head"
@error="info.headimg = $util.getDefaultImage().head" mode="aspectFill" /> @error="info.headimg = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="member-info"> <view class="member-info">
<view class="rank-info-box"> <view class="rank-info-box">
@@ -81,7 +81,7 @@
<view class="content"> <view class="content">
<view class="head-img"> <view class="head-img">
<image :src="item.headimg ? $util.img(item.headimg) : $util.getDefaultImage().head" <image :src="item.headimg ? $util.img(item.headimg) : $util.getDefaultImage().head"
@error="item.headimg = $util.getDefaultImage().head" mode="aspectFill" /> @error="item.headimg = $util.getDefaultImage().head" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="nickname">{{ item.nickname }}</view> <view class="nickname">{{ item.nickname }}</view>
</view> </view>

View File

@@ -17,7 +17,7 @@
<view class="goods-wrap"> <view class="goods-wrap">
<view class="goods-img"> <view class="goods-img">
<image :src="$util.img(orderItem.sku_image, { size: 'mid' })" <image :src="$util.img(orderItem.sku_image, { size: 'mid' })"
@error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true"></image> @error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true" show-menu-by-longpress></image>
</view> </view>
<view class="goods-info"> <view class="goods-info">
<view class="top-wrap"> <view class="top-wrap">

View File

@@ -14,8 +14,8 @@
@click="toFenxiaoOrder(item)"> @click="toFenxiaoOrder(item)">
<view class="li-box" :class="{ active: index + 1 == teamList.length }"> <view class="li-box" :class="{ active: index + 1 == teamList.length }">
<image v-if="item.headimg" :src="$util.img(item.headimg)" @error="imageError(index)" <image v-if="item.headimg" :src="$util.img(item.headimg)" @error="imageError(index)"
mode="aspectFill"></image> mode="aspectFill" show-menu-by-longpress></image>
<image v-else :src="$util.getDefaultImage().head"></image> <image v-else :src="$util.getDefaultImage().head" show-menu-by-longpress></image>
<view class="member-info"> <view class="member-info">
<view class="member-name"> <view class="member-name">
<block v-if="item.is_fenxiao"> <block v-if="item.is_fenxiao">

View File

@@ -6,13 +6,13 @@
<view class="tx-bank" v-if="bankAccountInfo.withdraw_type == 'wechatpay'">微信默认钱包</view> <view class="tx-bank" v-if="bankAccountInfo.withdraw_type == 'wechatpay'">微信默认钱包</view>
<view class="tx-bank" v-else>{{ bankAccountInfo.bank_account }} </view> <view class="tx-bank" v-else>{{ bankAccountInfo.bank_account }} </view>
<view class="tx-img" v-if="bankAccountInfo.withdraw_type == 'alipay'"> <view class="tx-img" v-if="bankAccountInfo.withdraw_type == 'alipay'">
<image :src="$util.img('public/uniapp/member/apply_withdrawal/alipay.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/member/apply_withdrawal/alipay.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="tx-img" v-else-if="bankAccountInfo.withdraw_type == 'bank'"> <view class="tx-img" v-else-if="bankAccountInfo.withdraw_type == 'bank'">
<image :src="$util.img('public/uniapp/member/apply_withdrawal/bank.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/member/apply_withdrawal/bank.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="tx-img" v-else-if="bankAccountInfo.withdraw_type == 'wechatpay'"> <view class="tx-img" v-else-if="bankAccountInfo.withdraw_type == 'wechatpay'">
<image :src="$util.img('public/uniapp/member/apply_withdrawal/wechatpay.png')" mode="widthFix"> <image :src="$util.img('public/uniapp/member/apply_withdrawal/wechatpay.png')" mode="widthFix" show-menu-by-longpress>
</image> </image>
</view> </view>
</view> </view>
@@ -21,7 +21,7 @@
<text class="tx-to">提现到</text> <text class="tx-to">提现到</text>
<view class="tx-bank">余额</view> <view class="tx-bank">余额</view>
<view class="tx-img"> <view class="tx-img">
<image :src="$util.img('public/uniapp/member/apply_withdrawal/tixian.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/member/apply_withdrawal/tixian.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
</view> </view>
<view class="iconfont icon-right"></view> <view class="iconfont icon-right"></view>
@@ -33,7 +33,7 @@
<text class="unit">{{ $lang('common.currencySymbol') }}</text> <text class="unit">{{ $lang('common.currencySymbol') }}</text>
<input type="digit" class="withdraw-money" v-model="withdrawMoney" /> <input type="digit" class="withdraw-money" v-model="withdrawMoney" />
<view class="delete" @click="remove" v-if="withdrawMoney"> <view class="delete" @click="remove" v-if="withdrawMoney">
<image :src="$util.img('public/uniapp/member/apply_withdrawal/close.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/member/apply_withdrawal/close.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
</view> </view>
<view class="bottom"> <view class="bottom">

View File

@@ -12,7 +12,7 @@
<view class="iconfont" :class="{ 'icon-apps': isList, 'icon-list': !isList }" @click="changeListStyle()"></view> --> <view class="iconfont" :class="{ 'icon-apps': isList, 'icon-list': !isList }" @click="changeListStyle()"></view> -->
<view style="width: 100rpx;height: 100rpx;"> <view style="width: 100rpx;height: 100rpx;">
<image :src="$util.img(merch.merch_image)" mode="widthFix" style="width: 100rpx;height: 100rpx;" /> <image :src="$util.img(merch.merch_image)" mode="widthFix" style="width: 100rpx;height: 100rpx;" show-menu-by-longpress/>
</view> </view>
<view style="margin-left: 20rpx;padding-top: 22rpx;"> <view style="margin-left: 20rpx;padding-top: 22rpx;">
<view style="line-height: 1;font-size: 32rpx;font-weight: 600;">{{ merch.merch_name }}</view> <view style="line-height: 1;font-size: 32rpx;font-weight: 600;">{{ merch.merch_name }}</view>
@@ -64,7 +64,7 @@
<view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index" <view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index"
@click="toDetail(item)"> @click="toDetail(item)">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }} <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}
</view> </view>
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">
@@ -95,10 +95,10 @@
<view class="member-price-tag" <view class="member-price-tag"
v-if="item.member_price && item.member_price == showPrice(item)"> v-if="item.member_price && item.member_price == showPrice(item)">
<image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="member-price-tag" v-else-if="item.promotion_type == 1"> <view class="member-price-tag" v-else-if="item.promotion_type == 1">
<image :src="$util.img('public/uniapp/index/discount.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/index/discount.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
</view> </view>
<view class="pro-info" v-if="item.isinformation == 0"> <view class="pro-info" v-if="item.isinformation == 0">
@@ -160,7 +160,7 @@
@click="toDetail(item)" @click="toDetail(item)"
:style="{ left: listPosition[index] ? listPosition[index].left : '', top: listPosition[index] ? listPosition[index].top : '' }"> :style="{ left: listPosition[index] ? listPosition[index].left : '', top: listPosition[index] ? listPosition[index].top : '' }">
<view class="goods-img"> <view class="goods-img">
<image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item.goods_image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress></image>
<view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }} <view class="color-base-bg goods-tag" v-if="goodsTag(item) != ''">{{ goodsTag(item) }}
</view> </view>
<view class="sell-out" v-if="item.stock <= 0"> <view class="sell-out" v-if="item.stock <= 0">
@@ -187,10 +187,10 @@
</view> </view>
<view class="member-price-tag" <view class="member-price-tag"
v-if="item.member_price && item.member_price == showPrice(item)"> v-if="item.member_price && item.member_price == showPrice(item)">
<image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/index/VIP.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="member-price-tag" v-else-if="item.promotion_type == 1"> <view class="member-price-tag" v-else-if="item.promotion_type == 1">
<image :src="$util.img('public/uniapp/index/discount.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/index/discount.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="delete-price color-tip price-font" v-if="showMarketPrice(item)"> <view class="delete-price color-tip price-font" v-if="showMarketPrice(item)">
<text class="unit">{{ $lang('common.currencySymbol') }}</text> <text class="unit">{{ $lang('common.currencySymbol') }}</text>

View File

@@ -32,21 +32,21 @@
<view class="category-list"> <view class="category-list">
<view class="category-item" v-for="(one, oneIndex) in item.child_list" :key="oneIndex" @click="$util.redirectTo('/pages_promotion/merch/detail', { merch_id: one.merch_id })"> <view class="category-item" v-for="(one, oneIndex) in item.child_list" :key="oneIndex" @click="$util.redirectTo('/pages_promotion/merch/detail', { merch_id: one.merch_id })">
<view class="img-box"> <view class="img-box">
<image :src="$util.img(one.merch_image)" mode="widthFix"/> <image :src="$util.img(one.merch_image)" mode="widthFix" show-menu-by-longpress/>
</view> </view>
<view class="name">{{ one.merch_name }}</view> <view class="name">{{ one.merch_name }}</view>
</view> </view>
</view> </view>
</view> </view>
<!-- <view class="category-empty" v-else> <!-- <view class="category-empty" v-else>
<image src="/static/common-empty.png" mode="widthFix"/> <image src="/static/common-empty.png" mode="widthFix" show-menu-by-longpress/>
</view> --> </view> -->
</view> </view>
</scroll-view> </scroll-view>
</view> </view>
</block> </block>
<!-- <view class="category-empty"> <!-- <view class="category-empty">
<image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix"></image> <image :src="$util.img('public/uniapp/category/empty.png')" mode="widthFix" show-menu-by-longpress></image>
<view class="tips">暂时没有分类哦!</view> <view class="tips">暂时没有分类哦!</view>
</view> --> </view> -->
</view> </view>

View File

@@ -17,17 +17,17 @@
<image class="adv-pic" <image class="adv-pic"
:src="pointInfo.image ? $util.img(pointInfo.image) : $util.img('public/uniapp/point/coupon.png')" :src="pointInfo.image ? $util.img(pointInfo.image) : $util.img('public/uniapp/point/coupon.png')"
@error="imageError($util.img('public/uniapp/point/coupon.png'))" @error="imageError($util.img('public/uniapp/point/coupon.png'))"
mode="aspectFit" /> mode="aspectFit" show-menu-by-longpress/>
</view> </view>
<view class="item" v-else-if="pointInfo.type == 3"> <view class="item" v-else-if="pointInfo.type == 3">
<image class="adv-pic" <image class="adv-pic"
:src="pointInfo.image ? $util.img(pointInfo.image) : $util.img('public/uniapp/point/hongbao.png')" :src="pointInfo.image ? $util.img(pointInfo.image) : $util.img('public/uniapp/point/hongbao.png')"
@error="imageError($util.img('public/uniapp/point/hongbao.png'))" @error="imageError($util.img('public/uniapp/point/hongbao.png'))"
mode="aspectFit" /> mode="aspectFit" show-menu-by-longpress/>
</view> </view>
<view class="item" v-else> <view class="item" v-else>
<image class="adv-pic" :src="$util.img(pointInfo.image)" @error="imageError()" <image class="adv-pic" :src="$util.img(pointInfo.image)" @error="imageError()"
mode="aspectFit"></image> mode="aspectFit" show-menu-by-longpress></image>
</view> </view>
</swiper-item> </swiper-item>
</swiper> </swiper>
@@ -82,7 +82,7 @@
<!-- 添加二维码 start --> <!-- 添加二维码 start -->
<view class="detail-community" v-if="pointInfo.qr_data && pointInfo.qr_data.qr_state == 1"> <view class="detail-community" v-if="pointInfo.qr_data && pointInfo.qr_data.qr_state == 1">
<view class="community-box"> <view class="community-box">
<image :src="$util.img('public/uniapp/goods/detail_erweiImage.png')" mode="aspectFill"></image> <image :src="$util.img('public/uniapp/goods/detail_erweiImage.png')" mode="aspectFill" show-menu-by-longpress></image>
<view class="community-content"> <view class="community-content">
<view class="community-title">{{ pointInfo.qr_data.qr_name }}</view> <view class="community-title">{{ pointInfo.qr_data.qr_name }}</view>
<view class="community-txt">{{ pointInfo.qr_data.community_describe }}</view> <view class="community-txt">{{ pointInfo.qr_data.community_describe }}</view>
@@ -102,7 +102,7 @@
<image :src="pointInfo.qr_data.qr_img != '' && pointInfo.qr_data.qr_state == 1 <image :src="pointInfo.qr_data.qr_img != '' && pointInfo.qr_data.qr_state == 1
? $util.img(pointInfo.qr_data.qr_img) ? $util.img(pointInfo.qr_data.qr_img)
: $util.img('public/uniapp/goods/detail_erweiImage.png') : $util.img('public/uniapp/goods/detail_erweiImage.png')
" mode="aspectFill" show-menu-by-longpress="true" /> " mode="aspectFill" show-menu-by-longpress />
</view> </view>
<view class="community-model-content-text">长按识别二维码,添加社群</view> <view class="community-model-content-text">长按识别二维码,添加社群</view>
</view> </view>

View File

@@ -50,7 +50,7 @@
<view class="goods-list double-column" v-if="goodsList.length"> <view class="goods-list double-column" v-if="goodsList.length">
<view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index"> <view class="goods-item margin-bottom" v-for="(item, index) in goodsList" :key="index">
<view class="goods-img" @click="toDetail(item)"> <view class="goods-img" @click="toDetail(item)">
<image :src="goodsImg(item.image)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item.image)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress></image>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
<view class="name-wrap"> <view class="name-wrap">

View File

@@ -45,25 +45,25 @@
<!-- <view class="menu-wrap"> <!-- <view class="menu-wrap">
<view class="menu-list"> <view class="menu-list">
<view class="menu-item" @click="openPointPopup()"> <view class="menu-item" @click="openPointPopup()">
<image :src="$util.img('/public/uniapp/point/point-rule.png')" class="menu-img"></image> <image :src="$util.img('/public/uniapp/point/point-rule.png')" class="menu-img" show-menu-by-longpress></image>
<image :src="$util.img('/public/uniapp/point/must-see.png')" class="menu-tag"></image> <image :src="$util.img('/public/uniapp/point/must-see.png')" class="menu-tag" show-menu-by-longpress></image>
<view class="title">活动规则</view> <view class="title">活动规则</view>
</view> </view>
<view class="menu-item" @click="redirect('/pages_tool/recharge/list')"> <view class="menu-item" @click="redirect('/pages_tool/recharge/list')">
<image :src="$util.img('/public/uniapp/point/recharge.png')" class="menu-img"></image> <image :src="$util.img('/public/uniapp/point/recharge.png')" class="menu-img" show-menu-by-longpress></image>
<image :src="$util.img('/public/uniapp/point/high.png')" class="menu-tag"></image> <image :src="$util.img('/public/uniapp/point/high.png')" class="menu-tag" show-menu-by-longpress></image>
<view class="title">储值赚积分</view> <view class="title">储值赚积分</view>
</view> </view>
<view class="menu-item" @click="redirect('/pages_promotion/point/order_list')"> <view class="menu-item" @click="redirect('/pages_promotion/point/order_list')">
<image :src="$util.img('/public/uniapp/point/exchange-record.png')" class="menu-img"></image> <image :src="$util.img('/public/uniapp/point/exchange-record.png')" class="menu-img" show-menu-by-longpress></image>
<view class="title">兑换记录</view> <view class="title">兑换记录</view>
</view> </view>
<view class="menu-item" @click="luckdraw"> <view class="menu-item" @click="luckdraw">
<image :src="$util.img('/public/uniapp/point/luck-draw.png')" class="menu-img"></image> <image :src="$util.img('/public/uniapp/point/luck-draw.png')" class="menu-img" show-menu-by-longpress></image>
<view class="title">积分抽奖</view> <view class="title">积分抽奖</view>
</view> </view>
<view class="menu-item" @click="redirect('/pages_tool/member/point_detail')"> <view class="menu-item" @click="redirect('/pages_tool/member/point_detail')">
<image :src="$util.img('/public/uniapp/point/point-detail.png')" class="menu-img"></image> <image :src="$util.img('/public/uniapp/point/point-detail.png')" class="menu-img" show-menu-by-longpress></image>
<view class="title">积分明细</view> <view class="title">积分明细</view>
</view> </view>
</view> </view>
@@ -71,10 +71,10 @@
<!-- <!--
<view class="poster-wrap"> <view class="poster-wrap">
<view class="poster-item" @click="redirect('/pages_tool/recharge/list')"> <view class="poster-item" @click="redirect('/pages_tool/recharge/list')">
<image :src="$util.img('/public/uniapp/point/recharge-poster.png')" mode="widthFix"></image> <image :src="$util.img('/public/uniapp/point/recharge-poster.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="poster-item" @click="luckdraw"> <view class="poster-item" @click="luckdraw">
<image :src="$util.img('/public/uniapp/point/luck-draw-poster.png')" mode="widthFix"></image> <image :src="$util.img('/public/uniapp/point/luck-draw-poster.png')" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
</view> --> </view> -->
@@ -186,7 +186,7 @@
<view class="goods-list double-column" v-if="goodsList.length"> <view class="goods-list double-column" v-if="goodsList.length">
<view class="goods-item " v-for="(item, index) in goodsList" :key="index"> <view class="goods-item " v-for="(item, index) in goodsList" :key="index">
<view class="goods-img" @click="toDetail(item)"> <view class="goods-img" @click="toDetail(item)">
<image :src="goodsImg(item)" mode="widthFix" @error="imgError(index)"></image> <image :src="goodsImg(item)" mode="widthFix" @error="imgError(index)" show-menu-by-longpress></image>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
<view class="name-wrap"> <view class="name-wrap">

View File

@@ -28,16 +28,16 @@
<block v-if="orderItem.type == 2"> <block v-if="orderItem.type == 2">
<image <image
:src="$util.img(orderItem.exchange_image) ? $util.img(orderItem.exchange_image) : $util.img('public/uniapp/point/coupon.png')" :src="$util.img(orderItem.exchange_image) ? $util.img(orderItem.exchange_image) : $util.img('public/uniapp/point/coupon.png')"
@error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true"></image> @error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true" show-menu-by-longpress></image>
</block> </block>
<block v-else-if="orderItem.type == 3"> <block v-else-if="orderItem.type == 3">
<image <image
:src="$util.img(orderItem.exchange_image) ? $util.img(orderItem.exchange_image) : $util.img('public/uniapp/point/hongbao.png')" :src="$util.img(orderItem.exchange_image) ? $util.img(orderItem.exchange_image) : $util.img('public/uniapp/point/hongbao.png')"
@error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true"></image> @error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true" show-menu-by-longpress></image>
</block> </block>
<block v-else> <block v-else>
<image :src="$util.img(orderItem.exchange_image)" <image :src="$util.img(orderItem.exchange_image)"
@error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true"></image> @error="imageError(orderIndex)" mode="aspectFill" :lazy-load="true" show-menu-by-longpress></image>
</block> </block>
</view> </view>
<view class="goods-info"> <view class="goods-info">

View File

@@ -90,7 +90,7 @@
</view> </view>
</view> </view>
</block> </block>
<image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')"></image> <image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')" show-menu-by-longpress></image>
</view> </view>
<view class="store-box" <view class="store-box"
@@ -139,7 +139,7 @@
</block> </block>
<view v-else class="empty">当前无自提门店,请选择其它配送方式</view> <view v-else class="empty">当前无自提门店,请选择其它配送方式</view>
<image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')"></image> <image class="address-line" :src="$util.img('public/uniapp/order/address-line.png')" show-menu-by-longpress></image>
</view> </view>
</template> </template>
@@ -167,20 +167,20 @@
<view class="goods-img"> <view class="goods-img">
<image <image
:src="orderPaymentData.exchange_info.image ? $util.img(orderPaymentData.exchange_info.image) : $util.img('public/uniapp/point/coupon.png')" :src="orderPaymentData.exchange_info.image ? $util.img(orderPaymentData.exchange_info.image) : $util.img('public/uniapp/point/coupon.png')"
@error="imageError()" mode="aspectFill" /> @error="imageError()" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
</block> </block>
<block v-else-if="orderPaymentData.exchange_info.type == 3"> <block v-else-if="orderPaymentData.exchange_info.type == 3">
<view class="goods-img"> <view class="goods-img">
<image <image
:src="orderPaymentData.exchange_info.image ? $util.img(orderPaymentData.exchange_info.image) : $util.img('public/uniapp/point/hongbao.png')" :src="orderPaymentData.exchange_info.image ? $util.img(orderPaymentData.exchange_info.image) : $util.img('public/uniapp/point/hongbao.png')"
@error="imageError()" mode="aspectFill" /> @error="imageError()" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
</block> </block>
<block v-else> <block v-else>
<view class="goods-img"> <view class="goods-img">
<image :src="$util.img(orderPaymentData.exchange_info.image)" @error="imageError()" <image :src="$util.img(orderPaymentData.exchange_info.image)" @error="imageError()"
mode="aspectFill" /> mode="aspectFill" show-menu-by-longpress/>
</view> </view>
</block> </block>
<view class="goods-info"> <view class="goods-info">

View File

@@ -1,7 +1,7 @@
<template> <template>
<view class="container" :style="themeColor"> <view class="container" :style="themeColor">
<view class="image-wrap"> <view class="image-wrap">
<image :src="$util.img('public/uniapp/pay/pay_success.png')" class="result-image" mode="widthFix"></image> <image :src="$util.img('public/uniapp/pay/pay_success.png')" class="result-image" mode="widthFix" show-menu-by-longpress></image>
</view> </view>
<view class="msg">{{ $lang('exchangeSuccess') }}</view> <view class="msg">{{ $lang('exchangeSuccess') }}</view>
<view class="action"> <view class="action">

View File

@@ -1,6 +1,6 @@
<template name="yq-avatar"> <template name="yq-avatar">
<view> <view>
<image v-if="imgSrc.imgSrc" :src="imgSrc.imgSrc" @click="fSelect" :style="[iS]" class="my-avatar"></image> <image v-if="imgSrc.imgSrc" :src="imgSrc.imgSrc" @click="fSelect" :style="[iS]" class="my-avatar" show-menu-by-longpress></image>
<canvas canvas-id="avatar-canvas" id="avatar-canvas" class="my-canvas" :style="{ top: sT, height: csH }" disable-scroll="false"></canvas> <canvas canvas-id="avatar-canvas" id="avatar-canvas" class="my-canvas" :style="{ top: sT, height: csH }" disable-scroll="false"></canvas>
<canvas <canvas
canvas-id="oper-canvas" canvas-id="oper-canvas"

View File

@@ -10,9 +10,9 @@
</view> </view>
<view class="birthday-title-desc" v-else>感谢您一直以来的支持,在您生日到来之际,特为您送上最真诚的祝福!</view> <view class="birthday-title-desc" v-else>感谢您一直以来的支持,在您生日到来之际,特为您送上最真诚的祝福!</view>
<view class="birthday-title-hint"> <view class="birthday-title-hint">
<image :src="$util.img('public/uniapp/birthday_gift/birthday_gift_left.png')" mode="" class="birthday-img-all"/> <image :src="$util.img('public/uniapp/birthday_gift/birthday_gift_left.png')" mode="" class="birthday-img-all" show-menu-by-longpress/>
<view class="font-size-toolbar">生日贺礼</view> <view class="font-size-toolbar">生日贺礼</view>
<image :src="$util.img('public/uniapp/birthday_gift/birthday_gift_right.png')" mode="" class="birthday-img-all"/> <image :src="$util.img('public/uniapp/birthday_gift/birthday_gift_right.png')" mode="" class="birthday-img-all" show-menu-by-longpress/>
</view> </view>
<scroll-view scroll-y="true" class="register-box"> <scroll-view scroll-y="true" class="register-box">
<view class="reward-content"> <view class="reward-content">

View File

@@ -5,9 +5,9 @@
<view class="reward-wrap"> <view class="reward-wrap">
<view class="newgift-content" :style="{ backgroundImage: 'url(' + $util.img('public/uniapp/new_gift/holiday_polite-bg.png') + ')' }"> <view class="newgift-content" :style="{ backgroundImage: 'url(' + $util.img('public/uniapp/new_gift/holiday_polite-bg.png') + ')' }">
<view class="content-title-holiday"> <view class="content-title-holiday">
<image :src="$util.img('public/uniapp/new_gift/holiday_polite_left.png')" mode="" class="birthday-img-all"/> <image :src="$util.img('public/uniapp/new_gift/holiday_polite_left.png')" mode="" class="birthday-img-all" show-menu-by-longpress/>
<view class="font-size-toolbar activity-name">{{ newgift.activity_name }}</view> <view class="font-size-toolbar activity-name">{{ newgift.activity_name }}</view>
<image :src="$util.img('public/uniapp/new_gift/holiday_polite_right.png')" mode="" class="birthday-img-all"/> <image :src="$util.img('public/uniapp/new_gift/holiday_polite_right.png')" mode="" class="birthday-img-all" show-menu-by-longpress/>
</view> </view>
<view class="content-title-name" v-if="memberInfo">Dear {{ memberInfo.nickname }}</view> <view class="content-title-name" v-if="memberInfo">Dear {{ memberInfo.nickname }}</view>
<view class="content-title-hint" v-if="newgift.remark">{{ newgift.remark }}</view> <view class="content-title-hint" v-if="newgift.remark">{{ newgift.remark }}</view>

View File

@@ -120,7 +120,7 @@
</view> </view>
<view class="box img-boxs"> <view class="box img-boxs">
<view v-for="(v, k) in item.img_lists" :key="k" class="img-box" @tap="uploadImg(index)"> <view v-for="(v, k) in item.img_lists" :key="k" class="img-box" @tap="uploadImg(index)">
<image :src="$util.img(v)" mode="aspectFill"></image> <image :src="$util.img(v)" mode="aspectFill" show-menu-by-longpress></image>
<text class="iconfont icon-guanbi" @tap.stop="delImg(k, index)"></text> <text class="iconfont icon-guanbi" @tap.stop="delImg(k, index)"></text>
</view> </view>
<view class="img-box" @tap="addImg(index)"> <view class="img-box" @tap="addImg(index)">

View File

@@ -18,8 +18,8 @@
<!-- 消息列表 --> <!-- 消息列表 -->
<view <view
v-for="(message, index) in messages.filter(msg => msg.content && msg.content.trim() !== '')" v-for="(message, index) in messages.filter(msg => msg.content && msg.content.trim() !== '')"
:key="`msg-${message.id || message.timestamp}-${index}`" :key="getMessageKey(message, index)"
:id="`msg-${message.id || message.timestamp}-${index}`" :id="getMessageKey(message, index)"
class="message-item" class="message-item"
:class="[message.role, { 'first-message': index === 0 }]"> :class="[message.role, { 'first-message': index === 0 }]">
@@ -27,7 +27,7 @@
<view v-if="message.role === 'user'" class="user-message"> <view v-if="message.role === 'user'" class="user-message">
<view class="avatar" @tap="openAvatarSelector"> <view class="avatar" @tap="openAvatarSelector">
<!-- 绑定本地用户头像,支持实时更新 --> <!-- 绑定本地用户头像,支持实时更新 -->
<image :src="localUserAvatar" mode="aspectFill" /> <image :src="localUserAvatar" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="message-content"> <view class="message-content">
<!-- 新增:显示用户昵称 --> <!-- 新增:显示用户昵称 -->
@@ -54,7 +54,7 @@
:src="aiAvatarUrl" :src="aiAvatarUrl"
mode="aspectFill" mode="aspectFill"
@error="handleAvatarError" @error="handleAvatarError"
/> show-menu-by-longpress/>
<text v-else class="avatar-emoji">🤖</text> <text v-else class="avatar-emoji">🤖</text>
</view> </view>
<view class="message-content"> <view class="message-content">
@@ -148,7 +148,7 @@
<view v-else-if="message.type === 'link'" class="link-content"> <view v-else-if="message.type === 'link'" class="link-content">
<view class="link-card" @click="openLink(message)"> <view class="link-card" @click="openLink(message)">
<view class="link-image" v-if="message.image"> <view class="link-image" v-if="message.image">
<image :src="message.image" mode="aspectFill" /> <image :src="message.image" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="link-info"> <view class="link-info">
<text class="link-title">{{ message.title }}</text> <text class="link-title">{{ message.title }}</text>
@@ -361,7 +361,7 @@
<view class="avatar-selector-content"> <view class="avatar-selector-content">
<!-- 预览当前头像 --> <!-- 预览当前头像 -->
<view class="current-avatar-preview"> <view class="current-avatar-preview">
<image :src="localUserAvatar" mode="aspectFill" /> <image :src="localUserAvatar" mode="aspectFill" show-menu-by-longpress/>
</view> </view>
<view class="avatar-selector-actions"> <view class="avatar-selector-actions">
<button class="avatar-select-action" @click="chooseAvatarFromAlbum"> <button class="avatar-select-action" @click="chooseAvatarFromAlbum">
@@ -590,6 +590,12 @@ export default {
} }
}, },
methods: { methods: {
// 生成消息的唯一 key(兼容非 H5 平台)
getMessageKey(message, index) {
const id = message.id || message.timestamp || index;
return 'msg-' + id + '-' + index;
},
// 更新键盘高度 // 更新键盘高度
updateKeyboardHeight(height) { updateKeyboardHeight(height) {
this.keyboardHeight = height; this.keyboardHeight = height;

View File

@@ -7,7 +7,7 @@
<view class="item" v-for="(item, index) in list" :key="index" @click="toDetail(item)"> <view class="item" v-for="(item, index) in list" :key="index" @click="toDetail(item)">
<view class="article-img"> <view class="article-img">
<image class="cover-img" :src="$util.img(item.cover_img)" mode="widthFix" <image class="cover-img" :src="$util.img(item.cover_img)" mode="widthFix"
@error="imgError(index)" /> @error="imgError(index)" show-menu-by-longpress/>
</view> </view>
<view class="info-wrap"> <view class="info-wrap">
<text class="title">{{ item.article_title }}</text> <text class="title">{{ item.article_title }}</text>

Some files were not shown because too many files have changed in this diff Show More