From 49dfdd3bf265db28d38167f34e9aabfdd3e8e5db Mon Sep 17 00:00:00 2001
From: cuiqian2004 <cuiqian2004@163.com>
Date: 星期五, 17 十月 2025 10:16:58 +0800
Subject: [PATCH] imagebutton

---
 components/oi-form/list/input/index.vue |  115 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 106 insertions(+), 9 deletions(-)

diff --git a/components/oi-form/list/input/index.vue b/components/oi-form/list/input/index.vue
index 5c0c04a..35800af 100644
--- a/components/oi-form/list/input/index.vue
+++ b/components/oi-form/list/input/index.vue
@@ -2,18 +2,28 @@
 	<view class="oi-form-input">
 		<text v-if="data.setting.prefix && !viewMode" class="form-input-icon" :class="[data.setting.prefix]"
 			@click="onPrefixButton">&#xe568;</text>
-		<input v-if="model" class="oi-input" :class="data.disabled?'input-disabled':''"
-			:style="{'padding-left':data.setting.prefix?0 : '8rpx','right':data.setting.suffix?0 : '8rpx'}"
-			v-model="model[data.fieldId]" :focus="focus" :placeholder="data.placeholder" @focus="onFocus"
-			@blur="onChange" @confirm="onConfirm" @click="onClick" :disabled="data.disabled" :maxlength="-1"></input>
-		<input v-else class="oi-input" :class="data.disabled?'input-disabled':''"
-			:style="{'padding-left':data.setting.prefix?0 : '8rpx','right':data.setting.suffix?0 : '8rpx'}"
-			v-model="data.value" :focus="focus" :placeholder="data.placeholder" @blur="onChange" @confirm="onConfirm"
-			@click="onClick" :disabled="data.disabled"></input>
+		<template v-if="data.pdaScanOnly">
+			<view class="fake-input" :class="data.disabled?'input-disabled':''" @click="onFakeInputClick">
+				<text v-if="showPlaceholder" class="placeholder">{{data.placeholder }}</text>
+				<text class="input-text">{{model ? model[data.fieldId]:data.value }}</text>
+				<text v-if="!data.disabled&& focus" class="cursor">{{cursor}}</text>
+			</view>
+		</template>
+		<template v-else><input v-if="model" class="oi-input" :class="data.disabled?'input-disabled':''"
+				:style="{'padding-left':data.setting.prefix?0 : '8rpx','right':data.setting.suffix?0 : '8rpx'}"
+				v-model="model[data.fieldId]" :focus="focus" :placeholder="data.placeholder" @focus="onFocus"
+				@blur="onChange" @confirm="onConfirm" @click="onClick" :disabled="data.disabled"
+				:maxlength="-1"/>
+			<input v-else class="oi-input" :class="data.disabled?'input-disabled':''"
+				:style="{'padding-left':data.setting.prefix?0 : '8rpx','right':data.setting.suffix?0 : '8rpx'}"
+				v-model="data.value" :focus="focus" :placeholder="data.placeholder" @focus="onFocus" @blur="onChange"
+				@confirm="onConfirm" @click="onClick" :disabled="data.disabled"/></template>
+
 		<text v-if="data.setting.suffix&& !viewMode" class="form-input-icon" :class="[data.setting.suffix]"
 			@click="onSuffixButton">&#xe568;</text>
-
 	</view>
+
+
 </template>
 
 <script>
@@ -38,6 +48,30 @@
 				default: false
 			},
 		},
+		data() {
+			return {
+				largeMode: getApp().globalData?.largeMode || false,
+				cursor: "",
+			}
+		},
+		mounted() {
+			setInterval(() => {
+				if (this.cursor)
+					this.cursor = ""
+				else
+					this.cursor = "|"
+			}, 1000)
+		},
+		computed: {
+
+			showPlaceholder() {
+				const val = this.model ? this.model[data.fieldId] : this.data.value
+				if (val)
+					return false
+				else
+					return true
+			}
+		},
 		methods: {
 			onChange(e) {
 				this.$emit("on-change", e)
@@ -46,10 +80,27 @@
 				console.log("onConfirm")
 				this.onChange(e)
 			},
+			onFakeInputClick(e) {
+				if (this.data.disabled)
+					return
+				this.$emit("on-focus", e)
+				this.$emit("on-click", e)
+			},
 			onClick(e) {
+				if (this.data.disabled)
+					return
 				this.$emit("on-click", e)
 			},
 			onFocus(e) {
+				// getApp().onScan((result) => {
+				// 	if (!this.viewMode && !this.data.disabled) {
+				// 		if (this.model)
+				// 			this.model[data.fieldId] = result
+				// 		else
+				// 			this.data.value = result
+				// 	}
+				// })
+
 				this.$emit("on-focus", e)
 			},
 			onPrefixButton() {
@@ -89,6 +140,36 @@
 			background-color: #f3f3f3 !important;
 		}
 
+		.fake-input {
+			display: flex;
+			position: relative;
+			padding: 8rpx 8rpx 12rpx 8rpx;
+			align-items: center;
+			color: #2d8cf0;
+			flex: 1;
+			height: 20px;
+			background: #FFF;
+			font-size: 18px;
+
+			// .cursor {
+			// 	font-weight: bold;
+			// }
+			.input-text {
+				font-size: 14px;
+				color: #2d8cf0;
+			}
+
+			.placeholder {
+				position: absolute;
+				left: 4px;
+				top: 4px;
+				right: 4px;
+				bottom: 0;
+				font-size: 14px;
+				color: #888;
+			}
+		}
+
 		.oi-input {
 			color: #2d8cf0;
 			padding: 10rpx 8rpx;
@@ -100,6 +181,7 @@
 			font-family: inherit;
 			transition-duration: 0.1s;
 			vertical-align: middle;
+
 		}
 
 		.form-input-icon {
@@ -119,4 +201,19 @@
 	.oi-form-input:hover {
 		border: 1px solid rgb(41, 121, 255);
 	}
+
+	.large-mode {
+		.oi-form-input {
+			.oi-input {
+				font-size: 24px;
+				height: 36px;
+			}
+
+			.form-input-icon {
+				font-size: 30px;
+				height: 36px;
+				width: 36px;
+			}
+		}
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.1