修改部分bug

main
lilu 2 years ago
parent 460d4b26d6
commit 09319be94f

@ -3,6 +3,6 @@ import { baseUrl } from "@/common/js/request/moduleType.js"
// 舱单查询
export const GetMsOpSeaeEdiList = (data) => {
return http.get(`${baseUrl}/GetMsOpSeaeEdiList`, data)
return http.get(`${baseUrl}/WechatApplet/GetMsOpSeaeEdiList`, data)
}

@ -1,7 +1,7 @@
export default {
// baseUrl :process.env.NODE_ENV === 'development' ? "https://wechat.myshipping.net:8860": "http://djy-identity.myshipping.net",
baseUrl :process.env.NODE_ENV === 'development' ? "https://wechat.myshipping.net:8860": "https://wechat.myshipping.net:8860",
moduleUrlType: 'formal', // test 测试版 formal 正式版
moduleUrlType: 'test', // test 测试版 formal 正式版
// dataType: "json",
// responseType: "text",
}

@ -136,6 +136,15 @@
"enablePullDownRefresh": false
}
}
,{
"path" : "manifestDetail/manifestDetail",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
]
},

@ -44,7 +44,7 @@
<view class="online">
<view class="title">即将上线</view>
<view class="nav-box">
<view class="nav" @click="changePage(false)">
<view class="nav" @click="changePage('/pages/vas/manifest/manifest')">
<!-- /pages/vas/manifest/manifest -->
<view class="top">
<text class="iconfont icon-dingdanguanli"></text>

@ -19,7 +19,7 @@
<image :src="item.image" mode=""></image>
<text>{{item.code}}</text>
</view>
<view class="right">箱型{{fromData.boxCode}}</view>
<view class="right">箱型{{fromData.boxName}}</view>
</view>
<template v-if="item.status == 'over'">
<view class="single-main" v-for="(ship, sindex) in item.list">
@ -42,7 +42,7 @@
</view>
<view class="ship-name">
<text>航次 {{ ship.voyage }}</text>
<text class="num">航程 {{ ship.transit_time }}</text>
<text class="num">航程 {{ ship.transit_time }}</text>
</view>
</view>
<view class="right">
@ -81,35 +81,58 @@
查看费用
</view>
<ul class="list">
<li v-for="(surcharge,sindex) in modelData" :key="sindex">
<text class="icon-btn"></text>
<view class="dialog-tit">
<text class="left">{{ surcharge.name || '--' }}</text>
</view>
<view class="dialog-time">
<text class="left active"><text class="iconfont icon-shiyongwendang"></text>费用类型: {{ surcharge.category || '--' }} </text>
<text class="right">
<text>单位 / {{ surcharge.unit || '--' }} </text>
</text>
</view>
<view class="dialog-single">
<text class="left active"><text class="iconfont icon-jiagebiaoqian"></text>单票价格: {{ surcharge.bl_price || '--' }}</text>
</view>
<view class="price-list">
<view class="price">
<text>20GP</text>
<text>{{ surcharge.price_20GP || '--' }}</text>
<template v-if="['COSCO','OOCL'].includes(modelType)">
<li v-for="(surcharge,sindex) in modelData" :key="sindex">
<text class="icon-btn"></text>
<view class="dialog-tit">
<text class="left">{{ surcharge.name || '--' }}</text>
</view>
<view class="price">
<text>40GP</text>
<text>{{ surcharge.price_40GP || '--' }}</text>
<view class="dialog-time">
<text class="left active"><text class="iconfont icon-shiyongwendang"></text>费用类型: {{ surcharge.category || '--' }} </text>
<text class="right">
<text>单位 / {{ surcharge.unit || '--' }} </text>
</text>
</view>
<view class="price">
<text>4HQ</text>
<text>{{ surcharge.price_40HQ || '--'}}</text>
<view class="dialog-single">
<text class="left active"><text class="iconfont icon-jiagebiaoqian"></text>单票价格: {{ surcharge.bl_price || '--' }}</text>
</view>
</view>
</li>
<view class="price-list">
<view class="price">
<text>20GP</text>
<text>{{ surcharge.price_20GP || '--' }}</text>
</view>
<view class="price">
<text>40GP</text>
<text>{{ surcharge.price_40GP || '--' }}</text>
</view>
<view class="price">
<text>4HQ</text>
<text>{{ surcharge.price_40HQ || '--'}}</text>
</view>
</view>
</li>
</template>
<template v-else>
<li v-for="(surcharge,sindex) in modelData" :key="sindex">
<text class="icon-btn"></text>
<view class="dialog-tit">
<text class="left">{{ surcharge.name || '--' }}</text>
</view>
<view class="dialog-time">
<text class="left active"><text class="iconfont icon-shiyongwendang"></text>费用类型: {{ surcharge.category || '--' }} </text>
</view>
<view class="price-list">
<view class="price">
<text>币种类型</text>
<text>{{ surcharge.currency || '--' }}</text>
</view>
<view class="price">
<text>价格</text>
<text>{{ surcharge.price || 0 }}</text>
</view>
</view>
</li>
</template>
</ul>
<view class="bottom">
<button @click="hideModelFun"></button>
@ -195,6 +218,7 @@
noData: false,
showModel: false,
modelData: null,
modelType: '',
}
},
watch:{
@ -278,9 +302,11 @@
},
showMore(data){
debugger
this.showModel = true;
this.modelData = data.surcharge;
this.modelType = data.web_code;
console.log(this.modelData)
debugger
},
hideModelFun(){

@ -2,19 +2,19 @@
<loading-html v-if="loadingShow" />
<view class="declaration-log" v-else>
<view class="log-list">
<ul class="tab" v-for="i in 10">
<ul class="tab" v-for="(item, index) in declarationLog">
<li class="tab-top">
<view class="left"><text class="iconfont icon-yundanhao"></text>主提单号: 123456789123</view>
<view class="right">2022.03.01 08:22:31</view>
<view class="left"><text class="iconfont icon-yundanhao"></text> {{item.MBLNO || '--'}}</view>
<view class="right">{{ GetDateFormat(item.CREATETIME) || '--' }}</view>
</li>
<li class="tab-num"><text class="iconfont icon-shiyongwendang"></text>次提单号: 12313213213213</li>
<li class="tab-num"><text class="iconfont icon-shiyongwendang"></text>次提单号: {{item.HBLNO || '--'}}</li>
<li class="tab-content">
<view class="send-type">
<view class="top">
发送状态
</view>
<view class="bottom" :class="[{'active': i%1 == 0},{'waring': i%2 == 0},{'error': i%3 == 0}]">
已发送
{{item.OPTYPE || '--'}}
</view>
</view>
<view class="operator">
@ -22,7 +22,7 @@
操作人
</view>
<view class="bottom">
张三
{{item.OPERATOR || '--'}}
</view>
</view>
<view class="shipping-agent">
@ -30,12 +30,12 @@
船代
</view>
<view class="bottom">
MSD
{{item.FORWARDER || '--'}}
</view>
</view>
</li>
<li class="tab-tip">
备注 驱蚊器发任务分可能但是解放大道的
备注 {{item.TIPS || '--'}}
</li>
</ul>
</view>
@ -44,10 +44,19 @@
<script>
import loadingHtml from './components/skeleton/index.vue'
import {
mapState,
mapActions
} from 'vuex';
export default {
components: {
loadingHtml,
},
computed: {
...mapState([
'declarationLog'
]),
},
data() {
return {
loadingShow: true,
@ -59,7 +68,9 @@
}, 800)
},
methods: {
GetDateFormat(str) {
return this.$util.formatDate(new Date(parseInt(str.substr(6, 13))), 'yyyy-MM-dd hh:mm:ss');
}
}
}
</script>

