Commit 204d053a01eb4bf727c3ce5d461be435c00d2922

Authored by loveumiko
1 parent 6fdcb5ca

fix: 修改场景联动,数据流转,报表配置处于启用中不能操作

@@ -3,24 +3,26 @@ @@ -3,24 +3,26 @@
3 <a-input 3 <a-input
4 placeholder="请输入参数key" 4 placeholder="请输入参数key"
5 v-model:value="param.label" 5 v-model:value="param.label"
  6 + :disabled="disabled"
6 style="width: 38%; margin-bottom: 5px" 7 style="width: 38%; margin-bottom: 5px"
7 @change="emitChange" 8 @change="emitChange"
8 /> 9 />
9 <a-input 10 <a-input
10 placeholder="请输入参数value" 11 placeholder="请输入参数value"
  12 + :disabled="disabled"
11 v-model:value="param.value" 13 v-model:value="param.value"
12 style="width: 38%; margin: 0 0 5px 60px" 14 style="width: 38%; margin: 0 0 5px 60px"
13 @change="emitChange" 15 @change="emitChange"
14 /> 16 />
15 <MinusCircleOutlined 17 <MinusCircleOutlined
16 - v-if="dynamicInput.params.length > min" 18 + v-if="dynamicInput.params.length > min && !disabled"
17 class="dynamic-delete-button" 19 class="dynamic-delete-button"
18 @click="remove(param)" 20 @click="remove(param)"
19 style="width: 50px" 21 style="width: 50px"
20 /> 22 />
21 </div> 23 </div>
22 <div> 24 <div>
23 - <a-button type="dashed" style="width: 38%" @click="add"> 25 + <a-button :disabled="disabled" type="dashed" style="width: 38%" @click="add">
24 <PlusOutlined /> 26 <PlusOutlined />
25 新增 27 新增
26 </a-button> 28 </a-button>
@@ -49,11 +51,17 @@ @@ -49,11 +51,17 @@
49 value: propTypes.object.def({}), 51 value: propTypes.object.def({}),
50 //自定义删除按钮多少才会显示 52 //自定义删除按钮多少才会显示
51 min: propTypes.integer.def(0), 53 min: propTypes.integer.def(0),
  54 + disabled: {
  55 + type: Boolean,
  56 + default: false,
  57 + },
