fix: 修改运行状态写入bool下拉显示问题
This commit is contained in:
parent
f0d7cbddc5
commit
af5d2e08f6
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<j-modal
|
<j-modal
|
||||||
:maskClosable="false"
|
:maskClosable="false"
|
||||||
:visible="true"
|
:visible="true"
|
||||||
title="编辑"
|
title="编辑"
|
||||||
|
@ -7,80 +7,111 @@
|
||||||
@cancel="handleCancel"
|
@cancel="handleCancel"
|
||||||
:confirmLoading="loading"
|
:confirmLoading="loading"
|
||||||
>
|
>
|
||||||
<j-alert message="当数据来源为设备时,填写的值将下发到设备" type="warning" showIcon />
|
<j-alert
|
||||||
<j-form :rules="rules" layout="vertical" ref="formRef" :model="modelRef" style="margin-top: 20px">
|
message="当数据来源为设备时,填写的值将下发到设备"
|
||||||
<j-form-item name="propertyValue" :label="data?.name || '自定义属性'">
|
type="warning"
|
||||||
|
showIcon
|
||||||
|
/>
|
||||||
|
<j-form
|
||||||
|
:rules="rules"
|
||||||
|
layout="vertical"
|
||||||
|
ref="formRef"
|
||||||
|
:model="modelRef"
|
||||||
|
style="margin-top: 20px"
|
||||||
|
>
|
||||||
|
<j-form-item
|
||||||
|
name="propertyValue"
|
||||||
|
:label="data?.name || '自定义属性'"
|
||||||
|
>
|
||||||
<ValueItem
|
<ValueItem
|
||||||
v-model:modelValue="modelRef.propertyValue"
|
v-model:modelValue="modelRef.propertyValue"
|
||||||
:itemType="data?.valueType?.type || data?.dataType"
|
:itemType="data?.valueType?.type || data?.dataType"
|
||||||
:options="
|
:options="options"
|
||||||
(data?.valueType?.type || data?.dataType) === 'enum'
|
|
||||||
? (data?.valueType?.elements || []).map((item) => {
|
|
||||||
return {
|
|
||||||
label: item?.text,
|
|
||||||
value: item?.value
|
|
||||||
};
|
|
||||||
})
|
|
||||||
: undefined
|
|
||||||
"
|
|
||||||
/>
|
/>
|
||||||
</j-form-item>
|
</j-form-item>
|
||||||
</j-form>
|
</j-form>
|
||||||
</j-modal>
|
</j-modal>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { setProperty } from '@/api/device/instance'
|
import { setProperty } from '@/api/device/instance';
|
||||||
import { useInstanceStore } from "@/store/instance"
|
import { useInstanceStore } from '@/store/instance';
|
||||||
import { message } from 'jetlinks-ui-components';
|
import { message } from 'jetlinks-ui-components';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
data: {
|
data: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => {}
|
default: () => {},
|
||||||
}
|
},
|
||||||
})
|
});
|
||||||
|
|
||||||
const emit = defineEmits(['close']);
|
const emit = defineEmits(['close']);
|
||||||
|
|
||||||
const loading = ref<boolean>(false)
|
const loading = ref<boolean>(false);
|
||||||
const instanceStore = useInstanceStore()
|
const instanceStore = useInstanceStore();
|
||||||
|
|
||||||
const formRef = ref();
|
const formRef = ref();
|
||||||
|
|
||||||
const modelRef = reactive({
|
const modelRef = reactive({
|
||||||
propertyValue: undefined
|
propertyValue: undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
const handleCancel = () => {
|
const handleCancel = () => {
|
||||||
emit('close')
|
emit('close');
|
||||||
}
|
};
|
||||||
|
|
||||||
|
const options = computed(() => {
|
||||||
|
const _type = props.data?.valueType?.type || props.data?.dataType;
|
||||||
|
if (_type === 'enum') {
|
||||||
|
return (props.data?.valueType?.elements || []).map((item: any) => {
|
||||||
|
return {
|
||||||
|
label: item?.text,
|
||||||
|
value: item?.value,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (_type === 'boolean') {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
label: props.data?.valueType?.falseText,
|
||||||
|
value: props.data?.valueType?.falseValue,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: props.data?.valueType?.trueText,
|
||||||
|
value: props.data?.valueType?.trueValue,
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
});
|
||||||
|
|
||||||
const rules = {
|
const rules = {
|
||||||
propertyValue: [
|
propertyValue: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '该字段是必填字段',
|
message: '该字段是必填字段',
|
||||||
}
|
},
|
||||||
],
|
],
|
||||||
}
|
};
|
||||||
|
|
||||||
const handleSave = () => {
|
const handleSave = () => {
|
||||||
formRef.value
|
formRef.value
|
||||||
.validate()
|
.validate()
|
||||||
.then(async () => {
|
.then(async () => {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
const resp = await setProperty(instanceStore.current?.id || '', {[props.data?.id]: toRaw(modelRef)?.propertyValue}).finally(() => {
|
const resp = await setProperty(instanceStore.current?.id || '', {
|
||||||
loading.value = false
|
[props.data?.id]: toRaw(modelRef)?.propertyValue,
|
||||||
})
|
}).finally(() => {
|
||||||
|
loading.value = false;
|
||||||
|
});
|
||||||
if (resp.status === 200) {
|
if (resp.status === 200) {
|
||||||
message.success('操作成功!');
|
message.success('操作成功!');
|
||||||
emit('close')
|
emit('close');
|
||||||
formRef.value.resetFields();
|
formRef.value.resetFields();
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err: any) => {
|
.catch((err: any) => {
|
||||||
console.log('error', err);
|
console.log('error', err);
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
</script>
|
</script>
|
|
@ -40,7 +40,7 @@ export const mergeArr = (oldData: Array<any>, newData: Array<any>) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(oldItem && newItem){
|
if(oldItem && newItem){
|
||||||
oldItem = { ...oldData,...omit(newItem, ['children'])}
|
oldItem.sortIndex = newItem?.sortIndex
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!oldItem.children && newItem.children) {
|
if (!oldItem.children && newItem.children) {
|
||||||
|
|
Loading…
Reference in New Issue