<template>
|
<settings/>
|
<fieldset>
|
<legend>测试</legend>
|
<div class="row">
|
<button @click="fetchSearchTask">获取当前任务</button>
|
<button @click="fetchSearchTaskAndCommit">获取当前任务并执行</button>
|
</div>
|
<div class="row">
|
<label>输入:</label>
|
<input v-model="input" list="search-conditions" type="search">
|
<select v-model.number="stationId">
|
<template v-for="([key, value]) of Object.entries(StationId)">
|
<option v-if="!/^\d+$/.test(key)" :value="value">{{ key }}</option>
|
</template>
|
</select>
|
<datalist id="search-conditions">
|
<option :value="goodsId">随机详情ID</option>
|
<option value="j1188114288">过期ID</option>
|
<option value="BURBERRY ハンカチ">手帕</option>
|
<option>PS5</option>
|
<option>裤子</option>
|
</datalist>
|
<div></div>
|
</div>
|
<div class="row">
|
<button @click="testDetail" :style="{visibility:stationId===StationId.YahooAuction?'visible':'hidden'}">
|
获取输入详情
|
</button>
|
<button @click="testSearchOnce()">使用输入搜索</button>
|
</div>
|
</fieldset>
|
<fieldset class="show-result">
|
<legend>处理结果</legend>
|
<a v-if="link" :href="link" target="_blank">验证链接</a>
|
<a v-if="link2" :href="link2" target="_blank">验证链接2</a>
|
<pre v-text="result"></pre>
|
</fieldset>
|
</template>
|
|
<script setup lang="ts">
|
import {createMsgMethodProxy} from "gs-br-ext";
|
import {ITestApi, StationId} from "/src-com";
|
import {watch} from 'vue'
|
import Settings from "./views/Settings.vue";
|
import {goodsIds} from "./test/goodsIds";
|
import {isString} from "gs-base";
|
|
const api = createMsgMethodProxy<ITestApi>(true);
|
|
const stationId = ref(StationId.Mercari)
|
const input = ref('')
|
const goodsId = ref('')
|
|
const result = ref('')
|
const link = ref('')
|
const link2 = ref('')
|
|
if (localStorage.searchConditions) {
|
input.value = localStorage.searchConditions;
|
}
|
|
async function testSearchOnce() {
|
await displayResult('开始搜索:' + input.value)
|
try {
|
const value = await api.testSearch({
|
stationId: stationId.value,
|
keyword: input.value,
|
});
|
await displayResult(value);
|
} catch (e) {
|
await displayResult({
|
error: `请检查node client 是否运行:${e.message}`
|
});
|
}
|
}
|
|
async function fetchSearchTask() {
|
await displayResult('开始执行:fetchSearchTask')
|
const task = await api.fetchTask();
|
await displayResult(task);
|
}
|
|
async function fetchSearchTaskAndCommit() {
|
await displayResult('开始执行:fetchSearchTaskAndCommit')
|
const taskRv = await api.executeTask();
|
await displayResult(taskRv);
|
}
|
|
async function testDetail() {
|
await displayResult('正在获取详情:' + input.value)
|
try {
|
const value = await api.executeDetail(input.value);
|
await displayResult(value);
|
} catch (e) {
|
await displayResult(`错误:\n${e.message}`)
|
}
|
}
|
|
async function displayResult(data: any) {
|
console.log(data)
|
data || (data = `${data}`)
|
if (isString(data)) {
|
result.value = data;
|
link.value = '';
|
return;
|
}
|
if (data.link) {
|
link.value = data.link;
|
delete data.link;
|
} else {
|
link.value = '';
|
}
|
if (data.link2) {
|
link2.value = data.link2;
|
delete data.link2;
|
} else {
|
link2.value = '';
|
}
|
result.value = JSON.stringify(data, null, 2)
|
}
|
|
function randomGoodsId() {
|
const r = Math.floor(Math.random() * goodsIds.length);
|
goodsId.value = goodsIds[r];
|
}
|
|
randomGoodsId();
|
|
watch(() => input.value, randomGoodsId)
|
watch(input, v => {
|
localStorage.searchConditions = v
|
})
|
|
</script>
|