pad-app/pages/shipWork/untieAdd.vue

347 lines
9.6 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="untieAdd">
<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-number-box v-model="zlShip" :max="1000000000" v-if="obj.state != 'look'" />
<text v-else>{{zlShip}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>航次:</p>
<uni-data-select v-model="vvyId" :localdata="hcList" @change="hcChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{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="bthId" :localdata="bwList" @change="bwChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{bthIdName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>系缆时间:</p>
<uni-datetime-picker v-model="attachTime" @change="changeLog1" v-if="obj.state != 'look'" />
<text v-else>{{attachTime}}</text>
</view>
<view class="li">
<p>解缆时间:</p>
<uni-datetime-picker v-model="unmoorTime" @change="changeLog2" v-if="obj.state != 'look'" />
<text v-else>{{unmoorTime}}</text>
</view>
<view class="li">
<p>移泊时间:</p>
<uni-datetime-picker v-model="shiftingBerthTime" @change="changeLog3" v-if="obj.state != 'look'" />
<text v-else>{{shiftingBerthTime}}</text>
</view>
<view class="li">
<p>停泊时间:</p>
<uni-datetime-picker v-model="noProductBerthTime" @change="changeLog4" v-if="obj.state != 'look'" />
<text v-else>{{noProductBerthTime}}</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>
import sqlite from "../../common/sqlite.js"
import api from "../../common/api.js"
import {
v4 as uuidv4
} from 'uuid';
export default {
data() {
return {
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
obj: {},
untieRow: {},
untieRowIndex: 0,
// 航次下拉框
vvyId: "",
vvyName: "",
hcList: [],
// 船舶净吨
zlShip: 0,
// 泊位下拉框
bthId: "",
bthIdName: "",
bwList: [],
// 系缆时间
attachTime: [''],
// 解缆时间
unmoorTime: [''],
// 移泊时间
shiftingBerthTime: [''],
// 停泊时间
noProductBerthTime: [''],
// 下拉数据
optionData: [],
}
},
onLoad(options) {
if ('params' in options) {
// 获取传递的对象参数使用decodeURIComponent解码并转为对象
this.obj = JSON.parse(decodeURIComponent(options.params))
}
},
mounted() {
if (this.obj.state == "edit" || this.obj.state == "look") {
this.getRow()
}
this.executeSql1('shipOption')
},
methods: {
// 查
executeSql1(tableName) {
let sql = `select * from ${tableName}`
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
this.optionData = value
this.getShip()
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
// 获取船只信息
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
// 航次下拉数据
let hcOption = []
this.optionData.forEach((v, index) => {
if (v.dictionariesName == 'vvyList') {
hcOption.push(v)
}
})
hcOption.forEach((v, index) => {
this.hcList.push({
text: v.ptrDesc,
value: v.ptrCode
})
})
// 泊位下拉数据
let bwOption = []
this.optionData.forEach((v, index) => {
if (v.dictionariesName == 'bthList') {
bwOption.push(v)
}
})
bwOption.forEach((v, index) => {
this.bwList.push({
text: v.ptrDesc,
value: v.ptrCode
})
})
},
// 获取当前行信息
getRow() {
this.untieRow = uni.getStorageSync('untieRow');
this.untieRowIndex = uni.getStorageSync('untieRowIndex');
this.vvyId = this.untieRow.vvyId
this.vvyName = this.untieRow.vvyName
this.zlShip = this.untieRow.shipDeadWeight
this.bthId = this.untieRow.bthId
this.bthIdName = this.untieRow.bthIdName
this.attachTime = (this.untieRow.attachTime[0] ? this.untieRow.attachTime : '')
this.unmoorTime = (this.untieRow.unmoorTime[0] ? this.untieRow.unmoorTime : '')
this.shiftingBerthTime = (this.untieRow.shiftingBerthTime[0] ? this.untieRow.shiftingBerthTime : '')
this.noProductBerthTime = (this.untieRow.noProductBerthTime[0] ? this.untieRow.noProductBerthTime : '')
},
// 航次下拉
hcChange(e) {
this.vvyId = e;
this.hcList.forEach(v => {
if (v.value == e) {
this.vvyName = v.text
}
})
},
// 泊位下拉
bwChange(e) {
this.bthId = e;
this.bwList.forEach(v => {
if (v.value == e) {
this.bthIdName = v.text
}
})
},
// 系缆时间
changeLog1(e) {
this.attachTime = e.slice(0, e.length - 3)
},
// 解缆时间
changeLog2(e) {
this.unmoorTime = e.slice(0, e.length - 3)
},
// 移泊时间
changeLog3(e) {
this.shiftingBerthTime = e.slice(0, e.length - 3)
},
// 停泊时间
changeLog4(e) {
this.noProductBerthTime = e.slice(0, e.length - 3)
},
// 取消
cancel() {
uni.navigateTo({
url: '/pages/shipWork/untieCord'
})
},
// 弹框删除
delConfirm() {
let sql = `DELETE FROM attachUnmoorRespList WHERE webId = '${this.untieRow.webId}';`
this.executeSql(sql)
uni.navigateTo({
url: '/pages/shipWork/untieCord'
})
},
// 删除
del() {
this.$refs.popup.open()
},
// 保存
save() {
let date = new Date().getTime()
let webId = uuidv4()
let webStatus = 0
let webDate = api.getDate(date)
if (this.obj.state == "edit") {
let sql =
`UPDATE attachUnmoorRespList SET shipDeadWeight = '${this.zlShip}',vvyId = '${this.vvyId}',
vvyName = '${this.vvyName}',bthId = '${this.bthId}',bthIdName = '${this.bthIdName}',
attachTime = '${this.attachTime}',unmoorTime = '${this.unmoorTime}',shiftingBerthTime = '${this.shiftingBerthTime}',
noProductBerthTime = '${this.noProductBerthTime}',webStatus = '${webStatus}',
webDate = '${webDate}' WHERE webId = '${this.untieRow.webId}';`
this.executeSql(sql)
} else if (this.obj.state == "add") {
let sql =
`insert into attachUnmoorRespList values('${webId}','${this.zlShip}','${this.vvyId}','${this.vvyName}',
'${this.bthId}','${this.bthIdName}','${this.shipInfo.voyageScheduleDataList[0].tradeTypeName}',
'${this.shipInfo.voyageScheduleDataList[0].importExportFlagName}','${this.shipInfo.voyageScheduleDataList[0].spmName}',
'${this.attachTime}','${this.unmoorTime}','${this.shiftingBerthTime}','${this.noProductBerthTime}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
uni.navigateTo({
url: '/pages/shipWork/untieCord'
})
},
// 编辑
toGo(state) {
this.obj.state = state;
const params = encodeURIComponent(JSON.stringify(this.obj));
uni.navigateTo({
url: `/pages/shipWork/untieAdd?params=${params}`
})
},
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
console.log(value);
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
onBackPress(event) {
uni.navigateTo({
url: '/pages/shipWork/untieCord'
})
return true;
},
}
}
</script>
<style lang="less" scoped>
.untieAdd {
.container {
padding: 30px 20px;
.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;
.required {
color: red;
margin-right: 5px;
}
p {
min-width: 85px;
text-align: right;
}
/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>