Compare commits

...

2 Commits

Author SHA1 Message Date
laishajiang b15b847d52 管理端前端 2 years ago
laishajiang c948623fad 管理端前端 2 years ago
  1. 2
      .env
  2. 2
      .env.dev
  3. 3
      .env.prod
  4. 3612
      package-lock.json
  5. BIN
      public/imgs/404.png
  6. BIN
      public/imgs/FaultUpload.jpg
  7. BIN
      public/imgs/bg.png
  8. BIN
      public/imgs/close.png
  9. BIN
      public/imgs/error.png
  10. BIN
      public/imgs/login_logo1.png
  11. BIN
      public/imgs/pic.png
  12. BIN
      public/imgs/support1.png
  13. 8
      src/api/dept.js
  14. 8
      src/api/mail.js
  15. 1
      src/assets/icons/anquan.svg
  16. 20
      src/assets/icons/approval.svg
  17. 12
      src/assets/icons/collapse.svg
  18. 19
      src/assets/icons/contact_writer.svg
  19. 1
      src/assets/icons/doc.svg
  20. 15
      src/assets/icons/expand.svg
  21. 20
      src/assets/icons/extension.svg
  22. 19
      src/assets/icons/interview_writer.svg
  23. 10
      src/assets/icons/lock-fill.svg
  24. 1
      src/assets/icons/logout.svg
  25. 1
      src/assets/icons/mp3.svg
  26. 1
      src/assets/icons/mp4.svg
  27. 1
      src/assets/icons/pdf.svg
  28. 14
      src/assets/icons/police.svg
  29. 1
      src/assets/icons/return.svg
  30. 1
      src/assets/icons/rotate-left.svg
  31. 1
      src/assets/icons/rotate-right.svg
  32. 19
      src/assets/icons/un_sign.svg
  33. 22
      src/assets/icons/verify.svg
  34. 1
      src/assets/icons/xls.svg
  35. 291
      src/components/AddMail.vue
  36. 375
      src/components/FileList.vue
  37. 7
      src/components/HolidayList.vue
  38. 41
      src/components/LoginView.vue
  39. 4
      src/components/MailDetail.vue
  40. 5
      src/components/MailEtl.vue
  41. 23
      src/components/ManageMail.vue
  42. 11
      src/components/ManageUser.vue
  43. 80
      src/components/Upload.vue
  44. 4
      src/layout/Index.vue
  45. 51
      src/stores/dept.js
  46. 5
      src/util/axios_config.js
  47. 91
      vite.config.js

2
.env

@ -0,0 +1,2 @@
VITE_BASE=/
VITE_API_URL=/admin-api

2
.env.dev

@ -0,0 +1,2 @@
VITE_BASE=/admin/
VITE_API_URL=/admin-api

3
.env.prod

@ -0,0 +1,3 @@
VITE_BASE=/
VITE_API_URL=/admin-api

3612
package-lock.json generated

File diff suppressed because it is too large Load Diff

BIN
public/imgs/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

BIN
public/imgs/FaultUpload.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

BIN
public/imgs/bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

BIN
public/imgs/close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 B

BIN
public/imgs/error.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
public/imgs/login_logo1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
public/imgs/pic.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

BIN
public/imgs/support1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

8
src/api/dept.js

@ -0,0 +1,8 @@
import { get, post} from "@/util/request"
export function listSecond() {
return get('/system/dept/second/list')
}

8
src/api/mail.js

@ -0,0 +1,8 @@
import { get, post} from "@/util/request"
export function addMail(body) {
return post('/mailbox/add', body)
}

1
src/assets/icons/anquan.svg

@ -0,0 +1 @@
<?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 class="icon" width="32px" height="32.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M486.570667 97.216a33.130667 33.130667 0 0 1 51.264 0.512c34.709333 43.328 152.064 98.261333 307.776 117.034667 16.576 2.005333 29.056 16 29.056 32.64v372.629333a167.04 167.04 0 0 1-20.096 79.402667C761.813333 871.146667 633.770667 938.666667 511.530667 938.666667l-6.528-0.106667c-118.954667-3.413333-244.586667-70.741333-335.573334-239.125333a167.808 167.808 0 0 1-19.925333-71.914667L149.333333 620.032V247.402667c0-16.64 12.48-30.634667 29.056-32.64 152.426667-18.368 269.077333-72.277333 305.237334-114.005334z m25.408 67.178667l-1.792 1.450666c-52.693333 41.813333-163.456 91.882667-290.389334 109.802667l-4.416 0.597333v342.976l0.149334 5.866667c0.746667 15.104 4.864 29.866667 12.074666 43.221333 80.96 149.845333 188.714667 201.962667 278.826667 204.544l5.568 0.085334c92.522667 0 201.92-51.989333 284.373333-204.629334a101.546667 101.546667 0 0 0 12.224-48.277333V276.245333l-16.277333-2.325333c-120.938667-18.048-227.904-67.690667-278.954667-108.416l-1.386666-1.109333z m161.194666 250.517333a32.853333 32.853333 0 0 1 0 46.186667l-187.306666 190.656a32.256 32.256 0 0 1-45.845334 0l-89.173333-91.157334a32.853333 32.853333 0 0 1 0-46.208 32.256 32.256 0 0 1 45.845333 0l51.029334 52.416a21.333333 21.333333 0 0 0 30.165333 0.426667l0.341333-0.362667 149.077334-151.957333a32.256 32.256 0 0 1 45.866666 0z" /></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

20
src/assets/icons/approval.svg

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 96 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_banjieshenpi</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-1312.000000, -182.000000)">
<g id="编组-3" transform="translate(160.000000, 169.000000)">
<g id="编组-12" transform="translate(1152.000000, 13.000000)">
<circle id="椭圆形备份-3" fill="#E8EBFF" cx="48" cy="48" r="48"></circle>
<g id="tuandui" transform="translate(27.000000, 21.000000)" fill-rule="nonzero">
<path d="M34.6178438,49.92075 L7.81284375,49.92075 C3.50484375,49.92075 0.01284375,46.42875 0.01284375,42.12075 L0.01284375,7.83075 C0.01284375,3.52275 3.50484375,0.03075 7.81284375,0.03075 L34.6178438,0.03075 C38.9258437,0.03075 42.4178438,3.52275 42.4178438,7.83075 L42.4178438,42.12375 C42.4178438,46.42875 38.9258437,49.92075 34.6178438,49.92075 Z" id="路径" fill="#5161C9"></path>
<path d="M30.8228437,14.19075 L11.7728437,14.19075 C10.4468437,14.19075 9.37284375,13.11675 9.37284375,11.79075 C9.37284375,10.46475 10.4468437,9.39075 11.7728437,9.39075 L30.8228437,9.39075 C32.1488437,9.39075 33.2228437,10.46475 33.2228437,11.79075 C33.2228437,13.11675 32.1488437,14.19075 30.8228437,14.19075 Z M25.7228437,23.70675 L11.7728437,23.70675 C10.4468437,23.70675 9.37284375,22.63275 9.37284375,21.30675 C9.37284375,19.98075 10.4468437,18.90675 11.7728437,18.90675 L25.7228437,18.90675 C27.0488437,18.90675 28.1228437,19.98075 28.1228437,21.30675 C28.1228437,22.63275 27.0488437,23.70675 25.7228437,23.70675 Z M20.8958437,33.21975 L11.7728437,33.21975 C10.4468437,33.21975 9.37284375,32.14575 9.37284375,30.81975 C9.37284375,29.49375 10.4468438,28.41975 11.7728437,28.41975 L20.8958437,28.41975 C22.2218437,28.41975 23.2958437,29.49375 23.2958437,30.81975 C23.2958437,32.14575 22.2218437,33.21975 20.8958437,33.21975 L20.8958437,33.21975 Z" id="形状" fill="#FFFFFF"></path>
<path d="M46.2998438,38.92275 L42.6998437,38.92275 C41.6558437,38.43975 40.5938437,37.42875 41.1098437,35.34375 C43.1768437,33.78975 44.4458437,31.23075 44.1848437,28.38975 C43.8488437,24.76275 40.9568438,21.81075 37.3358437,21.40875 C32.6498437,20.88975 28.6808438,24.54675 28.6808438,29.12775 C28.6808438,31.71075 29.9438437,33.99975 31.8848438,35.41275 C31.9838438,36.63975 31.6628437,38.11575 29.8868438,38.92575 L26.8388438,38.92575 C25.1198438,38.92575 23.7278438,40.32075 23.7278438,42.03675 L23.7278438,46.85175 C23.7278438,48.57075 25.1228438,49.96275 26.8388438,49.96275 L46.2998438,49.96275 C48.0188438,49.96275 49.4138437,48.56775 49.4138437,46.84875 L49.4138437,42.03375 C49.4138437,40.31475 48.0188438,38.92275 46.2998438,38.92275 Z" id="路径" fill="#6B7ADA"></path>
<path d="M42.4178437,42.12075 L42.4178437,38.77575 C41.4758437,38.24475 40.6388437,37.23975 41.1098437,35.34075 C41.5928437,34.97775 42.0308437,34.56075 42.4178437,34.09575 L42.4178437,24.15375 C40.9928437,22.44375 38.8478437,21.35775 36.4508437,21.35775 C32.1608437,21.35775 28.6808437,24.83475 28.6808437,29.12775 C28.6808437,31.71075 29.9438437,33.99975 31.8848437,35.41275 C31.9838437,36.63975 31.6628437,38.11575 29.8868437,38.92575 L25.8548437,38.92575 C24.6788437,38.92575 23.7248437,39.87975 23.7248437,41.05575 L23.7248437,47.83575 C23.7248437,48.87675 24.4688437,49.74075 25.4558437,49.92675 L34.6178437,49.92675 C38.9258437,49.92075 42.4178437,46.42875 42.4178437,42.12075 L42.4178437,42.12075 Z" id="路径" fill="#3C4CB0"></path>
<path d="M42.8798437,45.75375 L30.2588437,45.75375 C28.9328437,45.75375 27.8588437,45.0825 27.8588437,44.25375 C27.8588437,43.425 28.9328437,42.75375 30.2588437,42.75375 L42.8798437,42.75375 C44.2058437,42.75375 45.2798437,43.425 45.2798437,44.25375 C45.2798437,45.0825 44.2058437,45.75375 42.8798437,45.75375 Z" id="路径" fill="#FFFFFF"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

12
src/assets/icons/collapse.svg

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 58 58" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>btn_zhankai_pro</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.1首页_展开" transform="translate(-223.000000, -1627.000000)">
<g id="编组-2" transform="translate(223.000000, 1627.000000)">
<circle id="椭圆形" stroke="#586EFF" fill="#283AAC" cx="29" cy="29" r="28"></circle>
<path d="M39.0416667,17 C39.5709396,17 40,17.4477153 40,18 L40,19 C40,19.5069748 39.6363057,19.9336839 39.1537917,19.993 L39.0416667,20 L17.9583333,20 C17.4290604,20 17,19.5522847 17,19 L17,18 C17,17.4477153 17.4290604,17 17.9583333,17 L39.0416667,17 Z M40,38 L40,39 C40,39.5522847 39.5709396,40 39.0416667,40 L17.9583333,40 C17.4290604,40 17,39.5522847 17,39 L17,38 C17,37.4477153 17.4290604,37 17.9583333,37 L39.0416667,37 C39.5709396,37 40,37.4477153 40,38 Z M40,28 L40,29 C40,29.5522847 39.5867244,30 39.0769231,30 L28.9230769,30 C28.4132756,30 28,29.5522847 28,29 L28,28 C28,27.4477153 28.4132756,27 28.9230769,27 L39.0769231,27 C39.5867244,27 40,27.4477153 40,28 Z M22.5986056,28.8027124 L18.5114324,31.8158078 C18.2203052,32.0308342 17.8371213,32.0598474 17.518701,31.8909737 C17.2002808,31.7221 17.0000676,31.383683 17,31.0142219 L17,24.9860592 C17,24.6167655 17.1999056,24.2784136 17.5180577,24.1093677 C17.8362098,23.9403218 18.219226,23.9689277 18.5104771,24.1834873 L22.599561,27.1975687 C22.8508429,27.3826187 23,27.6815639 23,28.0001406 C23,28.3187172 22.8508429,28.6176624 22.599561,28.8027124 L22.5986056,28.8027124 Z" id="P" fill="#FFFFFF" fill-rule="nonzero" transform="translate(28.500000, 28.500000) scale(-1, 1) translate(-28.500000, -28.500000) "></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

