|
|
@@ -16,7 +16,11 @@
|
|
|
<!-- 层级号 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="级号" prop="lever_number">
|
|
|
- <el-input placeholder="请输入" readonly v-model="formData.lever_number" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ readonly
|
|
|
+ v-model="formData.lever_number"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
@@ -59,10 +63,7 @@
|
|
|
|
|
|
<!-- 产品类别 -->
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="产品类别"
|
|
|
- name="product_category"
|
|
|
- >
|
|
|
+ <el-form-item label="产品类别" name="product_category">
|
|
|
<el-select
|
|
|
:disabled="!!originFormData?.erp_code"
|
|
|
v-model="formData.product_category"
|
|
|
@@ -83,38 +84,11 @@
|
|
|
|
|
|
<!-- 制造工艺 -->
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="制造工艺"
|
|
|
- name="process"
|
|
|
- >
|
|
|
+ <el-form-item label="制造工艺" name="process">
|
|
|
<el-input placeholder="请输入" v-model="formData.process" />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
- <!-- 零件属性 -->
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="零件属性"
|
|
|
- name="part_attribute"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- :disabled="!!originFormData?.erp_code"
|
|
|
- v-model="formData.part_attribute"
|
|
|
- placeholder="请选择"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in partAttributeOptions.map((item) => ({
|
|
|
- label: item,
|
|
|
- value: item,
|
|
|
- }))"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
-
|
|
|
<!-- 材料牌号 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="材料牌号" name="material_grade">
|
|
|
@@ -163,10 +137,7 @@
|
|
|
|
|
|
<!-- 制造单元 -->
|
|
|
<el-col :span="12" v-if="type == '2'">
|
|
|
- <el-form-item
|
|
|
- label="制造单元"
|
|
|
- prop="manufacture_report"
|
|
|
- >
|
|
|
+ <el-form-item label="制造单元" prop="manufacture_report">
|
|
|
<el-select
|
|
|
:disabled="!!originFormData?.erp_code"
|
|
|
v-model="formData.manufacture_report"
|
|
|
@@ -194,10 +165,7 @@
|
|
|
|
|
|
<!-- NK零件号 -->
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="NK零件号"
|
|
|
- name="erp_code"
|
|
|
- >
|
|
|
+ <el-form-item label="NK零件号" name="erp_code">
|
|
|
<div class="flex gap-8px">
|
|
|
<el-input
|
|
|
placeholder="推荐或生成..."
|
|
|
@@ -225,14 +193,12 @@
|
|
|
|
|
|
<!-- 自制/外购/支给(M/P/C) -->
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item
|
|
|
- label="自制/外购/支给(M/P/C)"
|
|
|
- prop="part_type"
|
|
|
- >
|
|
|
+ <el-form-item label="自制/外购/支给(M/P/C)" prop="part_type">
|
|
|
<el-select
|
|
|
:disabled="!!originFormData?.erp_code"
|
|
|
v-model="formData.part_type"
|
|
|
placeholder="请选择"
|
|
|
+ @change="handlePartTypeChange"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="item in options"
|
|
|
@@ -244,6 +210,27 @@
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
|
|
|
+ <!-- 零件属性 -->
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="零件属性" name="part_attribute">
|
|
|
+ <el-select
|
|
|
+ :disabled="!!originFormData?.erp_code"
|
|
|
+ v-model="formData.part_attribute"
|
|
|
+ placeholder="请先选择M/P/C类型"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in partAttributeOptions.map((item) => ({
|
|
|
+ label: item,
|
|
|
+ value: item,
|
|
|
+ }))"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
<!-- 辆份配置 -->
|
|
|
<el-col :span="12" v-if="type == '1'">
|
|
|
<el-form-item label="辆份配置" name="unit_config">
|
|
|
@@ -309,7 +296,7 @@
|
|
|
</el-col>
|
|
|
|
|
|
<!-- 工艺消耗 -->
|
|
|
- <el-col :span="12" v-if="type == '2'" >
|
|
|
+ <el-col :span="12" v-if="type == '2'">
|
|
|
<el-form-item label="工艺消耗" name="technology_consume">
|
|
|
<el-input-number
|
|
|
class="inline-block w-full!"
|
|
|
@@ -482,31 +469,46 @@
|
|
|
<!-- 备用字段1 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="制造BOM备用字段1" name="manufacture_var1">
|
|
|
- <el-input placeholder="请输入" v-model="formData.manufacture_var1" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="formData.manufacture_var1"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<!-- 备用字段2 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="制造BOM备用字段2" name="manufacture_var2">
|
|
|
- <el-input placeholder="请输入" v-model="formData.manufacture_var2" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="formData.manufacture_var2"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<!-- 备用字段3 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="制造BOM备用字段3" name="manufacture_var3">
|
|
|
- <el-input placeholder="请输入" v-model="formData.manufacture_var3" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="formData.manufacture_var3"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<!-- 备用字段4 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="制造BOM备用字段4" name="manufacture_var4">
|
|
|
- <el-input placeholder="请输入" v-model="formData.manufacture_var4" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="formData.manufacture_var4"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<!-- 备用字段5 -->
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="制造BOM备用字段5" name="manufacture_var5">
|
|
|
- <el-input placeholder="请输入" v-model="formData.manufacture_var5" />
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入"
|
|
|
+ v-model="formData.manufacture_var5"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</template>
|
|
|
@@ -529,7 +531,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { ref, defineExpose, defineEmits } from "vue";
|
|
|
+import { ref, defineExpose, defineEmits, computed } from "vue";
|
|
|
import { ElMessage, type FormInstance } from "element-plus";
|
|
|
import { cloneDeep } from "lodash-es";
|
|
|
import { CirclePlus } from "@element-plus/icons-vue";
|
|
|
@@ -538,7 +540,7 @@ import type { IRecomend } from "./TableModal.vue";
|
|
|
import { useRoute } from "vue-router";
|
|
|
|
|
|
const route = useRoute();
|
|
|
-const type = route.query?.type as string ?? '1'; // 1工程bom 2制造bom
|
|
|
+const type = (route.query?.type as string) ?? "1"; // 1工程bom 2制造bom
|
|
|
|
|
|
const keyMap = {
|
|
|
gridorders: "序号",
|
|
|
@@ -601,18 +603,18 @@ const options = [
|
|
|
];
|
|
|
|
|
|
// 零件属性
|
|
|
-const partAttributeOptions = [
|
|
|
- "完成品",
|
|
|
- "半成品",
|
|
|
- "树脂",
|
|
|
- "膜片",
|
|
|
- "碳纤维片",
|
|
|
- "木皮",
|
|
|
- "铝片",
|
|
|
- "涂料",
|
|
|
- "油墨",
|
|
|
- "部件",
|
|
|
-];
|
|
|
+const partAttributeOptions = computed(() => {
|
|
|
+ if (formData.value.part_type == "M") {
|
|
|
+ return ["完成品", "半成品"];
|
|
|
+ }
|
|
|
+ if (formData.value.part_type == "P") {
|
|
|
+ return ["树脂", "膜片", "碳纤维片", "木皮", "铝片", "涂料", "油墨", "部件"];
|
|
|
+ }
|
|
|
+ if (formData.value.part_type == "C") {
|
|
|
+ return ["树脂", "膜片", "碳纤维片", "木皮", "铝片", "涂料", "油墨", "部件"];
|
|
|
+ }
|
|
|
+ return [];
|
|
|
+});
|
|
|
|
|
|
// 制造单元
|
|
|
const manufatureUnitOptions = [
|
|
|
@@ -733,9 +735,17 @@ const open = (node: any, type?: "add" | "edit", layer?: number) => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+// 零件类型改变
|
|
|
+// 属性值不在选项中时,清空
|
|
|
+const handlePartTypeChange = () => {
|
|
|
+ if (!partAttributeOptions.value.includes(formData.value.part_attribute)) {
|
|
|
+ formData.value.part_attribute = undefined;
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
// 打开推荐
|
|
|
const openRecomendModal = () => {
|
|
|
- recomendRef.value?.open(formData.value?.part_name, formData.value?.part_Type);
|
|
|
+ recomendRef.value?.open(formData.value?.part_name, formData.value?.part_type);
|
|
|
};
|
|
|
|
|
|
// 添加推荐
|