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

1293 lines
30 KiB
Vue
Raw Normal View History

2025-11-26 13:26:22 +08:00
<template>
2025-12-03 14:14:37 +08:00
<view class="buttons-father" :style="transition?{opacity: `1`}:{opacity: `0`}" v-show="isShow">
2026-02-06 17:24:51 +08:00
<view class="title-input">
2025-12-02 16:13:23 +08:00
<input type="text" v-model="plzinfo.searchContent" placeholder="请领单号" @confirm="clickconfirm" />
2026-02-06 17:24:51 +08:00
<image src="/static/index/procurement/x.png" mode="aspectFill" v-if="plzinfo.searchContent"
@click="plzinfo.searchContent=``"></image>
2025-12-02 16:13:23 +08:00
</view>
2026-02-06 17:24:51 +08:00
<view class="title-ball" @click="clickconfirm();handleClick()">
<image class="title-ball-img" :src="imgSrc" mode="aspectFill"></image>
2025-12-02 16:13:23 +08:00
</view>
2026-02-06 17:24:51 +08:00
<view class="title-ball" @click="chongzhi();handleClick1()">
<image class="title-ball-img" :src="imgSrc1" mode="aspectFill"></image>
</view>
<view class="center-font">
<image src="/static/index/purchaseorder/company.png" mode="aspectFill" class="center-font-imge"></image>
{{ uni.getStorageSync('nuName')}}
2025-12-02 16:13:23 +08:00
</view>
2026-02-06 17:24:51 +08:00
2025-12-03 14:14:37 +08:00
<view class="right-button" @click="badshow=true" v-show="plsbuy[lefttarget]?.status==`1`">
<image src="/static/index/warehouse/procurement/picking/bebad.png" />
<view>
作废
</view>
</view>
<view class="right-button" @click="shouhuoshow=true" v-show="plsbuy[lefttarget]?.status==`4`">
<image src="/static/index/warehouse/procurement/picking/shouhuo.png" />
<view>
收货
</view>
</view>
2026-03-02 17:24:43 +08:00
<!-- <nomessage cont="暂无数据" :show="nomessageshow" /> -->
<view class="bignomessage" v-if="nomessageshow">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
2025-12-02 16:13:23 +08:00
</view>
2025-12-03 14:14:37 +08:00
<tanchuang :show="badshow" font="确定要作废这个请领单吗" @back="badshow=false;" @right="zuofei"> </tanchuang>
<tanchuang :show="shouhuoshow" font="这个请领单确定要收货吗" @back="shouhuoshow=false;" @right="shouhuo"> </tanchuang>
<view class="other-contain" :style="transition?{opacity: `1`}:{opacity: `0`}" v-show="isShow && !nomessageshow">
2026-02-06 17:24:51 +08:00
2025-12-02 16:13:23 +08:00
<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 }}
2025-11-26 13:26:22 +08:00
</view>
2026-02-06 17:24:51 +08:00
<view class="heng-blue" :style="{ left: `${ 11.6 + selectType * 18.5}%` }">
2025-11-26 13:26:22 +08:00
</view>
</view>
2025-12-02 16:13:23 +08:00
<scroll-view scroll-y="true" scroll-with-animation class="left-menu-scroll" :scroll-top="leftscrolltop"
2026-03-18 08:57:28 +08:00
@scrolltolower="plsbuytolower" lower-threshold="300">
2026-02-06 17:24:51 +08:00
<!-- <view style="height: 1%;"></view> -->
2026-02-10 17:27:00 +08:00
<view class="haventmessage" v-if="!plsbuy.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
2025-12-02 16:13:23 +08:00
<view class="pls-card" v-for="(v,i) in plsbuy" :key='i' @click="clickLeftMenu(i,v)" :style="{
2026-02-10 17:27:00 +08:00
borderColor: i === lefttarget ? '#0f9fff' : '',
2026-02-06 17:24:51 +08:00
// background: i === lefttarget ? '#fff' : 'rgba(255,255,255,0.6)'
2025-11-26 17:17:33 +08:00
}">
2025-12-02 16:13:23 +08:00
<view
2026-02-06 17:24:51 +08:00
style="background: #ff5757;position: absolute;width: 1.3vw;height: 1.3vw;border-radius: 50%;right: 0vw;top: 0vw;"
2025-12-03 14:14:37 +08:00
v-if="v.izYgRead=='N'">
2025-12-02 16:13:23 +08:00
</view>
<view class="pls-card-title">
<view class="middle-title-spec">
请领单号
</view>
<view class="title-left">
{{ v.qldNo }}
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
</view>
<view class="pls-card-middle">
<view class="middle-heng"></view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ v.tjTime.replace(/-/g, '.') }}
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view class="middle-heng-father">
<image class="middle-ball-img" src="/static/index/requestform/isok.png" />
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view class="end-font">
2025-11-26 17:17:33 +08:00
2025-12-02 16:13:23 +08:00
<view>
待出库
</view>
<view style="font-size: 25rpx;">
{{ "[ " + v.tjByName + " ]" }}
2025-11-26 17:17:33 +08:00
</view>
</view>
2025-12-02 16:13:23 +08:00
</view>
<view class="pls-card-middle-one">
<view class="middle-title"
:style=" v?.status === '2' || v?.status === '3' ?{color:`#FF5757`}:{}">
{{
Number(v.status)>1?
v?.status === '2'
? v.zfTime?.slice(0,10).replace(/-/g, '.')
: v?.status === '3'
? v.htTime?.slice(0,10).replace(/-/g, '.')
: v.ckTime?.slice(0,10).replace(/-/g, '.')
: ""
}}
2025-11-27 13:39:56 +08:00
2025-12-02 16:13:23 +08:00
</view>
<view class="middle-heng-father">
2025-12-12 17:02:33 +08:00
<image class="middle-ball-img" style="width: 32rpx;height: 32rpx;"
v-if="v?.status === '2' || v?.status === '3'"
src="/static/index/requestform/iserror.png" />
<view class="middle-ball" v-else-if="v?.status === '1'">
2025-12-09 15:21:01 +08:00
</view>
2025-12-02 16:13:23 +08:00
<image class="middle-ball-img" v-else src="/static/index/requestform/isok.png" />
</view>
<view class="end-font">
2025-11-26 17:17:33 +08:00
2025-12-02 16:13:23 +08:00
<view :style="v?.status === '2' || v?.status === '3' ?{color:`#FF5757`}:{}">
{{
v?.status === '2'
? `已作废`
: v?.status === '3'
? `已回退`
: `已出库`
}}
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view style="font-size: 25rpx;" v-if="Number(v.status)>1"
:style=" v?.status === '2' || v?.status === '3' ?{color:`#FF5757`}:{}">
{{ "[ " + (v?.status === '2'
? v?.zfByName
: v?.status === '3'
? v?.htByName
: v?.ckByName)+ " ]" }}
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
</view>
</view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ Number(v.status)==5 ? v.shTime?.slice(0,10).replace(/-/g, '.') :""}}
</view>
2025-11-26 17:17:33 +08:00
2025-12-02 16:13:23 +08:00
<view class="middle-heng-father">
2025-11-26 17:17:33 +08:00
2025-12-02 16:13:23 +08:00
<!-- <view class="middle-ball" :style="{backgroundColor: `#1083F8`}"></view> -->
2025-12-09 15:09:33 +08:00
<view class="middle-ball" :style="Number(v.status)==4?{}:{backgroundColor: `#E5E5E5`}"
2025-12-02 16:13:23 +08:00
v-if="Number(v.status)!=5"></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'">
已收货
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view style="font-size: 25rpx;" v-if="Number(v.status)==5">
{{ "[ " + v.shByName + " ]" }}
2025-11-26 17:17:33 +08:00
</view>
</view>
</view>
2025-12-02 16:13:23 +08:00
</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.nuName }}
2025-11-26 17:17:33 +08:00
</view>
</view>
2025-12-02 16:13:23 +08:00
<view :class="v?.status === '2' || v?.status === '3' ?`tag-fail`:`tag-success`">
{{ v.statusText }}
</view>
2025-11-26 17:17:33 +08:00
</view>
2025-12-02 16:13:23 +08:00
</view>
2026-02-10 17:27:00 +08:00
<view class="pls-card center" v-if="plsbuy.length===1">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="pls-card center" v-if="plsbuy.length===1">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="pls-card center" v-if="plsbuy.length===2">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
2025-12-02 16:13:23 +08:00
</scroll-view>
</view>
<view class="other-contain-right">
<scroll-view scroll-y="true" scroll-with-animation class="right-contain">
<view class="right-ones">
2026-02-27 17:02:36 +08:00
<view class="right-one" v-for="(item,index) in rightarray" :key="index">
2025-12-02 16:13:23 +08:00
<view class="right-one-left">
2026-02-27 17:02:36 +08:00
<view class="bgimg">
2025-12-19 16:08:58 +08:00
<image class="left-image"
2026-02-27 17:02:36 +08:00
:src="item.materialInfo?.materialImg?serverUrl+item.materialInfo?.materialImg:'/static/index/procurement/k.png'"
2025-12-19 16:08:58 +08:00
mode="aspectFill"></image>
</view>
2026-02-06 17:24:51 +08:00
<view class="left-tages">
2025-12-10 16:29:41 +08:00
{{ item.materialInfo.categoryName}}
2025-11-27 16:21:31 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view class="left-tages">
2025-12-10 16:29:41 +08:00
{{ item.materialInfo.typeName}}
2026-02-06 17:24:51 +08:00
</view>
<view class="left-tages" v-if="item.materialInfo.medicationName">
2026-02-27 17:02:36 +08:00
{{ item.materialInfo.medicationName}}
2025-12-02 16:13:23 +08:00
</view>
</view>
<view class="right-one-right">
<view class="right-title">
2025-12-09 15:21:01 +08:00
{{ item.materialInfo.materialName }}
2025-12-02 16:13:23 +08:00
</view>
2026-02-27 17:02:36 +08:00
<view style="display: flex;margin-top: 10rpx;">
<view class="right-setting">
规格编号
</view>
<view class="right-mm">
{{ item.materialInfo.materialNo }}
</view>
2025-12-02 16:13:23 +08:00
</view>
2026-02-27 17:02:36 +08:00
<view style="display: flex;margin-top: 10rpx;">
<view class="right-setting">
规格型号
</view>
<view class="right-mm">
{{ item.materialInfo.specificationModel }}
</view>
2025-12-02 16:13:23 +08:00
</view>
2026-02-27 17:02:36 +08:00
2025-12-02 16:13:23 +08:00
<view class="right-down">
<view class="">
<view class="right-first-num">
{{ item.qlNum }}
</view>
<view class="right-first-type">
请领数量
</view>
2025-11-27 16:21:31 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view class="right-shu"></view>
<view class="">
<view class="right-first-num" style="font-weight: 500;">
2025-12-09 15:21:01 +08:00
{{ item.materialInfo.materialUnits }}
2025-11-27 16:21:31 +08:00
</view>
2025-12-02 16:13:23 +08:00
<view class="right-first-type">
请领单位
2025-11-27 16:21:31 +08:00
</view>
</view>
</view>
2025-11-27 13:39:56 +08:00
</view>
2025-11-26 13:26:22 +08:00
2025-12-02 16:13:23 +08:00
</view>
2026-02-27 17:02:36 +08:00
<view class="right-one-white center" v-if="rightarray.length<2&&rightarray.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="rightarray.length<3&&rightarray.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="rightarray.length<4&&rightarray.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="rightarray.length<5&&rightarray.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
<view class="right-one-white center" v-if="rightarray.length<6&&rightarray.length">
<view class="que">
<image src="/static/index/procurement/que.png" mode="aspectFill"></image>
<view>暂无数据</view>
</view>
</view>
2025-12-02 16:13:23 +08:00
</view>
2025-12-03 14:14:37 +08:00
<defaultr cont="暂无数据" v-if="rightarray.length==0 && rightdonghua"
style="width: 30%;height: 30%;position: absolute;">
</defaultr>
2025-12-02 16:13:23 +08:00
</scroll-view>
</view>
2025-12-12 17:02:33 +08:00
<errorshow :show="openerror" :font="errormessage" @close="openerror=false" />
2025-12-02 16:13:23 +08:00
</view>
2025-11-26 13:26:22 +08:00
</template>
<script setup lang="ts">
2025-12-02 16:13:23 +08:00
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
2025-11-26 17:17:33 +08:00
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
2025-12-12 17:02:33 +08:00
import { queryQld, queryQldWlInfo, transRead, cancellation, confirmReceipt } from '../api/api.js'
2025-12-03 14:14:37 +08:00
import nomessage from '../common/nomessage.vue'
import defaultr from '../common/default.vue'
const props = defineProps({
isShow: {
2025-12-10 16:29:41 +08:00
type: Boolean,
required: true,
2025-12-03 14:14:37 +08:00
},
});
2025-11-26 17:17:33 +08:00
const tagsarray = ref(["全部", "待出库", "已出库", "已收货 ", "已作废"])
2025-12-02 16:13:23 +08:00
// const nottrue = Array(10).fill(null)
2025-12-03 14:14:37 +08:00
// 使用watch监听isShow变化
const transition = ref(false);
watch(
() => props.isShow,
(newVal, oldVal) => {
// 当旧值为false新值为true时延迟0.2秒调用方法
2025-12-10 17:30:16 +08:00
if (!oldVal && newVal) {
2025-12-12 17:02:33 +08:00
cannomessage.value = true
2025-12-03 14:14:37 +08:00
transition.value = false;
2025-12-10 16:29:41 +08:00
chongzhi()
2025-12-10 17:30:16 +08:00
// firstgetqueryCgdList();
2025-12-03 14:14:37 +08:00
setTimeout(() => {
transition.value = true;
}, 50)
} else {
transition.value = false;
}
2025-11-26 17:17:33 +08:00
2025-12-03 14:14:37 +08:00
}
)
2025-11-26 13:26:22 +08:00
onMounted(() => {
2025-12-02 16:13:23 +08:00
2025-11-26 13:26:22 +08:00
})
const lanjie = ref(false);
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
const selectType = ref(0)
2025-11-26 17:17:33 +08:00
const changetype = (index : number) => {
2025-12-03 14:14:37 +08:00
if ((selectType.value == index) && index) {
return
}
2026-02-06 17:24:51 +08:00
leftscrolltop.value = 0.01
2025-12-03 14:14:37 +08:00
setTimeout(() => {
leftscrolltop.value = 0
}, 50)
lefttarget.value = 0
2025-11-26 13:26:22 +08:00
selectType.value = index
2025-12-02 16:13:23 +08:00
plzinfo.pageNo = 1;
plzinfo.canpull = true;
2025-12-12 17:02:33 +08:00
2025-12-02 16:13:23 +08:00
switch (index) {
case 0:
plzinfo.status = `1,2,4,5`
break
case 1:
plzinfo.status = `1`
break
case 2:
plzinfo.status = `4`
break
case 3:
plzinfo.status = `5`
break
case 4:
plzinfo.status = `2`
break
}
firstgetqueryCgdList()
}
const clickconfirm = () => {
if (chongzhiLock) return
chongzhiLock = true
plzinfo.pageNo = 1;
plzinfo.canpull = true;
2025-12-03 14:14:37 +08:00
lefttarget.value = 0
2025-12-02 16:13:23 +08:00
firstgetqueryCgdList()
2026-02-06 17:24:51 +08:00
leftscrolltop.value = 0.01
2025-12-03 14:14:37 +08:00
setTimeout(() => {
leftscrolltop.value = 0
}, 10)
2025-12-02 16:13:23 +08:00
setTimeout(() => chongzhiLock = false, 500)
}
let chongzhiLock = false
const chongzhi = () => {
if (chongzhiLock) return
chongzhiLock = true
plzinfo.searchContent = ""
changetype(0)
2025-12-10 17:30:16 +08:00
// firstgetqueryCgdList()
2025-12-02 16:13:23 +08:00
setTimeout(() => chongzhiLock = false, 500)
2025-11-26 13:26:22 +08:00
}
2025-11-26 17:17:33 +08:00
const plsbuy = ref([])
const alltotal = ref(0);
const lefttarget = ref(0)
const plzinfo = reactive({
pageNo: 1,
2026-03-18 08:57:28 +08:00
pageSize: 30,
2025-11-26 17:17:33 +08:00
canpull: true,
2025-12-02 16:13:23 +08:00
searchContent: "",
status: "1,2,4,5",
2025-12-26 16:07:43 +08:00
elderId: uni.getStorageSync('elderId'),
2025-12-02 16:13:23 +08:00
nuId: uni.getStorageSync('nuId')
2025-11-26 17:17:33 +08:00
})
2025-12-02 16:13:23 +08:00
2025-11-26 17:17:33 +08:00
const nomessageshow = ref(false);
const leftscrolltop = ref(0)
2025-12-02 16:13:23 +08:00
const rightarray = ref([]);
2025-12-03 14:14:37 +08:00
// 检测锁
const cannomessage = ref(true)
const rightdonghua = ref(true);
2025-11-26 17:17:33 +08:00
const firstgetqueryCgdList = () => {
2025-12-02 16:13:23 +08:00
queryQld(plzinfo).then((res : any) => {
2025-12-03 14:14:37 +08:00
transition.value = true;
if (((res.message === "缺少参数") || (!res.result?.total)) && cannomessage.value) {
2025-11-26 17:17:33 +08:00
nomessageshow.value = true;
2025-12-03 14:14:37 +08:00
return
2025-11-26 17:17:33 +08:00
}
2025-12-12 17:02:33 +08:00
2025-12-03 14:14:37 +08:00
cannomessage.value = false
plsbuy.value = []
2026-02-10 17:27:00 +08:00
// console.log("6666",res.result.records)
2025-12-03 14:14:37 +08:00
plsbuy.value.push(...res.result.records)
alltotal.value = res.result.total
2025-12-02 16:13:23 +08:00
if (res.result.records.length) {
2025-12-03 14:14:37 +08:00
rightdonghua.value = false;
2025-12-02 16:13:23 +08:00
queryQldWlInfo({ qldNo: res.result.records[0].qldNo }).then((element : any) => {
2025-12-03 14:14:37 +08:00
rightarray.value = []
2025-12-02 16:13:23 +08:00
rightarray.value.push(...element.result)
2025-12-03 14:14:37 +08:00
rightdonghua.value = true;
2025-12-02 16:13:23 +08:00
})
2025-12-12 17:02:33 +08:00
} else {
2025-12-11 17:30:09 +08:00
rightarray.value = []
2025-12-02 16:13:23 +08:00
}
2025-11-26 17:17:33 +08:00
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
2025-12-02 16:13:23 +08:00
queryQld(plzinfo).then((res : any) => {
2025-11-26 17:17:33 +08:00
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))
2026-02-06 17:24:51 +08:00
leftscrolltop.value = (num - 2) * 188;
2025-11-26 17:17:33 +08:00
lefttarget.value = index;
2025-12-03 14:14:37 +08:00
rightdonghua.value = false;
2025-12-02 16:13:23 +08:00
queryQldWlInfo({ qldNo: plsbuy.value[index].qldNo }).then((element : any) => {
2025-12-03 14:14:37 +08:00
rightarray.value = [];
2025-12-02 16:13:23 +08:00
rightarray.value.push(...element.result)
2025-12-03 14:14:37 +08:00
rightdonghua.value = true;
2025-12-02 16:13:23 +08:00
})
2025-11-26 17:17:33 +08:00
// form.cgdId = plsbuy.value[index].id
// form.pageNo = 1
// form.canpull = true;
// queryCgdInfoList(form).then(res => {
// InvoicingList.value = []
// InvoicingList.value.push(...res.result.records);
// if (form.pageNo) {
// clickmiddle(0);
// }
// })
2025-12-03 14:14:37 +08:00
if (item.izYgRead == 'N') {
let param = {
status: `yg`,
qldNo: plsbuy.value[index].qldNo,
}
transRead(param).then((res : any) => {
if (res.success) {
item.izYgRead = 'Y'
}
})
}
2025-11-26 17:17:33 +08:00
}
2025-12-02 16:13:23 +08:00
const serverUrl = ref("")
2025-11-26 17:17:33 +08:00
onLoad(() => {
2025-12-12 17:02:33 +08:00
2025-12-02 16:13:23 +08:00
serverUrl.value = uni.getStorageSync('serverUrl') + '/sys/common/static/';
2025-11-26 17:17:33 +08:00
// getSelectList();
})
2025-12-12 17:02:33 +08:00
const openerror = ref(false);
const errormessage = ref("")
2025-12-03 14:14:37 +08:00
const badshow = ref(false)
const zuofei = () => {
2025-12-15 17:09:12 +08:00
let data = {
qldNo: plsbuy.value[lefttarget.value].qldNo,
nuId: uni.getStorageSync('nuId'),
2025-12-26 16:07:43 +08:00
elderId: uni.getStorageSync('elderId'),
2025-12-15 17:09:12 +08:00
nuName: uni.getStorageSync('nuName'),
elderName: uni.getStorageSync(`NUall`).elderInfo.name
2025-12-03 14:14:37 +08:00
2025-12-15 17:09:12 +08:00
}
cancellation(data).then((res : any) => {
2025-12-03 14:14:37 +08:00
badshow.value = false
2025-12-12 17:02:33 +08:00
if (res.success) {
2025-12-04 08:36:59 +08:00
plsbuy.value[lefttarget.value] = res.result.result
2025-12-12 17:02:33 +08:00
} else {
2025-12-03 14:14:37 +08:00
plzinfo.pageNo = 1;
plzinfo.canpull = true;
2026-02-06 17:24:51 +08:00
leftscrolltop.value = 0.01
2025-12-03 14:14:37 +08:00
setTimeout(() => {
leftscrolltop.value = 0
}, 50)
lefttarget.value = 0
firstgetqueryCgdList();
}
2025-12-12 17:02:33 +08:00
2025-12-03 14:14:37 +08:00
setTimeout(() => {
2025-12-12 17:02:33 +08:00
if (res.success) {
uni.showToast({
title: res.result.message,
2025-12-30 08:42:53 +08:00
icon: 'success', // 'none' 表示不带图标
2025-12-12 17:02:33 +08:00
duration: 3000
})
} else {
openerror.value = true;
errormessage.value = res.message
}
2025-12-03 14:14:37 +08:00
}, 300)
})
}
const shouhuoshow = ref(false)
const shouhuo = () => {
let param = {
qldNo: plsbuy.value[lefttarget.value].qldNo,
2025-12-26 16:07:43 +08:00
elderId: uni.getStorageSync('elderId'),
2025-12-03 14:14:37 +08:00
nuId: uni.getStorageSync('nuId')
}
confirmReceipt(param).then((res : any) => {
shouhuoshow.value = false
2025-12-12 17:02:33 +08:00
if (res.success) {
2025-12-04 08:36:59 +08:00
plsbuy.value[lefttarget.value] = res.result.result
2025-12-12 17:02:33 +08:00
} else {
2025-12-03 14:14:37 +08:00
plzinfo.pageNo = 1;
2026-02-06 17:24:51 +08:00
leftscrolltop.value = 0.01
2025-12-03 14:14:37 +08:00
setTimeout(() => {
leftscrolltop.value = 0
}, 50)
lefttarget.value = 0
plzinfo.canpull = true;
firstgetqueryCgdList();
}
2025-12-12 17:02:33 +08:00
2025-12-03 14:14:37 +08:00
setTimeout(() => {
2025-12-12 17:02:33 +08:00
if (res.success) {
uni.showToast({
title: res.result.message,
2025-12-30 08:42:53 +08:00
icon: 'success', // 'none' 表示不带图标
2025-12-12 17:02:33 +08:00
duration: 3000
})
} else {
openerror.value = true;
errormessage.value = res.message
}
2025-12-03 14:14:37 +08:00
}, 300)
2025-12-12 17:02:33 +08:00
2025-12-03 14:14:37 +08:00
})
}
2026-02-06 17:24:51 +08:00
const basePath = '/static/index/procurement/' // 图片公共路径
const imgNormal = basePath + 'sh.png'
const imgActive = basePath + 'shr.png'
const imgSrc = ref(imgNormal)
const busy = ref(false) // 防止重复点击造成多个定时器
function handleClick() {
if (busy.value) return
busy.value = true
// 切换到 active 图
imgSrc.value = imgActive
// 0.5 秒后复原
setTimeout(() => {
imgSrc.value = imgNormal
busy.value = false
}, 300)
}
const basePath1 = '/static/index/procurement/' // 图片公共路径
const imgNormal1 = basePath + 'cz.png'
const imgActive1 = basePath + 'czr.png'
const imgSrc1 = ref(imgNormal1)
const busy1 = ref(false) // 防止重复点击造成多个定时器
function handleClick1() {
if (busy1.value) return
busy1.value = true
// 切换到 active 图
imgSrc1.value = imgActive1
// 0.5 秒后复原
setTimeout(() => {
imgSrc1.value = imgNormal1
busy1.value = false
}, 300)
}
2025-11-26 13:26:22 +08:00
</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;
}
}
2025-11-26 17:17:33 +08:00
.buttons-father {
2026-02-06 17:24:51 +08:00
height: 3.3vw;
2025-11-26 13:26:22 +08:00
width: 100%;
2025-12-03 14:14:37 +08:00
transition: opacity 1s ease;
2025-11-26 13:26:22 +08:00
display: flex;
2025-12-03 14:14:37 +08:00
position: relative;
2026-02-06 17:24:51 +08:00
margin-top: 1.1vw;
// background-color: blue;
.center-font {
position: absolute;
left: 31%;
top: 50%;
transform: translateY(-50%);
color: #555555;
font-size: 29rpx;
font-weight: 800;
display: flex;
align-items: center;
.center-font-imge {
width: 48rpx;
height: 48rpx;
margin-right: 10rpx;
}
}
.title-input {
display: flex;
align-items: center;
width: 19.3vw;
border-radius: 1.65vw;
height: 3.3vw;
background: #FFFFFF;
border: 1px solid #D2D2D2;
image {
width: 2.2vw;
height: 2.2vw;
margin: 0 0.5vw;
}
input {
// width: 15vw;
height: 3.3vw;
font-size: 1.4vw;
padding-left: 1.6vw;
}
}
.title-ball {
width: 5.3vh;
height: 5.3vh;
border-radius: 50%;
margin-left: 10rpx;
background-color: #fff;
border: 2rpx solid #D9DADC;
display: flex;
justify-content: center;
align-items: center;
.title-ball-img {
width: 55%;
height: 55%;
}
}
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
.ipt {
display: flex;
align-items: center;
2025-11-27 16:21:31 +08:00
width: 16vw;
2025-11-26 13:26:22 +08:00
background: #E2E4E9;
border-radius: 1.65vw;
height: 3.3vw;
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
image {
width: 2.2vw;
height: 2.2vw;
2025-11-26 17:17:33 +08:00
margin: 0 0.5vw;
2025-11-26 13:26:22 +08:00
}
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
input {
width: 18vw;
height: 3.5vw;
font-size: 1.4vw;
padding-left: 1.6vw;
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
}
}
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
.scr {
border-radius: 1.65vw;
font-weight: 400;
font-size: 1.4vw;
display: flex;
justify-content: center;
align-items: center;
margin: 0 0 0 0.7vw;
2025-12-03 14:14:37 +08:00
background-color: #fff;
2025-11-26 13:26:22 +08:00
border: 1px solid #D9DADC;
color: #555555;
2025-12-03 14:14:37 +08:00
width: 6.5vw;
height: 3.3vw;
2025-11-26 13:26:22 +08:00
}
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
.shx {
width: 6.5vw;
height: 3.3vw;
2025-12-03 14:14:37 +08:00
background-color: #fff;
2025-11-26 13:26:22 +08:00
border-radius: 1.65vw;
2025-12-03 14:14:37 +08:00
border: 1px solid #D9DADC;
2025-11-26 13:26:22 +08:00
font-weight: 400;
2025-12-03 14:14:37 +08:00
font-size: 1.4vw;
2025-11-26 13:26:22 +08:00
display: flex;
justify-content: center;
align-items: center;
margin: 0 0 0 0.5vw;
color: #555555;
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
image {
2025-12-03 14:14:37 +08:00
width: 1.5vw;
height: 1.5vw;
2025-11-26 13:26:22 +08:00
margin: 0 0.2vw 0 0;
}
2025-11-26 17:17:33 +08:00
2025-12-03 14:14:37 +08:00
}
.right-button {
position: absolute;
right: 1.8vw;
top: 0;
width: 6.5vw;
height: 3.3vw;
background-color: #fff;
border-radius: 1.65vw;
border: 1px solid #D9DADC;
font-weight: 400;
font-size: 1.4vw;
display: flex;
justify-content: center;
align-items: center;
// margin: 0 0 0 0.5vw;
color: #555555;
image {
width: 1.5vw;
height: 1.5vw;
margin: 0.1vw 0.2vw 0 0;
2025-11-26 13:26:22 +08:00
}
}
2025-12-02 16:13:23 +08:00
2025-12-03 14:14:37 +08:00
.right-button:active,
2025-12-02 16:13:23 +08:00
.scr:active,
.shx:active {
color: #1083F8;
background: linear-gradient(-45deg, rgba(223, 244, 252, 1), rgba(204, 228, 249, 0.43));
border: 1rpx solid #1083F8;
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
2025-11-26 13:26:22 +08:00
}
2025-11-26 17:17:33 +08:00
.other-contain {
2025-11-26 13:26:22 +08:00
width: 100%;
2026-01-16 14:32:54 +08:00
height: 85vh;
2025-11-26 13:26:22 +08:00
display: flex;
2025-12-03 14:14:37 +08:00
transition: opacity 1s ease;
2026-02-06 17:24:51 +08:00
margin-top: 5rpx;
2025-11-26 17:17:33 +08:00
.other-contain-left {
2026-02-06 17:24:51 +08:00
width: 30%;
2025-11-26 13:26:22 +08:00
height: 100%;
2025-11-26 17:17:33 +08:00
.left-menu-scroll {
2026-02-06 17:24:51 +08:00
margin-top: 2.5%;
height: 97%;
2025-11-26 17:17:33 +08:00
width: 100%;
.pls-card {
width: 98%;
2026-02-06 17:24:51 +08:00
height: 356rpx;
2026-02-10 17:27:00 +08:00
border: transparent 4rpx solid;
2025-11-26 17:17:33 +08:00
background-color: #fff;
border-radius: 40rpx;
2026-02-06 17:24:51 +08:00
margin-bottom: 16rpx;
2025-11-26 17:17:33 +08:00
// 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;
2025-11-27 13:39:56 +08:00
padding-left: 10rpx;
padding-right: 35rpx;
.middle-title-spec {
color: #888888;
font-size: 29rpx;
}
2025-11-26 17:17:33 +08:00
.title-left {
font-weight: 600;
2025-11-27 13:39:56 +08:00
font-size: 34rpx;
// color: #888888;
2025-11-26 17:17:33 +08:00
}
.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;
2026-02-06 17:24:51 +08:00
margin-top: 1.7vh;
2025-11-26 17:17:33 +08:00
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%;
2025-11-28 10:19:59 +08:00
height: 2.1vh;
2025-11-26 17:17:33 +08:00
// 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;
2025-12-10 17:30:16 +08:00
font-size: 25rpx;
2025-11-26 17:17:33 +08:00
}
}
}
.pls-card-end {
width: 100%;
2025-11-27 13:39:56 +08:00
height: 6vh;
2025-11-26 17:17:33 +08:00
display: flex;
justify-content: space-between;
position: relative;
2025-11-27 13:39:56 +08:00
padding-left: 15rpx;
2026-02-06 17:24:51 +08:00
margin-top: 18rpx;
2025-11-26 17:17:33 +08:00
.end-left {
height: 100%;
display: flex;
align-items: center;
.end-left-img {
2025-11-27 13:39:56 +08:00
width: 35rpx;
height: 35rpx;
2025-11-26 17:17:33 +08:00
}
.end-left-font {
margin-top: 3rpx;
width: 400rpx;
// background-color: #007CFF;
// font-size: 26rpx;
color: #666666;
2025-11-27 13:39:56 +08:00
margin-left: 3rpx;
2025-11-26 17:17:33 +08:00
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;
2025-11-27 16:21:31 +08:00
border: 1rpx solid #FF5757;
2025-11-26 17:17:33 +08:00
position: absolute;
2025-11-27 13:39:56 +08:00
right: 0rpx;
2025-11-26 17:17:33 +08:00
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;
2025-11-27 13:39:56 +08:00
right: 0rpx;
2025-11-26 17:17:33 +08:00
bottom: 20rpx;
}
}
}
}
.left-selecttype {
2026-02-06 17:24:51 +08:00
margin-top: 8rpx;
2025-11-27 13:39:56 +08:00
width: 98%;
2026-02-06 17:24:51 +08:00
height: 85rpx;
2025-11-26 13:26:22 +08:00
border-radius: 40rpx;
background-color: #FFFFFF;
display: flex;
2025-11-26 17:17:33 +08:00
padding-right: 30rpx;
padding-left: 15rpx;
2025-11-28 10:19:59 +08:00
position: relative;
2025-12-02 16:13:23 +08:00
2025-11-26 17:17:33 +08:00
.heng-blue {
2025-11-26 13:26:22 +08:00
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
2026-02-06 17:24:51 +08:00
width: 29rpx;
height: 7rpx;
2025-11-26 13:26:22 +08:00
border-radius: 10rpx;
background-color: #1083F8;
2025-11-28 10:19:59 +08:00
transition: 0.3s all ease;
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
}
2025-11-26 17:17:33 +08:00
.selecttype {
2025-11-26 13:26:22 +08:00
width: 20%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #999999;
2026-02-06 17:24:51 +08:00
font-size: 29rpx;
2025-11-26 13:26:22 +08:00
position: relative;
2025-11-26 17:17:33 +08:00
2025-11-26 13:26:22 +08:00
}
2025-11-26 17:17:33 +08:00
.selecttype-target {
2025-11-26 13:26:22 +08:00
width: 20%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
color: #222222;
2026-02-06 17:24:51 +08:00
font-size: 29rpx;
2025-11-26 13:26:22 +08:00
font-weight: 600;
position: relative;
}
}
}
2025-11-26 17:17:33 +08:00
.other-contain-right {
2026-02-06 17:24:51 +08:00
width: 68%;
margin-left: 0.5%;
height: 106%;
background-color: #fff;
border-radius: 30rpx;
2026-02-10 17:27:00 +08:00
margin-top: 0.5vh;
2025-12-02 16:13:23 +08:00
.right-contain {
2025-11-27 13:39:56 +08:00
width: 100%;
2026-03-03 14:51:42 +08:00
height: 98%;
2026-02-27 17:02:36 +08:00
margin-top: 20rpx;
2025-11-27 13:39:56 +08:00
display: flex;
flex-wrap: wrap;
2025-12-03 14:14:37 +08:00
position: relative;
2025-12-02 16:13:23 +08:00
.right-ones {
2025-11-27 13:39:56 +08:00
display: flex;
width: 100%;
flex-wrap: wrap;
2026-02-27 17:02:36 +08:00
padding-left: 15rpx;
padding-top: 13rpx;
// padding-bottom: 80rpx;
.right-one-white{
2026-03-03 14:51:42 +08:00
width: 615rpx;
2026-02-27 17:02:36 +08:00
height: 365rpx;
border: 1rpx solid #c9c9c9;
background-color: #fff;
border-radius: 30rpx;
margin-left: 20rpx;
2026-03-03 14:51:42 +08:00
margin-bottom: 23rpx;
2026-02-27 17:02:36 +08:00
padding: 0 30rpx;
position: relative;
// background-color: #fff;
}
2025-12-03 14:14:37 +08:00
2025-12-02 16:13:23 +08:00
.right-one {
2026-03-03 14:51:42 +08:00
width: 615rpx;
2026-02-27 17:02:36 +08:00
height: 365rpx;
2026-02-06 17:24:51 +08:00
margin-left: 20rpx;
2026-03-03 14:51:42 +08:00
margin-bottom: 23rpx;
2026-02-27 17:02:36 +08:00
background-color: #fff;
2025-11-27 13:39:56 +08:00
border-radius: 30rpx;
2025-11-27 16:21:31 +08:00
display: flex;
2026-02-27 17:02:36 +08:00
border: 1rpx solid #c9c9c9;
2025-12-02 16:13:23 +08:00
.right-one-left {
2026-02-27 17:02:36 +08:00
// height: 100%;
2025-11-27 16:21:31 +08:00
width: 40%;
display: flex;
flex-direction: column;
align-items: center;
2026-02-27 17:02:36 +08:00
// justify-content: space-around;
padding: 0.5vw 0;
2025-12-02 16:13:23 +08:00
2026-02-27 17:02:36 +08:00
.bgimg {
2026-03-09 17:27:46 +08:00
width: 7vw;
height: 7vw;
margin: 1.5vw auto 0.25vw;
2025-12-19 16:08:58 +08:00
border-radius: 1.1vw;
2026-02-27 17:02:36 +08:00
background: #fff;
display: flex;
justify-content: center;
align-items: center;
padding: 0.2vw;
2026-03-09 17:27:46 +08:00
// background-color: red;
2026-02-06 17:24:51 +08:00
2026-02-27 17:02:36 +08:00
>image {
2025-12-19 16:08:58 +08:00
width: 100%;
height: 100%;
2026-02-27 17:02:36 +08:00
border-radius: 1.1vw;
2025-12-19 16:08:58 +08:00
}
2025-11-27 16:21:31 +08:00
}
2025-12-02 16:13:23 +08:00
.left-tages {
2026-02-27 17:02:36 +08:00
margin-bottom: 5rpx;
width: 140rpx;
// height: 36rpx;
border-radius: 30rpx;
2025-11-27 16:21:31 +08:00
color: #555555;
border: 1rpx solid #D2D2D2;
2026-02-27 17:02:36 +08:00
margin-top: 5rpx;
2026-02-06 17:24:51 +08:00
font-size: 22rpx;
2026-01-14 17:28:03 +08:00
white-space: nowrap;
2026-02-27 17:02:36 +08:00
text-overflow: ellipsis;
overflow: hidden;
text-align: center;
line-height: 34rpx;
2025-11-27 16:21:31 +08:00
}
}
2025-12-02 16:13:23 +08:00
.right-one-right {
2025-11-27 16:21:31 +08:00
height: 100%;
width: 60%;
2025-12-02 16:13:23 +08:00
.right-title {
2026-02-27 17:02:36 +08:00
font-size: 36rpx;
font-weight: 600;
margin-top: 40rpx;
2025-11-27 16:21:31 +08:00
color: #222222;
2025-12-02 16:13:23 +08:00
width: 300rpx;
overflow: hidden;
/* 必须 */
white-space: nowrap;
/* 强制单行 */
text-overflow: ellipsis;
/* 显示省略号 */
2025-11-27 16:21:31 +08:00
}
2025-12-02 16:13:23 +08:00
.right-setting {
2025-11-27 16:21:31 +08:00
color: #888888;
margin-top: 5rpx;
2026-02-27 17:02:36 +08:00
font-size: 28rpx;
2025-11-27 16:21:31 +08:00
}
2025-12-02 16:13:23 +08:00
.right-mm {
2025-11-27 16:21:31 +08:00
color: #555555;
2026-02-27 17:02:36 +08:00
font-size: 30rpx;
width: 200rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
2025-11-27 16:21:31 +08:00
}
2025-12-02 16:13:23 +08:00
.right-down {
2025-11-27 16:21:31 +08:00
display: flex;
2026-02-27 17:02:36 +08:00
margin-top: 50rpx;
2025-12-02 16:13:23 +08:00
.right-first-num {
2026-02-27 17:02:36 +08:00
font-size: 38rpx;
2025-11-27 16:21:31 +08:00
color: #555555;
font-weight: 600;
}
2025-12-02 16:13:23 +08:00
.right-first-type {
2025-11-27 16:21:31 +08:00
color: #888888;
2026-02-27 17:02:36 +08:00
font-size: 26rpx;
2025-11-27 16:21:31 +08:00
}
2025-12-02 16:13:23 +08:00
.right-shu {
2025-11-27 16:21:31 +08:00
width: 2rpx;
height: 50rpx;
background-color: #C9C9C9;
margin: 0 40rpx;
margin-top: 10rpx;
}
}
}
2025-11-27 13:39:56 +08:00
}
}
2025-12-02 16:13:23 +08:00
2025-11-27 13:39:56 +08:00
}
2025-11-26 13:26:22 +08:00
}
}
2026-02-27 17:02:36 +08:00
2026-02-10 17:27:00 +08:00
.haventmessage {
width: 97%;
height: 100%;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
border-radius: 30rpx;
2026-02-27 17:02:36 +08:00
2026-02-10 17:27:00 +08:00
}
2026-02-27 17:02:36 +08:00
2026-02-10 17:27:00 +08:00
.que {
width: 10vw;
height: 10vw;
// margin: auto;
2026-02-27 17:02:36 +08:00
2026-02-10 17:27:00 +08:00
image {
width: 100%;
height: 100%;
}
2026-02-27 17:02:36 +08:00
2026-02-10 17:27:00 +08:00
view {
margin-top: -30rpx;
width: 100%;
text-align: center;
font-weight: 300;
font-size: 1.2vw;
color: #555555;
}
}
2026-02-27 17:02:36 +08:00
.center {
2026-02-10 17:27:00 +08:00
display: flex;
justify-content: center;
align-items: center;
}
2026-03-02 17:24:43 +08:00
.bignomessage{
position: fixed;
top: 8.5vh;
2026-03-10 17:13:50 +08:00
left: 9.2vw;
width: 89.5vw;
height: 89.6vh;
2026-03-02 17:24:43 +08:00
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;
2026-03-03 14:51:42 +08:00
margin-top: -2vw;
2026-03-02 17:24:43 +08:00
font-weight: 300;
font-size: 1.5vw;
color: #555555;
}
}
2025-11-26 13:26:22 +08:00
</style>