|
|
@@ -75,31 +75,137 @@
|
|
|
key="id"
|
|
|
:selection.sync="selection"
|
|
|
>
|
|
|
- <template v-slot:toolbar>
|
|
|
+ <template v-slot:default>
|
|
|
+ <div class="tool">
|
|
|
+ <div class="tool_l">
|
|
|
+ <el-button
|
|
|
+ v-if="produceType == 2"
|
|
|
+ type="primary"
|
|
|
+ @click="bulkPurchase"
|
|
|
+ size="medium"
|
|
|
+ >下发采购计划</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="produceType == 1"
|
|
|
+ type="primary"
|
|
|
+ @click="issuePlan"
|
|
|
+ size="medium"
|
|
|
+ >下发生产计划</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="tool_r">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ :model="formInline"
|
|
|
+ class="demo-form-inline"
|
|
|
+ >
|
|
|
+ <el-form-item label="BOM类型">
|
|
|
+ <el-select
|
|
|
+ size="medium"
|
|
|
+ v-model="formInline.bomType"
|
|
|
+ placeholder="BOM类型"
|
|
|
+ class="select-type"
|
|
|
+ @change="bomTypeChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in bomListType"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.bomName"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="BOM版本">
|
|
|
+ <el-select
|
|
|
+ class="select-type"
|
|
|
+ size="medium"
|
|
|
+ v-model="formInline.bomId"
|
|
|
+ placeholder="BOM版本"
|
|
|
+ @change="bomVChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in bomListV"
|
|
|
+ :key="item.bomId"
|
|
|
+ :label="item.versions"
|
|
|
+ :value="item.bomId"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="属性类型" v-if="produceType == 2">
|
|
|
+ <el-select
|
|
|
+ size="medium"
|
|
|
+ v-model="formInline.attributeType"
|
|
|
+ placeholder="属性类型"
|
|
|
+ class="select-type"
|
|
|
+ @change="attributeChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in attributeList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最终状态">
|
|
|
+ <el-select
|
|
|
+ class="select-type"
|
|
|
+ size="medium"
|
|
|
+ v-model="formInline.finalState"
|
|
|
+ placeholder="最终状态"
|
|
|
+ @change="finalChange"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in finalStateList"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <!-- <template v-slot:toolbar>
|
|
|
<el-button
|
|
|
v-if="produceType == 2"
|
|
|
type="primary"
|
|
|
@click="bulkPurchase"
|
|
|
- size="mini"
|
|
|
+ size="medium"
|
|
|
>下发采购计划</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
v-if="produceType == 1"
|
|
|
type="primary"
|
|
|
@click="issuePlan"
|
|
|
- size="mini"
|
|
|
+ size="medium"
|
|
|
>下发生产计划</el-button
|
|
|
>
|
|
|
- </template>
|
|
|
+ </template> -->
|
|
|
+
|
|
|
<template v-slot:toolkit>
|
|
|
- <el-form
|
|
|
+ <el-form :inline="true">
|
|
|
+ <el-form-item label="基本数量">
|
|
|
+ <el-input size="medium" v-model="baseCount" disabled>
|
|
|
+ <template slot="append">{{ baseUnit }}</template>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <!-- <el-form
|
|
|
:inline="true"
|
|
|
:model="formInline"
|
|
|
class="demo-form-inline"
|
|
|
>
|
|
|
<el-form-item label="BOM类型">
|
|
|
<el-select
|
|
|
- size="mini"
|
|
|
+ size="medium"
|
|
|
v-model="formInline.bomType"
|
|
|
placeholder="BOM类型"
|
|
|
class="select-type"
|
|
|
@@ -117,7 +223,7 @@
|
|
|
<el-form-item label="BOM版本">
|
|
|
<el-select
|
|
|
class="select-type"
|
|
|
- size="mini"
|
|
|
+ size="medium"
|
|
|
v-model="formInline.bomId"
|
|
|
placeholder="BOM版本"
|
|
|
@change="bomVChange"
|
|
|
@@ -133,7 +239,7 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="属性类型" v-if="produceType == 2">
|
|
|
<el-select
|
|
|
- size="mini"
|
|
|
+ size="medium"
|
|
|
v-model="formInline.attributeType"
|
|
|
placeholder="属性类型"
|
|
|
class="select-type"
|
|
|
@@ -151,7 +257,7 @@
|
|
|
<el-form-item label="最终状态">
|
|
|
<el-select
|
|
|
class="select-type"
|
|
|
- size="mini"
|
|
|
+ size="medium"
|
|
|
v-model="formInline.finalState"
|
|
|
placeholder="最终状态"
|
|
|
@change="finalChange"
|
|
|
@@ -165,7 +271,7 @@
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- </el-form>
|
|
|
+ </el-form> -->
|
|
|
</template>
|
|
|
<template v-slot:inventoryQuantity="{ row }">
|
|
|
<el-link
|
|
|
@@ -268,7 +374,6 @@
|
|
|
|
|
|
<stockDetailDialog ref="stockDetailDialog" />
|
|
|
<currentDetailDialog ref="currentDetailDialog" />
|
|
|
- <producePlan ref="produceRef" @success="reloads"></producePlan>
|
|
|
<purchaseDialog ref="purchaseDialogRef" :orderType="2" @success="success" />
|
|
|
<factoryAdd
|
|
|
ref="factoryAddRef"
|
|
|
@@ -281,14 +386,10 @@
|
|
|
|
|
|
<script>
|
|
|
import {
|
|
|
- homogeneityInspect,
|
|
|
- homogeneityInspectMerge,
|
|
|
findMaterialInfoByPlanId,
|
|
|
findBomCategoryByCategoryId,
|
|
|
- getBom
|
|
|
} from '@/api/productionPlan/index.js';
|
|
|
import factoryAdd from './factoryAdd';
|
|
|
- import { listBomByPlanIdsOverride } from '@/api/materialPlan/index';
|
|
|
import stockDetailDialog from './stockDetailDialog.vue';
|
|
|
import currentDetailDialog from './currentDetailDialog.vue';
|
|
|
import producePlan from '@/views/materialPlan/components/producePlan.vue';
|
|
|
@@ -349,6 +450,19 @@
|
|
|
minWidth: 100,
|
|
|
showOverflowTooltip: true
|
|
|
},
|
|
|
+ {
|
|
|
+ prop: 'level',
|
|
|
+ label: '层级',
|
|
|
+ align: 'center',
|
|
|
+ minWidth: 50
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: 'supplierName',
|
|
|
+ label: '供应商',
|
|
|
+ align: 'center',
|
|
|
+ showOverflowTooltip: true,
|
|
|
+ minWidth: 140
|
|
|
+ },
|
|
|
{
|
|
|
prop: 'demandQuantity',
|
|
|
label: '定额数量',
|
|
|
@@ -531,7 +645,9 @@
|
|
|
value: 3,
|
|
|
label: '外协件'
|
|
|
}
|
|
|
- ]
|
|
|
+ ],
|
|
|
+ baseCount: '',
|
|
|
+ baseUnit: ''
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
@@ -666,7 +782,15 @@
|
|
|
},
|
|
|
// 结果数据处理
|
|
|
resultProcess(result) {
|
|
|
- result.map((item) => {
|
|
|
+ if (!result || result.length == 0) {
|
|
|
+ this.baseCount = '';
|
|
|
+ this.baseUnit = '';
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ let first = result[0];
|
|
|
+ this.baseCount = first.baseCount;
|
|
|
+ this.baseUnit = first.unit;
|
|
|
+ result.forEach((item) => {
|
|
|
item.batchNo = this.planInfo.batchNo;
|
|
|
item.salesCode = this.planInfo.salesCode;
|
|
|
item.finalState =
|
|
|
@@ -713,27 +837,10 @@
|
|
|
bomType: obj.bomType
|
|
|
};
|
|
|
this.$refs.purchaseDialogRef.open(arr, data);
|
|
|
- // let planIds = list.map((item) => item.id);
|
|
|
- // let data = {
|
|
|
- // planIds: ['1948548495278911490', '1948548022580850689'],
|
|
|
- // demandType: '1'
|
|
|
- // };
|
|
|
- // this.$refs.produceRef.visible = true;
|
|
|
- // const o = this.cardList.find((el) => el.id === this.selectNodeId);
|
|
|
- // let obj = JSON.parse(JSON.stringify(o));
|
|
|
- // obj.materialList = list;
|
|
|
- // this.$nextTick(() => {
|
|
|
- // this.$refs.purchaseDialogRef.open([obj], '生产计划');
|
|
|
- // });
|
|
|
- // const result = await listBomByPlanIdsOverride(data);
|
|
|
},
|
|
|
success() {
|
|
|
this.bomVChange(this.formInline.bomId);
|
|
|
},
|
|
|
- // 采购申请
|
|
|
- // purchase(row) {
|
|
|
- // this.bulkPurchase([row]);
|
|
|
- // },
|
|
|
async open(dataList, produceType) {
|
|
|
this.visible = true;
|
|
|
|
|
|
@@ -773,7 +880,7 @@
|
|
|
this.loading = true;
|
|
|
try {
|
|
|
this.planId = data.id;
|
|
|
- const res = await findBomCategoryByCategoryId(data.categoryId);
|
|
|
+ const res = await findBomCategoryByCategoryId(data.categoryId,this.produceType);
|
|
|
this.loading = false;
|
|
|
if (!res || res.length == 0) {
|
|
|
this.bomListD = [];
|
|
|
@@ -940,4 +1047,13 @@
|
|
|
border: 1px solid #ccc;
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
+
|
|
|
+ .tool {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ padding: 5px 10px;
|
|
|
+ border-left: 1px solid #ededed;
|
|
|
+ border-right: 1px solid #ededed;
|
|
|
+ }
|
|
|
</style>
|