Browse Source

QMS质量代码 分批提交1

master
赵宏斌 3 months ago
parent
commit
6a19c5442d
  1. 4
      src/api/chooselist/chooselist.js
  2. 6
      src/api/eam/com_eam_object_add_update.js
  3. 4
      src/api/eam/com_eam_object_upload_file.js
  4. 239
      src/api/eam/eam.js
  5. 41
      src/api/eam/eamProject.js
  6. 66
      src/api/eam/eamProofing.js
  7. 6
      src/api/eam/eamReport.js
  8. 60
      src/api/eam/eam_object_list.js
  9. 2
      src/api/table.js
  10. 65
      src/utils/ajax.js
  11. 159
      src/utils/excel-util.js
  12. 274
      src/views/modules/common/Chooselist_eam.vue
  13. 4202
      src/views/modules/qc/FAIResultEntry.vue
  14. 4173
      src/views/modules/qc/FQCResultEntry.vue
  15. 4240
      src/views/modules/qc/IPQCResultEntry.vue
  16. 222
      src/views/modules/qc/IQCFileTable.vue
  17. 3439
      src/views/modules/qc/IQCResultEntry.vue
  18. 746
      src/views/modules/qc/OperationForResource.vue
  19. 4614
      src/views/modules/qc/PQCResultEntry.vue
  20. 193
      src/views/modules/qc/com_qc_itemImage_upload_file.vue

4
src/api/chooselist/chooselist.js

@ -5,3 +5,7 @@ export const getChooselist = data => createAPI(`/chooselist/getChooselist/${data
export const getChooselistData = data => createAPI(`/chooselist/getChooselistData`,'post',data)
export const getChooselistEam = data => createAPI(`/chooselist/getChooselist/${data.tagNo}`,'get',data)
export const getChooselistDataEam = data => createAPI(`/chooselist/getChooselistData`,'post',data)

6
src/api/eam/com_eam_object_add_update.js

@ -0,0 +1,6 @@
import { createAPI } from "@/utils/httpRequest.js";
/*新增设备*/
export const insertEamObject = data => createAPI('/pms/eamObject/insertEamObject','post',data)
/*修改设备*/
export const updateEamObject = data => createAPI('/pms/eamObject/updateEamObject','post',data)

4
src/api/eam/com_eam_object_upload_file.js

@ -0,0 +1,4 @@
import { createAPI } from "@/utils/httpRequest.js";
/*图片上传*/
export const uploadEamObjectFile = data => createAPI('/sys/file/upload','post',data)

239
src/api/eam/eam.js

@ -0,0 +1,239 @@
import { createAPI } from "@/utils/httpRequest.js";
//---------------机修人员-------------------
export const eamAdminSearch = data => createAPI(`/pms/eam/eamAdminSearch`,'post',data)
export const eamAdminSave = data => createAPI(`/pms/eam/eamAdminSave`,'post',data)
export const eamAdminEdit = data => createAPI(`/pms/eam/eamAdminEdit`,'post',data)
export const eamAdminDelete = data => createAPI(`/pms/eam/eamAdminDelete`,'post',data)
export const initAdminLevel = data => createAPI(`/pms/eam/initAdminLevel`,'post',data)
//获取所有部门
export const getEmpyDeptList = data => createAPI(`/pms/eam/getEmpyDeptList`,'post',data)
export const getMesList = data => createAPI(`/pms/eam/getMesList`,'post',data)
//---------------设备分类-------------------
export const eamFamilySearch = data => createAPI(`/pms/eam/eamFamilySearch`,'post',data)
export const eamFamilySave = data => createAPI(`/pms/eam/eamFamilySave`,'post',data)
export const eamFamilyEdit = data => createAPI(`/pms/eam/eamFamilyEdit`,'post',data)
export const eamFamilyDelete = data => createAPI(`/pms/eam/eamFamilyDelete`,'post',data)
//---------------设备分组-------------------
export const eamGroupSearch = data => createAPI(`/pms/eam/eamGroupSearch`,'post',data)
export const eamGroupSave = data => createAPI(`/pms/eam/eamGroupSave`,'post',data)
export const eamGroupEdit = data => createAPI(`/pms/eam/eamGroupEdit`,'post',data)
export const eamGroupDelete = data => createAPI(`/pms/eam/eamGroupDelete`,'post',data)
//---------------设备区域-------------------
export const eamLocationSearch = data => createAPI(`/pms/eam/eamLocationSearch`,'post',data)
export const eamLocationSave = data => createAPI(`/pms/eam/eamLocationSave`,'post',data)
export const eamLocationEdit = data => createAPI(`/pms/eam/eamLocationEdit`,'post',data)
export const eamLocationDelete = data => createAPI(`/pms/eam/eamLocationDelete`,'post',data)
//---------------设备供应商-------------------
export const eamSupplierSearch = data => createAPI(`/pms/eam/eamSupplierSearch`,'post',data)
export const eamSupplierSave = data => createAPI(`/pms/eam/eamSupplierSave`,'post',data)
export const eamSupplierEdit = data => createAPI(`/pms/eam/eamSupplierEdit`,'post',data)
export const eamSupplierDelete = data => createAPI(`/pms/eam/eamSupplierDelete`,'post',data)
//---------------设备制造商-------------------
export const eamManufacturerSearch = data => createAPI(`/pms/eam/eamManufacturerSearch`,'post',data)
export const eamManufacturerSave = data => createAPI(`/pms/eam/eamManufacturerSave`,'post',data)
export const eamManufacturerEdit = data => createAPI(`/pms/eam/eamManufacturerEdit`,'post',data)
export const eamManufacturerDelete = data => createAPI(`/pms/eam/eamManufacturerDelete`,'post',data)
//---------------设备人员等级-------------------
export const eamAdminLevelSearch = data => createAPI(`/pms/eam/eamAdminLevelSearch`,'post',data)
export const eamAdminLevelSave = data => createAPI(`/pms/eam/eamAdminLevelSave`,'post',data)
export const eamAdminLevelEdit = data => createAPI(`/pms/eam/eamAdminLevelEdit`,'post',data)
export const eamAdminLevelDelete = data => createAPI(`/pms/eam/eamAdminLevelDelete`,'post',data)
//----------------点检项目------------------------
export const eamPropertiesItemSearch = data => createAPI(`/pms/eam/eamPropertiesItemSearch`,'post',data)
export const eamPropertiesItemSave = data => createAPI(`/pms/eam/eamPropertiesItemSave`,'post',data)
export const eamPropertiesItemEdit = data => createAPI(`/pms/eam/eamPropertiesItemEdit`,'post',data)
export const eamPropertiesItemDelete = data => createAPI(`/pms/eam/eamPropertiesItemDelete`,'post',data)
export const saveItemAvailable = data => createAPI(`/pms/eam/saveItemAvailable`,'post',data)
export const searchItemAvailable = data => createAPI(`/pms/eam/searchItemAvailable`,'post',data)
export const deleteItemAvailable = data => createAPI(`/pms/eam/deleteItemAvailable`,'post',data)
export const deleteModalDetail = data => createAPI(`/pms/eam/deleteModalDetail`,'post',data)
//---------------点检模板-------------------
export const eamPropertiesModelSearch = data => createAPI(`/pms/eam/eamPropertiesModelSearch`,'post',data)
export const eamPropertiesModelSave = data => createAPI(`/pms/eam/eamPropertiesModelSave`,'post',data)
export const eamPropertiesModelEdit = data => createAPI(`/pms/eam/eamPropertiesModelEdit`,'post',data)
export const eamPropertiesModelDelete = data => createAPI(`/pms/eam/eamPropertiesModelDelete`,'post',data)
export const searchModalDetails = data => createAPI(`/pms/eam/searchModalDetails`,'post',data)
export const saveModalDetails = data => createAPI(`/pms/eam/saveModalDetails`,'post',data)
export const deleteModalDetails = data => createAPI(`/pms/eam/deleteModalDetails`,'post',data)
//---------------点检计划-------------------
export const eamWorkPlanSearch = data => createAPI(`/pms/eam/eamWorkPlanSearch`,'post',data)
export const eamWorkPlanSave = data => createAPI(`/pms/eam/eamWorkPlanSave`,'post',data)
export const eamWorkPlanEdit = data => createAPI(`/pms/eam/eamWorkPlanEdit`,'post',data)
export const eamWorkPlanDelete = data => createAPI(`/pms/eam/eamWorkPlanDelete`,'post',data)
export const searchPlanItems = data => createAPI(`/pms/eam/searchPlanItems`,'post',data)
export const updatePlanItems = data => createAPI(`/pms/eam/updatePlanItems`,'post',data)
export const searchPlanItemAvailable = data => createAPI(`/pms/eam/searchPlanItemAvailable`,'post',data)
export const savePlanItemAvailable = data => createAPI(`/pms/eam/savePlanItemAvailable`,'post',data)
export const deletePlanItemAvailable = data => createAPI(`/pms/eam/deletePlanItemAvailable`,'post',data)
export const createEamWorkOrder = data => createAPI(`/pms/eam/createEamWorkOrder`,'post',data)
export const objectIDBlur = data => createAPI(`/pms/eam/objectIDBlur`,'post',data)
export const modalCodeBlur = data => createAPI(`/pms/eam/modalCodeBlur`,'post',data)
export const planOrder = data => createAPI(`/pms/eam/planOrder`,'post',data)
export const cancelPlan = data => createAPI(`/pms/eam/cancelPlan`,'post',data)
export const getOperatorList = data => createAPI(`/pms/eam/getOperatorList`,'post',data) // 获取机修人员列表
export const getCheckerList = data => createAPI(`/pms/eam/getCheckerList`,'post',data) // 获取审核人员列表
//---------------点检工单-------------------
export const eamWorkOrderSearch = data => createAPI(`/pms/eam/eamWorkOrderSearch`,'post',data)
export const cancelOrder= data => createAPI(`/pms/eam/cancelOrder`,'post',data)
export const eamWorkOrderReportSearch= data => createAPI(`/pms/eam/eamWorkOrderReportSearch`,'post',data)
export const eamWorkOrderSearchForDefect= data => createAPI(`/pms/eam/eamWorkOrderSearchForDefect`,'post',data)
export const updateWorkOrder= data => createAPI(`/pms/eam/updateWorkOrder`,'post',data)
//---------------故障-------------------
export const eamDefectSearch = data => createAPI(`/pms/eam/eamDefectSearch`,'post',data)
export const eamDefectSave = data => createAPI(`/pms/eam/eamDefectSave`,'post',data)
export const eamDefectEdit = data => createAPI(`/pms/eam/eamDefectEdit`,'post',data)
export const eamDefectDelete = data => createAPI(`/pms/eam/eamDefectDelete`,'post',data)
//---------------设备故障-------------------
export const eamObjectDefectSearch = data => createAPI(`/pms/eam/eamObjectDefectSearch`,'post',data)
export const eamObjectDefectSave = data => createAPI(`/pms/eam/eamObjectDefectSave`,'post',data)
export const eamObjectDefectEdit = data => createAPI(`/pms/eam/eamObjectDefectEdit`,'post',data)
export const eamObjectDefectDelete = data => createAPI(`/pms/eam/eamObjectDefectDelete`,'post',data)
export const getObjectList = data => createAPI(`/pms/eam/getObjectList`,'post',data)
export const searchFileUrl = data => createAPI(`/pms/eam/searchFileUrl`,'post',data)
//---------------点检执行-------------------
export const eamWorkOrderItemSearch = data => createAPI(`/pms/eam/eamWorkOrderItemSearch`,'post',data)
export const saveCheckOrderReport = data => createAPI(`/pms/eam/saveCheckOrderReport`,'post',data)
export const changeOrderOperator = data => createAPI(`/pms/eam/changeOrderOperator`,'post',data)
export const saveOrderReportForDefect= data => createAPI(`/pms/eam/saveOrderReportForDefect`,'post',data)
export const checkWorkOrder= data => createAPI(`/pms/eam/checkWorkOrder`,'post',data)
export const returnWorkOrder= data => createAPI(`/pms/eam/returnWorkOrder`,'post',data)
export const selectNameByMes= data => createAPI(`/pms/eam/selectNameByMes`,'post',data)
export const submitDefect= data => createAPI(`/pms/eam/submitDefect`,'post',data)
export const submitDefects= data => createAPI(`/pms/eam/submitDefects`,'post',data)
export const eamWorkPlanOverviewSearch= data => createAPI(`/pms/eam/eamWorkPlanOverviewSearch`,'post',data)
export const getPlanDetailList= data => createAPI(`/pms/eam/getPlanDetailList`,'post',data)
export const delPlanDetail= data => createAPI(`/pms/eam/delPlanDetail`,'post',data)
export const getObjList= data => createAPI(`/pms/eam/getObjList`,'post',data)
export const addObject= data => createAPI(`/pms/eam/addObject`,'post',data)
export const delObject= data => createAPI(`/pms/eam/delObject`,'post',data)
export const planObjectSearch= data => createAPI(`/pms/eam/planObjectSearch`,'post',data)
export const queryHistoryRecord= data => createAPI(`/pms/eam/queryHistoryRecord`,'post',data)
//---------------设备清单-------------------
export const getSpareSelectList= data => createAPI(`/pms/eam/getSpareSelectList`,'post',data)
export const saveObjectSparesData= data => createAPI(`/pms/eam/saveObjectSparesData`,'post',data)
export const copyObjectSparesData= data => createAPI(`/pms/eam/copyObjectSparesData`,'post',data)
export const getWorkPlanDataWithObjectID= data => createAPI(`/pms/eam/getWorkPlanDataWithObjectID`,'post',data)
export const getObjectItemList= data => createAPI(`/pms/eam/getObjectItemList`,'post',data)
export const getDefectWithObject= data => createAPI(`/pms/eam/getDefectWithObject`,'post',data)
export const saveObjectItemData= data => createAPI(`/pms/eam/saveObjectItemData`,'post',data)
export const deleteObjectItem= data => createAPI(`/pms/eam/deleteObjectItem`,'post',data)
export const searchObjectItemAvailable= data => createAPI(`/pms/eam/searchObjectItemAvailable`,'post',data)
export const saveObjectItemAvailable= data => createAPI(`/pms/eam/saveObjectItemAvailable`,'post',data)
export const deleteObjectItemAvailable= data => createAPI(`/pms/eam/deleteObjectItemAvailable`,'post',data)
//---------------故障反馈-------------------
export const eamFeedBackSearch= data => createAPI(`/pms/eam/eamFeedBackSearch`,'post',data)
export const cancelFeedBack= data => createAPI(`/pms/eam/cancelFeedBack`,'post',data)
export const saveDefectOrder= data => createAPI(`/pms/eam/saveDefectOrder`,'post',data)
export const imageDelete= data => createAPI(`/pms/eam/imageDelete`,'post',data)
export const getDeptList= data => createAPI(`/pms/eam/getDeptList`,'post',data)
export const updateReportResult= data => createAPI(`/pms/eam/updateReportResult`,'post',data)
export const saveEamGzBbData= data => createAPI(`/pms/eam/saveEamGzBbData`,'post',data)
export const getFeedBackId= data => createAPI(`/pms/eam/getFeedBackId`,'post',data)
export const updateEamDefectFeedBackPlanOperator= data => createAPI(`/pms/eam/updateEamDefectFeedBackPlanOperator`,'post',data)
//---------------文档类型定义-------------------
export const eamDocumentTypeSearch= data => createAPI(`/pms/eam/eamDocumentTypeSearch`,'post',data)
export const queryEamDocumentType= data => createAPI(`/pms/eam/queryEamDocumentType`,'post',data)
export const eamDocumentTypeSave= data => createAPI(`/pms/eam/eamDocumentTypeSave`,'post',data)
export const eamDocumentTypeEdit= data => createAPI(`/pms/eam/eamDocumentTypeEdit`,'post',data)
export const eamDocumentTypeDelete= data => createAPI(`/pms/eam/eamDocumentTypeDelete`,'post',data)
//---------------BU文档清单定义-------------------
export const eamBuDocumentSearch= data => createAPI(`/pms/eam/eamBuDocumentSearch`,'post',data)
export const queryEamBuDocument= data => createAPI(`/pms/eam/queryEamBuDocument`,'post',data)
export const eamBuDocumentSave= data => createAPI(`/pms/eam/eamBuDocumentSave`,'post',data)
export const eamBuDocumentEdit= data => createAPI(`/pms/eam/eamBuDocumentEdit`,'post',data)
export const eamBuDocumentDelete= data => createAPI(`/pms/eam/eamBuDocumentDelete`,'post',data)
//---------------快速添加-------------------
export const getItemLists= data => createAPI(`/pms/eam/getItemLists`,'post',data)
export const deleteObjectFile= data => createAPI(`/pms/eam/deleteObjectFile`,'post',data)
export const checkSparPartImage= data => createAPI(`/pms/eam/checkSparPartImage`,'post',data)
export const refreshItem= data => createAPI(`/pms/eam/refreshItem`,'post',data)
export const reach= data => createAPI(`/pms/eam/reach`,'post',data)
export const searchItemFileUrl= data => createAPI(`/pms/eam/searchItemFileUrl`,'post',data)
//---------------树形结构-------------------
export const getFamilyTree= data => createAPI(`/pms/eam/getFamilyTree`,'post',data)
export const getDetail= data => createAPI(`/pms/eam/getDetail`,'post',data)
export const AddTreeselect= data => createAPI(`/pms/eam/AddTreeselect`,'post',data)
export const EditTreeselect= data => createAPI(`/pms/eam/EditTreeselect`,'post',data)
export const getSiteAndBuByUserName= data => createAPI(`/pms/eam/getSiteAndBuByUserName`,'post',data)
export const eamCheckRecordSearch= data => createAPI(`/pms/eam/eamCheckRecordSearch`,'post',data)
export const eamDefectRecordSearch= data => createAPI(`/pms/eam/eamDefectRecordSearch`,'post',data)
// 获取用户角色列表
export const getUserRoleList= data => createAPI(`/pms/eam/getUserRoleList`,'post',data)
// 获取确认权限人员列表
export const getConfirmButtonOperator= data => createAPI(`/pms/eam/getConfirmButtonOperator`,'post',data)
// 获取故障图片
export const getFeedBackImages= data => createAPI(`/pms/eam/getFeedBackImages`,'post',data)
// 获取领用出库信息
export const getInventoryStockList= data => createAPI(`/pms/eam/getInventoryStockList`,'post',data)
// 维修出库
export const saveTrans= data => createAPI(`/pms/eam/saveTrans`,'post',data)
export const saveCoreComponent= data => createAPI(`/pms/eam/saveCoreComponent`,'post',data)
export const deleteCoreComponents= data => createAPI(`/pms/eam/deleteCoreComponents`,'post',data)
export const confirmDefectOrder= data => createAPI(`/pms/eam/confirmDefectOrder`,'post',data)
export const cancelDefectOrder= data => createAPI(`/pms/eam/cancelDefectOrder`,'post',data)
export const getSparPartImages= data => createAPI(`/pms/eam/getSparPartImages`,'post',data)
export const getRoleByUserName= data => createAPI(`/pms/eam/getRoleByUserName`,'post',data)
export const eamWorkOrderSearch2 = data => createAPI(`/pms/eam/eamWorkOrderSearch2`,'post',data)
export const searchFeedMatterRecord = data => createAPI(`/pms/eam/searchFeedMatterRecord`,'post',data)
export const saveFeedMatter = data => createAPI(`/pms/eam/saveFeedMatter`,'post',data)
export const updateFeedMatter = data => createAPI(`/pms/eam/updateFeedMatter`,'post',data)
export const deleteFeedMatter = data => createAPI(`/pms/eam/deleteFeedMatter`,'post',data)
export const getOperatorListByOrder = data => createAPI(`/pms/eam/getOperatorListByOrder`,'post',data)
export const checkWorkOrders = data => createAPI(`/pms/eam/checkWorkOrders`,'post',data)
export const exportEmployeeAttendanceSearch = data => createAPI(`/pms/eam/exportEmployeeAttendanceSearch`,'post',data)
// 换线专家组维修执行 转单
export const updateRepairTypes = data => createAPI(`/pms/eam/updateRepairTypes`,'post',data)
// 维保模版点检模版项目上下移
export const goUpItemEam = data => createAPI(`/pms/eam/goUpItemEam`,'post',data)
export const goDownItemEam = data => createAPI(`/pms/eam/goDownItemEam`,'post',data)

41
src/api/eam/eamProject.js

@ -0,0 +1,41 @@
import { createAPI } from "@/utils/httpRequest.js";
//---------------项目信息-------------------
export const eamProjectInfoSearch= data => createAPI(`/pms/eamProject/eamProjectInfoSearch`,'post',data)
export const queryEamProjectInfo= data => createAPI(`/pms/eamProject/queryEamProjectInfo`,'post',data)
export const eamProjectInfoSave= data => createAPI(`/pms/eamProject/eamProjectInfoSave`,'post',data)
export const eamProjectInfoEdit= data => createAPI(`/pms/eamProject/eamProjectInfoEdit`,'post',data)
export const eamProjectInfoDelete= data => createAPI(`/pms/eamProject/eamProjectInfoDelete`,'post',data)
export const saveFormalPartNo= data => createAPI(`/pms/eamProject/saveFormalPartNo`,'post',data)
export const getFinalPartDesc= data => createAPI(`/pms/eamProject/getFinalPartDesc`,'post',data)
export const getCustomerNo= data => createAPI(`/pms/eamProject/getCustomerNo`,'post',data)
export const saveNewCustomer= data => createAPI(`/pms/eamProject/saveNewCustomer`,'post',data)
export const eamProjectPartSearch= data => createAPI(`/pms/eamProject/eamProjectPartSearch`,'post',data)
export const queryEamProjectPart= data => createAPI(`/pms/eamProject/queryEamProjectPart`,'post',data)
export const eamProjectPartInfoSave= data => createAPI(`/pms/eamProject/eamProjectPartInfoSave`,'post',data)
export const eamProjectPartInfoEdit= data => createAPI(`/pms/eamProject/eamProjectPartInfoEdit`,'post',data)
export const eamProjectPartInfoCancelEdit= data => createAPI(`/pms/eamProject/eamProjectPartInfoCancelEdit`,'post',data)
export const eamProjectPartInfoDelete= data => createAPI(`/pms/eamProject/eamProjectPartInfoDelete`,'post',data)
export const searchConfirmatorList= data => createAPI(`/pms/eamProject/searchConfirmatorList`,'post',data)
export const addConfirmatory= data => createAPI(`/pms/eamProject/addConfirmatory`,'post',data)
export const deleteConfirmatory= data => createAPI(`/pms/eamProject/deleteConfirmatory`,'post',data)
export const saveProductionValidationDocumentConfirmator= data => createAPI(`/pms/eamProject/saveProductionValidationDocumentConfirmator`,'post',data)
export const saveProductionValidationDocument= data => createAPI(`/pms/eamProject/saveProductionValidationDocument`,'post',data)
export const deleteConfirmatorInformation= data => createAPI(`/pms/eamProject/deleteConfirmatorInformation`,'post',data)
export const deleteDocumentInformation= data => createAPI(`/pms/eamProject/deleteDocumentInformation`,'post',data)
export const checkProductionValidationDocument= data => createAPI(`/pms/eamProject/checkProductionValidationDocument`,'post',data)
export const checkConfirmationRecord= data => createAPI(`/pms/eamProject/checkConfirmationRecord`,'post',data)
export const searchConfirmProgressDocumentList= data => createAPI(`/pms/eamProject/searchConfirmProgressDocumentList`,'post',data)
export const searchConfirmProgressPusherList= data => createAPI(`/pms/eamProject/searchConfirmProgressPusherList`,'post',data)
export const uploadProjectFile= data => createAPI(`/base/uploadProjectFile`,'post',data)
export const updateProjectDocumentConfirm= data => createAPI(`/pms/eamProject/updateProjectDocumentConfirm`,'post',data)
export const searchProjectConfirmatorFileList= data => createAPI(`/pms/eamProject/searchProjectConfirmatorFileList`,'post',data)
export const deleteProjectFile= data => createAPI(`/base/deleteProjectFile`,'post',data)
export const sendMailHandle= data => createAPI(`/pms/eamProject/sendMailHandle`,'post',data)
export const warnSendMailHandle= data => createAPI(`/pms/eamProject/warnSendMailHandle`,'post',data)
export const confirmatorSendMailHandle= data => createAPI(`/pms/eamProject/confirmatorSendMailHandle`,'post',data)
export const agencyMatter= data => createAPI(`/pms/agencyMatter/project-counts`,'post',data)
export const deleteAndSaveHandle= data => createAPI(`/pms/eamProject/deleteAndSaveHandle`,'post',data)
export const saveHandle= data => createAPI(`/pms/eamProject/saveHandle`,'post',data)
export const searchMassProductionBomList= data => createAPI(`/pms/eamProject/searchMassProductionBomList`,'post',data)
export const searchRoutingList= data => createAPI(`/pms/eamProject/searchRoutingList`,'post',data)

66
src/api/eam/eamProofing.js

@ -0,0 +1,66 @@
import { createAPI } from "@/utils/httpRequest.js";
//---------------打样信息-------------------
export const proofingInformationSearch= data => createAPI(`plm/proofingInformation/proofingInformationSearch`,'post',data)
//proofingInformationSearchForCheck
export const proofingInformationSearchForCheck= data => createAPI(`/pms/eamProofing/proofingInformationSearchForCheck`,'post',data)
//proofingInformationSave
export const proofingInformationSave= data => createAPI(`/plm/proofingInformation/proofingInformationSave`,'post',data)
//deleteProofingRecord
export const deleteProofingRecord= data => createAPI(`/plm/proofingInformation/deleteProofingRecord`,'post',data)
//getProofDocument
export const getProofDocument= data => createAPI(`/plm/proofingInformation/getProofDocument`,'post',data)
export const deleteDocumentType= data => createAPI(`/plm/proofingInformation/deleteDocumentType`,'post',data)
//proofingDocumentSave
export const proofingDocumentSave = data => createAPI(`/plm/proofingInformation/proofingDocumentSave`,'post',data)
//editProofingRecord
export const editProofingRecord = data => createAPI(`/plm/proofingInformation/editProofingRecord`,'post',data)
//getExtraDocumentList
export const getExtraDocumentList= data => createAPI(`/plm/proofingInformation/getExtraDocumentList`,'post',data)
//proofingDocumentNEW
export const proofingDocumentNEW= data => createAPI(`/plm/proofingInformation/proofingDocumentNEW`,'post',data)
export const getProjectOtherDocument= data => createAPI(`/plm/proofingInformation/getProofDocument`,'post',data)
export const projectDocumentSave= data => createAPI(`/plm/proofingInformation/projectDocumentSave`,'post',data)
export const editProjectDocument= data => createAPI(`/plm/proofingInformation/editProjectDocument`,'post',data)
export const searchProjectAllDocument= data => createAPI(`/plm/proofingInformation/searchProjectAllDocument`,'post',data)
export const deleteProofDocument= data => createAPI(`/plm/proofingInformation/deleteProofDocument`,'post',data)
export const searchProjectUploadsDocumentList= data => createAPI(`/plm/proofingInformation/searchProjectUploadsDocumentList`,'post',data)
export const searchProjectOverUploadsDocumentList= data => createAPI(`/plm/proofingInformation/searchProjectOverUploadsDocumentList`,'post',data)
export const searchAllProjectUploadsDocumentList= data => createAPI(`/plm/proofingInformation/searchAllProjectUploadsDocumentList`,'post',data)
export const queryProjectUploadsDocumentList= data => createAPI(`/plm/proofingInformation/queryProjectUploadsDocumentList`,'post',data)
export const queryProjectOverUploadsDocumentList= data => createAPI(`/plm/proofingInformation/queryProjectOverUploadsDocumentList`,'post',data)
export const queryAllProjectUploadsDocumentList= data => createAPI(`/plm/proofingInformation/queryAllProjectUploadsDocumentList`,'post',data)
export const searchConfirmProgressList= data => createAPI(`/plm/proofingInformation/searchConfirmProgressList`,'post',data)
export const searchAllConfirmProgressList= data => createAPI(`/plm/proofingInformation/searchAllConfirmProgressList`,'post',data)
export const searchOverConfirmProgressList= data => createAPI(`/plm/proofingInformation/searchOverConfirmProgressList`,'post',data)
export const queryOverConfirmProgressList= data => createAPI(`/plm/proofingInformation/queryOverConfirmProgressList`,'post',data)
export const queryAllConfirmProgressList= data => createAPI(`/plm/proofingInformation/queryAllConfirmProgressList`,'post',data)
export const queryConfirmProgressList= data => createAPI(`/plm/proofingInformation/searchConfirmProgressDocumentList`,'post',data)
export const searchAllProofing= data => createAPI(`/plm/proofingInformation/searchAllProofing`,'post',data)
export const queryAllProofing= data => createAPI(`/plm/proofingInformation/queryAllProofing2`,'post',data)
export const getCopyDocumentFileList= data => createAPI(`/plm/proofingInformation/getCopyDocumentFileList`,'post',data)
export const copyDocumentFileToDoc= data => createAPI(`/plm/proofingInformation/copyDocumentFileToDoc`,'post',data)

6
src/api/eam/eamReport.js

@ -0,0 +1,6 @@
import { createAPI } from "@/utils/httpRequest.js";
//---------------设备点检报表-------------------
export const searchEamObjectSumReport = data => createAPI(`/pms/eamReport/searchEamObjectSumReport`,'post',data)
export const searchEamOperatorSumReport = data => createAPI(`/pms/eamReport/searchEamOperatorSumReport`,'post',data)

60
src/api/eam/eam_object_list.js

@ -0,0 +1,60 @@
import { createAPI } from "@/utils/httpRequest.js";
/*查询设备清单*/
export const getEamObjectList = data => createAPI('pms/eamObject/getEamObjectList','post',data)
/*查询设备的文件内容*/
export const getFileContentList = data => createAPI('sys/file/getSysFileByOrderRef2','post',data)
/*查询设备的备件清单*/
export const getDevicePartList = data => createAPI('pms/resourcespare/getResourceSpareListByResourceId','post',data)
/*查询设备的核心备件清单*/
export const getDeviceCorePartList = data => createAPI('pms/resourcespare/getDeviceCorePartList','post',data)
// 查询核心备件清单
export const getDeviceCorePartListAll = data => createAPI('pms/resourcespare/getDeviceCorePartListAll','post',data)
/*查询设备的点检项目列表*/
export const getCheckItemList = data => createAPI('pms/eamObject/getCheckItemList','post',data)
/*查询设备的维保项目列表*/
export const getMaintenanceItemList = data => createAPI('pms/eamObject/getMaintenanceItemList','post',data)
/*查询设备的维保计划列表*/
export const getMaintenancePlanList = data => createAPI('pms/eamObject/getMaintenancePlanList','post',data)
/*查询设备的历史工单列表*/
export const getHistoryOrderList = data => createAPI('pms/eamObject/getHistoryOrderList','post',data)
/*查询设备的故障现象列表*/
export const getFaultBehaviorList = data => createAPI('pms/eamObject/getFaultBehaviorList','post',data)
/*删除当前设备*/
export const deleteEamObject = data => createAPI('pms/eamObject/deleteEamObject','post',data)
/*图片上传*/
export const uploadEamObjectFile = data => createAPI('/sys/file/upload','post',data)
export const downLoadObjectFile = data => createAPI(`pms/eamObject/downLoadObjectFile?id=`+data.id,'post',777)
export const downLoadObjectFile2 = data => createAPI(`pms/eamObject/downLoadObjectFile2?id=${data.id}&orderRef3=${data.orderRef3}`,'post',777)
// ===================================== 设备知识库 =====================================
export const getObjectList = data => createAPI('pms/eamKnowledgeBase/getObjectList','post',data) // 查设备清单
export const getKnowledgeBaseList = data => createAPI('/pms/eamKnowledgeBase/getKnowledgeBaseList','post',data) // 查询文件列表
export const getDefectList = data => createAPI('/pms/eamKnowledgeBase/getDefectList','post',data) // 获取故障列表
export const saveKnowledgeBase = data => createAPI('/pms/eamKnowledgeBase/saveKnowledgeBase','post',data) // 新增知识库文件
export const knowledgeBaseUpdate = data => createAPI('/pms/eamKnowledgeBase/knowledgeBaseUpdate','post',data) // 修改知识库文件
export const knowledgeBaseDelete = data => createAPI('/pms/eamKnowledgeBase/knowledgeBaseDelete','post',data) // 删除知识库文件
export const knowledgeBaseUpload = data => createAPI('/pms/eamKnowledgeBase/knowledgeBaseUpload','post',data) // 上传知识库文件
export const knowledgeBaseDeleteSome = data => createAPI('/pms/eamKnowledgeBase/knowledgeBaseDeleteSome','post',data) // 批量删除知识库文件
export const getKnowledgeBaseListByObjectId = data => createAPI('/pms/eamKnowledgeBase/getKnowledgeBaseListByObjectId','post',data) // 根据设备id查知识库记录
export const searchKnowledgeBaseFile = data => createAPI('/pms/eamKnowledgeBase/searchKnowledgeBaseFile','post',data) // 查看图片
export const getInspectionFile = data => createAPI('sys/file/getInspectionFile','post',data)
export const downLoadObjectFileMes = data => createAPI(`pms/eamObject/downLoadObjectFileMes?id=`+data.id,'post',777)
// ===================================== 设备SOP清单 =====================================
export const eamObjectSopListSearch = data => createAPI('pms/eamObject/eamObjectSopListSearch','post',data)

2
src/api/table.js

@ -22,5 +22,7 @@ export const saveTableUser = data => createAPI(`gridTableUser/saveGridTableUserL
// 修改用户默认配置
export const updateTableUser = data => createAPI(`gridTableUser/updateTableUser`,'Post',data)
export const updateColumnSize= data => createAPI(`/gridTableUser/updateColumnSize`,'post',data)

65
src/utils/ajax.js

@ -0,0 +1,65 @@
import Vue from "vue";
import axios from 'axios';
const qs = require('qs');
var apiServer = (process.env.NODE_ENV !== 'production' && process.env.OPEN_PROXY ? '/proxyApi/' : window.SITE_CONFIG.baseUrl);
var http = axios.create({
timeout: 10000,
headers: {},
transformRequest: data => {
if (typeof data === 'object') {
return qs.stringify(data, { arrayFormat: 'brackets' });
}
return data;
}
});
export default {
axios: http,
$post(url, data, callback, error) {
// 添加 headers 配置项
const config = {
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'token': Vue.cookie.get('token')
}
};
let p = http.post(apiServer +url, JSON.stringify(data), config);
if (callback) {
p.then(res => {
callback(res);
})
}
if (error) {
p.catch(err => {
error(err);
});
}
return p;
},
file:(url, data, succ, err )=>{
let requestUrl = apiServer + url;
var xhr = new XMLHttpRequest();
xhr.open('POST', requestUrl, true);
xhr.responseType = "blob";
xhr.withCredentials = true;
xhr.setRequestHeader("X-API", "true");
xhr.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
xhr.setRequestHeader("token", Vue.cookie.get('token') );
xhr.onreadystatechange = function (e) {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
succ(xhr.response)
} else {
var fr = new FileReader();
fr.onload = function(e) {
var text = fr.result;
console.log(text);
err ? err(text) : alert("请求发生错误:" + text)
};
fr.readAsText(xhr.response);
}
}
};
xhr.send(data);
},
apiServer: apiServer
};

