Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import resquest from '@/utils/request' |
| | | |
| | | |
| | | export function pageInsReport(params) { |
| | | return resquest({ |
| | | url: '/insReport/pageInsReport', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function inReport(data) { |
| | | return resquest({ |
| | | url: '/insReport/inReport', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function upAll(data) { |
| | | return resquest({ |
| | | url: '/insReport/upAll', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function getLaboratoryByReportId(params) { |
| | | return resquest({ |
| | | url: '/insReport/getLaboratoryByReportId', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function withdraw(data) { |
| | | return resquest({ |
| | | url: '/insReport/withdraw', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function updateApproveConfig(data) { |
| | | return resquest({ |
| | | url: '/approveConfig/updateApproveConfig', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function getUserList(params) { |
| | | return resquest({ |
| | | url: '/approveConfig/getUserList', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function getApproveConfigList(params) { |
| | | return resquest({ |
| | | url: '/approveConfig/getApproveConfigList', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function batchApprovalReport(data) { |
| | | return resquest({ |
| | | url: '/insReport/batchApprovalReport', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function downAll(params) { |
| | | return resquest({ |
| | | url: '/insReport/downAll', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function getBatchApprovalProgress(params) { |
| | | return resquest({ |
| | | url: '/insReport/getBatchApprovalProgress', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function getReportCountInfo(params) { |
| | | return resquest({ |
| | | url: '/insReport/getReportCountInfo', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function downReport(params) { |
| | | return resquest({ |
| | | url: '/insReport/downReport', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | | |
| | | export function upReportUrl(data) { |
| | | return resquest({ |
| | | url: '/insReport/upReportUrl', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | export function examineReport(data) { |
| | | return resquest({ |
| | | url: '/insReport/examineReport', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function ratifyReport(data) { |
| | | return resquest({ |
| | | url: '/insReport/ratifyReport', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | export function writeReport(data) { |
| | | return resquest({ |
| | | url: '/insReport/writeReport', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | |
| | | export function downLoad(params) { |
| | | return resquest({ |
| | | url: '/file/attachmentType/downLoad', |
| | | method: 'get', |
| | | params: params, |
| | | responseType: 'blob' |
| | | }) |
| | | } |
| | | |
| | | export function getReportInfo(params) { |
| | | return resquest({ |
| | | url: '/file/attachmentType/getMIME', |
| | | method: 'get', |
| | | params: params |
| | | }) |
| | | } |
| | |
| | | // ä¿®æ¹äººåæç»æå¨ç»ç»æ¶æ |
| | | export function upUserDepardLimsId(data) { |
| | | return request({ |
| | | url: "/user/upUserDepardLimsId", |
| | | url: "/system/newUser/upUserDepardLimsId", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å计åå表æ¥è¯¢ |
| | | export function pageDeviceCalibrationPlan(query) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/pageDeviceCalibrationPlan", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æäº¤æ¹åéç¥ |
| | | export function submiatRatifyDeviceCalibrationPlan(data) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/submiatRatifyDeviceCalibrationPlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å计åå¯¼åº |
| | | export function exportDeviceCalibrationPlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/exportDeviceCalibrationPlanDetail", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // è®¾å¤æ ¡å æ°å¢ æ´æ° |
| | | export function addOrUpdateDeviceMetricRecord(data) { |
| | | return request({ |
| | | url: "/deviceMetricRecord/addOrUpdateDeviceMetricRecord", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å计åå é¤ |
| | | export function delDeviceCalibrationPlan(query) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/delDeviceCalibrationPlan", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å计å详æ
å é¤ |
| | | export function delDeviceCalibrationPlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/delDeviceCalibrationPlanDetail", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å计å详æ
å表 |
| | | export function pageDeviceCalibrationPlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/pageDeviceCalibrationPlanDetail", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢è®¾å¤æ ¡å计å详æ
|
| | | export function addDeviceCalibrationPlanDetail(data) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/addDeviceCalibrationPlanDetail", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ä¿®æ¹è®¾å¤æ ¡å计å详æ
|
| | | export function updateDeviceCalibrationPlanDetail(data) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/updateDeviceCalibrationPlanDetail", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // è®¾å¤æ ¡åè®¡åæ¹å |
| | | export function ratifyDeviceCalibrationPlan(data) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/ratifyDeviceCalibrationPlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢è®¾å¤æ ¡å计å详æ
|
| | | export function getDeviceCalibrationPlan(query) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/getDeviceCalibrationPlan", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢è®¾å¤æ ¡å计å |
| | | export function addDeviceCalibrationPlan(data) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/addDeviceCalibrationPlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ä¿®æ¹è®¾å¤æ ¡å计å |
| | | export function updateDeviceCalibrationPlan(data) { |
| | | return request({ |
| | | url: "/deviceCalibrationPlan/updateDeviceCalibrationPlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //éè¿è®¾å¤åç±»è·å设å¤å表 |
| | | export function deviceScopeSearch(query) { |
| | | return request({ |
| | | url: "/deviceScope/search", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢è®¾å¤æ ¸æ¥è®¡å详æ
|
| | | export function getDeviceExaminePlan(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/getDeviceExaminePlan", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ·»å è®¾å¤æ ¸æ¥è®¡å |
| | | export function addDeviceExaminePlan(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/addDeviceExaminePlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // è®¾å¤æ ¸æ¥è®¡åæ¹éç¼è¾ |
| | | export function updateDeviceExaminePlan(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/updateDeviceExaminePlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¸æ¥è®¡åå é¤ |
| | | export function delDeviceExaminePlan(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/delDeviceExaminePlan", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¸æ¥è®¡åå表 |
| | | export function pageDeviceExaminePlan(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/pageDeviceExaminePlan", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // è®¾å¤æ ¸æ¥è®¡åæäº¤æ¹åéç¥ |
| | | export function submitRatifyDeviceExaminePlan(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/submitRatifyDeviceExaminePlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //导åºè®¾å¤æ ¸æ¥è®¡å |
| | | export function exportDeviceExaminePlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/exportDeviceExaminePlanDetail", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å é¤è®¾å¤æ ¸æ¥è®¡å详æ
|
| | | export function delDeviceExaminePlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/delDeviceExaminePlanDetail", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¸æ¥è®¡å详æ
å表 |
| | | export function pageDeviceExaminePlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/pageDeviceExaminePlanDetail", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢è®¾å¤æ ¸æ¥è®¡å详æ
|
| | | export function addDeviceExaminePlanDetail(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/addDeviceExaminePlanDetail", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ä¿®æ¹è®¾å¤æ ¸æ¥è®¡å详æ
|
| | | export function updateDeviceExaminePlanDetail(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/updateDeviceExaminePlanDetail", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // è®¾å¤æ ¸æ¥è®¡åæ¹å |
| | | export function ratifyDeviceExaminePlan(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/ratifyDeviceExaminePlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ ¸æ¥è®°å½å¯¼åº |
| | | export function exportReviewExamineRecordDetail(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/exportReviewExamineRecordDetail", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //æ ¸æ¥å¯¹æ¯å¯¼åº |
| | | export function exportReviewExamineRecordContrast(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/exportReviewExamineRecordContrast", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢æ ¸æ¥å¯¹æ¯è®°å½ |
| | | export function getExamineRecordContrast(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/getExamineRecordContrast", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // å®¡æ ¸æ ¸æ¥å¯¹æ¯è®°å½ |
| | | export function reviewExamineRecordContrast(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/reviewExamineRecordContrast", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢æ ¸æ¥å¯¹æ¯è®°å½ |
| | | export function addExamineRecordContrast(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/addExamineRecordContrast", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢æ ¸æ¥è®°å½ |
| | | export function getExamineRecord(query) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/getExamineRecord", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢æ ¸æ¥è®°å½ |
| | | export function addExamineRecord(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/addExamineRecord", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // 夿 ¸æ ¸æ¥è®°å½ |
| | | export function reviewExamineRecord(data) { |
| | | return request({ |
| | | url: "/deviceExaminePlan/reviewExamineRecord", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //å页æ¥è¯¢è®¾å¤ä¿å
»è®¡å |
| | | export function selectDeviceMaintenancePlanByPage(query) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/selectDeviceMaintenancePlanByPage", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 设å¤ä¿å
»è®¡åæäº¤å®¡æ ¸ |
| | | export function submitReviewMaintenancePlanStatus(data) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/submitReviewMaintenancePlanStatus", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢è®¾å¤ä¿å
»è®¡å详æ
|
| | | export function getMaintenancePlanDetail(query) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/getMaintenancePlanDetail", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢è®¾å¤ä¿å
»è®¡å |
| | | export function addMaintenancePlan(data) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/addMaintenancePlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ä¿®æ¹è®¾å¤ä¿å
»è®¡å |
| | | export function updateMaintenancePlan(data) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/updateMaintenancePlan", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //导åºè®¾å¤ä¿å
»è®¡å |
| | | export function exportDeviceMaintenancePlan(query) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/exportDeviceMaintenancePlan", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å é¤è®¾å¤ä¿å
»è®¡å |
| | | export function deleteMaintenancePlan(query) { |
| | | return request({ |
| | | url: "/deviceMaintenancePlan/deleteMaintenancePlan", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å页æ¥è¯¢é弿º¯æºè®¡å |
| | | export function selectDeviceTraceabilityManagementByPage(query) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/selectDeviceTraceabilityManagementByPage", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // é弿º¯æºè®¡åæäº¤æ¹å |
| | | export function submitReviewTraceabilityManagementStatus(data) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/submitReviewTraceabilityManagementStatus", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢é弿º¯æºè®¡å详æ
|
| | | export function getTraceabilityManagementDetail(query) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/getTraceabilityManagementDetail", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢é弿º¯æºè®¡å |
| | | export function addTraceabilityManagement(data) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/addTraceabilityManagement", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ä¿®æ¹é弿º¯æºè®¡å |
| | | export function updateTraceabilityManagement(data) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/updateTraceabilityManagement", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // é弿º¯æºè®¡åå®¡æ ¸ç¶æä¿®æ¹ |
| | | export function reviewTraceabilityManagementStatus(data) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/reviewTraceabilityManagementStatus", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //导åºé弿º¯æºè®¡å |
| | | export function exportDeviceTraceabilityManagement(query) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/exportDeviceTraceabilityManagement", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å é¤é弿º¯æºè®¡å |
| | | export function deleteTraceabilityManagement(query) { |
| | | return request({ |
| | | url: "/deviceTraceabilityManagement/deleteTraceabilityManagement", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å©ç¨å¤é¨è®¾å¤ç³è¯·å表 |
| | | export function pageDeviceExternalApply(query) { |
| | | return request({ |
| | | url: "/deviceExternalApply/pageDeviceExternalApply", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //åç¨å¤é¨ä»ªå¨-å¯¼åº |
| | | export function exportDeviceExternalApply(query) { |
| | | return request({ |
| | | url: "/deviceExternalApply/exportDeviceExternalApply", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å é¤å©ç¨å¤é¨è®¾å¤ç³è¯· |
| | | export function delDeviceExternalApply(query) { |
| | | return request({ |
| | | url: "/deviceExternalApply/delDeviceExternalApply", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢å©ç¨å¤é¨è®¾å¤ç³è¯· |
| | | export function getDeviceExternalApply(query) { |
| | | return request({ |
| | | url: "/deviceExternalApply/getDeviceExternalApply", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢å©ç¨å¤é¨è®¾å¤ç³è¯· |
| | | export function addDeviceExternalApply(data) { |
| | | return request({ |
| | | url: "/deviceExternalApply/addDeviceExternalApply", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //cnas设å¤ä½¿ç¨è®°å½å页æ¥è¯¢ |
| | | export function deviceRecordPage(query) { |
| | | return request({ |
| | |
| | | //æ°å¢è®¾å¤æ¡£æ¡ |
| | | export function addDocument(data) { |
| | | return request({ |
| | | url: "/deviceDocuments/addDocument", |
| | | url: "/documents/add", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | |
| | | // è·åç¸å
³ææ¡£æ°æ®çapi-æ´æ° |
| | | export function updateDocument(data) { |
| | | return request({ |
| | | url: "/deviceDocuments/updateDocument", |
| | | url: "/documents/updateDocument", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | |
| | | //å é¤è®¾å¤æ¡£æ¡ |
| | | export function deleteDocumentById(query) { |
| | | return request({ |
| | | url: "/deviceDocuments/deleteDocumentById", |
| | | url: "/documents/delete", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å æ°å¢ æ´æ° |
| | | // è®¾å¤æ ¡å æ°å¢ æ´æ°-æ ¡åè®°å½ |
| | | export function addOrUpdateDeviceMetricRecord(data) { |
| | | return request({ |
| | | url: "/deviceMetricRecord/addOrUpdateDeviceMetricRecord", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | //è®¾å¤æ ¡å æ°å¢ æ´æ°-æäº¤é¡¹ç®æ ¡åç»´æ¤ |
| | | export function saveOrUpdateDeviceMetric(data) { |
| | | return request({ |
| | | url: "/deviceMetrics/saveOrUpdateDeviceMetric", |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ ¡å å¯¼åº |
| | | export function deviceMetricRecordExport(query) { |
| | | return request({ |
| | | url: "/deviceMetricRecord/deviceMetricRecordExport", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å 餿件 |
| | | export function deleteCNASFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/deleteCNASFile", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢è®¾å¤æ¡£æ¡å表 |
| | | export function getAllDocuments(query) { |
| | | return request({ |
| | | url: `/deviceDocuments/getAllDocuments`, |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ¡£æ¡å¯¼åº |
| | | export function exportDeviceFile(query) { |
| | | return request({ |
| | | url: "/deviceScope/exportDeviceFile", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | |
| | | return request({ |
| | | url: "/deviceMetrics/deleteDeviceMetrics", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | //å é¤ è®¾å¤æ ¡å-éä»¶ |
| | | export function delDeviceCalibrationFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/delDeviceCalibrationFile", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | //è®¾å¤æ ¡åæ¥è¯¢-éä»¶ |
| | | export function getDeviceCalibrationFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/getDeviceCalibrationFile", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | //è®¾å¤æ ¡å导åº-éä»¶ |
| | | export function downLoadDeviceCalibrationFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/downLoadDeviceCalibrationFile", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob" |
| | | }); |
| | | } |
| | | |
| | | //å 餿件 |
| | | export function deleteCNASFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/deleteCNASFile", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //æ¥è¯¢è®¾å¤æ¡£æ¡å表 |
| | | export function getListByDId(query) { |
| | | return request({ |
| | | url: '/documents/getListByDId', |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è®¾å¤æ¡£æ¡å¯¼åº |
| | | export function exportDeviceFile(query) { |
| | | return request({ |
| | | url: "/deviceScope/exportDeviceFile", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | //设å¤é¢çº¦æ¥å£ |
| | | // 设å¤è¿è¡æ»è§-æ ¹æ®idè·åè®¾å¤æ
éæ°æ® |
| | | export function device(query) { |
| | | return request({ |
| | | url: "/api/device-faults/device", |
| | | url: "/deviceFaults/device", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | |
| | | //设å¤éªæ¶ä¸å个tableè¡¨æ ¼çå é¤åè½ |
| | | export function deleteIncidentReportAll(query) { |
| | | return request({ |
| | | url: "/incident-report/deleteIncidentReportAll", |
| | | url: "/incidentReport/deleteIncidentReportAll", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | //设å¤éªæ¶ä¸å个tableè¡¨æ ¼çå é¤åè½ |
| | | export function deleteIncidentReport(query) { |
| | | return request({ |
| | | url: "/incidentReport/deleteIncidentReport", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | |
| | | //设å¤éªæ¶ ä¿åï¼æäº¤ï¼é©³åï¼éè¿æ¥å£ |
| | | export function saveIncidentReportData(query) { |
| | | return request({ |
| | | url: "/incident-report/saveIncidentReportData", |
| | | url: "/incidentReport/saveIncidentReportData", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | |
| | | //设å¤éªæ¶ ä¿åï¼æäº¤ï¼é©³åï¼éè¿æ¥å£ |
| | | export function incidentReportPage(query) { |
| | | return request({ |
| | | url: "/incident-report/incidentReportPage", |
| | | url: "/incidentReport/incidentReportPage", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | |
| | | //设å¤éªæ¶ ä¿åï¼æäº¤ï¼é©³åï¼éè¿æ¥å£ |
| | | export function getShowIncidentReport(query) { |
| | | return request({ |
| | | url: "/incident-report/getShowIncidentReport", |
| | | url: "/incidentReport/getShowIncidentReport", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | |
| | | //设å¤éªæ¶å¯¼åº |
| | | export function incidentReportExport(query) { |
| | | return request({ |
| | | url: "/incident-report/incidentReportExport", |
| | | url: "/incidentReport/incidentReportExport", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob" |
| | |
| | | responseType: "blob" |
| | | }); |
| | | } |
| | | //è®¾å¤æ ¡åå¯¼åº |
| | | export function downLoadDeviceCalibrationFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/downLoadDeviceCalibrationFile", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob" |
| | | }); |
| | | } |
| | | |
| | | //å é¤ è®¾å¤æ
é |
| | | export function deleteDeviceFaultOne(query) { |
| | | return request({ |
| | |
| | | params: query, |
| | | }); |
| | | } |
| | | //å é¤ è®¾å¤æ ¡å |
| | | export function delDeviceCalibrationFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/delDeviceCalibrationFile", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | //è®¾å¤æ ¡åæ¥è¯¢ |
| | | export function getDeviceCalibrationFile(query) { |
| | | return request({ |
| | | url: "/personBasicInfo/getDeviceCalibrationFile", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | |
| | | >{{ o.name }} |
| | | </el-button> |
| | | <el-upload |
| | | :action=" |
| | | javaApi + |
| | | o.url + |
| | | '?id=' + |
| | | (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id) |
| | | " |
| | | :action="javaApi + o.url" |
| | | size="mini" |
| | | ref="upload" |
| | | :multiple="o.multiple ? o.multiple : false" |
| | | :limit="1" |
| | | :disabled="o.disabled ? o.disabled(scope.row) : false" |
| | | :accept=" |
| | | o.accept |
| | |
| | | v-if="o.type == 'upload' && o.url" |
| | | style="display: inline-block; width: 50px" |
| | | v-show="o.showHide ? o.showHide(scope.row) : true" |
| | | :data="o.data ? o.data(scope.row) : {}" |
| | | :before-upload=" |
| | | o.beforeUpload ? o.beforeUpload(scope.row) : () => true |
| | | " |
| | | :headers="uploadHeader" |
| | | :on-error="onError" |
| | | :on-exceed="onExceed" |
| | |
| | | this.$message.success("ä¸ä¼ æå"); |
| | | } |
| | | } |
| | | this.$refs.upload.clearFiles(); |
| | | }, |
| | | onError(err, file, fileList) { |
| | | this.$message.error("ä¸ä¼ 失败"); |
| | |
| | | }; |
| | | Vue.prototype.javaApi = process.env.VUE_APP_BASE_API |
| | | ? process.env.VUE_APP_BASE_API |
| | | : "http://192.168.0.104:8002"; |
| | | : "http://127.0.0.1:8002"; |
| | | Vue.prototype.checkPermi = checkPermi; |
| | | Vue.prototype.uploadHeader = { |
| | | Authorization: "Bearer " + getToken(), |
| | |
| | | }) |
| | | }, |
| | | beforeAvatarUpload(file) { |
| | | const isJPGorPNG = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/gif'; |
| | | const isLt2MB = file.size / 1024 / 1024 < 2; |
| | | if (!isJPGorPNG) { |
| | | this.$message.error('ä¸ä¼ å¾çåªè½æ¯ JPG/PNG æ ¼å¼!'); |
| | | return false; |
| | | let flag = true |
| | | if (file.size > 1024 * 1024 * 10) { |
| | | this.$message.error('ä¸ä¼ æä»¶ä¸è¶
è¿10M'); |
| | | this.$refs.upload.clearFiles() |
| | | flag = false |
| | | } |
| | | // if (!isLt2MB) { |
| | | // this.$message.error('ä¸ä¼ å¾ç大å°ä¸è½è¶
è¿ 2MB!'); |
| | | // } |
| | | // æ ¡éªéè¿æè¿å trueï¼å
许æä»¶ä¸ä¼ |
| | | return isJPGorPNG && isLt2MB; |
| | | if (!flag) { |
| | | return Promise.reject(flag); //æ£ç¡®çç»æ¢ |
| | | } |
| | | }, |
| | | downloadFile(fileName) { |
| | | this.$download.saveAs(fileName, fileName) |
| | |
| | | }, |
| | | // å人ååç±»çåå
¸ |
| | | getComparisonList() { |
| | | tthis.personnelClassification = this.dict.type.personnl_type; |
| | | this.checkList = this.form.personnelClassification.split('ï¼') |
| | | // æä»¶ç¶æ |
| | | this.getDicts("personnl_type").then((response) => { |
| | | this.personnelClassification = this.dictToValue(response.data); |
| | | this.checkList = this.form.personnelClassification ? this.form.personnelClassification.split('ï¼') : [] |
| | | }); |
| | | }, |
| | | clickPersonnelClassificationSure() { |
| | | this.dialogVisible = false |
| | |
| | | </div> |
| | | <el-dialog :visible.sync="selectUserDia" title="éæ©ç¨æ·" width="70%"> |
| | | <div class="search" style="margin-bottom: 9px;"> |
| | | <div class="search_thing"> |
| | | <div class="search_thing" style="display: flex;"> |
| | | <div class="search_label">ç¨æ·åï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="queryParams.name" clearable placeholder="请è¾å
¥" size="small" |
| | | @keyup.enter.native="getList()" style="width: 200px;"></el-input> |
| | | @keyup.enter.native="getList()" style="width: 150px;"></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-if="selectUserDia" class="body" style="height: 60vh;"> |
| | | <lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 290px)'" |
| | | :page="personPage" @pagination="pagination" :isSelection="true" |
| | | <lims-table :tableData="personTableData" :column="column" :tableLoading="tableLoading" |
| | | :height="'calc(100vh - 290px)'" :page="personPage" :isSelection="true" |
| | | :handleSelectionChange="handleSelectionChange"></lims-table> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | |
| | | queryParams: { |
| | | name: '' |
| | | }, |
| | | tableData: [], |
| | | personTableData: [], |
| | | column: [ |
| | | { label: "å§å", prop: "name" }, |
| | | { label: "è´¦å·", prop: "account" }, |
| | |
| | | refreshTable(entity, type) { |
| | | try { |
| | | this.tableLoading = true; |
| | | this.entity.departLimsId = this.departId; |
| | | basicInformationOfPersonnelSelectPage({ ...this.page, ...this.entit }).then(res => { |
| | | this.entity.departmentId = this.departId; |
| | | let params = { ...this.page, ...this.entity } |
| | | delete params.total |
| | | basicInformationOfPersonnelSelectPage(params).then(res => { |
| | | this.tableLoading = false; |
| | | if (res.code === 201) { |
| | | return; |
| | |
| | | .then((res) => { |
| | | this.tableLoading = false; |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.personPage.total = res.data.total; |
| | | this.personTableData = res.data; |
| | | } |
| | | }) |
| | | .catch((err) => { |
| | |
| | | handleDown() { |
| | | this.outLoading = true; |
| | | let entity = this.HaveJson(this.entity) |
| | | delete entity.orderBy; |
| | | exportPersonBasicInfo(entity).then(res => { |
| | | this.outLoading = false; |
| | | if (res.code === 201) { |
| | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="17"> |
| | | <el-form-item label="éä»¶ï¼" prop="fileName"> |
| | | <el-input v-model="calibrationRecord.fileName" :style="`width: ${operationType === 'add' ? '85%' : '100%'};}`" disabled |
| | | size="small"> |
| | | <el-button v-if="operationType === 'add'" slot="append" icon="el-icon-delete-solid" |
| | | @click="deleteFile"></el-button> |
| | | </el-input> |
| | | <el-upload v-if="operationType === 'add'" ref="upload" :action="action" :before-upload="beforeUpload" :headers="headers" |
| | | :limit="1" :on-error="onError" :on-success="handleSuccessUp" |
| | | :show-file-list="false" |
| | | style="float: right;"> |
| | | <el-button :loading="upLoading" size="small" style="position: relative; top: -4px;" |
| | | type="primary">éä»¶ä¸ä¼ |
| | | </el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨:"> |
| | | <el-input v-model="calibrationRecord.remark" :disabled="operationType === 'view'" :rows="3" size="small" style="width: 96%" |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- æä½æ¥å¿ --> |
| | | <!-- <h4>--> |
| | | <!-- <div style="display: flex;--> |
| | | <!-- align-items: center;">--> |
| | | <!-- <span class="line"></span><span>æ¬è®°å½ç¶æåæä½æ¥å¿</span>--> |
| | | <!-- </div>--> |
| | | <!-- </h4>--> |
| | | <!-- <el-table :data="tableDataOperate" style="width: 100%">--> |
| | | <!-- <el-table-column type="index" label="åºå·" width="100"></el-table-column>--> |
| | | <!-- <el-table-column prop="operator" label="æä½äºº" width="120"></el-table-column>--> |
| | | <!-- <el-table-column prop="operationTime" label="æä½æ¶é´" width="180"></el-table-column>--> |
| | | <!-- <el-table-column prop="operationType" label="æä½ç±»å" width="120"></el-table-column>--> |
| | | <!-- <el-table-column prop="operationContent" label="æä½å
容"></el-table-column>--> |
| | | <!-- </el-table>--> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button v-if="operationType === 'add'" @click="dialogVisible1 = false">å æ¶</el-button> |
| | |
| | | computed: { |
| | | ...mapGetters(["nickName"]), |
| | | action() { |
| | | return this.javaApi + '/personBasicInfo/saveCNASFile' |
| | | return this.javaApi + '/personBasicInfo/saveDeviceCalibrationFile' |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | this.dialogVisible1 = true |
| | | this.getXmsg() |
| | | }, |
| | | // æ¥ç详æ
|
| | | // æ¥çç¼è¾è¯¦æ
|
| | | handleViewClick(type, row) { |
| | | showDeviceMetricsCopy({ id: row.id, type: 'calibrate' }).then(res => { |
| | | this.calibrateParams = res.data |
| | |
| | | this.$download.saveAs(blob, 'è®¾å¤æ ¡å.xlsx') |
| | | }) |
| | | }, |
| | | deleteFile() { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å 餿件, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteCNASFile({ fileName: this.calibrationRecord.systemFileName }).then(res => { |
| | | this.calibrationRecord.fileName = '' |
| | | this.$refs.upload.clearFiles() |
| | | if (res.code == 200) { |
| | | this.$message.success('å 餿åï¼') |
| | | } |
| | | }) |
| | | }).catch((err) => { |
| | | console.log('err----', err) |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // æ ¡å项ç®ç»´æ¤ |
| | | calibrationMaintenance() { |
| | | this.dialogVisible0 = true |
| | |
| | | this.$message.info('已忶å é¤'); |
| | | }) |
| | | }, |
| | | // æäº¤é¡¹ç®æ ¡åç»´æ¤ |
| | | addCalibrate() { |
| | | this.$refs['form0'].validate((valid) => { |
| | | if (valid) { |
| | |
| | | } |
| | | this.calibrateParamsLoading = false |
| | | this.addCalibrateLoading = false |
| | | }).catch(() => { |
| | | this.addCalibrateLoading = false |
| | | }) |
| | | } else { |
| | | this.addCalibrateLoading = false |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // æäº¤æ ¡åè®°å½ |
| | | addRecord() { |
| | | this.$refs['calibrationRecord'].validate((valid) => { |
| | | if (valid) { |
| | |
| | | this.calibrationRecord.createUser = this.nickName |
| | | this.calibrationRecord.type = 'calibrate' |
| | | this.calibrationRecord.deviceMetricsCopyList = this.calibrateParams |
| | | this.calibrationRecord.deviceMetricsCopyList.forEach(m => { |
| | | delete m.creationTime |
| | | }) |
| | | delete this.calibrationRecord.createTime |
| | | addOrUpdateDeviceMetricRecord(this.calibrationRecord).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('æ·»å æå') |
| | |
| | | this.getTableList(this.clickNodeVal.value) |
| | | } |
| | | this.addRecordLoading = false |
| | | }).catch((err) => { |
| | | this.addRecordLoading = false |
| | | }) |
| | | } catch (e) { |
| | | console.log('addRecord---', e) |
| | |
| | | </div> |
| | | </div> |
| | | <div class="tables" style="margin-top: 10px;"> |
| | | <el-table ref="table" :data="tableDataAlist" height="100%"> |
| | | <el-table ref="table" :data="tableDataAlist" height="100%" v-loading="tableLoading"> |
| | | <el-table-column label="åºå·" type="index" width="60"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | |
| | | import { dateFormat } from '@/utils/date' |
| | | import file from "@/utils/file"; |
| | | import { |
| | | deleteCNASFile, |
| | | deleteCNASFile, deleteIncidentReport, |
| | | deleteIncidentReportAll, getShowIncidentReport, incidentReportExport, incidentReportPage, |
| | | saveIncidentReportData, |
| | | selectDeviceByCode |
| | | } from "@/api/cnas/resourceDemand/device"; |
| | | import {selectUserCondition} from "@/api/system/user"; |
| | | import {mapGetters} from "vuex"; |
| | | |
| | | export default { |
| | | props: { |
| | |
| | | return { |
| | | //äºæ
设å¤ä¿¡æ¯ |
| | | tableDataAlist: [], // æ´æ¹åéåç§° |
| | | tableLoading: false, |
| | | dialogVisible: false, |
| | | rules: { |
| | | quantity: [{ required: true, message: '请è¾å
¥æ°é', trigger: 'blur' }], |
| | |
| | | computed: { |
| | | action() { |
| | | return this.javaApi + '/personBasicInfo/saveCNASFile' |
| | | } |
| | | }, |
| | | ...mapGetters(["nickName"]), |
| | | }, |
| | | mounted() { |
| | | // è·å设å¤äºæ
ä¿¡æ¯ |
| | |
| | | this.$refs.form.validate((valid) => { |
| | | if (valid === true || saveState !== '1submit') { |
| | | // ç»å½åç¯è设置åå»ºäººä¸æ¶é´ |
| | | let user = JSON.parse(localStorage.getItem('user')) |
| | | const dateTime = dateFormat(new Date()) |
| | | // è·åå½åç¯èæä½äººä¸æ¥æ |
| | | switch (this.currentStep) { |
| | | case 0: |
| | | this.form.submitOperatingPersonnel = user.name |
| | | this.form.submitOperatingPersonnel = this.nickName |
| | | this.form.submitDate = dateTime |
| | | break |
| | | case 1: |
| | | this.form.unpackingOperatingPersonnel = user.name |
| | | this.form.unpackingOperatingPersonnel = this.nickName |
| | | this.form.unpackingDate = dateTime |
| | | break |
| | | case 2: |
| | | this.form.installOperatingPersonnel = user.name |
| | | this.form.installOperatingPersonnel = this.nickName |
| | | this.form.installDate = dateTime |
| | | break |
| | | case 3: |
| | | this.form.installationAcceptanceOperatingPersonnel = user.name |
| | | this.form.installationAcceptanceOperatingPersonnel = this.nickName |
| | | this.form.installationAcceptanceDate = dateTime |
| | | break |
| | | case 4: |
| | | this.form.acceptanceCheckOperatingPersonnel = user.name |
| | | this.form.acceptanceCheckOperatingPersonnel = this.nickName |
| | | this.form.acceptanceCheckDate = dateTime |
| | | break |
| | | case 5: |
| | | this.form.acceptanceAuditOperatingPersonnel = user.name |
| | | this.form.acceptanceAuditOperatingPersonnel = this.nickName |
| | | this.form.acceptanceAuditDate = dateTime |
| | | break |
| | | default: |
| | |
| | | }, |
| | | // è·å设å¤äºæ
ä¿¡æ¯(æ ¹æ®ä»vuexä¸è·åå°ç设å¤åç§°idè¿è¡æ°æ®æ¥è¯¢) |
| | | getDeviceAList(deviceId) { |
| | | this.tableLoading = true |
| | | incidentReportPage({deviceId: deviceId, size:this.search.size, current:this.search.current, processNumber: this.search.processNumber}).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code == 200) { |
| | | this.tableDataAlist = res.data.records |
| | | this.search.total = res.data.total |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | //table äºä»¶å¤çå¼å§å¤ |
| | | // ä¸è½½éä»¶ |
| | | handleAttachmentClick(row) { |
| | | // 模æä¸è½½éä»¶ |
| | | const imageUrl = this.javaApi+'/img/'+row.systemFileName; // å¾ç URL |
| | | // downloadImage(imageUrl); |
| | | file.downloadIamge(imageUrl,row.fileName) |
| | | this.$download.saveAs(row.systemFileName, row.fileName) |
| | | }, |
| | | handleViewClick(row) { |
| | | getShowIncidentReport({id: row.id}).then(res => { |
| | |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteIncidentReportAll({id: row.id}).then(res => { |
| | | deleteIncidentReport({id: row.id}).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('å 餿å') |
| | | this.getDeviceAList(this.clickNodeVal.value); |
| | |
| | | } |
| | | |
| | | .search { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | height: 40px; |
| | | display: flex; |
| | |
| | | <el-button v-if="operationType === 'add'" slot="append" icon="el-icon-delete-solid" |
| | | @click="deleteFile"></el-button> |
| | | </el-input> |
| | | <el-upload v-if="operationType === 'add'" ref="upload" :action="action" :before-upload="beforeUpload" :headers="headers" |
| | | <el-upload v-if="operationType === 'add'" ref="upload" :action="action" :before-upload="beforeUpload" :headers="uploadHeader" |
| | | :limit="1" :on-error="onError" :on-success="handleSuccessUp" |
| | | :show-file-list="false" |
| | | style="float: right;"> |
| | |
| | | <script> |
| | | import file from '@/utils/file'; |
| | | import { mapGetters } from "vuex"; |
| | | import {deviceMetricRecordExport} from "@/api/cnas/resourceDemand/device"; |
| | | import { |
| | | addOrUpdateDeviceMetricRecord, deleteCNASFile, deleteDeviceMetricRecord, deleteDeviceMetrics, |
| | | deviceMetricRecordExport, |
| | | deviceMetricRecordPage, |
| | | saveOrUpdateDeviceMetric, |
| | | selectDeviceMetric, showDeviceMetricsCopy |
| | | } from "@/api/cnas/resourceDemand/device"; |
| | | export default { |
| | | components: {}, |
| | | props: { |
| | |
| | | computed: { |
| | | ...mapGetters(["nickName"]), |
| | | action() { |
| | | return this.javaApi + this.$api.personnel.saveCNASFile |
| | | return this.javaApi + '/personBasicInfo/saveCNASFile' |
| | | } |
| | | }, |
| | | mounted() { |
| | |
| | | async getXmsg() { |
| | | this.calibrateParamsLoading = true |
| | | try { |
| | | await this.$axios.get(this.$api.deviceCheck.selectDeviceMetric + "?deviceId=" + this.clickNodeVal.value + "&type=examine").then(res => { |
| | | await selectDeviceMetric({deviceId: this.clickNodeVal.value, type: 'examine'}).then(res => { |
| | | if (res.code == 200) { |
| | | this.calibrateParams = res.data |
| | | } |
| | |
| | | this.form0.deviceId = this.clickNodeVal.value; |
| | | this.form0.createdBy = this.nickName; |
| | | this.form0.type = 'examine' |
| | | this.$axios.post(this.$api.deviceCheck.saveOrUpdateDeviceMetric, this.form0, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | saveOrUpdateDeviceMetric(this.form0).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('ä¿åæå') |
| | | this.$refs['form0'].resetFields() |
| | |
| | | }, |
| | | // æ¥è¯¢è®¾å¤æ ¸æ¥å表 |
| | | getTableList(deviceId) { |
| | | this.$axios.get(this.$api.deviceCheck.deviceMetricRecordPage + '?deviceId=' + deviceId + "&size=" + this.search.size + "¤t=" + this.search.current + "&type=examine").then(res => { |
| | | deviceMetricRecordPage({deviceId: deviceId, size: this.search.size, current: this.search.current, type: 'examine'}).then(res => { |
| | | this.tableData = res.data.records |
| | | this.search.total = res.data.total |
| | | }) |
| | |
| | | this.calibrationRecord.deviceId = this.clickNodeVal.value; |
| | | this.calibrationRecord.createUser = this.nickName |
| | | this.calibrationRecord.deviceMetricsCopyList = this.calibrateParams |
| | | this.calibrationRecord.deviceMetricsCopyList.forEach(ele => { |
| | | delete ele.creationTime |
| | | }) |
| | | this.calibrationRecord.type = 'examine' |
| | | this.$axios.post(this.$api.deviceCheck.addOrUpdateDeviceMetricRecord, this.calibrationRecord, { |
| | | headers: { |
| | | 'Content-Type': 'application/json' |
| | | } |
| | | }).then(res => { |
| | | addOrUpdateDeviceMetricRecord(this.calibrationRecord).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('æ·»å æå') |
| | | this.dialogVisible1 = false |
| | |
| | | this.$message.warning('æå¿
填项æªå¡«'); |
| | | } |
| | | }) |
| | | }, |
| | | handleClose(done) { |
| | | this. calibrationRecord = { |
| | | unitOfMeasure: '', // æ ¸æ¥äºº |
| | | calibrationDate: '', // æ ¸æ¥æ¥æ |
| | | nextCalibrationDate: '', // 䏿¬¡æ ¸æ¥æ¥æ |
| | | calculatingApparatus: '', // æ ¸æ¥å¨å
· |
| | | standardRange: '', // æ ¸æ¥æ åéç¨ |
| | | calibrationStandardUncertainty: '', // æ ¸æ¥æ åä¸ç¡®å®åº¦ |
| | | byDocument: '', // æ ¸æ¥æå¯¼ä¹¦ |
| | | certificateSerialNumber: '', // æ£æ¥æ¥åæå¯¼ä¹¦ |
| | | fileName: '', // éä»¶ |
| | | status: '', // æ ¸æ¥æ»ç»è®º |
| | | remark: '', // 夿³¨ |
| | | } |
| | | this.dialogVisible1 = false |
| | | }, |
| | | resetcalibrationRecord() { |
| | | this.$refs.calibrationRecord.resetFields() |
| | |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + this.form.systemFileName).then(res => { |
| | | deleteCNASFile({fileName: this.form.systemFileName}).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('å 餿åï¼') |
| | | } |
| | |
| | | }, |
| | | // end |
| | | handleAttachmentClick(row) { |
| | | // 模æä¸è½½éä»¶ |
| | | const imageUrl = this.javaApi + '/img/' + row.systemFileName; // å¾ç URL |
| | | file.downloadIamge(imageUrl, row.fileName) |
| | | // downloadImage(imageUrl, row.fileName); |
| | | this.$download.saveAs(row.systemFileName, row.fileName) |
| | | }, |
| | | // æ·»å æ ¸æ¥è®°å½ |
| | | add(type) { |
| | |
| | | }, |
| | | // æ¥ç详æ
|
| | | handleViewClick(type, row) { |
| | | this.$axios.get(this.$api.deviceCheck.showDeviceMetricsCopy + "?id=" + row.id + "&type=examine").then(res => { |
| | | showDeviceMetricsCopy({id: row.id, type: 'examine'}).then(res => { |
| | | this.calibrateParams = res.data |
| | | }) |
| | | this.calibrationRecord = { ...row } |
| | |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$axios.delete(this.$api.deviceCheck.deleteDeviceMetricRecord + "?id=" + row.id).then(res => { |
| | | deleteDeviceMetricRecord({id: row.id}).then(res => { |
| | | this.getTableList(this.clickNodeVal.value) // è·åè®¾å¤æ ¡ååè¡¨æ°æ® |
| | | this.$message.success('å 餿åï¼') |
| | | }) |
| | |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$axios.delete(this.$api.deviceCheck.deleteDeviceMetrics + "?id=" + row.id).then(res => { |
| | | deleteDeviceMetrics({id: row.id}).then(res => { |
| | | this.getXmsg(); |
| | | this.$message.success('å 餿åï¼') |
| | | }) |
| | |
| | | |
| | | .btns { |
| | | text-align: right; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | h4 { |
| | |
| | | updateDocument, |
| | | addDocument, |
| | | deleteDocumentById, |
| | | getAllDocuments, |
| | | selectDeviceByCode, |
| | | upDeviceParameter, |
| | | exportDeviceFile, |
| | | getInsProduction, |
| | | getInsProduction, getListByDId, |
| | | } from '@/api/cnas/resourceDemand/device.js' |
| | | import { selectUserCondition } from "@/api/system/user"; |
| | | import { |
| | |
| | | }, |
| | | // è·åç¸å
³ææ¡£æ°æ®çapi |
| | | getPage() { |
| | | getAllDocuments({ deviceId: this.clickNodeVal.value }).then(res => { |
| | | getListByDId({ id: this.clickNodeVal.value }).then(res => { |
| | | if (res.code == 200) |
| | | this.tableDataA = res.data |
| | | }) |
| | |
| | | <div v-if="!isShowAll" style="height: 100%;"> |
| | | <el-tabs v-model="tabListActiveName" class="main_right" type="border-card" @tab-click="handleClick"> |
| | | <el-tab-pane label="设å¤è¿è¡æ»è§" name="设å¤è¿è¡æ»è§"> |
| | | <operationOverview v-if="tabListActiveName == '设å¤è¿è¡æ»è§'" :clickNodeVal="clickNodeVal"/> |
| | | <operationOverview view v-if="tabListActiveName == '设å¤è¿è¡æ»è§'" :clickNodeVal="clickNodeVal"/> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="è®¾å¤æ¡£æ¡" name="è®¾å¤æ¡£æ¡"> |
| | | <files v-if="tabListActiveName == 'è®¾å¤æ¡£æ¡'" :clickNodeVal="clickNodeVal" /> |
| | |
| | | isShowAll: true, |
| | | deviceName: "", // ä¾§è¾¹æ æç´¢ |
| | | loading: false, |
| | | tabListActiveName: 'è®¾å¤æ¡£æ¡', |
| | | tabListActiveName: '设å¤è¿è¡æ»è§', |
| | | menuListActiveName: 'è®¾å¤æ»è§', |
| | | list: [], |
| | | clickNodeVal: {} |
| | |
| | | .device-right { |
| | | background: #fff; |
| | | width: calc(100% - 250px); |
| | | height: calc(100vh - 100px); |
| | | height: calc(100vh - 40px); |
| | | border-radius: 16px; |
| | | box-sizing: border-box; |
| | | padding: 10px; |
| | |
| | | <style scoped> |
| | | .title { |
| | | height: 60px; |
| | | line-height: 60px; |
| | | } |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .search_thing { |
| | | display: flex; |
| | | align-items: center; |
| | | height: 50px; |
| | | width: 230px; |
| | | } |
| | | |
| | | .search_label { |
| | | width: 90px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .search_input { |
| | | width: calc(100% - 90px); |
| | | } |
| | | |
| | | .table { |
| | | margin-top: 10px; |
| | | background-color: #fff; |
| | | width: calc(100% - 40px); |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .full-screen { |
| | | position: absolute; |
| | | right: 52px; |
| | | top: 22px; |
| | | } |
| | | |
| | | .btns { |
| | | position: absolute; |
| | | right: 40px; |
| | | top: 50%; |
| | | transform: translate(0, -50%); |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .fullscreen { |
| | | height: 82vh; |
| | | } |
| | | .custom-upload >>> .el-upload-list--text { |
| | | max-height: 20vh; |
| | | overflow-y: scroll; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | | <div>æ¥åç¼å¶</div> |
| | | <div class="inspection_order"> |
| | | <div style="width: 100%; height: 100%"> |
| | | <div> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="padding-left: 20px; text-align: left" |
| | | >æ¥åç¼å¶</el-col |
| | | > |
| | | </el-row> |
| | | </div> |
| | | <div class="search" :style="`height: ${more ? 130 : 80}px;`"> |
| | | <el-row :gutter="10" style="width: 100%"> |
| | | <el-col :span="16" style="display: flex; flex-wrap: wrap"> |
| | | <div class="search_thing" v-if="maxNum >= 1"> |
| | | <div class="search_label">æ¥åç¼å·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="entity.code" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" v-if="maxNum >= 2"> |
| | | <div class="search_label">ä¸ä¼ ç¶æï¼</div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | size="small" |
| | | clearable |
| | | @clear="refreshTable()" |
| | | @change="refreshTable()" |
| | | v-model="entity.isUpload" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in tagField.isUpload.select" |
| | | :value="item.value" |
| | | :label="item.label" |
| | | :key="index" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" v-if="maxNum >= 3"> |
| | | <div class="search_label">æäº¤ç¶æï¼</div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | size="small" |
| | | clearable |
| | | @clear="refreshTable()" |
| | | @change="refreshTable()" |
| | | v-model="entity.state" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in tagField.state.select" |
| | | :value="item.value" |
| | | :label="item.label" |
| | | :key="index" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="search_thing" |
| | | v-if="maxNum >= 4 || (maxNum < 4 && more)" |
| | | > |
| | | <div class="search_label">å®¡æ ¸ç¶æï¼</div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | size="small" |
| | | clearable |
| | | @clear="refreshTable()" |
| | | @change="refreshTable()" |
| | | v-model="entity.isExamine" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in tagField.isExamine.select" |
| | | :value="item.value" |
| | | :label="item.label" |
| | | :key="index" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" v-if="maxNum >= 5 || more"> |
| | | <div class="search_label">æ¹åç¶æï¼</div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | size="small" |
| | | clearable |
| | | @clear="refreshTable()" |
| | | @change="refreshTable()" |
| | | v-model="entity.isRatify" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in tagField.isRatify.select" |
| | | :value="item.value" |
| | | :label="item.label" |
| | | :key="index" |
| | | ></el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" v-if="maxNum >= 6 || more"> |
| | | <div class="search_label">å建æ¶é´ï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker |
| | | size="small" |
| | | clearable |
| | | @clear="refreshTable()" |
| | | @change="refreshTable()" |
| | | v-model="entity.createTimeRange" |
| | | type="daterange" |
| | | value-format="yyyy-MM-dd[T]HH:mm:ss" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | :default-time="['00:00:00', '23:59:59']" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <div class="search_thing"> |
| | | <el-button |
| | | v-if="maxNum < 5" |
| | | type="text" |
| | | :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" |
| | | style="color: #3a7bfa" |
| | | @click="more = !more" |
| | | >{{ !more ? "æ´å¤" : "æ¶èµ·" }}</el-button |
| | | > |
| | | <div class="search_thing" style="padding-left: 20px"> |
| | | <el-button |
| | | size="small" |
| | | @click="refresh()" |
| | | style="margin-right: 6px" |
| | | >é ç½®</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="refreshTable()" |
| | | style="margin-right: 6px" |
| | | >æ¥ è¯¢</el-button |
| | | > |
| | | <template> |
| | | <el-dropdown |
| | | @command="handleCommand" |
| | | style="margin-left: 10px" |
| | | > |
| | | <el-button type="primary" size="small"> |
| | | æ´å¤æä½<i class="el-icon-arrow-down el-icon--right"></i> |
| | | </el-button> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item |
| | | icon="el-icon-download" |
| | | command="batchDownload" |
| | | >æ¹éä¸è½½</el-dropdown-item |
| | | > |
| | | <el-dropdown-item |
| | | icon="el-icon-upload" |
| | | command="batchUpload" |
| | | >æ¹éä¸ä¼ </el-dropdown-item |
| | | > |
| | | <el-dropdown-item |
| | | icon="el-icon-s-check" |
| | | command="oneClickApproval" |
| | | >ä¸é®å®¡æ¹</el-dropdown-item |
| | | > |
| | | <el-dropdown-item |
| | | icon="el-icon-setting" |
| | | command="approvalConfig" |
| | | >审æ¹ç¾åé
ç½®</el-dropdown-item |
| | | > |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </template> |
| | | <template> |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="handleDowns" |
| | | :loading="outLoading" |
| | | style="margin-right: 6px" |
| | | >æ¹éä¸è½½</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="openBatchUploadDia()" |
| | | :loading="inLoading" |
| | | >æ¹éä¸ä¼ </el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="oneClickApproval()" |
| | | :loading="approvalLoading" |
| | | >ä¸é®å®¡æ¹</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | @click="openApprovalConfig()" |
| | | :loading="approvalConfigLoading" |
| | | >审æ¹ç¾åé
ç½®</el-button |
| | | > |
| | | </template> |
| | | </div> |
| | | <!-- <div class="btns"> |
| | | <el-button size="small" type="primary" @click="handleDowns" :loading="outLoading" style="margin-right: 16px;">æ¹éä¸è½½</el-button> |
| | | <el-button size="small" type="primary" @click="openBatchUploadDia()" :loading="inLoading">æ¹éä¸ä¼ </el-button> |
| | | </div> --> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="table"> |
| | | <div |
| | | style=" |
| | | width: 100%; |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | font-size: 13px; |
| | | flex-direction: row; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | " |
| | | > |
| | | <p style="margin-left: 15px"> |
| | | å¾
æäº¤æ°é: <span |
| | | style="font-size: 16px; color: rgb(58, 123, 250)" |
| | | >{{ unSubmitCount }}</span |
| | | > |
| | | </p> |
| | | <p style="margin-left: 15px"> |
| | | å¾
å®¡æ ¸æ°é: <span |
| | | style="font-size: 16px; color: rgb(58, 123, 250)" |
| | | >{{ unExamineCount }}</span |
| | | > |
| | | </p> |
| | | <p style="margin-left: 15px"> |
| | | å¾
æ¹åæ°é: <span |
| | | style="font-size: 16px; color: rgb(58, 123, 250)" |
| | | >{{ unRatifyCount }}</span |
| | | > |
| | | </p> |
| | | </div> |
| | | <lims-table |
| | | :tableData="tableData" |
| | | :column="column" |
| | | :tableLoading="tableLoading" |
| | | :height="'calc(100vh - 270px)'" |
| | | :page="page" |
| | | @pagination="pagination" |
| | | ></lims-table> |
| | | </div> |
| | | </div> |
| | | <!--æ¥åæ¥ç--> |
| | | <el-dialog |
| | | :fullscreen="fullscreen" |
| | | top="5vh" |
| | | :modal-append-to-body="false" |
| | | :visible.sync="viewIssuedVisible" |
| | | title="æ¥åæ¥ç" |
| | | width="80vw" |
| | | > |
| | | <div class="full-screen"> |
| | | <i |
| | | v-if="!fullscreen" |
| | | class="el-icon-full-screen" |
| | | style="cursor: pointer; font-size: 18px" |
| | | @click="fullscreen = true" |
| | | ></i> |
| | | <!-- <img |
| | | v-else |
| | | alt="" |
| | | src="../../../static/img/no-full.svg" |
| | | style="cursor: pointer" |
| | | @click="fullscreen = false" |
| | | /> --> |
| | | </div> |
| | | <div v-if="viewIssuedVisible" style="height: 80vh"> |
| | | <onlyoffice |
| | | ref="onlyoffice" |
| | | :options="option" |
| | | style="width: 100%; height: 100%" |
| | | /> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="å¨çº¿ç¼å¶" |
| | | :visible.sync="claimVisible" |
| | | width="22cm" |
| | | :modal-append-to-body="false" |
| | | :fullscreen="fullscreen" |
| | | > |
| | | <div class="full-screen"> |
| | | <i |
| | | class="el-icon-full-screen" |
| | | style="cursor: pointer; font-size: 18px" |
| | | @click="fullscreen = true" |
| | | v-if="!fullscreen" |
| | | ></i> |
| | | <!-- <img |
| | | src="../../../static/img/no-full.svg" |
| | | alt="" |
| | | v-else |
| | | style="cursor: pointer" |
| | | @click="fullscreen = false" |
| | | /> --> |
| | | </div> |
| | | <Word |
| | | style="height: 70vh" |
| | | :class="{ fullscreen: fullscreen }" |
| | | v-if="claimVisible" |
| | | ref="Word" |
| | | :value="value" |
| | | /> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="claimVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="confirmClaim">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="æ¥åå®¡æ ¸" |
| | | top="5vh" |
| | | :visible.sync="issuedVisible" |
| | | width="80vw" |
| | | :modal-append-to-body="false" |
| | | :fullscreen="fullscreen" |
| | | > |
| | | <div class="full-screen"> |
| | | <i |
| | | class="el-icon-full-screen" |
| | | style="cursor: pointer; font-size: 18px" |
| | | @click="fullscreen = true" |
| | | v-if="!fullscreen" |
| | | ></i> |
| | | <!-- <img |
| | | src="../../../static/img/no-full.svg" |
| | | alt="" |
| | | v-else |
| | | style="cursor: pointer" |
| | | @click="fullscreen = false" |
| | | /> --> |
| | | </div> |
| | | <div style="height: 75vh" v-if="issuedVisible"> |
| | | <onlyoffice |
| | | ref="onlyoffice" |
| | | :options="option" |
| | | style="width: 100%; height: 100%" |
| | | /> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="issuedReasonVisible = true" :disabled="loadingIssued" |
| | | >ä¸éè¿</el-button |
| | | > |
| | | <el-button type="primary" @click="subIssued" :loading="loadingIssued" |
| | | >é è¿</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="ä¸éè¿åå " |
| | | top="5vh" |
| | | :visible.sync="issuedReasonVisible" |
| | | width="400px" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <div class="search_thing"> |
| | | <div class="search_label">ä¸éè¿åå ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="reason" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button |
| | | @click="issuedReasonVisible = false" |
| | | :disabled="loadingIssuedReason" |
| | | >åæ¶</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | @click="handleIssuedReason" |
| | | :loading="loadingIssuedReason" |
| | | >ç¡®å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="æ¥åæ¹å" |
| | | top="5vh" |
| | | :visible.sync="approveVisible" |
| | | width="80vw" |
| | | :modal-append-to-body="false" |
| | | :fullscreen="fullscreen" |
| | | > |
| | | <div class="full-screen"> |
| | | <i |
| | | class="el-icon-full-screen" |
| | | style="cursor: pointer; font-size: 18px" |
| | | @click="fullscreen = true" |
| | | v-if="!fullscreen" |
| | | ></i> |
| | | <!-- <img |
| | | src="../../../static/img/no-full.svg" |
| | | alt="" |
| | | v-else |
| | | style="cursor: pointer" |
| | | @click="fullscreen = false" |
| | | /> --> |
| | | </div> |
| | | <div style="height: 75vh" v-if="approveVisible"> |
| | | <onlyoffice |
| | | ref="onlyoffice" |
| | | :options="option" |
| | | style="width: 100%; height: 100%" |
| | | /> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button |
| | | @click="approveReasonVisible = true" |
| | | :disabled="loadingApprove" |
| | | >䏿¹å</el-button |
| | | > |
| | | <el-button type="primary" @click="subApprove" :loading="loadingApprove" |
| | | >æ¹ å</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="䏿¹ååå " |
| | | :visible.sync="approveReasonVisible" |
| | | width="400px" |
| | | :modal-append-to-body="false" |
| | | > |
| | | <div class="search_thing"> |
| | | <div class="search_label">䏿¹ååå ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="reason" |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button |
| | | @click="approveReasonVisible = false" |
| | | :disabled="loadingApproveReason" |
| | | >åæ¶</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | @click="handleApproveReason" |
| | | :loading="loadingApproveReason" |
| | | >ç¡®å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | :visible.sync="batchUploadDia" |
| | | title="æ¥åæ¹éä¸ä¼ " |
| | | width="30%" |
| | | :close-on-click-modal="false" |
| | | top="5vh" |
| | | > |
| | | <div> |
| | | <!-- <el-upload |
| | | class="upload-demo" |
| | | :action="action" |
| | | :headers="headers" |
| | | :show-file-list="false" |
| | | accept=".doc,.docx" |
| | | :limit="1" |
| | | :before-upload="beforeUpload" |
| | | :on-success="handleSuccess" |
| | | ref="upload" |
| | | :on-error="onError"> |
| | | </el-upload> --> |
| | | <el-upload |
| | | ref="upload" |
| | | class="upload-demo custom-upload" |
| | | drag |
| | | show-file-list |
| | | accept=".doc,.docx" |
| | | :action="action" |
| | | :headers="headers" |
| | | :on-error="onError" |
| | | :before-upload="beforeUpload" |
| | | :file-list="fileList" |
| | | :auto-upload="false" |
| | | :limit="100" |
| | | :on-exceed="uploadExceed" |
| | | :on-success="handleSuccess" |
| | | multiple |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æä»¶æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | åªè½ä¸ä¼ .doc/.docxæä»¶ï¼ä¸å个æä»¶ä¸è¶
è¿10MB |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button size="small" type="primary" @click="submitUpload" |
| | | >确认ä¸ä¼ </el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ¥åæ¹é审æ¹å¼¹æ¡ --> |
| | | <el-dialog |
| | | :visible.sync="oneClickApprovalDialog" |
| | | title="æ¥åæ¹é审æ¹" |
| | | width="40%" |
| | | :close-on-click-modal="false" |
| | | top="5vh" |
| | | > |
| | | <div> |
| | | <el-result |
| | | icon="error" |
| | | v-show="progressData.hasException != null" |
| | | title="é误信æ¯" |
| | | :subTitle="progressData.hasException" |
| | | ></el-result> |
| | | <el-result |
| | | icon="success" |
| | | v-show="isSuccess && progressData.hasException == null" |
| | | title="æåä¿¡æ¯" |
| | | subTitle="æ¥å审æ¹å®æ" |
| | | ></el-result> |
| | | <el-progress |
| | | :percentage="progressData.hasNum" |
| | | :color="customColors" |
| | | ></el-progress> |
| | | <el-statistic title="å©ä½æ¥åæ°é"> |
| | | <template slot="formatter"> |
| | | {{ progressData.surplus }}/{{ progressData.hasCount }} |
| | | </template> |
| | | </el-statistic> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <!-- <el-button size="small" type="primary" @click="confirmApproval" |
| | | >确认</el-button |
| | | > --> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ¤åå¼¹æ¡ --> |
| | | <el-dialog |
| | | title="è¯·éæ©éè¦æ¤åçè¯éªå®¤" |
| | | :visible.sync="withdrawDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-select |
| | | v-model="laboratory" |
| | | multiple |
| | | clearable |
| | | style="width: 100%; margin-bottom: 20px" |
| | | placeholder="è¯·éæ©è¯éªå®¤" |
| | | > |
| | | <el-option |
| | | v-for="(item, i) in laboratorys" |
| | | :key="i" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | ></el-option> |
| | | </el-select> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="handleClose">å æ¶</el-button> |
| | | <el-button type="primary" @click="withdrawOperation">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- 审æ¹ç¾åé
ç½®å¼¹æ¡ --> |
| | | <el-dialog |
| | | :visible.sync="approvalConfigDialog" |
| | | title="审æ¹ç¾åé
ç½®" |
| | | width="55%" |
| | | :close-on-click-modal="false" |
| | | top="5vh" |
| | | > |
| | | <div v-if="approvalConfigListTX.editor != null"> |
| | | <el-divider content-position="left">é信产åå®éªå®¤</el-divider> |
| | | <el-form |
| | | size="mini" |
| | | :model="approvalConfigListTX" |
| | | inline |
| | | label-position="right" |
| | | > |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ç¼å¶äºº:" prop="editor"> |
| | | <el-select |
| | | v-model="approvalConfigListTX.editor" |
| | | placeholder="è¯·éæ©" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å®¡æ ¸äºº:" prop="examiner"> |
| | | <el-select |
| | | v-model="approvalConfigListTX.examiner" |
| | | placeholder="è¯·éæ©" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ¹å人:" prop="approver"> |
| | | <el-select |
| | | v-model="approvalConfigListTX.approver" |
| | | placeholder="è¯·éæ©" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <br /> |
| | | <div v-if="approvalConfigListDL.editor != null"> |
| | | <el-divider content-position="left">çµå产åå®éªå®¤</el-divider> |
| | | <el-form |
| | | size="mini" |
| | | :model="approvalConfigListDL" |
| | | inline |
| | | label-position="right" |
| | | > |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="ç¼å¶äºº:" prop="editor"> |
| | | <el-select |
| | | v-model="approvalConfigListDL.editor" |
| | | placeholder="è¯·éæ©" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å®¡æ ¸äºº:" prop="examiner"> |
| | | <el-select |
| | | v-model="approvalConfigListDL.examiner" |
| | | placeholder="è¯·éæ©" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æ¹å人:" prop="approver"> |
| | | <el-select |
| | | v-model="approvalConfigListDL.approver" |
| | | placeholder="è¯·éæ©" |
| | | style="width: 100%" |
| | | filterable |
| | | > |
| | | <el-option-group |
| | | v-for="(item, index) in Object.keys(personList)" |
| | | :key="index" |
| | | :label="item" |
| | | > |
| | | <el-option |
| | | v-for="op in personList[item]" |
| | | :key="op.id" |
| | | :label="op.name" |
| | | :value="op.id" |
| | | > |
| | | </el-option> |
| | | </el-option-group> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button size="small" type="primary" @click="confirmApprovalConfig" |
| | | >确认</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default {}; |
| | | </script> |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import onlyoffice from "../reportPreparation/onlyoffice.vue"; |
| | | import { |
| | | pageInsReport, |
| | | inReport, |
| | | upAll, |
| | | getLaboratoryByReportId, |
| | | withdraw, |
| | | updateApproveConfig, |
| | | getUserList, |
| | | getApproveConfigList, |
| | | downAll, |
| | | getBatchApprovalProgress, |
| | | getReportCountInfo, |
| | | downReport, |
| | | upReportUrl, |
| | | ratifyReport, |
| | | writeReport, |
| | | examineReport, |
| | | downLoad, |
| | | getReportInfo, |
| | | } from "../../../api/business/reportPreparation"; |
| | | |
| | | <style></style> |
| | | export default { |
| | | components: { |
| | | limsTable, |
| | | onlyoffice, |
| | | }, |
| | | data() { |
| | | return { |
| | | tagField: { |
| | | isUpload: { |
| | | select: [ |
| | | { |
| | | value: 0, |
| | | type: "danger", |
| | | label: "æªä¸ä¼ ", |
| | | }, |
| | | { |
| | | value: 1, |
| | | type: "success", |
| | | label: "å·²ä¸ä¼ ", |
| | | }, |
| | | ], |
| | | }, |
| | | isRatify: { |
| | | select: [ |
| | | { |
| | | value: -9, |
| | | type: "info", |
| | | label: "æªæ¹å", |
| | | }, |
| | | { |
| | | value: 0, |
| | | type: "danger", |
| | | label: "䏿¹å", |
| | | }, |
| | | { |
| | | value: 1, |
| | | type: "success", |
| | | label: "æ¹å", |
| | | }, |
| | | ], |
| | | }, |
| | | isExamine: { |
| | | select: [ |
| | | { |
| | | value: -9, |
| | | type: "info", |
| | | label: "æªå®¡æ ¸", |
| | | }, |
| | | { |
| | | value: 0, |
| | | type: "danger", |
| | | label: "ä¸éè¿", |
| | | }, |
| | | { |
| | | value: 1, |
| | | type: "success", |
| | | label: "éè¿", |
| | | }, |
| | | ], |
| | | }, |
| | | state: { |
| | | select: [ |
| | | { |
| | | value: 0, |
| | | type: "danger", |
| | | label: "å¾
æäº¤", |
| | | }, |
| | | { |
| | | value: 1, |
| | | type: "success", |
| | | label: "å·²æäº¤", |
| | | }, |
| | | ], |
| | | }, |
| | | }, |
| | | entity: { |
| | | isUpload: null, |
| | | entrustCode: null, |
| | | state: null, |
| | | isExamine: null, |
| | | isRatify: null, |
| | | code: null, |
| | | createTimeRange: [], |
| | | }, |
| | | withdrawDialogVisible: false, |
| | | laboratory: [], |
| | | laboratorys: [], |
| | | isSuccess: false, |
| | | time: null, |
| | | //审æ¹è¿åº¦å¯¹è±¡ |
| | | progressData: { |
| | | hasProgress: false, |
| | | hasNum: 0, |
| | | hasCount: 0, |
| | | hasException: null, |
| | | surplus: 0, |
| | | }, |
| | | personList: [], |
| | | approvalConfigListTX: { |
| | | editor: null, |
| | | examiner: null, |
| | | approver: null, |
| | | }, //审æ¹ç¾åé
ç½®å表 |
| | | approvalConfigListDL: { |
| | | editor: null, |
| | | examiner: null, |
| | | approver: null, |
| | | }, //审æ¹ç¾åé
ç½®å表 |
| | | approvalConfigDialog: false, |
| | | approvalConfigLoading: false, |
| | | surplusReportNum: 0, |
| | | percentage: 0, |
| | | customColors: [ |
| | | { color: "#f56c6c", percentage: 20 }, |
| | | { color: "#e6a23c", percentage: 40 }, |
| | | { color: "#5cb87a", percentage: 60 }, |
| | | { color: "#1989fa", percentage: 80 }, |
| | | { color: "#6f7ad3", percentage: 100 }, |
| | | ], |
| | | oneClickApprovalDialog: false, |
| | | approvalLoading: false, |
| | | isShowMore: false, |
| | | more: false, |
| | | fileList: [], |
| | | batchUploadDia: false, |
| | | viewIssuedVisible: false, |
| | | tableData: [], |
| | | column: [ |
| | | { |
| | | label: "æ¥åç¼å·", |
| | | prop: "code", |
| | | }, |
| | | { |
| | | label: "ä¸ä¼ ç¶æ", |
| | | prop: "isUpload", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return params == 1 ? "å·²ä¸ä¼ " : "æªä¸ä¼ "; |
| | | }, |
| | | formatType: (params) => { |
| | | return params == 1 ? "success" : "danger"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "å建æ¶é´", |
| | | prop: "createTime", |
| | | }, |
| | | { |
| | | label: "æäº¤äºº", |
| | | prop: "writeUserName", |
| | | }, |
| | | { |
| | | label: "æäº¤ç¶æ", |
| | | prop: "state", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | return params == 1 ? "å·²æäº¤" : "å¾
æäº¤"; |
| | | }, |
| | | formatType: (params) => { |
| | | return params == 1 ? "success" : "danger"; |
| | | }, |
| | | }, |
| | | { |
| | | label: "æäº¤æ¶é´", |
| | | prop: "writeTime", |
| | | }, |
| | | { |
| | | label: "å®¡æ ¸äºº", |
| | | prop: "examineUser", |
| | | }, |
| | | { |
| | | label: "å®¡æ ¸ç¶æ", |
| | | prop: "isExamine", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | let farmat = ""; |
| | | if (params == 0) { |
| | | farmat = "ä¸éè¿"; |
| | | } else if (params == 1) { |
| | | farmat = "éè¿"; |
| | | } else { |
| | | farmat = "æªå®¡æ ¸"; |
| | | } |
| | | return farmat; |
| | | }, |
| | | formatType: (params) => { |
| | | let farmat = ""; |
| | | if (params == 0) { |
| | | farmat = "danger"; |
| | | } else if (params == 1) { |
| | | farmat = "success"; |
| | | } else { |
| | | farmat = "info"; |
| | | } |
| | | return farmat; |
| | | }, |
| | | }, |
| | | { |
| | | label: "å®¡æ ¸å¤æ³¨", |
| | | prop: "examineTell", |
| | | }, |
| | | { |
| | | label: "å®¡æ ¸æ¶é´", |
| | | prop: "examineTime", |
| | | }, |
| | | { |
| | | label: "æ¹å人", |
| | | prop: "ratifyUser", |
| | | }, |
| | | { |
| | | label: "æ¹åç¶æ", |
| | | prop: "isRatify", |
| | | dataType: "tag", |
| | | formatData: (params) => { |
| | | let farmat = ""; |
| | | if (params == 0) { |
| | | farmat = "䏿¹å"; |
| | | } else if (params == 1) { |
| | | farmat = "æ¹å"; |
| | | } else { |
| | | farmat = "æªæ¹å"; |
| | | } |
| | | return farmat; |
| | | }, |
| | | formatType: (params) => { |
| | | let farmat = ""; |
| | | if (params == 0) { |
| | | farmat = "danger"; |
| | | } else if (params == 1) { |
| | | farmat = "sucess"; |
| | | } else { |
| | | farmat = "info"; |
| | | } |
| | | return farmat; |
| | | }, |
| | | }, |
| | | { |
| | | label: "æ¹å夿³¨", |
| | | prop: "ratifyTell", |
| | | }, |
| | | { |
| | | label: "æ¹åæ¶é´", |
| | | prop: "ratifyTime", |
| | | }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | | label: "æä½", |
| | | operation: [ |
| | | { |
| | | name: "ç¼å¶", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleWeave(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.isExamine != -9; |
| | | }, |
| | | }, |
| | | { |
| | | name: "ä¸è½½", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.download(row); |
| | | }, |
| | | }, |
| | | { |
| | | name: "ä¸ä¼ ", |
| | | type: "upload", |
| | | url: "/file/attachmentType/upload", |
| | | data: (row) => { |
| | | return { |
| | | id: row.id, |
| | | type: 1, |
| | | }; |
| | | }, |
| | | uploadIdFun: (row) => { |
| | | return row.id; |
| | | }, |
| | | disabled: (row) => { |
| | | return row.isExamine != -9; |
| | | }, |
| | | }, |
| | | { |
| | | name: "è¿å", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleRestore(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.isExamine != -9; |
| | | }, |
| | | }, |
| | | { |
| | | name: "æäº¤", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleSubmit(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.state != 0; |
| | | }, |
| | | }, |
| | | { |
| | | name: "å®¡æ ¸", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleIssued(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return ( |
| | | row.state == null || row.state == 0 || row.isExamine == 1 |
| | | ); |
| | | }, |
| | | }, |
| | | { |
| | | name: "æ¹å", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.handleApprove(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return ( |
| | | row.state == null || |
| | | row.state == 0 || |
| | | row.isExamine == 0 || |
| | | row.isExamine == -9 || |
| | | row.isRatify == 1 |
| | | ); |
| | | }, |
| | | }, |
| | | { |
| | | name: "æ¤å", |
| | | type: "text", |
| | | clickFun: (row) => { |
| | | this.withdraw(row); |
| | | }, |
| | | disabled: (row) => { |
| | | return row.state == 1; |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1, |
| | | }, |
| | | tableLoading: false, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | | statusList: [], |
| | | claimVisible: false, |
| | | issuedVisible: false, |
| | | issuedReasonVisible: false, |
| | | approveVisible: false, |
| | | approveReasonVisible: false, |
| | | fullscreen: false, |
| | | loadingApproveReason: false, |
| | | loadingApprove: false, |
| | | loadingIssuedReason: false, |
| | | loadingIssued: false, |
| | | value: ``, |
| | | reason: "", |
| | | currentInfo: null, |
| | | option: null, |
| | | mutiList: [], |
| | | outLoading: false, |
| | | inLoading: false, |
| | | maxNum: 1, |
| | | unSubmitCount: 0, |
| | | unRatifyCount: 0, |
| | | unExamineCount: 0, |
| | | }; |
| | | }, |
| | | computed: { |
| | | headers() { |
| | | return { |
| | | token: sessionStorage.getItem("token"), |
| | | }; |
| | | }, |
| | | action() { |
| | | return ""; |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getAuthorizedPerson(); |
| | | this.handleResize(); |
| | | // çå¬çªå£å¤§å°æ¹åäºä»¶ |
| | | window.addEventListener("resize", this.handleResize); |
| | | }, |
| | | beforeDestroy() { |
| | | if (this.time != null) { |
| | | clearInterval(this.time); |
| | | this.time = null; |
| | | } |
| | | this.progressData = { |
| | | hasProgress: false, |
| | | hasNum: 0, |
| | | hasCount: 0, |
| | | hasException: null, |
| | | surplus: 0, |
| | | }; |
| | | window.removeEventListener("resize", this.handleResize); |
| | | }, |
| | | mounted() { |
| | | this.entityCopy = this.HaveJson(this.entity); |
| | | this.getList(); |
| | | this.getReportCountInfo(); |
| | | }, |
| | | watch: { |
| | | batchUploadDia(newVal) { |
| | | if (!newVal) { |
| | | this.$refs.upload.clearFiles(); |
| | | this.fileList = []; |
| | | } |
| | | }, |
| | | progressData(newVal) { |
| | | if (newVal && newVal.hasNum == 100) { |
| | | clearInterval(this.time); |
| | | this.$message.success("æ¥å审æ¹å®æ"); |
| | | this.isSuccess = true; |
| | | this.mutiList = []; |
| | | this.refresh(); |
| | | } else if ( |
| | | newVal && |
| | | newVal.hasException != null && |
| | | newVal.hasException != "" |
| | | ) { |
| | | clearInterval(this.time); |
| | | } |
| | | }, |
| | | oneClickApprovalDialog(newVal) { |
| | | if (!newVal) { |
| | | this.isSuccess = false; |
| | | this.progressData = { |
| | | hasProgress: false, |
| | | hasNum: 0, |
| | | hasCount: 0, |
| | | hasException: null, |
| | | surplus: 0, |
| | | }; |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | // è¿ååé¡µå¼ |
| | | pagination({ page, limit }) { |
| | | this.page.current = page; |
| | | this.page.size = limit; |
| | | this.getList(); |
| | | }, |
| | | getList() { |
| | | this.tableLoading = true; |
| | | if (!this.entity.createTimeRange) { |
| | | this.entity.createTimeRange = []; |
| | | } |
| | | const data = { ...this.page, ...this.entity }; |
| | | pageInsReport(data) |
| | | .then((res) => { |
| | | this.tableData = res.data.records; |
| | | this.page.total = res.data.total; |
| | | this.tableLoading = false; |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | this.tableLoading = false; |
| | | }); |
| | | }, |
| | | // æ¤å å¼¹æ¡ |
| | | withdraw(row) { |
| | | getLaboratoryByReportId(row.id).then((res) => { |
| | | this.laboratorys = res.data; |
| | | this.reportId = row.id; |
| | | this.withdrawDialogVisible = true; |
| | | }); |
| | | }, |
| | | withdrawOperation() { |
| | | if (this.laboratory.length == 0) { |
| | | this.$message.error("è¯·éæ©éè¦æ¤åçè¯éªå®¤"); |
| | | return; |
| | | } |
| | | let data = { |
| | | laboratory: JSON.stringify(this.laboratory), |
| | | id: this.reportId, |
| | | }; |
| | | withdraw(data).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message.success("æ¤åæå"); |
| | | this.withdrawDialogVisible = false; |
| | | this.refresh(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | handleCommand(command) { |
| | | switch (command) { |
| | | case "batchDownload": |
| | | //æ¹éä¸è½½ |
| | | this.handleDowns(); |
| | | break; |
| | | case "batchUpload": |
| | | //æ¹éä¸ä¼ |
| | | this.openBatchUploadDia(); |
| | | break; |
| | | case "oneClickApproval": |
| | | //ä¸é®å®¡æ¹ |
| | | this.oneClickApproval(); |
| | | break; |
| | | case "approvalConfig": |
| | | //审æ¹ç¾åé
ç½® |
| | | this.openApprovalConfig(); |
| | | break; |
| | | } |
| | | }, |
| | | //ç¡®è®¤æ´æ°å®¡æ¹ç¾åé
ç½® |
| | | confirmApprovalConfig() { |
| | | let data = []; |
| | | if (this.approvalConfigListTX.id) { |
| | | data.push(this.approvalConfigListTX); |
| | | } |
| | | if (this.approvalConfigListDL.id) { |
| | | data.push(this.approvalConfigListDL); |
| | | } |
| | | updateApproveConfig({ configList: data }) |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message.success("æ´æ°æå"); |
| | | this.approvalConfigDialog = false; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | //è·å人åä¿¡æ¯ |
| | | getAuthorizedPerson() { |
| | | getUserList() |
| | | .then((res) => { |
| | | this.personList = res.data; |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | //æå¼å®¡æ¹ç¾åé
ç½®å¼¹æ¡ |
| | | openApprovalConfig() { |
| | | getApproveConfigList() |
| | | .then((res) => { |
| | | if (res.code !== 201) { |
| | | res.data.forEach((ele) => { |
| | | if (ele.laboratory == "é信产åå®éªå®¤") { |
| | | this.approvalConfigListTX = { ...ele }; |
| | | } |
| | | if (ele.laboratory == "çµå产åå®éªå®¤") { |
| | | this.approvalConfigListDL = { ...ele }; |
| | | } |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | this.$nextTick(() => { |
| | | this.approvalConfigDialog = true; |
| | | }); |
| | | }, |
| | | //ç¡®è®¤å®¡æ¹ |
| | | confirmApproval() {}, |
| | | //ä¸é®å®¡æ¹æé® |
| | | oneClickApproval() { |
| | | if (this.mutiList.length == 0) { |
| | | this.$message.error("è¯·éæ©è¦å®¡æ¹çæ¥å"); |
| | | return; |
| | | } |
| | | //æ§è¡å®¡æ¹ |
| | | if (!this.progressData.hasProgress) { |
| | | //æªå®¡æ¹çæ¥å |
| | | let unApprovalList = this.mutiList.filter( |
| | | (ele) => ele.isExamine == -9 || ele.isRatify == -9 |
| | | ); |
| | | let entity = this.entity; |
| | | //æ ¹æ®æ¥è¯¢æ¡ä»¶è¿æ»¤å·²éæ©çæ°æ® |
| | | let ids = unApprovalList |
| | | .filter((f) => |
| | | entity.isExamine != null && entity.isExamine !== "" |
| | | ? f.isExamine === entity.isExamine |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.isRatify != null && entity.isRatify !== "" |
| | | ? f.isRatify === entity.isRatify |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.isUpload != null && entity.isUpload !== "" |
| | | ? f.isUpload === entity.isUpload |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.code != null && entity.code !== "" |
| | | ? f.code.indexOf(entity.code) >= 0 |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.state != null && entity.state !== "" |
| | | ? f.state === entity.state |
| | | : true |
| | | ) |
| | | .map((ele) => ele.id); |
| | | batchApprovalReport({ ids: ids }) |
| | | .then((res) => { |
| | | if (res.code != 201) { |
| | | //æ¥è¯¢å®¡æ¹è¿åº¦ |
| | | this.time = setInterval(() => { |
| | | this.getProgress(); |
| | | }, 500); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | clearInterval(this.time); |
| | | }); |
| | | } |
| | | // this.getProgress(); |
| | | this.$nextTick(() => { |
| | | this.oneClickApprovalDialog = true; |
| | | }); |
| | | }, |
| | | getProgress() { |
| | | getBatchApprovalProgress().then((res) => { |
| | | this.progressData = res.data; |
| | | }); |
| | | }, |
| | | // å®ä¹ä¸ä¸ªå½æ°æ¥å¤çè§å£å®½åº¦åå |
| | | handleResize() { |
| | | //è§å£å®½åº¦ |
| | | let windowWidth = window.innerWidth; |
| | | //åå»å·¦è¾¹èåæ å®½åº¦92ï¼é¡µè¾¹è·40,å³è¾¹çæä½æé®å®½åº¦viewportWidth*33.33333% |
| | | let viewportWidth = windowWidth - 92 - 40; |
| | | //æç´¢è¡¨åæå¤§å®½åº¦ |
| | | let formMaxWidth = viewportWidth - viewportWidth * 0.3333333; |
| | | //å个æç´¢æ¡å®½åº¦ä¸º230 |
| | | this.maxNum = formMaxWidth / 230; |
| | | }, |
| | | //æ¹éä¸ä¼ æ¥å |
| | | openBatchUploadDia() { |
| | | this.batchUploadDia = true; |
| | | }, |
| | | // æ¥çæ¥å |
| | | viewIssued(row) { |
| | | this.currentInfo = row; |
| | | console.log(`output->row`, row); |
| | | let fileName = row.urlS === null || row.urlS === "" ? row.url : row.urlS; |
| | | let fileType = "docx"; |
| | | if (row.tempUrlPdf != null || row.tempUrlPdf === "") { |
| | | fileName = row.tempUrlPdf; |
| | | fileType = "pdf"; |
| | | } |
| | | fileName = fileName.replace("/word/", ""); |
| | | const userName = JSON.parse(localStorage.getItem("user")).name; |
| | | this.option = { |
| | | url: this.javaApi + "/word/" + fileName, |
| | | isEdit: false, |
| | | fileType: fileType, |
| | | title: fileName, |
| | | lang: "zh-CN", |
| | | isPrint: false, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | editUrl: |
| | | this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName, |
| | | }; |
| | | console.log(this.javaApi + "/word/" + fileName); |
| | | this.viewIssuedVisible = true; |
| | | }, |
| | | handleChange(arr) { |
| | | this.mutiList = arr; |
| | | }, |
| | | handleDowns() { |
| | | if (this.mutiList.length == 0) { |
| | | this.$message.error("è¯·éæ©æ¥å"); |
| | | return; |
| | | } |
| | | let entity = this.entity; |
| | | //æ ¹æ®æ¥è¯¢æ¡ä»¶è¿æ»¤å·²éæ©çæ°æ® |
| | | let str = this.mutiList |
| | | .filter((f) => |
| | | entity.isExamine != null && entity.isExamine !== "" |
| | | ? f.isExamine === entity.isExamine |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.isRatify != null && entity.isRatify !== "" |
| | | ? f.isRatify === entity.isRatify |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.isUpload != null && entity.isUpload !== "" |
| | | ? f.isUpload === entity.isUpload |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.code != null && entity.code !== "" |
| | | ? f.code.indexOf(entity.code) >= 0 |
| | | : true |
| | | ) |
| | | .filter((f) => |
| | | entity.state != null && entity.state !== "" |
| | | ? f.state === entity.state |
| | | : true |
| | | ) |
| | | .map((m) => m.id) |
| | | .join(","); |
| | | if (str === "" || str == null) { |
| | | this.$message.error("没æç¬¦åæ¡ä»¶çæ°æ®!"); |
| | | return; |
| | | } |
| | | this.outLoading = true; |
| | | downAll({ ids: str }).then((res) => { |
| | | this.outLoading = false; |
| | | this.$message.success("å¯¼åºæå"); |
| | | // const blob = new Blob([res],{ type: 'application/octet-stream' }); |
| | | // const url = URL.createObjectURL(blob); |
| | | // const link = document.createElement('a'); |
| | | // link.href = url; |
| | | // link.download = 'æ¥å.zip'; |
| | | // link.click(); |
| | | const link = document.createElement("a"); |
| | | link.href = this.javaApi + res.message; |
| | | link.target = "_blank"; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | //ä¸è½½å®æï¼éç½®è¡¨æ ¼ |
| | | this.$nextTick(() => { |
| | | this.refresh(); |
| | | }); |
| | | }); |
| | | }, |
| | | uploadExceed(file, fileList) { |
| | | this.$message.error("åæ¶ä¸ä¼ æä»¶æ°ç®æå¤§ä¸º100ï¼è¯·éè¯"); |
| | | }, |
| | | submitUpload() { |
| | | this.$refs.upload.submit(); |
| | | }, |
| | | beforeUpload(file) { |
| | | const docxType = [ |
| | | "application/vnd.openxmlformats-officedocument.wordprocessingml.document", |
| | | "application/msword", |
| | | ]; |
| | | if (!docxType.includes(file.type)) { |
| | | this.$message.error("åªè½ä¸ä¼ ç±»å为.doc/.docxçæä»¶"); |
| | | return false; |
| | | } |
| | | const maxSize = 10 * 1024 * 1024; //å个æä»¶æå¤§ä¸ä¼ 大å°10MB |
| | | if (file.size > maxSize) { |
| | | this.$message.error("æä»¶" + file.name + "大å°è¶
è¿10MB"); |
| | | return false; |
| | | } |
| | | return true; |
| | | // const isZip = file.type === 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' || file.name.endsWith('.zip'); |
| | | // if (!isZip) { |
| | | // this.$message.error('ä¸ä¼ æä»¶åªè½æ¯ ZIP æ ¼å¼!'); |
| | | // } |
| | | // if(isZip){ |
| | | // this.inLoading = true; |
| | | // } |
| | | // return isZip; |
| | | }, |
| | | handleSuccess(response) { |
| | | this.inLoading = false; |
| | | if (response.code == 200) { |
| | | this.$message.success("导å
¥æå"); |
| | | this.refreshTable(); |
| | | this.$refs.upload.clearFiles(); |
| | | this.fileList = []; |
| | | } else { |
| | | this.$message.error(response.message); |
| | | } |
| | | }, |
| | | onError(err, file, fileList, type) { |
| | | this.$message.error("ä¸ä¼ 失败"); |
| | | this.$refs.upload.clearFiles(); |
| | | this.fileList = []; |
| | | }, |
| | | refreshTable(e) { |
| | | if (!this.entity.createTimeRange) { |
| | | this.entity.createTimeRange = []; |
| | | } |
| | | this.getList(); |
| | | this.getReportCountInfo(); |
| | | }, |
| | | getReportCountInfo() { |
| | | if (!this.entity.createTimeRange) { |
| | | this.entity.createTimeRange = []; |
| | | } |
| | | console.log("entity", this.entity); |
| | | getReportCountInfo(this.entity) |
| | | .then((res) => { |
| | | this.unSubmitCount = res.data.unSubmitCount; |
| | | this.unRatifyCount = res.data.unRatifyCount; |
| | | this.unExamineCount = res.data.unExamineCount; |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | refresh() { |
| | | this.entity = this.HaveJson(this.entityCopy); |
| | | this.upIndex++; |
| | | this.mutiList = []; |
| | | this.getReportCountInfo(); |
| | | }, |
| | | async handleWeave(row) { |
| | | let fileName = row.urlS === null || row.urlS === "" ? row.url : row.urlS; |
| | | fileName = fileName.replace("/word/", ""); |
| | | const userName = this.$store.state.user.name; |
| | | //åèvabOnlyOfficeç»ä»¶åæ°é
ç½® |
| | | const { href } = this.$router.resolve({ |
| | | path: `/wordEdit`, |
| | | query: { |
| | | url: this.javaApi + "/word/" + fileName, |
| | | isEdit: true, |
| | | fileType: "docx", |
| | | title: fileName, |
| | | lang: "zh-CN", |
| | | isPrint: true, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | editUrl: |
| | | this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName, |
| | | }, |
| | | }); |
| | | window.open(href, "_blank"); |
| | | }, |
| | | confirmClaim() { |
| | | // console.log(this.$refs.Word.getValue()) |
| | | }, |
| | | async selectAllByOne(row) { |
| | | const userName = JSON.parse(localStorage.getItem("user")).name; |
| | | //åèvabOnlyOfficeç»ä»¶åæ°é
ç½® |
| | | const { href } = this.$router.resolve({ |
| | | path: `/wordEdit`, |
| | | query: { |
| | | url: this.javaApi + "/word/" + row.entrustCode + ".docx", |
| | | isEdit: "false", |
| | | fileType: "docx", |
| | | title: row.entrustCode + ".docx", |
| | | lang: "zh-CN", |
| | | isPrint: true, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | }, |
| | | }); |
| | | window.open(href, "_blank"); |
| | | console.log(`output->row`, row); |
| | | }, |
| | | download(row) { |
| | | getReportInfo({ id: row.id, type: 1,suffix:'.docx' }).then((response) => { |
| | | if (response.data && response.data.contentType) { |
| | | downLoad({ id: row.id, type: 1, code: row.code,suffix: '.docx' }) |
| | | .then((res) => { |
| | | // è·åæä»¶å |
| | | const blob = new Blob([res], { type: response.data.contentType }); |
| | | const url = URL.createObjectURL(blob); |
| | | let link = document.createElement("a"); |
| | | link.href = url; |
| | | link.download = row.code; |
| | | document.body.appendChild(link); |
| | | link.click(); |
| | | document.body.removeChild(link); |
| | | URL.revokeObjectURL(url); |
| | | }) |
| | | .catch((error) => { |
| | | this.$message.error(error); |
| | | }); |
| | | } else { |
| | | this.$message.error("æªæ¾å°æä»¶"); |
| | | } |
| | | }); |
| | | }, |
| | | // è¿åæä½ |
| | | handleRestore(row) { |
| | | this.$confirm("æ¯å¦è¿åå½åæ¥å?", "è¿å", { |
| | | confirmButtonText: "è¿å", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | upReportUrl({ id: row.id,type:1 }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æä½æå"); |
| | | this.refreshTable("page"); |
| | | } |
| | | }); |
| | | }) |
| | | .catch({}()); |
| | | }, |
| | | handleIssued(row) { |
| | | this.currentInfo = row; |
| | | let fileName = row.urlS === null || row.urlS === "" ? row.url : row.urlS; |
| | | fileName = fileName.replace("/word/", ""); |
| | | const userName = JSON.parse(localStorage.getItem("user")).name; |
| | | this.option = { |
| | | url: this.javaApi + "/word/" + fileName, |
| | | isEdit: false, |
| | | fileType: "docx", |
| | | title: fileName, |
| | | lang: "zh-CN", |
| | | isPrint: false, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | editUrl: |
| | | this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName, |
| | | }; |
| | | this.issuedVisible = true; |
| | | }, |
| | | // å®¡æ ¸éè¿ |
| | | subIssued() { |
| | | this.loadingIssued = true; |
| | | examineReport({ id: this.currentInfo.id, isExamine: 1 }) |
| | | .then((res) => { |
| | | this.loadingIssued = false; |
| | | if (res.code === 201) { |
| | | return; |
| | | } |
| | | this.$message.success("æäº¤æå"); |
| | | this.refreshTable("page"); |
| | | this.currentInfo = null; |
| | | this.issuedVisible = false; |
| | | }) |
| | | .catch((e) => { |
| | | this.$message.error("æäº¤å¤±è´¥"); |
| | | this.loadingIssued = false; |
| | | }); |
| | | }, |
| | | handleApprove(row) { |
| | | this.currentInfo = row; |
| | | let fileName = row.urlS === null || row.urlS === "" ? row.url : row.urlS; |
| | | fileName = fileName.replace("/word/", ""); |
| | | const userName = JSON.parse(localStorage.getItem("user")).name; |
| | | this.option = { |
| | | url: this.javaApi + "/word/" + fileName, |
| | | isEdit: false, |
| | | fileType: "docx", |
| | | title: fileName, |
| | | lang: "zh-CN", |
| | | isPrint: false, |
| | | user_id: 1, |
| | | user_name: userName, |
| | | editUrl: |
| | | this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName, |
| | | }; |
| | | this.approveVisible = true; |
| | | }, |
| | | // æ¹åéè¿ |
| | | subApprove() { |
| | | this.loadingApprove = true; |
| | | ratifyReport({ id: this.currentInfo.id, isRatify: 1 }).then((res) => { |
| | | this.loadingApprove = false; |
| | | if (res.code == 201) { |
| | | this.$message.error("æ¹å失败"); |
| | | return; |
| | | } |
| | | this.$message.success("å·²æ¹å"); |
| | | this.refreshTable("page"); |
| | | this.currentInfo = null; |
| | | this.approveVisible = false; |
| | | }); |
| | | }, |
| | | // æäº¤æä½ |
| | | handleSubmit(row) { |
| | | this.$confirm("æ¯å¦æäº¤å½åæ¥å?", "æäº¤", { |
| | | confirmButtonText: "æäº¤", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | writeReport({ id: row.id }) |
| | | .then((res) => { |
| | | if (res.code === 201) { |
| | | return; |
| | | } |
| | | this.$message.success("æäº¤æå"); |
| | | this.refreshTable("page"); |
| | | }) |
| | | .catch((e) => { |
| | | this.$message.error("æäº¤å¤±è´¥"); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // å®¡æ ¸ä¸éè¿åå æäº¤ |
| | | handleIssuedReason() { |
| | | if (!this.reason) { |
| | | return this.$message.error("请è¾å
¥åå "); |
| | | } |
| | | this.loadingIssuedReason = true; |
| | | examineReport({ |
| | | id: this.currentInfo.id, |
| | | isExamine: 0, |
| | | examineTell: this.reason, |
| | | }) |
| | | .then((res) => { |
| | | this.loadingIssuedReason = false; |
| | | if (res.code === 201) { |
| | | return; |
| | | } |
| | | this.$message.success("æä½æå"); |
| | | this.refreshTable("page"); |
| | | this.currentInfo = null; |
| | | this.reason = ""; |
| | | this.issuedVisible = false; |
| | | this.issuedReasonVisible = false; |
| | | }) |
| | | .catch((e) => { |
| | | this.$message.error("æä½å¤±è´¥"); |
| | | this.loadingIssuedReason = false; |
| | | }); |
| | | }, |
| | | // 䏿¹ååå æäº¤ |
| | | handleApproveReason() { |
| | | if (!this.reason) { |
| | | return this.$message.error("请è¾å
¥åå "); |
| | | } |
| | | this.loadingApproveReason = true; |
| | | examineReport({ |
| | | id: this.currentInfo.id, |
| | | isRatify: 0, |
| | | ratifyTell: this.reason, |
| | | }) |
| | | .then((res) => { |
| | | this.loadingApproveReason = false; |
| | | if (res.code === 201) { |
| | | return; |
| | | } |
| | | this.$message.success("æä½æå"); |
| | | this.refreshTable("page"); |
| | | this.currentInfo = null; |
| | | this.reason = ""; |
| | | this.issuedVisible = false; |
| | | this.issuedReasonVisible = false; |
| | | }) |
| | | .catch((e) => { |
| | | this.$message.error("æä½å¤±è´¥"); |
| | | this.loadingIssuedReason = false; |
| | | }); |
| | | }, |
| | | handleClose() { |
| | | this.withdrawDialogVisible = false; |
| | | this.laboratory = []; |
| | | }, |
| | | getStyle() { |
| | | return "height: calc(100% - " + (this.more ? "94" : "44") + "px)"; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <!--onlyoffice ç¼è¾å¨--> |
| | | <template> |
| | | <div id="vabOnlyOffice"></div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "VabOnlyOffice", |
| | | props: ['options'], |
| | | data() { |
| | | return { |
| | | doctype: "", |
| | | docEditor: null, |
| | | //åèvabOnlyOfficeç»ä»¶åæ°é
ç½® |
| | | option: { |
| | | url: "", |
| | | isEdit: false, |
| | | fileType: "", |
| | | title: "", |
| | | lang: "zh-CN", |
| | | isPrint: true, |
| | | user: {}, |
| | | editUrl: "" |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | if(this.options){ |
| | | const option = this.options |
| | | this.option.url = option.url |
| | | this.option.isEdit = option.isEdit === "true" ? true : false |
| | | this.option.fileType = option.fileType |
| | | this.option.title = option.title |
| | | this.option.lang = option.lang |
| | | this.option.isPrint = option.isPrint |
| | | this.option.user.id = option.user_id |
| | | this.option.user.name = option.user_name |
| | | this.option.editUrl = option.editUrl |
| | | }else{ |
| | | const option = this.$route.query |
| | | this.option.url = option.url |
| | | this.option.isEdit = option.isEdit === "true" ? true : false |
| | | this.option.fileType = option.fileType |
| | | this.option.title = option.title |
| | | this.option.lang = option.lang |
| | | this.option.isPrint = option.isPrint |
| | | this.option.user.id = option.user_id |
| | | this.option.user.name = option.user_name |
| | | this.option.editUrl = option.editUrl |
| | | } |
| | | }, |
| | | beforeDestroy() { |
| | | if (this.docEditor !== null) { |
| | | this.docEditor.destroyEditor(); |
| | | this.docEditor = null; |
| | | } |
| | | }, |
| | | watch: { |
| | | option: { |
| | | handler: function(n) { |
| | | this.setEditor(n); |
| | | this.doctype = this.getFileType(n.fileType); |
| | | }, |
| | | deep: true |
| | | } |
| | | }, |
| | | mounted() { |
| | | if (this.option.url) { |
| | | this.setEditor(this.option); |
| | | } |
| | | }, |
| | | methods: { |
| | | async setEditor(option) { |
| | | if (this.docEditor !== null) { |
| | | this.docEditor.destroyEditor(); |
| | | this.docEditor = null; |
| | | } |
| | | this.doctype = this.getFileType(option.fileType); |
| | | let config = { |
| | | document: { |
| | | //åç¼ |
| | | fileType: option.fileType, |
| | | key: option.key || "", |
| | | title: option.title, |
| | | permissions: { |
| | | edit: option.isEdit, //æ¯å¦å¯ä»¥ç¼è¾: åªè½æ¥çï¼ä¼ false |
| | | print: option.isPrint, |
| | | download: false |
| | | // "fillForms": true,//æ¯å¦å¯ä»¥å¡«åè¡¨æ ¼ï¼å¦æå°modeåæ°è®¾ç½®ä¸ºeditï¼åå¡«å表åä»
å¯¹ææ¡£ç¼è¾å¨å¯ç¨ã é»è®¤å¼ä¸editæreviewåæ°çå¼ä¸è´ã |
| | | // "review": true //è·è¸ªåå |
| | | }, |
| | | url: option.url |
| | | }, |
| | | documentType: this.doctype, |
| | | editorConfig: { |
| | | callbackUrl: option.editUrl, //"ç¼è¾wordåä¿åæ¶åè°çå°åï¼è¿ä¸ªapiéè¦èªå·±åäºï¼å°ç¼è¾åçæä»¶éè¿è¿ä¸ªapiä¿åå°èªå·±æ³è¦çä½ç½® |
| | | lang: option.lang, //è¯è¨è®¾ç½® |
| | | //å®å¶ |
| | | customization: { |
| | | autosave: true, //æ¯å¦èªå¨ä¿å |
| | | chat: true, |
| | | comments: false, |
| | | help: false, |
| | | "hideRightMenu": false,//å®ä¹å¨ç¬¬ä¸æ¬¡å è½½æ¶æ¯æ¾ç¤ºè¿æ¯éèå³ä¾§èåã é»è®¤å¼ä¸ºfalse |
| | | //æ¯å¦æ¾ç¤ºæä»¶ |
| | | plugins: false |
| | | }, |
| | | user: { |
| | | id: option.user.id, |
| | | name: option.user.name |
| | | }, |
| | | mode: option.model ? option.model : "edit" |
| | | }, |
| | | width: "100%", |
| | | height: "100%", |
| | | token: option.token || "" |
| | | }; |
| | | |
| | | // eslint-disable-next-line no-undef,no-unused-vars |
| | | this.docEditor = new DocsAPI.DocEditor("vabOnlyOffice", config); |
| | | }, |
| | | getFileType(fileType) { |
| | | let docType = ""; |
| | | let fileTypesDoc = [ |
| | | "doc", |
| | | "docm", |
| | | "docx", |
| | | "dot", |
| | | "dotm", |
| | | "dotx", |
| | | "epub", |
| | | "fodt", |
| | | "htm", |
| | | "html", |
| | | "mht", |
| | | "odt", |
| | | "ott", |
| | | "pdf", |
| | | "rtf", |
| | | "txt", |
| | | "djvu", |
| | | "xps" |
| | | ]; |
| | | let fileTypesCsv = [ |
| | | "csv", |
| | | "fods", |
| | | "ods", |
| | | "ots", |
| | | "xls", |
| | | "xlsm", |
| | | "xlsx", |
| | | "xlt", |
| | | "xltm", |
| | | "xltx" |
| | | ]; |
| | | let fileTypesPPt = [ |
| | | "fodp", |
| | | "odp", |
| | | "otp", |
| | | "pot", |
| | | "potm", |
| | | "potx", |
| | | "pps", |
| | | "ppsm", |
| | | "ppsx", |
| | | "ppt", |
| | | "pptm", |
| | | "pptx" |
| | | ]; |
| | | if (fileTypesDoc.includes(fileType)) { |
| | | docType = "text"; |
| | | } |
| | | if (fileTypesCsv.includes(fileType)) { |
| | | docType = "spreadsheet"; |
| | | } |
| | | if (fileTypesPPt.includes(fileType)) { |
| | | docType = "presentation"; |
| | | } |
| | | return docType; |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | html, |
| | | body { |
| | | height: 100%; |
| | | } |
| | | #app { |
| | | font-family: Avenir, Helvetica, Arial, sans-serif; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | | text-align: center; |
| | | color: #2c3e50; |
| | | height: 100%; |
| | | } |
| | | .qualityManual-container { |
| | | padding: 0 !important; |
| | | height: 100%; |
| | | } |
| | | .qualityManual-container-office { |
| | | width: 100%; |
| | | height: calc(100% - 55px); |
| | | } |
| | | </style> |
| | | |