diff --git a/package.json b/package.json index 236319e..abec74b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "type": "module", "scripts": { "dev": "vite serve --mode development", - "build:prod": "node --max_old_space_size=9012 node_modules/vite/bin/vite.js build --mode production", + "build:prod": "node --max_old_space_size=8192 node_modules/vite/bin/vite.js build --mode production", "build:dev": "vite build --mode development", "preview": "vite preview", "lint:eslint": "eslint --fix --ext .ts,.js,.vue ./src ", diff --git a/src/api/dms/dmsBillsInspectInstance/types.ts b/src/api/dms/dmsBillsInspectInstance/types.ts index 01cab8f..ddcd24d 100644 --- a/src/api/dms/dmsBillsInspectInstance/types.ts +++ b/src/api/dms/dmsBillsInspectInstance/types.ts @@ -122,6 +122,11 @@ export interface DmsBillsInspectInstanceForm extends BaseEntity { */ remark?: string; + /** + * 工单状态(draft草稿 waiting待处理 processing处理中 completed已完成 cancel已取消 back已退回) + */ + status?: string; + } export interface DmsBillsInspectInstanceQuery extends PageQuery { diff --git a/src/api/dms/dmsBillsLubeInstance/types.ts b/src/api/dms/dmsBillsLubeInstance/types.ts index e6c8acd..8edf270 100644 --- a/src/api/dms/dmsBillsLubeInstance/types.ts +++ b/src/api/dms/dmsBillsLubeInstance/types.ts @@ -141,6 +141,16 @@ export interface DmsBillsLubeInstanceForm extends BaseEntity { */ planLubeCode?: string; + /** + * 工单状态(draft草稿 waiting待处理 processing处理中 completed已完成 cancel已取消 back已退回) + */ + status?: string; + + createBy?: string; + + createTime?: string; + + } export interface DmsBillsLubeInstanceQuery extends PageQuery { @@ -214,6 +224,10 @@ export interface DmsBillsLubeInstanceQuery extends PageQuery { * 润滑工单编号 */ planLubeCode?: string; + + createBy?: string; + + createTime?: string; } diff --git a/src/views/dms/dmsBillsFaultInstance/index.vue b/src/views/dms/dmsBillsFaultInstance/index.vue index 0f1c375..1bb687a 100644 --- a/src/views/dms/dmsBillsFaultInstance/index.vue +++ b/src/views/dms/dmsBillsFaultInstance/index.vue @@ -15,11 +15,11 @@ - + +

工单信息

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

已处理节点:步骤1

+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +

当前处理节点:步骤{{ nextStepOrder }}

+ + + + + + + + + + + + + + + + + + + + + + + + + + + 提 交 + + + +
+
+
+ + + +

润滑计划详细信息

+ + + + + + + +
+ + + + + + diff --git a/src/views/dms/dmsBillsLubeInstanceActivity/backup2.vue b/src/views/dms/dmsBillsLubeInstanceActivity/backup2.vue new file mode 100644 index 0000000..fd1bc8b --- /dev/null +++ b/src/views/dms/dmsBillsLubeInstanceActivity/backup2.vue @@ -0,0 +1,450 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dms/dmsBillsLubeInstanceActivity/backup3.vue b/src/views/dms/dmsBillsLubeInstanceActivity/backup3.vue new file mode 100644 index 0000000..417a0b1 --- /dev/null +++ b/src/views/dms/dmsBillsLubeInstanceActivity/backup3.vue @@ -0,0 +1,476 @@ + + + + + + \ No newline at end of file diff --git a/src/views/dms/dmsBillsLubeInstanceActivity/copy.vue b/src/views/dms/dmsBillsLubeInstanceActivity/copy.vue index 0a8dc10..242c64b 100644 --- a/src/views/dms/dmsBillsLubeInstanceActivity/copy.vue +++ b/src/views/dms/dmsBillsLubeInstanceActivity/copy.vue @@ -4,49 +4,75 @@
- - - - - + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + - - - - - + + + + + + + + + + + + + + + + + 搜索 @@ -61,57 +87,68 @@ - + - - - - - - - + + + + + + + - + + - + + + + + - + + + - + + + @@ -119,62 +156,88 @@ - + - - - - + + + - - + + - - + + - - + + - - + + - - + + + + + - + + + + + + + + + + + + + placeholder="请选择执行开始时间"> - + + placeholder="请选择执行结束时间"> - - - - + + + + + + + + + + + + + + + @@ -190,14 +253,14 @@
- + + diff --git a/src/views/dms/dmsBillsLubeInstanceActivity/index.vue b/src/views/dms/dmsBillsLubeInstanceActivity/index.vue index cf0915b..d6865b6 100644 --- a/src/views/dms/dmsBillsLubeInstanceActivity/index.vue +++ b/src/views/dms/dmsBillsLubeInstanceActivity/index.vue @@ -36,93 +36,89 @@ - - - -

- {{wfProcessActivityList[0]?.processActivityName}} -

- - - - - - - - - - - - - - - - - - - - + + +

已处理节点:步骤1(要求参数)

+ + + + + + + + + + + + + + + + + + + + - - + + - -
-

- {{wfProcessActivityList[dmsBillsLubeInstanceActivityList.length]?.processActivityName}} -

+ +
+

当前处理节点:步骤{{ nextStepOrder }}{{ nextStepOrder === 2 ? '(实际参数)' : '' }}

+ @@ -137,27 +133,31 @@ - + - + - - + + 提 交 + + 流程进度 + -
- - + +
+
@@ -171,13 +171,18 @@ + + + + + diff --git a/src/views/dms/dmsBillsLubeInstanceActivity/trae.vue b/src/views/dms/dmsBillsLubeInstanceActivity/trae.vue new file mode 100644 index 0000000..96eb7a6 --- /dev/null +++ b/src/views/dms/dmsBillsLubeInstanceActivity/trae.vue @@ -0,0 +1,563 @@ + + + \ No newline at end of file diff --git a/src/views/dms/dmsInstanceFile/index.vue b/src/views/dms/dmsInstanceFile/index.vue index bb6531d..a147675 100644 --- a/src/views/dms/dmsInstanceFile/index.vue +++ b/src/views/dms/dmsInstanceFile/index.vue @@ -4,20 +4,20 @@
- + + + - + + 搜索 重置 @@ -49,13 +49,14 @@ - + - - + + + - - + + + prop="materialBomId" /> + prop="materialTypeCode" :show-overflow-tooltip="true" /> + prop="materialTypeName" :show-overflow-tooltip="true" w /> + prop="materialId" :show-overflow-tooltip="true" /> @@ -190,18 +224,18 @@ - + + style="width:360px" /> + style="width:360px" /> @@ -243,23 +277,28 @@ import { materialBomTreeSelect, listMaterialBomJoinStructure, addBatchMaterialBom, - getUnitInfoList, getMaterialBomVersionList, getParentMaterialBom, deleteMaterialBoms -} from "@/api/mes/materialBom"; + getUnitInfoList, getMaterialBomVersionList, getParentMaterialBom, deleteMaterialBoms, + selectNextMaterialBomVersion +} from '@/api/mes/materialBom'; -import {MaterialBomVO, MaterialBomForm, MaterialBomQuery} from '@/api/mes/materialBom/types'; -import {BaseMaterialTypeVO} from '@/api/mes/baseMaterialType/types'; +import { MaterialBomVO, MaterialBomForm, MaterialBomQuery } from '@/api/mes/materialBom/types'; +import { BaseMaterialTypeVO } from '@/api/mes/baseMaterialType/types'; import MaterialSelect from '@/views/mes/baseMaterialInfo/addMaterial.vue'; -import {to} from 'await-to-js'; -import {nextTick} from "vue"; -import {MaterialBomVersionVO} from "@/api/mes/materialBomVersion/types"; -import {BaseMeasurementUnitInfoVO} from "@/api/mes/baseMeasurementUnitInfo/types"; -import {BaseStructureBomTreeVO} from "@/api/mes/baseStructureBom/types"; +import { to } from 'await-to-js'; +import { nextTick } from 'vue'; +import { MaterialBomVersionVO } from '@/api/mes/materialBomVersion/types'; +import { BaseMeasurementUnitInfoVO } from '@/api/mes/baseMeasurementUnitInfo/types'; +import { BaseStructureBomTreeVO } from '@/api/mes/baseStructureBom/types'; const materialTypeId = ref(0);//此值是传给选择物料信息弹框使用 const router = useRouter(); -const {proxy} = getCurrentInstance() as ComponentInternalInstance; +const { proxy } = getCurrentInstance() as ComponentInternalInstance; + +const { material_bom_active_flag } = toRefs(proxy?.useDict('material_bom_active_flag')); + + const materialBomList = ref(); const saveMaterialBomList = ref([]); const treeLoading = ref(false); @@ -293,18 +332,31 @@ const SELECT_MATERIAL_MODEL = ref({ PARENT_SELECT: '1',//父级物料选择 CHILD_SELECT: '2',//子级物料选择 DIALOG_CHILD_SELECT: '3'//弹窗子级选择 -}) +}); + +const MATERIAL_BOM_ACTIVE_FLAG = ref({ + ACTIVE: '1',//启用 + HISTORY: '2',//历史 + DESIGN: '3'//设计中 +}); + +const addNewMaterialBomVersionBtnText = ref('新增中'); +const addNewMaterialBomVersionBtnDisabled = ref(true); + +const publishBtnDisplay = ref(false); + +const initialMaterialBomVersion = ref('01'); // 列显隐信息 const columns = ref([ - {key: 0, label: `生产BOM_ID`, visible: false, children: []}, - {key: 1, label: `子物料类型编号`, visible: true, children: []}, - {key: 2, label: `子物料类型名称`, visible: true, children: []}, - {key: 3, label: `BOM版本`, visible: false, children: []}, - {key: 4, label: `子物料ID`, visible: false, children: []}, - {key: 5, label: `子物料名称`, visible: true, children: []}, - {key: 6, label: `子物料数量`, visible: true, children: []}, - {key: 7, label: `子物料单位`, visible: true, children: []} + { key: 0, label: `生产BOM_ID`, visible: false, children: [] }, + { key: 1, label: `子物料类型编号`, visible: true, children: [] }, + { key: 2, label: `子物料类型名称`, visible: true, children: [] }, + { key: 3, label: `BOM版本`, visible: false, children: [] }, + { key: 4, label: `子物料ID`, visible: false, children: [] }, + { key: 5, label: `子物料名称`, visible: true, children: [] }, + { key: 6, label: `子物料数量`, visible: true, children: [] }, + { key: 7, label: `子物料单位`, visible: true, children: [] } ]); const materialBomTreeRef = ref(); @@ -338,9 +390,9 @@ const initParentFormData: MaterialBomForm = { assembleTime: undefined, materialClassfication: undefined, attachId: undefined, - activeFlag: '1', + activeFlag: undefined, remark: undefined, - materialTypeName: undefined, + materialTypeName: undefined }; const initFormData: MaterialBomForm = { @@ -362,14 +414,14 @@ const initFormData: MaterialBomForm = { assembleTime: undefined, materialClassfication: undefined, attachId: undefined, - activeFlag: '1', + activeFlag: undefined, remark: undefined, - materialTypeName: undefined, + materialTypeName: undefined }; const data = reactive>({ - form: {...initFormData}, - parentForm: {...initParentFormData}, + form: { ...initFormData }, + parentForm: { ...initParentFormData }, queryParams: { materialBomId: undefined, parentId: undefined, @@ -382,31 +434,31 @@ const data = reactive>({ }, rules: { materialTypeId: [ - {required: true, message: "物料类型不能为空", trigger: "blur"} + { required: true, message: '物料类型不能为空', trigger: 'blur' } ], materialBomVersion: [ - {required: true, message: "BOM版本不能为空", trigger: "blur"} + { required: true, message: 'BOM版本不能为空', trigger: 'blur' } ], materialName: [ - {required: true, message: "物料名称不能为空", trigger: "blur"} + { required: true, message: '物料名称不能为空', trigger: 'blur' } ], standardAmount: [ - {required: true, message: "子物料数量不能为空", trigger: "blur"} + { required: true, message: '子物料数量不能为空', trigger: 'blur' } ] }, parentRules: { parentMaterialName: [ - {required: true, message: "父物料名称不能为空", trigger: "blur"} + { required: true, message: '父物料名称不能为空', trigger: 'blur' } ], materialBomVersion: [ - {required: true, message: "BOM版本不能为空", trigger: "blur"} + { required: true, message: 'BOM版本不能为空', trigger: 'blur' } ], parentStandardAmount: [ - {required: true, message: "父物料数量不能为空", trigger: "blur"} + { required: true, message: '父物料数量不能为空', trigger: 'blur' } ], parentUnitId: [ - {required: true, message: "父物料单位不能为空", trigger: "blur"} + { required: true, message: '父物料单位不能为空', trigger: 'blur' } ] } @@ -421,9 +473,9 @@ const parentQueryParams = ref({ materialName: undefined, materialBomVersion: undefined, params: {} -}) +}); -const {queryParams, form, rules, parentForm, parentRules} = toRefs(data); +const { queryParams, form, rules, parentForm, parentRules } = toRefs(data); /** 通过条件过滤节点 */ const filterNode = (value: string, data: any) => { @@ -452,7 +504,7 @@ const getTreeSelect = async () => { id: virtualTopNodeId,//materialBomId parentId: -1, materialId: 0, - label: "生产BOM", + label: '生产BOM', children: res.data }; materialBomOptions.value.push(initialTree); @@ -460,14 +512,14 @@ const getTreeSelect = async () => { // materialBomOptions.value = res.data; if (!focusKeyNode.value) {//如果之前没有focus - focusKeyNode.value = {treeKey: virtualTopNodeId}; + focusKeyNode.value = { treeKey: virtualTopNodeId }; } else { - const clickNode = findObjectByTreeKey(materialBomOptions.value, focusKeyNode.value.treeKey) + const clickNode = findObjectByTreeKey(materialBomOptions.value, focusKeyNode.value.treeKey); + if (!clickNode) { focusKeyNode.value = undefined; - focusKeyNode.value = {treeKey: virtualTopNodeId}; + focusKeyNode.value = { treeKey: virtualTopNodeId }; } - // if (!allTreeKeys || allTreeKeys.length <= 0) { // focusKeyNode.value = { // treeKey: virtualTopNodeId, @@ -482,9 +534,9 @@ const getTreeSelect = async () => { // const focusKeyNodeIndex = materialBomOptions.value.findIndex((optionItem) => focusKeyNode.value.treeKey === optionItem.treeKey);//有嵌套children的,有可能找不到 } - nextTick(function () { + nextTick(function() { materialBomTreeRef.value?.setCurrentKey(focusKeyNode.value.treeKey, true); - }) + }); loading.value = false; treeLoading.value = false; @@ -495,6 +547,16 @@ const getTreeSelect = async () => { // materialTypeOptions.value[0].children.push(dd); }; +/** 查询生产bom列表 */ +const getNextMaterialBomVersion = async () => { + //顶级节点,如果是重新修改父级物料则重新获取最新版本 + // loading.value = true; + const res = await selectNextMaterialBomVersion(parentForm.value.parentId); + parentForm.value.materialBomVersion = res.data; + // materialBomList.value = res.data; + // loading.value = false; +}; + /** 查询生产bom列表 */ const getList = async () => { //如果是有节点的则加载数据,如果是顶级节点生产BOM则不加载数据 @@ -507,17 +569,21 @@ const getList = async () => { const resetParentQueryParams = () => { parentQueryParams.value.parentId = undefined;//是当前节点的materialId parentQueryParams.value.materialBomVersion = undefined; -} +}; const resetQueryParams = () => { queryParams.value.parentId = undefined;//materialid queryParams.value.parentMaterialTypeId = undefined; -} +}; /** 节点单击事件 */ const handleNodeClick = (data: MaterialBomVO) => { materialBomList.value = []; parentMaterialDisabled.value = true; + publishBtnDisplay.value = false; + addNewMaterialBomVersionBtnDisabled.value = true; + btnLoading.value = true; + resetParentForm(); resetQueryParams(); resetParentQueryParams(); @@ -526,27 +592,39 @@ const handleNodeClick = (data: MaterialBomVO) => { parentQueryParams.value.parentId = data.materialId;//是当前节点的materialId parentQueryParams.value.materialBomVersion = data.materialBomVersion; getParentMaterialBomInfo(); - queryParams.value.parentId = data.materialId; - queryParams.value.parentMaterialTypeId = data.materialTypeId; - queryParams.value.materialBomVersion = data.materialBomVersion - handleQuery(); + } else { - if (materialBomVersionOptions.value.length > 0) { - parentForm.value.materialBomVersion = materialBomVersionOptions.value[0].materialBomVersion; - queryParams.value.materialBomVersion = materialBomVersionOptions.value[0].materialBomVersion; - } + parentForm.value.activeFlag = MATERIAL_BOM_ACTIVE_FLAG.value.DESIGN; + handleBtnStatus(); + btnLoading.value = false; + // if (materialBomVersionOptions.value.length > 0) { + // parentForm.value.materialBomVersion = materialBomVersionOptions.value[0].materialBomVersion; + // queryParams.value.materialBomVersion = materialBomVersionOptions.value[0].materialBomVersion; + // } } parentMaterialDisabled.value = focusKeyNode.value.treeKey != -1; }; +const handleBtnStatus = () => { + if (parentForm.value.materialBomVersion && parentForm.value.materialBomVersion !== '') { + addNewMaterialBomVersionBtnDisabled.value = false; + addNewMaterialBomVersionBtnText.value = '新增版本'; + publishBtnDisplay.value = parentForm.value.activeFlag !== MATERIAL_BOM_ACTIVE_FLAG.value.ACTIVE; + } else { + addNewMaterialBomVersionBtnDisabled.value = true; + addNewMaterialBomVersionBtnText.value = '新增中'; + publishBtnDisplay.value = false; + } + +}; const clickDisplay = () => { if (queryParams.value.parentId === 0) { parentFormDisplay.value = false; - childTableTitle.value = "顶级物料"; + childTableTitle.value = '顶级物料'; } else { parentFormDisplay.value = true; - childTableTitle.value = "子级物料"; + childTableTitle.value = '子级物料'; } }; @@ -588,7 +666,7 @@ const handleDelete = async (row?: MaterialBomVO) => { }); // alert(JSON.stringify(toDeleteMaterialBoms.value)) if (toDeleteMaterialBoms.value.length > 0) { - await deleteMaterialBoms(toDeleteMaterialBoms.value) + await deleteMaterialBoms(toDeleteMaterialBoms.value); await getTreeSelect(); } @@ -619,7 +697,7 @@ const handleSelectionChange = (selection: MaterialBomVO[]) => { /** 重置操作表单 */ const reset = () => { - form.value = {...initFormData}; + form.value = { ...initFormData }; materialBomFormRef.value?.resetFields(); }; /** 取消按钮 */ @@ -734,7 +812,7 @@ const handleMaterialSelect = (row, selectMode) => { } else if (selectMode === SELECT_MATERIAL_MODEL.value.CHILD_SELECT) {//子级选择物料需要传值materialTypeId materialTypeId.value = row.materialTypeId; } else { - materialTypeId.value = undefined + materialTypeId.value = undefined; } materialOpen.value = true; }; @@ -746,14 +824,15 @@ const submitMaterialForm = () => { //此处只有是父级物料时赋值 if (globalSelectMode.value === SELECT_MATERIAL_MODEL.value.PARENT_SELECT) { + editedRow.value.materialBomVersion = undefined; editedRow.value.parentId = selectedRow.materialId; editedRow.value.parentMaterialName = selectedRow.materialName; editedRow.value.parentMaterialTypeId = selectedRow.materialTypeId; editedRow.value.parentMaterialTypeName = selectedRow.matrialTypeName; - queryParams.value.parentId = selectedRow.materialId; queryParams.value.parentMaterialTypeId = selectedRow.materialTypeId; + getNextMaterialBomVersion(); // alert(JSON.stringify(queryParams.value)) getList(); } else { @@ -787,9 +866,12 @@ const submitBatchSaveMaterialBoms = async () => { item.parentId = parentForm.value.parentId; item.parentUnitId = parentForm.value.parentUnitId; - item.materialBomVersion = parentForm.value.materialBomVersion; item.parentStandardAmount = parentForm.value.parentStandardAmount; item.parentMaterialTypeId = parentForm.value.parentMaterialTypeId; + + item.materialBomDesc = parentForm.value.materialBomDesc; + item.materialBomVersion = parentForm.value.materialBomVersion; + item.activeFlag = parentForm.value.activeFlag; saveMaterialBomList.value.push(item); } } @@ -801,7 +883,9 @@ const submitBatchSaveMaterialBoms = async () => { await addBatchMaterialBom(saveMaterialBomList.value); proxy?.$modal.msgSuccess('操作成功'); - focusKeyNode.value.treeKey = parentForm.value.parentId + "-" + parentForm.value.materialBomVersion; + focusKeyNode.value.treeKey = parentForm.value.parentId + '-' + parentForm.value.materialBomVersion; + focusKeyNode.value.materialId = parentForm.value.parentId; + focusKeyNode.value.materialTypeId = parentForm.value.parentMaterialTypeId; focusKeyNode.value.materialBomVersion = parentForm.value.materialBomVersion; focusKeyNode.value.parentUnitId = parentForm.value.parentUnitId; focusKeyNode.value.parentStandardAmount = parentForm.value.parentStandardAmount; @@ -817,13 +901,13 @@ const submitBatchSaveMaterialBoms = async () => { } } }); -} +}; /** 初始化单位数据 */ const initUnitInfoData = async () => { if (unitInfoOptions.value === undefined || unitInfoOptions.value.length <= 0) { - const {data} = await getUnitInfoList(); + const { data } = await getUnitInfoList(); // alert(JSON.stringify(data)) unitInfoOptions.value = data; } @@ -833,7 +917,7 @@ const initUnitInfoData = async () => { const initMaterialBomVersionData = async () => { // alert(JSON.stringify(getMaterialBomVersionList)) if (materialBomVersionOptions.value === undefined || materialBomVersionOptions.value.length <= 0) { - const {data} = await getMaterialBomVersionList(); + const { data } = await getMaterialBomVersionList(); materialBomVersionOptions.value = data; if (materialBomVersionOptions.value.length > 0) { @@ -849,7 +933,18 @@ const initMaterialBomVersionData = async () => { const getParentMaterialBomInfo = async () => { const res = await getParentMaterialBom(parentQueryParams.value); parentForm.value = res.data; + handleBtnStatus(); + if (!parentForm.value.materialBomVersion || parentForm.value.materialBomVersion === '') { + parentForm.value.materialBomVersion = initialMaterialBomVersion.value; + parentForm.value.activeFlag = MATERIAL_BOM_ACTIVE_FLAG.value.DESIGN; + } + + queryParams.value.parentId = parentForm.value.parentId; + queryParams.value.parentMaterialTypeId = parentForm.value.parentMaterialTypeId; + queryParams.value.materialBomVersion = parentForm.value.materialBomVersion; + handleQuery(); + btnLoading.value = false; }; @@ -862,8 +957,19 @@ const findObjectByTreeKey = (list, targetTreeKey) => { } } return null; -} +}; +/** 基于当前父级物料和版本,新增物料bom版本 */ +const addNewMaterialBomVersion = async () => { + loading.value = true; + parentForm.value.activeFlag = MATERIAL_BOM_ACTIVE_FLAG.value.DESIGN; + await getNextMaterialBomVersion(); + materialBomList.value.forEach(childMaterialBom => { + childMaterialBom.materialBomId = undefined; + }); + loading.value = false; + console.log(materialBomList); +}; // const getClickNode = (obj) => { // // 如果当前对象有 id,并且与之前focus的id相同,则收集 @@ -880,6 +986,22 @@ const findObjectByTreeKey = (list, targetTreeKey) => { // } // // } +const getColor = (e) => { + if (e.materialBomVersion === '01') { + return ['#ff0000', '#fff']; + } + if (e.materialBomVersion === '02') { + return ['#00ff00', '#000']; + } + if (e.materialBomVersion === '03') { + return ['#0000ff', '#fff']; + } +}; - +