52 }, 58 },
53 emits: ['change', 'update:value'], 59 emits: ['change', 'update:value'],
54 setup(props, { emit }) { 60 setup(props, { emit }) {
55 //input动态数据 61 //input动态数据
56 const dynamicInput: UnwrapRef<{ params: Params[] }> = reactive({ params: [] }); 62 const dynamicInput: UnwrapRef<{ params: Params[] }> = reactive({ params: [] });
  63 +
  64 + console.log(dynamicInput, 'dynamicInput');
57 //删除Input 65 //删除Input
58 const remove = (item: Params) => { 66 const remove = (item: Params) => {
59 let index = dynamicInput.params.indexOf(item); 67 let index = dynamicInput.params.indexOf(item);
@@ -63,6 +71,11 @@ @@ -63,6 +71,11 @@
63 emitChange(); 71 emitChange();
64 }; 72 };
65 73
  74 + // const disabled = computed(() => {
  75 + // const { disabled } = props || {};
  76 + // return disabled;
  77 + // });
  78 +
66 //新增Input 79 //新增Input
67 const add = () => { 80 const add = () => {
68 dynamicInput.params.push({ 81 dynamicInput.params.push({
@@ -108,6 +121,7 @@ @@ -108,6 +121,7 @@
108 emitChange, 121 emitChange,
109 remove, 122 remove,
110 add, 123 add,
  124 + // disabled,
111 }; 125 };
112 }, 126 },
113 }); 127 });
@@ -37,6 +37,7 @@ @@ -37,6 +37,7 @@
37 const getBindProps = computed<Recordable>(() => { 37 const getBindProps = computed<Recordable>(() => {
38 const { value, apiTreeSelectProps = {} } = props; 38 const { value, apiTreeSelectProps = {} } = props;
39 const { params = {} } = apiTreeSelectProps; 39 const { params = {} } = apiTreeSelectProps;
  40 + console.log(props, 'props');
40 return { 41 return {
41 replaceFields: { children: 'children', key: 'id', title: 'name', value: 'id' }, 42 replaceFields: { children: 'children', key: 'id', title: 'name', value: 'id' },
42 getPopupContainer: () => document.body, 43 getPopupContainer: () => document.body,
@@ -14,7 +14,11 @@ @@ -14,7 +14,11 @@
14 <!-- 设备选择 --> 14 <!-- 设备选择 -->
15 <template #devices="{ model }"> 15 <template #devices="{ model }">
16 <span class="hidden">{{ handleChangeOrg(model['organizationId']) }}</span> 16 <span class="hidden">{{ handleChangeOrg(model['organizationId']) }}</span>
17 - <SelectDevice ref="selectDeviceRef" :selectOptions="selectOptions" /> 17 + <SelectDevice
  18 + ref="selectDeviceRef"
  19 + :selectOptions="selectOptions"
  20 + v-model:disabled="deviceDisabled"
  21 + />
18 </template> 22 </template>
19 </BasicForm> 23 </BasicForm>
20 </BasicDrawer> 24 </BasicDrawer>
@@ -82,12 +86,14 @@ @@ -82,12 +86,14 @@
82 } 86 }
83 ); 87 );
84 88
85 - const [registerForm, { validate, resetFields, setFieldsValue, updateSchema }] = useForm({  
86 - labelWidth: 120,  
87 - schemas: formSchema,  
88 - showActionButtonGroup: false,  
89 - fieldMapToTime: [[SchemaFiled.DATE_RANGE, [SchemaFiled.START_TS, SchemaFiled.END_TS]]],  
90 - }); 89 + const [registerForm, { validate, resetFields, setFieldsValue, updateSchema, setProps }] = useForm(
  90 + {
  91 + labelWidth: 120,
  92 + schemas: formSchema,
  93 + showActionButtonGroup: false,
  94 + fieldMapToTime: [[SchemaFiled.DATE_RANGE, [SchemaFiled.START_TS, SchemaFiled.END_TS]]],
  95 + }
  96 + );
91 97
92 const businessText = ref(''); 98 const businessText = ref('');
93 99
@@ -95,11 +101,27 @@ @@ -95,11 +101,27 @@
95 data: {}, 101 data: {},
96 }); 102 });
97 103
  104 + const deviceDisabled = ref<boolean>(false);
  105 +
98 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { 106 const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => {
99 try { 107 try {
100 await nextTick(); 108 await nextTick();
101 handleClose(); 109 handleClose();
102 businessText.value = data.text; 110 businessText.value = data.text;
  111 + if (businessText.value == BusinessReportConfigTextEnum.BUSINESS_VIEW_TEXT) {
  112 + deviceDisabled.value = true;
  113 + setProps({ disabled: true });
  114 + updateSchema({
  115 + field: 'organizationId',
  116 + componentProps: { apiTreeSelectProps: { disabled: true } },
  117 + });
  118 + } else {
  119 + deviceDisabled.value = false;
  120 + updateSchema({
  121 + field: 'organizationId',
  122 + componentProps: { apiTreeSelectProps: { disabled: false } },
  123 + });
  124 + }
103 setFieldsValue(setDefaultTime()); 125 setFieldsValue(setDefaultTime());
104 updateSchema(disableCustomWeekly(BusinessExecutewayEnum.BUSINESS_EXECUTEWAY_IMMEDIATE)); 126 updateSchema(disableCustomWeekly(BusinessExecutewayEnum.BUSINESS_EXECUTEWAY_IMMEDIATE));
105 setDrawerProps(setPropsForModal(businessText.value)); 127 setDrawerProps(setPropsForModal(businessText.value));
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
11 v-model:value="param.attributes" 11 v-model:value="param.attributes"
12 style="width: 38%; margin-left: 1.8vw" 12 style="width: 38%; margin-left: 1.8vw"
13 :options="selectOptions" 13 :options="selectOptions"
  14 + :disabled="disabled"
14 @change="emitChange" 15 @change="emitChange"
15 mode="multiple" 16 mode="multiple"
16 allowClear 17 allowClear
@@ -31,6 +32,10 @@ @@ -31,6 +32,10 @@
31 32
32 const props = defineProps({ 33 const props = defineProps({
33 value: propTypes.object.def({}), 34 value: propTypes.object.def({}),
  35 + disabled: {
  36 + type: Boolean,
  37 + required: false,
  38 + },
34 }); 39 });
35 40
36 const selectOptions: any = ref([]); 41 const selectOptions: any = ref([]);
@@ -5,11 +5,17 @@ @@ -5,11 +5,17 @@
5 style="width: 100%" 5 style="width: 100%"
6 :options="selectOptions" 6 :options="selectOptions"
7 @change="handleDeviceChange" 7 @change="handleDeviceChange"
  8 + :disabled="disabled"
8 mode="multiple" 9 mode="multiple"
9 labelInValue 10 labelInValue
10 /> 11 />
11 <template v-for="(item, index) in deviceList" :key="item.value"> 12 <template v-for="(item, index) in deviceList" :key="item.value">
12 - <SelectAttributes :ref="bindDeviceRef.deviceAttrRef" :value="item" :index="index" /> 13 + <SelectAttributes
  14 + :ref="bindDeviceRef.deviceAttrRef"
  15 + :value="item"
  16 + :index="index"
  17 + :disabled="disabled"
  18 + />
13 </template> 19 </template>
14 </template> 20 </template>
15 <script lang="ts" setup name="SelectDevice"> 21 <script lang="ts" setup name="SelectDevice">
@@ -23,6 +29,10 @@ @@ -23,6 +29,10 @@
23 type: Array as PropType<TSelectOption[]>, 29 type: Array as PropType<TSelectOption[]>,
24 required: true, 30 required: true,
25 }, 31 },
  32 + disabled: {
  33 + type: Boolean,
  34 + required: false,
  35 + },
26 }); 36 });
27 37
28 const selectValue = ref([]); 38 const selectValue = ref([]);
@@ -4,18 +4,21 @@ @@ -4,18 +4,21 @@
4 <template #uploadFilesSlot="{ model }"> 4 <template #uploadFilesSlot="{ model }">
5 <UploadFile 5 <UploadFile
6 :url="credentialsFile.caCertFileName" 6 :url="credentialsFile.caCertFileName"
  7 + :disabled="disabled"
