Commit bd2768eaa0454d117e77fbb53b91e04867b2eb7d
Merge branch 'fix/socket-filter' into 'main_dev'
fix: 修复socket请求无法使用过滤器 See merge request yunteng/thingskit-view!214
Showing
3 changed files
with
18 additions
and
11 deletions
... | ... | @@ -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}`) | ... | ... |