dev4
Panzihang 2023-11-13 18:02:20 +08:00
parent 62c351d1f1
commit fd15de8d51
13 changed files with 586 additions and 392 deletions

View File

@ -2,7 +2,7 @@
export default {
onLaunch: function() {
plus.screen.lockOrientation('landscape-primary'); //
plus.navigator.setFullscreen(true); //(:)
// plus.navigator.setFullscreen(true); //(:)
},
}
</script>

View File

@ -25,8 +25,8 @@
</view>
<view class="infoList" v-if="infoType">
<view class="userInfo">
<p>张星星 - 堆场计划员</p>
<p>12341234567</p>
<p>{{userInfo.name}}</p>
<p>{{userInfo.phone}}</p>
</view>
<!-- <view class="borTop" @click="messageSql('center')">
<uni-icons type="vip" size="16" />
@ -157,8 +157,33 @@
this.loginObj = uni.getStorageSync('loginObj')
this.activeIndex = uni.getStorageSync("selectPortIndex")
this.navList[this.navIndex].type = true
this.getUser()
},
methods: {
//
getUser() {
uni.request({
url: `${this.$local}/api/miniapp/user/info`,
header: {
'Content-Type': 'application/json', //
'Authorization': `Bearer ${this.loginObj.access_token}`
},
method: 'GET', //
success: (res) => {
this.userInfo = res.data.data
console.log(this.userInfo)
uni.setStorageSync('userInfo', this.userInfo)
},
fail: function(err) {
that.lotusLoadingData.isShow = false
uni.showModal({
title: '提示',
showCancel: false,
content: '请求超时,请退出重新进入!'
})
}
})
},
maskClick() {
this.infoType = false
},
@ -400,7 +425,7 @@
.headInfo {
width: 100%;
height: 66px;
line-height: 66px;
line-height: 50px;
background-color: #fff;
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.10);
border-radius: 1px;
@ -483,15 +508,15 @@
.infoList {
width: 200px;
padding: 10px 20px;
border-radius: 8px;
background-color: #fff;
z-index: 999;
display: flex;
flex-direction: column;
justify-content: space-between;
position: absolute;
right: 0;
right: 2px;
top: 60px;
box-shadow: 1px 1px 6px 0 rgba(52, 52, 52, 0.20);
.borTop {
border-top: 1px #ccc solid;
@ -506,7 +531,6 @@
.popupBox {
width: 280px;
height: 320px;
overflow: scroll;
.popupTitle {
width: 100%;
@ -521,6 +545,8 @@
.ul {
padding: 30px;
height: 213px;
overflow: scroll;
.li {
height: 40px;

View File

@ -143,7 +143,6 @@
top: 0;
left: 0;
background-color: #fff;
border-bottom: 1px solid #999999;
width: 100%;
height: 68px;
line-height: 68px;

View File

@ -17,6 +17,11 @@
"autoclose" : true,
"delay" : 0
},
"statusbar" : {
"immersed" : false,
"style" : "light",
"background" : "transparent"
},
/* */
"modules" : {
"SQLite" : {},

View File

@ -58,6 +58,7 @@
@change="changePage" />
</view> -->
</view>
<LotusLoading :lotusLoadingData="lotusLoadingData"></LotusLoading>
</view>
</view>
</template>
@ -65,6 +66,7 @@
<script>
import HeadInfo from '@/components/head-info/head-info';
import api from "../../common/api.js"
import LotusLoading from "../../components/Winglau14-lotusLoading/Winglau14-LotusLoading.vue";
let timers = null;
export default {
data() {
@ -96,7 +98,11 @@
current: 1,
//
portObj: {}
portObj: {},
lotusLoadingData: {
isShow: false //truefalse
}
}
},
onLoad() {
@ -107,6 +113,7 @@
onReachBottom() {
this.current++
this.initData()
this.lotusLoadingData.isShow = true
},
onBackPress(options) {
// uni.navigateBack 使
@ -117,7 +124,8 @@
}
},
components: {
HeadInfo
HeadInfo,
LotusLoading
},
mounted() {
this.initData()
@ -176,6 +184,7 @@
},
//
onSearch() {
this.itemList = []
this.initData()
},
initData() {
@ -192,6 +201,7 @@
},
method: 'GET', //
success: (res) => {
this.lotusLoadingData.isShow = false
this.total = res.data.data.total
this.itemList.push(...res.data.data.records)
}
@ -232,7 +242,7 @@
position: fixed;
top: 66px;
right: 0;
z-index: 999;
z-index: 995;
.end {
display: flex;

View File

@ -1,6 +1,6 @@
<template>
<view class="app">
<head-view title="卸船指令"></head-view>
<head-view :title="title"></head-view>
<view class="content contentFixed">
<view class="buttonlist">
<template v-if="tabsValue == 0">
@ -22,7 +22,7 @@
<view class="inputBox">
<view class="leftInput">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="船名/航次/提单号" @iconClick="search"></uni-easyinput>
placeholder="提单号" @iconClick="search"></uni-easyinput>
</view>
<view class="rightInput">
<superwei-combox class="input" :candidates="brandList" :isJSON="true"
@ -73,111 +73,115 @@
</template>
</view>
<template v-if="itemList.length > 0">
<view class="itemList">
<view class="exp" v-for="(item,index) in itemList" :key="item.index">
<view class="item">
<view class="row">
<view class="title">
<image class="titleImg" src="../../static/images/zlIcon.png"
mode="widthFix">
</image>
<view class="text">
品牌{{item.brdName}}
</view>
</view>
<view class="schedule">
<text class="text">卸船进度</text>
<view class="progressBox">
<van-progress color="#0067CF" stroke-width="6px" :show-pivot="false"
track-color="#DEE9F5"
:percentage="itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)" />
</view>
<text>{{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}%</text>
</view>
<view class="planStatus planStatus0" v-if="item.totalPlanStatus == 0">
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus3" v-else-if="item.totalPlanStatus == 3">
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus5" v-else-if="item.totalPlanStatus == 5">
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus1" v-else>
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
</view>
<view class="row">
<view class="rowInfo">
<view class="col">
<text>车辆数量</text>
<text>{{item.vehicleCount}}</text>
</view>
<view class="col">
<text>备件数量</text>
<text>{{item.sparePartsCount}}</text>
</view>
<view class="col">
<text>总指令发送人</text>
<text>{{item.totalSendUser}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>负责人</text>
<text>{{item.responsiblePerson}}</text>
</view>
<view class="col">
<text>发送时间</text>
<text>{{item.totalSendTime}}</text>
</view>
</view>
</view>
<view class="expand" v-if="itemActive != index" @click="isActive(index)">
展开
</view>
<view class="expand" v-else @click="itemActive = '-1'">
收起
</view>
</view>
<view class="details">
<view class="itemDetails" v-show="itemActive == index">
<template v-for="(item2,index2) in item.infoList">
<view class="detailsBox" :key="index2">
<view class="title">
<text>{{item2.mnfBl}}</text>
<button @click="toDetails(item,item2)"></button>
</view>
<view class="info">
<view class="cell">
<text>车型</text>
<text>{{item2.bvmName}}</text>
</view>
<view class="cell">
<text>型号</text>
<text>{{item2.model}}</text>
</view>
<view class="cell">
<text>数量</text>
<text>{{item2.amount}}</text>
</view>
<view class="cell">
<text>场位</text>
<text>{{item2.yardPos}}</text>
</view>
<view class="itemBox">
<view class="itemList">
<view class="exp" v-for="(item,index) in itemList" :key="item.index">
<view class="item">
<view class="row">
<view class="title">
<image class="titleImg" src="../../static/images/zlIcon.png"
mode="widthFix">
</image>
<view class="text">
品牌{{item.brdName}}
</view>
</view>
</template>
<view class="schedule">
<text class="text">卸船进度</text>
<view class="progressBox">
<van-progress color="#0067CF" stroke-width="6px"
:show-pivot="false" track-color="#DEE9F5"
:percentage="itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)" />
</view>
<text>{{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}%</text>
</view>
<view class="planStatus planStatus0" v-if="item.totalPlanStatus == 0">
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus3"
v-else-if="item.totalPlanStatus == 3">
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus5"
v-else-if="item.totalPlanStatus == 5">
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus1" v-else>
<text class="text">{{item.totalPlanStatusDesc}}</text>
</view>
</view>
<view class="row">
<view class="rowInfo">
<view class="col">
<text>车辆数量</text>
<text>{{item.vehicleCount}}</text>
</view>
<view class="col">
<text>备件数量</text>
<text>{{item.sparePartsCount}}</text>
</view>
<view class="col">
<text>总指令发送人</text>
<text>{{item.totalSendUser}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>负责人</text>
<text>{{item.responsiblePerson}}</text>
</view>
<view class="col">
<text>发送时间</text>
<text>{{item.totalSendTime}}</text>
</view>
</view>
</view>
<view class="expand" v-if="itemActive != index" @click="isActive(index)">
展开
</view>
<view class="expand" v-else @click="itemActive = '-1'">
收起
</view>
</view>
<view class="details">
<view class="itemDetails" v-show="itemActive == index">
<template v-for="(item2,index2) in item.infoList">
<view class="detailsBox" :key="index2">
<view class="title">
<text>{{item2.mnfBl}}</text>
<button @click="toDetails(item,item2)"></button>
</view>
<view class="info">
<view class="cell">
<text>车型</text>
<text>{{item2.bvmName}}</text>
</view>
<view class="cell">
<text>型号</text>
<text>{{item2.model}}</text>
</view>
<view class="cell">
<text>数量</text>
<text>{{item2.amount}}</text>
</view>
<view class="cell">
<text>场位</text>
<text>{{item2.yardPos}}</text>
</view>
</view>
</view>
</template>
</view>
</view>
</view>
</view>
</view>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
<view class="pageBox" v-if="itemList.length > 0">
<!-- <view class="pageBox" v-if="itemList.length > 0">
<uni-pagination :show-icon="true" :total="total" :pageSize="pageSize" :current="current"
@change="changePage" />
</view>
</view> -->
</view>
</custom-tab-pane>
<custom-tab-pane label="分指令" name="c1_2">
@ -187,7 +191,7 @@
<view class="inputBox">
<view class="leftInput">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="船名/航次/提单号" @iconClick="search"></uni-easyinput>
placeholder="提单号" @iconClick="search"></uni-easyinput>
</view>
<view class="rightInput">
<superwei-combox class="input" :candidates="sendList" :isJSON="true" keyName="text"
@ -204,7 +208,7 @@
<view class="tjHead" @click="clickTjHead('fzl')">
<view class="title">
<p>分指令进度</p>
<text>{{zTjList.totalSentCount}}/{{zTjList.branchSum}}</text>
<text>{{zTjList.branchSentCount}}/{{zTjList.branchSum}}</text>
</view>
<lx-progress-bar title="" :total="zTjList.branchSum"
:firstValue="zTjList.branchSentCount" :secondValue="zTjList.branchPausedSentCount"
@ -241,110 +245,114 @@
</view>
<template v-if="itemList.length > 0">
<checkbox-group @change="checkChange">
<view class="itemList">
<view class="exp" v-for="(item,index) in itemList" :key="item.ndex">
<view class="item">
<view class="row">
<view class="title">
<view class="rowHead">
<checkbox :value="item.lwpId" :checked="false" />
</view>
<image class="titleImg" src="../../static/images/zlIcon.png"
mode="widthFix">
</image>
<view class="text">
品牌{{item.brdName}}
</view>
</view>
<view class="schedule">
<text class="text">卸船进度</text>
<view class="progressBox">
<van-progress color="#0067CF" stroke-width="6px"
:show-pivot="false" track-color="#DEE9F5"
:percentage="itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)" />
</view>
<text>{{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}%</text>
</view>
<view class="planStatus planStatus0" v-if="item.branchPlanStatus == 0">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus3"
v-else-if="item.branchPlanStatus == 2">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus5"
v-else-if="item.branchPlanStatus == 4">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus1" v-else>
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
</view>
<view class="row">
<view class="rowInfo">
<view class="col">
<text>车辆数量</text>
<text>{{item.vehicleCount}}</text>
</view>
<view class="col">
<text>备件数量</text>
<text>{{item.sparePartsCount}}</text>
</view>
<view class="col">
<text>分指令发送人</text>
<text>{{item.totalSendUser}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>负责人</text>
<text>{{item.responsiblePerson}}</text>
</view>
<view class="col">
<text>发送时间</text>
<text>{{item.totalSendTime}}</text>
</view>
</view>
</view>
<view class="xfBtn">
<view class="btn" @click="distribute('center','solo',item)">
</view>
</view>
<view class="expand" v-if="itemActive != index" @click="isActive(index)">
展开
</view>
<view class="expand" v-else @click="itemActive = '-1'">
收起
</view>
</view>
<view class="details">
<view class="itemDetails" v-show="itemActive == index">
<template v-for="(item2,index2) in item.infoList">
<view class="detailsBox" :key="index2">
<view class="title">
<text>{{item2.mnfBl}}</text>
<button @click="toDetails(item,item2)"></button>
<view class="itemBox">
<view class="itemList">
<view class="exp" v-for="(item,index) in itemList" :key="item.ndex">
<view class="item">
<view class="row">
<view class="title">
<view class="rowHead">
<checkbox :value="item.lwpId" :checked="false" />
</view>
<view class="info">
<view class="cell">
<text>中转港</text>
<text>{{item2.transitPortName}}</text>
</view>
<view class="cell">
<text>品牌</text>
<text>{{item2.brdName}}</text>
</view>
<view class="cell">
<text>车型</text>
<text>{{item2.goodsTypeName}}</text>
</view>
<view class="cell">
<text>型号</text>
<text>{{item2.bvdName}}</text>
</view>
<image class="titleImg" src="../../static/images/zlIcon.png"
mode="widthFix">
</image>
<view class="text">
品牌{{item.brdName}}
</view>
</view>
</template>
<view class="schedule">
<text class="text">卸船进度</text>
<view class="progressBox">
<van-progress color="#0067CF" stroke-width="6px"
:show-pivot="false" track-color="#DEE9F5"
:percentage="itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)" />
</view>
<text>{{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}%</text>
</view>
<view class="planStatus planStatus0"
v-if="item.branchPlanStatus == 0">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus3"
v-else-if="item.branchPlanStatus == 2">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus5"
v-else-if="item.branchPlanStatus == 4">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus1" v-else>
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
</view>
<view class="row">
<view class="rowInfo">
<view class="col">
<text>车辆数量</text>
<text>{{item.vehicleCount}}</text>
</view>
<view class="col">
<text>备件数量</text>
<text>{{item.sparePartsCount}}</text>
</view>
<view class="col">
<text>分指令发送人</text>
<text>{{item.totalSendUser}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>负责人</text>
<text>{{item.responsiblePerson}}</text>
</view>
<view class="col">
<text>发送时间</text>
<text>{{item.totalSendTime}}</text>
</view>
</view>
</view>
<view class="xfBtn">
<view class="btn" @click="distribute('center','solo',item)">
</view>
</view>
<view class="expand" v-if="itemActive != index"
@click="isActive(index)">
展开
</view>
<view class="expand" v-else @click="itemActive = '-1'">
收起
</view>
</view>
<view class="details">
<view class="itemDetails" v-show="itemActive == index">
<template v-for="(item2,index2) in item.infoList">
<view class="detailsBox" :key="index2">
<view class="title">
<text>{{item2.mnfBl}}</text>
<button @click="toDetails(item,item2)"></button>
</view>
<view class="info">
<view class="cell">
<text>中转港</text>
<text>{{item2.transitPortName}}</text>
</view>
<view class="cell">
<text>品牌</text>
<text>{{item2.brdName}}</text>
</view>
<view class="cell">
<text>车型</text>
<text>{{item2.goodsTypeName}}</text>
</view>
<view class="cell">
<text>型号</text>
<text>{{item2.bvdName}}</text>
</view>
</view>
</view>
</template>
</view>
</view>
</view>
</view>
@ -352,10 +360,10 @@
</checkbox-group>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
<view class="pageBox" v-if="itemList.length > 0">
<!-- <view class="pageBox" v-if="itemList.length > 0">
<uni-pagination :show-icon="true" :total="total" :pageSize="pageSize" :current="current"
@change="changePage" />
</view>
</view> -->
</view>
</custom-tab-pane>
<custom-tab-pane label="分指令-班组长" name="c1_4">
@ -363,12 +371,17 @@
<view class="main">
<view class="form">
<view class="inputBox">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="船名/航次/提单号" @iconClick="search"></uni-easyinput>
<superwei-combox class="input" :candidates="brandList" :isJSON="true" keyName="brdName"
placeholder="品牌" v-model="brdName" @select="brandSelect"></superwei-combox>
<superwei-combox class="input" :candidates="bvmList" :isJSON="true" keyName="bvmName"
placeholder="车型" v-model="bvmName" @select="bvmSelect"></superwei-combox>
<view class="leftInput">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="提单号" @iconClick="search"></uni-easyinput>
</view>
<view class="rightInput">
<superwei-combox class="input" :candidates="brandList" :isJSON="true"
keyName="brdName" placeholder="品牌" v-model="brdName"
@select="brandSelect"></superwei-combox>
<superwei-combox class="input" :candidates="bvmList" :isJSON="true" keyName="name"
placeholder="车型" v-model="bvmName" @select="bvmSelect"></superwei-combox>
</view>
</view>
</view>
<template v-if="itemList.length > 0">
@ -475,10 +488,10 @@
</view>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
<view class="pageBox" v-if="itemList.length > 0">
<!-- <view class="pageBox" v-if="itemList.length > 0">
<uni-pagination :show-icon="true" :total="total" :pageSize="pageSize" :current="current"
@change="changePage" />
</view>
</view> -->
</view>
</custom-tab-pane>
<custom-tab-pane label="场位图" name="c1_3">
@ -668,10 +681,10 @@
<script>
import HeadView from '@/components/head-view/head-view.vue';
import place from './place.vue';
let timers = null;
export default {
data() {
return {
title: "",
loginObj: {},
tabsValue: 0, // 0() 1()
shipInfo: {}, //
@ -777,6 +790,7 @@
this.shipInfo = JSON.parse(decodeURIComponent(options.params)).shipInfo
this.tradeType = JSON.parse(decodeURIComponent(options.params)).tradeType
this.loginObj = uni.getStorageSync('loginObj')
this.title = `${this.shipInfo.spmIdDesc} / ${this.shipInfo.vvyName}`
if (this.tabsValue == 0) {
this.loadSumOrder() //
console.log(this.shipInfo)
@ -1584,6 +1598,11 @@
}
}
.itemBox {
height: 465px;
overflow: scroll;
}
.itemList {
display: flex;
flex-wrap: wrap;
@ -1722,7 +1741,6 @@
justify-content: flex-end;
padding: 10px 0;
border-top: 1px solid rgba(0, 0, 0, .1);
border-bottom: 1px solid rgba(0, 0, 0, .1);
margin-top: 10px;
.btn {

View File

@ -58,6 +58,7 @@
@change="changePage" />
</view> -->
</view>
<LotusLoading :lotusLoadingData="lotusLoadingData"></LotusLoading>
</view>
</view>
</template>
@ -65,6 +66,7 @@
<script>
import HeadInfo from '@/components/head-info/head-info';
import api from "../../common/api.js"
import LotusLoading from "../../components/Winglau14-lotusLoading/Winglau14-LotusLoading.vue";
let timers = null;
export default {
data() {
@ -96,12 +98,21 @@
current: 1,
//
portObj: {}
portObj: {},
lotusLoadingData: {
isShow: false //truefalse
}
}
},
components: {
HeadInfo,
LotusLoading
},
onReachBottom() {
this.current++
this.initData()
this.lotusLoadingData.isShow = true
},
onLoad() {
this.portObj = uni.getStorageSync('portObj')
@ -116,9 +127,6 @@
return false;
}
},
components: {
HeadInfo
},
mounted() {
this.initData()
},
@ -176,6 +184,7 @@
},
//
onSearch() {
this.itemList = []
this.initData()
},
initData() {
@ -195,7 +204,7 @@
},
method: 'GET', //
success: (res) => {
console.log(res)
this.lotusLoadingData.isShow = false
this.total = res.data.data.total
this.itemList.push(...res.data.data.records)
}
@ -241,7 +250,7 @@
position: fixed;
top: 66px;
right: 0;
z-index: 999;
z-index: 995;
.end {
display: flex;

View File

@ -1,6 +1,6 @@
<template>
<view class="app">
<head-view title="装船指令"></head-view>
<head-view :title="title"></head-view>
<view class="content2 contentFixed">
<view class="buttonlist">
<template v-if="tabsValue == 0">
@ -22,7 +22,7 @@
<view class="inputBox">
<view class="leftInput">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="船名/航次/提单号" @iconClick="search"></uni-easyinput>
placeholder="提单号" @iconClick="search"></uni-easyinput>
</view>
<view class="rightInput">
<superwei-combox class="input" :candidates="brandList" :isJSON="true"
@ -195,7 +195,7 @@
<view class="inputBox">
<view class="leftInput">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="船名/航次/提单号" @iconClick="search"></uni-easyinput>
placeholder="提单号" @iconClick="search"></uni-easyinput>
</view>
<view class="rightInput">
<superwei-combox class="input" :candidates="sendList" :isJSON="true" keyName="text"
@ -215,7 +215,7 @@
<view class="tjHead" @click="clickTjHead('fzl')">
<view class="title">
<p>分指令进度</p>
<text>{{zTjList.totalSentCount}}/{{zTjList.branchSum}}</text>
<text>{{zTjList.branchSentCount}}/{{zTjList.branchSum}}</text>
</view>
<lx-progress-bar title="" :total="zTjList.branchSum"
:firstValue="zTjList.branchSentCount" :secondValue="zTjList.branchPausedSentCount"
@ -234,7 +234,7 @@
@click="clickTjList(item,index,'fzl')">
<view class="title">
<p>{{item.titleBar}}</p>
<text>{{item.totalSentCount}}/{{item.fsum}}</text>
<text>{{item.branchSentCount}}/{{item.fsum}}</text>
</view>
<lx-progress-bar title="" :total="item.fsum" :firstValue="item.branchSentCount"
:secondValue="item.branchPausedSentCount" contentColor="#0067CF"
@ -252,112 +252,114 @@
</view>
<template v-if="itemList.length > 0">
<checkbox-group @change="checkChange">
<view class="itemList">
<view class="exp" v-for="(item,index) in itemList" :key="index">
<view class="item">
<view class="row">
<view class="title">
<view class="rowHead">
<checkbox :value="item.lwpId" :checked="false" />
</view>
<image class="titleImg" src="../../static/images/zlIcon.png"
mode="widthFix">
</image>
<view class="text">
船舱层数{{item.shipDeck}}{{item.cabinNo}}
</view>
</view>
<view class="schedule">
<text class="text">装船进度</text>
<view class="progressBox">
<van-progress color="#0067CF" stroke-width="6px"
:show-pivot="false" track-color="#DEE9F5"
:percentage="itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)" />
</view>
<text>{{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}%</text>
</view>
<view class="planStatus planStatus0" v-if="item.branchPlanStatus == 0">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus3"
v-else-if="item.branchPlanStatus == 2">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus5"
v-else-if="item.branchPlanStatus == 4">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus1" v-else>
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
</view>
<view class="row">
<view class="rowInfo">
<view class="col">
<text>数量</text>
<text>{{item.totalCount}}</text>
</view>
<view class="col">
<text>港口</text>
<text>{{item.potName}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>负责人</text>
<text>{{item.responsiblePerson}}</text>
</view>
<view class="col">
<text>发送时间</text>
<text>{{item.totalSendTime}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>分指令发送人</text>
<text>{{item.branchSendUser}}</text>
</view>
</view>
</view>
<view class="xfBtn">
<view class="btn" @click="distribute('center','solo',item)">
</view>
</view>
<view class="expand" v-if="itemActive != index" @click="isActive(index)">
展开
</view>
<view class="expand" v-else @click="itemActive = '-1'">
收起
</view>
</view>
<view class="details">
<view class="itemDetails" v-show="itemActive == index">
<template v-for="(item2,index2) in item.infoList">
<view class="detailsBox" :key="index2">
<view class="title">
<text>{{item2.mnfBl}}</text>
<button @click="toDetails(item2.spsId)"></button>
<view class="itemBox">
<view class="itemList">
<view class="exp" v-for="(item,index) in itemList" :key="index">
<view class="item">
<view class="row">
<view class="title">
<view class="rowHead">
<checkbox :value="item.lwpId" :checked="false" />
</view>
<view class="info">
<view class="cell">
<text>中转港</text>
<text>{{item2.transitPortName}}</text>
</view>
<view class="cell">
<text>品牌</text>
<text>{{item2.brdName}}</text>
</view>
<view class="cell">
<text>车型</text>
<text>{{item2.goodsTypeName}}</text>
</view>
<view class="cell">
<text>型号</text>
<text>{{item2.bvdName}}</text>
</view>
<image class="titleImg" src="../../static/images/zlIcon.png"
mode="widthFix">
</image>
<view class="text">
船舱层数{{item.shipDeck}}{{item.cabinNo}}
</view>
</view>
</template>
<view class="schedule">
<text class="text">装船进度</text>
<view class="progressBox">
<van-progress color="#0067CF" stroke-width="6px"
:show-pivot="false" track-color="#DEE9F5"
:percentage="itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)" />
</view>
<text>{{itemSum(item.loadingProgress.workProgress, item.loadingProgress.totalProgress)}}%</text>
</view>
<view class="planStatus planStatus0"
v-if="item.branchPlanStatus == 0">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus3"
v-else-if="item.branchPlanStatus == 2">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus5"
v-else-if="item.branchPlanStatus == 4">
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
<view class="planStatus planStatus1" v-else>
<text class="text">{{item.branchPlanStatusDesc}}</text>
</view>
</view>
<view class="row">
<view class="rowInfo">
<view class="col">
<text>数量</text>
<text>{{item.totalCount}}</text>
</view>
<view class="col">
<text>港口</text>
<text>{{item.potName}}</text>
</view>
<view class="col">
<text>分指令发送人</text>
<text>{{item.branchSendUser}}</text>
</view>
</view>
<view class="rowInfo">
<view class="col">
<text>负责人</text>
<text>{{item.responsiblePerson}}</text>
</view>
<view class="col">
<text>发送时间</text>
<text>{{item.totalSendTime}}</text>
</view>
</view>
</view>
<view class="xfBtn">
<view class="btn" @click="distribute('center','solo',item)">
</view>
</view>
<view class="expand" v-if="itemActive != index"
@click="isActive(index)">
展开
</view>
<view class="expand" v-else @click="itemActive = '-1'">
收起
</view>
</view>
<view class="details">
<view class="itemDetails" v-show="itemActive == index">
<template v-for="(item2,index2) in item.infoList">
<view class="detailsBox" :key="index2">
<view class="title">
<text>{{item2.mnfBl}}</text>
<button @click="toDetails(item2.spsId)"></button>
</view>
<view class="info">
<view class="cell">
<text>中转港</text>
<text>{{item2.transitPortName}}</text>
</view>
<view class="cell">
<text>品牌</text>
<text>{{item2.brdName}}</text>
</view>
<view class="cell">
<text>车型</text>
<text>{{item2.goodsTypeName}}</text>
</view>
<view class="cell">
<text>型号</text>
<text>{{item2.bvdName}}</text>
</view>
</view>
</view>
</template>
</view>
</view>
</view>
</view>
@ -378,7 +380,7 @@
<view class="inputBox">
<view class="leftInput">
<uni-easyinput class="uni-mt-5" suffixIcon="search" v-model="mnfBl"
placeholder="船名/航次/提单号" @iconClick="search"></uni-easyinput>
placeholder="提单号" @iconClick="search"></uni-easyinput>
</view>
<view class="rightInput">
<superwei-combox class="input" :candidates="brandList" :isJSON="true"
@ -736,7 +738,19 @@
</view>
</view>
</custom-tab-pane>
<custom-tab-pane label="装船要求信息" name="c1_5"></custom-tab-pane>
<custom-tab-pane label="装船要求信息" name="c1_5">
<view></view>
<view class="main">
<view class="askBox">
<view class="title">
装船要求信息
</view>
<view class="askContent">
{{askValue}}
</view>
</view>
</view>
</custom-tab-pane>
</custom-tabs>
<uni-popup ref="popup" type="dialog">
<view class="popupBox">
@ -790,10 +804,10 @@
import HeadView from '@/components/head-view/head-view.vue';
import HeadInfo from '@/components/head-info/head-info';
import place from './place.vue';
let timers = null;
export default {
data() {
return {
title: "",
loginObj: {},
tabsValue: 0, // 0() 1()
shipInfo: {}, //
@ -822,7 +836,7 @@
text: "已发送"
}, {
vale: "0",
text: "发送"
text: "发送"
}],
sendValue: "",
sendText: "",
@ -907,6 +921,7 @@
onLoad(options) {
this.shipInfo = JSON.parse(decodeURIComponent(options.params)).shipInfo
console.log(this.shipInfo)
this.title = `${this.shipInfo.spmIdDesc} / ${this.shipInfo.vvyName}`
this.loginObj = uni.getStorageSync('loginObj')
if (this.tabsValue == 0) {
this.loadSumOrder() //
@ -954,6 +969,7 @@
} else if (this.tabsValue == 0) {
this.loadSumOrder()
}
this.getStatistics()
},
//
changePage(e) {
@ -968,6 +984,7 @@
//
clickTjHead(type) {
this.zTjActive = -1
this.shipDeck = ""
if (type == 'zzl') {
this.loadSumOrder()
} else if (type == 'fzl') {
@ -1000,7 +1017,6 @@
},
method: 'GET', //
success: (res) => {
console.log(res)
this.zTjList = res.data.data[0]
this.zTjList["totalSum"] = this.zTjList.totalSentCount + this.zTjList.totalNotSentCount
this.zTjList["branchSum"] = this.zTjList.branchSentCount + this.zTjList
@ -1084,8 +1100,10 @@
this.$refs.popup.open(type)
if (a == 'again' || a == 'solo') {
this.fzzRow = item
this.loadOtherOrder()
} else if (a == 'all') {
this.fzzRow = ""
this.loadSumOrder()
}
},
// ID
@ -1236,6 +1254,7 @@
this.$refs.popup.close()
if (res.status == 200) {
this.loadSumOrder()
this.getStatistics()
uni.showToast({
title: `总指令下发成功`,
icon: 'success',
@ -1262,6 +1281,7 @@
success: (res) => {
if (res.data.status == 200) {
this.loadSumOrder()
this.getStatistics()
uni.showToast({
title: `分指令下发成功`,
icon: 'success',
@ -1298,6 +1318,7 @@
console.log(res)
if (res.data.status == 200) {
this.loadOtherOrder()
this.getStatistics()
uni.showToast({
title: `重新发送指令成功`,
icon: 'success',
@ -1571,6 +1592,26 @@
height: calc(100vh - 134px);
}
.askBox {
width: 97%;
padding: 20px;
margin: 20px;
background: #fff;
height: 300px;
overflow: scroll;
.title {
font-size: 20px;
font-weight: bold;
text-align: center;
}
.askContent {
font-size: 16px;
margin-top: 20px;
}
}
.pageBox {
margin-top: 20px;
}
@ -1953,7 +1994,6 @@
justify-content: flex-end;
padding: 10px 0;
border-top: 1px solid rgba(0, 0, 0, .1);
border-bottom: 1px solid rgba(0, 0, 0, .1);
margin-top: 10px;
.btn {

View File

@ -16,9 +16,8 @@
<p>账号密码登录</p>
</view>
<view class="loginInput">
<uni-easyinput prefixIcon="person-filled" v-model="account" placeholder="请输入账号"></uni-easyinput>
<uni-easyinput type="password" prefixIcon="locked-filled" suffixIcon="search" v-model="password"
placeholder="请输入密码">
<uni-easyinput prefixIcon="locked-filled" v-model="account" placeholder="请输入账号"></uni-easyinput>
<uni-easyinput type="password" prefixIcon="person-filled" v-model="password" placeholder="请输入密码">
</uni-easyinput>
<button class="button" @click="loginGo('center')"></button>
</view>
@ -61,7 +60,7 @@
export default {
data() {
return {
// rtoswuhan1
// rtoswuhan1 wuhan_ceshi1
account: '',
// q123456
password: '',
@ -288,7 +287,6 @@
.popupBox {
width: 280px;
height: 320px;
overflow: scroll;
.popupTitle {
width: 100%;
@ -299,10 +297,13 @@
color: #23262E;
font-weight: bold;
border-bottom: 1px solid #eee;
box-shadow: 0 -3px 7px 0 rgba(0, 0, 0, 0.10);
}
.ul {
padding: 30px;
height: 213px;
overflow: scroll;
.li {
height: 40px;

View File

@ -3,14 +3,19 @@
<head-info :navIndex="3"></head-info>
<view class="container">
<view class="content">
<view class="addBtn" @click="modify('add')">+ </view>
<view class="form">
<!-- <button type="primary" class="button" @click="modify('add','')">
<uni-icons type="plusempty" color="#fff" size="20"></uni-icons>
</button> -->
<view class="left">
<uni-easyinput suffixIcon="search" v-model="carValue" placeholder="请输入车架号"
@iconClick="iconClick">
</uni-easyinput>
</view>
<view class="right">
<superwei-combox class="select" :candidates="shipList" :isJSON="true" keyName="shipVvy"
placeholder="船名/航次" v-model="shipValue" @select="shipChange"
@input="shipInput"></superwei-combox>
<superwei-combox class="select" :candidates="zshjList" :isJSON="true" keyName="name"
placeholder="质损环节" v-model="zshjName" @select="zshjChange"></superwei-combox>
<superwei-combox class="select" :candidates="brandList" :isJSON="true" keyName="brdName"
placeholder="品牌" v-model="brandValue" @select="brandChange"></superwei-combox>
</view>
@ -23,9 +28,15 @@
<image src="../../static/images/zlIcon.png" mode=""></image>
<text>{{item.vinCode}}</text>
</view>
<view class="rightHead" @click.stop="modify('edit',item)">
<image src="../../static/images/editBtn.png"></image>
<text>编辑</text>
<view class="rightHead">
<view class="delBtn" @click.stop="del(item)">
<image src="../../static/images/delBtn.png"></image>
<text>删除</text>
</view>
<view class="editBtn" @click.stop="modify('edit',item)">
<image src="../../static/images/editBtn.png"></image>
<text>编辑</text>
</view>
</view>
</view>
<view class="row">
@ -69,14 +80,6 @@
处置情况{{item.disposalSituationName}}
</view>
</view>
<!-- <view class="rowFoot">
<view class="col">
编辑
</view>
<view class="col" @click.stop="del(item)">
删除
</view>
</view> -->
</view>
</template>
<o-empty v-else height="70vh" bg="#f5f6fa" />
@ -100,8 +103,8 @@
data() {
return {
loginObj: {},
//
queryValue: '',
// ()
carValue: '',
//
brandId: "",
brandValue: "",
@ -124,6 +127,11 @@
shipValue: "",
shipSr: "",
vvyId: "",
//
zshjList: [],
zshjId: "",
zshjName: "",
}
},
onLoad() {
@ -133,6 +141,7 @@
this.initData()
this.getBrand()
this.getShip()
this.getRadio()
},
onBackPress(options) {
// uni.navigateBack 使
@ -146,10 +155,14 @@
HeadInfo
},
methods: {
//
iconClick() {
this.initData()
},
//
initData() {
uni.request({
url: `${this.$local}/api/goodsQuality/page?current=${this.current}&page=${this.pageSize}&brdId=${this.brandId}&vvyId=${this.vvyId}`,
url: `${this.$local}/api/goodsQuality/page?current=${this.current}&page=${this.pageSize}&brdId=${this.brandId}&vvyId=${this.vvyId}&qdLink=${this.zshjId}&vinCode=${this.carValue}`,
header: {
'Content-Type': 'application/json', //
'Authorization': `Bearer ${this.loginObj.access_token}`
@ -184,7 +197,6 @@
this.shipList.forEach(v => {
this.$set(v, "shipVvy", `${v.vslCnname} / ${v.vvyName} `)
})
console.log(this.shipList)
}
}
})
@ -197,6 +209,36 @@
this.current = 1
this.initData()
},
//
zshjChange(e) {
this.zshjId = e.value
this.zshjName = e.name
this.initData()
this.current = 1
},
// ()
getRadio() {
uni.request({
url: this.$local + '/api/miniapp/typeRef/domain/QUALITY_DAMAGE_LINK',
header: {
'Content-Type': 'application/json', //
'Authorization': `Bearer ${this.loginObj.access_token}`
},
method: 'GET', //
success: (res) => {
if (res.data.status == 200) {
console.log(res)
res.data.data.forEach(v => {
this.zshjList.push({
value: v.ptrCode,
name: v.ptrDesc
})
})
console.log(this.zshjList)
}
}
})
},
//
shipInput(e) {
this.shipSr = e
@ -227,14 +269,20 @@
},
// /
modify(type, item) {
let obj = {
type: type,
ygqId: item.ygqId
if (type == 'edit') {
let obj = {
type: type,
ygqId: item.ygqId
}
const params = encodeURIComponent(JSON.stringify(obj));
uni.navigateTo({
url: `/pages/quality/edit?params=${params}`
})
} else {
uni.navigateTo({
url: `/pages/quality/edit`
})
}
const params = encodeURIComponent(JSON.stringify(obj));
uni.navigateTo({
url: `/pages/quality/edit?params=${params}`
})
},
//
details(item) {
@ -295,17 +343,33 @@
padding-bottom: 20px;
margin-top: 115px;
.addBtn {
position: fixed;
right: 50px;
bottom: 50px;
width: 100px;
height: 100px;
border-radius: 50%;
background-color: #2979ff;
color: #fff;
font-size: 24px;
text-align: center;
line-height: 100px;
font-weight: bold;
z-index: 999;
}
.form {
width: 100%;
display: flex;
justify-content: flex-end;
justify-content: space-between;
background: #FAFAFA;
border-top: 1px solid #EEEEEE;
border-bottom: 1px solid #EEEEEE;
padding: 6px 10px;
position: fixed;
top: 66px;
z-index: 999;
z-index: 995;
.button {
width: 90px;
@ -315,6 +379,21 @@
margin: 0;
}
.left {
/deep/.is-input-border {
border-radius: 20px;
width: 300px;
}
/deep/.uni-easyinput__placeholder-class {
padding-left: 10px;
}
/deep/.uni-input-input {
padding-left: 10px;
}
}
.right {
display: flex;
justify-content: space-between;
@ -387,6 +466,15 @@
color: #1677FF;
display: flex;
.delBtn {
display: flex;
margin-right: 10px;
}
.editBtn {
display: flex;
}
image {
width: 16px;
height: 16px;

View File

@ -3,10 +3,10 @@
<head-view title="绘制质损图"></head-view>
<view class="containe contentFixedr">
<view class="sign-box">
<canvas class="mycanvas" :style="{width:width +'px',height:height +'px'}" canvas-id="mycanvas"
<canvas class="mycanvas" canvas-id="mycanvas"
@touchstart="touchstart" @touchmove="touchmove" @touchend="touchend" disable-scroll="true"></canvas>
<view class="canvasBg">
<image src="../../static/images/zs2.jpg" mode=""></image>
<image src="../../static/images/zs5.jpg" mode=""></image>
</view>
</view>
<view class="sigh-btns">
@ -22,9 +22,6 @@
pathToBase64,
base64ToPath
} from '../../js_sdk/mmmm-image-tools/index.js'
import {
compressImgBySize
} from '@/common/compressImg'
import utils from '@/common/util.js';
var x = 20;
var y = 20;
@ -32,8 +29,6 @@
var id = 0;
var type = '';
let that;
let canvasw;
let canvash;
export default {
data() {
return {
@ -51,25 +46,27 @@
id = option.id;
type = option.type;
this.init()
this.loginObj = uni.getStorageSync('loginObj')
},
methods: {
init() {
this.ctx = uni.createCanvasContext('mycanvas', this); //
this.ctx.drawImage('../../static/images/zs2.jpg', 0, 0, 1000, 400)
console.log(this.ctx);
//
this.ctx.lineWidth = 4;
this.ctx.lineCap = 'round';
this.ctx.lineJoin = 'round';
var that = this
uni.getSystemInfo({
success: function(res) {
console.log(res);
that.width = res.windowWidth * 0.8;
that.height = res.windowHeight * 0.5;
}
that.ctx.drawImage("../../static/images/zs5.jpg", 0, 0, 1000, 222)
that.width = res.windowWidth;
that.height = res.windowHeight;
},
});
},
//
touchstart: function(e) {
@ -134,7 +131,8 @@
//
handleReset: function() {
that.ctx.clearRect(0, 0, that.width, that.height);
var that = this
that.ctx.clearRect(0, 0, 1000, 222);
that.ctx.draw(true);
tempPoint = [];
that.init()
@ -243,14 +241,14 @@
margin: auto 0rpx;
background-color: transparent;
margin-top: 80px;
width: 1000px !important;
height: 400px !important;
width: 1000px;
height: 222px;
z-index: 999;
}
.canvasBg {
width: 1000px;
height: 400px;
height: 222px;
position: absolute;
top: 80px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB