pad-app/pages/shipWork/shiftAdd.vue

582 lines
14 KiB
Vue
Raw Normal View History

2023-07-11 17:29:53 +08:00
<template>
<view class="shiftAdd">
<view class="container">
<uni-steps :options="stepList" :active="active" />
<view class="line"></view>
2023-07-12 13:48:01 +08:00
<!-- 工班信息 -->
<template v-if="active == 0">
2023-07-18 17:37:15 +08:00
<view class="ul ul1">
<view class="li">
2023-07-12 13:48:01 +08:00
<p>船名</p>
2023-07-18 17:37:15 +08:00
<text>{{shipInfo.voyageScheduleDataList[0].spmName}}</text>
</view>
<view class="li">
<p><text class="required">*</text>航次</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="hcValue" :localdata="hcList" @change="hcChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
2023-07-12 13:48:01 +08:00
<p>进出口</p>
2023-07-18 17:37:15 +08:00
<text>{{shipInfo.voyageScheduleDataList[0].importExportFlagName}}</text>
</view>
<view class="li">
2023-07-12 13:48:01 +08:00
<p>贸易类型</p>
2023-07-18 17:37:15 +08:00
<text>{{shipInfo.voyageScheduleDataList[0].tradeTypeName}}</text>
</view>
<view class="li">
<p><text class="required">*</text>装卸类型</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="zxValue" :localdata="zxList" @change="zxChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
</view>
<view class="ulTop"><text @click="ulAdd1"></text><van-icon name="arrow-down" /></view>
<view class="ul ul2" v-for="(item,index) in ulList1" :key="index+'ul'">
<view class="li">
<p class="liTitle"><text class="required">*</text>工班</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="item.gbValue" :localdata="gbList"
@change="gbChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>作业时间 </p>
2023-07-12 13:48:01 +08:00
<uni-datetime-picker v-model="item.datetime" type="datetimerange" rangeSeparator="-"
@change="changeLog" />
2023-07-18 17:37:15 +08:00
</view>
</view>
<view class="ulTop"><text @click="ulAdd2"></text><text @click="del"></text><van-icon
2023-07-12 13:48:01 +08:00
name="arrow-down" /></view>
2023-07-18 17:37:15 +08:00
<view class="ul ul2" v-for="(item,index) in ulList2" :key="index+'ul2'">
<view class="li">
<p class="liTitle"><text class="required">*</text>车型</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="item.cxValue" :localdata="cxList"
@change="cxChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p><text class="required">*</text>数量</p>
2023-07-12 13:48:01 +08:00
<uni-number-box @change="numChange" v-model="item.numValue" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>装卸方式</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="item.fsValue" :localdata="fsList"
@change="fsChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
<view class="li widthLi">
2023-07-12 13:48:01 +08:00
<p class="liTitle">备注</p>
<uni-easyinput type="textarea" autoHeight v-model="item.notes" placeholder="请输入任务描述(200字以内)"
maxlength="200"></uni-easyinput>
2023-07-18 17:37:15 +08:00
</view>
</view>
2023-07-12 13:48:01 +08:00
</template>
<!-- 翻仓信息 -->
<template v-if="active == 1">
<view v-for="(item,index) in fcUlList" :key="index + 'fc'">
2023-07-18 17:37:15 +08:00
<view class="ulTop"><text @click="fcAdd"></text><van-icon name="arrow-down" /></view>
<view class="ul fcUl">
<view class="li">
<p class="liTitle"><text class="required">*</text>翻仓类型</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="item.fcValue" :localdata="fcList"
@change="fcChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
</view>
2023-07-12 13:48:01 +08:00
<view v-for="(item2,index2) in item.fcUlList2" :key="index2 + 'fc2'">
2023-07-18 17:37:15 +08:00
<view class="ulTop"><text @click="fcAdd2(index)"></text></text><text v-if="index2 > 0"
@click="delFc(index,index2)">删除</text><van-icon name="arrow-down" /></view>
<view class="ul ul2 fcUl2">
<view class="li">
<p class="liTitle"><text class="required">*</text>翻舱起点位置</p>
2023-07-12 13:48:01 +08:00
<uni-easyinput v-model="item2.qdValue" focus placeholder="请输入翻舱起点位置"></uni-easyinput>
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>翻舱终点位置</p>
2023-07-12 13:48:01 +08:00
<uni-easyinput v-model="item2.zdValue" focus placeholder="请输入翻舱终点位置"></uni-easyinput>
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>工班</p>
2023-07-12 13:48:01 +08:00
<uni-data-select v-model="item2.gbValue" :localdata="gbList"
@change="gbChange"></uni-data-select>
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>作业时间 </p>
2023-07-12 13:48:01 +08:00
<uni-datetime-picker v-model="item2.datetime" type="datetimerange" rangeSeparator="-" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>数量</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="item2.numValue" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>体积</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="item2.tjValue" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>重量</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="item2.zlValue" />
2023-07-18 17:37:15 +08:00
</view>
</view>
2023-07-12 13:48:01 +08:00
</view>
</view>
</template>
<!-- 其他信息 -->
<template v-if="active == 2">
<view class="otherWork">
<p class="title">辅助作业</p>
2023-07-18 17:37:15 +08:00
<view class="ul">
<view class="li">
<p class="liTitle"><text class="required">*</text>技术工人</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="otherObj.jsWorker" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>普通工人</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="otherObj.ptWorker" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>作业时间 </p>
2023-07-12 13:48:01 +08:00
<uni-datetime-picker v-model="otherObj.workTime" type="datetimerange" rangeSeparator="-" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>重量</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="otherObj.zlValue" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
<p class="liTitle"><text class="required">*</text>体积</p>
2023-07-12 13:48:01 +08:00
<uni-number-box v-model="otherObj.tjValue" />
2023-07-18 17:37:15 +08:00
</view>
<view class="li">
2023-07-12 13:48:01 +08:00
<p class="liTitle">描述</p>
<uni-easyinput type="textarea" autoHeight v-model="otherObj.describe"
placeholder="请输入任务描述(200字以内)" maxlength="200"></uni-easyinput>
2023-07-18 17:37:15 +08:00
</view>
</view>
2023-07-12 13:48:01 +08:00
<p class="title">待工作业</p>
2023-07-18 17:37:15 +08:00
<view class="ul">
<view class="li">
2023-07-12 13:48:01 +08:00
<p class="liTitle">描述</p>
<uni-easyinput type="textarea" autoHeight v-model="otherObj.dgWork"
placeholder="请输入任务描述(200字以内)" maxlength="200"></uni-easyinput>
2023-07-18 17:37:15 +08:00
</view>
</view>
2023-07-12 13:48:01 +08:00
<p class="title">作业备注</p>
2023-07-18 17:37:15 +08:00
<view class="ul">
<view class="li">
2023-07-12 13:48:01 +08:00
<p class="liTitle">描述</p>
<uni-easyinput type="textarea" autoHeight v-model="otherObj.notes"
placeholder="请输入任务描述(200字以内)" maxlength="200"></uni-easyinput>
2023-07-18 17:37:15 +08:00
</view>
</view>
2023-07-12 13:48:01 +08:00
</view>
</template>
2023-07-11 17:29:53 +08:00
<view class="btnList">
<van-button type="default" @click="cancel"></van-button>
2023-07-12 13:48:01 +08:00
<van-button type="info" @click="save"></van-button>
<van-button type="info" @click="next" v-if="active < 2"></van-button>
2023-07-11 17:29:53 +08:00
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
2023-07-18 17:37:15 +08:00
shipInfo: {
voyageScheduleDataList: [{
spmName: "",
importExportFlagName: "",
tradeTypeName: ""
}]
},
2023-07-11 17:29:53 +08:00
obj: {},
active: 0,
stepList: [{
2023-07-18 17:37:15 +08:00
title: '工班信息'
2023-07-11 17:29:53 +08:00
},
{
2023-07-18 17:37:15 +08:00
title: '翻舱信息'
2023-07-11 17:29:53 +08:00
},
{
2023-07-18 17:37:15 +08:00
title: '其他信息'
}
2023-07-11 17:29:53 +08:00
],
2023-07-18 17:37:15 +08:00
// 工班信息
// 航次下拉框
hcValue: "",
hcTextValue: "",
hcList: [],
2023-07-11 17:29:53 +08:00
// 装卸类型下拉框
zxValue: "",
2023-07-18 17:37:15 +08:00
zxTextValue: "",
zxList: [],
2023-07-12 13:48:01 +08:00
ulList1: [{
gbValue: "",
dataTime: ""
}],
2023-07-11 17:29:53 +08:00
// 工班下拉框
gbList: [{
2023-07-12 13:48:01 +08:00
value: "工班0",
2023-07-11 17:29:53 +08:00
text: "工班0"
},
{
2023-07-12 13:48:01 +08:00
value: "工班1",
2023-07-11 17:29:53 +08:00
text: "工班1"
},
{
2023-07-12 13:48:01 +08:00
value: "工班2",
2023-07-11 17:29:53 +08:00
text: "工班2"
},
],
2023-07-12 13:48:01 +08:00
ulList2: [{
cxValue: "",
numValue: 0,
fsValue: "",
notes: "",
}],
2023-07-11 17:29:53 +08:00
// 车型下拉
cxList: [{
2023-07-12 13:48:01 +08:00
value: "车型0",
2023-07-11 17:29:53 +08:00
text: "车型0"
},
{
2023-07-12 13:48:01 +08:00
value: "车型1",
2023-07-11 17:29:53 +08:00
text: "车型1"
},
{
2023-07-12 13:48:01 +08:00
value: "车型2",
2023-07-11 17:29:53 +08:00
text: "车型2"
},
],
// 装卸方式下拉
fsList: [{
2023-07-12 13:48:01 +08:00
value: "装卸方式0",
2023-07-11 17:29:53 +08:00
text: "装卸方式0"
},
{
2023-07-12 13:48:01 +08:00
value: "装卸方式1",
2023-07-11 17:29:53 +08:00
text: "装卸方式1"
},
{
2023-07-12 13:48:01 +08:00
value: "装卸方式2",
2023-07-11 17:29:53 +08:00
text: "装卸方式2"
},
],
2023-07-12 13:48:01 +08:00
// 翻仓信息
// 翻仓类型下拉
fcList: [{
value: "翻仓类型0",
text: "翻仓类型0"
},
{
value: "翻仓类型1",
text: "翻仓类型1"
},
{
value: "翻仓类型2",
text: "翻仓类型2"
},
],
fcUlList: [{
fcValue: "",
fcUlList2: [{
qdValue: "",
zdValue: "",
gbValue: "",
dataTime: "",
numValue: 0,
tjValue: 0,
zlValue: 0
}],
}],
// 其他信息
otherObj: {
jsWorker: 0,
ptworker: 0,
workTime: "",
zlValue: 0,
tjValue: 0,
describe: "",
dgWork: "",
notes: "",
}
2023-07-11 17:29:53 +08:00
}
},
onLoad(options) {
if ('params' in options) {
// 获取传递的对象参数使用decodeURIComponent解码并转为对象
this.obj = JSON.parse(decodeURIComponent(options.params))
}
},
2023-07-18 17:37:15 +08:00
mounted() {
this.getShip()
},
2023-07-11 17:29:53 +08:00
methods: {
2023-07-18 17:37:15 +08:00
// 获取船只信息
getShip() {
this.shipInfo = uni.getStorageSync('shipInfo')
this.shipInfo.voyageScheduleDataList.forEach((v, index) => {
this.hcList.push({
text: v.vvyName,
value: v.vvyId
})
})
this.shipInfo.handTypeList.forEach((v, index) => {
this.zxList.push({
text: v.ptrDesc,
value: v.ptrCode
})
})
},
2023-07-12 13:48:01 +08:00
// 工班信息相关
2023-07-11 17:29:53 +08:00
// 航次下拉
hcChange(e) {
this.hcValue = e;
2023-07-18 17:37:15 +08:00
this.hcList.forEach(v => {
if (v.value == e) {
this.hcTextValue = v.text
}
})
2023-07-11 17:29:53 +08:00
},
// 装卸类型下拉
zxChange(e) {
this.zxValue = e;
2023-07-18 17:37:15 +08:00
this.zxList.forEach(v => {
if (v.value == e) {
this.zxTextValue = v.text
}
})
2023-07-11 17:29:53 +08:00
},
// 点击第一个添加
ulAdd1() {
2023-07-12 13:48:01 +08:00
this.ulList1.push({
gbValue: "",
dataTime: ""
})
2023-07-11 17:29:53 +08:00
},
// 工班下拉
2023-07-12 13:48:01 +08:00
gbChange(e) {},
2023-07-11 17:29:53 +08:00
// 作业时间
changeLog(e) {},
// 点击第二个添加
ulAdd2() {
2023-07-12 13:48:01 +08:00
this.ulList2.push({
cxValue: "",
numValue: 0,
fsValue: "",
notes: "",
})
2023-07-11 17:29:53 +08:00
},
2023-07-11 17:43:29 +08:00
del() {
this.ulList2.splice(0, 1)
},
2023-07-11 17:29:53 +08:00
// 车型下拉
2023-07-12 13:48:01 +08:00
cxChange(e) {},
2023-07-11 17:29:53 +08:00
// 数量
2023-07-12 13:48:01 +08:00
numChange(val) {},
2023-07-11 17:29:53 +08:00
// 装卸方式下拉
2023-07-12 13:48:01 +08:00
fsChange(e) {},
// 翻仓信息
// 翻仓类型下拉
fcChange(e) {},
// 翻仓add
fcAdd() {
this.fcUlList.push({
fcValue: "",
fcUlList2: [{
qdValue: "",
zdValue: "",
gbValue: "",
dataTime: "",
numValue: 12,
tjValue: 12,
zlValue: 12
}]
})
},
fcAdd2(index) {
this.fcUlList[index].fcUlList2.push({
qdValue: "",
zdValue: "",
gbValue: "",
dataTime: "",
numValue: 0,
tjValue: 0,
zlValue: 0
})
},
// 翻仓删除
delFc(index, index2) {
this.fcUlList[index].fcUlList2.splice(index2, 1)
2023-07-11 17:29:53 +08:00
},
// 取消
cancel() {
uni.navigateTo({
url: '/pages/shipWork/mixWork'
})
},
2023-07-12 13:48:01 +08:00
// 保存
save() {},
// 下一步
next() {
this.active = this.active + 1
},
2023-07-11 17:29:53 +08:00
}
}
</script>
<style lang="less" scoped>
.shiftAdd {
.container {
padding: 30px 20px;
background-color: #fff;
/deep/.uni-steps__row-title {
font-size: 20px;
}
/deep/.uni-icons {
font-size: 20px !important;
}
/deep/.uni-steps__row-container {
margin-top: 10px;
}
.line {
width: 100%;
height: 10px;
background: #f2f2f2;
2023-07-12 13:48:01 +08:00
margin: 20px 0;
2023-07-11 17:29:53 +08:00
}
.ulTop {
width: 100%;
padding: 20px;
text-align: right;
border-top: 1px solid #ccc;
2023-07-18 17:37:15 +08:00
text {
2023-07-11 17:29:53 +08:00
color: #2979ff;
margin-right: 10px;
}
2023-07-11 17:43:29 +08:00
2023-07-18 17:37:15 +08:00
text:nth-of-type(2) {
2023-07-11 17:43:29 +08:00
color: red;
}
2023-07-11 17:29:53 +08:00
}
2023-07-12 13:48:01 +08:00
.fcUl {
2023-07-18 17:37:15 +08:00
.li {
2023-07-12 13:48:01 +08:00
border: none;
margin-bottom: 0;
.liTitle {
width: 120px;
}
}
}
.fcUl2 {
.liTitle {
width: 120px;
}
}
2023-07-18 17:37:15 +08:00
.ul {
2023-07-11 17:29:53 +08:00
display: flex;
flex-wrap: wrap;
justify-content: space-between;
2023-07-12 13:48:01 +08:00
margin-bottom: 20px;
2023-07-11 17:29:53 +08:00
2023-07-18 17:37:15 +08:00
.li {
2023-07-11 17:29:53 +08:00
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;
}
.liTitle {
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;
}
}
.widthLi {
width: 100%;
}
}
.ul2 {
padding: 0;
margin-top: 0;
2023-07-18 17:37:15 +08:00
.li {
2023-07-11 17:29:53 +08:00
border: none;
margin-bottom: 0;
}
}
2023-07-12 13:48:01 +08:00
.otherWork {
padding: 0 20px;
.title {
font-size: 16px;
font-weight: bold;
padding-left: 10px;
border-left: 5px solid #2979ff;
margin-bottom: 20px;
}
2023-07-18 17:37:15 +08:00
.ul {
.li {
2023-07-12 13:48:01 +08:00
border: none;
}
2023-07-18 17:37:15 +08:00
.li:last-child {
2023-07-12 13:48:01 +08:00
width: 100%;
}
}
}
2023-07-11 17:29:53 +08:00
.btnList {
display: flex;
justify-content: center;
2023-07-12 13:48:01 +08:00
margin-top: 20px;
2023-07-11 17:29:53 +08:00
/deep/ .van-button {
margin: 30px 20px;
width: 120px;
height: 50px;
}
}
}
}
</style>