7 @fileUrlEmit="handleFileUrlEmitH" 8 @fileUrlEmit="handleFileUrlEmitH"
8 v-show="model['type'] === CredentialsEnum.IS_PEM" 9 v-show="model['type'] === CredentialsEnum.IS_PEM"
9 /> 10 />
10 <div class="h-4"></div> 11 <div class="h-4"></div>
11 <UploadFile 12 <UploadFile
12 :url="credentialsFile.certFileName" 13 :url="credentialsFile.certFileName"
  14 + :disabled="disabled"
13 @fileUrlEmit="handleFileUrlEmitC" 15 @fileUrlEmit="handleFileUrlEmitC"
14 v-show="model['type'] === CredentialsEnum.IS_PEM" 16 v-show="model['type'] === CredentialsEnum.IS_PEM"
15 /> 17 />
16 <div class="h-4"></div> 18 <div class="h-4"></div>
17 <UploadFile 19 <UploadFile
18 :url="credentialsFile.privateKeyFileName" 20 :url="credentialsFile.privateKeyFileName"
  21 + :disabled="disabled"
19 @fileUrlEmit="handleFileUrlEmitB" 22 @fileUrlEmit="handleFileUrlEmitB"
20 v-show="model['type'] === CredentialsEnum.IS_PEM" 23 v-show="model['type'] === CredentialsEnum.IS_PEM"
21 /> </template 24 /> </template
@@ -23,7 +26,7 @@ @@ -23,7 +26,7 @@
23 </div> 26 </div>
24 </template> 27 </template>
25 <script lang="ts" setup name="DataFlowMethodIsApi"> 28 <script lang="ts" setup name="DataFlowMethodIsApi">
26 - import { reactive } from 'vue'; 29 + import { reactive, ref } from 'vue';
27 import { BasicForm, useForm } from '/@/components/Form'; 30 import { BasicForm, useForm } from '/@/components/Form';
28 import { modeApiForm } from './config'; 31 import { modeApiForm } from './config';
29 import { modelFormPublicConfig } from '../../../dataflowmodal/config'; 32 import { modelFormPublicConfig } from '../../../dataflowmodal/config';
@@ -36,10 +39,11 @@ @@ -36,10 +39,11 @@
36 privateKeyFileName: undefined, 39 privateKeyFileName: undefined,
37 }); 40 });
38 41
39 - const [register, { validateFields, setFieldsValue, resetFields }] = useForm({  
40 - schemas: modeApiForm,  
41 - ...modelFormPublicConfig,  
42 - }); 42 + const [register, { validateFields, setFieldsValue, resetFields, setProps, updateSchema }] =
  43 + useForm({
  44 + schemas: modeApiForm,
  45 + ...modelFormPublicConfig,
  46 + });
