pad-app/pages/shipWork/peopleAdd.vue

516 lines
14 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">
<head-view :title="title" url="/pages/shipWork/mixWork"></head-view>
<view class="container contentFixed">
<view class="info">
<view class="ul">
<view class="li">
<text>船名</text>
<text>{{shipInfo.vslCnname}}</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>{{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="tqValue" :localdata="tqList" @change="tqChange"
v-if="obj.state != 'look'"></uni-data-select> -->
<uni-easyinput v-if="obj.state != 'look'" v-model="tqTextValue"
placeholder="请输入"></uni-easyinput>
<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" :max="1000000000"
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" :max="1000000000"
v-if="obj.state != 'look'" />
<text v-else>{{peopleRow.shipPerson}}</text>
</view>
<view class="li">
<p>作业时间:</p>
<template v-if="flag">
<uni-datetime-picker v-model="datetime" type="datetimerange" rangeSeparator="-"
@change="changeLog" v-if="obj.state != 'look'" :hide-second="true" :border="false" />
<text v-else>{{startTime}} - {{endTime}}</text>
</template>
</view>
</view>
<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>
<uni-popup ref="popup" type="dialog">
<uni-popup-dialog type="error" confirmText="确定" title="通知" content="是否删除此条数据"
@confirm="delConfirm"></uni-popup-dialog>
</uni-popup>
</view>
<LotusLoading :lotusLoadingData="lotusLoadingData"></LotusLoading>
</view>
</template>
<script>
import sqlite from "../../common/sqlite.js"
import api from "../../common/api.js"
import LotusLoading from "../../components/Winglau14-lotusLoading/Winglau14-LotusLoading.vue";
import {
v4 as uuidv4
} from 'uuid';
export default {
data() {
return {
title: "",
shipInfo: {},
peopleRow: {},
peopleRowIndex: 0,
obj: {},
vtpId: "",
// 航次下拉框
hcValue: "",
hcTextValue: "",
hcList: [],
// 泊位下拉框
bwValue: "",
bwTextValue: "",
bwList: [],
// 天气下拉框
tqValue: "",
tqTextValue: "",
tqList: [],
// 作业组数
workValue: 0,
// 单船人数
shipValue: 0,
// 作业时间
datetime: ['', ''],
startTime: "",
endTime: "",
// 开始时间
beginDate: "",
// 结束时间
endDate: "",
flag: true,
lotusLoadingData: {
isShow: false //设置显示加载中组件true显示false隐藏
},
// 审核状态
status: 0,
// 删除人员信息id
delPmIds: [],
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 = "编辑人员信息"
} else if (this.obj.state == "look") {
this.title = "查看人员信息"
} else {
this.title = "新增人员信息"
}
this.vtpId = uni.getStorageSync('vtpId')
this.delPmIds = uni.getStorageSync("delPmIds")
this.executeSql1('shipOption')
this.executeSql1("shipInfoTable")
this.executeSql1("voyageScheduleDataDetailRespDTOList")
this.executeSql1("shipmentBasicShiftList")
},
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
})
})
} else if (tableName == "shipmentBasicShiftList") {
this.beginDate = value[0].beginTime
this.endDate = value[2].endTime
}
}).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 tqOption = []
// this.optionData.forEach((v, index) => {
// if (v.dictionariesName == 'weather') {
// tqOption.push(v)
// }
// })
// tqOption.forEach((v, index) => {
// this.tqList.push({
// text: v.weatherType,
// value: v.weatherTypeDesc
// })
// })
},
// 获取当前行信息
getRow() {
this.peopleRow = uni.getStorageSync('peopleRow');
this.hcValue = this.peopleRow.vvyId
this.hcTextValue = this.peopleRow.vvyName
if (this.peopleRow.weatherId != undefined) {
this.tqValue = this.peopleRow.weatherId
} else {
this.tqValue = ""
}
console.log(this.peopleRow)
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
this.importExportFlagName = this.peopleRow.importExportFlagName
this.status = this.peopleRow.status
},
// 航次下拉
hcChange(e) {
this.hcValue = e;
this.hcList.forEach(v => {
if (v.value == e) {
this.hcTextValue = v.text
}
})
this.vvyInfo.forEach(v => {
if (v.vvyId == e) {
this.importExportFlagName = v.importExportFlagName
this.spmTradeName = v.tradeTypeName
}
})
},
// 泊位下拉
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.lotusLoadingData.isShow = true
// 选择开始结束时间时分
let sTime = e[0].slice(e[0].length - 5)
let eTime = e[1].slice(e[1].length - 5)
// 获取开始结束时间年月日
let sYMD = e[0].split(' ')[0]
let eYMD = e[1].split(' ')[0]
// 获取开始结束时间时分转数字
let nsTime = Number((sTime.split(':')).join(''))
let neTime = Number((eTime.split(':')).join(''))
// 获取限定范围开始结束时间时分转数字
let xsTime = Number((this.beginDate.split(':')).join(''))
let xeTime = Number((this.endDate.split(':')).join(''))
let that = this
if (sYMD != eYMD) {
if (nsTime >= xsTime && neTime <= xeTime) {
that.datetime = e
that.startTime = e[0]
that.endTime = e[1]
} else {
that.datetime = ["", ""]
that.startTime = ""
that.endTime = ""
that.flag = false
setTimeout(function() {
that.flag = true
that.lotusLoadingData.isShow = false
}, 200)
uni.showToast({
title: `请输入正确的作业时间范围`,
icon: 'none',
duration: 2000
})
}
} else {
if (neTime <= xeTime) {
that.flag = true
that.datetime = e
that.startTime = e[0]
that.endTime = e[1]
that.lotusLoadingData.isShow = false
} else {
that.datetime = ["", ""]
that.startTime = ""
that.endTime = ""
that.flag = false
setTimeout(function() {
that.flag = true
that.lotusLoadingData.isShow = false
}, 200)
uni.showToast({
title: `请输入正确的作业时间范围`,
icon: 'none',
duration: 2000
})
}
}
console.log(that.startTime)
console.log(that.endTime)
// this.datetime = e;
// this.startTime = this.datetime[0]
// this.endTime = this.datetime[1]
},
// 取消
cancel() {
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 弹框删除
delConfirm() {
let sql = `DELETE FROM messageRespList WHERE pmeId = '${this.peopleRow.pmeId}';`
this.executeSql(sql)
this.delPmIds.push(this.peopleRow.pmeId)
uni.setStorageSync('delPmIds', this.delPmIds);
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
// 删除
del() {
this.$refs.popup.open()
},
// 保存
save() {
let date = new Date().getTime()
let pmeId = uuidv4()
let webStatus = 0
let webDate = api.getDate(date)
if (this.obj.state == "edit") {
let sql =
`UPDATE messageRespList SET bthId = '${this.bwValue}',bthIdName = '${this.bwTextValue}',
jobStartTime = '${this.startTime}',jobEndTime = '${this.endTime}',shipPerson = '${this.shipValue}',
vvyId = '${this.hcValue}',vvyName = '${this.hcTextValue}',weatherType = '${this.tqTextValue}',
weatherTypeDesc = '${this.tqTextValue}',workSuite = '${this.workValue}',webStatus = '${webStatus}',
importExportFlagName = '${this.importExportFlagName}',webDate = '${webDate}' WHERE pmeId = '${this.peopleRow.pmeId}';`
this.executeSql(sql)
} else if (this.obj.state == "add") {
let sql =
`insert into messageRespList values('${pmeId}','${this.vtpId}','${this.bwValue}','${this.bwTextValue}',
'${this.startTime}','${this.endTime}','${this.shipValue}','${this.hcValue}','${this.hcTextValue}','${this.tqTextValue}',
'${this.tqTextValue}','${this.workValue}','${this.importExportFlagName}','${0}','${webStatus}','${webDate}')`
this.executeSql(sql)
}
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}`
})
},
executeSql(sql) {
sqlite.executeSqlCeshi(sql).then((value) => {
// 在resolve时执行的回调函数
// console.log(value);
}).catch((error) => {
// 在reject时执行的回调函数
console.error(error);
});
},
}
}
</script>
<style lang="less" scoped>
.peopleAdd {
.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-x .icon-calendar {
display: none;
}
/deep/.uni-date {
flex: none;
width: 52%;
text-align: right;
display: flex;
flex-direction: column;
justify-content: center;
}
/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;
}
/deep/.is-input-border {
margin-top: 8px;
height: 40px;
}
}
}
.btnList {
display: flex;
justify-content: center;
/deep/ .van-button {
margin: 30px 20px;
width: 120px;
height: 50px;
}
}
}
}
</style>