fix: 采集器 新增离散输入寄存器、单双高低位切换

This commit is contained in:
jackhoo_98 2023-03-30 15:17:17 +08:00
parent fc3d0d2d12
commit 2fbcc606e9
4 changed files with 58 additions and 13 deletions

View File

@ -30,6 +30,7 @@
v-model:value="formData.configuration.function"
:options="[
{ label: '01线圈寄存器', value: 'Coils' },
{ label: '02离散输入寄存器', value: 'DiscreteInputs' },
{ label: '03保存寄存器', value: 'HoldingRegisters' },
{ label: '04输入寄存器', value: 'InputRegisters' },
]"
@ -147,7 +148,8 @@
:showImage="false"
v-model:value="formData.accessModes"
:options="
formData.configuration.function === 'InputRegisters'
formData.configuration.function === 'InputRegisters' ||
formData.configuration.function === 'DiscreteInputs'
? [{ label: '读', value: 'read' }]
: [
{ label: '读', value: 'read' },
@ -289,6 +291,7 @@ const oldPointKey = props.data.pointKey;
const InitAddress = {
Coils: 1,
DiscreteInputs: 10001,
HoldingRegisters: 40001,
InputRegisters: 30001,
};

View File

@ -238,6 +238,9 @@ const filterOption = (input: string, option: any) => {
const clickDelete = (value: string) => {
emits('change', value);
// todo
};
const getTargetData = (index: number, type: string) => {

View File

@ -73,21 +73,11 @@
{{ getTypeTooltip(formData.circuitBreaker.type) }}
</p>
<j-form-item
label="双字高低位切换"
:name="['configuration', 'endian']"
v-if="visibleEndian"
:rules="LeftTreeRules.endian"
>
<template #label>
<span>
高低位切换
<j-tooltip title="统一配置所有点位的高低位切换">
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</j-tooltip>
</span>
</template>
<j-card-select
:showImage="false"
v-model:value="formData.configuration.endian"
@ -99,6 +89,41 @@
:column="2"
/>
</j-form-item>
<j-form-item
label="单字高低位切换"
:name="['configuration', 'endianIn']"
v-if="visibleEndian"
:rules="LeftTreeRules.endianIn"
>
<j-card-select
:showImage="false"
v-model:value="formData.configuration.endianIn"
:options="[
{ label: 'AB', value: 'BIG' },
{ label: 'BA', value: 'LITTLE' },
]"
@change="changeCardSelectEndianIn"
:column="2"
/>
</j-form-item>
<div
style="color: #616161"
v-if="
formData.configuration.endian ||
formData.configuration.endianIn
"
>
<p>
当前内存布局:{{
endianMap.get(formData.configuration.endian)
}}{{ endianMap.get(formData.configuration.endianIn) }}
</p>
<p>
只有4字节数据类型(int32ieee754 float)
具有4种内存布局其它只有ABCDDCBA两种内存布局(以双字配置为准)
</p>
</div>
<j-form-item label="说明" name="description">
<j-textarea
placeholder="请输入说明"
@ -150,6 +175,11 @@ const emit = defineEmits(['change']);
const id = props.data.id;
const formRef = ref<FormInstance>();
const endianMap = new Map([
['BIG', 'AB'],
['LITTLE', 'BA'],
]);
const formData = ref({
channelId: undefined,
name: '',
@ -157,6 +187,7 @@ const formData = ref({
unitId: '',
type: 'LowerFrequency',
endian: 'BIG',
endianIn: 'BIG',
},
circuitBreaker: {
type: 'LowerFrequency',
@ -203,6 +234,9 @@ const changeCardSelectType = (value: Array<string>) => {
const changeCardSelectEndian = (value: Array<string>) => {
formData.value.configuration.endian = value[0];
};
const changeCardSelectEndianIn = (value: Array<string>) => {
formData.value.configuration.endianIn = value[0];
};
const getChannelNoPaging = async () => {
channelListAll.value = Store.get('channelListAll');
channelList.value = channelListAll.value.map((item) => ({

View File

@ -162,7 +162,12 @@ export const LeftTreeRules = {
},
],
type: [{ required: true, message: '请选择处理方式', trigger: 'blur' }],
endian: [{ required: true, message: '请选择高低位切换', trigger: 'blur' }],
endian: [
{ required: true, message: '请选择双字高低位切换', trigger: 'blur' },
],
endianIn: [
{ required: true, message: '请选择单字高低位切换', trigger: 'blur' },
],
};
export const FormTableColumns = [