Compare commits

...

3 Commits

Author SHA1 Message Date
7aa94f2efd 调整 2026-01-06 17:20:54 +08:00
2c402aceb7 滑动加载组件 2026-01-06 17:20:44 +08:00
27691bd433 品牌列表,详情 2026-01-06 17:20:08 +08:00
11 changed files with 215 additions and 74 deletions

1
.gitignore vendored
View File

@ -1,2 +1,3 @@
unpackage unpackage
node_modules node_modules
CLAUDE.md

View File

@ -1,5 +1,6 @@
<script setup> <script setup>
import { onLaunch } from "@dcloudio/uni-app" import { onLaunch } from "@dcloudio/uni-app"
onLaunch(() => { onLaunch(() => {
const updateManager = wx.getUpdateManager() const updateManager = wx.getUpdateManager()
updateManager.onCheckForUpdate(function (res) { updateManager.onCheckForUpdate(function (res) {
@ -36,5 +37,6 @@ onLaunch(() => {
.main { .main {
min-height: 95vh; min-height: 95vh;
background: linear-gradient(to top, #f2f8ff 0%, #e7f0fd 100%); background: linear-gradient(to top, #f2f8ff 0%, #e7f0fd 100%);
padding-top: 20rpx;
} }
</style> </style>

View File

@ -0,0 +1,26 @@
<script setup>
import { ref } from "vue";
import { onReachBottom } from "@dcloudio/uni-app"
const emit = defineEmits(["reachBottom"])
//
const props = defineProps({
number: Number,
total: Number
})
let loadState = ref("loading")
//
onReachBottom(() => {
console.log(props);
if (props.number < props.total) {
loadState.value = "loading"
} else if (props.number == props.total) {
loadState.value = "finished"
}
emit("reachBottom")
})
</script>
<template>
<slot></slot>
<wd-watermark content="wot-design-uni"></wd-watermark>
<wd-loadmore :state="loadState" loading-text="数据加载中"/>
</template>

View File

@ -1,8 +1,11 @@
import App from './App' import App from './App'
import { createSSRApp } from 'vue' import { createSSRApp } from 'vue'
import pinia from './store' import pinia from './store'
import Loadmore from "@/components/Loadmore/Loadmore.vue"
export function createApp() { export function createApp() {
const app = createSSRApp(App) const app = createSSRApp(App)
app.component("Loadmore", Loadmore)
app.use(pinia) app.use(pinia)
return { return {
app app

View File

@ -7,6 +7,18 @@
}, },
"pages": [ "pages": [
{
"path": "pages/brand/brandDetail/brandDetail",
"style": {
"navigationBarTitleText": "品牌详情"
}
},
{
"path": "pages/brand/brandList/brandList",
"style": {
"navigationBarTitleText": "品牌列表"
}
},
{ {
"path": "pages/index/index", "path": "pages/index/index",
"style": { "style": {

View File

@ -0,0 +1,46 @@
<script setup></script>
<template>
<view class="main">
<view class="search">
<wd-search placeholder="请输入搜索内容" cancel-txt="搜索"/>
</view>
<wd-gap height="100rpx"></wd-gap>
<wd-card v-for="item in 5" :key="item">
<template #title>
<view class="title">
<wd-img width="130rpx" height="130rpx" src="/static/logo.png"></wd-img>
<view>
<view>产品型号</view>
<view>是否抗磁</view>
</view>
</view>
</template>
<view class="content">
<view>型号描述</view>
<view class="text">啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</view>
</view>
</wd-card>
</view>
</template>
<style lang="scss" scoped>
.search {
position: fixed;
top: 0;
width: 100%;
}
.title {
display: flex;
align-items: center;
gap: 20rpx;
line-height: 40rpx;
font-size: 28rpx;
}
.content {
padding-bottom: 25rpx;
.text {
overflow: scroll;
height: 150rpx;
padding-top: 15rpx;
}
}
</style>

View File

@ -0,0 +1,24 @@
<script setup>
const clickDetail = () => {
uni.navigateTo({
url:"/pages/brand/brandDetail/brandDetail"
})
}
</script>
<template>
<view class="main">
<view @tap="clickDetail" v-for="item in 5" :key="item">
<wd-card title="分流厂家名称">
<view class="content">
描述
</view>
</wd-card>
</view>
</view>
<Loadmore></Loadmore>
</template>
<style lang="scss" scoped>
.content {
height: 200rpx;
}
</style>

View File

@ -31,7 +31,16 @@ const clickMenu = (value) => {
uni.navigateTo({ uni.navigateTo({
url:"/pages/patient/patientList/patientList" url:"/pages/patient/patientList/patientList"
}) })
break;
case 2:
uni.navigateTo({
url:"/pages/patient/patientFbList/patientFbList"
})
break;
case 3:
uni.navigateTo({
url:"/pages/brand/brandList/brandList"
})
break; break;
default: default:

View File

@ -29,9 +29,7 @@
</view> </view>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.box{ .head {
padding-top: 20rpx;
.head {
display: flex; display: flex;
padding: 20rpx; padding: 20rpx;
gap: 20rpx; gap: 20rpx;
@ -55,8 +53,8 @@
font-size: 32rpx; font-size: 32rpx;
} }
} }
} }
.content { .content {
color: #333; color: #333;
padding-bottom: 20rpx; padding-bottom: 20rpx;
:first-child { :first-child {
@ -64,6 +62,5 @@
border-top: 1rpx solid #d4d4d4; border-top: 1rpx solid #d4d4d4;
} }
}
} }
</style> </style>

View File

@ -1,48 +1,62 @@
<script setup> <script setup>
const clickDetail = () => {
uni.navigateTo({
url: "/pages/patient/patientFbDetail/patientFbDetail"
})
}
</script> </script>
<template> <template>
<!-- 病人反馈 --> <!-- 病人反馈 -->
<view class="fb_list main"> <view class="fb_list main">
<wd-card custom-class="item" v-for="item in 9" :key="item"> <wd-card custom-class="item" v-for="item in 9" :key="item">
<view class="content" @tap="clickDetail">
<view class="title"> <view class="title">
<view class="left"> <!-- <view class="left">
</view> -->
<view> <view>
姓名xxx 姓名xxx
</view> </view>
<view> <view>
&nbsp; &nbsp;ID133456 ID133456
</view> </view>
<view>2020-10-20</view>
</view> </view>
<view>日期2020-10-20</view> <view class="text">
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
</view> </view>
<view class="content">
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
病人反馈信息啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
</view> </view>
</wd-card> </wd-card>
</view> </view>
<Loadmore></Loadmore>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.fb_list { .fb_list {
font-size: 26rpx; font-size: 26rpx;
padding-top: 20rpx;
:deep(.item) { :deep(.item) {
padding: 0; padding: 0;
} }
.content {
padding-bottom: 25rpx;
.title { .title {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
padding: 20rpx; padding: 20rpx;
color: #333; color: #333;
border-bottom: 1px solid #e7e8e8; font-size: 26rpx;
align-items: flex-end;
:first-child {
font-size: 30rpx;
} }
.content { }
padding: 20rpx;
.text {
padding: 0 20rpx;
height: 123rpx; height: 123rpx;
line-height: 45rpx; line-height: 40rpx;
letter-spacing: 3rpx; letter-spacing: 3rpx;
word-break: break-all; word-break: break-all;
overflow: hidden; overflow: hidden;
@ -51,5 +65,6 @@
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
-webkit-line-clamp: 3; -webkit-line-clamp: 3;
} }
}
} }
</style> </style>

View File

@ -3,18 +3,22 @@ import { ref } from 'vue';
import { onLoad } from "@dcloudio/uni-app" import { onLoad } from "@dcloudio/uni-app"
import { getPatientList } from "@/services/patient" import { getPatientList } from "@/services/patient"
let active = ref('all') let active = ref('all')
let num = ref(5)
//
let cutNav = (type) => { let cutNav = (type) => {
active.value = type active.value = type
} }
onLoad(() => { onLoad(() => {
getPatientList() // getPatientList()
}) })
const reachBottom = () => {
if (num.value < 20) num.value += 5
}
</script> </script>
<template> <template>
<!-- 病人管理 --> <!-- 病人管理 -->
<view class="main"> <view class="main">
<wd-watermark content="wot-design-uni"></wd-watermark>
<wd-fab inactiveIcon="ellipsis" activeIcon="rollback"> <wd-fab inactiveIcon="ellipsis" activeIcon="rollback">
<view class="fab"> <view class="fab">
<view>调压趋势</view> <view>调压趋势</view>
@ -31,12 +35,13 @@ onLoad(() => {
</view> </view>
<wd-search placeholder="住院号/病人名称/医生" hide-cancel /> <wd-search placeholder="住院号/病人名称/医生" hide-cancel />
</view> </view>
<wd-gap height="190rpx"></wd-gap>
<view class="patient_list"> <view class="patient_list">
<wd-card custom-class="item" v-for="value in 10" :key="value"> <wd-card custom-class="item" v-for="item in num" :key="item">
<view class="top"> <view class="top">
<text>住院号000000</text> <text>住院号000000</text>
<text>2020-12-22</text> <text>2020-12-22</text>
<text>手术次数1</text> <text>手术次数{{ item }}{{ num }}</text>
</view> </view>
<view class="content"> <view class="content">
<view>患者姓名xxx</view> <view>患者姓名xxx</view>
@ -57,6 +62,7 @@ onLoad(() => {
</wd-card> </wd-card>
</view> </view>
</view> </view>
<Loadmore :number="num" :total="20" @reachBottom="reachBottom"></Loadmore>
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
@ -76,9 +82,9 @@ onLoad(() => {
} }
.nav_bar { .nav_bar {
position: sticky; position: fixed;
left: 0;
top: 0; top: 0;
width: 100%;
background-color: #fff; background-color: #fff;
z-index: 10; z-index: 10;
box-shadow: 0px 2px 5px #c5c5c5; box-shadow: 0px 2px 5px #c5c5c5;