已添加13个文件
已重命名2个文件
已修改16个文件
已删除1个文件
| | |
| | | VUE_APP_BASE_API = '/prod-api' |
| | | |
| | | # ç产ç¯å¢ip+ç«¯å£ |
| | | VUE_BASE_URL = '' |
| | | VUE_BASE_URL = 'https://zttx-lims.ztt.cn:8021/' |
| | |
| | | method: 'post', |
| | | params: params |
| | | }) |
| | | } |
| | | } |
| | | |
| | | //æ·»å æ¥ç¨ |
| | | export function addSchedule(data) { |
| | | return resquest({ |
| | | url: '/report/addSchedule', |
| | | method: 'post', |
| | | params: data |
| | | }) |
| | | } |
| | | |
| | | //æ¥è¯¢æ¥åä»»å¡å¾ |
| | | export function calendarWorkByWeek() { |
| | | return resquest({ |
| | | url: '/report/calendarWorkByWeek', |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | //æ¥è¯¢æ¥åä»»å¡å¾ |
| | | export function ScheduleByMe(data) { |
| | | return resquest({ |
| | | url: '/report/ScheduleByMe', |
| | | method: 'post', |
| | | params:data |
| | | }) |
| | | } |
| | | |
| | |
| | | }) |
| | | } |
| | | |
| | | // è·ååç¹ç»å½å°å |
| | | export function getSsoAuthUrl() { |
| | | return request({ |
| | | url: '/getSsoAuthUrl', |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // åç¹ç»å½ |
| | | export function LoginBySSO(accessToken) { |
| | | return request({ |
| | | url: '/loginBySSO', |
| | | headers: { |
| | | isToken: false, |
| | | repeatSubmit: false |
| | | }, |
| | | method: 'post', |
| | | params: accessToken |
| | | }) |
| | | } |
| | | |
| | | // æ³¨åæ¹æ³ |
| | | export function register(data) { |
| | | return request({ |
| | |
| | | method: 'get', |
| | | timeout: 20000 |
| | | }) |
| | | } |
| | | } |
| | |
| | | url: '/system/notice/' + noticeId, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-æ»å¨å页æ¥è¯¢ |
| | | export function pageNotice(query) { |
| | | return request({ |
| | | url: '/informationNotification/page', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-æ´æ°æ¶æ¯ç¶æï¼æç»ãæ¥æ¶ï¼ |
| | | export function updateMessageStatus(query) { |
| | | return request({ |
| | | url: '/informationNotification/updateMessageStatus', |
| | | method: 'put', |
| | | data: query |
| | | }) |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-æ è®°ææä¿¡æ¯ä¸ºå·²è¯»/å 餿æå·²è¯»æ¶æ¯ |
| | | export function informationReadOrDelete(isMarkAllInformationRead) { |
| | | return request({ |
| | | url: '/informationNotification/informationReadOrDelete/' + isMarkAllInformationRead, |
| | | method: 'put', |
| | | }) |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-å 餿°æ® |
| | | export function deleteDataBasedOnId(query) { |
| | | return request({ |
| | | url: '/informationNotification/deleteDataBasedOnId', |
| | | method: 'delete', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-æ¥è¯¢æ¯å¦å卿ªè¯»æ°æ® |
| | | export function checkForUnreadData() { |
| | | return request({ |
| | | url: '/informationNotification/checkForUnreadData', |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-ç¹å»è¯¦æ
触åä¿®æ¹ç¶æä¸ºå·²è¯» |
| | | export function triggerModificationStatusToRead(id) { |
| | | return request({ |
| | | url: '/informationNotification/triggerModificationStatusToRead/' + id, |
| | | method: 'put', |
| | | }) |
| | | } |
| | | |
| | | // æ¶æ¯éç¥-è·åé¦é¡µåç§æ¶æ¯æ°é |
| | | export function getNumberFourTypesMessagesHomePage() { |
| | | return request({ |
| | | url: '/informationNotification/getNumberFourTypesMessagesHomePage', |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1742292324381" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15701" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M197.8368 862.45376c43.008-12.288 73.728-49.152 79.872-92.16 67.584 61.44 153.6 98.304 245.76 98.304s184.32-36.864 245.76-98.304c18.432 43.008 49.152 79.872 92.16 92.16-86.016 79.872-202.752 129.024-331.776 129.024-129.024 0-245.76-49.152-331.776-129.024z m-36.864-178.176c36.864 0 61.44 24.576 61.44 61.44s-24.576 61.44-61.44 61.44-61.44-24.576-61.44-61.44 24.576-61.44 61.44-61.44zM873.6768 622.87872c12.288-36.864 24.576-79.872 24.576-122.88 0-172.032-116.736-313.344-270.336-356.352 12.288-18.432 24.576-43.008 24.576-73.728 0-18.432-6.144-30.72-12.288-49.152 221.184 49.152 380.928 245.76 380.928 479.232 0 61.44-12.288 116.736-30.72 165.888-18.432-24.576-55.296-43.008-92.16-43.008h-24.576zM419.0208 20.72576c-6.144 18.432-12.288 30.72-12.288 49.152 0 30.72 12.288 55.296 24.576 73.728-153.6 43.008-270.336 184.32-270.336 356.352 0 43.008 6.144 86.016 24.576 122.88h-24.576c-36.864 0-73.728 18.432-92.16 43.008-18.432-49.152-30.72-104.448-30.72-165.888 0-233.472 159.744-430.08 380.928-479.232zM529.6128 8.43776c36.864 0 61.44 24.576 61.44 61.44s-24.576 61.44-61.44 61.44-61.44-24.576-61.44-61.44 24.576-61.44 61.44-61.44zM898.2528 684.27776c36.864 0 61.44 24.576 61.44 61.44s-24.576 61.44-61.44 61.44-61.44-24.576-61.44-61.44 24.576-61.44 61.44-61.44z" fill="#2c2c2c" p-id="15702"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742295109366" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="52688" width="128" height="128"><path d="M197.8368 862.45376c43.008-12.288 73.728-49.152 79.872-92.16 67.584 61.44 153.6 98.304 245.76 98.304s184.32-36.864 245.76-98.304c18.432 43.008 49.152 79.872 92.16 92.16-86.016 79.872-202.752 129.024-331.776 129.024-129.024 0-245.76-49.152-331.776-129.024z m-36.864-178.176c36.864 0 61.44 24.576 61.44 61.44s-24.576 61.44-61.44 61.44-61.44-24.576-61.44-61.44 24.576-61.44 61.44-61.44zM873.6768 622.87872c12.288-36.864 24.576-79.872 24.576-122.88 0-172.032-116.736-313.344-270.336-356.352 12.288-18.432 24.576-43.008 24.576-73.728 0-18.432-6.144-30.72-12.288-49.152 221.184 49.152 380.928 245.76 380.928 479.232 0 61.44-12.288 116.736-30.72 165.888-18.432-24.576-55.296-43.008-92.16-43.008h-24.576zM419.0208 20.72576c-6.144 18.432-12.288 30.72-12.288 49.152 0 30.72 12.288 55.296 24.576 73.728-153.6 43.008-270.336 184.32-270.336 356.352 0 43.008 6.144 86.016 24.576 122.88h-24.576c-36.864 0-73.728 18.432-92.16 43.008-18.432-49.152-30.72-104.448-30.72-165.888 0-233.472 159.744-430.08 380.928-479.232zM529.6128 8.43776c36.864 0 61.44 24.576 61.44 61.44s-24.576 61.44-61.44 61.44-61.44-24.576-61.44-61.44 24.576-61.44 61.44-61.44zM898.2528 684.27776c36.864 0 61.44 24.576 61.44 61.44s-24.576 61.44-61.44 61.44-61.44-24.576-61.44-61.44 24.576-61.44 61.44-61.44z" p-id="52689"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742295073668" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="51639" width="128" height="128"><path d="M157.57312 744.2432c70.00064 0 126.85312 61.76768 126.85312 137.87136s-56.9344 137.91232-126.85312 137.91232C87.6544 1020.02688 30.72 958.21824 30.72 882.11456s56.85248-137.91232 126.85312-137.91232z m0 168.83712c15.64672 0 28.4672-13.9264 28.4672-30.96576 0-16.9984-12.82048-30.96576-28.4672-30.96576-15.7696 0-28.50816 13.9264-28.50816 30.96576 0 17.12128 12.86144 30.96576 28.50816 30.96576zM886.90688 36.98688c69.91872 0 126.85312 61.80864 126.85312 137.91232s-56.9344 137.78944-126.85312 137.78944c-69.87776 0-126.85312-61.8496-126.85312-137.91232 0-76.10368 56.9344-137.78944 126.85312-137.78944z m0 168.87808c15.64672 0 28.4672-13.9264 28.4672-30.96576s-12.6976-30.96576-28.4672-30.96576c-15.7696 0-28.4672 13.9264-28.4672 30.96576 0 16.9984 12.82048 30.96576 28.4672 30.96576zM339.06688 228.9664c70.0416 0 126.85312 61.8496 126.85312 137.95328 0 76.10368-56.9344 137.87136-126.85312 137.87136-69.87776 0-126.81216-61.76768-126.81216-137.87136S269.1072 228.9664 339.06688 228.9664z m0 169.04192c15.7696 0 28.50816-13.9264 28.50816-30.96576 0-17.16224-12.6976-30.96576-28.50816-30.96576-15.72864 0-28.4672 13.9264-28.4672 30.96576 0 17.12128 12.82048 30.96576 28.4672 30.96576zM700.94848 594.61632c70.00064 0 126.73024 61.80864 126.73024 137.78944s-56.85248 137.91232-126.73024 137.91232c-69.91872 0-126.85312-61.8496-126.85312-137.91232 0-76.10368 56.85248-137.78944 126.85312-137.78944z m0 168.7552c15.64672 0 28.4672-13.9264 28.4672-30.96576s-12.82048-30.96576-28.4672-30.96576c-15.7696 0-28.4672 13.9264-28.4672 30.96576 0 16.9984 12.82048 30.96576 28.4672 30.96576z" p-id="51640"></path><path d="M129.76128 932.08576c-25.31328-10.48576-38.05184-41.45152-28.38528-68.97664L282.91072 347.83232c5.85728-16.54784 18.92352-28.95872 34.816-32.9728 15.85152-4.01408 32.5632 0.8192 44.52352 12.9024l307.4048 310.51776 160.84992-481.64864c9.25696-27.77088 37.51936-41.94304 62.95552-32.03072 25.51808 10.07616 38.66624 40.79616 29.45024 68.4032l-185.9584 557.54752a50.66752 50.66752 0 0 1-34.69312 33.66912 46.61248 46.61248 0 0 1-45.01504-12.73856l-308.4288-311.5008-155.56608 441.22112c-7.49568 21.2992-26.09152 34.4064-45.8752 34.4064-5.89824 0-11.75552-1.18784-17.6128-3.56352z" p-id="51641"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742295159707" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="55724" id="mx_n_1742295159708" width="128" height="128"><path d="M265.626741 519.173705c118.701281 118.701281 311.150529 118.701281 429.851811 0 118.701281-118.701281 118.701281-311.150529 0-429.851811-118.701281-118.701281-311.150529-118.687019-429.851811 0.014262-118.701281 118.687019-118.701281 311.136267 0 429.837549z" p-id="55725"></path><path d="M719.195989 649.141838c-64.691699-27.839109-144.329805-41.074095-238.686128-41.074094C190.595209 608.067744 38.506964 732.54507 38.506964 1022.459721h452.043231c-10.610808-29.550529-16.315543-61.382953-16.315543-94.584512-0.114095-142.960669 106.792646-261.048691 244.961337-278.733371z" p-id="55726"></path><path d="M902.2039 915.096602c0 10.610808-8.557103 19.167911-19.167911 19.167911-10.610808 0-19.167911-8.557103-19.167911-19.167911V832.035655h-83.060947c-10.610808 0-19.167911-8.557103-19.167911-19.167911 0-10.610808 8.557103-19.167911 19.167911-19.167911h121.396769v121.396769z m-47.463399-47.577493l-43.926462 73.134707h-105.081226l-58.302395 58.302396c-3.765125 3.765125-8.671198 5.590641-13.57727 5.59064-4.906072 0-9.812145-1.825515-13.577271-5.59064a19.143666 19.143666 0 0 1 0-27.154541l69.483677-69.483677h99.262396l32.745181-54.53727c5.476546-9.013482 17.228301-11.979944 26.241783-6.617493 9.241671 5.476546 12.208134 17.228301 6.731587 26.355878z m-86.711977-156.880223c-119.913538 0-217.236323 97.208691-217.236323 217.236323 0 34.000223 7.98663 66.060836 21.906183 94.698607H963.244568c13.919554-28.637772 21.906184-60.698384 21.906184-94.698607 0.114095-119.913538-97.094596-217.236323-217.122228-217.236323z" p-id="55727"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742295203078" class="icon" viewBox="0 0 1047 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="56784" width="128" height="128"><path d="M960 2.91c48.198 0 87.273 39.074 87.273 87.272v669.09c0 48.199-39.075 87.273-87.273 87.273H87.273C39.075 846.545 0 807.471 0 759.273V90.182C0 41.984 39.075 2.909 87.273 2.909H960zM858.53 239.795a43.636 43.636 0 0 0-59.723 0.786l-1.92 1.978L602.91 454.69l-114.996-184-1.542-2.297a43.636 43.636 0 0 0-65.746-6.01l-1.92 1.995-232.727 254.546-1.803 2.094a43.636 43.636 0 0 0 2.501 57.542l2.066 2.007 2.094 1.804a43.636 43.636 0 0 0 57.542-2.502l2.007-2.065 193.979-212.16 115.008 184.029 1.547 2.298a43.636 43.636 0 0 0 65.746 6.004l1.92-1.99L861.312 301.44l1.804-2.095a43.636 43.636 0 0 0-4.573-59.549h-0.012z m14.197 694.022a43.636 43.636 0 0 1 2.56 87.203l-2.56 0.07H174.545a43.636 43.636 0 0 1-2.56-87.203l2.56-0.07h698.182z" p-id="56785"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742295043227" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="50552" width="128" height="128"><path d="M224 85.312a32 32 0 0 1 32-32h512a32 32 0 0 1 0 64H256a32 32 0 0 1-32-32z" p-id="50553"></path><path d="M352.384 85.312a32 32 0 0 1 32-32h256.192a32 32 0 0 1 32 32v228.16l150.784 312.576a32 32 0 0 1-57.6 27.84L611.776 334.72a32 32 0 0 1-3.2-13.888v-203.52H416.384v203.52a32 32 0 0 1-3.2 13.888l-154.496 319.168a32 32 0 1 1-57.6-27.84l151.296-312.576V85.312z" p-id="50554"></path><path d="M166.272 931.648a69.76 69.76 0 0 1-32.384-93.248l96-198.4S384 746.624 512 640c128-106.688 282.56 0 282.56 0l95.808 198.464a69.76 69.76 0 0 1-62.912 100.16H196.736c-10.56 0-20.992-2.368-30.464-6.976z" p-id="50555"></path><path d="M693.76 631.104c-48.576-11.84-107.584-11.2-161.28 33.472-74.304 61.952-156.416 61.376-217.088 46.528a347.52 347.52 0 0 1-71.552-26.368l-81.152 167.68a37.76 37.76 0 0 0 34.048 54.272h630.784a37.824 37.824 0 0 0 34.048-54.272l28.8-13.888-28.8 13.888-91.776-190.208a285.888 285.888 0 0 0-76.032-31.104z m100.864 8.96l18.176-26.368a32 32 0 0 1 10.624 12.416l95.744 198.528-27.072 13.056 27.072-13.056a101.76 101.76 0 0 1-91.648 146.048H196.736a101.824 101.824 0 0 1-91.648-146.176l96-198.4a32 32 0 0 1 46.976-12.48l0.064 0.064-18.176 26.304 18.176-26.304h0.064l0.96 0.64 4.224 2.688a284.352 284.352 0 0 0 77.184 31.872c48.384 11.84 107.328 11.264 160.96-33.472 74.368-61.952 156.608-61.312 217.344-46.528a350.208 350.208 0 0 1 101.376 43.136l1.728 1.088 0.512 0.384 0.192 0.064v0.064h0.064l-18.112 26.368z" p-id="50556"></path><path d="M512 832a64 64 0 1 1-128 0 64 64 0 0 1 128 0zM768 736a32 32 0 1 1-64 0 32 32 0 0 1 64 0zM640 672a32 32 0 1 1-64 0 32 32 0 0 1 64 0z" p-id="50557"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1742292810401" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23099" width="128" height="128" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M522.24 407.87968l-491.52-163.84v-40.96l491.52-163.84 491.52 163.84v40.96l-491.52 163.84z m-491.52 0v40.96l491.52 163.84 491.52-163.84v-40.96l-122.88-40.96-368.64 122.88-368.64-122.88-122.88 40.96z" fill="#FFFFFF" p-id="23100"></path><path d="M30.72 612.67968v40.96l491.52 163.84 491.52-163.84v-40.96l-122.88-40.96-368.64 122.88-368.64-122.88-122.88 40.96z m0 204.8v40.96l491.52 163.84 491.52-163.84v-40.96l-122.88-40.96-368.64 122.88-368.64-122.88-122.88 40.96z" fill="#FFFFFF" p-id="23101"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742294201092" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="41989" id="mx_n_1742294201092" width="128" height="128"><path d="M831.825474 63.940169H191.939717C121.2479 63.940169 63.940169 121.2479 63.940169 191.939717v639.885757C63.940169 902.517291 121.2479 959.825022 191.939717 959.825022h639.885757c70.691817 0 127.999548-57.307731 127.999548-127.999548V191.939717C959.825022 121.2479 902.517291 63.940169 831.825474 63.940169zM895.884854 831.998871A63.835408 63.835408 0 0 1 831.912173 895.884854H192.087827c-17.112123 0-33.270563-6.574639-45.372232-18.67631S127.880338 849.110994 127.880338 831.998871V192.001129A64.236389 64.236389 0 0 1 192.087827 127.880338h639.824346A64.037705 64.037705 0 0 1 895.884854 192.001129v639.997742z" p-id="41990"></path><path d="M791.998335 351.851551h-255.999097a31.970084 31.970084 0 0 0 0 63.940169h255.999097a31.970084 31.970084 0 0 0 0-63.940169zM791.998335 607.973471h-255.999097a31.970084 31.970084 0 0 0 0 63.940169h255.999097a31.970084 31.970084 0 0 0 0-63.940169zM344.001722 527.997686c-61.855792 0-111.985607 50.144265-111.985607 111.985606s50.144265 111.985607 111.985607 111.985607 111.985607-50.144265 111.985606-111.985607-50.129815-111.985607-111.985606-111.985606z m33.982213 145.982269a48.045438 48.045438 0 1 1 14.088511-33.982213 47.745605 47.745605 0 0 1-14.088511 33.985826zM417.395643 297.394035L311.999125 402.78694 270.6078 361.392003a31.970084 31.970084 0 1 0-45.213286 45.213285l63.997968 64.001581a31.970084 31.970084 0 0 0 45.213286 0l127.999548-127.999549a31.970084 31.970084 0 0 0-45.209673-45.213285z" p-id="41991"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742294944205" class="icon" viewBox="0 0 1066 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="44647" width="128" height="128"><path d="M763.094151 511.488085c74.824863-49.698384 120.29995-139.155474 120.001333-235.438093 1.834361-72.051991-22.652225-141.800367-67.956674-193.674388-45.26179-51.831361-107.502083-81.607732-172.771205-82.375604-134.078987 2.388935-241.111815 124.267289-239.149475 272.295951-1.493084 97.647725 44.109982 188.725879 119.958674 239.192134a215.260123 215.260123 0 0 0 239.917347 0zM358.126979 325.663056h-298.616897c-20.476587 1.493084-36.815197 19.410098-38.180304 42.104983v636.309948h170.42493C146.748875 794.235627 251.22213 652.861856 396.307282 552.739877V361.027829c-1.834361-21.329778-18.898184-37.113814-38.222963-35.322113zM311.84136 460.296617c0 13.224463-9.683719 24.10265-21.841693 24.10265H136.595901c-11.987335 0-21.841693-10.750208-21.841693-24.10265 0-13.267122 9.811698-24.10265 21.841693-24.102649h153.361106c12.029995 0 21.841693 10.707549 21.841693 24.102649z" p-id="44648"></path><path d="M136.595901 518.185636h153.403766c11.987335 0 21.841693 10.750208 21.841693 24.102649 0 13.224463-9.726379 24.10265-21.841693 24.10265H136.595901a20.732545 20.732545 0 0 1-15.4001-7.081487 25.510415 25.510415 0 0 1-6.398934-17.021163c0-6.398934 2.260957-12.49925 6.398934-17.063822a20.732545 20.732545 0 0 1 15.4001-7.038827zM673.125146 715.272788c2.85819-17.917014 9.385102-34.980837 19.068822-49.570405 12.925846-35.364773 19.111481-49.613064-12.925846-70.686886a55.457424 55.457424 0 0 0-46.882853-5.417763 62.837527 62.837527 0 0 0-36.260623 33.274454c-12.925846 35.407432 19.111481 49.613064 19.111481 70.686885-4.564573 37.967005-10.963506 75.592735-19.111481 112.791869-8.105316 37.241793 0 27.89935-31.994668-42.104983a1739.05949 1739.05949 0 0 1-63.392101-177.549075c-172.429928 65.48242-261.75904 191.797367-261.75904 376.129312 0 70.644226 786.044993 105.966339 805.113814-42.147642 18.983503-148.24196-223.706716-394.942176-249.643726-324.255291v-0.767872l-89.329112 211.335444-31.994667-91.718047z" p-id="44649"></path></svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg t="1742295020185" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="49469" width="128" height="128"><path d="M286.88384 18.6368a206.19264 206.19264 0 0 1 177.3568 145.53088 206.56128 206.56128 0 0 1 8.84736 59.92448v235.9296H237.1584a207.38048 207.38048 0 0 1-97.32096-24.33024A206.35648 206.35648 0 0 1 30.72 253.5424v-29.4912A206.4384 206.4384 0 0 1 237.11744 17.65376h29.4912c6.79936 0 13.5168 0.32768 20.2752 0.98304zM196.85376 996.7616A206.35648 206.35648 0 0 1 30.72 794.2144v-29.4912a206.39744 206.39744 0 0 1 206.4384-206.4384h235.9296v235.9296a206.11072 206.11072 0 0 1-60.45696 145.98144 206.6432 206.6432 0 0 1-145.98144 60.45696h-29.53216a205.94688 205.94688 0 0 1-40.26368-3.93216zM757.63712 999.71072a206.68416 206.68416 0 0 1-151.47008-90.7264 205.824 205.824 0 0 1-34.77504-114.688v-235.9296h235.9296a206.11072 206.11072 0 0 1 171.66336 91.70944 205.78304 205.78304 0 0 1 34.77504 114.688v29.4912a206.4384 206.4384 0 0 1-206.39744 206.4384h-29.4912c-6.7584 0-13.5168-0.32768-20.23424-0.98304zM847.62624 21.62688a206.0288 206.0288 0 0 1 141.76256 105.14432 205.6192 205.6192 0 0 1 24.3712 97.32096v29.4912a206.0288 206.0288 0 0 1-46.85824 130.99008 206.35648 206.35648 0 0 1-159.58016 75.44832h-235.9296v-235.9296a206.0288 206.0288 0 0 1 75.48928-159.58016 205.86496 205.86496 0 0 1 110.71488-45.8752c6.71744-0.65536 13.47584-0.98304 20.23424-0.98304h29.53216a206.0288 206.0288 0 0 1 40.26368 3.97312z" p-id="49470"></path></svg> |
| | |
| | | color: #333; |
| | | padding: 6px 15px !important; |
| | | } |
| | | |
| | | .el-calendar .el-calendar__header { |
| | | display: none; |
| | | } |
| | | |
| | | .el-calendar .el-calendar__body { |
| | | padding: 0; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-table:not(.is-range) td.next { |
| | | /*éèä¸ä¸ªæçæ¥æ*/ |
| | | display: none; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-day { |
| | | height: 40px; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-table td { |
| | | border: 0; |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-table tr td:first-child { |
| | | border-left: 0; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-day span { |
| | | display: inline-block; |
| | | width: 30px; |
| | | height: 30px; |
| | | line-height: 30px; |
| | | text-align: center; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | .el-calendar .is-selected { |
| | | background: transparent !important; |
| | | } |
| | | |
| | | .el-calendar .is-selected .el-calendar-day { |
| | | background: transparent !important; |
| | | } |
| | | |
| | | .el-calendar .is-selected .el-calendar-day span { |
| | | background: #3a7bfa !important; |
| | | color: #fff !important; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-day:hover { |
| | | background: transparent; |
| | | } |
| | | |
| | | .el-calendar .el-calendar-day span:hover { |
| | | background: #3a7bfa !important; |
| | | color: #fff !important; |
| | | } |
| | |
| | | import Moment from "moment"; |
| | | import basicContainer from './components/basic-container/main' |
| | | |
| | | |
| | | // å
¨å±æ¹æ³æè½½ |
| | | Vue.prototype.getDicts = getDicts; |
| | | Vue.prototype.getConfigKey = getConfigKey; |
| | |
| | | Vue.prototype.HaveJson = (val) => { |
| | | return JSON.parse(JSON.stringify(val)); |
| | | }; |
| | | Vue.prototype.javaApi = process.env.VUE_APP_BASE_API |
| | | ? process.env.VUE_APP_BASE_API |
| | | Vue.prototype.javaApi = process.env.VUE_BASE_URL |
| | | ? process.env.VUE_BASE_URL |
| | | : "http://127.0.0.1:8002"; |
| | | Vue.prototype.checkPermi = checkPermi; |
| | | Vue.prototype.uploadHeader = { |
| | |
| | | |
| | | NProgress.configure({ showSpinner: false }) |
| | | |
| | | const whiteList = ['/login', '/register'] |
| | | const whiteList = ['/login', '/register','/thirdpartylogin', '/logindemo'] |
| | | |
| | | const isWhiteList = (path) => { |
| | | return whiteList.some(pattern => isPathMatch(pattern, path)) |
| | |
| | | component: () => import("@/views/login"), |
| | | hidden: true, |
| | | }, |
| | | // ç¬¬ä¸æ¹ç»å½é¡µ |
| | | { |
| | | path: "/thirdpartylogin", |
| | | component: () => import("@/views/thirdpartylogin"), |
| | | hidden: true, |
| | | }, |
| | | // ç¬¬ä¸æ¹ç»å½é¡µä¸è½¬ |
| | | { |
| | | path: "/logindemo", |
| | | component: () => import("@/views/logindemo"), |
| | | hidden: true, |
| | | }, |
| | | { |
| | | path: "/register", |
| | | component: () => import("@/views/register"), |
| | |
| | | // 任塿£éªé¡µé¢ |
| | | path: 'inspection', |
| | | component: () => import('@/views/business/inspectionTask/Inspection'), |
| | | name: 'inspection', |
| | | meta: { title: '姿忣éª', activeMenu: '/business/inspectionTask' } |
| | | name: 'Inspection', |
| | | meta: {keepAlive: false, title: '姿忣éª', activeMenu: '/business/inspectionTask' } |
| | | }, |
| | | // { |
| | | // // æ¥çå§æå详æ
é¡µé¢ |
| | |
| | | import { login, logout, getInfo } from "@/api/login"; |
| | | import { login, logout, getInfo,LoginBySSO } from "@/api/login"; |
| | | import { getToken, setToken, removeToken } from "@/utils/auth"; |
| | | import { isHttp, isEmpty } from "@/utils/validate"; |
| | | import defAva from "@/assets/images/profile.jpg"; |
| | |
| | | }); |
| | | }); |
| | | }, |
| | | |
| | | // åç¹ç»å½ |
| | | LoginBySSO({ commit }, accessToken) { |
| | | return new Promise((resolve, reject) => { |
| | | LoginBySSO(accessToken) |
| | | .then((res) => { |
| | | setToken(res.token); |
| | | commit("SET_TOKEN", res.token); |
| | | Vue.prototype.uploadHeader = { |
| | | Authorization: "Bearer " + res.token, |
| | | }; |
| | | resolve(); |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | | }); |
| | | }) |
| | | }, |
| | | // è·åç¨æ·ä¿¡æ¯ |
| | | GetInfo({ commit, state }) { |
| | | return new Promise((resolve, reject) => { |
| | |
| | | LogOut({ commit, state }) { |
| | | return new Promise((resolve, reject) => { |
| | | logout(state.token) |
| | | .then(() => { |
| | | commit("SET_TOKEN", ""); |
| | | commit("SET_ROLES", []); |
| | | commit("SET_PERMISSIONS", []); |
| | | removeToken(); |
| | | resolve(); |
| | | .then((res) => { |
| | | if (res.data) { |
| | | window.location.href = res.data |
| | | } else { |
| | | commit("SET_TOKEN", ""); |
| | | commit("SET_ROLES", []); |
| | | commit("SET_PERMISSIONS", []); |
| | | removeToken(); |
| | | resolve(); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | reject(error); |
| | |
| | | import getLodop from "@/utils/lodop"; |
| | | import { bigEval } from "@/utils/bigEval"; |
| | | import { getDicts } from "@/api/system/dict/data"; |
| | | import Big from "big.js"; |
| | | export default { |
| | | components: { |
| | | fiberOpticConfig, |
| | |
| | | let arr1 = []; |
| | | arr0.forEach((m) => { |
| | | let index = code.findIndex((b) => m.includes(b)); |
| | | // console.log("index--ã", index); |
| | | if (index > -1) { |
| | | let arr = m.split(code[index]).filter((b) => !!b); |
| | | let calcNum = this.$Big( |
| | | let calcNum = new Big( |
| | | bigEval(this.replaceAll(arr[0], symbolItem, value)) |
| | | ); |
| | | let num = calcNum.toFixed( |
| | |
| | | if (index > -1) { |
| | | let arr = ask.split(code[index]).filter((b) => !!b); |
| | | console.log("ç¹æ®å¼æ¿æ¢--ã", arr); |
| | | let calcNum = this.$Big( |
| | | let calcNum = new Big( |
| | | bigEval(this.replaceAll(arr[0], symbolItem, value)) |
| | | ); |
| | | let num = calcNum.toFixed( |
| | |
| | | import excelFunction from "@/utils/excelFountion"; |
| | | import { mapGetters } from "vuex"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Big from "big.js"; |
| | | import InspectionWorker from "../../../workers/InspectionWorker.worker"; |
| | | import InspectionWorkerAsData from "../../../workers/InspectionWorkerAsData.worker"; |
| | | export default { |
| | | name: "Inspection", |
| | | components: { |
| | | limsTable, |
| | | }, |
| | |
| | | this.getComparisonList(); |
| | | this.getAuthorizedPerson(); |
| | | this.scrollInit(); |
| | | // this.getPower(); |
| | | this.startWorker(); |
| | | }, |
| | | watch: { |
| | |
| | | this.stopWorker(); // ç¡®ä¿ä¹åç Worker 已忢 |
| | | } |
| | | // å建 Worker å®ä¾ |
| | | this.worker = new Worker("/static/js/worker.js"); |
| | | this.worker = new InspectionWorker(); |
| | | if (this.worker0) { |
| | | this.stopWorker(); // ç¡®ä¿ä¹åç Worker 已忢 |
| | | } |
| | | // å建 Worker å®ä¾ |
| | | this.worker0 = new Worker("/static/js/worker0.js"); |
| | | this.worker0 = new InspectionWorkerAsData(); |
| | | }, |
| | | // 忢å¤çº¿ç¨ |
| | | stopWorker() { |
| | |
| | | ) |
| | | ) { |
| | | if (parseFloat(n.v.v) >= 100000) { |
| | | let num2 = new this.$Big(n.v.v); |
| | | let num2 = new Big(n.v.v); |
| | | n.v.v = num2.toExponential(); |
| | | } |
| | | } |
| | |
| | | } |
| | | inspectorList.push(this.nickName); |
| | | this.$router.push({ |
| | | name: "inspection", |
| | | name: "Inspection", |
| | | params: { |
| | | inspectorList: inspectorList, |
| | | state: 1, |
| | |
| | | <template> |
| | | <div class="bg-1"> |
| | | <div class="bg-1" style="padding: 15px 5px"> |
| | | <el-row :gutter="25"> |
| | | <el-col :lg="14" :md="14" :sm="24" :xl="14" :xs="24"> |
| | | <div class="left-1"> |
| | | <div class="say"> |
| | | <div style="display: flex;align-items: center;flex-wrap: wrap;"> |
| | | <div class="say-1">{{ user.name }} æ¨å¥½ï¼ç¥æ¨å¼å¿æ¯ä¸å¤©</div> |
| | | <div style="display: flex; align-items: center; flex-wrap: wrap"> |
| | | <div class="say-1">{{ nickName }} æ¨å¥½ï¼ç¥æ¨å¼å¿æ¯ä¸å¤©</div> |
| | | <div class="say-2">å½åæ¶é´ï¼ {{ now }}</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-loading="workLoading" class="left-2 card" style="overflow: hidden;"> |
| | | <div v-for="(item, index) in workDay" :key="index" class="left-2-item"> |
| | | <div |
| | | v-loading="workLoading" |
| | | class="left-2 card" |
| | | style="overflow: hidden" |
| | | > |
| | | <div |
| | | v-for="(item, index) in workDay" |
| | | :key="index" |
| | | class="left-2-item" |
| | | > |
| | | <div class="left-item-title"> |
| | | <span style="font-size: 18px;">{{ item }}</span> |
| | | <span style="font-size: 14px;color: #999999;">{{ weekdays[index] }}</span> |
| | | <span style="font-size: 18px">{{ item }}</span> |
| | | <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> |
| | | <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 |
| | | style=" |
| | | display: inline-block; |
| | | height: 24px; |
| | | width: 24px; |
| | | border-radius: 50%; |
| | | line-height: 24px; |
| | | text-align: center; |
| | | background: #c0c4cc; |
| | | color: #fff; |
| | | " |
| | | >{{ m.name.charAt(0) }}</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> |
| | |
| | | <div class="right-1 card"> |
| | | <div class="right-1-item"> |
| | | <div class="img"> |
| | | <img alt="" src="@/assets/index_image/index-0.svg"> |
| | | <img alt="" src="@/assets/index_image/index-0.svg" /> |
| | | </div> |
| | | <div class="mun"> |
| | | <p style="font-size: 20px;">{{ getNumberFourTypes.totalNumberOfMessages }}</p> |
| | | <p style="font-size: 14px;margin-bottom: 10px;">æçå¾
å</p> |
| | | <p style="font-size: 20px"> |
| | | {{ getNumberFourTypes.totalNumberOfMessages }} |
| | | </p> |
| | | <p style="font-size: 14px; margin-bottom: 10px">æçå¾
å</p> |
| | | </div> |
| | | </div> |
| | | <div class="right-1-item"> |
| | | <div class="img"> |
| | | <img alt="" src="@/assets/index_image/index-1.svg"> |
| | | <img alt="" src="@/assets/index_image/index-1.svg" /> |
| | | </div> |
| | | <div class="mun"> |
| | | <p style="font-size: 20px;">{{ getNumberFourTypes.totalNumberOfReadMessages }}</p> |
| | | <p style="font-size: 14px;margin-bottom: 10px;">å·²åäºå®</p> |
| | | <p style="font-size: 20px"> |
| | | {{ getNumberFourTypes.totalNumberOfReadMessages }} |
| | | </p> |
| | | <p style="font-size: 14px; margin-bottom: 10px">å·²åäºå®</p> |
| | | </div> |
| | | </div> |
| | | <div class="right-1-item"> |
| | | <div class="img"> |
| | | <img alt="" src="@/assets/index_image/index-2.svg"> |
| | | <img alt="" src="@/assets/index_image/index-2.svg" /> |
| | | </div> |
| | | <div class="mun"> |
| | | <p style="font-size: 20px;">{{ getNumberFourTypes.remainingToDo }}</p> |
| | | <p style="font-size: 14px;margin-bottom: 10px;">å©ä½å¾
å</p> |
| | | <p style="font-size: 20px"> |
| | | {{ getNumberFourTypes.remainingToDo }} |
| | | </p> |
| | | <p style="font-size: 14px; margin-bottom: 10px">å©ä½å¾
å</p> |
| | | </div> |
| | | </div> |
| | | <div class="right-1-item"> |
| | | <div class="img"> |
| | | <img alt="" src="@/assets/index_image/index-3.svg"> |
| | | <img alt="" src="@/assets/index_image/index-3.svg" /> |
| | | </div> |
| | | <div class="mun"> |
| | | <p style="font-size: 20px;">{{ getNumberFourTypes.totalNumberOfMessagesInThePastSevenDays }}</p> |
| | | <p style="font-size: 14px;margin-bottom: 10px;">è¿æäºå®</p> |
| | | <p style="font-size: 20px"> |
| | | {{ getNumberFourTypes.totalNumberOfMessagesInThePastSevenDays }} |
| | | </p> |
| | | <p style="font-size: 14px; margin-bottom: 10px">è¿æäºå®</p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="right-2 card"> |
| | | <div class="right-2-title"> |
| | | <span style="color: #333333;font-size: 16px;">æçæ¥ç¨</span> |
| | | <span style="cursor: pointer;font-size: 12px; |
| | | color: #3A7BFA;" @click="dialogVisible = true">æ·»å æçæ¥ç¨</span> |
| | | <span style="color: #333333; font-size: 16px">æçæ¥ç¨</span> |
| | | <span |
| | | style="cursor: pointer; font-size: 12px; color: #3a7bfa" |
| | | @click="dialogVisible = true" |
| | | >æ·»å æçæ¥ç¨</span |
| | | > |
| | | </div> |
| | | <div class="right-2-body"> |
| | | <div class="calendar" style="width: 49%;"> |
| | | <div class="calendar" style="width: 49%"> |
| | | <div class="control"> |
| | | <el-button class="prevm" icon="el-icon-arrow-left" @click="prevMonth(calendarValue)"></el-button> |
| | | <span>{{ calendarValue.getFullYear() + 'å¹´' + (calendarValue.getMonth() + 1) + 'æ' }}</span> |
| | | <el-button class="nextm" icon="el-icon-arrow-right" @click="nextMonth(calendarValue)"></el-button> |
| | | <el-button |
| | | class="prevm" |
| | | icon="el-icon-arrow-left" |
| | | @click="prevMonth(calendarValue)" |
| | | ></el-button> |
| | | <span>{{ |
| | | calendarValue.getFullYear() + |
| | | "å¹´" + |
| | | (calendarValue.getMonth() + 1) + |
| | | "æ" |
| | | }}</span> |
| | | <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}"> |
| | | <el-calendar v-model="calendarValue" class="calendar"> |
| | | <template slot="dateCell" slot-scope="{ date, data }"> |
| | | <span> |
| | | {{ data.day.split('-').slice(2) + '' }} |
| | | {{ data.day.split("-").slice(2) + "" }} |
| | | </span> |
| | | <!-- <el-badge v-if="data.isSelected" is-dot class="item"> |
| | | </el-badge> --> |
| | | </template> |
| | | </el-calendar> |
| | | </div> |
| | | <div v-loading="scheduleLoading" class="right-2-list" style="width: 49%;height: 286px;"> |
| | | <div v-for="(m, i) in listScheduleByMe" :key="i" class="list2-item"> |
| | | <div |
| | | v-loading="scheduleLoading" |
| | | class="right-2-list" |
| | | style="width: 49%; height: 286px" |
| | | > |
| | | <div |
| | | v-for="(m, i) in listScheduleByMe" |
| | | :key="i" |
| | | class="list2-item" |
| | | > |
| | | <span>{{ m.scheduleTimes }}</span> |
| | | <el-tooltip :content="m.text" effect="dark" placement="top" style="margin-left: 10px;"> |
| | | <el-tooltip |
| | | :content="m.text" |
| | | effect="dark" |
| | | placement="top" |
| | | style="margin-left: 10px" |
| | | > |
| | | <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 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="tab-item" |
| | | style="cursor: pointer" |
| | | :class="{ active: currentIndex == 4 }" |
| | | @click="currentIndex = 4" |
| | | > |
| | | é¢è¦æé |
| | | </div> |
| | | <div |
| | | class="tab-item" |
| | | style="cursor: pointer" |
| | | :class="{ active: currentIndex == 5 }" |
| | | @click="currentIndex = 5" |
| | | > |
| | | éç¥éå |
| | | </div> |
| | | </div> |
| | | <div v-loading="listLoading" class="right-3-list"> |
| | | <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="right-3-list" v-loading="listLoading"> |
| | | <scroll-pagination |
| | | @load="getList" |
| | | :finishLoding="finishLoding" |
| | | :list="list" |
| | | v-if="list.length > 0 || listLoading" |
| | | > |
| | | <div class="list3-item" v-for="(m, i) in list" :key="i"> |
| | | <div class="list3-item-title"> |
| | | <!-- <img alt="" src="../../../static/img/index-tip.svg">--> |
| | | <p style="color: #FF7756">{{ m.theme }}</p> |
| | | <img src="../assets/index_image/index-tip.svg" alt="" /> |
| | | <p>{{ 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 |
| | | style="width: 73%; -webkit-line-clamp: 1; cursor: pointer" |
| | | class="ellipsis-multiline" |
| | | @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 |
| | | v-if="list.length < 1 && !listLoading" |
| | | style=" |
| | | color: #909399; |
| | | font-size: 14px; |
| | | text-align: center; |
| | | margin-top: 80px; |
| | | " |
| | | > |
| | | ææ æ°æ® |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-dialog :visible.sync="dialogVisible" title="æ¥ç¨æ·»å " width="400px"> |
| | | <div class="body" style="max-height: 60vh;"> |
| | | <div class="body" style="max-height: 60vh"> |
| | | <el-row> |
| | | <el-col :span="22" class="search_thing"> |
| | | <div class="search_label"><span style="color: red;margin-right: 4px;">*</span>æ¶é´ï¼</div> |
| | | <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" |
| | | style="width: 100%;" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"> |
| | | <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> |
| | | <el-col :span="22" class="search_thing"> |
| | | <div class="search_label"><span style="color: red;margin-right: 4px;">*</span>å
容ï¼</div> |
| | | <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> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-row> |
| | | <el-button @click="handleCancel">å æ¶</el-button> |
| | | <el-button :loading="loading" type="primary" @click="submit">ç¡® å®</el-button> |
| | | <el-button :loading="loading" type="primary" @click="submit" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </el-row> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getYearAndMonthAndDays } from '@/utils/date.js' |
| | | import ScrollPagination from '@/components/index/scroll-paging.vue' |
| | | import { |
| | | pageNotice, |
| | | triggerModificationStatusToRead, |
| | | getNumberFourTypesMessagesHomePage, |
| | | } from "@/api/system/notice"; |
| | | import { |
| | | addSchedule, |
| | | calendarWorkByWeek, |
| | | ScheduleByMe, |
| | | } from "@/api/chart/dailyBusinessStatistical.js"; |
| | | import { getYearAndMonthAndDays } from "@/utils/date.js"; |
| | | import ScrollPagination from "@/components/index/scroll-paging.vue"; |
| | | import { mapGetters } from "vuex"; |
| | | export default { |
| | | components: { |
| | | ScrollPagination |
| | | ScrollPagination, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["nickName"]), |
| | | }, |
| | | data() { |
| | | return { |
| | | user: {}, |
| | | now: null, |
| | | calendarValue: new Date(), |
| | | currentIndex: 5, |
| | | dialogVisible: false, |
| | | query: { |
| | | time: '', |
| | | text: '' |
| | | time: "", |
| | | text: "", |
| | | }, |
| | | loading: false, |
| | | workLoading: false, |
| | |
| | | timer: null, |
| | | keyMap: {}, |
| | | getNumberFourTypes: {}, |
| | | } |
| | | }; |
| | | }, |
| | | watch: { |
| | | calendarValue(val) { |
| | | this.getScheduleByMe() |
| | | this.getScheduleByMe(); |
| | | }, |
| | | currentIndex() { |
| | | this.keyMap = {} |
| | | this.keyMap = {}; |
| | | this.currentPage = 1; |
| | | this.list = []; |
| | | this.getList(); |
| | | } |
| | | }, |
| | | }, |
| | | mounted() { |
| | | this.user = JSON.parse(localStorage.getItem('user')) |
| | | this.nowTime() |
| | | this.nowTime(); |
| | | setInterval(() => { |
| | | this.nowTime() |
| | | }, 1000) |
| | | this.weekdays = this.getWeekdaysForNextWeek() |
| | | this.nowTime(); |
| | | }, 1000); |
| | | this.weekdays = this.getWeekdaysForNextWeek(); |
| | | this.init(); |
| | | this.currentPage = 1; |
| | | this.keyMap = {} |
| | | this.keyMap = {}; |
| | | this.list = []; |
| | | this.getList(); |
| | | this.getScheduleByMe() |
| | | this.timer && clearInterval(this.timer) |
| | | this.getScheduleByMe(); |
| | | this.timer && clearInterval(this.timer); |
| | | this.timer = setInterval(() => { |
| | | this.init(); |
| | | this.currentPage = 1; |
| | | this.keyMap = {} |
| | | this.keyMap = {}; |
| | | this.list = []; |
| | | this.getList(); |
| | | this.getScheduleByMe() |
| | | }, 1000 * 60 * 10) |
| | | this.getNumberFourTypesFun() |
| | | this.getScheduleByMe(); |
| | | }, 1000 * 60 * 10); |
| | | this.getNumberFourTypesFun(); |
| | | }, |
| | | methods: { |
| | | changeState(val) { |
| | | if (val == 0) { |
| | | return 'å¾
æ£éª' |
| | | return "å¾
æ£éª"; |
| | | } |
| | | }, |
| | | currentIndexChange() { |
| | | this.keyMap = {} |
| | | this.keyMap = {}; |
| | | this.currentPage = 1; |
| | | this.list = []; |
| | | this.getList(); |
| | | }, |
| | | getNumberFourTypesFun() { |
| | | this.$axios.get(this.$api.informationNotification.getNumberFourTypesMessagesHomePage).then(res => { |
| | | this.getNumberFourTypes = res.data |
| | | }) |
| | | getNumberFourTypesMessagesHomePage() |
| | | .then((res) => { |
| | | if (res.code === 200) { |
| | | this.getNumberFourTypes = res.data; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | getList() { |
| | | const key = `_${this.currentPage}` |
| | | const value = this.keyMap[key] |
| | | const key = `_${this.currentPage}`; |
| | | const value = this.keyMap[key]; |
| | | // 妿valueåå¨ï¼è¡¨ç¤ºç¼åæå¼ï¼é£ä¹é»æ¢è¯·æ± |
| | | if (value) { |
| | | return |
| | | return; |
| | | } |
| | | // valueä¸åå¨ï¼è¡¨ç¤ºç¬¬ä¸æ¬¡è¯·æ±,设置å ä½ |
| | | this.keyMap[key] = 'temp' |
| | | this.keyMap[key] = "temp"; |
| | | if (this.currentPage == 1) { |
| | | this.listLoading = true |
| | | this.listLoading = true; |
| | | } |
| | | if (this.list.length == 0) { |
| | | this.finishLoding = false; |
| | | } |
| | | this.$axios.get(this.$api.informationNotification.page + '?size=' + this.pageSize + '¤t=' + this.currentPage + '&messageType=' + this.currentIndex).then(res => { |
| | | if (res.code === 201) { |
| | | return |
| | | } |
| | | let list = res.data.records; |
| | | this.total = res.data.total; |
| | | if (list.length == 0) { |
| | | this.finishLoding = true; |
| | | } else { |
| | | if (list.length < this.pageSize) { |
| | | this.finishLoding = true; |
| | | } |
| | | this.list = this.list.concat(list) |
| | | if (this.total == this.list.length) { |
| | | this.finishLoding = true; |
| | | } |
| | | this.currentPage++; |
| | | } |
| | | this.listLoading = false |
| | | pageNotice({ |
| | | size: this.pageSize, |
| | | current: this.currentPage, |
| | | messageType: this.currentIndex, |
| | | }) |
| | | .then((res) => { |
| | | if (res.code === 201) { |
| | | return; |
| | | } |
| | | let list = res.data.records; |
| | | this.total = res.data.total; |
| | | if (list.length == 0) { |
| | | this.finishLoding = true; |
| | | } else { |
| | | if (list.length < this.pageSize) { |
| | | this.finishLoding = true; |
| | | } |
| | | this.list = this.list.concat(list); |
| | | if (this.total == this.list.length) { |
| | | this.finishLoding = true; |
| | | } |
| | | this.currentPage++; |
| | | } |
| | | this.listLoading = false; |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | nowTime() { |
| | | var date = new Date(); |
| | |
| | | var m = date.getMonth() + 1; |
| | | var d = date.getDate(); |
| | | var h = date.getHours(); |
| | | this.timeH = h |
| | | this.timeH = h; |
| | | var min = date.getMinutes(); |
| | | var s = date.getSeconds(); |
| | | if (s < 10) { |
| | |
| | | this.now = y + "-" + m + "-" + d + " " + h + ":" + min + ":" + s; |
| | | }, |
| | | nextMonth(value) { |
| | | let year = this.calendarValue.getFullYear();// å½å年份 |
| | | let month = this.calendarValue.getMonth() + 1;// å½åæä»½ |
| | | let day = this.calendarValue.getDate();// å½åå¤©æ° |
| | | let year = this.calendarValue.getFullYear(); // å½å年份 |
| | | let month = this.calendarValue.getMonth() + 1; // å½åæä»½ |
| | | let day = this.calendarValue.getDate(); // å½åå¤©æ° |
| | | let nextyear = year; |
| | | let nextmonth = parseInt(month) + 1; |
| | | // 夿ä¸ä¸ææ¯å¦ä¼è¿å
¥ä¸ä¸å¹´ |
| | |
| | | if (day > nextdays) { |
| | | day = nextdays; |
| | | if (day < 10) { |
| | | day = '0' + day; |
| | | day = "0" + day; |
| | | } |
| | | } |
| | | if (nextmonth < 10) { |
| | | nextmonth = '0' + nextmonth; |
| | | nextmonth = "0" + nextmonth; |
| | | } |
| | | let nexttime = nextyear + '-' + nextmonth + '-' + day; |
| | | let nexttime = nextyear + "-" + nextmonth + "-" + day; |
| | | |
| | | // å°å¾å°çå¹´ææ¥æ ¼å¼è½¬æ¢ä¸ºæ åæ¶é´ï¼ä¸é¥¿äºä¹æ¶é´æ ¼å¼ç¸åæè½èå¨ |
| | | this.calendarValue = new Date(nexttime); |
| | | }, |
| | | prevMonth(time) { |
| | | let year = this.calendarValue.getFullYear();// å½å年份 |
| | | let month = this.calendarValue.getMonth() + 1;// å½åæä»½ |
| | | let day = this.calendarValue.getDate();// å½åå¤©æ° |
| | | let year = this.calendarValue.getFullYear(); // å½å年份 |
| | | let month = this.calendarValue.getMonth() + 1; // å½åæä»½ |
| | | let day = this.calendarValue.getDate(); // å½åå¤©æ° |
| | | let prevyear = year; |
| | | let prevmonth = parseInt(month) - 1; |
| | | // 夿ä¸ä¸ææ¯å¦ä¼è¿å
¥ä¸ä¸å¹´ |
| | |
| | | if (day > prevdays) { |
| | | day = prevdays; |
| | | if (day < 10) { |
| | | day = '0' + day; |
| | | day = "0" + day; |
| | | } |
| | | } |
| | | if (prevmonth < 10) { |
| | | prevmonth = '0' + prevmonth; |
| | | prevmonth = "0" + prevmonth; |
| | | } |
| | | let prevtime = prevyear + '-' + prevmonth + '-' + day; |
| | | let prevtime = prevyear + "-" + prevmonth + "-" + day; |
| | | |
| | | // å°å¾å°çå¹´ææ¥æ ¼å¼è½¬æ¢ä¸ºæ åæ¶é´ï¼ä¸é¥¿äºä¹æ¶é´æ ¼å¼ç¸åæè½èå¨ |
| | | this.calendarValue = new Date(prevtime); |
| | |
| | | handleCancel() { |
| | | this.dialogVisible = false; |
| | | this.query = { |
| | | time: '', |
| | | text: '' |
| | | } |
| | | time: "", |
| | | text: "", |
| | | }; |
| | | }, |
| | | submit() { |
| | | if (!this.query.time) { |
| | | this.$message.error('æ¶é´æªå¡«å') |
| | | return |
| | | this.$message.error("æ¶é´æªå¡«å"); |
| | | return; |
| | | } |
| | | if (!this.query.text) { |
| | | this.$message.error('å
容æªå¡«å') |
| | | return |
| | | this.$message.error("å
容æªå¡«å"); |
| | | return; |
| | | } |
| | | this.loading = true; |
| | | this.$axios.post(this.$api.report.addSchedule, this.query).then(res => { |
| | | this.loading = false; |
| | | if (res.code == 201) { |
| | | this.$message.error('æä½å¤±è´¥') |
| | | return |
| | | } |
| | | this.$message.success('ä¿åæå') |
| | | this.handleCancel() |
| | | this.getScheduleByMe() |
| | | }) |
| | | addSchedule(this.query) |
| | | .then((res) => { |
| | | this.loading = false; |
| | | if (res.code == 201) { |
| | | this.$message.error("æä½å¤±è´¥"); |
| | | return; |
| | | } |
| | | this.$message.success("ä¿åæå"); |
| | | this.handleCancel(); |
| | | this.getScheduleByMe(); |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | init() { |
| | | this.workLoading = true; |
| | | this.$axios.get(this.$api.report.calendarWorkByWeek).then(res => { |
| | | if (res.code == 201) return |
| | | this.workLoading = false; |
| | | this.workList = []; |
| | | for (let i = 0; i < 7; i++) { |
| | | this.workList.push(res.data[`work${i}`]) |
| | | } |
| | | this.workDay = res.data.weekDays.map(m => { |
| | | let arr = m.split('-') |
| | | return arr[2] |
| | | calendarWorkByWeek() |
| | | .then((res) => { |
| | | if (res.code == 201) return; |
| | | this.workLoading = false; |
| | | this.workList = []; |
| | | for (let i = 0; i < 7; i++) { |
| | | this.workList.push(res.data[`work${i}`]); |
| | | } |
| | | this.workDay = res.data.weekDays.map((m) => { |
| | | let arr = m.split("-"); |
| | | return arr[2]; |
| | | }); |
| | | }) |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | getWeekdaysForNextWeek() { |
| | | let weekdays = []; |
| | |
| | | let day = date.getDay(); // 0-6 ä»£è¡¨æææ¥å°ææå
|
| | | weekdays.push(day); |
| | | } |
| | | weekdays.reverse() |
| | | weekdays = weekdays.map(m => { |
| | | let day = '' |
| | | weekdays.reverse(); |
| | | weekdays = weekdays.map((m) => { |
| | | let day = ""; |
| | | switch (m) { |
| | | case 0: |
| | | day = 'ææå¤©' |
| | | day = "ææå¤©"; |
| | | break; |
| | | case 1: |
| | | day = 'ææä¸' |
| | | day = "ææä¸"; |
| | | break; |
| | | case 2: |
| | | day = 'ææäº' |
| | | day = "ææäº"; |
| | | break; |
| | | case 3: |
| | | day = 'ææä¸' |
| | | day = "ææä¸"; |
| | | break; |
| | | case 4: |
| | | day = 'ææå' |
| | | day = "ææå"; |
| | | break; |
| | | case 5: |
| | | day = 'ææäº' |
| | | day = "ææäº"; |
| | | break; |
| | | case 6: |
| | | day = 'ææå
' |
| | | day = "ææå
"; |
| | | break; |
| | | } |
| | | return day |
| | | }) |
| | | return day; |
| | | }); |
| | | return weekdays; |
| | | }, |
| | | getScheduleByMe() { |
| | | this.scheduleLoading = true; |
| | | this.$axios.post(this.$api.report.ScheduleByMe, { |
| | | date: getYearAndMonthAndDays(this.calendarValue) |
| | | }).then(res => { |
| | | this.loading = false; |
| | | this.scheduleLoading = false; |
| | | if (res.code == 201) { |
| | | return |
| | | } |
| | | this.listScheduleByMe = res.data.map(m => { |
| | | if (m.scheduleTime) { |
| | | let time = m.scheduleTime.split(' ')[1].split(':') |
| | | m.scheduleTimes = time[0] + ':' + time[1] |
| | | } else { |
| | | m.scheduleTimes = '' |
| | | } |
| | | return m |
| | | }) |
| | | ScheduleByMe({ |
| | | date: getYearAndMonthAndDays(this.calendarValue), |
| | | }) |
| | | .then((res) => { |
| | | this.loading = false; |
| | | this.scheduleLoading = false; |
| | | if (res.code == 201) { |
| | | return; |
| | | } |
| | | this.listScheduleByMe = res.data.map((m) => { |
| | | if (m.scheduleTime) { |
| | | let time = m.scheduleTime.split(" ")[1].split(":"); |
| | | m.scheduleTimes = time[0] + ":" + time[1]; |
| | | } else { |
| | | m.scheduleTimes = ""; |
| | | } |
| | | return m; |
| | | }); |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | goNoticeDetail(row) { |
| | | this.$axios.put(this.$api.informationNotification.triggerModificationStatusToRead + '/' + row.id).then(res => { |
| | | row.num = Math.random(100); |
| | | this.$bus.$emit("change", JSON.stringify(row)); |
| | | this.$parent.addTab({ |
| | | v: "æ¶æ¯è¯¦æ
", |
| | | i: "el-icon-s-tools", |
| | | u: "notice-detail", |
| | | k: 35, |
| | | p: "abcd" |
| | | }, 29); |
| | | }) |
| | | triggerModificationStatusToRead(row.id) |
| | | .then((res) => { |
| | | row.num = Math.random(100); |
| | | this.$bus.$emit("change", JSON.stringify(row)); |
| | | this.$parent.addTab( |
| | | { |
| | | v: "æ¶æ¯è¯¦æ
", |
| | | i: "el-icon-s-tools", |
| | | u: "notice-detail", |
| | | k: 35, |
| | | p: "abcd", |
| | | }, |
| | | 29 |
| | | ); |
| | | }) |
| | | .catch((error) => { |
| | | console.error(error); |
| | | }); |
| | | }, |
| | | }, |
| | | deactivated() { |
| | | this.timer && clearInterval(this.timer) |
| | | } |
| | | } |
| | | this.timer && clearInterval(this.timer); |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | |
| | | } |
| | | |
| | | .card { |
| | | background: #FFFFFF; |
| | | background: #ffffff; |
| | | border-radius: 16px; |
| | | width: 100%; |
| | | box-sizing: border-box; |
| | | } |
| | | |
| | | .right-1 { |
| | | height: 118px; |
| | | padding: 10px 10px 4px; |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | |
| | | .right-1-item .mun { |
| | | margin-left: 6px; |
| | | color: #0166E2; |
| | | color: #0166e2; |
| | | } |
| | | |
| | | .right-2 { |
| | | width: 100%; |
| | | padding: 13px 14px 8px; |
| | | margin-bottom: 16px; |
| | | } |
| | |
| | | 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; |
| | |
| | | width: 32px; |
| | | height: 32px; |
| | | border-radius: 8px; |
| | | border: 1px solid #E8E8E8; |
| | | border: 1px solid #e8e8e8; |
| | | background: #fff; |
| | | padding: 0; |
| | | color: #0166E2; |
| | | color: #0166e2; |
| | | font-size: 20px; |
| | | } |
| | | |
| | |
| | | .right-3-tab { |
| | | display: flex; |
| | | align-items: center; |
| | | margin-bottom: 12px; |
| | | } |
| | | |
| | | .tab-item { |
| | | width: 50%; |
| | | box-sizing: border-box; |
| | | text-align: center; |
| | | padding: 14px 0; |
| | | font-size: 20px; |
| | | background: #F5F7FB; |
| | | background: #f5f7fb; |
| | | color: #333333; |
| | | } |
| | | |
| | | .tab-item.active { |
| | | background: #fff; |
| | | color: #FF3838; |
| | | padding-left: 16px; |
| | | text-align: left; |
| | | color: #ff3838; |
| | | } |
| | | |
| | | .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; |
| | | align-items: center; |
| | | p { |
| | | margin: 0; |
| | | } |
| | | } |
| | | |
| | | .list3-item-info { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | .left-2 { |
| | | display: grid; |
| | | grid-template-columns: repeat(7, 1fr); |
| | | height: 777px; |
| | | height: calc(100vh - 245px); |
| | | } |
| | | |
| | | .left-2-item { |
| | | border-right: 1px solid #F1F1F1; |
| | | border-right: 1px solid #f1f1f1; |
| | | overflow: hidden !important; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .left-2-item:hover .left-item-title span { |
| | | color: #3A7BFA !important; |
| | | color: #3a7bfa !important; |
| | | } |
| | | |
| | | .left-item-title { |
| | | border-bottom: 1px solid #F1F1F1; |
| | | border-bottom: 1px solid #f1f1f1; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | |
| | | } |
| | | |
| | | .body-item { |
| | | background: #70A090; |
| | | background: #70a090; |
| | | border-radius: 16px; |
| | | overflow: hidden; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | .body-item.color0 { |
| | | background: #70A090; |
| | | background: #70a090; |
| | | } |
| | | |
| | | .body-item.color1 { |
| | | background: #EBD476; |
| | | background: #ebd476; |
| | | } |
| | | |
| | | .body-item.color2 { |
| | | background: #FF3838; |
| | | background: #ff3838; |
| | | } |
| | | |
| | | .body-item>div { |
| | | .body-item > div { |
| | | height: calc(100% - 16px); |
| | | margin-top: 16px; |
| | | background: rgba(255, 255, 255, 0.9); |
| | |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | >>>.el-calendar-day span { |
| | | display: inline-block; |
| | | width: 30px; |
| | | height: 30px; |
| | | line-height: 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; |
| | |
| | | border-radius: 10px; |
| | | line-height: 22px; |
| | | text-align: center; |
| | | background: #C0C4CC; |
| | | background: #c0c4cc; |
| | | color: #fff; |
| | | font-size: 14px |
| | | font-size: 14px; |
| | | } |
| | | |
| | | .body-item-insState { |
| | |
| | | line-height: 22px; |
| | | text-align: center; |
| | | color: #fff; |
| | | font-size: 14px |
| | | font-size: 14px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="login"> |
| | | <div class="leftImg"> |
| | | <img src="@/assets/images/loginBackground.png" alt=""> |
| | | <img src="@/assets/images/loginBackground.png" alt="" /> |
| | | </div> |
| | | <div class="rightForm"> |
| | | <div class="title_big">æ¬¢è¿æ¨ç»å½ï¼</div> |
| | | <div class="title_small">LIMSå®éªå®¤ç®¡çç³»ç»</div> |
| | | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> |
| | | <el-form |
| | | ref="loginForm" |
| | | :model="loginForm" |
| | | :rules="loginRules" |
| | | class="login-form" |
| | | > |
| | | <el-form-item prop="username"> |
| | | <el-input |
| | | v-model="loginForm.username" |
| | |
| | | auto-complete="off" |
| | | placeholder="è´¦å·" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="user" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | |
| | | placeholder="å¯ç " |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="password" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="code" v-if="captchaEnabled"> |
| | |
| | | style="width: 63%" |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="validCode" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | <div class="login-code"> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img"/> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">è®°ä½å¯ç </el-checkbox> |
| | | <el-form-item style="width:100%;"> |
| | | <el-checkbox |
| | | v-model="loginForm.rememberMe" |
| | | style="margin: 0px 0px 25px 0px" |
| | | >è®°ä½å¯ç </el-checkbox |
| | | > |
| | | <el-form-item style="width: 100%"> |
| | | <el-button |
| | | :loading="loading" |
| | | size="medium" |
| | | type="primary" |
| | | style="width:100%;" |
| | | style="width: 100%" |
| | | @click.native.prevent="handleLogin" |
| | | > |
| | | <span v-if="!loading">ç» å½</span> |
| | | <span v-else>ç» å½ ä¸...</span> |
| | | </el-button> |
| | | <div style="float: right;" v-if="register"> |
| | | <router-link class="link-type" :to="'/register'">ç«å³æ³¨å</router-link> |
| | | <div style="float: right" v-if="register"> |
| | | <router-link class="link-type" :to="'/register'" |
| | | >ç«å³æ³¨å</router-link |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | <el-button v-if="true" type="primary" plain @click="goLogin" |
| | | >éå¢éæç»å½</el-button |
| | | > |
| | | </el-form> |
| | | </div> |
| | | <!-- åºé¨ --> |
| | | <!-- <div class="el-login-footer">--> |
| | | <!-- <span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="el-login-footer">--> |
| | | <!-- <span>Copyright © 2018-2025 ruoyi.vip All Rights Reserved.</span>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getCodeImg } from "@/api/login"; |
| | | import { getCodeImg, getSsoAuthUrl } from "@/api/login"; |
| | | import Cookies from "js-cookie"; |
| | | import { encrypt, decrypt } from '@/utils/jsencrypt' |
| | | import { encrypt, decrypt } from "@/utils/jsencrypt"; |
| | | |
| | | export default { |
| | | name: "Login", |
| | |
| | | return { |
| | | codeUrl: "", |
| | | loginForm: { |
| | | username: "admin", |
| | | password: "admin123", |
| | | username: "", |
| | | password: "", |
| | | rememberMe: false, |
| | | code: "", |
| | | uuid: "" |
| | | uuid: "", |
| | | }, |
| | | loginRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" } |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" }, |
| | | ], |
| | | password: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çå¯ç " } |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çå¯ç " }, |
| | | ], |
| | | code: [{ required: false, trigger: "change", message: "请è¾å
¥éªè¯ç " }] |
| | | code: [{ required: false, trigger: "change", message: "请è¾å
¥éªè¯ç " }], |
| | | }, |
| | | loading: false, |
| | | // éªè¯ç å¼å
³ |
| | | captchaEnabled: true, |
| | | // 注åå¼å
³ |
| | | register: false, |
| | | redirect: undefined |
| | | redirect: undefined, |
| | | }; |
| | | }, |
| | | watch: { |
| | | $route: { |
| | | handler: function(route) { |
| | | handler: function (route) { |
| | | this.redirect = route.query && route.query.redirect; |
| | | }, |
| | | immediate: true |
| | | } |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getCode(); |
| | | this.getCookie(); |
| | | }, |
| | | methods: { |
| | | async goLogin() { |
| | | await getSsoAuthUrl().then((res) => { |
| | | window.location.href = res.data; |
| | | }); |
| | | }, |
| | | getCode() { |
| | | getCodeImg().then(res => { |
| | | this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | getCodeImg().then((res) => { |
| | | this.captchaEnabled = |
| | | res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | if (this.captchaEnabled) { |
| | | this.codeUrl = "data:image/gif;base64," + res.img; |
| | | this.loginForm.uuid = res.uuid; |
| | |
| | | getCookie() { |
| | | const username = Cookies.get("username"); |
| | | const password = Cookies.get("password"); |
| | | const rememberMe = Cookies.get('rememberMe') |
| | | const rememberMe = Cookies.get("rememberMe"); |
| | | this.loginForm = { |
| | | username: username === undefined ? this.loginForm.username : username, |
| | | password: password === undefined ? this.loginForm.password : decrypt(password), |
| | | rememberMe: rememberMe === undefined ? false : Boolean(rememberMe) |
| | | password: |
| | | password === undefined ? this.loginForm.password : decrypt(password), |
| | | rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), |
| | | }; |
| | | }, |
| | | handleLogin() { |
| | | this.$refs.loginForm.validate(valid => { |
| | | this.$refs.loginForm.validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | if (this.loginForm.rememberMe) { |
| | | Cookies.set("username", this.loginForm.username, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); |
| | | Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { |
| | | expires: 30, |
| | | }); |
| | | Cookies.set("rememberMe", this.loginForm.rememberMe, { |
| | | expires: 30, |
| | | }); |
| | | } else { |
| | | Cookies.remove("username"); |
| | | Cookies.remove("password"); |
| | | Cookies.remove('rememberMe'); |
| | | Cookies.remove("rememberMe"); |
| | | } |
| | | this.$store.dispatch("Login", this.loginForm).then(() => { |
| | | this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | this.$store |
| | | .dispatch("Login", this.loginForm) |
| | | .then(() => { |
| | | this.$router.push({ path: this.redirect || "/" }).catch(() => {}); |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | .title_big { |
| | | color: #004EA2; |
| | | color: #004ea2; |
| | | font-size: 40px; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | .title_small { |
| | | color: #004EA2; |
| | | color: #004ea2; |
| | | font-size: 24px; |
| | | } |
| | | .login-form { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div></div> |
| | | </template> |
| | | <script> |
| | | import { getSsoAuthUrl } from '@/api/login' |
| | | export default { |
| | | data() { |
| | | return {} |
| | | }, |
| | | created() { |
| | | this.goLogin() |
| | | }, |
| | | computed: {}, |
| | | methods: { |
| | | async goLogin() { |
| | | await getSsoAuthUrl().then(res => { |
| | | window.location.href = res.data |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped></style> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div></div> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | code: null // ç¨äºåå¨è·åå°ç code åæ° |
| | | }; |
| | | }, |
| | | created() { |
| | | this.initLogin(); |
| | | }, |
| | | methods: { |
| | | initLogin() { |
| | | this.$store.dispatch('LoginBySSO', {code: this.$route.query.code}).then(() => { |
| | | this.$router.push({path: '/'}); |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style scoped></style> |
| ÎļþÃû´Ó src/utils/thread/worker.js ÐÞ¸Ä |
| | |
| | | // å¤çº¿ç¨éé¢éè¦ä¿åçæ°æ® |
| | | 'use strict';//为jsèæ¬å¼å¯ä¸¥æ ¼æ¨¡å¼ |
| | | import Big from "big.js"; |
| | | let code = '' |
| | | // è¡¨æ ¼æ°æ®ï¼æ¸²æï¼ |
| | | let tableList = null |
| | |
| | | console.log('error',error) |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /* |
| | | * big.js v5.2.2 |
| | | * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic. |
| | | * Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com> |
| | | * https://github.com/MikeMcl/big.js/LICENCE |
| | | */ |
| | | ;(function (GLOBAL) { |
| | | 'use strict'; |
| | | var Big, |
| | | |
| | | |
| | | /************************************** EDITABLE DEFAULTS *****************************************/ |
| | | |
| | | |
| | | // The default values below must be integers within the stated ranges. |
| | | |
| | | /* |
| | | * The maximum number of decimal places (DP) of the results of operations involving division: |
| | | * div and sqrt, and pow with negative exponents. |
| | | */ |
| | | DP = 20, // 0 to MAX_DP |
| | | |
| | | /* |
| | | * The rounding mode (RM) used when rounding to the above decimal places. |
| | | * |
| | | * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN) |
| | | * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP) |
| | | * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN) |
| | | * 3 Away from zero. (ROUND_UP) |
| | | */ |
| | | RM = 1, // 0, 1, 2 or 3 |
| | | |
| | | // The maximum value of DP and Big.DP. |
| | | MAX_DP = 1E6, // 0 to 1000000 |
| | | |
| | | // The maximum magnitude of the exponent argument to the pow method. |
| | | MAX_POWER = 1E6, // 1 to 1000000 |
| | | |
| | | /* |
| | | * The negative exponent (NE) at and beneath which toString returns exponential notation. |
| | | * (JavaScript numbers: -7) |
| | | * -1000000 is the minimum recommended exponent value of a Big. |
| | | */ |
| | | NE = -7, // 0 to -1000000 |
| | | |
| | | /* |
| | | * The positive exponent (PE) at and above which toString returns exponential notation. |
| | | * (JavaScript numbers: 21) |
| | | * 1000000 is the maximum recommended exponent value of a Big. |
| | | * (This limit is not enforced or checked.) |
| | | */ |
| | | PE = 21, // 0 to 1000000 |
| | | |
| | | |
| | | /**************************************************************************************************/ |
| | | |
| | | |
| | | // Error messages. |
| | | NAME = '[big.js] ', |
| | | INVALID = NAME + 'Invalid ', |
| | | INVALID_DP = INVALID + 'decimal places', |
| | | INVALID_RM = INVALID + 'rounding mode', |
| | | DIV_BY_ZERO = NAME + 'Division by zero', |
| | | |
| | | // The shared prototype object. |
| | | P = {}, |
| | | UNDEFINED = void 0, |
| | | NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i; |
| | | |
| | | |
| | | /* |
| | | * Create and return a Big constructor. |
| | | * |
| | | */ |
| | | function _Big_() { |
| | | |
| | | /* |
| | | * The Big constructor and exported function. |
| | | * Create and return a new instance of a Big number object. |
| | | * |
| | | * n {number|string|Big} A numeric value. |
| | | */ |
| | | function Big(n) { |
| | | var x = this; |
| | | |
| | | // Enable constructor usage without new. |
| | | if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n); |
| | | |
| | | // Duplicate. |
| | | if (n instanceof Big) { |
| | | x.s = n.s; |
| | | x.e = n.e; |
| | | x.c = n.c.slice(); |
| | | } else { |
| | | parse(x, n); |
| | | } |
| | | |
| | | /* |
| | | * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which |
| | | * points to Object. |
| | | */ |
| | | x.constructor = Big; |
| | | } |
| | | |
| | | Big.prototype = P; |
| | | Big.DP = DP; |
| | | Big.RM = RM; |
| | | Big.NE = NE; |
| | | Big.PE = PE; |
| | | Big.version = '5.2.2'; |
| | | |
| | | return Big; |
| | | } |
| | | |
| | | |
| | | /* |
| | | * Parse the number or string value passed to a Big constructor. |
| | | * |
| | | * x {Big} A Big number instance. |
| | | * n {number|string} A numeric value. |
| | | */ |
| | | function parse(x, n) { |
| | | var e, i, nl; |
| | | |
| | | // Minus zero? |
| | | if (n === 0 && 1 / n < 0) n = '-0'; |
| | | else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number'); |
| | | |
| | | // Determine sign. |
| | | x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1; |
| | | |
| | | // Decimal point? |
| | | if ((e = n.indexOf('.')) > -1) n = n.replace('.', ''); |
| | | |
| | | // Exponential form? |
| | | if ((i = n.search(/e/i)) > 0) { |
| | | |
| | | // Determine exponent. |
| | | if (e < 0) e = i; |
| | | e += +n.slice(i + 1); |
| | | n = n.substring(0, i); |
| | | } else if (e < 0) { |
| | | |
| | | // Integer. |
| | | e = n.length; |
| | | } |
| | | |
| | | nl = n.length; |
| | | |
| | | // Determine leading zeros. |
| | | for (i = 0; i < nl && n.charAt(i) == '0';) ++i; |
| | | |
| | | if (i == nl) { |
| | | |
| | | // Zero. |
| | | x.c = [x.e = 0]; |
| | | } else { |
| | | |
| | | // Determine trailing zeros. |
| | | for (; nl > 0 && n.charAt(--nl) == '0';); |
| | | x.e = e - i - 1; |
| | | x.c = []; |
| | | |
| | | // Convert string to array of digits without leading/trailing zeros. |
| | | for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++); |
| | | } |
| | | |
| | | return x; |
| | | } |
| | | |
| | | |
| | | /* |
| | | * Round Big x to a maximum of dp decimal places using rounding mode rm. |
| | | * Called by stringify, P.div, P.round and P.sqrt. |
| | | * |
| | | * x {Big} The Big to round. |
| | | * dp {number} Integer, 0 to MAX_DP inclusive. |
| | | * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP) |
| | | * [more] {boolean} Whether the result of division was truncated. |
| | | */ |
| | | function round(x, dp, rm, more) { |
| | | var xc = x.c, |
| | | i = x.e + dp + 1; |
| | | |
| | | if (i < xc.length) { |
| | | if (rm === 1) { |
| | | |
| | | // xc[i] is the digit after the digit that may be rounded up. |
| | | more = xc[i] >= 5; |
| | | } else if (rm === 2) { |
| | | more = xc[i] > 5 || xc[i] == 5 && |
| | | (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1); |
| | | } else if (rm === 3) { |
| | | more = more || !!xc[0]; |
| | | } else { |
| | | more = false; |
| | | if (rm !== 0) throw Error(INVALID_RM); |
| | | } |
| | | |
| | | if (i < 1) { |
| | | xc.length = 1; |
| | | |
| | | if (more) { |
| | | |
| | | // 1, 0.1, 0.01, 0.001, 0.0001 etc. |
| | | x.e = -dp; |
| | | xc[0] = 1; |
| | | } else { |
| | | |
| | | // Zero. |
| | | xc[0] = x.e = 0; |
| | | } |
| | | } else { |
| | | |
| | | // Remove any digits after the required decimal places. |
| | | xc.length = i--; |
| | | |
| | | // Round up? |
| | | if (more) { |
| | | |
| | | // Rounding up may mean the previous digit has to be rounded up. |
| | | for (; ++xc[i] > 9;) { |
| | | xc[i] = 0; |
| | | if (!i--) { |
| | | ++x.e; |
| | | xc.unshift(1); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // Remove trailing zeros. |
| | | for (i = xc.length; !xc[--i];) xc.pop(); |
| | | } |
| | | } else if (rm < 0 || rm > 3 || rm !== ~~rm) { |
| | | throw Error(INVALID_RM); |
| | | } |
| | | |
| | | return x; |
| | | } |
| | | |
| | | |
| | | /* |
| | | * Return a string representing the value of Big x in normal or exponential notation. |
| | | * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf. |
| | | * |
| | | * x {Big} |
| | | * id? {number} Caller id. |
| | | * 1 toExponential |
| | | * 2 toFixed |
| | | * 3 toPrecision |
| | | * 4 valueOf |
| | | * n? {number|undefined} Caller's argument. |
| | | * k? {number|undefined} |
| | | */ |
| | | function stringify(x, id, n, k) { |
| | | var e, s, |
| | | Big = x.constructor, |
| | | z = !x.c[0]; |
| | | |
| | | if (n !== UNDEFINED) { |
| | | if (n !== ~~n || n < (id == 3) || n > MAX_DP) { |
| | | throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP); |
| | | } |
| | | |
| | | x = new Big(x); |
| | | |
| | | // The index of the digit that may be rounded up. |
| | | n = k - x.e; |
| | | |
| | | // Round? |
| | | if (x.c.length > ++k) round(x, n, Big.RM); |
| | | |
| | | // toFixed: recalculate k as x.e may have changed if value rounded up. |
| | | if (id == 2) k = x.e + n + 1; |
| | | |
| | | // Append zeros? |
| | | for (; x.c.length < k;) x.c.push(0); |
| | | } |
| | | |
| | | e = x.e; |
| | | s = x.c.join(''); |
| | | n = s.length; |
| | | |
| | | // Exponential notation? |
| | | if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) { |
| | | s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e; |
| | | |
| | | // Normal notation. |
| | | } else if (e < 0) { |
| | | for (; ++e;) s = '0' + s; |
| | | s = '0.' + s; |
| | | } else if (e > 0) { |
| | | if (++e > n) for (e -= n; e--;) s += '0'; |
| | | else if (e < n) s = s.slice(0, e) + '.' + s.slice(e); |
| | | } else if (n > 1) { |
| | | s = s.charAt(0) + '.' + s.slice(1); |
| | | } |
| | | |
| | | return x.s < 0 && (!z || id == 4) ? '-' + s : s; |
| | | } |
| | | |
| | | |
| | | // Prototype/instance methods |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the absolute value of this Big. |
| | | */ |
| | | P.abs = function () { |
| | | var x = new this.constructor(this); |
| | | x.s = 1; |
| | | return x; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return 1 if the value of this Big is greater than the value of Big y, |
| | | * -1 if the value of this Big is less than the value of Big y, or |
| | | * 0 if they have the same value. |
| | | */ |
| | | P.cmp = function (y) { |
| | | var isneg, |
| | | x = this, |
| | | xc = x.c, |
| | | yc = (y = new x.constructor(y)).c, |
| | | i = x.s, |
| | | j = y.s, |
| | | k = x.e, |
| | | l = y.e; |
| | | |
| | | // Either zero? |
| | | if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i; |
| | | |
| | | // Signs differ? |
| | | if (i != j) return i; |
| | | |
| | | isneg = i < 0; |
| | | |
| | | // Compare exponents. |
| | | if (k != l) return k > l ^ isneg ? 1 : -1; |
| | | |
| | | j = (k = xc.length) < (l = yc.length) ? k : l; |
| | | |
| | | // Compare digit by digit. |
| | | for (i = -1; ++i < j;) { |
| | | if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1; |
| | | } |
| | | |
| | | // Compare lengths. |
| | | return k == l ? 0 : k > l ^ isneg ? 1 : -1; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded, |
| | | * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. |
| | | */ |
| | | P.div = function (y) { |
| | | var x = this, |
| | | Big = x.constructor, |
| | | a = x.c, // dividend |
| | | b = (y = new Big(y)).c, // divisor |
| | | k = x.s == y.s ? 1 : -1, |
| | | dp = Big.DP; |
| | | |
| | | if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP); |
| | | |
| | | // Divisor is zero? |
| | | if (!b[0]) throw Error(DIV_BY_ZERO); |
| | | |
| | | // Dividend is 0? Return +-0. |
| | | if (!a[0]) return new Big(k * 0); |
| | | |
| | | var bl, bt, n, cmp, ri, |
| | | bz = b.slice(), |
| | | ai = bl = b.length, |
| | | al = a.length, |
| | | r = a.slice(0, bl), // remainder |
| | | rl = r.length, |
| | | q = y, // quotient |
| | | qc = q.c = [], |
| | | qi = 0, |
| | | d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result |
| | | |
| | | q.s = k; |
| | | k = d < 0 ? 0 : d; |
| | | |
| | | // Create version of divisor with leading zero. |
| | | bz.unshift(0); |
| | | |
| | | // Add zeros to make remainder as long as divisor. |
| | | for (; rl++ < bl;) r.push(0); |
| | | |
| | | do { |
| | | |
| | | // n is how many times the divisor goes into current remainder. |
| | | for (n = 0; n < 10; n++) { |
| | | |
| | | // Compare divisor and remainder. |
| | | if (bl != (rl = r.length)) { |
| | | cmp = bl > rl ? 1 : -1; |
| | | } else { |
| | | for (ri = -1, cmp = 0; ++ri < bl;) { |
| | | if (b[ri] != r[ri]) { |
| | | cmp = b[ri] > r[ri] ? 1 : -1; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // If divisor < remainder, subtract divisor from remainder. |
| | | if (cmp < 0) { |
| | | |
| | | // Remainder can't be more than 1 digit longer than divisor. |
| | | // Equalise lengths using divisor with extra leading zero? |
| | | for (bt = rl == bl ? b : bz; rl;) { |
| | | if (r[--rl] < bt[rl]) { |
| | | ri = rl; |
| | | for (; ri && !r[--ri];) r[ri] = 9; |
| | | --r[ri]; |
| | | r[rl] += 10; |
| | | } |
| | | r[rl] -= bt[rl]; |
| | | } |
| | | |
| | | for (; !r[0];) r.shift(); |
| | | } else { |
| | | break; |
| | | } |
| | | } |
| | | |
| | | // Add the digit n to the result array. |
| | | qc[qi++] = cmp ? n : ++n; |
| | | |
| | | // Update the remainder. |
| | | if (r[0] && cmp) r[rl] = a[ai] || 0; |
| | | else r = [a[ai]]; |
| | | |
| | | } while ((ai++ < al || r[0] !== UNDEFINED) && k--); |
| | | |
| | | // Leading zero? Do not remove if result is simply zero (qi == 1). |
| | | if (!qc[0] && qi != 1) { |
| | | |
| | | // There can't be more than one zero. |
| | | qc.shift(); |
| | | q.e--; |
| | | } |
| | | |
| | | // Round? |
| | | if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED); |
| | | |
| | | return q; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return true if the value of this Big is equal to the value of Big y, otherwise return false. |
| | | */ |
| | | P.eq = function (y) { |
| | | return !this.cmp(y); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return true if the value of this Big is greater than the value of Big y, otherwise return |
| | | * false. |
| | | */ |
| | | P.gt = function (y) { |
| | | return this.cmp(y) > 0; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise |
| | | * return false. |
| | | */ |
| | | P.gte = function (y) { |
| | | return this.cmp(y) > -1; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return true if the value of this Big is less than the value of Big y, otherwise return false. |
| | | */ |
| | | P.lt = function (y) { |
| | | return this.cmp(y) < 0; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return true if the value of this Big is less than or equal to the value of Big y, otherwise |
| | | * return false. |
| | | */ |
| | | P.lte = function (y) { |
| | | return this.cmp(y) < 1; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the value of this Big minus the value of Big y. |
| | | */ |
| | | P.minus = P.sub = function (y) { |
| | | var i, j, t, xlty, |
| | | x = this, |
| | | Big = x.constructor, |
| | | a = x.s, |
| | | b = (y = new Big(y)).s; |
| | | |
| | | // Signs differ? |
| | | if (a != b) { |
| | | y.s = -b; |
| | | return x.plus(y); |
| | | } |
| | | |
| | | var xc = x.c.slice(), |
| | | xe = x.e, |
| | | yc = y.c, |
| | | ye = y.e; |
| | | |
| | | // Either zero? |
| | | if (!xc[0] || !yc[0]) { |
| | | |
| | | // y is non-zero? x is non-zero? Or both are zero. |
| | | return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0); |
| | | } |
| | | |
| | | // Determine which is the bigger number. Prepend zeros to equalise exponents. |
| | | if (a = xe - ye) { |
| | | |
| | | if (xlty = a < 0) { |
| | | a = -a; |
| | | t = xc; |
| | | } else { |
| | | ye = xe; |
| | | t = yc; |
| | | } |
| | | |
| | | t.reverse(); |
| | | for (b = a; b--;) t.push(0); |
| | | t.reverse(); |
| | | } else { |
| | | |
| | | // Exponents equal. Check digit by digit. |
| | | j = ((xlty = xc.length < yc.length) ? xc : yc).length; |
| | | |
| | | for (a = b = 0; b < j; b++) { |
| | | if (xc[b] != yc[b]) { |
| | | xlty = xc[b] < yc[b]; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // x < y? Point xc to the array of the bigger number. |
| | | if (xlty) { |
| | | t = xc; |
| | | xc = yc; |
| | | yc = t; |
| | | y.s = -y.s; |
| | | } |
| | | |
| | | /* |
| | | * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only |
| | | * needs to start at yc.length. |
| | | */ |
| | | if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0; |
| | | |
| | | // Subtract yc from xc. |
| | | for (b = i; j > a;) { |
| | | if (xc[--j] < yc[j]) { |
| | | for (i = j; i && !xc[--i];) xc[i] = 9; |
| | | --xc[i]; |
| | | xc[j] += 10; |
| | | } |
| | | |
| | | xc[j] -= yc[j]; |
| | | } |
| | | |
| | | // Remove trailing zeros. |
| | | for (; xc[--b] === 0;) xc.pop(); |
| | | |
| | | // Remove leading zeros and adjust exponent accordingly. |
| | | for (; xc[0] === 0;) { |
| | | xc.shift(); |
| | | --ye; |
| | | } |
| | | |
| | | if (!xc[0]) { |
| | | |
| | | // n - n = +0 |
| | | y.s = 1; |
| | | |
| | | // Result must be zero. |
| | | xc = [ye = 0]; |
| | | } |
| | | |
| | | y.c = xc; |
| | | y.e = ye; |
| | | |
| | | return y; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the value of this Big modulo the value of Big y. |
| | | */ |
| | | P.mod = function (y) { |
| | | var ygtx, |
| | | x = this, |
| | | Big = x.constructor, |
| | | a = x.s, |
| | | b = (y = new Big(y)).s; |
| | | |
| | | if (!y.c[0]) throw Error(DIV_BY_ZERO); |
| | | |
| | | x.s = y.s = 1; |
| | | ygtx = y.cmp(x) == 1; |
| | | x.s = a; |
| | | y.s = b; |
| | | |
| | | if (ygtx) return new Big(x); |
| | | |
| | | a = Big.DP; |
| | | b = Big.RM; |
| | | Big.DP = Big.RM = 0; |
| | | x = x.div(y); |
| | | Big.DP = a; |
| | | Big.RM = b; |
| | | |
| | | return this.minus(x.times(y)); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the value of this Big plus the value of Big y. |
| | | */ |
| | | P.plus = P.add = function (y) { |
| | | var t, |
| | | x = this, |
| | | Big = x.constructor, |
| | | a = x.s, |
| | | b = (y = new Big(y)).s; |
| | | |
| | | // Signs differ? |
| | | if (a != b) { |
| | | y.s = -b; |
| | | return x.minus(y); |
| | | } |
| | | |
| | | var xe = x.e, |
| | | xc = x.c, |
| | | ye = y.e, |
| | | yc = y.c; |
| | | |
| | | // Either zero? y is non-zero? x is non-zero? Or both are zero. |
| | | if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0); |
| | | |
| | | xc = xc.slice(); |
| | | |
| | | // Prepend zeros to equalise exponents. |
| | | // Note: reverse faster than unshifts. |
| | | if (a = xe - ye) { |
| | | if (a > 0) { |
| | | ye = xe; |
| | | t = yc; |
| | | } else { |
| | | a = -a; |
| | | t = xc; |
| | | } |
| | | |
| | | t.reverse(); |
| | | for (; a--;) t.push(0); |
| | | t.reverse(); |
| | | } |
| | | |
| | | // Point xc to the longer array. |
| | | if (xc.length - yc.length < 0) { |
| | | t = yc; |
| | | yc = xc; |
| | | xc = t; |
| | | } |
| | | |
| | | a = yc.length; |
| | | |
| | | // Only start adding at yc.length - 1 as the further digits of xc can be left as they are. |
| | | for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0; |
| | | |
| | | // No need to check for zero, as +x + +y != 0 && -x + -y != 0 |
| | | |
| | | if (b) { |
| | | xc.unshift(b); |
| | | ++ye; |
| | | } |
| | | |
| | | // Remove trailing zeros. |
| | | for (a = xc.length; xc[--a] === 0;) xc.pop(); |
| | | |
| | | y.c = xc; |
| | | y.e = ye; |
| | | |
| | | return y; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a Big whose value is the value of this Big raised to the power n. |
| | | * If n is negative, round to a maximum of Big.DP decimal places using rounding |
| | | * mode Big.RM. |
| | | * |
| | | * n {number} Integer, -MAX_POWER to MAX_POWER inclusive. |
| | | */ |
| | | P.pow = function (n) { |
| | | var x = this, |
| | | one = new x.constructor(1), |
| | | y = one, |
| | | isneg = n < 0; |
| | | |
| | | if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent'); |
| | | if (isneg) n = -n; |
| | | |
| | | for (;;) { |
| | | if (n & 1) y = y.times(x); |
| | | n >>= 1; |
| | | if (!n) break; |
| | | x = x.times(x); |
| | | } |
| | | |
| | | return isneg ? one.div(y) : y; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the value of this Big rounded using rounding mode rm |
| | | * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a |
| | | * multiple of 10**-dp. |
| | | * If dp is not specified, round to 0 decimal places. |
| | | * If rm is not specified, use Big.RM. |
| | | * |
| | | * dp? {number} Integer, -MAX_DP to MAX_DP inclusive. |
| | | * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP) |
| | | */ |
| | | P.round = function (dp, rm) { |
| | | var Big = this.constructor; |
| | | if (dp === UNDEFINED) dp = 0; |
| | | else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP); |
| | | return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the square root of the value of this Big, rounded, if |
| | | * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM. |
| | | */ |
| | | P.sqrt = function () { |
| | | var r, c, t, |
| | | x = this, |
| | | Big = x.constructor, |
| | | s = x.s, |
| | | e = x.e, |
| | | half = new Big(0.5); |
| | | |
| | | // Zero? |
| | | if (!x.c[0]) return new Big(x); |
| | | |
| | | // Negative? |
| | | if (s < 0) throw Error(NAME + 'No square root'); |
| | | |
| | | // Estimate. |
| | | s = Math.sqrt(x + ''); |
| | | |
| | | // Math.sqrt underflow/overflow? |
| | | // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent. |
| | | if (s === 0 || s === 1 / 0) { |
| | | c = x.c.join(''); |
| | | if (!(c.length + e & 1)) c += '0'; |
| | | s = Math.sqrt(c); |
| | | e = ((e + 1) / 2 | 0) - (e < 0 || e & 1); |
| | | r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e); |
| | | } else { |
| | | r = new Big(s); |
| | | } |
| | | |
| | | e = r.e + (Big.DP += 4); |
| | | |
| | | // Newton-Raphson iteration. |
| | | do { |
| | | t = r; |
| | | r = half.times(t.plus(x.div(t))); |
| | | } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join('')); |
| | | |
| | | return round(r, Big.DP -= 4, Big.RM); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a new Big whose value is the value of this Big times the value of Big y. |
| | | */ |
| | | P.times = P.mul = function (y) { |
| | | var c, |
| | | x = this, |
| | | Big = x.constructor, |
| | | xc = x.c, |
| | | yc = (y = new Big(y)).c, |
| | | a = xc.length, |
| | | b = yc.length, |
| | | i = x.e, |
| | | j = y.e; |
| | | |
| | | // Determine sign of result. |
| | | y.s = x.s == y.s ? 1 : -1; |
| | | |
| | | // Return signed 0 if either 0. |
| | | if (!xc[0] || !yc[0]) return new Big(y.s * 0); |
| | | |
| | | // Initialise exponent of result as x.e + y.e. |
| | | y.e = i + j; |
| | | |
| | | // If array xc has fewer digits than yc, swap xc and yc, and lengths. |
| | | if (a < b) { |
| | | c = xc; |
| | | xc = yc; |
| | | yc = c; |
| | | j = a; |
| | | a = b; |
| | | b = j; |
| | | } |
| | | |
| | | // Initialise coefficient array of result with zeros. |
| | | for (c = new Array(j = a + b); j--;) c[j] = 0; |
| | | |
| | | // Multiply. |
| | | |
| | | // i is initially xc.length. |
| | | for (i = b; i--;) { |
| | | b = 0; |
| | | |
| | | // a is yc.length. |
| | | for (j = a + i; j > i;) { |
| | | |
| | | // Current sum of products at this digit position, plus carry. |
| | | b = c[j] + yc[i] * xc[j - i - 1] + b; |
| | | c[j--] = b % 10; |
| | | |
| | | // carry |
| | | b = b / 10 | 0; |
| | | } |
| | | |
| | | c[j] = (c[j] + b) % 10; |
| | | } |
| | | |
| | | // Increment result exponent if there is a final carry, otherwise remove leading zero. |
| | | if (b) ++y.e; |
| | | else c.shift(); |
| | | |
| | | // Remove trailing zeros. |
| | | for (i = c.length; !c[--i];) c.pop(); |
| | | y.c = c; |
| | | |
| | | return y; |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a string representing the value of this Big in exponential notation to dp fixed decimal |
| | | * places and rounded using Big.RM. |
| | | * |
| | | * dp? {number} Integer, 0 to MAX_DP inclusive. |
| | | */ |
| | | P.toExponential = function (dp) { |
| | | return stringify(this, 1, dp, dp); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a string representing the value of this Big in normal notation to dp fixed decimal |
| | | * places and rounded using Big.RM. |
| | | * |
| | | * dp? {number} Integer, 0 to MAX_DP inclusive. |
| | | * |
| | | * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'. |
| | | * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'. |
| | | */ |
| | | P.toFixed = function (dp) { |
| | | return stringify(this, 2, dp, this.e + dp); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a string representing the value of this Big rounded to sd significant digits using |
| | | * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent |
| | | * the integer part of the value in normal notation. |
| | | * |
| | | * sd {number} Integer, 1 to MAX_DP inclusive. |
| | | */ |
| | | P.toPrecision = function (sd) { |
| | | return stringify(this, 3, sd, sd - 1); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a string representing the value of this Big. |
| | | * Return exponential notation if this Big has a positive exponent equal to or greater than |
| | | * Big.PE, or a negative exponent equal to or less than Big.NE. |
| | | * Omit the sign for negative zero. |
| | | */ |
| | | P.toString = function () { |
| | | return stringify(this); |
| | | }; |
| | | |
| | | |
| | | /* |
| | | * Return a string representing the value of this Big. |
| | | * Return exponential notation if this Big has a positive exponent equal to or greater than |
| | | * Big.PE, or a negative exponent equal to or less than Big.NE. |
| | | * Include the sign for negative zero. |
| | | */ |
| | | P.valueOf = P.toJSON = function () { |
| | | return stringify(this, 4); |
| | | }; |
| | | |
| | | |
| | | // Export |
| | | |
| | | |
| | | Big = _Big_(); |
| | | |
| | | Big['default'] = Big.Big = Big; |
| | | |
| | | //AMD. |
| | | if (typeof define === 'function' && define.amd) { |
| | | define(function () { return Big; }); |
| | | |
| | | // Node and other CommonJS-like environments that support module.exports. |
| | | } else if (typeof module !== 'undefined' && module.exports) { |
| | | module.exports = Big; |
| | | |
| | | //Browser. |
| | | } else { |
| | | GLOBAL.Big = Big; |
| | | } |
| | | })(this); |
| | |
| | | |
| | | const CompressionPlugin = require("compression-webpack-plugin"); |
| | | |
| | | const name = process.env.VUE_APP_TITLE || "è¥ä¾ç®¡çç³»ç»"; // ç½é¡µæ é¢ |
| | | const name = process.env.VUE_APP_TITLE || "LIMSå®éªå®¤ç®¡çç³»ç»"; // ç½é¡µæ é¢ |
| | | |
| | | const port = process.env.port || process.env.npm_config_port || 80; // ç«¯å£ |
| | | |
| | |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target: `http://127.0.0.1:8002`, |
| | | // target: `http://127.0.0.1:8002`, |
| | | // target: `https://zttx-lims.ztt.cn:8021`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ["^" + process.env.VUE_APP_BASE_API]: "", |
| | |
| | | }, |
| | | configureWebpack: { |
| | | name: name, |
| | | module: { |
| | | rules: [ |
| | | { |
| | | test: /\.worker\.js$/, |
| | | use: { |
| | | loader: "worker-loader", |
| | | options: { |
| | | inline: "fallback", |
| | | }, |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | resolve: { |
| | | alias: { |
| | | "@": resolve("src"), |