159
src/utils/excel-util.js

@ -0,0 +1,159 @@
import XLSX from "xlsx";
import ajax from '@/utils/ajax'
import {
Message
} from 'element-ui';
const excelHeaderName = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
/**
* excel导出默认选项
*/
const exportOptionDefault = {
url: "",//*必填,导出请求地址
tableRef: undefined,//#1组合必填 导出数据对应列信息,el-table引用
columnMapping: undefined,//#1组合必填 自定义导出列映射
fileName: "export.xlsx",//导出文件名
params: {},//导出请求参数
rowFetcher: res => {//从请求结果中获取导出行的方式,默认取请求结果中的data作为导出数据
return (res || {data: []}).data;
},
columnFormatter: [],//需要格式化的列
mergeSetting: {
refs: [], //检测需要合并的数据列属性名
columns: [] //检测需要合并后,要合并的列,以第一条数据为准合并
},
dropColumns: [],//导出时需要过滤掉的列
};
let HEADERS = [];
for (let i =0;i< 200;i++) {
let c = parseInt(i / 26);
let m = i % 26;
HEADERS.push((c > 0 ? excelHeaderName[c - 1] : "") + excelHeaderName[m]);
}
let validOption = opt => {
let option = Object.assign({}, opt);
if (!option.url) {
throw new Error("request url is required.");
}
if (!option.tableRef && !option.columnMapping) {
throw new Error("element table ref object or columnMapping is required.");
}
if (option.rowFetcher != undefined && typeof option.rowFetcher != "function") {
throw new Error("rowFetcher must be a function with one param.");
}
}
let getMergeSetting = (data, s, allCols) => {
let refCols = s.refs;
let mcols = s.columns;
let mergeList = [];
let refRow = data[0];
let mergeSetting = {
s: 0,
e: 0
};
for (let i = 0; i < data.length; i++) {
let same = refCols.map(c => data[i][c] === refRow[c]).filter(r => !!r).length == refCols.length;
if (!same) {
mergeSetting.e > mergeSetting.s && (mergeList.push(mergeSetting));
refRow = data[i];
mergeSetting = {
s: i,
e: i
};
} else {
i > mergeSetting.e && (mergeSetting.e = i);
i == data.length - 1 && (mergeList.push(mergeSetting));
}
}
let setting = [];
mergeList.forEach(e => {
mcols.forEach(c => {
let ci = allCols.indexOf(c);
setting.push({
s: {
r: e.s + 1,
c: ci
},
e: {
r: e.e + 1,
c: ci
}
});
});
});
return setting;
}
let setStyle = (ws, s) => {}
let getColSetting = (mapping,dropColums) => {
let columns = [];
for (let i = 0; i < mapping.length; i++) {
let c = mapping[i];
if (dropColums.indexOf(c.columnProp) == -1) {
columns.push({
property: c.columnProp || c.property,
label: c.columnLabel,
type: "default"
});
}
}
return {
columns: columns
};
}
let export2Excel = opt => {
validOption(opt);
let options = Object.assign({}, exportOptionDefault, opt);
let expColSetting = !!options.tableRef ? options.tableRef : getColSetting(options.columnMapping, options.dropColumns);
ajax.$post(options.url, options.params, resp => {
if (resp.status !== 200) {
Message.error({
message: resp.description
});
}
let rows = !!resp.data.rows?options.rowFetcher(resp).rows:resp.data.page.list;
var columns = [
[]
];
var keys = [];
let formaters = new Array();
expColSetting.columns.forEach(column => {
if (!!column.label && column.type === "default") {
columns[0].push(column.label);
keys.push(column.property);
let formater = options.columnFormatter.find(f => !!f[column.property] && typeof f[column.property] == 'function');
!!formater && (formaters[column.property] = formater[column.property]);
}
});
rows.forEach(o => {
let list = [];
keys.forEach(k => {
let formater = formaters[k];
if (!!formater) {
list.push(formater(o[k]));
} else {
list.push(o[k]);
}
});
columns.push(list);
});
const ws = XLSX.utils.aoa_to_sheet(columns);
if (!!options.mergeSetting && !!options.mergeSetting.refs && options.mergeSetting.refs.length > 0) {
let merges = getMergeSetting(rows, options.mergeSetting, keys);
ws["!merges"] = merges;
setStyle(ws, merges);
}
// console.log(ws);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, options.fileName.replace(/\.xlsx/, ""));
XLSX.writeFile(wb, options.fileName);
});
}
export default {
exportTable: export2Excel
}