19
src/assets/icons/contact_writer.svg

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="96px" height="96px" viewBox="0 0 96 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_lianxiqunzhong</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-431.000000, -182.000000)">
<g id="编组-3" transform="translate(160.000000, 169.000000)">
<g id="编组-9" transform="translate(271.000000, 13.000000)">
<circle id="椭圆形备份" fill="#E8EBFF" cx="48" cy="48" r="48"></circle>
<g id="hezuo" transform="translate(22.000000, 25.000000)" fill-rule="nonzero">
<path d="M24.7063125,42.343875 C24.9493125,41.770875 25.2283125,41.227875 25.4113125,40.654875 C26.2873125,37.915875 24.6133125,34.969875 21.8323125,34.282875 C21.5953125,34.225875 21.3403125,34.048875 21.1963125,33.850875 C20.5993125,33.028875 19.8523125,32.428875 18.9043125,32.053875 C18.7243125,31.981875 18.5323125,31.786875 18.4663125,31.606875 C17.9143125,30.136875 16.9213125,29.137875 15.4453125,28.594875 C15.2653125,28.528875 15.0823125,28.327875 15.0103125,28.147875 C13.7773125,25.000875 9.9343125,23.821875 7.2553125,25.846875 C6.5203125,26.404875 5.8813125,27.148875 5.3623125,27.916875 C4.7473125,28.828875 4.0153125,29.212875 2.9383125,29.038875 C2.5543125,28.978875 2.1493125,29.011875 1.7563125,29.032875 C0.9253125,29.074875 0.0253125,28.282875 0.0342455492,27.271875 C0.0823125,21.550875 0.0583125,15.829875 0.0583125,10.108875 C0.0583125,8.962875 0.5053125,8.515875 1.6543125,8.515875 L10.4863125,8.515875 C11.2033125,8.515875 11.4163125,8.848875 11.0743125,9.499875 C10.5463125,10.501875 10.3483125,11.560875 10.5463125,12.667875 C10.8163125,14.176875 11.7343125,15.229875 13.1053125,15.814875 C15.4933125,16.831875 17.9083125,16.804875 20.2273125,15.601875 C22.5163125,14.416875 24.7573125,13.138875 27.0193125,11.902875 C27.5863125,11.593875 27.7123125,11.620875 28.1263125,12.127875 C32.7043125,17.710875 37.2913125,23.287875 41.8573125,28.879875 C42.5563125,29.734875 43.1983125,30.643875 43.8193125,31.558875 C44.6023125,32.716875 44.3953125,34.204875 43.3753125,35.161875 C42.4003125,36.073875 40.8733125,36.136875 39.7783125,35.305875 C39.6343125,35.197875 39.4963125,35.083875 39.2863125,34.918875 C39.3373125,36.331875 38.8873125,37.438875 37.5883125,37.987875 C36.3253125,38.521875 35.1853125,38.182875 34.1653125,37.219875 C34.2253125,38.605875 33.8143125,39.700875 32.5273125,40.264875 C31.2583125,40.819875 30.1363125,40.456875 29.0833125,39.499875 C29.1613125,40.948875 28.6753125,42.013875 27.3763125,42.583875 C26.4493125,42.994875 25.5493125,42.871875 24.7063125,42.343875 L24.7063125,42.343875 Z" id="路径" fill="#5161C9"></path>
<path d="M54.2593125,17.242875 L54.2593125,26.119875 C54.2593125,27.127875 53.7643125,27.616875 52.7473125,27.619875 C51.9733125,27.622875 51.1963125,27.661875 50.4253125,27.610875 C49.4383125,27.544875 48.6163125,27.835875 47.8963125,28.507875 C47.4433125,28.930875 47.3443125,28.897875 46.9543125,28.417875 C41.3383125,21.550875 35.7253125,14.683875 30.1093125,7.813875 C29.4523125,7.009875 28.7953125,6.877875 27.8683125,7.390875 C25.3573125,8.773875 22.8493125,10.162875 20.3443125,11.548875 C18.6853125,12.466875 16.9663125,12.640875 15.1753125,11.980875 C14.4883125,11.728875 14.0413125,11.260875 13.9633125,10.528875 C13.8913125,9.820875 14.0803125,9.217875 14.7103125,8.746875 C17.6443125,6.544875 20.5513125,4.303875 23.4793125,2.092875 C26.3953125,-0.109125 29.5723125,-0.514125 32.9713125,0.778875 C37.6183125,2.548875 42.2653125,4.315875 46.9003125,6.118875 C48.3673125,6.688875 49.8613125,6.982875 51.4273125,6.943875 C51.9283125,6.931875 52.4293125,6.940875 52.9303125,6.943875 C53.7703125,6.946875 54.2563125,7.426875 54.2563125,8.272875 C54.2623125,11.266875 54.2593125,14.254875 54.2593125,17.242875 L54.2593125,17.242875 Z M17.0653125,40.981875 C16.1263125,41.449875 15.2413125,41.464875 14.3593125,40.840875 C13.4953125,40.225875 13.1833125,39.385875 13.2223125,38.299875 C12.1903125,38.752875 11.2363125,38.788875 10.3303125,38.146875 C9.4273125,37.507875 9.0883125,36.625875 9.2383125,35.488875 C9.0253125,35.557875 8.8993125,35.596875 8.7763125,35.638875 C7.2163125,36.166875 5.5093125,35.143875 5.2483125,33.517875 C5.1523125,32.917875 5.2933125,32.350875 5.6533125,31.882875 C6.3823125,30.931875 7.1203125,29.986875 7.9153125,29.092875 C8.5813125,28.345875 9.4693125,28.183875 10.4173125,28.462875 C11.8753125,28.891875 12.4543125,30.151875 11.8633125,31.546875 C11.8183125,31.651875 11.8483125,31.789875 11.8423125,31.912875 C11.9683125,31.903875 12.1063125,31.921875 12.2233125,31.882875 C13.5073125,31.432875 14.7133125,31.891875 15.2953125,33.067875 C15.5683125,33.622875 15.5893125,34.198875 15.4273125,34.792875 C15.3013125,35.254875 15.4153125,35.398875 15.8533125,35.251875 C17.2033125,34.798875 18.7933125,35.929875 18.8713125,37.390875 C18.8773125,37.480875 18.9073125,37.567875 18.9343125,37.693875 C19.1863125,37.636875 19.4293125,37.573875 19.6753125,37.531875 C20.6383125,37.363875 21.4123125,37.714875 21.9883125,38.467875 C22.5943125,39.259875 22.6603125,40.132875 22.2223125,41.035875 C21.7663125,41.980875 21.1813125,42.787875 20.0623125,43.003875 C18.8713125,43.231875 17.6083125,42.496875 17.2123125,41.353875 C17.1733125,41.239875 17.1253125,41.128875 17.0653125,40.981875 L17.0653125,40.981875 Z" id="形状" fill="#5161C9"></path>
<path d="M43.8193125,31.558875 C43.1983125,30.640875 42.5563125,29.734875 41.8573125,28.879875 C37.2913125,23.287875 32.7043125,17.710875 28.1263125,12.127875 C27.7093125,11.620875 27.5863125,11.593875 27.0193125,11.902875 C24.7573125,13.138875 22.5163125,14.416875 20.2273125,15.601875 C19.6195222,15.9179362 18.9758912,16.1596755 18.3103125,16.321875 C16.3363125,18.007875 13.9693125,20.833875 11.1703125,24.931875 C12.8263125,25.249875 14.3233125,26.389875 15.0103125,28.144875 C15.0823125,28.327875 15.2683125,28.525875 15.4453125,28.591875 C16.9213125,29.134875 17.9143125,30.136875 18.4663125,31.603875 C18.5353125,31.786875 18.7243125,31.981875 18.9043125,32.050875 C19.8493125,32.425875 20.5993125,33.025875 21.1963125,33.847875 C21.3403125,34.045875 21.5953125,34.219875 21.8323125,34.279875 C24.6133125,34.966875 26.2873125,37.915875 25.4113125,40.651875 C25.2283125,41.224875 24.9493125,41.767875 24.7063125,42.340875 C25.5493125,42.868875 26.4463125,42.991875 27.3793125,42.583875 C28.6753125,42.013875 29.1643125,40.951875 29.0863125,39.499875 C30.1393125,40.456875 31.2613125,40.819875 32.5303125,40.264875 C33.8173125,39.700875 34.2283125,38.605875 34.1683125,37.219875 C35.1883125,38.182875 36.3253125,38.521875 37.5913125,37.987875 C38.8903125,37.438875 39.3403125,36.328875 39.2893125,34.918875 C39.4993125,35.083875 39.6373125,35.197875 39.7813125,35.305875 C40.8763125,36.133875 42.4033125,36.073875 43.3783125,35.161875 C44.3953125,34.204875 44.6023125,32.716875 43.8193125,31.558875 L43.8193125,31.558875 Z M15.1783125,11.983875 C16.9693125,12.643875 18.6883125,12.469875 20.3473125,11.551875 C22.2343125,10.504875 24.1243125,9.463875 26.0113125,8.419875 C22.7203125,6.880875 18.6343125,7.039875 18.6343125,7.039875 L16.9723125,7.039875 C16.2193125,7.609875 15.4693125,8.182875 14.7133125,8.749875 C14.0863125,9.220875 13.8943125,9.823875 13.9663125,10.531875 C14.0443125,11.260875 14.4913125,11.728875 15.1783125,11.983875 L15.1783125,11.983875 Z" id="形状" fill="#5161C9"></path>
<path d="M21.8083125,41.770875 C21.9613125,41.542875 22.0963125,41.296875 22.2223125,41.035875 C22.6573125,40.132875 22.5943125,39.259875 21.9883125,38.467875 C21.4123125,37.714875 20.6383125,37.363875 19.6753125,37.531875 C19.4293125,37.573875 19.1893125,37.636875 18.9343125,37.693875 C18.9073125,37.567875 18.8743125,37.480875 18.8713125,37.390875 C18.7963125,35.929875 17.2063125,34.798875 15.8533125,35.251875 C15.4153125,35.398875 15.3013125,35.254875 15.4273125,34.792875 C15.5893125,34.198875 15.5683125,33.622875 15.2953125,33.067875 C14.7133125,31.888875 13.5073125,31.429875 12.2233125,31.882875 C12.1063125,31.924875 11.9713125,31.903875 11.8423125,31.912875 C11.8483125,31.789875 11.8183125,31.654875 11.8633125,31.549875 C12.4543125,30.157875 11.8753125,28.894875 10.4173125,28.465875 C9.4693125,28.186875 8.5813125,28.348875 7.9153125,29.095875 C7.4833125,29.581875 7.0693125,30.082875 6.6613125,30.589875 C9.0073125,31.693875 13.7443125,34.531875 21.8083125,41.770875 Z" id="路径" fill="#3C4CB0"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

1
src/assets/icons/doc.svg

