<template>
|
<view class="jihua-wrap">
|
<u-overlay :show="overlayShow" @click="overlayShow = false"></u-overlay>
|
<view class="qiehuan-box"><u-tabs :list="tabList" @click="tabClick"></u-tabs></view>
|
<view class="jihua-main">
|
<view class="shaixuan-box">
|
<u-radio-group v-model="radioValue" @change="groupChange">
|
<u-radio style="margin-right: 30rpx;" shape="square" label="全部" name="全部"></u-radio>
|
<u-radio style="margin-right: 30rpx;" shape="square" label="已设置的计划" name="已设置的计划"></u-radio>
|
<!-- <u-radio shape="square" label="未设置的计划" name="未设置的计划"></u-radio> -->
|
</u-radio-group>
|
</view>
|
<view class="main-inside">
|
<view v-if="isTomJihua == '全部'" class="totalListContainer">
|
<u-empty v-if="fyData.length == 0" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" class="empty-container"></u-empty>
|
<view id="u-dropdown" class="main-block-box" v-for="(item, index) in fyData" :key="item.orderId" ref="planViewRef">
|
<view class="jihua-main-line">
|
<view class="name">客户名称:{{item.customerName || ''}}</view>
|
</view>
|
<view class="jihua-main-line">
|
<view class="main-flex">
|
<view>煤种:{{ item.order.coalName || '' }}</view>
|
<view style="margin-right:10px">剩余量:{{ item.order.executiveSurplus || '' }} 吨</view>
|
</view>
|
</view>
|
<view class="jihua-main-line">
|
<view class="main-flex">
|
<view class="carNum-box">
|
<view>计划车数:</view>
|
<!-- <u--input placeholder="请输入发运车数" border="surround" v-model="item.numPlan" @change="inputChange" @focus="faYunPlanCarsFocus(item)"></u--input> -->
|
<view class="planCars" :style="{color:item.numPlan ? '#111':'#ccc'}" @click="faYunPlanCarsFocus(item)">
|
<text v-model="item.numPlan">{{ item.numPlan || '点击输入数量' }}</text>
|
<view class="cursor" v-if="isCursor && fayunPlanFocusId == item.orderId"><image src="@/static/cursor.gif" mode=""><image></view>
|
</view>
|
</view>
|
<view style="margin-right:10px">实际发车数:{{ item.numReal || '暂无' }}</view>
|
</view>
|
</view>
|
<u-keyboard
|
@change="valChange"
|
@backspace="backspace"
|
@confirm="keyBoardConfirm"
|
@cancel="keyBoardCancel"
|
@close="keyBoardClose"
|
:show="keyBoardShow"
|
ref="uKeyboard"
|
mode="number"
|
:overlay="false"
|
:closeOnClickOverlay="false"
|
:dotDisabled="true"
|
zIndex="100000"
|
></u-keyboard>
|
</view>
|
|
<u-button class="xiugai-btn" type="primary" text="提交" @click="submit"></u-button>
|
</view>
|
<view v-if="isTomJihua == '已设置的计划'">
|
<u-empty v-if="fyData.length == 0" mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png" class="empty-container"></u-empty>
|
<view class="main-block-box" v-for="(item, index) in fyData" :key="item.orderId">
|
<view class="jihua-main-line">
|
<view class="name">客户名称:{{ item.customerName || '' }}</view>
|
</view>
|
<view class="jihua-main-line">
|
<view class="main-flex">
|
<view>煤种:{{ item.order.coalName || '' }}</view>
|
<view style="margin-right:10px">剩余量:{{ item.order.executiveSurplus || '' }} 吨</view>
|
</view>
|
</view>
|
<view class="jihua-main-line">
|
<view class="main-flex">
|
<view class="carNum-box">
|
<view>计划车数:</view>
|
<!-- <u--input placeholder="请输入发运车数" border="surround" v-model="item.numPlan" @change="inputTotalChange(item)" @focus="faYunPlanCarsFocus(item)"></u--input> -->
|
<view class="planCars" :style="{color:item.numPlan ? '#111':'#ccc'}" @click="faYunPlanCarsFocus(item)">
|
<text v-model="item.numPlan">{{ item.numPlan || '点击输入数量' }}</text>
|
<view class="cursor" v-if="isCursor && fayunPlanFocusId == item.orderId">
|
<image src="@/static/cursor.gif" mode="" />
|
</view>
|
</view>
|
</view>
|
<view style="margin-right:10px">实际发车数:{{ item.numReal == null ? '暂无' : item.numReal }}</view>
|
</view>
|
</view>
|
<u-keyboard
|
@change="valChange"
|
@backspace="backspace"
|
@confirm="keyBoardConfirm"
|
@cancel="keyBoardCancel"
|
@close="keyBoardClose"
|
:show="keyBoardShow"
|
ref="uKeyboard"
|
mode="number"
|
:overlay="false"
|
:closeOnClickOverlay="false"
|
:dotDisabled="true"
|
zIndex="100000"
|
></u-keyboard>
|
</view>
|
</view>
|
</view>
|
</view>
|
|
<!-- 修改弹出框 -->
|
<u-popup :show="editPopupShow" @close="editPopupClose" @open="editPopupOpen" mode="top" round="10">
|
<view class="editPopup">
|
<view class="editPopup__title"><text>计划车数</text></view>
|
<view class="editPopup__input"><u--input v-model="keyBoardValue" @change="change" placeholder="请输入内容" type="number" border="surround"></u--input></view>
|
<!-- <view class="editPopup__btn"><u-button text="确定" type="primary" @click="popupDetermineClick"></u-button></view> -->
|
</view>
|
</u-popup>
|
|
<view class="back-top-container"><u-back-top :scroll-top="scrollTop" icon="arrow-up" mode="square"></u-back-top></view>
|
<!-- 菜单栏 -->
|
<popup-menu @menuShow="menushow" ref="menuRef"></popup-menu>
|
</view>
|
</template>
|
|
<script>
|
import popupMenu from '@/components/common/popup-menu/popup-menu.vue';
|
import tool from '@/utils/tool.js';
|
import { TrackOpTypes } from "vue";
|
export default {
|
components: {
|
popupMenu
|
},
|
data() {
|
return {
|
radioValue: '全部',
|
tabList: [
|
{
|
name: '今日发运计划'
|
},
|
{
|
name: '明日发运计划'
|
}
|
],
|
carValue: 0,
|
fyData: [],
|
fyData2: [],
|
info: {
|
shippingDate: this.todayDate()
|
},
|
isTomJihua: '全部',
|
editPopupShow:false,// 修改弹出框
|
editRow: '', //修改行的行
|
menuShow: false,
|
scrollTop: 0, // 返回顶部按钮绑定,
|
// 键盘
|
keyBoardShow: false,
|
keyBoardValue: '',
|
fayunPlanFocusId: null,
|
isCursor: false ,// 日计划车辆输入框焦点动画
|
overlayShow:false // 遮罩层
|
};
|
},
|
onShow() {
|
if (this.menuShow == true) {
|
this.$refs.menuRef.menuClick();
|
}
|
this.init();
|
},
|
onPageScroll(e) {
|
// 传入scrollTop值并触发所有easy-loadimage组件下的滚动监听事件
|
this.scrollTop = e.scrollTop;
|
// console.log('屏幕滚动监听事件',this.scrollTop);
|
},
|
// 点击导航栏菜单后
|
onNavigationBarButtonTap(e) {
|
this.$refs.menuRef.menuClick();
|
},
|
mounted() {
|
// setInterval(() => {
|
// uni.hideKeyboard();
|
// }, 1);
|
},
|
watch: {
|
isTomJihua: {
|
handler: function(newV, oldV) {
|
if (newV != oldV) {
|
this.keyBoardShow = false;
|
}
|
},
|
deep: true,
|
immediate: true
|
},
|
keyBoardValue: {
|
handler: function(newV, oldV) {
|
this.fyData.map(item => {
|
if ( this.isTomJihua == '全部'&&item.orderId == this.fayunPlanFocusId) {
|
if (item.numPlan && item.numPlan != newV) {
|
item.numPlan = this.keyBoardValue;
|
}
|
}
|
});
|
},
|
deep: true,
|
immediate: true
|
}
|
// scrollTop: {
|
// handler: function(newV, oldV) {
|
// if (newV != oldV) {
|
// this.keyBoardClose();
|
// // this.keyBoardShow = false;
|
// }
|
// },
|
// deep: true,
|
// immediate: true
|
// }
|
},
|
methods: {
|
init() {
|
this.fyList();
|
},
|
menushow(e) {
|
this.menuShow = e;
|
},
|
// 全部计划列表
|
fyList() {
|
this.overlayShow = true;
|
//列表查询
|
uni.showLoading({
|
title: '正在加载...'
|
});
|
let compId = uni.getStorageSync('userInfo').compId;
|
let params = {
|
current: 1,
|
size: 900,
|
status: 2,
|
trainType: 1,
|
compId: compId,
|
endDate: this.info.shippingDate
|
};
|
this.$reqGet('fyList', params).then(res => {
|
if (res.code == 0) {
|
this.fyData = res.data;
|
uni.hideLoading();
|
this.overlayShow = false;
|
}
|
});
|
},
|
// 已设置计划列表
|
xscarshippingdayplan() {
|
this.overlayShow = true;
|
//已经设置的
|
let params = {
|
current: 1,
|
size: 50,
|
shippingDate: this.info.shippingDate
|
};
|
uni.showLoading({
|
title: '正在加载...'
|
});
|
this.$reqGet('xscarshippingdayplan', params)
|
.then(res => {
|
if (res.code == 0) {
|
this.fyData = res.data.records;
|
uni.hideLoading();
|
this.overlayShow = false;
|
}
|
})
|
.catch(e => {
|
uni.hideLoading();
|
this.overlayShow = false;
|
});
|
},
|
//提交
|
dataFormSubmit() {
|
this.overlayShow = true;
|
uni.showLoading({
|
title:'加载中...'
|
})
|
this.fyData.forEach(e => {
|
if(!e.shippingDate && e.numPlan){
|
e.shippingDate = this.info.shippingDate
|
}
|
});
|
this.$reqPost('addObj', this.fyData).then(res => {
|
uni.hideLoading();
|
if(res.code == 0){
|
setTimeout(()=>{
|
uni.showToast({
|
title:'更新成功!',
|
icon:'none',
|
duration:1000
|
})
|
},0)
|
this.fyList();
|
}
|
});
|
},
|
// 全部日计划提交按钮防抖
|
submit:tool.throttle(function(){
|
this.dataFormSubmit();
|
}),
|
// 修改日计划按钮
|
getOrderCarNum() {
|
this.overlayShow = true;
|
uni.showLoading({
|
title:'加载中...'
|
})
|
//修改
|
this.$reqPost('setCarNums', this.editRow).then(res => {
|
uni.hideLoading();
|
if(res.code == 0){
|
// 设置setTimeout是避免uni.showToast被uni.showLoading覆盖掉
|
setTimeout(()=>{
|
uni.showToast({
|
title:'修改成功',
|
icon:'none',
|
duration:1000,
|
position:'bottom'
|
})
|
},0)
|
}else{
|
setTimeout(()=>{
|
uni.showToast({
|
title:'修改失败',
|
icon:'none',
|
duration:1000
|
})
|
},0)
|
}
|
this.overlayShow = false;
|
this.xscarshippingdayplan();
|
});
|
},
|
// 修改弹出框
|
editPopupClose(){
|
console.log('修改弹出框Close');
|
this.editPopupShow = false;
|
this.keyBoardShow = false;
|
},
|
editPopupOpen(){
|
console.log('修改弹出框Open');
|
},
|
// 切换全部和已设置
|
groupChange(n) {
|
this.initVariable();
|
this.isTomJihua = n;
|
if (n == '已设置的计划') {
|
this.xscarshippingdayplan();
|
} else {
|
this.fyList();
|
}
|
},
|
//切换今日和明日
|
tabClick(item) {
|
this.initVariable();
|
if (item.index == 1) {
|
this.info.shippingDate = this.tomorrowDate();
|
if (this.isTomJihua == '已设置的计划') {
|
this.xscarshippingdayplan();
|
} else {
|
this.fyList();
|
}
|
} else {
|
this.info.shippingDate = this.todayDate();
|
if (this.isTomJihua == '已设置的计划') {
|
this.xscarshippingdayplan();
|
} else {
|
this.fyList();
|
}
|
}
|
},
|
// 初始化变量
|
initVariable(){
|
this.keyBoardShow = false;
|
this.keyBoardValue = null;
|
this.fayunPlanFocusId = null;
|
uni.pageScrollTo({
|
scrollTop: 0,
|
duration: 300
|
});
|
},
|
inputChange(val) {
|
console.log('全部计划', val);
|
},
|
inputTotalChange(val) {
|
console.log(val, 'val2=======val2,已设置计划');
|
this.editRow = val;
|
},
|
// input获取焦点
|
faYunPlanCarsFocus(item) {
|
this.keyBoardShow = true;
|
this.fayunPlanFocusId = item.orderId;
|
this.keyBoardValue = item.numPlan + '';
|
if(this.isTomJihua == '已设置的计划'){
|
this.editPopupShow = true;
|
} else{
|
this.isCursor = true;
|
}
|
|
// 根据列表下标,使屏幕滚动到相应可视位置
|
for(let i = 0;i<this.fyData.length;i++){
|
if(this.fyData[i].orderId == item.orderId){
|
uni.pageScrollTo({
|
scrollTop: i*144,
|
duration: 300
|
});
|
}
|
}
|
|
},
|
// 键盘
|
valChange(val) {
|
// this.keyBoardValue += val;
|
// 将每次按键的值拼接到value变量中,注意+=写法
|
this.fyData.map(item => {
|
if (item.orderId == this.fayunPlanFocusId) {
|
if (item.numPlan) {
|
if(this.isTomJihua == '全部'){
|
item.numPlan = this.keyBoardValue += val + '';
|
this.keyBoardValue = item.numPlan;
|
}else{
|
this.keyBoardValue = this.keyBoardValue += val + '';
|
}
|
} else {
|
item.numPlan = val;
|
this.keyBoardValue = item.numPlan;
|
}
|
}
|
});
|
},
|
backspace() {
|
this.keyBoardValue = this.keyBoardValue.substr(0, this.keyBoardValue.length - 1);
|
},
|
// 键盘点击确定
|
keyBoardConfirm() {
|
if(this.isTomJihua == '已设置的计划'){
|
this.fyData.map(item => {
|
if (item.orderId == this.fayunPlanFocusId) {
|
item.numPlan = this.keyBoardValue;
|
this.editRow = item;
|
}
|
});
|
this.getOrderCarNum();
|
}
|
this.keyBoardClose();
|
},
|
keyBoardCancel() {
|
this.keyBoardClose();
|
},
|
// 键盘关闭了
|
keyBoardClose() {
|
this.fayunPlanFocusId = null;
|
this.keyBoardShow = false;
|
this.isCursor = false;
|
this.editPopupShow = false;
|
},
|
todayDate() {
|
let yes = new Date().getTime();
|
let date = new Date(yes);
|
let y = date.getFullYear();
|
let m = date.getMonth() + 1;
|
m = m < 10 ? '0' + m : m;
|
let d = date.getDate();
|
d = d < 10 ? '0' + d : d;
|
const time = y + '-' + m + '-' + d;
|
return time;
|
},
|
tomorrowDate() {
|
let yes = new Date().getTime() + 60 * 24 * 60 * 1000;
|
let date = new Date(yes);
|
let y = date.getFullYear();
|
let m = date.getMonth() + 1;
|
m = m < 10 ? '0' + m : m;
|
let d = date.getDate();
|
d = d < 10 ? '0' + d : d;
|
const time = y + '-' + m + '-' + d;
|
return time;
|
}
|
}
|
};
|
</script>
|
|
<style lang="scss" scoped>
|
::v-deep {
|
.u-tabs__wrapper__nav {
|
padding-left: vww(75.5);
|
}
|
|
.u-radio__text {
|
span {
|
font-size: vww(14);
|
}
|
}
|
.u-radio {
|
margin-right: vww(10);
|
}
|
.u-radio__text {
|
font-size: vww(14) !important;
|
}
|
.u-input {
|
height: vww(16);
|
width: vww(100);
|
z-index: 1;
|
}
|
|
.u-radio-group--row {
|
height: 100%;
|
width: 100%;
|
display: flex;
|
justify-content: right;
|
}
|
|
.u-radio__icon-wrap {
|
width: vww(18) !important;
|
height: vww(18) !important;
|
}
|
.u-icon__icon {
|
font-size: vww(12) !important;
|
line-height: vww(12) !important;
|
}
|
.u-empty {
|
width: 100%;
|
height: vww(300);
|
}
|
}
|
|
::v-deep.totalListContainer{
|
.u-button {
|
position: fixed !important;
|
left: 50%;
|
bottom: vww(20);
|
width: vww(200) !important;
|
transform: translateX(-50%);
|
border-radius: vww(20);
|
z-index: 9999;
|
}
|
}
|
|
|
.qiehuan-box {
|
position: fixed;
|
top: 0;
|
left: 0;
|
right: 0;
|
width: 100%;
|
height: vww(44);
|
z-index: 10;
|
background-color: #fff;
|
}
|
|
::v-deep.jihua-wrap {
|
width: 100%;
|
height: 100%;
|
// overflow-y: auto; // 会引起键盘弹出页面布局
|
display: flex;
|
flex-direction: column;
|
|
// .xiugai-btn {
|
// position: absolute;
|
// left: 50%;
|
// bottom: vww(20);
|
// width: vww(200);
|
// transform: translateX(-50%);
|
// border-radius: vww(20);
|
// }
|
|
}
|
|
.jihua-main {
|
display: flex;
|
flex-direction: column;
|
width: 100%;
|
padding: vww(44) vww(10) vww(270) vww(10);
|
box-sizing: border-box;
|
.main-inside {
|
width: 100%;
|
height: calc(100% - vww(44));
|
}
|
|
.shaixuan-box {
|
height: vww(40);
|
position: sticky;
|
top: vww(44);
|
left: 0;
|
right: 0;
|
width: 100%;
|
z-index: 10;
|
background-color: #fff;
|
}
|
|
.main-block-box {
|
box-shadow: 0px 0px 8px 0px rgba(216, 218, 238, 0.8);
|
height: vww(120);
|
padding: vww(10);
|
box-sizing: border-box;
|
margin-top: vww(12);
|
border-radius: vww(8);
|
&:first-child {
|
margin-top: vww(5);
|
}
|
.jihua-main-line {
|
width: 100%;
|
display: flex;
|
|
view {
|
font-size: vww(14);
|
}
|
|
.name {
|
font-weight: 600 !important;
|
}
|
|
.main-flex {
|
width: 100%;
|
display: flex;
|
justify-content: space-between;
|
view {
|
font-size: vww(14);
|
line-height: vww(32);
|
}
|
.carNum-box {
|
display: flex;
|
.planCars {
|
display: flex;
|
box-sizing: border-box;
|
overflow: auto;
|
width: vww(120);
|
border: 1px solid #dddddd;
|
border-radius: vww(4);
|
padding: vww(1) vww(10);
|
|
|
// 输入焦点图片
|
.cursor {
|
// float: left;
|
width: vww(1);
|
height: vww(15);
|
vertical-align: middle;
|
align-self: center;
|
image {
|
width: vww(1);
|
display: block;
|
height: vww(15);
|
}
|
}
|
}
|
view {
|
font-size: vww(14);
|
line-height: vww(32);
|
}
|
}
|
}
|
}
|
}
|
}
|
|
// 修改计划车辆弹出框
|
|
|
::v-deep.editPopup {
|
height: vww(110);
|
|
&__title {
|
margin-top: vww(10);
|
text-align: center;
|
}
|
|
&__input {
|
margin: vww(10) auto 0;
|
.u-input {
|
width:80%;
|
margin:0 auto!important;
|
border: 1px solid #dddddd;
|
}
|
}
|
|
// &__btn {
|
// margin: vww(80) auto;
|
// width: 50%;
|
// .u-button {
|
// height: vww(40);
|
// }
|
// }
|
}
|
</style>
|