Commit b1f9f93ed04313970e8a5f09b03f98f71e0d9e21

Authored by fengwotao
1 parent 712968b5

fix(src/store/external): 修复ws绑定单个文本组件,然后有多个,并且进行分组,显示的信息为原始信息,而非过滤函数返回的信息

1 1 import { defineStore } from "pinia";
2 2 import { KeyBoundComponentList, SocketComponentRecord, SocketReceiveMessageType, SocketSendMessageItemType, SocketSendMessageType, SocketStoreType, UnsubscribePoolType } from '@/store/external/modules/socketStore.d'
3   -import { CreateComponentType } from "@/packages/index.d";
  3 +import { CreateComponentGroupType, CreateComponentType } from "@/packages/index.d";
4 4 import { RequestContentTypeEnum } from "@/enums/external/httpEnum";
5 5 import { useChartEditStore } from "@/store/modules/chartEditStore/chartEditStore";
6 6 import { pinia } from '@/store'
... ... @@ -241,17 +241,41 @@ export const useSocketStore = defineStore({
241 241 * @param value
242 242 */
243 243 updateComponentById(id: string, value: SocketReceiveMessageType) {
244   - const targetComponent = this.getSocketComponentsRecord.find(item => item.componentId === id)
245   - const targetComponentIndex = chartEditStore.fetchTargetIndex(targetComponent?.componentId)
246   - const target = chartEditStore.componentList[targetComponentIndex] as CreateComponentType
247   - const _target = cloneDeep(target)
248   - const { filter } = _target
249   - const _value = this.getComponentValueByKeys(target, value)
250   - const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
251   - _target.option.dataset = flag ? filterValue : reason
252   - // TODO 存在重复更新未变化的值
253   - // console.log({ _target })
254   - chartEditStore.updateComponentList(targetComponentIndex, _target)
  244 + /**
  245 + * 原来的代码
  246 + // const targetComponent = this.getSocketComponentsRecord.find(item => item.componentId === id)
  247 + // const targetComponentIndex = chartEditStore.fetchTargetIndex(targetComponent?.componentId)
  248 + // const target = chartEditStore.componentList[targetComponentIndex] as CreateComponentType
  249 + // const _target = cloneDeep(target)
  250 + // const { filter } = _target
  251 + // const _value = this.getComponentValueByKeys(target, value)
  252 + // const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
  253 + // _target.option.dataset = flag ? filterValue : reason
  254 + // // TODO 存在重复更新未变化的值
  255 + // // console.log({ _target })
  256 + // chartEditStore.updateComponentList(targetComponentIndex, _target)
  257 + */
  258 +
  259 + /**
  260 + * 修改后的代码
  261 + * 修改ws绑定单个文本组件,然后有多个,并且进行分组,显示的信息为原始信息,而非过滤函数返回的信息
  262 + */
  263 + const target = chartEditStore.getComponentList?.reduce((prev: Array<CreateComponentType | CreateComponentGroupType>, acc) => {
  264 + acc?.isGroup ? (prev = [...(acc?.groupList as CreateComponentGroupType[])]) : prev?.push(acc)
  265 + return prev
  266 + }, [])
  267 + ?.filter(
  268 + item => (item?.request?.requestContentType as RequestContentTypeEnum) === RequestContentTypeEnum.WEB_SOCKET
  269 + )
  270 + target.forEach(item => {
  271 + if (item.id === id) {
  272 + const _value = this.getComponentValueByKeys(item, value)
  273 + const { filter } = item
  274 + const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
  275 + item.option.dataset = flag ? filterValue : reason
  276 + }
  277 + })
  278 + //
255 279 },
256 280
257 281 /**
... ...