pad-app/pages/shipWork/peopleAdd.vue

331 lines
9.0 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="peopleAdd">
<view class="container">
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>航次:</p>
<uni-data-select v-model="hcValue" :localdata="hcList" @change="hcChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{peopleRow.vvyName}}</text>
</view>
<view class="li">
<p>进出口:</p>
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型:</p>
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>天气:</p>
<uni-data-select v-model="tqValue" :localdata="tqList" @change="tqChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{peopleRow.weatherType}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>泊位:</p>
<uni-data-select v-model="bwValue" :localdata="bwList" @change="bwChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{peopleRow.bthIdName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>作业组数:</p>
<uni-number-box @change="workChange" v-model="workValue" v-if="obj.state != 'look'" />
<text v-else>{{peopleRow.workSuite}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>单船人数:</p>
<uni-number-box @change="shipChange" v-model="shipValue" v-if="obj.state != 'look'" />
<text v-else>{{peopleRow.shipPerson}}</text>
</view>
<view class="li">
<p>作业时间:</p>
<uni-datetime-picker v-model="datetime" type="datetimerange" rangeSeparator="-" @change="changeLog"
v-if="obj.state != 'look'" />
<text v-else>{{peopleRow.jobStartTime}} - {{peopleRow.jobEndTime}}</text>
</view>
</view>
<uni-popup ref="popup" type="dialog">
<uni-popup-dialog type="error" confirmText="确定" title="通知" content="是否删除此条数据"
@confirm="delConfirm"></uni-popup-dialog>
</uni-popup>
<view class="btnList">
<van-button type="default" @click="cancel">取消</van-button>
<van-button type="danger" v-if="obj.state == 'look'" @click="del">删除</van-button>
<van-button type="info" v-if="obj.state == 'add' || obj.state == 'edit'" @click="save">保存</van-button>
<van-button type="info" v-if="obj.state == 'look'" @click="toGo('edit')"></van-button>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
peopleRow: {},
peopleRowIndex: 0,
obj: {},
// 航次下拉框
hcValue: "",
hcTextValue: "",
hcList: [],
// 泊位下拉框
bwValue: "",
bwTextValue: "",
bwList: [],
// 天气下拉框
tqValue: "",
tqTextValue: "",
tqList: [{
value: 0,
text: "晴"
}, {
value: 1,
text: "阴"
}, {
value: 2,
text: "雨"
}],
// 作业组数
workValue: 0,
// 单船人数
shipValue: 0,
// 作业时间
datetime: ['', ''],
startTime: "",
endTime: "",
}
},
onLoad(options) {
if ('params' in options) {
// 获取传递的对象参数使用decodeURIComponent解码并转为对象
this.obj = JSON.parse(decodeURIComponent(options.params))
console.log(this.obj)
}
},
mounted() {
if (this.obj.state == "edit" || this.obj.state == "look") {
this.getRow()
}
this.getShip()
},
methods: {
// 获取船只信息
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
this.shipInfo.pubBerthesManageRespList.forEach((v, index) => {
this.bwList.push({
text: v.bthBthnm,
value: v.bthId
})
})
this.shipInfo.voyageScheduleDataList.forEach((v, index) => {
this.hcList.push({
text: v.vvyName,
value: v.vvyId
})
})
},
// 获取当前行信息
getRow() {
this.peopleRow = uni.getStorageSync('peopleRow');
this.peopleRowIndex = uni.getStorageSync('peopleRowIndex');
this.hcValue = this.peopleRow.vvyId
this.hcTextValue = this.peopleRow.vvyName
this.tqValue = this.peopleRow.weatherId
this.tqTextValue = this.peopleRow.weatherType
this.bwValue = this.peopleRow.bthId
this.bwTextValue = this.peopleRow.bthIdName
this.workValue = this.peopleRow.workSuite
this.shipValue = this.peopleRow.shipPerson
this.datetime = [this.peopleRow.jobStartTime, this.peopleRow.jobEndTime]
this.startTime = this.peopleRow.jobStartTime
this.endTime = this.peopleRow.jobEndTime
},
// 航次下拉
hcChange(e) {
this.hcValue = e;
this.hcList.forEach(v => {
if (v.value == e) {
this.hcTextValue = v.text
}
})
},
// 泊位下拉
bwChange(e) {
this.bwValue = e;
this.bwList.forEach(v => {
if (v.value == e) {
this.bwTextValue = v.text
}
})
},
// 天气下拉
tqChange(e) {
this.tqValue = e;
this.tqList.forEach(v => {
if (v.value == e) {
this.tqTextValue = v.text
}
})
},
// 作业组数
workChange(val) {
this.workValue = val;
},
// 单船人数
shipChange(val) {
this.shipValue = val;
},
// 作业时间
changeLog(e) {
this.datetime = e;
this.startTime = this.datetime[0].slice(0, this.datetime[0].length - 3)
this.endTime = this.datetime[1].slice(0, this.datetime[1].length - 3)
},
// 取消
cancel() {
uni.setStorageSync('tabsType', 0);
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 弹框删除
delConfirm() {
let addPeopleArr = uni.getStorageSync('addPeopleArr')
addPeopleArr.splice(this.peopleRowIndex, 1)
uni.setStorageSync('addPeopleArr', addPeopleArr);
uni.setStorageSync('tabsType', 0);
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 删除
del() {
this.$refs.popup.open()
},
// 保存
save() {
let addPeopleArr = uni.getStorageSync('addPeopleArr')
let addPeopleObj = {
bthId: this.bwValue, // 泊位id
bthIdName: this.bwTextValue, // 泊位名转义
jobStartTime: this.startTime, // 作业开始时间
jobEndTime: this.endTime, // 作业结束时间
shipPerson: this.shipValue, // 单船人数
vvyId: this.hcValue, // 航次id
vvyName: this.hcTextValue, // 航次id名
weatherId: this.tqValue, // 天气ID
weatherType: this.tqTextValue, // 天气类型
workSuite: this.workValue, // 作业组数
tradeTypeName: this.shipInfo.voyageScheduleDataList[0].tradeTypeName, // 贸易类型
importExportFlagName: this.shipInfo.voyageScheduleDataList[0].importExportFlagName, // 进出口
spmName: this.shipInfo.voyageScheduleDataList[0].spmName, // 船只名
}
if (this.obj.state == "edit") {
addPeopleArr[this.peopleRowIndex] = addPeopleObj;
uni.setStorageSync('addPeopleArr', addPeopleArr);
} else if (this.obj.state == "add") {
if (addPeopleArr != "") {
addPeopleArr.push(addPeopleObj)
uni.setStorageSync('addPeopleArr', addPeopleArr);
} else {
addPeopleArr = []
addPeopleArr.push(addPeopleObj)
uni.setStorageSync('addPeopleArr', addPeopleArr);
}
}
uni.setStorageSync('tabsType', 0);
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 编辑
toGo(state) {
this.obj.state = state;
const params = encodeURIComponent(JSON.stringify(this.obj));
uni.navigateTo({
url: `/pages/shipWork/peopleAdd?params=${params}`
})
}
}
}
</script>
<style lang="less" scoped>
.peopleAdd {
.container {
padding: 30px 20px;
background-color: #fff;
.ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.li {
width: 44%;
border-top: 1px solid #ccc;
border-bottom: 1px solid #ccc;
display: flex;
padding: 10px 20px;
line-height: 35px;
margin-bottom: 20px;
p {
min-width: 85px;
text-align: right;
}
.required {
color: red;
margin-right: 5px;
}
/deep/.uni-numbox {
border: 1px solid #ccc;
box-sizing: border-box;
}
/deep/.uni-numbox-btns {
border-right: 1px solid #ccc;
border-left: 1px solid #ccc;
padding: 0 14px;
box-sizing: border-box;
}
/deep/.uni-numbox__value {
width: 100px;
height: 35px;
line-height: 35px;
background-color: #fff !important;
}
}
}
.btnList {
display: flex;
justify-content: center;
/deep/ .van-button {
margin: 30px 20px;
width: 120px;
height: 50px;
}
}
}
}
</style>