Pre Merge pull request !158 from 卢越/master

pull/158/MERGE
卢越 2025-07-28 08:49:15 +00:00 committed by Gitee
commit 1254c256a9
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 108 additions and 27 deletions

View File

@ -20,14 +20,14 @@
//
const elBackground = computed(() => {
if (props.styles) {
if (props.styles.bgType === 'color')
if (props.styles.bgType === 'color') {
return { background: props.styles.bgColor };
if (props.styles.bgType === 'img')
}
if (props.styles.bgType === 'img') {
return {
background: `url(${sheep.$url.cdn(
props.styles.bgImg,
)}) no-repeat top center / 100% auto`,
background: `url(${sheep.$url.cdn(props.styles.bgImg)}) no-repeat top center / 100% auto`,
};
}
}
});

View File

@ -12,23 +12,28 @@
]"
:class="[{ 'border-content': navbar }]"
>
<view class="ss-flex ss-col-center"
:class="[placeholderPosition === 'center' ? 'ss-row-center' : 'ss-row-left']"
v-if="navbar" style="width: 100%;"
<view
class="ss-flex ss-col-center"
:class="[placeholderPosition === 'center' ? 'ss-row-center' : 'ss-row-left']"
v-if="navbar"
style="width: 100%"
>
<view class="search-icon _icon-search" :style="{ color: fontColor, margin: '0 10rpx' }"></view>
<view
class="search-icon _icon-search"
:style="{ color: fontColor, margin: '0 10rpx' }"
></view>
<view class="search-input ss-line-1" :style="{ color: fontColor }">
{{ placeholder }}
</view>
</view>
<!-- 右侧扫一扫图标 -->
<view
v-if="showScan"
class="scan-icon _icon-add-round-o"
:style="{ color: fontColor }"
@tap.stop="onScan"
style="margin-left: auto;"
>
<!-- 右侧扫一扫图标 -->
<view
v-if="showScan"
class="scan-icon _icon-scan"
:style="{ color: fontColor }"
@tap.stop="onScan"
style="margin-left: auto"
>
</view>
</view>
<uni-search-bar
v-if="!navbar"
@ -46,7 +51,8 @@
class="ss-m-r-16"
:style="[{ color: data.textColor }]"
@tap.stop="sheep.$router.go('/pages/goods/list', { keyword: item })"
>{{ item }}
>
{{ item }}
</view>
</view>
</view>
@ -157,9 +163,8 @@
}
}
// TODO
/**
* 扫一扫
* 扫一扫功能
*/
function onScan() {
uni.scanCode({
@ -172,23 +177,99 @@
fail: (err) => {
console.error(err);
uni.showToast({
title: '扫码失败',
icon: 'none',
title: err.errMsg === 'scanCode:fail cancel' ? '操作已取消' : '扫码失败',
icon: 'error',
});
},
});
}
/**
* 展示扫码结果
* @param text 扫码内容
* 检测是否为有效URL
* @param {string} str 待检测字符串
* @returns {boolean} 是否为有效URL
*/
function isValidUrl(str) {
try {
//
const url = str.trim();
return (
(url.startsWith('http://') || url.startsWith('https://') || url.startsWith('ftp://')) &&
//
url.length >= 10
);
} catch {
return false;
}
}
/**
* 展示扫码结果并处理用户操作
* @param {string} text 扫码得到的内容
*/
function showScanResult(text) {
const isUrl = isValidUrl(text);
//
uni.showModal({
title: '扫描结果',
content: text,
showCancel: false,
confirmText: '知道了',
confirmText: isUrl ? '访问' : '复制',
cancelText: '取消',
success: (res) => {
if (res.confirm) {
if (isUrl) {
handleUrl(text);
} else {
handleCopy(text);
}
}
},
});
}
/**
* 处理URL跳转
* @param {string} url 要访问的URL
*/
function handleUrl(url) {
// 1webview
uni.navigateTo({
url: `/pages/public/webview?url=${encodeURIComponent(url)}`,
});
// 2
/*
uni.setClipboardData({
data: url,
success: () => {
uni.showToast({
title: '链接已复制,请在浏览器打开',
icon: 'success',
});
},
});
*/
}
/**
* 处理文本复制
* @param {string} text 要复制的文本
*/
function handleCopy(text) {
uni.setClipboardData({
data: text,
success: () => {
uni.showToast({
title: '已复制到剪贴板',
icon: 'success',
});
},
fail: () => {
uni.showToast({
title: '复制失败,请重试',
icon: 'error',
});
},
});
}
</script>