@ -0,0 +1 @@
<?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="1709019288260" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3537" xmlns:xlink="http://www.w3.org/1999/xlink" ><path d="M332.799002 686.081014m-332.799002 0a332.799002 332.799002 0 1 0 665.598003 0 332.799002 332.799002 0 1 0-665.598003 0Z" fill="#CCE4F2" p-id="3538"></path><path d="M883.19735 1024h-639.99808A141.055577 141.055577 0 0 1 102.399693 883.200422v-742.397772A141.055577 141.055577 0 0 1 243.19927 0.003072h516.350451a89.087733 89.087733 0 0 1 63.231811 25.599923l189.695431 189.695431A38.399885 38.399885 0 0 1 1023.996928 243.202342v639.99808a141.055577 141.055577 0 0 1-140.799578 140.799578zM243.19927 76.802842A63.999808 63.999808 0 0 0 179.199462 140.80265v742.397772A63.999808 63.999808 0 0 0 243.19927 947.20023h639.99808a63.999808 63.999808 0 0 0 63.999808-63.999808V259.074295l-179.199462-179.199463a12.799962 12.799962 0 0 0-8.447975-3.07199z" fill="#434260" p-id="3539"></path><path d="M265.983202 399.105875h58.623824c69.375792 0 109.055673 38.399885 109.055673 112.127663s-39.679881 113.919658-107.263678 113.919659h-60.415819z m56.319831 196.863409c48.383855 0 74.495777-28.671914 74.495777-84.735746s-25.599923-83.19975-74.495777-83.19975h-20.479938v167.935496zM468.478595 512.001536c0-72.703782 40.191879-116.479651 98.303705-116.479651S665.598003 438.529756 665.598003 512.001536s-40.447879 118.015646-98.559704 118.015646-98.559704-46.079862-98.559704-118.015646z m160.255519 0c0-53.24784-25.599923-85.247744-61.951814-85.247744S504.830486 458.241697 504.830486 512.001536s24.319927 86.78374 61.695814 86.78374S628.734114 563.201382 628.734114 512.001536zM699.9019 512.001536c0-73.727779 44.799866-118.015646 102.399693-118.015646a87.039739 87.039739 0 0 1 64.255807 28.671914l-19.455941 22.783932a60.15982 60.15982 0 0 0-44.287867-20.22394c-38.911883 0-66.047802 32.511902-66.047802 85.759743s25.599923 86.52774 65.023805 86.52774a65.791803 65.791803 0 0 0 51.199846-24.063927l18.943943 22.527932a89.087733 89.087733 0 0 1-70.399789 32.511903c-59.135823 0.767998-101.631695-41.727875-101.631695-116.479651z" fill="#434260" p-id="3540"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

15
src/assets/icons/expand.svg

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 58 58" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>btn_zhankai</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-41.000000, -1627.000000)">
<rect fill="#F0F0F0" x="0" y="0" width="1920" height="1704"></rect>
<rect id="矩形" fill="#071254" x="0" y="100" width="140" height="1604"></rect>
<g id="编组-2" transform="translate(41.000000, 1627.000000)">
<circle id="椭圆形" stroke="#586EFF" fill="#283AAC" cx="29" cy="29" r="28"></circle>
<path d="M39.0416667,17 C39.5709396,17 40,17.4477153 40,18 L40,19 C40,19.5069748 39.6363057,19.9336839 39.1537917,19.993 L39.0416667,20 L17.9583333,20 C17.4290604,20 17,19.5522847 17,19 L17,18 C17,17.4477153 17.4290604,17 17.9583333,17 L39.0416667,17 Z M40,38 L40,39 C40,39.5522847 39.5709396,40 39.0416667,40 L17.9583333,40 C17.4290604,40 17,39.5522847 17,39 L17,38 C17,37.4477153 17.4290604,37 17.9583333,37 L39.0416667,37 C39.5709396,37 40,37.4477153 40,38 Z M40,28 L40,29 C40,29.5522847 39.5867244,30 39.0769231,30 L28.9230769,30 C28.4132756,30 28,29.5522847 28,29 L28,28 C28,27.4477153 28.4132756,27 28.9230769,27 L39.0769231,27 C39.5867244,27 40,27.4477153 40,28 Z M22.5986056,28.8027124 L18.5114324,31.8158078 C18.2203052,32.0308342 17.8371213,32.0598474 17.518701,31.8909737 C17.2002808,31.7221 17.0000676,31.383683 17,31.0142219 L17,24.9860592 C17,24.6167655 17.1999056,24.2784136 17.5180577,24.1093677 C17.8362098,23.9403218 18.219226,23.9689277 18.5104771,24.1834873 L22.599561,27.1975687 C22.8508429,27.3826187 23,27.6815639 23,28.0001406 C23,28.3187172 22.8508429,28.6176624 22.599561,28.8027124 L22.5986056,28.8027124 Z" id="形状" fill="#FFFFFF" fill-rule="nonzero"></path>
</g>
<g id="jichu_zhankaicaidan" transform="translate(59.000000, 1644.000000)"></g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

20
src/assets/icons/extension.svg

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="96px" height="96px" viewBox="0 0 96 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_shenqingyanqi</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-1091.000000, -182.000000)">
<g id="编组-3" transform="translate(160.000000, 169.000000)">
<g id="编组-11备份" transform="translate(931.000000, 13.000000)">
<circle id="椭圆形备份-3" fill="#E8EBFF" cx="48" cy="48" r="48"></circle>
<g id="daiban" transform="translate(24.000000, 23.000000)" fill-rule="nonzero">
<path d="M38.0194853,48.9659926 L7.83125,48.9659926 C3.51948529,48.9659926 0.0224264706,45.4689338 0.0224264706,41.1571691 L0.0224264706,7.81599265 C0.0224264706,3.50422794 3.51948529,0.00716911765 7.83125,0.00716911765 L38.0194853,0.00716911765 C42.33125,0.00716911765 45.8283088,3.50422794 45.8283088,7.81599265 L45.8283088,41.1571691 C45.8283088,45.4689338 42.33125,48.9659926 38.0194853,48.9659926 Z" id="路径" fill="#5161C9"></path>
<path d="M32.5371324,17.0748162 L8.80772059,17.0748162 C7.50772059,17.0748162 6.45477941,16.021875 6.45477941,14.721875 C6.45477941,13.421875 7.50772059,12.3689338 8.80772059,12.3689338 L32.5371324,12.3689338 C33.8371324,12.3689338 34.8900735,13.421875 34.8900735,14.721875 C34.8900735,16.021875 33.8371324,17.0748162 32.5371324,17.0748162 Z M23.5253676,30.4424632 L8.80772059,30.4424632 C7.50772059,30.4424632 6.45477941,29.3895221 6.45477941,28.0895221 C6.45477941,26.7895221 7.50772059,25.7365809 8.80772059,25.7365809 L23.5253676,25.7365809 C24.8253676,25.7365809 25.8783088,26.7895221 25.8783088,28.0895221 C25.8783088,29.3895221 24.8253676,30.4424632 23.5253676,30.4424632 Z" id="形状" fill="#FFFFFF"></path>
<path d="M25.3341912,36.9189338 C25.3341912,43.9491938 31.0333429,49.6483456 38.0636029,49.6483456 C45.0938629,49.6483456 50.7930147,43.9491938 50.7930147,36.9189338 C50.7930147,29.8886738 45.0938629,24.1895221 38.0636029,24.1895221 C31.0333429,24.1895221 25.3341912,29.8886738 25.3341912,36.9189338 Z" id="路径" fill="#6B7ADA"></path>
<path d="M38.0636029,24.1924443 C31.0341912,24.1924443 25.3341912,29.8924632 25.3341912,36.921875 C25.3341912,42.5130515 28.9400735,47.2571691 33.9518382,48.9689338 L38.0165441,48.9689338 C42.3283088,48.9689338 45.8253676,45.471875 45.8253676,41.1601103 L45.8253676,26.8424632 C43.6050239,25.1201381 40.8736398,24.1875965 38.0636029,24.1924443 L38.0636029,24.1924443 Z" id="路径" fill="#3C4CB0"></path>
<path d="M35.0341912,44.5218807 C34.4784062,44.5223555 33.9405306,44.325343 33.5165441,43.9659926 C33.0396354,43.5636802 32.7422195,42.9882843 32.6898109,42.3665524 C32.6374023,41.7448205 32.8343002,41.1277566 33.2371324,40.6512868 L36.68125,36.5777574 L36.68125,30.9630515 C36.68125,29.6630515 37.7341912,28.6101103 39.0341912,28.6101103 C40.3341912,28.6101103 41.3871324,29.6630515 41.3871324,30.9630515 L41.3871324,37.4395221 C41.3871324,37.9954044 41.1900735,38.5336397 40.83125,38.9571691 L36.83125,43.6865809 C36.3855418,44.2174711 35.7273708,44.5233968 35.0341912,44.5218807 L35.0341912,44.5218807 Z" id="路径" fill="#FFFFFF"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

19
src/assets/icons/interview_writer.svg

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="96px" height="96px" viewBox="0 0 96 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_qunzhongjiefang</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-651.000000, -182.000000)">
<g id="编组-3" transform="translate(160.000000, 169.000000)">
<g id="编组-10" transform="translate(491.000000, 13.000000)">
<circle id="椭圆形备份-2" fill="#E8EBFF" cx="48" cy="48" r="48"></circle>
<g id="zudui" transform="translate(22.000000, 24.000000)" fill-rule="nonzero">
<path d="M41.8457813,39.9122812 C41.2967813,32.6222813 36.9677813,26.3702812 30.8537813,23.0732813 C33.1757812,20.6282812 34.6037813,17.3252812 34.6037813,13.6862812 C34.6037813,6.15628125 28.4987813,0.05128125 20.9687812,0.05128125 C13.4387812,0.05128125 7.33378125,6.15628125 7.33378125,13.6862813 C7.33378125,17.3222813 8.75878125,20.6222813 11.0777812,23.0642813 C4.50478125,26.5952813 0.03178125,33.5312812 0.03178125,41.5142813 C0.03178125,42.7232812 0.13378125,43.9052813 0.33178125,45.0572813 C0.492377071,45.9836812 1.29656453,46.6599586 2.23678125,46.6592818 L39.6977813,46.6592818 C40.6337812,46.6592818 41.4437813,45.9872813 41.6027813,45.0662813 C41.8907813,43.4072813 41.9807813,41.6822813 41.8457813,39.9122813 L41.8457813,39.9122812 Z" id="路径" fill="#5161C9"></path>
<path d="M52.8917812,36.6632813 C52.4477812,30.7802813 48.9557812,25.7342812 44.0207812,23.0732813 C45.8957812,21.0992813 47.0477812,18.4352813 47.0477812,15.4982813 C47.0477812,9.42028125 42.1217812,4.49428125 36.0437812,4.49428125 C29.9657812,4.49428125 25.0427812,9.42328125 25.0427812,15.4982813 C25.0427812,18.4322813 26.1917812,21.0962813 28.0637812,23.0672813 C22.7597812,25.9172812 19.1477812,31.5122813 19.1477812,37.9562812 C19.1477812,38.9312812 19.2317812,39.8852812 19.3907812,40.8152812 C19.5197812,41.5622812 20.1707812,42.1082812 20.9297812,42.1082812 L51.1607812,42.1082812 C51.9167812,42.1082812 52.5707812,41.5682812 52.6967812,40.8212812 C52.9277812,39.4832812 52.9997812,38.0912813 52.8917812,36.6632812 L52.8917812,36.6632813 Z" id="路径" fill="#6B7ADA"></path>
<path d="M41.8457813,39.9122812 C41.2967813,32.6222813 36.9677813,26.3702812 30.8537813,23.0732812 C33.1757812,20.6282812 34.6037813,17.3252812 34.6037813,13.6862812 C34.6037813,10.5482812 33.5417812,7.66228125 31.7627813,5.35828125 C27.8117813,7.02928125 25.0427813,10.9382812 25.0427813,15.4982812 C25.0427813,18.4322812 26.1917813,21.0962812 28.0637813,23.0672812 C22.7597812,25.9172812 19.1477813,31.5122812 19.1477813,37.9562812 C19.1477813,38.9312812 19.2317813,39.8852812 19.3907812,40.8152812 C19.5197813,41.5622812 20.1707813,42.1082812 20.9297813,42.1082812 L41.8967813,42.1082812 C41.9177812,41.3852812 41.9027813,40.6532812 41.8457813,39.9122812 L41.8457813,39.9122812 Z" id="路径" fill="#2A3BA4"></path>
<path d="M20.9597812,41.5082812 C20.0387812,41.5082812 19.1687812,41.1062812 18.5717812,40.4072812 L15.1637812,36.4142813 C14.4857865,35.621123 14.2463016,34.5428786 14.5247812,33.5372812 L16.4537812,26.5532812 C16.8287812,25.1972812 18.0737812,24.2492812 19.4807812,24.2492812 L22.2047812,24.2492812 C23.5937812,24.2492812 24.7997812,25.1402813 25.2077812,26.4662813 L27.3587812,33.4652813 C27.6767812,34.4972813 27.4457812,35.6042812 26.7467812,36.4262813 L23.3507812,40.4042812 C22.7507812,41.1062813 21.8807812,41.5082812 20.9597812,41.5082812 Z M18.7217812,34.1132813 L20.9597812,36.7352812 L23.1737812,34.1432813 L21.4247812,28.4492813 L20.2877812,28.4492813 L18.7217812,34.1132813 Z" id="形状" fill="#F7F8F8"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.8 KiB

