80 lines
2.4 KiB
Vue
80 lines
2.4 KiB
Vue
<script setup lang="ts">
|
||
import { ref, reactive } from "vue"
|
||
import { onLoad, onShow } from "@dcloudio/uni-app"
|
||
import { merchantApi } from "@@/api"
|
||
import { hooks, router } from "@@/index"
|
||
import { filePath } from "@@/utils/file"
|
||
|
||
const pageRef = ref<any>(null)
|
||
const state = reactive<any>({
|
||
pa: {
|
||
pagesize: 10,
|
||
type: "2",
|
||
},
|
||
})
|
||
const pageHook = hooks.usePage(pageRef, merchantApi.page, null, "data.records")
|
||
|
||
const query = (page: number, pagesize: number) => {
|
||
pageHook.startPage(page, pagesize, false, state.pa)
|
||
}
|
||
|
||
onLoad(() => {
|
||
const app = getApp()
|
||
app._initTabbar()
|
||
})
|
||
onShow(() => {
|
||
pageRef.value && pageRef.value.reload(false)
|
||
})
|
||
|
||
const toDetail = async (v: any) => {
|
||
return
|
||
const isLogin = await hooks.useCheckLogin()
|
||
if (isLogin) {
|
||
router.jump("/pages/shop/detail", { id: v.id })
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<template>
|
||
<crud-layout bg="/static/page/blue-bg.png">
|
||
<z-paging
|
||
ref="pageRef"
|
||
height="100%"
|
||
:fixed="false"
|
||
v-model="pageHook.list"
|
||
:default-page-size="10"
|
||
safe-area-inset-bottom
|
||
:loading-more-enabled="true"
|
||
:show-scrollbar="false"
|
||
@query="query"
|
||
:auto-clean-list-when-reload="false"
|
||
:auto-scroll-to-top-when-reload="false"
|
||
@scroll="pageHook.scroll"
|
||
>
|
||
<view class="h-20rpx" />
|
||
<view class="flex-col card p-20rpx m-b-20rpx" v-for="(v, i) in pageHook.list" :key="i" @tap="toDetail(v)">
|
||
<view class="flex-row-center">
|
||
<image class="w-180rpx h-180rpx rounded-12rpx" :src="filePath(v.logoPic)" mode="aspectFill" />
|
||
<view class="flex-1 flex-col m-l-20rpx">
|
||
<view class="flex-row items-center justify-between">
|
||
<view class="flex-row-center sub-text-34">{{ v.name }}</view>
|
||
<tm-tag size="s">{{ v.deptName }}</tm-tag>
|
||
</view>
|
||
<view class="second-text-24">{{ v.phone }}</view>
|
||
<view class="second-text-24">
|
||
<view v-if="v.jobTime != ',,'" class="second-text-28">营业时间:</view>
|
||
<view>{{ v.jobTime?.split(",")[0] ? "早:" + v.jobTime?.split(",")[0] : "" }}</view>
|
||
<view>{{ v.jobTime?.split(",")[1] ? "中:" + v.jobTime?.split(",")[1] : "" }}</view>
|
||
<view>{{ v.jobTime?.split(",")[2] ? "晚:" + v.jobTime?.split(",")[2] : "" }}</view>
|
||
</view>
|
||
<view v-if="v.addressDes" class="m-t-10rpx second-text-28">
|
||
<text>地址</text>
|
||
<text class="m-l-10rpx">{{ v.addressDes }}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</z-paging>
|
||
</crud-layout>
|
||
</template>
|