Commit bd2768eaa0454d117e77fbb53b91e04867b2eb7d

Authored by xp.Huang
2 parents ae0ed049 298bc27e

Merge branch 'fix/socket-filter' into 'main_dev'

fix: 修复socket请求无法使用过滤器

See merge request yunteng/thingskit-view!214
... ... @@ -191,6 +191,7 @@ export interface CreateComponentType extends PublicConfigType, requestConfig {
191 191 option: GlobalThemeJsonType
192 192 groupList?: Array<CreateComponentType>
193 193 saveHistoryInput?: string // THINGS_KIT 新增一个接口字段 saveHistoryInput,用于记录当前组件id和输入框的内容,这里不能重写,有很多地方引用到的,这里升级版本有冲突
  194 + wsOriginalMessage?: any
194 195 }
195 196
196 197 // 组件成组实例类
... ...
... ... @@ -273,6 +273,7 @@ export const useSocketStore = defineStore({
273 273 const { filter } = targetItem
274 274 const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
275 275 targetItem.option.dataset = flag ? filterValue : reason
  276 + targetItem.wsOriginalMessage = _value
276 277 try {
277 278 const dumpSaveHistoryInput = JSON.parse((!targetItem.saveHistoryInput ? null : targetItem.saveHistoryInput) as string) || JSON.parse(window.localStorage.getItem('CACHE_HISTORY_INPUT_VALUE') as string)
278 279 if (!dumpSaveHistoryInput) return
... ... @@ -299,6 +300,7 @@ export const useSocketStore = defineStore({
299 300 const { filter } = groupItem
300 301 const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
301 302 groupItem.option.dataset = flag ? filterValue : reason
  303 + groupItem.wsOriginalMessage = _value
302 304 }
303 305 })
304 306 } else {
... ... @@ -308,6 +310,7 @@ export const useSocketStore = defineStore({
308 310 const { filter } = targetItem
309 311 const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
310 312 targetItem.option.dataset = flag ? filterValue : reason
  313 + targetItem.wsOriginalMessage = _value
311 314 }
312 315 }
313 316 //
... ...
... ... @@ -60,7 +60,7 @@
60 60 <NSpace>
61 61 <NText depth="3">接口返回数据(res):</NText>
62 62 <NScrollbar style="max-height: 300px;">
63   - <NCode :code="toString(sourceData) || '暂无'" language="json" :word-wrap="true"></NCode>
  63 + <NCode :code="toString(isSocketRequest ? targetData.wsOriginalMessage : sourceData) || '暂无'" language="json" :word-wrap="true"></NCode>
64 64 </NScrollbar>
65 65 </NSpace>
66 66 </div>
... ... @@ -123,21 +123,24 @@ const sourceData = ref<any>('')
123 123 const { fetchTargetData: fetchHandle } = useFetchTargetData()
124 124 // 动态获取数据
125 125 const fetchTargetData = async () => {
126   - if ((unref(targetData).request.requestContentType as RequestContentTypeEnum) === RequestContentTypeEnum.WEB_SOCKET) {
127   - sourceData.value = {
128   - data: unref(targetData).option.dataset
129   - }
130   - } else {
131   - const res = await fetchHandle()
132   - if (res) {
133   - sourceData.value = res
134   - }
  126 + const res = await fetchHandle()
  127 + if (res) {
  128 + sourceData.value = res
135 129 }
136 130 }
137 131
  132 +const isSocketRequest = computed(() => {
  133 + return (unref(targetData).request.requestContentType as RequestContentTypeEnum) === RequestContentTypeEnum.WEB_SOCKET
  134 +})
  135 +
138 136 // 过滤结果
139 137 const filterRes = computed(() => {
140   - const { value, flag, reason } = useFilterFn(filter.value, sourceData.value)
  138 + let res = sourceData.value
  139 + if (unref(isSocketRequest)) {
  140 + res = unref(targetData).wsOriginalMessage
  141 + }
  142 +
  143 + const { value, flag, reason } = useFilterFn(filter.value, res)
141 144 // eslint-disable-next-line vue/no-side-effects-in-computed-properties
142 145 errorFlag.value = !flag
143 146 return toString(flag ? value : `过滤函数错误,日志:${reason}`)
... ...