You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1418 lines
39 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="page">
<view class="back"></view>
<view class="wrapnob">
<!-- 检索 -->
<view class="searchbg">
<u-form-item required label="工程" label-width="80rpx" label-position="left" prop="project">
<view class="selarr" @click="showgc()">
<text class="txt" v-if="page.project">{{page.project}}</text>
<text class="txt" v-else style="color:#999">请选择</text>
<uni-icons type="right" size="20" color="#999"></uni-icons>
</view>
<view class="icon-screen" @click="btnClick()"></view>
</u-form-item>
</view>
<!-- tab -->
<view v-if="ifsearch" class="tabs-box">
<scroll-view scroll-x class="nav" scroll-with-animation :scroll-left="scrollLeft">
<view class="cuitem" :class="index == tabCurrentIndex ? 'cur' : ''" v-for="(item, index) in list" :key="index" @tap="tabSelect" :data-id="index">
<view class="cucell">
<view class="text-title">
<text class="text-titlecolor" :class="index == tabCurrentIndex ? 'cur' : ''" >{{ item.name }}</text>
</view>
<view class="text-num">
<text class="text-numcolor" :class="index == tabCurrentIndex ? 'cur' : ''" >({{ item.slist.length}})</text>
</view>
<uni-icons :type="item.expanded ? 'arrowup' : 'arrowdown'" size="16" :color="index == tabCurrentIndex ?'#fff':'#999'" @tap="toggleGroupAll(index)"></uni-icons>
</view>
</view>
</scroll-view>
</view>
<view v-else style="margin: 20rpx;">
<view class="nosearch">~请输入查询条件查询托盘信息~</view>
</view>
<!-- 列表 -->
<swiper class="swiper-box" :duration="300" :current="tabCurrentIndex" @animationfinish="animationfinish">
<swiper-item class="swiper-item" v-for="tabItem in list" :key="tabItem.id">
<scroll-view scroll-y style="height: 100%;width: 100%;">
<!-- 装载信息区域 -->
<view class="loading-section">
<!-- 分组信息折叠面板 -->
<view class="accordion" v-for="(group, index) in tabItem.slist" :key="index+'-'+group.assemcode">
<view class="accordion-header" @tap="toggleGroup(index)">
<view class="header-list">
<view class="header-info">
<text class="group-title">
{{ tabCurrentIndex==0?'托盘表号:':(tabCurrentIndex==1?'制作图:':'') }}{{ tabCurrentIndex==0?group.instno:(tabCurrentIndex==1?group.dwgno:'') }}
</text>
<view class="group-title"> 配送比例:{{group.percent?group.percent+'%':'0.0%'}} </view>
</view>
<view class="header-info">
<text class="group-title"> 全部:{{group.tabs[0].count}}</text>
<text class="group-title"> 接收:{{group.tabs[1].count}} </text>
<text class="group-title"> 配送:{{group.tabs[2].count}} </text>
<text class="group-title"> 未配:{{group.tabs[3].count}} </text>
<text class="group-title"> 修改:{{group.tabs[4].count}} </text>
</view>
</view>
<uni-icons :type="group.expanded ? 'arrowup' : 'arrowdown'" size="16" color="#999"></uni-icons>
</view>
<view class="accordion-content" v-if="group.expanded">
<!-- 分组详细信息 -->
<view class="group-details">
<view class="detail-row">
<text class="detail-label">需求单位:</text>
<text class="detail-value">{{ retType(group.requireDepartCode,2) }}</text>
</view>
<view class="detail-row">
<text class="detail-label">需求日期:</text>
<text class="detail-value">{{ group.requireDate }}</text>
</view>
<view class="detail-row">
<text class="detail-label">需求地址:</text>
<text class="detail-value">{{ group.requireAddress }}</text>
</view>
<view class="detail-row">
<text class="detail-label">接收人:</text>
<text class="detail-value">{{ group.requireName }}</text>
</view>
<view class="detail-row">
<text class="detail-label">联系电话:</text>
<text class="detail-value">{{ group.requirePhone }}</text>
</view>
<view class="detail-row">
<text class="detail-label">部件数量:</text>
<text class="detail-value">{{ group.items?group.items.length:0 }}</text>
</view>
<view class="detail-row">
<text class="detail-label">配送时间:</text>
<text class="detail-value">{{ group.deliveryDate }}</text>
</view>
<view class="detail-row">
<text class="detail-label">配送车辆:</text>
<text class="detail-value">{{ group.deliveryCar }}</text>
</view>
<view class="detail-row">
<text class="detail-label">配送数量:</text>
<text class="detail-value">{{ group.deliveryNum }}</text>
</view>
<view class="detail-row">
<text class="detail-label">未配送数量:</text>
<text class="detail-value">{{ group.unDeliveryNum }}</text>
</view>
<view class="detail-row">
<text class="detail-label">实际接收人:</text>
<text class="detail-value">{{ group.receiveName }}</text>
</view>
<view class="detail-row">
<text class="detail-label">实际接收时间:</text>
<text class="detail-value">{{ group.receiveDate }}</text>
</view>
</view>
<!-- 状态选项卡 -->
<view class="tabs-container">
<view class="tabs-scroll">
<view class="tabs-wrapper">
<view
v-for="(tab, idx) in group.tabs"
:key="idx"
class="tab-item"
:class="{ active: group.activeTab === idx }"
@click="switchTab(index,idx)"
>
<text class="tab-count">{{ tab.count }}</text>
<text class="tab-text">{{ tab.name }}</text>
</view>
</view>
</view>
</view>
<!-- 管件清单明细 -->
<view class="item-list">
<view class="list-item"
v-for="(item,ii) in group.items" :key="ii"
v-if="(group.activeTab==0||(group.activeTab==1&&item.receiveDate)||(group.activeTab==2&&item.deliveryDate)
||(group.activeTab==3&&!item.deliveryDate)||(group.activeTab==4&&item.modifyMark=='Y'))"
:class="{ red: item.modifyType === 'Y',blue: item.deliveryDate?true:false,green: item.receiveDate?true:false }">
<view class="list-cell">
<view class="item-xuh" >
{{ ii==0?(group.xh=1,group.xh):++group.xh }}.
</view>
<view class="item-cell" style="padding-left:4rpx;">
件号: {{ item.assemcode || '-' }}
</view>
<view class="item-cell">
数量: {{ item.qty?(1.0*item.qty).toFixed(0) : '-' }}
</view>
</view>
<view class="list-cell">
<view class="item-cell">
规格: {{ item.spec || '-' }}
</view>
<view class="item-cell">
材质: {{ item.grd || '-' }}
</view>
</view>
<view class="list-cell">
<view class="item-cell">
状态: {{ item.status || '-' }}
</view>
<view class="item-cell">
时间: {{ item.statusDate || '-' }}
</view>
<view class="item-cell">
单位: {{ item.statusDept?retType(item.statusDept,2):'-' }}
</view>
</view>
<view class="list-cell">
<view class="item-cell">
配送时间: {{ item.deliveryDate || '-' }}
</view>
<view class="item-cell">
工装托盘: {{ item.palletNo || '-' }}
</view>
</view>
<view class="list-cell" v-if="item.modifyMark=='Y'">
<view class="item-cell">
修改说明: {{ item.modifyType +' ' + item.modifyDwgno }}
</view>
</view>
<view class="list-cell">
<view class="item-cell">
备注: {{ item.deliveryRemark || '-' }}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
</view>
<!-- 查看托盘基本信息 -->
<view class="u-shaixuan">
<u-popup v-model="show" @close="close" mode="top" :mask="true" :closeable="trayInfo&&trayInfo.loadId?true:false" close-icon-pos="top-right">
<view class="popcon">
<view class="list-itemh">
<view class="detail-rowh">
<text class="detail-labelh">外形尺寸:</text>
<text class="detail-valueh">{{ trayInfo.deliveryRemark || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">载重:</text>
<text class="detail-valueh">{{ trayInfo.load || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">使用状态:</text>
<text class="detail-valueh">{{ trayInfo.palletStatus || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">创建日期:</text>
<text class="detail-valueh">{{ trayInfo.createDate || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">备注:</text>
<text class="detail-valueh">{{ trayInfo.remark || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">存放部门:</text>
<text class="detail-valueh">{{ retType(trayInfo.departCode,2) || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">存放工场:</text>
<text class="detail-valueh">{{ trayInfo.workshop || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收/回收确认时间:</text>
<text class="detail-valueh">{{ trayInfo.confirmTime || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收/回收人确认电话:</text>
<text class="detail-valueh">{{ trayInfo.confirmPhone || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收/回收人确认备注:</text>
<text class="detail-valueh">{{ trayInfo.confirmRemark || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">装盘船只:</text>
<text class="detail-valueh">{{ trayInfo.loadProject || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">装盘安装托盘表号:</text>
<text class="detail-valueh">{{ trayInfo.loadInst || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">装盘数量:</text>
<text class="detail-valueh">{{ trayInfo.loadQty || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">装盘信息:</text>
<text class="detail-valueh">{{ trayInfo.loadDesc || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">装盘时间:</text>
<text class="detail-valueh">{{ trayInfo.loadTime || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">装盘人:</text>
<text class="detail-valueh">{{ trayInfo.loadName || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送单号:</text>
<text class="detail-valueh">{{ trayInfo.deliveryNo || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">车辆牌号:</text>
<text class="detail-valueh">{{ trayInfo.deliveryCar || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运部门代码:</text>
<text class="detail-valueh">{{ retType(trayInfo.fromDepartCode ,2) || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运工场:</text>
<text class="detail-valueh">{{ trayInfo.fromWorkshop || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运区域:</text>
<text class="detail-valueh">{{ trayInfo.fromLocation || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运地址:</text>
<text class="detail-valueh">{{ trayInfo.fromAddress || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运时间:</text>
<text class="detail-valueh">{{ trayInfo.fromTime || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运人员:</text>
<text class="detail-valueh">{{ trayInfo.fromName || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运人员电话:</text>
<text class="detail-valueh">{{ trayInfo.fromPhone || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">配送/转运备注:</text>
<text class="detail-valueh">{{ trayInfo.fromRemark || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">去向部门:</text>
<text class="detail-valueh">{{ retType(trayInfo.toDepartCode ,2) || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">去向工场:</text>
<text class="detail-valueh">{{ trayInfo.toWorkshop || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">去向区域:</text>
<text class="detail-valueh">{{ trayInfo.toLocation || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">去向地址:</text>
<text class="detail-valueh">{{ trayInfo.toAddress || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">去向接收人员:</text>
<text class="detail-valueh">{{ trayInfo.toName || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">去向接收人员电话:</text>
<text class="detail-valueh">{{ trayInfo.toPhone || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收部门:</text>
<text class="detail-valueh">{{ retType(trayInfo.receiveDepartCode ,2) || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收工场:</text>
<text class="detail-valueh">{{ trayInfo.receiveWorkshop || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收区域:</text>
<text class="detail-valueh">{{ trayInfo.receiveLocation || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收地址:</text>
<text class="detail-valueh">{{ trayInfo.receiveAddress || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收时间:</text>
<text class="detail-valueh">{{ trayInfo.receiveTime || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收人员:</text>
<text class="detail-valueh">{{ trayInfo.receiveName || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收人员电话:</text>
<text class="detail-valueh">{{ trayInfo.receivePhone || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">接收备注:</text>
<text class="detail-valueh">{{ trayInfo.receiveRemark || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">卸盘时间:</text>
<text class="detail-valueh">{{ trayInfo.finishTime || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">卸盘人员:</text>
<text class="detail-valueh">{{ trayInfo.finishName || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">卸盘人员电话:</text>
<text class="detail-valueh">{{ trayInfo.finishPhone || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">卸盘备注:</text>
<text class="detail-valueh">{{ trayInfo.finishRemark || '-' }}</text>
</view>
<view class="detail-rowh">
<text class="detail-labelh">操作图片:</text>
<text class="detail-valueh">
</text>
</view>
</view>
</view>
</u-popup>
</view>
<u-toast ref="uToast" />
<!-- 筛选 -->
<view class="u-shaixuan">
<u-popup v-model="pop1.show"
@close="close" :mode="pop1.mode" :mask="pop1.mask"
:closeable="pop1.closeable"
:close-icon-pos="pop1.closeIconPos">
<view class="popcon1">
<u-form-item label="分段" label-width="150rpx" label-position="left" prop="section">
<u-input :border="true" :height="60" placeholder="请输入" input-align="left" v-model="page.section" @input="input1" type="text" maxlength="200"></u-input>
</u-form-item>
<u-form-item label="制作图号" label-width="150rpx" label-position="left" prop="dwgno">
<u-input :border="true" :height="60" placeholder="请输入" input-align="left" v-model="page.dwgno" @input="input2" type="text" maxlength="200"></u-input>
</u-form-item>
<u-form-item label="安装托盘表号" label-width="180rpx" label-position="left" prop="instno">
<u-input :border="true" :height="60" placeholder="请输入" input-align="left" v-model="page.instno" @input="input3" type="text" maxlength="200"></u-input>
</u-form-item>
<view class="cu-form-group">
<u-button @click="resetClick" shape="square" size="mini" type="warning" style="width: 160rpx;">重置</u-button>
<u-button @click="searchClick" shape="square" size="mini" type="primary" style="width: 160rpx;"></u-button>
</view>
</view>
</u-popup>
</view>
<!-- 工程 -->
<tki-tree ref="gctree" :value="page.project" :range="gcs" rangeKey="bm" idKey="bm" @confirm="gctreeConfirm" @hide="gctreeConfirm" ></tki-tree>
</view>
</template>
<script>
import tkiTree from "@/components/areaTree/Linktree.vue";
export default {
components: {
tkiTree
},
data() {
return {
show: false,
ifsearch:false,
rmbm:"", // 工装托盘编号
trayInfo:{},// 托盘基本信息
ifsx: false,
pop1:{
title:'筛选',
text:'',
name:'',
show: false,
mode: 'top',
mask: true, // 是否显示遮罩
closeable: false,
closeIconPos: 'top-right'
},
page: {
project:"",
section:"",
palletNo:"",
dwgno:"",
instno:"",
},
tabCurrentIndex: 0,
loadStatus:'loadmore',
scrollLeft: 0,//tabs
list:[
// {
// id:'gc',
// loadStatus:'loadmore',
// num: 0,
// name:'工程',
// expanded:false,
// slist:[]
// },
{
id:'tph',
loadStatus:'loadmore',
num: 0,
name:'托盘表号',
expanded:false,
slist:[]
},
{
id:'zzt',
loadStatus:'loadmore',
num: 0,
name:'制作图',
expanded:false,
slist:[]
},
],
address:[],
users:[],
depts:[],
dicts:[],
gcs:[],
status:[],
};
},
onLoad(option) {
console.log(option)
if(option.project){
this.page.project=option.project;
this.$forceUpdate();
}
if(option.instno){
this.page.instno=option.instno;
this.$forceUpdate();
}
if(option.dwgno){
this.page.dwgno=option.dwgno;
this.$forceUpdate();
}
this.btnClick();
// 先加载分类
this.getTypes();
},
methods: {
input1(e){
if(e){
this.page.section= e.toUpperCase();
this.$forceUpdate();
}
},
input2(e){
console.log(e)
if(e){
this.page.dwgno= e.toUpperCase();
this.$forceUpdate();
}
},
input3(e){
console.log(e)
if(e){
this.page.instno= e.toUpperCase();
this.$forceUpdate();
}
},
btnClick() {
this.pop1.show = true;
this.ifsx=false;
},
resetClick() {
this.page = {
project:"",
section:"",
palletNo:"",
dwgno:"",
instno:"",
};
// this.reset();
// this.pop1.show = false;
},
searchClick() {
if(!this.page.project){
uni.showModal({
title: "查询提示",
content: "请选择工程",
showCancel: false,
confirmText: "确定"
});
return false;
}
this.reset();
this.pop1.show = false;
},
// 重新查询数据
reset(){
if(!this.page.project&&!this.page.section&&!this.page.palletNo&&!this.page.dwgno){
uni.showModal({
title: '提示',
content: '请输入查询条件查询!确定要查询全部数据吗?',
cancelText: '取消',
confirmText: '确定',
success: ress => {
if (ress.confirm) {
this.getYpDetail();
}
else{
return false
}
}
});
}
else{
this.getYpDetail();
}
},
close() {
this.show = false;
},
open() {
this.show = true;
},
// 选择条件
showgc(e) {
this.$refs.gctree._show();
},
gctreeConfirm(val) {
// 选择工程
if (val && val.length > 0) {
this.page.project = val[val.length - 1].bm;
}
else{
this.page.project = "";
}
this.$forceUpdate();
},
toggleGroupAll(index) {
var that=this;
if(index==this.tabCurrentIndex){
this.list[index].expanded = !this.list[index].expanded;
this.list[index].slist.forEach((item,ii) => {
this.list[index].slist[ii].expanded=that.list[index].expanded;
});
this.$forceUpdate();
}
},
toggleGroup(index) {
this.list[this.tabCurrentIndex].slist[index].expanded = !this.list[this.tabCurrentIndex].slist[index].expanded;
this.$forceUpdate();
},
async getYpDetail() {
this.ifsearch=true;
// 查询托盘明细
uni.showLoading({
title: '数据加载中...'
});
// 查询 托盘基本信息
// this.page.project="T300K-106";
console.log("this.page",this.page)
const {data: res} = await uni.$http.get('/searchInstdetail',this.page);
if(res.success){
this.list[0].slist=[];
this.list[1].slist=[];
// this.list[2].slist=[];
if(res.data&&res.data.length>0){
// 全部数据加载
this.list[this.tabCurrentIndex].loadStatus="nomore";
res.data.forEach((cell,idx)=>{
// 托盘表号
var findx = this.list[0].slist.findIndex(item => item.instno === cell.instno); // true
if(findx<0){
var add = {
expanded:false,
activeTab:0,
items:[cell],
project:cell.project,
instno:cell.instno,
requireDepartCode:cell.requireDepartCode,
requireRate:cell.requireRate,
requireAddress:cell.requireAddress,
requireName:cell.requireName,
requirePhone:cell.requirePhone,
qty:cell.qty,
deliveryNum:0,
unDeliveryNum:0,
deliveryDate:cell.deliveryDate,
requireDate:cell.requireDate,
deliveryCar:cell.deliveryCar,
receiveName:cell.receiveName,
receiveDate:cell.receiveDate,
};
this.list[0].slist.push(add);
}
else {
this.list[0].slist[findx].items.push(cell);
}
//
findx = this.list[1].slist.findIndex(item => item.dwgno === cell.dwgno); // true
if(findx<0){
var add = {
expanded:false,
activeTab:0,
items:[cell],
project:cell.project,
instno:cell.instno,
dwgno:cell.dwgno,
requireDepartCode:cell.requireDepartCode,
requireRate:cell.requireRate,
requireAddress:cell.requireAddress,
requireName:cell.requireName,
requirePhone:cell.requirePhone,
qty:cell.qty,
deliveryNum:0,
unDeliveryNum:0,
deliveryDate:cell.deliveryDate,
requireDate:cell.requireDate,
deliveryCar:cell.deliveryCar,
receiveName:cell.receiveName,
receiveDate:cell.receiveDate,
};
this.list[1].slist.push(add);
}
else {
this.list[1].slist[findx].items.push(cell);
}
});
this.list[0].slist.forEach((cell,idx)=>{
this.list[0].slist[idx]["deliveryNum"]=this.getdeliveryNum(cell.items);
this.list[0].slist[idx]["unDeliveryNum"]=this.getunDeliveryNum(cell.items);
this.list[0].slist[idx]["deliveryDate"]=this.getdeliveryDate(cell.items);
this.list[0].slist[idx]["requireDate"]=this.getrequireDate(cell.items);
this.list[0].slist[idx]["tabs"]=this.gettabs(cell.items);
this.list[0].slist[idx]["percent"]=(this.getpercent(cell.items)).toFixed(1);
this.$forceUpdate();
});
this.list[1].slist.forEach((cell,idx)=>{
this.list[1].slist[idx]["deliveryNum"]=this.getdeliveryNum(cell.items);
this.list[1].slist[idx]["unDeliveryNum"]=this.getunDeliveryNum(cell.items);
this.list[1].slist[idx]["deliveryDate"]=this.getdeliveryDate(cell.items);
this.list[1].slist[idx]["requireDate"]=this.getrequireDate(cell.items);
this.list[1].slist[idx]["tabs"]=this.gettabs(cell.items);
this.list[1].slist[idx]["percent"]=(this.getpercent(cell.items)).toFixed(1);
this.$forceUpdate();
});
this.$forceUpdate();
console.log(this.list[0].slist,this.list[1].slist)
}
else{
this.list[this.tabCurrentIndex].loadStatus="nomore";
}
}
else{
this.list[this.tabCurrentIndex].loadStatus="nomore";
}
},
switchTab(ii,kk){
this.list[this.tabCurrentIndex].slist[ii].activeTab=kk;
this.list[this.tabCurrentIndex].slist[ii].xh=0;
this.$forceUpdate();
},
getpercent(items){
var all=0,ps=0,xg=0,percent=0;
if (items&&items.length>0) {
items.forEach(cell=>{
all=all+(1.0*cell.qty);
// c) 配送deliveryDate!=
if(cell.deliveryDate){
ps=ps+(1.0*cell.qty);
}
// e) 修改modifyMark=Y modify_mark为新增字段
if(cell.modifyMark== 'Y'){
xg=xg+(1.0*cell.qty);
}
});
percent=(all-xg)?(ps-xg)*100/(all-xg):0;
}
return percent;
},
gettabs(items){
var tabs=[
{ name: '全部', count: 0 },
{ name: '接收', count: 0 },
{ name: '配送', count: 0 },
{ name: '未配', count: 0 },
{ name: '修改', count: 0 }
];
if (items&&items.length>0) {
tabs[0].count=items.length;
items.forEach(cell=>{
// b) 接收receiveDate!=
if(cell.receiveDate){
tabs[1].count=tabs[1].count+1;
}
// c) 配送deliveryDate!=
if(cell.deliveryDate){
tabs[2].count=tabs[2].count+1;
}
// d) 未配deliveryDate=
if(!cell.deliveryDate){
tabs[3].count=tabs[3].count+1;
}
// e) 修改modifyMark=Y modify_mark为新增字段
if(cell.modifyMark== 'Y'){
tabs[4].count=tabs[4].count+1;
}
});
}
return tabs;
},
getunDeliveryNum(items){
var num=0
if (items&&items.length>0) {
items.forEach((cell,idx)=>{
// console.log(cell.deliveryDate)
if(cell.deliveryDate==''||cell.deliveryDate==null||cell.deliveryDate==undefined){
num=num+1.0*(cell.qty?cell.qty:0);
}
});
// console.log(num.toFixed(2))
return num.toFixed(2);
}
else{
return 0;
}
},
getdeliveryNum(items){
var num=0
if (items&&items.length>0) {
items.forEach((cell,idx)=>{
// console.log(cell.deliveryDate)
if(cell.deliveryDate){
num=num+1.0*(cell.qty?cell.qty:0);
}
});
// console.log(num.toFixed(2))
return num.toFixed(2);
}
else{
return 0;
}
},
getdeliveryDate(items){
var date=''
if (items&&items.length>0) {
items.forEach((cell,idx)=>{
if(cell.deliveryDate){
date=this.compareDate(date,cell.deliveryDate);
if(!date){
date=cell.deliveryDate;
}
else{
if(this.compareDate(date,cell.deliveryDate)){
date=cell.deliveryDate;
}
}
}
});
}
return date;
},
getrequireDate(items){
var date=''
if (items&&items.length>0) {
items.forEach((cell,idx)=>{
if(cell.requireDate){
date=this.compareDate(date,cell.requireDate);
if(!date){
date=cell.requireDate;
}
else{
if(this.compareDate(date,cell.requireDate)){
date=cell.requireDate;
}
}
}
});
}
return date;
},
compareDate(timeStr1,timeStr2){
let date1 = new Date(timeStr1);
let date2 = new Date(timeStr2);
if (date1 < date2) {
return true;
} else if (date1 >= date2) {
return false;
}
},
getTypes() {
//获取数据字典
this.gcs=[];
this.status=[];
var commondata = uni.getStorageSync("commondata");
if(commondata){
var data = JSON.parse(commondata);
if(data){
this.users=data.users;
this.dicts=data.dicts;
this.depts=data.depts;
this.address=data.address;
this.dicts.forEach(cell=>{
if("PJCD"==cell.bmlb&&cell.zfbs!=='1'){
// 工程
this.gcs.push(cell);
}
if("TPZT"==cell.bmlb){
// 托盘转运状态
this.status.push(cell);
}
});
console.log(this.gcs)
this.$forceUpdate();
}
}
else{
this.users=[];
this.dicts=[];
this.depts=[];
this.address=[];
}
},
retType(type,str) {
var rets = '';
if(str==1){
// 状态
this.status.forEach((cell,idx)=>{
if(type==cell.bm){
rets=cell.bmsm;
return;
}
});
if(!rets){
rets="其他"
}
}
else if(str==2){
// 部门
this.depts.forEach((cell,idx)=>{
if(type==cell.departCode){
rets=cell.departName;
return;
}
});
}
if(!rets){
rets=type
}
return rets;
},
tabSelect(e) {
// 选项卡
this.tabCurrentIndex = e.currentTarget.dataset.id;
this.scrollLeft = (e.currentTarget.dataset.id - 1) * 200;
},
animationfinish({ detail: { current } }) {
this.tabCurrentIndex = current;
this.tabsetDx();
},
tabsetDx() {
this.scrollLeft = (this.tabCurrentIndex - 1) * 200;
},
}
}
</script>
<style lang="scss" scoped>
.u-drawer{
top:calc(var(--window-top) + 100rpx) !important;
height: calc(100vh - var(--window-top) - 100rpx) !important;
z-index: 92 !important;
}
.popcon1{
padding: 0 20rpx 10rpx;
}
.popcon{
height: calc(100vh - 100rpx) !important;
/* #ifdef H5 */
height: calc(100vh - var(--window-top) - 100rpx) !important;
/* #endif */
overflow-y: auto;
}
::v-deep uni-picker > .uni-picker-container {
z-index: 12998 !important;
}
::v-deep uni-picker > .uni-mask {
z-index: 12999 !important;
}
.searchinput {
margin-right: 40rpx !important;
}
.u-size-default {
padding: 10rpx !important;
}
.u-shaixuan {
text-align: center;
z-index: 90 !important;
}
.cu-form-group .title {
font-size: 26rpx !important;
}
.cu-form-group uni-picker .picker {
font-size: 26rpx !important;
}
.searchbg{
width: 100%;
position: relative;
display: block;
overflow: hidden;
padding: 14rpx 20rpx 10rpx 20rpx;
background-color: #fff;
margin-bottom: 20rpx;
}
.u-drawer.timetip {
height: calc(100vh - var(--window-top) - 100rpx) !important;
top: 0 !important;
bottom: auto !important;
}
.cu-form-group {
::v-deep .u-mask {
margin-top: -300rpx !important;
}
}
.icon-screen{
position: absolute;
top: 20rpx;
right: 0;
width: 36rpx;
height:35rpx;
background: url('../../static/images/shaixuan.png') no-repeat center center;
background-size: 100% auto;
}
.selnodate{
width: 400rpx;
height: 30rpx;
background: url('@/static/images/xiayiji.png') no-repeat center right;
background-size:auto 88%;
padding-right: 50rpx;
text-align: right;
color: rgb(192, 196, 204);
}
::v-deep .u-form-item {
color: #000;
font-size: 28rpx !important;
padding: 6rpx;
background-color: #fff;
}
::v-deep .u-form-item--left {
margin: 0 0 0 18rpx !important;
width: 150rpx;
}
.selarr {
height: 100%;
line-height: 1;
text-align: right;
display: flex;
flex: 1;
flex-direction: row;
align-items: center;
margin-right: 32rpx;
.txt{
display: flex;
justify-content: flex-end;
flex: 1;
}
}
.info-card {
background-color: #fff;
border-radius: 12rpx;
padding:20rpx 30rpx;
margin-bottom: 20rpx;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
margin: 10rpx 20rpx 0;
}
.info-row {
display: flex;
justify-content: space-between;
}
.label {
display: flex;
flex: 1;
font-size: 28rpx;
color: #666;
}
.value {
font-size: 28rpx;
color: #333;
}
.status-01 {
color: #1890ff;
}
.status-02 {
color: #00c853;
}
.status-03 {
color: #ffab00;
}
.status-04 {
color: #fa3534;
}
.loading-section {
margin-bottom: 20rpx;
}
.accordion {
background-color: #fff;
border-radius: 12rpx;
margin-bottom: 20rpx;
overflow: hidden;
box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);
}
.accordion-header {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20rpx;
background-color: #f5f5f5;
}
.header-list {
display: flex;
flex-direction: column;
}
.header-info {
display: flex;
align-items: center;
}
.group-title {
font-size: 30rpx;
font-weight: bold;
color: #333;
margin-right: 16rpx;
}
.group-tray {
font-size: 26rpx;
color: #666;
margin-right: 16rpx;
}
.accordion-content {
padding: 30rpx;
}
.group-details {
margin-bottom: 30rpx;
}
.detail-row {
display: flex;
margin-bottom: 20rpx;
}
.detail-row:last-child {
margin-bottom: 0;
}
.detail-label {
font-size: 26rpx;
color: #666;
width: 160rpx;
}
.detail-value {
font-size: 26rpx;
color: #333;
flex: 1;
}
.tabs-container {
background-color: #ffffff;
margin:0 0;
}
.tabs-scroll {
white-space: nowrap;
padding: 0 0 20rpx;
}
.tabs-wrapper {
display: inline-flex;
width: 100%;
}
.tab-item {
padding: 10rpx 30rpx;
margin: 0 10rpx 0 0;
border-radius: 20rpx;
background-color: #f5f5f5;
display: flex;
flex-direction: column;
align-items: center;
width: 20%;
}
.tab-item.active {
background-color: #007aff;
}
.tab-text {
font-size: 28rpx;
color: #333;
margin-right: 8rpx;
}
.tab-item.active .tab-text {
color: #ffffff;
}
.tab-count {
font-size: 32rpx;
font-weight: 600;
color: #333;
}
.tab-item.active .tab-count {
color: rgba(255, 255, 255, 0.8);
}
.item-list {
width: 100%;
display: flex;
flex-direction: column;
}
.list-item {
border: 1rpx solid #e0e0e0;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
border-radius: 8rpx;
display: flex;
flex-direction: column;
width: 100%;
margin-bottom: 20rpx;
padding: 10rpx;
background-color: #fafafa;
}
.list-item {
border: 1rpx solid #e0e0e0;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
border-radius: 8rpx;
display: flex;
flex-direction: column;
width: 100%;
margin-bottom: 20rpx;
padding: 10rpx;
background-color: #fafafa;
}
.list-item.red{
color:#de0000;
}
.list-item.blue{
color:#2196f3;
}
.list-item.green{
color:#18b566;
}
.list-cell{
display: flex;
flex-direction: row;
width: 100%;
}
.item-xuh{
text-align: center;
font-size: 28rpx;
padding: 6rpx 0 6rpx 0;
word-break: break-all;
}
.item-cell {
text-align: center;
font-size: 28rpx;
padding: 6rpx 0 6rpx 30rpx;
word-break: break-all;
}
.swiper-box {
flex: 1;
height: calc(100vh - 230rpx) !important;
/* #ifdef H5 */
height: calc(100vh - var(--window-top) - 230rpx) !important;
/* #endif */
margin: 0 20rpx;
}
.cuitem.cur {
background: #007aff !important;
}
.tabs-box {
padding:20rpx 20rpx 10rpx 20rpx;
.cuitem {
position: relative;
display: inline-block;
overflow: hidden;
background: #fff;
padding: 10rpx;
width: 48%;
margin: 0 2% 0 0;
border-radius: 12rpx;
text-align: center;
.cucell{
width: 100%;
display: flex;
flex-direction: row;
align-items: center;
height: 60rpx;
justify-content: center;
}
.text-num {
font-size: 26rpx;
margin-right: 10rpx;
.text-numcolor {
color: #33383c;
}
.text-numcolor.cur {
color: #fff;
}
}
.text-title {
font-size: 26rpx;
.text-titlecolor {
color: #33383c;
}
.text-titlecolor.cur {
color: #ffffff;
}
}
}
.tabs-all {
color: #33383c;
font-size: 26rpx;
font-weight: 600;
margin-top: 16rpx;
position: relative;
text-align: left;
}
}
.nosearch{
background-color: #FFFFFF;
background-image: url('../../static/image/search.png');
background-repeat: no-repeat;
background-position: center center;
background-size: 66% 66%;
height: 600rpx;
border-radius: 0 0 20rpx 20rpx;
color: #666;
display: flex;
align-items: center;
justify-content: flex-end;
width: 100%;
flex-direction: column;
padding-bottom: 40rpx;
}
.nodata{
background-color: #FFFFFF;
background-image: url('../../static/image/nodata.jpg');
background-repeat: no-repeat;
background-position: center center;
background-size: 66% 66%;
height: 600rpx;
border-radius: 0 0 20rpx 20rpx;
color: #666;
display: flex;
align-items: center;
justify-content: flex-end;
width: 100%;
flex-direction: column;
padding-bottom: 40rpx;
}
.new-data-box {
width: 600rpx;
margin: 60rpx 30rpx;
overflow-y: auto;
}
.list-container {
flex: 1;
overflow-y: auto;
height: calc(100vh - 90rpx) !important;
/* #ifdef H5 */
height: calc(100vh - var(--window-top) - 90rpx) !important;
/* #endif */
}
.list-itemh {
background-color: #ffffff;
padding: 30rpx;
margin: 20rpx;
border-radius: 12rpx;
overflow: hidden;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.1);
}
.detail-rowh {
display: flex;
justify-content: space-between;
margin-bottom: 15rpx;
}
.detail-labelh {
width: 160rpx;
font-size: 26rpx;
color: #999999;
text-align: left;
}
.detail-valueh {
flex: 1;
font-size: 26rpx;
color: #333333;
text-align: left;
}
.empty-state {
display: flex;
justify-content: center;
align-items: center;
height: 400rpx;
background-color: #ffffff;
border-radius: 12rpx;
margin-top: 20rpx;
}
.empty-text {
font-size: 28rpx;
color: #999999;
}
</style>