Merge branch 'dev' of github.com:jetlinks/jetlinks-ui-vue into dev

This commit is contained in:
100011797 2023-03-27 17:47:34 +08:00
commit 9b32fbd21d
8 changed files with 58 additions and 37 deletions

View File

@ -4,7 +4,10 @@ export const queryCollector = (data: any) =>
server.post(`/data-collect/collector/_query/no-paging?paging=false`, data); server.post(`/data-collect/collector/_query/no-paging?paging=false`, data);
export const queryChannelNoPaging = () => export const queryChannelNoPaging = () =>
server.post(`/data-collect/channel/_query/no-paging`, { paging: false }); server.post(`/data-collect/channel/_query/no-paging`, {
paging: false,
sorts: [{ name: 'createTime', order: 'desc' }],
});
export const save = (data: any) => server.post(`/data-collect/collector`, data); export const save = (data: any) => server.post(`/data-collect/collector`, data);

View File

@ -1,4 +1,7 @@
<template> <template>
<j-form-item :name="name.concat(['type'])" v-show="false">
<j-input v-model:value="value.type" disabled/>
</j-form-item>
<j-form-item :name="name.concat(['script'])"> <j-form-item :name="name.concat(['script'])">
<f-rule-editor v-model:value="value.script" :id="id" :virtualRule="value"></f-rule-editor> <f-rule-editor v-model:value="value.script" :id="id" :virtualRule="value"></f-rule-editor>
</j-form-item> </j-form-item>
@ -60,10 +63,12 @@ interface Emits {
const emit = defineEmits<Emits>() const emit = defineEmits<Emits>()
onMounted(() => { onMounted(() => {
emit('update:value', { if (!props.value.type) {
...props.value, emit('update:value', {
type: 'script' ...props.value,
}) type: 'script'
})
}
}) })
const aggTypeOptions = ref() const aggTypeOptions = ref()

View File

@ -301,7 +301,13 @@ const formData = ref({
}); });
const handleOk = async () => { const handleOk = async () => {
const data = await formRef.value?.validate(); console.log(2, formRef.value, formRef.value?.validate());
const data = await formRef.value?.validate().catch((err) => {
console.log(23, err);
});
console.log(3, data);
delete data?.nspwc; delete data?.nspwc;
const { codec } = data?.configuration; const { codec } = data?.configuration;

View File

@ -20,7 +20,7 @@
<template #headerTitle> <template #headerTitle>
<j-space> <j-space>
<PermissionButton <PermissionButton
v-if="data?.provider !== 'OPC_UA'" v-if="data?.provider == 'MODBUS_TCP'"
type="primary" type="primary"
@click="handlAdd" @click="handlAdd"
hasPermission="DataCollect/Collector:add" hasPermission="DataCollect/Collector:add"

View File

@ -56,22 +56,8 @@
<j-form-item <j-form-item
:name="['circuitBreaker', 'type']" :name="['circuitBreaker', 'type']"
:rules="LeftTreeRules.type" :rules="LeftTreeRules.type"
label="故障处理"
> >
<template #label>
<span>
故障处理
<j-tooltip
:title="
getTypeTooltip(formData.circuitBreaker.type)
"
>
<AIcon
type="QuestionCircleOutlined"
style="margin-left: 2px"
/>
</j-tooltip>
</span>
</template>
<j-card-select <j-card-select
:showImage="false" :showImage="false"
v-model:value="formData.circuitBreaker.type" v-model:value="formData.circuitBreaker.type"
@ -83,6 +69,9 @@
@change="changeCardSelectType" @change="changeCardSelectType"
/> />
</j-form-item> </j-form-item>
<p style="color: #616161">
{{ getTypeTooltip(formData.circuitBreaker.type) }}
</p>
<j-form-item <j-form-item
:name="['configuration', 'endian']" :name="['configuration', 'endian']"
v-if="visibleEndian" v-if="visibleEndian"
@ -137,15 +126,12 @@
</j-modal> </j-modal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { Form } from 'ant-design-vue';
import { save, update } from '@/api/data-collect/collector'; import { save, update } from '@/api/data-collect/collector';
import { Store } from 'jetlinks-store'; import { Store } from 'jetlinks-store';
import { cloneDeep } from 'lodash';
import { LeftTreeRules } from '../../data'; import { LeftTreeRules } from '../../data';
import type { FormInstance } from 'ant-design-vue'; import type { FormInstance } from 'ant-design-vue';
const loading = ref(false); const loading = ref(false);
const useForm = Form.useForm;
const channelListAll = ref(); const channelListAll = ref();
const channelList = ref(); const channelList = ref();
const visibleEndian = ref(false); const visibleEndian = ref(false);

View File

@ -24,7 +24,10 @@
:tree-data="defualtDataSource" :tree-data="defualtDataSource"
v-model:selected-keys="selectedKeys" v-model:selected-keys="selectedKeys"
:fieldNames="{ key: 'id' }" :fieldNames="{ key: 'id' }"
v-if="defualtDataSource[0].children.length !== 0" v-if="
defualtDataSource.length !== 0 ||
defualtDataSource?.[0]?.children?.length !== 0
"
:height="600" :height="600"
defaultExpandAll defaultExpandAll
> >
@ -129,13 +132,15 @@ const visible = ref(false);
const current = ref({}); const current = ref({});
const collectorAll = ref(); const collectorAll = ref();
const defualtDataSource: any = ref([ const root = [
{ {
id: '*', id: '*',
name: '全部', name: '全部',
children: [], children: [],
}, },
]); ];
const defualtDataSource: any = ref(_.cloneDeep(root));
const defualtParams = { const defualtParams = {
paging: false, paging: false,
@ -195,9 +200,11 @@ const saveChange = (value: object) => {
}; };
const handleSearch = async (value: any) => { const handleSearch = async (value: any) => {
let clickSearch = false;
if (!searchValue.value && !value) { if (!searchValue.value && !value) {
params.value = _.cloneDeep(defualtParams); params.value = _.cloneDeep(defualtParams);
} else if (!!searchValue.value) { } else if (!!searchValue.value) {
clickSearch = true;
params.value = { ..._.cloneDeep(defualtParams) }; params.value = { ..._.cloneDeep(defualtParams) };
params.value.terms[1] = { params.value.terms[1] = {
terms: [ terms: [
@ -214,12 +221,24 @@ const handleSearch = async (value: any) => {
spinning.value = true; spinning.value = true;
const res: any = await queryCollector(params.value); const res: any = await queryCollector(params.value);
if (res.status === 200) { if (res.status === 200) {
defualtDataSource.value[0].children = res.result; if (clickSearch) {
collectorAll.value = res.result; defualtDataSource.value = res.result;
if (selectedKeys.value.length === 0) { } else {
selectedKeys.value = [res?.result[0]?.id] || []; defualtDataSource.value = _.cloneDeep(root);
emits('change', res?.result[0]); defualtDataSource.value[0].children = res.result;
} }
collectorAll.value = res.result;
if (selectedKeys.value.length === 0) {
selectedKeys.value = ['*'];
}
//change
setTimeout(() => {
const _selectedKeys = _.cloneDeep(selectedKeys.value);
selectedKeys.value = [];
selectedKeys.value = _selectedKeys;
}, 0);
} }
spinning.value = false; spinning.value = false;
}; };
@ -238,8 +257,10 @@ watch(
() => selectedKeys.value, () => selectedKeys.value,
(n) => { (n) => {
const key = _.isArray(n) ? n[0] : n; const key = _.isArray(n) ? n[0] : n;
const row = collectorAll.value.find((i: any) => i.id === key); if (key) {
emits('change', row); const row = collectorAll.value.find((i: any) => i.id === key);
emits('change', row);
}
}, },
); );

View File

@ -6,7 +6,7 @@
</div> </div>
<div class="right"> <div class="right">
<j-spin :spinning="spinning"> <j-spin :spinning="spinning">
<Point v-if="!!data" :data="data" /> <Point v-if="data || data === undefined" :data="data" />
<j-empty style="margin-top: 20%" v-else /> <j-empty style="margin-top: 20%" v-else />
</j-spin> </j-spin>
</div> </div>

View File

@ -5,7 +5,7 @@
<j-select v-model:value="_value.source" :options="PropertySource" size="small" <j-select v-model:value="_value.source" :options="PropertySource" size="small"
:disabled="metadataStore.model.action === 'edit'" @change="changeSource"></j-select> :disabled="metadataStore.model.action === 'edit'" @change="changeSource"></j-select>
</j-form-item> </j-form-item>
<virtual-rule-param v-if="_value.source === 'rule'" v-model:value="_value.virtualRule" <virtual-rule-param v-if="type === 'product' && _value.source === 'rule'" v-model:value="_value.virtualRule"
:name="name.concat(['virtualRule'])" :id="id" :showWindow="_value.source === 'rule'"></virtual-rule-param> :name="name.concat(['virtualRule'])" :id="id" :showWindow="_value.source === 'rule'"></virtual-rule-param>
<j-form-item label="读写类型" :name="name.concat(['type'])" :rules="[ <j-form-item label="读写类型" :name="name.concat(['type'])" :rules="[
{ required: true, message: '请选择读写类型' }, { required: true, message: '请选择读写类型' },