43 47
44 const handleFileUrlEmitH = (fileUrl) => (credentialsFile.caCertFileName = fileUrl); 48 const handleFileUrlEmitH = (fileUrl) => (credentialsFile.caCertFileName = fileUrl);
45 49
@@ -78,10 +82,24 @@ @@ -78,10 +82,24 @@
78 }; 82 };
79 83
80 const resetValue = () => resetFields(); 84 const resetValue = () => resetFields();
  85 +
  86 + const disabled = ref<boolean>(false);
  87 + const setDisabledProps = (value) => {
  88 + setProps(value);
  89 + disabled.value = true;
  90 + updateSchema({ field: 'headers', componentProps: { disabled: false } });
  91 + };
  92 +
  93 + const setCancelDisabled = () => {
  94 + updateSchema({ field: 'headers', componentProps: { disabled: false } });
  95 + };
  96 +
81 defineExpose({ 97 defineExpose({
82 getValue, 98 getValue,
83 setValue, 99 setValue,
84 resetValue, 100 resetValue,
  101 + setDisabledProps,
  102 + setCancelDisabled,
85 }); 103 });
86 </script> 104 </script>
87 105
@@ -29,7 +29,7 @@ class ApiFormPartialConfig { @@ -29,7 +29,7 @@ class ApiFormPartialConfig {
29 return [ 29 return [
30 { label: 'Anonymous', value: 'anonymous' }, 30 { label: 'Anonymous', value: 'anonymous' },
31 { label: 'Basic', value: 'basic' }, 31 { label: 'Basic', value: 'basic' },
32 - { label: 'PEM', value: 'pem' }, 32 + { label: 'PEM', value: 'cert.PEM' },
33 ]; 33 ];
34 } 34 }
35 } 35 }
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 import { modelKafkaForm } from './config'; 8 import { modelKafkaForm } from './config';
9 import { modelFormPublicConfig } from '../../../dataflowmodal/config'; 9 import { modelFormPublicConfig } from '../../../dataflowmodal/config';
10 10
11 - const [register, { validate, setFieldsValue, resetFields }] = useForm({ 11 + const [register, { validate, setFieldsValue, resetFields, setProps, updateSchema }] = useForm({
12 schemas: modelKafkaForm, 12 schemas: modelKafkaForm,
13 ...modelFormPublicConfig, 13 ...modelFormPublicConfig,
14 }); 14 });
@@ -19,13 +19,29 @@ @@ -19,13 +19,29 @@
19 return values; 19 return values;
20 }; 20 };
21 21
22 - const setValue = (value) => setFieldsValue(value); 22 + const setValue = (value) => {
  23 + console.log(value, 'value');
  24 + setFieldsValue(value);
  25 + };
  26 +
  27 + // 禁用表单
  28 + const setDisabledProps = (value) => {
  29 + setProps(value);
  30 + updateSchema({ field: 'otherProperties', componentProps: { disabled: true } });
  31 + };
  32 +
  33 + // 取消禁用
  34 + const setCancelDisabled = () => {
  35 + updateSchema({ field: 'otherProperties', componentProps: { disabled: false } });
  36 + };
23 37
24 const resetValue = () => resetFields(); 38 const resetValue = () => resetFields();
25 defineExpose({ 39 defineExpose({
26 getValue, 40 getValue,
27 setValue, 41 setValue,
28 resetValue, 42 resetValue,
  43 + setDisabledProps,
  44 + setCancelDisabled,
29 }); 45 });
30 </script> 46 </script>
31 47
@@ -4,18 +4,21 @@ @@ -4,18 +4,21 @@
4 <template #uploadFilesSlot="{ model }"> 4 <template #uploadFilesSlot="{ model }">
5 <UploadFile 5 <UploadFile
6 :url="credentialsFile.caCertFileName" 6 :url="credentialsFile.caCertFileName"
  7 + :disabled="disabled"