10
src/assets/icons/lock-fill.svg

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="登录页" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g transform="translate(-1194.000000, -493.000000)" fill="#C0C5E2" fill-rule="nonzero" id="mima">
<g transform="translate(1194.000000, 493.000000)">
<path d="M24.7519225,13.3671273 C24.1635627,13.3671273 23.6803339,12.9320399 23.5802727,12.3496015 C23.0978443,9.53707218 20.6507478,7.39056953 17.7142854,7.39056953 C14.777823,7.39056953 12.3307266,9.53734009 11.8482982,12.3496015 C11.7485039,12.931772 11.265275,13.3671273 10.6766484,13.3671273 C9.95487366,13.3671273 9.3739851,12.7230694 9.49085657,12.008015 C10.1392531,8.03864616 13.5800239,5 17.7142854,5 C21.848547,5 25.289051,8.03864616 25.9377143,12.008015 C26.0545858,12.7230694 25.4736972,13.3671273 24.7519225,13.3671273 L24.7519225,13.3671273 Z M26.7083189,14.4998549 L8.83472199,14.4998549 C7.82130225,14.4998549 7,15.3247527 7,16.3420107 L7,27.1578442 C7,28.1753701 7.82156908,29 8.83472199,29 L26.5885123,29 C27.6016652,29 28.4229674,28.175638 28.4235011,27.15838 L28.4285712,16.2276127 C28.4291045,15.2735817 27.6587668,14.4998549 26.7083189,14.4998549 Z M18.9048802,23.7224219 C18.9048802,24.3825545 18.372021,24.9178406 17.7142854,24.9178406 C17.0568167,24.9178406 16.5236907,24.3828224 16.5236907,23.7224219 L16.5236907,21.3318524 C16.5236907,20.6717198 17.0565499,20.1364337 17.7142854,20.1364337 C18.3717542,20.1364337 18.9048802,20.6717198 18.9048802,21.3318524 L18.9048802,23.7224219 Z" id="形状"></path>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1
src/assets/icons/logout.svg

@ -0,0 +1 @@
<?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="1709281824017" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2275" xmlns:xlink="http://www.w3.org/1999/xlink" ><path d="M835.669333 554.666667h-473.173333A42.453333 42.453333 0 0 1 320 512a42.666667 42.666667 0 0 1 42.474667-42.666667h473.173333l-161.813333-161.834666a42.666667 42.666667 0 0 1 60.330666-60.330667l234.666667 234.666667a42.666667 42.666667 0 0 1 0 60.330666l-234.666667 234.666667a42.666667 42.666667 0 0 1-60.330666-60.330667L835.669333 554.666667zM554.666667 42.666667a42.666667 42.666667 0 1 1 0 85.333333H149.525333C137.578667 128 128 137.578667 128 149.482667v725.034666C128 886.4 137.6 896 149.525333 896H554.666667a42.666667 42.666667 0 1 1 0 85.333333H149.525333A106.816 106.816 0 0 1 42.666667 874.517333V149.482667A106.773333 106.773333 0 0 1 149.525333 42.666667H554.666667z" fill="" p-id="2276"></path></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

1
src/assets/icons/mp3.svg

@ -0,0 +1 @@
<?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="1709019342612" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3819" xmlns:xlink="http://www.w3.org/1999/xlink" ><path d="M332.799002 686.081014m-332.799002 0a332.799002 332.799002 0 1 0 665.598003 0 332.799002 332.799002 0 1 0-665.598003 0Z" fill="#DFDFF2" p-id="3820"></path><path d="M883.19735 1024h-639.99808A141.055577 141.055577 0 0 1 102.399693 883.200422v-742.397772A141.055577 141.055577 0 0 1 243.19927 0.003072h516.350451a89.087733 89.087733 0 0 1 63.231811 25.599923l189.695431 189.695431A38.399885 38.399885 0 0 1 1023.996928 243.202342v639.99808a141.055577 141.055577 0 0 1-140.799578 140.799578zM243.19927 76.802842A63.999808 63.999808 0 0 0 179.199462 140.80265v742.397772A63.999808 63.999808 0 0 0 243.19927 947.20023h639.99808a63.999808 63.999808 0 0 0 63.999808-63.999808V259.074295l-179.199462-179.199463a12.799962 12.799962 0 0 0-8.447975-3.07199z" fill="#434260" p-id="3821"></path><path d="M274.943175 399.105875h40.959877L358.398925 513.281532c5.119985 15.103955 9.727971 30.463909 15.103954 45.823863h1.535996c5.119985-15.359954 9.471972-30.719908 14.847955-45.823863l40.959877-114.175657h41.215877v226.047322h-34.815896v-111.871665c0-20.223939 2.815992-49.407852 4.607986-69.88779l-18.175945 51.199846L383.998848 603.393262h-22.015934l-39.679881-107.775677-17.919946-51.199846c1.535995 20.479939 4.351987 49.663851 4.351987 69.88779v111.871664h-33.791899zM529.91841 399.105875h68.351795c51.199846 0 86.271741 17.151949 86.271741 68.095795s-35.839892 72.191783-84.991745 72.191784h-34.047898v85.759743H529.91841zM596.222211 512.001536c36.351891 0 53.503839-13.823959 53.50384-43.519869s-18.687944-39.679881-54.527837-39.679881h-29.695911V512.001536zM707.325878 598.017278l17.151949-22.783932a72.959781 72.959781 0 0 0 53.503839 25.599924A37.887886 37.887886 0 0 0 820.989537 563.201382c0-25.599923-15.871952-41.471876-66.8158-41.471875v-25.599923c44.543866 0 59.135823-16.895949 59.135823-39.679881a31.487906 31.487906 0 0 0-34.815895-32.767902 66.047802 66.047802 0 0 0-45.055865 21.503935l-18.431945-22.015934a95.231714 95.231714 0 0 1 64.767806-27.391917c40.447879 0 69.119793 20.991937 69.119792 58.367825a54.527836 54.527836 0 0 1-38.911883 53.24784v1.535995A57.087829 57.087829 0 0 1 856.57343 563.201382c0 40.959877-34.047898 64.767806-76.799769 64.767806a93.695719 93.695719 0 0 1-72.447783-29.95191z" fill="#434260" p-id="3822"></path></svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

1
src/assets/icons/mp4.svg

@ -0,0 +1 @@
<?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="1712131041791" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10124" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M332.799002 686.081014m-332.799002 0a332.799002 332.799002 0 1 0 665.598003 0 332.799002 332.799002 0 1 0-665.598003 0Z" fill="#D3EFDE" p-id="10125"></path><path d="M883.19735 1024h-639.99808A141.055577 141.055577 0 0 1 102.399693 883.200422v-742.397772A141.055577 141.055577 0 0 1 243.19927 0.003072h516.350451a89.087733 89.087733 0 0 1 63.231811 25.599923l189.695431 189.695431A38.399885 38.399885 0 0 1 1023.996928 243.202342v639.99808a141.055577 141.055577 0 0 1-140.799578 140.799578zM243.19927 76.802842A63.999808 63.999808 0 0 0 179.199462 140.80265v742.397772A63.999808 63.999808 0 0 0 243.19927 947.20023h639.99808a63.999808 63.999808 0 0 0 63.999808-63.999808V259.074295l-179.199462-179.199463a12.799962 12.799962 0 0 0-8.447975-3.07199z" fill="#434260" p-id="10126"></path><path d="M278.527164 399.105875h40.959878L360.958917 512.001536c5.119985 15.103955 9.727971 30.463909 15.103955 45.823863h1.535995c5.119985-15.359954 9.471972-30.719908 14.847956-45.823863l40.959877-114.175657h41.215876v226.047321h-33.535899V512.001536c0-20.223939 2.815992-49.407852 4.607986-69.88779l-18.175946 51.199846-39.423881 107.775677h-22.015934l-40.959877-105.727683-17.919947-51.199846c1.535995 20.479939 4.351987 49.663851 4.351987 69.88779v111.871664h-33.023901zM533.502399 399.105875h68.351795c51.199846 0 86.271741 17.151949 86.271742 68.095795s-35.839892 72.191783-84.991745 72.191784h-34.047898v85.759743h-35.583894zM599.806201 512.001536c36.351891 0 53.503839-13.823959 53.503839-43.519869s-18.687944-39.679881-54.527836-39.679881h-29.695911V512.001536zM868.349395 563.201382h-28.927913v60.927818H806.397581V563.201382h-97.791707v-23.551929l89.855731-141.567575h40.703878V537.601459h28.927913z m-61.951814-25.599923v-59.90382c0-12.287963 0-31.231906 1.791994-43.51987-5.631983 11.263966-11.775965 23.039931-18.175945 34.815896L744.189767 537.601459z" fill="#434260" p-id="10127"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

1
src/assets/icons/pdf.svg

@ -0,0 +1 @@
<?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="1709031631445" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10118" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M332.799002 686.081014m-332.799002 0a332.799002 332.799002 0 1 0 665.598003 0 332.799002 332.799002 0 1 0-665.598003 0Z" fill="#FFDCEE" p-id="10119"></path><path d="M883.19735 1024h-639.99808A141.055577 141.055577 0 0 1 102.399693 883.200422v-742.397772A141.055577 141.055577 0 0 1 243.19927 0.003072h516.350451a89.087733 89.087733 0 0 1 63.231811 25.599923l189.695431 189.695431A38.399885 38.399885 0 0 1 1023.996928 243.202342v639.99808a141.055577 141.055577 0 0 1-140.799578 140.799578zM243.19927 76.802842A63.999808 63.999808 0 0 0 179.199462 140.80265v742.397772A63.999808 63.999808 0 0 0 243.19927 947.20023h639.99808a63.999808 63.999808 0 0 0 63.999808-63.999808V259.074295l-179.199462-179.199463a12.799962 12.799962 0 0 0-8.447975-3.07199z" fill="#434260" p-id="10120"></path><path d="M299.775101 399.105875h68.351795c51.199846 0 86.271741 17.151949 86.271741 68.095795s-35.839892 72.191783-84.991745 72.191784H335.358994v85.759743h-35.583893zM366.078902 512.001536c36.351891 0 53.503839-13.823959 53.503839-43.519869s-18.687944-39.679881-54.527836-39.679881H335.358994V512.001536zM488.190535 399.105875h58.623825c69.375792 0 109.055673 38.399885 109.055672 112.127663s-39.679881 113.919658-107.263678 113.919659h-60.415819z m56.319831 196.863409c48.383855 0 74.495777-28.671914 74.495777-84.735746s-25.599923-83.19975-74.495777-83.19975h-20.479938v167.935496zM692.733922 399.105875h133.887598v29.695911h-98.303705v69.119792h83.45575v29.695911h-83.45575v97.279708h-35.583893z" fill="#434260" p-id="10121"></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

