pad-app/pages/shipWork/mafiAdd.vue

408 lines
10 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="mafiAdd">
<head-view :title="title" url="/pages/shipWork/mafi"></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-datetime-picker v-model="workDate" type="date" :clear-icon="false" @change="changeLog"
v-if="obj.state != 'look'" :border="false" />
<text v-else>{{workDate}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>马菲板号:</p>
<uni-easyinput v-if="obj.state != 'look'" v-model="mafiBarcode"
placeholder="请输入"></uni-easyinput>
<text v-else>{{mafiBarcode}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>尺码:</p>
<uni-number-box v-model="size" :max="1000000000" v-if="obj.state != 'look'" />
<text v-else>{{size}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>类型:</p>
<uni-data-select v-model="typeId" :localdata="lxList" @change="lxChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{type}}</text>
</view>
<view class="li">
<p><text class="required" v-if="obj.state != 'look'">*</text>装卸类型:</p>
<uni-data-select v-model="loaderTypeId" :localdata="zxList" @change="zxChange"
v-if="obj.state != 'look'"></uni-data-select>
<text v-else>{{loadType}}</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>
<template v-if="status == 0 || status == 4 || status == 5 || status == 'null'">
<van-button type="danger" v-if="obj.state == 'look'" @click="del">删除</van-button>
<van-button type="info" v-if="obj.state == 'look'" @click="toGo('edit')">编辑</van-button>
<van-button type="info" v-if="obj.state == 'add' || obj.state == 'edit'"
@click="save"></van-button>
</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: "",
mafiRow: {},
mafiRowIndex: 0,
// 航次下拉框
vvyId: "",
vvyName: "",
hcList: [],
// 作业时间
workDate: [""],
// 马菲板号
mafiBarcode: "",
// 尺码
size: 0,
// 类型下拉框
typeId: "",
type: "",
lxList: [{
value: "FULL",
text: "空板"
},
{
value: "EMPTY",
text: "重板"
},
],
// 装卸类型下拉框
loaderTypeId: "",
loadType: "",
zxList: [{
value: "LOAD",
text: "装货"
},
{
value: "DISC",
text: "卸货"
}
],
// 审核状态
status: 0,
// 删除MAFIid
delMfIds: [],
vvyInfo: [],
importExportFlagName: "",
spmTradeName: "",
// 下拉数据
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();
}
if (this.obj.state == "edit") {
this.title = "编辑MAFI清单"
} else if (this.obj.state == "look") {
this.title = "查看MAFI清单"
} else {
this.title = "新增MAFI清单"
}
this.vtpId = uni.getStorageSync('vtpId')
this.delMfIds = uni.getStorageSync("delMfIds")
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
this.executeSql1("voyageScheduleDataDetailRespDTOList")
},
methods: {
// 查
executeSql1(tableName) {
let sql = `select * from ${tableName} WHERE vtpId = '${this.vtpId}'`
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
if (tableName == 'shipOption') {
this.optionData = value
} 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);
});
},
// 获取当前行信息
getRow() {
this.mafiRow = uni.getStorageSync('mafiRow');
this.mafiRowIndex = uni.getStorageSync('mafiRowIndex');
this.vvyId = this.mafiRow.vvyId
this.vvyName = this.mafiRow.vvyName
this.importExportFlagName = this.mafiRow.importExportFlagName
this.loaderTypeId = this.mafiRow.loaderTypeId
this.loadType = this.mafiRow.loadType
if (this.mafiRow.workDate != "") {
this.workDate = this.mafiRow.workDate
} else {
this.workDate = ""
}
this.typeId = this.mafiRow.typeId
this.type = this.mafiRow.typeId
this.size = this.mafiRow.size
this.mafiBarcode = this.mafiRow.mafiBarcode
this.status = this.mafiRow.status
},
// 航次下拉
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
}
})
},
// 类型下拉
lxChange(e) {
console.log(e)
this.typeId = e;
this.lxList.forEach(v => {
if (v.value == e) {
this.type = v.text
}
})
},
// 装卸类型下拉
zxChange(e) {
this.loaderTypeId = e;
this.zxList.forEach(v => {
if (v.value == e) {
this.loadType = v.text
}
})
},
// 作业时间
changeLog(e) {
this.workDate = e
},
// 取消
cancel() {
uni.navigateTo({
url: '/pages/shipWork/mafi'
})
},
// 弹框删除
delConfirm() {
let sql = `DELETE FROM mafiListRespList WHERE smlId = '${this.mafiRow.smlId}';`
this.executeSql(sql)
this.delMfIds.push(this.mafiRow.smlId)
uni.setStorageSync('delMfIds', this.delMfIds);
uni.navigateTo({
url: '/pages/shipWork/mafi'
})
},
// 删除
del() {
this.$refs.popup.open()
},
// 保存
save() {
let date = new Date().getTime()
let smlId = uuidv4()
let webStatus = 0
let webDate = api.getDate(date)
if (this.obj.state == "edit") {
let sql =
`UPDATE mafiListRespList SET vvyId = '${this.vvyId}', vvyName = '${this.vvyName}', importExportFlagName = '${this.importExportFlagName}',
loaderTypeId = '${this.loaderTypeId}',loadType = '${this.loaderTypeId}', typeId = '${this.typeId}',
type = '${this.typeId}',size = '${this.size}',mafiBarcode = '${this.mafiBarcode}',workDate = '${this.workDate}',
webStatus = '${webStatus}',webDate = '${webDate}' WHERE smlId = '${this.mafiRow.smlId}';`
this.executeSql(sql)
} else if (this.obj.state == "add") {
let sql = `insert into mafiListRespList values('${smlId}','${this.vtpId}','${this.vvyId}','${this.vvyName}','${this.importExportFlagName}',
'${this.loaderTypeId}','${this.loaderTypeId}','${this.typeId}','${this.typeId}','${this.size}',
'${this.mafiBarcode}','${this.workDate}','${0}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
uni.navigateTo({
url: '/pages/shipWork/mafi'
})
},
// 编辑
toGo(state) {
this.obj.state = state;
const params = encodeURIComponent(JSON.stringify(this.obj));
uni.navigateTo({
url: `/pages/shipWork/mafiAdd?params=${params}`
})
},
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
console.log(value);
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
}
}
</script>
<style lang="less" scoped>
.mafiAdd {
.container {
padding: 16px;
background-color: #F6F7F9;
.info {
background-color: #fff;
}
.ul {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.wLi {
width: 100% !important;
}
.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/.is-input-border {
margin-top: 8px;
height: 40px;
}
/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 {
display: flex;
justify-content: center;
/deep/ .van-button {
margin: 30px 20px;
width: 120px;
height: 50px;
}
}
}
}
</style>