|
|
|
@ -0,0 +1,299 @@
|
|
|
|
|
<template>
|
|
|
|
|
<el-dialog
|
|
|
|
|
:title="'生成采购单'"
|
|
|
|
|
:close-on-click-modal="false"
|
|
|
|
|
append-to-body
|
|
|
|
|
:visible.sync="visible"
|
|
|
|
|
class="JNPF-dialog JNPF-dialog_center"
|
|
|
|
|
lock-scroll
|
|
|
|
|
width="860px"
|
|
|
|
|
>
|
|
|
|
|
<el-row :gutter="15" class="">
|
|
|
|
|
<el-col :span="24"></el-col>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-row style="padding: 20px 0px;">
|
|
|
|
|
<el-col :span="5"
|
|
|
|
|
>物料编码:{{ procurementOrderItem.materialCode }}</el-col
|
|
|
|
|
>
|
|
|
|
|
<el-col :span="5"
|
|
|
|
|
>物料名称:{{ procurementOrderItem.materialName }}</el-col
|
|
|
|
|
>
|
|
|
|
|
<el-col :span="5"
|
|
|
|
|
>物料类型:{{ procurementOrderItem.materialType }}</el-col
|
|
|
|
|
>
|
|
|
|
|
<el-col :span="5"
|
|
|
|
|
>欠缺量:{{ procurementOrderItem.lackNumber }}</el-col
|
|
|
|
|
>
|
|
|
|
|
<el-col :span="4">计量单位:{{ procurementOrderItem.unit }}</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24">
|
|
|
|
|
<el-table :data="procurementOrderList" size="mini" border>
|
|
|
|
|
<el-table-column
|
|
|
|
|
type="index"
|
|
|
|
|
width="50"
|
|
|
|
|
label="序号"
|
|
|
|
|
align="center"
|
|
|
|
|
/>
|
|
|
|
|
<el-table-column label="供应商" prop="supplier">
|
|
|
|
|
<template slot="header">
|
|
|
|
|
<span class="required-sign">*</span> 供应商
|
|
|
|
|
</template>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<JnpfPopupSelect
|
|
|
|
|
v-model="scope.row.supplier"
|
|
|
|
|
:rowIndex="null"
|
|
|
|
|
:formData="scope.row"
|
|
|
|
|
:templateJson="[]"
|
|
|
|
|
placeholder="请选择"
|
|
|
|
|
propsValue="supplier_id"
|
|
|
|
|
popupWidth="800px"
|
|
|
|
|
popupTitle="选择数据"
|
|
|
|
|
popupType="dialog"
|
|
|
|
|
relationField="supplier_cname"
|
|
|
|
|
field="supplier"
|
|
|
|
|
interfaceId="591554794397630469"
|
|
|
|
|
:pageSize="20"
|
|
|
|
|
:columnOptions="suppliercolumnOptions"
|
|
|
|
|
clearable
|
|
|
|
|
:style="{ width: '100%' }"
|
|
|
|
|
>
|
|
|
|
|
</JnpfPopupSelect>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="下单数量" prop="orderQuantity">
|
|
|
|
|
<template slot="header">
|
|
|
|
|
<span class="required-sign">*</span> 下单数量
|
|
|
|
|
</template>
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<JnpfInputNumber
|
|
|
|
|
v-model="scope.row.orderQuantity"
|
|
|
|
|
placeholder="数字文本"
|
|
|
|
|
:precision="2"
|
|
|
|
|
:step="1"
|
|
|
|
|
>
|
|
|
|
|
</JnpfInputNumber>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="要求到货日期" prop="requestDeliveryDate">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<JnpfDatePicker
|
|
|
|
|
v-model="scope.row.requestDeliveryDate"
|
|
|
|
|
:startTime="dateTime(false, 1, 1, '', '')"
|
|
|
|
|
:endTime="dateTime(false, 1, 1, '', '')"
|
|
|
|
|
placeholder="请选择"
|
|
|
|
|
clearable
|
|
|
|
|
:style="{ width: '100%' }"
|
|
|
|
|
type="month"
|
|
|
|
|
format="yyyy-MM-dd"
|
|
|
|
|
>
|
|
|
|
|
</JnpfDatePicker>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
<el-table-column label="操作" width="200">
|
|
|
|
|
<template slot-scope="scope">
|
|
|
|
|
<el-button
|
|
|
|
|
size="mini"
|
|
|
|
|
type="text"
|
|
|
|
|
class="JNPF-table-delBtn"
|
|
|
|
|
@click="fnProcurementOrderItemDel(scope.$index)"
|
|
|
|
|
>删除</el-button
|
|
|
|
|
>
|
|
|
|
|
</template>
|
|
|
|
|
</el-table-column>
|
|
|
|
|
</el-table>
|
|
|
|
|
<div class="table-actions" @click="fnProcurementOrderItemAdd()">
|
|
|
|
|
<el-button type="text" icon="el-icon-plus">添加</el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</el-col>
|
|
|
|
|
</el-row>
|
|
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
|
|
<el-button @click="visible = false"> 取 消</el-button>
|
|
|
|
|
<el-button
|
|
|
|
|
type="primary"
|
|
|
|
|
@click="fnProcurementOrderSub()"
|
|
|
|
|
:loading="btnLoading"
|
|
|
|
|
>
|
|
|
|
|
提 交</el-button
|
|
|
|
|
>
|
|
|
|
|
</span>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
import request from "@/utils/request";
|
|
|
|
|
import {
|
|
|
|
|
getDateDay,
|
|
|
|
|
getLaterData,
|
|
|
|
|
getBeforeData,
|
|
|
|
|
getBeforeTime,
|
|
|
|
|
getLaterTime
|
|
|
|
|
} from "@/components/Generator/utils/index.js";
|
|
|
|
|
export default {
|
|
|
|
|
components: {},
|
|
|
|
|
props: [],
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
visible: false,
|
|
|
|
|
loading: false,
|
|
|
|
|
btnLoading: false,
|
|
|
|
|
dataForm: {},
|
|
|
|
|
row: {},
|
|
|
|
|
procurementOrderItemO: {
|
|
|
|
|
orderNumber: undefined,
|
|
|
|
|
orderDate: undefined,
|
|
|
|
|
procurementNumber: undefined,
|
|
|
|
|
supplier: undefined,
|
|
|
|
|
materialId: undefined,
|
|
|
|
|
materialCode: undefined,
|
|
|
|
|
materialName: undefined,
|
|
|
|
|
specification: undefined,
|
|
|
|
|
orderQuantity: undefined,
|
|
|
|
|
unit: undefined,
|
|
|
|
|
totalProductionQuantity: undefined,
|
|
|
|
|
totalSendQuantity: undefined,
|
|
|
|
|
requestDeliveryDate: undefined,
|
|
|
|
|
delayReason: undefined,
|
|
|
|
|
delayedDeliveryDate: undefined,
|
|
|
|
|
batchDeliveryDate: undefined,
|
|
|
|
|
batchShipmentQuantity: undefined,
|
|
|
|
|
confirmQuantityReceived: undefined,
|
|
|
|
|
orderStatus: undefined,
|
|
|
|
|
orderFiles: []
|
|
|
|
|
},
|
|
|
|
|
procurementOrderItem: {
|
|
|
|
|
orderNumber: undefined,
|
|
|
|
|
orderDate: undefined,
|
|
|
|
|
procurementNumber: undefined,
|
|
|
|
|
supplier: undefined,
|
|
|
|
|
materialId: undefined,
|
|
|
|
|
materialCode: undefined,
|
|
|
|
|
materialName: undefined,
|
|
|
|
|
specification: undefined,
|
|
|
|
|
orderQuantity: undefined,
|
|
|
|
|
unit: undefined,
|
|
|
|
|
totalProductionQuantity: undefined,
|
|
|
|
|
totalSendQuantity: undefined,
|
|
|
|
|
requestDeliveryDate: undefined,
|
|
|
|
|
delayReason: undefined,
|
|
|
|
|
delayedDeliveryDate: undefined,
|
|
|
|
|
batchDeliveryDate: undefined,
|
|
|
|
|
batchShipmentQuantity: undefined,
|
|
|
|
|
confirmQuantityReceived: undefined,
|
|
|
|
|
orderStatus: undefined,
|
|
|
|
|
orderFiles: []
|
|
|
|
|
},
|
|
|
|
|
procurementOrderList: [],
|
|
|
|
|
suppliercolumnOptions: [
|
|
|
|
|
{ label: "物料需求计划单", value: "supplier_id" },
|
|
|
|
|
{ label: "物料信息", value: "supplier_sname" },
|
|
|
|
|
{ label: "年月", value: "supplier_cname" },
|
|
|
|
|
{ label: "单据日期", value: "supplier_classification" }
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
computed: {
|
|
|
|
|
},
|
|
|
|
|
watch: {},
|
|
|
|
|
created() {
|
|
|
|
|
},
|
|
|
|
|
mounted() {},
|
|
|
|
|
methods: {
|
|
|
|
|
fnProcurementOrderSub() {
|
|
|
|
|
let _data = {
|
|
|
|
|
orderData: this.procurementOrderList
|
|
|
|
|
};
|
|
|
|
|
request({
|
|
|
|
|
url: "/api/example/YysMaterialProcurementOrder/initOrder",
|
|
|
|
|
method: "post",
|
|
|
|
|
data: _data
|
|
|
|
|
})
|
|
|
|
|
.then(res => {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
this.$message({
|
|
|
|
|
message: res.msg,
|
|
|
|
|
type: "success",
|
|
|
|
|
duration: 1500,
|
|
|
|
|
onClose: () => {
|
|
|
|
|
this.goBack();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
console.log(res);
|
|
|
|
|
})
|
|
|
|
|
.catch(err => {});
|
|
|
|
|
///api/example/YysMaterialProcurementOrder/initOrder
|
|
|
|
|
},
|
|
|
|
|
fnProcurementOrderItemAdd() {
|
|
|
|
|
this.procurementOrderList.push({ ...this.procurementOrderItem });
|
|
|
|
|
},
|
|
|
|
|
fnProcurementOrderItemDel(index) {
|
|
|
|
|
this.$confirm("此操作将永久删除该数据, 是否继续?", "提示", {
|
|
|
|
|
type: "warning"
|
|
|
|
|
})
|
|
|
|
|
.then(() => {
|
|
|
|
|
this.procurementOrderList.splice(index, 1);
|
|
|
|
|
})
|
|
|
|
|
.catch(() => {});
|
|
|
|
|
},
|
|
|
|
|
goBack() {
|
|
|
|
|
this.visible = false;
|
|
|
|
|
this.$emit("refreshDataList", true);
|
|
|
|
|
},
|
|
|
|
|
init(dataForm, row) {
|
|
|
|
|
this.dataForm = dataForm;
|
|
|
|
|
this.row = row;
|
|
|
|
|
this.fnProcurementOrderCreate(row);
|
|
|
|
|
this.visible = true;
|
|
|
|
|
},
|
|
|
|
|
fnProcurementOrderCreate(row) {
|
|
|
|
|
this.procurementOrderItem = { ...this.procurementOrderItemO };
|
|
|
|
|
this.procurementOrderItem.materialId = row.id;
|
|
|
|
|
this.procurementOrderItem.materialCode = row.materialCode;
|
|
|
|
|
this.procurementOrderItem.materialName = row.materialName;
|
|
|
|
|
this.procurementOrderItem.materialType = row.materialType;
|
|
|
|
|
this.procurementOrderItem.lackNumber = row.lackNumber;
|
|
|
|
|
this.procurementOrderItem.unit = row.unit;
|
|
|
|
|
this.procurementOrderItem.procurementNumber = this.dataForm.procurementNumber;
|
|
|
|
|
this.procurementOrderList = [];
|
|
|
|
|
this.procurementOrderList.push({ ...this.procurementOrderItem });
|
|
|
|
|
},
|
|
|
|
|
dateTime(timeRule, timeType, timeTarget, timeValueData, dataValue) {
|
|
|
|
|
let timeDataValue = null;
|
|
|
|
|
let timeValue = Number(timeValueData);
|
|
|
|
|
if (timeRule) {
|
|
|
|
|
if (timeType == 1) {
|
|
|
|
|
timeDataValue = timeValue;
|
|
|
|
|
} else if (timeType == 2) {
|
|
|
|
|
timeDataValue = dataValue;
|
|
|
|
|
} else if (timeType == 3) {
|
|
|
|
|
timeDataValue = new Date().getTime();
|
|
|
|
|
} else if (timeType == 4) {
|
|
|
|
|
let previousDate = "";
|
|
|
|
|
if (timeTarget == 1 || timeTarget == 2) {
|
|
|
|
|
previousDate = getDateDay(timeTarget, timeType, timeValue);
|
|
|
|
|
timeDataValue = new Date(previousDate).getTime();
|
|
|
|
|
} else if (timeTarget == 3) {
|
|
|
|
|
previousDate = getBeforeData(timeValue);
|
|
|
|
|
timeDataValue = new Date(previousDate).getTime();
|
|
|
|
|
} else {
|
|
|
|
|
timeDataValue = getBeforeTime(timeTarget, timeValue).getTime();
|
|
|
|
|
}
|
|
|
|
|
} else if (timeType == 5) {
|
|
|
|
|
let previousDate = "";
|
|
|
|
|
if (timeTarget == 1 || timeTarget == 2) {
|
|
|
|
|
previousDate = getDateDay(timeTarget, timeType, timeValue);
|
|
|
|
|
timeDataValue = new Date(previousDate).getTime();
|
|
|
|
|
} else if (timeTarget == 3) {
|
|
|
|
|
previousDate = getLaterData(timeValue);
|
|
|
|
|
timeDataValue = new Date(previousDate).getTime();
|
|
|
|
|
} else {
|
|
|
|
|
timeDataValue = getLaterTime(timeTarget, timeValue).getTime();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return timeDataValue;
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
</script>
|