3636 small
3737 caption-top
3838 responsive
39- />
39+ >
40+ <template #cell (results)="row">
41+ <template v-if =" row .item .results " >
42+ <div v-if =" 'error' in row.item.results" >
43+ {{ row.item.results.error }}
44+ </div >
45+ <div v-else >
46+ <b-table
47+ class =" results"
48+ :items =" row.item.results"
49+ :fields =" ['score', 'fullUrl']"
50+ small
51+ responsive
52+ >
53+ <template #cell (fullUrl)="result">
54+ <img
55+ :src =" CLOUDINARY_URL + result.item.fullUrl"
56+ class =" img-fluid"
57+ />
58+ </template >
59+ </b-table ></div
60+ ></template >
61+ </template >
62+ </b-table >
4063 </div >
4164</template >
4265
@@ -54,25 +77,37 @@ type Example = {
5477 isCover: boolean ;
5578};
5679
80+ type Results =
81+ | {
82+ error: string ;
83+ }
84+ | {
85+ score: number ;
86+ fullUrl: string ;
87+ }[];
88+
89+ const CLOUDINARY_URL =
90+ " https://res.cloudinary.com/dl7hskxab/image/upload/inducks-covers/" ;
91+
5792const examples = [
5893 {
59- url: " https://res.cloudinary.com/dl7hskxab/image/upload/inducks-covers/ webusers/webusers/2018/07/fr_aljm_011a_001.jpg" ,
94+ url: ` ${ CLOUDINARY_URL } webusers/webusers/2018/07/fr_aljm_011a_001.jpg` ,
6095 isCover: true ,
6196 },
6297 {
63- url: " https://res.cloudinary.com/dl7hskxab/image/upload/inducks-covers/ webusers/webusers/2014/02/fr_tp_0024a_001.jpg" ,
98+ url: ` ${ CLOUDINARY_URL } webusers/webusers/2014/02/fr_tp_0024a_001.jpg` ,
6499 isCover: true ,
65100 },
66101 {
67- url: " https://res.cloudinary.com/dl7hskxab/image/upload/inducks-covers/ webusers/webusers/2011/01/fr_tp_0013a_001.jpg" ,
102+ url: ` ${ CLOUDINARY_URL } webusers/webusers/2011/01/fr_tp_0013a_001.jpg` ,
68103 isCover: true ,
69104 },
70105 {
71- url: " https://res.cloudinary.com/dl7hskxab/image/upload/inducks-covers/ webusers/webusers/2024/05/eg_mg_0149p053_001.jpg" ,
106+ url: ` ${ CLOUDINARY_URL } webusers/webusers/2024/05/eg_mg_0149p053_001.jpg` ,
72107 isCover: false ,
73108 },
74109 {
75- url: " https://res.cloudinary.com/dl7hskxab/image/upload/inducks-covers/ webusers/webusers/2021/06/yu_mzc_983c_001.jpg" ,
110+ url: ` ${ CLOUDINARY_URL } webusers/webusers/2021/06/yu_mzc_983c_001.jpg` ,
76111 isCover: false ,
77112 },
78113] as const ;
@@ -82,9 +117,9 @@ const models = ref<
82117 modelData : " covers" | " story first pages" ;
83118 indexSize ?: number | string ;
84119 getIndexSize : () => Promise < number | string > ;
85- run : (base64 : string ) => Promise < string > ;
120+ run : (base64 : string ) => Promise < Results > ;
86121 time ?: string ;
87- results ?: string ;
122+ results ?: Results ;
88123 }[]
89124> ([
90125 {
@@ -101,17 +136,12 @@ const models = ref<
101136 const searchResults = await coverIdEvents .searchFromCover (base64 );
102137
103138 return " error" in searchResults
104- ? searchResults .errorDetails || " Error"
105- : JSON .stringify (
106- searchResults .covers .map (({ issuecode , score }) => ({
107- issuecode ,
108- score ,
109- })),
110- );
139+ ? { error: searchResults .errorDetails || " Error" }
140+ : searchResults .covers ;
111141 } catch (error ) {
112142 return typeof error === " object" && " errorDetails" in error !
113- ? (error .errorDetails as string ) || " Error"
114- : " Error" ;
143+ ? { error: (error .errorDetails as string ) || " Error" }
144+ : { error: " Error" } ;
115145 }
116146 },
117147 },
@@ -125,14 +155,8 @@ const models = ref<
125155 true ,
126156 );
127157 if (" error" in searchResults ) {
128- return searchResults .error ! ;
129- } else
130- return JSON .stringify (
131- searchResults .results .map (({ entrycode , score }) => ({
132- entrycode ,
133- score ,
134- })),
135- );
158+ return { error: searchResults .error ! };
159+ } else return searchResults .results ;
136160 },
137161 },
138162 {
@@ -145,14 +169,8 @@ const models = ref<
145169 false ,
146170 );
147171 if (" error" in searchResults ) {
148- return searchResults .error ! ;
149- } else
150- return JSON .stringify (
151- searchResults .results .map (({ entrycode , score }) => ({
152- entrycode ,
153- score ,
154- })),
155- );
172+ return { error: searchResults .error ! };
173+ } else return searchResults .results ;
156174 },
157175 },
158176]);
@@ -214,6 +232,12 @@ onMounted(async () => {
214232 </script >
215233
216234<style scoped lang="scss">
235+ :deep(.results ) {
236+ td {
237+ width : 50% ;
238+ }
239+ }
240+
217241img {
218242 cursor : pointer ;
219243 height : 100px ;
0 commit comments