14
src/assets/icons/police.svg

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 20 23" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_xiebanjingcha</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="06.0联系群众(所队专班)" transform="translate(-516.000000, -494.000000)" fill="#162582" fill-rule="nonzero">
<g id="编组-14" transform="translate(496.000000, 482.000000)">
<g id="policeman-full" transform="translate(20.000000, 12.000000)">
<path d="M10.9750307,15.4501653 L10.6973335,15.8658479 C10.6402725,15.9508739 10.5451707,16 10.4443629,16 L9.55611238,16 C9.45340248,16 9.35830071,15.9489844 9.30314169,15.8658479 L9.02544454,15.4520548 C8.99120791,15.4010392 8.99120791,15.3330184 9.02734658,15.2820028 L9.87945838,14.0651866 C9.94032351,13.9782711 10.0696619,13.9782711 10.130527,14.0651866 L10.9750307,15.2820028 C11.0073653,15.331129 11.0092673,15.3991497 10.9750307,15.4501653 L10.9750307,15.4501653 Z" id="路径"></path>
<path d="M20,21.951064 C19.3629713,22.1217688 15.0230726,22.921386 10.667417,23 L9.33258301,23 C4.97692741,22.921386 0.6370287,22.1217688 0,21.951064 C0.0202588633,21.7062374 0.0427687113,21.4546724 0.0675295442,21.1963691 C0.231851435,19.5095362 0.497467642,17.5868612 0.936409679,15.7832303 C1.06021384,15.1408412 1.03995498,14.9656442 1.5261677,14.5815584 C1.90433315,14.2828251 4.32864378,14.2176877 5.52166573,14.204211 C5.6882386,14.2019649 5.85481148,14.1974727 6.02138436,14.1907343 C6.32976927,14.1772576 6.63815419,14.1570426 6.94653911,14.1278431 C6.91277434,14.3457163 6.88126055,14.5972812 6.86100169,14.8713074 C6.85199775,15.019551 6.84524479,15.174533 6.84524479,15.3317611 C6.84524479,15.5451421 6.85649972,15.7652614 6.88126055,15.9853807 C6.91277434,16.243684 6.96454699,16.5042335 7.04558244,16.7513062 C7.4214969,17.9260247 8.02250985,19.0895126 8.83736635,19.7835623 L9.26505346,16.9691794 C9.29206528,16.7939824 9.44288126,16.6637077 9.62070906,16.6637077 L10.372538,16.6637077 C10.5503658,16.6637077 10.7011818,16.7939824 10.7281936,16.9691794 L11.1558807,19.7835623 C11.9707372,19.0895126 12.5717501,17.9237786 12.9476646,16.7513062 C13.0287001,16.5042335 13.0804727,16.2459302 13.1119865,15.9853807 C13.1389983,15.7652614 13.1480023,15.5451421 13.1480023,15.3317611 C13.1480023,15.174533 13.1412493,15.019551 13.1322454,14.8713074 C13.1142375,14.5972812 13.0827237,14.3457163 13.0467079,14.1278431 C13.3550929,14.1570426 13.6634778,14.1795037 13.9718627,14.1907343 C14.1384356,14.1974727 14.3050084,14.2019649 14.4715813,14.204211 C15.6646033,14.2176877 18.0911649,14.2850712 18.4670793,14.5815584 C18.9532921,14.9656442 18.9307822,15.1408412 19.0568374,15.7832303 C19.4957794,17.5868612 19.7613956,19.5095362 19.9257175,21.1963691 C19.9572313,21.4546724 19.9797411,21.7062374 20,21.951064 L20,21.951064 Z M14.818233,4.87609259 C15.0410805,4.79074019 16.4164322,4.21573458 16.438942,3.00957046 C16.4659539,1.69559279 13.179516,-0.0990536391 10.07991,0.00426768215 C10.0528981,0.00426768215 10.0258863,0.00651379783 10.0011255,0.00651379783 C9.97411367,0.00426768215 9.94710186,0.00426768215 9.92234102,0.00426768215 C6.82273495,-0.0990536391 3.53629713,1.69559279 3.56330895,3.01181658 C3.58806978,4.21573458 4.96117051,4.79298631 5.18401801,4.8783387 C5.20202589,4.88507705 5.21102983,4.90304598 5.20652786,4.91876879 C5.13449634,5.21076383 5.17501407,6.10471787 5.17501407,6.10471787 C5.17501407,6.10471787 5.24704558,6.25745373 5.38435566,6.44163522 C5.38885763,6.44837356 5.39110861,6.45735803 5.39110861,6.46634249 C5.39110861,8.40024809 5.89983118,9.76588642 6.5773776,10.7249778 C6.98480585,11.3022295 7.45526168,11.7312376 7.91221159,12.0524322 C8.92065279,12.7554664 9.87507034,12.9239251 9.99662352,12.9374018 L10.0056275,12.9374018 C10.1271806,12.9239251 11.0815982,12.7554664 12.0900394,12.0524322 C12.5492403,11.7334838 13.0174451,11.3022295 13.4248734,10.7249778 C14.1046708,9.76588642 14.6111424,8.40024809 14.6111424,6.46634249 C14.6111424,6.45735803 14.6133934,6.44837356 14.6178953,6.44163522 C14.7552054,6.25745373 14.8272369,6.10471787 14.8272369,6.10471787 C14.8272369,6.10471787 14.8677546,5.21076383 14.7957231,4.91876879 C14.7912212,4.90079986 14.8002251,4.88283094 14.818233,4.87609259 Z M8.33989871,3.12861459 C8.48621272,3.11738401 8.72931908,3.10615343 9.00844119,3.12187624 C9.07597074,3.12636848 9.12774339,3.0724617 9.12774339,3.00507823 L9.12774339,3.00283211 C9.12774339,2.52665559 9.50365785,2.12909311 10.0011255,2.05272518 C10.4985931,2.12909311 10.8745076,2.52665559 10.8745076,3.00283211 L10.8745076,3.00507823 C10.8745076,3.0724617 10.9262802,3.12412236 10.9938098,3.12187624 C11.2729319,3.10615343 11.5160383,3.11738401 11.6623523,3.12861459 C11.700619,3.13086071 11.709623,3.18252137 11.6736072,3.19824418 C10.9848059,3.49248533 10.665166,3.70586632 10.6449071,3.71934301 C10.6449071,3.71934301 10.6426562,3.71934301 10.6426562,3.72158913 C10.4445695,3.88555557 10.2082161,3.9462007 10.0011255,3.96192351 C9.79403489,3.9462007 9.55768149,3.88780169 9.35959482,3.72158913 C9.35959482,3.72158913 9.35734384,3.72158913 9.35734384,3.71934301 C9.33708497,3.70586632 9.01744513,3.49248533 8.32864378,3.19824418 C8.29262802,3.18252137 8.30163196,3.13086071 8.33989871,3.12861459 L8.33989871,3.12861459 Z M13.9628588,5.03107457 L6.03939223,5.03107457 L6.03939223,4.31231755 L13.9628588,4.31231755 L13.9628588,5.03107457 Z" id="形状"></path>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.4 KiB

1
src/assets/icons/return.svg

@ -0,0 +1 @@
<?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="1708250857142" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11005" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M594.7 400h-150v53h163.8c45.7 0 83.2 37.4 83.2 83.2v27.7c0 45.7-37.4 83.2-83.2 83.2H444.7v53h150c82.5 0 150-67.5 150-150 0-82.6-67.5-150.1-150-150.1zM512 80C273.4 80 80 273.4 80 512s193.4 432 432 432 432-193.4 432-432S750.6 80 512 80z m0 811c-209.3 0-379-169.7-379-379s169.7-379 379-379 379 169.7 379 379-169.7 379-379 379z" p-id="11006"></path><path d="M331.9 425.1l132.3-99.5v199z" p-id="11007"></path></svg>

After

Width:  |  Height:  |  Size: 719 B

1
src/assets/icons/rotate-left.svg

@ -0,0 +1 @@
<?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="1710476192729" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1635" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M541.226667 66.517333L393.045333 217.685333a21.333333 21.333333 0 0 0 0 29.866667l147.84 150.826667a21.333333 21.333333 0 0 0 28.16 2.090666l2.346667-2.090666 27.050667-27.605334a21.333333 21.333333 0 0 0 0-29.866666l-69.888-71.338667a304.64 304.64 0 1 1-318.421334 352.682667l-1.024-6.826667a176.554667 176.554667 0 0 1-0.64-5.632 21.333333 21.333333 0 0 0-22.314666-19.114667l-42.666667 2.261334a21.333333 21.333333 0 0 0-20.224 22.4l0.085333 1.024 1.194667 10.496A389.973333 389.973333 0 1 0 539.178667 184.746667l59.306666-60.458667a21.333333 21.333333 0 0 0 0-29.866667l-27.093333-27.605333a21.333333 21.333333 0 0 0-30.165333-0.298667z" p-id="1636"></path></svg>

After

Width:  |  Height:  |  Size: 976 B

1
src/assets/icons/rotate-right.svg

@ -0,0 +1 @@
<?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="1710476185031" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1494" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M482.773333 66.517333l148.181334 151.168a21.333333 21.333333 0 0 1 0 29.866667l-147.84 150.826667a21.333333 21.333333 0 0 1-28.16 2.090666l-2.346667-2.090666-27.050667-27.605334a21.333333 21.333333 0 0 1 0-29.866666l69.888-71.338667a304.64 304.64 0 1 0 318.421334 352.682667l1.024-6.826667c0.170667-1.408 0.426667-3.285333 0.64-5.632a21.333333 21.333333 0 0 1 22.314666-19.114667l42.666667 2.261334a21.333333 21.333333 0 0 1 20.224 22.4l-0.085333 1.024-1.194667 10.496A389.973333 389.973333 0 1 1 484.821333 184.746667l-59.306666-60.458667a21.333333 21.333333 0 0 1 0-29.866667l27.093333-27.605333a21.333333 21.333333 0 0 1 30.165333-0.298667z" p-id="1495"></path></svg>

After

Width:  |  Height:  |  Size: 978 B

