先提一版

This commit is contained in:
Teng 2025-12-15 13:36:09 +08:00
parent e625c3ea86
commit 798515f544
8 changed files with 325 additions and 191 deletions

View File

@ -61,6 +61,7 @@
line-height: 1.7vw;
flex-wrap: wrap;
margin-bottom: 4vw;
text-align: center;
}
.qd {

View File

@ -44,7 +44,7 @@
<view class="middle-heng"></view>
<view class="pls-card-middle-one">
<view class="middle-title">
{{ v.fqTime.replace(/-/g, '.') }}
{{ v.fqTime.replace(/-/g, '.')?.slice(0,10) }}
</view>
<view class="middle-heng-father">
<image class="middle-ball-img" src="/static/index/requestform/isok.png" />
@ -61,7 +61,7 @@
<view class="pls-card-middle-one">
<view class="middle-title" v-if="v.logList[1]">
{{ v.logList[1].opeTime?.slice(0,10) }}
{{ v.logList[1].opeTime?.replace(/-/g, '.').slice(0,10) }}
</view>
<view class="middle-heng-father">
<image class="middle-ball-img" src="/static/index/requestform/isok.png" />
@ -532,9 +532,9 @@
}
>image {
width: 8.5vw;
width: 7.5vw;
height: 7.5vw;
margin: 1.7vw auto 0.25vw;
margin: 0.5vw auto 0.25vw;
}
}
@ -547,16 +547,16 @@
background: #fff;
.box{
width: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
display: flex;
flex-wrap: wrap;
}
.fler{
width: 30.4vw;
width: 31.4vw;
height: 13vw;
margin-bottom: 0.9vw;
margin-left: 0.5vw;
.carditem{
width: 30.4vw;
width: 31vw;
height: 13vw;
background: rgba(245, 246, 248, 1);
border-radius: 1.1vw;

View File

@ -1,23 +1,24 @@
<template>
<view>
<view class="mengban" @click="emit('fill')" v-if="show"> </view>
<view class="qinglingdetails" :class="show?'':'unclass'" :style="showbox?'z-index:220':'z-index:-2'">
<view class="qinglingdetails" :class="show?'':'unclass'" :style="showbox?'z-index:220':'z-index:-2'">
<view class="tit">
<view>退货详情</view>
</view>
<view class="itemcan">
<text>请领区域:{{ uni.getStorageSync('nuName')}}</text>
<text>请领:{{uni.getStorageSync('realname')}}</text>
<text>请领日期:{{times}}</text>
<text>退货区域:{{ uni.getStorageSync('nuName')}}</text>
<text>退货:{{uni.getStorageSync('realname')}}</text>
<text>退货日期:{{times}}</text>
</view>
<view class="qlwl">
请领物料
退货物料
</view>
<scroll-view scroll-y="true" class="wuliaolist">
<view class="list">
<view class="card" v-for="(v,i) in list" :key='i'>
<view class="speitem guodu" >
<image :src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
<view class="speitem guodu">
<image
:src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill">
</image>
<view class="cardp">
@ -25,22 +26,22 @@
<view v-if="v.materialInfo?.typeName">{{v.materialInfo?.typeName}}</view>
</view>
</view>
<view class="msitem guodu" >
<view class="msitem guodu">
<view>
<view>{{v.materialInfo?.materialName}}</view>
</view>
<view>
<text style="white-space: nowrap;"> 规格型号: </text>
<text style="white-space: nowrap;"> 规格型号: </text>
<view>{{v.materialInfo?.specificationModel}}</view>
</view>
<view>
<view>
<text>{{v.thNum?v.thNum:'--'}}</text>
<text>请领数量</text>
<text>退货数量</text>
</view>
<view>
<text>{{v.materialInfo?.materialUnits}}</text>
<text>请领单位</text>
<text>退货单位</text>
</view>
</view>
</view>
@ -48,7 +49,7 @@
</view>
</scroll-view>
<view class="plsbuy-bottom">
<view class="quxiao" @click="emit('fill')">
<view class="quxiao" @click="emit('fill')">
取消
</view>
<view class="plsbuy-bottom-blue" @click="emit('config')">
@ -60,69 +61,73 @@
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import defaultr from '../components/default.vue'
const props = defineProps({
list: {
type: Array,
required: true
required: true
},
show: {
type: Boolean
},
thdt:{
type:Object
thdt: {
type: Object
}
})
const times = ref('')
onMounted(()=>{
let now = new Date();
let year = now.getFullYear();
let month = (now.getMonth() + 1)<10?'0'+(now.getMonth() + 1):(now.getMonth() + 1);
let day = now.getDay()<10?'0'+now.getDay():now.getDay();
times.value = year+'.'+month+'.'+day
onMounted(() => {
const now = new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
times.value = `${year}.${month}.${day}`;
})
const wuobj = ref({})
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const emit = defineEmits([ 'fill' ,'submit','config'])
const emit = defineEmits(['fill', 'submit', 'config'])
const showbox = ref(false)
watch(()=>props.show,
()=>{
watch(() => props.show,
() => {
console.log(props.list)
if(props.show==true){
setTimeout(()=>{
if (props.show == true) {
setTimeout(() => {
showbox.value = true
},50)
}else{
}, 50)
} else {
showbox.value = false;
}
})
</script>
<style scoped lang="less">
.qinglingdetails{
.qinglingdetails {
width: 60vw;
height: 49vw;
background:rgba(255, 255, 255, 0.98);
box-shadow: 0rpx 0rpx 1.3vw 0rpx rgba(163,167,182,0.16);
background: rgba(255, 255, 255, 0.98);
box-shadow: 0rpx 0rpx 1.3vw 0rpx rgba(163, 167, 182, 0.16);
border-radius: 1.6vw;
position: fixed;
top:8vw;
top: 8vw;
left: 20vw;
z-index: 200;
padding:1vw 1.4vw;
.wuliaolist{
padding: 1vw 1.4vw;
.wuliaolist {
width: 100%;
height: 27vw;
.list{
.list {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: 1fr 1fr ;
grid-template-columns: 1fr 1fr;
padding-left: 0.6vw;
.card{
.card {
width: 27.5vw;
height: 13vw;
background: rgba(247, 247, 247, 0.5);
@ -131,36 +136,42 @@
overflow: hidden;
margin-bottom: 1.1vw;
padding: 1vw;
.msitem {
width: 11.5vw;
height: 100%;
position: absolute;
top:0;
top: 0;
left: 10vw;
>view {
margin-top: 0.25vw;
&:nth-child(3) {
width: 100%;
height: 3.4vw;
display: flex;
justify-content: space-between;
>view {
width: 50%;
height: 100%;
display: flex;
flex-direction: column;
position: relative;
margin-top:1vw;
margin-top: 1vw;
white-space: nowrap;
&:nth-child(1){
&:nth-child(1) {
padding-right: 1.7vw;
align-items: flex-start;
}
&:nth-child(2){
&:nth-child(2) {
padding-left: 1.7vw;
align-items: flex-start;
}
&:nth-child(1)::after {
content: '';
position: absolute;
@ -170,14 +181,14 @@
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;
@ -187,20 +198,21 @@
}
}
}
&:nth-child(2) {
&:nth-child(2) {
display: flex;
justify-content: space-between;
flex-direction: column;
margin-top: 0.1vw;
view{
view {
font-size: 1.4vw;
color: #888888;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
text {
font-weight: 400;
font-size: 1.1vw;
@ -208,15 +220,15 @@
margin-top: 0.25vw;
}
}
&:nth-child(1) {
view{
view {
display: inline-block;
width: 10vw;
font-weight: bold;
font-size: 1.6vw;
color: #222222;
height: 3vw;
height: 3.1vw;
padding-top: 1.3vw;
text-overflow: ellipsis;
overflow: hidden;
@ -225,22 +237,25 @@
}
}
}
.speitem {
width: 10vw;
height: 100%;
display: inline-flex;
flex-direction: column;
position: absolute;
top:0;
top: 0;
left: 0;
.cardp {
width:8vw;
width: 8vw;
height: 4vw;
display: flex;
margin: 0 auto;
align-items: center;
justify-content: center;
flex-direction: column;
view {
min-width: 5.5vw;
height: 1.8vw;
@ -256,7 +271,7 @@
padding: 0 0.25vw;
}
}
>image {
width: 8.5vw;
height: 7.5vw;
@ -266,25 +281,29 @@
}
}
}
.qlwl{
.qlwl {
width: 100%;
height: 3vw;
font-weight: 400;
font-size: 1.4vw;
color: #555555;
}
.itemcan{
.itemcan {
width: 100%;
height: 6.6vw;
display: flex;
justify-content: space-between;
align-items: center;
text{
text {
font-weight: 400;
font-size: 1.4vw;
color: #888888;
}
}
.tit {
width: 100%;
height: 3.5vw;
@ -298,7 +317,8 @@
border-bottom: 1px solid #E5E5E5;
}
}
.mengban{
.mengban {
width: 100vw;
height: 100vh;
position: fixed;
@ -307,20 +327,25 @@
left: 0;
background: RGBA(239, 240, 244, 0.55);
}
.hei0 {
height: 0 !important;
view{
view {
height: 0 !important;
}
}
.unclass {
opacity: 0 !important;
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.plsbuy-bottom {
width: 100%;
margin-top: 2vw;
@ -329,26 +354,30 @@
justify-content: flex-end;
font-size: 35rpx;
padding-right: 1vw;
view{
view {
display: flex;
justify-content: center;
align-items: center;
min-width: 9.1vw;
height: 3.8vw;
color: rgba(92, 121, 146, 1);
border-radius:1.9vw;
border-radius: 1.9vw;
font-size: 1.8vw;
border: 1px solid #EDEDEF;
margin-left: 1vw;
padding: 0 2vw;
}
.quxiao{
.quxiao {
background: #EDEDEF;
color: #999999;
}
.plsbuy-bottom-blue {
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
border: 1px solid rgba(3,133,250,0.34);
border: 1px solid rgba(3, 133, 250, 0.34);
color: #0385FA;
}
}
</style>
</style>

View File

@ -32,14 +32,15 @@
</view>
</view>
<view class="qinggou-font">
数量 <text style="color: red;" v-if="sx==true">超过退货上限</text>
数量
</view>
<view class="stringShow-father">
<view class="jj" @click="jjnum(-1)" @longpress="handleTouchStart(-1)" @touchend="handleTouchEnd">
-
</view>
<!-- :style="sx==true?'color: red':''" -->
<view class="stringShow-kuai">
<view v-for="(item,index) in stringShow" :key="index" :style="sx==true?'color: red':''">
<view v-for="(item,index) in stringShow" :key="index">
{{item}}
</view>
@ -239,6 +240,7 @@
}
.quxiao{
background: #EDEDEF;
color: #999999;
}
.plsbuy-bottom-blue {
background: linear-gradient(0deg, #CAE0F9, #E9F4FF);
@ -329,6 +331,7 @@
font-size: 1.4vw;
font-weight: 500;
text-align: center;
margin-left: 1.5vw;
}
.cont{

View File

@ -61,6 +61,7 @@
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import taking from './takeing.vue'
import defaultr from '../components/default.vue'
const props = defineProps({
InvoicingList: {
type: Array,
@ -225,7 +226,7 @@
}
}
.msitem {
width: 11.5vw;
width: 11vw;
height: 100%;
position: absolute;
top:0;
@ -309,7 +310,7 @@
font-weight: bold;
font-size: 1.6vw;
color: #222222;
height: 3vw;
height: 3.1vw;
padding-top: 1.3vw;
text-overflow: ellipsis;
overflow: hidden;
@ -340,7 +341,7 @@
left: 0;
.cardp {
width:8vw;
height: 4vw;
height: 4.2vw;
display: flex;
margin: 0 auto;
align-items: center;
@ -363,9 +364,9 @@
}
>image {
width: 8.5vw;
width: 7.5vw;
height: 7.5vw;
margin: 1.7vw auto 0.25vw;
margin: 0.3vw auto 0.25vw;
}
}
@ -373,21 +374,24 @@
.itembox{
width: 100%;
height: calc(100vh - 23vw);
height: calc(100vh - 22vw);
padding:1vw 0.5vw 1vw;
background: #fff;
.box{
width: 100%;
display: grid;
grid-template-columns: 1fr 1fr;
display: flex;
flex-wrap: wrap;
// display: grid;
// grid-template-columns: 1fr 1fr;
}
.fler{
width: 30.4vw;
width: 31.5vw;
height: 13vw;
margin-bottom: 0.9vw;
margin-left: 0.5vw;
.carditem{
width: 30.4vw;
width: 31vw;
height: 13vw;
background: rgba(245, 246, 248, 1);
border-radius: 1.1vw;

View File

@ -3,12 +3,20 @@
<view class="kcyj">
<view class="kjlt">
退货物料
<view class="mhao" v-if="Material.length>0">{{Material.length}}</view>
<!-- <view class="mhao" v-if="Material.length>0">{{Material.length}}</view> -->
<view class="mhao" v-if="Material.length>0">
<view class="mhao-font">
{{Material.length}}
</view>
</view>
</view>
<scroll-view scroll-x="true" class="kcscrol guodu" @scroll="onScroll" :class="Material.length==0?'fff':''"
scroll-with-animation :scroll-left="scrollleft" :style="qb?'width:calc(100% - 21.8vw)':status<2?'width:calc(100% - 9vw)':'width:calc(100% - 5vw)' ">
<view class="yjbox" v-for="(v,i) in Material" :key="i" >
<image :src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
<scroll-view scroll-x="true" class="kcscrol guodu" @scroll="onScroll" :class="Material.length==0?'fff':''"
scroll-with-animation :scroll-left="scrollleft"
:style="qb?'width:calc(100% - 21.8vw)':status<2?'width:calc(100% - 9vw)':'width:calc(100% - 5vw)' ">
<view class="yjbox" v-for="(v,i) in Material" :key="i">
<image
:src="v.materialInfo?.materialImg?serverUrl+v.materialInfo?.materialImg:'/static/index/procurement/k.png'"
mode="aspectFill"></image>
<view>{{v.materialInfo?.materialName}}</view>
<text class="ytj" v-if="v.thNum>=0">{{v.thNum}}</text>
@ -16,9 +24,11 @@
<view>-</view>
</view>
</view>
<defaultr cont="暂无数据" v-if="Material.length==0&&timeout" style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
<defaultr cont="暂无数据" v-if="Material.length==0&&timeout"
style="position: absolute;width: 10vw;height: 10vw;"></defaultr>
</scroll-view>
<view class="kjlt more guodu" :style="qb?'width:15vw':'' " @touchstart="ts" @touchmove="canmove" v-if="status<2">
<view class="kjlt more guodu" :style="qb?'width:15vw':'' " @touchstart="ts" @touchmove="canmove"
v-if="status<2">
<view @click="zksq" class="righ0">
{{!qb?'更多':'收起'}}
<image class="guodu" :style="qb?'transform: rotate(180deg);':''"
@ -30,7 +40,8 @@
<view class="guodu" :class="qb?(moredex==2?'avt':''):'righ0'" @click="moredex=2; ">
清空列表
</view>
<view class="guodu" :class="qb?(moredex==3?'avt':''):'righ0'" @click="moredex=3;emit('submit')" v-if="status==1">
<view class="guodu" :class="qb?(moredex==3?'avt':''):'righ0'" @click="moredex=3;emit('submit')"
v-if="status==1">
提交退货单
</view>
</view>
@ -40,49 +51,49 @@
</template>
<script setup lang="ts">
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import { ref, onMounted, onBeforeUnmount, computed, nextTick, watch, reactive } from 'vue';
import defaultr from '../components/default.vue'
import tanchuang from '../components/tanchuang.vue';
const props = defineProps({
Material:{
type:Array,
Material: {
type: Array,
required: true,
},
status:{
type:String
status: {
type: String
}
});
const emit = defineEmits([ 'delall' ,'del','submit'])
const emit = defineEmits(['delall', 'del', 'submit'])
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
const qb = ref(false)
const moredex = ref(0)
watch(()=>props.Material,
()=>{
if(props.Material.length==0){
qb.value = false;
moredex.value=0;
}
})
const delall = ()=>{
watch(() => props.Material,
() => {
if (props.Material.length == 0) {
qb.value = false;
moredex.value = 0;
}
})
const delall = () => {
emit('delall');
setTimeout(()=>{
setTimeout(() => {
moredex.value = 0;
qb.value = false;
},100)
}, 100)
}
const del =(v)=>{
emit('del',v)
const del = (v) => {
emit('del', v)
}
const zksq = () =>{
if(props.Material.length==0){
const zksq = () => {
if (props.Material.length == 0) {
uni.showToast({
icon:'none',
title:'请添加退货物料!'
icon: 'none',
title: '请添加退货物料!'
})
return
}
qb.value=!qb.value;
moredex.value=0;
qb.value = !qb.value;
moredex.value = 0;
moveleft();
}
const startX = ref(0)
@ -96,7 +107,7 @@
}
const scrollleft = ref(0)
const canmove = (e : any) => {
if(props.Material.length==0){ return }
if (props.Material.length == 0) { return }
const moveX = e.touches[0].clientX
const diff = moveX - startX.value
// diff
@ -132,10 +143,10 @@
}
}
const timeout = ref(false)
onMounted(()=>{
setTimeout(()=>{
onMounted(() => {
setTimeout(() => {
timeout.value = true
},500)
}, 500)
})
</script>
@ -147,10 +158,12 @@
margin-top: 1vw;
position: relative;
padding-left: 1vw;
.fff{
.fff {
background: #fff;
border-radius: 1.1vw;
}
.kjlt {
width: 3.2vw;
height: 10vw;
@ -165,22 +178,30 @@
position: relative;
z-index: 10;
background: #FFFFFF;
.mhao{
width: 1.6vw;
min-height: 0vw;
border-radius: 0.8vw;
border: 1px solid #FF4E4E;
font-weight: 400;
font-size: 1.1vw;
color: #FF4E4E;
padding: 0.4vw 0vw;
.mhao {
position: absolute;
top: -0.8vw;
right: -0.4vw;
transform: rotate(-90deg);
top: -0.2vw;
/* 根据视觉需要微调 */
right: -0.2vw;
box-sizing: border-box;
width: 1.8vw;
height: 1.8vw;
border-radius: 50%;
border: 1px solid #FF4E4E;
color: #FF4E4E;
display: flex;
justify-content: center;
align-items: center;
justify-content: center;
background: transparent;
writing-mode: horizontal-tb;
overflow: hidden;
.mhao-font {
font-size: 25rpx;
letter-spacing: -0.05em;
/* 负值 = 字符之间更近 */
}
}
}
@ -229,7 +250,7 @@
right: 7.7vw;
z-index: 2;
}
&:nth-child(4) {
right: 11.6vw;
z-index: 2;
@ -242,14 +263,15 @@
}
}
.kcscrol {
width:calc(100% - 10vw);
width: calc(100% - 10vw);
height: 10vw;
white-space: nowrap;
margin-left: 0.6vw;
position: relative;
z-index: 9;
.yjbox {
display: inline-block;
@ -259,14 +281,16 @@
border-radius: 1.1vw;
margin-right: 0.8vw;
position: relative;
.zhanwei{
.zhanwei {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
z-index: 200;
view{
view {
position: absolute;
width: 2.2vw;
height: 2.2vw;
@ -285,6 +309,7 @@
color: rgba(255, 78, 78, 1);
}
}
.ytj {
min-width: 1.5vw;
height: 1.8vw;
@ -297,7 +322,7 @@
text-align: center;
line-height: 1.75vw;
position: absolute;
padding: 0 0.8vw;
padding: 0 0.8vw;
top: 0.8vw;
right: 0.8vw;
}
@ -325,6 +350,7 @@
}
}
}
.guodu {
transition: .4s;
-webkit-transform-style: preserve-3d;

View File

@ -91,11 +91,16 @@
:status="status" @crk="crk"></carditem>
</view>
<view class="fiedright">
<view @click="uni.navigateTo({ url:'/pages/procurement/materialcar' })">
<view @click="uni.navigateTo({ url:'/pages/procurement/materialcar' })" class="fiedrightview">
<image src="/static/index/procurement/gc1.png" mode="aspectFill"></image>
<text v-if="carnum>0">{{carnum>99?'99+':carnum}}</text>
<!-- <text v-if="carnum>0">{{carnum>99?'99+':carnum}}</text> -->
<view class="mhao" v-if="carnum>0">
<view class="mhao-font">
{{carnum}}
</view>
</view>
</view>
<view @click="uni.navigateTo({ url:'/pages/procurement/purchaseorder' })">
<view @click="uni.navigateTo({ url:'/pages/procurement/purchaseorder' })" class="fiedrightview">
<image src="/static/index/procurement/cg.png" mode="aspectFill"></image>
</view>
</view>
@ -475,8 +480,8 @@
display: flex;
flex-direction: column;
justify-content: space-between;
view {
.fiedrightview{
width: 5vw;
height: 5vw;
background: rgba(255, 255, 255, 0.86);
@ -486,7 +491,7 @@
justify-content: center;
align-items: center;
position: relative;
text {
min-width: 1.8vw;
height: 1.8vw;
@ -503,12 +508,13 @@
top: -0.8vw;
right: -0.8vw;
}
image {
width: 3.3vw;
height: 3.3vw;
}
}
}
.listcard {
@ -971,6 +977,28 @@
z-index: 100;
background: RGBA(239, 240, 244, 0.55);
}
.mhao {
position: absolute;
top: -0.2vw;
/* 根据视觉需要微调 */
right: -0.2vw;
box-sizing: border-box;
width: 1.8vw;
height: 1.8vw;
border-radius: 50%;
border: 1px solid #FF4E4E;
color: #FF4E4E;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
writing-mode: horizontal-tb;
overflow: hidden;
.mhao-font{
font-size: 25rpx;
letter-spacing: -0.05em; /* 负值 = 字符之间更近 */
}
}
</style>
<style>
page {

View File

@ -44,13 +44,13 @@
</view>
<view class="ritcon">
<view class="rq">
退货日期<text>{{v.fqTime.substring(0, 10)}}</text>
退货日期<text>{{v.fqTime?.replace(/-/g, '.').substring(0, 10)}}</text>
</view>
<view class="rq">
申请人{{v.fqrName}}
</view>
<view class="fwjd" v-if="v.status==0">
<view class="jx" @click.stop="start(v,i)">开始服务</view>
<view class="jx" @click="start(v,i)">开始服务</view>
<view>服务结束</view>
</view>
<view class="fwjd" v-if="v.status==1">
@ -59,7 +59,7 @@
</view>
<view class="fwjd" v-if="v.status==2">
<view>开始服务</view>
<view class="jx" @click.stop="end(v,i)">服务结束</view>
<view class="jx" @click="end(v,i)">服务结束</view>
</view>
<view class="fwjd" v-if="v.status==3">
<view>开始服务</view>
@ -75,7 +75,8 @@
</view>
<view class="rightscr">
<view class="thwl">
<thwl :Material="addMaterial" @delall="delall" @del="adddel" @submit="submit" :status="tharrlist[cardindex]?.status"></thwl>
<thwl :Material="addMaterial" @delall="delall" @del="adddel" @submit="submit"
:status="tharrlist[cardindex]?.status"></thwl>
<!-- -->
</view>
<view class="carditem">
@ -83,11 +84,17 @@
</view>
</view>
</view>
<tanchuang @back="tanshow = false" :show="tanshow" font="确定将该物料从本次请领清单中移除吗?" @right="del"></tanchuang>
<submits :show="subshow" :list="addMaterial" @fill="subshow = false" :thdt="tharrlist[cardindex]" @config="tijiao"></submits>
<view class="thdfed" @click="uni.navigateTo({ url:'/pages/procurement/authorization' })" v-if="carnum>0">
<tanchuang @back="tanshow = false" :show="tanshow" font="确定将该物料从本次退货清单中移除吗?" @right="del"></tanchuang>
<submits :show="subshow" :list="addMaterial" @fill="subshow = false" :thdt="tharrlist[cardindex]"
@config="tijiao"></submits>
<view class="thdfed" @click="uni.navigateTo({ url:'/pages/procurement/authorization' })" v-if="carnum>0">
<image src="/static/index/procurement/thd.png" mode="aspectFill"></image>
<text v-if="carnum>0">{{carnum>99?'99+':carnum}}</text>
<!-- <text v-if="carnum>0">{{carnum>99?'99+':carnum}}</text> -->
<view class="mhao" v-if="carnum>0">
<view class="mhao-font">
{{carnum}}
</view>
</view>
</view>
</view>
</template>
@ -95,7 +102,7 @@
<script setup lang="ts">
import { ref, onMounted, reactive, onBeforeUnmount, computed, nextTick, defineComponent } from 'vue';
import { onShow, onLoad, onHide, onPageScroll } from "@dcloudio/uni-app"
import { thdList, transRead, thdNuMaterialList, addThc, thcList, removeWl, removeAll, submitThd ,startServe , finishServe} from './api/lunpan.js'
import { thdList, transRead, thdNuMaterialList, addThc, thcList, removeWl, removeAll, submitThd, startServe, finishServe } from './api/lunpan.js'
const serverUrl = ref(uni.getStorageSync('serverUrl') + '/sys/common/static/')
import thwl from './common/thwl.vue'
import thitem from './common/thitem.vue'
@ -104,7 +111,7 @@
const form = reactive({
pageNo: 1,
pageSize: 10,
searchContent: ''
searchContent: ''
})
const tanshow = ref(false)
const subshow = ref(false)
@ -112,19 +119,19 @@
onMounted(() => {
thlist()
})
onShow(()=>{
onShow(() => {
ritbot();
})
const ritbot = () =>{
const ritbot = () => {
let forms = {
pageNo: 1,
pageSize: 10,
status:3,
searchContent: ''
}
thdList(forms).then(res => {
carnum.value = res.result.total;
})
status: 3,
searchContent: ''
}
thdList(forms).then(res => {
carnum.value = res.result.total;
})
}
const submit = () => {
cardcon(tharrlist.value[cardindex.value], cardindex.value);
@ -136,7 +143,7 @@
submitThd({ id: tharrlist.value[cardindex.value].id }).then(res => {
if (res.success) {
subshow.value = false;
th(tharrlist.value[cardindex.value],cardindex.value)
th(tharrlist.value[cardindex.value], cardindex.value)
setTimeout(() => {
cardcon(tharrlist.value[cardindex.value], cardindex.value);
}, 200)
@ -148,18 +155,18 @@
}
})
}
const th = (v,i) =>{
let obj = {refreshDataKey:v.id}
const th = (v, i) => {
let obj = { refreshDataKey: v.id }
thdList(obj).then(res => {
tharrlist.value[i] = res.result.records[0];
ritbot();
})
}
const start = (v,i) =>{
startServe({id:v.id}).then(res=>{
if(res.success){
th(v,i)
}else{
const start = (v, i) => {
startServe({ id: v.id }).then(res => {
if (res.success) {
th(v, i)
} else {
uni.showToast({
icon: 'none',
title: res.message
@ -167,12 +174,12 @@
}
})
}
const end = (v,i)=>{
finishServe({id:v.id}).then(res=>{
const end = (v, i) => {
finishServe({ id: v.id }).then(res => {
console.log(res)
if(res.success){
th(v,i)
}else{
if (res.success) {
th(v, i)
} else {
uni.showToast({
icon: 'none',
title: res.message
@ -196,10 +203,21 @@
const tharrlist = ref([])
const thlist = () => {
thdList(form).then(res => {
console.log("red", res.result.records)
tharrlist.value.push(...res.result.records);
status.value = res.result.total == tharrlist.value.length ? 'nomore' : 'loadmore';
if (form.pageNo == 1) {
cardcon(tharrlist.value[cardindex.value], cardindex.value);
// cardcon(tharrlist.value[cardindex.value], cardindex.value);
//
cardindex.value = cardindex.value;
cardtop.value = Math.floor(cardindex.value - 1) * 154;
console.log(tharrlist.value[cardindex.value])
wuliao();
thdNuMaterialList({ nuId: tharrlist.value[cardindex.value].nuId, id: tharrlist.value[cardindex.value].id }).then(res => {
console.log(res)
cardarr.value = res.result
})
}
})
}
@ -242,13 +260,13 @@
title: '提交成功'
})
setTimeout(() => {
th(tharrlist.value[cardindex.value],cardindex.value);
th(tharrlist.value[cardindex.value], cardindex.value);
cardcon(tharrlist.value[cardindex.value], cardindex.value);
}, 800)
} else {
uni.showToast({
icon: 'none',
title: res.result.message?res.result.message:res.message
title: res.result.message ? res.result.message : res.message
})
}
})
@ -299,7 +317,7 @@
</script>
<style scoped lang="less">
.thdfed{
.thdfed {
width: 4.9vw;
height: 4.9vw;
background: rgba(255, 255, 255, 0.86);
@ -310,7 +328,8 @@
align-items: center;
position: fixed;
right: 1vw;
bottom:4.3vw;
bottom: 4.3vw;
text {
min-width: 1.8vw;
height: 1.8vw;
@ -327,11 +346,13 @@
top: -0.8vw;
right: -0.8vw;
}
image{
image {
width: 3.3vw;
height: 3.3vw;
}
}
.carditem {
width: 100%;
@ -339,7 +360,7 @@
.thwl {
width: 100%;
height: 12vw;
height: 11vw;
}
.leftscrol {
@ -357,7 +378,7 @@
background: rgba(255, 255, 255, 0.6);
border-radius: 1.6vw;
padding: 1vw 1.4vw;
border: 2px solid rgba(255, 255, 255, 0.6);
border: 2px solid rgba(255, 255, 255, 0.01);
margin-bottom: 0.8vw;
position: relative;
@ -366,8 +387,8 @@
height: 1.2vw;
border-radius: 50%;
position: absolute;
right: 0;
top: 0;
right: -0.3vw;
top: -0.5%;
background: rgba(255, 87, 87, 1);
}
@ -643,6 +664,28 @@
-webkit-transform-style: preserve-3d;
-webkit-overflow-scrolling: touch;
}
.mhao {
position: absolute;
top: -0.2vw;
/* 根据视觉需要微调 */
right: -0.2vw;
box-sizing: border-box;
width: 1.8vw;
height: 1.8vw;
border-radius: 50%;
border: 1px solid #FF4E4E;
color: #FF4E4E;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
writing-mode: horizontal-tb;
overflow: hidden;
.mhao-font{
font-size: 25rpx;
letter-spacing: -0.05em; /* 负值 = 字符之间更近 */
}
}
</style>
<style>
page {