Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
template_vue
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨硕
template_vue
Commits
41fb4b17
Commit
41fb4b17
authored
Aug 01, 2023
by
CenXinYi
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/project1' into project1
parents
97b42c3d
5ca47a30
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1064 additions
and
327 deletions
+1064
-327
alicdn.css
public/alicdn.css
+380
-0
index.html
public/index.html
+1
-1
basicInfo.js
src/api/equipment/basicInfo.js
+7
-0
draw.js
src/api/equipment/draw.js
+8
-0
basicInformation.js
src/api/sample/basicInformation.js
+9
-0
header.vue
src/layout/components/header.vue
+8
-3
application.vue
src/views/equipment/application.vue
+1
-0
basicInfo.vue
src/views/equipment/basicInfo.vue
+124
-30
check.vue
src/views/equipment/check.vue
+4
-28
checkProcess.vue
src/views/equipment/checkProcess.vue
+48
-36
draw.vue
src/views/equipment/draw.vue
+251
-159
management.vue
src/views/equipment/management.vue
+1
-1
login.vue
src/views/login/login.vue
+6
-6
index.vue
src/views/sample/basicInformation/index.vue
+54
-33
index.vue
src/views/sample/correctionLibrary/index.vue
+162
-30
No files found.
public/alicdn.css
0 → 100644
View file @
41fb4b17
@font-face
{
font-family
:
"iconfont"
;
src
:
url('//at.alicdn.com/t/font_2011217_f70ptj9y4oc.eot?t=1604572648364')
;
/* IE9 */
src
:
url('//at.alicdn.com/t/font_2011217_f70ptj9y4oc.eot?t=1604572648364#iefix')
format
(
'embedded-opentype'
),
/* IE6-IE8 */
url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAADkcAAsAAAAAZNwAADjJAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCPNAqBoyCBgEcBNgIkA4JwC4E6AAQgBYRtB4oXGwBSdQfIdTsAUtHnyaIojaoSRTmZ2mT//+fkZAwBDaareo9shEwRphLmRebdwdkJdrlQpstYhUVVV4zQFXNTEApZmCxMdXsosmmh5dNoZTwj5hrKtJ9v8rzo4ndSi/L8slywOL0N23StVwVRhiPiw/TA/W/16e9IW/ZRD0mKJvxHa+Wr+tVzfbMHIVYE6nSIWGh0USijJKKQUQQqrLI1PLnt3x37WAcIgqAiOFfDjYobFFPQTHPjzLVTzFIbFi0bS2trFrYstbQxJb+todnYP7+tvxoSEWO0fXdHbDolUgqpMZ1OafcEQP/vfwH+M2f1kh2o0jMku0lnAegIRJI1BIGl3r/AvshX+R8FTtIwEGiY4YYFgkD9E26qZprlr21U+kS3pN/+WdNXHySCJPQUqCcJFbMpy7Pa/Bz9/37T3wvNrVzSpt1/jA1yKoREOCTC4CQajY3kLVGtqf49aq3Q27bDok3lTHenfe02vwVDwpbhroD4uzsnXADWZ/WVvmTZCRsEhyAIg6BAvw7Z6adjfg2JQ8RCWPvj2nqTR/WOu1LCQYiA/19nn601sIAfqJzZPd7dABcNFU3OdtV7T5at+57kzJPmbyzrk/TJsj9YGpI8XuQglQRdWLID1kdpIMde9CzOD44DAB1gmar8dbkpUzRdiqoP4eJ4nmj2AJZ10ynRKPzFaExcgXL7c0b/G1N5H+2YckjAIhpKCMXRMfYhmyliFPli2uglTmBbGga0TMEeaNmKdduoBBU1zDp3+uRhqqMTgfVGLTaeE8YIu0ah+hXXg6v612/fWbQKThHVsjadWH6MRZ+8uydN/u0LuvXmM4CNE4GAuQACdMi71/egpjYXDO3eVcLnA/j2X0RhwidviupBSmJW7Dlz5c6LjwBhYiVIkixVuhxLLLPBTj10+lx5c+3N8zd/vfnsm38jtcuu1Mrb2Pt3ZTt3eX9RR7Qs2HBkQtBLzz+39uqOOrWZ2PqlNpyNlVlgj/hFf/z81bp6HRO2vvT2c7uu7vCRzbpTw6f/r/OAx1LVdPPqjPGp2ecGZzt2devRp9+AaRWWN6nhOra1GzJsUZdtD+cHVy1Ojz6sGnRRZI7jYhPcHZaYpdfr7ZIRy7asaTPrpcymOSvWbag1Qr2nSms+7tn0dt2h2gwLxt3sF5hnkoJSzKwGxc/80GfByAkeBYdShLDKEYwSEuYJgjqEilZCwyeho5mgN2YZiAkTZ8LCDjHELuGim/DQQ4zQR/joJwIMEGNMExNUIKY4ESGaiBlqEBEKETGqEAs8iyXaidWLqw0wTGyxSOzQReyxTRzxIE44F2cciCuuxB0txAun4oMjCcAHCcIqCcYgCcGFhKIICcMUicWxzEcxkoBOkoQ7ScahpKIESccEyUEvqcWr1OFWFmOJ1GOENGCZaLBFGrFGlqCNLMMs2YAX2YkypAf3chRzRIcVcgrrpA8b5ApqkWtoJM9RT/7Ck3xGJfINl/IvPnonYo93EjZ5t8Sbdytrw11DsQbXAcUGXDUUO1BQUsEtQCkHlaJsAHcDZSO4fSjv8VwK8L+Mm9HKOcwzCb6o4/wBBb9B557+f6CaLPzLxZcPIDEejNeM9Mhx1whWQqz6dxbSNJssLOvnUMhUYtgLFUKkz1rkUlhEs/JihUkwS2DOSV/1cQVjg0GSkBuV5GMeT3qE99GzhNsyfUAmHFPAxCfMClwMB/2VCpdjqlGUCl5O0t/pSPsf2q6p/AmZsEqizE2laWsrhhSODL/X3hhvVeNOIKQKzBFguCTvxK9evG9xQgTaV1vXn7lt0CnPA0EjC5+1/NOyEEn3zO0XRB2rwleNWeeMAatxiRSniIkV4a4NYTDiQYKEVUAkkQSKU6T7TDFsrbcUWRwZh9WzTZbLlWWn3xZl1XmWSZ6rbnFaCl1dGuZqKNK9ZJu37/NKZPQR8607B410kRGH426U5/GcaQd35iEXVcogZIMmfULifcfVC5V5Ply7MuC8gVyYAofjCpYSfk6kVUzrfvLeZvrSDAKHGHHSq96FY/5Xwv/+UHbZFYlS5BxIEsF3krkMrcOzi4jQs8g5CxsXEGHkAIZqhZzAcFbW43ApHEakVtPXqkpe8qfOXjyJRkh8JzSBVKdD7z9v4ZiwPHW8+E+j7wqnQpBYXi1hMvAUvwZ6ARgi0/F7lAG3A9cmFFbLIAfi0QesbYxvzc2Ok9++9EpJZ6D1bJo5zcTtvrldX3OLb7TMIiqt1RvL2uiSOtTMzd9wljdvifN11oLGU83W66qrR4Q26eXaPv7C6T+ThUaftsFtBBngTzjWGm/Zjtcn9cjM76ctr6VaMO5xhVaUWGuw1qoWivqbS3JdIfINJEhMrKxg6NO9emHgw2LrTvO/SK/d4Z8/cFq5/9TT5mndGfTomGDUUYiZ/KapX2TItJWbwYEjAIXeGHfdblQlsguQ6KI9sg1x0kdkYxzk2iec/mcZbeqjxOK+NgASOvGMCVFiYUgNoSMizfeGwAMRPC1ZkCqi+iwyiqVRxm3PEN/6ttMf7jeQeFXSc4BqNQCqBZAymulEMVs+e6PEck44RM2j0sZJUX57Ej8S2lRKo4C+tqpED3trgQixn8rPmnlSV/vpM3qJZA/20MdV6qd+2aVqzPKW2/FQIB1QEK4E/MWQ7TSgtDEapgkuIeci4zU/vTjWFsrfodcZFhFGEKDPywADJg+UNwCJ8WAZleRqNAkxfO/yQ1mK4GQqXsNluBI6uA6myRgb1nlUi1Z1j5Epv54xBzm2fL+7cNMVrF0XFMQNZwiKqrund3ZxHkJX7c9ptCsuRkNeUXCHNkSLECQ4LQAxMV7H4hcgf20MNxjqlZ55zmqvTW6HDm6C4r4LcgenNPBKeYC/5yyNbkdH4PgzFd+eGrRKITUAUrpqQmxM1KhOeejf4b492Fp4NvgbG+LE/G512PLPX8GWjOz6Qc4DZYwkkJhyt7TQwakFD22zaGSGCpAZfVptQma6UyO/l44lQTWF3UMl02VEmuWow6GqAcoqxOLKjr5UbRqGBbSeat2Ecoeo/1HW5ikT0tp9oCHIzYrdavr18dssvUXTC49NECcaQGXqaPUN8nqKJwAjwmAQlYrduFbuh+BlOT6B/XRqEub5Q5oGTvo6QdrAkHZMRCdCI4riUT1CYrlCzvOK3Znlvlt0JsbtR+OdS+fp9ZYjEg3TgiiVvS9bAIkeBa5XouzFOIT35rIOFpNfcchyIviVRmQr7KK3cyRcDPGgzROTf2P1omhV1hKiYaJVrVmKeK1TdXuJzJiEKt02MLcWw+Um1xqvVc0kFSUorkcqywWuqZIO49WjQ68rhg3nlmJN6N5umV9Iz7mWnWMYACqWZAVVvNi+uApr04s15Zde+Cbz7HxuLbEs2pceeaTfWC5qejFwHZdTmUz+eYfk+zplCy/tlnH4bYevDg9rt/GqtwZtF89nQCsN03u7mxbv+bo9rA2XFqQfy0c3tC2BrMC4ufqJJ5ce7D38XeGju1dKnWW0itdT4db56QeljkQBCBMiMUGwHorjCm8jImAsYE9GmxKLb1+8Rb5hmLihXhGw4M0E7k5OqYdS2kwNcmS9YvukDv41FQb+/y614Lb6KT5+QoOKM3fdEfQuiuKe49RZGXf8HjvA1fUrRm3TPeP8rFPvr48mVLGfJDJ8Gq3x/jhQacJ4gBpOTERk54CBG0QH9oZGWM2NyT5T5zg/EcOLPOqZ5KAfikCdsfKu6hU5hx/hwzqyY9bAu3dc82D3+aLCHXjfdoITDxHpAER6AXCU3/wYYoSTaESQQlS+OsRfotzmlLIG0EUxmlcZ4sBcOGV8KNvXVBDqsJ1uaVZpELVjy4pdAeLAx69s3BSdSDILO2H7SEF1UaKzl9VZ3coxfko5PjeO5+lvbKpJk7QHPgcMCDDhpNZhM5dpejZBQH+CV15jGCM3XnFTtlcGGOinoF2VrKppyjfh4tMcEwqIvCf2Oyo/hVz0DsJ8cosspzcIRF4nOOKYKxi2eT+3+cdnlP3GjsSfL9GGky/5eN/IPEW/goVR8Qb5brIWrC/Mh6p2WrypuBDt1vi45i/t4zB1ARYOCUw2X7WOh5q+Q4kFRpzd8nt/Gza8uyTt1XTq8Ggy4ZUTZAVYyHhPjQMcynKcgbSCN99jH7+xl4xgQNRgM8dkTHQsQz/RMA7k+atpkBMz4YXJjEu3cwh6Z6OL3Syo6CQhnwmrRUqkI+5zU1/xRohK2M6i9RTskt8lwu5pg47S7qvd1igggqo1TCgH4itcP02TRr3LnJsySVucM2FoFvxZZG8A+RPaGFgsWrgKpKlYBlAjwNihKWDy7FnkY2OqgzqNKqolsdsfvJ2xuy65i2kMltcivlrqyM4Z7jR6Z3WbypqyMadxH4YuEJ72iS/BtmBLC9Ke6FrDP2qAGen1Dw0kf9jb363S1EnIPzypCwP7c+vHwdOrDw5Sny/mVCrULoZ+CJyVjC6TkZ9aioma6h+RDhSOYPSeBS+ZcP72Z7jVDEGoCzPvO5n8nKe/JPdfC1xNr4nYVZFRVYiinoH9PdPoyV8q//OcTB9yOxEKaE6EUjjRYp4epq4TngChuFVm85KqvUf8yabEq3o9p+BI5FToJof8JeyoikDN+OUiyvxY8B8Oay5F8OukC+4B0OYOnwqEaMgon4s0JZlbQwzjQCbz8XdCAffb6tEU1icGaBsgMl18X3dswgcZiY8kgJJphNGMlBHKBI0TId/5rnbsBwM86puKi2E0IZzgS3KgUyloczzHcWntuMARTjCev3Fz4hHmXwiIvITwxZ7rOeHroF3hEGI8xedUAZl4r3dM/apHJSMRoJKMIE5i7M9fISG9JvbTcGeGCHaOQeTkcMtqtLG82yoe512jNaM4+eOcdjjzfaQmP1KRememC9v6PuiJlvHU61/ZxP+pt6ofNnAnqpZ6QaHQDiXf7F0MqwQHClI1xC0b6ZNEWkGQowXJ5fUbQlTCi7c2fOTtgb5WgzNpdrhIxqf7/PrlzYtbw1JwP3fuLzkBAsT6+DdMnHilrj2KD2WN1OF+6ATo8tj7F+NH4OOc91FGmzpOKQaYKuddfN93FLwcbsWrkaaYFPcArqE2dd7MzMps4EXm+wXmE02lMpfCKkCFxXrAMybT5lgBBIFcnTwUL61MUIV+7vzYD6b90yfDwRrujh3hwIFkPLcBATb9ofxW9cIdHz9yyTfXi7+XtdasXL8mKd06N/LnFO0bPmgKm6IHuqXFUuwaT3Ma23xtAHSHYo3wbO4m+EW90YX55OecOk9RTvn72U+AI+IQ1yuU869g8/BbAQ7x5+E3jMJ/tr1uMGZWCxLlJLoRToRH8Chj3ZPTd7iJYUzOJTgy5HlNfsOPHIzp1XobTRH51KbuVLGPzJ6RXtDmu3/AUdMgjz0u59qarbkakfvIpHJwdGTVQ4L4tpUnY9rSjdk+onQx0RxrKeaIjHW0VeUwVsFGvwEfvUXHHMvTMPXgXH1CqLLbALoULR5u0pPsyS65O6sE0ink2i4up3652PHeVyq7Fy8p7laqp3DOtPilNIigm/gGzMX3D13g+JrbiRts40ZWx6sG6ka0IpiMT1I8sSOJ4ypGI37NRmYaTZamARIhDtN4E05mf2RITEhVBb0wXBtOQcytwvYN1MoeJb4Qld4anKsGJ43FIILHRDoAUhd8TfEhTry3U3nJsBL/ixLlCwHzv/PCzXmdADIR2+SYpxafWSkNjvKFHMOYAn24ktWRNiAbc8zPdxpLXu3JdV2L5pJosGVtuBW55L8gVaqpcG61sZTV++4h+2OwZ83fUHIRfabxWZZpns7+xNmyyO4Zik6kS883LhYQrSi3qAY7na0M2DbKBLl9lRsRmTa/y2LG90UpuKWz/PNcidMFupwAulMPSeWwoFz4CHHhzlSLHb47bjh/k5BwBaH7oQ+VQ5BtrTLLwRLMkRdvuUP5pDkf1SOXRSiVT46TktiZcVCpSUPjOzkWWGIxRWVTgc8phCvStgrkmR7dWFHr9JM0WP00D/PJTqkSuqQOzazkej7UwgN1zBiK2S08xpHwnJ6vKjtT2tC2rrFJWFcn2yUMBdjsCtPWJWgdE6cWH/plnLRZp6+aTMWEHfoGoZ5juxRQ25rPMQAOdjxGIsrlgLLxWYXPtykdiCSMSOeAi/erlrBtA1+uqc4JoS9KBqJSdioQOrlKdWtXbdqWrtYcOFNGQdHIInCiS61eQbV6Q0tsjofx6Hq3+5FrMLcDR1PiZ2JGclwD7yginSh2HKddo+WTm8vGmVM0rUr2PG5kTCdn1a+CiwwaB44nR6ChI/z1cENOBA8icEEzeUdmNNr3qe8feRLr4BTwyd7HsWTYhwjmKVV6mVI16H2RkXQ8bN9xjx0bt/KB11Gn2LjjgTZ6MdWDB37tk1Ur9vOffLU6/a2WuWIQYNW+wVo5tFD9XL5VjUOQFUeOktNO3uztGLx044L90eIf6GZduci0vg+Zuq/nsIykrmIBJotAxtcEMUlWVafgdTx1GZC1RCaFVMgfq6xzJBEeTHIfqY/+IPliZvosT2/m5tPafUdT57dsB3JVWasBhXnZ/w6sQeiviOURkD2U2+9cUQPRuOP2JRFqw3fdsazFytCdd60qsiRC6ZfK13kXmXXwBy5/4CINVJ59noxcMz4LOMKg+/0D4Kcn7sxJ+2OeZl0hLPeaBD+mZTX3ANk7MZ6cdEU/Pa8eK0XTyNYv8fmm9hBrX3DzcaDZkQYbTejaceIMohm+Bp/aixvt0cHKUG5BKNPCGV6hGlWa5kYLKHcUutFKeEewGSCmD3wlF9mu3UhjsXU1v0uncPH/sclw57/Jtu1MW9wN3P8YcRuUU4AFKkmIk9tTGz+CcCj4E+5bbfLGu8SwvOWgaU6NXk39rCT77Q53hb48bbe6G9H75SZhT7MnH+fPcs5e0DSp8JiDqqJVrfHnrMJmDHnWfjsqeVqJAotXqRGrAL1a82st2zs4xbbIIliQb3GlMJtj87ZnTAt9T95dDN3VTUxeGakmvEPW/ObnnRDRuZrHYLXd8Qe9bUO6QMebAANar+twBBjaDI/Fm1w4UkbCNTMKaD+bDmahYXfhhQhhKZZ4lAjUmq5YLJ39rgq1/EPe+5ba9g6mR2ZIcCxA+/37jEvXg3RMudcd4Ih+ZtihGx8BSATv3LYooixolmQACvqZD2N7rEXbryW4UA4l7y5REKCEg4E7UzJ4esohDmxkfuJoM1YiNRAhniDNCVTXjt9jYwL/qlr72UWHtruXCDJ3wS931/D6ChAkSzTZ4aKGq8RiM5yxFRO9kmygoc00SXBAHBHMSFyslHcOhYoAQV78mcBQJDJoFsLijiCBF3aXavxK2+E1Y7ILJDMHYWKxQ3O14Tlt9XJN24WzMvubaGCUIL5OWtU2vZz1F4rni10EQ+4TWvQemu77/R16u2jMB4B1JFnTiWB1EYtofa491dDCGQu88oyzD4PrhwwO8tO4vLZK0Xi3FfdXJo6sP4/OJYJsPDh/5754M7vJTXJk7QvXE8B7kzMC/RRKhbkk7fUJUeZwfrqJWz7OxWd4BTf4ajoztWDR/Iw3+hnYeXVK20WrK1ZFWFB87Z8J0qOokyZr8Ev+n1A+5C/QGZagW/h3gh1TtmU3Du9a47GbeYvpJb79mXfXeKLjQkI3ax2RbdGBThbs59fTWlclMiZ/LsLVUxA9vordUnvAV6/9ZrRzL4GUZxcXbm4vTHSPbjq64zeG4J6Mve6QPbztoyPDihOxwziVk+UifAPgFEJYutedCO6k4S0kxfVY+AA7ye4DaRbZVCMNtuX8n112KIMiOCtIIMvma8z8rgKMYmX0S/iyDZ96/W+n0uqfznoLyydnmX39XeQ5ST9/zxPvkmN3/V4oZ1KkkIjUmWqIjLt7BY8ulRQzg/6JJa1QxK8PXG8w94O1Q0B1GWTx6NAGkWSO1nG7maPcJMbJzc4A+1BnFR05ZO5ouiqke5IC3lyYG0ZZ2CdwWiSHI6CogNi0BI8gajDePpghSOpbLw+j2A+VJoLQlMIQeEkonFwIhcqGSl//B0ZFSrA72zAzE5+9p5XAdTdQmqkYiwqv1bcNP2hr+QufDW0PhtvqC69mBdcxdrslMP1afQ8n4OPug9alryuCKgLIWIPlQcteg1bcfQGfWko2nCHQ3x8xPvKIRpgRPiNOuE0QuaRxt3ESUHS3108Vsm3HbrbXf4o2S/wV86l/62HKwJjt8ADlcO9W4Fd/IM/5UN61MGMm4Gx2Gwsr8oryiY32KfRgyeTG9sKA1IC7w+ffwSG9Bu6O9QFCA/aeQHCvZaxjFHh3m9hb+AfDXbcis3SHnASr143H7xsFM2ffsHd5vLuQsYFR4PFglblpuYtbls+ET8XPn29fVphOWYZG5cD6YqkEfDQ4CSSzBt4akuhawxPOH/1nnpxxMroSUCZgdD2DnrJ95elezfqS9Y26A+3WL3OWtKdFuL+ZVSgOHL1Gjzw4XbJ48GrK3PyB54kQve+u0eVE7f7yoKWvwfLz8QG9KZfup4DLlXLwpplEGGZSTWhLqXTKSwz1M9k8HKbZd9PHSDGUF2ub5gGVbN6UH0PsKjpR1EWEih5WELtJH4kDjH7iR1LXhFEK1NgIp8IpmsZUvqdRA6XygTc2em/v6QZgzlmVl5nFusmqSFDu2p4lHGdFP64amyQnDIIHW7Pc30X7in5zqb8pBmPPkQTBzPVTgq8kmhMQu4uB3wVLb7Zp119k1EfxHA5INMaMfKnzD+W/FPTP7V7r0u3d4xqQCYyBMkBpZmwGAko8BkYCfl+6NGUxuNfN+33x8Zz1cQ5jIG0xW48Tv3uj7F4eObi8RYDTs29y9BwNZ0TxK+ObwV6e4rzReYV6CfYBHueC4AKnwp5WXDD+4TIOelTY2qaM388HSu+5mXkF9QGlDqq1YaYLrRaaLAy3CWfo3XfTEOXakmh8Kc/e9TwP4p0XOfBKSVq5nESSy9aSlnIdXC7wsKJAKbOZ1CGTGfEqTSfw7RzErTz1YNTmWmKde+2VqyOmb07J8asZDdiC9y0zmcS4Rk1jHHGO9eYijTaLKJ57s2GVYDebkcIrZMSRZJ4C7W2dp+BqJ6CFzPDHvYCX2mGom+FO65x5FMAFFJ6LDhBmdHmCCwUQZyiU1zlWvqXZvpFVxSacHBw5HOZCBN63cyTj7Ch2WVsVg1hdkfgsLShnknMp6uSAGuvGAE2uX24JCCi1qu5uFiZn3ttEesLFgnA78hQiJQ4wR0iWGCXWHRf9sqQmJlKlyBTZNgKZIF+zP4xV4hyGHXBKgGV77TUTPe8jU8ekwLsiqgh4K7LAehUO7z7OhCDMc3PibAIAJCUI2EBNGltZErYYMgZQP7inWp8Zc/9zHBEhw3rnHRo8HsY5W97R4RgjEEjH3Dyd604sx2vGvmbnONIx7qlRIBKcp1jsjuTfmECl6A4kMkUDp1c02CVOQUqopBhSQcri4giDWXAILSEfCodV5+dXiwnpB9NjDsbgXfExJmT15nSCCzH9YMm870iiKyHtYHpjIiHmYKmfE1zp/PT0xw54dgpVtjobD/msKMbJoIAQnZKcRVbqzDsq+JMHWM4urHUsF2fW2mubQ5RORUWxCPFfUgZ+OSGTpN0F/zU5lJUFRUJygbzEFgMhAZgzSZTz6BqcdobYQpzRZjR3WFuwSyIoh7e1wyVESlAOx5FCnCo7LpgvgGor4PlwvG1bACfC6aH5llxJQlFZDbeqj3fA5Vg47TkZSzXp2HEL9GBpJuTtJzvYMC4S0ChgTkrdnxrUSGOEatIujX2cCrp+1rKPvErCHsrGiL1O+N6WhBaF7Upt3EOhLaukAmoVmCuEGNch+igoBHoAn2F0OgQ5bsJK5LOGf2Te9t3q1sZy5gS0eBJ5cu4H7SH+2p1m/aQefuMREsDF+9XWtnBbQBW36umTVsNWtMqwCri5N9ufPvUvqKZGEidyMQMMINoUXtEMsrP++YdWJfufv5mu4YhJQYGI0teD4pVlxYXdIHWRpcKFw7GKE6JEa1KokC6hOcKBwxPF6zXG2f3fyRpDbGyj8OOTt8wfx9d2e1Ndc+VYMegSDkPDgE7Xzc55mwvD4dZzMRRvY8Eq6w7vuOEg/pPHqe2cAH+NsGLNRs16g0h463d52Yomi7Ydl2J1p+eo5b1/V8xVcmg+Ls4a6p67DyJ+CNMnth60mziT50sFjm71HRL3mtL16f9ZYfdgvauZqklUDS3e/Xe18EjIuunNzjtCJ6ar/nYwH2VhEbfSdYveOoLLh41sBg+MdK5d4Yy7GI3HgBEL6J258PdvkDIB/ZI0eQFQsslABeIoFZRyYAA1BwFnkdzSklIxjvAPbevkw2Fqul+TmDI67o6ThgVL8IsWBH3HDu9pEy/anoTgJOD14uT+xRURwaFha9frv4MnA2a05burdOrJ9ctCQoKCGgEujQAMxRJ8Bd5Sqhnad+vZJLSwvn5hy9D1mtBC6x/WEBYUWpVqSh3tHO0Bfg3DCZLelEBNYofbbPFCUlAN794NVyPhumD7BwzEDWAprrcftxSCTp6CmnCndLgmaLhlGCPPSIvEzIadYEVGQRS0I73BTtazxCw+s4qplhH8LA1khPBgXit7mD8xDCMo7jmuEieLxKtxEpwaHynDZ+EC8BU4WVSvuygZrgIv6cNvIqgJm/CGrWD2sY9jz+dF8sP/DeeP4em6umDPqY3NvxlP76BKoRLFf2zgB/Jrhj8fgtLVB8I5cRWLt53Ghke6NPHruo1KagRvdn7igujnPKiRGII4wJzairMthgFGymIQBqetWJIKxUDVajTaJ3qOczCUlAyFIIFxyVmMpHqWKlDwI4dnEMbiFdQ21XmVpLh7boQtm3zZbRqaOOTfBJ6KWeJsl52lVbG3Udu4710FClTIT6XpHIhYdlGMo4GzQMZLr98X5hoG/HRY9t1uP7YdJ3nkG9vRtsvWXpY2/7LrQaHsW7LL6temHz/uJe5RZdwOXcmKY7D1dnrbm3Y32QDIHvWTp8jFlE8d/R2fKMXkqcDYCC/Dp4p+xVNDrwh0ADDBIHoaHdTugahhupTOIhWP69xCAydZk4GoWxwLSb4fMNDLLQq8lB0kXLtnXxh3uduGsKxeE8i04eTN+T67Tla3JbyWm0sUqwuPlSBGqNTbpJ9LjthZbCojZBfukKZHBdtKXMLXAhVm/fDltcQU3BrMxVPUlZ/SbCYCioCUW+4VKIyppp9qct4CZwxiMuZfLGXm8yuh4FJ81Py6YBMwp5Q3xTfIdOGL+C6ZBnz7BawPUZTDU8NKikj7Mqdu0sQCMU0RbgI3asvNMZGxqFVxNXalooOxfuzmWD8+UOfQ3+00Xv3O5N1q453vbFO4VK750JApd00PAjMgHhaLZB0P8+CiVwQTXda3/XJnl/xjHWKJvKL85v6mICdsDzo0hJ7/i2ZAeMzcTqJIpG/jUzFu+PR0LG5rlgM2E1dI0jrgVNhCnHLqzzDz0NEATUtU1KilyyW5yZJw/YWgFHOLVKWdPrzxDxr2QiJsOapQVHINgPSz45GoI/ZRPBVdxTyCxFWc9G6LYrQQA3FSjNx+nWeHzV3WfhZWunBBEBQMJc/HBrGuim95fXnm/bnn5EPWKttVrOOs7bbbWY9GHgoHyd2oTjhAPow+abknPEzuQnXOh/ndX10Dsw0ipMugC6E/pIAYJ0mzzlUABK66XlqK4xl/98R0zjim0Ho9x376dzjPNqRUKk3oJvUb9JO612lwv6siDbAGSGrqyPMZehcCMnUJiDeWTf7q3J2J6hnKoaGkBBVDj4JXQ8EVAUFVrYmmPjgP07YGziNSALcwMz09Mzu9Run+1ZwiSRGmAHPcRIIhUxBnE8IntBKEMn3EeLmLv+tEFCnICDx7Nsl302la4BMnYEP/MgB+M0GI34IHhOX4XQ2EzXjNGlRzcAzgra39zRnEurCfSuoUuqTnyCqGrTN4pY802CwbkYxwfrtwPbzyv7F6yTFZRgkaZBZEL5E9RGOFUvpDg0j9KwMdW//3ZWQKGSF/0rZ3jCMjpAkyt3cXXLiq1j9swPl25HkrFSZ9HMpOnT/PtKnMVn6CHmlTePIcrrchwKmSETc0TI2GsicHxrbdGpiEsnNzC3pxI4w4pyrhmF1kc7nSNNCmmB7JfvYCk26pukqNpoZdtlJh019A2awKepRtcYDStLncLvIQrrNgXi4efybNVTmvoBM7ubeq1OixZ5OTA7co0ZarJ7DpVqphSnRHha28qSxG6GZbRI8EHqn59pJpjKeY6WzvzDD3MGfyOJLjEozXNcYQbx+7sYBCmrj1QbP68tjzfX3sonpJqOoyTSQQ0S6+0OYzW8bMBKIxgylg3PeFtF/kMngaHoN7sVLysBf6LbZbDJzHchmXig/wtjNQNbqdoX4hXpQIRbvMtk4x8wgeEKqFaz8yIKwwbQbGFMxyvrfAJtrJwmX+0xvZ82e5LrBwtlEsiLBcsAKvpI9RsMPnqTjl/OXWz3C4KOmqPQVABocHL2mQbfoOpJ63JIbWTssg2etId9/yryMMtUgNRoCiOUdElNEvRFdjEMvy1S99BwpQPeOP42y1LQjvCw9pmdVMn0PPC2DUeNQwJBCWhCrRT7KJhIVyJhQgQsDdMPDJ27jhyxTSol3z7wIg7kkpCg/nmnvfCX5pj+GGh8+d787QnjqAHIimrsE9R9AFfDH0UJ7MOtoJiinMiYVI2g/USpMKk0pq0h09Vsl4GVBDZwqY9Bqaauxp7xhjGDPHOu5hyiGH/u5rtL8vnxWsTydk4ZfhK/F+0VHW7HV5xn26v4WwNFBILDnWXG4U+LqPWspdI7eM9ggnW4pk4MBsVpWpeqvahJjddK69eem5u1sTdZfa+AU3lL8S9HUuNRR21fFy4bY2OJd+5InP//8XAvr1t7XlViiCg3E4VxW0FlPS3nDprlTaDgvzq7OW4YxPd648ivpnPGjsex0W+6C5kTF9eX90pyc28tiq/1BjutgAgwF+YPYLLhYnTjFLEeOwufDE5yHdb+4MZYgyw/1NXyFOMWxE7Hl/51lv1mkMnA18p3tF4L+cQ5j/eAV0asDepf/jP3+ukjDJj/8X9I9tjg2LTU/LCMtoksKSzsA8HsWg0dIiIIMSEioDYUdKDiUAmbQoFWDQCoMdE/hO4hZiMuEQkdB5nAn7n+AN21wPqXFxoklpHz3FRtuMy8JhNy99km+a6pS+xTE7EJqfkS+FjD2C3fgBtkEla24S7W1yPGMcU5NMSvrQFF70s2E2L3ucJ3wvh2wQAJffQvPsgoqB7207N9dWamSjLIIYmCH66cqntU5aHuFFyLQn79Bap5stqeEr10ZEcL9Tv9CmW+mr7t+rS1+nHTcY167reMp5uj0TGWdbrBxy/PL7ZK113HesSfd72qKC3EPGsXGH7Uu7IkvKkebPbyu1aujrh3LMT51Kj/ykYCg/kZuqTgWeEkcQEYGHRTHqx6rBjmBrWHt1uB2mJu7boHDwPFFBPG+VavOzq/YzwVkx8HSuDNYpBbtZF/BHr6Wl1THZvazdAqXL2iuBJxj+/oxIvqrHA4/jBhSRigHckbrRwNFgVaAKzE55Ghy+0Go4zO5ApWGw0/+O/3OCs06H2eqSrYPDs2rN1pjNmK0y+wtEkrqX+AonP06Gjb8YUuTlK6BoSAkghdjFI4PjV+F0hX/FtbZ6VrWjt9+1nEXcmWjcWFz+nUTYvs1juftyDwKH0tIPzFr2S2g1BBxi1yalfjAqsxhcgyzB5DjNnzr+XPB8nOpPG1+dIlroUIOBajFJDkx3Vq6/nVQAtfFIRYMY15ZY03nhGDgCYzIvtsUVM1iEkHYAqcDfjpU73+4a6m7qjl6jS02ltPZJtNDRydaF6wKGAroBpvEMV0bjEtQNtbF59CjjcoVBxa1baoMJlhrVSlZoaJZZlQrWn+yK27dVzvP6PknMg4pC1KLM0uIgV+zEz1+3E/iZagP0+giTnSmXZRpAsbHdMqWsH1LHQG/caLhMtkJu+Q9SlzIWMsgEz0pAcuPBbU3gNaJSt5ZFxDx4lrI3uCpLjXwkL919uOV4fGtoeGUH6r5h4xOZUQpgI1uq0BIf//Z2GzKiDovIBII9Ieewv37GOQNGkVMSVLcYTnIUKaZAolMhOIf9+SvOmf/nz9l/zoMKCqCWYy4MYhHkeQjs7d2N6Fl6rRoEA/2Fp8Mo5cljKmQEUf8Dx1uhKsr/NBRAe8wJUs0/RVLCakJQ0Rjfz0nY4UR3MxZPOhVHBLNdoAN5gC42FtMXsRlutKt50OR+YhNXIMIs5ozjPzLUjJ+Kcdxr4+joMc+x0IxvNat0ZehT9K8//qgBBTWMAwXgwNXrKsYIQ3nt+ke5Hu0B8rOjo6ZOYhpj4JwS1aOqXfuVDD3InO9yFqREzc4OnYv2eEFU0mAl0Gt+Ty+jfyUOAOjOrK0LTBava+Z/e7DFi/8GcbhyCMGvy8RvSXVlnuvq6GcfSrvPfsO/aN0X2YjmUJZPNhZAzSZbaAV1jDIDqH2sLtI8I6iX1+7rZ+8QnRGeaa3d3Lq8YvH0+/YqArJDvLy2gJkHt9C/deSkGAgvPkWNYmerosRk+6utwkP1ZBsSP3bWBAdxSFdvtMxRF2IRNOeVSj3fgbBttqqd0Lu9l/gem2lLIjilq50z1SkYsvGVJ3hyuqVahJVf6ZZ1gpu969gjtiPsddgwaDsoOQG9rZ4Npibbnil02YOdkbRJ6BY9FqDkGDKOPERukkxIeu1D7VNEj9R4GGmcZAph1kV9T7qJTKxgCEnjOk5Pol8UOKOjcIwCHkW15bOEiAuKYqLCPsGjwPllw7sLEnlpj+UKIervmFowWll7b7r2/qIOnMfOAGzLw+H69oXaSZ0pBh98vM7KcoiPrjHe7F937IzZgeCl+ovW+nnb7lx1V13Nc1Hny2j36THGniuhvbP1pK3QOT8Oczl0zGtLkxqsdPQOyS/euNLKThQYbrAE/279wjMXFPV8IP2qwRu5G90gibR6gnej+sL63DPmauJG62GZCVkWvmjMzqGZH+9niajjqY8glaLs/K2oMphO8NZn/fO2OguFrCNbaRboqvtZn8e2RWyLKpOVgblf7Uu4dOcZgoow40znlnyW+NF76H3NZ5Omw0DotJFyUXykl2FZfJnhTIQuPsOnw4xTEk4FzwrtTOsMxcSpBMQ5eB/m0l3oRR7EGecZokpZdJ5H0WH9t9/DHNDKyi6JHKARoBs5oUCIqVX3ydaskfXpE/lb98n0VE8NnPW7w/+Yj9XX+3ccQ34jSlB0NZTK4DOoSaRdTUIB3Y3+Z7lM3Cb/nHTLWa95gBOa4h7SEAofLNBLtD+8pkHtslg9AzBHeo/pxa3ikfUbHGfpRa3QICjPiTUMdoUyRcWEdJYoGhOn8Nk78ckhwUYe4JFqSNj2ySaxL36TbeL4NkKaob+Hrdwh4dPEXoUPNs4sOp1FKBZBmSGusYZyyQb/DR734qDSUjgOVpWWxUEqqKysDo0rKwXYJbiHfMFDLFGQyeh8vg3yV9G6BErB1k0VbDNDXaQ3tG1kKz5Fl9U/xJmYIOG6YPtCOfOMTb9+dM0v7B241XIz69yuxqduALOIXTi1YzvTJdBFuHbdmhA67z4yt2+fKgTEhn8+fBat1uz62zy4KL6ElQG53rLuP+0JkOyL3TEn8XH4kzHW7EreMXfJ3LlgrrrT7tZehWKuSynSYsAJZH1X08WNq0XOX4o4HQiMdLDXfAuoH3/6xdCSt9ac3u97XXjmgO/BmhXJfxq6TxtG7PGGs9aKyGEvXlRFFISYBrD+UTCcr12T1zJ8GVA+ZCH/rRnCmeGGT9lkDUipsWp3mnv/5o2t4VUDgdRAdRBVOlCxfqKsvKLCTRU3UJ7plpXlxSdrSYCkXcU50oEMuTSKILDPah9qXiWue0gaec0k0fRe6z2YeP1HQy2Jg2jDQTik11DJmC3kPjCzfhvL5WJbvg2MG9i6pIPYZ8+wkA8GRoH34Q/4Wceno0e3xOcw29tbV61auepXih7/DMwcZvVFrNVG9OkTDXruPLodii89Egd2SOpq/bfr4mht7U6JDmjQ86nub3vyhC41kdKRHMwF2+in1nSavIDrt/bV8ImgywwI+wER6OwCqn9B623oo3OeID0KmDOI6DdwFCEhbMBuP/DYY+TeuZm8he6Omzdd9e4dTSfy5onFwgH/fv8u/+7/zLqnGGBwfzkDwGmXhkHMIDHcGEYZPMZKoHUeK1IGkXF4gytfbOTCd9W6dIgQF5K4Z4JC6RfeOHhoQFgp7G9rm56mBZSqGVQjA3IJDj+Dx5HAzP79L+BQy/eBUbDxvyTTSnp4OaoE4XIPMBDQLxoGwMzhfZyxcRCJRBbswDwQmM8S9fo7OCpHYRLE0tYaRdlJsdwYZRwcBhKk5ADRwsxXrvJc605fDmFWY5i97zutFR5HPZlolHgSXLlGnuJMUEooE6QVb98d05Xoxg1DOrCUCSQHGdeNfWAdnKCIs6sU4xzf98lEhHPGAah7lHJF3PAP4Rq0EdGHzg+RLzFMLjbVga0QKTNOzVnHbbHwxPtvCqLgcoh7mzdZb5neArV6RcMcFA2OCUTixevN5zCjNiO35pyKzYwSWTikYrkPPia8SSDKfhASXieAmfl8aI0Wzscuyti7C7Mdo96Lf7xGq+TdToWamqCupDUtSYUPGR70dIJSm5qAz/l5lM07dtId6RGymcfkte7cyUhjWA/LuczW5GENIC4lQrxzLIthlM8YfnPnIg/qrW2w1rUD074RzF0yO/rC9JetO+gxazgZu2NlYrxoCc99/2Xoc0hEVLCnUUzvOSOyzsmpFqyqBvazTXA7GzkRu/YdB4CDM+gyMD/reX+uRgtqQLi4sDKkZD53fup2otmYkLqtm5DiCqwae43ofdzzK2W3J8dzN+ULs9I8C4rZf6734nhJy66dvRStNK9AN5bsbijdwDTaJe16cCqZi4paesz2M88u29W8axA+JTxb2pKNqs2zmBslwA9TeIPtH/CE8up2v+kZhdMIqGHSb7ix391/Ijr8xUrtXsrKoABKNBVQWDQ1mgJI6dRpsiFlmsqqFEPyNCl0YROFAAPBrKECZGr6AB4trUMVGHwSvf7KsNg03HBFY669JnCRTQ13BW9RwCJeDY9nsyhw6EoBLYqD6dUx1GL2ehh3Gx+8q4XKMEKp+qCAEUS5e7hqwNnVdFwGzyvLmw/FQQW5UCzdJ9o02ofuYaOOlmdazcHOzbKKjXBQe86bkqUAiQskV6tlED7R6JDcWWPsEy6kyrX4tZUkF6RSi9dWZgDwEBuxMs83WesnfNdOxUqOoQLftT7JuStjI+jbTPWTh/y3+h8C3qineVzzMpU5OhLcDBRw68kTLTCR9sCtQPEv8QiqMl+2LOwwlETUyrVEKNyjRVq5ymN7TlRKn0ko3NMx6VW9g0L4l1lUgpliSmGW4PLURp/tov5SCDfahtz9f6u+3aezm5/0mxjQ/Re/Rods8Z9qyJPDai2kZkAXIVf4WwVkq39VQa70XTmAft5jZH0h6jLkUj2qg2zzM4e5bO4p4z8D9v/OEl/VY3xY6yUxG83E1poc0+Ixav+py8Zk50PmbTWkmD81usO/5FGcfx/HT/shBNq5kG9qdM/VXDP6HN/7bQCN16ZGO0dgL3LB0hRWd5aHf5jLfMoNm10he7xnkLbC/3MCPGCXj6XGss+pastFQcAqz8LwLkdnRjJgy0UmZMHQRQwRqC33RjVjrG9XLaw6KxNluWopEaR9nP0KwaVcLHSO7MtFai7XO9Z7nxzQlqsCmudOxnQa/aMhB2wYg5alWN9Tl67a2q3BOj7W8A+18aqEjbGsFOzHRQxLUrB2QeA3Cf7JzfzJ/A8pxH5cJLB6LqzkIhv+bS5xPLX2JiBNyMUen/X8TUgacwrox929yQz95NlwlZI5QB+EMPgCgeas3WEVoqY1rSiGTY5havTT4Tq91dL/GWrN65UX2w16/6nkoDrw5vrf6Tbq/iuaoMNv/QntMPgPobqiyfKHCvt5wL6DAEH+LoboWyhfs1T3XgzFSfle9SPt3l6Mvdcb6LaS7+SiRPtyBud01s+ecfP0Ch6LF/7l+3gO6h0HWvEa8F9Hu0cwcRWpo6OJgurkNrJOD5OzojJViNG52UKHoWxDZWG2ZQ4hJ+8wkhKERS8wm2UsawzjaNYZ4H5WDOOmEKPj2cIYPmUbhpmyLTuM9Qg6TLcbvnBwX0TIqMtqKqkObALnAzP7N1rxEA/zeuw/xkQHyvUNN3WP/EDGmCMm9XaTsylNDG15z5aH3oeyi6HBOi9czt335Y1NXw+LOrRPDu6LCBl1WU3qJakObN52Puj96n+jFQ8xcJN7L/kfY6KPv1wvVhHCD8ZRNzmXYOrtJpNhSunE0DbqPTfQi1ooO3+7Buu8cAlO931Jd2Vi2WJ8tb2PYNe+m62OT2Y5AwkgGLDgwEP4W16GxV8G9aQAIkwo40IqbT6V/VayzoeYpFlelFXdtF0/jNO8rNt+nNf9vN9ftFjxEn0m2Cpdpmy58hW+4VKu3Eem5D24Mgi+Nn4ANWrWql2n7rMeyUtgu6PzIWhU9VhDwDaGZ5mSo5MBSYvuf6yGXJDjyYHzY90j8STAi1+NdUJzLeQgbE680pa93t9RN7j+9OU6OeTH5R1GAg+kMSIPMsuIjvhFQ1721M7jxA3xe0gJs2qBwWKLnFVESylHyBRYBaOOnZLOd1S7oVCQE0YQz47lSWqnwRrkSvY9yEnzsyaSSeG2AuzpeChXSC6IHpHLvHYI+EMxJasGKlpOBXw0pcUAG+AHobOdg9DtN3Yu5LD+ujnxZx641TIN8KyGqKsD4UzZo/76qTOFBplrCtKLqXyCml5pMGCxl5MMyiIQBS6Tlr43SFNgW0GYnXIwbM1hQ3ez1NTuxCIeBVUm4NrVO3z4SBnaBGYPmBzNhyvHSzhSfURZCBom4oPkCvB4BvAxgoQlOSKwk/7IidAqzWYYWsBJHThHqPNGGfK+8LLcOx1jY1nr40YipET11oTYHlbSYn93OJzmNdbniT4ggWv7w3akg3AIsljcxVaHnhjZGJHXq+PkCKK1AWkkEmlWSOFh28rmFFMIBZJps4RRXpgvF/Cxge5Cwp0+z3ByoNiRT5ePa8fuPaRSQFAf/kROk7QN29OhjuP45ZuqQzeBQhra7GiPe7YBr892BN5ytUu1BFyUOjtHt+MdrlHePkqrAk3U+Tmdf+3LQYpnKAjt0YSFAeLDYX2piiqOw4/0zQDGSPkOD6xlkiXwnyKBSET4QSlq1E40UDWxiBm8TENC+2gXA/I0BA/lRvaH8YzCXl5IB15yc5AJD4wMQitJRO3Nel3UKze0V0xuPC9aaqEAle3kSQIAAA==')
format
(
'woff2'
),
url('//at.alicdn.com/t/font_2011217_f70ptj9y4oc.woff?t=1604572648364')
format
(
'woff'
),
url('//at.alicdn.com/t/font_2011217_f70ptj9y4oc.ttf?t=1604572648364')
format
(
'truetype'
),
/* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
url('//at.alicdn.com/t/font_2011217_f70ptj9y4oc.svg?t=1604572648364#iconfont')
format
(
'svg'
);
/* iOS 4.1- */
}
.iconfont
{
font-family
:
"iconfont"
!important
;
font-size
:
16px
;
font-style
:
normal
;
-webkit-font-smoothing
:
antialiased
;
-moz-osx-font-smoothing
:
grayscale
;
}
.icongongzi
:before
{
content
:
"\e7e9"
;
}
.iconwode-wodejiangjin
:before
{
content
:
"\e622"
;
}
.icontishi
:before
{
content
:
"\e648"
;
}
.iconweidudianjihou
:before
{
content
:
"\e659"
;
}
.iconyidudianjihou
:before
{
content
:
"\e661"
;
}
.iconshixinyuanxinghui
:before
{
content
:
"\e605"
;
}
.iconduihao2
:before
{
content
:
"\e69e"
;
}
.iconshixinyuanxing
:before
{
content
:
"\e607"
;
}
.iconduihao1
:before
{
content
:
"\e61e"
;
}
.iconziyuan157
:before
{
content
:
"\e6f1"
;
}
.iconshenqingxialaiderenwu
:before
{
content
:
"\e623"
;
}
.iconwupin
:before
{
content
:
"\e729"
;
}
.iconjilu
:before
{
content
:
"\e621"
;
}
.icon-xianjin
:before
{
content
:
"\e6c6"
;
}
.iconasset-management-registration-of-assets
:before
{
content
:
"\e60a"
;
}
.iconzichanxinxishenhe
:before
{
content
:
"\e6e1"
;
}
.iconwodeliuchengfenbu
:before
{
content
:
"\e611"
;
}
.iconlishijilu
:before
{
content
:
"\e6c8"
;
}
.iconjichuxinxiguanli
:before
{
content
:
"\e620"
;
}
.iconxiaoshoudanju
:before
{
content
:
"\e60f"
;
}
.iconanjian3
:before
{
content
:
"\e634"
;
}
.iconrencai
:before
{
content
:
"\e60d"
;
}
.iconjiaban
:before
{
content
:
"\e682"
;
}
.iconyijianfankui
:before
{
content
:
"\e626"
;
}
.iconzhaopianphoto182
:before
{
content
:
"\e728"
;
}
.iconjiankangdangan
:before
{
content
:
"\e65a"
;
}
.iconcardb
:before
{
content
:
"\e62b"
;
}
.iconuntitled85
:before
{
content
:
"\e618"
;
}
.iconcaiwu
:before
{
content
:
"\e619"
;
}
.icondingdan
:before
{
content
:
"\e669"
;
}
.iconicon-chujingxianlu
:before
{
content
:
"\e61a"
;
}
.iconchuchashenqing
:before
{
content
:
"\e61b"
;
}
.iconchalvfeiyongbaoxiao
:before
{
content
:
"\e61c"
;
}
.icondanganheji
:before
{
content
:
"\e646"
;
}
.icondanju-zhengque-tianchong
:before
{
content
:
"\e627"
;
}
.iconqitafeiyong
:before
{
content
:
"\e629"
;
}
.iconkeshi
:before
{
content
:
"\e67e"
;
}
.iconwangluo
:before
{
content
:
"\e608"
;
}
.icon-baogaodayin
:before
{
content
:
"\e72b"
;
}
.iconshangchuan
:before
{
content
:
"\e775"
;
}
.iconrenyuanguanli
:before
{
content
:
"\e663"
;
}
.iconzhengjianbanli
:before
{
content
:
"\e8be"
;
}
.iconxinxi
:before
{
content
:
"\e649"
;
}
.iconcontract2-fill
:before
{
content
:
"\e61d"
;
}
.iconluxian
:before
{
content
:
"\e874"
;
}
.iconyijianfankui1
:before
{
content
:
"\e685"
;
}
.iconjurassic_form
:before
{
content
:
"\e6af"
;
}
.iconbumenguanli
:before
{
content
:
"\e609"
;
}
.iconshangchuan1
:before
{
content
:
"\e761"
;
}
.iconshangchuanwenjian
:before
{
content
:
"\e62a"
;
}
.iconw_xinjian
:before
{
content
:
"\e67d"
;
}
.iconw_xuesheng-
:before
{
content
:
"\e67f"
;
}
.iconlianxiren10
:before
{
content
:
"\e6b0"
;
}
.iconshigongweixiu
:before
{
content
:
"\e645"
;
}
.iconchuguoxiangmu2
:before
{
content
:
"\e681"
;
}
.iconqingjiashenqing
:before
{
content
:
"\e6b6"
;
}
.iconshuji
:before
{
content
:
"\e6b7"
;
}
.iconfujian
:before
{
content
:
"\e709"
;
}
.iconfapiaobaoxiao
:before
{
content
:
"\e680"
;
}
.icontianjia
:before
{
content
:
"\e62c"
;
}
.iconziliao
:before
{
content
:
"\e613"
;
}
.iconchaoshi-solid
:before
{
content
:
"\e617"
;
}
.iconPensyumaobi
:before
{
content
:
"\e708"
;
}
.icondrxx79-copy
:before
{
content
:
"\e795"
;
}
.iconxiaojiashenpi
:before
{
content
:
"\e630"
;
}
.iconshijian1
:before
{
content
:
"\e65f"
;
}
.iconicon_duihao-mian
:before
{
content
:
"\e63d"
;
}
.iconshezhi
:before
{
content
:
"\e654"
;
}
.iconxianshi_quxiaotianchong
:before
{
content
:
"\e61f"
;
}
.iconshijian
:before
{
content
:
"\e63b"
;
}
.iconjiantou
:before
{
content
:
"\e612"
;
}
.iconduihao
:before
{
content
:
"\e62f"
;
}
.iconzhedie
:before
{
content
:
"\e647"
;
}
.iconfayuan
:before
{
content
:
"\e6f4"
;
}
.iconxiajiantou-
:before
{
content
:
"\e632"
;
}
.iconjiahao
:before
{
content
:
"\e727"
;
}
.iconxiaoxitongzhitixinglingshenglingdang
:before
{
content
:
"\e794"
;
}
.iconxiaoxi
:before
{
content
:
"\e67c"
;
}
.icondaibanshixiang
:before
{
content
:
"\e65d"
;
}
.iconshuoming
:before
{
content
:
"\e6ad"
;
}
.iconwenhao
:before
{
content
:
"\e62e"
;
}
.iconpiaoju
:before
{
content
:
"\e603"
;
}
.icontongxunlu
:before
{
content
:
"\e6ef"
;
}
.iconwode
:before
{
content
:
"\e625"
;
}
.iconshouye
:before
{
content
:
"\e694"
;
}
.iconfuwuguanli
:before
{
content
:
"\e67b"
;
}
.iconziyuan211
:before
{
content
:
"\e726"
;
}
.icontongji
:before
{
content
:
"\e642"
;
}
.iconfuwuanli
:before
{
content
:
"\e6f8"
;
}
.iconmima
:before
{
content
:
"\e60e"
;
}
.iconyonghu
:before
{
content
:
"\e610"
;
}
public/index.html
View file @
41fb4b17
...
...
@@ -5,7 +5,7 @@
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge,chrome=1"
>
<meta
name=
"viewport"
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
>
<link
rel=
"icon"
href=
"<%= BASE_URL %>home_logo.png"
>
<link
rel=
"stylesheet"
href=
"
//at.alicdn.com/t/font_2011217_f70ptj9y4oc
.css"
>
<link
rel=
"stylesheet"
href=
"
./alicdn
.css"
>
<title><
%=
webpackConfig
.
name
%
></title>
</head>
<body>
...
...
src/api/equipment/basicInfo.js
View file @
41fb4b17
...
...
@@ -46,4 +46,11 @@ export function deleteLogical(id) {
method
:
'delete'
})
}
export
function
getDictData
(
params
)
{
return
request
({
url
:
'/wbbaseinfo/queryDict'
,
method
:
'get'
,
params
})
}
src/api/equipment/draw.js
View file @
41fb4b17
...
...
@@ -7,6 +7,14 @@ export function listWbApply(query) {
params
:
query
})
}
// apply_detail分页查询接口
export
function
detailList
(
query
)
{
return
request
({
url
:
'/wbapplydetail/queryWbApplyDetailByPagination'
,
method
:
'get'
,
params
:
query
})
}
// 逻辑删除基础信息接口
export
function
deleteLogical
(
id
)
{
return
request
({
...
...
src/api/sample/basicInformation.js
View file @
41fb4b17
...
...
@@ -46,3 +46,12 @@ export function deleteLogical(id) {
method
:
'delete'
})
}
// 导出信息接口
export
function
exporTable
(
param
)
{
return
request
({
url
:
'/wbchemistrybaseinfo/export'
,
method
:
'get'
,
param
,
responseType
:
'blob'
})
}
src/layout/components/header.vue
View file @
41fb4b17
...
...
@@ -36,11 +36,12 @@
<!--
<el-badge
:value=
"200"
:max=
"99"
class=
"item"
>
-->
<!--
<i
class=
"el-icon-message-solid"
/>
-->
<!--
</el-badge>
-->
<el-dropdown
class=
"avatar-container"
trigger=
"click"
>
<div
class=
"avatar-wrapper"
>
<span
class=
"username-text"
>
[您好,
{{
userName
}}
]
</span>
<el-dropdown
class=
"avatar-container"
trigger=
"click"
>
<div
class=
"avatar-wrapper"
>
<!--
<img
:src=
"avatar"
class=
"user-avatar"
>
-->
<i
class=
"el-icon-caret-bottom"
/>
</div>
...
...
@@ -202,6 +203,10 @@ export default {
.avatar-container
{
margin-right
:
30px
;
.avatar-wrapper
:hover
{
cursor
:
pointer
;
}
.avatar-wrapper
{
position
:
relative
;
height
:
40px
;
...
...
src/views/equipment/application.vue
View file @
41fb4b17
...
...
@@ -143,6 +143,7 @@ export default {
key
:
'GX_CODE'
}
getDictData
(
obj
).
then
(
res
=>
{
console
.
log
(
'res'
,
res
)
if
(
res
.
code
===
200
&&
res
.
data
!==
null
)
{
this
.
pissbList
=
res
.
data
}
...
...
src/views/equipment/basicInfo.vue
View file @
41fb4b17
...
...
@@ -13,24 +13,35 @@
/>
</el-form-item>
<el-form-item
label=
"pgx"
prop=
"pgx"
>
<el-input
v-model=
"queryParams.pgx"
placeholder=
"请输入pgx"
<el-select
v-model=
"form.pgx"
clearable
size=
"small"
style=
"width: 150px"
@
keyup
.
enter
.
native=
"handleQuery"
placeholder=
"请选择pgx"
:style=
"
{ width: '150px', height: '30px' }"
>
<el-option
v-for=
"(dict,index) in pgxList"
:key=
"index"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"p
rank"
prop=
"prank
"
>
<el-
inpu
t
v-model=
"
queryParams.prank
"
placeholder=
"请
输入prank
"
<el-form-item
label=
"p
type"
prop=
"ptype
"
>
<el-
selec
t
v-model=
"
form.ptype
"
placeholder=
"请
选择ptype
"
clearable
size=
"small"
style=
"width: 150px"
@
keyup
.
enter
.
native=
"handleQuery"
>
<el-option
v-for=
"dict in ptypeOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-search"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
...
...
@@ -48,7 +59,7 @@
</el-form>
<div
class=
"placeholder"
/>
<div
style=
"padding:5px 10px"
>
<div
class=
"mb12 font-small-bold"
>
设备基本信息列表
</div>
<div
class=
"mb12 font-small-bold"
>
基本信息
</div>
<el-table
v-loading=
"loading"
border
:data=
"basicInfoList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"pn"
prop=
"pn"
>
...
...
@@ -58,7 +69,13 @@
</el-table-column>
<el-table-column
label=
"pgx"
prop=
"pgx"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
pgx
||
'-'
}}
<span
v-if=
"scope.row.pgx === '001'"
>
压缩
</span>
<span
v-if=
"scope.row.pgx === '002'"
>
排水
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"ptype"
prop=
"ptype"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
ptype
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"prank"
prop=
"prank"
>
...
...
@@ -122,15 +139,49 @@
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
:close-on-click-modal=
"false"
@
close=
"cancel"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"small"
label-width=
"80px"
>
<el-form-item
label=
"pn"
prop=
"pn"
>
<el-input
v-model
.
trim=
"form.pn"
:maxlength=
"30"
placeholder=
"请输入pn"
/>
<el-input
ref=
"input1"
v-model
.
trim=
"form.pn"
:maxlength=
"5"
placeholder=
"请输入pn"
@
keyup
.
enter
.
native=
"handelTab(1,$event)"
/>
</el-form-item>
<el-form-item
label=
"pgx"
prop=
"pgx"
>
<el-input
v-model
.
trim=
"form.pgx"
:maxlength=
"30"
placeholder=
"请输入pgx"
/>
<el-select
v-model=
"form.pgx"
clearable
placeholder=
"请选择pgx"
:style=
"{ width: '150px', height: '30px' }"
>
<el-option
v-for=
"(dict,index) in pgxList"
:key=
"index"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"ptype"
prop=
"ptype"
>
<el-select
v-model=
"form.ptype"
placeholder=
"请选择ptype"
clearable
size=
"small"
style=
"width: 150px"
>
<el-option
v-for=
"dict in ptypeOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"prank"
prop=
"prank"
>
<el-input
v-model
.
trim=
"form.prank"
:maxlength=
"
3
0"
placeholder=
"请输入prank"
/>
<el-input
v-model
.
trim=
"form.prank"
:maxlength=
"
1
0"
placeholder=
"请输入prank"
/>
</el-form-item>
<el-form-item
label=
"pissb"
prop=
"pissb"
>
<el-form-item
label=
"pissb"
prop=
"pissb"
>
<el-select
v-model=
"form.pissb"
placeholder=
"请选择pissb"
...
...
@@ -147,10 +198,10 @@
</el-select>
</el-form-item>
<el-form-item
label=
"psm"
prop=
"psm"
>
<el-input
v-model
.
trim=
"form.psm"
:maxlength=
"
3
0"
placeholder=
"请输入psm"
/>
<el-input
v-model
.
trim=
"form.psm"
:maxlength=
"
1
0"
placeholder=
"请输入psm"
/>
</el-form-item>
<el-form-item
label=
"psy"
prop=
"psy"
>
<el-input
v-model
.
trim=
"form.psy"
:maxlength=
"
3
0"
placeholder=
"请输入psy"
/>
<el-input
v-model
.
trim=
"form.psy"
:maxlength=
"
1
0"
placeholder=
"请输入psy"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
...
@@ -164,6 +215,7 @@
<
script
>
import
{
add
,
listBasicInfo
,
updataInfo
,
getDetailById
,
deleteLogical
}
from
'@/api/equipment/basicInfo'
import
{
parseTime
}
from
'@/utils'
import
{
getDictData
}
from
'@/api/equipment/application'
export
default
{
name
:
'Role'
,
data
()
{
...
...
@@ -178,7 +230,7 @@ export default {
multiple
:
true
,
// 总条数
total
:
0
,
//
角色表格
数据
//
基础信息
数据
basicInfoList
:
[],
// 弹出层标题
title
:
''
,
...
...
@@ -194,6 +246,17 @@ export default {
menuNodeAll
:
false
,
deptExpand
:
true
,
deptNodeAll
:
false
,
// ptype数据字典
ptypeOptions
:
[
{
dictLabel
:
'1'
,
dictValue
:
'1'
},
{
dictLabel
:
'2'
,
dictValue
:
'2'
}
],
// 状态数据字典
statusOptions
:
[
{
...
...
@@ -205,6 +268,8 @@ export default {
dictValue
:
'0'
}
],
// 数据字典
pgxList
:
[],
// 查询参数
queryParams
:
{
page
:
1
,
...
...
@@ -223,21 +288,22 @@ export default {
// 表单校验
rules
:
{
pn
:
[
{
required
:
true
,
message
:
'请输入pn'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请输入pn'
,
trigger
:
'blur'
},
{
pattern
:
/^
\d{1,5}
$/
,
message
:
'请输入少于五位数字'
,
trigger
:
'blur'
}
],
ptype
:
[
{
required
:
true
,
message
:
'请输入ptype'
,
trigger
:
'blur'
}
],
pgx
:
[
{
required
:
true
,
message
:
'请输入pgx'
,
trigger
:
'blur
'
}
{
required
:
true
,
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change
'
}
],
prank
:
[{
required
:
true
,
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}],
prank
:
[{
required
:
true
,
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}],
pissb
:
[
{
required
:
true
,
message
:
'请
输入
pissb'
,
trigger
:
'blur'
}
{
required
:
true
,
message
:
'请
选择
pissb'
,
trigger
:
'blur'
}
],
psm
:
[{
required
:
true
,
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}],
psm
:
[{
required
:
true
,
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}],
psy
:
[
{
required
:
true
,
message
:
'请输入psy'
,
trigger
:
'blur
'
}
{
required
:
true
,
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change
'
}
]
},
deptOptions
:
[]
...
...
@@ -260,11 +326,27 @@ export default {
this
.
queryParams
=
{
...
param
}
}
this
.
getList
()
this
.
init
()
// this.getDicts(dictCons['NORMAL_DISABLE']).then(response => {
// this.statusOptions = response.data;
// });
},
methods
:
{
// 初始化要调的接口
init
()
{
this
.
getDict
()
},
// 回车到下一个输入框方法
handelTab
(
i
,
e
)
{
const
that
=
this
if
(
that
.
$refs
[
'input'
+
i
])
{
that
.
$nextTick
(()
=>
{
e
.
target
.
blur
()
const
index
=
i
+
1
that
.
$refs
[
'input'
+
index
].
focus
()
})
}
},
/** 查询基础信息列表 */
getList
()
{
this
.
loading
=
true
...
...
@@ -360,11 +442,11 @@ export default {
/** 新增按钮操作 */
handleAdd
()
{
this
.
open
=
true
this
.
title
=
'
添加设备基础信息表单
'
this
.
title
=
'
基础信息
'
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
title
=
'
编辑基础信息表单
'
this
.
title
=
'
基础信息
'
const
id
=
row
.
businessId
getDetailById
(
id
).
then
(
res
=>
{
this
.
form
=
res
.
data
...
...
@@ -417,6 +499,18 @@ export default {
}
})
})
},
// 调数据字典查询
getDict
()
{
const
obj
=
{
key
:
'GX_CODE'
}
getDictData
(
obj
).
then
(
res
=>
{
console
.
log
(
'res'
,
res
)
if
(
res
.
code
===
200
&&
res
.
data
!==
null
)
{
this
.
pgxList
=
res
.
data
}
})
}
}
}
...
...
src/views/equipment/check.vue
View file @
41fb4b17
...
...
@@ -67,7 +67,7 @@
{{
scope
.
row
.
lot
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"
位置
"
prop=
"plocation"
width=
"220"
>
<el-table-column
label=
"
plocation
"
prop=
"plocation"
width=
"220"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
plocation
||
'-'
}}
</
template
>
...
...
@@ -384,31 +384,6 @@ export default {
delFlag
:
0
},
// 表单参数
form
:
{
...
...
@@ -534,6 +509,7 @@ export default {
});
},
handelTab
(
i
,
e
)
{
const
that
=
this
if
(
!
that
.
$refs
[
'input'
+
i
])
{
...
...
src/views/equipment/checkProcess.vue
View file @
41fb4b17
...
...
@@ -48,6 +48,7 @@
<el-form-item>
<el-button
style=
"padding: 8px 7px;"
type=
"danger"
:size=
"smallSize"
@
click=
"deleteByType"
icon=
"el-icon-minus"
>
结束盘点
{{
check
}}
</el-button>
</el-form-item>
</div>
</el-form>
<div
class=
"placeholder"
/>
...
...
@@ -98,8 +99,8 @@
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page
Num
"
:limit
.
sync=
"queryParams.
pageSize
"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.
rows
"
@
pagination=
"getList"
/>
...
...
@@ -146,7 +147,7 @@
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
</div>
</el-dialog>
<!-- TODO: 单项详情信息表单配置
-->
<!-- 弹出框。。。。。。。。。。。。。。。。。。。。。。。
-->
<el-dialog
class=
"aboutSingleDetails"
:title=
"title"
:visible
.
sync=
"openDetails"
width=
"700px"
append-to-body
>
<el-form
ref=
"formDetails"
:model=
"singleDetails"
size=
"small"
label-width=
"90px"
>
<el-row>
...
...
@@ -254,11 +255,9 @@ import {
delRole
,
exportRole
,
getRole
,
listRole
,
updateRole
}
from
'@/api/system/role'
import
{
listCheck
}
from
'@/api/equipment/checkProcess'
import
{
checkType
,
addList
,
deleteByType
,
checkInventory
}
from
'@/api/equipment/check'
import
{
checkType
,
listCheck
,
addList
,
deleteByType
,
checkInventory
}
from
'@/api/equipment/check'
import
{
roleMenuTreeselect
,
roleMenuTreeselectMC
,
treeselect
as
menuTreeselect
}
from
'@/api/system/menu'
import
{
roleDeptTreeselect
,
treeselect
as
deptTreeselect
}
from
'@/api/system/dept'
// import { getRolesByInsId } from '../../../api/businessManage/template'
...
...
@@ -266,6 +265,15 @@ export default {
name
:
'Role'
,
data
()
{
return
{
// 需要盘点的list
checkFrom
:
{
Ptype
:
''
,
checkList
:
[],
},
table
:
false
,
tableList
:[],
// 选中的列表
selectList
:[],
// TODO: 表单里的单项详情参数
singleDetails
:
{
equipmentName
:
''
,
...
...
@@ -276,13 +284,10 @@ export default {
createBy
:
''
,
updateDate
:
''
},
table
:
false
,
tableList
:[],
// 是否显示弹出层(数据详情)
openDetails
:
false
,
// // TODO: 模拟测试数据
equipmentList
:
[],
selectList
:
[],
// equipmentList: [{ equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '002', lot: 'xxx', location: '位置02', thickness: '70', createBy: '操作员02', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }, { equipmentCode: '001', lot: 'xxx', location: '位置01', thickness: '50', createBy: '操作员01', createTime: new Date() }],
// check: '开始盘点',
typeParent
:
'text'
,
typePrimary
:
'primary'
,
...
...
@@ -371,9 +376,13 @@ export default {
queryParams
:
{
page
:
1
,
rows
:
10
,
roleName
:
undefined
,
roleKey
:
undefined
,
flag
:
undefined
,
ptype
:
2
,
pstatus
:
0
,
delFlag
:
0
},
// 表单参数
form
:
{
...
...
@@ -466,15 +475,7 @@ export default {
// 用户点击取消按钮时执行的回调函数,可以忽略这里的实现
});
},
checkType
()
{
// 添加二次确认对话框
this
.
$confirm
(
"确认要盘点吗?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
// 用户点击确定按钮时执行的回调函数
checkType
()
{
checkType
(
2
).
then
(
total
=>
{
if
(
total
.
data
!==
0
)
{
this
.
$message
.
error
(
"请先结束盘点"
);
...
...
@@ -485,6 +486,14 @@ checkType() {
}
else
{
data
=
this
.
selectList
;
}
// 添加二次确认对话框
this
.
$confirm
(
"确认要进行盘点吗?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
type
:
"warning"
,
})
.
then
(()
=>
{
// 用户点击确定按钮时执行的回调函数
addList
(
data
).
then
(
flag
=>
{
if
(
flag
.
data
.
influence
>
0
)
{
this
.
$message
.
success
(
"盘点成功"
);
...
...
@@ -492,13 +501,15 @@ checkType() {
this
.
$message
.
error
(
"盘点失败"
);
}
});
}
});
})
.
catch
(()
=>
{
// 用户点击取消按钮时执行的回调函数,可以忽略这里的实现
});
}
});
},
handelTab
(
i
,
e
)
{
const
that
=
this
if
(
!
that
.
$refs
[
'input'
+
i
])
{
...
...
@@ -668,6 +679,7 @@ checkType() {
// 多选框选中数据
handleSelectionChange
(
selection
)
{
this
.
ids
=
selection
.
map
(
item
=>
item
.
roleId
)
this
.
selectList
=
selection
this
.
single
=
selection
.
length
!==
1
this
.
multiple
=
!
selection
.
length
},
...
...
src/views/equipment/draw.vue
View file @
41fb4b17
...
...
@@ -32,6 +32,20 @@
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-select
v-model=
"queryParams.pstatus"
placeholder=
"请选择状态"
clearable
size=
"small"
style=
"width: 341px"
>
<el-option
v-for=
"dict in statusOptions"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
/>
</el-select>
<el-form-item>
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-search"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
<el-button
style=
"padding: 8px 7px;"
icon=
"el-icon-refresh"
size=
"small"
@
click=
"resetQuery"
>
重置
</el-button>
...
...
@@ -39,7 +53,7 @@
</el-form>
<div
class=
"placeholder"
/>
<div
style=
"padding:5px 10px"
>
<div
class=
"mb12 font-small-bold"
>
设备领用
信息列表
</div>
<div
class=
"mb12 font-small-bold"
>
设备领用
</div>
<el-table
v-loading=
"loading"
border
:data=
"equipmentapplyList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"pn"
prop=
"pn"
>
...
...
@@ -74,24 +88,30 @@
<span
v-else
style=
"color: green"
>
已完成
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"
操作员
"
prop=
"createName"
>
<el-table-column
label=
"
申请人
"
prop=
"createName"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
createName
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"
操作
时间"
:show-overflow-tooltip=
"true"
align=
"center"
prop=
"updateDate"
width=
"200px"
>
<el-table-column
label=
"
申请
时间"
:show-overflow-tooltip=
"true"
align=
"center"
prop=
"updateDate"
width=
"200px"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
updateDate
|
transformDateByFormat
(
'YYYY-MM-DD HH:mm'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"
15
0px"
>
<el-table-column
label=
"操作"
class-name=
"small-padding fixed-width"
width=
"
20
0px"
>
<
template
slot-scope=
"scope"
>
<el-button
v-if=
"scope.row.pstatus === '0'"
size=
"mini"
type=
"text"
style=
"color: #49cec9"
@
click=
"handle
Update
(scope.row)"
@
click=
"handle(scope.row)"
>
处理
</el-button>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleDetail(scope.row)"
>
详情
</el-button>
<el-button
size=
"mini"
type=
"text"
...
...
@@ -134,7 +154,7 @@
style=
"width: 150px"
>
<el-option
v-for=
"dict in
status
Options"
v-for=
"dict in
pissb
Options"
:key=
"dict.dictValue"
:label=
"dict.dictLabel"
:value=
"dict.dictValue"
...
...
@@ -153,15 +173,181 @@
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
</div>
</el-dialog>
<!-- TODO: 单项详情信息表单配置 -->
<el-dialog
class=
"aboutSingleDetails"
:title=
"title"
:visible
.
sync=
"openDetails"
width=
"700px"
append-to-body
>
<el-form
ref=
"formDetails"
:model=
"singleDetails"
size=
"small"
label-width=
"90px"
>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"pn:"
prop=
"pn"
>
<el-input
v-model
.
trim=
"singleDetails.pn"
:readonly=
"true"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"phd:"
prop=
"phd"
>
<el-input
v-model
.
trim=
"singleDetails.phd"
:readonly=
"true"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"prank:"
prop=
"prank"
>
<el-input
v-model
.
trim=
"singleDetails.prank"
:readonly=
"true"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"pgx:"
prop=
"pgx"
>
<el-input
v-model
.
trim=
"singleDetails.pgx"
:readonly=
"true"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"pissb:"
prop=
"pissb"
>
<el-input
v-model
.
trim=
"singleDetails.pissb"
:readonly=
"true"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态:"
prop=
"pstatus"
>
<
template
>
<span
v-if=
"singleDetails.pstatus === '0'"
style=
"color: red"
>
未完成
</span>
<span
v-else
style=
"color: green"
>
已完成
</span>
</
template
>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"申请人:"
prop=
"createName"
>
<el-input
v-model
.
trim=
"singleDetails.createName"
:readonly=
"true"
/>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
" 申请时间:"
prop=
"createDate"
>
<el-input
v-model
.
trim=
"singleDetails.createDate"
:readonly=
"true"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
<!-- TODO: 申请处理表单 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"openHandle"
width=
"1200px"
append-to-body
>
<el-form
ref=
"queryForm"
style=
"padding: 0 0 0 10px"
:model=
"queryParams"
:inline=
"true"
>
<el-form-item
label=
"pn"
prop=
"pn"
>
<el-input
v-model=
"queryParams.pn"
placeholder=
"请输入pn"
clearable
:maxlength=
"30"
size=
"small"
style=
"width: 150px"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"phd"
prop=
"phdStr"
>
<el-input
v-model=
"queryParams.phdStr"
placeholder=
"请输入phd"
clearable
size=
"small"
style=
"width: 150px"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"prank"
prop=
"prankStr"
>
<el-input
v-model=
"queryParams.prankStr"
placeholder=
"请输入prank"
clearable
size=
"small"
style=
"width: 150px"
@
keyup
.
enter
.
native=
"handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-search"
size=
"small"
@
click=
"handleQueryDetail"
>
查询
</el-button>
<el-button
style=
"padding: 8px 7px;"
icon=
"el-icon-refresh"
size=
"small"
@
click=
"resetQueryDetail"
>
重置
</el-button>
</el-form-item>
</el-form>
<el-table
v-loading=
"loadingDetail"
border
:data=
"detailApplyList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"pn"
prop=
"pn"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
pn
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"lot"
prop=
"lot"
:show-overflow-tooltip=
"true"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
lot
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"plocation"
prop=
"plocation"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
plocation
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"prank"
prop=
"prank"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
prank
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"pzl"
prop=
"pzl"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
pzl
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"phd"
prop=
"phd"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
phd
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"psm"
prop=
"psm"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
psm
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"pissb"
prop=
"pissb"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.pissb === '0'"
>
否
</span>
<span
v-else
>
是
</span>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"totalDetail>0"
:total=
"totalDetail"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.rows"
@
pagination=
"getDeviceList"
/>
</el-dialog>
</div>
</template>
<
script
>
import
{
listWbApply
,
deleteLogical
}
from
'@/api/equipment/draw'
import
{
listWbApply
,
deleteLogical
,
detailList
}
from
'@/api/equipment/draw'
import
{
parseTime
}
from
'@/utils'
export
default
{
name
:
'Role'
,
data
()
{
return
{
detailApplyList
:
[],
// TODO: 表单里的单项详情参数
singleDetails
:
{
pn
:
''
,
phd
:
''
,
prank
:
''
,
pgx
:
''
,
pissb
:
''
,
pstatus
:
''
,
createName
:
''
,
createTime
:
''
},
// 是否显示弹出层(申请处理)
openHandle
:
false
,
// 是否显示弹出层(数据详情)
openDetails
:
false
,
loadingDetail
:
false
,
// 遮罩层
loading
:
true
,
// 选中数组
...
...
@@ -172,6 +358,8 @@ export default {
multiple
:
true
,
// 总条数
total
:
0
,
// apply_detail的总条数
totalDetail
:
0
,
// 设备申请表格数据
equipmentapplyList
:
[],
// 弹出层标题
...
...
@@ -191,39 +379,25 @@ export default {
// 状态数据字典
statusOptions
:
[
{
dictLabel
:
'
是
'
,
dictLabel
:
'
已完成
'
,
dictValue
:
'1'
},
{
dictLabel
:
'
否
'
,
dictLabel
:
'
未完成
'
,
dictValue
:
'0'
}
],
// 数据范围选项
dataScopeOptions
:
[
{
value
:
'1'
,
label
:
'全部数据权限'
},
// pissb数据字典
pissbOptions
:
[
{
value
:
'2'
,
label
:
'自定数据权限'
},
{
value
:
'3'
,
label
:
'本部门数据权限'
},
{
value
:
'4'
,
label
:
'本部门及以下数据权限'
dictLabel
:
'是'
,
dictValue
:
'1'
},
{
value
:
'5
'
,
label
:
'仅本人数据权限
'
dictLabel
:
'否
'
,
dictValue
:
'0
'
}
],
// 部门列表
tOptions
:
[],
// 查询参数
queryParams
:
{
page
:
1
,
...
...
@@ -234,6 +408,16 @@ export default {
ptype
:
1
,
delFlag
:
0
},
// 查询apply_detail的参数
queryParamsDetail
:
{
page
:
1
,
rows
:
10
,
pn
:
undefined
,
lot
:
undefined
,
plocation
:
undefined
,
ptype
:
1
,
delFlag
:
0
},
// 表单参数
form
:
{},
defaultProps
:
{
...
...
@@ -289,16 +473,31 @@ export default {
// });
},
methods
:
{
getFontColor
(
state
)
{
if
(
state
===
1
)
{
return
'已完成'
}
else
if
(
state
===
'待审核'
)
{
return
'color: orange;'
}
else
if
(
state
===
'已通过'
)
{
return
'color: green;'
}
else
{
return
''
}
/** 查询apply_detail列表 */
getDeviceList
()
{
this
.
loadingDetail
=
true
detailList
(
this
.
queryParams
).
then
(
res
=>
{
res
.
rows
.
createDate
=
parseTime
(
res
.
rows
.
createDate
,
'{y}-{m}-{d}'
)
this
.
totalDetail
=
res
.
total
this
.
detailApplyList
=
res
.
rows
this
.
loadingDetail
=
false
})
},
handle
()
{
this
.
openHandle
=
!
this
.
openHandle
this
.
loadingDetail
=
true
detailList
(
this
.
queryParamsDetail
).
then
(
res
=>
{
res
.
rows
.
createDate
=
parseTime
(
res
.
rows
.
createDate
,
'{y}-{m}-{d}'
)
this
.
totalDetail
=
res
.
total
this
.
detailApplyList
=
res
.
rows
this
.
loadingDetail
=
false
})
},
// : 获取所选行详情信息操作
handleDetail
(
row
)
{
this
.
singleDetails
=
row
this
.
title
=
'详情信息'
this
.
openDetails
=
!
this
.
openDetails
},
/** 查询基础信息列表 */
getList
()
{
...
...
@@ -311,77 +510,6 @@ export default {
}
)
},
/** 查询菜单树结构 */
getMenuTreeselect
()
{
menuTreeselect
().
then
(
response
=>
{
this
.
menuOptions
=
response
.
data
})
},
/** 查询菜单列表 */
getMenuList
(
roleId
)
{
roleMenuTreeselectMC
(
roleId
).
then
(
response
=>
{
this
.
menuList
=
this
.
handleTree
(
response
.
data
.
menus
,
'businessId'
)
this
.
loading
=
false
})
},
/** 查询部门树结构 */
getDeptTreeselect
()
{
deptTreeselect
().
then
(
response
=>
{
this
.
deptOptions
=
response
.
data
})
},
// 所有菜单节点数据
getMenuAllCheckedKeys
()
{
// 目前被选中的菜单节点
const
checkedKeys
=
this
.
$refs
.
menu
.
getHalfCheckedKeys
()
// 半选中的菜单节点
const
halfCheckedKeys
=
this
.
$refs
.
menu
.
getCheckedKeys
()
checkedKeys
.
unshift
.
apply
(
checkedKeys
,
halfCheckedKeys
)
return
checkedKeys
},
// 所有部门节点数据
getDeptAllCheckedKeys
()
{
// 目前被选中的部门节点
const
checkedKeys
=
this
.
$refs
.
dept
.
getHalfCheckedKeys
()
// // 半选中的部门节点
const
halfCheckedKeys
=
this
.
$refs
.
dept
.
getCheckedKeys
()
checkedKeys
.
unshift
.
apply
(
checkedKeys
,
halfCheckedKeys
)
return
this
.
$refs
.
dept
.
getCheckedKeys
()
},
/** 根据角色ID查询菜单树结构 */
getRoleMenuTreeselect
(
roleId
)
{
return
roleMenuTreeselect
(
roleId
).
then
(
response
=>
{
this
.
menuOptions
=
response
.
data
.
menus
return
response
})
},
/** 根据角色ID和菜单ID查询部门树结构 */
getRoleDeptTreeselect
(
roleId
,
menuId
)
{
return
roleDeptTreeselect
(
roleId
,
menuId
).
then
(
response
=>
{
this
.
form
.
deptCheckStrictly
=
response
.
data
.
deptCheckStrictly
this
.
deptOptions
=
response
.
data
.
depts
this
.
form
.
dataScope
=
this
.
dataScopeOptions
[
response
.
data
.
dataScope
-
1
].
value
return
response
})
},
// 角色状态修改
handleStatusChange
(
row
)
{
const
text
=
row
.
flag
===
'1'
?
'启用'
:
'停用'
this
.
$confirm
(
'确认要"'
+
text
+
'""'
+
row
.
roleName
+
'"角色吗?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(
function
()
{
return
changeRoleStatus
(
row
.
businessId
,
row
.
flag
)
}).
then
(()
=>
{
this
.
$message
({
message
:
text
+
'成功'
,
type
:
'success'
})
}).
catch
(
function
()
{
row
.
flag
=
row
.
flag
===
'0'
?
'1'
:
'0'
})
},
// 取消按钮
cancel
()
{
this
.
open
=
false
...
...
@@ -464,54 +592,6 @@ export default {
}
}
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
()
this
.
getMenuTreeselect
()
this
.
open
=
true
this
.
title
=
'添加角色'
},
/** 修改按钮操作 */
// handleUpdate(row) {
// this.reset()
// const roleId = row.businessId || this.ids
// const roleMenu = this.getRoleMenuTreeselect(roleId)
// getRole(roleId).then(response => {
// this.form = response.data
// this.open = true
// this.getMenuTreeselect(roleId)
// this.$nextTick(() => {
// roleMenu.then(res => {
// this.$refs.menu.setCheckedKeys(res.data.checkedKeys)
// })
// })
// this.title = '修改角色'
// })
// },
/** 提交按钮 */
submitForm
:
function
()
{
this
.
$refs
[
'form'
].
validate
(
valid
=>
{
if
(
valid
)
{
if
(
this
.
form
.
businessId
!==
undefined
)
{
this
.
form
.
menuIds
=
this
.
getMenuAllCheckedKeys
()
// eslint-disable-next-line no-undef
updateBasicInfo
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
'修改成功'
)
this
.
open
=
false
this
.
getList
()
})
}
else
{
this
.
form
.
menuIds
=
this
.
getMenuAllCheckedKeys
()
// eslint-disable-next-line no-undef
addBasicInfo
(
this
.
form
).
then
(
response
=>
{
this
.
msgSuccess
(
'新增成功'
)
this
.
open
=
false
this
.
getList
()
})
}
}
})
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
businessId
...
...
@@ -532,6 +612,18 @@ export default {
}
</
script
>
<
style
lang=
"scss"
scoped
>
.aboutSingleDetails
{
.el-form-item
{
.el-input
>>>
.el-input__inner
{
-webkit-appearance
:
none
;
background-color
:
#FFF
;
background-image
:
none
;
border-radius
:
4px
;
border
:
0
;
width
:
100%
;
}
}
}
.app-container
{
font-size
:
18px
;
padding
:
0
;
...
...
src/views/equipment/management.vue
View file @
41fb4b17
...
...
@@ -389,7 +389,7 @@ export default {
that
.
$refs
[
'input'
+
index
].
focus
()
})
},
/** 查询
角色
列表 */
/** 查询
设备
列表 */
getList
()
{
this
.
loading
=
true
listdevice
(
this
.
queryParams
).
then
(
...
...
src/views/login/login.vue
View file @
41fb4b17
...
...
@@ -50,12 +50,12 @@
class=
"buttons-content"
>
<el-checkbox
v-model=
"loginForm.rememberMe"
class=
"rem-code"
>
记住密码
</el-checkbox>
<el-link
:underline=
"false"
@
click=
"goDetail('/forgetPwd')"
>
<router-link
to=
"/forgetPwd"
>
忘记密码
</router-link
>
</el-link
>
<!--
<el-link-->
<!-- :underline="false"-->
<!-- @click="goDetail('/forgetPwd')"-->
<!-- >--
>
<!--
<router-link
to=
"/forgetPwd"
>
忘记密码
</router-link>
--
>
<!--
</el-link>
--
>
</div>
</div>
</el-form>
...
...
src/views/sample/basicInformation/index.vue
View file @
41fb4b17
...
...
@@ -25,7 +25,7 @@
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-search"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-refresh"
size=
"small"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
style=
"padding: 8px 7px;"
icon=
"el-icon-refresh"
size=
"small"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
<div
style=
"float: right"
>
<el-form-item>
...
...
@@ -36,7 +36,7 @@
@
click=
"handleAdd"
>
新增
</el-button>
<el-button
style=
"padding: 8px 7px;"
style=
"padding: 8px 7px;
width: 79px
"
type=
"success"
size=
"small"
icon=
"el-icon-download"
...
...
@@ -49,7 +49,7 @@
<div
class=
"placeholder"
/>
<!-- 表单区 -->
<div
style=
"padding:5px 10px"
>
<div
class=
"mb12 font-small-bold"
>
基础信息列表
</div>
<div
class=
"mb12 font-small-bold"
>
样品库
</div>
<el-table
v-loading=
"loading"
border
:data=
"basicinfoMationList"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"pn"
prop=
"pn"
:show-overflow-tooltip=
"true"
>
...
...
@@ -92,29 +92,29 @@
{{
parseTime
(
scope
.
row
.
createDate
,
'{y
}
-{m
}
-{d
}
{h
}
:{i
}
'
)
||
'-'
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"操作"
>
<
template
slot
-
scope
=
"scope"
>
<
el
-
button
size
=
"mini"
type
=
"text"
style
=
"color: #49cec9"
@
click
=
"handleUpdate(scope.row)"
>
修改
<
/el-button
>
<!--
<
el
-
table
-
column
label
=
"操作"
>-->
<!--
<
template
slot
-
scope
=
"scope"
>-->
<!--
<
el
-
button
-->
<!--
v
-
hasPermi
=
"['sys:role:update']"
-->
<!--
size
=
"mini"
-->
<!--
type
=
"text"
-->
<!--
icon
=
"el-icon-circle-check"
-->
<!--
@
click
=
"handleMenu(scope.row)"
-->
<!--
>
数据权限
<
/el-button>--
>
<
el
-
button
size
=
"mini"
type
=
"text"
icon
=
"el-icon-delete"
@
click
=
"handleDelete(scope.row)"
>
删除
<
/el-button
>
<
/template
>
<
/el-table-column
>
<!--
style
=
"color: #49cec9"
-->
<!--
@
click
=
"handleUpdate(scope.row)"
-->
<!--
>
修改
<
/el-button>--
>
<!--
&
lt
;
!&
ndash
;
<
el
-
button
&
ndash
;
&
gt
;
-->
<!--
&
lt
;
!&
ndash
;
v
-
hasPermi
=
"['sys:role:update']"
&
ndash
;
&
gt
;
-->
<!--
&
lt
;
!&
ndash
;
size
=
"mini"
&
ndash
;
&
gt
;
-->
<!--
&
lt
;
!&
ndash
;
type
=
"text"
&
ndash
;
&
gt
;
-->
<!--
&
lt
;
!&
ndash
;
icon
=
"el-icon-circle-check"
&
ndash
;
&
gt
;
-->
<!--
&
lt
;
!&
ndash
;
@
click
=
"handleMenu(scope.row)"
&
ndash
;
&
gt
;
-->
<!--
&
lt
;
!&
ndash
;
>
数据权限
<
/el-button>–>--
>
<!--
<
el
-
button
-->
<!--
size
=
"mini"
-->
<!--
type
=
"text"
-->
<!--
icon
=
"el-icon-delete"
-->
<!--
@
click
=
"handleDelete(scope.row)"
-->
<!--
>
删除
<
/el-button>--
>
<!--
<
/template>--
>
<!--
<
/el-table-column>--
>
<
/el-table
>
<
/div
>
<!--
分页区
-->
...
...
@@ -126,7 +126,7 @@
@
pagination
=
"getList"
/>
<!--
新增修改弹出
-->
<
el
-
dialog
:
title
=
"title
"
:
visible
.
sync
=
"open"
width
=
"500px"
append
-
to
-
body
:
close
-
on
-
click
-
modal
=
"false"
@
close
=
"cancel"
>
<
el
-
dialog
title
=
"样品库信息
"
:
visible
.
sync
=
"open"
width
=
"500px"
append
-
to
-
body
:
close
-
on
-
click
-
modal
=
"false"
@
close
=
"cancel"
>
<
el
-
form
ref
=
"form"
:
model
=
"form"
:
rules
=
"rules"
size
=
"small"
label
-
width
=
"80px"
>
<
el
-
form
-
item
label
=
"pn"
prop
=
"pn"
>
<
el
-
input
v
-
model
.
trim
=
"form.pn"
:
maxlength
=
"30"
placeholder
=
"请输入pn"
/>
...
...
@@ -156,8 +156,8 @@
<
/template
>
<
script
>
import
{
queryList
,
add
,
getDetailById
,
updataInfo
,
deleteLogical
}
from
'@/api/sample/basicInformation'
import
{
parseTime
}
from
"@/utils"
;
import
{
queryList
,
add
,
getDetailById
,
updataInfo
,
deleteLogical
,
exporTable
}
from
'@/api/sample/basicInformation'
import
{
parseTime
}
from
'@/utils'
export
default
{
name
:
'Index'
,
...
...
@@ -173,8 +173,7 @@ export default {
name
:
[{
required
:
true
,
message
:
'请输入name'
,
trigger
:
'blur'
}
],
qty
:
[{
pattern
:
/^
[
0-9
]
{1,9
}
(\.[
0-9
]
{1,3
}
)?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}
],
maxQty
:
[{
pattern
:
/^
[
0-9
]
{1,9
}
(\.[
0-9
]
{1,3
}
)?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}
],
minQty
:
[{
pattern
:
/^
[
0-9
]
{1,9
}
(\.[
0-9
]
{1,3
}
)?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}
],
unit
:
[{
pattern
:
/^
[
0-9
]
{1,9
}
(\.[
0-9
]
{1,3
}
)?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}
]
minQty
:
[{
pattern
:
/^
[
0-9
]
{1,9
}
(\.[
0-9
]
{1,3
}
)?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}
]
}
,
total
:
0
,
loading
:
false
,
...
...
@@ -275,7 +274,7 @@ export default {
this
.
loading
=
true
queryList
(
this
.
queryParams
).
then
(
res
=>
{
console
.
log
(
'res'
,
res
)
res
.
rows
.
createDate
=
parseTime
(
res
.
rows
.
createDate
,
'{y
}
-{m
}
-{d
}
'
)
res
.
rows
.
createDate
=
parseTime
(
res
.
rows
.
createDate
,
'{y
}
-{m
}
-{d
}
'
)
this
.
total
=
res
.
total
this
.
basicinfoMationList
=
res
.
rows
this
.
loading
=
false
...
...
@@ -301,7 +300,29 @@ export default {
this
.
title
=
'添加基础信息表单'
}
,
handleExport
()
{
this
.
$confirm
(
'是否确认导出所有样品库记录信息?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}
).
then
(
function
()
{
return
exporTable
(
this
.
queryParams
).
then
(
response
=>
{
const
blob
=
new
Blob
([
response
])
const
downloadElement
=
document
.
createElement
(
'a'
)
// TODO: 创建下载的链接
const
href
=
window
.
URL
.
createObjectURL
(
blob
)
downloadElement
.
href
=
href
// TODO: 下载后文件名
downloadElement
.
download
=
'样品库记录'
+
'.xls'
document
.
body
.
appendChild
(
downloadElement
)
// TODO: 点击下载
downloadElement
.
click
()
// TODO: 下载完成移除元素
document
.
body
.
removeChild
(
downloadElement
)
// TODO: 释放掉blob对象
window
.
URL
.
revokeObjectURL
(
href
)
// this.download(response.msg);
}
)
}
)
}
}
}
...
...
src/views/sample/correctionLibrary/index.vue
View file @
41fb4b17
...
...
@@ -27,29 +27,29 @@
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-search"
size=
"small"
@
click=
"handleQuery"
>
查询
</el-button>
<el-button
type=
"primary"
style=
"padding: 8px 7px;"
icon=
"el-icon-refresh"
size=
"small"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
<
div
style=
"float: right"
>
<el-form-item
>
<el-button
type=
"primary"
size=
"small"
icon=
"el-icon-plus"
@
click=
"handleAdd"
>
新增
</el-button
>
<el-button
style=
"padding: 8px 7px;"
type=
"success"
size=
"small"
icon=
"el-icon-download"
@
click=
"handleExport"
>
导出
</el-button
>
</el-form-item
>
<
/div
>
<
!--
<div
style=
"float: right"
>
--
>
<!--
<el-form-item>
--
>
<!--
<el-button-->
<!-- type="primary"-->
<!-- size="small"-->
<!-- icon="el-icon-plus"-->
<!-- @click="handleAdd"-->
<!-- >新增
</el-button>
--
>
<!--
<el-button-->
<!-- style="padding: 8px 7px;"-->
<!-- type="success"-->
<!-- size="small"-->
<!-- icon="el-icon-download"-->
<!-- @click="handleExport"-->
<!-- >导出
</el-button>
--
>
<!--
</el-form-item>
--
>
<
!--
</div>
--
>
</el-form>
<!-- 分割线 -->
<div
class=
"placeholder"
/>
<!-- 表单区 -->
<div
style=
"padding:5px 10px"
>
<div
class=
"mb12 font-small-bold"
>
基础样式列表
</div>
<div
class=
"mb12 font-small-bold"
>
库存修正
</div>
<el-table
v-loading=
"loading"
border
:data=
"basicinfoMationList"
>
<el-table-column
type=
"index"
label=
"序号"
width=
"50"
/>
<el-table-column
label=
"pn"
prop=
"pn"
:show-overflow-tooltip=
"true"
>
...
...
@@ -67,14 +67,14 @@
{{
scope
.
row
.
name
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"max
_qty"
prop=
"max_q
ty"
:show-overflow-tooltip=
"true"
>
<el-table-column
label=
"max
Qty"
prop=
"maxQ
ty"
:show-overflow-tooltip=
"true"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
max
_q
ty
||
'-'
}}
{{
scope
.
row
.
max
Q
ty
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"min
_qty"
prop=
"min_q
ty"
:show-overflow-tooltip=
"true"
>
<el-table-column
label=
"min
Qty"
prop=
"minQ
ty"
:show-overflow-tooltip=
"true"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
min
_q
ty
||
'-'
}}
{{
scope
.
row
.
min
Q
ty
||
'-'
}}
</
template
>
</el-table-column>
<el-table-column
label=
"unit"
prop=
"unit"
:show-overflow-tooltip=
"true"
>
...
...
@@ -126,17 +126,55 @@
@
pagination=
"getList"
/>
<!-- 新增修改弹出 -->
<el-dialog
title=
"库存修正信息"
:visible
.
sync=
"open"
width=
"500px"
append-to-body
:close-on-click-modal=
"false"
@
close=
"cancel"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
size=
"small"
label-width=
"80px"
>
<el-form-item
label=
"pn"
prop=
"pn"
>
<el-input
v-model
.
trim=
"form.pn"
:maxlength=
"30"
placeholder=
"请输入pn"
/>
</el-form-item>
<el-form-item
label=
"name"
prop=
"name"
>
<el-input
v-model
.
trim=
"form.name"
:maxlength=
"30"
placeholder=
"请输入name"
/>
</el-form-item>
<el-form-item
label=
"qty"
prop=
"qty"
>
<el-input
v-model
.
trim=
"form.qty"
:maxlength=
"30"
placeholder=
"请输入qty"
/>
</el-form-item>
<el-form-item
label=
"maxQty"
prop=
"maxQty"
>
<el-input
v-model
.
trim=
"form.maxQty"
:maxlength=
"30"
placeholder=
"请输入max_qty"
/>
</el-form-item>
<el-form-item
label=
"minQty"
prop=
"minQty"
>
<el-input
v-model
.
trim=
"form.minQty"
:maxlength=
"30"
placeholder=
"请输入min_qty"
/>
</el-form-item>
<el-form-item
label=
"unit"
prop=
"unit"
>
<el-input
v-model
.
trim=
"form.unit"
:maxlength=
"30"
placeholder=
"请输入unit"
/>
</el-form-item>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
{
queryList
}
from
'@/api/sample/basicInformation'
import
{
add
,
deleteLogical
,
exporTable
,
getDetailById
,
queryList
,
updataInfo
}
from
'@/api/sample/basicInformation'
import
{
parseTime
}
from
'@/utils'
export
default
{
name
:
'Index'
,
data
()
{
return
{
title
:
''
,
open
:
false
,
form
:
{
},
rules
:
{
pn
:
[{
required
:
true
,
message
:
'请输入pn'
,
trigger
:
'blur'
}],
name
:
[{
required
:
true
,
message
:
'请输入name'
,
trigger
:
'blur'
}],
qty
:
[{
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}],
maxQty
:
[{
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}],
minQty
:
[{
pattern
:
/^
[
0-9
]{1,9}(\.[
0-9
]{1,3})?
$/
,
message
:
'仅能输入数字和小数,限制三位小数'
,
trigger
:
'change'
}]
},
total
:
0
,
loading
:
false
,
queryParams
:
{
...
...
@@ -153,17 +191,89 @@ export default {
this
.
getList
()
},
methods
:
{
handleDelete
()
{
// 清空表单
reFrom
()
{
this
.
form
=
{
businessId
:
undefined
,
pn
:
''
,
name
:
''
,
qty
:
''
,
maxQty
:
''
,
minQty
:
''
,
unit
:
''
}
this
.
$refs
.
form
.
clearValidate
()
},
handleUpdate
()
{
// 提交
submitForm
()
{
this
.
$refs
.
form
.
validate
((
valid
)
=>
{
if
(
valid
)
{
// 校验通过,提交表单或进行其他操作
console
.
log
(
'form'
,
this
.
form
)
if
(
this
.
form
.
businessId
!==
undefined
)
{
console
.
log
(
'更新'
)
updataInfo
(
this
.
form
).
then
(
res
=>
{
console
.
log
(
'res'
,
res
)
if
(
res
.
code
===
200
)
{
this
.
open
=
false
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
this
.
reFrom
()
}
else
if
(
res
.
code
===
null
)
{
this
.
$message
.
error
(
res
.
message
)
}
})
}
else
{
add
(
this
.
form
).
then
(
res
=>
{
if
(
res
.
code
===
200
)
{
this
.
open
=
false
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
this
.
reFrom
()
}
else
if
(
res
.
code
===
null
)
{
this
.
$message
.
error
(
res
.
message
)
}
})
}
}
else
{
// 校验失败,显示错误信息或进行其他操作
}
})
},
cancel
()
{
this
.
open
=
false
this
.
reFrom
()
},
handleDelete
(
row
)
{
const
id
=
row
.
businessId
this
.
$confirm
(
'是否确认操作?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(
res
=>
{
deleteLogical
(
id
).
then
(
res
=>
{
console
.
log
(
'res'
,
res
)
if
(
res
.
code
===
200
)
{
this
.
$message
.
success
(
'操作成功'
)
this
.
getList
()
}
})
})
},
// 编辑
handleUpdate
(
row
)
{
const
id
=
row
.
businessId
getDetailById
(
id
).
then
(
res
=>
{
this
.
form
=
res
.
data
this
.
open
=
true
})
},
// 初始化获取数据
getList
()
{
this
.
loading
=
true
queryList
(
this
.
queryParams
).
then
(
res
=>
{
console
.
log
(
'res'
,
res
)
res
.
rows
.
createDate
=
parseTime
(
res
.
rows
.
createDate
,
'{y}-{m}-{d}'
)
this
.
total
=
res
.
total
this
.
basicinfoMationList
=
res
.
rows
this
.
loading
=
false
...
...
@@ -185,10 +295,32 @@ export default {
this
.
getList
()
},
handleAdd
()
{
this
.
open
=
true
},
handleExport
()
{
this
.
$confirm
(
'是否确认导出所有样品库记录信息?'
,
'警告'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(
function
()
{
return
exporTable
(
this
.
queryParams
).
then
(
response
=>
{
const
blob
=
new
Blob
([
response
])
const
downloadElement
=
document
.
createElement
(
'a'
)
// TODO: 创建下载的链接
const
href
=
window
.
URL
.
createObjectURL
(
blob
)
downloadElement
.
href
=
href
// TODO: 下载后文件名
downloadElement
.
download
=
'样品库记录'
+
'.xls'
document
.
body
.
appendChild
(
downloadElement
)
// TODO: 点击下载
downloadElement
.
click
()
// TODO: 下载完成移除元素
document
.
body
.
removeChild
(
downloadElement
)
// TODO: 释放掉blob对象
window
.
URL
.
revokeObjectURL
(
href
)
// this.download(response.msg);
})
})
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment