|
@@ -21,7 +21,7 @@
|
|
right-icon="search"
|
|
right-icon="search"
|
|
@search="handleSearch"
|
|
@search="handleSearch"
|
|
@clear="handleClear"
|
|
@clear="handleClear"
|
|
- @click-right-icon="handleSearch(searchValueRef)"
|
|
|
|
|
|
+ @click-right-icon="handleSearch"
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div class="w-full text-xs px-4 flex">
|
|
<div class="w-full text-xs px-4 flex">
|
|
@@ -116,7 +116,7 @@
|
|
>
|
|
>
|
|
<div class="tool-card-content w-full px-4 flex flex-wrap md:max-w-[1440px] mx-auto">
|
|
<div class="tool-card-content w-full px-4 flex flex-wrap md:max-w-[1440px] mx-auto">
|
|
<div class="tool-card" v-for="item in toolsListRef" :key="item" @click="handleDetail(item)">
|
|
<div class="tool-card" v-for="item in toolsListRef" :key="item" @click="handleDetail(item)">
|
|
- <div class="tool-img" :class="`bg-[url('${devPath + item.picturePath}')]`"></div>
|
|
|
|
|
|
+ <img class="tool-img" :src="`${devPath + item.picturePath}`"></img>
|
|
<div class="px-3 pt-2 flex-1 flex flex-col">
|
|
<div class="px-3 pt-2 flex-1 flex flex-col">
|
|
<div class="font-[PingFang-Heavy] truncate">{{ item.toolName }}</div>
|
|
<div class="font-[PingFang-Heavy] truncate">{{ item.toolName }}</div>
|
|
<div class="text-[#585F66] text-xs mt-1 line-clamp-2 break-all">
|
|
<div class="text-[#585F66] text-xs mt-1 line-clamp-2 break-all">
|
|
@@ -158,6 +158,7 @@ const device = computed(() => {
|
|
})
|
|
})
|
|
// 搜索内容
|
|
// 搜索内容
|
|
const searchValueRef = ref('')
|
|
const searchValueRef = ref('')
|
|
|
|
+const totalPage = ref(10)
|
|
// 热门工具列表
|
|
// 热门工具列表
|
|
const hotToolsRef = ref(hotToolsList)
|
|
const hotToolsRef = ref(hotToolsList)
|
|
|
|
|
|
@@ -173,69 +174,46 @@ const loadingRef = ref(false)
|
|
const finished = ref(false)
|
|
const finished = ref(false)
|
|
// 末尾补齐的个数
|
|
// 末尾补齐的个数
|
|
const noneCardNum = ref(0)
|
|
const noneCardNum = ref(0)
|
|
-const onLoad = () => {
|
|
|
|
- // 异步更新数据
|
|
|
|
- // setTimeout 仅做示例,真实场景中一般为 ajax 请求
|
|
|
|
- // setTimeout(() => {
|
|
|
|
- // for (let i = 0; i < 20; i++) {
|
|
|
|
- // toolsListRef.value.push(toolsListRef.value.length + 1)
|
|
|
|
- // }
|
|
|
|
- noneCardNum.value = getFillNums('.tool-card-content', toolsListRef.value, 220)
|
|
|
|
- // // 加载状态结束
|
|
|
|
- loadingRef.value = false
|
|
|
|
- // // 数据全部加载完成
|
|
|
|
- // if (toolsListRef.value.length >= 100) {
|
|
|
|
- // finished.value = true
|
|
|
|
- // }
|
|
|
|
- // }, 1000)
|
|
|
|
|
|
+const onLoad = (value) => {
|
|
|
|
+ listTools({
|
|
|
|
+ level: '3',
|
|
|
|
+ parentId: value,
|
|
|
|
+ materialName: searchValueRef.value,
|
|
|
|
+ pageSize: totalPage.value,
|
|
|
|
+ delFlag: 0
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ toolsListRef.value = res.rows
|
|
|
|
+ // 加载状态结束
|
|
|
|
+ loadingRef.value = false
|
|
|
|
+ if(totalPage.value >res.total){
|
|
|
|
+ finished.value = true
|
|
|
|
+ }else{
|
|
|
|
+ totalPage.value +=5
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ setTimeout(()=>{
|
|
|
|
+ noneCardNum.value = getFillNums('.tool-card-content', toolsListRef.value, 220)
|
|
|
|
+ },500 )
|
|
}
|
|
}
|
|
const init = () => {
|
|
const init = () => {
|
|
- loadingRef.value = false
|
|
|
|
|
|
+ loadingRef.value = true
|
|
// 一级分类
|
|
// 一级分类
|
|
listTools({
|
|
listTools({
|
|
level: '1',
|
|
level: '1',
|
|
- pageSize: 999
|
|
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
typeOptions1Ref.value = res.rows
|
|
typeOptions1Ref.value = res.rows
|
|
})
|
|
})
|
|
- if (route.query.id) {
|
|
|
|
- searchValueRef.value = route.query.toolName
|
|
|
|
- type1ValueRef.value = route.query.id
|
|
|
|
- listTools({
|
|
|
|
- level: '2',
|
|
|
|
- parentId: route.query.id,
|
|
|
|
- pageSize: 999
|
|
|
|
- }).then((res) => {
|
|
|
|
- typeOptions2Ref.value = res.rows
|
|
|
|
- })
|
|
|
|
- listTools({
|
|
|
|
- level: '3',
|
|
|
|
- parentId: route.query.id,
|
|
|
|
- pageSize: 999,
|
|
|
|
- delFlag: 0
|
|
|
|
- }).then((res) => {
|
|
|
|
- toolsListRef.value = res.rows
|
|
|
|
- })
|
|
|
|
|
|
+ type1ValueRef.value = route.query.id ? Number(route.query.id) : ''
|
|
type2ValueRef.value = ''
|
|
type2ValueRef.value = ''
|
|
- } else {
|
|
|
|
- Promise.allSettled([
|
|
|
|
// 二级分类
|
|
// 二级分类
|
|
listTools({
|
|
listTools({
|
|
level: '2',
|
|
level: '2',
|
|
- pageSize: 999
|
|
|
|
- }),
|
|
|
|
- // 未选中分类 默认列表
|
|
|
|
- listTools({
|
|
|
|
- level: '3',
|
|
|
|
- delFlag: 0,
|
|
|
|
- pageSize: 999
|
|
|
|
- })
|
|
|
|
- ]).then((res) => {
|
|
|
|
- typeOptions2Ref.value = res[0].value.rows
|
|
|
|
- toolsListRef.value = res[1].value.rows
|
|
|
|
- onLoad()
|
|
|
|
|
|
+ parentId: route.query.id?route.query.id:'',
|
|
|
|
+ }).then((res) => {
|
|
|
|
+ typeOptions2Ref.value = res.rows
|
|
})
|
|
})
|
|
- }
|
|
|
|
|
|
+ onLoad(route.query.id)
|
|
}
|
|
}
|
|
init()
|
|
init()
|
|
|
|
|
|
@@ -251,7 +229,7 @@ const handleSearch = () => {
|
|
// 点击热门关键字搜索
|
|
// 点击热门关键字搜索
|
|
const handleKeySearch = (toolName) => {
|
|
const handleKeySearch = (toolName) => {
|
|
searchValueRef.value = toolName
|
|
searchValueRef.value = toolName
|
|
- handleSearch(toolName)
|
|
|
|
|
|
+ handleSearch()
|
|
}
|
|
}
|
|
|
|
|
|
// 点击一级菜单
|
|
// 点击一级菜单
|
|
@@ -265,28 +243,13 @@ const handleChangeDropdownOfType1 = (value) => {
|
|
}).then((res) => {
|
|
}).then((res) => {
|
|
typeOptions2Ref.value = res.rows
|
|
typeOptions2Ref.value = res.rows
|
|
})
|
|
})
|
|
- listTools({
|
|
|
|
- level: '3',
|
|
|
|
- parentId: value,
|
|
|
|
- pageSize: 999,
|
|
|
|
- delFlag: 0
|
|
|
|
- }).then((res) => {
|
|
|
|
- toolsListRef.value = res.rows
|
|
|
|
- handleSearch(value)
|
|
|
|
- })
|
|
|
|
|
|
+ onLoad(value)
|
|
type2ValueRef.value = ''
|
|
type2ValueRef.value = ''
|
|
}
|
|
}
|
|
// 点击二级菜单
|
|
// 点击二级菜单
|
|
const handleChangeDropdownOfType2 = (value) => {
|
|
const handleChangeDropdownOfType2 = (value) => {
|
|
resetList()
|
|
resetList()
|
|
- listTools({
|
|
|
|
- level: '3',
|
|
|
|
- parentId: value,
|
|
|
|
- pageSize: 999
|
|
|
|
- }).then((res) => {
|
|
|
|
- toolsListRef.value = res.rows
|
|
|
|
- handleSearch(value)
|
|
|
|
- })
|
|
|
|
|
|
+ onLoad(value)
|
|
type2ValueRef.value = value
|
|
type2ValueRef.value = value
|
|
}
|
|
}
|
|
|
|
|
|
@@ -294,7 +257,6 @@ const handleClear = () => {
|
|
searchValueRef.value = ''
|
|
searchValueRef.value = ''
|
|
}
|
|
}
|
|
const handleDetail = (row) => {
|
|
const handleDetail = (row) => {
|
|
- console.log(row)
|
|
|
|
router.push({ path: '/detail', query: { id: row.id, toolName: row.toolName } })
|
|
router.push({ path: '/detail', query: { id: row.id, toolName: row.toolName } })
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|