Skip to content

Scan (扫码)

支持自定义插槽自定义扫码布局,使用插槽记得设置:mask='false'

支持平台

安卓ios鸿蒙web微信小程序

示例代码

html
<template>
	<t-page main-class="p-30">
		<t-card main-class="mb-30" title="tui-scan扫码" sub-title="支持自定义插槽自定义扫码布局,使用插槽记得设置:mask='false'">
		</t-card>
		<t-scan v-if="show" ref="scancodeEle" :isPreviewing="isPreviewing" main-class="h-600 mb-30 tdr"
			@scanned="scanned" :mode="mode" :mask="mask" type='p'>
			<!-- <t-col main-class="da-twh-100%-ba-fc">
				<t-text>插槽测试-使用插槽记得设置:mask='false'</t-text>
			</t-col> -->
		</t-scan>
		<t-button main-class="mb-30" @click="switchs">{{mode=='qr'?'扫条形码':'扫二维码'}}</t-button>
		<t-button main-class="mb-30" @click="closeMask">{{mask?'关闭':'打开'}}遮罩层</t-button>
		<t-button main-class="mb-30" @click="open">开启扫描</t-button>
		<t-button main-class="mb-30" @click="isPreviewing=!isPreviewing">{{isPreviewing?'关闭相机预览':'打开相机预览'}}</t-button>
		<t-button main-class="mb-30" @click="photo">图片识别</t-button>
	</t-page>
</template>
<script setup>
	import { ScanResult } from '@/uni_modules/tui-scan'
	const scancodeEle = ref<TScanComponentPublicInstance | null>(null)
	const isPreviewing = ref(true)
	const show = ref(true)
	const mode = ref('bar')
	const mask = ref(true)
	function closeMask() {
		mask.value = !mask.value
		show.value = false
		nextTick(() => {
			show.value = true
		})
	}
	function switchs() {
		show.value = false
		nextTick(() => {
			if (mode.value == 'bar') {
				mode.value = 'qr'
			} else {
				mode.value = 'bar'
			}
			show.value = true
		})
	}
	function photo() {
		let el = scancodeEle.value as TScanComponentPublicInstance
		el.scanImage()
	}
	function open() {
		let el = scancodeEle.value as TScanComponentPublicInstance
		el.rescan()
	}
	function scanned(e : ScanResult) : void {
		uni.showModal({
			title: e.data[0].value,
			success: (_) => {

			}
		})
	}
</script>

属性

名称类型默认值说明可选值
sizeStringmini组件尺寸large(大尺寸), medium(中尺寸), small(小尺寸), mini(迷你)
typeString""组件类型info(信息), primary(正常), error(错误), warning(警告), success(成功)
disabledBooleanfalse组件是否禁用false, true
stopBooleanfalse是否阻止事件冒泡(Tui统一写法处理事件冒泡)false, true
hoverBooleantrue是否有点击效果false, true
pathString""点击组件后跳转的页面路径,如果为空则响应点击事件,如果不为空则跳转页面不会响应单击事件。-
mainClassString""组件根节点的样式-
nativeClassString""组件根节点原生样式-
effectString"normal"组件显示主题normal(正常), dark(深色), light(浅色), plain(镂空)
modeStringqr扫描模式qr: 扫描二维码
bar: 扫条码
lineHeightNumber2扫描线的高度
typeStringp组件类型
rectColorString``矩形框颜色
maskBooleantrue是否显示遮罩层
lineColorString``线条颜色
welcomeString欢迎使用Tui欢迎文本
isPreviewingBooleantrue是否开启预览

插槽

名称返回值说明
default-