Commit b8aa0b398474809b9a60a53a6e8f5983517498e0

Authored by fengtao
1 parent d8e1d29b

fix:修改场景联动 清除告警和触发器执行条件一样功能

... ... @@ -69,6 +69,7 @@
69 69 import { Icon } from '/@/components/Icon';
70 70 import AlarmSchedule from './AlarmSchedule.vue';
71 71 import { useModal } from '/@/components/Modal';
  72 + import { cloneDeep } from 'lodash-es';
72 73
73 74 defineProps({
74 75 index: {
... ... @@ -84,7 +85,9 @@
84 85 const isUpdate = ref(false);
85 86 const conditionScreeningRef = ref();
86 87 const [registerForm, { resetFields, getFieldsValue, updateSchema, setFieldsValue }] = useForm({
87   - schemas: trigger_condition_schema,
  88 + //TODO-wenwei-修复
  89 + schemas: cloneDeep(trigger_condition_schema),
  90 + //TODO-wenwei-修复
88 91 showActionButtonGroup: false,
89 92 });
90 93
... ... @@ -96,14 +99,82 @@
96 99 return { ...getFieldsValue(), predicate, schedule: alarmScheduleRef.value.scheduleData };
97 100 };
98 101
99   - const updateFieldDeviceId = (deviceList: any[]) => {
  102 + const updateFieldDeviceId = (deviceList: any[], orgId, isUpdate) => {
  103 + if (isUpdate) {
  104 + updateSchema({
  105 + field: 'entityId',
  106 + componentProps: {
  107 + options: deviceList,
  108 + onChange(e) {
  109 + if (e) {
  110 + if (isUpdate) {
  111 + setFieldsValue({ type2: '' });
  112 + }
  113 + //fengtao
  114 + updateFieldAttributeFunc(e, orgId);
  115 + //fengtao
  116 + }
  117 + },
  118 + },
  119 + });
  120 + }
  121 + //新增、编辑都会触发onChang事件
100 122 updateSchema({
101   - field: 'entityId',
  123 + field: 'device',
102 124 componentProps: {
103   - options: deviceList,
104   - onChange(e) {
  125 + options: [
  126 + { label: '全部', value: 'ALL' },
  127 + { label: '部分', value: 'PART' },
  128 + ],
  129 + async onChange(e) {
  130 + setFieldsValue({ type2: '' });
  131 + setFieldsValue({ entityId: [] });
  132 + //部分切换-清空或者重置为初始值
  133 + updateSchema({
  134 + field: 'type2',
  135 + componentProps: {
  136 + options: [],
  137 + },
  138 + });
105 139 if (e) {
106   - updateFieldAttributeFunc();
  140 + //fengtao
  141 + if (e == 'ALL') {
  142 + const data = await getAttribute(orgId, null);
  143 + //fengtao
  144 + const options = data.map((m) => {
  145 + return {
  146 + label: m,
  147 + value: m,
  148 + };
  149 + });
  150 + updateSchema({
  151 + field: 'type2',
  152 + componentProps: {
  153 + placeholder: '请选择属性',
  154 + options,
  155 + },
  156 + });
  157 + } else {
  158 + const getT = getFieldsValue();
  159 + const entityId = getT.entityId;
  160 + if (entityId !== undefined && entityId.length > 0) {
  161 + updateFieldAttributeFunc(entityId, orgId);
  162 + }
  163 + updateSchema({
  164 + field: 'entityId',
  165 + componentProps: {
  166 + options: deviceList,
  167 + onChange(e) {
  168 + if (e) {
  169 + //fengtao
  170 + updateFieldAttributeFunc(e, orgId);
  171 + //fengtao
  172 + }
  173 + },
  174 + },
  175 + });
  176 + }
  177 + //fengtao
107 178 }
108 179 },
109 180 },
... ... @@ -115,8 +186,17 @@
115 186 const setFieldsFormValueFun = (fieldsValue) => {
116 187 setFieldsValue(fieldsValue);
117 188 };
118   - const updateFieldAttributeFunc = async () => {
119   - const data = await getAttribute();
  189 + //TODO-fengtao
  190 + const updateFieldAttributeFunc = async (deviceId, orgId) => {
  191 + //TODO-fengtao
  192 + let data;
  193 + if (deviceId !== undefined && deviceId.length > 0) {
  194 + const joinDeviceIds = deviceId.join(',');
  195 + data = await getAttribute(orgId, joinDeviceIds);
  196 + } else {
  197 + data = await getAttribute(orgId, null);
  198 + }
  199 + //TODO-fengtao
120 200 const options = data.map((m) => {
121 201 return {
122 202 label: m,
... ... @@ -127,10 +207,11 @@
127 207 field: 'type2',
128 208 componentProps: {
129 209 placeholder: '请选择属性',
130   - options,
  210 + options: options,
131 211 },
132 212 });
133 213 };
  214 + //TODO-fengtao
134 215 const schedule = ref('ANY_TIME');
135 216 const operationType = ref<string>('');
136 217 provide('operationType', operationType);
... ... @@ -196,6 +277,7 @@
196 277 scheduleData,
197 278 isUpdate,
198 279 alarmScheduleRef,
  280 + updateFieldAttributeFunc,
199 281 });
200 282 </script>
201 283 <style>
... ...