274
src/views/modules/common/Chooselist_eam.vue

@ -0,0 +1,274 @@
<template>
<el-dialog class="yzzInput" :title="baseListData.description" append-to-body :close-on-click-modal="false" :close-on-press-escape="false" @close="closeDialog" :visible.sync="visible" width="685px" v-drag>
<el-form label-position="top" inline="inline" size="mini" >
<el-row :gutter="10">
<el-col :span="6" >
<el-form-item :label="baseListData.caption1" v-if="baseListData.caption1 != '' && baseListData.caption1 != null">
<el-input v-model="param1"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item :label="baseListData.caption2" v-if="baseListData.caption2 != '' && baseListData.caption2 != null">
<el-input v-model="param2"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item :label="baseListData.caption3" v-if="baseListData.caption3 != '' && baseListData.caption3 != null">
<el-input v-model="param3"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item :label="baseListData.caption4" v-if="baseListData.caption4 != '' && baseListData.caption4 != null">
<el-input v-model="param4"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item :label="baseListData.caption5" v-if="baseListData.caption5 != '' && baseListData.caption5 != null">
<el-input v-model="param5"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item :label="baseListData.caption6" v-if="baseListData.caption6 != '' && baseListData.caption6 != null ">
<el-select v-model="param6" style="width: 120px">
<el-option label="全部" value=""></el-option>
<el-option label="在用" value="Y"></el-option>
<el-option label="不在用" value="N"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-form-item :label="baseListData.caption7" v-if="baseListData.caption7 != '' && baseListData.caption7 != null">
<el-input v-model="param7"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" >
<el-button style="margin-top: 18px" type="primary" @click="getDataList(false)">查询
</el-button>
</el-col>
</el-row>
</el-form>
<el-table
:height="height"
:data="dataList"
border
@row-dblclick="getRowData"
v-loading="dataListLoading"
style="width: 100%;">
<el-table-column
v-for="(item,index) in columnList" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed==''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
{{ scope.row[item.columnProp] }}
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false" type="primary">关闭</el-button>
</span>
</el-dialog>
</template>
<script>
import {
getChooselistEam,
getChooselistDataEam,
} from "@/api/chooselist/chooselist.js"
export default {
data() {
return {
height: 200,
tagNo: '',
title: '列表',
columnList: [],
queryTable: {},
visible: false,
dataListLoading: true,
fullscreenLoading: false,
param1: '',
param2: '',
param3: '',
param4: '',
param5: '',
param6: '',
param7: this.$store.state.user.name,
param: '',
conSql: '',
dataList: [],
baseListData: {
caption1: '',
caption2: '',
caption3: '',
caption4: '',
caption5: '',
caption6: '',
caption7: '',
description: '',
fieldname1: '',
fieldname2: '',
fieldname3: '',
fieldname4: '',
fieldname5: '',
fieldname6: '',
sqlcode: '',
tagno: '',
},
defaultParam: false
}
},
methods: {
//
init (tagNo, param, conSql) {
this.tagNo = tagNo
this.visible = true
this.param = param
this.conSql = conSql ? conSql : ''
// tagNo
getChooselistEam({"tagNo": tagNo}).then(({data}) => {
this.columnList = []
this.baseListData = data.data
let start = data.data.sqlcode.toUpperCase().indexOf("Select".toUpperCase())
let end = data.data.sqlcode.toUpperCase().indexOf("from".toUpperCase())
let length = end - start
let columns = data.data.sqlcode.trim().substring(start + 6, length).trim()
let props = columns.split(",")
props.forEach((item, index) => {
let name = '信息列'
switch (index) {
case 0:
name = this.baseListData.caption1
break;
case 1:
name = this.baseListData.caption2
break;
case 2:
name = this.baseListData.caption3
break;
case 3:
name = this.baseListData.caption4
break;
case 4:
name = this.baseListData.caption5
break;
case 5:
name = this.baseListData.caption6
break;
case 6:
name = this.baseListData.caption7
break;
}
let index1 = item.indexOf(" as ")
let index2 = item.indexOf(".")
let l = item.length
let prop = item
if (index1 > 0) {
prop = item.substring(index1 + 3, l).trim()
}
if (index1 < 0 && index2 > 0) {
prop = item.substring(index2 + 1, l)
}
let column = {
"columnProp": prop.trim(),
"columnLabel": name,
"columnHidden": false,
"columnImage": false,
"columnSortable": false,
"columnWidth": null,
"format": null,
"sortLv": index,
"status": true,
"fixed": false,
"serialNumber": null,
"columnType": null,
"align": null
}
this.columnList.push(column)
})
this.getDataList(true)
})
this.dataListLoading = false
},
getDataList (bool) {
let sql = this.baseListData.sqlcode
if (bool) {
sql += " and (" + this.baseListData.fieldname1 + " like '%" + this.param + "%' OR " + this.baseListData.fieldname2 + " like '%" + this.param + "%'" + " ) "
}
if (this.param1) {
sql += " and " + this.baseListData.fieldname1 + " like '%" + this.param1 + "%'"
}
if (this.param2) {
sql += " and " + this.baseListData.fieldname2 + " like '%" + this.param2 + "%'"
}
if (this.param3) {
sql += " and " + this.baseListData.fieldname3 + " like '%" + this.param3 + "%'"
}
if (this.param4) {
sql += " and " + this.baseListData.fieldname4 + " like '%" + this.param4 + "%'"
}
if (this.param5) {
sql += " and " + this.baseListData.fieldname5 + " like '%" + this.param5 + "%'"
}
if (this.param6 ) {
sql += " and active like '%" + this.param6 + "%'"
}
if (this.tagNo == 1042) {
sql += " and site = '" + this.$store.state.user.site + "' "
}
// if (this.tagNo <= 500 && this.tagNo !== 93 && this.tagNo !== 201) {
// if (this.param7) {
// sql += " and site in (select site from eam_access_site where username = '" + this.param7 + "') " + " and (site + '-' + bu_no) in (select (a.site + '-' + a.bu_no) from AccessBu as a left join eam_access_site as b on a.site = b.site and a.username = b.username where a.username = '" + this.param7 + "')"
// }
// }
// if (this.tagNo > 500 && this.tagNo < 1000) {
// if (this.param7) {
// sql += " and site in (select site from eam_access_site where username = '" + this.param7 + "') "
// }
// }
sql += this.conSql
getChooselistDataEam({"sqlcode": sql}).then(({data}) => {
if (data.code == 0) {
this.dataList = data.baseListData;
} else {
this.$message.error(data.msg)
}
})
},
getRowData (row) {
this.visible = false
this.$emit('getBaseData',row)
},
closeDialog () {
this.param1 = ''
this.param2 = ''
this.param3 = ''
this.param4 = ''
this.param5 = ''
this.param6 = ''
this.param7 = this.$store.state.user.name
this.param = ''
this.dataList = []
}
}
}
</script>
<style>
</style>

