fix: 修改物模型BUG
This commit is contained in:
parent
084c43cf76
commit
9837a6a588
|
@ -5,7 +5,7 @@
|
|||
<AIcon type="MenuOutlined" class="item-drag item-icon" />
|
||||
</div>
|
||||
<div class="item-middle item-editable">
|
||||
<j-popover :visible="editIndex === index" placement="top">
|
||||
<j-popover :visible="editIndex === index" placement="left">
|
||||
<template #title>
|
||||
<div class="edit-title" style="display: flex; justify-content: space-between; align-items: center;">
|
||||
<div style="width: 150px;">枚举项配置</div>
|
||||
|
|
|
@ -87,6 +87,7 @@
|
|||
<component
|
||||
:is="tabs[productStore.tabActiveKey]"
|
||||
:class="productStore.tabActiveKey === 'Metadata' ? 'metedata' : ''"
|
||||
v-bind="{ type: 'product' }"
|
||||
/>
|
||||
</page-container>
|
||||
</template>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
</j-radio-group>
|
||||
</j-form-item>
|
||||
<j-form-item label="输入参数" name="inputs" :rules="[
|
||||
{ required: true, validator: (_rule: Rule, val: Record<any, any>[]) => validateJson(_rule, val, '输入参数') },
|
||||
{ validator: (_rule: Rule, val: Record<any, any>[]) => validateJson(_rule, val, '输入参数', false) },
|
||||
]">
|
||||
<JsonParam v-model:value="value.inputs" :name="['inputs']"></JsonParam>
|
||||
</j-form-item>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<j-form-item :label="title" :name="name.concat(['type'])" :rules="[
|
||||
required ? { required: true, message: `请选择${title}` } : {},
|
||||
]">
|
||||
<j-select v-model:value="_value.type"
|
||||
<j-select v-model:value="_value.type" :disabled="onlyObject"
|
||||
:options="onlyObject ? eventDataTypeList : _dataTypeList" size="small"
|
||||
@change="changeType"></j-select>
|
||||
</j-form-item>
|
||||
|
@ -124,7 +124,7 @@ onMounted(() => {
|
|||
}
|
||||
})
|
||||
|
||||
const unit = {
|
||||
const unit = reactive({
|
||||
unitOptions: [] as DefaultOptionType[],
|
||||
getUnit: () => {
|
||||
getUnit().then(resp => {
|
||||
|
@ -137,7 +137,7 @@ const unit = {
|
|||
unit.unitOptions = _data;
|
||||
})
|
||||
},
|
||||
}
|
||||
})
|
||||
unit.getUnit()
|
||||
|
||||
const _dataTypeList = computed(() => props.isSub ? DataTypeList.filter(item => item.value !== 'array' && item.value !== 'object') : DataTypeList)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<j-drawer :mask-closable="false" width="25vw" visible :title="`${title}-${typeMapping[metadataStore.model.type]}`"
|
||||
@close="close" destroy-on-close :z-index="1000" placement="right">
|
||||
<template #extra>
|
||||
<j-button :loading="save.loading" type="primary" @click="save.saveMetadata">保存</j-button>
|
||||
<j-button :loading="save.loading" type="primary" @click="() => save.saveMetadata()">保存</j-button>
|
||||
</template>
|
||||
<j-form ref="formRef" :model="form.model" layout="vertical">
|
||||
<BaseForm :model-type="metadataStore.model.type" :type="type" v-model:value="form.model"></BaseForm>
|
||||
|
@ -98,7 +98,7 @@ const save = reactive({
|
|||
}
|
||||
const _data = updateMetadata(type, [formValue], _detail, updateStore)
|
||||
const result = await asyncUpdateMetadata(props.type, _data)
|
||||
if (result.status === 200) {
|
||||
if (result.success) {
|
||||
if ((window as any).onTabSaveSuccess) {
|
||||
if (result) {
|
||||
(window as any).onTabSaveSuccess(result);
|
||||
|
@ -113,7 +113,16 @@ const save = reactive({
|
|||
}
|
||||
// Store.set(SystemConst.REFRESH_METADATA_TABLE, true);
|
||||
if (deploy) {
|
||||
_deploy(id as string)
|
||||
const res = await _deploy(id as string)
|
||||
if (res.success) {
|
||||
save.resetMetadata();
|
||||
message.success({
|
||||
key: 'metadata',
|
||||
content: '操作成功!',
|
||||
});
|
||||
} else {
|
||||
message.error('操作失败!');
|
||||
}
|
||||
// Store.set('product-deploy', deploy);
|
||||
} else {
|
||||
save.resetMetadata();
|
||||
|
|
|
@ -17,8 +17,8 @@ export const validateArray = async (_rule: Rule, val: Record<any, any>) => {
|
|||
return Promise.resolve();
|
||||
}
|
||||
|
||||
export const validateJson = async (_rule: Rule, val: Record<any, any>[], title = '配置参数') => {
|
||||
if (!val || val.length === 0) {
|
||||
export const validateJson = async (_rule: Rule, val: Record<any, any>[], title = '配置参数', required = true) => {
|
||||
if (required && (!val || val.length === 0)) {
|
||||
return Promise.reject(new Error(`请输入${title}`));
|
||||
}
|
||||
for (let item of val) {
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
<template v-if="column.dataIndex === 'action'">
|
||||
<j-space>
|
||||
<PermissionButton :has-permission="`${permission}:update`" type="link" key="edit" style="padding: 0"
|
||||
:udisabled="operateLimits('updata', type)" @click="handleEditClick(record)" :tooltip="{
|
||||
:disabled="operateLimits('updata', type)" @click="handleEditClick(record)" :tooltip="{
|
||||
title: operateLimits('updata', type) ? '当前的存储方式不支持编辑' : '编辑',
|
||||
}">
|
||||
<AIcon type="EditOutlined" />
|
||||
|
@ -68,7 +68,6 @@ import { useMetadataStore } from '@/store/metadata'
|
|||
import PermissionButton from '@/components/PermissionButton/index.vue'
|
||||
import { TablePaginationConfig, message } from 'ant-design-vue/es'
|
||||
import { asyncUpdateMetadata, removeMetadata } from '../metadata'
|
||||
import { detail } from '@/api/device/instance'
|
||||
import Edit from './Edit/index.vue'
|
||||
interface Props {
|
||||
type: MetadataType;
|
||||
|
@ -153,6 +152,9 @@ const handleAddClick = () => {
|
|||
metadataStore.set('item', undefined)
|
||||
metadataStore.set('type', type)
|
||||
metadataStore.set('action', 'add')
|
||||
if (props.target === 'device' && !instanceStore.detail?.independentMetadata) {
|
||||
message.warning('修改物模型后会脱离产品物模型')
|
||||
}
|
||||
}
|
||||
|
||||
const limitsMap = new Map<string, any>();
|
||||
|
@ -172,7 +174,7 @@ const handleEditClick = (record: MetadataItem) => {
|
|||
metadataStore.model.item = record;
|
||||
metadataStore.model.type = type;
|
||||
metadataStore.model.action = 'edit';
|
||||
if (!instanceStore.detail?.independentMetadata && props.target === 'device') {
|
||||
if (props.target === 'device' && !instanceStore.detail?.independentMetadata) {
|
||||
message.warning('修改物模型后会脱离产品物模型');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<j-card>
|
||||
<div class='device-detail-metadata' style="position: relative;">
|
||||
<div class="tips">
|
||||
<j-tooltip :title="instanceStore.detail?.independentMetadata && type === 'device'
|
||||
<j-tooltip v-if="type === 'device'" :title="instanceStore.detail?.independentMetadata && type === 'device'
|
||||
? '该设备已脱离产品物模型,修改产品物模型对该设备无影响'
|
||||
: '设备会默认继承产品的物模型,修改设备物模型后将脱离产品物模型'">
|
||||
<div class="ellipsis">
|
||||
|
@ -41,7 +41,7 @@
|
|||
<BaseMetadata :target="type" type="tags" :permission="permission" />
|
||||
</j-tab-pane>
|
||||
</j-tabs>
|
||||
<Import v-model:visible="visible" :type="type" @close="visible = false" />
|
||||
<Import v-if="visible" v-model:visible="visible" :type="type" @close="visible = false" />
|
||||
<Cat v-model:visible="cat" @close="cat = false" :type="type" />
|
||||
</div>
|
||||
</j-card>
|
||||
|
|
Loading…
Reference in New Issue