feat:符号选择
This commit is contained in:
@@ -1,6 +1,15 @@
|
||||
<template>
|
||||
<view class="y-f" style="height: 55vh">
|
||||
<view class="weight">
|
||||
<view class="symbol">
|
||||
<uni-data-select
|
||||
v-if="showSymbol"
|
||||
v-model="symbol"
|
||||
:localdata="range"
|
||||
placeholder="请选择符号"
|
||||
:clear="false"
|
||||
></uni-data-select>
|
||||
</view>
|
||||
<view class="weight-data">{{ nums }}</view>
|
||||
</view>
|
||||
|
||||
@@ -35,6 +44,10 @@ const props = defineProps({
|
||||
numKeyboardParam: {
|
||||
type: Object,
|
||||
default: () => null
|
||||
},
|
||||
showSymbol: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
})
|
||||
|
||||
@@ -43,6 +56,13 @@ const props = defineProps({
|
||||
|
||||
// Data
|
||||
const nums = ref('')
|
||||
|
||||
const symbol = ref('')
|
||||
|
||||
const range = ref([
|
||||
{ value: '=', text: '=' },
|
||||
{ value: '<', text: '<' }
|
||||
])
|
||||
const numbers = ref([
|
||||
{ text: '1' },
|
||||
{ text: '2' },
|
||||
@@ -60,8 +80,9 @@ const numbers = ref([
|
||||
|
||||
// Methods
|
||||
const ok = () => {
|
||||
const val = { val: nums.value }
|
||||
const val = { val: nums.value, symbol: symbol.value }
|
||||
nums.value = ''
|
||||
symbol.value = ''
|
||||
if (val.val) {
|
||||
uni.$emit('keyboardOK', val)
|
||||
}
|
||||
@@ -69,10 +90,12 @@ const ok = () => {
|
||||
|
||||
const setNull = () => {
|
||||
nums.value = ''
|
||||
symbol.value = ''
|
||||
uni.$emit('keyboardOK', null)
|
||||
}
|
||||
const clearNum = () => {
|
||||
nums.value = ''
|
||||
symbol.value = ''
|
||||
}
|
||||
const jianshao = () => {
|
||||
if (nums.value) {
|
||||
@@ -171,9 +194,15 @@ defineExpose({ clearNum })
|
||||
flex: 1;
|
||||
padding: 8px;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.symbol {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.weight-data {
|
||||
flex: 5;
|
||||
color: #4cd964;
|
||||
text-align: right;
|
||||
letter-spacing: 5px;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user