4202
src/views/modules/qc/FAIResultEntry.vue
File diff suppressed because it is too large
View File

4173
src/views/modules/qc/FQCResultEntry.vue
File diff suppressed because it is too large
View File

4240
src/views/modules/qc/IPQCResultEntry.vue
File diff suppressed because it is too large
View File

222
src/views/modules/qc/IQCFileTable.vue

@ -0,0 +1,222 @@
<script>
import {downLoadObjectFile, downLoadObjectFileMes} from '@/api/eam/eam_object_list.js'
import {deleteObjectFile} from '@/api/eam/eam.js'
export default {
name: "iqcFileTable",
props:{
dataList:{
type:Array,
required:true
},
queryLoading:{
type:Boolean,
default:false,
},
columns:{
type:Array,
required: true,
}
},
methods: {
//
previewFile (row) {
//
let image = ['jpg', 'jpeg', 'png', 'gif', 'bmp']
let type = ''
if (image.includes(row.fileType.toLowerCase())) {
type = 'image/' + row.fileType
}
let video = ['mp4', 'avi', 'mov', 'wmv', 'flv']
if (video.includes(row.fileType.toLowerCase())) {
type = 'video/' + row.fileType
}
let txt = ['txt']
if (txt.includes(row.fileType.toLowerCase())) {
type = 'text/plain'
}
let office = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx']
if (office.includes(row.fileType.toLowerCase())) {
this.$message.warning(`暂不支持预览${row.fileType.toLowerCase()}文件`)
return
}
let pdf = ['pdf']
if (pdf.includes(row.fileType.toLowerCase())) {
type = 'application/pdf'
}
if (type === ''){
this.$message.warning(`暂不支持预览${row.fileType.toLowerCase()}文件`)
return;
}
downLoadObjectFile(row).then(({data}) => {
const blob = new Blob([data], { type: type });
// URL
const fileURL = URL.createObjectURL(blob);
//
const newTab = window.open(fileURL, '_blank')
})
},
//
previewFileMes (row) {
//
let image = ['jpg', 'jpeg', 'png', 'gif', 'bmp']
let type = ''
if (image.includes(row.fileType.toLowerCase())) {
type = 'image/' + row.fileType
}
let video = ['mp4', 'avi', 'mov', 'wmv', 'flv']
if (video.includes(row.fileType.toLowerCase())) {
type = 'video/' + row.fileType
}
let txt = ['txt']
if (txt.includes(row.fileType.toLowerCase())) {
type = 'text/plain'
}
let office = ['doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx']
if (office.includes(row.fileType.toLowerCase())) {
this.$message.warning(`暂不支持预览${row.fileType.toLowerCase()}文件`)
return
}
let pdf = ['pdf']
if (pdf.includes(row.fileType.toLowerCase())) {
type = 'application/pdf'
}
if (type === ''){
this.$message.warning(`暂不支持预览${row.fileType.toLowerCase()}文件`)
return;
}
downLoadObjectFileMes(row).then(({data}) => {
const blob = new Blob([data], { type: type });
// URL
const fileURL = URL.createObjectURL(blob);
//
const newTab = window.open(fileURL, '_blank')
})
},
//
downloadFile (row) {
downLoadObjectFile(row)
.then(({data}) => {
//
const blob = new Blob([data], {type: "application/octet-stream"})
//
const fileName = row.fileName
// a
const linkNode = document.createElement('a')
// adownload
linkNode.download = fileName
linkNode.style.display = 'none'
// Blob URL
linkNode.href = URL.createObjectURL(blob)
document.body.appendChild(linkNode)
//
linkNode.click()
// URL
URL.revokeObjectURL(linkNode.href)
document.body.removeChild(linkNode)
})
},
//
downloadFileMes (row) {
downLoadObjectFileMes(row)
.then(({data}) => {
//
const blob = new Blob([data], {type: "application/octet-stream"})
//
const fileName = row.fileName
// a
const linkNode = document.createElement('a')
// adownload
linkNode.download = fileName
linkNode.style.display = 'none'
// Blob URL
linkNode.href = URL.createObjectURL(blob)
document.body.appendChild(linkNode)
//
linkNode.click()
// URL
URL.revokeObjectURL(linkNode.href)
document.body.removeChild(linkNode)
})
},
//
deleteFile (row) {
let tempData = {
site: row.orderRef1,
inspectionNo: row.orderRef2,
buNo: row.orderRef4
}
this.$confirm('确定要删除此文件?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteObjectFile(row).then(({data}) => {
if (data && data.code == 0) {
this.getFileContentData(tempData)
this.$message({
message: '操作成功',
type: 'success',
duration: 1500,
onClose: () => {}
})
} else {
this.$alert(data.msg, '错误', {
confirmButtonText: '确定'
})
}
})
}).catch(() => {
})
},
}
}
</script>
<template>
<el-table
:height="350"
:data="dataList"
border
v-loading="queryLoading"
element-loading-text="拼命加载中"
style="width: 100%; ">
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
<template slot-scope="scope">
<span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
<span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
</template>
</el-table-column>
<el-table-column
header-align="center"
align="center"
width="100"
label="操作">
<template slot-scope="scope">
<el-link v-if="scope.row.orderReftype !== 'mes'" style="cursor: pointer" @click="previewFile(scope.row)">预览</el-link>
<el-link v-if="scope.row.orderReftype !== 'mes'" style="cursor: pointer" @click="downloadFile(scope.row)">下载</el-link>
<el-link v-if="scope.row.orderReftype !== 'mes'" style="cursor: pointer" @click="deleteFile(scope.row)">删除</el-link>
<el-link v-if="scope.row.orderReftype === 'mes'" style="cursor: pointer" @click="previewFileMes(scope.row)">预览</el-link>
<el-link v-if="scope.row.orderReftype === 'mes'" style="cursor: pointer" @click="downloadFileMes(scope.row)">下载</el-link>
</template>
</el-table-column>
</el-table>
</template>
<style scoped>
</style>

