feat:符号选择

This commit is contained in:
houjunxiang
2025-12-22 15:36:59 +08:00
parent 4d1e709be9
commit 164e305442
2 changed files with 78 additions and 15 deletions

View File

@@ -100,7 +100,8 @@
</view>
<zzjc-num-keyboard
ref="myKeyboard"
v-show="currentFillingWay == 'keyboard'"
v-show="currentFillingWay == 'keyboard' || (selectedField.type == 'project' && selectedField.isEdit)"
:showSymbol="selectedField.type == 'project' && selectedField.isEdit"
:numKeyboardParam="numKeyboardParam"
></zzjc-num-keyboard>
<view v-if="currentFillingWay == 'collect'" class="y-f">
@@ -140,12 +141,7 @@
<up-textarea v-model="inputValue" placeholder="请输入内容"></up-textarea>
<view class="x-c mt20 pl100 pr100">
<up-button @click="handleResetInputValue" style="width: 30%" :plain="true" text="清空"></up-button>
<up-button
@click="selectedField.value = inputValue"
style="width: 30%"
type="success"
text="确认"
></up-button>
<up-button @click="handleInputConfirm" style="width: 30%" type="success" text="确认"></up-button>
</view>
</view>
</u-col>
@@ -178,7 +174,8 @@
v-show="field.hidden != 1"
:class="{
'selected-field': groupFieldIndex === groupIndex + '-' + fieldIndex,
'disabled-field': !field.isEdit
'disabled-field': !field.isEdit,
'flex-column': field.dataType === 'datetime'
}"
>
<view
@@ -215,11 +212,16 @@
<!--普通输入框 使用文本显示-->
<view class="content-my-text" v-if="field.dataType != 'select'">
<text v-if="!field.value" class="content-my-text-placeholder">{{
!field.fillingWay || field.fillingWay == 'calculate' ? '计算值' : '请输入'
!field.fillingWay || field.fillingWay == 'calculate'
? '计算值'
: field.fillingWay == 'datetime'
? '请选择时间'
: '请输入'
}}</text>
<text
v-else
:class="['content-my-text-value', { 'field-high-light': field.highlight == 1 }]"
><text v-if="field.symbol !== '='" class="mr5">{{ field.symbol }}</text
>{{ field.value }}</text
>
</view>
@@ -244,6 +246,13 @@
</view>
</u-col>
</u-row>
<up-datetime-picker
:show="dateTimeShow"
v-model="dateTimeDefaultValue"
@confirm="handleDateConfirm"
@cancel="dateTimeShow = false"
mode="datetime"
></up-datetime-picker>
<!-- 天平选择-->
<auncel-select-popup
ref="auncelSelector"
@@ -311,6 +320,8 @@ let fieldGroup = ref([])
const collaHeights = ref([])
const cupNumKey = '杯号'
const inputValue = ref('')
const dateTimeShow = ref(false)
const dateTimeDefaultValue = ref(new Date())
function handleResetInputValue() {
inputValue.value = ''
@@ -366,14 +377,26 @@ const parameterClassifyChange = v => {
autoNextField()
}
function handleInputConfirm() {
selectedField.value.value = inputValue.value
autoNextField()
}
function handleDateConfirm(e) {
selectedField.value.value = nx.$dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')
dateTimeShow.value = false
autoNextField()
}
const fieldClick = (field, key) => {
if (!field.isEdit) return
currentFillingIndex.value = 0
selectedField.value = field
groupFieldIndex.value = key
if (currentFillingWay.value === 'input') {
inputValue.value = field.value
}
selectedField.value = field
groupFieldIndex.value = key
if (currentFillingWay.value === 'datetime') {
dateTimeShow.value = true
}
if (myKeyboard.value) {
myKeyboard.value.clearNum()
}
@@ -772,7 +795,8 @@ const autoGenerateCupNum = () => {
if (currentIndex === 0) return
//取上一个样品的杯号
const sample = sampleDataList.value[currentIndex - 1]
cupNum = sample[cupNumFieldIndex.value].value
cupNum = sample[cupNumFieldIndex.value]?.value
if (!cupNum) return
//杯号赋值到当前样品
putCupNum(Number(cupNum) + 1, currentIndex, Number(cupNum))
}
@@ -1086,11 +1110,15 @@ const listenNumKeyboard = () => {
//自动补全小数位数
const decimalPosition = selectedField.value.decimalPosition
let val = res.val
const symbol = res.symbol
if (decimalPosition == null) {
selectedField.value.value = val
} else {
selectedField.value.value = handleRoundFiveNumber(val, decimalPosition)
}
if (symbol) {
selectedField.value.symbol = symbol
}
syncFieldValueByEqualParamNo()
calcAnalysisValue(fieldGroup.value)
//自动跳转下一个字段
@@ -1099,11 +1127,11 @@ const listenNumKeyboard = () => {
}, 60)
})
}
// 查找paramNo相同的列使其值同步
// 查找paramNo相同的列并且类型相同,使其值同步
function syncFieldValueByEqualParamNo() {
for (const group of fieldGroup.value) {
group.fields.forEach(field => {
if (field.paramNo === selectedField.value.paramNo) {
if (field.paramNo === selectedField.value.paramNo && field.type === selectedField.value.type) {
field.value = selectedField.value.value
}
})
@@ -1272,6 +1300,12 @@ onBackPress(() => {
.disabled-field {
background-color: #eee;
}
.flex-column {
display: flex;
flex-direction: column;
align-items: start;
padding: 4px;
}
.label-my {
flex: 5;
}