pad-app/pages/shipWork/supplyAdd.vue

477 lines
12 KiB
Vue
Raw Permalink 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="supplyAdd">
<head-view :title="title" url="/pages/shipWork/supply"></head-view>
<view class="container contentFixed">
<view class="info">
<view class="ul">
<view class="li">
<p>船名</p>
<text>{{shipInfo.vslCnname}}</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>{{importExportFlagName}}</text>
</view>
<view class="li">
<p>贸易类型:</p>
<text>{{spmTradeName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>泊位:</p>
<uni-data-select v-model="stopBerthage" :localdata="bwList" @change="bwChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{stopBerthageName}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>供给类型:</p>
<uni-data-select v-model="supplyTypeId" :localdata="gjList" @change="gjChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{supplyType}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>供给量:</p>
<uni-number-box v-model="supplyAmount" :max="1000000000" v-if="obj.state != 'look'" />
<text v-else>{{supplyAmount}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>日期:</p>
<uni-datetime-picker v-model="supplyDate" type="date" :clear-icon="false" @change="changeLog"
v-if="obj.state != 'look'" :border="false" />
<text v-else>{{supplyDate}}</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">
<view class="btn qx" @click="cancel">取消</view>
<template v-if="status == 0 || status == 4 || status == 5 || status == 'null'">
<view class="btn sc" v-if="obj.state == 'look'" @click="del">删除</view>
<view class="btn bc" v-if="obj.state == 'look'" @click="toGo('edit')">编辑</view>
<view class="btn bc" v-if="obj.state == 'add' || obj.state == 'edit'" @click="save"></view>
</template>
</view>
</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 {
title: "",
shipInfo: {},
obj: {},
vtpId: "",
supplyRow: {},
supplyRowIndex: 0,
// 航次下拉框
vvyId: "",
vvyName: "",
hcList: [],
// 泊位下拉框
stopBerthage: "",
stopBerthageName: "",
bwList: [],
// 供给类型
supplyTypeId: "",
supplyType: "",
gjList: [],
supplyAmount: 0,
// 日期
supplyDate: [""],
// 审核状态
status: 0,
// 删除船舶供给id
delSsIds: [],
vvyInfo: [],
importExportFlagName: "",
spmTradeName: "",
// 下拉数据
optionData: [],
}
},
onLoad(options) {
if ('params' in options) {
// 获取传递的对象参数使用decodeURIComponent解码并转为对象
this.obj = JSON.parse(decodeURIComponent(options.params))
}
},
mounted() {
this.vtpId = uni.getStorageSync('vtpId')
this.delSsIds = uni.getStorageSync("delSsIds")
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
this.executeSql1("voyageScheduleDataDetailRespDTOList")
if (this.obj.state == "edit") {
this.title = "编辑供给"
} else if (this.obj.state == "look") {
this.title = "查看供给"
} else {
this.title = "新增供给"
}
let that = this
setTimeout(() => {
if (that.obj.state == 'edit' || that.obj.state == 'look') {
that.getRow();
}
}, 100)
},
methods: {
// 查
executeSql1(tableName) {
let sql = `select * from ${tableName} WHERE vtpId = '${this.vtpId}';`
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
if (tableName == 'shipOption') {
this.optionData = value
this.getShip()
} else if (tableName == 'shipInfoTable') {
this.shipInfo = value[0]
} else if (tableName == 'voyageScheduleDataDetailRespDTOList') {
this.vvyInfo = value
value.forEach((v, index) => {
this.hcList.push({
text: v.vvyName,
value: v.vvyId
})
})
}
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
// 获取船只信息
getShip() {
// 泊位下拉数据
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
})
})
// 供给下拉数据
let gjOption = []
this.optionData.forEach((v, index) => {
if (v.dictionariesName == 'supplyTypeList') {
gjOption.push(v)
}
})
gjOption.forEach((v, index) => {
this.gjList.push({
text: v.ptrDesc,
value: v.ptrCode
})
})
},
// 获取当前行信息
getRow() {
this.supplyRow = uni.getStorageSync('supplyRow');
this.supplyRowIndex = uni.getStorageSync('supplyRowIndex');
this.vvyId = this.supplyRow.vvyId
this.vvyName = this.supplyRow.vvyName
this.importExportFlagName = this.supplyRow.importExportFlagName
this.stopBerthage = this.supplyRow.stopBerthage
this.stopBerthageName = this.supplyRow.stopBerthageName
this.supplyTypeId = this.supplyRow.supplyTypeNm
this.supplyType = this.supplyRow.supplyType
this.supplyAmount = this.supplyRow.supplyAmount
this.supplyDate = (this.supplyRow.supplyDate[0] ? this.supplyRow.supplyDate : '')
this.status = this.supplyRow.status
this.vvyInfo.forEach(v => {
if (this.vvyId == v.vvyId) {
this.spmTradeName = v.tradeTypeName
}
})
},
// 航次下拉
hcChange(e) {
this.vvyId = e;
this.hcList.forEach(v => {
if (v.value == e) {
this.vvyName = v.text
}
})
this.vvyInfo.forEach(v => {
if (v.vvyId == e) {
this.importExportFlagName = v.importExportFlagName
this.spmTradeName = v.tradeTypeName
}
})
},
// 泊位下拉
bwChange(e) {
this.stopBerthage = e;
this.bwList.forEach(v => {
if (v.value == e) {
this.stopBerthageName = v.text
}
})
},
// 供给类型下拉
gjChange(e) {
this.supplyTypeId = e;
this.gjList.forEach(v => {
if (v.value == e) {
this.supplyType = v.text
}
})
},
// 日期选择
changeLog(e) {
this.supplyDate = e
},
// 取消
cancel() {
uni.showModal({
title: '提示',
content: '将退出编辑,所有内容不保留',
success: function (res) {
if (res.confirm) {
uni.navigateTo({
url: '/pages/shipWork/supply'
})
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
},
// 弹框删除
delConfirm() {
let sql = `DELETE FROM shipmentShipSupplyRespList WHERE sssId = '${this.supplyRow.sssId}';`
this.executeSql(sql)
let reg = RegExp(/-/)
if (reg.test(this.supplyRow.sssId) == false) {
this.delSsIds.push(this.supplyRow.sssId)
uni.setStorageSync('delSsIds', this.delSsIds);
}
uni.navigateTo({
url: '/pages/shipWork/supply'
})
},
// 删除
del() {
this.$refs.popup.open()
},
// 保存
save() {
if (this.vvyId == "") {
uni.showModal({
title: '提示',
showCancel: false,
content: '请输入航次!'
})
return
}
if (this.stopBerthage == "") {
uni.showModal({
title: '提示',
showCancel: false,
content: '请输入泊位!'
})
return
}
if (this.supplyTypeId == "") {
uni.showModal({
title: '提示',
showCancel: false,
content: '请输入供给类型!'
})
return
}
if (this.supplyDate == "") {
uni.showModal({
title: '提示',
showCancel: false,
content: '请输入日期!'
})
return
}
let date = new Date().getTime()
let sssId = uuidv4()
let webStatus = 0
let webDate = api.getDate(date)
if (this.obj.state == "edit") {
let sql =
`UPDATE shipmentShipSupplyRespList SET vvyId = '${this.vvyId}',vvyName = '${this.vvyName}',importExportFlagName = '${this.importExportFlagName}',
stopBerthage = '${this.stopBerthage}',stopBerthageName = '${this.stopBerthageName}',supplyType = '${this.supplyType}',
supplyTypeNm = '${this.supplyTypeId}',supplyAmount = '${this.supplyAmount}',supplyDate = '${this.supplyDate}',webStatus = '${webStatus}',
webDate = '${webDate}' WHERE sssId = '${this.supplyRow.sssId}';`
this.executeSql(sql)
} else if (this.obj.state == "add") {
let sql =
`insert into shipmentShipSupplyRespList values('${sssId}','${this.vtpId}','${this.vvyId}','${this.vvyName}',
'${this.importExportFlagName}','${this.stopBerthage}','${this.stopBerthageName}','${this.supplyType}','${this.supplyTypeId}',
'${this.supplyAmount}','${this.supplyDate}','${0}',
'${webStatus}','${webDate}')`
this.executeSql(sql)
}
uni.navigateTo({
url: '/pages/shipWork/supply'
})
},
// 编辑
toGo(state) {
this.obj.state = state;
const params = encodeURIComponent(JSON.stringify(this.obj));
uni.navigateTo({
url: `/pages/shipWork/supplyAdd?params=${params}`
})
},
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
}
}
</script>
<style lang="less" scoped>
.supplyAdd {
.container {
padding: 16px;
background-color: #F6F7F9;
.info {
background-color: #fff;
}
.ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.li {
width: 49%;
display: flex;
justify-content: space-between;
border-bottom: 1px solid #EEEEEE;
padding: 0 16px;
height: 56px;
line-height: 56px;
.required {
color: red;
margin-right: 5px;
}
/deep/.uni-numbox {
border: 1px solid #ccc;
box-sizing: border-box;
height: 38px;
margin-top: 8px;
}
/deep/.uni-numbox-btns {
padding: 0 14px;
box-sizing: border-box;
}
/deep/.uni-numbox__value {
width: 100px;
height: 35px;
line-height: 35px;
background-color: #fff !important;
}
/deep/.uni-date {
flex: none;
width: 25%;
text-align: right;
display: flex;
flex-direction: column;
justify-content: center;
}
/deep/.uni-date-x .icon-calendar {
display: none;
}
/deep/.uni-date-x {
height: 38px;
}
/deep/.uni-stat__select {
flex: none;
width: 30%;
}
/deep/.uni-select {
border: none;
}
/deep/.uni-select__input-text {
text-align: right;
padding-right: 10px;
}
}
}
.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>