3439
src/views/modules/qc/IQCResultEntry.vue
File diff suppressed because it is too large
View File

746
src/views/modules/qc/OperationForResource.vue

@ -0,0 +1,746 @@
<script>
import {queryOperationForResourceList,
saveOperationForResource,
queytOperationList,
queryResourceList,
deleteOperationForResource,
deleteOperationForResource2,
getResourceDataOperationForResource,
getSiteAndBuByUserName,
queryResourceList2
} from "@/api/qc/qc.js"
export default {
name: 'OperationForResource',
data () {
return {
queryParams: {
page: 1,
pageCount: 50,
bu:'',
operation: '',
resource: ''
},
dataList: [],
resourceDataList: [],
total: 0,
modalFlag: false,
resourceFlag:false,
resourceDataFlag:false,
addResourceDataFlag:false,
resourceData:{
buDesc:'',
operation:'',
operationDesc:''
},
ifexist:0,
resourData:{
resourceId:'',
resourceDesc:''
},
itemList1:[],
itemSelections1:[],
itemList2:[],
itemSelections2:[],
operationList:[],
// resourceList:[],
userBuList: [],
modalData: {
page: 1,
pageCount: 50,
operation: '',
resource: '',
resourceList: []
},
columns: [
{
userId: this.$store.state.user.name,
functionId: 200101106,
serialNumber: '200101106Table1Operation',
tableId: '200101106Table1',
tableName: '用户默认工序设置表',
columnProp: 'buDesc',
headerAlign: 'center',
align: 'center',
columnLabel: 'BU',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 200101106,
serialNumber: '200101106Table1Operation',
tableId: '200101106Table1',
tableName: '用户默认工序设置表',
columnProp: 'operation',
headerAlign: 'center',
align: 'center',
columnLabel: '工序编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 200101106,
serialNumber: '200101106Table1Operation',
tableId: '200101106Table1',
tableName: '用户默认工序设置表',
columnProp: 'operationDesc',
headerAlign: 'center',
align: 'center',
columnLabel: '工序名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
// {
// userId: this.$store.state.user.name,
// functionId: 200101107,
// serialNumber: '200101107Table1Resource',
// tableId: '200101107Table1',
// tableName: '',
// columnProp: 'resource',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 80
// },
// {
// userId: this.$store.state.user.name,
// functionId: 200101107,
// serialNumber: '200101107Table1Resource',
// tableId: '200101107Table1',
// tableName: '',
// columnProp: 'resourceDesc',
// headerAlign: 'center',
// align: 'center',
// columnLabel: '',
// columnHidden: false,
// columnImage: false,
// columnSortable: false,
// sortLv: 0,
// status: true,
// fixed: '',
// columnWidth: 80
// }
],
resourceColomn: [
{
userId: this.$store.state.user.name,
functionId: 200101106,
serialNumber: '200101106Table1Operation',
tableId: '200101106Table1',
tableName: '机台基础信息表',
columnProp: 'resourceId',
headerAlign: 'center',
align: 'center',
columnLabel: '机台编码',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
},
{
userId: this.$store.state.user.name,
functionId: 200101106,
serialNumber: '200101106Table1Operation',
tableId: '200101106Table1',
tableName: '机台基础信息表',
columnProp: 'resourceDesc',
headerAlign: 'center',
align: 'center',
columnLabel: '机台名称',
columnHidden: false,
columnImage: false,
columnSortable: false,
sortLv: 0,
status: true,
fixed: '',
columnWidth: 80
}
]
}
},
methods: {
handleQuery () {
queryOperationForResourceList(this.queryParams).then(({data}) => {
if (data.code==0||data.code==3) {
this.dataList = data.rows
this.total = data.total
}
}).catch((errer) => {
this.$message.error(errer)
})
},
// bu
getSiteAndBuByUserName () {
let tempData = {
username: this.$store.state.user.name,
}
getSiteAndBuByUserName(tempData).then(({data}) => {
if (data.code === 0) {
this.userBuList = data.rows
}
})
},
addDialog () {
this.modalData = {
page: 1,
pageCount: 50,
resource: '',
operation: '',
resourceList: []
}
this.addResourceDataFlag = false
this.modalFlag = true
},
addResourceData(){
this.addResourceDataFlag = true
this.modalData = {
page: 1,
pageCount: 50,
resource: '',
bu: this.resourceData.bu,
operation: this.resourceData.operation
}
this.modalFlag = true
},
async saveModalData(){
if (this.modalData.bu==null ||this.modalData.bu==''){
this.$message.warning("请选择BU!")
return
}
if (this.modalData.operation==null ||this.modalData.operation==''){
this.$message.warning("工序类别不能为空!")
return
}
if (this.modalData.resourceList.length < 1){
this.$message.warning("请添加机台!")
return
}
// await queryOperationForResourceList(this.modalData).then(({data})=>{
// if (data.code==3){
// this.$message.warning("")
// this.ifexist = data.code
// }
// }).catch()
// if (this.ifexist==3){
// return
// }
saveOperationForResource(this.modalData).then(({data})=>{
if (data.code==0){
this.$message.success("保存成功")
if (this.addResourceDataFlag){
let param = {
bu: this.resourceData.bu,
operation: this.resourceData.operation
}
getResourceDataOperationForResource(param).then(({data})=>{
if (data && data.code==0) {
this.resourceDataList = data.rows
}
})
}
}
}).catch()
this.modalFlag = false
this.handleQuery()
},
queryOperationList(){
queytOperationList().then(({data})=>{
if (data && data.code === 0) {
this.operationList = data.rows
}
}).catch((error)=>{
console.log("失败")
console.log(error)
})
},
deleteData3(row){
this.modalData.resourceList = this.modalData.resourceList.filter(item => row.resourceId != item.resourceId)
},
queryResourceList(){
let resourceDataList;
if (this.modalData.bu==null ||this.modalData.bu==''){
this.$message.warning("请选择BU!")
return
}
if (this.modalData.operation==null ||this.modalData.operation==''){
this.$message.warning("工序类别不能为空!")
return
}
this.resourceData.bu = this.modalData.bu
this.resourceData.operation = this.modalData.operation
getResourceDataOperationForResource(this.resourceData).then(({data})=>{
if (data && data.code==0) {
resourceDataList = data.rows
// this.itemList2 = resourceDataList
}
})
this.resourData.site = this.modalData.bu.split('_')[0]
queryResourceList2(this.resourData).then(({data}) => {
if (data.code == 0) {
let itemList = data.rows
if (this.itemList2.length > 0) {
itemList = itemList.filter(item =>
!this.itemList2.some(i => i.resourceId === item.resourceId)
)
}
if (resourceDataList != null && resourceDataList.length > 0){
itemList = itemList.filter(item =>
!resourceDataList.some(i => i.resourceId === item.resourceId)
)
}
this.itemList1 = itemList
this.itemList2 = this.modalData.resourceList
this.resourceFlag = true
}
}).catch()
},
//
addItem () {
if (this.itemSelections1 == null || this.itemSelections1.length === 0) {
this.$message.warning('请选择可选机台!')
return
}
let resourceId = []
this.itemSelections1.forEach(data => {
resourceId.push(data.resourceId)
})
this.itemList1 = this.itemList1.filter(item =>
!resourceId.includes(item.resourceId)
)
this.itemList2.push(...this.itemSelections1)
this.$set(this.modalData, 'resourceList', this.itemList2)
},
//
deleteItem () {
if (this.itemSelections2 == null || this.itemSelections2.length === 0) {
this.$message.warning('请选择已有机台!')
return
}
this.itemList1.push(...this.itemSelections2)
this.itemList2 = this.itemList2.filter(item => !this.itemSelections2.includes(item))
this.modalData.resourceList = this.itemList2
},
//
itemClickRow1 (row) {
this.$refs.itemTable1.toggleRowSelection(row)
},
//
itemClickRow2 (row) {
this.$refs.itemTable2.toggleRowSelection(row)
},
selectionItem1 (val) {
this.itemSelections1 = val
},
selectionItem2 (val) {
this.itemSelections2 = val
},
selectFlag () {
return true
},
getRowData (row) {
this.modalData.resource = row.resourceId
this.modalData.resourceDesc = row.resourceDesc
this.resourceFlag = false
},
deleteData(row){
this.$confirm(`确认删除该工序及其所有机台信息?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(()=>{
deleteOperationForResource(row).then(({data})=>{
if (data.code==0){
this.$message.success("删除成功")
this.handleQuery()
}
}).catch()
})
},
deleteData2(row){
deleteOperationForResource2(row).then(({data})=>{
if (data&&data.code == 0){
this.$message.success("删除成功")
let param = {
bu: this.resourceData.bu,
operation: this.resourceData.operation
}
getResourceDataOperationForResource(param).then(({data})=>{
if (data && data.code==0) {
this.resourceDataList = data.rows
}
})
}
})
},
getResourceData(row){
this.resourceData.bu = row.bu
this.resourceData.buDesc = row.buDesc
this.resourceData.operation = row.operation
this.resourceData.operationDesc = row.operationDesc
getResourceDataOperationForResource(row).then(({data})=>{
if (data && data.code==0) {
this.resourceDataList = data.rows
this.resourceDataFlag = true
}
})
}
},
created () {
//
this.handleQuery()
//
this.queryOperationList()
// site bu
this.getSiteAndBuByUserName()
}
}
</script>
<template>
<div class="box-container">
<!-- 查询条件-->
<el-form :inline="true" label-position="top" :model="queryParams">
<el-form-item :label="'BU'">
<el-select v-model="queryParams.bu" placeholder="请选择" clearable style="width: 80px">
<el-option
v-for = "i in userBuList"
:key = "i.buNo"
:label = "i.buDesc"
:value = "i.buNo">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'工序类型'">
<!-- <el-input v-model="queryParams.operation" clearable style="width: 120px"></el-input>-->
<el-select v-model="queryParams.operation" clearable style="width: 120px">
<el-option
v-for = "i in operationList"
:key = "i.code"
:label = "i.description"
:value = "i.code">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'机台编码'">
<el-input v-model="queryParams.resource" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="handleQuery">查询</el-button>
<el-button type="primary" @click="addDialog()">新增</el-button>
</el-form-item>
</el-form>
<!-- 主表信息-->
<div style="height: 90%">
<el-table :data="dataList" border
height="100%" ref="table">
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<a @click="deleteData(scope.row)" type="primary" style="margin-left: 2px">{{'删除'}}</a>
<a @click="getResourceData(scope.row,1)" type="primary" style="margin-left: 2px">{{'机台信息'}}</a>
</template>
</el-table-column>
<el-table-column
v-for="(item,index) in columns" :key="index"
:sortable="item.columnSortable"
:prop="item.columnProp"
:header-align="item.headerAlign"
:show-overflow-tooltip="item.showOverflowTooltip"
:align="item.align"
:fixed="item.fixed===''?false:item.fixed"
:min-width="item.columnWidth"
:label="item.columnLabel">
</el-table-column>
</el-table>
</div>
<!-- 分页信息-->
<el-pagination
style="margin-top: 5px"
:current-page="queryParams.page"
:page-sizes="[50, 100, 500, 1000]"
:page-size="queryParams.pageCount"
:total="total"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
<!-- 新增数据dialog-->
<el-dialog title="新增记录" :visible.sync="modalFlag" width="495px">
<el-form :inline="true" label-position="top" :model="modalData" style="margin-left: 7px;margin-top: -5px;">
<el-form-item label="BU" prop="bu">
<el-select v-model="modalData.bu" placeholder="请选择" :disabled="addResourceDataFlag" style="width: 221px">
<el-option
v-for = "i in userBuList"
:key = "i.buNo"
:label = "i.sitename"
:value = "i.buNo">
<span style="float: left;width: 100px">{{ i.sitename }}</span>
<span style="float: right; color: #8492a6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; font-size: 11px;width: 60px">
{{ i.buDesc }}
</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="'工序类型'">
<el-select v-model="modalData.operation" :disabled="addResourceDataFlag" style="width: 221px">
<el-option
v-for = "i in operationList"
:key = "i.code"
:label = "i.description"
:value = "i.code">
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item :label="'机台编码'">-->
<!-- <span style="cursor: pointer" slot="label" @click="queryResourceList"><a>机台编码</a></span>-->
<!-- <el-input v-model="modalData.resource" readonly style="width: 100px"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="'机台名称'">-->
<!-- <el-input v-model="modalData.resourceDesc" disabled style="width: 342px"></el-input>-->
<!-- </el-form-item>-->
<el-form-item :label="' '">
<el-button type="primary" @click="queryResourceList()">添加机台</el-button>
</el-form-item>
</el-form>
<el-table
:height="300"
:data="modalData.resourceList"
border
style="width: 100%;">
<el-table-column
prop="resourceId"
label="机台编码">
</el-table-column>
<el-table-column
prop="resourceDesc"
label="机台名称">
</el-table-column>
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<a @click="deleteData3(scope.row)" type="primary" style="margin-left: 2px">{{'删除'}}</a>
</template>
</el-table-column>
</el-table>
<el-footer style="height:40px;margin-top: 10px;text-align:center">
<el-button type="primary" @click="saveModalData()"> </el-button>
<el-button @click="modalFlag = false"> </el-button>
</el-footer>
</el-dialog>
<!-- 机台详情->快速新增 -->
<el-dialog title="机台新增" :close-on-click-modal="false" v-drag :visible.sync="resourceFlag" width="900px">
<div style="font-size: 12px">
<el-form :inline="true" label-position="top" :model="resourData">
<el-form-item :label="'机台编码'">
<el-input v-model="resourData.resourceId" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'机台名称'">
<el-input v-model="resourData.resourceDesc" clearable style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="' '">
<el-button type="primary" @click="queryResourceList">查询</el-button>
</el-form-item>
</el-form>
</div>
<el-container style="margin-top: 0px;">
<el-main style="width: 400px;padding: 0px">
<span style="font-size: 12px" >可选机台</span>
<el-table
height="400px"
:data="itemList1"
border
ref="itemTable1"
@row-click="itemClickRow1"
@selection-change="selectionItem1"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
prop="resourceId"
header-align="center"
align="center"
min-width="110"
label="机台编码">
</el-table-column>
<el-table-column
prop="resourceDesc"
header-align="center"
align="center"
min-width="170"
label="机台名称">
</el-table-column>
</el-table>
</el-main>
<el-main style="width: 100px;padding: 0px">
<div style="margin-top: 182px;margin-left: 18px">
<el-button type="primary" @click="addItem()">添加>></el-button>
</div>
<div style="margin-top: 15px;margin-left: 18px">
<el-button type="primary" @click="deleteItem()">删除<<</el-button>
</div>
</el-main>
<el-main style="width: 400px;padding: 0px">
<span style="font-size: 12px">选中机台</span>
<el-table
height="400px"
:data="itemList2"
border
ref="itemTable2"
@row-click="itemClickRow2"
@selection-change="selectionItem2"
highlight-current-row
style="width: 100%">
<el-table-column
type="selection"
header-align="center"
align="center"
:selectable="selectFlag"
width="50">
</el-table-column>
<el-table-column
prop="resourceId"
header-align="center"
align="center"
min-width="110"
label="机台编码">
</el-table-column>
<el-table-column
prop="resourceDesc"
header-align="center"
align="center"
min-width="170"
label="机台名称">
</el-table-column>
</el-table>
</el-main>
</el-container>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="resourceFlag = false">关闭</el-button>
</el-footer>
</el-dialog>
<!-- 新增时机台选择dialog-->
<!-- <el-dialog title="选择机台" :close-on-click-modal="false" v-drag :visible.sync="resourceFlag1" width="520px">-->
<!-- <div class="rq">-->
<!-- <el-form :inline="true" label-position="top" :model="resourData">-->
<!-- <el-form-item :label="'机台编码'">-->
<!-- <el-input v-model="resourData.resourceId" clearable style="width: 120px"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="'机台名称'">-->
<!-- <el-input v-model="resourData.resourceDesc" clearable style="width: 120px"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item :label="' '">-->
<!-- <el-button type="primary" @click="queryResourceList">查询</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <el-table-->
<!-- :height="300"-->
<!-- :data="resourceList"-->
<!-- @row-dblclick="getRowData"-->
<!-- border-->
<!-- style="width: 100%;">-->
<!-- <el-table-column-->
<!-- v-for="(item,index) in resourceColomn" :key="index"-->
<!-- :sortable="item.columnSortable"-->
<!-- :prop="item.columnProp"-->
<!-- :header-align="item.headerAlign"-->
<!-- :show-overflow-tooltip="item.showOverflowTooltip"-->
<!-- :align="item.align"-->
<!-- :fixed="item.fixed==''?false:item.fixed"-->
<!-- :min-width="item.columnWidth"-->
<!-- :label="item.columnLabel">-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>-->
<!-- <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
<!-- </div>-->
<!-- <el-footer style="height:40px;margin-top: 20px;text-align:center">-->
<!-- <el-button type="primary" @click="resourceFlag=false">关闭</el-button>-->
<!-- </el-footer>-->
<!-- </el-dialog>-->
<!-- 机台详细信息-->
<el-dialog title="机台信息" :close-on-click-modal="false" v-drag :visible.sync="resourceDataFlag" width="520px">
<div class="rq">
<el-form :inline="true" label-position="top">
<el-form-item :label="'BU'">
<el-input v-model="resourceData.buDesc" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'工序编码'">
<el-input v-model="resourceData.operation" disabled style="width: 120px"></el-input>
</el-form-item>
<el-form-item :label="'工序名称'">
<el-input v-model="resourceData.operationDesc" disabled style="width: 120px"></el-input>
</el-form-item>
<!-- <el-form-item :label="' '">-->
<!-- <el-button type="primary" @click="addResourceData">新增</el-button>-->
<!-- </el-form-item>-->
</el-form>
<el-table
:height="300"
:data="resourceDataList"
border
style="width: 100%;">
<el-table-column
prop="resource"
label="机台编码">
</el-table-column>
<el-table-column
prop="resourceDesc"
label="机台名称">
</el-table-column>
<el-table-column label="操作" align="center" width="100">
<template slot-scope="scope">
<a @click="deleteData2(scope.row)" type="primary" style="margin-left: 2px">{{'删除'}}</a>
</template>
</el-table-column>
</el-table>
</div>
<el-footer style="height:40px;margin-top: 20px;text-align:center">
<el-button type="primary" @click="resourceDataFlag=false">关闭</el-button>
</el-footer>
</el-dialog>
</div>
</template>
<style scoped>
</style>

4614
src/views/modules/qc/PQCResultEntry.vue
File diff suppressed because it is too large
View File

193
src/views/modules/qc/com_qc_itemImage_upload_file.vue

@ -0,0 +1,193 @@
<template>
<div class="customer-css">
<el-dialog :title="titleCon" :close-on-click-modal="false" :visible.sync="visible" :before-close="closeDialog" :showClose="false" width="390px" style="height: 530px;" class="customer-dialog">
<el-form :inline="true" label-position="top" label-width="80px">
<el-row>
<el-col :span="12" style="width:36%">
<el-form-item class="customer-item" label="检验单号">
<el-input v-model="pageData.inspectionNo" style="width: 120px;" disabled ></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item class="customer-item" label="项目编码">
<el-input v-model="pageData.itemNo" style="width: 120px;" disabled ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<!-- 图像区域 -->
<ul class="content-image" v-viewer>
<li v-for="(item, index) in descImgs" :key="index" style="float: left;display: inline">
<img :src="item.url" style="width:70px;height: 70px"/>
<!-- 删除图标 -->
<div class="delete-img">
<i class="el-icon-delete" @click="deleteImage(index,item.id)"></i>
</div>
</li>
</ul>
</el-row>
<el-row>
<el-col :span="24">
<el-upload class="customer-upload" drag multiple :file-list="fileList"
action="javascript:void(0);" ref="uploadFile"
:before-upload="beforeUploadHandle" :on-change="onChange"
accept=".jpg,.jpeg,.png,.gif" :auto-upload="false"
style="text-align: left;">
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
</el-upload>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="saveUploadFile">保存</el-button>
<el-button type="primary" @click="closeDialog">关闭</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {uploadEamObjectFile} from '@/api/eam/com_eam_object_upload_file.js';
import {
searchItemFileUrl, //
imageDelete, //
} from "@/api/qc/qc.js"
/* 引入组件 */
var functionId = 'C10000002';
export default {
data() {
return {
titleCon: '项目图片上传',
visible: false,
userId: this.$store.state.user.name,
fileList: [],
pageData: {
site: '',
buNo: '',
username: this.$store.state.user.name,
inspectionNo: '',
itemNo: '',
fileRemark: '',
folder: ''
},
dataListLoading: false,
descImgs: [],
}
},
methods: {
//
init (currentRow) {
//
this.pageData = JSON.parse(JSON.stringify(currentRow))
//
this.visible = true
this.descImgs = []
this.searchItemFileUrl()
},
//
searchItemFileUrl () {
this.descImgs = []
searchItemFileUrl(this.pageData).then(({data}) => {
if (data.code === 0) {
for (let i = 0; i < data.rows.length; i++) {
this.descImgs.push(data.rows[i])
}
} else {
this.$message.warning(data.msg)
}
})
},
//
beforeUploadHandle (file) {
if (file.type !== 'image/jpg' && file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
this.$message.error('只支持图片!')
return false
}
},
//
onChange (file, fileList) {
this.fileList = fileList
},
// modal
closeDialog () {
this.fileList = []
//
this.$refs.uploadFile.clearFiles()
//
//this.$emit('refreshPageTables2')
//
this.visible = false
},
//
saveUploadFile () {
//
if (null == this.fileList || 0 === this.fileList.length) {
this.$message.error("请先上传图片!")
return false
}
const formData = new FormData()
//
for (let i = 0; i < this.fileList.length; i++) {
formData.append("file",this.fileList[i].raw)
}
//formData.append("file", this.fileList[0].raw)
formData.append("site", this.pageData.site)
formData.append("folder", this.pageData.folder)
formData.append("objectID", this.pageData.inspectionNo)
formData.append("orderRef1", this.pageData.itemNo)
formData.append("orderRef4", this.pageData.buNo)
uploadEamObjectFile(formData).then(({data}) => {
if (data.code === 0) {
this.$message.success(data.msg)
//
this.$refs.uploadFile.clearFiles()
this.searchItemFileUrl()
this.fileList = []
} else {
this.$message.warning(data.msg)
}
})
},
//
deleteImage (index, id) {
let param = {
id: id
}
this.$confirm(`是否删除该图片?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
imageDelete(param).then(({data}) => {
if (data.code === 0) {
this.searchItemFileUrl()
this.$message.success(data.msg)
}else {
this.$message.warning(data.msg)
}
})
}).catch(() => {
})
},
/**
* 点击 X 关闭对话框的回调
**/
handleDialogClose () {
this.fileList = []
//
this.$refs.uploadFile.clearFiles()
//
//this.$emit('refreshPageTables2')
}
},
}
</script>
<style scoped lang="scss">
</style>
Loading…
Cancel
Save