feat:符号选择
This commit is contained in:
@@ -1,6 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="y-f" style="height: 55vh">
|
<view class="y-f" style="height: 55vh">
|
||||||
<view class="weight">
|
<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 class="weight-data">{{ nums }}</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -35,6 +44,10 @@ const props = defineProps({
|
|||||||
numKeyboardParam: {
|
numKeyboardParam: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => null
|
default: () => null
|
||||||
|
},
|
||||||
|
showSymbol: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -43,6 +56,13 @@ const props = defineProps({
|
|||||||
|
|
||||||
// Data
|
// Data
|
||||||
const nums = ref('')
|
const nums = ref('')
|
||||||
|
|
||||||
|
const symbol = ref('')
|
||||||
|
|
||||||
|
const range = ref([
|
||||||
|
{ value: '=', text: '=' },
|
||||||
|
{ value: '<', text: '<' }
|
||||||
|
])
|
||||||
const numbers = ref([
|
const numbers = ref([
|
||||||
{ text: '1' },
|
{ text: '1' },
|
||||||
{ text: '2' },
|
{ text: '2' },
|
||||||
@@ -60,8 +80,9 @@ const numbers = ref([
|
|||||||
|
|
||||||
// Methods
|
// Methods
|
||||||
const ok = () => {
|
const ok = () => {
|
||||||
const val = { val: nums.value }
|
const val = { val: nums.value, symbol: symbol.value }
|
||||||
nums.value = ''
|
nums.value = ''
|
||||||
|
symbol.value = ''
|
||||||
if (val.val) {
|
if (val.val) {
|
||||||
uni.$emit('keyboardOK', val)
|
uni.$emit('keyboardOK', val)
|
||||||
}
|
}
|
||||||
@@ -69,10 +90,12 @@ const ok = () => {
|
|||||||
|
|
||||||
const setNull = () => {
|
const setNull = () => {
|
||||||
nums.value = ''
|
nums.value = ''
|
||||||
|
symbol.value = ''
|
||||||
uni.$emit('keyboardOK', null)
|
uni.$emit('keyboardOK', null)
|
||||||
}
|
}
|
||||||
const clearNum = () => {
|
const clearNum = () => {
|
||||||
nums.value = ''
|
nums.value = ''
|
||||||
|
symbol.value = ''
|
||||||
}
|
}
|
||||||
const jianshao = () => {
|
const jianshao = () => {
|
||||||
if (nums.value) {
|
if (nums.value) {
|
||||||
@@ -171,9 +194,15 @@ defineExpose({ clearNum })
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 8px;
|
padding: 8px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.symbol {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.weight-data {
|
.weight-data {
|
||||||
|
flex: 5;
|
||||||
color: #4cd964;
|
color: #4cd964;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
letter-spacing: 5px;
|
letter-spacing: 5px;
|
||||||
|
|||||||
@@ -100,7 +100,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<zzjc-num-keyboard
|
<zzjc-num-keyboard
|
||||||
ref="myKeyboard"
|
ref="myKeyboard"
|
||||||
v-show="currentFillingWay == 'keyboard'"
|
v-show="currentFillingWay == 'keyboard' || (selectedField.type == 'project' && selectedField.isEdit)"
|
||||||
|
:showSymbol="selectedField.type == 'project' && selectedField.isEdit"
|
||||||
:numKeyboardParam="numKeyboardParam"
|
:numKeyboardParam="numKeyboardParam"
|
||||||
></zzjc-num-keyboard>
|
></zzjc-num-keyboard>
|
||||||
<view v-if="currentFillingWay == 'collect'" class="y-f">
|
<view v-if="currentFillingWay == 'collect'" class="y-f">
|
||||||
@@ -140,12 +141,7 @@
|
|||||||
<up-textarea v-model="inputValue" placeholder="请输入内容"></up-textarea>
|
<up-textarea v-model="inputValue" placeholder="请输入内容"></up-textarea>
|
||||||
<view class="x-c mt20 pl100 pr100">
|
<view class="x-c mt20 pl100 pr100">
|
||||||
<up-button @click="handleResetInputValue" style="width: 30%" :plain="true" text="清空"></up-button>
|
<up-button @click="handleResetInputValue" style="width: 30%" :plain="true" text="清空"></up-button>
|
||||||
<up-button
|
<up-button @click="handleInputConfirm" style="width: 30%" type="success" text="确认"></up-button>
|
||||||
@click="selectedField.value = inputValue"
|
|
||||||
style="width: 30%"
|
|
||||||
type="success"
|
|
||||||
text="确认"
|
|
||||||
></up-button>
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</u-col>
|
</u-col>
|
||||||
@@ -178,7 +174,8 @@
|
|||||||
v-show="field.hidden != 1"
|
v-show="field.hidden != 1"
|
||||||
:class="{
|
:class="{
|
||||||
'selected-field': groupFieldIndex === groupIndex + '-' + fieldIndex,
|
'selected-field': groupFieldIndex === groupIndex + '-' + fieldIndex,
|
||||||
'disabled-field': !field.isEdit
|
'disabled-field': !field.isEdit,
|
||||||
|
'flex-column': field.dataType === 'datetime'
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<view
|
<view
|
||||||
@@ -215,11 +212,16 @@
|
|||||||
<!--普通输入框 使用文本显示-->
|
<!--普通输入框 使用文本显示-->
|
||||||
<view class="content-my-text" v-if="field.dataType != 'select'">
|
<view class="content-my-text" v-if="field.dataType != 'select'">
|
||||||
<text v-if="!field.value" class="content-my-text-placeholder">{{
|
<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>
|
||||||
<text
|
<text
|
||||||
v-else
|
v-else
|
||||||
:class="['content-my-text-value', { 'field-high-light': field.highlight == 1 }]"
|
:class="['content-my-text-value', { 'field-high-light': field.highlight == 1 }]"
|
||||||
|
><text v-if="field.symbol !== '='" class="mr5">{{ field.symbol }}</text
|
||||||
>{{ field.value }}</text
|
>{{ field.value }}</text
|
||||||
>
|
>
|
||||||
</view>
|
</view>
|
||||||
@@ -244,6 +246,13 @@
|
|||||||
</view>
|
</view>
|
||||||
</u-col>
|
</u-col>
|
||||||
</u-row>
|
</u-row>
|
||||||
|
<up-datetime-picker
|
||||||
|
:show="dateTimeShow"
|
||||||
|
v-model="dateTimeDefaultValue"
|
||||||
|
@confirm="handleDateConfirm"
|
||||||
|
@cancel="dateTimeShow = false"
|
||||||
|
mode="datetime"
|
||||||
|
></up-datetime-picker>
|
||||||
<!-- 天平选择-->
|
<!-- 天平选择-->
|
||||||
<auncel-select-popup
|
<auncel-select-popup
|
||||||
ref="auncelSelector"
|
ref="auncelSelector"
|
||||||
@@ -311,6 +320,8 @@ let fieldGroup = ref([])
|
|||||||
const collaHeights = ref([])
|
const collaHeights = ref([])
|
||||||
const cupNumKey = '杯号'
|
const cupNumKey = '杯号'
|
||||||
const inputValue = ref('')
|
const inputValue = ref('')
|
||||||
|
const dateTimeShow = ref(false)
|
||||||
|
const dateTimeDefaultValue = ref(new Date())
|
||||||
|
|
||||||
function handleResetInputValue() {
|
function handleResetInputValue() {
|
||||||
inputValue.value = ''
|
inputValue.value = ''
|
||||||
@@ -366,14 +377,26 @@ const parameterClassifyChange = v => {
|
|||||||
autoNextField()
|
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) => {
|
const fieldClick = (field, key) => {
|
||||||
if (!field.isEdit) return
|
if (!field.isEdit) return
|
||||||
currentFillingIndex.value = 0
|
currentFillingIndex.value = 0
|
||||||
|
selectedField.value = field
|
||||||
|
groupFieldIndex.value = key
|
||||||
if (currentFillingWay.value === 'input') {
|
if (currentFillingWay.value === 'input') {
|
||||||
inputValue.value = field.value
|
inputValue.value = field.value
|
||||||
}
|
}
|
||||||
selectedField.value = field
|
if (currentFillingWay.value === 'datetime') {
|
||||||
groupFieldIndex.value = key
|
dateTimeShow.value = true
|
||||||
|
}
|
||||||
if (myKeyboard.value) {
|
if (myKeyboard.value) {
|
||||||
myKeyboard.value.clearNum()
|
myKeyboard.value.clearNum()
|
||||||
}
|
}
|
||||||
@@ -772,7 +795,8 @@ const autoGenerateCupNum = () => {
|
|||||||
if (currentIndex === 0) return
|
if (currentIndex === 0) return
|
||||||
//取上一个样品的杯号
|
//取上一个样品的杯号
|
||||||
const sample = sampleDataList.value[currentIndex - 1]
|
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))
|
putCupNum(Number(cupNum) + 1, currentIndex, Number(cupNum))
|
||||||
}
|
}
|
||||||
@@ -1086,11 +1110,15 @@ const listenNumKeyboard = () => {
|
|||||||
//自动补全小数位数
|
//自动补全小数位数
|
||||||
const decimalPosition = selectedField.value.decimalPosition
|
const decimalPosition = selectedField.value.decimalPosition
|
||||||
let val = res.val
|
let val = res.val
|
||||||
|
const symbol = res.symbol
|
||||||
if (decimalPosition == null) {
|
if (decimalPosition == null) {
|
||||||
selectedField.value.value = val
|
selectedField.value.value = val
|
||||||
} else {
|
} else {
|
||||||
selectedField.value.value = handleRoundFiveNumber(val, decimalPosition)
|
selectedField.value.value = handleRoundFiveNumber(val, decimalPosition)
|
||||||
}
|
}
|
||||||
|
if (symbol) {
|
||||||
|
selectedField.value.symbol = symbol
|
||||||
|
}
|
||||||
syncFieldValueByEqualParamNo()
|
syncFieldValueByEqualParamNo()
|
||||||
calcAnalysisValue(fieldGroup.value)
|
calcAnalysisValue(fieldGroup.value)
|
||||||
//自动跳转下一个字段
|
//自动跳转下一个字段
|
||||||
@@ -1099,11 +1127,11 @@ const listenNumKeyboard = () => {
|
|||||||
}, 60)
|
}, 60)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 查找paramNo相同的列,使其值同步
|
// 查找paramNo相同的列,并且类型相同,使其值同步
|
||||||
function syncFieldValueByEqualParamNo() {
|
function syncFieldValueByEqualParamNo() {
|
||||||
for (const group of fieldGroup.value) {
|
for (const group of fieldGroup.value) {
|
||||||
group.fields.forEach(field => {
|
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
|
field.value = selectedField.value.value
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -1272,6 +1300,12 @@ onBackPress(() => {
|
|||||||
.disabled-field {
|
.disabled-field {
|
||||||
background-color: #eee;
|
background-color: #eee;
|
||||||
}
|
}
|
||||||
|
.flex-column {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: start;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
.label-my {
|
.label-my {
|
||||||
flex: 5;
|
flex: 5;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user