pad-app/pages/shipWork/shiftDetails.vue

528 lines
13 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

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

<template>
<view class="shiftDetails">
<head-view :title="title"></head-view>
<view class="container contentFixed">
<view class="paddingBox">
<view class="ul ulInfo">
<view class="li">
<p>船名</p>
<text>{{shipInfo.spmName}}</text>
</view>
<view class="li">
<p>航次</p>
<text>{{dataInfo[0].vvyName}}</text>
</view>
<view class="li">
<p>进出口</p>
<text>{{dataInfo[0].importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型</p>
<text>{{shipInfo.tradeTypeName}}</text>
</view>
<view class="li">
<p>装卸类型</p>
<text> {{dataInfo[0].importExportFlagName == '出口' ? '装货' : '卸货'}}</text>
</view>
</view>
</view>
<van-tabs v-model="active" @click="onTabs" line-width="100px" line-height="5px" color="#0067CF"
title-active-color="#0067CF">
<van-tab title="工班信息">
<view class="shiftCss">
<view class="smasonry">
<view class="ul" v-for="(item,index) in shiftInfo1" :key="index + 'a'">
<view class="li">
<p>工班:</p>
<text> {{item.pwcTypeName}}</text>
</view>
<view class="li">
<p>作业时间:</p>
<text> {{item.workStartTime}} - {{item.workEndTime}}</text>
</view>
<view class="ul aUl" v-for="(item2,index2) in item.shiftInfoList" :key="index2 + 'b'">
<view class="li">
<p>车型:</p>
<text>{{item2.carTypeName}}</text>
</view>
<view class="li">
<p>数量:</p>
<text>{{item2.goodsNumber}}</text>
</view>
<view class="li">
<p>装卸方式:</p>
<text>{{item2.loadingTypeName}}</text>
</view>
<view class="li wLi">
<p>备注:</p>
<text class="remark">{{item2.remark}}</text>
</view>
</view>
</view>
</view>
<view class="smasonry">
<view class="ul" v-for="(item,index) in shiftInfo2" :key="index + 'c'">
<view class="li">
<p>工班:</p>
<text> {{item.pwcTypeName}}</text>
</view>
<view class="li">
<p>作业时间:</p>
<text> {{item.workStartTime}} - {{item.workEndTime}}</text>
</view>
<view class="ul aUl" v-for="(item2,index2) in item.shiftInfoList" :key="index2 + 'b'">
<view class="li">
<p>车型:</p>
<text>{{item2.carTypeName}}</text>
</view>
<view class="li">
<p>数量:</p>
<text>{{item2.goodsNumber}}</text>
</view>
<view class="li">
<p>装卸方式:</p>
<text>{{item2.loadingTypeName}}</text>
</view>
<view class="li wLi">
<p>备注:</p>
<text class="remark">{{item2.remark}}</text>
</view>
</view>
</view>
</view>
</view>
</van-tab>
<van-tab title="翻仓信息">
<view class="masonry">
<view class="masonryLi" v-for="(item,index) in this.fcList" :key="index">
<view class="ul">
<view class="li">
<p>翻舱类型:</p>
<text>{{item.retallyTypeName}}</text>
</view>
<view class="li">
<p>翻舱起点:</p>
<text>{{item.retallyOrigin}}</text>
</view>
<view class="li">
<p>翻舱终点:</p>
<text>{{item.retallyTerminus}}</text>
</view>
<view class="li">
<p>作业时间:</p>
<text>{{item.retallyStartTime}} - {{item.retallyEndTime}}</text>
</view>
<view class="li">
<p>车型:</p>
<text>{{item.carTypeName}}</text>
</view>
<view class="li" v-if="item.carTypeName == '空马菲'">
<p>组数:</p>
<text>{{item.mafiGroupNum}}</text>
</view>
<view class="li">
<p>数量:</p>
<text>{{item.goodsNumber}}</text>
</view>
<view class="li">
<p>体积:</p>
<text>{{item.goodsVolume}}</text>
</view>
<view class="li">
<p>重量:</p>
<text>{{item.goodsWeight}}</text>
</view>
</view>
</view>
</view>
</van-tab>
<van-tab title="其他信息">
<view class="masonry">
<view class="otherInfo masonryLi" v-for="(item,index) in otherList" :key="index">
<view class="ul">
<p class="title">辅助作业</p>
<view class="li">
<p>技术工人</p>
<text>{{item.tecNum}}</text>
</view>
<view class="li">
<p>作业时间</p>
<text>{{item.startTm}} - {{item.endTm}}</text>
</view>
<view class="li">
<p>重量</p>
<text>{{item.weight}}</text>
</view>
<view class="li">
<p>体积</p>
<text>{{item.volume}}</text>
</view>
<view class="li">
<p>普通工人</p>
<text>{{item.genNum}}</text>
</view>
<view class="li">
<p>作业时间</p>
<text>{{item.startTmPt}} - {{item.endTmPt}}</text>
</view>
<view class="li">
<p>重量</p>
<text>{{item.weightPt}}</text>
</view>
<view class="li">
<p>体积</p>
<text>{{item.volumePt}}</text>
</view>
<view class="li wLi">
<p>描述</p>
<text>{{item.auxRemark}}</text>
</view>
<p class="title">待工作业</p>
<view class="li wLi">
<p>描述</p>
<text>{{item.waitRemark}}</text>
</view>
<p class="title">作业备注</p>
<view class="li wLi">
<p>描述</p>
<text>{{item.workRemark}}</text>
</view>
</view>
</view>
</view>
</van-tab>
</van-tabs>
<uni-popup ref="popup" type="dialog">
<uni-popup-dialog type="error" confirmText="确定" title="通知" content="是否删除此条数据"
@confirm="delConfirm"></uni-popup-dialog>
</uni-popup>
<view class="btnList">
<view class="btn qx" @click="cancel"></view>
<template v-if="status == 0 || status == 4 || status == 5 || status == 'null'">
<!-- <view class="btn sc" @click="del">删除</view> -->
<view class="btn bc" @click="edit('edit')"></view>
</template>
</view>
</view>
</view>
</template>
<script>
import sqlite from "../../common/sqlite.js"
export default {
data() {
return {
title: "工班信息详情",
active: 0,
dataInfo: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}],
shipInfo: {},
shiftInfo: [],
shiftInfo1: [],
shiftInfo2: [],
fcList: [],
otherList: [],
shiftRowIndex: 0,
contactId: "",
aId: "",
vtpId: "",
// 审核状态
status: 0,
// 删除工班信息id
delSwmIds: [],
}
},
mounted() {
this.vtpId = uni.getStorageSync('vtpId')
this.dataInfo = uni.getStorageSync('shiftRow')
this.contactId = this.dataInfo[0].contactId
this.aId = this.dataInfo[0].aId
this.status = this.dataInfo[0].status
this.delSwmIds = uni.getStorageSync("delSwmIds")
this.initData()
let that = this
setTimeout(function() {
that.shiftInfo.forEach((v, index) => {
if (index % 2 == 0) {
that.shiftInfo1.push(v)
} else {
that.shiftInfo2.push(v)
}
})
}, 200)
},
methods: {
// 查
executeSql1(tableName) {
let sql = `select * from ${tableName} WHERE aId = '${this.aId}';`
sqlite.executeSqlCeshi(sql).then((value) => {
if (tableName == 'workMessageRespList') {
this.shiftInfo = []
value.forEach(v => {
this.executeSql2('workMessageRespInfoList', v)
})
} else if (tableName == 'retallyMessageRespList') {
this.fcList = value
} else if (tableName == 'infoRespList') {
this.otherList = value
}
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
executeSql2(tableName, item) {
let sql = `select * from ${tableName} WHERE contactId = '${item.webId}';`
sqlite.executeSqlCeshi(sql).then((value) => {
item["shiftInfoList"] = []
value.forEach(v => {
item["shiftInfoList"].push(v)
})
this.shiftInfo.push(item)
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
executeSql3(tableName) {
let sql = `select * from ${tableName} WHERE vtpId = '${this.vtpId}'`
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
this.shipInfo = value[0]
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
initData() {
this.executeSql3('voyageScheduleDataDetailRespDTOList')
// 获取工班信息
this.executeSql1('workMessageRespList')
this.executeSql1('retallyMessageRespList')
this.executeSql1('infoRespList')
},
// 切换标签
onTabs(e) {
this.active = e.detail.index
},
// 删除
executeSql(tableName) {
let sql = ""
if (tableName == "workMessageRespInfoList") {
sql = `DELETE FROM ${tableName} WHERE contactId = '${this.contactId}';`
} else {
sql = `DELETE FROM ${tableName} WHERE aId = '${this.aId}';`
}
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
// 取消
cancel() {
uni.setStorageSync('tabsType', 1);
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 弹框删除
delConfirm() {
this.executeSql('workMessageRespList')
this.executeSql('workMessageRespInfoList')
this.executeSql('retallyMessageRespList')
this.executeSql('infoRespList')
uni.setStorageSync('tabsType', 1)
this.dataInfo.forEach(v => {
let reg = RegExp(/-/)
if (reg.test(v.webId) == false) {
this.delSwmIds.push(v.webId)
}
})
uni.setStorageSync('delSwmIds', this.delSwmIds);
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 删除
del() {
this.$refs.popup.open()
},
// 编辑
edit(state) {
this.obj = {
state: state
};
const params = encodeURIComponent(JSON.stringify(this.obj));
uni.navigateTo({
url: `/pages/shipWork/shiftAdd?params=${params}`
})
},
}
}
</script>
<style lang="less" scoped>
.shiftDetails {
.container {
min-height: 100vh;
background-color: #F6F7F9;
.paddingBox {
padding: 16px;
}
.ulInfo {
padding: 0 16px;
.li {
width: 49% !important;
height: 56px;
line-height: 56px;
}
}
/deep/.van-tab {
padding-top: 10px;
}
/deep/.tab-pane {
width: 100%;
}
/deep/.van-ellipsis {
font-size: 18px;
font-weight: bold;
}
/deep/.van-tab--active {
font-size: 18px;
font-weight: bold;
}
/deep/ .van-tabs--line {
height: 60px;
}
/deep/ .van-tabs__wrap {
height: 60px;
}
.masonry {
background-color: #F6F7F9;
padding: 16px 16px 100px;
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 16px;
justify-content: space-between;
.masonryLi {
width: 49%;
height: auto;
}
}
.shiftCss {
display: flex;
.smasonry {
width: 49%;
flex: 1;
display: flex;
flex-direction: column;
gap: 16px;
background-color: #F6F7F9;
padding: 16px 16px 100px;
align-items: baseline;
.remark{
word-break: break-all;
}
}
}
.otherInfo {
padding-bottom: 20px;
.title {
margin: 20px 0;
font-size: 16px;
font-weight: bold;
padding-left: 10px;
border-left: 5px solid #2979ff;
}
}
.ul {
background-color: #fff;
border-radius: 8px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
padding: 0 16px 16px;
margin-bottom: 16px;
.li {
width: 100%;
display: flex;
justify-content: space-between;
min-height: 50px;
line-height: 50px;
font-size: 16px;
}
// .wLi {
// width: 100%;
// min-height: 50px;
// }
}
.aUl {
padding: 16px;
width: 100%;
background: #F7F7F7;
border-radius: 4px;
margin-top: 16px;
}
.btnList {
position: fixed;
bottom: 0;
left: 0;
right: 0;
height: 80px;
background-color: #fff;
display: flex;
justify-content: center;
box-shadow: 0 -3px 7px 0 rgba(0, 0, 0, 0.10);
.btn {
margin: 15.5px 17px;
width: 200px;
height: 49px;
border-radius: 2px;
font-size: 18px;
text-align: center;
line-height: 49px;
}
.qx {
background-color: #eee;
}
.sc {
background-color: #E50101;
color: #fff;
}
.bc {
color: #fff;
background: #0067CF;
}
}
}
}
</style>