|
@@ -1,6 +1,6 @@
|
|
|
<template>
|
|
|
<div class="detail-container">
|
|
|
- <el-page-header @back="goBack" content="详情"></el-page-header>
|
|
|
+ <el-page-header content="详情" @back="goBack" />
|
|
|
<div class="main-title">
|
|
|
<div class="title">提货进度</div>
|
|
|
</div>
|
|
@@ -11,7 +11,7 @@
|
|
|
:percentage="
|
|
|
detailData.thjd ? ((detailData.thjd * 1000) / 10).toFixed(2) : 0
|
|
|
"
|
|
|
- ></el-progress>
|
|
|
+ />
|
|
|
</div>
|
|
|
|
|
|
<div class="main-title">
|
|
@@ -83,48 +83,42 @@
|
|
|
show-summary
|
|
|
:summary-method="$getSummaries"
|
|
|
>
|
|
|
- <el-table-column
|
|
|
- align="center"
|
|
|
- label="序号"
|
|
|
- type="index"
|
|
|
- width="50"
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column align="center" label="序号" type="index" width="50" />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="销售类型"
|
|
|
prop="saleTypeName"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="产品编码"
|
|
|
prop="materialCode"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="产品名称"
|
|
|
prop="materialName"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="规格型号"
|
|
|
prop="specification"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="单位"
|
|
|
prop="unit"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="单价"
|
|
@@ -142,7 +136,7 @@
|
|
|
prop="qty"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="订单金额"
|
|
@@ -236,7 +230,7 @@
|
|
|
prop="directTransferQty"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
|
|
|
<!-- <el-table-column
|
|
|
align="center"
|
|
@@ -251,37 +245,36 @@
|
|
|
prop="oldQty"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="备注"
|
|
|
prop="remark"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="税率"
|
|
|
prop="tax"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<div class="page-footer">
|
|
|
<div class="footer" :class="classObj">
|
|
|
<el-button
|
|
|
:type="status ? 'info' : 'primary'"
|
|
|
- @click="openDeliverDialog"
|
|
|
:disabled="detailData.examineStatus !== 'OK' || status"
|
|
|
- >直调发货</el-button
|
|
|
- >
|
|
|
+ @click="openDeliverDialog"
|
|
|
+ >直调发货</el-button>
|
|
|
<el-button
|
|
|
+ v-if="isCustomer"
|
|
|
:type="status ? 'info' : 'primary'"
|
|
|
- @click="handleFinish"
|
|
|
:disabled="detailData.examineStatus !== 'OK' || status"
|
|
|
- >直调完成</el-button
|
|
|
- >
|
|
|
+ @click="handleFinish"
|
|
|
+ >直调完成</el-button>
|
|
|
<!-- <el-button @click="goBack">关 闭</el-button> -->
|
|
|
</div>
|
|
|
</div>
|
|
@@ -334,28 +327,27 @@
|
|
|
value-format="yyyy-MM-dd"
|
|
|
style="width: 100%"
|
|
|
placeholder="选择日期"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :xs="8" :sm="8" :lg="8">
|
|
|
- <el-form-item label="发货仓库" prop="warehouse">
|
|
|
- <el-select
|
|
|
- v-model="deliverForm.warehouse"
|
|
|
- placeholder="请选择发货仓库"
|
|
|
- style="width: 100%"
|
|
|
- filterable
|
|
|
- @change="changeWarehouse"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in warehouseList"
|
|
|
- :key="item.id"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
+<!-- <el-col :xs="8" :sm="8" :lg="8">-->
|
|
|
+<!-- <el-form-item label="发货仓库" prop="warehouse">-->
|
|
|
+<!-- <el-select-->
|
|
|
+<!-- v-model="deliverForm.warehouse"-->
|
|
|
+<!-- placeholder="请选择发货仓库"-->
|
|
|
+<!-- style="width: 100%"-->
|
|
|
+<!-- filterable-->
|
|
|
+<!-- @change="changeWarehouse"-->
|
|
|
+<!-- >-->
|
|
|
+<!-- <el-option-->
|
|
|
+<!-- v-for="item in warehouseList"-->
|
|
|
+<!-- :key="item.id"-->
|
|
|
+<!-- :label="item.name"-->
|
|
|
+<!-- :value="item.id"-->
|
|
|
+<!-- />-->
|
|
|
+<!-- </el-select>-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- </el-col>-->
|
|
|
<el-col :xs="8" :sm="8" :lg="8">
|
|
|
<el-form-item label="选择仓位" prop="position">
|
|
|
<el-select
|
|
@@ -369,7 +361,7 @@
|
|
|
:key="item.id"
|
|
|
:label="item.name"
|
|
|
:value="item.id"
|
|
|
- ></el-option>
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
@@ -393,56 +385,56 @@
|
|
|
label="序号"
|
|
|
type="index"
|
|
|
width="50"
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="销售类型"
|
|
|
prop="saleTypeName"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="产品编码"
|
|
|
prop="materialCode"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="产品名称"
|
|
|
prop="materialName"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="规格型号"
|
|
|
prop="specification"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="单位"
|
|
|
prop="unit"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="订单数量"
|
|
|
prop="refundableQty"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="发货数量"
|
|
|
prop="hasSendQty"
|
|
|
min-width="100"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
<el-table-column
|
|
|
align="center"
|
|
|
label="直调数量"
|
|
@@ -456,7 +448,7 @@
|
|
|
size="small"
|
|
|
type="number"
|
|
|
:disabled="!scope.row.isDirectTransfer"
|
|
|
- ></el-input>
|
|
|
+ />
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
@@ -499,7 +491,7 @@
|
|
|
prop="remark"
|
|
|
min-width="160"
|
|
|
show-overflow-tooltip
|
|
|
- ></el-table-column>
|
|
|
+ />
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
@@ -511,94 +503,94 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { getDetail } from "@/api/supply/policy";
|
|
|
-import {
|
|
|
- getWarehouseList,
|
|
|
- adjustDeliver,
|
|
|
- finishData,
|
|
|
-} from "@/api/supply/retail";
|
|
|
+import { getDetail } from '@/api/supply/policy'
|
|
|
+import { adjustDeliver, finishData, getPositionList, getWarehouseList } from '@/api/supply/retail'
|
|
|
+import { mapState } from 'vuex'
|
|
|
+
|
|
|
export default {
|
|
|
- name: "RetailDetail",
|
|
|
- componentName: "RetailDetail",
|
|
|
- props: ["listItem"],
|
|
|
+ name: 'RetailDetail',
|
|
|
+ componentName: 'RetailDetail',
|
|
|
filters: {
|
|
|
statusFilter(val) {
|
|
|
const statusList = [
|
|
|
- { label: "已保存", value: "SAVE" },
|
|
|
- { label: "待审核", value: "WAIT" },
|
|
|
- { label: "审核通过", value: "OK" },
|
|
|
- { label: "审核驳回", value: "FAIL" },
|
|
|
- ];
|
|
|
- let obj = statusList.find((o) => o.value == val);
|
|
|
- return obj ? obj.label : "";
|
|
|
- },
|
|
|
+ { label: '已保存', value: 'SAVE' },
|
|
|
+ { label: '待审核', value: 'WAIT' },
|
|
|
+ { label: '审核通过', value: 'OK' },
|
|
|
+ { label: '审核驳回', value: 'FAIL' }
|
|
|
+ ]
|
|
|
+ const obj = statusList.find((o) => o.value == val)
|
|
|
+ return obj ? obj.label : ''
|
|
|
+ }
|
|
|
},
|
|
|
+ props: ['listItem'],
|
|
|
data() {
|
|
|
return {
|
|
|
detailData: {},
|
|
|
|
|
|
isShowDeliverDialog: false,
|
|
|
deliverForm: {
|
|
|
- date: "",
|
|
|
- warehouse: "",
|
|
|
- position: "",
|
|
|
+ date: '',
|
|
|
+ warehouse: '',
|
|
|
+ position: ''
|
|
|
},
|
|
|
deliverFormRules: {
|
|
|
date: [
|
|
|
- { required: true, message: "请选择发货日期", trigger: "change" },
|
|
|
- ],
|
|
|
- warehouse: [
|
|
|
- { required: true, message: "请选择发货仓库", trigger: "change" },
|
|
|
+ { required: true, message: '请选择发货日期', trigger: 'change' }
|
|
|
],
|
|
|
position: [
|
|
|
- { required: true, message: "请选择仓位", trigger: "change" },
|
|
|
+ { required: true, message: '请选择虚拟仓位', trigger: 'change' }
|
|
|
],
|
|
|
},
|
|
|
warehouseList: [],
|
|
|
positionList: [],
|
|
|
|
|
|
goodsList: [],
|
|
|
- status: false,
|
|
|
- };
|
|
|
+ status: false
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
computed: {
|
|
|
sidebar() {
|
|
|
- return this.$store.state.app.sidebar;
|
|
|
+ return this.$store.state.app.sidebar
|
|
|
},
|
|
|
classObj() {
|
|
|
return {
|
|
|
hideSidebar: !this.sidebar.opened,
|
|
|
- openSidebar: this.sidebar.opened,
|
|
|
- };
|
|
|
+ openSidebar: this.sidebar.opened
|
|
|
+ }
|
|
|
},
|
|
|
isExamine() {
|
|
|
return (
|
|
|
- this.detailData.examineStatus === "OK" ||
|
|
|
- this.detailData.examineStatus === "FAIL"
|
|
|
- );
|
|
|
+ this.detailData.examineStatus === 'OK' ||
|
|
|
+ this.detailData.examineStatus === 'FAIL'
|
|
|
+ )
|
|
|
},
|
|
|
progress() {
|
|
|
- if (this.detailData.totalQty == 0) return 0;
|
|
|
- return (this.detailData.takeQty * 100) / (this.detailData.totalQty * 100);
|
|
|
+ if (this.detailData.totalQty == 0) return 0
|
|
|
+ return (this.detailData.takeQty * 100) / (this.detailData.totalQty * 100)
|
|
|
},
|
|
|
+ ...mapState({
|
|
|
+ isCustomer: ({ user }) => {
|
|
|
+ return !(user.customerName || user.customerNumber)
|
|
|
+ }
|
|
|
+ })
|
|
|
},
|
|
|
|
|
|
created() {
|
|
|
- this.getDetail();
|
|
|
+ this.getDetail()
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
// 返回列表
|
|
|
goBack() {
|
|
|
- this.$emit("backListFormDetail");
|
|
|
+ this.$emit('backListFormDetail')
|
|
|
},
|
|
|
// 是否直调完成
|
|
|
directTransferStatus(val) {
|
|
|
this.status = val.retailOrderItemList.some((k) => {
|
|
|
- return k.directTransferStatus == true;
|
|
|
- });
|
|
|
- console.log(this.status, "4554545");
|
|
|
+ return k.directTransferStatus == true
|
|
|
+ })
|
|
|
+ console.log(this.status, '4554545')
|
|
|
},
|
|
|
// 获取详情
|
|
|
getDetail() {
|
|
@@ -606,71 +598,80 @@ export default {
|
|
|
if (res.data.retailOrderItemList) {
|
|
|
res.data.retailOrderItemList.forEach((item) => {
|
|
|
item.sums1 = [
|
|
|
- "directTransferQty",
|
|
|
- "qty",
|
|
|
- "refundableQty",
|
|
|
- "oldQty",
|
|
|
- ];
|
|
|
+ 'directTransferQty',
|
|
|
+ 'qty',
|
|
|
+ 'refundableQty',
|
|
|
+ 'oldQty'
|
|
|
+ ]
|
|
|
item.sums2 = [
|
|
|
- "totalAmount",
|
|
|
- "payAmount",
|
|
|
- "price",
|
|
|
- "payRebateAmount",
|
|
|
- "discAmount",
|
|
|
- "totalDiscAmount",
|
|
|
- ];
|
|
|
- });
|
|
|
+ 'totalAmount',
|
|
|
+ 'payAmount',
|
|
|
+ 'price',
|
|
|
+ 'payRebateAmount',
|
|
|
+ 'discAmount',
|
|
|
+ 'totalDiscAmount'
|
|
|
+ ]
|
|
|
+ })
|
|
|
}
|
|
|
- this.detailData = res.data;
|
|
|
- this.directTransferStatus(res.data);
|
|
|
- });
|
|
|
+ this.detailData = res.data
|
|
|
+ this.directTransferStatus(res.data)
|
|
|
+ })
|
|
|
},
|
|
|
// 直调完成
|
|
|
handleFinish() {
|
|
|
- this.$confirm("此操作将直调完成, 是否继续?", "提示", {
|
|
|
- confirmButtonText: "确定",
|
|
|
- cancelButtonText: "取消",
|
|
|
- type: "warning",
|
|
|
+ this.$confirm('此操作将直调完成, 是否继续?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
})
|
|
|
.then(() => {
|
|
|
finishData({
|
|
|
- id: this.listItem.id,
|
|
|
+ id: this.listItem.id
|
|
|
}).then((res) => {
|
|
|
- this.$successMsg();
|
|
|
- this.getDetail();
|
|
|
- });
|
|
|
+ this.$successMsg()
|
|
|
+ this.getDetail()
|
|
|
+ })
|
|
|
})
|
|
|
- .catch(() => {});
|
|
|
+ .catch(() => {})
|
|
|
},
|
|
|
|
|
|
// 获取仓库列表
|
|
|
getWarehouseList() {
|
|
|
getWarehouseList({
|
|
|
pageNum: 1,
|
|
|
- pageSize: -1,
|
|
|
+ pageSize: -1
|
|
|
}).then((res) => {
|
|
|
- this.warehouseList = res.data.records;
|
|
|
- });
|
|
|
+ this.warehouseList = res.data.records
|
|
|
+ })
|
|
|
},
|
|
|
// 更改仓库
|
|
|
changeWarehouse() {
|
|
|
- this.deliverForm.position = "";
|
|
|
- let obj = this.warehouseList.find(
|
|
|
+ this.deliverForm.position = ''
|
|
|
+ const obj = this.warehouseList.find(
|
|
|
(o) => o.id == this.deliverForm.warehouse
|
|
|
- );
|
|
|
- this.positionList = obj.kingDeeStocks;
|
|
|
+ )
|
|
|
+ this.positionList = obj.kingDeeStocks
|
|
|
},
|
|
|
|
|
|
// 打开 直调发货
|
|
|
openDeliverDialog() {
|
|
|
- this.isShowDeliverDialog = true;
|
|
|
- this.goodsList = this.detailData.retailOrderItemList;
|
|
|
- this.getWarehouseList();
|
|
|
+ this.isShowDeliverDialog = true
|
|
|
+ this.goodsList = this.detailData.retailOrderItemList
|
|
|
+ this.getPositionList()
|
|
|
+ },
|
|
|
+ // 获取虚拟仓位列表
|
|
|
+ getPositionList() {
|
|
|
+ getPositionList({
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: -1,
|
|
|
+ stockType: 1
|
|
|
+ }).then(res => {
|
|
|
+ this.positionList = res.data.records;
|
|
|
+ })
|
|
|
},
|
|
|
-
|
|
|
// 关闭 直调发货
|
|
|
closeDeliverDialog() {
|
|
|
- this.isShowDeliverDialog = false;
|
|
|
+ this.isShowDeliverDialog = false
|
|
|
},
|
|
|
// 提交 直调发货
|
|
|
submitDeliverForm() {
|
|
@@ -681,33 +682,33 @@ export default {
|
|
|
!this.goodsList[i].adjustNum &&
|
|
|
this.goodsList[i].isDirectTransfer
|
|
|
) {
|
|
|
- this.$errorMsg("请输入直调数量");
|
|
|
- return;
|
|
|
+ this.$errorMsg('请输入直调数量')
|
|
|
+ return
|
|
|
}
|
|
|
}
|
|
|
- let goodsList = this.goodsList.map((item) => {
|
|
|
+ const goodsList = this.goodsList.map((item) => {
|
|
|
return {
|
|
|
itemId: item.id,
|
|
|
- qty: item.adjustNum || 0,
|
|
|
- };
|
|
|
- });
|
|
|
- let params = {
|
|
|
+ qty: item.adjustNum || 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ const params = {
|
|
|
orderNo: this.listItem.id,
|
|
|
- orderDate: this.deliverForm.date + " 00:00:00",
|
|
|
+ orderDate: this.deliverForm.date + ' 00:00:00',
|
|
|
correspondId: this.deliverForm.warehouse,
|
|
|
stockId: this.deliverForm.position,
|
|
|
- directItems: goodsList,
|
|
|
- };
|
|
|
+ directItems: goodsList
|
|
|
+ }
|
|
|
adjustDeliver(params).then((res) => {
|
|
|
- this.$successMsg();
|
|
|
- this.isShowDeliverDialog = false;
|
|
|
- this.getDetail();
|
|
|
- });
|
|
|
+ this.$successMsg()
|
|
|
+ this.isShowDeliverDialog = false
|
|
|
+ this.getDetail()
|
|
|
+ })
|
|
|
}
|
|
|
- });
|
|
|
- },
|
|
|
- },
|
|
|
-};
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|