7 @fileUrlEmit="handleFileUrlEmitH" 8 @fileUrlEmit="handleFileUrlEmitH"
8 v-show="model['type'] === CredentialsEnum.IS_PEM" 9 v-show="model['type'] === CredentialsEnum.IS_PEM"
9 /> 10 />
10 <div class="h-4"></div> 11 <div class="h-4"></div>
11 <UploadFile 12 <UploadFile
12 :url="credentialsFile.certFileName" 13 :url="credentialsFile.certFileName"
  14 + :disabled="disabled"
13 @fileUrlEmit="handleFileUrlEmitC" 15 @fileUrlEmit="handleFileUrlEmitC"
14 v-show="model['type'] === CredentialsEnum.IS_PEM" 16 v-show="model['type'] === CredentialsEnum.IS_PEM"
15 /> 17 />
16 <div class="h-4"></div> 18 <div class="h-4"></div>
17 <UploadFile 19 <UploadFile
18 :url="credentialsFile.privateKeyFileName" 20 :url="credentialsFile.privateKeyFileName"
  21 + :disabled="disabled"
19 @fileUrlEmit="handleFileUrlEmitB" 22 @fileUrlEmit="handleFileUrlEmitB"
20 v-show="model['type'] === CredentialsEnum.IS_PEM" 23 v-show="model['type'] === CredentialsEnum.IS_PEM"
21 /> 24 />
@@ -24,7 +27,7 @@ @@ -24,7 +27,7 @@
24 </div> 27 </div>
25 </template> 28 </template>
26 <script lang="ts" setup name="DataFlowMethodIsMqtt"> 29 <script lang="ts" setup name="DataFlowMethodIsMqtt">
27 - import { reactive } from 'vue'; 30 + import { reactive, ref } from 'vue';
28 import { BasicForm, useForm } from '/@/components/Form'; 31 import { BasicForm, useForm } from '/@/components/Form';
29 import { modeMqttForm } from './config'; 32 import { modeMqttForm } from './config';
30 import { UploadFile } from '../../../uploadfile'; 33 import { UploadFile } from '../../../uploadfile';
@@ -37,7 +40,7 @@ @@ -37,7 +40,7 @@
37 privateKeyFileName: undefined, 40 privateKeyFileName: undefined,
38 }); 41 });
39 42
40 - const [register, { validateFields, setFieldsValue, resetFields }] = useForm({ 43 + const [register, { validateFields, setFieldsValue, resetFields, setProps }] = useForm({
41 schemas: modeMqttForm, 44 schemas: modeMqttForm,
42 ...modelFormPublicConfig, 45 ...modelFormPublicConfig,
43 }); 46 });
@@ -81,11 +84,18 @@ @@ -81,11 +84,18 @@
81 }); 84 });
82 }; 85 };
83 86
  87 + const disabled = ref<boolean>(false);
  88 + const setDisabledProps = (value) => {
  89 + setProps(value);
  90 + disabled.value = true;
  91 + };
  92 +
84 const resetValue = () => resetFields(); 93 const resetValue = () => resetFields();
85 defineExpose({ 94 defineExpose({
86 getValue, 95 getValue,
87 setValue, 96 setValue,
88 resetValue, 97 resetValue,
  98 + setDisabledProps,
89 }); 99 });
90 </script> 100 </script>
91 101
@@ -8,10 +8,11 @@ @@ -8,10 +8,11 @@
8 import { modeRabbitMqForm } from './config'; 8 import { modeRabbitMqForm } from './config';
9 import { modelFormPublicConfig } from '../../../dataflowmodal/config'; 9 import { modelFormPublicConfig } from '../../../dataflowmodal/config';
10 10
11 - const [register, { validateFields, setFieldsValue, resetFields }] = useForm({  
12 - schemas: modeRabbitMqForm,  
13 - ...modelFormPublicConfig,  
14 - }); 11 + const [register, { validateFields, setFieldsValue, resetFields, setProps, updateSchema }] =
  12 + useForm({
  13 + schemas: modeRabbitMqForm,
  14 + ...modelFormPublicConfig,
  15 + });
