修改了大量样式

This commit is contained in:
Teng 2026-03-02 17:24:43 +08:00
parent f2a6cebed1
commit c8dd8565cd
36 changed files with 1082 additions and 680 deletions

View File

@ -1,6 +1,9 @@
<template>
<view>
<view class="t-box">
<view class="big-bgc">
<view class="big-font">
敬请期待
</view>
<!-- <view class="t-box">
<view class="leftscr">
<view class="left-menu-father">
<scroll-view scroll-y="true" scroll-with-animation class="left-menu-scroll" :scroll-top="leftscrolltop"
@ -83,9 +86,6 @@
</view>
</view>
<!-- 照片墙 -->
<view class="mengban" v-if="topbuttontarget>0" @click="topbuttontarget=0"></view>
<view class="photowall" v-show="topbuttontarget>0" :style="donghuaopo?{opacity:1}:{opacity:0}">
<view class="photowall-title">
@ -141,22 +141,7 @@
height: 1.4vw;"></image>
</view>
</view>
<!-- <view style="margin-top: 20rpx;">
<text style="color: #888888;">
上传时间:
</text>
<text style="margin-left: 15rpx;">
{{item.createTime.replace(/-/g, '.')}}
</text>
</view>
<view style="margin-top: 10rpx;">
<text style="color: #888888;letter-spacing: 8.9rpx;">
上传人:
</text>
<text>
{{item.createBy}}
</text>
</view> -->
</view>
<view class="photowall-other-one" v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
<view style="width: 100%;height: 71%;display: flex;flex-direction: column;
@ -169,13 +154,6 @@
</view>
</view>
</view>
<!-- <view class="noarray" v-if="!ilanarr.length">
<image class="noarray-img" src="/static/index/warehouse/procurement/picking/noarray.png"
mode="aspectFill" />
<view class="noarray-font">
暂无照片
</view>
</view> -->
</view>
</scroll-view>
<view style="position: absolute;right: 2vw;bottom: 0.8vw;height: 4vw;" v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
@ -186,7 +164,7 @@
<view class="mengban" style="background: #fff;width:92vw;right:0;left: 8vw;top:-5vw;height: 110vh;" v-if="status=='nomore'&&plsbuy.length==0">
<defaultr cont="暂无数据" style="z-index: 999;margin: auto;top: 0;left:35vw;bottom: 0;right: 0;"></defaultr>
</view>
<severcard ></severcard>
<severcard ></severcard> -->
</view>
</template>
<script setup lang="ts">
@ -209,9 +187,9 @@
}
const plsbuy = ref([])
onMounted(() => {
form.pageNo=1;
plsbuy.value = [];
firstgetqueryCgdList();
// form.pageNo=1;
// plsbuy.value = [];
// firstgetqueryCgdList();
})
const status = ref('loadmore')
const plsbuytolower = () => {
@ -804,4 +782,18 @@
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.big-bgc{
display: flex;
// justify-content: center;
text-align: center;
align-items: center;
width: 90vw;
height: 100vh;
.big-font{
width: 100%;
font-size: 80rpx;
font-weight: 600;
}
}
</style>

View File

@ -1497,7 +1497,7 @@
height: 100%;
transition: opacity 1s ease;
position: relative;
margin-left: 1.8vw;
margin-left: 3vw;
.index-father {
width: 100%;

View File

@ -920,8 +920,9 @@
.big-older {
margin-top: 0.5vw;
width: 9vw;
height: 9vw;
margin-bottom: 0.3vw;
width: 8.5vw;
height: 8.5vw;
border: 1rpx solid #DCDCDC;
border-radius: 50%;
}
@ -1121,7 +1122,7 @@
}
.name-weight {
font-size: 2vw;
font-size: 1.8vw;
font-weight: 600;
margin: 0.2vw 0;
}
@ -1229,7 +1230,7 @@
width: 100%;
height: 3.2vw;
margin-top: 0.4vw;
padding-right: 2vw;
padding-right: 0.2vw;
display: flex;
justify-content: flex-end;

View File

@ -2,13 +2,16 @@
<view>
<view class="swipeservwe">
<view class="swper" v-if="plsbuy.length==0">
<view class="photo-father" style="margin-top: 30rpx;">
<image class="big-img" style="width: 320rpx;top:25%;height: 320rpx;" src="/static/index/noorder.png"
mode="aspectFill" />
<view class="juzhong" >
<view class="photo-father" style="margin-top: 200rpx;">
<image class="big-img" style="width: 250rpx;height: 250rpx;margin-top: 0;"
:src="`/static/index/noorder1.png`" mode="aspectFill" />
<view class="big-img-text">
暂无服务指令
</view>
<!-- <view class="juzhong">
<donghua :width="`1200rpx`" :height="`600rpx`" :links="blueArray" :playing="photoplay"
:loop="true" :interval="120" />
</view>
</view> -->
</view>
</view>
<view class="btn les" @click="swip(-1)" v-if="plsbuy.length>1">
@ -22,13 +25,19 @@
<view v-for="(v,i) in plsbuy" :key='i' :class="current==i?'dot':''"
:style="v?.chaoshitime?'background:red':''" @click="change({'detail':{'current':i}})"></view>
</view>
<swiper class="swiper" :circular="false" :indicator-dots="false" :autoplay="autoplay" :interval="3000"
<!-- <view class="swipeservwe-bgc">
<view class="juzhong" style="top: 25%;">
<donghua :width="`1200rpx`" :height="`600rpx`" :links="blueArray" :playing="photoplay"
:loop="true" :interval="120" />
</view>
</view> -->
<swiper class="swiper" :circular="true" :indicator-dots="false" :autoplay="autoplay" :interval="3000"
:duration="500" :current="current2" @change="change">
<swiper-item v-for="(indexmessage,i) in plsbuy" :key="i" class="swper">
<view class="photo-father">
<view class="juzhong" :style="indexmessage?.startTime?{}:''">
<view class="juzhong">
<donghua :width="`1200rpx`" :height="`600rpx`" :links="blueArray" :playing="current==i"
:loop="true" :interval="120" />
:loop="true" :interval="500" />
</view>
<view class="timedjs" v-if="current==i&&indexmessage?.izStart=='Y'">
<text>服务倒计时</text>
@ -71,7 +80,7 @@
@click="indexmessage.flag = true">
<image :src="`/static/zlb.png`" :style=" 'width: 420rpx' " mode="aspectFill" />
</view>
<view class="cardbox"
v-if="indexmessage.izPackage=='Y'&&indexmessage?.izStart=='Y'||indexmessage.flag">
<scroll-view scroll-y="true" class="scrollcard" @touchmove.stop>
@ -93,13 +102,14 @@
</scroll-view>
</view>
<view class="big-img" v-if="indexmessage.izPackage=='N'&&indexmessage?.previewFile ">
<image :style="!indexmessage?.previewFile?'width: 420rpx':' width:550rpx;height:550rpx;marginTop:-60rpx'"
:src="indexmessage?.previewFile? serverUrl + indexmessage?.previewFile: `/static/index/noorder.png`"
<image
:style="!indexmessage?.previewFile?'width: 420rpx':' width:550rpx;height:550rpx;marginTop:-60rpx'"
:src="indexmessage?.previewFile? serverUrl + indexmessage?.previewFile: `/static/index/noorder1.png`"
mode="heightFix" />
</view>
<view class="big-img" v-if="indexmessage.izPackage=='N'&&!indexmessage?.previewFile ">
<image :style="!indexmessage?.previewFile?'width: 320rpx;height: 320rpx;':' '"
:src="indexmessage?.previewFile? serverUrl + indexmessage?.previewFile: `/static/index/noorder.png`"
:src="indexmessage?.previewFile? serverUrl + indexmessage?.previewFile: `/static/index/noorder1.png`"
mode="heightFix" />
</view>
<!-- <image class="big-img" style="width: 320rpx;top:25%;height: 320rpx;" src="/static/index/noorder.png"
@ -250,7 +260,7 @@
:src="item?serverpicUrl + item:'/static/ceshiyaoshan.png'" mode="aspectFill"
:lazy-load="true" />
<view @click.stop="open=1;del(item,index)" class="del"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
v-if="topbuttontarget>0&&(listobj?.izStart=='Y'&& listobj?.izFinish=='N')">
<image src="/static/index/warehouse/procurement/x.png" mode="aspectFill" style="width: 1.4vw;
height: 1.4vw;"></image>
</view>
@ -260,7 +270,7 @@
<video style="width: 100%;height: 100%;border-radius: 30rpx;" :id="'myVideo'+index"
:src="servervideoUrl+item" direction="180" mode="aspectFill"></video>
<view @click.stop="ilanarr.splice(index,1)"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')"
v-if="topbuttontarget>0&&(listobj?.izStart=='Y'&& listobj?.izFinish=='N')"
class="shanchu">
<image src="/static/index/warehouse/procurement/x.png" mode="aspectFill" style="width: 1.4vw;
height: 1.4vw;"></image>
@ -268,7 +278,7 @@
</view>
</view>
<view class="photowall-other-one"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
v-if="topbuttontarget>0&&(listobj?.izStart=='Y'&& listobj?.izFinish=='N')">
<view class="uplods" @click="uplod(1)">
<image style="width: 70rpx;height: 70rpx;margin-bottom: 5rpx;"
src="/static/index/warehouse/procurement/picking/addphoto.png" />
@ -287,15 +297,14 @@
</view>
</scroll-view>
<view style="position: absolute;right: 2vw;bottom: 0.8vw;height: 4vw;"
v-if="topbuttontarget>0&&(listobj.izStart=='Y'&& listobj.izFinish=='N')">
v-if="topbuttontarget>0&&(listobj?.izStart=='Y'&& listobj?.izFinish=='N')">
<view class="subnt" @click="submit">确定</view>
</view>
</view>
<tanchuang :show="open==1" font="是否删除此图片" @back="open = 0" @right="del1()"> </tanchuang>
<errorshow :show="openerror" :font="errmsg" @close="openerror=false" style="left: 44%;" />
<tanchuang :show="open==3" :font="font" @back="open = 0" @right="del1()"
:close="false"> </tanchuang>
<tanchuang :show="open==3" :font="font" @back="open = 0" @right="del1()" :close="false"> </tanchuang>
<severcard ref="severcards"></severcard>
</view>
@ -306,6 +315,7 @@
import { onBackPress, onShow, onHide } from "@dcloudio/uni-app"
import timeing from './sxy-Timeing.vue'
import { queryOrderList, queryOrderInfoList, startOrder, endOrder, editSubPicPath, editSubMp4, queryEmpList, transferOrder, assistOrder, generateInstant } from '../../component/doctorask/api/api.js'
const open = ref(0)
const font = ref('')
const donghuaopo = ref(false);
@ -339,7 +349,7 @@
v.flag = false
}
})
if (plsbuy.value[a].izStart == 'Y' && plsbuy.value[a].izFinish == 'N') {
if (plsbuy.value[a]?.izStart == 'Y' && plsbuy.value[a]?.izFinish == 'N') {
timeacde()
}
}
@ -363,7 +373,7 @@
plsbuy.value.splice(current.value, 1)
firstgetqueryCgdList(form.nuId)
}
const swip = (e) => {
if (current.value == 0 && e == -1) {
current.value = plsbuy.value.length - 1;
@ -377,7 +387,7 @@
}
current.value += e;
current2.value = current.value
console.log(current.value, current.value)
// console.log(current.value, current.value)
}
const form = reactive({
pageNo: 1,
@ -1107,7 +1117,7 @@
top: 15%;
left: 50%;
transform: translate(-50%, -25%);
z-index: 1;
// z-index: 1;
}
.cardbox {
@ -1233,6 +1243,13 @@
width: 100%;
height: 100%;
}
}
.big-img-text {
text-align: center;
font-size: 32rpx;
color: #838383;
}
.server-name {
@ -2015,4 +2032,12 @@
}
}
}
.swipeservwe-bgc {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
</style>

View File

@ -1130,14 +1130,14 @@
z-index: 1;
height: 80rpx;
background-color: #fff;
color: #999;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -1353,16 +1353,16 @@
top: 55rpx;
width: 93%;
z-index: 1;
height: 120rpx;
height: 160rpx;
background-color: #fff;
color: #999;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -1855,12 +1855,14 @@
flex-wrap: wrap;
position: relative;
}
.instant-detail {
position: absolute;
width: 104%;
left: -2%;
top: 0;
height: 180rpx;
height: 160rpx;
background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
@ -1868,7 +1870,8 @@
padding-left: 25rpx;
.detail-title {
font-size: 30rpx;
font-size: 32rpx;
color: black;
}
.detail-contain {
@ -1903,8 +1906,6 @@
}
}
}
}
.pop {
transform: scale(1.3);
}

