hldy_app_mini/pages/NursingNew/component/pleasetake/component/requestform.vue

753 lines
17 KiB
Vue

<template>
<view class="buttons-father">
<view class="ipt">
<input type="text" placeholder="物料名称/物料简拼" />
</view>
<view class="scr">
检索
</view>
<view class="shx">
<image src="/static/index/requestform/shaixuan.png" mode="aspectFill"></image>
<view class="shx-font">
筛选
</view>
</view>
<view class="shx">
<image src="/static/index/requestform/chongzhi.png" mode="aspectFill"></image>
<view class="shx-font">
重置
</view>
</view>
</view>
<view class="other-contain">
<view class="other-contain-left">
<view class="left-selecttype">
<view :class="selectType===index?`selecttype-target`: `selecttype`"
v-for="(item,index) in tagsarray" @click="changetype(index)">
{{ item }}
</view>
<view class="heng-blue" :style="{ left: `${selectType === 0 ? 11.5 : 12 + selectType * 18.5}%` }" ></view>
</view>
<scroll-view scroll-y="true" scroll-with-animation class="left-menu-scroll" :scroll-top="leftscrolltop"
@scrolltolower="plsbuytolower" :lower-threshold="400">
<view style="height: 1%;"></view>
<view class="pls-card" v-for="(v,i) in plsbuy" :key='i' @click="clickLeftMenu(i,v)" :style="{
borderColor: i === lefttarget ? '' : 'transparent',
background: i === lefttarget ? '#fff' : 'rgba(255,255,255,0.6)'
}">
<view
style="background: #ff5757;position: absolute;width: 1.3vw;height: 1.3vw;border-radius: 50%;right: -0.5vw;top: -0.2vw;"
v-if="v.izNew=='Y'">
</view>
<view class="pls-card-title">
<view class="middle-title-spec">
请领单号
</view>
<view class="title-left">
{{ v.cgdNo }}
</view>
</view>
<view class="pls-card-middle">
<view class="middle-heng"></view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ v.qgDate.replace(/-/g, '.') }}
</view>
<view class="middle-heng-father">
<image class="middle-ball-img" src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
<view>
待出库
</view>
<view style="font-size: 25rpx;">
{{ "[ " + v.qgBy + " ]" }}
</view>
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title" :style=" v?.cgdType=='9' ?{color:`#FF5757`}:{}">
{{ v?.cgdType=='9' ?v.zfTime?.slice(0,10).replace(/-/g, '.'):v.jhTime?.slice(0,10).replace(/-/g, '.') }}
</view>
<view class="middle-heng-father">
<view class="middle-ball" style="background-color: #1083F8;"
:style=" v?.cgdType=='9' ?{backgroundColor:`#FF5757`}:{}"
v-if="Number(v.status)<1"></view>
<image class="middle-ball-img" v-else src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
<view :style=" v?.cgdType=='9' ?{color:`#FF5757`}:{}">
{{ v?.cgdType=='9' ?`已作废`:`已出库` }}
</view>
<view style="font-size: 25rpx;" v-if="v?.jhBy || v?.zfBy"
:style=" v?.cgdType=='9' ?{color:`#FF5757`}:{}">
{{ "[ " + (v?.cgdType=='9' ?v?.zfBy:v?.jhBy )+ " ]" }}
</view>
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ Number(v.status)>=2 ? v.wjTime?.slice(0,10).replace(/-/g, '.') :""}}
</view>
<view class="middle-heng-father">
<!-- <view class="middle-ball" :style="{backgroundColor: `#1083F8`}"></view> -->
<view class="middle-ball"
:style="{backgroundColor: Number(v.status)==1? ``:`#E5E5E5`}"
v-if="Number(v.status)!=2"></view>
<image class="middle-ball-img" v-else src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
<view v-if="v?.cgdType!='9'">
已收货
</view>
<view style="font-size: 25rpx;" v-if=" v.wjBy">
{{ "[ " + v.wjBy + " ]" }}
</view>
</view>
</view>
</view>
<view class="pls-card-end">
<view class="end-left">
<image class="end-left-img" src="/static/index/requestform/gongyingshang.png" />
<view class="end-left-font">
{{ v.gysId_dictText }}
</view>
</view>
<view :class="v?.cgdType=='9' ?`tag-fail`:`tag-success`">
{{ v?.cgdType=='9' ?`已作废`:tagesstatues[Number(v.status)] }}
</view>
</view>
</view>
</scroll-view>
</view>
<view class="other-contain-right">
<scroll-view scroll-y="true" scroll-with-animation class="right-contain">
<view class="right-ones">
<view class="right-one" v-for="(item,index) in nottrue" :key="index" >
<view class="right-one-left">
<image class="left-image" :src=" '/static/zhiniaoku.png'" mode="aspectFill"></image>
<view class="left-tages" style="margin-top: -15rpx;">
耗材用品
</view>
<view class="left-tages">
支架
</view>
</view>
<view class="right-one-right">
<view class="right-title">
纸尿裤-拉拉裤...
</view>
<view class="right-setting">
规格型号
</view>
<view class="right-mm">
800mm*680mm
</view>
<view class="right-down">
<view class="">
<view class="right-first-num">
20
</view>
<view class="right-first-type">
请领数量
</view>
</view>
<view class="right-shu"></view>
<view class="">
<view class="right-first-num" style="font-weight: 500;">
</view>
<view class="right-first-type">
请领单位
</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, defineProps, watch, reactive } from 'vue';
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import { queryCgdList } from '@/pages/Warehouse/api/lunpan.js'
const tagsarray = ref(["全部", "待出库", "已出库", "已收货 ", "已作废"])
const nottrue = Array(10).fill(null)
onMounted(() => {
})
const lanjie = ref(false);
const selectType = ref(0)
const changetype = (index : number) => {
selectType.value = index
}
const tagesstatues = ["待出库", "已出库", '已收货'];
const plsbuy = ref([])
const alltotal = ref(0);
const lefttarget = ref(0)
const plzinfo = reactive({
pageNo: 1,
pageSize: 10,
canpull: true,
cgdParamInfo: "",
suppliers: "",
// cgdType: "0,1",
startTime: "",
endTime: "",
cgBy: "",
// nuId: uni.getStorageSync('nuId')
})
const mobanplzinfo = {
pageNo: 1,
pageSize: 10,
canpull: true,
cgdParamInfo: "",
suppliers: "",
// cgdType: "0,1",
startTime: "",
endTime: "",
cgBy: "",
// nuId: uni.getStorageSync('nuId')
}
const nomessageshow = ref(false);
const leftscrolltop = ref(0)
const firstgetqueryCgdList = () => {
queryCgdList(plzinfo).then((res : any) => {
// console.log("加载", res.result.records)
plsbuy.value.push(...res.result.records)
alltotal.value = res.result.total
if (!res.result.total) {
// console.log("没数据了!!!")
nomessageshow.value = true;
}
// console.log("请购单数据呢???", res)
// if (res.result.records.length) {
// form.cgdId = plsbuy.value[0].id
// queryInvo(0);
// }
if (res.result.records.length < plzinfo.pageSize) {
plzinfo.canpull = false;
}
})
}
const setout = ref(true)
let times = null
const plsbuytolower = () => {
if (!setout.value) { return }
plzinfo.pageNo++;
getqueryCgdList()
setout.value = false
times = setTimeout(() => {
setout.value = true
}, 500)
}
//获得采购单列表
const getqueryCgdList = () => {
if (!plzinfo.canpull) return
queryCgdList(plzinfo).then((res : any) => {
plsbuy.value.push(...res.result.records)
alltotal.value = res.result.total
if (res.result.records.length < plzinfo.pageSize) {
plzinfo.canpull = false;
}
})
}
const clickLeftMenu = (index : any, item : any) => {
let num = Math.ceil((index + 1))
leftscrolltop.value = (num - 2) * 178.5;
lefttarget.value = index;
// form.cgdId = plsbuy.value[index].id
// form.pageNo = 1
// form.canpull = true;
// // console.log("!!!!",form)
// queryCgdInfoList(form).then(res => {
// InvoicingList.value = []
// // console.log("数据呢", res.result.records)
// InvoicingList.value.push(...res.result.records);
// if (form.pageNo) {
// clickmiddle(0);
// }
// })
// if (item.izNew == 'Y') {
// item.izNew = 'N'
// editIzNew({ id: item.id })
// }
}
onLoad(() => {
firstgetqueryCgdList();
// serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
// getSelectList();
})
</script>
<style scoped lang="less">
.right-container-tem {
display: flex;
.right-container-tem-text {
font-size: 30rpx;
margin-right: 20rpx;
}
.right-container-tem-img {
width: 38rpx;
height: 38rpx;
}
}
.buttons-father {
width: 100%;
height: 90rpx;
// background-color: red;
display: flex;
.ipt {
display: flex;
align-items: center;
width: 16vw;
background: #E2E4E9;
border-radius: 1.65vw;
height: 3.3vw;
image {
width: 2.2vw;
height: 2.2vw;
margin: 0 0.5vw;
}
input {
width: 18vw;
height: 3.5vw;
font-size: 1.4vw;
padding-left: 1.6vw;
}
}
.scr {
border-radius: 1.65vw;
font-weight: 400;
font-size: 1.4vw;
display: flex;
justify-content: center;
align-items: center;
width: 6.5vw;
height: 3.3vw;
margin: 0 0 0 0.7vw;
background: rgba(255, 255, 255, 0.6);
border: 1px solid #D9DADC;
color: #555555;
box-shadow: 0.5rpx 3rpx 3rpx #dadee1;
}
.shx {
width: 6.5vw;
height: 3.3vw;
background: rgba(255, 255, 255, 0.6);
border-radius: 1.65vw;
border: 1rpx solid #D9DADC;
font-weight: 400;
font-size: 1.2vw;
color: #222;
display: flex;
justify-content: center;
align-items: center;
box-shadow: 0.5rpx 3rpx 3rpx #dadee1;
margin: 0 0 0 0.5vw;
color: #555555;
image {
width: 1.8vw;
height: 1.8vw;
margin: 0 0.2vw 0 0;
}
.shx-font {
margin-top: 3rpx;
// margin-left: -5rpx;
}
}
}
.other-contain {
width: 100%;
height: 1050rpx;
display: flex;
.other-contain-left {
width: 35%;
height: 100%;
.left-menu-scroll {
margin-top: 3%;
height: 94%;
width: 100%;
// position: relative;
// overflow: auto;
// background-color: red;
.pls-card {
width: 98%;
height: 25.3vh;
border: #0f9fff 3rpx solid;
background-color: #fff;
border-radius: 40rpx;
margin-bottom: 1.5vh;
// margin: 1vh 0;
padding: 0 30rpx;
position: relative;
.pls-card-title {
height: 5.5vh;
width: 105%;
display: flex;
justify-content: space-between;
align-items: flex-end;
padding-left: 10rpx;
padding-right: 35rpx;
.middle-title-spec {
color: #888888;
font-size: 29rpx;
}
.title-left {
font-weight: 600;
font-size: 34rpx;
// color: #888888;
}
.title-right {
display: flex;
align-items: flex-end;
font-size: 30rpx;
position: relative;
.title-right-big {
font-weight: 600;
font-size: 40rpx;
margin-right: 35rpx;
color: #555555;
}
.title-right-img {
position: absolute;
right: -10rpx;
bottom: 6rpx;
width: 40rpx;
height: 40rpx;
}
}
}
.pls-card-middle {
width: 100%;
height: 11vh;
margin-top: 1.5vh;
display: flex;
position: relative;
.middle-heng {
position: absolute;
left: 4%;
top: 35%;
transform: translateY(-35%);
width: 92%;
height: 2px;
/* 虚线粗细 */
background-image: repeating-linear-gradient(to right,
#E5E5E5 0,
#E5E5E5 6px,
transparent 6px,
transparent 10px);
}
.pls-card-middle-one {
width: 33.3%;
height: 100%;
// background-color: yellow;
.middle-title {
width: 100%;
height: 2.1vh;
// background-color: #007CFF;
color: #888888;
text-align: center;
font-size: 25rpx;
overflow: hidden;
}
.middle-heng-father {
width: 100%;
height: 4vh;
position: relative;
.middle-ball-img {
width: 35rpx;
height: 35rpx;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.middle-ball {
width: 20rpx;
height: 20rpx;
background-color: #1083F8;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
border-radius: 50%;
}
}
.end-font {
width: 100%;
height: 6vh;
text-align: center;
color: #666666;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.pls-card-end {
width: 100%;
height: 6vh;
display: flex;
justify-content: space-between;
position: relative;
padding-left: 15rpx;
margin-top: 10rpx;
.end-left {
height: 100%;
display: flex;
align-items: center;
.end-left-img {
width: 35rpx;
height: 35rpx;
}
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
// background-color: #007CFF;
// font-size: 26rpx;
color: #666666;
margin-left: 3rpx;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.tag-fail {
width: 120rpx;
height: 50rpx;
border-radius: 30rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: #FDEBEC;
color: #FF5757;
border: 1rpx solid #FF5757;
position: absolute;
right: 0rpx;
bottom: 20rpx;
}
.tag-success {
width: 120rpx;
height: 50rpx;
border-radius: 30rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: #ECF6FF;
color: #1083F8;
border: 1rpx solid #1083F8;
position: absolute;
right: 0rpx;
bottom: 20rpx;
}
}
}
}
.left-selecttype {
width: 98%;
height: 80rpx;
border-radius: 40rpx;
background-color: #FFFFFF;
display: flex;
padding-right: 30rpx;
padding-left: 15rpx;
position: relative;
.heng-blue {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
width: 25rpx;
height: 8rpx;
border-radius: 10rpx;
background-color: #1083F8;
transition: 0.3s all ease;
}
.selecttype {
width: 20%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #999999;
font-size: 31rpx;
position: relative;
}
.selecttype-target {
width: 20%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #222222;
font-size: 31rpx;
font-weight: 600;
position: relative;
}
}
}
.other-contain-right {
width: 64%;
margin-left: 1%;
height: 103.5%;
.right-contain{
width: 100%;
height: 100%;
display: flex;
flex-wrap: wrap;
.right-ones{
display: flex;
width: 100%;
flex-wrap: wrap;
.right-one{
width: 570rpx;
height: 261rpx;
margin-right: 20rpx;
margin-bottom: 15rpx;
background-color: #fff;
border-radius: 30rpx;
display: flex;
.right-one-left{
height: 100%;
width: 40%;
display: flex;
flex-direction: column;
align-items: center;
.left-image{
width: 170rpx;
height: 170rpx;
// margin-top: 5rpx;
}
.left-tages{
width: 130rpx;
height: 43rpx;
border-radius: 30rpx;
display: flex;
justify-content: center;
align-items: center;
color: #555555;
border: 1rpx solid #D2D2D2;
margin-top: 5rpx;
font-size: 23rpx;
}
}
.right-one-right{
height: 100%;
width: 60%;
.right-title{
font-size: 34rpx;
font-weight: 600;
margin-top: 25rpx;
color: #222222;
}
.right-setting{
color: #888888;
margin-top: 5rpx;
font-size: 25rpx;
}
.right-mm{
color: #555555;
font-size: 28rpx;
}
.right-down{
display: flex;
margin-top: 15rpx;
.right-first-num{
font-size: 35rpx;
color: #555555;
font-weight: 600;
}
.right-first-type{
color: #888888;
font-size: 23rpx;
}
.right-shu{
width: 2rpx;
height: 50rpx;
background-color: #C9C9C9;
margin: 0 40rpx;
margin-top: 10rpx;
}
}
}
}
}
}
}
}
</style>