Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev
已添加20个文件
已重命名1个文件
已修改38个文件
| | |
| | | import request from '@/utils/request' |
| | | import request from "@/utils/request"; |
| | | |
| | | // æå¡åä¾åºåéè´ |
| | | export function procurementSuppliesList(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesList/procurementSuppliesList', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesList/procurementSuppliesList", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | export function deleteProcurementSuppliesList(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesList/deleteProcurementSuppliesList', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesList/deleteProcurementSuppliesList", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | export function exportProcurementSuppliesList(query) { |
| | |
| | | |
| | | export function addProcurementSuppliesList(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesList/addProcurementSuppliesList', |
| | | method: 'post', |
| | | url: "/procurementSuppliesList/addProcurementSuppliesList", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | export function selectEnumByCategory(query) { |
| | | return request({ |
| | | url: '/enum/selectEnumByCategory', |
| | | method: 'post', |
| | | url: "/enum/selectEnumByCategory", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | export function updateProcurementSuppliesList(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesList/updateProcurementSuppliesList', |
| | | method: 'post', |
| | | url: "/procurementSuppliesList/updateProcurementSuppliesList", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // æå¡åä¾åºåéè´ |
| | | export function selectSupplierManagementAll(query) { |
| | | return request({ |
| | | url: '/supplierManagement/selectSupplierManagementAll', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/supplierManagement/selectSupplierManagementAll", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | export function addProcurementSuppliesExpends(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesExpends/addProcurementSuppliesExpends', |
| | | method: 'post', |
| | | url: "/procurementSuppliesExpends/addProcurementSuppliesExpends", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | export function deleteProcurementSuppliesExpends(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesExpends/deleteProcurementSuppliesExpends', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesExpends/deleteProcurementSuppliesExpends", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | export function procurementSuppliesExpendlist(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesExpends/procurementSuppliesExpendlist/', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesExpends/procurementSuppliesExpendlist", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | export function exportProcurementSuppliesStoreExcel(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesStore/exportExcel', |
| | | url: "/procurementSuppliesStore/exportExcel", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢èç¹ |
| | | export function addSuppliersDirectoryContents(query) { |
| | | return request({ |
| | | url: '/suppliersDirectoryContents/addSuppliersDirectoryContents', |
| | | method: 'post', |
| | | url: "/suppliersDirectoryContents/addSuppliersDirectoryContents", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // ç¼è¾èç¹ |
| | | export function updateSuppliersDirectoryContents(query) { |
| | | return request({ |
| | | url: '/suppliersDirectoryContents/updateSuppliersDirectoryContents', |
| | | method: 'post', |
| | | url: "/suppliersDirectoryContents/updateSuppliersDirectoryContents", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // å é¤èç¹ |
| | | export function deleteSuppliersDirectoryContentsById(query) { |
| | | return request({ |
| | | url: '/suppliersDirectoryContents/deleteSuppliersDirectoryContentsById', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/suppliersDirectoryContents/deleteSuppliersDirectoryContentsById", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // éè´ç©èµç®å½å é¤ |
| | | export function deleteProcurementSuppliesContentById(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesContents/deleteProcurementSuppliesContentById', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesContents/deleteProcurementSuppliesContentById", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ¥è¯¢ææèç¹ |
| | | export function getSuppliersDirectoryContentsNodeNames(query) { |
| | | return request({ |
| | | url: '/suppliersDirectoryContents/getSuppliersDirectoryContentsNodeNames', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/suppliersDirectoryContents/getSuppliersDirectoryContentsNodeNames", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // éè´ç©èµç®å½è·åèç¹åç§° |
| | | export function getProcurementSuppliesContentsNodeNames(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesContents/getNodeNames', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesContents/getNodeNames", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //è·åç¨æ·å表 |
| | |
| | | // èæå
¥åºä¿®æ¹ |
| | | export function updateStore(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesStore/updateStore', |
| | | method: 'post', |
| | | url: "/procurementSuppliesStore/updateStore", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // èæå
¥åºæ°å¢ |
| | | export function addStore(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesStore/addStore', |
| | | method: 'post', |
| | | url: "/procurementSuppliesStore/addStore", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | // æ ¹æ®idæ¥è¯¢èæå
¥åº |
| | |
| | | // èæå
¥åºå é¤ |
| | | export function deleteStore(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesStore/deleteStore', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/procurementSuppliesStore/deleteStore", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // éè´ç©èµç®å½æ°å¢ |
| | | export function addProcurementSuppliesContents(query) { |
| | | return request({ |
| | | url: '/procurementSuppliesContents/addProcurementSuppliesContents', |
| | | method: 'post', |
| | | url: "/procurementSuppliesContents/addProcurementSuppliesContents", |
| | | method: "post", |
| | | data: query, |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | |
| | |
| | | import request from '@/utils/request' |
| | | import request from "@/utils/request"; |
| | | |
| | | // å页æ¥è¯¢ |
| | | // ä¾åºæ |
| | | export function suppliersDirectoryContentsListing(query) { |
| | | return request({ |
| | | url: "/suppliersDirectoryContents/suppliersDirectoryContentsListing", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // ä¾åºåç®å½è¯¦æ
|
| | | export function selectSuppliersDirectoryContentsById(query) { |
| | | return request({ |
| | | url: "/suppliersDirectoryContents/selectSuppliersDirectoryContentsById", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢èç¹ |
| | | export function addSuppliersDirectoryContents(data) { |
| | | return request({ |
| | | url: "/suppliersDirectoryContents/addSuppliersDirectoryContents", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ç¼è¾èç¹ |
| | | export function updateSuppliersDirectoryContents(data) { |
| | | return request({ |
| | | url: "/suppliersDirectoryContents/updateSuppliersDirectoryContents", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | //å é¤èç¹ |
| | | export function deleteSuppliersDirectoryContentsById(query) { |
| | | return request({ |
| | | url: "/suppliersDirectoryContents/deleteSuppliersDirectoryContentsById", |
| | | method: "delete", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // æ¥è¯¢ææèç¹ |
| | | export function getSuppliersDirectoryContentsNodeNames(query) { |
| | | return request({ |
| | | url: "/suppliersDirectoryContents/getSuppliersDirectoryContentsNodeNames", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // å页æ¥è¯¢åæ ¼ä¾æ¹å |
| | | export function selectQualifiedSupplierManagementPage(query) { |
| | | return request({ |
| | | url: '/supplierManagement/selectQualifiedSupplierManagementPage', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // ç¼è¾ä¾åºå |
| | | export function updateSupplierManagement(query) { |
| | | return request({ |
| | | url: '/supplierManagement/updateSupplierManagement', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // æ°å¢ä¾åºå |
| | | export function addSupplierManagement(query) { |
| | | return request({ |
| | | url: '/supplierManagement/addSupplierManagement', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // 导åºä¾åºå |
| | | export function exportSupplierManagement(query) { |
| | | return request({ |
| | | url: "/supplierManagement/exportSupplierManagement", |
| | | url: "/supplierManagement/selectQualifiedSupplierManagementPage", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | |
| | | // å é¤ä¾åºå |
| | | export function delSupplierManagement(query) { |
| | | return request({ |
| | | url: '/supplierManagement/delSupplierManagement', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | url: "/supplierManagement/delSupplierManagement/" + query, |
| | | method: "delete", |
| | | // params: query, |
| | | }); |
| | | } |
| | | |
| | | // 导åºä¾åºå |
| | | export function exportSupplierManagement(query) { |
| | | return request({ |
| | | url: "/supplierManagement/exportSupplierManagement/" + query, |
| | | method: "get", |
| | | responseType: "blob", |
| | | }); |
| | | } |
| | | |
| | | // æ°å¢ä¾åºå |
| | | export function addSupplierManagement(data) { |
| | | return request({ |
| | | url: "/supplierManagement/addSupplierManagement", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | // ç¼è¾ä¾åºå |
| | | export function updateSupplierManagement(data) { |
| | | return request({ |
| | | url: "/supplierManagement/updateSupplierManagement", |
| | | method: "post", |
| | | data: data, |
| | | }); |
| | | } |
| | | |
| | | |
| | | // å页æ¥è¯¢ä¾æ¹åå½ |
| | | export function selectSupplierManagementByParentId(query) { |
| | | return request({ |
| | | url: "/supplierManagement/selectSupplierManagementByParentId/" + query, |
| | | method: "get", |
| | | // params: query, |
| | | }); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-çµæºç¨³å®æ§æ¥è¯¢ |
| | | export function getLaboratoryFacilityPowerStablePage(query) { |
| | | return request({ |
| | | url: '/fePowerStable/getLaboratoryFacilityPowerStablePage', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // éè¿è®¾å¤åç±»è·å设å¤å表 |
| | | export function deviceScopeSearch(query) { |
| | | return request({ |
| | | url: '/deviceScope/search', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // è®¾å¤æ å½¢ |
| | | export function treeDevice(query) { |
| | | return request({ |
| | | url: '/deviceScope/treeDevice', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | //è·åç¨æ·å表 |
| | | export function selectUserCondition(query) { |
| | | return request({ |
| | | url: "/system/newUser/selectUserCondition", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-çµæºç¨³å®æ§æ°å¢/ä¿®æ¹ |
| | | export function addLaboratoryFacilityPowerStable(query) { |
| | | return request({ |
| | | url: '/fePowerStable/addLaboratoryFacilityPowerStable', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶-设æ½åç¯å¢æ¡ä»¶è¦æ±-çµæºç¨³å®æ§-æµå®é å é¤ |
| | | export function deleteFeMeasuredQuantity(query) { |
| | | return request({ |
| | | url: '/fePowerStable/deleteFeMeasuredQuantity', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-çµæºç¨³å®æ§å é¤ |
| | | export function deleteLaboratoryFacilityPowerStable(query) { |
| | | return request({ |
| | | url: '/fePowerStable/deleteLaboratoryFacilityPowerStable', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // çµæºç¨³å®æ§-æµå®é æ ¹æ®çµæºç¨³å®æ§æ¥è¯¢ |
| | | export function getFeMeasuredQuantityService(query) { |
| | | return request({ |
| | | url: "/fePowerStable/getFeMeasuredQuantityService", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // çµæºç¨³å®æ§-æµå®é å¯¼åº |
| | | export function exportFePowerStable(query) { |
| | | return request({ |
| | | url: "/fePowerStable/exportFePowerStable", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-é²é·æ£æµæ¥è¯¢ |
| | | export function getLightningProtectionDetection(query) { |
| | | return request({ |
| | | url: '/feLightningProtection/getLightningProtectionDetection', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-é²é·æ£æµæ°å¢/ä¿®æ¹ |
| | | export function addLightningProtectionDetection(query) { |
| | | return request({ |
| | | url: '/feLightningProtection/addLightningProtectionDetection', |
| | | method: 'post', |
| | | data: query, |
| | | headers: { |
| | | 'Content-Type': 'multipart/form-data' // å¿
须设置为 multipart |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-é²é·æ£æµå é¤ |
| | | export function deleteLightningProtectionDetection(query) { |
| | | return request({ |
| | | url: '/feLightningProtection/deleteLightningProtectionDetection', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-é²é·æ£æµå¯¼åº |
| | | export function exportOfLightningProtectionDetection(query) { |
| | | return request({ |
| | | url: "/feLightningProtection/exportOfLightningProtectionDetection", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-ç
§åº¦è®°å½è¡¨-æ£æµåºå æ¥è¯¢ |
| | | export function getFeLightningProtection(query) { |
| | | return request({ |
| | | url: '/feIllumination/getFeLightningProtection', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-ç
§åº¦è®°å½è¡¨-æ£æµåºå æ°å¢/ä¿®æ¹ |
| | | export function addFeLightningProtection(query) { |
| | | return request({ |
| | | url: '/feIllumination/addFeLightningProtection', |
| | | method: 'post', |
| | | data: query, |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-ç
§åº¦è®°å½è¡¨-æ£æµåºå å é¤ |
| | | export function deleteFeLightningProtection(query) { |
| | | return request({ |
| | | url: '/feIllumination/deleteFeLightningProtection', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // ç
§åº¦è®°å½è¡¨-æ£æµåºå æ ¹æ®ç
§åº¦è®°å½æ¥è¯¢ |
| | | export function getFeIlluminationDetectionArea(query) { |
| | | return request({ |
| | | url: '/feIllumination/getFeIlluminationDetectionArea', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // ç
§åº¦è®°å½è¡¨-æ£æµåºå å é¤ |
| | | export function deleteFeIlluminationDetectionArea(query) { |
| | | return request({ |
| | | url: '/feIllumination/deleteFeIlluminationDetectionArea', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // ç
§åº¦è®°å½è¡¨-æ£æµåºå å¯¼åº |
| | | export function exportFeIllumination(query) { |
| | | return request({ |
| | | url: "/feIllumination/exportFeIllumination", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // è¯éªåºå-æ¥è¯¢" |
| | | export function getFeTempHumDate(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/getFeTempHumDate', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // è¯éªåºå-æ°å¢/ä¿®æ¹ |
| | | export function addFeTempHumDate(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/addFeTempHumDate', |
| | | method: 'post', |
| | | data: query, |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-æ¸©æ¹¿åº¦è®°å½æ¥è¯¢ |
| | | export function getFeTempHumRecordPage(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/getFeTempHumRecordPage', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-æ¸©æ¹¿åº¦è®°å½æ°å¢/ä¿®æ¹ |
| | | export function addFeTempHumRecord(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/addFeTempHumRecord', |
| | | method: 'post', |
| | | data: query, |
| | | }) |
| | | } |
| | | |
| | | // 设æ½åç¯å¢æ¡ä»¶è¦æ±-温湿度记å½å é¤ |
| | | export function deleteFeTempHumRecord(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/deleteFeTempHumRecord', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // è¯éªåºå-å é¤ |
| | | export function deleteFeTempHumDate(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/deleteFeTempHumDate', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // // 设æ½åç¯å¢æ¡ä»¶è¦æ±-æ¸©æ¹¿åº¦è®°å½ å¯¼åº |
| | | export function exportTemperatureAndHumidityRecords(query) { |
| | | return request({ |
| | | url: "/feTempHumDate/exportTemperatureAndHumidityRecords", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 温湿度确认 |
| | | export function affirmFeTempHumDate(query) { |
| | | return request({ |
| | | url: '/feTempHumDate/affirmFeTempHumDate', |
| | | method: 'post', |
| | | data: query, |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // å®å
¨å
å¡ä¸åºå¤çå页æ¥è¯¢ |
| | | export function pageInternalWastes(query) { |
| | | return request({ |
| | | url: '/internalWastes/pageInternalWastes', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // å®å
¨å
å¡ä¸åºå¤çæ¥ç详æ
|
| | | export function getInternalWastesOne(query) { |
| | | return request({ |
| | | url: '/internalWastes/getInternalWastesOne', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // å®å
¨å
å¡ä¸åºå¤çæ°å¢ |
| | | export function addInternalWastes(query) { |
| | | return request({ |
| | | url: '/internalWastes/addInternalWastes', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // å®å
¨å
å¡ä¸åºå¤çåé¡µä¿®æ¹ |
| | | export function updateInternalWastes(query) { |
| | | return request({ |
| | | url: '/internalWastes/updateInternalWastes', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // 导åºä¸åºå¤ç |
| | | export function exportInternalWastes(query) { |
| | | return request({ |
| | | url: "/internalWastes/exportInternalWastes", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | //å®å
¨å
å¡ä¸åºå¤çå é¤ |
| | | export function removeStandardSubstance(query) { |
| | | return request({ |
| | | url: '/internalWastes/delInternalWastes', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // 夿¥äººåå页æ¥è¯¢ |
| | | export function pageForeignRegister(query) { |
| | | return request({ |
| | | url: '/foreignRegister/pageForeignRegister', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 夿¥äººåæ¥ç详æ
|
| | | export function getForeignRegisterOne(query) { |
| | | return request({ |
| | | url: '/foreignRegister/getForeignRegisterOne', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // è·åç¨æ·å表 |
| | | export function selectUserCondition(query) { |
| | | return request({ |
| | | url: "/system/newUser/selectUserCondition", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | // 夿¥äººåæ°å¢ |
| | | export function addForeignRegister(query) { |
| | | return request({ |
| | | url: '/foreignRegister/addForeignRegister', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // 夿¥äººåä¿®æ¹ |
| | | export function updateForeignRegister(query) { |
| | | return request({ |
| | | url: '/foreignRegister/updateForeignRegister', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | //夿¥äººåå é¤ |
| | | export function delForeignRegister(query) { |
| | | return request({ |
| | | url: '/foreignRegister/delForeignRegister', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // 导åºå¤æ¥äººå |
| | | export function exportForeignRegister(query) { |
| | | return request({ |
| | | url: "/foreignRegister/exportForeignRegister", |
| | | method: "get", |
| | | responseType: "blob", |
| | | params: query, |
| | | }); |
| | | } |
| | |
| | | import request from '@/utils/request' |
| | | import request from "@/utils/request"; |
| | | |
| | | export function getPageAcceptance(query) { |
| | | return request({ |
| | | url: '/feStandardSubstanceAcceptance/getPageAcceptance', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/feStandardSubstanceAcceptance/getPageAcceptance", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | |
| | | export function updateAcceptanc(query) { |
| | | return request({ |
| | | url: '/feStandardSubstanceAcceptance/updateAcceptanc', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/feStandardSubstanceAcceptance/updateAcceptanc", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // æ°å¢éªæ¶ |
| | | export function addAcceptance(query) { |
| | | return request({ |
| | | url: '/feStandardSubstanceAcceptance/addAcceptance', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/feStandardSubstanceAcceptance/addAcceptance", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | // ä¿®æ¹éªæ¶ |
| | | export function updateAcceptance(query) { |
| | | return request({ |
| | | url: '/feStandardSubstanceAcceptance/updateAcceptance', |
| | | method: 'post', |
| | | data: query |
| | | }) |
| | | url: "/feStandardSubstanceAcceptance/updateAcceptance", |
| | | method: "post", |
| | | data: query, |
| | | }); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | export function getStandardSubstanceAll(query) { |
| | | return request({ |
| | | url: '/feStandardSubstance/getStandardSubstanceAll', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/feStandardSubstance/getStandardSubstanceAll", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | // æ åç©è´¨éªæ¶æ¥ç详æ
|
| | | export function getAcceptanceDetails(query) { |
| | | return request({ |
| | | url: '/feStandardSubstanceAcceptance/getAcceptanceDetails', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | url: "/feStandardSubstanceAcceptance/getAcceptanceDetails", |
| | | method: "get", |
| | | params: query, |
| | | }); |
| | | } |
| | | // æ åç©è´¨éªæ¶å¯¼åº |
| | | export function exportFeStandardSubstanceAcceptance(query) { |
| | | return request({ |
| | | url: '/feStandardSubstanceAcceptance/exportFeStandardSubstanceAcceptance', |
| | | method: 'get', |
| | | url: "/feStandardSubstanceAcceptance/exportFeStandardSubstanceAcceptance", |
| | | method: "get", |
| | | params: query, |
| | | responseType: "blob" |
| | | }) |
| | | responseType: "blob", |
| | | }); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * @desc å é¤ |
| | | */ |
| | | export function deleteAcceptance(query) { |
| | | return request({ |
| | | url: "/feStandardSubstanceAcceptance/deleteAcceptance/" + query, |
| | | method: "delete", |
| | | // params: query, |
| | | }); |
| | | } |
| | |
| | | return request({ |
| | | url: "/qualitySupervise/exportSuperviseDetaillCorrect", |
| | | method: "get", |
| | | headers: { |
| | | responseType: "blob", |
| | | }, |
| | | params: query, |
| | | }); |
| | | } |
| | |
| | | .required-span { |
| | | color: red; |
| | | } |
| | | |
| | | .bg-1 { |
| | | width: 100%; |
| | | height: calc(100% - 50px); |
| | | overflow-y: auto; |
| | | padding: 20px 10px 10px; |
| | | background: rgb(245, 247, 251); |
| | | } |
| | |
| | | </div> |
| | | <div class="right-menu"> |
| | | <div class="avatar-wrapper"> |
| | | <img :src="avatar" class="user-avatar"> |
| | | <span class="userName">Admin</span> |
| | | <img class="logoout" src="@/assets/images/logoout.png" @click="logout" title="éåºè´¦å·" /> |
| | | <img :src="avatar" class="user-avatar" /> |
| | | <span class="userName">{{ nickName }}</span> |
| | | <img |
| | | class="logoout" |
| | | src="@/assets/images/logoout.png" |
| | | @click="logout" |
| | | title="éåºè´¦å·" |
| | | /> |
| | | </div> |
| | | <!-- <template v-if="device!=='mobile'">--> |
| | | <!-- <search id="header-search" class="right-menu-item" />--> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapGetters } from 'vuex' |
| | | import Breadcrumb from '@/components/Breadcrumb' |
| | | import TopNav from '@/components/TopNav' |
| | | import Hamburger from '@/components/Hamburger' |
| | | import Screenfull from '@/components/Screenfull' |
| | | import SizeSelect from '@/components/SizeSelect' |
| | | import Search from '@/components/HeaderSearch' |
| | | import RuoYiGit from '@/components/RuoYi/Git' |
| | | import RuoYiDoc from '@/components/RuoYi/Doc' |
| | | import { mapGetters } from "vuex"; |
| | | import Breadcrumb from "@/components/Breadcrumb"; |
| | | import TopNav from "@/components/TopNav"; |
| | | import Hamburger from "@/components/Hamburger"; |
| | | import Screenfull from "@/components/Screenfull"; |
| | | import SizeSelect from "@/components/SizeSelect"; |
| | | import Search from "@/components/HeaderSearch"; |
| | | import RuoYiGit from "@/components/RuoYi/Git"; |
| | | import RuoYiDoc from "@/components/RuoYi/Doc"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | SizeSelect, |
| | | Search, |
| | | RuoYiGit, |
| | | RuoYiDoc |
| | | RuoYiDoc, |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | 'avatar', |
| | | 'device' |
| | | ]), |
| | | ...mapGetters(["avatar", "device", "nickName"]), |
| | | setting: { |
| | | get() { |
| | | return this.$store.state.settings.showSettings |
| | | return this.$store.state.settings.showSettings; |
| | | }, |
| | | set(val) { |
| | | this.$store.dispatch('settings/changeSetting', { |
| | | key: 'showSettings', |
| | | value: val |
| | | }) |
| | | } |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "showSettings", |
| | | value: val, |
| | | }); |
| | | }, |
| | | }, |
| | | topNav: { |
| | | get() { |
| | | return this.$store.state.settings.topNav |
| | | } |
| | | } |
| | | return this.$store.state.settings.topNav; |
| | | }, |
| | | }, |
| | | }, |
| | | methods: { |
| | | async logout() { |
| | | this.$confirm('ç¡®å®æ³¨éå¹¶éåºç³»ç»åï¼', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.$store.dispatch('LogOut').then(() => { |
| | | location.href = '/index'; |
| | | this.$confirm("ç¡®å®æ³¨éå¹¶éåºç³»ç»åï¼", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }) |
| | | }).catch(() => {}); |
| | | } |
| | | } |
| | | } |
| | | .then(() => { |
| | | this.$store.dispatch("LogOut").then(() => { |
| | | location.href = "/index"; |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | |
| | | overflow: hidden; |
| | | //position: relative; |
| | | background: #fff; |
| | | box-shadow: 0 1px 4px rgba(0,21,41,.08); |
| | | box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); |
| | | position: fixed; /* å°å¤´é¨åºå® */ |
| | | top: 0; /* å¨é¡¶é¨åºå® */ |
| | | width: 100%; /* 宽度100%ï¼è¦çæ´ä¸ªè§å£ */ |
| | |
| | | |
| | | &.hover-effect { |
| | | cursor: pointer; |
| | | transition: background .3s; |
| | | transition: background 0.3s; |
| | | |
| | | &:hover { |
| | | background: rgba(0, 0, 0, .025) |
| | | background: rgba(0, 0, 0, 0.025); |
| | | } |
| | | } |
| | | } |
| | |
| | | downloadLoadingInstance.close(); |
| | | }); |
| | | }, |
| | | saveAs(text, name, opts) { |
| | | async saveAs(text, name, opts) { |
| | | if (typeof text === "string") { |
| | | // è·¯å¾ä¸è½½ |
| | | saveAs(text, name, opts); |
| | | try { |
| | | let state = /\.(jpg|jpeg|png|gif)$/i.test(text); // 夿æ¯å¦ä¸ºå¾ç |
| | | let url1 = ""; |
| | | if (state) { |
| | | url1 = Vue.prototype.javaApi + "/img/" + text; |
| | | } else { |
| | | url1 = Vue.prototype.javaApi + "/word/" + text; |
| | | } |
| | | // ä½¿ç¨ fetch è·åæä»¶ |
| | | const response = await fetch(url1); |
| | | if (!response.ok) { |
| | | throw new Error("æä»¶ä¸è½½å¤±è´¥: " + response.statusText); |
| | | } |
| | | // å°æä»¶è½¬æ¢ä¸º Blob |
| | | const blob = await response.blob(); |
| | | // ä½¿ç¨ saveAs ä¿åæä»¶ |
| | | saveAs(blob, filename); |
| | | Message.success("æ°æ®å¯¼åºæå"); |
| | | } catch (error) { |
| | | Message.error(error); |
| | | } |
| | | } else { |
| | | // æµä¸è½½ |
| | | blobToText(text) |
| | |
| | | |
| | | // å¨æè·¯ç±ï¼åºäºç¨æ·æé卿å»å è½½ |
| | | export const dynamicRoutes = [ |
| | | // { |
| | | // // åææä¸å |
| | | // path: '/materialOrder', |
| | | // component: Layout, |
| | | // hidden: true, |
| | | // permissions: ['business:order'], |
| | | // children: [ |
| | | // { |
| | | // // éææä¸å |
| | | // path: 'customsInspection', |
| | | // component: () => import('@/views/business/materialOrder/customsInspection'), |
| | | // name: 'customsInspection', |
| | | // meta: { title: 'éææä¸å', activeMenu: '/business/materialOrder' } |
| | | // } |
| | | // ] |
| | | // }, |
| | | { |
| | | // ä¸åé¡µé¢ |
| | | path: '/inspectionOrder', |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ['business:order'], |
| | | children: [ |
| | | { |
| | | // éææä¸å |
| | | path: 'addOrder', |
| | | component: () => import('@/views/business/inspectionOrder/add'), |
| | | name: 'addOrder', |
| | | meta: { title: 'æ°å¢å§æå', activeMenu: '/business/inspectionOrder' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | // ç¨æ·ç®¡ç |
| | | path: "/system/user-auth", |
| | |
| | | return new Promise((resolve, reject) => { |
| | | getInfo() |
| | | .then((res) => { |
| | | console.log("store-->",res); |
| | | const user = res.user; |
| | | let avatar = user.avatar || ""; |
| | | if (!isHttp(avatar)) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import Big from "big.js"; |
| | | |
| | | /** |
| | | * å®å
¨è®¡ç®å¨ï¼æ¯æ + - * / 忬å·ï¼ |
| | | * @param {string} expr æ°å¦è¡¨è¾¾å¼ï¼å¦ "(0.1 + 0.2) * 3" |
| | | * @returns {string} 计ç®ç»æå符串 |
| | | */ |
| | | export function bigEval(expr) { |
| | | // æ¥éª¤1ï¼è¯æ³åæ |
| | | const tokens = tokenize(expr); |
| | | // æ¥éª¤2ï¼è½¬æ¢ä¸ºéæ³¢å
°è¡¨è¾¾å¼ï¼åç¼è¡¨è¾¾å¼ï¼ |
| | | const rpn = shuntingYard(tokens); |
| | | // æ¥éª¤3ï¼æ§è¡è®¡ç® |
| | | return evaluateRPN(rpn); |
| | | } |
| | | |
| | | // è¯æ³åæå¨ |
| | | function tokenize(expr) { |
| | | const tokens = []; |
| | | let numBuffer = ""; |
| | | let prevToken = null; |
| | | |
| | | const flushNumber = () => { |
| | | if (numBuffer) { |
| | | if (numBuffer.startsWith(".")) numBuffer = "0" + numBuffer; |
| | | tokens.push({ type: "number", value: numBuffer }); |
| | | numBuffer = ""; |
| | | } |
| | | }; |
| | | |
| | | for (let i = 0; i < expr.length; i++) { |
| | | const c = expr[i]; |
| | | |
| | | if (/\d|\./.test(c)) { |
| | | numBuffer += c; |
| | | } else if ("+-*/()".includes(c)) { |
| | | flushNumber(); |
| | | |
| | | // // å¤çè´å·ï¼å½'-'åæ æ°åæåæè¿ç®ç¬¦æ¶ä¸ºè´å·ï¼ |
| | | // if (c === "-" && (!prevToken || |
| | | // (prevToken.type === "operator" && prevToken.value !== ")"))) { |
| | | // numBuffer += c; |
| | | // console.log("è¿å
¥--ã",c,tokens,prevToken); |
| | | // } else { |
| | | // } |
| | | tokens.push({ type: "operator", value: c }); |
| | | prevToken = tokens[tokens.length - 1]; |
| | | } else if (c !== " ") { |
| | | throw new Error(`éæ³å符: ${c}`); |
| | | } |
| | | } |
| | | |
| | | flushNumber(); |
| | | return tokens; |
| | | } |
| | | |
| | | // è°åº¦åºç®æ³çæéæ³¢å
°è¡¨è¾¾å¼ |
| | | function shuntingYard(tokens) { |
| | | const output = []; |
| | | const stack = []; |
| | | const precedence = { "+": 1, "-": 1, "*": 2, "/": 2 }; |
| | | |
| | | for (const token of tokens) { |
| | | if (token.type === "number") { |
| | | output.push(token.value); |
| | | } else if (token.value === "(") { |
| | | stack.push(token.value); |
| | | } else if (token.value === ")") { |
| | | while (stack.length && stack[stack.length - 1] !== "(") { |
| | | output.push(stack.pop()); |
| | | } |
| | | stack.pop(); // å¼¹åºå·¦æ¬å· |
| | | } else { |
| | | while ( |
| | | stack.length && |
| | | stack[stack.length - 1] !== "(" && |
| | | precedence[stack[stack.length - 1]] >= precedence[token.value] |
| | | ) { |
| | | output.push(stack.pop()); |
| | | } |
| | | stack.push(token.value); |
| | | } |
| | | } |
| | | |
| | | while (stack.length) output.push(stack.pop()); |
| | | return output; |
| | | } |
| | | |
| | | // æ§è¡éæ³¢å
°è¡¨è¾¾å¼è®¡ç® |
| | | function evaluateRPN(rpn) { |
| | | const stack = []; |
| | | |
| | | for (const token of rpn) { |
| | | if (/\d|\./.test(token)) { |
| | | stack.push(new Big(token)); |
| | | } else { |
| | | const b = stack.pop(); |
| | | const a = stack.pop(); |
| | | |
| | | switch (token) { |
| | | case "+": stack.push(a.plus(b)); break; |
| | | case "-": stack.push(a.minus(b)); break; |
| | | case "*": stack.push(a.times(b)); break; |
| | | case "/": |
| | | if (b.eq(0)) throw new Error("餿°ä¸è½ä¸ºé¶"); |
| | | stack.push(a.div(b)); |
| | | break; |
| | | default: throw new Error(`æªç¥è¿ç®ç¬¦: ${token}`); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return stack.pop().toString(); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="card-container" @click="handleCard"> |
| | | <div class="card-panel" :class="[isActive == index ? 'isActive' : '']"> |
| | | <el-image style="width: 80%; height: 70px" :src="javaApi + '/img/' + data.logo" fit="scale-down" /> |
| | | </div> |
| | | <div class="title"> |
| | | {{ data.supplierName }} |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | props: { |
| | | data: { |
| | | type: Object, |
| | | default: () => { }, |
| | | }, |
| | | index: { |
| | | type: Number, |
| | | default: -1, |
| | | }, |
| | | isActive: { |
| | | type: Number, |
| | | default: -1, |
| | | }, |
| | | }, |
| | | data() { |
| | | return {}; |
| | | }, |
| | | methods: { |
| | | handleCard() { |
| | | this.$emit("handleCard", this.data, this.index); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .card-container { |
| | | margin: 10px 10px 10px 0; |
| | | text-align: center; |
| | | } |
| | | |
| | | .card-panel { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | width: 90%; |
| | | height: 90px; |
| | | box-shadow: 0px 0px 20px 0px #0000001a; |
| | | cursor: pointer; |
| | | border-radius: 5px; |
| | | border: 1px solid transparent; |
| | | } |
| | | |
| | | .card-panel:hover { |
| | | border: 1px solid #409eff; |
| | | //background: #1D56C50D; |
| | | } |
| | | |
| | | .isActive { |
| | | border: 1px solid #409eff; |
| | | //background: #1D56C50D; |
| | | } |
| | | |
| | | .title { |
| | | margin-top: 15px; |
| | | margin-left: 10px; |
| | | width: 80%; |
| | | height: 30px; |
| | | font-size: 13px; |
| | | white-space: normal; |
| | | word-break: break-all; |
| | | overflow-wrap: break-word; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-row class="card-box"> |
| | | <el-col :span="4" v-for="(item, index) in cardList" :key="index"> |
| | | <CardPanel :isActive="isActive" :data="item" :index="index" @handleCard="handleCard" /> |
| | | </el-col> |
| | | </el-row> |
| | | <TableCard title="ä¾åºåä¿¡æ¯" :showForm="false" style="margin-top: 5px"> |
| | | <template v-slot:table> |
| | | <limsTable style="margin-top: 18px; padding: 0 15px" :height="'150px'" :column="columns" |
| | | :table-data="tableData"> |
| | | <div slot="action" slot-scope="scope"> |
| | | <el-button type="text" @click="showDialog(scope)">æ¥ç</el-button> |
| | | </div> |
| | | </limsTable> |
| | | </template> |
| | | </TableCard> |
| | | <Edit ref="editRef" @submit="getTableData" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import CardPanel from "./CardPanel.vue"; |
| | | import TableCard from "@/components/TableCard/index.vue"; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import Edit from "./Edit.vue"; |
| | | import { |
| | | selectSupplierManagementByParentId, |
| | | } from "@/api/cnas/resourceDemand/externalService/supplierManage/supplierManage.js"; |
| | | |
| | | export default { |
| | | components: { CardPanel, TableCard, limsTable, Edit }, |
| | | props: { |
| | | contentsId: { |
| | | type: Number, |
| | | default: 0, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | columns: [ |
| | | { |
| | | label: "ä¾åºåç¼å·", |
| | | prop: "supplierRef", |
| | | }, |
| | | { |
| | | label: "ä¾åºååç§°", |
| | | prop: "supplierName", |
| | | }, |
| | | { |
| | | label: "å°å", |
| | | prop: "adress", |
| | | }, |
| | | { |
| | | label: "è系人", |
| | | prop: "contacts", |
| | | }, |
| | | { |
| | | label: "èç³»çµè¯", |
| | | prop: "phone", |
| | | }, |
| | | { |
| | | label: "ä¼ ç", |
| | | prop: "fax", |
| | | }, |
| | | { |
| | | label: "ç½å", |
| | | prop: "website", |
| | | }, |
| | | { |
| | | label: "é®ç®±", |
| | | prop: "email", |
| | | }, |
| | | { |
| | | label: "䏿¬¡æ´æ°æ¶é´", |
| | | prop: "updateTime", |
| | | }, |
| | | { |
| | | fixed: "right", |
| | | dataType: "slot", |
| | | slot: "action", |
| | | label: "æä½", |
| | | }, |
| | | ], |
| | | cardList: [], |
| | | tableData: [], |
| | | isActive: -1, |
| | | }; |
| | | }, |
| | | watch: { |
| | | contentsId(newVal) { |
| | | if (newVal !== 0) { |
| | | this.getTableData(); |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.getTableData(this.contentsId); |
| | | }, |
| | | methods: { |
| | | // è·åè¡¨æ ¼æ°æ® |
| | | async getTableData() { |
| | | const { code, data } = await selectSupplierManagementByParentId(this.contentsId); |
| | | if (code == 200) { |
| | | this.cardList = data; |
| | | } |
| | | }, |
| | | handleCard(data, index) { |
| | | this.isActive = index; |
| | | this.tableData = [data]; |
| | | }, |
| | | showDialog(row) { |
| | | this.$refs.editRef.openDialog(row); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .card-box { |
| | | width: 100%; |
| | | padding-left: 5px; |
| | | padding-right: 5px; |
| | | height: 45vh; |
| | | overflow-y: auto; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="parent-class"> |
| | | <div style="display: flex; justify-content: flex-end; margin-right: 20px"> |
| | | <el-button type="primary" @click="addContents" size="small" icon="el-icon-plus">æ·»å åèç¹</el-button> |
| | | <el-button type="danger" @click="deletetContents" size="small" icon="el-icon-delete">å é¤åèç¹</el-button> |
| | | <el-button type="warning" @click="updateContents" size="small" icon="el-icon-edit">æ´æ°åèç¹</el-button> |
| | | </div> |
| | | <el-form label-width="100px"> |
| | | <el-form-item label="èç¹åç§°"> |
| | | <el-input v-model="form.nodeName" style="width: 200px" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="代å·"> |
| | | <el-input v-model="form.code" style="width: 200px" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <!-- æ°å¢å¼¹æ¡ --> |
| | | <el-dialog title="æ·»å èç¹" :visible.sync="dialogVisible" width="40%"> |
| | | <el-form label-width="100px" :model="addForm" ref="addForm" :rules="rules"> |
| | | <el-form-item label="ç¶èç¹åç§°"> |
| | | <el-cascader v-model="addForm.parentId" :options="treeData" |
| | | :props="{ checkStrictly: true, value: 'id', label: 'nodeName' }" clearable></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="èç¹åç§°" prop="nodeName"> |
| | | <el-input v-model="addForm.nodeName" style="width: 200px" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="代å·"> |
| | | <el-input v-model="addForm.code" style="width: 200px" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | selectSuppliersDirectoryContentsById, |
| | | addSuppliersDirectoryContents, |
| | | updateSuppliersDirectoryContents, |
| | | deleteSuppliersDirectoryContentsById, |
| | | getSuppliersDirectoryContentsNodeNames, |
| | | } from "@/api/cnas/resourceDemand/externalService/supplierManage/supplierManage.js"; |
| | | import { selectUserCondition } from "@/api/system/user"; |
| | | export default { |
| | | props: { |
| | | id: { |
| | | type: Number, |
| | | default: 0, |
| | | }, |
| | | treeData: { |
| | | type: Array, |
| | | default: () => [], |
| | | }, |
| | | from: { |
| | | type: String, |
| | | default: "" |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | nodeNames: [], |
| | | users: [], |
| | | dialogVisible: false, |
| | | form: { |
| | | nodeName: "", |
| | | code: "", |
| | | }, |
| | | addForm: { |
| | | nodeName: "", |
| | | code: "", |
| | | parentId: null, |
| | | }, |
| | | rules: { |
| | | nodeName: [ |
| | | { required: true, message: "请è¾å
¥èç¹åç§°", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | if (this.id !== 0) { |
| | | this.getContentsDetail(); |
| | | } |
| | | this.getNodeNames(); |
| | | this.getUserList(); |
| | | }, |
| | | watch: { |
| | | id(newVal, oldVal) { |
| | | if (newVal !== 0) { |
| | | console.log(newVal, oldVal); |
| | | this.getContentsDetail(); |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | // è·åç®å½è¯¦æ
|
| | | getContentsDetail() { |
| | | selectSuppliersDirectoryContentsById({ id: this.id }).then((res) => { |
| | | if (res.data == null) { |
| | | this.form = { |
| | | nodeName: "", |
| | | code: "", |
| | | }; |
| | | return; |
| | | } |
| | | this.form = res.data; |
| | | }); |
| | | }, |
| | | // æ°å»º |
| | | addContents() { |
| | | this.dialogVisible = true; |
| | | this.resetForm(); |
| | | }, |
| | | resetForm() { |
| | | this.addForm = { |
| | | nodeName: "", |
| | | code: "", |
| | | parentId: null, |
| | | }; |
| | | }, |
| | | submitForm() { |
| | | let flag = true; |
| | | this.$refs.addForm.validate((valid) => { |
| | | if (!valid) { |
| | | flag = false; |
| | | return false; |
| | | } |
| | | }); |
| | | if (this.addForm.parentId) { |
| | | this.addForm.parentId = |
| | | this.addForm.parentId[this.addForm.parentId.length - 1]; |
| | | } |
| | | if (!flag) { |
| | | return; |
| | | } |
| | | |
| | | addSuppliersDirectoryContents(this.addForm).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æ·»å æå"); |
| | | this.dialogVisible = false; |
| | | this.$emit("contentsUpdate", res.data); |
| | | this.getContentsDetail(); |
| | | } |
| | | }); |
| | | }, |
| | | // æ´æ° |
| | | updateContents() { |
| | | Object.keys(this.form).forEach((key) => { |
| | | if (key == "children") { |
| | | delete this.form[key]; |
| | | } |
| | | }); |
| | | updateSuppliersDirectoryContents(this.form).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success("æ´æ°æå"); |
| | | this.$emit("contentsUpdate", this.id); |
| | | this.dialogVisible = false; |
| | | this.getContentsDetail(); |
| | | } |
| | | }); |
| | | }, |
| | | // å é¤ |
| | | deletetContents() { |
| | | if ( |
| | | this.form.id == null || |
| | | this.form.id == "" || |
| | | this.form.id == undefined |
| | | ) { |
| | | this.$message.error("è¯·éæ©è¦å é¤çèç¹"); |
| | | return; |
| | | } |
| | | this.$confirm("æ¤æä½å°å é¤è¯¥èç¹, æ¯å¦ç»§ç»?", "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | type: "warning", |
| | | }).then(() => { |
| | | deleteSuppliersDirectoryContentsById({ id: this.form.id }).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$message.success("å 餿å"); |
| | | this.$emit("contentsUpdate", this.form.parentId, true); |
| | | this.getContentsDetail(); |
| | | } |
| | | }); |
| | | }); |
| | | }, |
| | | // è·åææç®å½èç¹ |
| | | getNodeNames() { |
| | | getSuppliersDirectoryContentsNodeNames().then((res) => { |
| | | this.nodeNames = res.data; |
| | | }); |
| | | }, |
| | | // è·åææç¨æ· |
| | | getUserList() { |
| | | selectUserCondition().then((res) => { |
| | | this.users = res.data; |
| | | }); |
| | | }, |
| | | }, |
| | | created() { }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .parent-class { |
| | | margin-top: 20px; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog title="ä¾åºå详æ
" width="40%" :visible.sync="dialogVisible"> |
| | | <el-form :model="model" label-width="auto"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¾åºå"> |
| | | <el-input v-model="model.supplierName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç¼å·"> |
| | | <el-input v-model="model.supplierRef" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="ä¾åºåç©åæå¡åç§°"> |
| | | <el-input v-model="model.supplierItemServiceName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="é®ç¼"> |
| | | <el-input v-model="model.postalCode" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å°å"> |
| | | <el-input v-model="model.adress" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="logo"> |
| | | <div class="rows"> |
| | | <el-input placeholder="请è¾å
¥" v-model="model.logo" style="width: 100%" /> |
| | | <el-upload ref="upload" style="float: left; margin: 0 12px 0 20px" :action="action" |
| | | :show-file-list="false" :on-success="onSuccess"> |
| | | <el-button class="uploadFile" slot="trigger" type="primary">æµè§</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è系人"> |
| | | <el-input v-model="model.contacts" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="èç³»çµè¯"> |
| | | <el-input v-model="model.phone" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ·å"> |
| | | <el-input v-model="model.householdName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¼ ç"> |
| | | <el-input v-model="model.fax" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="弿·è¡"> |
| | | <el-input v-model="model.openingName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç½å"> |
| | | <el-input v-model="model.website" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è´¦å·"> |
| | | <el-input v-model="model.accountName" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="Email"> |
| | | <el-input v-model="model.email" placeholder="请è¾å
¥" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submit">ä¿ å</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | addSupplierManagement, |
| | | updateSupplierManagement, |
| | | } from "@/api/cnas/resourceDemand/externalService/supplierManage/supplierManage.js"; |
| | | export default { |
| | | props: { |
| | | contentsId: { |
| | | type: Number, |
| | | default: 0, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | dialogVisible: false, |
| | | model: { |
| | | parentId: null, |
| | | supplierManagementId: undefined, |
| | | supplierName: undefined, // ä¾åºå |
| | | supplierRef: undefined, // ç¼å· |
| | | supplierItemServiceName: undefined, // ä¾åºåç©åæå¡åç§° |
| | | postalCode: undefined, // é®ç¼ |
| | | adress: undefined, // å°å |
| | | logo: undefined, // logo |
| | | contacts: undefined, // è系人 |
| | | phone: undefined, // èç³»çµè¯ |
| | | householdName: undefined, // æ·å |
| | | fax: undefined, // ä¼ ç |
| | | openingName: undefined, // 弿·è¡ |
| | | website: undefined, // ç½å |
| | | accountName: undefined, // è´¦å· |
| | | email: undefined, // Email |
| | | }, |
| | | }; |
| | | }, |
| | | computed: { |
| | | action() { |
| | | return `${this.javaApi}/personBasicInfo/saveCNASFile`; |
| | | }, |
| | | }, |
| | | methods: { |
| | | openDialog(form) { |
| | | console.log("12--", this.contentsId); |
| | | if (form) { |
| | | this.model.supplierManagementId = form.row.supplierManagementId; |
| | | this.model.supplierName = form.row.supplierName; |
| | | this.model.supplierRef = form.row.supplierRef; |
| | | this.model.supplierItemServiceName = form.row.supplierItemServiceName; |
| | | this.model.postalCode = form.row.postalCode; |
| | | this.model.adress = form.row.adress; |
| | | this.model.logo = form.row.logo; |
| | | this.model.contacts = form.row.contacts; |
| | | this.model.phone = form.row.phone; |
| | | this.model.householdName = form.row.householdName; |
| | | this.model.fax = form.row.fax; |
| | | this.model.openingName = form.row.openingName; |
| | | this.model.website = form.row.website; |
| | | this.model.accountName = form.row.accountName; |
| | | this.model.email = form.row.email; |
| | | this.model.parentId = form.row.parentId; |
| | | } else { |
| | | this.model = { |
| | | parentId: this.contentsId, |
| | | supplierManagementId: undefined, |
| | | supplierName: undefined, // ä¾åºå |
| | | supplierRef: undefined, // ç¼å· |
| | | supplierItemServiceName: undefined, // ä¾åºåç©åæå¡åç§° |
| | | postalCode: undefined, // é®ç¼ |
| | | adress: undefined, // å°å |
| | | logo: undefined, // logo |
| | | contacts: undefined, // è系人 |
| | | phone: undefined, // èç³»çµè¯ |
| | | householdName: undefined, // æ·å |
| | | fax: undefined, // ä¼ ç |
| | | openingName: undefined, // 弿·è¡ |
| | | website: undefined, // ç½å |
| | | accountName: undefined, // è´¦å· |
| | | email: undefined, // Email |
| | | }; |
| | | } |
| | | // this.model.parentId = this.contentsId; |
| | | this.dialogVisible = true; |
| | | }, |
| | | async submit() { |
| | | if (this.model.supplierManagementId) { |
| | | const { code } = await updateSupplierManagement(this.model); |
| | | if (code == 200) { |
| | | this.$message.success("ä¿®æ¹æå"); |
| | | this.$emit("submit"); |
| | | this.dialogVisible = false; |
| | | } |
| | | } else { |
| | | const { code } = await addSupplierManagement(this.model); |
| | | if (code == 200) { |
| | | this.$message.success("æ°å¢æå"); |
| | | this.$emit("submit"); |
| | | this.dialogVisible = false; |
| | | } |
| | | } |
| | | }, |
| | | async onSuccess(response) { |
| | | this.$set(this.model, "logo", response.data); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .rows { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <TableCard :showTitle="false"> |
| | | <template slot="form"> |
| | | <div class="action-box"> |
| | | <div></div> |
| | | <div class="flex"> |
| | | <el-button :disabled="contentsId == 0" icon="el-icon-plus" type="primary" @click="showDialog()"> |
| | | æ°å»º |
| | | </el-button> |
| | | <el-button icon="el-icon-upload2" @click="exportExcel"> |
| | | 导åºExcel |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <template v-slot:table> |
| | | <limsTable :column="columns" :height="'calc(100vh - 300px)'" :isSelection="true" :table-data="tableData" |
| | | style="margin-top: 18px; padding: 0 15px;" :page="page" @pagination="pagination"> |
| | | <div slot="action" slot-scope="scope"> |
| | | <el-button type="text" @click="showDialog(scope)">ç¼è¾</el-button> |
| | | <el-button type="text" @click="delRow(scope)"> |
| | | <span style="color: #F56C6C">å é¤</span> |
| | | </el-button> |
| | | </div> |
| | | </limsTable> |
| | | </template> |
| | | </TableCard> |
| | | <Edit ref="editRef" :contentsId="contentsId" @submit="getTableData" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import TableCard from '@/components/TableCard/index.vue'; |
| | | import limsTable from "@/components/Table/lims-table.vue"; |
| | | import Edit from "./Edit.vue" |
| | | import { |
| | | selectQualifiedSupplierManagementPage, |
| | | delSupplierManagement, |
| | | exportSupplierManagement, |
| | | } from "@/api/cnas/resourceDemand/externalService/supplierManage/supplierManage.js"; |
| | | |
| | | export default { |
| | | components: { |
| | | TableCard, limsTable, Edit |
| | | }, |
| | | props: { |
| | | contentsId: { |
| | | type: Number, |
| | | default: 0 |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | columns: [ |
| | | { |
| | | label: "ä¾åºåç¼å·", |
| | | prop: "supplierRef" |
| | | }, |
| | | { |
| | | label: "ä¾åºå", |
| | | prop: "supplierName" |
| | | }, |
| | | { |
| | | label: "ä¾åºç©å(æå¡)åç§°", |
| | | prop: "supplierItemServiceName" |
| | | }, |
| | | { |
| | | label: "å°å", |
| | | prop: "adress" |
| | | }, |
| | | { |
| | | label: "èç³»çµè¯", |
| | | prop: "phone" |
| | | }, |
| | | { |
| | | fixed: "right", |
| | | dataType: "slot", |
| | | slot: "action", |
| | | label: "æä½" |
| | | } |
| | | ], |
| | | tableData: [], |
| | | page: { |
| | | current: 1, |
| | | size: 20, |
| | | total: 0 |
| | | }, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getTableData() |
| | | }, |
| | | watch: { |
| | | contentsId(newVal) { |
| | | if (newVal !== 0) { |
| | | this.getTableData(); |
| | | } |
| | | }, |
| | | }, |
| | | methods: { |
| | | // è·åè¡¨æ ¼æ°æ® |
| | | async getTableData() { |
| | | const { code, data } = await selectQualifiedSupplierManagementPage({ |
| | | ...this.page, |
| | | parentId: this.contentsId |
| | | }) |
| | | if (code == 200) { |
| | | this.tableData = data.records; |
| | | this.page.total = data.total; |
| | | this.page.current = data.current; |
| | | this.page.size = data.size; |
| | | } |
| | | }, |
| | | showDialog(scope) { |
| | | this.$refs.editRef.openDialog(scope) |
| | | }, |
| | | pagination({ page, limit }) { |
| | | this.page.current = page; |
| | | this.page.size = limit; |
| | | this.getTableData(); |
| | | }, |
| | | // å 餿°æ® |
| | | delRow(scope) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æä»¶, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(async () => { |
| | | const { code } = await delSupplierManagement(scope.row.supplierManagementId) |
| | | if (code == 200) { |
| | | this.$message.success('å 餿å') |
| | | this.getTableData() |
| | | } else { |
| | | this.$message.error('å é¤å¤±è´¥') |
| | | } |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }) |
| | | }, |
| | | async exportExcel() { |
| | | const res = await exportSupplierManagement(this.contentsId) |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, 'åæ ¼ä¾åºå.xlsx') |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .flex { |
| | | display: flex; |
| | | } |
| | | |
| | | .action-box { |
| | | width: 100%; |
| | | padding-top: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .pagination { |
| | | padding-top: 15px; |
| | | padding-right: 10px; |
| | | display: flex; |
| | | justify-content: space-between |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="purchase-page"> |
| | | <div class="purchase-left"> |
| | | <el-input v-model="form.nodeName" placeholder="请è¾å
¥èç¹åç§°" suffix-icon="el-icon-search" size="small" clearable |
| | | @keyup.enter.native="searchFilter(treeData)" @blur="searchFilter(treeData)" @clear="searchFilter(treeData)"> |
| | | </el-input> |
| | | <el-tree ref="tree" highlight-current :data="treeData" :props="defaultProps" @node-click="handleNodeClick" |
| | | :default-expanded-keys="expandedKeys" node-key="id"> |
| | | </el-tree> |
| | | </div> |
| | | <div class="purchase-right"> |
| | | <el-tabs v-model="activeName" @tab-click="handleClick" style="height: 100%"> |
| | | <el-tab-pane label="æ»è§" name="1" style="height: 100%"> |
| | | <ConsumableOverview v-if="activeName == '1'" ref="consumableOverviewRef" :contentsId="contentsId" |
| | | style="height: 100%"></ConsumableOverview> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="åæ ¼ä¾æ¹åå½" name="2"> |
| | | <QualifiedSuppliers v-if="activeName == '2'" :contentsId="contentsId"></QualifiedSuppliers> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="ç®å½ç»´æ¤" name="3"> |
| | | <Contents v-if="activeName == '3'" :id="contentsId" :treeData="treeData" @contentsUpdate="contentsUpdate" |
| | | from="ä¾åºæ "></Contents> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import Contents from "./component/Contents.vue"; |
| | | import ConsumableOverview from "./component/ConsumableOverview.vue"; |
| | | import QualifiedSuppliers from "./component/QualifiedSuppliers.vue"; |
| | | import { suppliersDirectoryContentsListing } from "@/api/cnas/resourceDemand/externalService/supplierManage/supplierManage.js"; |
| | | export default { |
| | | components: { |
| | | ConsumableOverview, |
| | | QualifiedSuppliers, |
| | | Contents, |
| | | }, |
| | | data() { |
| | | return { |
| | | contentsId: 0, |
| | | activeName: "1", |
| | | form: { |
| | | nodeName: "", |
| | | }, |
| | | treeData: [], |
| | | expandedKeys: [], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "nodeName", |
| | | }, |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.getTreeData(); |
| | | }, |
| | | methods: { |
| | | searchFilter() { |
| | | this.treeData = JSON.parse(JSON.stringify(this.treeData)); |
| | | this.expandedKeys = []; |
| | | if (this.form.nodeName == "") { |
| | | return; |
| | | } |
| | | const findNodesWithFiber = (nodes) => { |
| | | nodes.forEach((node) => { |
| | | if (node.nodeName && node.nodeName.includes(this.form.nodeName)) { |
| | | this.expandedKeys.push(node.id); |
| | | } |
| | | if (node.children && node.children.length > 0) { |
| | | findNodesWithFiber(node.children); |
| | | } |
| | | }); |
| | | }; |
| | | findNodesWithFiber(this.treeData); |
| | | }, |
| | | // ç®å½ç»´æ¤æ´æ° |
| | | contentsUpdate(val, flag = false) { |
| | | if (val) { |
| | | this.getTreeData(); |
| | | this.expandedKeys = []; |
| | | if (flag) { |
| | | const findNodesWithFiber = (nodes) => { |
| | | nodes.forEach((item) => { |
| | | if (item.parentId == val) { |
| | | this.expandedKeys.push(item.id); |
| | | } |
| | | if (item.children && item.children.length > 0) { |
| | | findNodesWithFiber(item.children); |
| | | } |
| | | }); |
| | | }; |
| | | findNodesWithFiber(this.treeData); |
| | | this.expandedKeys = this.expandedKeys.filter((item) => item !== val); |
| | | } else { |
| | | this.expandedKeys.push(val); |
| | | } |
| | | } else { |
| | | this.getTreeData(); |
| | | } |
| | | }, |
| | | // æ¥è¯¢ææç®å½ |
| | | getTreeData() { |
| | | suppliersDirectoryContentsListing().then((res) => { |
| | | this.treeData = res.data; |
| | | }); |
| | | }, |
| | | // ç¹å»æ èç¹ |
| | | handleNodeClick(data) { |
| | | this.contentsId = data.id; |
| | | // this.$refs.consumableOverviewRef.getTableData(data.id) |
| | | }, |
| | | handleClick(tab, event) { }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .purchase-left { |
| | | width: 250px; |
| | | height: 100%; |
| | | background: #fff; |
| | | margin-right: 10px; |
| | | border-radius: 16px; |
| | | box-sizing: border-box; |
| | | padding: 10px 16px; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .purchase-right { |
| | | background: #fff; |
| | | width: calc(100% - 15em); |
| | | height: 100%; |
| | | border-radius: 16px; |
| | | box-sizing: border-box; |
| | | padding: 10px 16px; |
| | | } |
| | | |
| | | .purchase-page { |
| | | display: flex; |
| | | padding-top: 10px; |
| | | padding-bottom: 10px; |
| | | box-sizing: border-box; |
| | | width: 100%; |
| | | } |
| | | |
| | | >>>.el-tabs__content { |
| | | height: calc(100% - 40px); |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | // æ¥çæè¯ |
| | | handleLook(row) { |
| | | addProcessComplain({ id: row.id }).then((res) => { |
| | | getProcessComplain({ id: row.id }).then((res) => { |
| | | this.currentInfo = res.data |
| | | this.currentInfo0 = this.HaveJson(res.data) |
| | | this.title = 'æ¥çæè¯' |
| | |
| | | }, |
| | | // ä¸è½½ |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrlrow.fileName; |
| | | link.click(); |
| | | this.$download.saveAs(url, row.fileName) |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileName) |
| | | }, |
| | | // å é¤ |
| | | delete(row) { |
| | |
| | | }, |
| | | // ä¸è½½ |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileName) |
| | | }, |
| | | // å é¤ |
| | | delete(row) { |
| | |
| | | }, |
| | | // ä¸è½½ |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileName) |
| | | }, |
| | | } |
| | | }; |
| | |
| | | }, |
| | | // ä¸è½½ |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileName) |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | exportProcessReport({ ids: this.mutilSelect.map(m => m.id) }).then(res => { |
| | | this.outLoading = false |
| | | if (res.code === 201) return |
| | | const url = this.javaApi + '/word/' + res.data; |
| | | this.$download.saveAs(url, "æ¥åç»æ"); |
| | | this.$download.saveAs(res.data, "æ¥åç»æ") |
| | | }) |
| | | }, |
| | | openAdd() { |
| | |
| | | // 导åºè¯¦æ
|
| | | handleDown0(row) { |
| | | // å端ä¸è½½ |
| | | let url = this.javaApi + '/word/' + row.url |
| | | this.$download.saveAs(url, row.month + ' æ ·åå¤çç³è¯·è¡¨'); |
| | | this.$download.saveAs(row.url, row.month + ' æ ·åå¤çç³è¯·è¡¨') |
| | | }, |
| | | handleDelete(row) { |
| | | this.$confirm("æ¯å¦å é¤è¯¥æ¡æ°æ®?", "æç¤º", { |
| | |
| | | // 导åºè¯¦æ
|
| | | handleDown0(row) { |
| | | // å端ä¸è½½ |
| | | let url = this.javaApi + '/word/' + row.url |
| | | this.$download.saveAs(url, row.month + ' æ ·åæ¥æ¶è¡¨') |
| | | this.$download.saveAs(row.url, row.month + ' æ ·åæ¥æ¶è¡¨') |
| | | }, |
| | | // å é¤ |
| | | handleDelete(row) { |
| | |
| | | }) |
| | | }, |
| | | handleDown(row) { |
| | | let url = this.javaApi + '/word/' + row.reportUrl |
| | | this.$download.saveAs(url, row.reportName); |
| | | this.$download.saveAs(row.reportUrl, row.reportName) |
| | | }, |
| | | beforeUpload(file) { |
| | | if (file.size > 1024 * 1024 * 10) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog v-loading="diaLoading" :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | :visible.sync="formDia" |
| | | title="夿¥äººå管çä¿¡æ¯" |
| | | width="80%" @close="closeThreeWastesDia"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="auto"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¥æ" prop="registerDate"> |
| | | <el-date-picker v-model="form.registerDate" |
| | | clearable |
| | | format="yyyy-MM-dd" |
| | | placeholder="éæ©æ¥æ" |
| | | size="small" |
| | | type="date" |
| | | value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¿å
¥åºå" prop="area"> |
| | | <el-input v-model="form.area" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¿å
¥äººå" prop="personnel"> |
| | | <el-input v-model="form.personnel" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¿å
¥åå " prop="reason"> |
| | | <el-input v-model="form.reason" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="éªå人å" prop="accompanyingId"> |
| | | <el-select v-model="form.accompanyingId" clearable filterable |
| | | placeholder="è¯·éæ©éªå人å" size="small"> |
| | | <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¹å人ç¾å" prop="approveId"> |
| | | <el-select v-model="form.approveId" clearable filterable |
| | | placeholder="è¯·éæ©æ¹å人" size="small"> |
| | | <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¿å¯åå
¶å®æ
åµ" prop="confidentiality"> |
| | | <el-input v-model="form.confidentiality" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input v-model="form.remark" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="closeThreeWastesDia">å æ¶</el-button> |
| | | <el-button :loading="loading" type="primary" @click="handleEdit">æ 交</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getForeignRegisterOne, |
| | | selectUserCondition, |
| | | addForeignRegister, |
| | | updateForeignRegister |
| | | } from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister' |
| | | |
| | | export default { |
| | | name: 'Personnel-management-dia', |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | formDia: false, |
| | | diaLoading: false, |
| | | loading: false, |
| | | form: { |
| | | registerDate: '', |
| | | area: '', |
| | | personnel: '', |
| | | reason: '', |
| | | accompanyingId: '', |
| | | accompanyingName: '', |
| | | approveId: '', |
| | | approveName: '', |
| | | confidentiality: '', |
| | | remark: '', |
| | | }, |
| | | rules: { |
| | | registerDate: [{required: true, message: 'è¯·éæ©æ¥æ',trigger: 'change'}], |
| | | area: [{required: true, message: '请填åè¿å
¥åºå',trigger: 'blur'}], |
| | | personnel: [{required: true, message: '请填åè¿å
¥äººå',trigger: 'blur'}], |
| | | reason: [{required: true, message: '请填åè¿å
¥åå ',trigger: 'blur'}], |
| | | accompanyingId: [{required: true, message: 'è¯·éæ©éªå人å',trigger: 'change'}], |
| | | approveId: [{required: true, message: 'è¯·éæ©æ¹å人',trigger: 'change'}], |
| | | confidentiality: [{required: true, message: '请填åä¿å¯åå
¶ä»æ
åµ',trigger: 'blur'}], |
| | | remark: [{required: false, message: '请填å夿³¨',trigger: 'blur'}], |
| | | }, |
| | | operationType: '', |
| | | personList: [] |
| | | }; |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // æå¼å¼¹æ¡ |
| | | openDia (type, row) { |
| | | this.getAuthorizedPerson() |
| | | this.formDia = true |
| | | this.operationType = type |
| | | if (type !== 'add') { |
| | | this.searchInfo(row) |
| | | } else { |
| | | this.form.accompanyingId = JSON.parse(localStorage.getItem("user")).userId |
| | | } |
| | | }, |
| | | // æ¥è¯¢è¯¦æ
|
| | | searchInfo (row) { |
| | | this.diaLoading = true |
| | | getForeignRegisterOne({registerId : row.registerId}).then(res =>{ |
| | | this.diaLoading = false |
| | | if (res.code === 200){ |
| | | this.form = res.data |
| | | } |
| | | }).catch(err => { |
| | | console.log(err) |
| | | this.diaLoading = false |
| | | }) |
| | | }, |
| | | // æäº¤å¼¹æ¡æ°æ® |
| | | handleEdit () { |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true |
| | | const internalImplementDto = this.HaveJson(this.form) |
| | | const index = this.personList.findIndex(item => item.value === internalImplementDto.accompanyingId) |
| | | if (index > -1) { |
| | | internalImplementDto.accompanyingName = this.personList[index].label |
| | | } |
| | | const index1 = this.personList.findIndex(item => item.value === internalImplementDto.approveId) |
| | | if (index1 > -1) { |
| | | internalImplementDto.approveName = this.personList[index].label |
| | | } |
| | | if (this.operationType === 'add') { |
| | | addForeignRegister(internalImplementDto).then(res => { |
| | | this.loading = false |
| | | if (res.code === 200){ |
| | | this.$message.success('æä½æå') |
| | | this.closeThreeWastesDia() |
| | | } |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.loading = false |
| | | }) |
| | | } else if (this.operationType === 'edit') { |
| | | updateForeignRegister(internalImplementDto).then(res => { |
| | | this.loading = false |
| | | if (res.code === 200){ |
| | | this.$message.success('æä½æå') |
| | | this.closeThreeWastesDia() |
| | | } |
| | | |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | closeThreeWastesDia () { |
| | | this.$refs.form.resetFields(); |
| | | this.formDia = false |
| | | this.$emit('closeThreeWastesDia') |
| | | }, |
| | | getAuthorizedPerson() { |
| | | selectUserCondition().then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id |
| | | }) |
| | | }) |
| | | this.personList = data |
| | | }) |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="capacity-scope"> |
| | | <div class="search"> |
| | | <div> |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="æ¥æ" prop="registerDate"> |
| | | <el-date-picker v-model="searchForm.registerDate" clearable format="yyyy-MM-dd" placeholder="éæ©æ¥æ" |
| | | size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">æ¥ è¯¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">é ç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="medium" @click="handleDown">导 åº</el-button> |
| | | <el-button size="medium" type="primary" @click="openFormDia('add')">æ° å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 280px)'" @pagination="pagination" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <personnel-management-dia v-if="threeWastesDia" ref="threeWastesDia" |
| | | @closeThreeWastesDia="closeThreeWastesDia"></personnel-management-dia> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import PersonnelManagementDia from '../component/Personnel-management-dia.vue'; |
| | | import limsTable from '@/components/Table/lims-table.vue' |
| | | |
| | | import { |
| | | pageForeignRegister, |
| | | delForeignRegister, |
| | | exportForeignRegister |
| | | } from '@/api/cnas/resourceDemand/foreignRegister/foreignRegister' |
| | | |
| | | export default { |
| | | name: 'Personnel-management', |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { limsTable, PersonnelManagementDia }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | searchForm: { |
| | | registerDate: '', |
| | | }, |
| | | tableColumn: [ |
| | | { |
| | | label: 'æ¥æ', |
| | | prop: 'registerDate', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'è¿å
¥åºå', |
| | | prop: 'area', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'è¿å
¥äººå', |
| | | prop: 'personnel', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'è¿å
¥åå ', |
| | | prop: 'reason', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'éªå人å', |
| | | prop: 'accompanyingName', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'æ¹å人ç¾å', |
| | | prop: 'approveName', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'ä¿å¯åå
¶ä»æ
åµ', |
| | | prop: 'confidentiality', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: '夿³¨', |
| | | prop: 'remark', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | | minWidth: '220', |
| | | label: 'æä½', |
| | | operation: [ |
| | | { |
| | | name: 'ç¼è¾', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.openFormDia('edit', row); |
| | | }, |
| | | }, |
| | | { |
| | | name: 'å é¤', |
| | | type: 'text', |
| | | color: '#f56c6c', |
| | | clickFun: (row) => { |
| | | this.delPlan(row) |
| | | }, |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | tableData: [], |
| | | tableLoading: false, |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | total: 0, |
| | | threeWastesDia: false |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.searchList() |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // æ¥è¯¢å表 |
| | | searchList() { |
| | | this.tableLoading = true |
| | | pageForeignRegister({ |
| | | ...this.page, |
| | | ...this.searchForm |
| | | }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records |
| | | this.page.total = res.data.total |
| | | } |
| | | |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | // å é¤ |
| | | delPlan(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.tableLoading = true |
| | | delForeignRegister({ registerId: row.registerId }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.$message.success('å 餿å') |
| | | this.searchList() |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | | console.log('err---', err); |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // æ°å¢ï¼ç¼è¾ï¼æ¹åå¼¹æ¡ |
| | | openFormDia(type, row) { |
| | | this.threeWastesDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.threeWastesDia.openDia(type, row) |
| | | }) |
| | | }, |
| | | // å¯¼åº |
| | | handleDown() { |
| | | exportForeignRegister(this.searchForm).then(res => { |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, '夿¥äººåç»è®°.docx') |
| | | }) |
| | | }, |
| | | closeThreeWastesDia() { |
| | | this.threeWastesDia = false |
| | | this.searchList() |
| | | }, |
| | | // éç½®æ¥è¯¢æ¡ä»¶ |
| | | resetSearchForm() { |
| | | this.searchForm.registerDate = ''; |
| | | this.searchList() |
| | | }, |
| | | // å页忢 |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.searchList(); |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .capacity-scope { |
| | | padding: 20px; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-row> |
| | | <el-col :span="2"> |
| | | <el-menu style="height: 100vh;" @select="clickSelect" :default-active="activeName"> |
| | | <el-menu-item index="çµæºç¨³å®æ§"> |
| | | <span slot="title">çµæºç¨³å®æ§</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="é²é·æ£æµ"> |
| | | <span slot="title">é²é·æ£æµ</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="ç
§åº¦è®°å½"> |
| | | <span slot="title">ç
§åº¦è®°å½</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="温湿度记å½"> |
| | | <span slot="title">温湿度记å½</span> |
| | | </el-menu-item> |
| | | </el-menu> |
| | | </el-col> |
| | | <el-col :span="22" style="padding: 10px"> |
| | | <power-supply-stability v-if="activeName === 'çµæºç¨³å®æ§'"/> |
| | | <lightning-protection-detection v-if="activeName === 'é²é·æ£æµ'" /> |
| | | <illuminance-recording v-if="activeName === 'ç
§åº¦è®°å½'"/> |
| | | <temperature-humidity-record v-if="activeName === '温湿度记å½'"/> |
| | | </el-col> |
| | | </el-row> |
| | | </template> |
| | | |
| | | <script> |
| | | // çµæºç¨³å®æ§ |
| | | import PowerSupplyStability from "./facilities-environmental-conditions/power-supply-stability.vue"; |
| | | // é²é·æ£æµ |
| | | import LightningProtectionDetection from "./facilities-environmental-conditions/lightning-protection-detection.vue"; |
| | | // ç
§åº¦è®°å½ |
| | | import IlluminanceRecording from "./facilities-environmental-conditions/illuminance-recording.vue"; |
| | | // æ¸©æ¹¿åº¦è®°å½ |
| | | import TemperatureHumidityRecord from "./facilities-environmental-conditions/temperature-humidity-record.vue"; |
| | | |
| | | export default { |
| | | components: {TemperatureHumidityRecord, IlluminanceRecording, LightningProtectionDetection, PowerSupplyStability}, |
| | | data() { |
| | | return { |
| | | activeName: "çµæºç¨³å®æ§" |
| | | } |
| | | }, |
| | | methods: { |
| | | clickSelect(index) { |
| | | this.activeName = index; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div class="header"> |
| | | <div>ç
§åº¦è®°å½</div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="clickAdd">æ° å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" height="calc(100vh - 19em)" style="width: 100%"> |
| | | <el-table-column label="åºå·" type="index" width="120"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="ç»è®º" min-width="180" prop="conclusion"></el-table-column> |
| | | <el-table-column label="æµè¯æ¥æ" min-width="180" prop="testDate" width="testDate"></el-table-column> |
| | | <el-table-column label="æ£æµè
" min-width="180" prop="testerUser"></el-table-column> |
| | | <el-table-column label="æ ¸æ¥äºº" min-width="180" prop="checkerUser"></el-table-column> |
| | | <el-table-column label="设å¤åç§°" min-width="180" prop="deviceName"></el-table-column> |
| | | <el-table-column label="设å¤ç¼å·" min-width="180" prop="managementNumber"></el-table-column> |
| | | <el-table-column label="æ ¡åæ¥æ" min-width="180" prop="lastCalibrationDate"></el-table-column> |
| | | <el-table-column label="䏿¬¡æ ¡åæ¥æ" min-width="180" prop="nextCalibrationDate"></el-table-column> |
| | | <el-table-column label="å建æ¶é´" min-width="180" prop="createTime"></el-table-column> |
| | | <el-table-column fixed="right" label="æä½" min-width="140"> |
| | | <template v-slot="scope"> |
| | | <el-button size="small" type="text" @click="downLoadPost(scope.row)">导åº</el-button> |
| | | <el-button size="small" type="text" @click="edit(scope.row)">ç¼è¾</el-button> |
| | | <el-button size="small" type="text" @click="deleteRowFun(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total" |
| | | layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | <el-dialog :visible.sync="dialogVisible" title="æ°å¢" width="50%" @open="openDialog"> |
| | | <div style="height: 50vh; overflow-y: auto"> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æµè¯å°ç¹', trigger: 'change' }]" label="æµè¯æ¥æ" |
| | | prop="testDate"> |
| | | <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥è®¾å¤åç§°', trigger: 'change' }]" label="设å¤åç§°" |
| | | prop="deviceId"> |
| | | <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="设å¤åç§°" |
| | | size="small" @change="getCalibrationDateFun"> |
| | | <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id"> |
| | | {{ item.deviceName + item.managementNumber }} |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设å¤ç¼å·"> |
| | | <el-input v-model="form.managementNumber" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æè¿æ ¡åæ¥æ"> |
| | | <el-input v-model="form.lastCalibrationDate" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="䏿¬¡æ ¡åæ¥æ"> |
| | | <el-input v-model="form.nextCalibrationDate" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£æµè
" prop="recipientUser"> |
| | | <el-select v-model="form.testerId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ ¸æ¥äºº" prop="recipientUser"> |
| | | <el-select v-model="form.checkerId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="ç»è®º"> |
| | | <el-input v-model="form.conclusion" :rows="2" placeholder="请è¾å
¥å
容" type="textarea"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <div style="display: flex; justify-content: flex-end; margin-bottom: 0.5em"> |
| | | <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">æ°å¢</el-button> |
| | | </div> |
| | | <div> |
| | | <el-table :data="form.illuminationDetectionAreaList" height="40vh" style="width: 100%; margin: auto"> |
| | | <el-table-column label="åºå·" type="index" width="80"></el-table-column> |
| | | <el-table-column align="center" label="æ£æµåºååç§°" min-width="180" prop="detectionAreaLabel"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.detectionAreaLabel" :rows="1" type="textarea"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="æ£æµå¼" min-width="300" prop="name"> |
| | | <template> |
| | | <el-table-column align="center" label="ç¬¬ä¸æ¬¡" min-width="100" prop="valueOne"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.valueOne" :rows="1" @blur="getAverage(row)"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="ç¬¬äºæ¬¡" min-width="100" prop="valueTwo"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.valueTwo" :rows="1" @blur="getAverage(row)"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="ç¬¬ä¸æ¬¡" min-width="100" prop="valueThree"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.valueThree" :rows="1" @blur="getAverage(row)"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="å¹³åå¼" min-width="100" prop="average"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.average" :rows="1"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="夿³¨" min-width="180" prop="detectionAreaLabel"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.remark" :rows="1" type="textarea"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="æä½" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)"> |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getFeLightningProtection, |
| | | deviceScopeSearch, |
| | | selectUserCondition, |
| | | treeDevice, |
| | | addFeLightningProtection, |
| | | deleteFeLightningProtection, |
| | | getFeIlluminationDetectionArea, |
| | | deleteFeIlluminationDetectionArea, |
| | | exportFeIllumination |
| | | } from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | search: { |
| | | size: 10, |
| | | current: 1, |
| | | total: 0 |
| | | }, |
| | | tableData: [], |
| | | dialogVisible: false, |
| | | submitLoading: false, |
| | | form: { |
| | | testDate: '', |
| | | deviceId: '', |
| | | managementNumber: '', |
| | | lastCalibrationDate: '', |
| | | nextCalibrationDate: '', |
| | | testerId: '', |
| | | checkerId: '', |
| | | conclusion: '', |
| | | illuminationDetectionAreaList: [] |
| | | }, |
| | | cascaderList: [], |
| | | responsibleOptions: [], |
| | | equipOptions: [], |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | }, |
| | | watch: { |
| | | dialogVisible(newVal) { |
| | | if (!newVal) { |
| | | this.form = { |
| | | deviceId: null, |
| | | illuminationDetectionAreaList: [] |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | getAverage(row) { |
| | | if (row.valueOne && row.valueTwo && row.valueThree) { |
| | | if (!isNaN(row.valueOne) && !isNaN(row.valueTwo) && !isNaN(row.valueThree)) { |
| | | const avg = Number(row.valueOne) + Number(row.valueTwo) + Number(row.valueThree) |
| | | console.log(avg) |
| | | row.average = Math.round(avg / 3); |
| | | } else { |
| | | this.$message.warning("å¿
须为æ°åï¼") |
| | | } |
| | | } |
| | | }, |
| | | edit(row) { |
| | | getFeIlluminationDetectionArea({ intensityIlluminationId: row.intensityIlluminationId }).then(res => { |
| | | this.form = { ...row } |
| | | this.form.illuminationDetectionAreaList = res.data; |
| | | this.dialogVisible = true |
| | | }); |
| | | }, |
| | | initData() { |
| | | getFeLightningProtection({ ...this.search }).then(res => { |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.search.total = res.data.total; |
| | | } |
| | | }); |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.search.size = val; |
| | | this.initData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.search.current = val; |
| | | this.initData(); |
| | | }, |
| | | deleteRowFun(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteFeLightningProtection({ intensityIlluminationId: row.intensityIlluminationId }).then(res => { |
| | | this.$message.success('å 餿åï¼') |
| | | this.initData() |
| | | }) |
| | | }) |
| | | }, |
| | | feMeasuredQuantityListDelete(row, index) { |
| | | if (row.detectionAreaId) { |
| | | deleteFeIlluminationDetectionArea({ detectionAreaId: row.detectionAreaId }).then(res => { |
| | | if (res.code === 200) { |
| | | this.form.illuminationDetectionAreaList.splice(index, 1) |
| | | this.$message.success('å 餿åï¼') |
| | | } |
| | | }) |
| | | } else { |
| | | this.form.illuminationDetectionAreaList.splice(index, 1) |
| | | this.$message.success('å 餿åï¼') |
| | | } |
| | | }, |
| | | openDialog() { |
| | | treeDevice().then(res => { |
| | | this.cascaderList = res.data; |
| | | }); |
| | | this.$nextTick(() => { |
| | | this.$refs['form'].clearValidate() |
| | | }) |
| | | this.getUserList() |
| | | }, |
| | | clickAdd() { |
| | | this.dialogVisible = true |
| | | this.getEquipOptions() |
| | | }, |
| | | // è·åææè®¾å¤ |
| | | getEquipOptions() { |
| | | this.equipOptions = [] |
| | | deviceScopeSearch({ status: '0' }).then(res => { |
| | | if (res.code === 200 && res.data) { |
| | | this.equipOptions = res.data |
| | | } |
| | | }).catch(error => { |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | feMeasuredQuantityListAdd() { |
| | | const obj = { |
| | | detectionAreaLabel: null, |
| | | valueOne: null, |
| | | valueTwo: null, |
| | | valueThree: null, |
| | | average: null, |
| | | remark: null, |
| | | } |
| | | this.form.illuminationDetectionAreaList.push(obj) |
| | | }, |
| | | addPowerSupplyStability() { |
| | | this.submitLoading = true |
| | | this.$refs.form.validate((valid) => { |
| | | if (valid) { |
| | | addFeLightningProtection(this.form).then(res => { |
| | | this.submitLoading = false |
| | | if (res.code === 200) { |
| | | this.initData() |
| | | this.dialogVisible = false |
| | | } |
| | | }).catch(error => { |
| | | this.submitLoading = false |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | // è·åè´è´£äººä¿¡æ¯æ¥å£ |
| | | getUserList() { |
| | | selectUserCondition().then(res => { |
| | | if (res.code == 200) { |
| | | this.responsibleOptions = res.data |
| | | } |
| | | }) |
| | | }, |
| | | getCalibrationDateFun(val) { |
| | | const index = this.equipOptions.findIndex(item => item.id === val) |
| | | if (index > -1) { |
| | | this.form.managementNumber = this.equipOptions[index].managementNumber |
| | | this.form.lastCalibrationDate = this.equipOptions[index].lastCalibrationDate |
| | | this.form.nextCalibrationDate = this.equipOptions[index].nextCalibrationDate |
| | | } |
| | | }, |
| | | // å¯¼åº |
| | | downLoadPost(row) { |
| | | exportFeIllumination({ intensityIlluminationId: row.intensityIlluminationId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, 'ç
§åº¦è®°å½.docx') |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .header { |
| | | height: 3em; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div class="header"> |
| | | <div>é²é·æ£æµ</div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="clickAdd">导 å
¥</el-button> |
| | | <el-button size="small" type="primary" @click="downLoadPost">导 åº</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" height="calc(100vh - 19em)" style="width: 100%"> |
| | | <el-table-column label="åºå·" type="index" width="120"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="åæä»¶å" min-width="180" prop="fileName"> |
| | | </el-table-column> |
| | | <el-table-column label="æ£æµæ¥æ" min-width="180" prop="detectionDate"> |
| | | </el-table-column> |
| | | <el-table-column label="æææ" min-width="180" prop="termValidity"> |
| | | </el-table-column> |
| | | <el-table-column label="æ£æµåä½" min-width="180" prop="detectionUnit"> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="æä½" min-width="100"> |
| | | <template v-slot="scope"> |
| | | <el-button size="small" type="text" @click="edit(scope.row)">ç¼è¾</el-button> |
| | | <el-button size="small" type="text" @click="deleteRowFun(scope.row)">å é¤</el-button> |
| | | <el-button size="small" type="text" @click="download(scope.row)">ä¸è½½</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total" |
| | | layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | <el-dialog :visible.sync="dialogVisible" title="æ° å¢" width="50%"> |
| | | <div style="height: 50vh;"> |
| | | <el-form ref="form" :model="form" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æµè¯å°ç¹', trigger: 'blur' }]" label="æ£æµæ¥æ" |
| | | prop="detectionDate"> |
| | | <el-date-picker v-model="form.detectionDate" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æµè¯å°ç¹', trigger: 'blur' }]" label="æææ" |
| | | prop="termValidity"> |
| | | <el-date-picker v-model="form.termValidity" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æµè¯å°ç¹', trigger: 'blur' }]" label="æ£æµåä½" |
| | | prop="detectionUnit"> |
| | | <el-input v-model="form.detectionUnit" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£æµåä½"> |
| | | <el-upload :file-list="form.fileList" :http-request="httpRequest" :limit="1" :on-exceed="handleExceed" |
| | | :on-remove="handleRemove" action="#" class="upload-demo" drag multiple> |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æä»¶æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="addImport">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | |
| | | import { |
| | | getLightningProtectionDetection, |
| | | addLightningProtectionDetection, |
| | | deleteLightningProtectionDetection, |
| | | exportOfLightningProtectionDetection |
| | | } from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment' |
| | | |
| | | import axios from 'axios'; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | search: { |
| | | size: 10, |
| | | current: 1, |
| | | total: 0 |
| | | }, |
| | | tableData: [], |
| | | dialogVisible: false, |
| | | form: { |
| | | fileList: [], |
| | | fileData: [] |
| | | }, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | }, |
| | | watch: { |
| | | dialogVisible(newVal) { |
| | | if (!newVal) { |
| | | this.form = { |
| | | fileList: [], |
| | | fileData: [] |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // å¯¼åº |
| | | downLoadPost() { |
| | | exportOfLightningProtectionDetection().then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | //å°Blob å¯¹è±¡è½¬æ¢æå符串 |
| | | this.$download.saveAs(blob, 'é²é·æ£æµå¯¼åº.xlsx') |
| | | }) |
| | | }, |
| | | initData() { |
| | | getLightningProtectionDetection({ ...this.search }).then(res => { |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.search.total = res.data.total; |
| | | } |
| | | |
| | | }); |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.search.size = val; |
| | | this.initData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.search.current = val; |
| | | this.initData(); |
| | | }, |
| | | clickAdd() { |
| | | this.dialogVisible = true |
| | | }, |
| | | // æä»¶æ°éè¿å¤æ¶æé |
| | | handleExceed() { |
| | | this.$message({ type: 'error', message: 'æå¤æ¯æ1个éä»¶ä¸ä¼ ' }) |
| | | }, |
| | | // è¦çé»è®¤çä¸ä¼ è¡ä¸ºï¼å¯ä»¥èªå®ä¹ä¸ä¼ çå®ç°ï¼å°ä¸ä¼ çæä»¶ä¾æ¬¡æ·»å å°fileListæ°ç»ä¸,æ¯æå¤ä¸ªæä»¶ |
| | | httpRequest(option) { |
| | | this.form.fileData.push(option) |
| | | }, |
| | | addImport() { |
| | | console.log(this.form) |
| | | this.$refs.form.validate((valid) => { |
| | | if (valid) { |
| | | let params = new FormData() |
| | | if (this.form.lightningProtectionId) { |
| | | params.append("lightningProtectionId", this.form.lightningProtectionId) |
| | | } |
| | | params.append("termValidity", this.form.termValidity) |
| | | params.append("detectionUnit", this.form.detectionUnit) |
| | | params.append("detectionDate", this.form.detectionDate) |
| | | if (this.form.fileData.length > 0) { |
| | | params.append("file", this.form.fileData[0].file) |
| | | } |
| | | addLightningProtectionDetection(params).then(res => { |
| | | if (res.code === 200) { |
| | | this.dialogVisible = false |
| | | this.initData() |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | edit(row) { |
| | | this.dialogVisible = true |
| | | this.form = { ...row } |
| | | this.form.fileList = [] |
| | | this.form.fileData = [] |
| | | this.form.fileList.push({ name: row.systemFileName, url: "123434" }) |
| | | console.log(this.form) |
| | | }, |
| | | deleteRowFun(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteLightningProtectionDetection({ lightningProtectionId: row.lightningProtectionId }).then(res => { |
| | | this.$message.success('å 餿åï¼') |
| | | this.initData() |
| | | }) |
| | | }) |
| | | }, |
| | | handleRemove(file) { |
| | | this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + file.name).then(res => { |
| | | if (res.code === 201) return; |
| | | this.$message.success('å 餿åï¼') |
| | | let index = this.form.fileList.indexOf(fileName) |
| | | if (index != -1) { |
| | | this.successFileList.splice(index, 1) |
| | | } |
| | | }) |
| | | }, |
| | | download(row) { |
| | | if (!row.systemFileName) { |
| | | this.$message.warning('ææ æä»¶') |
| | | return |
| | | } |
| | | this.$download.downloadFileFromUrl(row.systemFileName, row.fileName) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .header { |
| | | height: 3em; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <div class="header"> |
| | | <div>çµæºç¨³å®æ§</div> |
| | | <div> |
| | | <el-button size="small" type="primary" @click="openAddDia">æ° å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" height="calc(100vh - 19em)" style="width: 100%"> |
| | | <el-table-column label="åºå·" type="index" width="120"> |
| | | <template v-slot="scope"> |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æµè¯å°ç¹" min-width="180" prop="testLocation"></el-table-column> |
| | | <el-table-column label="æµè¯æ¥æ" min-width="180" prop="testDate" width="testDate"></el-table-column> |
| | | <el-table-column label="ç»è®º" min-width="180" prop="conclusion"></el-table-column> |
| | | <el-table-column label="æ£æµè
" min-width="180" prop="testerUser"></el-table-column> |
| | | <el-table-column label="æ ¸æ¥äºº" min-width="180" prop="checkerUser"></el-table-column> |
| | | <el-table-column label="设å¤åç§°" min-width="180" prop="deviceName"></el-table-column> |
| | | <el-table-column label="设å¤ç¼å·" min-width="180" prop="managementNumber"></el-table-column> |
| | | <el-table-column label="æ ¡åæ¥æ" min-width="180" prop="lastCalibrationDate"></el-table-column> |
| | | <el-table-column label="䏿¬¡æ ¡åæ¥æ" min-width="180" prop="nextCalibrationDate"></el-table-column> |
| | | <el-table-column label="å建æ¶é´" min-width="180" prop="createTime"></el-table-column> |
| | | <el-table-column fixed="right" label="æä½" min-width="140"> |
| | | <template v-slot="scope"> |
| | | <el-button size="small" type="text" @click="downLoadPost(scope.row)">导åº</el-button> |
| | | <el-button size="small" type="text" @click="edit(scope.row)">ç¼è¾</el-button> |
| | | <el-button size="small" type="text" @click="deleteRowFun(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" :total="search.total" |
| | | layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | <el-dialog :visible.sync="dialogVisible" title="æ°å¢" width="50%" @open="openDialog"> |
| | | <div style="height: 50vh; overflow-y: auto"> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æµè¯å°ç¹', trigger: 'blur' }]" label="æµè¯å°ç¹" |
| | | prop="testLocation"> |
| | | <el-input v-model="form.testLocation" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æµè¯æ¥æ', trigger: 'change' }]" label="æµè¯æ¥æ" |
| | | prop="testDate"> |
| | | <el-date-picker v-model="form.testDate" format="yyyy-MM-dd" placeholder="éæ©æ¥æ" size="small" |
| | | style="width: 100%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥è®¾å¤åç§°', trigger: 'change' }]" label="设å¤åç§°" |
| | | prop="deviceId"> |
| | | <el-select v-model="form.deviceId" class="table_input" clearable filterable placeholder="设å¤åç§°" |
| | | size="small" @change="getCalibrationDateFun"> |
| | | <el-option v-for="item in equipOptions" :key="item.id" :label="item.deviceName" :value="item.id"> |
| | | {{ item.deviceName + item.managementNumber }} |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设å¤ç¼å·"> |
| | | <el-input v-model="form.managementNumber" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æè¿æ ¡åæ¥æ"> |
| | | <el-input v-model="form.lastCalibrationDate" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="䏿¬¡æ ¡åæ¥æ"> |
| | | <el-input v-model="form.nextCalibrationDate" disabled size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£æµè
" prop="recipientUser"> |
| | | <el-select v-model="form.testerId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ ¸æ¥äºº" prop="recipientUser"> |
| | | <el-select v-model="form.checkerId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="ç»è®º"> |
| | | <el-input v-model="form.conclusion" :rows="2" placeholder="请è¾å
¥å
容" type="textarea"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <div style="display: flex; justify-content: flex-end; margin-bottom: 0.5em"> |
| | | <el-button size="small" type="primary" @click="feMeasuredQuantityListAdd">æ°å¢</el-button> |
| | | </div> |
| | | <div> |
| | | <el-table :data="form.feMeasuredQuantityList" height="40vh" style="width: 100%; margin: auto"> |
| | | <el-table-column label="åºå·" type="index" width="80"></el-table-column> |
| | | <el-table-column align="center" label="æµå®éåç§°" min-width="180" prop="measuredQuantityLabel"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.measuredQuantityLabel" :rows="1" type="textarea"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="å¼" min-width="300" prop="name"> |
| | | <template> |
| | | <el-table-column align="center" label="A" min-width="100" prop="valueA"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.valueA" :rows="1"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="B" min-width="100" prop="valueB"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.valueB" :rows="1"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="C" min-width="100" prop="valueC"> |
| | | <template #default="{ row }"> |
| | | <el-input v-model="row.valueC" :rows="1"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="æä½" width="100"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="small" type="text" @click="feMeasuredQuantityListDelete(scope.row, scope.$index)"> |
| | | å é¤ |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getLaboratoryFacilityPowerStablePage, |
| | | deviceScopeSearch, |
| | | treeDevice, |
| | | selectUserCondition, |
| | | addLaboratoryFacilityPowerStable, |
| | | deleteFeMeasuredQuantity, |
| | | getFeMeasuredQuantityService, |
| | | deleteLaboratoryFacilityPowerStable, |
| | | exportFePowerStable |
| | | } from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | search: { |
| | | size: 10, |
| | | current: 1, |
| | | total: 0 |
| | | }, |
| | | tableData: [], |
| | | dialogVisible: false, |
| | | submitLoading: false, |
| | | form: { |
| | | testLocation: '', |
| | | testDate: '', |
| | | deviceId: '', |
| | | managementNumber: '', |
| | | lastCalibrationDate: '', |
| | | nextCalibrationDate: '', |
| | | testerId: '', |
| | | checkerId: '', |
| | | conclusion: '', |
| | | feMeasuredQuantityList: [] |
| | | }, |
| | | equipOptions: [], |
| | | cascaderList: [], |
| | | responsibleOptions: [] |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | }, |
| | | watch: { |
| | | dialogVisible(newVal) { |
| | | if (!newVal) { |
| | | this.form = { |
| | | deviceId: null, |
| | | feMeasuredQuantityList: [] |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | // åå§åè°ç¨ |
| | | initData() { |
| | | getLaboratoryFacilityPowerStablePage({ |
| | | ...this.search |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.search.total = res.data.total; |
| | | } |
| | | }) |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.search.size = val; |
| | | this.initData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.search.current = val; |
| | | this.initData(); |
| | | }, |
| | | // çµæºç¨³å®æ§ è¡¨æ ¼ä¸çè¡å é¤æé® |
| | | deleteRowFun(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteLaboratoryFacilityPowerStable({ powerStableId: row.powerStableId }).then(res => { |
| | | this.$message.success('å 餿åï¼') |
| | | this.initData() |
| | | }) |
| | | }) |
| | | }, |
| | | openAddDia() { |
| | | this.dialogVisible = true |
| | | this.getEquipOptions() |
| | | }, |
| | | // è·åææè®¾å¤ |
| | | getEquipOptions() { |
| | | this.equipOptions = [] |
| | | deviceScopeSearch({ status: '0' }).then(res => { |
| | | if (res.code === 200 && res.data) { |
| | | this.equipOptions = res.data |
| | | } |
| | | }).catch(error => { |
| | | console.error(error) |
| | | }) |
| | | }, |
| | | // çµæºç¨³å®æ§-æå¼å¼¹æ¡è°ç¨è®¾å¤æ¥å£ï¼æ¥è¯¢ä½¿ç¨çè®¾å¤ |
| | | openDialog() { |
| | | treeDevice().then(res => { |
| | | this.cascaderList = res.data; |
| | | }) |
| | | this.$nextTick(() => { |
| | | this.$refs['form'].clearValidate() |
| | | }) |
| | | this.getUserList() |
| | | }, |
| | | // |
| | | getCalibrationDateFun(val) { |
| | | const index = this.equipOptions.findIndex(item => item.id === val) |
| | | if (index > -1) { |
| | | this.form.managementNumber = this.equipOptions[index].managementNumber |
| | | this.form.lastCalibrationDate = this.equipOptions[index].lastCalibrationDate |
| | | this.form.nextCalibrationDate = this.equipOptions[index].nextCalibrationDate |
| | | } |
| | | }, |
| | | // çµæºç¨³å®æ§-æµå®éå¼¹æ¡ä¸è¡¨æ ¼çå é¤è¡ |
| | | feMeasuredQuantityListDelete(row, index) { |
| | | if (row.measuredQuantityId) { |
| | | deleteFeMeasuredQuantity({ measuredQuantityId: row.measuredQuantityId }).then(res => { |
| | | if (res.code === 201) return |
| | | this.form.feMeasuredQuantityList.splice(index, 1) |
| | | this.$message.success('å 餿åï¼') |
| | | }) |
| | | } else { |
| | | this.form.feMeasuredQuantityList.splice(index, 1) |
| | | this.$message.success('å 餿åï¼') |
| | | } |
| | | }, |
| | | // çµæºç¨³å®æ§-æµå®éè¡¨æ ¼æ°å¢è¡ |
| | | feMeasuredQuantityListAdd() { |
| | | const obj = { |
| | | measuredQuantityLabel: null, |
| | | valueA: null, |
| | | valueB: null, |
| | | valueC: null, |
| | | } |
| | | this.form.feMeasuredQuantityList.push(obj) |
| | | }, |
| | | // çµæºç¨³å®æ§ æ°å¢ |
| | | addPowerSupplyStability() { |
| | | this.submitLoading = true |
| | | this.$refs.form.validate((valid) => { |
| | | if (valid) { |
| | | addLaboratoryFacilityPowerStable(this.form).then(res => { |
| | | this.submitLoading = false |
| | | if (res.code === 200) { |
| | | this.initData() |
| | | this.dialogVisible = false |
| | | } |
| | | }).catch(error => { |
| | | this.submitLoading = false |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | // å¯¼åº |
| | | downLoadPost(row) { |
| | | exportFePowerStable({ powerStableId: row.powerStableId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, 'çµæºç¨³å®æ§.docx') |
| | | }) |
| | | }, |
| | | // çµæºç¨³å®æ§ ç¹å»è¡ç¼è¾è§¦å |
| | | edit(row) { |
| | | getFeMeasuredQuantityService({ powerStableId: row.powerStableId }).then((res => { |
| | | this.form = { ...row } |
| | | this.form.feMeasuredQuantityList = res.data; |
| | | this.dialogVisible = true |
| | | })) |
| | | }, |
| | | // è·åè´è´£äººä¿¡æ¯æ¥å£ |
| | | getUserList() { |
| | | selectUserCondition().then(res => { |
| | | if (res.code == 200) { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | id: a.id, |
| | | name: a.name |
| | | }) |
| | | }) |
| | | this.responsibleOptions = data |
| | | } |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .header { |
| | | height: 3em; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <div class="header"> |
| | | <div>è¯éªåºå</div> |
| | | <div> |
| | | åç§°ï¼ |
| | | <el-input v-model="search.testAreaName" clearable size="small" style="width: 120px"></el-input> |
| | | <el-button size="small" type="primary" @click="initData">æ¥è¯¢</el-button> |
| | | <el-button size="small" type="primary" @click="clickAdd">æ° å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData" height="calc(100vh - 19em)" highlight-current-row style="width: 100%" |
| | | @row-click="clickRow"> |
| | | <el-table-column label="åºå·" type="index" width="60" align="center"></el-table-column> |
| | | <el-table-column label="æåº¦æ¶é´" min-width="180" prop="monthDate"></el-table-column> |
| | | <el-table-column label="è¯éªåºååç§°" min-width="180" prop="testAreaName"></el-table-column> |
| | | <el-table-column label="ç¡®è®¤ç¶æ" min-width="180" prop="isAffirm"> |
| | | <template slot-scope="scope"> |
| | | <el-tag type="danger" v-if="scope.row.isAffirm == 0">æªç¡®è®¤</el-tag> |
| | | <el-tag type="success" v-if="scope.row.isAffirm == 1">已确认</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å¢è¡¥ä¿¡æ¯" min-width="180" prop="subjoin"></el-table-column> |
| | | <el-table-column fixed="right" label="æä½" min-width="180" align="center"> |
| | | <template v-slot="scope"> |
| | | <el-button size="small" type="text" @click="downLoadPost(scope.row)">导åº</el-button> |
| | | <el-button size="small" type="text" @click="edit(scope.row)">ç¼è¾</el-button> |
| | | <el-button :disabled="scope.row.isAffirm === '1'" size="small" type="text" |
| | | @click="openApprovalDialog(scope.row)">确认</el-button> |
| | | <el-button size="small" type="text" @click="deleteRowFun(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="header"> |
| | | <div>温湿度记å½ï¼{{ saveRow.monthDate }}</div> |
| | | <div> |
| | | <el-button v-if="saveRow.monthDate" size="small" type="primary" @click="dialogVisible1 = true">æ° |
| | | å¢</el-button> |
| | | </div> |
| | | </div> |
| | | <el-table :data="tableData1" height="calc(100vh - 18em)" style="width: 100%"> |
| | | <el-table-column label="åºå·" type="index" width="60" align="center"></el-table-column> |
| | | <el-table-column label="æ¥æ" min-width="100" prop="recordDate"></el-table-column> |
| | | <el-table-column align="center" label="ä¸å" min-width="200"> |
| | | <template> |
| | | <el-table-column label="æ¶é´" min-width="110" prop="morningTestTime" |
| | | show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="温度" min-width="80" prop="morningTemp" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="湿度" min-width="80" prop="morningHum" show-overflow-tooltip></el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è®°å½å" min-width="100" prop="morningRecorderUser"></el-table-column> |
| | | <el-table-column align="center" label="ä¸å" min-width="200"> |
| | | <template> |
| | | <el-table-column label="æ¶é´" min-width="110" prop="afternoonTime" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="温度" min-width="80" prop="afternoonTemp" show-overflow-tooltip></el-table-column> |
| | | <el-table-column label="湿度" min-width="80" prop="afternoonHum" show-overflow-tooltip></el-table-column> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è®°å½å" min-width="100" prop="afternoonRecorderUser"></el-table-column> |
| | | <el-table-column label="夿³¨" min-width="100" prop="note" show-overflow-tooltip></el-table-column> |
| | | <el-table-column fixed="right" label="æä½" min-width="100"> |
| | | <template v-slot="scope"> |
| | | <el-button size="small" type="text" @click="edit1(scope.row)">ç¼è¾</el-button> |
| | | <el-button size="small" type="text" @click="deleteRowFun1(scope.row)">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search1.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search1.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange1" |
| | | @current-change="handleCurrentChange1"> |
| | | </el-pagination> |
| | | </el-col> |
| | | </el-row> |
| | | <el-dialog :visible.sync="dialogVisible" title="æç¤º" width="50%"> |
| | | <div style="height: 20vh;"> |
| | | <el-form ref="form" :model="form" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥æåº¦æ¶é´', trigger: 'blur' }]" label="æåº¦æ¶é´" |
| | | prop="monthDate"> |
| | | <el-date-picker v-model="form.monthDate" format="yyyy-MM" placeholder="éæ©æä»½" size="small" |
| | | style="width: 100%" type="month" value-format="yyyy-MM"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item :rules="[{ required: true, message: '请è¾å
¥è¯éªåºå', trigger: 'blur' }]" label="è¯éªåºå" |
| | | prop="testAreaName"> |
| | | <el-input v-model="form.testAreaName"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="dialogVisible1" title="æç¤º" width="50%" @open="openDialog"> |
| | | <div style="height: 40vh;"> |
| | | <el-form ref="form1" :model="form1" label-width="120px"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="æ¥æ"> |
| | | <el-date-picker v-model="form1.recordDate" format="yyyy-MM-dd" placeholder="è¯·éæ©æ¥æ" size="small" |
| | | style="width: 50%" type="date" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸åæ¶é´"> |
| | | <el-time-picker v-model="form1.morningTestTime" size="small" value-format="HH:mm:ss" format="HH:mm:ss" |
| | | style="width: 100%" placeholder="è¯·éæ©æ¶é´"> |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸å温度"> |
| | | <el-input v-model="form1.morningTemp" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸å湿度"> |
| | | <el-input v-model="form1.morningHum" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸åè®°å½å"> |
| | | <el-select v-model="form1.morningRecorderId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸åæ¶é´"> |
| | | <el-time-picker v-model="form1.afternoonTime" size="small" value-format="HH:mm:ss" format="HH:mm:ss" |
| | | style="width: 100%" placeholder="è¯·éæ©æ¶é´"> |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸å温度"> |
| | | <el-input v-model="form1.afternoonTemp" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸å湿度"> |
| | | <el-input v-model="form1.afternoonHum" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ä¸åè®°å½å"> |
| | | <el-select v-model="form1.afternoonRecorderId" clearable filterable placeholder="è¯·éæ©" size="small" |
| | | style="width: 100%;"> |
| | | <el-option v-for="item in responsibleOptions" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨"> |
| | | <el-input v-model="form1.note" :rows="2" placeholder="请è¾å
¥å
容" type="textarea"> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible1 = false">å æ¶</el-button> |
| | | <el-button type="primary" :loading="submitLoading" @click="addPowerSupplyStability1">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="approvalDialog" title="确认" width="30%" @close="subjoin = ''"> |
| | | <span> |
| | | å¢è¡¥ä¿¡æ¯ï¼ |
| | | <el-input v-model="subjoin" type="textarea"></el-input> |
| | | </span> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button :loading="approvalLoading" @click="subjoin = '', approvalDialog = false">ä¸ç¡®è®¤</el-button> |
| | | <el-button :loading="approvalLoading" type="primary" @click="handleApproval">确 认</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getFeTempHumDate, |
| | | addFeTempHumDate, |
| | | getFeTempHumRecordPage, |
| | | addFeTempHumRecord, |
| | | selectUserCondition, |
| | | deleteFeTempHumRecord, |
| | | deleteFeTempHumDate, |
| | | exportTemperatureAndHumidityRecords, |
| | | affirmFeTempHumDate |
| | | } from '@/api/cnas/resourceDemand/facilitiesEnvironment/facilitiesAndEnvironment' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | search: { |
| | | size: 20, |
| | | current: 1, |
| | | total: 0, |
| | | testAreaName: '' |
| | | }, |
| | | search1: { |
| | | size: 20, |
| | | current: 1, |
| | | total: 0 |
| | | }, |
| | | tableData: [], |
| | | tableData1: [], |
| | | dialogVisible: false, |
| | | submitLoading: false, |
| | | dialogVisible1: false, |
| | | form: {}, |
| | | form1: {}, |
| | | saveRow: {}, |
| | | responsibleOptions: [], |
| | | approvalDialog: false, |
| | | approvalLoading: false, |
| | | subjoin: '', |
| | | approvalRow: {}, |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.initData() |
| | | }, |
| | | watch: { |
| | | dialogVisible(newVal) { |
| | | if (!newVal) { |
| | | this.form = { |
| | | } |
| | | } |
| | | }, |
| | | dialogVisible1(newVal) { |
| | | if (!newVal) { |
| | | this.form1 = { |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | openApprovalDialog(row) { |
| | | this.approvalDialog = true |
| | | this.approvalRow = row |
| | | }, |
| | | handleApproval() { |
| | | this.approvalLoading = true |
| | | const params = { |
| | | dateId: this.approvalRow.dateId, |
| | | subjoin: this.subjoin, |
| | | } |
| | | affirmFeTempHumDate(params).then(res => { |
| | | this.approvalLoading = false |
| | | if (res.code === 200) { |
| | | this.$message.success('确认æåï¼') |
| | | this.approvalDialog = false |
| | | this.initData() |
| | | } |
| | | }).catch(err => { |
| | | this.approvalDialog = false |
| | | }) |
| | | }, |
| | | openDialog() { |
| | | selectUserCondition().then(res => { |
| | | if (res.code == 200) { |
| | | this.responsibleOptions = res.data |
| | | } |
| | | }) |
| | | }, |
| | | addPowerSupplyStability() { |
| | | this.$refs.form.validate((valid) => { |
| | | if (valid) { |
| | | this.submitLoading = true |
| | | addFeTempHumDate(this.form).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ°å¢æå!') |
| | | this.submitLoading = false |
| | | this.initData() |
| | | this.dialogVisible = false |
| | | } |
| | | }).catch(err => { |
| | | this.submitLoading = false |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | addPowerSupplyStability1() { |
| | | if (!this.saveRow) { |
| | | this.$message.warning("è¯·éæ©è¯éªåºåï¼") |
| | | return |
| | | } |
| | | this.$refs.form1.validate((valid) => { |
| | | this.submitLoading = true |
| | | if (valid) { |
| | | this.form1.dateId = this.saveRow.dateId |
| | | addFeTempHumRecord(this.form1).then(res => { |
| | | if (res.code === 200) { |
| | | this.$message.success('æ°å¢æå!') |
| | | this.submitLoading = false |
| | | this.initData1(this.saveRow.dateId) |
| | | this.dialogVisible1 = false |
| | | } |
| | | }).catch(err => { |
| | | this.submitLoading = false |
| | | }) |
| | | } |
| | | }); |
| | | }, |
| | | clickRow(row) { |
| | | this.saveRow = row |
| | | this.initData1(row.dateId) |
| | | }, |
| | | edit(row) { |
| | | this.form = { ...row } |
| | | this.dialogVisible = true |
| | | }, |
| | | deleteRowFun(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteFeTempHumDate({ dateId: row.dateId }).then(res => { |
| | | this.$message.success('å 餿åï¼') |
| | | this.initData() |
| | | }) |
| | | }) |
| | | }, |
| | | edit1(row) { |
| | | this.form1 = { ...row } |
| | | this.dialogVisible1 = true |
| | | }, |
| | | // å¯¼åº |
| | | downLoadPost(row) { |
| | | exportTemperatureAndHumidityRecords({ dateId: row.dateId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, '温湿度记å½.docx') |
| | | }) |
| | | }, |
| | | deleteRowFun1(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteFeTempHumRecord({ tempHumId: row.tempHumId }).then(res => { |
| | | this.$message.success('å 餿åï¼') |
| | | this.initData1(this.saveRow.dateId) |
| | | }) |
| | | }) |
| | | }, |
| | | initData() { |
| | | getFeTempHumDate({ |
| | | ...this.search, |
| | | ...this.search |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records; |
| | | this.search.total = res.data.total; |
| | | if (res.data.records.length === 0) { |
| | | this.tableData1 = [] |
| | | this.saveRow.monthDate = '' |
| | | } |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | initData1(dateId) { |
| | | let form = { dateId: dateId } |
| | | getFeTempHumRecordPage({ |
| | | ...this.search1, |
| | | ...form |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.tableData1 = res.data.records; |
| | | this.search1.total = res.data.total; |
| | | } |
| | | }); |
| | | }, |
| | | handleSizeChange(val) { |
| | | this.search.size = val; |
| | | this.initData(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.search.current = val; |
| | | this.initData(); |
| | | }, |
| | | handleSizeChange1(val) { |
| | | this.search1.size = val; |
| | | this.initData1(); |
| | | }, |
| | | handleCurrentChange1(val) { |
| | | this.search1.current = val; |
| | | this.initData1(); |
| | | }, |
| | | clickAdd() { |
| | | this.dialogVisible = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .header { |
| | | height: 3em; |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <el-dialog v-loading="diaLoading" :close-on-click-modal="false" |
| | | :close-on-press-escape="false" |
| | | :visible.sync="formDia" |
| | | title="ä¸åºå¤çä¿¡æ¯" |
| | | width="80%" @close="closeThreeWastesDia"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="auto"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨" prop="purposes"> |
| | | <el-input v-model="form.remark" clearable size="small"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form> |
| | | <div style="text-align: right;margin-bottom: 10px"> |
| | | <el-button size="small" type="primary" @click="addRow">æ·»å </el-button> |
| | | <el-button size="small" type="danger" @click="clearTable">æ¸
空</el-button> |
| | | </div> |
| | | <el-table :data="wastesDetailList" border height="300" style="width: 100%"> |
| | | <el-table-column align="center" label="åºå·" type="index" width="60" /> |
| | | <el-table-column header-align="center" label="æ¥æ¶äºº" prop="acceptor"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.acceptor" size="small"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="æ¥æ¶åä½" prop="receivingUnit"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.receivingUnit" size="small"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="åç§°" prop="designation"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.designation" size="small"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="移交人" prop="transferPeople" width="180"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.transferPeople" size="small"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="ä½ç§¯" prop="volume" width="180"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-model="row.volume" size="small"/> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column header-align="center" label="éå¤çæ¥æ" prop="deliveryDate" width="180"> |
| | | <template slot-scope="{row}"> |
| | | <!-- <el-input v-model="row.deliveryDate" size="small"/> --> |
| | | <el-date-picker |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 100%" |
| | | format="yyyy-MM-dd" |
| | | size="small" |
| | | v-model="row.deliveryDate" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ"> |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="closeThreeWastesDia">å æ¶</el-button> |
| | | <el-button :loading="loading" type="primary" @click="handleEdit">æ 交</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getInternalWastesOne, |
| | | addInternalWastes, |
| | | updateInternalWastes |
| | | } from '@/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes' |
| | | |
| | | export default { |
| | | name: 'three-wastes-dialog', |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: {}, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | formDia: false, |
| | | diaLoading: false, |
| | | loading: false, |
| | | form: { |
| | | remark: '', |
| | | wastesId: '', |
| | | }, |
| | | rules: { |
| | | remark: [{required: false, message: '请填å夿³¨',trigger: 'blur'}], |
| | | }, |
| | | wastesDetailList: [], |
| | | operationType: '', |
| | | }; |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // æå¼å¼¹æ¡ |
| | | openDia (type, row) { |
| | | this.formDia = true |
| | | this.operationType = type |
| | | if (type !== 'add') { |
| | | this.searchInfo(row) |
| | | } |
| | | }, |
| | | // æ¥è¯¢è¯¦æ
|
| | | searchInfo (row) { |
| | | this.diaLoading = true |
| | | getInternalWastesOne({wastesId: row.wastesId}).then(res => { |
| | | this.diaLoading = false |
| | | if (res.code === 200){ |
| | | this.form = res.data |
| | | this.wastesDetailList = this.form.wastesDetailList |
| | | } |
| | | }).catch(err => { |
| | | console.log(err) |
| | | this.diaLoading = false |
| | | }) |
| | | }, |
| | | // æäº¤å¼¹æ¡æ°æ® |
| | | handleEdit () { |
| | | this.$refs['form'].validate((valid) => { |
| | | if (valid) { |
| | | if (this.wastesDetailList.length === 0) { |
| | | this.$message.warning('请添å è¡¨æ ¼æ°æ®') |
| | | return |
| | | } |
| | | this.loading = true |
| | | const internalImplementDto = this.HaveJson(this.form) |
| | | internalImplementDto.wastesDetailList = this.HaveJson(this.wastesDetailList) |
| | | if (this.operationType === 'add') { |
| | | addInternalWastes(internalImplementDto).then(res => { |
| | | this.loading = false |
| | | if (res.code === 200){ |
| | | this.$message.success('æä½æå') |
| | | this.closeThreeWastesDia() |
| | | } |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.loading = false |
| | | }) |
| | | } else if (this.operationType === 'edit') { |
| | | updateInternalWastes(internalImplementDto).then(res => { |
| | | this.loading = false |
| | | if (res.code === 200){ |
| | | this.$message.success('æä½æå') |
| | | this.closeThreeWastesDia() |
| | | } |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.loading = false |
| | | }) |
| | | } |
| | | } else { |
| | | console.log('error submit!!'); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | // å¢å è¡¨æ ¼è¡æ°æ® |
| | | addRow () { |
| | | this.wastesDetailList.push({ |
| | | acceptor: '', |
| | | receivingUnit: '', |
| | | designation: '', |
| | | transferPeople: '', |
| | | volume: '', |
| | | deliveryDate: '', |
| | | }) |
| | | }, |
| | | // æ¸
ç©ºè¡¨æ ¼æ°æ® |
| | | clearTable () { |
| | | this.wastesDetailList = [] |
| | | }, |
| | | closeThreeWastesDia () { |
| | | this.$refs.form.resetFields(); |
| | | this.formDia = false |
| | | this.$emit('closeThreeWastesDia') |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="capacity-scope"> |
| | | <div class="search"> |
| | | <div> |
| | | <el-form :model="searchForm" ref="searchForm" size="small" :inline="true"> |
| | | <el-form-item label="夿³¨" prop="remark"> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="searchForm.remark"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="searchList">æ¥ è¯¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetSearchForm">é ç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div> |
| | | <el-button size="medium" type="primary" @click="openFormDia('add')">æ° å¢</el-button> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="table"> |
| | | <lims-table :tableData="tableData" :column="tableColumn" :height="'calc(100vh - 280px)'" @pagination="pagination" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <three-wastes-dialog v-if="threeWastesDia" ref="threeWastesDia" |
| | | @closeThreeWastesDia="closeThreeWastesDia"></three-wastes-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import ThreeWastesDialog from './three-wastes-dialog.vue'; |
| | | import limsTable from '@/components/Table/lims-table.vue' |
| | | import { |
| | | pageInternalWastes, |
| | | removeStandardSubstance, |
| | | exportInternalWastes |
| | | } from '@/api/cnas/resourceDemand/facilitiesEnvironment/internalWastes' |
| | | export default { |
| | | name: 'a6-three-wastes-treatment', |
| | | // import å¼å
¥çç»ä»¶éè¦æ³¨å
¥å°å¯¹è±¡ä¸æè½ä½¿ç¨ |
| | | components: { |
| | | ThreeWastesDialog, |
| | | limsTable |
| | | }, |
| | | data() { |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | searchForm: { |
| | | remark: '', |
| | | }, |
| | | tableColumn: [ |
| | | { |
| | | label: 'å建æ¶é´', |
| | | prop: 'createTime', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'å建人', |
| | | prop: 'createUserName', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: '夿³¨', |
| | | prop: 'remark', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'ä¿®æ¹æ¶é´', |
| | | prop: 'updateTime', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | label: 'ä¿®æ¹äºº', |
| | | prop: 'updateUserName', |
| | | minWidth: '100' |
| | | }, |
| | | { |
| | | dataType: 'action', |
| | | fixed: 'right', |
| | | minWidth: '220', |
| | | label: 'æä½', |
| | | operation: [ |
| | | { |
| | | name: '导åº', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.handleDown(row) |
| | | } |
| | | }, |
| | | { |
| | | name: 'ç¼è¾', |
| | | type: 'text', |
| | | clickFun: (row) => { |
| | | this.openFormDia('edit', row); |
| | | }, |
| | | }, |
| | | { |
| | | name: 'å é¤', |
| | | type: 'text', |
| | | color: '#f56c6c', |
| | | clickFun: (row) => { |
| | | this.delPlan(row) |
| | | }, |
| | | } |
| | | ] |
| | | } |
| | | ], |
| | | tableData: [], |
| | | tableLoading: false, |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 1 |
| | | }, |
| | | total: 0, |
| | | threeWastesDia: false |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.searchList() |
| | | }, |
| | | // æ¹æ³éå |
| | | methods: { |
| | | // æ¥è¯¢å表 |
| | | searchList() { |
| | | this.tableLoading = true |
| | | pageInternalWastes({ ...this.page, ...this.searchForm }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.tableData = res.data.records |
| | | this.page.total = res.data.total |
| | | } |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | this.tableLoading = false |
| | | }) |
| | | }, |
| | | // å é¤ |
| | | delPlan(row) { |
| | | this.$confirm('æ¤æä½å°æ°¸ä¹
å é¤è¯¥æ°æ®, æ¯å¦ç»§ç»?', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | this.tableLoading = true |
| | | removeStandardSubstance({ wastesId: row.wastesId }).then(res => { |
| | | this.tableLoading = false |
| | | if (res.code === 200) { |
| | | this.$message.success('å 餿å') |
| | | this.searchList() |
| | | } |
| | | }).catch(err => { |
| | | this.tableLoading = false |
| | | console.log('err---', err); |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已忶å é¤' |
| | | }); |
| | | }); |
| | | }, |
| | | // æ°å¢ï¼ç¼è¾ï¼æ¹åå¼¹æ¡ |
| | | openFormDia(type, row) { |
| | | this.threeWastesDia = true |
| | | this.$nextTick(() => { |
| | | this.$refs.threeWastesDia.openDia(type, row) |
| | | }) |
| | | }, |
| | | // å¯¼åº |
| | | handleDown(row) { |
| | | exportInternalWastes({ wastesId: row.wastesId }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/msword' }); |
| | | this.$download.saveAs(blob, 'ä¸åºå¤ç导åº.docx') |
| | | }) |
| | | }, |
| | | closeThreeWastesDia() { |
| | | this.threeWastesDia = false |
| | | this.searchList() |
| | | }, |
| | | // éç½®æ¥è¯¢æ¡ä»¶ |
| | | resetSearchForm() { |
| | | this.searchForm.remark = ''; |
| | | this.searchList() |
| | | }, |
| | | // å页忢 |
| | | pagination(page) { |
| | | this.page.size = page.limit |
| | | this.searchList(); |
| | | }, |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .search { |
| | | height: 46px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .capacity-scope { |
| | | padding: 20px; |
| | | } |
| | | </style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="main"> |
| | | <el-tabs v-model="activeName" :lazy="true" type="border-card"> |
| | | <el-tab-pane label="设æ½åç¯å¢æ¡ä»¶è¦æ±" name="设æ½åç¯å¢æ¡ä»¶è¦æ±"> |
| | | <FacilitiesEnvironmentalConditions v-if="activeName === '设æ½åç¯å¢æ¡ä»¶è¦æ±'" /> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="ä¸åºå¤ç" name="ä¸åºå¤ç"> |
| | | <a6-three-wastes-treatment v-if="activeName === 'ä¸åºå¤ç'"></a6-three-wastes-treatment> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="è¿åºäººå管ç" name="è¿åºäººå管ç"> |
| | | <personnel-management v-if="activeName === 'è¿åºäººå管ç'"></personnel-management> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import FacilitiesEnvironmentalConditions from "../facilitiesEnvironment/component/facilities-environmental-conditions.vue"; |
| | | // // 夿¥äººå管ç |
| | | // import ExternalPersonnelManagement from "../facilitiesEnvironment/component/Personnel-management.vue"; |
| | | import A6ThreeWastesTreatment from '../facilitiesEnvironment/component/three-wastes-treatment.vue'; |
| | | import PersonnelManagement from '../facilitiesEnvironment/component/Personnel-management.vue'; |
| | | |
| | | export default { |
| | | components: { |
| | | // PersonnelManagement, |
| | | A6ThreeWastesTreatment, |
| | | PersonnelManagement, |
| | | FacilitiesEnvironmentalConditions |
| | | }, |
| | | data() { |
| | | return { |
| | | activeName: '设æ½åç¯å¢æ¡ä»¶è¦æ±', |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .main { |
| | | padding: 15px 0; |
| | | width: 100%; |
| | | border-radius: 15px; |
| | | } |
| | | |
| | | >>>.el-tabs--border-card>.el-tabs__content { |
| | | height: calc(100vh - 10em) !important; |
| | | padding: 0; |
| | | } |
| | | </style> |
| | |
| | | <el-form-item label="ç¸å
³éä»¶" prop="file"> |
| | | <div class="table-between"> |
| | | <el-input v-model="acceptance.file" style="width: 80%;" disabled></el-input> |
| | | <el-upload |
| | | ref="upload" |
| | | style="float: right;" |
| | | :headers="uploadHeader" |
| | | :action="action" |
| | | :show-file-list="false" |
| | | :on-success="onSuccess" |
| | | > |
| | | <el-upload ref="upload" style="float: right;" :headers="uploadHeader" :action="action" |
| | | :show-file-list="false" :on-success="onSuccess"> |
| | | <el-button type="primary"> |
| | | éä»¶ä¸ä¼ |
| | | </el-button> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¸
å" prop="substanceId" |
| | | :rule="[{ required: true, message: 'è¯·éæ©æ¸
å', trigger: 'change' }]"> |
| | | <el-form-item label="æ¸
å" prop="substanceId" :rule="[{ required: true, message: 'è¯·éæ©æ¸
å', trigger: 'change' }]"> |
| | | <el-select v-model="acceptance.substanceId" placeholder="è¯·éæ©" style="width: 100%"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å°è´§æ¥æ" prop="arriveDate"> |
| | | <el-date-picker |
| | | v-model="acceptance.arriveDate" |
| | | align="right" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | style="width: 100%" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | <el-date-picker v-model="acceptance.arriveDate" align="right" type="date" placeholder="éæ©æ¥æ" |
| | | style="width: 100%" value-format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | :page="page" :tableLoading="tableLoading"> |
| | | <template slot="action" slot-scope="{ row }"> |
| | | <el-button type="text" @click="edit(row)">ç¼è¾</el-button> |
| | | <el-button type="text" style="color: red;" @click="del(row)">å é¤</el-button> |
| | | </template> |
| | | </lims-table> |
| | | </div> |
| | |
| | | import limsTable from '@/components/Table/lims-table.vue' |
| | | import AddRecord from './component/AddRecord.vue'; |
| | | import { |
| | | getPageAcceptance, getAcceptanceDetails, exportFeStandardSubstanceAcceptance, updateAcceptance, addAcceptance |
| | | getPageAcceptance, deleteAcceptance, exportFeStandardSubstanceAcceptance |
| | | } from '@/api/cnas/resourceDemand/standardMaterialAccept/standardMaterialAccept' |
| | | export default { |
| | | components: { |
| | |
| | | this.page.size = page.limit |
| | | this.getTableData() |
| | | }, |
| | | del(row) { |
| | | this.$confirm('æ¯å¦ç¡®å®å é¤', 'æç¤º', { |
| | | confirmButtonText: 'ç¡®å®', |
| | | cancelButtonText: 'åæ¶', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | deleteAcceptance(row.id).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success("å 餿å") |
| | | this.getTableData(); |
| | | } |
| | | }) |
| | | }) |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | |
| | | }, |
| | | // ä¸è½½ |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileUrl) |
| | | }, |
| | | // å é¤ |
| | | delete(row) { |
| | |
| | | <table border="1" cellspacing="10" class="tables"> |
| | | <tr> |
| | | <td class="td-title"> |
| | | <p>å¹è®è®¡åï¼</p> |
| | | </td> |
| | | <td class="td-info" colspan="3"> |
| | | <el-select v-model="form.personTrainingDetailedId" clearable filterable style="width: 100%" disabled |
| | | placeholder="è¯·éæ©" size="small"> |
| | | <el-option v-for="item in yearTrainingDetailed" :key="item.id" :label="item.trainingObjectives" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </td> |
| | | </tr> |
| | | <tr> |
| | | <td class="td-title"> |
| | | <p>ä¸åæ ¼æå离äºå®çæè¿°ï¼</p> |
| | | </td> |
| | | <td class="td-info" colspan="3"> |
| | |
| | | <script> |
| | | import { |
| | | getSuperviseDetailCorrect, |
| | | getThisYearTrainingDetailed, |
| | | } from '@/api/cnas/systemManagement/correctiveAction.js' |
| | | export default { |
| | | name: 'correctiveInfo', |
| | |
| | | // è¿éåæ¾æ°æ® |
| | | return { |
| | | formDia: false, |
| | | yearTrainingDetailed: [], |
| | | form: { |
| | | superviseDetailsId: '', |
| | | raiseResult: '', |
| | |
| | | this.formDia = true |
| | | this.searchInfo(row) |
| | | this.form.superviseDetailsId = row.superviseDetailsId |
| | | this.getYearTrainingDetailed() // è·åå¹è®è®¡å |
| | | }, |
| | | // æ¥è¯¢çæ§è®¡å详æ
宿½ä¿¡æ¯ |
| | | searchInfo(row) { |
| | |
| | | this.form = res.data |
| | | }).catch(err => { |
| | | console.log('err---', err); |
| | | }) |
| | | }, |
| | | getYearTrainingDetailed() { |
| | | getThisYearTrainingDetailed().then(res => { |
| | | this.yearTrainingDetailed = res.data |
| | | }) |
| | | }, |
| | | // å
³éå¼¹æ¡ |
| | |
| | | }, |
| | | // ä¸è½½å®¢æ·ç¦å»º |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName); |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileName) |
| | | }, |
| | | // å é¤å®¢æ·åæéä»¶ |
| | | delFile(row) { |
| | |
| | | }) |
| | | }, |
| | | handleDown(row) { |
| | | if (!row.url) return this.$message.warning('æä»¶æªä¸ä¼ ') |
| | | let url = this.javaApi + '/word/' + row.url |
| | | this.$download.saveAs(url, row.url); |
| | | this.$download.saveAs(row.url, row.url) |
| | | }, |
| | | async uploadPDF(pdfBlob) { |
| | | const formData = new FormData(); |
| | |
| | | }, |
| | | // ä¸è½½éä»¶ |
| | | handleDown(row) { |
| | | if (!row.alterAfterUrl) return this.$message.warning('æä»¶æªä¸ä¼ ') |
| | | let url = this.javaApi + '/word/' + row.alterAfterUrl |
| | | this.$download.saveAs(url, row.alterAfterUrl) |
| | | this.$download.saveAs(row.alterAfterUrl, row.alterAfterUrl) |
| | | }, |
| | | // æå¼å®¡æ ¸å¼¹æ¡ |
| | | handleCheck(row) { |
| | |
| | | }, |
| | | // ä¸è½½æä»¶ |
| | | handleDown(row) { |
| | | if (!row.url) return this.$message.warning('æä»¶æªä¸ä¼ ') |
| | | let url = this.javaApi + '/word/' + row.url |
| | | this.$download.saveAs(url, row.url); |
| | | this.$download.saveAs(row.url, row.url) |
| | | }, |
| | | // æ¥çæä»¶ |
| | | handleLook(row) { |
| | |
| | | // queryParams |
| | | exportOutManageRecordCheck(this.queryParams).then(res => { |
| | | this.outLoading = false |
| | | if (res.code == 201) return this.$message.error('导åºå¤±è´¥') |
| | | let url = this.javaApi + '/word/' + res.data |
| | | this.$download.saveAs(url, 'æä»¶å®¡æ¹è®°å½') |
| | | this.$download.saveAs(row.data, 'æä»¶å®¡æ¹è®°å½') |
| | | }) |
| | | }, |
| | | getAuthorizedPerson() { |
| | |
| | | this.outLoading = true |
| | | exportOutManageRecordCancel(this.queryParams).then(res => { |
| | | this.outLoading = false |
| | | if (res.code == 201) return this.$message.error('导åºå¤±è´¥') |
| | | let url = this.javaApi + '/word/' + res.data |
| | | this.$download.saveAs(url, "ä½åºæä»¶éæ¯è®°å½"); |
| | | this.$download.saveAs(row.data, 'ä½åºæä»¶éæ¯è®°å½') |
| | | }) |
| | | }, |
| | | getList() { |
| | |
| | | this.outLoading = true |
| | | exportOutManageRecordIssueRecycle(this.queryParams).then(res => { |
| | | this.outLoading = false |
| | | if (res.code == 201) return this.$message.error('导åºå¤±è´¥') |
| | | let url = this.javaApi + '/word/' + res.data |
| | | this.$download.saveAs(url, 'æä»¶åæ¾ä¸åæ¶è®°å½') |
| | | this.$download.saveAs(row.data, 'æä»¶åæ¾ä¸åæ¶è®°å½') |
| | | }) |
| | | }, |
| | | getList() { |
| | |
| | | }).catch(err => { }); |
| | | }, |
| | | handleDown0(row) { |
| | | let url = this.javaApi + '/word/' + row.url |
| | | this.$download.saveAs(url, '夿¥æä»¶ç¡®è®¤è®°å½') |
| | | this.$download.saveAs(row.url, '夿¥æä»¶ç¡®è®¤è®°å½') |
| | | }, |
| | | // æäº¤ |
| | | handleSubmit(row) { |
| | |
| | | this.outLoading = true |
| | | exportOutManageRecordIntervals(this.queryParams).then(res => { |
| | | this.outLoading = false |
| | | if (res.code == 201) return this.$message.error('导åºå¤±è´¥') |
| | | let url = this.javaApi + 'word/' + res.message |
| | | this.$download.saveAs(url, "æä»¶å®æå®¡æ¥è®°å½"); |
| | | this.$download.saveAs(row.data, 'æä»¶å®æå®¡æ¥è®°å½') |
| | | }) |
| | | }, |
| | | getList() { |
| | |
| | | } |
| | | }, |
| | | handleDown0(row) { |
| | | let url = this.javaApi + '/word/' + row.url |
| | | this.$download.saveAs(url, "æææä»¶å®ææ£æ¥è®°å½"); |
| | | this.$download.saveAs(row.url, 'æææä»¶å®ææ£æ¥è®°å½') |
| | | }, |
| | | // æäº¤ |
| | | handleSubmit(row) { |
| | |
| | | this.outLoading = true |
| | | exportOutManageRecordAudit(this.queryParams).then(res => { |
| | | this.outLoading = false |
| | | if (res.code == 201) return this.$message.error('导åºå¤±è´¥') |
| | | let url = this.javaApi + '/word/' + res.data |
| | | this.$download.saveAs(url, "æä»¶ä¿®è®¢è¡¨"); |
| | | this.$download.saveAs(row.data, 'æä»¶ä¿®è®¢è¡¨') |
| | | }) |
| | | }, |
| | | getList() { |
| | |
| | | }, |
| | | // ä¸è½½ |
| | | upload(row) { |
| | | let url = ''; |
| | | if (row.type == 1) { |
| | | url = this.javaApi + '/img/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } else { |
| | | url = this.javaApi + '/word/' + row.fileUrl |
| | | this.$download.saveAs(url, row.fileName) |
| | | } |
| | | this.$download.saveAs(row.fileUrl, row.fileName) |
| | | }, |
| | | // å é¤ |
| | | delete(row) { |
| | |
| | | this.lookDialogVisible = true |
| | | }, |
| | | handleDown0(url, name) { |
| | | if (!url) return this.$message.warning('æä»¶æªä¸ä¼ ') |
| | | let url0 = this.javaApi + '/word/' + url |
| | | this.$download.saveAs(url0, name); |
| | | this.$download.saveAs(url, name) |
| | | } |
| | | } |
| | | }; |
| | |
| | | <template> |
| | | <div> |
| | | <div class="bg-1"> |
| | | <div style="margin: 5px 15px"> |
| | | <el-row class="title"> |
| | | <el-col :span="12" style="text-align: left">æ£éªä¸å</el-col> |
| | | <el-col :span="12" style="text-align: right"> |
| | | <el-button |
| | | size="medium" |
| | | type="primary" |
| | | @click="dialogVisible1 = true" |
| | | :loading="exportCheckedLoading" |
| | | >å¯¼åºæ£éªç»æ</el-button |
| | | > |
| | | <el-button size="medium" type="primary" @click="print" |
| | | >æ ç¾æå°</el-button |
| | | > |
| | | <el-button size="medium" type="primary" @click="dialogVisible1 = true" |
| | | :loading="exportCheckedLoading">å¯¼åºæ£éªç»æ</el-button> |
| | | <el-button size="medium" type="primary" @click="print">æ ç¾æå°</el-button> |
| | | <el-button size="medium" type="primary" @click="playOrder(1)" |
| | | >ä¸å</el-button |
| | | > |
| | | v-hasPermi="['business:order:add']">ä¸å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <basic-container> |
| | | <div class="search" :style="`height: ${more ? 130 : 80}px;`"> |
| | | <div class="search" :style="`height: ${more ? 100 : 50}px;`"> |
| | | <el-row :gutter="10" style="width: 100%"> |
| | | <el-col :span="20" style="display: flex; flex-wrap: wrap"> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">å§æç¼å·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.entrustCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.entrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | |
| | | å¤é¨å§æç¼å·ï¼ |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.outEntrustCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.outEntrustCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">æ ·ååç§°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.sampleName" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.sampleName" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">æ ·ååå·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.sampleModel" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.sampleModel" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%"> |
| | | <div class="search_label">æ ·åç¼å·ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.sampleCode" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.sampleCode" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 40%" v-if="more"> |
| | | <div class="search_label">ä¸åæ¶é´ï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="queryParams.startAndEndTime" |
| | | type="daterange" |
| | | size="small" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | value-format="yyyy-MM-dd" |
| | | clearable |
| | | placeholder="éæ©æ¥æ" |
| | | > |
| | | <el-date-picker style="width: 100%" v-model="queryParams.startAndEndTime" type="daterange" size="small" |
| | | range-separator="è³" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ" value-format="yyyy-MM-dd" |
| | | clearable placeholder="éæ©æ¥æ"> |
| | | </el-date-picker> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">ä¸å人ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.name" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">å·¥ç¨åç§°ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.engineering" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.engineering" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | <div class="search_thing" style="width: 20%" v-if="more"> |
| | | <div class="search_label">ç产åä½ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input |
| | | size="small" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | v-model="queryParams.production" |
| | | @keyup.enter.native="refreshTable()" |
| | | ></el-input> |
| | | <el-input size="small" placeholder="请è¾å
¥" clearable v-model="queryParams.production" |
| | | @keyup.enter.native="refreshTable()"></el-input> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <div class="search_thing"> |
| | | <el-button |
| | | type="text" |
| | | :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" |
| | | style="color: #3a7bfa" |
| | | @click="more = !more" |
| | | >{{ !more ? "æ´å¤" : "æ¶èµ·" }}</el-button |
| | | > |
| | | <el-button type="text" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3a7bfa" |
| | | @click="more = !more">{{ !more ? "æ´å¤" : "æ¶èµ·" }}</el-button> |
| | | <el-button size="small" @click="refresh()">é ç½®</el-button> |
| | | <el-button size="small" type="primary" @click="refreshTable()" |
| | | >æ¥ è¯¢</el-button |
| | | > |
| | | <el-button size="small" type="primary" @click="refreshTable()">æ¥ è¯¢</el-button> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </basic-container> |
| | | <basic-container> |
| | | <div style="width: 100%; height: 100%" v-show="active == 0"> |
| | | <div v-show="active == 0"> |
| | | <div class="table"> |
| | | <ul class="tab"> |
| | | <li |
| | | v-for="(m, i) in tabList" |
| | | :key="i + 'afgh'" |
| | | :class="{ active: i == tabIndex }" |
| | | @click="handleTab(m, i)" |
| | | > |
| | | <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)"> |
| | | {{ m.label }} |
| | | </li> |
| | | </ul> |
| | | <lims-table |
| | | :tableData="tableData" |
| | | :height="tableHeight + ''" |
| | | @pagination="pagination" |
| | | :column="column" |
| | | :page="page" |
| | | :tableLoading="tableLoading" |
| | | ></lims-table> |
| | | <lims-table :tableData="tableData" :height="tableHeight + ''" @pagination="pagination" :column="column" |
| | | :page="page" :tableLoading="tableLoading"></lims-table> |
| | | </div> |
| | | <!-- å®¡æ ¸ --> |
| | | <el-dialog |
| | | title="ä¸åå®¡æ ¸" |
| | | :visible.sync="verifyDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-dialog title="ä¸åå®¡æ ¸" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose"> |
| | | <p style="font-size: 16px; color: #333333" v-if="!isPass"> |
| | | å§æç¼å·<span style="color: #34bd66">ZTMS2023071001</span |
| | | >çä¿¡æ¯æ¯å¦éè¿ |
| | | å§æç¼å·<span style="color: #34bd66">ZTMS2023071001</span>çä¿¡æ¯æ¯å¦éè¿ |
| | | </p> |
| | | <el-form |
| | | :label-position="labelPosition" |
| | | :model="formData" |
| | | label-width="150px" |
| | | ref="ruleForm" |
| | | v-else |
| | | > |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else> |
| | | <el-form-item label="请è¾å
¥æ ·ååºä½å·ï¼"> |
| | | <el-input |
| | | v-model="formData.specificationModel" |
| | | size="small" |
| | | style="width: 60%" |
| | | ></el-input> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isPass"> |
| | | <el-button @click="handleClose">é å</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >é è¿</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">é è¿</el-button> |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">è¿ å</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ¤é --> |
| | | <el-dialog |
| | | title="ä¸åæ¤é" |
| | | :visible.sync="quashDialogVisible" |
| | | width="30%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-dialog title="ä¸åæ¤é" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose"> |
| | | <p style="font-size: 16px; color: #333333" v-if="!isQuash"> |
| | | å§æç¼å·<span style="color: #34bd66">{{ |
| | | this.insOrderRow.entrustCode |
| | | }}</span |
| | | >çä¿¡æ¯æ¯å¦æ¤é |
| | | }}</span>çä¿¡æ¯æ¯å¦æ¤é |
| | | </p> |
| | | <el-form |
| | | :label-position="labelPosition" |
| | | :model="formData" |
| | | label-width="150px" |
| | | ref="ruleForm" |
| | | v-else |
| | | > |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else> |
| | | <el-form-item label="请è¾å
¥æ¤éåå ï¼"> |
| | | <el-input |
| | | v-model="formData.specificationModel" |
| | | size="small" |
| | | style="width: 60%" |
| | | ></el-input> |
| | | <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row v-if="!isQuash"> |
| | | <el-button @click="handleClose">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®</el-button> |
| | | </el-row> |
| | | <el-row v-else> |
| | | <el-button @click="handleClose">è¿ å</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- ä¸å --> |
| | | <el-dialog |
| | | title="æ£éªåé
" |
| | | :visible.sync="issuedDialogVisible" |
| | | width="400px" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-dialog title="æ£éªåé
" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose"> |
| | | <div class="body" style="max-height: 60vh"> |
| | | <el-row> |
| | | <el-col class="search_thing" style="width: 95%"> |
| | |
| | | <span class="required-span">* </span>çº¦å®æ¶é´ï¼ |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-date-picker |
| | | size="small" |
| | | v-model="distributeData.appointed" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | value-format="yyyy-MM-dd" |
| | | style="width: 100%" |
| | | format="yyyy-MM-dd" |
| | | > |
| | | <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="éæ©æ¥æ" |
| | | value-format="yyyy-MM-dd" style="width: 100%" format="yyyy-MM-dd"> |
| | | </el-date-picker> |
| | | </div> |
| | | </el-col> |
| | | <el-col class="search_thing" style="width: 95%"> |
| | | <div class="search_label"> |
| | | <span class="required-span" v-show="distributeData.type == 2" |
| | | >* </span |
| | | >ææ´¾äººåï¼ |
| | | <span class="required-span" v-show="distributeData.type == 2">* </span>ææ´¾äººåï¼ |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | v-model="distributeData.userId" |
| | | placeholder="è¯·éæ©" |
| | | size="small" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | @change="changeUser" |
| | | > |
| | | <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-select v-model="distributeData.userId" placeholder="è¯·éæ©" size="small" style="width: 100%" |
| | | clearable filterable @change="changeUser"> |
| | | <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> |
| | | </div> |
| | | </el-col> |
| | | <el-col |
| | | class="search_thing" |
| | | style="width: 95%" |
| | | v-if="distributeData.userId" |
| | | > |
| | | <el-col class="search_thing" style="width: 95%" v-if="distributeData.userId"> |
| | | <div class="search_label"> |
| | | <span class="required-span">* </span>è¯éªå®¤ï¼ |
| | | </div> |
| | | <div class="search_input"> |
| | | <el-select |
| | | v-model="distributeData.sonLaboratory" |
| | | placeholder="è¯·éæ©11" |
| | | size="small" |
| | | style="width: 100%" |
| | | clearable |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="(item, i) in sonLaboratoryList" |
| | | :key="i + 'oooo'" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | <el-select v-model="distributeData.sonLaboratory" placeholder="è¯·éæ©11" size="small" style="width: 100%" |
| | | clearable filterable> |
| | | <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="handleClose2">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad">ç¡® å®</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog |
| | | title="æ°æ®æ¥ç" |
| | | :visible.sync="dataDialogVisible" |
| | | width="100%" |
| | | fullscreen |
| | | > |
| | | <el-dialog title="æ°æ®æ¥ç" :visible.sync="dataDialogVisible" width="100%" fullscreen> |
| | | <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible"> |
| | | <ValueTable |
| | | ref="ValueTableDataLook" |
| | | :rowKey="'insProductId'" |
| | | :url="$api.insOrder.selectSampleAndProductByOrderId" |
| | | :componentData="componentDataDataLook" |
| | | /> |
| | | <ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'" |
| | | :url="$api.insOrder.selectSampleAndProductByOrderId" :componentData="componentDataDataLook" /> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | top="5vh" |
| | | :title="deleteTilte" |
| | | :visible.sync="deleteDialogVisible" |
| | | :before-close="handleCloseDelete" |
| | | width="80%" |
| | | > |
| | | <el-dialog top="5vh" :title="deleteTilte" :visible.sync="deleteDialogVisible" :before-close="handleCloseDelete" |
| | | width="80%"> |
| | | <div class="table-container" v-if="deleteDialogVisible"> |
| | | <!-- <ValueTable |
| | | ref="ValueTableDataDelete" |
| | |
| | | :componentData="componentDataDelete" |
| | | :isColumnWidth="true" |
| | | /> --> |
| | | <el-table |
| | | height="500px" |
| | | ref="revokeTable" |
| | | @select="handleSelectionChange" |
| | | @select-all="handleSelectionAll" |
| | | :data="treeTableData" |
| | | style="width: 100%" |
| | | row-key="id" |
| | | border |
| | | lazy |
| | | :load="load" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }" |
| | | > |
| | | <el-table-column |
| | | v-if="deleteTilte == 'æ¤é'" |
| | | type="selection" |
| | | width="55" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="æ ·åç¼å·" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table height="500px" ref="revokeTable" @select="handleSelectionChange" @select-all="handleSelectionAll" |
| | | :data="treeTableData" style="width: 100%" row-key="id" border lazy :load="load" |
| | | :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> |
| | | <el-table-column v-if="deleteTilte == 'æ¤é'" type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="sampleCode" label="æ ·åç¼å·" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="æ£éªé¡¹" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="æ£éªå项" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªå项" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="sampleType" |
| | | label="æ ·ååç±»" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="sampleType" label="æ ·ååç±»" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="sample" label="æ ·å" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="model" label="åå·" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="sonLaboratory" |
| | | label="è¯éªå®¤" |
| | | show-overflow-tooltip |
| | | > |
| | | <el-table-column prop="sonLaboratory" label="è¯éªå®¤" show-overflow-tooltip> |
| | | </el-table-column> |
| | | <el-table-column prop="tell" label="è¦æ±å¼" show-overflow-tooltip> |
| | | </el-table-column> |
| | |
| | | <el-button @click="handleNo">{{ |
| | | deleteTilte == "æ¤é" ? "å æ¶" : "ä¸éè¿" |
| | | }}</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitDelete" |
| | | :loading="printLoading" |
| | | >{{ deleteTilte == "æ¤é" ? "ç¡® å®" : "é è¿" }}</el-button |
| | | > |
| | | <el-button type="primary" @click="submitDelete" :loading="printLoading">{{ deleteTilte == "æ¤é" ? "ç¡® å®" : |
| | | "é è¿" }}</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ°æ®æ¥ç详æ
--> |
| | | <el-dialog |
| | | title="æ¥ç详æ
" |
| | | :visible.sync="dialogVisible" |
| | | width="70%" |
| | | :before-close="handleClose3" |
| | | > |
| | | <el-table |
| | | v-if="type == 'åæ ¹åç´çç§' || type == 'æ¾å¥ç®¡'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="entrustCode" |
| | | label="å§æåå·" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="sampleCode" |
| | | label="æ ·åç¼å·" |
| | | ></el-table-column> |
| | | <el-dialog title="æ¥ç详æ
" :visible.sync="dialogVisible" width="70%" :before-close="handleClose3"> |
| | | <el-table v-if="type == 'åæ ¹åç´çç§' || type == 'æ¾å¥ç®¡'" :data="viewDetailsList" height="400px" border |
| | | style="width: 100%"> |
| | | <el-table-column type="index" label="åºå·" width="80px"></el-table-column> |
| | | <el-table-column prop="entrustCode" label="å§æåå·"></el-table-column> |
| | | <el-table-column prop="sampleCode" label="æ ·åç¼å·"></el-table-column> |
| | | <el-table-column prop="color" label="å¥ç®¡"></el-table-column> |
| | | <!-- <el-table-column prop="inspectionItem" label="æ£éªé¡¹"></el-table-column> --> |
| | | <el-table-column prop="insValue" label="æ£éªç»æ"></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-table |
| | | v-if="type == 'ææå¼ºåº¦'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="æ£éªé¡¹" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="æ£éªå项" |
| | | ></el-table-column> |
| | | <el-table v-if="type == 'ææå¼ºåº¦'" :data="viewDetailsList" height="400px" border style="width: 100%"> |
| | | <el-table-column type="index" label="åºå·" width="80px"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªå项"></el-table-column> |
| | | <el-table-column prop="width" label="宽度"></el-table-column> |
| | | <el-table-column prop="thickness" label="å度"></el-table-column> |
| | | <el-table-column prop="testValue" label="æ£éªå¼"></el-table-column> |
| | | </el-table> |
| | | |
| | | <el-table |
| | | v-if="type == 'æè£ä¼¸é¿ç'" |
| | | :data="viewDetailsList" |
| | | height="400px" |
| | | border |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | label="åºå·" |
| | | width="80px" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItem" |
| | | label="æ£éªé¡¹" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | prop="inspectionItemSubclass" |
| | | label="æ£éªå项" |
| | | ></el-table-column> |
| | | <el-table-column |
| | | v-for="(v, i) in tableHeader" |
| | | :key="i" |
| | | :prop="`testValue${i}`" |
| | | :label="`æ£éªå¼${i + 1}`" |
| | | ></el-table-column> |
| | | <el-table v-if="type == 'æè£ä¼¸é¿ç'" :data="viewDetailsList" height="400px" border style="width: 100%"> |
| | | <el-table-column type="index" label="åºå·" width="80px"></el-table-column> |
| | | <el-table-column prop="inspectionItem" label="æ£éªé¡¹"></el-table-column> |
| | | <el-table-column prop="inspectionItemSubclass" label="æ£éªå项"></el-table-column> |
| | | <el-table-column v-for="(v, i) in tableHeader" :key="i" :prop="`testValue${i}`" |
| | | :label="`æ£éªå¼${i + 1}`"></el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <!-- 导åºå·²æ£æ°æ® --> |
| | | <el-dialog |
| | | title="éæ©æ¥æ" |
| | | :visible.sync="dialogVisible1" |
| | | width="30%" |
| | | :before-close="handleClose4" |
| | | > |
| | | <el-dialog title="éæ©æ¥æ" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose4"> |
| | | <span>ä¸åæ¥æ: </span> |
| | | <el-date-picker |
| | | v-model="exportCheckedDate" |
| | | type="daterange" |
| | | size="small" |
| | | value-format="yyyy-MM-dd" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | > |
| | | <el-date-picker v-model="exportCheckedDate" type="daterange" size="small" value-format="yyyy-MM-dd" |
| | | range-separator="è³" start-placeholder="å¼å§æ¥æ" end-placeholder="ç»ææ¥æ"> |
| | | </el-date-picker> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="handleClose4">å æ¶</el-button> |
| | |
| | | </el-dialog> |
| | | </div> |
| | | <div style="width: 100%; height: 100%" v-if="active > 0"> |
| | | <Add |
| | | :active="active" |
| | | :currentId="currentId" |
| | | v-if="active < 4" |
| | | :examine="examine" |
| | | /> |
| | | <Add :active="active" :currentId="currentId" v-if="active < 4" :examine="examine" /> |
| | | </div> |
| | | <el-dialog |
| | | title="æ ç¾æå°" |
| | | :visible.sync="printDialogVisible" |
| | | width="40%" |
| | | top="5vh" |
| | | > |
| | | <div |
| | | style="width: 100%; height: 400px; overflow-y: auto" |
| | | v-loading="loadPint" |
| | | > |
| | | <el-dialog title="æ ç¾æå°" :visible.sync="printDialogVisible" width="40%" top="5vh"> |
| | | <div style="width: 100%; height: 400px; overflow-y: auto" v-loading="loadPint"> |
| | | <div class="dia_body"> |
| | | <el-checkbox |
| | | style="margin: 10px 5px" |
| | | :indeterminate="isIndeterminate" |
| | | v-model="checkAll" |
| | | @change="handleCheckAllChange" |
| | | >å
¨é</el-checkbox |
| | | > |
| | | <el-checkbox-group |
| | | @change="changePrintCode()" |
| | | v-model="checkIndexList" |
| | | > |
| | | <el-card |
| | | class="box-card" |
| | | v-for="(item, i) in qrData" |
| | | :key="i + 'wwwww'" |
| | | style="margin-bottom: 15px; font-size: 16px !important" |
| | | > |
| | | <el-checkbox |
| | | :label="i" |
| | | :key="i" |
| | | style="position: relative; top: -20px; left: 5px" |
| | | ><br |
| | | /></el-checkbox> |
| | | <el-checkbox style="margin: 10px 5px" :indeterminate="isIndeterminate" v-model="checkAll" |
| | | @change="handleCheckAllChange">å
¨é</el-checkbox> |
| | | <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList"> |
| | | <el-card class="box-card" v-for="(item, i) in qrData" :key="i + 'wwwww'" |
| | | style="margin-bottom: 15px; font-size: 16px !important"> |
| | | <el-checkbox :label="i" :key="i" style="position: relative; top: -20px; left: 5px"><br /></el-checkbox> |
| | | <div> |
| | | <el-row style="font-size: 14px; padding-left: 20px"> |
| | | <el-col style="font-weight: bold">{{ item.pName }}</el-col> |
| | |
| | | <div style="display: flex"> |
| | | <div> |
| | | <el-col :span="8" :offset="4"> |
| | | <vueQr |
| | | :text=" |
| | | 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " |
| | | :size="140" |
| | | :margin="2" |
| | | ></vueQr> |
| | | " :size="140" :margin="2"></vueQr> |
| | | </el-col> |
| | | </div> |
| | | <div style="margin-left: 50px; width: 100%"> |
| | | <el-row> |
| | | <el-col |
| | | style=" |
| | | <el-col style=" |
| | | font-weight: bold; |
| | | text-align: left; |
| | | font-size: 14px; |
| | | " |
| | | ><span>æ ·åç¼å·: </span |
| | | >{{ item.sampleCode }}</el-col |
| | | > |
| | | "><span>æ ·åç¼å·: </span>{{ item.sampleCode }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>å§æåå·: </span>{{ item.code }}</el-col |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left"><span>å§æåå·: </span>{{ item.code |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>è§æ ¼åå·: </span>{{ item.model }}</el-col |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left"><span>è§æ ¼åå·: </span>{{ item.model |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 1px; font-size: 14px"> |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>æ ·ååç§°: </span |
| | | >{{ item.sample }}</el-col |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left"><span>æ ·ååç§°: </span>{{ item.sample |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row |
| | | style="margin-top: 1px; font-size: 14px" |
| | | class="ellipsis-multiline" |
| | | > |
| | | <el-col style="font-weight: bold; text-align: left" |
| | | ><span>æ£æµé¡¹ç®: </span>{{ item.item }}</el-col |
| | | > |
| | | <el-row style="margin-top: 1px; font-size: 14px" class="ellipsis-multiline"> |
| | | <el-col style="font-weight: bold; text-align: left"><span>æ£æµé¡¹ç®: </span>{{ item.item |
| | | }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 2px; font-size: 14px"> |
| | | <el-col |
| | | style=" |
| | | <el-col style=" |
| | | font-weight: bold; |
| | | display: flex; |
| | | align-items: center; |
| | | " |
| | | ><span>æ ·åç¶æ: </span |
| | | ><el-radio-group |
| | | :value="item.insState" |
| | | style="margin-top: 7px; margin-left: 4px" |
| | | disabled |
| | | > |
| | | <el-radio |
| | | :label="0" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >å¾
æ£</el-radio |
| | | > |
| | | <el-radio |
| | | :label="1" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >卿£</el-radio |
| | | > |
| | | <el-radio |
| | | :label="2" |
| | | style="font-weight: bold; margin-right: 7px" |
| | | >å·²æ£</el-radio |
| | | > </el-radio-group |
| | | ><el-radio |
| | | :label="1" |
| | | style="font-weight: bold; margin-top: 7px" |
| | | v-model="item.isLeave" |
| | | disabled |
| | | >çæ ·</el-radio |
| | | ></el-col |
| | | > |
| | | "><span>æ ·åç¶æ: </span><el-radio-group :value="item.insState" |
| | | style="margin-top: 7px; margin-left: 4px" disabled> |
| | | <el-radio :label="0" style="font-weight: bold; margin-right: 7px">å¾
æ£</el-radio> |
| | | <el-radio :label="1" style="font-weight: bold; margin-right: 7px">卿£</el-radio> |
| | | <el-radio :label="2" style="font-weight: bold; margin-right: 7px">å·²æ£</el-radio> |
| | | </el-radio-group><el-radio :label="1" style="font-weight: bold; margin-top: 7px" |
| | | v-model="item.isLeave" disabled>çæ ·</el-radio></el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="printDialogVisible = false">å æ¶</el-button> |
| | | <el-button |
| | | type="primary" |
| | | @click="submitPrint" |
| | | :loading="printLoading" |
| | | >æ å°</el-button |
| | | > |
| | | <el-button type="primary" @click="submitPrint" :loading="printLoading">æ å°</el-button> |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | | <div |
| | | class="el-dialog__body" |
| | | style=" |
| | | <div class="el-dialog__body" style=" |
| | | overflow-y: auto; |
| | | margin-top: 0; |
| | | position: fixed; |
| | | top: 999px; |
| | | z-index: 99999; |
| | | display: none; |
| | | " |
| | | > |
| | | "> |
| | | <div id="printMOrder" class="printMOrder" ref="printMOrder"> |
| | | <el-card |
| | | class="box-card" |
| | | v-for="(item, i) in checkDataList" |
| | | :key="i + 'uuuuu'" |
| | | style=" |
| | | <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" style=" |
| | | font-size: 0.2cm !important; |
| | | page-break-after: always; |
| | | color: #000; |
| | | box-shadow: none; |
| | | margin: 0 !important; |
| | | padding: 0 !important; |
| | | " |
| | | > |
| | | "> |
| | | <div style="display: flex"> |
| | | <div> |
| | | <el-col :span="10" :offset="2"> |
| | | <vueQr |
| | | :text=" |
| | | 'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' + |
| | | item.id + |
| | | '&type=sample' |
| | | " |
| | | :size="60" |
| | | :margin="2" |
| | | ></vueQr> |
| | | " :size="60" :margin="2"></vueQr> |
| | | </el-col> |
| | | </div> |
| | | <div style="margin-left: 0.32cm; line-height: 0.22cm"> |
| | | <el-row> |
| | | <el-col |
| | | style="font-size: 0.2cm; width: 4cm" |
| | | class="single-line-ellipsis" |
| | | ><span>æ ·åç¼å·: </span>{{ item.sampleCode }}</el-col |
| | | > |
| | | <el-col style="font-size: 0.2cm; width: 4cm" class="single-line-ellipsis"><span>æ ·åç¼å·: </span>{{ |
| | | item.sampleCode }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm"> |
| | | <el-col><span>å§æåå·: </span>{{ item.code }}</el-col> |
| | |
| | | <el-col><span>è§æ ¼åå·: </span>{{ item.model }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm"> |
| | | <el-col |
| | | ><span>æ ·ååç§°: </span>{{ item.sample }}</el-col |
| | | > |
| | | <el-col><span>æ ·ååç§°: </span>{{ item.sample }}</el-col> |
| | | </el-row> |
| | | <el-row style="font-size: 0.2cm; width: 4cm"> |
| | | <el-col class="ellipsis-multiline" |
| | | ><span>æ£æµé¡¹ç®: </span>{{ item.item }}</el-col |
| | | > |
| | | <el-col class="ellipsis-multiline"><span>æ£æµé¡¹ç®: </span>{{ item.item }}</el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 0.01cm; font-size: 0.2cm"> |
| | | <el-col style="display: flex; align-items: center" |
| | | ><span>æ ·åç¶æ: </span> |
| | | <span style="white-space: nowrap" |
| | | ><span v-if="item.insState == 0">â</span |
| | | ><span class="scor" v-if="item.insState != 0"></span>å¾
æ£ |
| | | <span v-if="item.insState == 1">â</span |
| | | ><span class="scor" v-if="item.insState != 1"></span>卿£ |
| | | <span v-if="item.insState == 2">â</span |
| | | ><span class="scor" v-if="item.insState != 2"></span>å·²æ£ |
| | | <span v-if="item.isLeave == 1">â</span |
| | | ><span class="scor" v-if="item.isLeave != 1"></span |
| | | >çæ ·</span |
| | | > |
| | | <el-col style="display: flex; align-items: center"><span>æ ·åç¶æ: </span> |
| | | <span style="white-space: nowrap"><span v-if="item.insState == 0">â</span><span class="scor" |
| | | v-if="item.insState != 0"></span>å¾
æ£ |
| | | <span v-if="item.insState == 1">â</span><span class="scor" v-if="item.insState != 1"></span>卿£ |
| | | <span v-if="item.insState == 2">â</span><span class="scor" v-if="item.insState != 2"></span>å·²æ£ |
| | | <span v-if="item.isLeave == 1">â</span><span class="scor" |
| | | v-if="item.isLeave != 1"></span>çæ ·</span> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | import vueQr from "vue-qr"; |
| | | import getLodop from "@/utils/lodop"; |
| | | import Add from "./add.vue"; |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | components: { |
| | | limsTable, |
| | | Add, |
| | | vueQr, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permissions"]), |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | beforeDestroy() { |
| | | window.removeEventListener("resize", this.getTableHeight); |
| | | }, |
| | | watch: { |
| | | more() { |
| | | this.getTableHeight(); |
| | | }, |
| | | }, |
| | | methods: { |
| | | //è·åè¡¨æ ¼é«åº¦ |
| | | getTableHeight() { |
| | | const otherHeight = 400; // å
¶ä½é«åº¦ |
| | | const tableH = 50; // è·ç¦»é¡µé¢ä¸æ¹çé«åº¦ |
| | | const tableHeightDetil = window.innerHeight - tableH; |
| | | const otherHeight = this.more ? 430 : 380; // å
¶ä½é«åº¦ |
| | | const tableBottom = 50; // è·ç¦»é¡µé¢ä¸æ¹çé«åº¦ |
| | | const tableHeightDetil = window.innerHeight - tableBottom; |
| | | if (tableHeightDetil <= 300) { |
| | | this.tableHeight = 200; |
| | | } else { |
| | | this.tableHeight = window.innerHeight - tableH - otherHeight; |
| | | this.tableHeight = window.innerHeight - tableBottom - otherHeight; |
| | | } |
| | | }, |
| | | getDictList() { |
| | |
| | | this.personList = res.data; |
| | | }); |
| | | }, |
| | | refreshTable(e) { |
| | | this.$refs["ValueTable"].selectList(e); |
| | | this.queryCount = 0; |
| | | refreshTable() { |
| | | this.getList(); |
| | | }, |
| | | getTableData(newData) { |
| | | if (newData && newData.length == 1) { |
| | |
| | | this.deleteDialogVisible = false; |
| | | this.printLoading = false; |
| | | this.revokeData = []; |
| | | this.refreshTable("page"); |
| | | this.refreshTable(); |
| | | this.$message.success("æ¤éæå"); |
| | | } |
| | | }); |
| | |
| | | if (res.code === 200) { |
| | | this.printLoading = false; |
| | | this.deleteDialogVisible = false; |
| | | this.refreshTable("page"); |
| | | this.refreshTable(); |
| | | this.$message.success("æ´æ°æå"); |
| | | } |
| | | }); |
| | |
| | | if (res.code === 200) { |
| | | this.printLoading = false; |
| | | this.deleteDialogVisible = false; |
| | | this.refreshTable("page"); |
| | | this.refreshTable(); |
| | | this.$message.success("æ´æ°æå"); |
| | | } |
| | | }); |
| | |
| | | this.$message.success("ä¿®æ¹æå"); |
| | | this.upLoad = false; |
| | | this.issuedDialogVisible = false; |
| | | this.refreshTable("page"); |
| | | this.refreshTable(); |
| | | }) |
| | | .catch((e) => { |
| | | this.$message.error("ä¿®æ¹å¤±è´¥"); |
| | |
| | | if (res.code === 200) { |
| | | this.upLoad = false; |
| | | this.quashDialogVisible = false; |
| | | this.refreshTable("page"); |
| | | this.refreshTable(); |
| | | this.$message.success("æ´æ°æå"); |
| | | } |
| | | }); |
| | |
| | | if (res.code === 200) { |
| | | this.upLoad = false; |
| | | this.quashDialogVisible = false; |
| | | this.refreshTable("page"); |
| | | this.refreshTable(); |
| | | this.$message.success("æ´æ°æå"); |
| | | } |
| | | }); |
| | |
| | | }, |
| | | // ä¸å |
| | | playOrder(num) { |
| | | this.$router.push({ |
| | | name: "addOrder", |
| | | params: {}, |
| | | }); |
| | | this.active = num; |
| | | this.examine = 0; |
| | | this.refreshTable("page"); |
| | | // this.refreshTable(); |
| | | }, |
| | | handleTab(m, i) { |
| | | this.tabIndex = i; |
| | |
| | | this.componentData.tagField.orderType.select = res.data; |
| | | }); |
| | | }, |
| | | getStyle() { |
| | | return "height: calc(100% - " + (this.more ? "94" : "44") + "px)"; |
| | | }, |
| | | changeUser() { |
| | | if (this.sonLaboratoryList.length > 0) { |
| | | this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value; |
| | |
| | | |
| | | .search { |
| | | background-color: #fff; |
| | | height: 80px; |
| | | height: 50px; |
| | | display: flex; |
| | | align-items: center; |
| | | overflow: hidden; |
| | |
| | | .tab { |
| | | list-style-type: none; |
| | | display: flex; |
| | | margin-bottom: 12px; |
| | | /* margin-bottom: 12px; */ |
| | | padding-inline-start: 0px; |
| | | } |
| | | |
| | |
| | | .el-form-item { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | .box-card >>> .el-radio__inner { |
| | | border-radius: 2px !important; |
| | | } |
| | | |
| | | .box-card >>> .el-radio__input.is-checked .el-radio__inner::after { |
| | | content: ""; |
| | | width: 8px; |
| | |
| | | border-radius: 0px; |
| | | background: none; |
| | | } |
| | | |
| | | >>> .el-radio__label { |
| | | color: #000 !important; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__label { |
| | | font-size: 8px; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after { |
| | | content: ""; |
| | | width: 4px; |
| | |
| | | border-radius: 0px; |
| | | background: none; |
| | | } |
| | | |
| | | >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | background: #3a7bfa; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | background: transparent; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__inner { |
| | | width: 8px !important; |
| | | height: 8px !important; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__label { |
| | | padding-left: 2px !important; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-card__body { |
| | | padding: 0 !important; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-card { |
| | | border: none; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner { |
| | | border-color: #000 !important; |
| | | } |
| | | |
| | | .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner { |
| | | border: none !important; |
| | | } |
| | | |
| | | .scor { |
| | | width: 0.01cm; |
| | | height: 0.01cm; |
| | |
| | | border: 1px solid #000; |
| | | display: inline-block; |
| | | } |
| | | |
| | | .ellipsis-multiline { |
| | | display: -webkit-box; |
| | | -webkit-line-clamp: 2; |
| | |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | | word-wrap: break-word; |
| | | max-height: 3em; /* é«åº¦ä¸ºåä½å¤§å°ç两å */ |
| | | line-height: 1.5em; /* è¡é« */ |
| | | height: 3em; /* é«åº¦ä¸ºè¡é«ç两å */ |
| | | max-height: 3em; |
| | | /* é«åº¦ä¸ºåä½å¤§å°ç两å */ |
| | | line-height: 1.5em; |
| | | /* è¡é« */ |
| | | height: 3em; |
| | | /* é«åº¦ä¸ºè¡é«ç两å */ |
| | | } |
| | | |
| | | .table-container { |
| | | height: 70vh; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .table-container.el-table { |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; |
| | |
| | | <template> |
| | | <div class="index"> |
| | | <div class="bg-1"> |
| | | <el-row :gutter="25"> |
| | | <el-col :lg="14" :md="14" :sm="24" :xl="14" :xs="24"> |
| | | <div class="left-1"> |
| | |
| | | <span style="font-size: 14px;color: #999999;">{{ weekdays[index] }}</span> |
| | | </div> |
| | | <div class="left-item-body"> |
| | | <div v-for="(m,i) in workList[index]" :key="i" :class="{color0:m.type==0,color1:m.type==1,color2:m.type==2}" class="body-item"> |
| | | <div v-for="(m, i) in workList[index]" :key="i" |
| | | :class="{ color0: m.type == 0, color1: m.type == 1, color2: m.type == 2 }" class="body-item"> |
| | | <div> |
| | | <span style="font-size: 12px;margin-bottom: 17px;">{{ m.text }}</span> |
| | | <div style="display: flex"> |
| | | <span class="body-item-name">{{ m.name }}</span> |
| | | <span v-if="m.insState == 0" class="body-item-insState" style="background-color: #909399;font-size: 12px;">å¾
æ£éª</span> |
| | | <span v-if="m.insState == 1" class="body-item-insState" style="background-color: #E6A23C;font-size: 12px;">æ£éªä¸</span> |
| | | <span v-if="m.insState == 2" class="body-item-insState" style="background-color: #67C23A;font-size: 12px;">å·²æ£éª</span> |
| | | <span v-if="m.insState == 3" class="body-item-insState" style="background-color: #E6A23C;font-size: 12px;">å¾
夿 ¸</span> |
| | | <span v-if="m.insState == 4" class="body-item-insState" style="background-color: #F56C6C;font-size: 9px;">夿 ¸æªéè¿</span> |
| | | <span v-if="m.insState == 5" class="body-item-insState" style="background-color: #67C23A;font-size: 10px;">夿 ¸éè¿</span> |
| | | <span v-if="m.insState == 0" class="body-item-insState" |
| | | style="background-color: #909399;font-size: 12px;">å¾
æ£éª</span> |
| | | <span v-if="m.insState == 1" class="body-item-insState" |
| | | style="background-color: #E6A23C;font-size: 12px;">æ£éªä¸</span> |
| | | <span v-if="m.insState == 2" class="body-item-insState" |
| | | style="background-color: #67C23A;font-size: 12px;">å·²æ£éª</span> |
| | | <span v-if="m.insState == 3" class="body-item-insState" |
| | | style="background-color: #E6A23C;font-size: 12px;">å¾
夿 ¸</span> |
| | | <span v-if="m.insState == 4" class="body-item-insState" |
| | | style="background-color: #F56C6C;font-size: 9px;">夿 ¸æªéè¿</span> |
| | | <span v-if="m.insState == 5" class="body-item-insState" |
| | | style="background-color: #67C23A;font-size: 10px;">夿 ¸éè¿</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <el-button class="nextm" icon="el-icon-arrow-right" @click="nextMonth(calendarValue)"></el-button> |
| | | </div> |
| | | <el-calendar v-model="calendarValue"> |
| | | <template |
| | | slot="dateCell" |
| | | slot-scope="{date, data}"> |
| | | <template slot="dateCell" slot-scope="{date, data}"> |
| | | <span> |
| | | {{ data.day.split('-').slice(2)+'' }} |
| | | </span> |
| | |
| | | <p class="ellipsis-multiline" >{{ m.text }}</p> |
| | | </el-tooltip> |
| | | </div> |
| | | <span v-if="listScheduleByMe.length==0" style="color:rgb(144, 147, 153);font-size: 14px;text-align: center;margin: 120px 0;display: inline-block;width: 100%;">ææ æ°æ®</span> |
| | | <span v-if="listScheduleByMe.length == 0" |
| | | style="color:rgb(144, 147, 153);font-size: 14px;text-align: center;margin: 120px 0;display: inline-block;width: 100%;">ææ æ°æ®</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right-3 card" style="overflow: hidden;"> |
| | | <div class="right-3-tab"> |
| | | <!-- <div :class="{active:currentIndex==4}" class="tab-item" style="cursor: pointer;" @click="currentIndex=4">é¢è¦æé</div>--> |
| | | <div :class="{active:currentIndex==5}" class="tab-item" style="cursor: pointer;" @click="currentIndexChange">CNASéç¥éå</div> |
| | | <div :class="{ active: currentIndex == 5 }" class="tab-item" style="cursor: pointer;" |
| | | @click="currentIndexChange"> |
| | | CNASéç¥éå</div> |
| | | </div> |
| | | <div v-loading="listLoading" class="right-3-list"> |
| | | <scroll-pagination v-if="list.length>0||listLoading" :finishLoding="finishLoding" :list="list" @load="getList"> |
| | | <scroll-pagination v-if="list.length > 0 || listLoading" :finishLoding="finishLoding" :list="list" |
| | | @load="getList"> |
| | | <div v-for="(m,i) in list" :key="i" class="list3-item"> |
| | | <div class="list3-item-title"> |
| | | <!-- <img alt="" src="../../../static/img/index-tip.svg">--> |
| | | <p style="color: #FF7756">{{ m.theme }}</p> |
| | | </div> |
| | | <div class="list3-item-info"> |
| | | <p class="ellipsis-multiline" style="width: 73%;-webkit-line-clamp: 1;cursor: pointer;" @click="goNoticeDetail(m)"> |
| | | <p class="ellipsis-multiline" style="width: 73%;-webkit-line-clamp: 1;cursor: pointer;" |
| | | @click="goNoticeDetail(m)"> |
| | | <!-- ç¼å·<span style="color:#3A7BFA;"> SB20240101-001 </span>ç设å¤å°äº2023-09-09 11:11:11è¿æ --> |
| | | {{ m.content }} |
| | | </p> |
| | |
| | | </div> |
| | | </div> |
| | | </scroll-pagination> |
| | | <div v-if="list.length<1&&!listLoading" style="color:#909399;font-size:14px;text-align: center;margin-top:80px" >ææ æ°æ®</div> |
| | | <div v-if="list.length < 1 && !listLoading" |
| | | style="color:#909399;font-size:14px;text-align: center;margin-top:80px">ææ æ°æ® |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | |
| | | <el-col :span="22" class="search_thing"> |
| | | <div class="search_label"><span style="color: red;margin-right: 4px;">*</span>æ¶é´ï¼</div> |
| | | <div class="search_input"> |
| | | <el-date-picker |
| | | v-model="query.time" |
| | | format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="éæ©æ¥ææ¶é´" |
| | | size="small" |
| | | <el-date-picker v-model="query.time" format="yyyy-MM-dd HH:mm:ss" placeholder="éæ©æ¥ææ¶é´" size="small" |
| | | style="width: 100%;" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"> |
| | | </el-date-picker> |
| | | </div> |
| | |
| | | <el-col :span="22" class="search_thing"> |
| | | <div class="search_label"><span style="color: red;margin-right: 4px;">*</span>å
容ï¼</div> |
| | | <div class="search_input"> |
| | | <el-input v-model="query.text" :rows="2" |
| | | placeholder="请è¾å
¥å
容" size="small" type="textarea"></el-input> |
| | | <el-input v-model="query.text" :rows="2" placeholder="请è¾å
¥å
容" size="small" type="textarea"></el-input> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .index { |
| | | width: 100%; |
| | | height: calc(100% - 50px); |
| | | overflow-y: auto; |
| | | padding: 20px 10px 10px; |
| | | background: rgb(245, 247, 251); |
| | | } |
| | | |
| | | .left-1 { |
| | | background-image: url("~@/assets/index_image/index-img1.png"); |
| | | background-size: 100% 100%; |
| | |
| | | align-items: flex-start; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | >>>.el-calendar__header { |
| | | display: none; |
| | | } |
| | | |
| | | >>>.el-calendar__body{ |
| | | padding: 0; |
| | | } |
| | | |
| | | >>>.el-calendar-table:not(.is-range) td.next { |
| | | /*éèä¸ä¸ªæçæ¥æ*/ |
| | | display: none; |
| | | } |
| | | |
| | | >>>.el-calendar-day{ |
| | | height: 40px; |
| | | } |
| | | |
| | | >>>.el-calendar-table td{ |
| | | border: 0; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | >>>.el-calendar-table tr td:first-child{ |
| | | border-left: 0; |
| | | } |
| | | |
| | | .control{ |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | box-sizing: border-box; |
| | | padding: 0px 0 10px; |
| | | } |
| | | |
| | | .control .el-button{ |
| | | width: 32px; |
| | | height: 32px; |
| | |
| | | color: #0166E2; |
| | | font-size: 20px; |
| | | } |
| | | |
| | | .list2-item{ |
| | | line-height: 22px; |
| | | display: flex; |
| | | margin-bottom: 12px; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .right-3-tab{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .tab-item{ |
| | | width: 50%; |
| | | box-sizing: border-box; |
| | |
| | | background: #F5F7FB; |
| | | color: #333333; |
| | | } |
| | | |
| | | .tab-item.active{ |
| | | background: #fff; |
| | | color: #FF3838; |
| | | padding-left: 16px; |
| | | text-align: left; |
| | | } |
| | | |
| | | .right-3-list{ |
| | | padding: 0 12px 8px; |
| | | box-sizing: border-box; |
| | | height: 390px; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .list3-item{ |
| | | padding: 6px 4px; |
| | | margin: 8px 0; |
| | | } |
| | | |
| | | .list3-item:hover{ |
| | | background: rgba(58, 123, 250,0.05); |
| | | } |
| | | |
| | | .list3-item-title{ |
| | | display: flex; |
| | | align-items: flex-start; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | .list3-item-info{ |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | color: #666666; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .left-2{ |
| | | display: grid; |
| | | grid-template-columns: repeat(7, 1fr); |
| | | height: 777px; |
| | | } |
| | | |
| | | .left-2-item{ |
| | | border-right: 1px solid #F1F1F1; |
| | | overflow: hidden !important; |
| | | } |
| | | |
| | | .left-2-item:nth-last-child(1){ |
| | | border-right: 0; |
| | | } |
| | | |
| | | .left-2-item:hover{ |
| | | background: rgba(58,123,250,0.05); |
| | | } |
| | | |
| | | .left-2-item:hover .left-item-title span{ |
| | | color: #3A7BFA !important; |
| | | } |
| | | |
| | | .left-item-title{ |
| | | border-bottom: 1px solid #F1F1F1; |
| | | display: flex; |
| | |
| | | justify-content: center; |
| | | padding: 20px 0; |
| | | } |
| | | |
| | | .left-item-body{ |
| | | box-sizing: border-box; |
| | | padding: 5px; |
| | | height: 693px; |
| | | overflow-y: auto; |
| | | } |
| | | |
| | | .body-item{ |
| | | background: #70A090; |
| | | border-radius: 16px; |
| | | overflow: hidden; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | .body-item.color0{ |
| | | background: #70A090; |
| | | } |
| | | |
| | | .body-item.color1{ |
| | | background: #EBD476; |
| | | } |
| | | |
| | | .body-item.color2{ |
| | | background: #FF3838; |
| | | } |
| | | |
| | | .body-item>div{ |
| | | height: calc(100% - 16px); |
| | | margin-top: 16px; |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | .search_thing { |
| | | height: 50px; |
| | | margin-bottom: 26px; |
| | |
| | | text-align: left; |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | >>>.el-calendar-day span{ |
| | | display: inline-block; |
| | | width: 30px; |
| | |
| | | text-align: center; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | >>>.is-selected{ |
| | | background: transparent !important; |
| | | } |
| | | |
| | | >>>.is-selected .el-calendar-day{ |
| | | background: transparent !important; |
| | | } |
| | | |
| | | >>>.is-selected .el-calendar-day span{ |
| | | background: #3A7BFA !important; |
| | | color: #fff !important; |
| | | } |
| | | |
| | | >>>.el-calendar-day:hover{ |
| | | background: transparent; |
| | | } |
| | | |
| | | >>>.el-calendar-day span:hover{ |
| | | background: #3A7BFA !important; |
| | | color: #fff !important; |
| | | } |
| | | |
| | | .body-item-name { |
| | | display: inline-block; |
| | | height: 22px;width: 60px; |
| | | height: 22px; |
| | | width: 60px; |
| | | border-radius: 10px; |
| | | line-height: 22px; |
| | | text-align: center; |
| | |
| | | color: #fff; |
| | | font-size: 14px |
| | | } |
| | | |
| | | .body-item-insState { |
| | | margin-left: 2px; |
| | | display: inline-block; |
| | | height: 22px;width: 60px; |
| | | height: 22px; |
| | | width: 60px; |
| | | border-radius: 10px; |
| | | line-height: 22px; |
| | | text-align: center; |
| | |
| | | }, |
| | | // èµè´¨æç»éä»¶ä¸è½½ |
| | | handleDownLoad(row) { |
| | | const url = process.env.VUE_APP_BASE_API + "/img/" + row.fileUrl; |
| | | this.$download.saveAs(url, row.fileUrl); |
| | | this.$download.saveAs(row.fileUrl, row.fileUrl) |
| | | }, |
| | | openAdd() { |
| | | this.qualificationsConnectVisible = true; |