19
src/assets/icons/un_sign.svg

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="96px" height="96px" viewBox="0 0 96 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_qianshou</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-212.000000, -182.000000)">
<g id="编组-3" transform="translate(160.000000, 169.000000)">
<g id="编组-8" transform="translate(52.000000, 13.000000)">
<circle id="椭圆形" fill="#E8EBFF" cx="48" cy="48" r="48"></circle>
<g id="bianji" transform="translate(26.000000, 21.000000)" fill-rule="nonzero">
<path d="M39.3962813,51.2630625 L7.83328125,51.2630625 C3.52528125,51.2630625 0.03328125,47.7710625 0.03328125,43.4630625 L0.03328125,11.8580625 C0.03328125,7.5500625 3.52528125,4.0580625 7.83328125,4.0580625 L39.3962813,4.0580625 C43.7042812,4.0580625 47.1962812,7.5500625 47.1962812,11.8580625 L47.1962812,43.4600625 C47.1962812,47.7710625 43.7042812,51.2630625 39.3962813,51.2630625 Z" id="路径" fill="#6B7ADA"></path>
<path d="M28.7012813,30.4460625 L21.4862813,33.0260625 C19.6172813,33.6950625 18.4202813,32.4500625 19.1102812,30.5600625 L21.6602813,23.5490625 C21.8702812,22.9700625 22.2422812,22.3940625 22.7222812,21.9020625 L42.4502813,1.1810625 C43.7342812,-0.1389375 45.1562812,-0.2439375 45.9992813,0.5750625 L50.6102812,5.0600625 C51.4532813,5.8790625 51.3932813,7.3130625 50.1092813,8.6330625 L30.4352812,29.3000625 C29.9192812,29.8220625 29.3102812,30.2270625 28.7012812,30.4460625 L28.7012813,30.4460625 Z" id="路径" fill="#5161C9"></path>
<path d="M39.7322812,4.0640625 L22.7192812,21.8990625 C22.2392812,22.3910625 21.8702812,22.9670625 21.6572813,23.5460625 L19.1072812,30.5570625 C18.4202812,32.4500625 19.6172813,33.6920625 21.4832813,33.0230625 L28.6982813,30.4430625 C29.3102812,30.2240625 29.9192812,29.8220625 30.4322813,29.2940625 L47.1872812,11.7230625 C47.1752812,7.5680625 43.8632812,4.1870625 39.7322812,4.0640625 Z" id="路径" fill="#3C4CB0"></path>
<path d="M33.0212813,41.9960625 L14.2082812,41.9960625 C13.0472812,41.9960625 12.1082812,41.0570625 12.1082812,39.8960625 C12.1082812,38.7350625 13.0472812,37.7960625 14.2082813,37.7960625 L33.0212813,37.7960625 C34.1822813,37.7960625 35.1212813,38.7350625 35.1212813,39.8960625 C35.1212813,41.0570625 34.1822813,41.9960625 33.0212813,41.9960625 Z" id="路径" fill="#E8EBFF"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

22
src/assets/icons/verify.svg

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="96px" height="96px" viewBox="0 0 96 96" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>ic_zhengzaibanli</title>
<g id="web端" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1.0首页" transform="translate(-869.000000, -182.000000)">
<g id="编组-3" transform="translate(160.000000, 169.000000)">
<g id="编组-11" transform="translate(709.000000, 13.000000)">
<circle id="椭圆形备份-3" fill="#E8EBFF" cx="48" cy="48" r="48"></circle>
<g id="daichuli" transform="translate(27.000000, 23.000000)" fill-rule="nonzero">
<path d="M34.6409063,49.915125 L7.83590625,49.915125 C3.52790625,49.915125 0.03590625,46.423125 0.03590625,42.115125 L0.03590625,7.822125 C0.03590625,3.514125 3.52790625,0.022125 7.83590625,0.022125 L34.6409063,0.022125 C38.9489062,0.022125 42.4409062,3.514125 42.4409062,7.822125 L42.4409062,42.115125 C42.4409062,46.423125 38.9489062,49.915125 34.6409063,49.915125 Z" id="路径" fill="#5161C9"></path>
<path d="M30.8459062,14.182125 L11.7989062,14.182125 C10.4729062,14.182125 9.39890625,13.108125 9.39890625,11.782125 C9.39890625,10.456125 10.4729063,9.382125 11.7989062,9.382125 L30.8489062,9.382125 C32.1749062,9.382125 33.2489063,10.456125 33.2489063,11.782125 C33.2489063,13.108125 32.1719062,14.182125 30.8459062,14.182125 L30.8459062,14.182125 Z M30.8459062,23.698125 L11.7989062,23.698125 C10.4729062,23.698125 9.39890625,22.624125 9.39890625,21.298125 C9.39890625,19.972125 10.4729063,18.898125 11.7989062,18.898125 L30.8489062,18.898125 C32.1749062,18.898125 33.2489063,19.972125 33.2489063,21.298125 C33.2489063,22.624125 32.1719062,23.698125 30.8459062,23.698125 L30.8459062,23.698125 Z M20.9189063,33.214125 L11.7989063,33.214125 C10.4729062,33.214125 9.39890625,32.140125 9.39890625,30.814125 C9.39890625,29.488125 10.4729063,28.414125 11.7989063,28.414125 L20.9189062,28.414125 C22.2449063,28.414125 23.3189063,29.488125 23.3189063,30.814125 C23.3189063,32.140125 22.2449063,33.214125 20.9189062,33.214125 L20.9189063,33.214125 Z" id="形状" fill="#FFFFFF"></path>
<path d="M26.2079062,38.620125 C26.2079062,42.5964911 28.3292722,46.2708049 31.7729062,48.2589879 C35.2165402,50.247171 39.4592723,50.247171 42.9029063,48.2589879 C46.3465403,46.2708049 48.4679062,42.5964911 48.4679062,38.620125 C48.4679062,32.4731957 43.4848355,27.490125 37.3379062,27.490125 C31.190977,27.490125 26.2079062,32.4731957 26.2079062,38.620125 L26.2079062,38.620125 Z" id="路径" fill="#6B7ADA"></path>
<path d="M37.3379063,27.4691248 C31.1909062,27.4691248 26.2079063,32.452125 26.2079063,38.599125 C26.2079063,44.458125 30.7349063,49.255125 36.4829062,49.693125 C39.9029063,48.868125 42.4469062,45.787125 42.4469062,42.112125 L42.4469062,28.708125 C40.8670666,27.8936462 39.1153395,27.4688293 37.3379063,27.4691248 L37.3379063,27.4691248 Z" id="路径" fill="#3C4CB0"></path>
<path d="M29.1089063,38.620125 C29.1089063,39.7848935 30.0531377,40.729125 31.2179063,40.729125 C32.3826748,40.729125 33.3269063,39.7848935 33.3269063,38.620125 C33.3269063,37.4553565 32.3826748,36.511125 31.2179063,36.511125 C30.0531377,36.511125 29.1089063,37.4553565 29.1089063,38.620125 Z" id="路径" fill="#FFFFFF"></path>
<path d="M35.2529063,38.620125 C35.2529063,39.7848935 36.1971377,40.729125 37.3619063,40.729125 C38.5266748,40.729125 39.4709063,39.7848935 39.4709063,38.620125 C39.4709063,37.4553565 38.5266748,36.511125 37.3619063,36.511125 C36.1971377,36.511125 35.2529063,37.4553565 35.2529063,38.620125 Z" id="路径" fill="#FFFFFF"></path>
<path d="M41.3969063,38.620125 C41.3969063,39.7848935 42.3411377,40.729125 43.5059063,40.729125 C44.6706748,40.729125 45.6149063,39.7848935 45.6149063,38.620125 C45.6149063,37.4553565 44.6706748,36.511125 43.5059063,36.511125 C42.3411377,36.511125 41.3969063,37.4553565 41.3969063,38.620125 Z" id="路径" fill="#FFFFFF"></path>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.2 KiB

1
src/assets/icons/xls.svg

@ -0,0 +1 @@
<?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="1709019841451" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3960" xmlns:xlink="http://www.w3.org/1999/xlink" ><path d="M332.799002 686.081014m-332.799002 0a332.799002 332.799002 0 1 0 665.598003 0 332.799002 332.799002 0 1 0-665.598003 0Z" fill="#DFDFF2" p-id="3961"></path><path d="M883.19735 1024h-639.99808A141.055577 141.055577 0 0 1 102.399693 883.200422v-742.397772A141.055577 141.055577 0 0 1 243.19927 0.003072h516.350451a89.087733 89.087733 0 0 1 63.231811 25.599923l189.695431 189.695431A38.399885 38.399885 0 0 1 1023.996928 243.202342v639.99808a141.055577 141.055577 0 0 1-140.799578 140.799578zM243.19927 76.802842A63.999808 63.999808 0 0 0 179.199462 140.80265v742.397772A63.999808 63.999808 0 0 0 243.19927 947.20023h639.99808a63.999808 63.999808 0 0 0 63.999808-63.999808V259.074295l-179.199462-179.199463a12.799962 12.799962 0 0 0-8.447975-3.07199z" fill="#434260" p-id="3962"></path><path d="M370.686888 508.417547l-60.927817-109.311672h39.679881l27.391918 52.735841c5.631983 10.495969 10.495969 20.479939 17.151948 34.047898h1.535995c5.887982-13.567959 10.239969-23.551929 15.359954-34.047898l25.599924-52.735841h37.375887l-60.671818 111.103666 65.023805 114.943656h-38.399884L409.598771 568.833365l-18.687944-36.863889c-6.399981 13.823959-12.031964 25.599923-17.407948 36.863889l-28.927913 56.063832h-38.655884zM513.790459 399.105875h35.583893v195.839412h95.487713v30.20791h-131.071606zM660.734018 595.969284l20.991937-25.599923a87.551737 87.551737 0 0 0 60.159819 25.599923c27.391918 0 42.751872-12.799962 42.751872-31.999904s-15.359954-27.135919-36.351891-36.351891L716.79785 516.353523a65.023805 65.023805 0 0 1-46.079862-59.135823 67.071799 67.071799 0 0 1 74.239777-62.207813 96.76771 96.76771 0 0 1 68.351795 28.671914l-18.687944 22.783932a71.935784 71.935784 0 0 0-49.663851-20.22394c-23.039931 0-38.143886 11.007967-38.143885 29.183913s18.175945 25.599923 36.60789 34.047898l30.975907 13.31196a62.975811 62.975811 0 0 1 46.079862 60.415818c0 36.351891-29.95191 65.791803-79.615762 65.791803a112.639662 112.639662 0 0 1-80.127759-33.023901z" fill="#434260" p-id="3963"></path></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

291
src/components/AddMail.vue

@ -0,0 +1,291 @@
<template>
<el-dialog
width="50vw"
align-center
title="自建信件"
>
<el-form
ref="formRef"
:model="form"
label-width="200px"
:rules="rules"
style="width: 100%"
>
<el-divider />
<el-row class="title-label">
<el-col>
<span class="main-label">联系人信息</span>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="姓名"
class="info-input"
prop="contactName"
required
>
<el-input
v-model="form.contactName"
placeholder="请输入姓名"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="性别"
class="info-input"
prop="contactSex"
>
<el-select
v-model="form.contactSex"
placeholder="请选择性别"
>
<el-option label="男" value="M"></el-option>
<el-option label="女" value="F"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
label="证件号码"
class="info-input"
prop="contactIdCard"
>
<el-input
v-model="form.contactIdCard"
placeholder="请输入证件号码"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="联系电话"
class="info-input"
prop="contactPhone"
>
<el-input
v-model="form.contactPhone"
placeholder="请输入联系电话"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider />
<el-row class="title-label">
<el-col>
<span class="main-label">信件内容</span>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="案件编号" prop="caseNumber" class="info-input">
<el-input
v-model="form.caseNumber"
placeholder="请输入案件编号"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="被投诉/涉及单位"
prop="involvedDeptName"
class="info-input"
>
<el-select
v-model="form.involvedDeptName"
@change="selectMediaId"
>
<el-option v-for="item in depts"
:key="item.value"
:label="item.text"
:value="item.text"
ref="select" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col>
<el-form-item
label="信件内容"
style="width: 100%"
prop="content"
>
<el-input
type="textarea"
v-model="form.content"
placeholder="请您尽量完整的描述您的信件内容,如发生事件、涉及单位、设计对象姓名、警号以及具体事项"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-form-item label="上传附件">
<Upload v-model="form.fileList" />
</el-form-item>
</el-row>
<div
style="
width: 100%;
display: flex;
justify-content: flex-end;
"
>
<el-button
type="primary"
@click="handleSubmit"
style="height: 40px"
>提交信件</el-button
>
</div>
</el-form>
</el-dialog>
</template>
<script lang="ts" setup>
import { ref, reactive } from "vue";
import type { FormInstance, FormRules } from "element-plus";
import { listSecond } from "../api/dept";
import { addMail } from "../api/mail";
import { useTokenStore } from '../stores/useTokenStore'
const tokens = useTokenStore()
const accessToken = tokens.access_token;
import { depts } from "../stores/dept";
import { request } from '../util/axios_config'
interface FormData {
source: string;
contactName: string;
contactSex: string;
contactIdCard: string;
contactPhone: string;
caseNumber: string;
involvedDeptId: number;
involvedDeptName: string;
content: string;
fileList: any[];
attachments: String;
}
const { VITE_API_URL } = process.env;
const formRef = ref<FormInstance>();
const form = ref({
source: "",
contactName: "",
contactSex: "",
contactIdCard: "",
contactPhone: "",
caseNumber: "",
involvedDeptId:'',
involvedDeptName: "",
content: "",
attachments: "",
});
const rules = reactive<FormRules<FormData>>({
source: [{ required: true, message: "请选择途径来源" }],
contactName: [
{ required: true, message: "请输入姓名" },
],
contactPhone: [
{ required: true, message: "请输入手机号码"},
],
contactSex: [
{ required: true, message: "请输入性别"},
],
contactIdCard: [
{ required: true, message: "请输入身份证"},
],
content: [
{
required: true,
message:
"请您尽量完整的描述您的信件内容,如发生事件、涉及单位、设计对象姓名、警号以及具体事项",
trigger: "blur"
},
],
});
// const { optionsData } = useDictOptions<{
// dept: any[];
// }>({
// dept: {
// api: listSecond,
// },
// });
const emit = defineEmits(["success", "close"]);
const selectMediaId = (depart)=>{
for (const i of depts) {
if(i.text == depart){
form.value.involvedDeptId=i.value;
form.value.involvedDeptName=i.text;
}
}
// console.log(mailData.value.involved_dept_id, 'select')
// console.log(depart, 'ID')
}
const handleSubmit = () => {
formRef.value.validate((valid: boolean) => {
if (valid) {
form.value.attachments = JSON.stringify(form.value.fileList);
console.log("accessToken"+accessToken)
// addMail({data:form.value,headers: { "Authorization": accessToken}}).then(() => {
// emit("success");
// emit("close");
// feedback.msgSuccess("");
// formRef.value.resetFields()
// form.value.fileList = []
// form.value.involvedDeptName = ''
// });
const url = VITE_API_URL +'/mailbox/add'
request({
url: url,
method: 'POST',
data: {MailBo:form.value} ,
headers: { 'Content-Type': 'application/json'}
}).then(() => {
emit("success");
emit("close");
formRef.value.resetFields()
form.value.fileList = []
form.value.involvedDeptName = ''
});
}
});
};
function handleDeptChange(val) {
const dept = optionsData.dept.find((item) => item.id === val);
form.value.involvedDeptName = dept.name;
}
</script>
<style lang="scss" scoped>
.main-label {
width: 80px;
height: 22px;
font-size: 20px;
font-family: PingFang-SC, PingFang-SC;
font-weight: bold;
color: #333333;
line-height: 22px;
}
.title-label {
margin-bottom: 20px;
}
.info-input {
width: 100%;
}
.el-upload__inner {
display: flex;
justify-content: center;
align-items: center;
}
</style>

375
src/components/FileList.vue

@ -0,0 +1,375 @@
<template>
<div class="flex gap-12 wrap file-container">
<div
v-for="(item, index) in fileList"
:key="index"
class="item pointer"
>
<template v-if="item.type && item.type.indexOf('image') > -1">
<div
class="img-box"
:style="{
backgroundImage: `url(${VITE_API_URL}/file/stream/${item.filepath})`,
}"
@click="filePreview(item)"
></div>
<a
class="remove-btn"
@click="remove(index)"
v-if="removeEnable"
>
<img src="\imgs\close.png"/>
</a>
</template>
<div
class="item flex end v-center column text-center"
:title="item.orgiinFilename"
@click="filePreview(item)"
v-else
>
<icon :name="getIconName(item.type)" :size="40" />
<span class="filename">{{ item.orgiinFilename }}</span>
<a
class="remove-btn"
@click.stop="remove(index)"
v-if="removeEnable"
>
<img src="\imgs\close.png"/>
</a>
</div>
</div>
</div>
</template>
<script setup>
import { watch } from "vue";
const { VITE_API_URL } = process.env;
const props = defineProps({
files: {
type: Array,
default: () => [],
},
removeEnable: {
type: Boolean,
default: false,
},
});
const emit = defineEmits(["update:files"]);
const fileList = ref(props.files);
watch(
() => props.files,
(files) => {
fileList.value = files;
}
);
const activeFile = ref({});
const fileRrror = ref(false);
const rotate = ref(0);
const scale = ref(0);
const translateX = ref(0);
const translateY = ref(0);
let moveFlag = false;
let initialX = 0;
let initialY = 0;
function prev() {
const index = fileList.value.indexOf(activeFile.value);
if (index === 0) {
filePreview(fileList.value[fileList.value.length - 1]);
} else {
filePreview(fileList.value[index - 1]);
}
}
function next() {
const index = fileList.value.indexOf(activeFile.value);
if (index === fileList.value.length - 1) {
filePreview(fileList.value[0]);
} else {
filePreview(fileList.value[index + 1]);
}
}
const preview = ref(false);
watch(preview, (val) => {
})
function filePreview(file) {
preview.value = true;
fileRrror.value = false;
activeFile.value = file;
rotate.value = 0;
scale.value = 1;
translateX.value = 0;
translateY.value = 0;
moveFlag = false;
}
function wheel(event) {
if (activeFile.value.type.indexOf("image") === -1) {
return;
}
if (event.deltaY > 0 && scale.value > 0.5) {
scale.value -= 0.1;
}
if (event.deltaY < 0) {
scale.value += 0.1;
}
}
function mousedown() {
moveFlag = true;
initialX = event.clientX;
initialY = event.clientY;
}
function mousemove(event) {
if (!moveFlag) {
return;
}
if (rotate.value % 360 === 0) {
translateX.value += event.clientX - initialX;
translateY.value += event.clientY - initialY;
}
if (rotate.value === 90) {
translateY.value -= event.clientX - initialX;
translateX.value += event.clientY - initialY;
}
if (rotate.value === 180) {
translateX.value -= event.clientX - initialX;
translateY.value -= event.clientY - initialY;
}
if (rotate.value === 270) {
translateY.value += event.clientX - initialX;
translateX.value -= event.clientY - initialY;
}
initialX = event.clientX;
initialY = event.clientY;
}
function mouseup(event) {
moveFlag = false;
}
function rotateLeft() {
if (rotate.value === 360) {
rotate.value = 0;
} else {
rotate.value += 90;
}
}
function rotateRight() {
if (rotate.value === 0) {
rotate.value = 270;
} else {
rotate.value -= 90;
}
}
function getIconName(filetype) {
if (!filetype) {
return "el-icon-document";
}
if (filetype.indexOf("image") > -1) {
return "el-icon-Picture";
}
if (filetype === "application/pdf") {
return "local-icon-pdf";
}
if (filetype.indexOf("audio") > -1) {
return "local-icon-mp3";
}
if (filetype.indexOf("word") > -1) {
return "local-icon-doc";
}
if (
filetype.indexOf("excel") > -1 ||
filetype.indexOf("spreadsheetml.sheet") > -1
) {
return "local-icon-xls";
}
if (
filetype.indexOf("video") > -1
) {
return "local-icon-mp4";
}
return "el-icon-document";
}
function remove(index) {
fileList.value.splice(index, 1);
emit("update:files", fileList.value);
}
function download() {
window.open(`${VITE_API_URL}/api/file/stream/${activeFile.value.filepath}`);
}
function getDocFilepath() {
if (
activeFile.value.type === "application/msword" &&
activeFile.value.docxFilepath
) {
return `${VITE_API_URL}/api/file/stream/${activeFile.value.docxFilepath}`;
}
return `${VITE_API_URL}/api/file/stream/${activeFile.value.filepath}`;
}
</script>
<style lang="scss" scoped>
.file-container {
min-height: 80px;
.item {
width: 80px;
height: 80px;
margin-bottom: 12px;
border-radius: 2px;
color: var(--primary-color);
position: relative;
&:hover {
background-color: #ededed;
span.filename {
font-weight: 700;
}
}
span.filename {
line-height: 1.2;
font-size: 12px;
width: 100%;
white-space: nowrap;
text-overflow: ellipsis;
margin-top: 10px;
overflow: hidden;
}
.img-box {
width: 80px;
height: 80px;
background-size: cover;
background-position: center;
border-radius: 2px;
&:hover {
outline: 2px solid #ff9800;
}
}
.remove-btn {
position: absolute;
top: -10px;
right: -10px;
display: block;
border-radius: 50%;
height: 20px;
background-color: #fff;
&:hover {
color: red;
cursor: pointer;
}
}
}
}
.file-preview-wrapper {
.file-list {
width: 15vw;
height: 100vh;
padding: 16px 8px;
background-color: #fff;
box-sizing: border-box;
section {
padding: 8px 16px;
border: 2px solid transparent;
&:hover {
color: var(--primary-color);
font-weight: 700;
}
&[active="true"] {
border-color: var(--primary-color);
}
span {
width: calc(100% - 32px);
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
}
.file-content {
width: 86vw;
position: relative;
.img-container {
height: 100vh;
img {
max-height: 100%;
display: block;
&:hover {
cursor: pointer;
}
}
}
.error {
background-color: #fff;
img {
width: 500px;
}
}
}
.close-btn {
position: absolute;
top: 12px;
right: 8px;
background-color: transparent;
border: none;
color: #fff;
&:hover {
color: red;
}
}
.rotate-left-btn {
position: absolute;
top: 12px;
right: 118px;
background-color: transparent;
border: none;
color: #fff;
}
.rotate-right-btn {
position: absolute;
top: 12px;
right: 68px;
background-color: transparent;
border: none;
color: #fff;
}
.left-btn {
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
background-color: transparent;
border: none;
color: #fff;
}
.right-btn {
position: absolute;
top: 50%;
right: 0;
transform: translateY(-50%);
background-color: transparent;
border: none;
color: #fff;
}
.download-btn {
position: absolute;
bottom: 16px;
right: 18px;
}
.file-number {
position: absolute;
top: 16px;
left: 18px;
color: #fff;
}
}
</style>

7
src/components/HolidayList.vue

@ -36,6 +36,7 @@
import { ref, onMounted, onBeforeMount } from 'vue';
import { ElMessage } from 'element-plus'
import { request } from '../util/axios_config'
const { VITE_API_URL } = process.env;
const currenYear = ref('');
const loading = ref(true);
@ -46,8 +47,9 @@ const dayType = ref({
});
const getDateData = () => {
const url = VITE_API_URL +'/outer/holiday/show-holiday'
request({
url: '/api/outer/holiday/show-holiday',
url: url,
method: 'GET'
}).then(res => {
dayType.value = res.data;
@ -92,8 +94,9 @@ const searchHoliday = () => {
const refreshHoliday = () => {
loading.value = true;
const url = VITE_API_URL +'/outer/holiday/refresh-holiday'
request({
url: '/api/outer/holiday/refresh-holiday',
url: url,
method: 'POST',
data: { year: currenYear.value },
headers: { 'Content-Type': 'application/json' }

41
src/components/LoginView.vue

@ -7,8 +7,8 @@
</el-form-item>
<el-form-item label="密码">
<el-container>
<el-input v-model="login.captcha" placeholder="请输入验证码" clearable @input="inputCheck"></el-input>
<el-button type="primary" @click="sendCaptcha">发送验证码</el-button>
<el-input v-model="login.captcha" placeholder="请输入密码" type="password" show-password clearable @input="inputCheck"></el-input>
<!-- <el-button type="primary" @click="sendCaptcha">发送验证码</el-button> -->
</el-container>
</el-form-item>
<el-form-item>
@ -24,7 +24,7 @@ import { request } from '../util/axios_config'
import router from '../router'
import { ElMessage } from 'element-plus'
import { useTokenStore } from '../stores/useTokenStore'
const { VITE_API_URL } = process.env;
const tokens = useTokenStore()
const login = reactive({
@ -34,27 +34,28 @@ const login = reactive({
const inputCheck = () => {
login.account = login.account.replace(/[^\d]/g, '')
login.captcha = login.captcha.replace(/[^\d]/g, '')
}
const sendCaptcha = () => {
request({
url: '/api/captcha',
method: 'POST',
data: login,
headers: { 'Content-Type': 'application/json' }
}).then(res => {
ElMessage.success('验证码发送成功')
login.captcha = res.data
}).catch(err => {
ElMessage.error('验证码发送失败')
console.log(err)
})
}
// const sendCaptcha = () => {
// request({
// url: '/api/captcha',
// method: 'POST',
// data: login,
// headers: { 'Content-Type': 'application/json' }
// }).then(res => {
// ElMessage.success('')
// login.captcha = res.data
// }).catch(err => {
// ElMessage.error('')
// console.log(err)
// })
// }
const loginIn = () => {
const url = VITE_API_URL +'/login'
request({
url: '/api/login',
url: url,
method: 'POST',
data: login,
headers: { 'Content-Type': 'application/json' }
@ -65,6 +66,8 @@ const loginIn = () => {
console.log("localStorage.getItem('user'):" + localStorage.getItem('user'))
ElMessage.success('登录成功')
router.push('/')
}else{
ElMessage.error('登录失败,账号或密码错误')
}
}).catch(err => {
ElMessage.error('登录失败')

4
src/components/MailDetail.vue

@ -47,6 +47,7 @@
import { ref, onMounted } from 'vue';
import router from '../router';
import { request } from '../util/axios_config'
const { VITE_API_URL } = process.env;
const mailID = router.currentRoute.value.params.id;
const form = ref({
@ -60,8 +61,9 @@ const form = ref({
});
onMounted(() => {
const url = VITE_API_URL +'/mailbox/detail'
request({
url: '/api/mailbox/detail',
url: url,
method: 'POST',
data: { id: mailID }
}).then(res => {

5
src/components/MailEtl.vue

@ -81,7 +81,7 @@ import { request } from '../util/axios_config'
import { onMounted, ref } from 'vue';
import router from '../router';
const MailTab = ref('mail_etl')
const { VITE_API_URL } = process.env;
const options = [
{
value: 'mail_etl',
@ -135,8 +135,9 @@ const handleResponse = (response) => {
const makeRequest = (requestData, callback) => {
const data = JSON.stringify(requestData)
const url = VITE_API_URL +'/mailetl/list-submit'
request({
url: 'api/mailetl/list-submit',
url: url,
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' }

23
src/components/ManageMail.vue

@ -50,7 +50,9 @@
</el-col>
<el-col :span="8" :style="{ display: 'inline-flex', alignItems: 'center' }">
<el-row>
<el-col :span="6"></el-col>
<el-col :span="6">
<el-button type="primary" @click="createMail" class="under-btn">自建信件</el-button>
</el-col>
<el-col :span="6">
<el-button type="primary" @click="search" class="under-btn">搜索</el-button></el-col>
<el-col :span="6">
@ -94,14 +96,22 @@
</div>
</div>
</div>
<AddMail
v-model="addMailShow"
@close="addMailShow = false"
@success="search"
/>
</template>
<script setup>
import { request } from '../util/axios_config'
import { onMounted, ref } from 'vue';
import router from '../router';
import AddMail from "../components/AddMail.vue";
const loading = ref(true);
const { VITE_API_URL } = process.env;
const form = ref({
date: '',
contactName: '',
@ -111,9 +121,12 @@ const form = ref({
content: '',
evaluate: ''
})
const addMailShow = ref(false);
// tableDataaxios
const tableData = ref([])
const createMail = () => {
addMailShow.value = true;
};
const pageData = ref({
currentPage: 1,
@ -139,8 +152,9 @@ const handleResponse = (response) => {
const makeRequest = (requestData, callback) => {
const data = JSON.stringify(requestData)
const url = VITE_API_URL +'/mailbox/list-submit'
request({
url: 'api/mailbox/list-submit',
url: url,
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -211,8 +225,9 @@ const out = () => {
pageData: pageData.value
}
const data = JSON.stringify(requestData)
const url = VITE_API_URL +'/mailbox/exportexcel'
request({
url: 'api/mailbox/exportexcel',
url: url,
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' },

11
src/components/ManageUser.vue

@ -101,7 +101,7 @@
import { request } from '../util/axios_config'
import { onMounted, ref } from 'vue';
import { ElMessage } from 'element-plus'
const { VITE_API_URL } = process.env;
const loading = ref(true);
const form = ref({
date: '',
@ -126,8 +126,9 @@ const pageData = ref({
})
const getData = (data) => {
const url = VITE_API_URL +'/user/list-submit'
request({
url: 'api/user/list-submit',
url: url,
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -159,8 +160,9 @@ const flexColumnWidth = (label, prop) => {
}
const handleDelete = (index) => {
const url = VITE_API_URL +'/user/delete-user'
request({
url: 'api/user/delete-user',
url: url,
method: 'POST',
data: { id: tableData.value[index - 1].id },
}).then(function (response) {
@ -220,8 +222,9 @@ const newUser = ref(false)
const submitNewUser = () => {
const requestData = newForm.value
const data = JSON.stringify(requestData)
const url = VITE_API_URL +'/user/add-user'
request({
url: 'api/user/add-user',
url: url,
method: 'POST',
data: data,
headers: { 'Content-Type': 'application/json' }

80
src/components/Upload.vue

@ -0,0 +1,80 @@
<template>
<div>
<el-upload
:action="`${VITE_API_URL}/file/upload`"
:headers=headers
multiple
:before-upload="beforeUpload"
@progress="uploadProgress"
@success="handleSuccess"
:show-file-list="false"
:accept="accept"
>
<el-button
>上传
</el-button>
</el-upload>
<div class="flex v-center wrap mt-10">
<FileList v-model:files="files" :removeEnable="true" />
<div v-if="loading">
<el-progress type="circle" :percentage="uploadPercentage" :width="80" />
</div>
</div>
</div>
</template>
<script setup>
const { VITE_API_URL } = process.env;
import { useTokenStore } from '../stores/useTokenStore'
const tokens = useTokenStore()
const accessToken = tokens.access_token;
const headers = reactive({'Authorization': 'Bearer '+accessToken});
const props = defineProps({
modelValue: {
type: Array,
default: () => [],
},
accept: {
type: String,
default: "image/*",
}
});
const emit = defineEmits(["update:modelValue"]);
const files = ref(props.modelValue);
watch(() => props.modelValue, (newValue) => {
if (newValue) {
files.value = newValue;
} else {
files.value = []
}
})
const loading = ref(false)
const uploadPercentage = ref(0)
function beforeUpload() {
uploadPercentage.value = 0
loading.value = true
}
function uploadProgress(progressEvent) {
uploadPercentage.value = parseInt(progressEvent.percent)
}
function handleSuccess(data, file) {
loading.value = false
if (data.code !== 200) {
return;
}
files.value.push({
filepath: data.data.filepath,
orgiinFilename: file.name,
type: file.raw.type,
size: file.size,
docxFilepath: data.data.docxFilepath
});
emit("update:modelValue", files.value);
}
</script>

4
src/layout/Index.vue

@ -42,12 +42,14 @@ import { useRouter } from "vue-router";
import { useTokenStore } from '../stores/useTokenStore';
import { request } from '../util/axios_config';
import { ElMessage } from 'element-plus'
const { VITE_API_URL } = process.env;
const router = useRouter();
const logout = () => {
const url = VITE_API_URL +'/logout'
request({
url: 'api/logout',
url: url,
method: 'POST'
}).then((res) => {
if (res.data === 200) {

51
src/stores/dept.js

@ -0,0 +1,51 @@
export const depts = [
{
text: "芙蓉分局",
value: 6,
},
{
text: "天心分局",
value: 29,
},
{
text: "岳麓分局",
value: 34,
},
{
text: "开福分局",
value: 20,
},
{
text: "雨花分局",
value: 33,
},
{
text: "高新分局",
value: 7,
},
{
text: "望城分局",
value: 31,
},
{
text: "长沙县局",
value: 35,
},
{
text: "浏阳市局",
value: 22,
},
{
text: "宁乡市局",
value: 24,
},
{
text: "交警支队",
value: 14,
},
{
text: "其他单位",
value: 0,
},
]

5
src/util/axios_config.js

@ -2,6 +2,7 @@ import axios from 'axios'
import { getActivePinia } from 'pinia'
import { useTokenStore } from "@/stores/useTokenStore";
import router from "@/router";
const { VITE_API_URL } = process.env;
axios.defaults.baseURL = ''
axios.defaults.timeout = 10000
@ -42,10 +43,12 @@ axios.interceptors.response.use(response => {
// 401 错误,说明 access_token 过期了,需要用 refresh_token 来刷新
if (error.response && error.response.status === 401) {
const refreshToken = tokens.refresh_token
if (refreshToken) {
try {
const url = VITE_API_URL +'/refresh-token'
// console.log("refresh-token-req:" + refreshToken)
const res = await axios.create().post('api/refresh-token', { refreshToken: refreshToken })
const res = await axios.create().post(url, { refreshToken: refreshToken })
// console.log("refresh-token-res:" + JSON.stringify(res))
// 如果刷新成功,就更新本地存储中的 token,并且重新发送之前失败的请求
if (res.data && res.data.accessToken) {

91
vite.config.js

@ -1,4 +1,4 @@
import { defineConfig } from 'vite'
import { defineConfig , loadEnv} from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path'
@ -8,47 +8,58 @@ import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import svgLoader from 'vite-svg-loader'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
svgLoader(),
AutoImport({
imports: [
'vue'
],
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver({
importStyle: "sass"
})],
}),
],
resolve: {
// https://cn.vitejs.dev/config/#resolve-alias
alias: {
// 设置别名
'~/': `${path.resolve(__dirname, 'src')}/`,
'@': path.resolve(__dirname, './src/')
export default ({ mode }) => {
const env = loadEnv(mode, process.cwd());
return defineConfig({
base: env.VITE_BASE,
define: {
'process.env': env
},
// https://cn.vitejs.dev/config/#resolve-extensions
extensions: ['.js']
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "src/assets/style/element.scss" as *;`
plugins: [
vue(),
svgLoader(),
AutoImport({
imports: [
'vue'
],
resolvers: [ElementPlusResolver()],
}),
Components({
resolvers: [ElementPlusResolver({
importStyle: "sass"
})],
}),
],
resolve: {
// https://cn.vitejs.dev/config/#resolve-alias
alias: {
// 设置别名
'~/': `${path.resolve(__dirname, 'src')}/`,
'@': path.resolve(__dirname, './src/')
},
// https://cn.vitejs.dev/config/#resolve-extensions
extensions: ['.js']
},
},
server: {
host: '0.0.0.0',
proxy: {
'/api': {
target: 'http://127.0.0.1:8083',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/api/, '')
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "src/assets/style/element.scss" as *;`
},
},
},
server: {
host: '0.0.0.0',
proxy: {
'/admin-api': {
target: 'http://127.0.0.1:8083',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/admin-api/, '')
}
}
}
}
})
})
}

Loading…
Cancel
Save