15 16
16 const getValue = async () => { 17 const getValue = async () => {
17 const values = await validateFields(); 18 const values = await validateFields();
@@ -22,10 +23,22 @@ @@ -22,10 +23,22 @@
22 const setValue = (value) => setFieldsValue(value); 23 const setValue = (value) => setFieldsValue(value);
23 24
24 const resetValue = () => resetFields(); 25 const resetValue = () => resetFields();
  26 +
  27 + const setDisabledProps = (value) => {
  28 + setProps(value);
  29 + updateSchema({ field: 'clientProperties', componentProps: { disabled: true } });
  30 + };
  31 +
  32 + const setCancelDisabled = () => {
  33 + updateSchema({ field: 'clientProperties', componentProps: { disabled: false } });
  34 + };
  35 +
25 defineExpose({ 36 defineExpose({
26 getValue, 37 getValue,
27 setValue, 38 setValue,
28 resetValue, 39 resetValue,
  40 + setDisabledProps,
  41 + setCancelDisabled,
29 }); 42 });
30 </script> 43 </script>
31 <style lang="less" scoped></style> 44 <style lang="less" scoped></style>
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 25
26 const emit = defineEmits(['currentDataFlowMethodEmitNext']); 26 const emit = defineEmits(['currentDataFlowMethodEmitNext']);
27 27
28 - const [register, { validateFields, setFieldsValue, resetFields }] = useForm({ 28 + const [register, { validateFields, setFieldsValue, resetFields, setProps }] = useForm({
29 schemas: modeForm(props.saveContent), 29 schemas: modeForm(props.saveContent),
30 ...modelFormPublicConfig, 30 ...modelFormPublicConfig,
31 }); 31 });
@@ -66,6 +66,7 @@ @@ -66,6 +66,7 @@
66 getValue, 66 getValue,
67 setValue, 67 setValue,
68 resetValue, 68 resetValue,
  69 + setProps,
69 }); 70 });
70 </script> 71 </script>
71 <style lang="less" scoped> 72 <style lang="less" scoped>
@@ -74,6 +74,9 @@ @@ -74,6 +74,9 @@
74 resetValue(); 74 resetValue();
75 const { text, record } = data; 75 const { text, record } = data;
76 businessText.value = text; 76 businessText.value = text;
  77 + if (businessText.value == BusinessDataFlowTextEnum.BUSINESS_MODAL_VIEW_TEXT) {
  78 + dataFlowMethodRef.value?.setProps({ disabled: true });
  79 + }
