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,6 +191,7 @@ export interface CreateComponentType extends PublicConfigType, requestConfig {
191 option: GlobalThemeJsonType 191 option: GlobalThemeJsonType
192 groupList?: Array<CreateComponentType> 192 groupList?: Array<CreateComponentType>
193 saveHistoryInput?: string // THINGS_KIT 新增一个接口字段 saveHistoryInput,用于记录当前组件id和输入框的内容,这里不能重写,有很多地方引用到的,这里升级版本有冲突 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,6 +273,7 @@ export const useSocketStore = defineStore({
273 const { filter } = targetItem 273 const { filter } = targetItem
274 const { value: filterValue, reason, flag } = useFilterFn(filter, _value) 274 const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
275 targetItem.option.dataset = flag ? filterValue : reason 275 targetItem.option.dataset = flag ? filterValue : reason
  276 + targetItem.wsOriginalMessage = _value
276 try { 277 try {
277 const dumpSaveHistoryInput = JSON.parse((!targetItem.saveHistoryInput ? null : targetItem.saveHistoryInput) as string) || JSON.parse(window.localStorage.getItem('CACHE_HISTORY_INPUT_VALUE') as string) 278 const dumpSaveHistoryInput = JSON.parse((!targetItem.saveHistoryInput ? null : targetItem.saveHistoryInput) as string) || JSON.parse(window.localStorage.getItem('CACHE_HISTORY_INPUT_VALUE') as string)
278 if (!dumpSaveHistoryInput) return 279 if (!dumpSaveHistoryInput) return
@@ -299,6 +300,7 @@ export const useSocketStore = defineStore({ @@ -299,6 +300,7 @@ export const useSocketStore = defineStore({
299 const { filter } = groupItem 300 const { filter } = groupItem
300 const { value: filterValue, reason, flag } = useFilterFn(filter, _value) 301 const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
301 groupItem.option.dataset = flag ? filterValue : reason 302 groupItem.option.dataset = flag ? filterValue : reason
  303 + groupItem.wsOriginalMessage = _value
302 } 304 }
303 }) 305 })
304 } else { 306 } else {
@@ -308,6 +310,7 @@ export const useSocketStore = defineStore({ @@ -308,6 +310,7 @@ export const useSocketStore = defineStore({
308 const { filter } = targetItem 310 const { filter } = targetItem
309 const { value: filterValue, reason, flag } = useFilterFn(filter, _value) 311 const { value: filterValue, reason, flag } = useFilterFn(filter, _value)
310 targetItem.option.dataset = flag ? filterValue : reason 312 targetItem.option.dataset = flag ? filterValue : reason
  313 + targetItem.wsOriginalMessage = _value
311 } 314 }
312 } 315 }
313 // 316 //
@@ -60,7 +60,7 @@ @@ -60,7 +60,7 @@
60 <NSpace> 60 <NSpace>
61 <NText depth="3">接口返回数据(res):</NText> 61 <NText depth="3">接口返回数据(res):</NText>
62 <NScrollbar style="max-height: 300px;"> 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 </NScrollbar> 64 </NScrollbar>
65 </NSpace> 65 </NSpace>
66 </div> 66 </div>
@@ -123,21 +123,24 @@ const sourceData = ref<any>('') @@ -123,21 +123,24 @@ const sourceData = ref<any>('')
123 const { fetchTargetData: fetchHandle } = useFetchTargetData() 123 const { fetchTargetData: fetchHandle } = useFetchTargetData()
124 // 动态获取数据 124 // 动态获取数据
125 const fetchTargetData = async () => { 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 const filterRes = computed(() => { 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 // eslint-disable-next-line vue/no-side-effects-in-computed-properties 144 // eslint-disable-next-line vue/no-side-effects-in-computed-properties
142 errorFlag.value = !flag 145 errorFlag.value = !flag
143 return toString(flag ? value : `过滤函数错误,日志:${reason}`) 146 return toString(flag ? value : `过滤函数错误,日志:${reason}`)