Commit ac54e1b0 authored by 邓春圆's avatar 邓春圆

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

parents c3eb7ad5 44219b43
......@@ -304,7 +304,6 @@ export function downloadCustomFiles(params) {
export function downloadLoadGoodsList(params) {
return request({
url: "/ecw/box-preload-goods/downloadLoadGoodsList",
responseType: "blob",
timeout: 3*60*1000,
method: "get",
params,
......
......@@ -155,7 +155,7 @@
<regError v-if="dialogCfg.open" @closeDialog="closeDialog" :shipmentObj="currRow" :allUsers="allUsers" />
</template>
<template v-if="dialogCfg.dialogType === 'editLadingBill'">
<ladingBill v-if="dialogCfg.open" @closeDialog="closeDialog" :shipmentObj="currRow" :getCabinetName="getCabinetName" />
<ladingBill v-if="dialogCfg.open" @closeDialog="closeDialog" :shipmentObj="currRow" :getCabinetName="getCabinetName" type="air" />
</template>
<template v-if="dialogCfg.dialogType === 'notice'">
<div class="notice-dialog">
......
......@@ -3,7 +3,7 @@
<el-row class="oper-button">
<el-button type="primary" @click="clickZipDownload">{{$t('打包下载')}}</el-button>
<el-button type="primary" @click="handleCommand('downloadReceivableList')">{{$t('应收汇总表')}}</el-button>
<el-button type="primary" @click="handleCommand('downloadLoadGoodsList')">{{$t('下载已装单')}}</el-button>
<el-button v-if="type=='sea'" type="primary" @click="handleCommand('downloadLoadGoodsList')">{{$t('下载已装单')}}</el-button>
</el-row>
<el-row style="margin-top:15px">
......@@ -104,7 +104,7 @@ import {
getMakeBillList,
makeBillService,
getBillService,
deleteBillService,
deleteBillService, zipDownload, downloadReceivableList,
} from "@/api/ecw/box";
import {
getTotlContent,
......@@ -120,6 +120,10 @@ export default {
props: {
shipmentObj: Object,
getCabinetName: Function,
type: {
type: String,
default: 'sea'
}
},
data() {
return {
......@@ -214,12 +218,9 @@ export default {
);
return;
case "downloadReceivableList":
downloadFile(
type,
{ shipmentId: this.shipmentObj.id },
this.$t("应收汇总表") + `(${this.shipmentObj.selfNo}).xlsx`,
"xlsx"
);
downloadReceivableList({ shipmentId: this.shipmentObj.id }).then(res => {
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
})
return;
}
this.currRow = row;
......@@ -252,12 +253,9 @@ export default {
});
},
clickZipDownload() {
downloadFile(
"zipDownload",
{ shipmentId: this.shipmentObj.id },
this.shipmentObj.selfNo + ".zip",
"zip"
);
zipDownload({ shipmentId: this.shipmentObj.id }).then(res => {
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
})
},
},
computed: {
......
......@@ -54,6 +54,9 @@
</el-col>
</el-row>
</el-form-item>
<el-form-item :label="$t('图片')" prop="picture">
<upload v-model="form.picture" :limit="1"></upload>
</el-form-item>
<el-form-item :label="$t('询盘信息')" >
<el-input
v-model="form.inquiry"
......@@ -78,7 +81,7 @@ import {listServiceUser} from "@/api/system/user";
import {getProductTypeList} from "@/api/ecw/productType";
import {getProductList} from "@/api/ecw/product";
import {createPotential} from "@/api/ecw/customer";
import upload from '@/components/ImageUpload'
export default {
name: "addPotentialCustom",
methods: {
......@@ -100,6 +103,7 @@ export default {
inquiry:undefined,
productType:undefined,
productId:undefined,
picture:undefined
}
},
submit(){
......@@ -122,7 +126,7 @@ export default {
},
},
components: {AreaCodeSelector},
components: {AreaCodeSelector,upload},
created() {
this.reset()
listServiceUser().then(r => {
......
......@@ -92,11 +92,11 @@
<el-button v-hasPermi="['ecw:customer:fcl']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(true)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading">{{$t('设置海运整柜客户')}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-hasPermi="['ecw:customer:create-potential']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(false)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading"
<el-button v-hasPermi="['ecw:customer:fcl-mistake']" :disabled="!selectCustomerList.length" @click="setFullContainerLoad(false)" v-if="$route.path === '/customer/customer'" type="primary" plain size="mini" :loading="exportLoading"
>{{$t('设置海运非整柜客户')}}</el-button>
</el-col>
<el-col :span="1.5">
<el-button v-has-permi="['ecw:customer:fcl-mistake']" v-if="path === '/customer/customer'" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddPotential">{{$t('新增潜在客户')}}</el-button>
<el-button v-has-permi="['ecw:customer:create-potential']" v-if="path === '/customer/customer'" type="primary" plain icon="el-icon-plus" size="mini" @click="handleAddPotential">{{$t('新增潜在客户')}}</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
......
......@@ -47,9 +47,9 @@
<el-descriptions-item :label="$t('主营类别')">{{ $l(customer,'productTypeName') }}</el-descriptions-item>
<el-descriptions-item :label="$t('常提货网点')">{{ $l(customer,'pickupPointName') }}</el-descriptions-item>
<el-descriptions-item :label="$t('图片')">
<el-image v-if="customer.picture" :src="customer.picture" style="width: 100px;height: 100px">
<span slot="error">加载失败</span>
</el-image>
<image-display :picture-urls="customer.picture ? customer.picture.split(',') : []" >
<el-button type="text" > 查看图片</el-button>
</image-display>
</el-descriptions-item>
<el-descriptions-item :label="$t('备注')">{{ customer.remarks }}</el-descriptions-item>
<el-descriptions-item :label="$t('业绩类型')">{{ customer.isNew ?$t('新客户') : $t('老客户') }}</el-descriptions-item>
......@@ -513,10 +513,12 @@ import {getCountry} from "@/api/ecw/country"
import {getCurrencyList} from "@/api/ecw/currency";
import customerLog from "@/views/ecw/customer/customerLog.vue";
import {checkPermi} from "@/utils/permission";
import ImageDisplay from "@/views/ecw/order/components/imageDisplay.vue";
export default {
name: 'query',
components: {
ImageDisplay,
Template,
CustomerFollow,
CustomerComplaint,
......
......@@ -72,6 +72,27 @@
<el-table-column :label="$t('备注')">
<template slot-scope="{row}">{{row.remark}}</template>
</el-table-column>
<el-table-column :label="$t('成交单价')" align="center" min-width="220px" v-if="[3,4].indexOf(order.transportId) > -1">
<template slot-scope="scope">
<template v-if="scope.row.charging != 1">
<div class="flex">
{{$t('运费')}}
<el-input v-model="scope.row.oneSeaFreight" disabled size="mini" style="width: 80px"></el-input>
{{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}
</div>
<div class="flex">
{{$t('清关费')}}
<el-input v-model="scope.row.oneClearanceFreight" disabled size="mini" style="width: 80px"></el-input>
{{currencyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}
</div>
</template>
<template v-else>
{{$t('全包价')}}<el-input v-model="scope.row.oneSeaFreight" @change="updateField(scope.row, 'oneSeaFreight')" size="mini" style="width: 80px"></el-input>
{{currencyMap[scope.row.currencyId]}}
{{unitMap[scope.row.clearanceFreightVolume]}}
</template>
</template>
</el-table-column>
</el-table>
</template>
<warehouse-record v-if="currentWarehouseRecord" :list="currentWarehouseRecord" append-to-body @close="currentWarehouseRecord=null"></warehouse-record>
......@@ -82,8 +103,11 @@ import {getApproval, getOrder} from '@/api/ecw/order'
import {getChannel} from '@/api/ecw/channel'
import {getSplitList} from '@/api/ecw/orderHandle'
import WarehouseRecord from "@/views/ecw/order/splitApply/components/WarehouseRecord";
import Template from "@/views/cms/template/index.vue";
import {getCurrencyList} from "@/api/ecw/currency";
import {getUnitList} from "@/api/ecw/unit";
export default {
components: {WarehouseRecord},
components: {Template, WarehouseRecord},
props:{
id: [String, Number]
},
......@@ -94,7 +118,9 @@ export default {
channel: null,
// orderSplitBackVOList: [],
// 查看入仓记录的条目
currentWarehouseRecord: null
currentWarehouseRecord: null,
currencyList:[],
unitList: []
}
},
watch:{
......@@ -114,9 +140,23 @@ export default {
computed:{
orderSplitBackVOList(){
return this.detail ? this.detail.orderSplitBackVOList : []
},
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
}
},
created(){
async created(){
if(this.id){
this.getData()
}
......@@ -136,6 +176,10 @@ export default {
getOrder(){
getOrder(this.detail.orderId).then(res => {
this.order = res.data
if([3, 4].indexOf(this.order.transportId) > -1){
getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data)
}
})
},
getChannel(){
......
......@@ -6,7 +6,7 @@
<el-dialog
append-to-body
title="提示"
:title="$t('图片')"
:visible.sync="visible"
width="80%">
<div style="display: flex;flex-wrap: wrap;">
......@@ -14,6 +14,7 @@
<video controls width="148px" height="148px" slot="error" :src="bizId ? item.url : item" ></video>
</el-image>
</div>
<el-empty v-if="!list.length" description="暂无图片"></el-empty>
</el-dialog>
</div>
</template>
......
......@@ -627,7 +627,6 @@ export default {
getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data)
},
methods: {
checkPermi, // 检查权限
......
......@@ -12,35 +12,35 @@
</div></el-form-item>
<el-form-item :label="$t('发货人')+':'"><div class="content">{{orderDetails.consignorVO ? orderDetails.consignorVO.name :''}}</div></el-form-item>
<el-form-item :label="$t('唛头')"><div class="content">{{orderDetails.marks}}</div></el-form-item>
<el-form-item> <el-button :disabled="!!processInstanceId" @click="addCost">{{$t('添加申请')}}</el-button></el-form-item>
<el-form-item> <el-button :disabled="!!processInstanceId || editMode" @click="addCost">{{$t('添加申请')}}</el-button></el-form-item>
</el-form>
<el-table :data="list">
<el-table-column :label="$t('序号')" type="index"></el-table-column>
<el-table-column :label="$t('费用类型')">
<template v-slot:default = "scope">
<dict-selector :disabled="!!scope.row.status" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
<dict-selector :disabled="!scope.row.editMode && !!scope.row.status" :type="DICT_TYPE.FEE_TYPE" v-model="scope.row.feeType" />
</template>
</el-table-column>
<el-table-column :label="$t('金额')">
<template v-slot:default = 'scope'>
<el-input :disabled="!!scope.row.status" v-model.number="scope.row.applicationFee" ></el-input>
<el-input :disabled="!scope.row.editMode && !!scope.row.status" v-model.number="scope.row.applicationFee" ></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('货币类型')">
<template v-slot:default = 'scope'>
<el-select :disabled="!!scope.row.status" v-model="scope.row.applicationFeeCurrency">
<el-select :disabled="!scope.row.editMode && !!scope.row.status" v-model="scope.row.applicationFeeCurrency">
<el-option v-for="item in JSON.parse(currencys)" :key="item.id" :label="item.titleZh" :value="item.id" />
</el-select>
</template>
</el-table-column>
<el-table-column :label="$t('付款类型')">
<template v-slot = {row}>
<dict-selector :disabled="row.status" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
<dict-selector :disabled="!row.editMode && !!row.status" :type="DICT_TYPE.PAYMENT_TYPE" v-model="row.payType" />
</template>
</el-table-column>
<el-table-column :label="$t('备注')">
<template v-slot:default="scope">
<el-input :disabled="!!scope.row.status" v-model="scope.row.remarks" type="textarea"></el-input>
<el-input :disabled="!scope.row.editMode && !!scope.row.status" v-model="scope.row.remarks" type="textarea"></el-input>
</template>
</el-table-column>
<el-table-column :label="$t('确认收款')">
......@@ -55,9 +55,9 @@
</el-table-column>
<el-table-column :label="$t('操作')">
<template v-slot:default = 'scope'>
<el-button type="text" v-if="scope.row.status !== 0&&scope.row.status !== 1">{{STATUS[scope.row.status]}}</el-button>
<!--el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button>
<el-button type="text" v-if="scope.row.status === 2" @click="modify(scope.row)">{{$t('修改')}}</el-button>-->
<el-tag v-if="scope.row.status !== 0 && !scope.row.editMode">{{STATUS[scope.row.status]}}</el-tag>
<!--el-button type="text" v-if="scope.row.status == 1" @click="examineFn">{{$t('审核中')}}</el-button-->
<el-button type="text" v-if="modifable(scope.$index)" @click="modify(scope.row)">{{$t('修改')}}</el-button>
<el-button type="text" v-if="scope.row.status === 0" @click="del(scope.$index)">删除</el-button>
</template>
</el-table-column>
......@@ -66,7 +66,7 @@
<work-flow xmlkey="free_apply" v-model="selectedUsers" />
</div>
<div style="text-align: center;margin-top: 20px;">
<el-button type="primary" v-if="!processInstanceId" style="margin-right: 30px;" :disabled="!feeList.length" @click="submit">{{$t('提交')}}</el-button>
<el-button type="primary" v-if="!processInstanceId" style="margin-right: 30px;" :disabled="!feeList.length && !editMode" @click="submit">{{$t('提交')}}</el-button>
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="goProcessDetail">{{$t('审核中')}}</el-button>
<el-button type="primary" v-if="processInstanceId" style="margin-right: 30px;" @click="cancel">{{$t('取消审核')}}</el-button>
<el-button @click="$emit('update:dialogVisible',false)">{{$t('返回')}}</el-button>
......@@ -112,14 +112,31 @@ export default {
DICT_TYPE,
getDictDatas,
STATUS:{},
isModify:[],
isModifyIf:false,
selectedUsers:[]
}
},
computed:{
feeList(){
return this.list.filter(item => item.status === 0)
},
// 正在编辑的费用申请
currentItem(){
return this.list.find(item => item.editMode)
},
// 是否修改模式
editMode(){
return !!this.currentItem
},
modifable(){
return (index) => {
// 审核中不允许修改
if(this.processInstanceId) return false
// 有未提交的不允许修改
if(this.feeList.length) return false
// 有修改中的不允许修改
if(this.list.findIndex(item => item.editMode) > -1) return false
return true
}
}
},
created() {
......@@ -152,6 +169,10 @@ export default {
this.list.splice(index, 1)
})
},
// 修改
modify(item){
this.$set(item, 'editMode', true)
},
addCost(){
this.list.push({
orderId:this.orderId,
......@@ -172,6 +193,15 @@ export default {
if(errList.length){
return this.$message.error('请填写完整费用申请信息')
}
if(this.editMode){
// 要提交status=1,否则保持原状态
const data = {...this.currentItem,status:1, copyUserId:this.selectedUsers}
return applicationUpdate(data).then(r => {
this.$message.success(this.$t('修改成功'));
this.$emit('update:dialogVisible',false)
})
}
feeApplicationCreateBatch( {
orderFeeApplicationCreateReqVOList: this.feeList,
copyUserId:this.selectedUsers,
......@@ -208,7 +238,6 @@ export default {
watch:{
dialogVisible(val){
if(val){
this.isModify = []
this.getOrderList()
getOrder(this.orderId).then(r =>{
if(r.code === 0){
......
......@@ -165,12 +165,12 @@
</template>
</el-table-column>
<el-table-column :label="$t('入仓体积')" align="center" >
<el-table-column :label="$t('入仓体积')" align="center" width="100px" >
<template slot-scope="scope">
{{scope.row.volume}}
</template>
</el-table-column>
<el-table-column :label="$t('收费体积')" align="center" >
<el-table-column :label="$t('收费体积')" align="center" width="100px">
<template slot-scope="scope">
{{scope.row.chargeVolume}}
<!--<el-input v-model="scope.row.chargeVolume" @change="updateField(scope.row, 'chargeVolume')" size="mini" disabled>
......@@ -178,12 +178,12 @@
</el-input>-->
</template>
</el-table-column>
<el-table-column :label="$t('入仓重量')" align="center">
<el-table-column :label="$t('入仓重量')" align="center" width="100px">
<template slot-scope="scope">
{{scope.row.weight}}kg
</template>
</el-table-column>
<el-table-column :label="$t('收费重量')" align="center">
<el-table-column :label="$t('收费重量')" align="center" width="100px">
<template slot-scope="scope">
{{scope.row.chargeWeight}}kg
<!--<el-input v-model="scope.row.chargeWeight" @change="updateField(scope.row, 'chargeWeight')" size="mini" disabled>
......@@ -191,7 +191,7 @@
</el-input>-->
</template>
</el-table-column>
<el-table-column :label="$t('货值')" align="center">
<el-table-column :label="$t('货值')" align="center" width="100px">
<template slot-scope="scope">
{{scope.row.worth}}{{ $t('') }}
<!--<el-input v-model="scope.row.worth" @change="updateField(scope.row, 'worth')" size="mini" disabled>
......@@ -199,14 +199,35 @@
</el-input>-->
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="num">
<el-table-column :label="$t('箱数')" align="center" prop="num" width="70">
<template slot-scope="scope">
<el-button type="text" @click="currentWarehouseRecord=scope.row.specsRecordVOList">
{{ scope.row.num }}
</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('数量(个)')" align="center" prop="quantity"></el-table-column>
<el-table-column :label="$t('数量(个)')" align="center" prop="quantity" width="80"></el-table-column>
<el-table-column :label="$t('成交单价')" align="center" min-width="220px" v-if="[3,4].indexOf(orderData.transportId) > -1">
<template slot-scope="scope">
<template v-if="scope.row.charging != 1">
<div class="flex">
{{$t('运费')}}
<el-input v-model="scope.row.oneSeaFreight" @change="updateField(scope.row, 'oneSeaFreight')" size="mini" style="width: 80px"></el-input>
{{currencyMap[scope.row.seaFreightCurrency]}} / {{unitMap[scope.row.seaFreightVolume]}}
</div>
<div class="flex">
{{$t('清关费')}}
<el-input v-model="scope.row.oneClearanceFreight" @change="updateField(scope.row, 'oneClearanceFreight')" size="mini" style="width: 80px"></el-input>
{{currencyMap[scope.row.clearanceFreightCurrency]}} / {{unitMap[scope.row.clearanceFreightVolume]}}
</div>
</template>
<template v-else>
{{$t('全包价')}}<el-input v-model="scope.row.oneSeaFreight" @change="updateField(scope.row, 'oneSeaFreight')" size="mini" style="width: 80px"></el-input>
{{currencyMap[scope.row.currencyId]}}
{{unitMap[scope.row.clearanceFreightVolume]}}
</template>
</template>
</el-table-column>
<el-table-column :label="$t('操作')" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-delete" @click="removeShop(scope.row.id)">{{$t('移出')}}</el-button>
......@@ -503,6 +524,8 @@ import WarehouseDetail from "@/views/ecw/order/components/WarehouseDetail";
import WarehouseRecord from "@/views/ecw/order/splitApply/components/WarehouseRecord";
import PutIn from "@/views/ecw/order/splitApply/components/PutIn.vue";
import Template from "@/views/cms/template/index.vue";
import {getCurrencyList} from "@/api/ecw/currency";
import {getUnitList} from "@/api/ecw/unit";
export default {
name: "SplitApply",
......@@ -568,7 +591,11 @@ export default {
// 当前正在放入的入仓记录
currentPutIn: null,
// 订单剩余数据,sumNum,splitNum,splitResidueNum,totalWorth,splitWorth,splitResidueWorth
orderLeftData: null
orderLeftData: null,
// 货币
currencyList: [],
// 体积单位
unitList: []
};
},
async created() {
......@@ -581,15 +608,22 @@ export default {
this.queryParams.orderId = this.$route.query.orderId
}
Promise.all([this.getList(), this.getOrder()]).then(res => {
console.log("拆单数据", this.splitData, this.splitData.length)
if(this.orderData.inWarehouseState != 207 && this.splitData.length){
this.reset()
}
// 空运需要获取货币和体积单位
if([3, 4].indexOf(this.orderData.transportId) > -1){
getCurrencyList().then(res => this.currencyList = res.data)
getUnitList().then(res => this.unitList = res.data)
}
})
// 获取入仓记录
getOrderWarehouseIn(this.queryParams.orderId).then(res => {
this.warehouseInList = res.data
})
},
watch: {
//监听table这个对象
......@@ -817,7 +851,21 @@ export default {
})
return total.toNumber()
}
}
},
currencyMap(){
let map = {}
this.currencyList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
unitMap(){
let map = {}
this.unitList.forEach(item => {
map[item.id] = this.$l(item, 'title')
})
return map
},
},
methods: {
/*检查并提交字段(体积,重量)修改*/
......
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