|
@@ -1,177 +1,425 @@
|
|
<template>
|
|
<template>
|
|
- <el-drawer v-model="visible" title="物料配置" size="600">
|
|
|
|
- <el-form ref="form" label-position="top">
|
|
|
|
|
|
+ <el-drawer
|
|
|
|
+ v-model="visible"
|
|
|
|
+ title="BOM详情配置"
|
|
|
|
+ size="600"
|
|
|
|
+ v-loading="loading"
|
|
|
|
+ >
|
|
|
|
+ <el-form
|
|
|
|
+ ref="form"
|
|
|
|
+ label-position="top"
|
|
|
|
+ :model="formData"
|
|
|
|
+ :disabled="nodeData?.is_disable"
|
|
|
|
+ scroll-to-error
|
|
|
|
+ >
|
|
<el-row :gutter="12">
|
|
<el-row :gutter="12">
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="SN">
|
|
|
|
- <el-input v-model="formData.sn" />
|
|
|
|
|
|
+ <el-form-item label="BOM编号" prop="bom_code">
|
|
|
|
+ <el-input
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.bom_code"
|
|
|
|
+ disabled
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="级号">
|
|
|
|
- <el-select disabled placeholder="级号">
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="零件类型"
|
|
|
|
+ prop="part_type"
|
|
|
|
+ :rules="[
|
|
|
|
+ { required: true, message: '请选择零件类型', trigger: 'change' },
|
|
|
|
+ ]"
|
|
|
|
+ >
|
|
|
|
+ <el-select v-model="formData.part_type" placeholder="请选择">
|
|
<el-option
|
|
<el-option
|
|
- v-for="item in 10"
|
|
|
|
- :key="item"
|
|
|
|
- :label="item"
|
|
|
|
- :value="item"
|
|
|
|
|
|
+ v-for="item in options"
|
|
|
|
+ :key="item.value"
|
|
|
|
+ :label="item.label"
|
|
|
|
+ :value="item.value"
|
|
/>
|
|
/>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="自制/外购/标准件/领用件/DB/CCC/NA">
|
|
|
|
- <el-input v-model="formData.name" />
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="零件名/描述"
|
|
|
|
+ prop="part_name"
|
|
|
|
+ :rules="[
|
|
|
|
+ { required: true, message: '零件名不能为空', trigger: 'blur' },
|
|
|
|
+ ]"
|
|
|
|
+ >
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.part_name" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="ERP号">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="内部零件号"
|
|
|
|
+ name="internal_part_number"
|
|
|
|
+ :rules="[
|
|
|
|
+ {
|
|
|
|
+ required: true,
|
|
|
|
+ message: '内部零件号不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ ]"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.internal_part_number"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="客户零件号">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="客户零件号"
|
|
|
|
+ name="customer_part_code"
|
|
|
|
+ :rules="[
|
|
|
|
+ {
|
|
|
|
+ required: true,
|
|
|
|
+ message: '客户零件号不能为空',
|
|
|
|
+ trigger: 'blur',
|
|
|
|
+ },
|
|
|
|
+ ]"
|
|
|
|
+ >
|
|
|
|
+ <el-input
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.customer_part_code"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="客户版本号">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="客户版本号" name="customer_part_vesion">
|
|
|
|
+ <el-input
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.customer_part_vesion"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="内部零件号">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="ERP号" name="erp_code">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.erp_code" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="零件名/描述">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="材料名称" name="material_name">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.material_name" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="材料名称">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="材料牌号" name="material_grade">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.material_grade" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="材料牌号">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="规格及标准" name="spec_standards">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.spec_standards" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="规格及标准">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="生产工艺" name="process">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.process" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
|
|
+
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="生产工艺">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="表面处理" name="appreance_treat">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.appreance_treat" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="表面处理">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="颜色" name="color">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.color" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :span="12">
|
|
|
|
- <el-form-item label="颜色">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-col :span="24">
|
|
|
|
+ <el-form-item label="颜色配置" name="color_config">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.color_config" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
- <el-row :gutter="12">
|
|
|
|
|
|
+
|
|
|
|
+ <el-row :gutter="8">
|
|
<el-col :span="8"
|
|
<el-col :span="8"
|
|
- ><el-form-item label="长">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ ><el-form-item label="长" name="length">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.length"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
- <el-form-item label="宽">
|
|
|
|
- <el-input v-model="formData.desc" /> </el-form-item
|
|
|
|
|
|
+ <el-form-item label="宽" name="width">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.width"
|
|
|
|
+ /> </el-form-item
|
|
></el-col>
|
|
></el-col>
|
|
<el-col :span="8">
|
|
<el-col :span="8">
|
|
- <el-form-item label="高">
|
|
|
|
- <el-input v-model="formData.desc" /> </el-form-item
|
|
|
|
|
|
+ <el-form-item label="高" name="height">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.height"
|
|
|
|
+ /> </el-form-item
|
|
></el-col>
|
|
></el-col>
|
|
</el-row>
|
|
</el-row>
|
|
|
|
+
|
|
<el-row :gutter="12">
|
|
<el-row :gutter="12">
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="数量">
|
|
|
|
- <el-input v-model="formData.desc" /> </el-form-item
|
|
|
|
|
|
+ <el-form-item label="数量" name="qty">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.qty"
|
|
|
|
+ /> </el-form-item
|
|
></el-col>
|
|
></el-col>
|
|
<el-col :span="12"
|
|
<el-col :span="12"
|
|
- ><el-form-item label="单位">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ ><el-form-item label="单位" name="unit">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.unit" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
|
|
+
|
|
<el-col :span="12"
|
|
<el-col :span="12"
|
|
- ><el-form-item label="每件净重">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ ><el-form-item label="每件净重" name="net_weight">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.net_weight"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12"
|
|
<el-col :span="12"
|
|
- ><el-form-item label="每件毛重">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ ><el-form-item label="每件毛重" name="gross_weight">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.gross_weight"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- </el-row>
|
|
|
|
- <el-row :gutter="12">
|
|
|
|
|
|
+
|
|
<el-col :span="12"
|
|
<el-col :span="12"
|
|
- ><el-form-item label="工艺消耗定额">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ ><el-form-item label="工艺消耗定额" name="technology_consume">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.technology_consume"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
- <el-form-item label="利用率%">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="利用率%" name="rate">
|
|
|
|
+ <el-input-number
|
|
|
|
+ class="inline-block w-full!"
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ v-model="formData.rate"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
- <el-form-item label="供应商">
|
|
|
|
- <el-input v-model="formData.desc" />
|
|
|
|
|
|
+
|
|
|
|
+ <el-form-item label="供应商" name="supplier">
|
|
|
|
+ <el-input placeholder="请输入" v-model="formData.supplier" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="备注">
|
|
|
|
- <el-input type="textarea" :rows="4" v-model="formData.desc" />
|
|
|
|
|
|
+ <el-form-item label="备注" name="note">
|
|
|
|
+ <el-input
|
|
|
|
+ placeholder="请输入"
|
|
|
|
+ type="textarea"
|
|
|
|
+ :rows="4"
|
|
|
|
+ v-model="formData.note"
|
|
|
|
+ />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-form>
|
|
<template #footer>
|
|
<template #footer>
|
|
<el-button @click="visible = false">取消</el-button>
|
|
<el-button @click="visible = false">取消</el-button>
|
|
- <el-button type="primary" @click="visible = false">确定</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="handleSubmit">确定</el-button>
|
|
</template>
|
|
</template>
|
|
</el-drawer>
|
|
</el-drawer>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { ref, defineExpose, reactive } from "vue";
|
|
|
|
|
|
+import { ref, defineExpose, defineEmits } from "vue";
|
|
|
|
+import type { FormInstance } from "element-plus";
|
|
|
|
+
|
|
|
|
+const keyMap = {
|
|
|
|
+ type: "类型",
|
|
|
|
+ bom_code: "BOM编号",
|
|
|
|
+ qty: "数量",
|
|
|
|
+ appreance_treat: "表面处理",
|
|
|
|
+ color: "颜色",
|
|
|
|
+ color_config: "颜色配置",
|
|
|
|
+ customer_part_code: "客户零件号",
|
|
|
|
+ customer_part_vesion: "客户版本号",
|
|
|
|
+ erp_code: "ERP号",
|
|
|
|
+ height: "高",
|
|
|
|
+ internal_part_number: "内部零件号",
|
|
|
|
+ length: "长",
|
|
|
|
+ material_grade: "材料牌号",
|
|
|
|
+ material_name: "材料名称",
|
|
|
|
+ net_weight: "每件净重",
|
|
|
|
+ note: "备注",
|
|
|
|
+ part_name: "零件名/描述",
|
|
|
|
+ part_type: "零件类型",
|
|
|
|
+ process: "生产工艺",
|
|
|
|
+ rate: "利用率",
|
|
|
|
+ spec_standards: "规格及标准",
|
|
|
|
+ supplier: "供应商",
|
|
|
|
+ technology_consume: "工艺消耗定额",
|
|
|
|
+ unit: "单位",
|
|
|
|
+ width: "宽",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+const options = [
|
|
|
|
+ { label: "自制", value: "M" },
|
|
|
|
+ { label: "外购", value: "P" },
|
|
|
|
+ { label: "标准件", value: "S" },
|
|
|
|
+ { label: "领用件", value: "CSMT" },
|
|
|
|
+ { label: "DB", value: "DB" },
|
|
|
|
+ { label: "CCC", value: "CCC" },
|
|
|
|
+ { label: "NA", value: "NA" },
|
|
|
|
+];
|
|
|
|
|
|
const visible = ref(false);
|
|
const visible = ref(false);
|
|
-const formData = reactive({
|
|
|
|
- sn: "",
|
|
|
|
|
|
+const formData = ref<Record<string, any>>({
|
|
name: "",
|
|
name: "",
|
|
- desc: "",
|
|
|
|
|
|
+ type: "",
|
|
|
|
+ bom_code: "",
|
|
|
|
+ qty: undefined,
|
|
|
|
+ is_change: false,
|
|
|
|
+ change_content: "",
|
|
|
|
+ is_disable: false,
|
|
|
|
+ bom_det: undefined,
|
|
});
|
|
});
|
|
|
|
+const form = ref<FormInstance>();
|
|
|
|
+const loading = ref(false);
|
|
|
|
|
|
-const open = () => {
|
|
|
|
|
|
+// 表单数据
|
|
|
|
+let originFormData: any = null;
|
|
|
|
+const emit = defineEmits(["ok"]);
|
|
|
|
+// 节点数据
|
|
|
|
+const nodeData = ref<any>(null);
|
|
|
|
+const open = (node: any) => {
|
|
visible.value = true;
|
|
visible.value = true;
|
|
-};
|
|
|
|
|
|
+ nodeData.value = node;
|
|
|
|
+ nodeData.value = node.data;
|
|
|
|
+ try {
|
|
|
|
+ loading.value = true;
|
|
|
|
+ // 测试接口
|
|
|
|
+ // fetch(`https://sl-yf-bommgr-admin-dev.shalu.com/api/module/Invoke`, {
|
|
|
|
+ // method: "POST",
|
|
|
|
+ // headers: {
|
|
|
|
+ // Authorization: "bpm_client_1410638690438352896",
|
|
|
|
+ // "content-type": "application/json;charset=UTF-8",
|
|
|
|
+ // },
|
|
|
|
+ // body: JSON.stringify({
|
|
|
|
+ // interfaceCode: "Common.getBOMInfo",
|
|
|
|
+ // bom_id: node.id,
|
|
|
|
+ // }),
|
|
|
|
+ // })
|
|
|
|
+ // .then((res) => res.json())
|
|
|
|
+ // .then((res) => {
|
|
|
|
+ // console.log("res", res);
|
|
|
|
+ // originFormData = res.result;
|
|
|
|
+ // formData.value = {
|
|
|
|
+ // ...node.data,
|
|
|
|
+ // ...(res?.result || {}),
|
|
|
|
+ // bom_det: {},
|
|
|
|
+ // };
|
|
|
|
+ // loading.value = false;
|
|
|
|
+ // });
|
|
|
|
|
|
|
|
+ window.parent?.BpmTools?.program(
|
|
|
|
+ {
|
|
|
|
+ interfaceCode: "Common.getBOMInfo",
|
|
|
|
+ bom_id: node.id,
|
|
|
|
+ },
|
|
|
|
+ (res: any) => {
|
|
|
|
+ originFormData = res;
|
|
|
|
+ formData.value = {
|
|
|
|
+ ...node.data,
|
|
|
|
+ ...(res || {}),
|
|
|
|
+ ...(node.data?.bom_det || {}),
|
|
|
|
+ bom_det: {},
|
|
|
|
+ };
|
|
|
|
+ loading.value = false;
|
|
|
|
+ }
|
|
|
|
+ );
|
|
|
|
+ } finally {
|
|
|
|
+ loading.value = false;
|
|
|
|
+ }
|
|
|
|
+};
|
|
const close = () => {
|
|
const close = () => {
|
|
visible.value = false;
|
|
visible.value = false;
|
|
|
|
+ originFormData = null;
|
|
|
|
+ nodeData.value = null;
|
|
|
|
+ form.value?.resetFields();
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+// 提交表单
|
|
|
|
+const handleSubmit = async () => {
|
|
|
|
+ const valid = await form.value?.validate();
|
|
|
|
+ if (!valid) return;
|
|
|
|
+ // 获取变更之前的数据
|
|
|
|
+ if (!originFormData) return;
|
|
|
|
+ console.log(originFormData, formData.value);
|
|
|
|
+
|
|
|
|
+ let str = "";
|
|
|
|
+ Object.entries(formData.value).forEach(([key, value]) => {
|
|
|
|
+ if (
|
|
|
|
+ [
|
|
|
|
+ "is_change",
|
|
|
|
+ "change_content",
|
|
|
|
+ "changecontent",
|
|
|
|
+ "bom_det",
|
|
|
|
+ "isActive",
|
|
|
|
+ "is_disable",
|
|
|
|
+ "expand",
|
|
|
|
+ "uid",
|
|
|
|
+ "name",
|
|
|
|
+ "type",
|
|
|
|
+ ].includes(key)
|
|
|
|
+ ) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ // 值发生变化
|
|
|
|
+ if (value !== originFormData[key]) {
|
|
|
|
+ if (key in keyMap)
|
|
|
|
+ str += `${str ? "," : ""}${keyMap[key as keyof typeof keyMap]}: ${
|
|
|
|
+ originFormData[key] ?? "空"
|
|
|
|
+ }->${value ?? ""}`;
|
|
|
|
+ // 更新内部数据
|
|
|
|
+ if (Object.hasOwnProperty.call(nodeData.value || {}, key)) {
|
|
|
|
+ nodeData.value[key] = value;
|
|
|
|
+ }
|
|
|
|
+ if (formData.value?.bom_det) {
|
|
|
|
+ formData.value.bom_det[key] = value;
|
|
|
|
+ } else {
|
|
|
|
+ formData.value.bom_det = { [key]: value };
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ formData.value.change_content = str;
|
|
|
|
+ if (str) {
|
|
|
|
+ formData.value.is_change = true;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ emit("ok", {
|
|
|
|
+ ...(nodeData.value || {}),
|
|
|
|
+ type: formData.value.part_type,
|
|
|
|
+ name: formData.value.part_name,
|
|
|
|
+ qty: formData.value.qty,
|
|
|
|
+ is_change: formData.value.is_change,
|
|
|
|
+ change_content: formData.value.change_content,
|
|
|
|
+ bom_det: formData.value.bom_det,
|
|
|
|
+ });
|
|
|
|
+ close();
|
|
};
|
|
};
|
|
|
|
|
|
defineExpose({
|
|
defineExpose({
|