77 restData.data = record; 80 restData.data = record;
78 setModalProps(modalProps(businessText.value)); 81 setModalProps(modalProps(businessText.value));
79 if (!record) return; 82 if (!record) return;
@@ -161,6 +164,12 @@ @@ -161,6 +164,12 @@
161 164
162 //下一步 165 //下一步
163 const handleNextDataFlowParams = async (value) => { 166 const handleNextDataFlowParams = async (value) => {
  167 + //判断是否是查看 查看禁用表单
  168 + if (businessText.value == BusinessDataFlowTextEnum.BUSINESS_MODAL_VIEW_TEXT) {
  169 + dataFlowParamsRef.value?.setProps();
  170 + } else {
  171 + dataFlowParamsRef.value?.setCancelDisabled();
  172 + }
164 value 173 value
165 .then(async (res) => { 174 .then(async (res) => {
166 currentStep.value = 1; 175 currentStep.value = 1;
@@ -104,10 +104,35 @@ @@ -104,10 +104,35 @@
104 if (!findDateFlow) return; 104 if (!findDateFlow) return;
105 findDateFlow[3](0); 105 findDateFlow[3](0);
106 }; 106 };
  107 +
  108 + const setProps = async () => {
  109 + await nextTick();
  110 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_KAFKA &&
  111 + dataFlowMethodIsKafkaRef.value?.setDisabledProps({ disabled: true });
  112 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_MQTT &&
  113 + dataFlowMethodIsMqttRef.value?.setDisabledProps({ disabled: true });
  114 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_RABBITMQ &&
  115 + dataFlowMethodIsRabbitMqRef.value?.setDisabledProps({ disabled: true });
  116 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_REST_API &&
  117 + dataFlowMethodIsApiRef.value?.setDisabledProps({ disabled: true });
  118 + };
  119 +
  120 + const setCancelDisabled = async () => {
  121 + await nextTick();
  122 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_KAFKA &&
  123 + dataFlowMethodIsKafkaRef.value?.setCancelDisabled();
  124 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_RABBITMQ &&
  125 + dataFlowMethodIsRabbitMqRef.value?.setCancelDisabled();
  126 + props.dataFlowType === BusinessDataFlowMethodEnum.DATAFLOW_METHOD_REST_API &&
  127 + dataFlowMethodIsApiRef.value?.setCancelDisabled();
  128 + };
  129 +
107 defineExpose({ 130 defineExpose({
108 getValue, 131 getValue,
109 setValue, 132 setValue,
110 resetValue, 133 resetValue,
  134 + setCancelDisabled,
  135 + setProps,
111 }); 136 });
112 </script> 137 </script>
113 <style lang="less" scoped> 138 <style lang="less" scoped>
@@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
3 <a-upload-dragger 3 <a-upload-dragger
4 v-model:fileList="fileList.list" 4 v-model:fileList="fileList.list"
5 name="file" 5 name="file"
  6 + :disabled="disabled"
6 :multiple="false" 7 :multiple="false"
7 @change="handleChange($event)" 8 @change="handleChange($event)"
8 :before-upload="() => false" 9 :before-upload="() => false"
@@ -37,6 +38,10 @@ @@ -37,6 +38,10 @@
37 type: String, 38 type: String,
38 default: '', 39 default: '',
39 }, 40 },
  41 + disabled: {
  42 + type: Boolean,
  43 + default: false,
  44 + },
40 }); 45 });
41 46
42 const emit = defineEmits(['fileUrlEmit']); 47 const emit = defineEmits(['fileUrlEmit']);
@@ -153,11 +153,14 @@ @@ -153,11 +153,14 @@
153 let getActionFormValue = ref([]); 153 let getActionFormValue = ref([]);
154 const editEntryIdData = ref([]); 154 const editEntryIdData = ref([]);
155 const editAlarmConfigData = ref([]); 155 const editAlarmConfigData = ref([]);
156 - const isUpdate = ref(false); 156 + const isUpdate = ref<boolean | number>(false);
157 const id = ref(undefined); 157 const id = ref(undefined);
158 const tenantId = ref(undefined); 158 const tenantId = ref(undefined);
159 const isView = ref(true); 159 const isView = ref(true);
160 - const [registerForm, { resetFields, validate, setFieldsValue, getFieldsValue }] = useForm({ 160 + const [
  161 + registerForm,
  162 + { resetFields, validate, setFieldsValue, getFieldsValue, setProps, updateSchema },
  163 + ] = useForm({
161 labelWidth: 120, 164 labelWidth: 120,
162 schemas: formSchema, 165 schemas: formSchema,
163 showActionButtonGroup: false, 166 showActionButtonGroup: false,
@@ -531,6 +534,27 @@ @@ -531,6 +534,27 @@
531 showFooter: unref(isView), 534 showFooter: unref(isView),
532 loading: false, 535 loading: false,
533 }); 536 });
  537 +
  538 + if (isUpdate.value == 3) {
  539 + setProps({ disabled: true });
  540 + updateSchema({
  541 + field: 'organizationId',
  542 + componentProps: { apiTreeSelectProps: { disabled: true } },
  543 + });
  544 + await nextTick();
  545 + unref(skipUnwrap.triggerItemRefs)?.forEach((item) => {
  546 + item.setDisabledProps({ disabled: true });
  547 + });
  548 + console.log(unref(skipUnwrap.triggerItemRefs), 'skipUnwrap.triggerItemRefs');
  549 + } else {
  550 + updateSchema({
  551 + field: 'organizationId',
  552 + componentProps: { apiTreeSelectProps: { disabled: false } },
  553 + });
  554 + unref(skipUnwrap.triggerItemRefs)?.forEach((item) => {
  555 + item.setCancelDisabled();
  556 + });
  557 + }
534 }); 558 });
535 559
536 // 设置设备的options 560 // 设置设备的options
@@ -6,11 +6,13 @@ @@ -6,11 +6,13 @@
6 <div class="flex"> 6 <div class="flex">
7 <span class="mr-2">启用规则:</span> 7 <span class="mr-2">启用规则:</span>
8 <template v-for="(item, scheduleIndex) in scheduleOptions" :key="item.label"> 8 <template v-for="(item, scheduleIndex) in scheduleOptions" :key="item.label">
9 - <div 9 + <a-button
  10 + type="link"