View File

@ -243,7 +243,7 @@
</view>
</view>
</view>
<view class="instant-more" v-if="bottomItems.length > 6" @click="clickopenmore">
<view class="instant-more" @click="clickopenmore">
<image class="more-imge" src="/static/index/down.png" />
</view>
</view>
@ -410,12 +410,14 @@
<view class="pack-heng"></view>
<scroll-view class="pack-detail" scroll-with-animation :scroll-y="canmovechange">
<view class="detail-father">
<view class="details"
v-for="(item,index) in savePackagelist[packnumber]?.directives"
:key="index">
<image class="detail-icon"
:src="item.immediateFile ? serverUrl + item.immediateFile : noimageshow"
mode="aspectFill">
<view class="details" :style="packdetail==index?{color:`#0089FE`}:{}"
v-for="(item,index) in savePackagelist[packnumber]?.directives" :key="index"
@click.stop="clickpackdetail(index)">
<image class="detail-icon" :src="
index === packdetail
? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshowtarget)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill">
</image>
<view class="">
{{ splitString(item.directiveName)[0] }}
@ -424,6 +426,20 @@
{{ splitString(item.directiveName)[1] ? `(${splitString(item.directiveName)[1]})`:``}}
</view>
</view>
<view class="instant-detail" style="width: 100%;height: 155rpx;margin-left: 2%;"
:style="{top:`${(thirdinstantshow[0]+1) *155 - 10}rpx`}"
v-show="thirdinstantshow[0]!==-1">
<view class="triangle-instant"
:style="{left:`${(thirdinstantshow[1]) * 32 + 15}%`}">
<view class="triangle-small-instant"></view>
</view>
<view class="detail-title">
{{ savePackagelist[packnumber]?.directives[packdetail]?.directiveName }}
</view>
<view class="detail-contain">
{{ savePackagelist[packnumber]?.directives[packdetail]?.serviceContent }}
</view>
</view>
</view>
</scroll-view>
@ -961,6 +977,20 @@
moreindex.value = -1
secondinstantshow.value = [-1, -1]
}
}
const packdetail = ref(-1)
const thirdinstantshow = ref([-1, -1])
const clickpackdetail = (index : number) => {
if (packdetail.value !== index) {
packdetail.value = index
thirdinstantshow.value = [Math.floor(index / 3), index % 3]
setTimeout(() => {
gettop.value = 77.5 * thirdinstantshow.value[0]
}, 200)
} else {
packdetail.value = -1
thirdinstantshow.value = [-1, -1]
}
}
const nosave = ref({
cycleTypeId: "",

View File

@ -1099,7 +1099,7 @@
const searchtable = (item : any) => {
console.log("aaaaaaa", item)
// console.log("aaaaaaa", item)
firstListTarget.value = -1;
secondListTarget.value = -1;
moveById.value = item.id

View File

@ -171,6 +171,7 @@
}
}
}
.title-time-blue {
/* 你的定位与尺寸保持不变 */
position: absolute;
@ -191,6 +192,7 @@
display: flex;
width: 100%;
position: relative;
.title-time-time {
font-size: 32rpx;
margin: 0 auto;
@ -701,7 +703,7 @@
}
.check-text-view {
width: 400rpx;
width: 370rpx;
height: 100%;
display: flex;
flex-direction: column;
@ -816,16 +818,16 @@
top: 70rpx;
width: 93%;
z-index: 1;
height: 80rpx;
height: 90rpx;
background-color: #fff;
color: #999;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -897,7 +899,7 @@
width: 94%;
left: 3%;
top: 200rpx;
height: 150rpx;
height: 160rpx;
background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
@ -931,7 +933,7 @@
}
.tags-title {
font-size: 30rpx;
font-size: 32rpx;
}
.tags-contain {
@ -939,7 +941,7 @@
height: 100rpx;
margin-top: 5rpx;
color: #666666;
font-size: 25rpx;
font-size: 27rpx;
/* background-color: red; */
}
@ -1125,19 +1127,19 @@
.explain-text {
position: absolute;
right: 4%;
top: 70rpx;
top: 80rpx;
width: 93%;
z-index: 1;
height: 80rpx;
background-color: #fff;
color: #999;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -1352,16 +1354,16 @@
top: 55rpx;
width: 93%;
z-index: 1;
height: 120rpx;
height: 160rpx;
background-color: #fff;
color: #999;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -1854,52 +1856,55 @@
flex-wrap: wrap;
position: relative;
.instant-detail {
}
.instant-detail {
position: absolute;
width: 104%;
left: -2%;
top: 0;
height: 160rpx;
background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
padding-top: 17rpx;
padding-left: 25rpx;
.detail-title {
font-size: 32rpx;
color: black;
}
.detail-contain {
width: 95%;
height: 100rpx;
margin-top: 5rpx;
color: #666666;
font-size: 28rpx;
/* background-color: red; */
}
.triangle-instant {
position: absolute;
width: 104%;
left: -2%;
top: 0;
height: 150rpx;
background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
padding-top: 17rpx;
padding-left: 25rpx;
top: -8.34rpx;
left: 0;
width: 0;
height: 0;
border-left: 14.44rpx solid transparent;
border-right: 14.44rpx solid transparent;
border-bottom: 8.34rpx solid rgba(0, 137, 254, 0.29);
.detail-title {
font-size: 30rpx;
}
.detail-contain {
width: 95%;
height: 100rpx;
margin-top: 5rpx;
color: #666666;
font-size: 25rpx;
/* background-color: red; */
}
.triangle-instant {
.triangle-small-instant {
position: absolute;
top: -8.34rpx;
left: 0;
top: 1.2rpx;
right: 50%;
transform: translateX(50%);
width: 0;
height: 0;
border-left: 14.44rpx solid transparent;
border-right: 14.44rpx solid transparent;
border-bottom: 8.34rpx solid rgba(0, 137, 254, 0.29);
.triangle-small-instant {
position: absolute;
top: 1.2rpx;
right: 50%;
transform: translateX(50%);
width: 0;
height: 0;
border-left: 14.44rpx solid transparent;
border-right: 14.44rpx solid transparent;
border-bottom: 8.34rpx solid #fff;
}
border-bottom: 8.34rpx solid #fff;
}
}
}
@ -1957,6 +1962,7 @@
.pack-detail {
width: 100%;
height: 300rpx;
/* background-color: red; */
/* border-bottom-left-radius: 40rpx;
border-bottom-right-radius: 40rpx; */
/* background-color: #fafafa; */
@ -1970,6 +1976,7 @@
height: 100%;
flex-wrap: wrap;
color: #666666;
position: relative;
.details {
height: 150rpx;
@ -2290,4 +2297,36 @@
}
}
}
.noelderId {
position: fixed;
top: 1.3vw;
left: 9.5vw;
width: 89vw;
height: 60vw;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-color: #fff;
border-radius: 30rpx;
z-index: 999;
opacity: 0.8;
image {
margin-left: -500rpx;
width: 13.5vw;
height: 13.5vw;
}
view {
margin-left: -500rpx;
/* width: 100%; */
text-align: center;
font-weight: 300;
margin-top: -20rpx;
font-size: 1.4vw;
color: #555555;
}
}

View File

@ -2,10 +2,14 @@
<template>
<view class="right-container" :style="isshow?{opacity: `1`}:{opacity: `0`}" @click="bottomisShaking=false;">
<severcard></severcard>
<view class="noelderId" v-if="!(uni.getStorageSync('nuId') && uni.getStorageSync('elderId'))">
<image src="/static/index/nooldericon.png" mode="aspectFill"></image>
<view>该护理单元暂无老人入住</view>
</view>
<view class="doctorsay-container-view">
<view class="doctorsay-container-container">
<view class="super-card">
<view class="boom-father">
<view class="boom-father" v-if="(uni.getStorageSync('nuId') && uni.getStorageSync('elderId'))">
<view class="boom" :style="{ transform: transformStyle }">
<view>
<view v-for="(item,index) in timearr[0]?.children" :key="index">
@ -182,7 +186,7 @@
item.izSelected === 'Y'
? (item.picFocus ? serverUrl + item.picFocus : noimageshowtarget)
: (item.pic ? serverUrl + item.pic : noimageshow)" />
<view class=" check-text-view">
<view class="check-text-view">
<view class="check-weight"
:style="item.izSelected==`Y`?{color:`#0074E1`}: {}">
{{ item.tagName }}
@ -243,7 +247,7 @@
</view>
</view>
</view>
<view class="instant-more" v-if="bottomItems.length > 3" @click="clickopenmore">
<view class="instant-more" @click="clickopenmore">
<image class="more-imge" src="/static/index/down.png" />
</view>
</view>
@ -408,12 +412,14 @@
<view class="pack-heng"></view>
<scroll-view class="pack-detail" scroll-with-animation :scroll-y="canmovechange">
<view class="detail-father">
<view class="details"
v-for="(item,index) in savePackagelist[packnumber]?.directives"
:key="index">
<image class="detail-icon"
:src="item.immediateFile ? serverUrl + item.immediateFile : noimageshow"
mode="aspectFill">
<view class="details" :style="packdetail==index?{color:`#0089FE`}:{}"
v-for="(item,index) in savePackagelist[packnumber]?.directives" :key="index"
@click.stop="clickpackdetail(index)">
<image class="detail-icon" :src="
index === packdetail
? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshowtarget)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill">
</image>
<view class="">
{{ splitString(item.directiveName)[0] }}
@ -422,6 +428,20 @@
{{ splitString(item.directiveName)[1] ? `(${splitString(item.directiveName)[1]})`:``}}
</view>
</view>
<view class="instant-detail" style="width: 100%;height: 155rpx;margin-left: 2%;"
:style="{top:`${(thirdinstantshow[0]+1) *155 - 10}rpx`}"
v-show="thirdinstantshow[0]!==-1">
<view class="triangle-instant"
:style="{left:`${(thirdinstantshow[1]) * 32 + 15}%`}">
<view class="triangle-small-instant"></view>
</view>
<view class="detail-title">
{{ savePackagelist[packnumber]?.directives[packdetail]?.directiveName }}
</view>
<view class="detail-contain">
{{ savePackagelist[packnumber]?.directives[packdetail]?.serviceContent }}
</view>
</view>
</view>
</scroll-view>
@ -945,7 +965,7 @@
})
}
const inputnum = ref(1)
const inputnum = ref(-1)
const secondinstantshow = ref([-1, -1])
const gettop = ref(0)
const clickinstant = (index : number) => {
@ -960,6 +980,20 @@
secondinstantshow.value = [-1, -1]
}
}
const packdetail = ref(-1)
const thirdinstantshow = ref([-1, -1])
const clickpackdetail = (index : number) => {
if (packdetail.value !== index) {
packdetail.value = index
thirdinstantshow.value = [Math.floor(index / 3), index % 3]
setTimeout(() => {
gettop.value = 77.5 * thirdinstantshow.value[0]
}, 200)
} else {
packdetail.value = -1
thirdinstantshow.value = [-1, -1]
}
}
const nosave = ref({
cycleTypeId: "",
cycleValue: "",
@ -1666,7 +1700,7 @@
const emotionTagList = ref([]);
const bodyTagList = ref([]);
const geteverything = () => {
console.log("有老人吗",uni.getStorageSync('elderId'))
// console.log("",uni.getStorageSync('elderId'))
if (uni.getStorageSync('nuId') && uni.getStorageSync('elderId')) {
getNclist(uni.getStorageSync('nuId'), uni.getStorageSync('elderId')).then((res : any) => {
// console.log("",res)

View File

@ -312,7 +312,7 @@
}
.ifclass {
width: 37vw;
width: 42vw;
height: 75vh;
position: fixed;
z-index: 120;
@ -330,6 +330,7 @@
display: flex;
justify-content: flex-end;
align-items: end;
padding-right: 0.5vw;
.bt {
min-width: 8vw;
@ -366,7 +367,7 @@
justify-content: space-around;
.scrl1 {
width: 10vw;
width: 10.8vw;
}
.scrl2,
@ -375,18 +376,18 @@
display: flex;
justify-content: flex-end;
view {
width: 8vw;
width: 8.7vw;
margin-left: 1vw;
}
}
.scroll-Y {
width: 10vw;
width: 10.5vw;
height: calc(75vh - 16vw);
view {
min-width: 8.5vw;
max-width: 10vw;
max-width: 10.5vw;
height: 3.8vw;
background: #F5F5F8;
border-radius: 1.9vw;
@ -443,7 +444,7 @@
border: 1px solid rgba(255, 255, 255, .5);
font-weight: 400;
font-size: 1.2vw;
color: #333333;
color: #828282;
padding: 0;
}
}
@ -452,7 +453,7 @@
width: 100%;
height: 2.5vw;
font-weight: 400;
font-size: 1.5vw;
font-size: 32rpx;
color: #333333;
line-height: 2.5vw;
padding-left: 1vw;

View File

@ -87,7 +87,7 @@
const showbox = ref(false)
watch(()=>props.show,
()=>{
console.log(props.list)
// console.log(props.list)
if(props.show==true){
setTimeout(()=>{
showbox.value = true
@ -258,7 +258,7 @@
.imgs {
width: 7vw;
height: 7vw;
background: #Fff;
// background: #Fff;
border-radius: 1.1vw;
display: flex;
justify-content: center;

View File

@ -28,8 +28,11 @@
收货
</view>
</view>
<nomessage cont="暂无数据" :show="nomessageshow" />
<!-- <nomessage cont="暂无数据" :show="nomessageshow" /> -->
<view class="bignomessage" v-if="nomessageshow">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<tanchuang :show="badshow" font="确定要作废这个请领单吗" @back="badshow=false;" @right="zuofei"> </tanchuang>
<tanchuang :show="shouhuoshow" font="这个请领单确定要收货吗" @back="shouhuoshow=false;" @right="shouhuo"> </tanchuang>
@ -1259,4 +1262,31 @@
justify-content: center;
align-items: center;
}
.bignomessage{
position: fixed;
top: 8.5vh;
left: 9.8vw;
width: 88.2vw;
height: 89vh;
z-index: 100;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
border-radius: 30rpx;
image {
width: 16.3vw;
height: 16.3vw;
}
view {
text-align: center;
margin-top: 1vw;
font-weight: 300;
font-size: 1.5vw;
color: #555555;
}
}
</style>

View File

@ -22,7 +22,11 @@
</view>
</view>
<nomessage cont="暂无数据" :show="nomessageshow" />
<!-- <nomessage cont="暂无数据" :show="nomessageshow" /> -->
<view class="bignomessage" v-if="nomessageshow">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<tanchuang :show="badshow" font="确定要作废这个回退单吗" @back="badshow=false;" @right="zuofei"> </tanchuang>
@ -940,4 +944,31 @@
justify-content: center;
align-items: center;
}
.bignomessage{
position: fixed;
top: 8.5vh;
left: 9.8vw;
width: 88.2vw;
height: 89vh;
z-index: 100;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
border-radius: 30rpx;
image {
width: 16.3vw;
height: 16.3vw;
}
view {
text-align: center;
margin-top: 1vw;
font-weight: 300;
font-size: 1.5vw;
color: #555555;
}
}
</style>

View File

@ -1130,14 +1130,14 @@
z-index: 1;
height: 80rpx;
background-color: #fff;
color: #999;
color: #666666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -1353,16 +1353,16 @@
top: 55rpx;
width: 93%;
z-index: 1;
height: 120rpx;
height: 160rpx;
background-color: #fff;
color: #999;
color: #666;
display: flex;
justify-content: center;
align-items: center;
/* flex-direction: column; */
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
font-size: 30rpx;
font-size: 28rpx;
padding: 0 20rpx;
.triangle {
@ -1855,12 +1855,14 @@
flex-wrap: wrap;
position: relative;
}
.instant-detail {
position: absolute;
width: 104%;
left: -2%;
top: 0;
height: 180rpx;
height: 160rpx;
background-color: #fff;
border: 2rpx solid rgba(0, 137, 254, 0.29);
border-radius: 25rpx;
@ -1903,8 +1905,6 @@
}
}
}
}
.pop {
transform: scale(1.3);
}

View File

@ -243,7 +243,7 @@
</view>
</view>
</view>
<view class="instant-more" v-if="bottomItems.length > 6" @click="clickopenmore">
<view class="instant-more" @click="clickopenmore">
<image class="more-imge" src="/static/index/down.png" />
</view>
</view>
@ -410,12 +410,14 @@
<view class="pack-heng"></view>
<scroll-view class="pack-detail" scroll-with-animation :scroll-y="canmovechange">
<view class="detail-father">
<view class="details"
v-for="(item,index) in savePackagelist[packnumber]?.directives"
:key="index">
<image class="detail-icon"
:src="item.immediateFile ? serverUrl + item.immediateFile : noimageshow"
mode="aspectFill">
<view class="details" :style="packdetail==index?{color:`#0089FE`}:{}"
v-for="(item,index) in savePackagelist[packnumber]?.directives" :key="index"
@click.stop="clickpackdetail(index)">
<image class="detail-icon" :src="
index === packdetail
? (item.immediateFileFocus ? serverUrl + item.immediateFileFocus : noimageshowtarget)
: (item.immediateFile ? serverUrl + item.immediateFile : noimageshow)
" mode="aspectFill">
</image>
<view class="">
{{ splitString(item.directiveName)[0] }}
@ -424,6 +426,20 @@
{{ splitString(item.directiveName)[1] ? `(${splitString(item.directiveName)[1]})`:``}}
</view>
</view>
<view class="instant-detail" style="width: 100%;height: 155rpx;margin-left: 2%;"
:style="{top:`${(thirdinstantshow[0]+1) *155 - 10}rpx`}"
v-show="thirdinstantshow[0]!==-1">
<view class="triangle-instant"
:style="{left:`${(thirdinstantshow[1]) * 32 + 15}%`}">
<view class="triangle-small-instant"></view>
</view>
<view class="detail-title">
{{ savePackagelist[packnumber]?.directives[packdetail]?.directiveName }}
</view>
<view class="detail-contain">
{{ savePackagelist[packnumber]?.directives[packdetail]?.serviceContent }}
</view>
</view>
</view>
</scroll-view>
@ -962,6 +978,20 @@
secondinstantshow.value = [-1, -1]
}
}
const packdetail = ref(-1)
const thirdinstantshow = ref([-1, -1])
const clickpackdetail = (index : number) => {
if (packdetail.value !== index) {
packdetail.value = index
thirdinstantshow.value = [Math.floor(index / 3), index % 3]
setTimeout(() => {
gettop.value = 77.5 * thirdinstantshow.value[0]
}, 200)
} else {
packdetail.value = -1
thirdinstantshow.value = [-1, -1]
}
}
const nosave = ref({
cycleTypeId: "",
cycleValue: "",

View File

@ -2411,7 +2411,7 @@
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
width: 350rpx;
color: #666666;
margin-left: 10rpx;
overflow: hidden;
@ -2576,7 +2576,7 @@
align-items: center;
.right-title {
width: 100%;
width: 85%;
white-space: nowrap;
/* 不换行 */
overflow: hidden;

View File

@ -28,6 +28,15 @@
</view>
</view>
</view>
<view class="title-card-two">
<view class="">
你好,
</view>
<view class="">
欢迎来到库房!
</view>
<image class="title-card-two-img" src="/static/index/warehousebgc.png" />
</view>
<view class="title-card-right" @click="jszlshow = true">
<view class="card-top" style="justify-content: space-between;">
<view class="card-top-left">
@ -163,7 +172,7 @@
</view>
</view>
</view>
<severcard ref="severcards"></severcard>
<severcard ref="severcards" ></severcard>
</template>
<script setup lang="ts">
@ -673,6 +682,8 @@
height: 20vh;
position: relative;
font-size: 28rpx;
// width: 100%;
// background-color: red;
}
.date {
@ -687,7 +698,8 @@
border-radius: 1.6vw;
background-color: #FFFFFF;
// margin-right: 1.6vw;
margin-left: 34.5vw;
// margin-left: 34.5vw;
border: 2rpx solid #FFFFFF;
padding: 1.6vw;
position: relative;
@ -849,7 +861,29 @@
);
z-index: 4;
}
.title-card-two{
width: 33vw;
height: 12vw;
border-radius: 1.6vw;
background-color: #FFFFFF;
padding: 2.5vw;
position: relative;
margin-right: 1vw;
display: flex;
flex-direction: column;
justify-content: center;
font-size: 36rpx;
line-height: 40rpx;
color: #9DC0F2;
font-weight: 600;
.title-card-two-img{
position: absolute;
right: 0;
bottom: 0;
height: 100%;
width: 17vw;
}
}
.title-card {
width: 17.2vw;
height: 12vw;

View File

@ -123,7 +123,7 @@
.
</view>
</view>
</view>
</view>
<!-- 拣货 -->
@ -253,14 +253,15 @@
</view>
</view>
<view style="display: flex;margin-top: 20rpx;">
<view class="gray-button" @click="jjnum(-1)" @longpress="handleTouchStart(-1)"
<view class="gray-button" @click="jjnum(-1)" @touchstart="handleTouchStart(-1)"
@touchend="handleTouchEnd">
-
</view>
<view class="gray-input" style="width:10vw;">
<text v-for="(v,i) in stringjh" :key="i">{{v}}</text>
</view>
<view class="gray-button" @click="jjnum(1)" @longpress="handleTouchStart(1)" @touchend="handleTouchEnd">
<view class="gray-button" @click="jjnum(1)" @touchstart="handleTouchStart(1)"
@touchend="handleTouchEnd">
+
</view>
</view>
@ -1775,12 +1776,37 @@
}
//
const InteroutId = ref(null)
let longPressTimer = null;
let longPressed = false;
const handleTouchStart = (e : number) => {
Interval(e)
longPressed = false;
if (longPressTimer) {
clearTimeout(longPressTimer);
longPressTimer = null;
}
longPressTimer = setTimeout(() => {
longPressTimer = null;
longPressed = true;
Interval(e)
}, 800); // 1000ms = 1s
// Interval(e)
}
const handleTouchEnd = () => {
clearInterval(InteroutId.value);
//
if (longPressTimer) {
clearTimeout(longPressTimer);
longPressTimer = null;
// console.log(' 1 ');
return;
}
//
if (longPressed) {
// console.log('');
clearInterval(InteroutId.value);
longPressed = false; //
} else {
console.log('无效状态(通常不会到这)');
}
}
const Interval = (e : number) => {
InteroutId.value = setInterval(() => {
@ -1788,10 +1814,21 @@
}, 120);
}
const jjnum = (e : number) => {
let m = showvalue.value.maxnum;
if (m <= showvalue.value.num && e == 1) { showvalue.value.num = m; return }
if (showvalue.value.num <= 1 && e == -1) { showvalue.value.num = 1; return }
// console.log("",showvalue.value)
if (m <= showvalue.value.num && e == 1) {
// console.log("0000")
showvalue.value.num = m;
return
}
if (showvalue.value.num <= 1 && e == -1) {
// console.log("111")
showvalue.value.num = 1;
return
}
showvalue.value.num += e;
// console.log("", showvalue.value.num)
stringjh.value = toFixed4ByPadStart(showvalue.value.num)
}
//
@ -2313,7 +2350,7 @@
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
width: 350rpx;
color: #666666;
margin-left: 10rpx;
overflow: hidden;
@ -2489,7 +2526,7 @@
align-items: center;
.right-title {
width: 90%;
width: 85%;
white-space: nowrap;
/* 不换行 */
overflow: hidden;
@ -3059,6 +3096,7 @@
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.gray-button-jianpan-jian:active {
background: linear-gradient(to top, #00C9FF, #0076FF);
color: #fff;
@ -3086,6 +3124,7 @@
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.gray-input {
font-size: 40rpx;
font-weight: 600;

View File

@ -787,7 +787,7 @@
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
width: 350rpx;
// background-color: #007CFF;
// font-size: 26rpx;
color: #666666;

View File

@ -102,24 +102,27 @@
</view>
<view class="gray-pgc guodu" :class="v.pz?'':'itemhei0'">
<view class="pztit" v-if="v.pz">拍照</view>
<view class="zpj" v-if="v.pz">
<view class="zpk" v-for="(p,o) in v?.picPatharr" :key="o"
@click="previewImage(v,p,o)">
<image :src="serverUrl+p" mode="aspectFill"></image>
<view @click.stop="open=1;del(v,o)">
<image src="/static/index/keyimg/deletebutton.png" mode="aspectFill"
style="width: 75%;height: 70%;"></image>
<scroll-view scroll-x class="scrollbgc">
<view class="zpj" v-if="v.pz">
<view class="zpk" v-for="(p,o) in v?.picPatharr" :key="o"
@click="previewImage(v,p,o)">
<image :src="serverUrl+p" mode="aspectFill"></image>
<view @click.stop="open=1;del(v,o)">
<image src="/static/index/keyimg/deletebutton.png" mode="aspectFill"
style="width: 75%;height: 70%;"></image>
</view>
</view>
<view class="clkpz" @click="uplod(v,i)" v-if="v.picPatharr?.length<6&&pddType == 1">
<image src="/static/index/procurement/xjpz.png" mode="aspectFill"></image>
<text>点击拍照上传 </text>
</view>
<defaultr cont="暂无图片" v-if="v?.picPatharr.length==0&&pddType!='1'"
style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
</view>
<view class="clkpz" @click="uplod(v,i)" v-if="v.picPatharr?.length<6&&pddType == 1">
<image src="/static/index/procurement/xjpz.png" mode="aspectFill"></image>
<text>点击拍照上传 </text>
</view>
<defaultr cont="暂无图片" v-if="v?.picPatharr.length==0&&pddType!='1'"
style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
</view>
<view class="submit" v-if="v.pz">
</scroll-view>
<view class="submit" v-if="v.pz" style="height: 3vw;">
<view @click="v.pz = false">{{pddType=='1'?'取消':'关闭'}}</view>
<view v-if="pddType=='1'" @click="v.pz = false">确定</view>
</view>
@ -424,8 +427,8 @@
.submit {
width: 100%;
height: 3.2vw;
margin-top: 0.9vw;
// height: 3.2vw;
// margin-top: 0.9vw;
padding-right: 2vw;
display: flex;
justify-content: flex-end;
@ -498,8 +501,8 @@
.gray-pgc {
background: #fff;
width: 29vw;
height: 27vw;
width: 40vw;
height: 30vw;
border-radius: 2vw;
box-shadow: 0rpx 0rpx 5rpx 0rpx rgba(116, 141, 164, 0.22);
position: absolute;
@ -512,76 +515,83 @@
bottom: 0;
right: 0;
}
>.zpj {
width: 100%;
min-height: 1vw;
max-height: 19.5vw;
display: grid;
grid-template-columns: 1fr 1fr;
padding: 0 1.6vw;
>.zpk {
width: 12.6vw;
height: 6.4vw;
margin-top: 0.3vw;
border-radius: 1.1vw;
position: relative;
.scrollbgc{
width: 92%;
margin-left: 4%;
height: 22vw;
.zpj {
width: 30%;
display: flex;
justify-content: center;
align-items: center;
background: #F9F9F9;
overflow: hidden;
view {
width: 2vw;
height: 2vw;
z-index: 20;
position: absolute;
right: 0.1vw;
top: 0.1vw;
border-radius: 0.6vw 1.1vw 0.6vw 0.6vw;
background: rgba(255, 255, 255, 1);
flex-wrap: wrap;
flex-direction: column;
// padding: 0 1.6vw;
height: 22vw;
// background-color: red;
.zpk {
width: 17.8vw;
height: 10vw;
margin-top: 1vw;
border-radius: 1.1vw;
position: relative;
display: flex;
justify-content: center;
align-items: center;
background: #F9F9F9;
overflow: hidden;
margin-right: 1vw;
view {
width: 2vw;
height: 2vw;
z-index: 20;
position: absolute;
right: 0.8vw;
top: 0.8vw;
border-radius: 0.6vw 1.1vw 0.6vw 0.6vw;
background: rgba(255, 255, 255, 1);
display: flex;
justify-content: center;
align-items: center;
}
image {
width: 100%;
height: 100%;
}
}
image {
width: 12.6vw;
height: 6.4vw;
.clkpz {
width: 17.8vw;
height: 10vw;
background: #FAFDFF;
border-radius: 1.1vw;
border: 1px solid #DDEFFF;
display: flex;
justify-content: center;
align-items: center;
margin-top: 1vw;
flex-direction: column;
text {
font-weight: 400;
font-size: 0.7vw;
color: #78B1EB;
}
image {
width: 2.3vw;
height: 2.3vw;
}
}
}
>.clkpz {
width: 12.6vw;
height: 6.4vw;
background: #FAFDFF;
border-radius: 1.1vw;
border: 1px solid #DDEFFF;
display: flex;
justify-content: center;
align-items: center;
margin-top: 0.3vw;
flex-direction: column;
text {
font-weight: 400;
font-size: 0.7vw;
color: #78B1EB;
}
image {
width: 2.3vw;
height: 2.3vw;
}
}
}
.pztit {
font-weight: 400;
font-size: 1.2vw;
font-size: 1.5vw;
color: #888888;
margin: 1.6vw auto 0;
width: 100%;
@ -641,8 +651,8 @@
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border-radius: 1.3vw;
border: 1px solid rgba(3, 133, 250, 0.34);
right: 4vw;
top: 0.5vw;
right: 3.2vw;
top: 0vw;
position: absolute;
font-weight: 400;
font-size: 1.4vw;
@ -654,9 +664,9 @@
.bp {
width: 5vw;
height: 2.6vw;
height: 2.8vw;
display: flex;
align-items: center;
align-items: flex-end;
font-weight: 400;
font-size: 1.2vw;
color: #555555;

View File

@ -9,10 +9,10 @@
</view>
</view>
<view class="jiajian">
<view class="jj" @click="jjnum(-1)" @longpress="handleTouchStart(-1)" @touchend="handleTouchEnd">
<view class="jj" @click="jjnum(-1)" @touchstart="handleTouchStart(-1)" @touchend="handleTouchEnd">
-
</view>
<view class="jj" @click="jjnum(1)" @longpress="handleTouchStart(1)" @touchend="handleTouchEnd">
<view class="jj" @click="jjnum(1)" @touchstart="handleTouchStart(1)" @touchend="handleTouchEnd">
+
</view>
</view>
@ -112,13 +112,37 @@
}
const InteroutId = ref(null)
let longPressTimer = null;
let longPressed = false;
const handleTouchStart = (e : number) => {
if (props.pddType != '1') { return }
Interval(e)
longPressed = false;
if (longPressTimer) {
clearTimeout(longPressTimer);
longPressTimer = null;
}
longPressTimer = setTimeout(() => {
longPressTimer = null;
longPressed = true;
Interval(e)
}, 800); // 1000ms = 1s
}
const handleTouchEnd = () => {
clearInterval(InteroutId.value);
//
if (longPressTimer) {
clearTimeout(longPressTimer);
longPressTimer = null;
// console.log(' 1 ');
return;
}
//
if (longPressed) {
// console.log('');
clearInterval(InteroutId.value);
longPressed = false; //
} else {
console.log('无效状态(通常不会到这)');
}
}
const Interval = (e : number) => {
InteroutId.value = setInterval(() => {
@ -167,7 +191,7 @@
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr;
.calculator-kuai {
display: flex;
justify-content: center;

View File

@ -172,9 +172,10 @@
<style scoped lang="less">
.carditem {
width: 47vw;
width: 46.9vw;
height: 14.5vw;
background: rgba(245, 246, 248, 1);
background: rgba(255, 255, 255, 1);
border: 1rpx solid #D2D2D2;
border-radius: 1.6vw;
position: relative;
margin-bottom: 1.1vw;
@ -219,7 +220,7 @@
}
&:nth-child(1) {
background: #dcdee1;
background: #e3e5e7;
color: #555555;
}
}

View File

@ -48,7 +48,7 @@
<view>
<text>采购单位: {{v.wlUnits}}</text>
</view>
<view>
<view style="margin-top: 30rpx;" >
<text>供应商: {{v.suppliersName}}</text>
</view>
<view>

View File

@ -296,7 +296,7 @@
}
.ifclass {
width: 36vw;
width: 42vw;
height: 85vh;
position: fixed;
z-index: 120;
@ -314,6 +314,7 @@
display: flex;
justify-content: flex-end;
align-items: end;
padding-right: 0.5vw;
.bt {
min-width: 8vw;
@ -350,25 +351,25 @@
justify-content: space-around;
.scrl1 {
width: 9vw;
width:11vw;
view {
width: 8.8vw;
width: 10.8vw;
}
}
.scrl2,
.scrl3 {
width: 8vw;
width: 10vw;
view {
width: 7.7vw;
width: 9.7vw;
}
}
.scroll-Y {
width: 8.5vw;
width: 10.5vw;
height: calc(85vh - 22vw);
view {
@ -429,7 +430,7 @@
border: 1px solid rgba(255, 255, 255, .5);
font-weight: 400;
font-size: 1.2vw;
color: #333333;
color: #828282;
padding: 0;
}
}
@ -438,9 +439,10 @@
width: 100%;
height: 2.5vw;
font-weight: 400;
font-size: 1.5vw;
font-size: 32rpx;
color: #333333;
line-height: 2.5vw;
font-weight: 600;
}
.guodu {

View File

@ -26,7 +26,7 @@
right: 0;
bottom: 0;
margin: auto;
// background-color: red;
image{
width: 100%;

View File

@ -2,433 +2,479 @@
<view>
<view class="qbkyj" v-if="show">
<view class="titletop">详情</view>
<view scroll-y="true" class="crdcroll" scroll-with-animation
@scrolltolower="scrolltolower">
<view class="fler">
<scroll-view class="carditem guodu" v-for="(v,index) in InvoicingList" :key="index"
@touchend="handleTouchEnd($event,v,index)" @touchstart="touchstart($event,v,index)"
scroll-with-animation scroll-x="true" :scroll-left="v.scrollleft" >
<view class="speitem guodu" :class="v.zk?'spleft':''">
<image :src="v.materialImg?serverUrl+v.materialImg:'/static/index/procurement/k.png'" mode="aspectFill"></image>
<view class="cardp">
<view v-if="v.categoryId_dictText">{{v.categoryId_dictText}}</view>
<view v-if="v.typeId_dictText">{{v.typeId_dictText}}</view>
<view v-if="v.medicationId_dictText">{{v.medicationId_dictText}}</view>
</view>
<view scroll-y="true" class="crdcroll" scroll-with-animation @scrolltolower="scrolltolower">
<view class="fler">
<scroll-view class="carditem guodu" v-for="(v,index) in InvoicingList" :key="index"
@touchend="handleTouchEnd($event,v,index)" @touchstart="touchstart($event,v,index)"
scroll-with-animation scroll-x="true" :scroll-left="v.scrollleft">
<view class="speitem guodu" :class="v.zk?'spleft':''">
<image :src="v.materialImg?serverUrl+v.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill"></image>
<view class="cardp">
<view v-if="v.categoryId_dictText">{{v.categoryId_dictText}}</view>
<view v-if="v.typeId_dictText">{{v.typeId_dictText}}</view>
<view v-if="v.medicationId_dictText">{{v.medicationId_dictText}}</view>
</view>
</view>
<view class="msitem guodu">
<view>
<view>{{v.materialName}}</view><text>{{v.materialNo}}</text>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号:
{{v.specificationModel}}</text>
</view>
<view>
<text v-if="v.multiUnitType=='1'">采购单价: {{Number(v.oneUnitPrice).toFixed(2)}} </text>
<text v-if="v.multiUnitType=='1'">采购单位: {{ v.oneUnit}}</text>
<text v-if="v.multiUnitType=='2'">采购单价: {{Number(v.twoUnitPrice).toFixed(2)}} </text>
<text v-if="v.multiUnitType=='2'">采购单位: {{ v.twoUnit}}</text>
<text v-if="v.multiUnitType=='3'">采购单价: {{Number(v.referenceUnitPrice).toFixed(2)}}
</text>
<text v-if="v.multiUnitType=='3'">采购单位: {{ v.materialUnits}}</text>
</view>
<view>
<view>
<text>{{v.kcsl}}</text>
<text>库存数量</text>
</view>
<view class="msitem guodu">
<view>
<view>{{v.materialName}}</view><text>{{v.materialNo}}</text>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: {{v.specificationModel}}</text>
</view>
<view>
<text v-if="v.multiUnitType=='1'">采购单价: {{Number(v.oneUnitPrice).toFixed(2)}} </text>
<text v-if="v.multiUnitType=='1'">采购单位: {{ v.oneUnit}}</text>
<text v-if="v.multiUnitType=='2'">采购单价: {{Number(v.twoUnitPrice).toFixed(2)}} </text>
<text v-if="v.multiUnitType=='2'">采购单位: {{ v.twoUnit}}</text>
<text v-if="v.multiUnitType=='3'">采购单价: {{Number(v.referenceUnitPrice).toFixed(2)}} </text>
<text v-if="v.multiUnitType=='3'">采购单位: {{ v.materialUnits}}</text>
</view>
<view>
<view>
<text>{{v.kcsl}}</text>
<text>库存数量</text>
</view>
<view>
<text >{{v.upperLimit}}</text>
<text>物料上限 </text>
</view>
<view>
<text >{{v.lowerLimit}}</text>
<text> 物料下限</text>
</view>
</view>
<view>
<text>{{v.upperLimit}}</text>
<text>物料上限 </text>
</view>
<view class="add" @click.stop="clkzk(v,index)">
<view v-if="v.isAdd==1">已添加</view>
<image class="guodu" :style="v.zk?'transform: rotate(180deg);':''" :src="'/static/index/procurement/l.png'" mode="aspectFill"></image>
<view>
<text>{{v.lowerLimit}}</text>
<text> 物料下限</text>
</view>
<view class="zkadd guodu" :class="v.isAdd==1?'zkf':''">
<view @click.stop="crk(v,index)" @touchend.stop>出入库</view>
<view @click.stop="addcar(v)" v-if="v.isAdd!=1" @touchend.stop>
<view>
加购物车
</view>
</view>
</view>
</view>
<view class="add" @click.stop="clkzk(v,index)">
<view v-if="v.isAdd==1">已添加</view>
<image class="guodu" :style="v.zk?'transform: rotate(180deg);':''"
:src="'/static/index/procurement/l.png'" mode="aspectFill"></image>
</view>
<view class="zkadd guodu" :class="v.isAdd==1?'zkf':''">
<view @click.stop="crk(v,index)" @touchend.stop>出入库</view>
<view @click.stop="addcar(v)" v-if="v.isAdd!=1" @touchend.stop>
<view>
加购物车
</view>
</scroll-view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent,watch} from 'vue';
import { queryInvoicingList,queryWlInfoByWlId,addShoppingCartList,queryShoppingCartList } from '../api/lunpan.js'
const props = defineProps({
InvoicingList: {
type: Array,
required: true
},
status:{
type:String
},
show: {
type: Boolean,
default:false,
required: true,
},
})
watch(
()=>props.show,
()=>{
if(props.show==false){
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent, watch } from 'vue';
import { queryInvoicingList, queryWlInfoByWlId, addShoppingCartList, queryShoppingCartList } from '../api/lunpan.js'
const props = defineProps({
InvoicingList: {
type: Array,
required: true
},
status: {
type: String
},
show: {
type: Boolean,
default: false,
required: true,
},
})
watch(
() => props.show,
() => {
if (props.show == false) {
props.InvoicingList[0].scrollleft = 0;
}
})
const emit = defineEmits(['addcartory','tolower','solleft','crk'])
const serverUrl = ref('')
onMounted(()=>{
serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
})
const crk=(v,i)=>{
emit('crk',v,i)
}
const setout1 = ref(true)
const scrolltolower = () => {
emit('tolower')
}
const caigouobj = ref({})
const clkzk =(v:any,i:number)=>{
caigouobj.value = v;
caigouobj.value.Limitnum = Number(caigouobj.value?.upperLimit)-Number(caigouobj.value.kcsl);
const emit = defineEmits(['addcartory', 'tolower', 'solleft', 'crk'])
const serverUrl = ref('')
onMounted(() => {
serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
})
const crk = (v, i) => {
emit('crk', v, i)
}
const setout1 = ref(true)
const scrolltolower = () => {
emit('tolower')
}
const caigouobj = ref({})
const clkzk = (v : any, i : number) => {
caigouobj.value = v;
caigouobj.value.Limitnum = Number(caigouobj.value?.upperLimit) - Number(caigouobj.value.kcsl);
caigouobj.value.index = i;
caigouobj.value.yj = true;
if(v.zk==true){
if (v.zk == true) {
v.zk = false;
v.scrollleft = 0
}else{
} else {
v.zk = true;
v.scrollleft = 180;
}
solleft(v,i)
}
const addcar = (v:any)=>{
emit('addcartory',caigouobj.value)
}
const pageX = ref(0);
const pageY = ref(0);
const touchstart = (event:any,v:any,i:number)=>{
pageX.value = event.changedTouches[0].pageX;
pageY.value = event.changedTouches[0].pageY;
solleft(v,i)
}
const handleTouchEnd = (event:any,v:any,i:number)=>{
let y = event.changedTouches[0].pageY;
let x = event.changedTouches[0].pageX;
let absx = Math.abs(x-pageX.value)
let absy = Math.abs(y-pageY.value)
if (absy > 30 && absx+10<absy&& absx<70) {
if(v.zk==false){
setTimeout(()=>{
solleft(v, i)
}
const addcar = (v : any) => {
emit('addcartory', caigouobj.value)
}
const pageX = ref(0);
const pageY = ref(0);
const touchstart = (event : any, v : any, i : number) => {
pageX.value = event.changedTouches[0].pageX;
pageY.value = event.changedTouches[0].pageY;
solleft(v, i)
}
const handleTouchEnd = (event : any, v : any, i : number) => {
let y = event.changedTouches[0].pageY;
let x = event.changedTouches[0].pageX;
let absx = Math.abs(x - pageX.value)
let absy = Math.abs(y - pageY.value)
if (absy > 30 && absx + 10 < absy && absx < 70) {
if (v.zk == false) {
setTimeout(() => {
v.scrollleft = 0
},20)
}, 20)
}
return
}
if (absx < 10 && absy < 10) {
if(v.zk==false && absx > 2 && absy > 2){
v.scrollleft = 0;
return
}
return
}
return
}
if (absx < 10 && absy < 10) {
if (v.zk == false && absx > 2 && absy > 2) {
v.scrollleft = 0;
return
}
return
}
caigouobj.value = v;
caigouobj.value.Limitnum = Number(caigouobj.value?.upperLimit)-Number(caigouobj.value.kcsl);
caigouobj.value.Limitnum = Number(caigouobj.value?.upperLimit) - Number(caigouobj.value.kcsl);
caigouobj.value.index = i;
v.zk = x>pageX.value?false:true;
v.scrollleft = v.zk?180 : 0;
}
const solleft =(v:any,i:number)=>{
props.InvoicingList.forEach((item,k)=>{
if(k!=i && item.zk==true){
item.zk = false;
item.scrollleft = 0;
}
})
}
// const scrollLeft = ref(0)
// const scroll = (e)=>{
// scrollLeft.value = e.detail.scrollLeft
// // console.log(e.detail.scrollLeft)
// }
v.zk = x > pageX.value ? false : true;
v.scrollleft = v.zk ? 180 : 0;
}
const solleft = (v : any, i : number) => {
props.InvoicingList.forEach((item, k) => {
if (k != i && item.zk == true) {
item.zk = false;
item.scrollleft = 0;
}
})
}
// const scrollLeft = ref(0)
// const scroll = (e)=>{
// scrollLeft.value = e.detail.scrollLeft
// // console.log(e.detail.scrollLeft)
// }
</script>
<style scoped lang="less">
.carditem {
width: 44.8vw;
height: 14.5vw;
background: #fff;
border: 1px solid #D9DADC;
border-radius: 1.6vw;
position: relative;
margin-bottom: 1.1vw;
display: flex;
overflow: hidden;
justify-content: flex-start;
white-space: nowrap;
.carditem {
width: 47vw;
height: 14.5vw;
background: rgba(245, 246, 248, 1);
border-radius: 1.6vw;
position: relative;
margin-bottom: 1.1vw;
display: flex;
overflow: hidden;
justify-content: flex-start;
white-space: nowrap;
.zkadd{
width: 14vw;
height: 100%;
display: inline-flex;
justify-content: flex-end;
position: absolute;
top: 0;
right:-14vw;
>view {
width: 7vw;
height: 100%;
font-weight: 400;
font-size: 1.5vw;
display: flex;
justify-content: center;
align-items: center;
writing-mode: vertical-rl;
text-orientation: upright;
text-align: center;
&:nth-child(2) {
background: #1083F8;
color: #fff;
view {
width: 3.8vw;
height: 3.8vw;
display: flex;
justify-content: center;
align-items: center;
margin-top: -0.7vw;
}
}
&:nth-child(1) {
background:#dcdee1;
color: #555555;
}
}
}
.zkf{
.zkadd {
width: 14vw;
height: 100%;
display: inline-flex;
justify-content: flex-end;
position: absolute;
top: 0;
right: -14vw;
>view {
width: 7vw;
right:-7vw ;
}
.add{
width: 6vw;
height: 14.5vw;
display: inline-flex;
height: 100%;
font-weight: 400;
font-size: 1.5vw;
display: flex;
justify-content: center;
align-items: center;
position: relative;
top: -2vw;
>view{
width: 4.5vw;
height: 1.8vw;
background: #E3EEF7;
border-radius: 0.9vw;
border: 1px solid rgba(3, 133, 250, 0.34);
font-weight: 400;
font-size: 1.1vw;
color: #1083F8;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0.8vw;
right: 0.8vw;
}
image{
width: 3vw;
height: 3vw;
}
}
.msitem{
width: 25vw;
height: 100%;
padding: 1vw;
display: inline-block;
>view{
margin-top: 0.5vw;
&:nth-child(4){
width: 100%;
height: 3.4vw;
display: flex;
justify-content: space-between;
>view{
width: 33.3%;
height: 100%;
display: flex;
flex-direction: column;
position: relative;
align-items: center;
&:nth-child(1){
width: 30%;
text-align: left;
}
&:nth-child(2){
width: 40%;
text-align: center;
}
&:nth-child(3){
width: 30%;
text-align: right;
}
&:nth-child(2)::after{
content: '';
position: absolute;
right: 0;
width: 100%;
height: 2.2vw;
border-left: 1px solid #C9C9C9;
border-right: 1px solid #C9C9C9;
top: 0.6vw;
}
text{
&:nth-child(1){
font-weight: bold;
font-size: 1.7vw;
color: #555555;
}
&:nth-child(2){
font-weight: 400;
font-size: 1.1vw;
color: #999999;
}
}
}
}
&:nth-child(2),&:nth-child(3){
display: flex;
justify-content: space-between;
text{
font-weight: 400;
font-size: 1.4vw;
color: #777777;
margin-top: 0.35vw;
}
}
&:nth-child(1){
display: flex;
justify-content: space-between;
align-items: center;
height: 2vw;
>view{
width: 19vw;
height: 2vw;
font-weight: bold;
font-size: 1.6vw;
color: #222222;
text-overflow:ellipsis;
overflow: hidden;
white-space: nowrap;
}
text{
width: 6vw;
font-weight: 300;
font-size: 1.4vw;
color: #222222;
}
}
}
}
// .spleft{
// margin-left: -15vw !important;
// }
.speitem{
width: 15vw;
height: 100%;
display: inline-flex;
flex-direction: column;
position: relative;
top: -2vw;
.cardp{
width: 12.5vw;
height: 4vw;
display: flex;
flex-wrap: wrap;
margin: 0 auto;
align-items: center;
view{
width: 5.5vw;
height: 1.8vw;
border-radius: 0.9vw;
border: 1px solid #D2D2D2;
margin: 0.5vw 0 0 0.5vw;
writing-mode: vertical-rl;
text-orientation: upright;
text-align: center;
&:nth-child(2) {
background: #1083F8;
color: #fff;
view {
width: 3.8vw;
height: 3.8vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: 1vw;
color: #555555;
&:nth-child(1),&:nth-child(2){
max-width: 6vw;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 1.8vw;
text-align: center;
}
margin-top: -0.7vw;
}
}
>image{
width: 9vw;
height: 8vw;
margin: 1vw auto 0;
&:nth-child(1) {
background: #dcdee1;
color: #555555;
}
}
}
.crdcroll {
width: 100%;
height: calc(23vh);
.fler {
display: grid;
grid-template-columns: 1fr;
.zkf {
width: 7vw;
right: -7vw;
}
.add {
width: 6vw;
height: 14.5vw;
display: inline-flex;
justify-content: center;
align-items: center;
position: relative;
top: -2vw;
margin-left: -1vw;
>view {
width: 4.5vw;
height: 1.8vw;
background: #E3EEF7;
border-radius: 0.9vw;
border: 1px solid rgba(3, 133, 250, 0.34);
font-weight: 400;
font-size: 1.1vw;
color: #1083F8;
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top: 0.8vw;
right: 0.8vw;
}
image {
width: 3vw;
height: 3vw;
}
}
.qbkyj{
width: 51vw;
height: 36vh;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.7vw 0rpx rgba(182,186,196,0.29);
border-radius: 1.6vw;
position: fixed;
top: 28vh;
right: 24.5vw;
z-index: 103;
padding: 2vw;
}
.titletop{
width: 100%;
height: 3.5vw;
font-weight: bold;
font-size: 1.8vw;
color: #333333;
line-height: 2.5vw;
}
.guodu {
.msitem {
width: 25vw;
height: 100%;
padding: 1vw;
display: inline-block;
>view {
margin-top: 0.5vw;
&:nth-child(4) {
width: 100%;
height: 3.4vw;
display: flex;
justify-content: space-between;
>view {
width: 33.3%;
height: 100%;
display: flex;
flex-direction: column;
position: relative;
align-items: center;
&:nth-child(1) {
width: 30%;
text-align: left;
}
&:nth-child(2) {
width: 40%;
text-align: center;
}
&:nth-child(3) {
width: 30%;
text-align: right;
}
&:nth-child(2)::after {
content: '';
position: absolute;
right: 0;
width: 100%;
height: 2.2vw;
border-left: 1px solid #C9C9C9;
border-right: 1px solid #C9C9C9;
top: 0.6vw;
}
text {
&:nth-child(1) {
font-weight: bold;
font-size: 1.7vw;
color: #555555;
}
&:nth-child(2) {
font-weight: 400;
font-size: 1.1vw;
color: #999999;
}
}
}
}
&:nth-child(2),
&:nth-child(3) {
display: flex;
justify-content: space-between;
text {
font-weight: 400;
font-size: 1.4vw;
color: #777777;
margin-top: 0.35vw;
}
}
&:nth-child(2) {
display: block;
/* inline 元素要改成 block/inline-block */
width: 500rpx;
/* 或 max-width: 80%; 必须有宽度限制 */
white-space: nowrap;
/* 不换行 */
overflow: hidden;
/* 隐藏多余文本 */
text-overflow: ellipsis;
/* 显示省略号 */
}
&:nth-child(1) {
display: flex;
justify-content: space-between;
align-items: center;
height: 2vw;
>view {
width: 19vw;
height: 2vw;
font-weight: bold;
font-size: 1.6vw;
color: #222222;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
text {
width: 6vw;
font-weight: 300;
font-size: 1.4vw;
color: #222222;
}
}
}
}
// .spleft{
// margin-left: -15vw !important;
// }
.speitem {
width: 15vw;
height: 100%;
display: inline-flex;
flex-direction: column;
position: relative;
top: -2vw;
.cardp {
width: 12.5vw;
height: 4vw;
display: flex;
flex-wrap: wrap;
margin: 0 auto;
align-items: center;
view {
width: 5.5vw;
height: 1.8vw;
border-radius: 0.9vw;
border: 1px solid #D2D2D2;
margin: 0.5vw 0 0 0.5vw;
display: flex;
justify-content: center;
align-items: center;
font-weight: 400;
font-size: 1vw;
color: #555555;
&:nth-child(1),
&:nth-child(2) {
max-width: 6vw;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
display: block;
line-height: 1.8vw;
text-align: center;
}
}
}
>image {
width: 9vw;
height: 8vw;
margin: 1vw auto 0;
}
}
}
.crdcroll {
width: 100%;
height: calc(23vh);
.fler {
display: grid;
grid-template-columns: 1fr;
}
}
.qbkyj {
width: 51vw;
height: 39vh;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 0.7vw 0rpx rgba(182, 186, 196, 0.29);
border-radius: 1.6vw;
position: fixed;
top: 28vh;
right: 24.5vw;
z-index: 103;
padding: 3vw;
}
.titletop {
width: 100%;
height: 3.5vw;
font-weight: bold;
font-size: 1.8vw;
color: #333333;
line-height: 2.5vw;
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
</style>
</style>

View File

@ -130,8 +130,12 @@
</view>
</scroll-view>
<defaultr cont="暂无数据" v-if="plsbuy.length==0">
</defaultr>
<view class="all-nomessage" v-if="plsbuy.length==0" >
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
<!-- <defaultr cont="暂无数据" v-if="plsbuy.length==0">
</defaultr> -->
</view>
<view v-show="openselect" class="mengban" @click="openselect=false"></view>
<view class="left-select-more" v-show="openselect" @click="opendata=false">
@ -1262,4 +1266,31 @@
font-size: 34rpx;
color: #999;
}
.all-nomessage{
width: 89vw;
height: 55.2vw;
position: fixed;
top: 6vw;
left: 9.5vw;
// transform: translate(-50%,-50%);
background-color: #fff;
border-radius: 40rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
image{
width: 13.5vw;
height: 13.5vw;
}
view{
margin-top: -40rpx;
width: 100%;
text-align: center;
font-weight: 300;
font-size: 1.4vw;
color: #555555;
}
}
</style>

View File

@ -851,28 +851,29 @@
}
.kcscrol {
width: 87.5vw;
width: 86.8vw;
height: 10.9vw;
white-space: nowrap;
margin-left: 18rpx;
margin-left: 25rpx;
position: relative;
z-index: 99;
// background-color: red;
.yjbox {
display: inline-block;
width: 296rpx;
width: 293rpx;
height: 10.7vw;
background: #F9F9F9;
background-color: #fff;
border-radius: 1.3vw;
margin-right: 18rpx;
border: 1rpx solid #C3C3C3;
position: relative;
.sl {
min-width: 1.2vw;
// min-width: 1.2vw;
height: 1.8vw;
background: #E3EEF7;
border-radius: 0.9vw;
border-radius: 40%;
border: 1px solid rgba(3, 133, 250, 0.34);
font-weight: 400;
font-size: 1.1vw;
@ -880,9 +881,9 @@
text-align: center;
line-height: 1.75vw;
position: absolute;
padding: 0 1.6vw;
padding: 0 0.8vw;
top: 0.8vw;
left: 0.8vw;
right: 0.8vw;
}
.ytj {

View File

@ -947,7 +947,7 @@
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
width: 350rpx;
// background-color: #007CFF;
// font-size: 26rpx;
color: #666666;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
static/index/noorder1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB