Commit 8f900fd0 authored by dcy's avatar dcy

Merge remote-tracking branch 'origin/dev' into dev

parents 89e48fbb 230be844
......@@ -46,7 +46,7 @@ export default {
align-items: center;
justify-content: center;
}
$sizes: 10,20,30,50,100,200,500,800,1000;
$sizes: 10,20,30,50,100,150,200,500,800,1000;
@for $i from 1 through length($sizes){
$item: nth($sizes, $i);
.ml-#{$item}{
......
......@@ -37,7 +37,7 @@ export function getNeedKnow(id) {
// 根据key获得须知
export function getNeedKnowByKey(key) {
return request({
url: '/system/need-know/getByKey?id=' + key,
url: '/system/need-know/getByKey?key=' + key,
method: 'get'
})
}
......
......@@ -20,12 +20,12 @@ export default {
this.$emit('input', this.valueSync)
},
value(){
this.valueSync = this.value
if(this.value)this.valueSync = this.value
}
},
created(){
if(this.value){
this.valueSync = value
this.valueSync = this.value
}
getCountryListAll().then(res => {
this.countryList = res.data
......
<template>
<div class="need-know" :id="'need-know_' + keyname" v-if="detail">
<!-- <h2>{{detail.titleZh}}</h2> -->
<div class="body" v-html="detail.contentZh"></div>
</div>
</template>
<script>
import {getNeedKnowByKey} from '@/api/system/needKnow'
import html2canvas from 'html2canvas'
import FileSaver from 'file-saver'
export default {
props:{
keyname: String
},
data(){
return {
detail: null
}
},
created(){
getNeedKnowByKey(this.keyname).then(res => {
this.detail = res.data
})
},
methods:{
download(){
// 直接保存图片
let l = this.$loading()
html2canvas(document.querySelector("#need-know_" + this.keyname)).then(canvas => {
canvas.toBlob((blob) => {
FileSaver.saveAs(blob, this.keyname + '.png')
})
}).finally(res => {
l.close()
});
},
}
}
</script>
<style scoped>
.body img{
max-width: 100%;
}
.need-know{
padding: 20px;
}
</style>
\ No newline at end of file
......@@ -134,7 +134,7 @@ import {getActivityList} from "@/api/bpm/activity";
import specialDiscount from "@/views/ecw/offer/specialDiscount"
import warehouseDetails from "@/views/ecw/order/components/warehouseDetails";
import shippingDetail from '@/views/ecw/box/shippingDetail'
import SplitDetail from '@/views/ecw/order/components/SplitDetail'
// 流程实例的详情页,可用于审批
export default {
......@@ -143,7 +143,8 @@ export default {
Parser,
specialDiscount,
warehouseDetails,
shippingDetail
shippingDetail,
SplitDetail
},
computed:{
matterNum(){
......@@ -237,6 +238,10 @@ export default {
shipment_preassemble: {
component: "shippingDetail",
processId: this.processInstance.businessKey,
},
split_order: {
component: "splitDetail",
id: this.processInstance.businessKey,
}
}
return map[this.processInstance.processDefinition.formCustomViewPath]
......
......@@ -377,6 +377,7 @@ export default {
created() {
// 查询待预装
this.handleQuery("toBePre");
this.handleQuery('pre');
},
methods: {
formatDate,
......
......@@ -88,7 +88,7 @@
<selector v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
</template>
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[1].push({})" />
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[1].push({type:1})" />
<el-button v-if="fee[1].length > 1" class="el-icon-minus" size="mini" type="danger" @click="fee[1].splice(index,1)" />
</div>
......@@ -127,7 +127,7 @@
<selector v-model="item.prodUnit" :options="unitList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
</template>
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[2].push({})" />
<el-button class="el-icon-plus" size="mini" type="primary" @click="fee[2].push({type:2})" />
<el-button v-if="fee[2].length > 1" class="el-icon-minus" size="mini" type="danger" @click="fee[2].splice(index,1)" />
</div>
......@@ -276,8 +276,8 @@ export default {
couponList: [], // 优惠券列表
couponIds:[],
fee:{
1: [{},{}], // 运费
2: [{},{}], // 清关费
1: [{type:1},{type:1}], // 运费
2: [{type:2},{type:2}], // 清关费
3: [{}] // 优惠券专用
}
};
......@@ -428,7 +428,9 @@ export default {
if(!this.costType){
return this.$message('暂无费用设置')
}
let data = Object.assign({}, this.form, {discountDetailedVOs: this.fee[this.costType]})
// 非有优惠券需要把运费和清关费一起提交
let discountDetailedVOs = this.costType == 3 ? this.fee[3] : this.fee[1].concat(this.fee[2])
let data = Object.assign({}, this.form, {discountDetailedVOs})
// 开始时间必填
if(!data.startTime)data.startTime = '2022-01-01 00:00:00'
// status必填
......
......@@ -299,6 +299,63 @@
</el-descriptions>
</el-card>
<el-card class="mt-10">
<div class="card-title" slot="header">预计费用</div>
<el-descriptions :column="5" border>
<el-descriptions-item label="保价费">
{{fee.insuranceFee || 0}} 人民币
</el-descriptions-item>
<el-descriptions-item label="总运费">
<div>{{fee.seaNGN || 0}}奈拉</div>
<div>{{fee.seaRMB || 0}}人民币</div>
<div>{{fee.seaUSD || 0}}美元</div>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item label="总清关费">
<div>{{fee.clearanceNGN || 0}}奈拉</div>
<div>{{fee.clearanceRMB || 0}}人民币</div>
<div>{{fee.clearanceUSD || 0}}美元</div>
</el-descriptions-item>
<el-descriptions-item label="其他费用">
<el-input v-model="form.otherFee" placeholder="" style="width:100px"></el-input>
<selector v-model="form.otherFeeCurrencyId" :options="currencyList" label-field="titleZh" value-field="id" defaultable style="width:100px" />
</el-descriptions-item>
<el-descriptions-item label="原价" :span="2">
<!--TODO 缺少字段-->
<div>{{fee.clearanceNGN || 0}}奈拉</div>
<div>{{fee.clearanceRMB || 0}}人民币</div>
<div>{{fee.clearanceUSD || 0}}美元</div>
</el-descriptions-item>
</el-descriptions>
<div class="card-title" style="padding:20px 0;">优惠信息</div>
<!-- <el-row v-for="(item, index) in couponList" :key="item.value" :gutter="10">
<el-col :span="2">{{index+1}}.{{item.label}}</el-col>
<el-col :span="4">
<el-select placeholder="请选择优惠" v-model="selectedCoupons[item.value]" :data-type="item.value" clearable>
<template v-for="(coupon, index) in couponList">
<el-option v-if="coupon.type == +item.value" :key="coupon.couponId + '_' + index" :label="coupon.titleZh" :value="coupon.couponId"></el-option>
</template>
</el-select>
</el-col>
<el-col :span="2" v-if="getCoupon(selectedCoupons[item.value])">
-{{getCoupon(selectedCoupons[item.value]).reduceAmount}}
{{currentcyMap[getCoupon(selectedCoupons[item.value]).reduceCurrencyId]}}
</el-col>
<el-col :span="5" v-if="getCoupon(selectedCoupons[item.value])">有效期:{{getCoupon(selectedCoupons[item.value]).endTime || '永久有效'}}</el-col>
</el-row> -->
<el-descriptions :column="1" border>
<el-descriptions-item label="优惠合计">
{{discount}}美元
</el-descriptions-item>
<el-descriptions-item label="预计费用">
// TODO
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="mt-10">
<div class="card-title" slot="header">通用</div>
......@@ -307,13 +364,13 @@
<el-input v-model="form.marks" placeholder=""></el-input>
</el-descriptions-item>
<el-descriptions-item label="报关方式">
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" />
<dict-selector :type="DICT_TYPE.ECW_CUSTOMS_TYPE" v-model="form.customsType" form-type="radio" defaultable />
</el-descriptions-item>
<el-descriptions-item label="预计结束时间">
<el-date-picker v-model="form.stopTime" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-descriptions-item>
<el-descriptions-item label="是否控货">
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.control" form-type="radio" />
<dict-selector :type="DICT_TYPE.INFRA_BOOLEAN_STRING" formatter="bool" v-model="form.control" form-type="radio" defaultable />
</el-descriptions-item>
<el-descriptions-item label="竞争对手">
<el-input v-model="form.competitor" placeholder=""></el-input>
......@@ -415,6 +472,8 @@ import {getDictData} from '@/utils/dict'
import {getCurrencyList} from '@/api/ecw/currency'
import {getUnitList} from '@/api/ecw/unit'
import {calculationPrice} from '@/api/ecw/product'
import {getCustomerAvailableCouponList} from '@/api/ecw/coupon'
export default {
name: "OfferEdit",
components: {
......@@ -439,12 +498,14 @@ export default {
transportList: [],
currencyList:[],
unitList:[],
couponList: [],
fee: {}, // 费用
// 表单参数
form: {
sendstatus:0,
type: [],
isCargoControl: false,
customsType: 0
},
// 表单校验
rules: {
......@@ -492,7 +553,7 @@ export default {
if(!this.form.lineId)return null
return this.routerList.find(item => item.id == this.form.lineId)
},
currentMap(){
currentcyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = item.titleZh
......@@ -521,6 +582,10 @@ export default {
})
return sum
},
// 总有优惠金额
discount(){
return 0
}
},
watch:{
......@@ -544,6 +609,9 @@ export default {
this.$set(this.form, 'objectiveId', router.destCityId)
// TODO 还需要回填渠道信息,暂时缺少渠道ID
},
fee(){
this.getCoupons()
}
},
created() {
getProductAttrList().then(res => this.productAttrList = res.data)
......@@ -689,6 +757,19 @@ export default {
this.productList.splice(index, 1)
})
},
getCoupons(){
console.log('getCoupons')
// if(!this.form.consigneeContactsId || !this.form.consignorContactsId) return false
let data = Object.assign({}, this.form, {
prodConditionParamList: this.productList,
consigneeCustomerContactsId: this.form.consigneeId,
consignorCustomerContactsId: this.form.consignorId
})
getCustomerAvailableCouponList(data)
.then(res => {
this.couponList = res.data
})
},
// 显示更多报价
showMorePrice(index){
console.log('显示更多报价', index)
......@@ -761,7 +842,13 @@ export default {
lineId: this.form.lineId,
transportId: this.form.transportId,
channelId: this.form.channelId,
prodConditionParamList: this.productList
prodConditionParamList: this.productList,
consigneeCustomerContactsId: this.form.consigneeCustomerContactsId,
consignorCustomerContactsId: this.form.consignorCustomerContactsId,
customsType: this.form.customsType,
isCargoControl: this.form.control,
orderType: this.form.orderType,
}).then(res => {
this.$set(this, 'fee', res.data.costDto)
this.productList.map((item, index) => {
......
......@@ -50,7 +50,7 @@
<div v-else>
<release-agreement />
<need-know keyname="control" />
<div style="margin-top:30px">
<el-button type="primary" @click="agreement=true">我同意</el-button>
<el-button @click="closeDialog">关闭</el-button>
......@@ -59,13 +59,13 @@
</el-dialog>
</template>
<script>
import ReleaseAgreement from "./ReleaseAgreement"
import WorkFlow from '@/components/WorkFlow'
import NeedKnow from '@/components/NeedKnow'
export default {
props:{
orderId: [String, Number]
},
components: {ReleaseAgreement, WorkFlow},
components: {NeedKnow, WorkFlow},
data(){
return {
show: false,
......
......@@ -88,25 +88,27 @@
</el-form>
<div v-else>
<release-agreement />
<!-- <release-agreement /> -->
<need-know ref="needKnow" keyname="control" />
<div style="margin-top:30px">
<el-button type="primary" @click="agreement=true">我同意</el-button>
<!-- <el-button type="primary" @click="$refs.needKnow.download()">保存协议</el-button> -->
<el-button @click="closeDialog">关闭</el-button>
</div>
</div>
</el-dialog>
</template>
<script>
import ReleaseAgreement from "./ReleaseAgreement"
import {getOrder} from '@/api/ecw/order'
import {createPick, getRleaseInfo} from '@/api/ecw/orderCargoControl'
import AreaCodeSelector from '@/components/AreaCodeSelector'
import SendSmsCode from '@/views/ecw/order/components/SendSmsCode'
import NeedKnow from '@/components/NeedKnow'
export default {
props:{
orderId: [String, Number]
},
components: {ReleaseAgreement, AreaCodeSelector, SendSmsCode},
components: {AreaCodeSelector, SendSmsCode, NeedKnow},
data(){
return {
show: false,
......
<template>
<div>
<h2>《捷道控放货须知》</h2>
<pre>
请您仔细阅读我们的控货须知,如果您对此须知中有任何部分存在疑问,请联系我司售前客服,如您已下单表示您已清楚我司控放货流程及风险。
1. 关于控货与放货
1.1控货是指由发货人与我司约定在货物的国际运输过程中,我司作为第三方对该货物进行临时控制;非经发货人按约定程序授权,我司不解除对该货物的控制的行为;
1.2您在订舱时选择控货选项,在货物入仓后,系统将会自动生成入仓号,表示货物已经控货成功;
1.3同一入仓号所属的货物只能控货一次,若出现分批次放货的情形,则最多不得超过3次,且每次只能有一个提货人;
1.4货物运抵目的地之后捷道公司会对货物进行临时控制。一经向系统申请放货并获得系统确认,则表明我司已获得您的授权,我司将根据约定向提货单持有人放货;
1.5您应在货物抵达目的地后30个自然日内通知捷道公司放货。尼日利亚:超过30日的,您应向捷道公司支付相应的仓储费尼;超过30天每天收取20naira/CBM ,超过60天每天40naira/CBM ,超过90天每天60naira/CBM;加纳:超过15日,需支付每天$1/CBM,超过180个自然日捷道公司有权根据依照相关法律规定处理该临时控制的货物;
1.6放货方式:A:登陆我司后台www.groupage.cn点击放货,通过账号原始绑定手机获取验证码进行放货;B:联系我司客服进行放货,联系电话4009009962,上班时间周一至周六 9:00-18:00。
2. 免责声明
2.1接受控货并不表明捷道公司对您货物所有权瑕疵进行担保;
2.2捷道公司经授权放货不代表同意对买卖双方的货款结算进行担保;
2.3若系统后台注册信息与实际信息不一致,如绑定手机号码需要更改,请自行登录系统后台操作,我司不提供任何注册信息主动变更服务,因注册信息与实际不一致而造成的损失,由您自行承担。
</pre>
</div>
</template>
<script>
import {getNeedKnowByKey} from '@/api/system/needKnow'
export default {
data(){
return {
detail: ''
}
},
created(){
getNeedKnowByKey('control').then(res => {
this.detail = res.data
})
}
}
</script>
\ No newline at end of file
<!--拆单审核中的申请信息部分-->
<template>
<div>拆单审核详情</div>
</template>
<script>
export default {
props:{
id: [String, Number]
},
data(){
return {
}
},
created(){
}
}
</script>
\ No newline at end of file
<template>
<el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false">
<el-dialog :title="title" visible :before-close="closeDialog" :close-on-click-modal="false" width="800px">
<div class="" v-if="agreement">
<el-form ref="form" :model="form" :rules="rules" label-position="left" label-width="120px">
<el-form-item label="原控货人">
......@@ -13,11 +13,8 @@
<el-input v-model="form.name"></el-input>
</el-form-item>
<el-form-item label="新控货手机号" prop="phone">
<el-input v-model="form.phone" type="tel">
<el-select slot="prepend" v-model="form.dialCode" placeholder="" style="width:200px">
<el-option v-for="item in countryList" :key="item.id" :label="item.nameZh + item.tel" :value="item.tel.replace('+', '')"></el-option>
</el-select>
</el-input>
<area-code-selector v-model="form.dialCodeSrc" />
<el-input v-model="form.phone" type="tel" class="ml-10 w-200" />
</el-form-item>
<el-form-item label="新控货人邮箱" prop="email">
<el-input v-model="form.email" type="email"></el-input>
......@@ -33,7 +30,7 @@
</el-form>
</div>
<div v-else>
<transfer-agreement />
<need-know ref="needKnow" keyname="controltransfer" />
<div style="margin-top:30px">
<el-button type="primary" @click="agreement=true">我同意</el-button>
<el-button @click="closeDialog">关闭</el-button>
......@@ -42,10 +39,11 @@
</el-dialog>
</template>
<script>
import TransferAgreement from "./TransferAgreement"
import {getCountryListAll} from '@/api/ecw/country'
import SendSmsCode from './SendSmsCode'
import {create} from '@/api/ecw/orderCargoControl'
import NeedKnow from '@/components/NeedKnow'
import AreaCodeSelector from '@/components/AreaCodeSelector'
export default {
props:{
orderId: [String, Number],
......@@ -53,12 +51,15 @@ export default {
cargoControlPhone: String,
orderNo: String
},
components: {TransferAgreement, SendSmsCode},
components: {SendSmsCode, NeedKnow, AreaCodeSelector},
data(){
return {
show: false,
// detail: null,
form:{},
form:{
dialCodeSrc: null,
dialCode: null
},
agreement: false, // 是否同意协议
countryList: [],
rules:{
......@@ -75,17 +76,20 @@ export default {
}
},
watch:{
countryList(){
'form.dialCodeSrc'(){
this.form.dialCode = this.form.dialCodeSrc.replace('+', '')
}
/* countryList(){
if(this.countryList.length){
this.$set(this.form, 'dialCode', this.countryList[0].tel.replace('+', ''))
}
}
} */
},
created(){
this.show = true
getCountryListAll().then(res => {
/* getCountryListAll().then(res => {
this.countryList = res.data
})
}) */
},
methods:{
closeDialog(){
......
<template>
<pre>
控货权转移须知
《控货权转移须知》
为了切实加强施工现场安全生产管理,依照《中华人民共和国安全生产法》、《中华人民共和国建筑法》、《中华人民共和国合同法》以及《建设工程安全生产管理条例》建设部《施工现场临时用电安全技术规范》(JGJ46-88)、《建筑施工安全检查标准》(JGJ59-99),双方本着平等、自愿的原则,签订本协议书。甲方和乙方均严格遵守本协议书规定的权力、责任和义务,确保施工现场的安全生产和施工现场临时用电的安全。
一、甲方的权利、责任和义务:
1、贯彻落实国家有关施工现场安全生产、文明施工的法规和管理规定,对乙方施工现场和区域进行全面的安全生产管理和监督检查并对施工现场临时用电进行安全检查与指导。
2、及时纠正乙方施工人员违章指挥和违章作业行为,并按照有关规定予以查处。对乙方施工区域内的重大安全事故隐患,应开具隐患通知单。
3、要求乙方提供施工现场《生产安全事故应急救援预案》。
4、建立健全施工现场各项安全生产管理制度。
5、对乙方的安全生产培训、劳动保护用品的使用和危险预知工作提出指导意见,并监督落实情况。
6、对乙方提出的安全生产要求积极提供帮助。
7、向乙方提供电源时,应与乙方办理交接验收手续。
8、按照有关临时用电标准对乙方的临时用电设备设施进行监督和检查。发现乙方在临时用电中存在隐患必须责成乙方以整改。并监督整改落实情况。
9、对乙方特种作业人员的名单、操作证复印件及培训记录进行存档备案。
二、乙方的权利、责任和义务:
1、遵守国家有关施工现场安全生产的法规和管理制度,建立健全安全生产责任制和安全生产管理制度。严格执行国家施工现场临时用电及机械设备使用有关技术规范和安全操作规程,对施工区域内自行管辖的临时用电负全面管理责任。
2、服从甲方安全生产管理。
3、乙方必须为施工作业人员参加人身意外保险。
4、乙方造成生产安全事故,导致人员伤亡时,由乙方承担事故责任和经济责任。
5、未经安全生产教育培训和无证人员,不得上岗作业。
三、协议内容:
(一)登高上架要求
1、施工采用的脚手架、安全网必须由专业人员搭设,由项目经理(工地负责人)组织技术部、安全部门的有关人员验收合格后,方可投入使用,应按类别逐项查验,并应有验收记录。
2、高空作业时,严禁立体交叉作业。水平作业时,各工位间必须有一定的距离,作业人员必须配备相应劳动保护用品如安全帽、安全带、防护眼镜、防护手套、防护工作服等,并应正确使用,施工作业现场周边设置相关安全标志牌,并设专人巡查。
3、进入施工现场的人员必须佩带安全帽。凡在2m以上高处作业人员,必须正确使用安全带,安全带应高挂低用。
4、工程施工前,除工程技术人员对施工作业人员进行书面安全技术交底,并履行签字手续外,必须各施工班组长向施工人员进行班组交底及履行签字手续。
5、特殊工程施工项目如;电气、易燃、易爆容器、管道等,必须持有效证件及上岗证的专业人员操作。
6、拆除施工现场,必须设有临时急救人员及药品或设立临时救助站。
7、严禁在工作前和工作中饮酒,不许穿高跟鞋、硬底鞋、拖鞋,应穿防滑鞋。
8、进入施工现场须服从领导和安检人员的指挥,遵守劳动纪律、严守岗位、不串岗,作业时思想要集中。
9、严禁随意拆除或损坏防护栏杆、拉杆、安全网、跳板、脚手板、支撑等防护设施。
10、面砖搬运、安装时应注意安全,防止因面砖翻倒而受伤。
11、各种材料加工时注意操作安全及施工用电,不得随便乱接乱拉电线。
12、施工现场各周边洞口,必须有符合安全规范要求的安全防护,若因施工作业场地要求而拆除的,操作完成后,立即恢复。
13、脚手架上禁止有探头板、飞跳板,脚手架上应满铺脚手板,脚手架上禁止堆放砂浆、砖块、面砖等物料。
14、不准从正在起吊、运吊中的物件下通过,以防突然事件,不准从高处往下跑、跳;不准在没有防护的外墙和外悬挑板等建筑物上行走;不准站在小推车等不稳定的物件上操作;不得攀登起重臂、绳索、脚手架、井字架和随同运料的吊盘和吊篮及吊装物上下;井架吊篮禁止乘人。
15、作业中不得往下投掷物件、碎砖、灰渣等,清理物料时应设溜槽或使用垃圾桶;手持工具和零星物料应随时放在工具袋中。
16、年龄未满18周岁者,患有心脏病、贫血、高血压、低血压、癫痫病及其他不适于高空作业的病症者严禁从事外墙施工作业。
17、遇到雷雨、大风等天气外墙施工应暂停作业。
18、手持电动工具使用前应进行检查,空载试验运转正常合格后方可使用,转移工作点应切断电源,潮湿场所严禁使用手持式电动工具。
19、作业前必须认真检
</pre>
</template>
\ No newline at end of file
......@@ -72,7 +72,6 @@
</el-dialog>
</template>
<script>
import ReleaseAgreement from "./ReleaseAgreement"
import {createPick, getRleaseInfo} from '@/api/ecw/orderCargoControl'
import AreaCodeSelector from '@/components/AreaCodeSelector'
import SendSmsCode from '@/views/ecw/order/components/SendSmsCode'
......@@ -80,7 +79,7 @@ export default {
props:{
orderId: [String, Number]
},
components: {ReleaseAgreement, AreaCodeSelector, SendSmsCode},
components: {AreaCodeSelector, SendSmsCode},
data(){
return {
show: false,
......
......@@ -97,7 +97,7 @@
<div slot="header" class="card-title">
<div class="card-name">商品信息</div>
<el-button type="primary" size="mini" @click="addProduct(null)">添加货物</el-button>
<el-button type="primary" size="mini" @click="showBatchImportDialog=true">批量添加货物</el-button>
<!-- <el-button type="primary" size="mini" @click="showBatchImportDialog=true">批量添加货物</el-button> -->
</div>
<el-table :data="productList" border>
<el-table-column label="序号" width="60px" fixed>
......
......@@ -178,6 +178,7 @@
<el-button type="text" size="mini" @click="$router.push(`/order/release?orderId=${scope.row.orderId}`)">确认放货</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/singleApply?orderNo=${scope.row.orderNo}`)">合单申请</el-button>
<el-button type="text" size="mini" @click="$router.push(`/order/splitApply?orderId=${scope.row.orderId}`)">拆单申请</el-button>
</div>
</el-popover>
......
......@@ -55,7 +55,7 @@
<el-card class="card">
<!-- 列表 -->
<div slot="header" class="card-title">已合单订单</div>
<el-table v-loading="loading" border :data="list.mergedList" style="width: 200px;">
<el-table v-loading="loading" border :data="mergedList" style="width: 200px;">
<el-table-column label="序号" align="center" prop="id" type="index">
<template slot-scope="scope">
<span>{{scope.$index + 1}}</span>
......@@ -113,7 +113,7 @@
</el-table-column>
<el-table-column label="始发地" align="center">
<template slot-scope="scope">
<span>{{importCityName(scope.row.scope.row.orderDepartureVO.departureId)}}</span>
<span>{{importCityName(scope.row.orderDepartureVO.departure.titleZh)}}</span>
</template>
</el-table-column>
<el-table-column label="入仓货物属性" align="center">
......@@ -129,7 +129,6 @@
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<!-- <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" /> -->
{{scope.row.status==99?'异常':'正常'}}
</template>
</el-table-column>
......@@ -145,9 +144,23 @@
<el-button v-if="orderData.status!=16" type="primary" @click="submitForm">提交申请</el-button>
<el-button v-if="orderData.status!=16" plain type="primary" @click="$router.back()">取消</el-button>
<el-button v-if="orderData.status==16" type="primary" disabled>审核中</el-button>
<el-button v-if="orderData.status==16" plain type="primary" @click="cancelMerge">取消审核</el-button>
<el-button v-if="orderData.status==16" plain type="primary" @click="dialogVisible = true">取消审核</el-button>
<el-button v-if="orderData.status==16" plain type="primary" @click="$router.back()">返回</el-button>
</div>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%">
<span class="cancel_notice">合单申请正在审核中,你确定取消合单申请吗?</span>
<div class="cancel_content">
<span>取消原因:</span>
<el-input v-model="reason" placeholder="请输入取消原因"></el-input>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="cancelMerge">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
......@@ -170,17 +183,20 @@ export default {
orderData:{},
// 订单异常列表
list: [],
mergedList:[],
singleData:[],
tradeCityList:[],
loading:false,
queryParams:{
mergedOrderNo:'UG2200012S',
mergedOrderNo:'UG2200033D',
page:1,
rosw:10
},
selectedUsers:[],
total:0,
orderNos:''
orderNos:'',
reason:'',
dialogVisible:false
};
},
created() {
......@@ -188,7 +204,6 @@ export default {
this.queryParams.mergedOrderNo = this.$route.query.orderNo
}
this.getList()
getTradeCityList().then(res => this.tradeCityList = res.data)
},
methods: {
......@@ -197,11 +212,17 @@ export default {
this.loading = true;
// 执行查询
getMergeListByOrderNo(this.queryParams).then(response => {
this.list = response.data;
this.total = response.data.unMergeList.total;
this.orderData = response.data.orderInfo
this.loading = false;
if(response.data.mergedList){
this.mergedList = response.data;
}
if(response.data.unMergeList){
this.total = response.data.unMergeList.total;
this.singleData = response.data.unMergeList.list;
}
if(response.data.orderInfo){
this.orderData = response.data.orderInfo
}
});
},
handleSelectionChange(val) {
......@@ -222,18 +243,21 @@ export default {
},
cancelMerge(){
let that = this
if(!that.orderNos){
that.$message.error("请选择取消合单的订单");
// if(!that.orderNos){
// that.$message.error("请选择取消合单的订单");
// return
// }
if(!that.reason){
that.$message.error("请输入取消原因");
return
}
var params = {
id:that.orderData.orderId,
copyUserId:that.selectedUsers,
orderNos:that.orderNos,
reason:that.reason
}
cancelMerge(params).then(res=>{
that.$message.success("取消成功");
that.getList()
that.$router.back()
})
},
submitForm(){
......@@ -250,7 +274,7 @@ export default {
}
createMerge(params).then(res=>{
that.$message.success("修改成功");
that.getList()
that.$router.back()
})
}
}
......@@ -268,4 +292,16 @@ export default {
.footer_btn{
padding-bottom: 60px;
}
.cancel_notice{
font-size: 16px;
font-weight: 600;
}
.cancel_content{
display: flex;
align-items: center;
padding-top: 20px;
}
.cancel_content span{
width: 100px;
}
</style>
......@@ -44,7 +44,7 @@
{{orderData.consignorVO?orderData.consignorVO.company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="发货电话">
{{orderData.consignorVO?(orderData.consignorVO.phone?(orderData.consignorVO.countryCode+orderData.consignorVO.phone):''):''}}
{{!orderData.consignorVO?"":!orderData.consignorVO.phone?'':(orderData.consignorVO.countryCode+orderData.consignorVO.phone)}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="4">
......@@ -55,7 +55,7 @@
{{orderData.consigneeVO?orderData.consigneeVO.company||'':''}}
</el-descriptions-item>
<el-descriptions-item label="收货电话">
{{orderData.consigneeVO?(orderData.consigneeVO.phone?(orderData.consigneeVo.countryCode+orderData.consigneeVO.phone):''):''}}
{{!orderData.consigneeVO?"":!orderData.consigneeVO.phone?'':(orderData.consigneeVO.countryCode+orderData.consigneeVO.phone)}}
</el-descriptions-item>
</el-descriptions>
......@@ -102,9 +102,9 @@
<span>品牌:
<dict-tag :type="DICT_TYPE.ECW_IS_BRAND" :value="scope.row.brandType" />
</span>
<span style="margin-left: 10px;">箱数:{{scope.row.warehouseInInfoVO.cartonsNum}}</span>
<span style="margin-left: 10px;">体积:{{scope.row.warehouseInInfoVO.volume}}</span>
<span style="margin-left: 10px;">重量:{{scope.row.warehouseInInfoVO.weight}}kg</span>
<span style="margin-left: 10px;">箱数:{{!scope.row.warehouseInInfoVO?0:scope.row.warehouseInInfoVO.cartonsNum}}</span>
<span style="margin-left: 10px;">体积:{{!scope.row.warehouseInInfoVO?0:scope.row.warehouseInInfoVO.volume}}</span>
<span style="margin-left: 10px;">重量:{{!scope.row.warehouseInInfoVO?0:scope.row.warehouseInInfoVO.weight}}kg</span>
</el-row>
</template>
</el-table-column>
......@@ -115,7 +115,8 @@
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" />
{{orderData.status==99?'异常':'正常'}}
<!-- <dict-tag :type="DICT_TYPE.ORDER_STATUS" :value="scope.row.status" /> -->
</template>
</el-table-column>
</el-table>
......@@ -182,7 +183,7 @@
<el-button v-if="orderData.status!=19" type="primary" @click="submitForm">提交申请</el-button>
<el-button v-if="orderData.status!=19" plain type="primary" @click="$router.back()">取消</el-button>
<el-button v-if="orderData.status==19" type="primary" disabled>审核中</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="cancelSplit">取消审核</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="dialogVisible = true">取消审核</el-button>
<el-button v-if="orderData.status==19" plain type="primary" @click="$router.back()">返回</el-button>
</div>
<!-- 对话框(添加 / 修改) -->
......@@ -244,13 +245,28 @@
<el-button @click="shopCancel">取 消</el-button>
</div>
</el-dialog>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%">
<span class="cancel_notice">拆单申请正在审核中,你确定取消拆单申请吗?</span>
<div class="cancel_content">
<span>取消原因:</span>
<el-input v-model="reason" placeholder="请输入取消原因"></el-input>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="cancelSplit">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {getDictData, getDictDatas,DICT_TYPE} from '@/utils/dict'
import {getSplitList,splitApply,createSplit,cancelApply,createSplitItem,deleteSplitItem,deleteSplit} from "@/api/ecw/orderHandle"
import {getTradeCityList} from '@/api/ecw/region'
import {getWarehouseList} from '@/api/ecw/warehouse'
import {getChannelList} from '@/api/ecw/channel'
import WorkFlow from '@/components/WorkFlow'
import {getOrder} from '@/api/ecw/order'
......@@ -264,6 +280,8 @@ export default {
data() {
return {
checked:false,
reason:'',
dialogVisible:false,
orderData:{},
splitData:[],
splitIndex:0,
......@@ -291,7 +309,7 @@ export default {
prodTitleEn: [{ required: true, message: "请选择英文品名", trigger: "change" }],
},
queryParams:{
orderId:96,
orderId:7,
lang:0
},
query:{
......@@ -303,15 +321,12 @@ export default {
},
created() {
this.getChannel()
getTradeCityList().then(res => this.tradeCityList = res.data)
getWarehouseList().then(res => this.tradeCityList = res.data)
if (this.$route.query.orderId) {
this.queryParams.orderId = op.orderId
this.getList()
this.getOrder()
}else{
this.queryParams.orderId = this.$route.query.orderId
}
this.getList()
this.getOrder()
}
},
watch: {
//监听table这个对象
......@@ -349,7 +364,7 @@ export default {
getOrder(){
this.loading = true;
getOrder(this.queryParams.orderId).then(response => {
this.orderData = response.data;
this.orderData = response.data
this.query.destWarehouseId = response.data.logisticsInfoDto.startWarehouseId
this.loading = false
......@@ -397,9 +412,9 @@ export default {
orderSum += column.num
orderV += column.volume
orderW += column.weight
leviteSum += column.warehouseInInfoVO.cartonsNum
leviteV += column.warehouseInInfoVO.volume
leviteW += column.warehouseInInfoVO.weight
leviteSum += column.warehouseInInfoVO?column.warehouseInInfoVO.cartonsNum:0
leviteV += column.warehouseInInfoVO?column.warehouseInInfoVO.volume:0
leviteW += column.warehouseInInfoVO?column.warehouseInInfoVO.weight:0
});
sums[1] = '下单统计:'+ orderSum+''+ orderV +'' + orderW + ' kg ' + ' 入仓统计:'+ leviteSum+''+ leviteV +'' + leviteW + ' kg'
......@@ -411,13 +426,21 @@ export default {
return arr.length>0?arr[0].titleZh:''
},
submitForm(){
if(this.splitData.length==0){
this.$modal.msgError("请先新建拆单")
return
}
// if(this.selectedUsers.length==0){
// this.$modal.msgError("请选择抄送人")
// return
// }
var params = {
orderId:this.queryParams.orderId,
copyUserId:this.selectedUsers
}
splitApply(params).then(res=>{
this.$modal.msgSuccess("申请成功");
that.getList()
this.$router.back()
})
},
addShop(index){
......@@ -455,7 +478,8 @@ export default {
dstWarehouseId: that.form.destWarehouseId,
parentOrderId: that.orderData.orderId,
parentOrderNo: that.orderData.orderNo,
transportId: that.form.transportId
transportId: that.form.transportId,
channelId:that.form.channelId
}
createSplit(params).then(res=>{
that.getList()
......@@ -479,7 +503,7 @@ export default {
remarks:this.shopForm.remarks
}
createSplitItem(params).then(res=>{
that.$message.success("放入成功");
this.$message.success("放入成功");
this.getList()
this.shopForm = {}
})
......@@ -496,13 +520,14 @@ export default {
},
cancelSplit(){
let that = this
that.$confirm('是否取消审核吗?').then(function () {
cancelApply({orderId:that.queryParams.orderId}).then(res=>{
if(!that.reason){
that.$message.error("请输入取消原因");
return
}
cancelApply({orderId:that.queryParams.orderId,reason:that.reason}).then(res=>{
that.$message.success("取消成功");
that.getList()
that.$router.back()
})
})
},
shopCancel(){
this.shopOpen = false
......@@ -547,4 +572,16 @@ export default {
.footer_btn{
padding-bottom: 60px;
}
.cancel_notice{
font-size: 16px;
font-weight: 600;
}
.cancel_content{
display: flex;
align-items: center;
padding-top: 20px;
}
.cancel_content span{
width: 100px;
}
</style>
......@@ -28,9 +28,10 @@
</div>
<el-dialog title="查看须知" :visible.sync="showNotice" width="700px">
<img :src="noticeUrl" id="noticeImg" />
<!-- <img :src="noticeUrl" id="noticeImg" /> -->
<need-know keyname="control" ref="needKnow" />
<div style="text-align:center">
<el-button type="primary" @click="download">下载</el-button>
<el-button type="primary" @click="$refs.needKnow.download()">下载</el-button>
</div>
</el-dialog>
</div>
......@@ -39,12 +40,15 @@
import {getOrder} from '@/api/ecw/order'
import FileSaver from 'file-saver'
import {dataURLtoBlob} from '@/utils/index'
import NeedKnow from '@/components/NeedKnow'
export default {
components: {NeedKnow},
data(){
return {
order: null,
showNotice: false,
noticeUrl: 'http://v4.groupage.cn/Public/images/notice.png'
// noticeUrl: 'http://v4.groupage.cn/Public/images/notice.png'
}
},
created(){
......@@ -57,7 +61,7 @@ export default {
this.order = res.data
})
},
download(){
/* download(){
let el = document.getElementById('noticeImg')
this.downloadIamge(this.noticeUrl, 'ce')
},
......@@ -80,7 +84,7 @@ export default {
}
image.src = imgsrc
}
} */
}
}
</script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment