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

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

parents f33c81cf 4c1a9c56
...@@ -143,6 +143,15 @@ export function makeBillService(params) { ...@@ -143,6 +143,15 @@ export function makeBillService(params) {
}); });
} }
// 空运制作提单
export function makeAirBillService(params) {
return request({
url: "/shipment/make-bill-of-lading/airMake",
method: "get",
params,
});
}
// 创建制作提货单 // 创建制作提货单
export function createBillService(data) { export function createBillService(data) {
return request({ return request({
......
...@@ -369,9 +369,9 @@ export function updateAllOrderClearance(data) { ...@@ -369,9 +369,9 @@ export function updateAllOrderClearance(data) {
* @param {*} data * @param {*} data
* @return {*} * @return {*}
*/ */
export function getLineInfoList(params) { export function getLineInfo(params) {
return request({ return request({
url: `/ecw/warehouse/getLineInfoList`, url: `/ecw/warehouse/getLineInfo`,
method: "get", method: "get",
params params
}); });
......
...@@ -120,7 +120,7 @@ ...@@ -120,7 +120,7 @@
<el-dropdown-item command="error" v-has-permi="['shipment:air:exception']">{{$t('异常登记')}}</el-dropdown-item> <el-dropdown-item command="error" v-has-permi="['shipment:air:exception']">{{$t('异常登记')}}</el-dropdown-item>
<el-dropdown-item command="cost" v-has-permi="['shipment:air:fee']">{{$t('费用登记')}}</el-dropdown-item> <el-dropdown-item command="cost" v-has-permi="['shipment:air:fee']">{{$t('费用登记')}}</el-dropdown-item>
<el-dropdown-item command="batchMarkup" v-has-permi="['shipment:air:batchMarkup']">{{$t('批量加价')}}</el-dropdown-item> <el-dropdown-item command="batchMarkup" v-has-permi="['shipment:air:batchMarkup']">{{$t('批量加价')}}</el-dropdown-item>
<el-dropdown-item :disabled="scope.row.prStatus<25" command="editLadingBill" v-has-permi="['shipment:air:editLadingBill']">{{$t('编辑提货单')}}</el-dropdown-item> <el-dropdown-item command="editLadingBill" v-has-permi="['shipment:air:editLadingBill']">{{$t('编辑提货单')}}</el-dropdown-item>
<!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item>--> <!-- <el-dropdown-item command="delete">{{$t('删除')}}</el-dropdown-item>-->
</el-dropdown-menu> </el-dropdown-menu>
...@@ -206,7 +206,7 @@ import { ...@@ -206,7 +206,7 @@ import {
dealCustomsSplitNotify, dealCustomsSplitNotify,
exportPreloadGoodsList, downloadReceivableList, getAirNoticeList, zipDownload, downloadAirReceivableList exportPreloadGoodsList, downloadReceivableList, getAirNoticeList, zipDownload, downloadAirReceivableList
} from '@/api/ecw/box' } from '@/api/ecw/box'
import { getLineInfoList } from '@/api/ecw/boxAir' import { getLineInfo } from '@/api/ecw/boxAir'
import { getChannelList } from '@/api/ecw/channel' import { getChannelList } from '@/api/ecw/channel'
import { getWarehouseList } from '@/api/ecw/warehouse' import { getWarehouseList } from '@/api/ecw/warehouse'
import costForm from './costForm.vue' import costForm from './costForm.vue'
...@@ -311,7 +311,24 @@ export default { ...@@ -311,7 +311,24 @@ export default {
this.$t("部分完成"), this.$t("部分完成"),
this.$t("已完成"), this.$t("已完成"),
], ],
allUsers: [] allUsers: [],
makeBillNodeStatus: {
'1':403,
'2':407,
'3':409,
'4':410,
'5':411,
'6':412,
'7':421,
'8':421,
'9':421,
'10':426,
'11':426,
'12':428,
'13':430,
'14':435,
'15':438,
}
} }
}, },
computed: { computed: {
...@@ -518,6 +535,13 @@ export default { ...@@ -518,6 +535,13 @@ export default {
this.handleDelete(row); this.handleDelete(row);
break; break;
case "editLadingBill": case "editLadingBill":
let line = await getLineInfo({startWarehouseId: row.startWarehouseId,destWarehouseId: row.destWarehouseId,transportType:row.transportType})
let makeBillNode = line.data.makeBillNode
console.log(row,this.makeBillNodeStatus[makeBillNode])
if(row.shipmentStatusAir<this.makeBillNodeStatus[makeBillNode]){
this.$message.error(this.$t("此出货单状态未到提单节点"));
return
}
const cabinetLabel = this.getCabinetName(row.cabinetId); const cabinetLabel = this.getCabinetName(row.cabinetId);
const title = this.$t( const title = this.$t(
"查看提单 {selfNo}", "查看提单 {selfNo}",
......
...@@ -111,7 +111,7 @@ import { ...@@ -111,7 +111,7 @@ import {
getMakeBillList, getMakeBillList,
makeBillService, makeBillService,
getBillService, getBillService,
deleteBillService, zipDownload, downloadReceivableList, deleteBillService, zipDownload, downloadReceivableList, makeAirBillService, downloadAirReceivableList,
} from "@/api/ecw/box"; } from "@/api/ecw/box";
import { import {
getTotlContent, getTotlContent,
...@@ -225,7 +225,8 @@ export default { ...@@ -225,7 +225,8 @@ export default {
); );
return; return;
case "downloadReceivableList": case "downloadReceivableList":
downloadReceivableList({ shipmentId: this.shipmentObj.id }).then(res => { const api = this.type == 'air' ? downloadAirReceivableList : downloadReceivableList;
api({ shipmentId: this.shipmentObj.id }).then(res => {
this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载')) this.$message.success(this.$t('已加入导出队列,请稍后在下载日志中下载'))
}) })
return; return;
...@@ -236,7 +237,8 @@ export default { ...@@ -236,7 +237,8 @@ export default {
this.$set(this.dialogCfg, "visible", true); this.$set(this.dialogCfg, "visible", true);
}, },
makeBill(row) { makeBill(row) {
makeBillService({ let api = this.type != 'air' ? makeBillService : makeAirBillService;
api({
orderId: row.orderId, orderId: row.orderId,
shipmentId: this.shipmentObj.id, shipmentId: this.shipmentObj.id,
}).then((res) => { }).then((res) => {
......
...@@ -95,7 +95,7 @@ ...@@ -95,7 +95,7 @@
<template slot-scope="scope"> {{ scope.row.sumVolume }}/{{ scope.row.sumWeight }} </template> <template slot-scope="scope"> {{ scope.row.sumVolume }}/{{ scope.row.sumWeight }} </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('到港状态')" prop="arrival" /> <el-table-column :label="$t('到港状态')" prop="arrival" />
<el-table-column :label="$t('到港状态')" prop="clear" /> <el-table-column :label="$t('清关状态')" prop="clear" />
<el-table-column :label="$t('控货')"> <el-table-column :label="$t('控货')">
<template slot-scope="scope"> <template slot-scope="scope">
{{ cargoControlStatus[scope.row.cargoControlStatus] }} {{ cargoControlStatus[scope.row.cargoControlStatus] }}
......
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="warehouseInInfoVO.cartonsNum"> <el-table-column :label="$t('箱数')" align="center" prop="warehouseInInfoVO.cartonsNum">
<template slot-scope="scope"> <template slot-scope="scope">
<span style="color: blue;" v-if="scope.row.mixStatus == 1">{{scope.row.warehouseInInfoVO.cartonsNum}}{{$t('(混箱)')}}</span> <el-button v-if="scope.row.mixStatus == 1" type="text" @click="seeBox(scope.row.orderId,scope.row.orderItemId)">{{scope.row.warehouseInInfoVO.cartonsNum}}{{$t('(混箱)')}}</el-button>
<template v-else> <template v-else>
{{scope.row.warehouseInInfoVO.cartonsNum}} {{scope.row.warehouseInInfoVO.cartonsNum}}
</template> </template>
...@@ -373,6 +373,16 @@ ...@@ -373,6 +373,16 @@
<el-button type="primary" @click="relationOrderListDialog.visible = false">{{$t('关闭窗口')}}</el-button> <el-button type="primary" @click="relationOrderListDialog.visible = false">{{$t('关闭窗口')}}</el-button>
</el-row> </el-row>
</el-dialog> </el-dialog>
<el-dialog :title="$t('箱明细')" :visible.sync="boxShow" :before-close="closeBox" :close-on-click-modal="false" append-to-body width="1024px">
<el-form v-if="boxShow">
<WarehouseRecordDetailItem
v-for="(item, index) in boxData"
:key="index" v-model="boxData[index]"
:index="index" :attr-list="attrList"
:readonly="true"
/>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
...@@ -391,6 +401,8 @@ import { ...@@ -391,6 +401,8 @@ import {
getAllRelateOrderList getAllRelateOrderList
} from "@/api/ecw/boxSea"; } from "@/api/ecw/boxSea";
import { createGoods, preloadPage } from "@/api/ecw/boxAir" import { createGoods, preloadPage } from "@/api/ecw/boxAir"
import {getProductAttrList} from '@/api/ecw/productAttr'
import { getOrderWarehouseIn } from '@/api/ecw/order'
import { getChannelList } from "@/api/ecw/channel"; import { getChannelList } from "@/api/ecw/channel";
import userSelect from "./common/userSelect.vue"; import userSelect from "./common/userSelect.vue";
import { import {
...@@ -403,6 +415,7 @@ import { ...@@ -403,6 +415,7 @@ import {
import dayjs from "dayjs"; import dayjs from "dayjs";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
import Decimal from "decimal.js"; import Decimal from "decimal.js";
import WarehouseRecordDetailItem from "@/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue";
/** /**
* 分拣 * 分拣
...@@ -410,7 +423,7 @@ import Decimal from "decimal.js"; ...@@ -410,7 +423,7 @@ import Decimal from "decimal.js";
export default { export default {
name: "preinstall", name: "preinstall",
inheritAttrs: false, inheritAttrs: false,
components: { userSelect, WorkFlow }, components: { userSelect, WorkFlow, WarehouseRecordDetailItem },
data() { data() {
return { return {
// 状态 // 状态
...@@ -472,6 +485,10 @@ export default { ...@@ -472,6 +485,10 @@ export default {
visible: false, visible: false,
data: [] data: []
}, },
// 特性列表
attrList: [],
boxShow:false,
boxData: []
}; };
}, },
...@@ -626,6 +643,25 @@ export default { ...@@ -626,6 +643,25 @@ export default {
this.queryParams = {}; this.queryParams = {};
this.$refs["queryForm"].resetFields(); this.$refs["queryForm"].resetFields();
}, },
closeBox(){
this.boxData = []
this.boxShow = false
},
seeBox(orderId,orderItemId){
getOrderWarehouseIn(orderId).then(async(res) => {
let orderwarehouseList = res.data
var warehouseItem = orderwarehouseList.find(item => item.orderItemId == orderItemId)
warehouseItem.orderWarehouseInBackItemDoList.forEach(item=>{
if(item.orderWarehouseInDetailsVOList){
item.orderWarehouseInDetailsVOList.forEach(w=>{
this.boxData.push(w)
})
}
})
this.attrList = (await getProductAttrList()).data
this.boxShow = true
})
},
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["operatorForm"].validate((valid, errors) => { this.$refs["operatorForm"].validate((valid, errors) => {
......
...@@ -258,7 +258,14 @@ ...@@ -258,7 +258,14 @@
<dict-tag :type="DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL" :value="row.feeType" />{{ $t('') }} <dict-tag :type="DICT_TYPE.BRAND_CUSTOMER_CHARGING_MODEL" :value="row.feeType" />{{ $t('') }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="warehouseInInfoVO.cartonsNum" /> <el-table-column :label="$t('箱数')" align="center" prop="warehouseInInfoVO.cartonsNum">
<template slot-scope="scope">
<el-button v-if="scope.row.mixStatus == 1" type="text" @click="seeBox(scope.row.orderId,scope.row.orderItemId)">{{scope.row.warehouseInInfoVO.cartonsNum}}{{$t('(混箱)')}}</el-button>
<template v-else>
{{scope.row.warehouseInInfoVO.cartonsNum}}
</template>
</template>
</el-table-column>
<el-table-column :label="$t('体积') +'/' + $t('重量')" align="center" prop="volumeWeight"> <el-table-column :label="$t('体积') +'/' + $t('重量')" align="center" prop="volumeWeight">
<template slot-scope="scope"> <template slot-scope="scope">
<p v-if="scope.row.warehouseInInfoVO && scope.row.warehouseInInfoVO.volume">{{getTotlContent(scope.row.warehouseInInfoVO,['volume'])}}</p> <p v-if="scope.row.warehouseInInfoVO && scope.row.warehouseInInfoVO.volume">{{getTotlContent(scope.row.warehouseInInfoVO,['volume'])}}</p>
...@@ -336,7 +343,16 @@ ...@@ -336,7 +343,16 @@
<el-button type="primary" @click="relationOrderListDialog.visible = false">{{$t('关闭窗口')}}</el-button> <el-button type="primary" @click="relationOrderListDialog.visible = false">{{$t('关闭窗口')}}</el-button>
</el-row> </el-row>
</el-dialog> </el-dialog>
<el-dialog :title="$t('箱明细')" :visible.sync="boxShow" :before-close="closeBox" :close-on-click-modal="false" append-to-body width="1024px">
<el-form v-if="boxShow">
<WarehouseRecordDetailItem
v-for="(item, index) in boxData"
:key="index" v-model="boxData[index]"
:index="index" :attr-list="attrList"
:readonly="true"
/>
</el-form>
</el-dialog>
</div> </div>
</template> </template>
...@@ -366,14 +382,16 @@ import { ...@@ -366,14 +382,16 @@ import {
import dayjs from "dayjs"; import dayjs from "dayjs";
import WorkFlow from "@/components/WorkFlow"; import WorkFlow from "@/components/WorkFlow";
import Decimal from "decimal.js"; import Decimal from "decimal.js";
import {getProductAttrList} from '@/api/ecw/productAttr'
import { getOrderWarehouseIn } from '@/api/ecw/order'
import WarehouseRecordDetailItem from "@/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue";
/** /**
* 预装 * 预装
*/ */
export default { export default {
name: "preinstall", name: "preinstall",
inheritAttrs: false, inheritAttrs: false,
components: { userSelect, WorkFlow }, components: { userSelect, WorkFlow, WarehouseRecordDetailItem },
data() { data() {
return { return {
// 状态 // 状态
...@@ -433,7 +451,10 @@ export default { ...@@ -433,7 +451,10 @@ export default {
visible: false, visible: false,
data: [] data: []
}, },
// 特性列表
attrList: [],
boxShow:false,
boxData: []
}; };
}, },
computed: { computed: {
...@@ -548,6 +569,25 @@ export default { ...@@ -548,6 +569,25 @@ export default {
this.queryParams = {}; this.queryParams = {};
this.$refs["queryForm"].resetFields(); this.$refs["queryForm"].resetFields();
}, },
closeBox(){
this.boxData = []
this.boxShow = false
},
seeBox(orderId,orderItemId){
getOrderWarehouseIn(orderId).then(async(res) => {
let orderwarehouseList = res.data
var warehouseItem = orderwarehouseList.find(item => item.orderItemId == orderItemId)
warehouseItem.orderWarehouseInBackItemDoList.forEach(item=>{
if(item.orderWarehouseInDetailsVOList){
item.orderWarehouseInDetailsVOList.forEach(w=>{
this.boxData.push(w)
})
}
})
this.attrList = (await getProductAttrList()).data
this.boxShow = true
})
},
/** 提交 */ /** 提交 */
onSubmit() { onSubmit() {
this.$refs["operatorForm"].validate((valid, errors) => { this.$refs["operatorForm"].validate((valid, errors) => {
......
...@@ -12,11 +12,55 @@ ...@@ -12,11 +12,55 @@
<template> <template>
<div sytle="display:flex"> <div sytle="display:flex">
<div v-for="itemAmount in collectionAmount" :key="itemAmount.currencyNameZh">{{ itemAmount.amount}}{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}</div> <div v-for="itemAmount in collectionAmount" :key="itemAmount.currencyNameZh">{{ itemAmount.amount}}{{$i18n.locale=='zh_CN'?itemAmount.currencyNameZh:itemAmount.currencyNameEn}}</div>
</div> </div>
</template> </template>
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item v-if="reason" :label="$t('申请理由')">{{reason}}</el-descriptions-item> <el-descriptions-item v-if="reason" :label="$t('申请理由')">{{reason}}</el-descriptions-item>
</el-descriptions> </el-descriptions>
<el-card class="card">
<div slot="header" class="card-title">{{ $t('应收明细') }}</div>
<el-table :data="list" border>
<el-table-column :label="$t('订单号')" align="center" prop="orderNo" />
<el-table-column :label="$t('提单号')" align="center" prop="tidanNo" />
<el-table-column :label="$t('唛头')" align="center" prop="marks" />
<el-table-column :label="$t('品名')" align="center" prop="title">
<template slot-scope="scope">
<span v-if="scope.row.feeType!=5">{{ scope.row.titleZh?(scope.row.titleZh + "(" + scope.row.titleEn + ")"):'' }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('箱数')" align="center" prop="num" />
<el-table-column :label="$t('体积/重量')" align="center" prop="weight">
<template slot-scope="scope">
<span v-if="scope.row.feeType!=5"> {{ scope.row.volume + "/" + scope.row.weight }}</span>
</template>
</el-table-column>
<el-table-column :label="$t('收入类型')" align="center" prop="feeType">
<template slot-scope="scope">
<dict-tag
:type="DICT_TYPE.FEE_TYPE"
:value="scope.row.feeType"
></dict-tag>
</template>
</el-table-column>
<el-table-column :label="$t('单价金额')" align="center" prop="unitPrice">
<template slot-scope="scope">
<span>{{ scope.row.unitPrice }}</span>
{{getCurrencyLabel(scope.row.currencyId)}}
</template>
</el-table-column>
<el-table-column :label="$t('总金额')" align="center" prop="totalAmount">
<template slot-scope="scope">
<span>{{ scope.row.totalAmount }}</span>
{{getCurrencyLabel(scope.row.currencyId)}}
</template>
</el-table-column>
<el-table-column :label="$t('优惠金额')" align="center">
<template slot-scope="scope">
{{ scope.row.discountTotal ? `${scope.row.discountTotal}(${scope.row.discountRemark})` : 0 }}
</template>
</el-table-column>
</el-table>
</el-card>
<div class="btn"> <div class="btn">
<el-button <el-button
size="mini" size="mini"
...@@ -120,7 +164,12 @@ export default { ...@@ -120,7 +164,12 @@ export default {
}) })
this.$set(this,'collectionAmount',amountList) this.$set(this,'collectionAmount',amountList)
}) })
} },
getCurrencyLabel(id){
var label = this.currencyList.filter(item=>item.id == id)
if(label.length>0) return this.$i18n.locale=='zh_CN'?label[0].titleZh:label[0].titleEn
return ''
},
} }
} }
</script> </script>
...@@ -139,4 +188,11 @@ export default { ...@@ -139,4 +188,11 @@ export default {
font-weight:600; font-weight:600;
} }
} }
.card {
margin-top: 20px;
}
.card-title {
font-size: 18px;
font-weight: bold;
}
</style> </style>
...@@ -56,6 +56,7 @@ export default { ...@@ -56,6 +56,7 @@ export default {
created(){ created(){
this.show = true this.show = true
console.log(this.orderItemId)
if(this.order && this.orderItemId){ if(this.order && this.orderItemId){
this.queryParams.orderId = this.order.orderId; this.queryParams.orderId = this.order.orderId;
this.queryParams.orderItemId = this.orderItemId; this.queryParams.orderItemId = this.orderItemId;
......
...@@ -30,12 +30,12 @@ ...@@ -30,12 +30,12 @@
<div slot="header" class="card-title"> <div slot="header" class="card-title">
{{$t('打包前')}} {{$t('打包前')}}
</div> </div>
<el-table v-if="orderWarehouseInContent" :data="orderWarehouseInContent"> <el-table v-if="orderWarehouseInContent" :data="orderWarehouseInContent.orderWarehouseInBackItemDoList">
<el-table-column type="index" :label="$t('序号')" /> <el-table-column type="index" :label="$t('序号')" />
<el-table-column :label="$t('箱数')" prop="cartonsNum"> <el-table-column :label="$t('箱数')" prop="cartonsNum">
<template slot-scope="{row}"> <template slot-scope="{row}">
<span>{{row.cartonsNum}}</span> <span>{{row.cartonsNum}}</span>
<!-- <el-button type="primary" @click="seeBox(row)">({{$t('混箱')}})</el-button> --> <el-button v-if="row.orderWarehouseInDetailsVOList&&row.orderWarehouseInDetailsVOList.length>0" type="text" @click="seeBox(row.orderWarehouseInDetailsVOList)">({{$t('混箱')}})</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column :label="$t('入仓类型')" prop="cartonsNum"> <el-table-column :label="$t('入仓类型')" prop="cartonsNum">
...@@ -77,7 +77,7 @@ ...@@ -77,7 +77,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" > <el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" >
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-button type="primary" @click="seeMv(row.pictureUrls)">{{$t('查看')}}</el-button> <el-button type="primary" @click="seeMv(orderWarehouseInContent.pictures)">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -88,7 +88,12 @@ ...@@ -88,7 +88,12 @@
</div> </div>
<el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList"> <el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList">
<el-table-column type="index" :label="$t('序号')" /> <el-table-column type="index" :label="$t('序号')" />
<el-table-column :label="$t('箱数')" prop="cartonsNum" /> <el-table-column :label="$t('箱数')" prop="cartonsNum">
<template slot-scope="{row}">
<span>{{row.cartonsNum}}</span>
<el-button v-if="row.orderWarehouseInDetailsVOList&&row.orderWarehouseInDetailsVOList.length>0" type="text" @click="seeBox(row.orderWarehouseInDetailsVOList)">({{$t('混箱')}})</el-button>
</template>
</el-table-column>
<el-table-column :label="$t('入仓类型')" prop="cartonsNum"> <el-table-column :label="$t('入仓类型')" prop="cartonsNum">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" /> <dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" />
...@@ -128,7 +133,7 @@ ...@@ -128,7 +133,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" > <el-table-column :label="$t('入仓影像')" prop="orderLocationBackVOList" >
<template slot-scope="{row}"> <template slot-scope="{row}">
<el-button type="primary" @click="seeMv(row.pictureUrls)">{{$t('查看')}}</el-button> <el-button type="primary" @click="seeMv(warehouseItem.pictureUrls)">{{$t('查看')}}</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -146,10 +151,10 @@ ...@@ -146,10 +151,10 @@
<el-button type="primary" @click="closeDialog">{{$t('关闭窗口')}}</el-button> <el-button type="primary" @click="closeDialog">{{$t('关闭窗口')}}</el-button>
</el-dialog> </el-dialog>
<el-dialog :title="$t('入仓影像')" :visible="mvShow" :before-close="closeMv" :close-on-click-modal="false" width="600px"> <el-dialog :title="$t('入仓影像')" :visible.sync="mvShow" :before-close="closeMv" :close-on-click-modal="false" width="600px">
<div style="display:flex;flex-wrap:wrap"> <div style="display:flex;flex-wrap:wrap">
<div v-for="(item, index) in pictureUrls" :index="index" :key="index" style="width:80px;height:80px"> <div v-for="(item, index) in pictureUrls" :index="index" :key="index" style="width:80px;height:80px">
<image v-if="item.type === 'image'" :src="item.url" mode="scaleToFill" style="height: 100%" @tap="previewImage(item.url)" /> <img v-if="item.type === 'image'" :src="item.url" mode="scaleToFill" style="height: 100%" @tap="previewImage(item.url)" />
<video v-else-if="item.type === 'video'" :id="`video_${index}`" style="width: 100%;height: 100%" :src="item.url" @play="playVideo(index)" @tap="playVideo(index)" @fullscreenchange="fullscreenchange"></video> <video v-else-if="item.type === 'video'" :id="`video_${index}`" style="width: 100%;height: 100%" :src="item.url" @play="playVideo(index)" @tap="playVideo(index)" @fullscreenchange="fullscreenchange"></video>
</div> </div>
</div> </div>
...@@ -157,6 +162,14 @@ ...@@ -157,6 +162,14 @@
<span>{{$t('暂无影像')}}</span> <span>{{$t('暂无影像')}}</span>
</div> </div>
</el-dialog> </el-dialog>
<el-dialog :title="$t('箱明细')" :visible.sync="boxShow" :before-close="closeBox" :close-on-click-modal="false" width="800px">
<WarehouseRecordDetailItem
v-for="(item, index) in boxData"
:key="index" v-model="boxData[index]"
:index="index" :attr-list="attrList"
:readonly="true"
/>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
...@@ -165,9 +178,10 @@ import { DICT_TYPE } from '@/utils/dict' ...@@ -165,9 +178,10 @@ import { DICT_TYPE } from '@/utils/dict'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect" import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import {getProductAttrList} from '@/api/ecw/productAttr' import {getProductAttrList} from '@/api/ecw/productAttr'
import WarehouseRecordDetailItem from "@/views/ecw/order/warehousing/components/WarehouseRecordDetailItem.vue";
export default { export default {
components: { components: {
WarehouseAreaSelect WarehouseAreaSelect,WarehouseRecordDetailItem
}, },
filters: {parseTime}, filters: {parseTime},
props:{ props:{
...@@ -188,9 +202,14 @@ export default { ...@@ -188,9 +202,14 @@ export default {
quantityAll:0 quantityAll:0
}, },
pictureUrls:[], pictureUrls:[],
mvShow:false mvShow:false,
boxShow:false,
// 特性列表
attrList: [],
boxData: []
} }
}, },
computed:{ computed:{
info(){ info(){
return this.orderDetail || this.order return this.orderDetail || this.order
...@@ -235,6 +254,7 @@ export default { ...@@ -235,6 +254,7 @@ export default {
} }
this.getOrderWarehouseIn() this.getOrderWarehouseIn()
this.productAttrList = (await getProductAttrList()).data this.productAttrList = (await getProductAttrList()).data
this.getAttrList()
}, },
methods:{ methods:{
// 获取储位名称 // 获取储位名称
...@@ -291,7 +311,35 @@ export default { ...@@ -291,7 +311,35 @@ export default {
}, },
closeMv(){ closeMv(){
this.mvShow = false this.mvShow = false
} },
closeBox(){
this.boxData = []
this.boxShow = false
},
seeBox(data){
data.forEach(e => {
let bg = {}
if (e.boxGauge) {
const boxGauge = e.boxGauge.split('*')
// e.boxGauge1 = boxGauge[0]
// e.boxGauge2 = boxGauge[1]
// e.boxGauge3 = boxGauge[2]
bg = {
boxGauge1: boxGauge[0],
boxGauge2: boxGauge[1],
boxGauge3: boxGauge[2]
}
}
this.boxData.push({...e, ...bg})
})
this.boxShow = true
},
/** 获取产品属性列表 */
getAttrList() {
getProductAttrList().then(response => {
this.attrList = response.data;
})
},
} }
} }
</script> </script>
......
...@@ -4,7 +4,14 @@ ...@@ -4,7 +4,14 @@
<el-button v-if="info.transportId==3" style="position:absolute;top:15px;left:340px" type="primary" @click="seePackLog">{{$t('查看打包历史')}}</el-button> <el-button v-if="info.transportId==3" style="position:absolute;top:15px;left:340px" type="primary" @click="seePackLog">{{$t('查看打包历史')}}</el-button>
<el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList"> <el-table v-if="warehouseItem && warehouseItem.orderWarehouseInBackItemDoList" :data="warehouseItem.orderWarehouseInBackItemDoList">
<el-table-column type="index" :label="$t('序号')" /> <el-table-column type="index" :label="$t('序号')" />
<el-table-column :label="$t('箱数')" prop="cartonsNum" /> <el-table-column :label="$t('箱数')" prop="cartonsNum">
<template slot-scope="{row}">
<template v-if="row.orderWarehouseInDetailsVOList && row.orderWarehouseInDetailsVOList.length">
<WarehouseRecordDetail v-model="row.orderWarehouseInDetailsVOList" text readonly />
</template>
<template v-else>{{ row.cartonsNum }}</template>
</template>
</el-table-column>
<el-table-column :label="$t('入仓类型')" prop="cartonsNum"> <el-table-column :label="$t('入仓类型')" prop="cartonsNum">
<template slot-scope="{row}"> <template slot-scope="{row}">
<dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" /> <dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType" />
...@@ -60,8 +67,10 @@ import { DICT_TYPE } from '@/utils/dict' ...@@ -60,8 +67,10 @@ import { DICT_TYPE } from '@/utils/dict'
import { parseTime } from '@/utils/ruoyi' import { parseTime } from '@/utils/ruoyi'
import WarehouseAreaSelect from "@/components/WarehouseAreaSelect" import WarehouseAreaSelect from "@/components/WarehouseAreaSelect"
import ImageDisplay from "@/views/ecw/order/components/imageDisplay.vue"; import ImageDisplay from "@/views/ecw/order/components/imageDisplay.vue";
import WarehouseRecordDetail from '@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue'
export default { export default {
components: { components: {
WarehouseRecordDetail,
ImageDisplay, ImageDisplay,
WarehouseAreaSelect WarehouseAreaSelect
}, },
...@@ -124,7 +133,7 @@ export default { ...@@ -124,7 +133,7 @@ export default {
}) })
}, },
seePackLog(){ seePackLog(){
this.$emit('openPackHistory',2) this.$emit('openPackHistory',this.orderItemId)
} }
} }
} }
......
...@@ -868,9 +868,8 @@ export default { ...@@ -868,9 +868,8 @@ export default {
return JSON.parse(note) return JSON.parse(note)
}, },
//查看打包历史 //查看打包历史
openPackHistory(){ openPackHistory(id){
this.shopPackId = id
this.shopPackId = this.showWarehouseInItemId
}, },
//查看打包历史详情 //查看打包历史详情
showPackDetail(packAfterData){ showPackDetail(packAfterData){
......
...@@ -373,7 +373,7 @@ ...@@ -373,7 +373,7 @@
</template> </template>
<!--不可出--> <!--不可出-->
<template v-if="include(scope.row.airShipment, [2,3,4])"> <template v-if="include(scope.row.airShipment, [2,3,4]) && scope.row.status < 11">
<el-dropdown-item @click.native="setCanNotShipment(scope.row)" v-hasPermi="['ecw:order:setCanNotShipment']">{{$t('不可出')}}</el-dropdown-item> <el-dropdown-item @click.native="setCanNotShipment(scope.row)" v-hasPermi="['ecw:order:setCanNotShipment']">{{$t('不可出')}}</el-dropdown-item>
</template> </template>
</el-dropdown-menu> </el-dropdown-menu>
......
<script>
import ImageAndVideoUpload from '@/components/ImageAndVideoUpload'
export default {
components: {ImageAndVideoUpload},
props:{
value:{
type:Array,
default:() => []
},
readonly: Boolean
},
data(){
return {
show: false,
pictureUrls:[]
}
},
watch:{
show(){
if(!this.show){
this.$emit('close', this.pictureUrls)
}
},
pictureUrls(){
if(this.value == this.pictureUrls) return
this.$emit('input', this.pictureUrls)
}
},
created() {
this.pictureUrls = this.value
this.show = true
},
methods:{
onBeforeClose(){
this.show = false
}
}
}
</script>
<template>
<el-dialog :visible.sync="show" :before-close="onBeforeClose">
<image-and-video-upload v-model="pictureUrls" readonly></image-and-video-upload>
</el-dialog>
</template>
...@@ -203,7 +203,14 @@ ...@@ -203,7 +203,14 @@
</el-table> </el-table>
</el-form> </el-form>
</el-card> </el-card>
<el-card style="margin-top: 15px;">
<div slot="header" class="clearfix">
<span style="font-size: 18px">{{$t('入仓影像')}}</span>
</div>
<div>
<image-and-video-upload :fileSize="50" :isShowTip="true" v-model="pictureUrls" ></image-and-video-upload>
</div>
</el-card>
<span slot="footer"> <span slot="footer">
<el-button type="primary" @click="handleSubmit">{{ $t('完成打包') }}</el-button> <el-button type="primary" @click="handleSubmit">{{ $t('完成打包') }}</el-button>
<el-button @click="handleClose">{{ $t('返回')}}</el-button> <el-button @click="handleClose">{{ $t('返回')}}</el-button>
...@@ -223,11 +230,13 @@ import {getProductAttrList} from "@/api/ecw/productAttr" ...@@ -223,11 +230,13 @@ import {getProductAttrList} from "@/api/ecw/productAttr"
import {getProductTypeList} from "@/api/ecw/productType" import {getProductTypeList} from "@/api/ecw/productType"
import {addProduct} from "@/api/ecw/product" import {addProduct} from "@/api/ecw/product"
import WarehouseRecordDetail from "@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue"; import WarehouseRecordDetail from "@/views/ecw/order/warehousing/components/WarehouseRecordDetail.vue";
import ImageAndVideoUpload from "@/components/ImageAndVideoUpload/index.vue";
export default { export default {
name: "Package", name: "Package",
components: { components: {
ImageAndVideoUpload,
WarehouseRecordDetail, WarehouseRecordDetail,
ProductSelector, ProductSelector,
WarehouseAreaSelect, WarehouseAreaSelect,
...@@ -423,11 +432,14 @@ export default { ...@@ -423,11 +432,14 @@ export default {
//类型列表 //类型列表
typeList: [], typeList: [],
// 特性列表 // 特性列表
attrList: [] attrList: [],
pictureUrls: []
} }
}, },
created() { async created() {
this.visible = true this.visible = true
this.$nextTick()
this.pictureUrls = this.orderItemB.pictureUrls || []
}, },
methods: { methods: {
init(){ init(){
...@@ -538,6 +550,7 @@ export default { ...@@ -538,6 +550,7 @@ export default {
orderLocationCreateReqVOList: e.orderLocationBackVOList orderLocationCreateReqVOList: e.orderLocationBackVOList
} }
}), }),
pictureUrls: this.pictureUrls
}).then(r => { }).then(r => {
if (r.data) { if (r.data) {
this.$message.success('打包成功') this.$message.success('打包成功')
......
...@@ -9,7 +9,58 @@ ...@@ -9,7 +9,58 @@
<el-table <el-table
v-if="order.orderItemVOList && order.orderItemVOList.length > 0 && orderItemList && orderItemList.length > 0" v-if="order.orderItemVOList && order.orderItemVOList.length > 0 && orderItemList && orderItemList.length > 0"
:data="order.orderItemVOList || []" :data="order.orderItemVOList || []"
default-expand-all
style="width: 100%"> style="width: 100%">
<!--入仓记录-->
<el-table-column type="expand">
<template slot-scope="props">
<div style="padding-left: 80px">
<el-table v-if="wareItem(props.row.orderItemId).orderWarehouseInBackItemDoList" :data="wareItem(props.row.orderItemId).orderWarehouseInBackItemDoList">
<el-table-column :label="$t('序号')">
<template slot-scope="{row, column, $index}">
{{$index + 1}}
</template>
</el-table-column>
<el-table-column prop="cartonsNum" :label="$t('箱数')"></el-table-column>
<el-table-column prop="areaName" :label="$t('入仓类型')">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE" :value="row.specificationType"></dict-tag>
</template>
</el-table-column>
<el-table-column prop="areaName" :label="$t('包装类型')">
<template v-slot="{row}">
<dict-tag :type="DICT_TYPE.ECW_PACKAGING_TYPE" :value="row.unit"></dict-tag>
</template>
</el-table-column>
<el-table-column prop="areaName" :label="$t('长')">
<template v-slot="{row}">{{row.boxGauge.split('*')[0]}}</template>
</el-table-column>
<el-table-column prop="areaName" :label="$t('宽')">
<template v-slot="{row}">{{row.boxGauge.split('*')[1]}}</template>
</el-table-column>
<el-table-column prop="areaName" :label="$t('高')">
<template v-slot="{row}">{{row.boxGauge.split('*')[2]}}</template>
</el-table-column>
<el-table-column prop="volume" :label="$t('体积')+'(m³)'"></el-table-column>
<el-table-column prop="weight" :label="$t('重量')+'(kg)'"></el-table-column>
<el-table-column prop="quantityAll" :label="$t('数量') + '(个)'"></el-table-column>
<el-table-column prop="expressNo" :label="$t('快递单号')"></el-table-column>
<!--<el-table-column prop="areaName" :label="$t('首次入仓时间')"></el-table-column>-->
<el-table-column prop="areaName" :label="$t('储位')">
<template v-slot="{row}">
{{row.orderLocationStr4Merge}}
</template>
</el-table-column>
<el-table-column prop="areaName" :label="$t('影像')">
<template v-slot="{row}">
<el-button type="text" @click="showMedia(props.row)">{{$t('查看')}}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
<el-table-column <el-table-column
type="index" type="index"
width="50" width="50"
...@@ -134,7 +185,7 @@ ...@@ -134,7 +185,7 @@
<span style="font-size: 18px">{{$t('入仓影像')}}</span> <span style="font-size: 18px">{{$t('入仓影像')}}</span>
</div> </div>
<div> <div>
<image-and-video-upload :fileSize="50" :isShowTip="true" v-model="form.exceptionUrls" ></image-and-video-upload> <image-and-video-upload :fileSize="50" :isShowTip="true" v-model="pictureUrls" readonly ></image-and-video-upload>
</div> </div>
</el-card> </el-card>
<div style="text-align: center;margin-top: 15px"> <div style="text-align: center;margin-top: 15px">
...@@ -171,6 +222,7 @@ ...@@ -171,6 +222,7 @@
v-if="!!packageOrderItem" v-if="!!packageOrderItem"
@close="onPackageClose" @close="onPackageClose"
></package> ></package>
<media-dialog v-if="curPictrues" :value="curPictrues" @close="curPictrues=null"></media-dialog>
</div> </div>
</template> </template>
...@@ -195,11 +247,13 @@ import ImageAndVideoUpload from '@/components/ImageAndVideoUpload' ...@@ -195,11 +247,13 @@ import ImageAndVideoUpload from '@/components/ImageAndVideoUpload'
import Package from './components/Package' import Package from './components/Package'
import Template from "@/views/cms/template/index.vue"; import Template from "@/views/cms/template/index.vue";
import {getProductAttrList} from "@/api/ecw/productAttr"; import {getProductAttrList} from "@/api/ecw/productAttr";
import MediaDialog from "@/views/ecw/order/stocking/components/MediaDialog.vue";
export default { export default {
name: "Stocking", name: "Stocking",
components: { components: {
MediaDialog,
Template, Template,
orderBaseInfo, orderBaseInfo,
WarehouseAreaDialog, WarehouseAreaDialog,
...@@ -274,7 +328,9 @@ export default { ...@@ -274,7 +328,9 @@ export default {
packageOrderItem: null, packageOrderItem: null,
// 打包商品的入仓商品项 // 打包商品的入仓商品项
packageWarehouseItem: null, packageWarehouseItem: null,
productAttrList: [] productAttrList: [],
// 当前查看的影像
curPictrues: null
} }
}, },
...@@ -365,6 +421,14 @@ export default { ...@@ -365,6 +421,14 @@ export default {
this.packageOrderItem=null; this.packageOrderItem=null;
this.packageOrderItem=null; this.packageOrderItem=null;
this.getList() this.getList()
},
showMedia(orderItem){
console.log('查看影像', orderItem)
const wareItem = this.wareItem(orderItem.orderItemId)
if(!wareItem.pictureUrls){
return this.$message.info(this.$t('暂无影像'))
}
this.curPictrues = wareItem.pictureUrls || []
} }
}, },
watch: { watch: {
...@@ -422,6 +486,15 @@ export default { ...@@ -422,6 +486,15 @@ export default {
}) })
return arr.join(",") return arr.join(",")
} }
},
// 全部入仓记录的入仓影像
pictureUrls(){
let urls = []
this.orderItemList.forEach(item => {
console.log('pictureUrls', item.pictureUrls)
urls = urls.concat(item.pictureUrls || [])
})
return urls
} }
} }
} }
......
...@@ -70,10 +70,19 @@ ...@@ -70,10 +70,19 @@
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item :label="$t('入仓时间')" v-if="!edit">
<el-date-picker v-model="form.inTime" type="datetime" :placeholder="$t('请选择入仓时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :label="$t('用途')">
<el-checkbox-group v-model="form.usageIds">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value">{{ $l(item, 'label') }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-form-item :label="$t('入仓时间')" v-if="!edit">
<el-date-picker v-model="form.inTime" type="datetime" :placeholder="$t('请选择入仓时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-form> </el-form>
<el-card class="box-card"> <el-card class="box-card">
...@@ -289,10 +298,20 @@ ...@@ -289,10 +298,20 @@
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item :label="$t('入仓时间')">
<el-date-picker v-model="form1.inTime" type="datetime" :placeholder="$t('请选择入仓时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="16">
<el-form-item :label="$t('用途')">
<el-checkbox-group v-model="form1.usageIds">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value">{{ $l(item, 'label') }}</el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-form-item :label="$t('入仓时间')">
<el-date-picker v-model="form1.inTime" type="datetime" :placeholder="$t('请选择入仓时间')" value-format="yyyy-MM-dd HH:mm:ss"></el-date-picker>
</el-form-item>
</el-form> </el-form>
<el-card class="box-card"> <el-card class="box-card">
...@@ -418,6 +437,7 @@ ...@@ -418,6 +437,7 @@
</el-table-column> </el-table-column>
<el-table-column :label="$t('操作')"> <el-table-column :label="$t('操作')">
<template v-slot="{ row, column, $index}"> <template v-slot="{ row, column, $index}">
<WarehouseRecordDetail v-model="form1.table[$index].orderWarehouseInDetailsVOList" />
<el-popconfirm <el-popconfirm
title="确定要删除该行入仓记录吗?" title="确定要删除该行入仓记录吗?"
@confirm="handleDeleteRow($index, 1)" @confirm="handleDeleteRow($index, 1)"
...@@ -671,7 +691,8 @@ export default { ...@@ -671,7 +691,8 @@ export default {
type: undefined, type: undefined,
feeType: undefined, feeType: undefined,
recordMode: undefined, recordMode: undefined,
pictureUrls: [] pictureUrls: [],
usageIds: []
}, },
form1: { form1: {
table: [], table: [],
...@@ -690,7 +711,8 @@ export default { ...@@ -690,7 +711,8 @@ export default {
type: 1, type: 1,
feeType: undefined, feeType: undefined,
recordMode: undefined, recordMode: undefined,
pictureUrls: [] pictureUrls: [],
usageIds: []
}, },
brandList: [], brandList: [],
brandList1: [], brandList1: [],
...@@ -769,6 +791,7 @@ export default { ...@@ -769,6 +791,7 @@ export default {
this.form.type = this.warehousing.type this.form.type = this.warehousing.type
this.form.feeType = this.warehousing.feeType this.form.feeType = this.warehousing.feeType
this.form.pictureUrls = this.warehousing.pictureUrls this.form.pictureUrls = this.warehousing.pictureUrls
this.form.usageIds = this.warehousing.usageIds?.split(',') || []
this.warehousing.orderWarehouseInBackItemDoList.forEach(e => { this.warehousing.orderWarehouseInBackItemDoList.forEach(e => {
let bg = {} let bg = {}
...@@ -853,6 +876,7 @@ export default { ...@@ -853,6 +876,7 @@ export default {
orderItemId: undefined, orderItemId: undefined,
orderNo: this.warehousing.orderNo, orderNo: this.warehousing.orderNo,
warehouseInProdAttrIds: this.form1.warehouseInProdAttrIds.join(','), warehouseInProdAttrIds: this.form1.warehouseInProdAttrIds.join(','),
usageIds: this.form1.usageIds.join(','),
orderWarehouseInItemDoList: this.form1.table.map(e => { orderWarehouseInItemDoList: this.form1.table.map(e => {
return { return {
...e, ...e,
...@@ -900,6 +924,7 @@ export default { ...@@ -900,6 +924,7 @@ export default {
weight: (+this.warehousing.weight)?.toFixed(2) || '', weight: (+this.warehousing.weight)?.toFixed(2) || '',
prodId: this.form.prodId, prodId: this.form.prodId,
warehouseInProdAttrIds: this.form.warehouseInProdAttrIds.join(','), warehouseInProdAttrIds: this.form.warehouseInProdAttrIds.join(','),
usageIds: this.form.usageIds.join(','),
"orderWarehouseInUpdateItemDoList": this.form.table.map(e => { "orderWarehouseInUpdateItemDoList": this.form.table.map(e => {
return { return {
...e, ...e,
...@@ -930,6 +955,7 @@ export default { ...@@ -930,6 +955,7 @@ export default {
orderNo: this.warehousing.orderNo, orderNo: this.warehousing.orderNo,
isAppend: this.isAdd ? true : undefined, isAppend: this.isAdd ? true : undefined,
warehouseInProdAttrIds: this.form.warehouseInProdAttrIds.join(','), warehouseInProdAttrIds: this.form.warehouseInProdAttrIds.join(','),
usageIds: this.form.usageIds.join(','),
orderWarehouseInItemDoList: this.form.table.map(e => { orderWarehouseInItemDoList: this.form.table.map(e => {
return { return {
...e, ...e,
......
<template> <template>
<div style="display: inline-block"> <div style="display: inline-block">
<el-button size="mini" type="primary" style="margin-right: 10px" @click="handleOpen">{{ title }}</el-button> <template v-if="text">
<el-button size="mini" type="text" style="margin-right: 10px" @click="handleOpen">{{ value.length }}(混箱)</el-button>
</template>
<template v-else>
<el-button size="mini" type="primary" style="margin-right: 10px" @click="handleOpen">{{ title }}</el-button>
</template>
<el-dialog <el-dialog
append-to-body append-to-body
:title="title" :title="title"
...@@ -48,6 +53,10 @@ export default { ...@@ -48,6 +53,10 @@ export default {
readonly: { readonly: {
type: Boolean, type: Boolean,
default: false default: false
},
text: {
type: Boolean,
default: false
} }
}, },
...@@ -73,7 +82,7 @@ export default { ...@@ -73,7 +82,7 @@ export default {
"cartonsNum": undefined, "cartonsNum": undefined,
"createTime": "", "createTime": "",
"expressNo": "", "expressNo": "",
"prodAttrIds": [], "prodAttrIds": '',
"prodId": undefined, "prodId": undefined,
"quantityAll": undefined, "quantityAll": undefined,
"specificationType": undefined, "specificationType": undefined,
...@@ -99,7 +108,7 @@ export default { ...@@ -99,7 +108,7 @@ export default {
"cartonsNum": undefined, "cartonsNum": undefined,
"createTime": "", "createTime": "",
"expressNo": "", "expressNo": "",
"prodAttrIds": [], "prodAttrIds": '',
"prodId": undefined, "prodId": undefined,
"quantityAll": undefined, "quantityAll": undefined,
"specificationType": undefined, "specificationType": undefined,
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="12"> <el-col :span="12">
<el-form-item :label="$t('中文品名')"> <el-form-item :label="$t('中文品名')">
<product-selector v-model="value.prodId" determined protect-once :disabled="readonly" /> <product-selector v-model="value.prodId" @change="onProductChange" determined :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -43,40 +43,33 @@ ...@@ -43,40 +43,33 @@
<el-checkbox-group v-model="usageIds"> <el-checkbox-group v-model="usageIds">
<el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value" :disabled="readonly">{{ $l(item, 'label') }}</el-checkbox> <el-checkbox v-for="item in getDictDatas(DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE)" :key="item.value" :label="item.value" :disabled="readonly">{{ $l(item, 'label') }}</el-checkbox>
</el-checkbox-group> </el-checkbox-group>
<!-- <dict-selector
v-model="usageIds"
:type="DICT_TYPE.WAREHOUSING_RECORD_DETAIL_USAGE"
multiple
form-type="checkbox"
:disabled="readonly"
></dict-selector>-->
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="10"> <el-row :gutter="10">
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('长')"> <el-form-item :label="$t('长')">
<el-input v-model="boxGauge1" :disabled="readonly" /> <el-input v-model="boxGauge1" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('宽')"> <el-form-item :label="$t('宽')">
<el-input v-model="boxGauge2" :disabled="readonly" /> <el-input v-model="boxGauge2" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('高')"> <el-form-item :label="$t('高')">
<el-input v-model="boxGauge3" :disabled="readonly" /> <el-input v-model="boxGauge3" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('重量')"> <el-form-item :label="$t('重量')">
<el-input v-model="value.weight" :disabled="readonly" /> <el-input v-model="value.weight" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('体积')"> <el-form-item :label="$t('体积')">
<el-input v-model="value.volume" :disabled="readonly" /> <el-input v-model="value.volume" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -93,7 +86,7 @@ ...@@ -93,7 +86,7 @@
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-form-item :label="$t('数量')"> <el-form-item :label="$t('数量')">
<el-input v-model="value.quantityAll" :disabled="readonly" /> <el-input v-model="value.quantityAll" type="number" :disabled="readonly" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -150,14 +143,16 @@ export default { ...@@ -150,14 +143,16 @@ export default {
await getProductBrank(this.value.brand).then(r => { await getProductBrank(this.value.brand).then(r => {
this.brandList = [r.data] this.brandList = [r.data]
}) })
} else {
this.getProductBrandPage()
} }
if (typeof this.value.prodAttrIds === 'string') { if (typeof this.value.prodAttrIds === 'string' && this.value.prodAttrIds.length > 0) {
this.prodAttrIds = this.value.prodAttrIds.split(',').map(e => +e) || [] this.prodAttrIds.push(...this.value.prodAttrIds.split(',').map(e => +e))
} }
console.log(this.prodAttrIds)
if (this.value.usageIds) { if (this.value.usageIds) {
console.log('this.value.usageIds',this.value.usageIds)
await this.$nextTick() await this.$nextTick()
this.usageIds = this.value.usageIds.split(',') || [] this.usageIds = this.value.usageIds.split(',') || []
} }
...@@ -186,6 +181,12 @@ export default { ...@@ -186,6 +181,12 @@ export default {
}, },
handleDelete() { handleDelete() {
this.$emit('handle-delete') this.$emit('handle-delete')
},
onProductChange(product){
if (!product || this.readonly) {
return
}
this.prodAttrIds = product.attrId ? product.attrId.split(',').map(e => +e) : []
} }
}, },
watch: { watch: {
...@@ -193,19 +194,46 @@ export default { ...@@ -193,19 +194,46 @@ export default {
this.value.prodAttrIds = val.join(',') this.value.prodAttrIds = val.join(',')
}, },
usageIds(val) { usageIds(val) {
console.log('val', val)
this.$nextTick(() => { this.$nextTick(() => {
this.value.usageIds = val.join(',') this.value.usageIds = val.join(',')
}) })
}, },
boxGauge1() { boxGauge1() {
if (this.boxGauge1 < 0 ) {
this.boxGauge1 = -this.boxGauge1
}
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3 this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
}, },
boxGauge2() { boxGauge2() {
if (this.boxGauge2 < 0 ) {
this.boxGauge2 = -this.boxGauge2
}
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3 this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
}, },
boxGauge3() { boxGauge3() {
if (this.boxGauge3 < 0 ) {
this.boxGauge3 = -this.boxGauge3
}
this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3 this.value.boxGauge = this.boxGauge1 + '*' + this.boxGauge2 + '*' + this.boxGauge3
this.value.volume = (this.boxGauge1 * this.boxGauge2 * this.boxGauge3 / 1000000).toFixed(2)
},
'value.volume'() {
if (this.value.volume < 0) {
this.value.volume = -this.value.volume
}
},
'value.quantityAll'() {
if (this.value.quantityAll < 0) {
this.value.quantityAll = -this.value.quantityAll
}
},
'value.weight'() {
if (this.value.weight < 0) {
this.value.weight = -this.value.weight
}
} }
} }
} }
......
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