|
@@ -246,55 +246,55 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { ref, defineExpose, defineEmits } from "vue";
|
|
|
|
-import type { FormInstance } from "element-plus";
|
|
|
|
|
|
+import { ref, defineExpose, defineEmits } from 'vue';
|
|
|
|
+import type { FormInstance } from 'element-plus';
|
|
|
|
|
|
const keyMap = {
|
|
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: "宽",
|
|
|
|
|
|
+ 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 = [
|
|
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" },
|
|
|
|
|
|
+ { 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 = ref<Record<string, any>>({
|
|
const formData = ref<Record<string, any>>({
|
|
- name: "",
|
|
|
|
- type: "",
|
|
|
|
- bom_code: "",
|
|
|
|
|
|
+ name: '',
|
|
|
|
+ type: '',
|
|
|
|
+ bom_code: '',
|
|
qty: undefined,
|
|
qty: undefined,
|
|
is_change: false,
|
|
is_change: false,
|
|
- change_content: "",
|
|
|
|
|
|
+ change_content: '',
|
|
is_disable: false,
|
|
is_disable: false,
|
|
bom_det: undefined,
|
|
bom_det: undefined,
|
|
});
|
|
});
|
|
@@ -303,13 +303,16 @@ const loading = ref(false);
|
|
|
|
|
|
// 表单数据
|
|
// 表单数据
|
|
let originFormData: any = null;
|
|
let originFormData: any = null;
|
|
-const emit = defineEmits(["ok"]);
|
|
|
|
|
|
+const emit = defineEmits(['ok']);
|
|
// 节点数据
|
|
// 节点数据
|
|
const nodeData = ref<any>(null);
|
|
const nodeData = ref<any>(null);
|
|
-const open = (node: any) => {
|
|
|
|
|
|
+
|
|
|
|
+const editType = ref<'add' | 'edit'>('edit');
|
|
|
|
+const open = (node: any, type?: 'add' | 'edit') => {
|
|
visible.value = true;
|
|
visible.value = true;
|
|
nodeData.value = node;
|
|
nodeData.value = node;
|
|
nodeData.value = node.data;
|
|
nodeData.value = node.data;
|
|
|
|
+ editType.value = type || 'edit';
|
|
try {
|
|
try {
|
|
loading.value = true;
|
|
loading.value = true;
|
|
// 测试接口
|
|
// 测试接口
|
|
@@ -336,22 +339,32 @@ const open = (node: any) => {
|
|
// loading.value = false;
|
|
// 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;
|
|
|
|
- }
|
|
|
|
- );
|
|
|
|
|
|
+ if (type === 'add') {
|
|
|
|
+ // 新增
|
|
|
|
+ originFormData = node.data;
|
|
|
|
+ formData.value = {
|
|
|
|
+ ...node.data,
|
|
|
|
+ bom_det: {},
|
|
|
|
+ };
|
|
|
|
+ } else {
|
|
|
|
+ // 编辑
|
|
|
|
+ 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 {
|
|
} finally {
|
|
loading.value = false;
|
|
loading.value = false;
|
|
}
|
|
}
|
|
@@ -371,30 +384,30 @@ const handleSubmit = async () => {
|
|
if (!originFormData) return;
|
|
if (!originFormData) return;
|
|
console.log(originFormData, formData.value);
|
|
console.log(originFormData, formData.value);
|
|
|
|
|
|
- let str = "";
|
|
|
|
|
|
+ let str = '';
|
|
Object.entries(formData.value).forEach(([key, value]) => {
|
|
Object.entries(formData.value).forEach(([key, value]) => {
|
|
if (
|
|
if (
|
|
[
|
|
[
|
|
- "is_change",
|
|
|
|
- "change_content",
|
|
|
|
- "changecontent",
|
|
|
|
- "bom_det",
|
|
|
|
- "isActive",
|
|
|
|
- "is_disable",
|
|
|
|
- "expand",
|
|
|
|
- "uid",
|
|
|
|
- "name",
|
|
|
|
- "type",
|
|
|
|
|
|
+ 'is_change',
|
|
|
|
+ 'change_content',
|
|
|
|
+ 'changecontent',
|
|
|
|
+ 'bom_det',
|
|
|
|
+ 'isActive',
|
|
|
|
+ 'is_disable',
|
|
|
|
+ 'expand',
|
|
|
|
+ 'uid',
|
|
|
|
+ 'name',
|
|
|
|
+ 'type',
|
|
].includes(key)
|
|
].includes(key)
|
|
) {
|
|
) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
// 值发生变化
|
|
// 值发生变化
|
|
- if (value !== originFormData[key]) {
|
|
|
|
|
|
+ if (value !== originFormData[key] && editType.value === 'edit') {
|
|
if (key in keyMap)
|
|
if (key in keyMap)
|
|
- str += `${str ? "," : ""}${keyMap[key as keyof typeof keyMap]}: ${
|
|
|
|
- originFormData[key] ?? "空"
|
|
|
|
- }->${value ?? ""}`;
|
|
|
|
|
|
+ str += `${str ? ',' : ''}${keyMap[key as keyof typeof keyMap]}: ${
|
|
|
|
+ originFormData[key] ?? '空'
|
|
|
|
+ }->${value ?? ''}`;
|
|
// 更新内部数据
|
|
// 更新内部数据
|
|
if (Object.hasOwnProperty.call(nodeData.value || {}, key)) {
|
|
if (Object.hasOwnProperty.call(nodeData.value || {}, key)) {
|
|
nodeData.value[key] = value;
|
|
nodeData.value[key] = value;
|
|
@@ -411,7 +424,7 @@ const handleSubmit = async () => {
|
|
formData.value.is_change = true;
|
|
formData.value.is_change = true;
|
|
}
|
|
}
|
|
|
|
|
|
- emit("ok", {
|
|
|
|
|
|
+ emit('ok', {
|
|
...(nodeData.value || {}),
|
|
...(nodeData.value || {}),
|
|
type: formData.value.part_type,
|
|
type: formData.value.part_type,
|
|
name: formData.value.part_name,
|
|
name: formData.value.part_name,
|