Commit 6006e588 authored by dragondean@qq.com's avatar dragondean@qq.com

新建订单批量导入装箱单,调货,bug

parent 5e699b90
...@@ -366,4 +366,22 @@ export function getMergeLogByMergedOrderNo(params){ ...@@ -366,4 +366,22 @@ export function getMergeLogByMergedOrderNo(params){
method: 'get', method: 'get',
params params
}) })
}
// 导入装箱单
export function orderImport(data) {
return request({
url: '/ecw/order/import',
method: 'post',
data
})
}
// 下载装箱单模板
export function exportPackingList(){
return request({
url: '/ecw/order/export-packing-list',
method: 'get',
responseType: 'blob'
})
} }
\ No newline at end of file
...@@ -52,3 +52,12 @@ export function exportReceiptExcel(query) { ...@@ -52,3 +52,12 @@ export function exportReceiptExcel(query) {
responseType: 'blob' responseType: 'blob'
}) })
} }
// 根据订单ID获得应收款列表
export function getReceivableListByOrderId(params){
return request({
url: '/ecw/receivable/getReceivableListByOrderId',
method: 'get',
params
})
}
\ No newline at end of file
...@@ -15,41 +15,74 @@ ...@@ -15,41 +15,74 @@
import { getListTree } from "@/api/ecw/region"; import { getListTree } from "@/api/ecw/region";
export default { export default {
props:{
country: Number,
city: Number,
province: Number
},
data(){ data(){
return { return {
formData:{ formData:{
country: undefined,
province: undefined,
city: undefined
}, },
treeList: [], treeList: [],
provinceList: [], // provinceList: [],
cityList:[] // cityList:[]
} }
}, },
watch:{ watch:{
city(val){
this.$set(this.formData, 'city', val)
},
province(val){
this.$set(this.formData, 'province', val)
},
country(val){
this.$set(this.formData, 'country', val)
},
'formData.city'(city){ 'formData.city'(city){
this.$emit('cityChange', city) this.$emit('cityChange', city)
}, },
'formData.country'(country){ 'formData.country'(country){
this.$emit('countryChange', country) this.$emit('countryChange', country)
this.treeList.forEach(item => { /* this.treeList.forEach(item => {
if(item.id == country){ if(item.id == country){
this.provinceList = item.children || [] this.provinceList = item.children || []
} }
}) }) */
}, },
'formData.province'(province){ 'formData.province'(province){
this.$emit('provinceChange', province) this.$emit('provinceChange', province)
this.provinceList.forEach(item => { /* this.provinceList.forEach(item => {
if(item.id == province){ if(item.id == province){
this.cityList = item.children || [] this.cityList = item.children || []
} }
}) }) */
}
},
computed:{
provinceList(){
if(!this.formData.country) return []
let country = this.treeList.find(item => item.id == this.formData.country)
return country && country.children || []
},
cityList(){
if(!this.provinceList.length) return []
let province = this.provinceList.find(item => item.id == this.formData.province)
return province && province.children || []
} }
}, },
created(){ created(){
getListTree({treeType: 1}).then(response => { getListTree({treeType: 1}).then(response => {
this.treeList = response.data this.treeList = response.data
}) })
this.formData = {
country: this.country,
province: this.province,
city: this.city
}
} }
} }
</script> </script>
\ No newline at end of file
...@@ -133,10 +133,10 @@ ...@@ -133,10 +133,10 @@
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.rows"
@pagination="getList" /> @pagination="getList" />
<transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder=null" /> <transfer v-if="showTransferOrder" v-bind="showTransferOrder" @close="showTransferOrder=null" />
<release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" /> <release v-if="showReleaseOrderId" :order-id="showReleaseOrderId" @close="showReleaseOrderId=null" @success="onReleaseSuccess" />
<transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" /> <transfer-cargo v-if="showTransferCargoOrderId" :order-id="showTransferCargoOrderId" @close="showTransferCargoOrderId=null" @success="onReansferCargoSuccess" />
<fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" :index="null" @close="showFallbackOrder=null" @success="onFallbackSuccess" /> <fallback v-if="showFallbackOrder !== null" :order="showFallbackOrder" @close="showFallbackOrder=null" @success="onFallbackSuccess" :index="null" />
</div> </div>
</template> </template>
...@@ -283,10 +283,6 @@ export default { ...@@ -283,10 +283,6 @@ export default {
this.$message.success('操作成功') this.$message.success('操作成功')
this.handleQuery() this.handleQuery()
}) })
},
// 反复核
unReview(row){
}, },
onReleaseSuccess(){ onReleaseSuccess(){
this.showReleaseOrderId = null this.showReleaseOrderId = null
...@@ -294,6 +290,11 @@ export default { ...@@ -294,6 +290,11 @@ export default {
}, },
onFallbackSuccess(){ onFallbackSuccess(){
this.showFallbackOrder = null this.showFallbackOrder = null
this.handleQuery()
},
onReansferCargoSuccess(){
this.showTransferCargoOrderId = null
this.handleQuery()
} }
} }
}; };
......
...@@ -65,7 +65,7 @@ ...@@ -65,7 +65,7 @@
<el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancel(scope.row.id)">取消</el-button> <el-button v-if="scope.row.status == 1" type="danger" size="mini" @click="cancel(scope.row.id)">取消</el-button>
<el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">放货复核</el-button> <el-button v-if="scope.row.status == 1" type="success" size="mini" @click="review(scope.row.id)">放货复核</el-button>
<el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">反复核</el-button> <el-button v-if="scope.row.status == 3" type="danger" size="mini" @click="fallbackIndex=scope.$index">反复核</el-button>
<el-button v-if="scope.row.status == 3" type="success" size="mini" @click="$alert('// TODO')">调货</el-button> <el-button v-if="scope.row.status == 3" type="success" size="mini" @click="cargoControlPickId=scope.row.id">调货</el-button>
<el-button v-if="[2,4].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.id)">审核详情</el-button> <el-button v-if="[2,4].indexOf(scope.row.status) > -1" type="primary" size="mini" @click="showApprovalDetail(scope.row.id)">审核详情</el-button>
<el-button v-if="[2,4].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">取消审核</el-button> <el-button v-if="[2,4].indexOf(scope.row.status) > -1" type="danger" size="mini" @click="cancelApproval(scope.row.id)">取消审核</el-button>
...@@ -105,6 +105,12 @@ ...@@ -105,6 +105,12 @@
</el-table> --> </el-table> -->
<fallback v-if="fallbackIndex !== null" :order="detail" :index="fallbackIndex" @close="fallbackIndex=null" @success="onFallbackSuccess" /> <fallback v-if="fallbackIndex !== null" :order="detail" :index="fallbackIndex" @close="fallbackIndex=null" @success="onFallbackSuccess" />
<edit v-if="editIndex !== null" @close="editIndex=null" :order="detail" :index="editIndex" @success="onEditSuccess" /> <edit v-if="editIndex !== null" @close="editIndex=null" :order="detail" :index="editIndex" @success="onEditSuccess" />
<transfer-cargo
v-if="cargoControlPickId !== null"
:order-id="detail.orderId"
:cargo-control-pick-id="cargoControlPickId"
@close="cargoControlPickId=null"
@success="onTransferCargoSuccess" />
</div> </div>
</template> </template>
<script> <script>
...@@ -112,9 +118,11 @@ import edit from './components/CargoControlEdit.vue' ...@@ -112,9 +118,11 @@ import edit from './components/CargoControlEdit.vue'
import {createPick, getPickRleaseInfo, review, cancel, cancelApproval} from '@/api/ecw/orderCargoControl' import {createPick, getPickRleaseInfo, review, cancel, cancelApproval} from '@/api/ecw/orderCargoControl'
import {parseTime} from '@/utils/ruoyi' import {parseTime} from '@/utils/ruoyi'
import Fallback from './components/Fallback' import Fallback from './components/Fallback'
import TransferCargo from '@/views/ecw/order/components/TransferCargo'
export default { export default {
filters: {parseTime}, filters: {parseTime},
components: {edit, Fallback}, components: {edit, Fallback, TransferCargo},
data(){ data(){
return { return {
detail: null, detail: null,
...@@ -122,6 +130,7 @@ export default { ...@@ -122,6 +130,7 @@ export default {
rules: {}, rules: {},
editIndex: null, // 修改索引 editIndex: null, // 修改索引
fallbackIndex: null, // 反复核索引 fallbackIndex: null, // 反复核索引
cargoControlPickId: null, // 调货ID
} }
}, },
created(){ created(){
...@@ -192,6 +201,10 @@ export default { ...@@ -192,6 +201,10 @@ export default {
}) })
console.log({item}) console.log({item})
return item[field] return item[field]
},
onTransferCargoSuccess(){
this.cargoControlPickId = null
this.loadData()
} }
} }
} }
......
...@@ -22,33 +22,33 @@ ...@@ -22,33 +22,33 @@
</el-col> </el-col>
</el-row> </el-row>
<el-table :data="[formData,formData]" border> <el-table :data="selectedOrders" border>
<el-table-column label="订单号"> <el-table-column label="订单号">
{{detail.sumNum}} {{detail.orderNo}}
</el-table-column> </el-table-column>
<el-table-column label="目的地"> <el-table-column label="目的地">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input type="number" v-model.number="row.pickNum" placeholder="" clearable></el-input> {{row.objectiveName}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="总控货数"> <el-table-column label="总控货数">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input type="number" v-model.number="row.pickNum" placeholder="" clearable></el-input> {{row.sumNum}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="放货箱数"> <el-table-column label="放货箱数">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input type="number" v-model.number="row.pickNum" placeholder="" clearable></el-input> <el-input type="number" v-model.number="row.releaseNum" placeholder="" clearable></el-input>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="体积(m³)"> <el-table-column label="体积(m³)">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input type="number" v-model.number="row.pickVolume" placeholder="" clearable></el-input> {{row.sumVolume}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="重量(kg)"> <el-table-column label="重量(kg)">
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-input type="number" v-model.number="row.pickWeight" placeholder="" clearable></el-input> {{row.sumWeight}}
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -63,6 +63,8 @@ ...@@ -63,6 +63,8 @@
<el-input v-model="formData.code" placeholder="请输入手机验证码" clearable class="w-150 mr-10"></el-input> <el-input v-model="formData.code" placeholder="请输入手机验证码" clearable class="w-150 mr-10"></el-input>
<send-sms-code :order-id="detail.orderId" scene="5" /> <send-sms-code :order-id="detail.orderId" scene="5" />
</el-form-item> </el-form-item>
<div class="page-title">审批流程</div>
<work-flow v-model="ccIdArr" xmlkey="transfer_goods" />
<el-form-item label="" style="margin-top:20px"> <el-form-item label="" style="margin-top:20px">
<el-button type="success" @click="submit">提交申请</el-button> <el-button type="success" @click="submit">提交申请</el-button>
<el-button type="default" @click="closeDialog">关闭</el-button> <el-button type="default" @click="closeDialog">关闭</el-button>
...@@ -72,20 +74,24 @@ ...@@ -72,20 +74,24 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import {createPick, getRleaseInfo, seasoningCondimentsSelect} from '@/api/ecw/orderCargoControl' import {createPick, getRleaseInfo, seasoningCondimentsSelect, updateApply} from '@/api/ecw/orderCargoControl'
import AreaCodeSelector from '@/components/AreaCodeSelector' import AreaCodeSelector from '@/components/AreaCodeSelector'
import SendSmsCode from '@/views/ecw/order/components/SendSmsCode' import SendSmsCode from '@/views/ecw/order/components/SendSmsCode'
import WorkFlow from '@/components/WorkFlow'
export default { export default {
props:{ props:{
orderId: [String, Number] orderId: [String, Number],
cargoControlPickId: Number
}, },
components: {AreaCodeSelector, SendSmsCode}, components: {AreaCodeSelector, SendSmsCode, WorkFlow},
data(){ data(){
return { return {
show: false, show: false,
detail: null, detail: null,
ccIdArr: [],
formData:{ formData:{
orderIds:[] applyType: 9, // 调货审核
ccIds: ''
}, },
rules:{ rules:{
consigneeName: {required: true, message: '请填写收货人'}, consigneeName: {required: true, message: '请填写收货人'},
...@@ -98,6 +104,9 @@ export default { ...@@ -98,6 +104,9 @@ export default {
watch:{ watch:{
'formData.orderIds'(val){ 'formData.orderIds'(val){
this.selectedOrders = this.orders.filter(item => val.indexOf(item.orderId) > -1) this.selectedOrders = this.orders.filter(item => val.indexOf(item.orderId) > -1)
},
ccIdArr(val){
this.formData.ccIds = val.join(',')
} }
}, },
created(){ created(){
...@@ -121,7 +130,15 @@ export default { ...@@ -121,7 +130,15 @@ export default {
return false return false
} }
console.log('submit') console.log('submit')
updateApply(Object.assign({
cargoControlPickId: this.cargoControlPickId,
orderBackPageVOList: this.selectedOrders,
orderId: this.orderId
}, this.formData)).then(res => {
this.$message.success('操作成功')
this.show = false
this.$emit('success')
})
}) })
......
...@@ -38,13 +38,13 @@ ...@@ -38,13 +38,13 @@
<el-descriptions-item label="运输方式" :span="2"> <el-descriptions-item label="运输方式" :span="2">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" /> <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="出货渠道" :span="2">{{order.logisticsInfoDto.startTitleZh}}</el-descriptions-item> <el-descriptions-item label="出货渠道" :span="2">{{channelName}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-descriptions class="margin-top" border title="基础信息" :column="2"> <el-descriptions class="margin-top" border title="基础信息" :column="2">
<el-descriptions-item label="唛头">{{order.marks}}</el-descriptions-item> <el-descriptions-item label="唛头">{{order.marks}}</el-descriptions-item>
<el-descriptions-item label="送货时间">{{order.consigneeVO.deliveryDate}}</el-descriptions-item> <el-descriptions-item label="送货时间">{{order.deliveryDate}}</el-descriptions-item>
<el-descriptions-item label="是否控货">{{order.isCargoControl?'是':'否'}}</el-descriptions-item> <el-descriptions-item label="是否控货">{{order.isCargoControl?'是':'否'}}</el-descriptions-item>
<el-descriptions-item label="填单信息"> <el-descriptions-item label="填单信息">
{{order.costVO.totalNum}}箱 {{order.costVO.totalWeight}}Kg {{order.costVO.totalVolume}}m³ {{order.costVO.totalNum}}箱 {{order.costVO.totalWeight}}Kg {{order.costVO.totalVolume}}m³
...@@ -132,10 +132,43 @@ ...@@ -132,10 +132,43 @@
<!--inWarehouseState 1待入库,2多了,3少了,4到齐--> <!--inWarehouseState 1待入库,2多了,3少了,4到齐-->
<el-button type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState <= 1">查看入仓单</el-button> <el-button type="text" @click="showWarehouseReceipt=true" :disabled="order.inWarehouseState <= 1">查看入仓单</el-button>
<el-button type="text" @click.native="showLadingBill=true" :disabled="!order.tidanNo">查看提货单</el-button> <el-button type="text" @click.native="showLadingBill=true" :disabled="!order.tidanNo">查看提货单</el-button>
<el-button :disabled="true" type="text">装箱单未上传</el-button> <el-button :disabled="!order.packingListUrl" type="text" @click="downloadPackingList">装箱单</el-button>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="费用明细" name="four"> <el-tab-pane label="费用明细" name="four">
<el-table :data="feeList">
<el-table-column label="订单号" prop="orderNo"></el-table-column>
<el-table-column label="运输方式">
<dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="order.transportId" />
</el-table-column>
<el-table-column label="出货渠道">
{{channelName}}
</el-table-column>
<el-table-column label="始发地" prop="orderNo">
{{departure.titleZh || '-'}}
</el-table-column>
<el-table-column label="目的地">
{{objective.titleZh || '-'}}
</el-table-column>
<el-table-column label="品名" prop="titleZh"></el-table-column>
<el-table-column label="箱数" prop="num"></el-table-column>
<el-table-column label="体积/重量">
<template slot-scope="{row}">
{{row.volume}} / {{row.weight}}
</template>
</el-table-column>
<el-table-column label="收款类型">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.PAYMENT_TYPE" :value="row.collectionType" />
</template>
</el-table-column>
<el-table-column label="收入类型">
<template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.FEE_TYPE" :value="row.feeType" />
</template>
</el-table-column>
<el-table-column label="单价金额" prop="unitPrice"></el-table-column>
<el-table-column label="总金额" prop="totalAmount"></el-table-column>
</el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-card> </el-card>
...@@ -152,6 +185,8 @@ import PrintWarehouseReceipt from './components/PrintWarehouseReceipt' ...@@ -152,6 +185,8 @@ import PrintWarehouseReceipt from './components/PrintWarehouseReceipt'
import PrintLadingBill from './components/PrintLadingBill' import PrintLadingBill from './components/PrintLadingBill'
import {getUnitList} from '@/api/ecw/unit' import {getUnitList} from '@/api/ecw/unit'
import {getCurrencyList} from '@/api/ecw/currency' import {getCurrencyList} from '@/api/ecw/currency'
import {getReceivableListByOrderId} from '@/api/ecw/receipt'
import { getChannel } from '@/api/ecw/channel';
export default { export default {
name: "detail", name: "detail",
...@@ -184,7 +219,9 @@ export default { ...@@ -184,7 +219,9 @@ export default {
showWarehouseReceipt: false, // 是否显示打印入仓单 showWarehouseReceipt: false, // 是否显示打印入仓单
showLadingBill: false, // 是否显示打印提单 showLadingBill: false, // 是否显示打印提单
currencyList: [], currencyList: [],
unitList:[] unitList:[],
feeList: [],
channelName: '/'
} }
}, },
computed:{ computed:{
...@@ -202,12 +239,27 @@ export default { ...@@ -202,12 +239,27 @@ export default {
}) })
return map return map
}, },
objective(){
if(this.order && this.order.objectiveVO){
return JSON.parse(this.order.objectiveVO.objective)
}
return {}
},
departure(){
if(this.order && this.order.departureVO){
return JSON.parse(this.order.departureVO.departure)
}
return {}
}
}, },
watch:{ watch:{
activeName(){ activeName(val){
if(!this.feeList.length){ if(!this.feeList.length && val == 'four'){
this.loadFeeList() this.loadFeeList()
} }
},
'order.channelId'(){
this.getChannel()
} }
}, },
created() { created() {
...@@ -229,8 +281,19 @@ export default { ...@@ -229,8 +281,19 @@ export default {
that.order = response.data; that.order = response.data;
}); });
}, },
getChannel(){
if(!this.order || !this.order.channelId) return
getChannel(this.order.channelId).then(res => {
this.channelName = res.data.nameZh
})
},
loadFeeList(){ loadFeeList(){
// TODO 暂无接口 getReceivableListByOrderId({id: this.orderId}).then(res => {
this.feeList = res.data
})
},
downloadPackingList(){
window.open(this.order.packingListUrl)
} }
} }
}; };
......
...@@ -98,8 +98,8 @@ ...@@ -98,8 +98,8 @@
<el-card class="mt-10"> <el-card class="mt-10">
<div slot="header" class="card-title"> <div slot="header" class="card-title">
<div class="card-name">商品信息</div> <div class="card-name">商品信息</div>
<el-button type="primary" size="mini" @click="addProduct(null)">添加货物</el-button> <el-button type="primary" size="mini" @click="addProduct(null)" :disabled="!form.lineId">添加货物</el-button>
<!-- <el-button type="primary" size="mini" @click="showBatchImportDialog=true">批量添加货物</el-button> --> <el-button type="primary" size="mini" @click="showBatchImportDialog=true" :disabled="!form.lineId">批量添加货物</el-button>
</div> </div>
<el-table :data="productList" border> <el-table :data="productList" border>
<el-table-column label="序号" width="60px" fixed> <el-table-column label="序号" width="60px" fixed>
...@@ -336,13 +336,16 @@ ...@@ -336,13 +336,16 @@
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="收货地区" :span="2" v-if="homeDeliveryService"> <el-descriptions-item label="收货地区" :span="2" v-if="homeDeliveryService">
<area-selector <area-selector
:country="form.consigneeVO ? form.consigneeVO.country : undefined"
:province="form.consigneeVO ? form.consigneeVO.province : undefined"
:city="form.consigneeVO ? form.consigneeVO.city : undefined"
@countryChange="onAreaChange('country', $event)" @countryChange="onAreaChange('country', $event)"
@provinceChange="onAreaChange('province', $event)" @provinceChange="onAreaChange('province', $event)"
@cityChange="onAreaChange('city', $event)" @cityChange="onAreaChange('city', $event)"
></area-selector> ></area-selector>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item label="收货详细地址" :span="2" v-if="homeDeliveryService"> <el-descriptions-item label="收货详细地址" :span="2" v-if="homeDeliveryService">
<el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consigneeAddress" required error="收货详细地址不能为空"> <el-form-item label="" label-width="0" style="margin-bottom: 0" prop="consigneeAddress">
<el-input v-model="form.consigneeAddress" placeholder=""></el-input> <el-input v-model="form.consigneeAddress" placeholder=""></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-descriptions-item>
...@@ -412,31 +415,35 @@ ...@@ -412,31 +415,35 @@
</el-form> </el-form>
<el-dialog title="批量导入" :visible.sync="showBatchImportDialog" width="1000px" :close-on-click-modal="false"> <el-dialog title="批量导入" :visible.sync="showBatchImportDialog" width="1000px" :close-on-click-modal="false">
<el-steps :active="importData.length > 0 ? 1 : 0" finish-status="success" class="w-500" style="margin: 20px auto"> <el-steps :active="importList.length > 0 ? 1 : 0" finish-status="success" class="w-500" style="margin: 20px auto">
<el-step title="上传集装箱"></el-step> <el-step title="上传集装箱"></el-step>
<el-step title="开始导入"></el-step> <el-step title="开始导入"></el-step>
<el-step title="完成"></el-step> <el-step title="完成"></el-step>
</el-steps> </el-steps>
<div class="mt-20"> <div class="mt-20">
<el-input type="file" @input="onFileChoosed" class="w-200 mr-10"></el-input> <el-upload :http-request="upload" :show-file-list="false" action="" class="mr-10" style="display:inline-block; ">
<el-button type="info" @click="downloadTpl">装箱单模板</el-button> <el-button size="small" type="primary">点击上传</el-button>
</el-upload>
<el-button type="info" @click="downloadTpl" size="small" :loading="exportLoading">装箱单模板</el-button>
</div> </div>
<el-table :data="importData" class="mt-10" height="300"> <el-table :data="importList" class="mt-10" height="300">
<el-table-column label="序号"></el-table-column> <el-table-column label="序号">
<el-table-column label="产品名称"></el-table-column> <template slot-scope="scope">{{scope.$index + 1}}</template>
<el-table-column label="英文名称"></el-table-column> </el-table-column>
<el-table-column label="品牌"></el-table-column> <el-table-column label="中文品名" prop="prodTitleZh"></el-table-column>
<el-table-column label="箱数"></el-table-column> <el-table-column label="英文品名" prop="prodTitleEn"></el-table-column>
<el-table-column label="重量"></el-table-column> <el-table-column label="品牌" prop="brand"></el-table-column>
<el-table-column label="体积"></el-table-column> <el-table-column label="件数" prop="num"></el-table-column>
<el-table-column label="有无单证"></el-table-column> <el-table-column label="重量(kg)" prop="weight"></el-table-column>
<el-table-column label="缺货箱数"></el-table-column> <el-table-column label="体积(m³)" prop="volume"></el-table-column>
<el-table-column label="数量"></el-table-column> <!-- <el-table-column label="有无单证" prop="">// TODO</el-table-column> -->
<el-table-column label="材质"></el-table-column> <!-- <el-table-column label="缺货箱数" prop="lessNum"></el-table-column> -->
<el-table-column label="数量" prop="quantity"></el-table-column>
<el-table-column label="材质" prop="material"></el-table-column>
</el-table> </el-table>
<div class="mt-10 center"> <div class="mt-10 center">
<el-button type="primary">下一步</el-button> <el-button type="primary" @click="addToProductList">下一步</el-button>
<el-button type="default" @click="showBatchImportDialog=false">取消</el-button> <el-button type="default" @click="showBatchImportDialog=false">取消</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -444,7 +451,7 @@ ...@@ -444,7 +451,7 @@
</template> </template>
<script> <script>
import { createOrder, updateOrder, getOrder, getProductFeeList, getOrderDetail, getOrderCourierNumber } from "@/api/ecw/order"; import { createOrder, updateOrder, getOrder, getProductFeeList, getOrderDetail, getOrderCourierNumber, orderImport, exportPackingList } from "@/api/ecw/order";
import ProductSelector from '@/components/ProductSelector' import ProductSelector from '@/components/ProductSelector'
import {getProductAttrList} from '@/api/ecw/productAttr' import {getProductAttrList} from '@/api/ecw/productAttr'
import {getChannelList} from '@/api/ecw/channel' import {getChannelList} from '@/api/ecw/channel'
...@@ -459,13 +466,12 @@ import { getCustomer } from '@/api/ecw/customer'; ...@@ -459,13 +466,12 @@ import { getCustomer } from '@/api/ecw/customer';
import AreaSelector from '@/components/AreaSelector' import AreaSelector from '@/components/AreaSelector'
import {calculationPrice} from '@/api/ecw/product' import {calculationPrice} from '@/api/ecw/product'
import {getCustomerAvailableCouponList} from '@/api/ecw/coupon' import {getCustomerAvailableCouponList} from '@/api/ecw/coupon'
import * as xlsx from 'xlsx' import FileUpload from '@/components/FileUpload'
window.xlsx = xlsx
export default { export default {
name: "OrderEdit", name: "OrderEdit",
components: { components: {
ProductSelector, Selector, CustomerContactSelector, AreaSelector ProductSelector, Selector, CustomerContactSelector, AreaSelector, FileUpload
}, },
data() { data() {
return { return {
...@@ -495,7 +501,6 @@ export default { ...@@ -495,7 +501,6 @@ export default {
sendstatus:0, sendstatus:0,
isCargoControl: false, isCargoControl: false,
type:[] type:[]
}, },
// 表单校验 // 表单校验
rules: { rules: {
...@@ -508,10 +513,12 @@ export default { ...@@ -508,10 +513,12 @@ export default {
lineId : [{required: true, message: '请选择路线'}], lineId : [{required: true, message: '请选择路线'}],
channelId : [{required: true, message: '请选择出货渠道'}], channelId : [{required: true, message: '请选择出货渠道'}],
deliveryDate : [{required: true, message: '请选择送货日期'}], deliveryDate : [{required: true, message: '请选择送货日期'}],
consigneeAddress : [{required: true, message: '请填写详细地址'}]
}, },
labelStyle: 'width:120px', labelStyle: 'width:120px',
showBatchImportDialog: false, // 显示批量导入弹窗 showBatchImportDialog: false, // 显示批量导入弹窗
importData:[] importList:[],
exportLoading: false, // 装下单模板下载状态
}; };
}, },
computed:{ computed:{
...@@ -620,9 +627,9 @@ export default { ...@@ -620,9 +627,9 @@ export default {
}, },
'form.lineId'(lineId){ 'form.lineId'(lineId){
let router = this.routerList.find(item => item.id == lineId) let router = this.routerList.find(item => item.id == lineId)
if(!router) return
this.$set(this.form, 'departureId', router.startCityId) this.$set(this.form, 'departureId', router.startCityId)
this.$set(this.form, 'objectiveId', router.destCityId) this.$set(this.form, 'objectiveId', router.destCityId)
// TODO 还需要回填渠道信息,暂时缺少渠道ID
}, },
/* // 发货联系人发生变化获取发货客户 /* // 发货联系人发生变化获取发货客户
consignorContact(){ consignorContact(){
...@@ -679,8 +686,38 @@ export default { ...@@ -679,8 +686,38 @@ export default {
}) })
}, },
methods: { methods: {
upload(e){
console.log({upload: e})
let form = new FormData()
form.append('file', e.file)
orderImport(form).then(res => {
this.importList = res.data.list
this.$set(this.form, 'packingListUrl', res.data.packingListUrl)
})
},
addToProductList(){
console.log('addToProductList')
this.importList.forEach(item => {
this.productList.push({
prodId: item.prodId,
brand: item.brandType,
num: item.num,
quantity: item.quantity,
volume: item.volume,
weight: item.weight,
prodAttrArr:[]
})
})
// 重置
this.importList = []
this.showBatchImportDialog = false
},
downloadTpl(){ downloadTpl(){
window.open('http://v4.groupage.cn/Download/%E8%A3%85%E7%AE%B1%E5%8D%95%E6%A8%A1%E6%9D%BF.xls') this.exportLoading = true;
exportPackingList().then(response => {
this.$download.excel(response, '装箱单模板.xls');
this.exportLoading = false;
}).catch(() => { });
}, },
setLink(row){ setLink(row){
this.$prompt('请输入商品链接', {inputValue: row.link}).then(({value}) => { this.$prompt('请输入商品链接', {inputValue: row.link}).then(({value}) => {
......
...@@ -8,7 +8,14 @@ ...@@ -8,7 +8,14 @@
</el-row> </el-row>
<el-row> <el-row>
<ueditor /> <el-col :span="12">
<ueditor v-model="html" />
</el-col>
<el-col :span="12">
<div v-html="html"></div>
<div class="">下面是通过watch更新</div>
<div v-html="watchHtml"></div>
</el-col>
</el-row> </el-row>
<el-card style="margin:20px 0"> <el-card style="margin:20px 0">
<div slot="header">测试审批抄送</div> <div slot="header">测试审批抄送</div>
...@@ -37,9 +44,6 @@ ...@@ -37,9 +44,6 @@
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
</template> </template>
...@@ -93,6 +97,13 @@ export default { ...@@ -93,6 +97,13 @@ export default {
bpmnControlForm: { bpmnControlForm: {
prefix: "activiti" prefix: "activiti"
}, },
html: "默认内容",
watchHtml: ''
}
},
watch:{
html(val){
this.watchHtml = val
} }
}, },
created() { created() {
......
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