10 :class="{ 'ml-4': scheduleIndex >= 1, active: scheduleIndex === currentIndex }" 11 :class="{ 'ml-4': scheduleIndex >= 1, active: scheduleIndex === currentIndex }"
11 - class="cursor-pointer" 12 + class="cursor-pointer !p-0"
  13 + :disabled="disabled"
12 @click="handleScheduleChange(item.value)" 14 @click="handleScheduleChange(item.value)"
13 - >{{ item.label }}</div 15 + >{{ item.label }}</a-button
14 > 16 >
15 </template> 17 </template>
16 </div> 18 </div>
@@ -28,6 +30,7 @@ @@ -28,6 +30,7 @@
28 <template #operationType="{ model, field }"> 30 <template #operationType="{ model, field }">
29 <Select 31 <Select
30 :options="options" 32 :options="options"
  33 + :disabled="disabled"
31 v-model:value="model[field]" 34 v-model:value="model[field]"
32 @change="operationType = model[field]" 35 @change="operationType = model[field]"
33 placeholder="请选择比较类型" 36 placeholder="请选择比较类型"
@@ -38,6 +41,7 @@ @@ -38,6 +41,7 @@
38 <Input v-model:value="model[field]" placeholder="请输入持续时间"> 41 <Input v-model:value="model[field]" placeholder="请输入持续时间">
39 <template #addonAfter> 42 <template #addonAfter>
40 <Select 43 <Select
  44 + :disabled="disabled"
41 v-model:value="model[`timeUnit`]" 45 v-model:value="model[`timeUnit`]"
42 :options="timeUnitOptions" 46 :options="timeUnitOptions"
43 style="width: 60px" 47 style="width: 60px"
@@ -92,12 +96,13 @@ @@ -92,12 +96,13 @@
92 96
93 const isUpdate = ref(false); 97 const isUpdate = ref(false);
94 const conditionScreeningRef = ref(); 98 const conditionScreeningRef = ref();
95 - const [registerForm, { resetFields, getFieldsValue, updateSchema, setFieldsValue }] = useForm({  
96 - //TODO-wenwei-修复  
97 - schemas: cloneDeep(trigger_condition_schema),  
98 - //TODO-wenwei-修复  
99 - showActionButtonGroup: false,  
100 - }); 99 + const [registerForm, { resetFields, getFieldsValue, updateSchema, setFieldsValue, setProps }] =
  100 + useForm({
  101 + //TODO-wenwei-修复
  102 + schemas: cloneDeep(trigger_condition_schema),
  103 + //TODO-wenwei-修复
  104 + showActionButtonGroup: false,
  105 + });
101 106
102 const alarmScheduleRef = ref<InstanceType<typeof AlarmSchedule>>(); 107 const alarmScheduleRef = ref<InstanceType<typeof AlarmSchedule>>();
103 108
@@ -223,6 +228,16 @@ @@ -223,6 +228,16 @@
223 // console.log(alarmConfigList); 228 // console.log(alarmConfigList);
224 }; 229 };
225 230
  231 + const disabled = ref<boolean>(false);
  232 + const setDisabledProps = (value) => {
  233 + setProps(value);
  234 + disabled.value = true;
  235 + };
  236 +
  237 + const setCancelDisabled = () => {
  238 + disabled.value = false;
  239 + };
  240 +
226 defineExpose({ 241 defineExpose({
227 getFieldsValueFunc, 242 getFieldsValueFunc,
228 updateFieldDeviceId, 243 updateFieldDeviceId,
@@ -240,6 +255,8 @@ @@ -240,6 +255,8 @@
240 updateFieldAttributeFunc, 255 updateFieldAttributeFunc,
241 updateFieldAlarmConfig, 256 updateFieldAlarmConfig,
242 updateEditFieldAlarmConfig, 257 updateEditFieldAlarmConfig,
  258 + setDisabledProps,
  259 + setCancelDisabled,
243 }); 260 });
244 </script> 261 </script>
245 262
@@ -286,6 +286,7 @@ export const useSocket = (dataSourceRef: Ref<WidgetDataType[]>) => { @@ -286,6 +286,7 @@ export const useSocket = (dataSourceRef: Ref<WidgetDataType[]>) => {
286 throw Error(error as string); 286 throw Error(error as string);
287 } 287 }
288 }, 288 },
  289 + autoReconnect: true,
289 }); 290 });
290 291
291 const initSubscribe = () => { 292 const initSubscribe = () => {