@ -322,4 +322,17 @@
}
}
}
}
.no-data{
image{
width: 300rpx;
height: 300rpx;
display: block;
margin: 300rpx auto 13rpx;
}
.no-data-text{
font-size: 28rpx;
text-align: center;
color: #999;
}
}

@ -12,12 +12,12 @@
<view class="swipe-action-box">
<mescroll-uni @topclick="topClick" ref="mescrollRef" class="mescroll-uni" @init="mescrollInit" @down="downCallback" :up="upOption" :down="downOption" height="100vh" @up="upCallback">
<view class="swipe-action__content" :class="{'edit-box': inEdit}" v-for="(item, index) in manifestList">
<view class="edit-icon" v-if="inEdit">
<!-- <text class="iconfont icon-checkbox"></text>-->
<text class="iconfont icon-fuxuankuangxuanzhong active"></text>
<view class="edit-icon" v-if="inEdit" @click="chamgeEdit(item, index)">
<text class="iconfont icon-checkbox" v-if="!editList.includes(index)"></text>
<text class="iconfont icon-fuxuankuangxuanzhong active" v-else></text>
</view>
<view class="swipe-action__content__top">
<view class="left" @longpress="longTap('123132')">
<view class="left" @longpress="longTap(item.MBLNO)">
<text class="iconfont icon-yundanhao"></text>
<text>主提单号 {{item.MBLNO || '--'}}</text>
</view>
@ -67,7 +67,7 @@
</view>
</view>
<view class="swipe-action__content__bottom">
<view class="declare-log" @click="goDeclareLog">
<view class="declare-log" @click="goDeclareLog(item)">
申报日志
</view>
<view class="declare-time">
@ -78,12 +78,14 @@
</view>
</view>
<view class="no-data" v-if="manifestList.length == 0 && !inLoading">
<image src="https://wechat.myshipping.net:8860/wechat_image/no-data/no-notice.png" mode=""></image>
<view class="no-data-text">暂无数据</view>
</view>
</mescroll-uni>
</view>
<uni-fab :pattern="pattern" :content="content" horizontal="right" vertical="bottom" direction="horizontal"
:popMenu="true" @trigger="trigger" @fabClick="fabClick" />
<view class="edit-alert-bg" v-if="show" @click="openAlert"></view>
<view class="edit-alert" v-if="show">
<view class="edit-tit">
@ -121,6 +123,10 @@
import {
GetMsOpSeaeEdiList,
} from '@/common/js/api/vas/manifest.js'
import {
mapState,
mapActions
} from 'vuex';
export default {
components: {
uniFab,
@ -133,66 +139,6 @@
loadingShow: true,
current: 0,
tabs: ['全部', '已录入', '已直发', '发送失败', '发送超时'],
tab: [{
name: '全部',
}, {
name: '已录入',
}, {
name: '已直发',
}, {
name: '发送失败',
}, {
name: '发送超时',
}],
options4: [{
text: '禁用状态',
disabled: true,
options: [{
text: '置顶',
style: {
backgroundColor: '#3c9cff',
}
},
{
text: '取消',
style: {
backgroundColor: '#f9ae3d',
}
},
],
}, {
text: '正常状态',
disabled: false,
options: [{
text: '置顶',
style: {
backgroundColor: '#3c9cff',
}
},
{
text: '取消',
style: {
backgroundColor: '#f9ae3d',
}
},
],
}, {
text: '自动关闭',
disabled: false,
options: [{
text: '置顶',
style: {
backgroundColor: '#3c9cff',
}
},
{
text: '取消',
style: {
backgroundColor: '#f9ae3d',
}
},
],
}],
pattern: {
color: '#333',
backgroundColor: '#FFFFFF',
@ -216,8 +162,11 @@
}
],
inEdit: false,
editList: [],
show: false,
keyword: '',
inLoading: false,
manifestList: [],
//
downOption: {
@ -256,6 +205,9 @@
this.init();
},
methods: {
...mapActions([
'getDeclarationLog'
]),
init(){
this.manifestList = [];
this.downCallback();
@ -275,11 +227,14 @@
this.mescroll.triggerDownScroll()
},
getMsOpSeaeEdiList(page){
this.inLoading = true;
GetMsOpSeaeEdiList({
page: page.num,
limit: page.size,
MBLNO: this.keyword,
EDISTATUS: this.current == 0 ? '' : this.tabs[this.current],
}).then(res =>{
this.inLoading = false;
if(res.Code == 200){
this.mescroll.endSuccess(res.DataList.length);
if(page.num == 1) this.manifestList = []; //
@ -290,7 +245,7 @@
}
}).catch(err =>{
this.mescroll.endErr();
this.loading = false;
this.inLoading = false;
uni.hideLoading();
})
},
@ -308,6 +263,8 @@
},
trigger(e) {
if (e.index == 0) {
this.openAlert();
} else if (e.index == 1) {
uni.showModal({
title: '提示',
content: `激活状态:${e.item.active};选中项:${e.item.text}`,
@ -319,7 +276,7 @@
}
}
});
} else if (e.index == 1) {
} else {
uni.showModal({
title: '提示',
content: `激活状态:${e.item.active};选中项:${e.item.text}`,
@ -331,8 +288,6 @@
}
}
});
} else {
this.openAlert();
}
},
fabClick() {
@ -346,14 +301,25 @@
openAlert() {
this.show = !this.show;
},
chamgeEdit(item,index){
if(this.editList.includes(index)){
this.editList.splice(this.editList.indexOf(index), 1)
}else{
this.editList.push(index)
}
console.log(this.editList)
},
//
goAdd() {
uni.navigateTo({
url: '/pages/vas/newManifest/newManifest'
url: '/pages/vas/manifestDetail/manifestDetail'
})
},
//
goDeclareLog() {
goDeclareLog(data) {
let log = data.OP_SEAE_EDI_TIPS;
this.getDeclarationLog(log)
uni.navigateTo({
url: '/pages/vas/declarationLog/declarationLog'
})
@ -370,8 +336,10 @@
}
});
},
search() {
console.log('====search=====')
search(data) {
console.log('====search=====', data);
this.keyword = data.value ? data.value : '';
this.init();
},
changeTab(index) {
this.current = index;

@ -0,0 +1,186 @@
<template name="skeleton">
<view class="sk-container">
<view class="content data-v-16a3ec01">
<swiper class="swiper data-v-16a3ec01" current="0" duration="500" interval="2000" next-margin="40" previous-margin="0" autoplay="false">
<swiper-item class="data-v-16a3ec01" style="position: absolute; width: 100%; height: 100%; transform: translate(0%, 0px) translateZ(0px);">
<view class="swiper-item data-v-16a3ec01">
<view class="detail-from data-v-16a3ec01">
<view class="detail-tit data-v-16a3ec01">
<text class="iconfont icon-type data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-24-2424-525 sk-text">申请单信息</text>
</view>
<view class="from-list data-v-16a3ec01">
<view class="line data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont icon-shiyongwendang data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-30-2632-246 sk-text">提单号</text>
</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="请输入提单号" type="text"></view>
</view>
</view>
<view class="line data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont icon-cangku data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-30-2632-789 sk-text">仓库名称</text>
</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" disabled="true" placeholder="请输入仓库名称" type="text"></view>
</view>
</view>
<view class="line data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont icon-a-2yubeichuanmingxiugai data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-30-2632-375 sk-text">船名</text>
</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="请输入船名" type="text"></view>
</view>
</view>
<view class="line data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont icon-chuanbo data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-30-2632-55 sk-text">航次</text>
</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="请输入航次" type="text"></view>
</view>
</view>
<view class="line-more mt-20 data-v-16a3ec01">
<view class="part data-v-16a3ec01">
<view class="left data-v-16a3ec01 sk-transparent">
<text class="iconfont icon--_rukushuliangtongji data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>件数</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="件数" type="text"></view>
</view>
</view>
<view class="part data-v-16a3ec01">
<view class="left data-v-16a3ec01 sk-transparent">
<text class="iconfont icon-caishouzhongliang data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>重量</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="重量" type="text"></view>
</view>
</view>
</view>
<view class="line-more mb-20 data-v-16a3ec01">
<view class="part data-v-16a3ec01">
<view class="left data-v-16a3ec01 sk-transparent">
<text class="iconfont icon-chima data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>尺码</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="尺码" type="text"></view>
</view>
</view>
</view>
<view class="line data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont icon-gongsiqiye data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-30-2632-246 sk-text">拼箱公司</text>
</view>
<view class="right data-v-16a3ec01">
<view class="data-v-16a3ec01 sk-image" placeholder="请输入拼箱公司" type="text"></view>
</view>
</view>
<view class="line data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont icon-beizhu data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-30-2632-610 sk-text">备注</text>
</view>
<view class="right-input data-v-16a3ec01 sk-image" placeholder="请输入备注"></view>
</view>
</view>
<view class="from-tip data-v-16a3ec01">
<view class="left data-v-16a3ec01">
<text class="iconfont data-v-16a3ec01"></text>
<text class="data-v-16a3ec01 sk-transparent sk-text-11-7647-71 sk-text">注意</text>
</view>
<view class="right data-v-16a3ec01 sk-transparent">1. 请准确填写船名航次提单号8位HS编码申报数量
<view class="_br data-v-16a3ec01"></view>2. 一个提单号下多个HS编码请录入多行信息
<view class="_br data-v-16a3ec01"></view>3. 同一HS编码请合并录在一行商品名称用英文逗号隔开
<view class="_br data-v-16a3ec01"></view>4. 申报数量要与法定单位对应例法定单位是千克请录净重法定单位是台请录台数</view>
</view>
</view>
</view>
</swiper-item>
</swiper>
<view class="detail-bottom data-v-16a3ec01" style="padding-bottom:29px;height: 74px;">
<view class="btn copy data-v-16a3ec01 sk-transparent sk-pseudo sk-pseudo-circle">
<text class="iconfont icon-fuzhi data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>复制</view>
<view class="btn save data-v-16a3ec01 sk-transparent sk-pseudo sk-pseudo-circle">
<text class="iconfont icon-icon_baocun data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>保存</view>
<view class="btn send data-v-16a3ec01 sk-transparent sk-pseudo sk-pseudo-circle">
<text class="iconfont icon-fasong1 data-v-16a3ec01 sk-pseudo sk-pseudo-circle"></text>发送</view>
</view>
</view>
</view>
</template>
<style>
.sk-transparent {
color: transparent !important;
}
.sk-text-24-2424-525 {
background-image: linear-gradient(transparent 24.2424%, #EEEEEE 0%, #EEEEEE 75.7576%, transparent 0%) !important;
background-size: 100% 59.7826rpx;
position: relative !important;
}
.sk-text {
background-origin: content-box !important;
background-clip: content-box !important;
background-color: transparent !important;
color: transparent !important;
background-repeat: repeat-y !important;
}
.sk-text-30-2632-246 {
background-image: linear-gradient(transparent 30.2632%, #EEEEEE 0%, #EEEEEE 69.7368%, transparent 0%) !important;
background-size: 100% 68.8406rpx;
position: relative !important;
}
.sk-text-30-2632-789 {
background-image: linear-gradient(transparent 30.2632%, #EEEEEE 0%, #EEEEEE 69.7368%, transparent 0%) !important;
background-size: 100% 68.8406rpx;
position: relative !important;
}
.sk-text-30-2632-375 {
background-image: linear-gradient(transparent 30.2632%, #EEEEEE 0%, #EEEEEE 69.7368%, transparent 0%) !important;
background-size: 100% 68.8406rpx;
position: relative !important;
}
.sk-text-30-2632-55 {
background-image: linear-gradient(transparent 30.2632%, #EEEEEE 0%, #EEEEEE 69.7368%, transparent 0%) !important;
background-size: 100% 68.8406rpx;
position: relative !important;
}
.sk-text-30-2632-610 {
background-image: linear-gradient(transparent 30.2632%, #EEEEEE 0%, #EEEEEE 69.7368%, transparent 0%) !important;
background-size: 100% 68.8406rpx;
position: relative !important;
}
.sk-text-11-7647-71 {
background-image: linear-gradient(transparent 11.7647%, #EEEEEE 0%, #EEEEEE 88.2353%, transparent 0%) !important;
background-size: 100% 30.7971rpx;
position: relative !important;
}
.sk-pseudo::before, .sk-pseudo::after {
background: #EFEFEF !important;
background-image: none !important;
color: transparent !important;
border-color: transparent !important;
}
.sk-pseudo-rect::before, .sk-pseudo-rect::after {
border-radius: 0 !important;
}
.sk-pseudo-circle::before, .sk-pseudo-circle::after {
border-radius: 50% !important;
}
.sk-image {
background: #EFEFEF !important;
}
.sk-container {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden;
background-color: transparent;
}
</style>

@ -0,0 +1,300 @@
.content{
height: 100vh;
background: #f6f6f6;
// padding-bottom:120rpx;
display: flex;
flex-direction: column;
overflow:hidden;
box-sizing: border-box;
.swiper{
height: 100%;
flex: 1;
.swiper-item {
display: block;
height: 100%;
padding: 20rpx;
box-sizing: border-box;
.detail-tit{
font-size: 32rpx;
font-weight:600;
color: #333;
height: 60rpx;
line-height: 60rpx;
color: #2c96fb ;
margin-bottom: 20rpx;
.iconfont{
margin-right: 20rpx;
font-size: 38rpx;
font-weight: 500;
}
}
.detail-from{
height: 100%;
box-sizing: border-box;
background: #fff;
padding: 30rpx;
border-radius: 20rpx;
box-shadow: 0 0 10rpx #eee;
overflow-y: auto;
.from-list{
.line{
min-height: 70rpx;
line-height: 70rpx;
display: flex;
margin-bottom: 28rpx;
.left{
width:165rpx;
margin-right: 20rpx;
font-size: 28rpx;
color:#333;
.iconfont{
margin-right: 8rpx;
}
}
.right{
flex: 1;
min-height: 70rpx;
background: #eee;
border-radius: 14rpx;
padding: 0 30rpx;
input{
display: block;
height: 100%;
width: 100%;
font-size: 24rpx;
}
}
.right-input{
padding: 30rpx;
display: block;
flex: 1;
height: 70rpx;
background: #eee;
border-radius: 14rpx;
padding: 20rpx 30rpx;
font-size: 24rpx;
line-height: 40rpx;
}
}
.mt-20{
margin-top: 40rpx;
}
.line-more{
height: 70rpx;
line-height: 70rpx;
display: flex;
margin-bottom: 28rpx;
.part{
display: flex;
margin-right: 20rpx;
.left{
margin-right: 30rpx;
font-size: 28rpx;
color:#333;
.iconfont{
margin-right: 8rpx;
}
}
.right{
flex: 1;
height: 70rpx;
background: #eee;
border-radius: 14rpx;
padding: 0 30rpx;
input{
display: block;
height: 100%;
width: 100%;
}
}
}
}
.mb-20{
margin-bottom: 40rpx;
}
}
.from-tip{
font-size: 24rpx;
line-height: 32rpx;
color: #999;
display: flex;
background: #fef6eb;
color: #f9a629;
margin-top:40rpx;
padding: 20rpx;
.left{
width: 80rpx;
}
.right{
flex: 1;
}
}
}
.detail-list{
height: 100%;
box-sizing: border-box;
background: #fff;
padding: 30rpx;
border-radius: 20rpx;
box-shadow: 0 0 10rpx #eee;
display: flex;
flex-direction: column;
.goods-list{
flex: 1;
overflow: auto;
.goods{
padding: 20rpx 20rpx 20rpx 0;
margin-left: 116rpx;
position: relative;
border-bottom: 1rpx dashed #eee;
position: relative;
.icon{
position:absolute;
font-size: 24rpx;
top: 18px;
left: -84rpx;
color: #2c96fb;
}
&::before{
content:'';
position: absolute;
width: 3rpx;
height: calc(100%-3rpx);
height: 100%;
background:#eee;
top: 54rpx;left: -33rpx;
}
&:nth-last-child(1){
&::before{
display: none;
}
}
.circle{
position: absolute;
top: 44rpx;
left: -37rpx;
width: 10rpx;
height: 10rpx;
background-color: #2c96fb;
border-radius: 50%;
}
.goods-line{
height: 60rpx;
line-height: 60rpx;
display: flex;
.left{
margin-right: 20rpx;
}
.right-input{
height: 50rpx;
flex: 1;
background: #eee;
margin-top: 8rpx;
padding: 0 18rpx;
line-height: 80rpx;
font-size: 22rpx;
border-radius: 8rpx;
}
}
.btns{
height: 80rpx;
text-align: right;
.iconfont{
font-size: 40rpx;
line-height: 80rpx;
margin-left: 20rpx;
display: inline-block;
vertical-align: top;
}
.icon-cuowu{
color: #999;
}
.icon-dui{
color: #ff8213;
margin-top: 2rpx;
}
}
}
}
.goods-btn{
height: 78rpx;
// border-top: 1rpx solid #eee;
text-align: right;
padding-top: 20rpx;
button{
height: 64rpx;
line-height: 64rpx;
border-radius: 70rpx;
margin-left: 20rpx;
font-size: 26rpx;
padding: 0 40rpx;
display: inline-block;
}
.add{
background: #2c96fb;
color: #fff;
}
.copy{
border: 1rpx solid #2c96fb;
background: #fff;
color: #2c96fb;
}
.remove{
border: 1rpx solid #999;
background: #fff;
color: #999;
}
}
}
}
}
.detail-bottom{
background: #fff;
line-height: 50px;
border-top: 1rpx solid #eee;
display: flex;
.btn{
flex: 1;
text-align: center;
position: relative;
font-size: 28rpx;
font-weight: 600;
&::before{
content: '';
width: 2rpx;
height: 44rpx;
background: #eee;
position: absolute;
top: 25rpx;
right: 0;
}
&:nth-last-child(1){
&::before{
display: none;
}
}
text{
display: inline-block;
font-size: 32rpx;
font-weight: 600;
}
.iconfont{
margin-right: 18rpx;
font-weight: 500;
}
&.send{
color: #2c96fb;
}
&.copy{
color: #999;
}
&.save{
color: #ff8213;
}
}
}
}

@ -0,0 +1,370 @@
<template>
<loading-html v-if="loadingShow" />
<view class="content" v-else>
<swiper class="swiper" circular :indicator-dots="false" :autoplay="false" :interval="2000" :circular="false"
:duration="500" :previous-margin="prevMargin" :next-margin="nextMargin" :current="swiperIndex" @change="changeSwiper">
<swiper-item>
<view class="swiper-item">
<view class="detail-from ">
<view class="detail-tit">
<text class="iconfont icon-type"></text>
<text>基本信息</text>
</view>
<view class="from-list">
<view class="line">
<view class="left">
<text class="iconfont icon-shiyongwendang"></text>
<text>主提单号</text>
</view>
<view class="right">
<input type="text" placeholder="请输入主提单号">
</view>
</view>
<view class="line">
<view class="left">
<text class="iconfont icon-cangku"></text>
<text>次提单号</text>
</view>
<view class="right" @click="openShipSelect">
<input type="text" placeholder="请输入次提单号" :disabled="true">
</view>
</view>
<view class="line">
<view class="left">
<text class="iconfont icon-a-2yubeichuanmingxiugai"></text>
<text>船名</text>
</view>
<view class="right">
<input type="text" placeholder="请输入船名">
</view>
</view>
<view class="line">
<view class="left">
<text class="iconfont icon-chuanbo"></text>
<text>航次</text>
</view>
<view class="right">
<input type="text" placeholder="请输入航次">
</view>
</view>
<view class="line">
<view class="left">
<text class="iconfont icon-chuanbo"></text>
<text>起运港</text>
</view>
<view class="right">
<input type="text" placeholder="请输入起运港">
</view>
</view>
<view class="line-more mt-20">
<view class="part">
<view class="left">
<text class="iconfont icon--_rukushuliangtongji"></text>件数
</view>
<view class="right">
<input type="text" placeholder="件数">
</view>
</view>
<view class="part">
<view class="left">
<text class="iconfont icon-caishouzhongliang"></text>重量
</view>
<view class="right">
<input type="text" placeholder="重量">
</view>
</view>
</view>
<view class="line-more mb-20">
<view class="part">
<view class="left">
<text class="iconfont icon-chima"></text>尺码
</view>
<view class="right">
<input type="text" placeholder="尺码">
</view>
</view>
</view>
<view class="line">
<view class="left">
<text class="iconfont icon-gongsiqiye"></text>
<text>拼箱公司</text>
</view>
<view class="right">
<input type="text" placeholder="请输入拼箱公司">
</view>
</view>
<view class="line">
<view class="left">
<text class="iconfont icon-beizhu"></text>
<text>备注</text>
</view>
<!-- <view class="right right-input"> -->
<!-- <input type="text" placeholder="请输入备注"> -->
<textarea class="right-input" placeholder="请输入备注"/>
<!-- </view> -->
</view>
</view>
<view class="from-tip">
<view class="left">
<text class="iconfont "></text>
<text>注意</text>
</view>
<view class="right">
1. 请准确填写船名航次提单号8位HS编码申报数量<br/>
2. 一个提单号下多个HS编码请录入多行信息<br/>
3. 同一HS编码请合并录在一行商品名称用英文逗号隔开 <br/>
4. 申报数量要与法定单位对应例法定单位是千克请录净重法定单位是台请录台数
</view>
</view>
</view>
</view>
</swiper-item>
<swiper-item>
<view class="swiper-item">
<view class="detail-list ">
<view class="detail-tit">
<text class="iconfont icon-ziliaoku"></text>
<text>商品信息</text>
</view>
<scroll-view class="goods-list" :scroll-top="scrollTop" scroll-y="true">
<view class="goods" v-for="(item,index) in goodsList">
<template v-if="item.inEdit">
<view class="icon" @click="changeGoods(item,index)">
<text class="iconfont icon-checkbox" v-if="!item.isChecked"></text>
<text class="iconfont icon-fuxuankuangxuanzhong" v-else></text>
</view>
<view class="circle"></view>
<view class="goods-line goods-code">
<text class="left">商品编码</text>
<input class="right-input" type="text" placeholder="请输入" >
</view>
<view class="goods-line goods-name">
<text class="left">商品名称</text>
<input class="right-input" type="text" placeholder="请输入" >
</view>
<view class="goods-line goods-num">
<text class="left">申报数量</text>
<input class="right-input" type="text" placeholder="请输入" >
</view>
<view class="goods-line goods-unit">
<text class="left">法定单位</text>
<input class="right-input" type="text" placeholder="请输入" >
</view>
<view class="btns">
<text class="iconfont icon-cuowu" @click="newGoodscancel(item,index)"></text>
<text class="iconfont icon-dui" @click="newGoodsOK(item,index)"></text>
</view>
</template>
<template v-else>
<view class="icon" @click="changeGoods(item,index)">
<text class="iconfont icon-checkbox" v-if="!item.isChecked"></text>
<text class="iconfont icon-fuxuankuangxuanzhong" v-else></text>
</view>
<view class="circle"></view>
<view class="goods-line goods-code">
<text class="left">商品编码</text>
<text class="right">695551215454</text>
</view>
<view class="goods-line goods-name">
<text class="left">商品名称</text>
<text class="right">针织男士袜</text>
</view>
<view class="goods-line goods-num">
<text class="left">申报数量</text>
<text class="right">1400.00</text>
</view>
<view class="goods-line goods-unit">
<text class="left">法定单位</text>
<text class="right">/千克</text>
</view>
</template>
</view>
</scroll-view>
<view class="goods-btn">
<button class="remove">
<text class="iconfont "></text>
<text>删除</text>
</button>
<button class="copy" @click="copyGoods(item,index)">
<text class="iconfont "></text>
<text>复制添加</text>
</button>
<button class="add" @click="addGoods(item,index)">
<text class="iconfont "></text>
<text>添加</text>
</button>
</view>
</view>
</view>
</swiper-item>
</swiper>
<view class="detail-bottom" :style="'padding-bottom:'+ (5 + safeAreaBottom) +'px;height: '+ (50 + safeAreaBottom) +'px;'">
<view class="btn copy" @click="copyOrder"><text class="iconfont icon-fuzhi"></text>复制</view>
<view class="btn save"><text class="iconfont icon-icon_baocun"></text>保存</view>
<view class="btn send"><text class="iconfont icon-fasong1"></text>发送</view>
</view>
<selectMultiple
v-if="isShow"
label-name="label"
:list="webCodeData"
:selectData="selectData"
@confirm="selectConfirm"
@close="selectClose"
/>
</view>
</template>
<script>
import selectMultiple from "@/pages/vas/components/selectMultiple/selectMultiple.vue"
import loadingHtml from './components/skeleton/index.vue'
export default {
components: {
selectMultiple,
loadingHtml
},
data() {
return {
loadingShow: true,
swiperIndex: 0,
prevMargin: 0,
nextMargin: 40,
safeAreaBottom: getApp().globalData.safeAreaBottom,
webCodeData:[
{
value: 'MSK',label: '中创',isCheckbox:false,
},
{
value: 'MCC',label: '外运',isCheckbox:false,
},
{
value: 'CMA',label: '大亚',isCheckbox:false,
},
{
value: 'COSCO',label: '捷运',isCheckbox:false,
},
{
value: 'OOCL',label: '万嘉',isCheckbox:false,
},
{
value: 'ONE',label: '邦达',isCheckbox:false,
},
{
value: 'ONE',label: '五洲',isCheckbox:false,
}
],
selectData:{
isMultiple: false, // true / false
label: 'label',
plac: '船公司',
history: '',
},
isShow: false, //
goodsList: [{
isChecked: false,
}, {
isChecked: false,
}, {
isChecked: false,
}, {
isChecked: false,
}, {
isChecked: false,
}, {
isChecked: false,
}, {
isChecked: false,
}, {
isChecked: false,
}],
scrollTop: 0,
}
},
onLoad(op) {
console.log(op.id)
setTimeout(() => {
this.loadingShow = false;
}, 200)
},
methods: {
changeSwiper(event){
if(event.detail.current == 0){
setTimeout(()=>{
this.prevMargin = 0
this.nextMargin = 40
},200)
}else{
setTimeout(()=>{
this.prevMargin = 40
this.nextMargin = 0
},200)
}
},
openShipSelect(){
this.isShow = true;
// this.webCodeData.map((item,index)=>{
// if(this.fromData.webCode.includes(item.value)){
// item.isCheckbox = true;
// }else{
// item.isCheckbox = false;
// }
// })
// this.selectData.history = this.fromData.webCodeName ? this.fromData.webCodeName : '';
// this.$forceUpdate();
},
selectConfirm(data){
// let arr = [];
// let name = [];
// data.map((item,index) =>{
// arr.push(item.value)
// name.push(item.label)
// })
// this.fromData.webCodeName = name.join(',')
// this.fromData.webCode = arr.join(',');
this.isShow = false;
this.$forceUpdate()
},
selectClose(){
this.isShow = false;
this.$forceUpdate()
},
changeGoods(item,index){
this.goodsList[index].isChecked = !this.goodsList[index].isChecked;
},
copyGoods(){
this.goodsList.push({
isChecked:false,
inEdit: true,
})
this.scrollTop = 999;
},
addGoods(){
this.goodsList.push({
isChecked:false,
inEdit: true,
})
this.scrollTop = 999;
},
newGoodscancel(item,index){
this.goodsList.splice(index,1)
},
newGoodsOK(item,index){
this.goodsList[index].inEdit = false;
},
copyOrder(){
uni.navigateTo({
url:'/pages/vas/lclFromDetail/lclFromDetail?id=3'
})
}
}
}
</script>
<style lang="less" scoped>
@import url("./manifestDetail.less");
</style>

@ -85,9 +85,9 @@ export default {
commit(types.DANGEROUS_GOODS, obj);
},
// getVesselList ({
// commit
// }, obj) {
// commit(types.VESSEL_LIST, obj);
// },
getDeclarationLog ({
commit
}, obj) {
commit(types.DECLARATION_LOG, obj);
},
}

@ -12,4 +12,4 @@ export const PACKAGE_LIST = 'PACKAGE_LIST';
export const CARRIER_LIST = 'CARRIER_LIST';
export const CTNALL_LIST = 'CTNALL_LIST';
export const DANGEROUS_GOODS = 'DANGEROUS_GOODS';
// export const VESSEL_LIST = 'VESSEL_LIST';
export const DECLARATION_LOG = 'DECLARATION_LOG';

@ -40,8 +40,8 @@ export default {
[types.DANGEROUS_GOODS] (state, e) {
state.dangerousGoods = e;
},
// [types.VESSEL_LIST] (state, e) {
// state.vesselList = e;
// },
[types.DECLARATION_LOG] (state, e) {
state.declarationLog = e;
},
}

@ -16,5 +16,7 @@ export default {
carrierList: null, // 船司
ctnallList: null, // 箱型
dangerousGoods: null, // 危品等级
// vesselList: null, // 船名
// 舱单申报公共数据
declarationLog: [],
};

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save