修改bug
parent
4022505655
commit
ffd3238acb
|
@ -314,6 +314,10 @@
|
|||
this.onSearch()
|
||||
this.$refs.showRight.close();
|
||||
},
|
||||
//返回
|
||||
back() {
|
||||
this.$refs.showRight.close();
|
||||
},
|
||||
//切换时间
|
||||
changeLog(e) {
|
||||
if(e.length) {
|
||||
|
|
|
@ -28,7 +28,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -219,7 +219,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>发送状态<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -436,7 +436,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -589,7 +589,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>堆场<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -793,6 +793,7 @@
|
|||
|
||||
<script>
|
||||
import HeadView from '@/components/head-view/head-view.vue';
|
||||
let timerId
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -1692,6 +1693,14 @@
|
|||
} else if(type == 'fzl' || type == 'bzz') {
|
||||
this.loadOtherOrder()
|
||||
}
|
||||
},
|
||||
// 输入框值发生改变
|
||||
inputChange(e) {
|
||||
clearTimeout(timerId)
|
||||
timerId = setTimeout(() => {
|
||||
this.mnfBl = e
|
||||
this.confirm()
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -26,7 +26,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -222,7 +222,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>发送状态<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -444,7 +444,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -629,6 +629,7 @@
|
|||
import HeadView from '@/components/head-view/head-view.vue';
|
||||
import HeadInfo from '@/components/head-info/head-info';
|
||||
import place from './place.vue';
|
||||
let timerId
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -1470,6 +1471,14 @@
|
|||
this.filterType = 'POT_TYPE'
|
||||
}
|
||||
this.getJobProgress()
|
||||
},
|
||||
// 输入框值发生改变
|
||||
inputChange(e) {
|
||||
clearTimeout(timerId)
|
||||
timerId = setTimeout(() => {
|
||||
this.mnfBl = e
|
||||
this.confirm()
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -326,6 +326,10 @@
|
|||
this.onSearch()
|
||||
this.$refs.showRight.close();
|
||||
},
|
||||
//返回
|
||||
back() {
|
||||
this.$refs.showRight.close();
|
||||
},
|
||||
//切换时间
|
||||
changeLog(e) {
|
||||
if(e.length) {
|
||||
|
|
|
@ -29,7 +29,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -181,6 +181,7 @@
|
|||
</view>
|
||||
<view class="details">
|
||||
<view class="itemDetails" v-show="itemActive == item.index">
|
||||
<!-- <view class="itemDetails" v-show="itemActive == item.index"> -->
|
||||
<template v-for="(item2,index2) in item.infoList">
|
||||
<view class="detailsBox" :key="index2">
|
||||
<view class="title">
|
||||
|
@ -225,7 +226,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>发送状态<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -448,7 +449,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -734,7 +735,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" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>品牌<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -926,6 +927,7 @@
|
|||
import HeadView from '@/components/head-view/head-view.vue';
|
||||
import HeadInfo from '@/components/head-info/head-info';
|
||||
import place from './place.vue';
|
||||
let timerId
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -1268,8 +1270,9 @@
|
|||
},
|
||||
method: 'GET', //请求方式,必须为大写
|
||||
success: (res) => {
|
||||
this.itemList.push(...res.data.data.records)
|
||||
console.log(this.itemList)
|
||||
// this.itemList.push(...res.data.data.records)
|
||||
this.itemList = []
|
||||
this.itemList = res.data.data.records
|
||||
if (res.data.data.records.length == 10) {
|
||||
this.current++
|
||||
this.loadSumOrder()
|
||||
|
@ -1324,7 +1327,19 @@
|
|||
},
|
||||
method: 'GET', //请求方式,必须为大写
|
||||
success: (res) => {
|
||||
this.$set(this.itemList[index], 'infoList', res.data.data)
|
||||
let arr = []
|
||||
res.data.data.forEach(item => {
|
||||
arr.push({
|
||||
mnfBl:item.mnfBl,
|
||||
spsId:item.spsId,
|
||||
transitPortName:item.transitPortName,
|
||||
brdName:item.brdName,
|
||||
goodsTypeName:item.goodsTypeName,
|
||||
bvdName:item.bvdName,
|
||||
})
|
||||
})
|
||||
this.$set(this.itemList[index], 'infoList', arr)
|
||||
console.log('res.data.data',res.data.data);
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -1992,6 +2007,14 @@
|
|||
this.filterType = 'POT_TYPE'
|
||||
}
|
||||
this.getJobProgress()
|
||||
},
|
||||
// 输入框值发生改变
|
||||
inputChange(e) {
|
||||
clearTimeout(timerId)
|
||||
timerId = setTimeout(() => {
|
||||
this.mnfBl = e
|
||||
this.confirm()
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<view class="inputBox">
|
||||
<view class="leftInput">
|
||||
<uni-easyinput suffixIcon="search" v-model="vinCode" placeholder="车架号/备件号"
|
||||
@iconClick="search"></uni-easyinput>
|
||||
@iconClick="search" @input="inputChange"></uni-easyinput>
|
||||
</view>
|
||||
<view class="rightInput" @click="screen">
|
||||
<p>船名<uni-icons type="bottom" style="margin-left: 5px;" size="16"></uni-icons></p>
|
||||
|
@ -532,7 +532,7 @@
|
|||
港口
|
||||
</view>
|
||||
<superwei-combox :candidates="potList" :isJSON="true" keyName="potCnname" placeholder="港口"
|
||||
v-model="potname" @select="potSelect"></superwei-combox>
|
||||
v-model="potName" @select="potSelect"></superwei-combox>
|
||||
<view class="drawerTitle">
|
||||
作业状态
|
||||
</view>
|
||||
|
@ -556,6 +556,7 @@
|
|||
<script>
|
||||
import HeadInfo from '@/components/head-info/head-info';
|
||||
import place from './place.vue';
|
||||
let timerId
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -611,7 +612,7 @@
|
|||
brandList: [],
|
||||
// 港口
|
||||
potId: "",
|
||||
potname: "",
|
||||
potName: "",
|
||||
potList: [],
|
||||
// 作业状态
|
||||
workId: "",
|
||||
|
@ -707,7 +708,7 @@
|
|||
this.brdId = ""
|
||||
this.brdName = ""
|
||||
this.potId = ""
|
||||
this.potname = ""
|
||||
this.potName = ""
|
||||
this.workId = ""
|
||||
this.workName = ""
|
||||
this.jckId = ""
|
||||
|
@ -1080,6 +1081,14 @@
|
|||
sortSelect(e) {
|
||||
this.trendPlansOrderRule = e.id
|
||||
this.getQy()
|
||||
},
|
||||
// 输入框值发生改变
|
||||
inputChange(e) {
|
||||
clearTimeout(timerId)
|
||||
timerId = setTimeout(() => {
|
||||
this.vinCode = e
|
||||
this.confirm()
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
<view class="form">
|
||||
<view class="left">
|
||||
<uni-easyinput suffixIcon="search" v-model="carValue" placeholder="请输入车架号"
|
||||
@iconClick="iconClick">
|
||||
@iconClick="iconClick" @input="inputChange">
|
||||
</uni-easyinput>
|
||||
</view>
|
||||
<view class="right" @click="screen">
|
||||
|
@ -131,6 +131,7 @@
|
|||
|
||||
<script>
|
||||
import HeadInfo from '@/components/head-info/head-info';
|
||||
let timerId
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
@ -395,6 +396,14 @@
|
|||
this.current = e.current;
|
||||
this.initData()
|
||||
},
|
||||
// 输入框值发生改变
|
||||
inputChange(e) {
|
||||
clearTimeout(timerId)
|
||||
timerId = setTimeout(() => {
|
||||
this.carValue = e
|
||||
this.confirm()
|
||||
},1000)
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -284,7 +284,7 @@
|
|||
toSign(type) {
|
||||
this.shipInfo['type'] = type
|
||||
const params = encodeURIComponent(JSON.stringify(this.shipInfo));
|
||||
uni.reLaunch({
|
||||
uni.redirectTo({
|
||||
url: '/pages/receipt/sign?params=' + params
|
||||
})
|
||||
},
|
||||
|
|
|
@ -118,9 +118,9 @@
|
|||
<uni-td align="center">{{ item.yardPos }}</uni-td>
|
||||
</uni-tr>
|
||||
</uni-table>
|
||||
<view class="pagination">
|
||||
<!-- <view class="pagination">
|
||||
<uni-pagination :total="total" :pageSize="pageSize" :current="pageCurrent" @change="pageChange" />
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -185,27 +185,27 @@
|
|||
console.error(error);
|
||||
});
|
||||
},
|
||||
initData() {
|
||||
let newArr = this.getMapping(this.vinCodeDetails, this.pageSize)
|
||||
this.vinCodeDetails = newArr[this.pageCurrent - 1];
|
||||
},
|
||||
// 点击分页
|
||||
pageChange(e) {
|
||||
this.pageCurrent = e.current
|
||||
this.initData()
|
||||
},
|
||||
// 分页切割数组(数组,分割个数)
|
||||
getMapping(list, num) {
|
||||
let len = list.length
|
||||
let newList = []
|
||||
if (len) {
|
||||
var chunk = num
|
||||
for (var i = 0, j = len; i < j; i += chunk) {
|
||||
newList.push(list.slice(i, i + chunk))
|
||||
}
|
||||
}
|
||||
return newList
|
||||
},
|
||||
// initData() {
|
||||
// let newArr = this.getMapping(this.vinCodeDetails, this.pageSize)
|
||||
// this.vinCodeDetails = newArr[this.pageCurrent - 1];
|
||||
// },
|
||||
// // 点击分页
|
||||
// pageChange(e) {
|
||||
// this.pageCurrent = e.current
|
||||
// this.initData()
|
||||
// },
|
||||
// // 分页切割数组(数组,分割个数)
|
||||
// getMapping(list, num) {
|
||||
// let len = list.length
|
||||
// let newList = []
|
||||
// if (len) {
|
||||
// var chunk = num
|
||||
// for (var i = 0, j = len; i < j; i += chunk) {
|
||||
// newList.push(list.slice(i, i + chunk))
|
||||
// }
|
||||
// }
|
||||
// return newList
|
||||
// },
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
<image id="HT-logo" src="../../static/images/theme/logo.png" mode="widthFix" />
|
||||
</view>
|
||||
<view class="rightHead">
|
||||
<p>上海海通国际汽车码头有限公司</p>
|
||||
<text class="p">上海海通国际汽车码头有限公司</text>
|
||||
<text>SHANGHAI HAITONG INTERNATIONAL AUTOMOTIVE TERMINAL CO. LTD.</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="headTItle">
|
||||
<view class="titleLeft"></view>
|
||||
<view class="title">
|
||||
<p>海通码头装卸和杂项作业单</p>
|
||||
<view class="p">海通码头装卸和杂项作业单</view>
|
||||
<text>SHANGHAI HARBOUR BUREAU STEVEDORE WORKING RECORD</text>
|
||||
</view>
|
||||
<view class="titleRight">
|
||||
|
@ -31,132 +31,337 @@
|
|||
</view>
|
||||
<view class="ul">
|
||||
<view class="li">
|
||||
<p>Name of ship:</p><text>{{shipInfo.vslCnname}}</text>
|
||||
<text>Name of ship:</text><text>{{shipInfo.vslCnname}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Voy No:</p><text>{{vvyName}}</text>
|
||||
<text>Voy No:</text><text>{{vvyName}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Date:</p><text>{{dateId}}</text>
|
||||
<text>Weather:</text><text>{{tqInfo}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Weather:</p><text>{{tqInfo}}</text>
|
||||
<text>Date:</text><text>{{dateId}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Gangs:</p><text>{{zyzsInfo}}</text>
|
||||
<text>Gangs:</text><text>{{zyzsInfo}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Foreman:</p><text>{{dcrsInfo}}</text>
|
||||
<text>Foreman:</text><text>{{dcrsInfo}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<!-- <view class="li">
|
||||
<p>Berthed at Haitong:</p><text>{{bwInfo}}</text>
|
||||
</view> -->
|
||||
<view class="li">
|
||||
<text>Foreman Working time:</text><text>???</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<text>Berthed at Haitong:</text><text>
|
||||
<checkbox-group>
|
||||
<label>
|
||||
1
|
||||
<checkbox style="margin: 0 10px 0 5px" value="cb" checked="true" />
|
||||
</label>
|
||||
<label>
|
||||
2
|
||||
<checkbox style="margin: 0 10px 0 5px" value="cb" />
|
||||
</label>
|
||||
<label>
|
||||
3
|
||||
<checkbox style="margin: 0 10px 0 5px" value="cb" />
|
||||
</label>
|
||||
<label>
|
||||
4
|
||||
<checkbox style="margin: 0 10px 0 5px" value="cb" />
|
||||
</label>
|
||||
<label>
|
||||
5
|
||||
<checkbox style="margin: 0 10px 0 5px" value="cb" />
|
||||
</label>
|
||||
</checkbox-group>
|
||||
{{bwInfo}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<table class="t-zx headZx">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="2" style="width: 140px;"></td>
|
||||
<td colspan="6">Working time</td>
|
||||
<td colspan="4">Kind Of Works</td>
|
||||
<td rowspan="2">B/L</td>
|
||||
<td colspan="3">Handling method</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" style="width: 88.5px;">From</td>
|
||||
<td colspan="3" style="width: 88.5px;">To</td>
|
||||
<td colspan="4">Loading/UnLoading</td>
|
||||
<td>Ro/Ro</td>
|
||||
<td>PortDevices</td>
|
||||
<td>Others</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<view v-for="(item2,index2) in shiftInfo" :key="index2 + 'shift'" class="rowBox">
|
||||
<view class="name">{{item2.pwcTypeName == '一工班' ? 'First Shift(一工班)' : item2.pwcTypeName == '二工班' ? 'Second Shift(二工班)' : item2.pwcTypeName == '三工班' ? 'Third Shift(三工班)' : ''}}</view>
|
||||
<view class="time">{{item2.workStartTime}}</view>
|
||||
<view class="time">{{item2.workEndTime}}</view>
|
||||
<view class="infoBox">
|
||||
<view class="iBox" v-for="(item3,index3) in item2.infoArr">
|
||||
<view colspan="4" class="carCss">
|
||||
<view class="rowOne">
|
||||
<view class="left">
|
||||
<view class="cell">
|
||||
|
||||
</view>
|
||||
<view class="cell cellY">
|
||||
<view class="item bo_b">
|
||||
Working time
|
||||
</view>
|
||||
<view class="item cellX">
|
||||
<view class="item bo_r">
|
||||
From
|
||||
</view>
|
||||
<view>
|
||||
To
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="cellB cellY bo_r">
|
||||
<view class="item bo_b">
|
||||
Kind Of Works
|
||||
</view>
|
||||
<view>
|
||||
Loading/UnLoading
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="right cellX">
|
||||
<view class="itemLeft bo_r">
|
||||
B/L
|
||||
</view>
|
||||
<view class="itemRight cellY">
|
||||
<view class="bo_b">
|
||||
Handling method
|
||||
</view>
|
||||
<view class="cellX">
|
||||
<text class="bo_r">Ro/Ro</text>
|
||||
<text class="bo_r">PortDevices</text>
|
||||
<text>Others</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rowTwo" v-for="(item2,index2) in shiftInfo" :key="index2 + 'shift'">
|
||||
<view class="left bo_r">
|
||||
<view class="cell bo_r">
|
||||
{{item2.pwcTypeName == '一工班' ? 'First Shift' : item2.pwcTypeName == '二工班' ? 'Second Shift' : item2.pwcTypeName == '三工班' ? 'Third Shift' : ''}}
|
||||
</view>
|
||||
<view class="cell cellX">
|
||||
<view class="item bo_r">
|
||||
{{item2.workStartTime}}
|
||||
</view>
|
||||
<view class="item bo_r">
|
||||
{{item2.workEndTime}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="cellY">
|
||||
<view class="item" v-for="(item3,index3) in item2.infoArr" :key="index3">
|
||||
车型:{{item3.carTypeName}},数量:{{item3.goodsNumber}}
|
||||
</view>
|
||||
<view class="remark">{{item3.remark}}</view>
|
||||
<view class="ro gx"><text v-if="item3.loadingType == 'RO'">√</text></view>
|
||||
<view class="pr gx"><text v-if="item3.loadingType == 'PR'">√</text></view>
|
||||
<view class="ot gx"><text v-if="item3.loadingType == 'OT'">√</text></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<table class="t-zx">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td :rowspan="fcList.length + 2">Rehangdling(翻舱)</td>
|
||||
<td colspan="2" rowspan="2">Kind of Rehangdling</td>
|
||||
<td colspan="2">DK/H</td>
|
||||
<td colspan="6">Working time</td>
|
||||
<td colspan="4">Weight/Measure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>From</td>
|
||||
<td>To</td>
|
||||
<td colspan="3">From</td>
|
||||
<td colspan="3">To</td>
|
||||
<td colspan="2">Vehicle type/Quantity</td>
|
||||
<td colspan="2">Total W/M</td>
|
||||
</tr>
|
||||
<tr v-for="(item,index) in fcArr" :key="index + 'fc'">
|
||||
<td colspan="2">{{item.retallyTypeName}}</td>
|
||||
<td>{{item.retallyOrigin}}</td>
|
||||
<td>{{item.retallyTerminus}}</td>
|
||||
<td colspan="3">{{item.retallyStartTime}}</td>
|
||||
<td colspan="3">{{item.retallyEndTime}}</td>
|
||||
<td colspan="2">车型:{{item.carTypeName}},数量:{{item.goodsNumber}}</td>
|
||||
<td colspan="2">重量:{{item.goodsWeight}},体积:{{item.goodsVolume}}</td>
|
||||
</tr>
|
||||
<view class="right cellX">
|
||||
<view class="itemLeft bo_r">
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="t-zx" v-for="(v,indexv) in qtArr" :key="indexv">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<!-- <td colspan="2">Reason</td> -->
|
||||
<td colspan="3">Tech Stev</td>
|
||||
<td>From</td>
|
||||
<td>To</td>
|
||||
<td>Weight/Measure</td>
|
||||
<td colspan="3">Men</td>
|
||||
<td>From</td>
|
||||
<td>To</td>
|
||||
<td>Weight/Measure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td colspan="3">{{v.tecNum}}</td>
|
||||
<td>{{v.startTm}}</td>
|
||||
<td>{{v.endTm}}</td>
|
||||
<td>重量:{{v.weight}},体积:{{v.volume}}</td>
|
||||
<td colspan="3">{{v.genNum}}</td>
|
||||
<td>{{v.startTmPt}}</td>
|
||||
<td>{{v.endTmPt}}</td>
|
||||
<td>重量:{{v.weightPt}},体积:{{v.volumePt}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extra Labour(辅助作业)</td>
|
||||
<td colspan="15">{{v.auxRemark}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stand by(待工)</td>
|
||||
<td colspan="15">{{v.waitRemark}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Remark(备注)</td>
|
||||
<td colspan="15">{{v.workRemark}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
<view class="itemRight">
|
||||
<!-- 没办法画个格子 -->
|
||||
<view class="gezi">
|
||||
<view></view>
|
||||
<view></view>
|
||||
<view></view>
|
||||
</view>
|
||||
<view class="itemList bo_b" v-for="(item3,index3) in item2.infoArr"
|
||||
:key="index3">
|
||||
<view class="item">
|
||||
<view class="text" v-show="item3.loadingType == 'RO'">√</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="text" v-show="item3.loadingType == 'PR'">√</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="text" v-show="item3.loadingType == 'OT'">√</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rowThree">
|
||||
<view class="title bo_r bo_b">
|
||||
Rehangdling(翻舱)
|
||||
</view>
|
||||
<view class="fclist">
|
||||
<view class="fcbt">
|
||||
<view class="bt">
|
||||
<view class="kind bo_r">
|
||||
Kind of Rehangdling
|
||||
</view>
|
||||
<view class="date">
|
||||
<view class="cellY bo_r">
|
||||
<view class="bo_b">DK/H</view>
|
||||
<view class="cellX">
|
||||
<view class="bo_r">From</view>
|
||||
<view>To</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="cellY bo_r">
|
||||
<view class="bo_b">Working time</view>
|
||||
<view class="cellX">
|
||||
<view class="bo_r">From</view>
|
||||
<view>To</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="weight">
|
||||
<view class="cellY">
|
||||
<view class="bo_b">Weight/Measure</view>
|
||||
<view class="cellX">
|
||||
<view class="bo_r">Vehicle type/Quantity</view>
|
||||
<view>Total W/M</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="fcbt">
|
||||
<view class="bt">
|
||||
<view class="kind bo_r">
|
||||
Shift Of Pier
|
||||
</view>
|
||||
<view class="ceY">
|
||||
<view class="concat" v-for="(item,index) in fcArr1" :key="index">
|
||||
<view class="date">
|
||||
<view class="item bo_r">
|
||||
<view class="sz bo_r">{{item.retallyOrigin}}</view>
|
||||
<view class="sz">{{item.retallyOrigin}}</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="sz bo_r">{{item.retallyStartTime}}</view>
|
||||
<view class="sz bo_r">{{item.retallyEndTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="weight cellX">
|
||||
<view class="text bo_r">
|
||||
车型:{{item.carTypeName}},数量:{{item.goodsNumber}}
|
||||
</view>
|
||||
<view class="text">
|
||||
重量:{{item.goodsWeight}},体积:{{item.goodsVolume}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="fcbt">
|
||||
<view class="bt">
|
||||
<view class="kind bo_r">
|
||||
Shift Of Dock
|
||||
</view>
|
||||
<view class="ceY">
|
||||
<view class="concat" v-for="(item,index) in fcArr2" :key="index">
|
||||
<view class="date">
|
||||
<view class="item bo_r">
|
||||
<view class="sz bo_r">{{item.retallyOrigin}}</view>
|
||||
<view class="sz">{{item.retallyOrigin}}</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="sz bo_r">{{item.retallyStartTime}}</view>
|
||||
<view class="sz bo_r">{{item.retallyEndTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="weight cellX">
|
||||
<view class="text bo_r">
|
||||
车型:{{item.carTypeName}},数量:{{item.goodsNumber}}
|
||||
</view>
|
||||
<view class="text">
|
||||
重量:{{item.goodsWeight}},体积:{{item.goodsVolume}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="fcbt">
|
||||
<view class="bt">
|
||||
<view class="kind bo_r">
|
||||
Reloading
|
||||
</view>
|
||||
<view class="ceY">
|
||||
<view class="concat" v-for="(item,index) in fcArr3" :key="index">
|
||||
<view class="date">
|
||||
<view class="item bo_r">
|
||||
<view class="sz bo_r">{{item.retallyOrigin}}</view>
|
||||
<view class="sz">{{item.retallyOrigin}}</view>
|
||||
</view>
|
||||
<view class="item">
|
||||
<view class="sz bo_r">{{item.retallyStartTime}}</view>
|
||||
<view class="sz bo_r">{{item.retallyEndTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="weight cellX">
|
||||
<view class="text bo_r">
|
||||
车型:{{item.carTypeName}},数量:{{item.goodsNumber}}
|
||||
</view>
|
||||
<view class="text">
|
||||
重量:{{item.goodsWeight}},体积:{{item.goodsVolume}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="rowFour">
|
||||
<view class="row">
|
||||
<view class="title bo_l bo_r">
|
||||
</view>
|
||||
<view class="kind bo_r">
|
||||
Reason
|
||||
</view>
|
||||
<view class="date">
|
||||
<view class="bo_r">Tech Stev</view>
|
||||
<view class="bo_r">Men</view>
|
||||
<view class="bo_r">From</view>
|
||||
<view class="bo_r">To</view>
|
||||
</view>
|
||||
<view class="weight bo_r">
|
||||
Weight/Measure
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="rowC">
|
||||
<view class="title bo_l bo_r">
|
||||
Extra Labour
|
||||
</view>
|
||||
<view class="kind bo_r">
|
||||
</view>
|
||||
<view class="date">
|
||||
<view class="cellY">
|
||||
<view class="sz bo_b">{{ JSGR[0].totalTecNum }}</view>
|
||||
<view class="sz"></view>
|
||||
</view>
|
||||
<view class="cellY">
|
||||
<view class="sz bo_b"></view>
|
||||
<view class="sz"></view>
|
||||
</view>
|
||||
<view class="cellY">
|
||||
<view class="sz bo_b">{{ JSGR[0].minStartTime }}</view>
|
||||
<view class="sz"></view>
|
||||
</view>
|
||||
<view class="cellY">
|
||||
<view class="sz bo_b">{{ JSGR[0].maxEndTime }}</view>
|
||||
<view class="sz"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="weight cellY bo_r">
|
||||
<view class="sz bo_b">{{ JSGR[0].totalWeight }}/{{ JSGR[0].totalvolume }}</view>
|
||||
<view class="sz"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="row">
|
||||
<view class="title bo_l bo_r">
|
||||
Stand by
|
||||
</view>
|
||||
<view class="rownr bo_r">
|
||||
{{ JSGR[0].allWaitRemark }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="row">
|
||||
<view class="title bo_l bo_r">
|
||||
Remark
|
||||
</view>
|
||||
<view class="rownr bo_r">
|
||||
{{ JSGR[0].allAuxRemark }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="signBox">
|
||||
<view class="signContent">
|
||||
<view class="signTitle">
|
||||
|
@ -186,6 +391,7 @@
|
|||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</custom-tab-pane>
|
||||
</custom-tabs>
|
||||
</view>
|
||||
|
@ -232,11 +438,11 @@
|
|||
// 船舶信息
|
||||
shipInfo: {},
|
||||
shiftInfo: [],
|
||||
// 工班信息
|
||||
shiftList: [],
|
||||
// 翻仓信息
|
||||
fcList: [],
|
||||
fcArr: [],
|
||||
fcArr1: [],
|
||||
fcArr2: [],
|
||||
fcArr3: [],
|
||||
// 其他信息
|
||||
qtList: [],
|
||||
qtArr: [],
|
||||
|
@ -251,6 +457,8 @@
|
|||
id: ""
|
||||
},
|
||||
delId: "",
|
||||
PTGR:[],
|
||||
JSGR:[]
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
|
@ -268,7 +476,13 @@
|
|||
that.fcList.forEach(v => {
|
||||
let endT = v.retallyEndTime.slice(0, 10)
|
||||
if (endT == that.dateId) {
|
||||
that.fcArr.push(v)
|
||||
if(v.retallyTypeName == '舱内翻') {
|
||||
that.fcArr1.push(v)
|
||||
} else if(v.retallyTypeName == '舱外翻'){
|
||||
that.fcArr2.push(v)
|
||||
} else if(v.retallyTypeName == '货物重装') {
|
||||
that.fcArr3.push(v)
|
||||
}
|
||||
}
|
||||
})
|
||||
that.qtList.forEach(v => {
|
||||
|
@ -343,12 +557,19 @@
|
|||
let sql3 = `SELECT * FROM retallyMessageRespList WHERE retallyMessageRespList.retallyStartTime>='${this.startTime}' and
|
||||
retallyMessageRespList.retallyEndTime<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
this.executeSql3(sql3)
|
||||
let sql4 = `SELECT * FROM infoRespList WHERE infoRespList.startTm>='${this.startTime}' and
|
||||
infoRespList.endTm<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
// let sql4 = `SELECT * FROM infoRespList WHERE infoRespList.startTm>='${this.startTime}' and
|
||||
// infoRespList.endTm<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
// 普通工人查询
|
||||
let sql4 = `SELECT MIN(startTmPt) AS minStartTimePt,MAX(endTmPt) AS maxEndTimePt,SUM(genNum) AS totalGenNum,SUM(weightPt) AS totalWeightPt,SUM(volumePt) AS totalvolumePt
|
||||
FROM infoRespList WHERE vtpId = '${this.vtpId}' AND startTmPt>='${this.startTime}' AND endTmPt<='${this.endTime}'`
|
||||
this.executeSql4(sql4)
|
||||
let sql5 = `SELECT * FROM messageRespList WHERE messageRespList.jobStartTime>='${this.startTime}' and
|
||||
messageRespList.jobEndTime<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
this.executeSql6(sql5)
|
||||
// 技术工人查询
|
||||
let sql6 = `SELECT MIN(startTm) AS minStartTime,MAX(endTm) AS maxEndTime,SUM(tecNum) AS totalTecNum,SUM(weight) AS totalWeight,SUM(volume) AS totalvolume,GROUP_CONCAT(waitRemark, ', ') AS allWaitRemark, GROUP_CONCAT(auxRemark, ', ') AS allAuxRemark
|
||||
FROM infoRespList WHERE vtpId = '${this.vtpId}' AND startTm>='${this.startTime}'AND endTm<='${this.endTime}'`
|
||||
this.executeSql7(sql6)
|
||||
})
|
||||
let that = this
|
||||
setTimeout(function() {
|
||||
|
@ -434,14 +655,28 @@
|
|||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查其他信息
|
||||
// 查普通工人信息
|
||||
executeSql4(sql) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
// console.log('value',value);
|
||||
if (value.length > 0) {
|
||||
this.qtList.push(...value)
|
||||
this.PTGR.push(...value)
|
||||
}
|
||||
this.qtList = api.arrFrom(this.qtList, "webId")
|
||||
// this.qtList = api.arrFrom(this.qtList, "webId")
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查技术工人信息
|
||||
executeSql7(sql) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
if (value.length > 0) {
|
||||
this.JSGR.push(...value)
|
||||
}
|
||||
// this.qtList = api.arrFrom(this.qtList, "webId")
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
|
@ -528,7 +763,9 @@
|
|||
this.tabsList = []
|
||||
this.shiftList = []
|
||||
this.shiftInf = []
|
||||
this.fcArr = []
|
||||
this.fcArr1 = []
|
||||
this.fcArr2 = []
|
||||
this.fcArr3 = []
|
||||
this.qtArr = []
|
||||
this.peopleArr = []
|
||||
this.tqInfo = ""
|
||||
|
@ -545,7 +782,13 @@
|
|||
this.fcList.forEach(v => {
|
||||
let endT = v.retallyEndTime.slice(0, 10)
|
||||
if (endT == this.dateId) {
|
||||
this.fcArr.push(v)
|
||||
if(v.retallyTypeName == '舱内翻') {
|
||||
this.fcArr1.push(v)
|
||||
} else if(v.retallyTypeName == '舱外翻'){
|
||||
this.fcArr2.push(v)
|
||||
} else if(v.retallyTypeName == '货物重装') {
|
||||
this.fcArr3.push(v)
|
||||
}
|
||||
}
|
||||
})
|
||||
this.qtList.forEach(v => {
|
||||
|
@ -655,7 +898,7 @@
|
|||
justify-content: center;
|
||||
text-align: right;
|
||||
|
||||
p {
|
||||
.p {
|
||||
font-size: 22px;
|
||||
color: #0052A4;
|
||||
font-weight: bold;
|
||||
|
@ -679,7 +922,7 @@
|
|||
flex: 3;
|
||||
text-align: center;
|
||||
|
||||
p {
|
||||
.p {
|
||||
font-size: 24px;
|
||||
color: #23262E;
|
||||
font-weight: bold;
|
||||
|
@ -716,12 +959,12 @@
|
|||
|
||||
.ul {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
padding: 15px 0;
|
||||
|
||||
.li {
|
||||
width: 33%;
|
||||
width: 33.33%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
|
@ -729,7 +972,24 @@
|
|||
color: #23262E;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
margin-left: 8px;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
text:first-child {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.li:last-child {
|
||||
width: 66.67%;
|
||||
|
||||
text {
|
||||
|
||||
width: 75%;
|
||||
}
|
||||
|
||||
text:first-child {
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -739,6 +999,347 @@
|
|||
}
|
||||
}
|
||||
|
||||
.bo_r {
|
||||
border-right: 1px solid #000;
|
||||
}
|
||||
|
||||
.bo_b {
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.bo_l {
|
||||
border-left: 1px solid #000;
|
||||
}
|
||||
|
||||
.cellX {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.rowOne {
|
||||
width: 100%;
|
||||
height: 60px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border: 1px solid #000;
|
||||
border-bottom: 0;
|
||||
text-align: center;
|
||||
background-color: #e9e9e9;
|
||||
|
||||
.left {
|
||||
width: 55%;
|
||||
display: flex;
|
||||
|
||||
.cell {
|
||||
width: 25%;
|
||||
border-right: 1px solid #000;
|
||||
}
|
||||
|
||||
.cellY {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.item {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.cellX {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
view {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.cellB {
|
||||
width: 50%;
|
||||
|
||||
view {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 45%;
|
||||
text-align: center;
|
||||
|
||||
.itemLeft {
|
||||
width: 30%;
|
||||
line-height: 60px;
|
||||
}
|
||||
|
||||
.cellY {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.itemRight {
|
||||
width: 70%;
|
||||
|
||||
text {
|
||||
width: 33.3333%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rowTwo {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border: 1px solid #000;
|
||||
border-bottom: 0;
|
||||
text-align: center;
|
||||
|
||||
.left {
|
||||
width: 55%;
|
||||
display: flex;
|
||||
min-height: 30px;
|
||||
line-height: 30px;
|
||||
|
||||
.cell {
|
||||
width: 25%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.cellX {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.item {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.cellY {
|
||||
width: 50%;
|
||||
text-align: center;
|
||||
|
||||
.item {
|
||||
width: 100%;
|
||||
line-height: 30px;
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.item:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 45%;
|
||||
line-height: 30px;
|
||||
|
||||
.itemLeft {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.itemRight {
|
||||
width: 70%;
|
||||
position: relative;
|
||||
|
||||
.gezi {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
|
||||
view {
|
||||
width: 33.33%;
|
||||
border-right: 1px solid #000;
|
||||
}
|
||||
|
||||
view:last-child {
|
||||
width: 33.34%;
|
||||
border-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.itemList {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
display: flex;
|
||||
|
||||
.item {
|
||||
width: 33.3333%;
|
||||
}
|
||||
}
|
||||
|
||||
.itemList:last-child {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rowThree {
|
||||
display: flex;
|
||||
border: 1px solid #000;
|
||||
border-bottom: 0;
|
||||
text-align: center;
|
||||
|
||||
.title {
|
||||
// 0.55*0.25
|
||||
width: 13.75%;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.fclist {
|
||||
display: flex;
|
||||
width: 86.25%;
|
||||
flex-direction: column;
|
||||
|
||||
.fcbt {
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #000;
|
||||
|
||||
.bt {
|
||||
display: flex;
|
||||
|
||||
.kind {
|
||||
width: 15.96%;
|
||||
}
|
||||
|
||||
.ceY {
|
||||
width: 84.04%;
|
||||
|
||||
.concat {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
border-bottom: 1px solid #000;
|
||||
|
||||
.date {
|
||||
width: 37.84%;
|
||||
}
|
||||
|
||||
.weight {
|
||||
width: 62.16%;
|
||||
}
|
||||
}
|
||||
|
||||
.concat:last-child {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.date {
|
||||
width: 31.8%;
|
||||
display: flex;
|
||||
|
||||
.item {
|
||||
width: 50%;
|
||||
display: flex;
|
||||
|
||||
.sz {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.cellY {
|
||||
width: 100%;
|
||||
|
||||
.cellX view {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.weight {
|
||||
width: 52.24%;
|
||||
|
||||
.text {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.cellX view {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.rowFour {
|
||||
text-align: center;
|
||||
line-height: 30px;
|
||||
|
||||
.row {
|
||||
display: flex;
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #000;
|
||||
}
|
||||
|
||||
.rowC {
|
||||
display: flex;
|
||||
height: 60px;
|
||||
width: 100%;
|
||||
border-bottom: 1px solid #000;
|
||||
|
||||
.date {
|
||||
.sz {
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
border-right: 1px solid #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
// 0.55*0.25
|
||||
width: 13.75%;
|
||||
}
|
||||
|
||||
.kind {
|
||||
width: 13.78%;
|
||||
}
|
||||
|
||||
.rownr {
|
||||
// 0.55*0.25
|
||||
width: 86.25%;
|
||||
}
|
||||
|
||||
.date {
|
||||
width: 27.45%;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
|
||||
view {
|
||||
width: 25%;
|
||||
}
|
||||
}
|
||||
|
||||
.weight {
|
||||
width: 45%;
|
||||
text-align: center;
|
||||
|
||||
.sz {
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
.headZx {
|
||||
background: #E9E9E9;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,896 @@
|
|||
<template>
|
||||
<view class="mixSign">
|
||||
<head-view :title="title" url="/pages/shipWork/mixWork"></head-view>
|
||||
<view class="contentFixedr">
|
||||
<custom-tabs type="c1" :value="tabsValue" @change="tabsChange">
|
||||
<custom-tab-pane :label="item.name" v-for="(item,index) in tabsList" :name="'c1_'+index" :key="index">
|
||||
<view></view>
|
||||
<view style="padding: 16px; padding-bottom: 0;">
|
||||
<view class="container">
|
||||
<view class="head">
|
||||
<view class="leftHead">
|
||||
<image id="HT-logo" src="../../static/images/theme/logo.png" mode="widthFix" />
|
||||
</view>
|
||||
<view class="rightHead">
|
||||
<p>上海海通国际汽车码头有限公司</p>
|
||||
<text>SHANGHAI HAITONG INTERNATIONAL AUTOMOTIVE TERMINAL CO. LTD.</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="headTItle">
|
||||
<view class="titleLeft"></view>
|
||||
<view class="title">
|
||||
<p>海通码头装卸和杂项作业单</p>
|
||||
<text>SHANGHAI HARBOUR BUREAU STEVEDORE WORKING RECORD</text>
|
||||
</view>
|
||||
<view class="titleRight">
|
||||
<view>
|
||||
<text>编号/N0:</text>
|
||||
<text>QR-7.5.1-01-05-M</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="ul">
|
||||
<view class="li">
|
||||
<p>Name of ship:</p><text>{{shipInfo.vslCnname}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Voy No:</p><text>{{vvyName}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Date:</p><text>{{dateId}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Weather:</p><text>{{tqInfo}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Gangs:</p><text>{{zyzsInfo}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Foreman:</p><text>{{dcrsInfo}}</text>
|
||||
</view>
|
||||
<view class="li">
|
||||
<p>Berthed at Haitong:</p><text>{{bwInfo}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<table class="t-zx headZx">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td rowspan="2" style="width: 140px;"></td>
|
||||
<td colspan="6">Working time</td>
|
||||
<td colspan="4">Kind Of Works</td>
|
||||
<td rowspan="2">B/L</td>
|
||||
<td colspan="3">Handling method</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" style="width: 88.5px;">From</td>
|
||||
<td colspan="3" style="width: 88.5px;">To</td>
|
||||
<td colspan="4">Loading/UnLoading</td>
|
||||
<td>Ro/Ro</td>
|
||||
<td>PortDevices</td>
|
||||
<td>Others</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<view v-for="(item2,index2) in shiftInfo" :key="index2 + 'shift'" class="rowBox">
|
||||
<view class="name">{{item2.pwcTypeName == '一工班' ? 'First Shift(一工班)' : item2.pwcTypeName == '二工班' ? 'Second Shift(二工班)' : item2.pwcTypeName == '三工班' ? 'Third Shift(三工班)' : ''}}</view>
|
||||
<view class="time">{{item2.workStartTime}}</view>
|
||||
<view class="time">{{item2.workEndTime}}</view>
|
||||
<view class="infoBox">
|
||||
<view class="iBox" v-for="(item3,index3) in item2.infoArr">
|
||||
<view colspan="4" class="carCss">
|
||||
车型:{{item3.carTypeName}},数量:{{item3.goodsNumber}}
|
||||
</view>
|
||||
<view class="remark">{{item3.remark}}</view>
|
||||
<view class="ro gx"><text v-if="item3.loadingType == 'RO'">√</text></view>
|
||||
<view class="pr gx"><text v-if="item3.loadingType == 'PR'">√</text></view>
|
||||
<view class="ot gx"><text v-if="item3.loadingType == 'OT'">√</text></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<table class="t-zx">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td :rowspan="fcList.length + 2">Rehangdling(翻舱)</td>
|
||||
<td colspan="2" rowspan="2">Kind of Rehangdling</td>
|
||||
<td colspan="2">DK/H</td>
|
||||
<td colspan="6">Working time</td>
|
||||
<td colspan="4">Weight/Measure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>From</td>
|
||||
<td>To</td>
|
||||
<td colspan="3">From</td>
|
||||
<td colspan="3">To</td>
|
||||
<td colspan="2">Vehicle type/Quantity</td>
|
||||
<td colspan="2">Total W/M</td>
|
||||
</tr>
|
||||
<tr v-for="(item,index) in fcArr" :key="index + 'fc'">
|
||||
<td colspan="2">{{item.retallyTypeName}}</td>
|
||||
<td>{{item.retallyOrigin}}</td>
|
||||
<td>{{item.retallyTerminus}}</td>
|
||||
<td colspan="3">{{item.retallyStartTime}}</td>
|
||||
<td colspan="3">{{item.retallyEndTime}}</td>
|
||||
<td colspan="2">车型:{{item.carTypeName}},数量:{{item.goodsNumber}}</td>
|
||||
<td colspan="2">重量:{{item.goodsWeight}},体积:{{item.goodsVolume}}</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="t-zx" v-for="(v,indexv) in qtArr" :key="indexv">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<!-- <td colspan="2">Reason</td> -->
|
||||
<td colspan="3">Tech Stev</td>
|
||||
<td>From</td>
|
||||
<td>To</td>
|
||||
<td>Weight/Measure</td>
|
||||
<td colspan="3">Men</td>
|
||||
<td>From</td>
|
||||
<td>To</td>
|
||||
<td>Weight/Measure</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td colspan="3">{{v.tecNum}}</td>
|
||||
<td>{{v.startTm}}</td>
|
||||
<td>{{v.endTm}}</td>
|
||||
<td>重量:{{v.weight}},体积:{{v.volume}}</td>
|
||||
<td colspan="3">{{v.genNum}}</td>
|
||||
<td>{{v.startTmPt}}</td>
|
||||
<td>{{v.endTmPt}}</td>
|
||||
<td>重量:{{v.weightPt}},体积:{{v.volumePt}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Extra Labour(辅助作业)</td>
|
||||
<td colspan="15">{{v.auxRemark}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Stand by(待工)</td>
|
||||
<td colspan="15">{{v.waitRemark}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Remark(备注)</td>
|
||||
<td colspan="15">{{v.workRemark}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</view>
|
||||
</view>
|
||||
<view class="signBox">
|
||||
<view class="signContent">
|
||||
<view class="signTitle">
|
||||
<p>指导员:</p>
|
||||
<p>Foreman:</p>
|
||||
</view>
|
||||
<view class="signInfo" v-if="zdySign.url == ''" @click="togoSign('0')">
|
||||
去签名
|
||||
</view>
|
||||
<view class="signImg" v-else>
|
||||
<image :src="zdySign.url"></image>
|
||||
<!-- <text class="del" @click="delSign(zdySign.id)">删除</text> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="row"></view>
|
||||
<view class="signContent">
|
||||
<view class="signTitle">
|
||||
<p>船长/大副:</p>
|
||||
<p>Capt/Chief Mate:</p>
|
||||
</view>
|
||||
<view class="signInfo" v-if="czSign.url == ''" @click="togoSign('1')">
|
||||
去签名
|
||||
</view>
|
||||
<view class="signImg" v-else>
|
||||
<image :src="czSign.url"></image>
|
||||
<!-- <text class="del" @click="delSign(czSign.id)">删除</text> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</custom-tab-pane>
|
||||
</custom-tabs>
|
||||
</view>
|
||||
<uni-popup ref="delPopup" type="dialog">
|
||||
<uni-popup-dialog type="error" confirmText="确定" title="通知" content="是否删除此条数据"
|
||||
@confirm="delConfirm"></uni-popup-dialog>
|
||||
</uni-popup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import sqlite from "../../common/sqlite.js"
|
||||
import api from "../../common/api.js"
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
title: "杂项单证签名",
|
||||
tabsValue: 0,
|
||||
tabsList: [],
|
||||
vvyId: "",
|
||||
vvyName: "",
|
||||
webId: "",
|
||||
aIdList: [],
|
||||
aId: "",
|
||||
vtpId: "",
|
||||
// 时间段数组
|
||||
timeArr: [],
|
||||
// 一天开始时间
|
||||
startTime: "",
|
||||
// 一天结束时间
|
||||
endTime: "",
|
||||
// 人员信息
|
||||
peopleInfo: {},
|
||||
peopleList: [],
|
||||
peopleArr: [],
|
||||
tqInfo: "",
|
||||
bwArr: [],
|
||||
bwInfo: "",
|
||||
zyzsInfo: 0,
|
||||
dcrsInfo: 0,
|
||||
// 单证数量
|
||||
tabsArr: [],
|
||||
gbArr: [],
|
||||
// 船舶信息
|
||||
shipInfo: {},
|
||||
shiftInfo: [],
|
||||
// 工班信息
|
||||
shiftList: [],
|
||||
// 翻仓信息
|
||||
fcList: [],
|
||||
fcArr: [],
|
||||
// 其他信息
|
||||
qtList: [],
|
||||
qtArr: [],
|
||||
// 签名信息
|
||||
zdySign: {
|
||||
url: "",
|
||||
id: ""
|
||||
},
|
||||
dateId: "",
|
||||
czSign: {
|
||||
url: "",
|
||||
id: ""
|
||||
},
|
||||
delId: "",
|
||||
PTGR:{},
|
||||
JSGR:{}
|
||||
}
|
||||
},
|
||||
onLoad(option) {
|
||||
if ('params' in option) {
|
||||
this.tabsValue = JSON.parse(decodeURIComponent(option.params)).tabsValue
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.vtpId = uni.getStorageSync('vtpId')
|
||||
let that = this
|
||||
that.executeSql2()
|
||||
that.executeSql('shipInfoTable')
|
||||
that.aaa()
|
||||
setTimeout(function() {
|
||||
that.fcList.forEach(v => {
|
||||
let endT = v.retallyEndTime.slice(0, 10)
|
||||
if (endT == that.dateId) {
|
||||
that.fcArr.push(v)
|
||||
}
|
||||
})
|
||||
that.qtList.forEach(v => {
|
||||
let endT = ""
|
||||
if (v.endTm != "") {
|
||||
endT = v.endTm.slice(0, 10)
|
||||
} else if (v.endTmPt != "") {
|
||||
endT = v.endTmPt.slice(0, 10)
|
||||
}
|
||||
if (endT == that.dateId) {
|
||||
that.qtArr.push(v)
|
||||
}
|
||||
})
|
||||
if (that.qtArr.length == 0) {
|
||||
that.qtArr.push({})
|
||||
}
|
||||
that.shiftInfo.forEach(v => {
|
||||
let arr = api.arrFrom(v.infoArr, "webId")
|
||||
that.$set(v, "infoArr", arr)
|
||||
})
|
||||
that.peopleList.forEach(v => {
|
||||
let endT = v.jobEndTime.slice(0, 10)
|
||||
if (endT == that.dateId) {
|
||||
that.peopleArr.push(v)
|
||||
}
|
||||
})
|
||||
that.tqInfo = that.peopleArr[0].weatherType
|
||||
that.peopleArr.forEach(v => {
|
||||
that.zyzsInfo += Number(v.workSuite)
|
||||
that.dcrsInfo += Number(v.shipPerson)
|
||||
that.bwArr.push(v.bthIdName)
|
||||
})
|
||||
that.bwInfo = that.bwArr.join(",")
|
||||
}, 300)
|
||||
},
|
||||
methods: {
|
||||
// 查船舶信息/人员信息
|
||||
executeSql(tableName) {
|
||||
let sql = `select * from ${tableName} WHERE vtpId = '${this.vtpId}'`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
if (tableName == 'shipInfoTable') {
|
||||
this.shipInfo = value[0]
|
||||
} else {
|
||||
this.peopleInfo = value[0]
|
||||
}
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查工班信息
|
||||
executeSql2(type) {
|
||||
let sql = `SELECT
|
||||
strftime('%Y-%m-%d %H:00:00', datetime(workEndTime, '0 day', 'start of day', '+22 hours')) || ',' || strftime('%Y-%m-%d %H:00:00', datetime(workEndTime, '1 day', 'start of day', '+22 hours')) AS work_shift
|
||||
FROM workMessageRespList WHERE workMessageRespList.vtpId='${this.vtpId}'
|
||||
GROUP BY work_shift
|
||||
UNION SELECT strftime('%Y-%m-%d %H:00:00', datetime(workEndTime, '-1 day', 'start of day', '+22 hours')) || ',' || strftime('%Y-%m-%d %H:00:00', datetime(workEndTime, '0 day', 'start of day', '+22 hours')) AS work_shift
|
||||
FROM workMessageRespList WHERE workMessageRespList.vtpId='${this.vtpId}'
|
||||
GROUP BY work_shift;`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
this.timeArr = value
|
||||
value.forEach((v, index) => {
|
||||
this.startTime = v.work_shift.split(",")[0]
|
||||
this.endTime = v.work_shift.split(",")[1]
|
||||
let sql2 =
|
||||
`Select COUNT(*),pwcTypeName,vvyId,vvyName,MIN(workStartTime) AS workStartTime, MAX(workEndTime)
|
||||
AS workEndTime FROM (SELECT * FROM workMessageRespList WHERE workStartTime>='${this.startTime}' and
|
||||
workEndTime<'${this.endTime}' and workMessageRespList.vtpId='${this.vtpId}')
|
||||
GROUP BY pwcTypeName ORDER BY workStartTime asc;`
|
||||
this.executeSql22(sql2, index)
|
||||
let sql3 = `SELECT * FROM retallyMessageRespList WHERE retallyMessageRespList.retallyStartTime>='${this.startTime}' and
|
||||
retallyMessageRespList.retallyEndTime<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
this.executeSql3(sql3)
|
||||
let sql4 = `SELECT MIN(startTmPt) AS minStartTimePt,MAX(endTmPt) AS maxEndTimePt,SUM(genNum) AS totalGenNum,SUM(weightPt) AS totalWeightPt,SUM(volumePt) AS totalvolumePt
|
||||
FROM infoRespList WHERE vvyId = '${this.vvyId}' AND startTmPt>='${this.startTime}' AND endTmPt<='${this.endTime}'`
|
||||
// let sql4 = `SELECT * FROM infoRespList WHERE infoRespList.startTm>='${this.startTime}' and
|
||||
// infoRespList.endTm<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
this.executeSql4(sql4)
|
||||
let sql5 = `SELECT * FROM messageRespList WHERE messageRespList.jobStartTime>='${this.startTime}' and
|
||||
messageRespList.jobEndTime<'${this.endTime}' and vtpId = '${this.vtpId}'`
|
||||
this.executeSql6(sql5)
|
||||
})
|
||||
let that = this
|
||||
setTimeout(function() {
|
||||
if (type != 0) {
|
||||
that.tabsArr.forEach((v, index) => {
|
||||
let _index = index + 1
|
||||
that.$set(v, "name", `杂项单证${_index}`)
|
||||
})
|
||||
}
|
||||
that.tabsList = that.tabsArr
|
||||
that.shiftInfo = that.tabsList[that.tabsValue].shiftArr
|
||||
that.shiftList = that.tabsList[that.tabsValue].shiftArr
|
||||
that.vvyId = that.tabsList[0].shiftArr[0].vvyId
|
||||
that.vvyName = that.tabsList[0].shiftArr[0].vvyName
|
||||
let dateId = that.tabsList[that.tabsValue].shiftArr[0].workEndTime
|
||||
that.dateId = dateId.slice(0, 10)
|
||||
that.executeSql5()
|
||||
that.shiftList.forEach(v => {
|
||||
that.executeSql222(v.workStartTime, v.workEndTime, v.pwcTypeName)
|
||||
})
|
||||
setTimeout(function() {
|
||||
that.shiftList = that.shiftList
|
||||
}, 100)
|
||||
}, 100)
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
executeSql22(sql, index) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
if (value.length > 0) {
|
||||
this.tabsArr.push({
|
||||
shiftArr: value
|
||||
})
|
||||
}
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
executeSql222(sTime, eTime, pwcTypeName) {
|
||||
let sql = `SELECT * FROM workMessageRespList
|
||||
WHERE workStartTime>='${sTime}'
|
||||
and workEndTime<='${eTime}'
|
||||
and workMessageRespList.vtpId='${this.vtpId}'
|
||||
and workMessageRespList.pwcTypeName='${pwcTypeName}';`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
this.gbArr.push(...value)
|
||||
this.shiftInfo.forEach((i, index) => {
|
||||
this.$set(i, "infoArr", [])
|
||||
this.gbArr.forEach((v, index2) => {
|
||||
if (i.pwcTypeName == v.pwcTypeName) {
|
||||
this.aaa(v.webId, index)
|
||||
}
|
||||
})
|
||||
})
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
aaa(id, index) {
|
||||
let sql =
|
||||
`SELECT * FROM workMessageRespInfoList WHERE workMessageRespInfoList.contactId = '${id}'`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// this.$set(this.gbArr[index], "infoArr", value)
|
||||
this.shiftInfo[index].infoArr.push(...value)
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查翻仓信息
|
||||
executeSql3(sql) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
if (value.length > 0) {
|
||||
this.fcList.push(...value)
|
||||
}
|
||||
this.fcList = api.arrFrom(this.fcList, "webId")
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查普通工人信息
|
||||
executeSql4(sql) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
console.log('value',value);
|
||||
if (value.length > 0) {
|
||||
this.PTGR.push(...value)
|
||||
}
|
||||
// this.qtList = api.arrFrom(this.qtList, "webId")
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查人员信息
|
||||
executeSql6(sql) {
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
if (value.length > 0) {
|
||||
this.peopleList.push(...value)
|
||||
}
|
||||
this.peopleList = api.arrFrom(this.peopleList, "pmeId")
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 查单证签字表
|
||||
executeSql5() {
|
||||
let sql = `select * from workSignTable WHERE bizId = '${this.dateId}';`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
let zdyList = []
|
||||
let czList = []
|
||||
if (value.length > 0) {
|
||||
value.forEach(v => {
|
||||
if (v.sort == 0) {
|
||||
this.zdySign = {
|
||||
url: v.signFile,
|
||||
id: v.webId
|
||||
}
|
||||
zdyList.push(v)
|
||||
} else {
|
||||
this.czSign = {
|
||||
url: v.signFile,
|
||||
id: v.webId
|
||||
}
|
||||
czList.push(v)
|
||||
}
|
||||
})
|
||||
}
|
||||
if (zdyList.length == 0) {
|
||||
this.zdySign = {
|
||||
url: "",
|
||||
id: ""
|
||||
}
|
||||
}
|
||||
if (czList.length == 0) {
|
||||
this.czSign = {
|
||||
url: "",
|
||||
id: ""
|
||||
}
|
||||
}
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 删除当前签名
|
||||
delSign(id) {
|
||||
this.$refs.delPopup.open()
|
||||
this.delId = id
|
||||
},
|
||||
// 弹框删除
|
||||
delConfirm() {
|
||||
let sql = `DELETE FROM workSignTable WHERE webId = '${this.delId}';`
|
||||
sqlite.executeSqlCeshi(sql).then((value) => {
|
||||
// 在resolve时执行的回调函数
|
||||
this.executeSql5()
|
||||
}).catch((error) => {
|
||||
// 在reject时执行的回调函数
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
// 点击标签
|
||||
tabsChange(e) {
|
||||
this.tabsValue = e.value
|
||||
this.shiftList = this.tabsList[e.value].shiftArr
|
||||
this.dateId = this.tabsList[e.value].shiftArr[0].workEndTime.slice(0, 10)
|
||||
this.vvyName = this.tabsList[e.value].shiftArr[0].vvyName
|
||||
this.gbArr = []
|
||||
this.tabsArr = []
|
||||
this.tabsList = []
|
||||
this.shiftList = []
|
||||
this.shiftInf = []
|
||||
this.fcArr = []
|
||||
this.qtArr = []
|
||||
this.peopleArr = []
|
||||
this.tqInfo = ""
|
||||
this.zyzsInfo = 0
|
||||
this.dcrsInfo = 0
|
||||
this.bwArr = []
|
||||
this.bwInfo = ""
|
||||
this.executeSql2(0)
|
||||
this.executeSql5()
|
||||
this.shiftInfo.forEach(v => {
|
||||
let arr = api.arrFrom(v.infoArr, "webId")
|
||||
this.$set(v, "infoArr", arr)
|
||||
})
|
||||
this.fcList.forEach(v => {
|
||||
let endT = v.retallyEndTime.slice(0, 10)
|
||||
if (endT == this.dateId) {
|
||||
this.fcArr.push(v)
|
||||
}
|
||||
})
|
||||
this.qtList.forEach(v => {
|
||||
let endT = ""
|
||||
if (v.endTm != "") {
|
||||
endT = v.endTm.slice(0, 10)
|
||||
} else if (v.endTmPt != "") {
|
||||
endT = v.endTmPt.slice(0, 10)
|
||||
}
|
||||
if (endT == this.dateId) {
|
||||
this.qtArr.push(v)
|
||||
}
|
||||
})
|
||||
if (this.qtArr.length == 0) {
|
||||
this.qtArr.push({})
|
||||
}
|
||||
this.peopleList.forEach(v => {
|
||||
let endT = v.jobEndTime.slice(0, 10)
|
||||
if (endT == this.dateId) {
|
||||
this.peopleArr.push(v)
|
||||
}
|
||||
})
|
||||
this.tqInfo = this.peopleArr[0].weatherType
|
||||
this.peopleArr.forEach(v => {
|
||||
this.zyzsInfo += Number(v.workSuite)
|
||||
this.dcrsInfo += Number(v.shipPerson)
|
||||
this.bwArr.push(v.bthIdName)
|
||||
})
|
||||
this.bwInfo = this.bwArr.join(",")
|
||||
},
|
||||
// 点击签名
|
||||
togoSign(signType) {
|
||||
let obj = {
|
||||
id: this.dateId,
|
||||
url: "mixSign",
|
||||
signType: Number(signType), // 0 指导员 1 船长/大副
|
||||
signTable: "2",
|
||||
tabsValue: this.tabsValue,
|
||||
vvyId: this.vvyId,
|
||||
}
|
||||
const params = encodeURIComponent(JSON.stringify(obj));
|
||||
uni.navigateTo({
|
||||
url: `/pages/shipWork/sign?params=${params}`
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
@import "../../style/css/main-dz.css";
|
||||
|
||||
.contentFixedr {
|
||||
margin-top: 68px !important;
|
||||
|
||||
/deep/.tab .tab-bar {
|
||||
height: 66px;
|
||||
line-height: 66px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/deep/.tab .tab-bar-item {
|
||||
height: 66px;
|
||||
line-height: 66px;
|
||||
font-size: 18px;
|
||||
color: #23262E;
|
||||
font-weight: bold;
|
||||
font-family: PingFangSC-Semibold;
|
||||
padding: 0 24px !important;
|
||||
}
|
||||
|
||||
/deep/.tab .tab-bar-item.active {
|
||||
color: #0067CF
|
||||
}
|
||||
|
||||
/deep/.tab .tab-bar-item .active-line {
|
||||
color: #0067CF;
|
||||
width: 54px;
|
||||
height: 4px;
|
||||
}
|
||||
|
||||
/deep/.tab-pane {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/deep/.tab .tab-cont {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.container {
|
||||
padding: 0px 16px;
|
||||
background: #FFFFFF;
|
||||
border-radius: 8px;
|
||||
|
||||
.head {
|
||||
height: 85px;
|
||||
padding: 16px 0;
|
||||
margin: 0 8px;
|
||||
border-bottom: 1px solid #999;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.rightHead {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
text-align: right;
|
||||
|
||||
p {
|
||||
font-size: 22px;
|
||||
color: #0052A4;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
text {
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.headTItle {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
padding: 24px 0;
|
||||
margin: 0 8px;
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
|
||||
.title {
|
||||
flex: 3;
|
||||
text-align: center;
|
||||
|
||||
p {
|
||||
font-size: 24px;
|
||||
color: #23262E;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
text {
|
||||
font-size: 18px;
|
||||
color: #23262E;
|
||||
}
|
||||
}
|
||||
|
||||
.titleLeft {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.titleRight {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
|
||||
text:first-child {
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
text:last-child {
|
||||
font-size: 18px;
|
||||
color: #0052A4;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ul {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
padding: 15px 0;
|
||||
|
||||
.li {
|
||||
width: 33%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
text {
|
||||
color: #23262E;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.headZx {
|
||||
background: #E9E9E9;
|
||||
}
|
||||
|
||||
.t-zx td {
|
||||
height: 36px;
|
||||
}
|
||||
|
||||
/deep/.uni-scroll-view-content {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.rowBox {
|
||||
width: calc(100% - 1px);
|
||||
display: flex;
|
||||
border: 1px solid #000;
|
||||
box-sizing: border-box;
|
||||
|
||||
.name {
|
||||
border-right: 1px solid #000;
|
||||
width: 200px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.time {
|
||||
border-right: 1px solid #000;
|
||||
width: 203px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.infoBox {
|
||||
width: calc(100% - 476px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-items: center;
|
||||
|
||||
.iBox {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
border-top: 1px solid #000;
|
||||
border-bottom: 1px solid #000;
|
||||
|
||||
.carCss {
|
||||
border-right: 1px solid #000;
|
||||
width: 209px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.remark {
|
||||
border-right: 1px solid #000;
|
||||
width: 63px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.gx {
|
||||
border-right: 1px solid #000;
|
||||
width: 61px;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.ro {
|
||||
width: 87.5px;
|
||||
}
|
||||
|
||||
.pr {
|
||||
width: 139px;
|
||||
}
|
||||
|
||||
.ot {
|
||||
width: 90px;
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
|
||||
.iBox:first-child {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.iBox:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.signBox {
|
||||
width: 100%;
|
||||
height: 66px;
|
||||
background: #FFFFFF;
|
||||
border: 1px solid #E1E5ED;
|
||||
box-shadow: 0 -1px 4px 0 rgba(0, 0, 0, 0.05);
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding: 0 70px;
|
||||
|
||||
.row {
|
||||
width: 1px;
|
||||
height: 30px;
|
||||
background-color: #ccc;
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
.signContent {
|
||||
display: flex;
|
||||
margin: 0 54px;
|
||||
|
||||
.signTitle {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.signInfo {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
font-size: 18px;
|
||||
color: #0052A4;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.signImg {
|
||||
width: 100px;
|
||||
height: 54px;
|
||||
margin-top: 5px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.signContent:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -114,7 +114,7 @@
|
|||
} else if (tableName == 'shipInfoTable') {
|
||||
this.shipInfo = value[0]
|
||||
if(this.obj.state == "edit" || this.obj.state == "add") {
|
||||
if(this.shipInfo.actualBerthingTime) this.workDate = this.shipInfo.actualBerthingTime.split(' ')[0]
|
||||
if(this.shipInfo.actualBerthingTime != 'null') this.workDate = this.shipInfo.actualBerthingTime.split(' ')[0]
|
||||
}
|
||||
} else if (tableName == 'voyageScheduleDataDetailRespDTOList') {
|
||||
this.vvyInfo = value
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<view class="container">
|
||||
<view class="head">
|
||||
<view class="leftHead">
|
||||
<image id="HT-logo" src="../../static/images/theme/logo.png" mode="widthFix">
|
||||
<image id="HT-logo" src="../../static/images/theme/logo.png" mode="widthFix" />
|
||||
</view>
|
||||
<view class="rightHead">
|
||||
<p>上海海通国际汽车码头有限公司</p>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
</template>
|
||||
<view class="pictureLook" v-else>
|
||||
<view v-for="(item,index) in urlList2" :key="index">
|
||||
<image :src="item.url" mode="widthFix" @click="clickImg(urlList2,index)">
|
||||
<image :src="item.url" mode="widthFix" @click="clickImg(urlList2,index)" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
@ -215,6 +215,7 @@
|
|||
method: 'GET', //请求方式,必须为大写
|
||||
success: (res) => {
|
||||
if (res.statusCode == 200) {
|
||||
console.log('res',res.data);
|
||||
this.urlList2.push(res.data)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue