mirror of
https://github.com/nsnail/NetAdmin.git
synced 2025-07-05 10:08:15 +08:00
style: 💄 代码整理 (#88)
This commit is contained in:
@ -1,10 +1,13 @@
|
||||
{
|
||||
"tabWidth": 4,
|
||||
"useTabs": false,
|
||||
"attributeGroups": ["^v-", "$DEFAULT"],
|
||||
"attributeSort": "ASC",
|
||||
"bracketSameLine": true,
|
||||
"endOfLine": "auto",
|
||||
"plugins": ["prettier-plugin-organize-attributes"],
|
||||
"printWidth": 150,
|
||||
"semi": false,
|
||||
"singleQuote": true,
|
||||
"tabWidth": 4,
|
||||
"trailingComma": "all",
|
||||
"bracketSameLine": true,
|
||||
"printWidth": 150,
|
||||
"endOfLine": "auto"
|
||||
"useTabs": false
|
||||
}
|
@ -99,7 +99,7 @@
|
||||
<noscript>
|
||||
<strong>We're sorry but NetAdmin doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||
</noscript>
|
||||
<div id="app" class="aminui">
|
||||
<div class="aminui" id="app">
|
||||
<div class="app-loading">
|
||||
<div class="app-loading__logo">
|
||||
<img alt="" src="/src/assets/img/logo.png" />
|
||||
|
@ -36,6 +36,7 @@
|
||||
"devDependencies": {
|
||||
"@vitejs/plugin-vue": "^5.0.3",
|
||||
"prettier": "^3.2.4",
|
||||
"prettier-plugin-organize-attributes": "^1.0.0",
|
||||
"sass": "^1.70.0",
|
||||
"terser": "^5.27.0",
|
||||
"vite": "^5.0.12"
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700643247048" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5913" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="5913" t="1700643247048" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M957.6 872l-432-736c-3.2-5.6-8.8-8-13.6-8s-10.4 2.4-13.6 8l-432 736c-6.4 10.4 1.6 24 13.6 24h864c12 0 20-13.6 13.6-24z m-793.6-40L512 239.2l348 592.8h-696zM480 704h64v64h-64v-64z m0-320h64v256h-64V384z"
|
||||
p-id="5914"></path>
|
||||
|
@ -1,7 +1,25 @@
|
||||
<template>
|
||||
<svg class="icon" height="300" p-id="9845" t="1678846153777" version="1.1" viewBox="0 0 1024 1024" width="300" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg
|
||||
class="icon"
|
||||
height="128"
|
||||
p-id="11193"
|
||||
t="1706508305545"
|
||||
version="1.1"
|
||||
viewBox="0 0 1149 1024"
|
||||
width="128"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M864 64H160a96 96 0 0 0-96 96v576a96 96 0 0 0 96 96h320v64H256a32 32 0 0 0 0 64h512a32 32 0 0 0 0-64h-224v-64h320a96 96 0 0 0 96-96V160a96 96 0 0 0-96-96zM160 128h704a32 32 0 0 1 32 32v448H128V160a32 32 0 0 1 32-32z m736 608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32v-64h768v64z"
|
||||
p-id="9846"></path>
|
||||
d="M1061.585878 1024H88.369851A88.369851 88.369851 0 0 1 0 935.630149V88.369851A88.369851 88.369851 0 0 1 88.369851 0H1061.585878a88.369851 88.369851 0 0 1 88.369852 88.369851v847.260298A88.369851 88.369851 0 0 1 1061.585878 1024zM88.369851 57.38302A30.986831 30.986831 0 0 0 57.38302 88.369851v847.260298a30.986831 30.986831 0 0 0 30.986831 30.986831H1061.585878a30.986831 30.986831 0 0 0 30.986831-30.986831V88.369851A30.986831 30.986831 0 0 0 1061.585878 57.38302z"
|
||||
p-id="11194"></path>
|
||||
<path d="M28.69151 333.682264h1091.711964v57.38302H28.69151zM28.69151 655.027178h1091.711964v57.383021H28.69151z" p-id="11195"></path>
|
||||
<path
|
||||
d="M104.437097 168.70608m28.69151 0l82.63155 0q28.69151 0 28.69151 28.69151l0 0q0 28.69151-28.69151 28.691511l-82.63155 0q-28.69151 0-28.69151-28.691511l0 0q0-28.69151 28.69151-28.69151Z"
|
||||
p-id="11196"></path>
|
||||
<path
|
||||
d="M104.437097 494.354721m28.69151 0l82.63155 0q28.69151 0 28.69151 28.69151l0 0q0 28.69151-28.69151 28.691511l-82.63155 0q-28.69151 0-28.69151-28.691511l0 0q0-28.69151 28.69151-28.69151Z"
|
||||
p-id="11197"></path>
|
||||
<path
|
||||
d="M104.437097 815.986551m28.69151 0l82.63155 0q28.69151 0 28.69151 28.69151l0 0q0 28.69151-28.69151 28.69151l-82.63155 0q-28.69151 0-28.69151-28.69151l0 0q0-28.69151 28.69151-28.69151Z"
|
||||
p-id="11198"></path>
|
||||
</svg>
|
||||
</template>
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1695638866565" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4181" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="4181" t="1695638866565" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M512 97.52381c228.912762 0 414.47619 185.563429 414.47619 414.47619s-185.563429 414.47619-414.47619 414.47619S97.52381 740.912762 97.52381 512 283.087238 97.52381 512 97.52381z m129.29219 233.447619l-129.267809 129.29219-129.316571-129.29219-51.736381 51.736381 129.316571 129.267809-129.316571 129.316571 51.736381 51.736381L512 563.687619l129.29219 129.316571 51.736381-51.73638L563.687619 512l129.316571-129.29219-51.73638-51.736381z"
|
||||
p-id="4182"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700287923195" class="icon" viewBox="0 0 1159 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7208" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="7208" t="1700287923195" version="1.1" viewBox="0 0 1159 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M375.432019 950.647918H139.942526a65.628219 65.628219 0 0 1-66.59334-63.697977V137.051024a64.663098 64.663098 0 0 1 66.59334-63.697977h669.793885a64.663098 64.663098 0 0 1 66.59334 63.697977V289.540122a38.604835 38.604835 0 0 0 0 14.476813l7.720967 11.58145a37.639714 37.639714 0 0 0 40.535076 7.720967l11.581451-7.720967A37.639714 37.639714 0 0 0 949.678937 289.540122V137.051024A138.977405 138.977405 0 0 0 809.736411 0.00386H139.942526A138.977405 138.977405 0 0 0 0 137.051024v749.898917a138.977405 138.977405 0 0 0 139.942526 137.047164h235.489493a38.604835 38.604835 0 0 0 26.058263-10.61633 37.639714 37.639714 0 0 0 0-52.116527 38.604835 38.604835 0 0 0-26.058263-10.61633zM691.026544 289.540122a39.569956 39.569956 0 0 0-36.674593-39.569956H216.187075a39.569956 39.569956 0 0 0-36.674593 39.569956 38.604835 38.604835 0 0 0 36.674593 38.604835h438.164876a38.604835 38.604835 0 0 0 36.674593-38.604835zM216.187075 482.564296a39.569956 39.569956 0 0 0 0 79.139911h289.536261a39.569956 39.569956 0 0 0 0-79.139911z m219.082438 226.803405H216.187075a40.535077 40.535077 0 0 0-36.674593 40.535076 39.569956 39.569956 0 0 0 36.674593 39.569956h219.082438a39.569956 39.569956 0 0 0 36.674593-39.569956 40.535077 40.535077 0 0 0-36.674593-40.535076zM1147.528716 868.612644L895.632168 428.517527a86.860878 86.860878 0 0 0-146.698372 0L497.037249 868.612644a80.105032 80.105032 0 0 0-14.476813 38.604835 84.930637 84.930637 0 0 0 11.58145 42.465319 96.512087 96.512087 0 0 0 30.883868 30.883867 85.895758 85.895758 0 0 0 43.430439 11.581451h502.827974a85.895758 85.895758 0 0 0 86.860878-84.930637 80.105032 80.105032 0 0 0-10.616329-38.604835zM801.050323 796.228579h-8.686088a8.686088 8.686088 0 0 1 0-6.755846v-173.721757a7.720967 7.720967 0 0 1 7.720967 0h39.569956a9.651209 9.651209 0 0 1 8.686088 0v171.791515H839.655158z m0 37.639714h44.39556a18.337297 18.337297 0 0 1 0 9.651209V868.612644a18.337297 18.337297 0 0 1 0 9.651209 11.58145 11.58145 0 0 1-8.686088 0h-36.674593a8.686088 8.686088 0 0 1-7.720967 0 18.337297 18.337297 0 0 1 0-9.651209v-21.232659a18.337297 18.337297 0 0 1 0-9.651208z"
|
||||
p-id="7209"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700642583398" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6047" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="6047" t="1700642583398" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M830.4 513.6C786.4 469.6 729.6 448 672 448c-48.8 0-96.8 16-136.8 47.2L277.6 237.6 384 131.2l-29.6-29.6L224 184 128.8 88.8l-44 44 406.4 406.4c-64.8 88-56.8 212 22.4 291.2 44 44 100.8 65.6 158.4 65.6s114.4-21.6 158.4-65.6c87.2-87.2 87.2-229.6 0-316.8z m-45.6 271.2c-30.4 30.4-70.4 47.2-112.8 47.2-42.4 0-83.2-16.8-112.8-47.2-62.4-62.4-62.4-164 0-226.4C588.8 528.8 629.6 512 672 512s83.2 16.8 112.8 47.2c62.4 62.4 62.4 163.2 0 225.6z"
|
||||
p-id="6048"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700278692453" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7645" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="7645" t="1700278692453" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M341.764096 68.266667h682.666667v136.533333H341.764096zM341.764096 443.733333h682.666667v136.533334H341.764096zM341.764096 819.2h682.666667v136.533333H341.764096zM111.022763 223.914667h-32.085334V0h32.085334zM189.529429 445.098667a57.344 57.344 0 0 1-22.528 49.834666 80.554667 80.554667 0 0 1-50.517333 14.336H68.697429a43.690667 43.690667 0 0 0-29.354666 6.826667 43.690667 43.690667 0 0 0-6.826667 30.037333v32.085334h154.282667V614.4H0.430763V546.133333a61.44 61.44 0 0 1 68.266666-68.266666h47.786667c27.306667 0 40.96-10.24 40.96-32.085334a23.210667 23.210667 0 0 0-10.24-18.432 44.373333 44.373333 0 0 0-26.624-8.192H0.430763v-32.085333h120.149333a79.189333 79.189333 0 0 1 45.056 12.970667 52.565333 52.565333 0 0 1 23.893333 45.056zM186.798763 955.733333a58.709333 58.709333 0 0 1-22.528 49.834667 77.141333 77.141333 0 0 1-49.152 15.701333H7.257429v-32.085333h106.496c26.624 0 40.277333-10.922667 40.277334-33.450667s-15.018667-34.133333-44.373334-34.133333H8.622763v-32.085333h105.130666c25.941333 0 38.912-10.922667 38.912-32.085334s-12.970667-27.989333-37.546666-27.989333H0.430763v-32.085333h114.688a73.728 73.728 0 0 1 42.325333 10.922666 51.882667 51.882667 0 0 1 27.306667 49.152 58.026667 58.026667 0 0 1-21.845334 49.152 51.882667 51.882667 0 0 1 23.893334 49.152z"
|
||||
p-id="7646"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700287773746" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5124" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="5124" t="1700287773746" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M136.3 410.2h70v150.2h-70zM206.3 851.3V733.8h-70v117.5c0 40.7 31.5 73.9 70.2 73.9h206.1v-70H207.5c-0.5-0.6-1.2-1.9-1.2-3.9zM206.3 139c0-2 0.7-3.3 1.1-3.9h619.8c0.5 0.6 1.1 1.8 1.1 3.9v151.1h70V139c0-40.7-31.5-73.9-70.2-73.9H206.5c-38.7 0-70.2 33.1-70.2 73.9v97.9h70V139zM886.8 677.2c-20-20-43-35.9-68-47.2 19.2-22.2 30.9-51.2 30.9-82.8 0-69.9-56.8-126.7-126.7-126.7s-126.7 56.8-126.7 126.7c0 31.6 11.7 60.6 30.9 82.8-25 11.4-48 27.2-68 47.2-43.8 43.8-67.9 101.9-67.9 163.8 0 6.1 0.2 12.2 0.7 18.2l69.8-5.5c-0.3-4.2-0.5-8.5-0.5-12.7 0-89.1 72.5-161.6 161.6-161.6S884.6 751.9 884.6 841c0 4.3-0.2 8.6-0.5 12.7l69.8 5.5c0.5-6 0.7-12.1 0.7-18.2 0-61.9-24.1-120-67.8-163.8zM723 490.5c31.3 0 56.7 25.4 56.7 56.7s-25.4 56.7-56.7 56.7-56.7-25.4-56.7-56.7 25.4-56.7 56.7-56.7zM93.9 288.5h154.8v70H93.9zM93.9 612.1h154.8v70H93.9z"
|
||||
p-id="5125"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700643176982" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4094" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="4094" t="1700643176982" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M532.168854 539.929096h1.786692c15.748682 0 28.607548-12.809747 28.67918-28.559453 0.071631-15.821337-12.738116-28.739555-28.67918-28.811186-15.748682 0-28.607548 12.809747-28.679179 28.702716-0.071631 15.246239 11.874445 27.805276 26.892487 28.667923z"
|
||||
p-id="4095"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1700287474570" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4076" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="4076" t="1700287474570" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M758.969877 1017.428352H58.739777a35.205133 35.205133 0 0 1-35.205134-35.205134V154.902586a35.205133 35.205133 0 0 1 35.205134-35.205133h700.2301a35.205133 35.205133 0 0 1 35.205134 35.205133v177.609898a35.205133 35.205133 0 0 1-70.410267 0V190.10772H93.94491v756.910365h629.819834V805.376099a35.205133 35.205133 0 0 1 70.410267 0V982.223218a35.205133 35.205133 0 0 1-35.205134 35.205134z"
|
||||
p-id="4077"></path>
|
||||
|
@ -1,7 +1,13 @@
|
||||
<template>
|
||||
<svg class="icon" height="300" p-id="4952" t="1678864333679" version="1.1" viewBox="0 0 1024 1024" width="300" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg class="icon" height="128" p-id="5220" t="1706579628535" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M342 472h342c0.4 0 0.9 0 1.3-0.1 4.4-0.7 7.3-4.8 6.6-9.2l-40.2-248c-0.6-3.9-4-6.7-7.9-6.7H382.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-0.1 0.4-0.1 0.9-0.1 1.3 0 4.4 3.6 8 8 8z m91.2-196h159.5l20.7 128h-201l20.8-128zM435.7 558.7c-0.6-3.9-4-6.7-7.9-6.7H166.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-0.1 0.4-0.1 0.9-0.1 1.3 0 4.4 3.6 8 8 8h342c0.4 0 0.9 0 1.3-0.1 4.4-0.7 7.3-4.8 6.6-9.2l-40.2-248zM196.5 748l20.7-128h159.5l20.7 128H196.5zM905.9 806.7l-40.2-248c-0.6-3.9-4-6.7-7.9-6.7H596.2c-3.9 0-7.3 2.8-7.9 6.7l-40.2 248c-0.1 0.4-0.1 0.9-0.1 1.3 0 4.4 3.6 8 8 8h342c0.4 0 0.9 0 1.3-0.1 4.3-0.7 7.3-4.8 6.6-9.2zM626.5 748l20.7-128h159.5l20.7 128H626.5z"
|
||||
p-id="4953"></path>
|
||||
d="M913.066667 264.533333l-371.2-209.066666c-25.6-12.8-59.733333-12.8-85.333334 0L89.6 264.533333C34.133333 298.666667 34.133333 379.733333 89.6 413.866667l371.2 209.066666c25.6 12.8 59.733333 12.8 85.333333 0l371.2-209.066666c55.466667-34.133333 55.466667-119.466667-4.266666-149.333334z m-413.866667 281.6L132.266667 337.066667 499.2 128l371.2 209.066667-371.2 209.066666z"
|
||||
p-id="5221"></path>
|
||||
<path
|
||||
d="M46.933333 516.266667c12.8-21.333333 38.4-25.6 59.733334-17.066667l384 221.866667c12.8 8.533333 29.866667 8.533333 42.666666 0l388.266667-217.6c21.333333-12.8 46.933333-4.266667 59.733333 17.066666 12.8 21.333333 4.266667 46.933333-17.066666 59.733334l-388.266667 217.6c-38.4 21.333333-89.6 21.333333-128 0l-384-221.866667c-21.333333-12.8-25.6-38.4-17.066667-59.733333z"
|
||||
p-id="5222"></path>
|
||||
<path
|
||||
d="M106.666667 669.866667c-21.333333-12.8-46.933333-4.266667-59.733334 17.066666-12.8 21.333333-4.266667 46.933333 17.066667 59.733334l388.266667 217.6c38.4 21.333333 85.333333 21.333333 128 0l379.733333-217.6c21.333333-12.8 25.6-38.4 17.066667-59.733334-12.8-21.333333-38.4-25.6-59.733334-17.066666l-379.733333 217.6c-12.8 8.533333-29.866667 8.533333-42.666667 0l-388.266666-217.6z"
|
||||
p-id="5223"></path>
|
||||
</svg>
|
||||
</template>
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1706693297583" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4279" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="4279" t="1706693297583" version="1.1" viewBox="0 0 1024 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M553 186.4v-84h204.8c22.5 0 41-18.4 41-41 0-22.5-18.4-41-41-41H266.2c-22.5 0-41 18.4-41 41 0 22.5 18.4 41 41 41H471v84C264 207 102.4 381.5 102.4 593.9c0 226.2 183.4 409.6 409.6 409.6s409.6-183.4 409.6-409.6c0-212.4-161.7-387-368.6-407.5z m-41 735.2c-180.7 0-327.7-147-327.7-327.7s147-327.7 327.7-327.7 327.7 147 327.7 327.7-147 327.7-327.7 327.7z"
|
||||
p-id="4280"></path>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<svg t="1695640506520" class="icon" viewBox="0 0 1026 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4207" width="128" height="128">
|
||||
<svg class="icon" height="128" p-id="4207" t="1695640506520" version="1.1" viewBox="0 0 1026 1024" width="128" xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M420.864 450.56l-164.864 139.264 0-186.368 185.344-162.816 5.12 6.144 167.936 195.584 308.224-320.512 92.16 112.64-413.696 431.104-3.072-7.168zM928.768 705.536q19.456 0 37.376 7.68t30.72 20.48 20.48 30.208 7.68 36.864q0 20.48-7.68 37.888t-20.48 30.208-30.72 20.48-37.376 7.68l-832.512 0q-20.48 0-37.888-7.68t-30.208-20.48-20.48-30.208-7.68-37.888l0-640q0-19.456 7.68-37.376t20.48-30.72 30.208-20.48 37.888-7.68q19.456 0 37.376 7.68t30.72 20.48 20.48 30.72 7.68 37.376l0 544.768 736.256 0z"
|
||||
p-id="4208"></path>
|
||||
|
@ -1,10 +1,18 @@
|
||||
<template>
|
||||
<svg class="icon" height="200" p-id="2826" t="1679624385345" version="1.1" viewBox="0 0 1024 1024" width="200" xmlns="http://www.w3.org/2000/svg">
|
||||
<svg
|
||||
class="icon"
|
||||
height="128"
|
||||
p-id="13280"
|
||||
t="1706508686630"
|
||||
version="1.1"
|
||||
viewBox="0 0 1024 1024"
|
||||
width="128"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M831.825474 63.940169H191.939717C121.2479 63.940169 63.940169 121.2479 63.940169 191.939717v639.885757C63.940169 902.517291 121.2479 959.825022 191.939717 959.825022h639.885757c70.691817 0 127.999548-57.307731 127.999548-127.999548V191.939717C959.825022 121.2479 902.517291 63.940169 831.825474 63.940169zM895.884854 831.998871A63.835408 63.835408 0 0 1 831.912173 895.884854H192.087827c-17.112123 0-33.270563-6.574639-45.372232-18.67631S127.880338 849.110994 127.880338 831.998871V192.001129A64.236389 64.236389 0 0 1 192.087827 127.880338h639.824346A64.037705 64.037705 0 0 1 895.884854 192.001129v639.997742z"
|
||||
p-id="2827"></path>
|
||||
p-id="13281"></path>
|
||||
<path
|
||||
d="M791.998335 351.851551h-255.999097a31.970084 31.970084 0 0 0 0 63.940169h255.999097a31.970084 31.970084 0 0 0 0-63.940169zM791.998335 607.973471h-255.999097a31.970084 31.970084 0 0 0 0 63.940169h255.999097a31.970084 31.970084 0 0 0 0-63.940169zM344.001722 527.997686c-61.855792 0-111.985607 50.144265-111.985607 111.985606s50.144265 111.985607 111.985607 111.985607 111.985607-50.144265 111.985606-111.985607-50.129815-111.985607-111.985606-111.985606z m33.982213 145.982269a48.045438 48.045438 0 1 1 14.088511-33.982213 47.745605 47.745605 0 0 1-14.088511 33.985826zM417.395643 297.394035L311.999125 402.78694 270.6078 361.392003a31.970084 31.970084 0 1 0-45.213286 45.213285l63.997968 64.001581a31.970084 31.970084 0 0 0 45.213286 0l127.999548-127.999549a31.970084 31.970084 0 0 0-45.209673-45.213285z"
|
||||
p-id="2828"></path>
|
||||
p-id="13282"></path>
|
||||
</svg>
|
||||
</template>
|
@ -1,56 +1,56 @@
|
||||
export { default as Vue } from './Vue.vue'
|
||||
export { default as Code } from './Code.vue'
|
||||
export { default as Wechat } from './Wechat.vue'
|
||||
export { default as BugFill } from './BugFill.vue'
|
||||
export { default as BugLine } from './BugLine.vue'
|
||||
export { default as FileWord } from './FileWord.vue'
|
||||
export { default as FileExcel } from './FileExcel.vue'
|
||||
export { default as FilePpt } from './FilePpt.vue'
|
||||
export { default as Organization } from './Organization.vue'
|
||||
export { default as Upload } from './Upload.vue'
|
||||
export { default as Download } from './Download.vue'
|
||||
export { default as Role } from './Role.vue'
|
||||
export { default as Dept } from './Dept.vue'
|
||||
export { default as Js } from './Js.vue'
|
||||
export { default as Memory } from './Memory.vue'
|
||||
export { default as Dashboard } from './Dashboard.vue'
|
||||
export { default as Alert } from './Alert.vue'
|
||||
export { default as Api } from './Api.vue'
|
||||
export { default as Code2 } from './Code2.vue'
|
||||
export { default as Csharp } from './Csharp.vue'
|
||||
export { default as Dic } from './Dic.vue'
|
||||
export { default as Position } from './Position.vue'
|
||||
export { default as Tpl } from './Tpl.vue'
|
||||
export { default as Demo } from './Demo.vue'
|
||||
export { default as Link } from './Link.vue'
|
||||
export { default as Unlink } from './Unlink.vue'
|
||||
export { default as Send } from './Send.vue'
|
||||
export { default as SmsCode } from './SmsCode.vue'
|
||||
export { default as Meter } from './Meter.vue'
|
||||
export { default as Grafana } from './Grafana.vue'
|
||||
export { default as Elastic } from './Elastic.vue'
|
||||
export { default as Kibana } from './Kibana.vue'
|
||||
export { default as Kafka } from './Kafka.vue'
|
||||
export { default as Resource } from './Resource.vue'
|
||||
export { default as Robot } from './Robot.vue'
|
||||
export { default as Device } from './Device.vue'
|
||||
export { default as Business } from './Business.vue'
|
||||
export { default as App } from './App.vue'
|
||||
export { default as App2 } from './App2.vue'
|
||||
export { default as Sync } from './Sync.vue'
|
||||
export { default as Drone } from './Drone.vue'
|
||||
export { default as Gitea } from './Gitea.vue'
|
||||
export { default as BugFill } from './BugFill.vue'
|
||||
export { default as BugLine } from './BugLine.vue'
|
||||
export { default as Business } from './Business.vue'
|
||||
export { default as Code } from './Code.vue'
|
||||
export { default as Code2 } from './Code2.vue'
|
||||
export { default as Csharp } from './Csharp.vue'
|
||||
export { default as Dashboard } from './Dashboard.vue'
|
||||
export { default as Demo } from './Demo.vue'
|
||||
export { default as Dept } from './Dept.vue'
|
||||
export { default as Device } from './Device.vue'
|
||||
export { default as Dic } from './Dic.vue'
|
||||
export { default as Docker } from './Docker.vue'
|
||||
export { default as Task } from './Task.vue'
|
||||
export { default as ProductCategory } from './ProductCategory.vue'
|
||||
export { default as Product } from './Product.vue'
|
||||
export { default as Download } from './Download.vue'
|
||||
export { default as Drone } from './Drone.vue'
|
||||
export { default as Elastic } from './Elastic.vue'
|
||||
export { default as Error } from './Error.vue'
|
||||
export { default as Warning } from './Warning.vue'
|
||||
export { default as Stats } from './Stats.vue'
|
||||
export { default as Log } from './Log.vue'
|
||||
export { default as OperLog } from './OperLog.vue'
|
||||
export { default as LoginLog } from './LoginLog.vue'
|
||||
export { default as ExLog } from './ExLog.vue'
|
||||
export { default as FileExcel } from './FileExcel.vue'
|
||||
export { default as FilePpt } from './FilePpt.vue'
|
||||
export { default as FileWord } from './FileWord.vue'
|
||||
export { default as Gitea } from './Gitea.vue'
|
||||
export { default as Grafana } from './Grafana.vue'
|
||||
export { default as Js } from './Js.vue'
|
||||
export { default as Kafka } from './Kafka.vue'
|
||||
export { default as Key } from './Key.vue'
|
||||
export { default as Kibana } from './Kibana.vue'
|
||||
export { default as Link } from './Link.vue'
|
||||
export { default as Log } from './Log.vue'
|
||||
export { default as LoginLog } from './LoginLog.vue'
|
||||
export { default as Memory } from './Memory.vue'
|
||||
export { default as Meter } from './Meter.vue'
|
||||
export { default as OpenDoor } from './OpenDoor.vue'
|
||||
export { default as Alert } from './Alert.vue'
|
||||
export { default as ScheduledJob } from './ScheduledJob.vue'
|
||||
export { default as OperLog } from './OperLog.vue'
|
||||
export { default as Organization } from './Organization.vue'
|
||||
export { default as Position } from './Position.vue'
|
||||
export { default as Product } from './Product.vue'
|
||||
export { default as ProductCategory } from './ProductCategory.vue'
|
||||
export { default as Resource } from './Resource.vue'
|
||||
export { default as Robot } from './Robot.vue'
|
||||
export { default as Role } from './Role.vue'
|
||||
export { default as ScheduledJob } from './ScheduledJob.vue'
|
||||
export { default as Send } from './Send.vue'
|
||||
export { default as SmsCode } from './SmsCode.vue'
|
||||
export { default as Stats } from './Stats.vue'
|
||||
export { default as Sync } from './Sync.vue'
|
||||
export { default as Task } from './Task.vue'
|
||||
export { default as Tpl } from './Tpl.vue'
|
||||
export { default as Unlink } from './Unlink.vue'
|
||||
export { default as Upload } from './Upload.vue'
|
||||
export { default as Vue } from './Vue.vue'
|
||||
export { default as Warning } from './Warning.vue'
|
||||
export { default as Wechat } from './Wechat.vue'
|
@ -1,16 +1,16 @@
|
||||
<template>
|
||||
<sc-table-select
|
||||
ref="area"
|
||||
v-model="area"
|
||||
:apiObj="$API.sys_dic.pagedQueryContent"
|
||||
:params="form"
|
||||
:props="{ label: 'key', value: 'value' }"
|
||||
:table-width="600"
|
||||
clearable>
|
||||
clearable
|
||||
ref="area">
|
||||
<template #header>
|
||||
<el-form :model="form">
|
||||
<el-form-item>
|
||||
<el-input v-model="form.keywords" clearable :placeholder="$t('请输入地区或代码')" @input="onInput"></el-input>
|
||||
<el-input v-model="form.keywords" :placeholder="$t('请输入地区或代码')" @input="onInput" clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-button icon="el-icon-plus" type="primary" @click="add"></el-button>
|
||||
<el-button @click="add" icon="el-icon-plus" type="primary"></el-button>
|
||||
</template>
|
||||
<style scoped></style>
|
||||
<script>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-button :disabled="vue.selection.length === 0" :loading="loading" icon="el-icon-delete" plain type="danger" @click="batchDel"></el-button>
|
||||
<el-button :disabled="vue.selection.length === 0" :loading="loading" @click="batchDel" icon="el-icon-delete" plain type="danger"></el-button>
|
||||
</template>
|
||||
<style scoped></style>
|
||||
<script>
|
||||
|
@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<el-table-column align="right" :label="$t('操作')">
|
||||
<el-table-column :label="$t('操作')" align="right">
|
||||
<template #default="scope">
|
||||
<el-button-group>
|
||||
<template v-for="(item, i) in buttons?.filter((x) => !x.condition || x.condition(scope))" :key="i">
|
||||
<el-popconfirm v-if="item.confirm" :title="`确定${item.title}吗?`" @confirm="item.click(scope.row, vue)">
|
||||
<template #reference>
|
||||
<el-button :icon="item.icon" :title="item.title" :type="item.type" size="small" @click.native.stop></el-button>
|
||||
<el-button :icon="item.icon" :title="item.title" :type="item.type" @click.native.stop size="small"></el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
<el-button v-else :icon="item.icon" :title="item.title" size="small" @click="item.click(scope.row, vue)"
|
||||
<el-button v-else :icon="item.icon" :title="item.title" @click="item.click(scope.row, vue)" size="small"
|
||||
>{{ item.title }}
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -13,17 +13,17 @@
|
||||
<div class="msg-yzm">
|
||||
<el-input
|
||||
v-model="form[Array.isArray(codeField) ? codeField[1] : codeField]"
|
||||
:placeholder="$t('邮箱验证码')"
|
||||
clearable
|
||||
maxlength="4"
|
||||
oninput="value=value.replace(/\D/g,'')"
|
||||
:placeholder="$t('邮箱验证码')"
|
||||
prefix-icon="el-icon-message"></el-input>
|
||||
<el-button :disabled="sendDisabled" @click="getYzm"
|
||||
>获取验证码<span v-if="sendDisabled"> ({{ waitSecs }})</span></el-button
|
||||
>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<na-verify ref="verify" :imgSize="{ width: '310px', height: '155px' }" captchaType="blockPuzzle" mode="pop" @success="captchaSuccess"></na-verify>
|
||||
<na-verify :imgSize="{ width: '310px', height: '155px' }" @success="captchaSuccess" captchaType="blockPuzzle" mode="pop" ref="verify"></na-verify>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -24,7 +24,7 @@
|
||||
>
|
||||
</div>
|
||||
</el-form-item>
|
||||
<na-verify ref="verify" :imgSize="{ width: '310px', height: '155px' }" captchaType="blockPuzzle" mode="pop" @success="captchaSuccess"></na-verify>
|
||||
<na-verify :imgSize="{ width: '310px', height: '155px' }" @success="captchaSuccess" captchaType="blockPuzzle" mode="pop" ref="verify"></na-verify>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-drawer v-model="visible" :size="size" :title="title" destroy-on-close @closed="$emit('closed')">
|
||||
<el-drawer v-model="visible" :size="size" :title="title" @closed="$emit('closed')" destroy-on-close>
|
||||
<el-main>
|
||||
<el-descriptions :column="1" border size="small">
|
||||
<el-descriptions-item v-for="(item, i) in data" :key="i" :label="i" label-class-name="w15">
|
||||
|
@ -1,8 +1,10 @@
|
||||
<template>
|
||||
<form class="right-panel-search" @keyup.enter="search" @submit.prevent="search">
|
||||
<form @keyup.enter="search" @submit.prevent="search" class="right-panel-search">
|
||||
<el-date-picker
|
||||
v-if="hasDate"
|
||||
v-model="form.dy.createdTime"
|
||||
:end-placeholder="$t('结束日期')"
|
||||
:range-separator="$t('至')"
|
||||
:shortcuts="[
|
||||
{
|
||||
text: '今天',
|
||||
@ -68,10 +70,8 @@
|
||||
},
|
||||
},
|
||||
]"
|
||||
:teleported="false"
|
||||
:end-placeholder="$t('结束日期')"
|
||||
:range-separator="$t('至')"
|
||||
:start-placeholder="$t('开始日期')"
|
||||
:teleported="false"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD"></el-date-picker>
|
||||
|
||||
@ -118,8 +118,8 @@
|
||||
</template>
|
||||
|
||||
<el-button-group>
|
||||
<el-button icon="el-icon-search" type="primary" @click="search">查询</el-button>
|
||||
<el-button icon="el-icon-refresh-left" @click="tool.refreshTab(vue)">重置</el-button>
|
||||
<el-button @click="search" icon="el-icon-search" type="primary">查询</el-button>
|
||||
<el-button @click="tool.refreshTab(vue)" icon="el-icon-refresh-left">重置</el-button>
|
||||
</el-button-group>
|
||||
</form>
|
||||
</template>
|
||||
|
@ -1,20 +1,20 @@
|
||||
<template>
|
||||
<sc-table-select
|
||||
ref="user"
|
||||
v-model="user"
|
||||
:apiObj="$API.sys_user.pagedQuery"
|
||||
:params="form"
|
||||
:props="{ label: 'userName', value: 'id' }"
|
||||
:table-width="600"
|
||||
clearable>
|
||||
clearable
|
||||
ref="user">
|
||||
<template #header>
|
||||
<el-form :model="form">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="form.keywords"
|
||||
clearable
|
||||
:placeholder="$t('用户编号 / 用户名 / 手机号 / 邮箱 / 备注')"
|
||||
@input="onInput"></el-input>
|
||||
@input="onInput"
|
||||
clearable></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</template>
|
@ -3,16 +3,14 @@
|
||||
<div :class="mode === 'pop' ? 'verifybox' : ''" :style="{ 'max-width': parseInt(imgSize.width) + 30 + 'px' }">
|
||||
<div v-if="mode === 'pop'" class="verifybox-top">
|
||||
请完成安全验证
|
||||
<span class="verifybox-close" @click="closeBox">
|
||||
<span @click="closeBox" class="verifybox-close">
|
||||
<i class="iconfont icon-close"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div :style="{ padding: mode === 'pop' ? '1rem' : '0' }" class="verifybox-bottom">
|
||||
<!-- 验证码容器 -->
|
||||
<component
|
||||
:is="componentType"
|
||||
v-if="componentType"
|
||||
ref="instance"
|
||||
:arith="arith"
|
||||
:barSize="barSize"
|
||||
:blockSize="blockSize"
|
||||
@ -20,10 +18,12 @@
|
||||
:explain="explain"
|
||||
:figure="figure"
|
||||
:imgSize="imgSize"
|
||||
:is="componentType"
|
||||
:mode="mode"
|
||||
:tpl="tpl"
|
||||
:type="verifyType"
|
||||
:vSpace="vSpace"></component>
|
||||
:vSpace="vSpace"
|
||||
ref="instance"></component>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<div v-if="type === '2'" :style="{ height: parseInt(setSize.imgHeight) + vSpace + 'px' }" class="verify-img-out">
|
||||
<div :style="{ width: setSize.imgWidth, height: setSize.imgHeight }" class="verify-img-panel">
|
||||
<img :src="backImgBase" alt="" style="width: 100%; height: 100%; display: block" />
|
||||
<div v-show="showRefresh" class="verify-refresh" @click="refresh">
|
||||
<div v-show="showRefresh" @click="refresh" class="verify-refresh">
|
||||
<i class="iconfont icon-refresh"></i>
|
||||
</div>
|
||||
<transition name="tips">
|
||||
@ -19,7 +19,7 @@
|
||||
'line-height': barSize.height,
|
||||
}"
|
||||
class="verify-bar-area">
|
||||
<span class="verify-msg" v-text="text"></span>
|
||||
<span v-text="text" class="verify-msg"></span>
|
||||
<div
|
||||
:style="{
|
||||
width: leftBarWidth !== undefined ? leftBarWidth : barSize.height,
|
||||
@ -28,7 +28,7 @@
|
||||
transaction: transitionWidth,
|
||||
}"
|
||||
class="verify-left-bar">
|
||||
<span class="verify-msg" v-text="finishText"></span>
|
||||
<span v-text="finishText" class="verify-msg"></span>
|
||||
<div
|
||||
:style="{
|
||||
width: barSize.height,
|
||||
@ -37,9 +37,9 @@
|
||||
left: moveBlockLeft,
|
||||
transition: transitionLeft,
|
||||
}"
|
||||
class="verify-move-block"
|
||||
@mousedown="start"
|
||||
@touchstart="start">
|
||||
@touchstart="start"
|
||||
class="verify-move-block">
|
||||
<i :class="['verify-icon iconfont', iconClass]" :style="{ color: iconColor }"></i>
|
||||
<div
|
||||
v-if="type === '2'"
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
<template>
|
||||
<transition name="el-zoom-in-top">
|
||||
<div v-if="visible" ref="contextmenu" :style="{ left: left + 'px', top: top + 'px' }" class="sc-contextmenu" @contextmenu.prevent="fun">
|
||||
<div v-if="visible" :style="{ left: left + 'px', top: top + 'px' }" @contextmenu.prevent="fun" class="sc-contextmenu" ref="contextmenu">
|
||||
<ul class="sc-contextmenu__menu">
|
||||
<slot></slot>
|
||||
</ul>
|
||||
|
@ -9,9 +9,9 @@
|
||||
|
||||
<template>
|
||||
<hr v-if="divided" />
|
||||
<li :class="disabled ? 'disabled' : ''" @mouseenter="openSubmenu($event)" @mouseleave="closeSubmenu($event)" @click.stop="liClick">
|
||||
<li :class="disabled ? 'disabled' : ''" @click.stop="liClick" @mouseenter="openSubmenu($event)" @mouseleave="closeSubmenu($event)">
|
||||
<span class="title">
|
||||
<el-icon class="sc-contextmenu__icon"><component :is="icon" v-if="icon" /></el-icon>
|
||||
<el-icon class="sc-contextmenu__icon"><component v-if="icon" :is="icon" /></el-icon>
|
||||
{{ title }}
|
||||
</span>
|
||||
<span class="sc-contextmenu__suffix">
|
||||
|
@ -8,9 +8,9 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<el-input v-model="defaultValue" v-bind="$attrs">
|
||||
<el-input v-bind="$attrs" v-model="defaultValue">
|
||||
<template #append>
|
||||
<el-dropdown size="medium" @command="handleShortcuts">
|
||||
<el-dropdown @command="handleShortcuts" size="medium">
|
||||
<el-button icon="el-icon-arrow-down"></el-button>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
@ -20,7 +20,7 @@
|
||||
<el-dropdown-item command="0 0 0 1 * ?">每月一号零点</el-dropdown-item>
|
||||
<el-dropdown-item command="0 0 0 L * ?">每月最后一天零点</el-dropdown-item>
|
||||
<el-dropdown-item command="0 0 0 ? * 1">每周星期日零点</el-dropdown-item>
|
||||
<el-dropdown-item v-for="(item, index) in shortcuts" :key="item.value" :command="item.value" :divided="index == 0"
|
||||
<el-dropdown-item v-for="(item, index) in shortcuts" :command="item.value" :divided="index == 0" :key="item.value"
|
||||
>{{ item.text }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item command="custom" divided icon="el-icon-plus">自定义</el-dropdown-item>
|
||||
@ -295,7 +295,7 @@
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="submit()">确 认</el-button>
|
||||
<el-button @click="submit()" type="primary">确 认</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
@ -11,11 +11,11 @@
|
||||
<template>
|
||||
<div class="sc-cropper">
|
||||
<div class="sc-cropper__img">
|
||||
<img ref="img" :src="src" />
|
||||
<img :src="src" ref="img" />
|
||||
</div>
|
||||
<div class="sc-cropper__preview">
|
||||
<h4>图像预览</h4>
|
||||
<div ref="preview" class="sc-cropper__preview__img"></div>
|
||||
<div class="sc-cropper__preview__img" ref="preview"></div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -8,14 +8,14 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div ref="scDialog" class="sc-dialog">
|
||||
<el-dialog ref="dialog" v-model="dialogVisible" :fullscreen="isFullscreen" :show-close="false" v-bind="$attrs">
|
||||
<div class="sc-dialog" ref="scDialog">
|
||||
<el-dialog v-bind="$attrs" v-model="dialogVisible" :fullscreen="isFullscreen" :show-close="false" ref="dialog">
|
||||
<template #header>
|
||||
<slot name="header">
|
||||
<span class="el-dialog__title">{{ title }}</span>
|
||||
</slot>
|
||||
<div class="sc-dialog__headerbtn">
|
||||
<button v-if="showFullscreen" aria-label="fullscreen" type="button" @click="setFullscreen">
|
||||
<button v-if="showFullscreen" @click="setFullscreen" aria-label="fullscreen" type="button">
|
||||
<el-icon v-if="isFullscreen" class="el-dialog__close">
|
||||
<el-icon-bottom-left />
|
||||
</el-icon>
|
||||
@ -23,7 +23,7 @@
|
||||
<el-icon-full-screen />
|
||||
</el-icon>
|
||||
</button>
|
||||
<button v-if="showClose" aria-label="close" type="button" @click="closeDialog">
|
||||
<button v-if="showClose" @click="closeDialog" aria-label="close" type="button">
|
||||
<el-icon class="el-dialog__close">
|
||||
<el-icon-close />
|
||||
</el-icon>
|
||||
@ -48,19 +48,17 @@ export default {
|
||||
showClose: { type: Boolean, default: true },
|
||||
showFullscreen: { type: Boolean, default: true },
|
||||
loading: { type: Boolean, default: false },
|
||||
fullScreen: { type: Boolean, default: false },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: false,
|
||||
isFullscreen: false,
|
||||
isFullscreen: this.fullScreen,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
modelValue() {
|
||||
this.dialogVisible = this.modelValue
|
||||
if (this.dialogVisible) {
|
||||
this.isFullscreen = false
|
||||
}
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div ref="scEcharts" :style="{ height: height, width: width }"></div>
|
||||
<div :style="{ height: height, width: width }" ref="scEcharts"></div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-table ref="table" :data="columnData" border row-key="prop" style="width: 100%">
|
||||
<el-table :data="columnData" border ref="table" row-key="prop" style="width: 100%">
|
||||
<el-table-column :label="$t('排序')" prop="" width="60">
|
||||
<el-tag class="move" disable-transitions style="cursor: move">
|
||||
<el-icon style="cursor: move">
|
||||
|
@ -9,9 +9,9 @@
|
||||
|
||||
<template>
|
||||
<slot :open="open">
|
||||
<el-button plain type="primary" @click="open">导出</el-button>
|
||||
<el-button @click="open" plain type="primary">导出</el-button>
|
||||
</slot>
|
||||
<el-drawer v-model="dialog" :size="400" append-to-body destroy-on-close direction="rtl" :title="$t('导出')">
|
||||
<el-drawer v-model="dialog" :size="400" :title="$t('导出')" append-to-body destroy-on-close direction="rtl">
|
||||
<el-main style="padding: 0 20px 20px 20px">
|
||||
<div v-loading="downLoading" :element-loading-text="$t('正在处理中...')">
|
||||
<div
|
||||
@ -35,14 +35,14 @@
|
||||
<el-button
|
||||
v-if="async"
|
||||
:loading="asyncLoading"
|
||||
@click="download"
|
||||
icon="el-icon-plus"
|
||||
size="large"
|
||||
style="width: 100%"
|
||||
type="primary"
|
||||
@click="download"
|
||||
>发起导出任务
|
||||
</el-button>
|
||||
<el-button v-else icon="el-icon-download" size="large" style="width: 100%" type="primary" @click="download">下 载</el-button>
|
||||
<el-button v-else @click="download" icon="el-icon-download" size="large" style="width: 100%" type="primary">下 载</el-button>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane v-if="columnData.length > 0" :label="$t('列设置')" lazy>
|
||||
<columnSet :column="columnData"></columnSet>
|
||||
|
@ -9,13 +9,12 @@
|
||||
|
||||
<template>
|
||||
<slot :open="open">
|
||||
<el-button plain type="primary" @click="open">导入</el-button>
|
||||
<el-button @click="open" plain type="primary">导入</el-button>
|
||||
</slot>
|
||||
<el-dialog v-model="dialog" :close-on-click-modal="false" :width="550" append-to-body destroy-on-close :title="$t('导入')">
|
||||
<el-dialog v-model="dialog" :close-on-click-modal="false" :title="$t('导入')" :width="550" append-to-body destroy-on-close>
|
||||
<el-progress v-if="loading" :percentage="percentage" :stroke-width="20" :text-inside="true" style="margin-bottom: 1rem" />
|
||||
<div v-loading="loading">
|
||||
<el-upload
|
||||
ref="uploader"
|
||||
:accept="accept"
|
||||
:before-upload="before"
|
||||
:data="data"
|
||||
@ -26,7 +25,8 @@
|
||||
:on-progress="progress"
|
||||
:on-success="success"
|
||||
:show-file-list="false"
|
||||
drag>
|
||||
drag
|
||||
ref="uploader">
|
||||
<slot name="uploader">
|
||||
<el-icon class="el-icon--upload">
|
||||
<el-icon-upload-filled />
|
||||
|
@ -12,14 +12,14 @@
|
||||
<div v-loading="menuLoading" class="sc-file-select__side">
|
||||
<div class="sc-file-select__side-menu">
|
||||
<el-tree
|
||||
ref="group"
|
||||
:current-node-key="menu.length > 0 ? menu[0][treeProps.key] : ''"
|
||||
:data="menu"
|
||||
:node-key="treeProps.key"
|
||||
:props="treeProps"
|
||||
@node-click="groupClick"
|
||||
class="menu"
|
||||
highlight-current
|
||||
@node-click="groupClick">
|
||||
ref="group">
|
||||
<template #default="{ node }">
|
||||
<span class="el-tree-node__label">
|
||||
<el-icon class="icon"><el-icon-folder /></el-icon>{{ node.label }}
|
||||
@ -55,16 +55,16 @@
|
||||
<div class="keyword">
|
||||
<el-input
|
||||
v-model="keyword"
|
||||
clearable
|
||||
:placeholder="$t('文件名搜索')"
|
||||
prefix-icon="el-icon-search"
|
||||
@clear="search"
|
||||
@keyup.enter="search"></el-input>
|
||||
@keyup.enter="search"
|
||||
clearable
|
||||
prefix-icon="el-icon-search"></el-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sc-file-select__list">
|
||||
<el-scrollbar ref="scrollbar">
|
||||
<el-empty v-if="fileList.length === 0 && data.length === 0" :image-size="80" :description="$t('无数据')"></el-empty>
|
||||
<el-empty v-if="fileList.length === 0 && data.length === 0" :description="$t('无数据')" :image-size="80"></el-empty>
|
||||
<div v-for="(file, index) in fileList" :key="index" class="sc-file-select__item">
|
||||
<div class="sc-file-select__item__file">
|
||||
<div class="sc-file-select__item__upload">
|
||||
@ -76,10 +76,10 @@
|
||||
</div>
|
||||
<div
|
||||
v-for="item in data"
|
||||
:key="item[fileProps.key]"
|
||||
:class="{ active: value.includes(item[fileProps.url]) }"
|
||||
class="sc-file-select__item"
|
||||
@click="select(item)">
|
||||
:key="item[fileProps.key]"
|
||||
@click="select(item)"
|
||||
class="sc-file-select__item">
|
||||
<div class="sc-file-select__item__file">
|
||||
<div v-if="multiple" class="sc-file-select__item__checkbox">
|
||||
<el-icon>
|
||||
@ -110,14 +110,14 @@
|
||||
v-model:currentPage="currentPage"
|
||||
:page-size="pageSize"
|
||||
:total="total"
|
||||
@current-change="reload"
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
small
|
||||
@current-change="reload"></el-pagination>
|
||||
small></el-pagination>
|
||||
</div>
|
||||
<div class="sc-file-select__do">
|
||||
<slot name="do"></slot>
|
||||
<el-button :disabled="value.length <= 0" type="primary" @click="submit">确 定</el-button>
|
||||
<el-button :disabled="value.length <= 0" @click="submit" type="primary">确 定</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -11,11 +11,11 @@
|
||||
<div class="sc-filterBar">
|
||||
<slot :filterLength="filterObjLength" :openFilter="openFilter">
|
||||
<el-badge :hidden="filterObjLength <= 0" :value="filterObjLength" type="danger">
|
||||
<el-button icon="el-icon-filter" @click="openFilter"></el-button>
|
||||
<el-button @click="openFilter" icon="el-icon-filter"></el-button>
|
||||
</el-badge>
|
||||
</slot>
|
||||
|
||||
<el-drawer v-model="drawer" :size="650" append-to-body :title="$t('过滤器')">
|
||||
<el-drawer v-model="drawer" :size="650" :title="$t('过滤器')" append-to-body>
|
||||
<el-container v-loading="saveLoading">
|
||||
<el-main style="padding: 0">
|
||||
<el-tabs class="root">
|
||||
@ -44,9 +44,9 @@
|
||||
v-model="item.field"
|
||||
:filter="filter"
|
||||
:options="fields"
|
||||
filterable
|
||||
:placeholder="$t('过滤字段')"
|
||||
@change="fieldChange(item)">
|
||||
@change="fieldChange(item)"
|
||||
filterable>
|
||||
</py-select>
|
||||
</td>
|
||||
<td v-if="showOperator">
|
||||
@ -62,8 +62,8 @@
|
||||
<el-input
|
||||
v-if="!item.field.type"
|
||||
v-model="item.value"
|
||||
disabled
|
||||
:placeholder="$t('请选择过滤字段')"></el-input>
|
||||
:placeholder="$t('请选择过滤字段')"
|
||||
disabled></el-input>
|
||||
<!-- 输入框 -->
|
||||
<el-input
|
||||
v-if="item.field.type === 'text'"
|
||||
@ -82,8 +82,8 @@
|
||||
remoteMethod(query, item)
|
||||
}
|
||||
"
|
||||
filterable
|
||||
@visible-change="visibleChange($event, item)">
|
||||
@visible-change="visibleChange($event, item)"
|
||||
filterable>
|
||||
<el-option
|
||||
v-for="field in item.field.extend.data"
|
||||
:key="field.value"
|
||||
@ -152,13 +152,13 @@
|
||||
no-data-text="$t('输入关键词后按回车确认')"></el-select>
|
||||
</td>
|
||||
<td>
|
||||
<el-icon class="del" @click="delFilter(index)">
|
||||
<el-icon @click="delFilter(index)" class="del">
|
||||
<el-icon-delete />
|
||||
</el-icon>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<el-button icon="el-icon-plus" text type="primary" @click="addFilter">增加过滤项</el-button>
|
||||
<el-button @click="addFilter" icon="el-icon-plus" text type="primary">增加过滤项</el-button>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</el-tab-pane>
|
||||
@ -167,14 +167,14 @@
|
||||
<div class="tabs-label">常用</div>
|
||||
</template>
|
||||
<el-scrollbar>
|
||||
<my ref="my" :data="myFilter" :filterName="filterName" @selectMyfilter="selectMyfilter"></my>
|
||||
<my :data="myFilter" :filterName="filterName" @selectMyfilter="selectMyfilter" ref="my"></my>
|
||||
</el-scrollbar>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<el-button :disabled="filter.length <= 0" type="primary" @click="ok">立即过滤</el-button>
|
||||
<el-button :disabled="filter.length <= 0" plain type="primary" @click="saveMy">另存为常用</el-button>
|
||||
<el-button :disabled="filter.length <= 0" @click="ok" type="primary">立即过滤</el-button>
|
||||
<el-button :disabled="filter.length <= 0" @click="saveMy" plain type="primary">另存为常用</el-button>
|
||||
<el-button @click="clear">清空过滤</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
|
@ -25,7 +25,7 @@
|
||||
<label>{{ item.title }}</label>
|
||||
<el-popconfirm :title="$t('确认删除此常用过滤吗?')" @confirm="closeMyfilter(item, index)">
|
||||
<template #reference>
|
||||
<el-icon class="del" @click.stop="() => {}">
|
||||
<el-icon @click.stop="() => {}" class="del">
|
||||
<el-icon-delete />
|
||||
</el-icon>
|
||||
</template>
|
||||
|
@ -8,11 +8,11 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<el-select :filter-method="filterMethod" v-bind="$attrs" @visible-change="visibleChange">
|
||||
<el-select v-bind="$attrs" :filter-method="filterMethod" @visible-change="visibleChange">
|
||||
<el-option
|
||||
v-for="field in optionsList"
|
||||
:key="field.value"
|
||||
:disabled="isDisabled(field.value)"
|
||||
:key="field.value"
|
||||
:label="field.label"
|
||||
:value="field"></el-option>
|
||||
</el-select>
|
||||
|
@ -12,12 +12,12 @@
|
||||
|
||||
<el-form
|
||||
v-else
|
||||
ref="form"
|
||||
v-loading="loading"
|
||||
:label-position="config.labelPosition"
|
||||
:label-width="config.labelWidth"
|
||||
:model="form"
|
||||
element-loading-text="Loading...">
|
||||
element-loading-text="Loading..."
|
||||
ref="form">
|
||||
<el-row :gutter="15">
|
||||
<template v-for="(item, index) in config.formItems" :key="index">
|
||||
<el-col v-if="!hideHandle(item)" :span="item.span || 24">
|
||||
@ -45,15 +45,15 @@
|
||||
<template v-if="item.name">
|
||||
<el-checkbox
|
||||
v-for="(_item, _index) in item.options.items"
|
||||
:key="_index"
|
||||
v-model="form[item.name][_item.name]"
|
||||
:key="_index"
|
||||
:label="_item.label"></el-checkbox>
|
||||
</template>
|
||||
<template v-else>
|
||||
<el-checkbox
|
||||
v-for="(_item, _index) in item.options.items"
|
||||
:key="_index"
|
||||
v-model="form[_item.name]"
|
||||
:key="_index"
|
||||
:label="_item.label"></el-checkbox>
|
||||
</template>
|
||||
</template>
|
||||
@ -148,7 +148,7 @@
|
||||
<el-col :span="24">
|
||||
<el-form-item>
|
||||
<slot>
|
||||
<el-button type="primary" @click="submit">提交</el-button>
|
||||
<el-button @click="submit" type="primary">提交</el-button>
|
||||
</slot>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -8,23 +8,23 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div ref="scFormTable" class="sc-form-table">
|
||||
<el-table ref="table" :data="data" border stripe>
|
||||
<div class="sc-form-table" ref="scFormTable">
|
||||
<el-table :data="data" border ref="table" stripe>
|
||||
<el-table-column fixed="left" type="index" width="50">
|
||||
<template #header>
|
||||
<el-button v-if="!hideAdd" circle icon="el-icon-plus" size="small" type="primary" @click="rowAdd"></el-button>
|
||||
<el-button v-if="!hideAdd" @click="rowAdd" circle icon="el-icon-plus" size="small" type="primary"></el-button>
|
||||
</template>
|
||||
<template #default="scope">
|
||||
<div :class="['sc-form-table-handle', { 'sc-form-table-handle-delete': !hideDelete }]">
|
||||
<span>{{ scope.$index + 1 }}</span>
|
||||
<el-button
|
||||
v-if="!hideDelete"
|
||||
@click="rowDel(scope.row, scope.$index)"
|
||||
circle
|
||||
icon="el-icon-delete"
|
||||
plain
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="rowDel(scope.row, scope.$index)"></el-button>
|
||||
type="danger"></el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
@ -9,18 +9,18 @@
|
||||
|
||||
<template>
|
||||
<div class="sc-icon-select">
|
||||
<div :class="{ hasValue: value }" class="sc-icon-select__wrapper" @click="open">
|
||||
<div :class="{ hasValue: value }" @click="open" class="sc-icon-select__wrapper">
|
||||
<el-input v-model="value" :disabled="disabled" :prefix-icon="value || 'el-icon-plus'" readonly></el-input>
|
||||
</div>
|
||||
<el-dialog v-model="dialogVisible" :width="760" append-to-body destroy-on-close :title="$t('图标选择器')">
|
||||
<el-dialog v-model="dialogVisible" :title="$t('图标选择器')" :width="760" append-to-body destroy-on-close>
|
||||
<div class="sc-icon-select__dialog" style="margin: -20px 0 -10px 0">
|
||||
<el-form :rules="{}">
|
||||
<el-form-item prop="searchText">
|
||||
<el-input
|
||||
v-model="searchText"
|
||||
:placeholder="$t('搜索')"
|
||||
class="sc-icon-select__search-input"
|
||||
clearable
|
||||
:placeholder="$t('搜索')"
|
||||
prefix-icon="el-icon-search"
|
||||
size="large" />
|
||||
</el-form-item>
|
||||
@ -34,7 +34,7 @@
|
||||
<div class="sc-icon-select__list">
|
||||
<el-scrollbar>
|
||||
<ul @click="selectIcon">
|
||||
<el-empty v-if="item.icons.length === 0" :image-size="100" :description="$t('未查询到相关图标')" />
|
||||
<el-empty v-if="item.icons.length === 0" :description="$t('未查询到相关图标')" :image-size="100" />
|
||||
<li v-for="icon in item.icons" :key="icon">
|
||||
<span :data-icon="icon"></span>
|
||||
<el-icon>
|
||||
@ -48,7 +48,7 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button text @click="clear">清除</el-button>
|
||||
<el-button @click="clear" text>清除</el-button>
|
||||
<el-button @click="dialogVisible = false">取消</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<el-icon-loading />
|
||||
</el-icon>
|
||||
</div>
|
||||
<el-select :loading="loading" v-bind="$attrs" @visible-change="visibleChange">
|
||||
<el-select v-bind="$attrs" :loading="loading" @visible-change="visibleChange">
|
||||
<el-option v-for="item in options" :key="item[props.value]" :label="item[props.label]" :value="objValueType ? item : item[props.value]">
|
||||
<slot :data="item" name="option"></slot>
|
||||
</el-option>
|
||||
|
@ -18,8 +18,8 @@
|
||||
<ul>
|
||||
<li
|
||||
v-for="option in item.options"
|
||||
:key="option.value"
|
||||
:class="{ active: selected[item.key] && selected[item.key].includes(option.value) }"
|
||||
:key="option.value"
|
||||
@click="select(option, item)">
|
||||
<el-icon v-if="option.icon">
|
||||
<component :is="option.icon" />
|
||||
|
@ -8,7 +8,7 @@
|
||||
<span class="sortable_b">排序</span>
|
||||
<span class="fixed_b">固定</span>
|
||||
</div>
|
||||
<div ref="list" class="setting-column__list">
|
||||
<div class="setting-column__list" ref="list">
|
||||
<ul>
|
||||
<li v-for="item in usercolumn" :key="item.prop">
|
||||
<span class="move_b">
|
||||
@ -32,10 +32,10 @@
|
||||
</div>
|
||||
<div class="setting-column__bottom">
|
||||
<el-button :disabled="isSave" @click="backDefaul">重置</el-button>
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<el-button @click="save" type="primary">保存</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-empty v-else :image-size="80" :description="$t('暂无可配置的列')"></el-empty>
|
||||
<el-empty v-else :description="$t('暂无可配置的列')" :image-size="80"></el-empty>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -7,24 +7,24 @@
|
||||
* @LastEditTime: 2023年3月2日10:43:35
|
||||
-->
|
||||
<template>
|
||||
<div ref="scTableMain" v-loading="loading" :style="{ height: _height }" class="scTable">
|
||||
<div v-loading="loading" :style="{ height: _height }" class="scTable" ref="scTableMain">
|
||||
<div :style="{ height: _table_height }" class="scTable-table">
|
||||
<el-table
|
||||
:key="toggleIndex"
|
||||
ref="scTable"
|
||||
v-bind="$attrs"
|
||||
:border="config.border"
|
||||
:data="tableData"
|
||||
:default-expand-all="config.defaultExpandAll"
|
||||
:default-sort="defaultSort"
|
||||
:height="height === 'auto' ? null : '100%'"
|
||||
:key="toggleIndex"
|
||||
:row-key="rowKey"
|
||||
:size="config.size"
|
||||
:stripe="config.stripe"
|
||||
:summary-method="remoteSummary ? remoteSummaryMethod : summaryMethod"
|
||||
v-bind="$attrs"
|
||||
@sort-change="sortChange"
|
||||
@cell-click="cellClickMethod"
|
||||
@filter-change="filterChange"
|
||||
@cell-click="cellClickMethod">
|
||||
@sort-change="sortChange"
|
||||
ref="scTable">
|
||||
<slot></slot>
|
||||
<template v-for="(item, index) in userColumn" :key="index">
|
||||
<el-table-column
|
||||
@ -39,7 +39,7 @@
|
||||
:sortable="item.sortable"
|
||||
:width="item.width">
|
||||
<template #default="scope">
|
||||
<slot :name="item.prop" v-bind="scope">
|
||||
<slot v-bind="scope" :name="item.prop">
|
||||
{{ scope.row[item.prop] }}
|
||||
</slot>
|
||||
</template>
|
||||
@ -61,39 +61,39 @@
|
||||
:page-sizes="pageSizes"
|
||||
:small="true"
|
||||
:total="total"
|
||||
background
|
||||
@current-change="paginationChange"
|
||||
@update:page-size="pageSizeChange"></el-pagination>
|
||||
@update:page-size="pageSizeChange"
|
||||
background></el-pagination>
|
||||
</div>
|
||||
<div v-if="!hideDo" class="scTable-do">
|
||||
<el-button v-if="!hideRefresh" circle icon="el-icon-refresh" style="margin-left: 1rem" @click="refresh"></el-button>
|
||||
<el-button v-if="!hideRefresh" @click="refresh" circle icon="el-icon-refresh" style="margin-left: 1rem"></el-button>
|
||||
<el-popover
|
||||
v-if="column"
|
||||
:hide-after="0"
|
||||
:width="500"
|
||||
placement="top"
|
||||
:title="$t('列设置')"
|
||||
trigger="click"
|
||||
:width="500"
|
||||
@after-leave="customColumnShow = false"
|
||||
@show="customColumnShow = true"
|
||||
@after-leave="customColumnShow = false">
|
||||
placement="top"
|
||||
trigger="click">
|
||||
<template #reference>
|
||||
<el-button circle icon="el-icon-set-up" style="margin-left: 1rem"></el-button>
|
||||
</template>
|
||||
<columnSetting
|
||||
v-if="customColumnShow"
|
||||
ref="columnSetting"
|
||||
:column="userColumn"
|
||||
@back="columnSettingBack"
|
||||
@save="columnSettingSave"
|
||||
@userChange="columnSettingChange"></columnSetting>
|
||||
@userChange="columnSettingChange"
|
||||
ref="columnSetting"></columnSetting>
|
||||
</el-popover>
|
||||
<el-popover v-if="!hideSetting" :hide-after="0" :width="400" placement="top" :title="$t('表格设置')" trigger="click">
|
||||
<el-popover v-if="!hideSetting" :hide-after="0" :title="$t('表格设置')" :width="400" placement="top" trigger="click">
|
||||
<template #reference>
|
||||
<el-button circle icon="el-icon-setting" style="margin-left: 1rem"></el-button>
|
||||
</template>
|
||||
<el-form label-position="left" label-width="80px">
|
||||
<el-form-item :label="$t('表格尺寸')">
|
||||
<el-radio-group v-model="config.size" size="small" @change="configSizeChange">
|
||||
<el-radio-group v-model="config.size" @change="configSizeChange" size="small">
|
||||
<el-radio-button label="large">大</el-radio-button>
|
||||
<el-radio-button label="default">正常</el-radio-button>
|
||||
<el-radio-button label="small">小</el-radio-button>
|
||||
|
@ -9,7 +9,6 @@
|
||||
|
||||
<template>
|
||||
<el-select
|
||||
ref="select"
|
||||
v-model="defaultValue"
|
||||
:clearable="clearable"
|
||||
:collapse-tags="collapseTags"
|
||||
@ -22,20 +21,21 @@
|
||||
:size="size"
|
||||
@clear="clear"
|
||||
@remove-tag="removeTag"
|
||||
@visible-change="visibleChange">
|
||||
@visible-change="visibleChange"
|
||||
ref="select">
|
||||
<template #empty>
|
||||
<div v-loading="loading" :style="{ width: tableWidth + 'px' }" class="sc-table-select__table">
|
||||
<div class="sc-table-select__header">
|
||||
<slot :form="formData" :submit="formSubmit" name="header"></slot>
|
||||
</div>
|
||||
<el-table
|
||||
ref="table"
|
||||
:data="tableData"
|
||||
:height="245"
|
||||
:highlight-current-row="!multiple"
|
||||
@select="select"
|
||||
@row-click="click"
|
||||
@select-all="selectAll">
|
||||
@select="select"
|
||||
@select-all="selectAll"
|
||||
max-height="30rem"
|
||||
ref="table">
|
||||
<el-table-column v-if="multiple" type="selection" width="45"></el-table-column>
|
||||
<el-table-column v-else type="index" width="45">
|
||||
<template #default="scope"
|
||||
@ -49,10 +49,10 @@
|
||||
v-model:currentPage="currentPage"
|
||||
:page-size="pageSize"
|
||||
:total="total"
|
||||
@current-change="reload"
|
||||
background
|
||||
layout="prev, pager, next"
|
||||
small
|
||||
@current-change="reload"></el-pagination>
|
||||
small></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
@ -182,7 +182,7 @@ export default {
|
||||
item.currentLabel = item.value[this.defaultProps.label]
|
||||
})
|
||||
} else {
|
||||
this.$refs.select.selectedLabel = this.defaultValue[this.defaultProps.label]
|
||||
this.$refs.select.states.selectedLabel = this.defaultValue[this.defaultProps.label]
|
||||
}
|
||||
})
|
||||
},
|
||||
|
@ -13,14 +13,13 @@
|
||||
</template>
|
||||
</el-image>
|
||||
<div v-if="!disabled" class="sc-upload__img-actions">
|
||||
<span class="del" @click="handleRemove()"
|
||||
<span @click="handleRemove()" class="del"
|
||||
><el-icon><el-icon-delete /></el-icon
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
<el-upload
|
||||
v-if="!file"
|
||||
ref="uploader"
|
||||
:accept="accept"
|
||||
:action="action"
|
||||
:auto-upload="cropper ? false : autoUpload"
|
||||
@ -35,7 +34,8 @@
|
||||
:on-exceed="handleExceed"
|
||||
:on-success="success"
|
||||
:show-file-list="showFileList"
|
||||
class="uploader">
|
||||
class="uploader"
|
||||
ref="uploader">
|
||||
<slot>
|
||||
<div class="el-upload--picture-card">
|
||||
<div class="file-empty">
|
||||
@ -48,11 +48,11 @@
|
||||
</slot>
|
||||
</el-upload>
|
||||
<span style="display: none !important"><el-input v-model="value"></el-input></span>
|
||||
<el-dialog v-model="cropperDialogVisible" :width="580" destroy-on-close draggable :title="$t('剪裁')" @closed="cropperClosed">
|
||||
<sc-cropper ref="cropper" :aspectRatio="aspectRatio" :compress="compress" :src="cropperFile.tempCropperFile"></sc-cropper>
|
||||
<el-dialog v-model="cropperDialogVisible" :title="$t('剪裁')" :width="580" @closed="cropperClosed" destroy-on-close draggable>
|
||||
<sc-cropper :aspectRatio="aspectRatio" :compress="compress" :src="cropperFile.tempCropperFile" ref="cropper"></sc-cropper>
|
||||
<template #footer>
|
||||
<el-button @click="cropperDialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="cropperSave">确 定</el-button>
|
||||
<el-button @click="cropperSave" type="primary">确 定</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
|
@ -1,7 +1,6 @@
|
||||
<template>
|
||||
<div class="sc-upload-multiple">
|
||||
<el-upload
|
||||
ref="uploader"
|
||||
v-model:file-list="defaultFileList"
|
||||
:accept="accept"
|
||||
:action="action"
|
||||
@ -18,7 +17,8 @@
|
||||
:on-preview="handlePreview"
|
||||
:on-success="success"
|
||||
:show-file-list="showFileList"
|
||||
list-type="picture-card">
|
||||
list-type="picture-card"
|
||||
ref="uploader">
|
||||
<slot>
|
||||
<el-icon>
|
||||
<el-icon-plus />
|
||||
@ -43,7 +43,7 @@
|
||||
</template>
|
||||
</el-image>
|
||||
<div v-if="!disabled && file.status === 'success'" class="sc-upload__item-actions">
|
||||
<span class="del" @click="handleRemove(file)"
|
||||
<span @click="handleRemove(file)" class="del"
|
||||
><el-icon><el-icon-delete /></el-icon
|
||||
></span>
|
||||
</div>
|
||||
|
@ -8,7 +8,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div ref="scVideo" class="sc-video"></div>
|
||||
<div class="sc-video" ref="scVideo"></div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -8,7 +8,7 @@
|
||||
-->
|
||||
|
||||
<template>
|
||||
<div ref="scWaterMark" class="sc-water-mark">
|
||||
<div class="sc-water-mark" ref="scWaterMark">
|
||||
<slot></slot>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -16,7 +16,7 @@
|
||||
<div class="end-node-text">流程结束</div>
|
||||
</div>
|
||||
</div>
|
||||
<use-select v-if="selectVisible" ref="useselect" @closed="selectVisible = false"></use-select>
|
||||
<use-select v-if="selectVisible" @closed="selectVisible = false" ref="useselect"></use-select>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -8,19 +8,19 @@
|
||||
<div class="add-node-popover-body">
|
||||
<ul>
|
||||
<li>
|
||||
<el-icon style="color: #ff943e" @click="addType(1)">
|
||||
<el-icon @click="addType(1)" style="color: #ff943e">
|
||||
<el-icon-user-filled />
|
||||
</el-icon>
|
||||
<p>审批节点</p>
|
||||
</li>
|
||||
<li>
|
||||
<el-icon style="color: #3296fa" @click="addType(2)">
|
||||
<el-icon @click="addType(2)" style="color: #3296fa">
|
||||
<el-icon-promotion />
|
||||
</el-icon>
|
||||
<p>抄送节点</p>
|
||||
</li>
|
||||
<li>
|
||||
<el-icon style="color: #15bc83" @click="addType(4)">
|
||||
<el-icon @click="addType(4)" style="color: #15bc83">
|
||||
<el-icon-share />
|
||||
</el-icon>
|
||||
<p>条件分支</p>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="node-wrap">
|
||||
<div class="node-wrap-box" @click="show">
|
||||
<div @click="show" class="node-wrap-box">
|
||||
<div class="title" style="background: #ff943e">
|
||||
<el-icon class="icon">
|
||||
<el-icon-user-filled />
|
||||
</el-icon>
|
||||
<span>{{ nodeConfig.nodeName }}</span>
|
||||
<el-icon class="close" @click.stop="delNode()">
|
||||
<el-icon @click.stop="delNode()" class="close">
|
||||
<el-icon-close />
|
||||
</el-icon>
|
||||
</div>
|
||||
@ -16,7 +16,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<add-node v-model="nodeConfig.childNode"></add-node>
|
||||
<el-drawer v-model="drawer" :size="500" append-to-body destroy-on-close :title="$t('审批人设置')">
|
||||
<el-drawer v-model="drawer" :size="500" :title="$t('审批人设置')" append-to-body destroy-on-close>
|
||||
<template #header>
|
||||
<div class="node-wrap-drawer__title">
|
||||
<label v-if="!isEditTitle" @click="editTitle"
|
||||
@ -27,11 +27,11 @@
|
||||
</label>
|
||||
<el-input
|
||||
v-if="isEditTitle"
|
||||
ref="nodeTitle"
|
||||
v-model="form.nodeName"
|
||||
clearable
|
||||
@blur="saveTitle"
|
||||
@keyup.enter="saveTitle"></el-input>
|
||||
@keyup.enter="saveTitle"
|
||||
clearable
|
||||
ref="nodeTitle"></el-input>
|
||||
</div>
|
||||
</template>
|
||||
<el-container>
|
||||
@ -39,19 +39,19 @@
|
||||
<el-form label-position="top">
|
||||
<el-form-item :label="$t('审批人员类型')">
|
||||
<el-select v-model="form.setType">
|
||||
<el-option :value="1" :label="$t('指定成员')"></el-option>
|
||||
<el-option :value="2" :label="$t('主管')"></el-option>
|
||||
<el-option :value="3" :label="$t('角色')"></el-option>
|
||||
<el-option :value="4" :label="$t('发起人自选')"></el-option>
|
||||
<el-option :value="5" :label="$t('发起人自己')"></el-option>
|
||||
<el-option :value="7" :label="$t('连续多级主管')"></el-option>
|
||||
<el-option :label="$t('指定成员')" :value="1"></el-option>
|
||||
<el-option :label="$t('主管')" :value="2"></el-option>
|
||||
<el-option :label="$t('角色')" :value="3"></el-option>
|
||||
<el-option :label="$t('发起人自选')" :value="4"></el-option>
|
||||
<el-option :label="$t('发起人自己')" :value="5"></el-option>
|
||||
<el-option :label="$t('连续多级主管')" :value="7"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="form.setType === 1" :label="$t('选择成员')">
|
||||
<el-button icon="el-icon-plus" round type="primary" @click="selectHandle(1, form.nodeUserList)">选择人员</el-button>
|
||||
<el-button @click="selectHandle(1, form.nodeUserList)" icon="el-icon-plus" round type="primary">选择人员</el-button>
|
||||
<div class="tags-list">
|
||||
<el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" closable @close="delUser(index)"
|
||||
<el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" @close="delUser(index)" closable
|
||||
>{{ user.name }}
|
||||
</el-tag>
|
||||
</div>
|
||||
@ -64,9 +64,9 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item v-if="form.setType === 3" :label="$t('选择角色')">
|
||||
<el-button icon="el-icon-plus" round type="primary" @click="selectHandle(2, form.nodeRoleList)">选择角色</el-button>
|
||||
<el-button @click="selectHandle(2, form.nodeRoleList)" icon="el-icon-plus" round type="primary">选择角色</el-button>
|
||||
<div class="tags-list">
|
||||
<el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" closable type="info" @close="delRole(index)"
|
||||
<el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" @close="delRole(index)" closable type="info"
|
||||
>{{ role.name }}
|
||||
</el-tag>
|
||||
</div>
|
||||
@ -124,7 +124,7 @@
|
||||
</el-form>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<el-button @click="save" type="primary">保存</el-button>
|
||||
<el-button @click="drawer = false">取消</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
|
@ -2,12 +2,12 @@
|
||||
<div class="branch-wrap">
|
||||
<div class="branch-box-wrap">
|
||||
<div class="branch-box">
|
||||
<el-button class="add-branch" plain round type="success" @click="addTerm">添加条件</el-button>
|
||||
<el-button @click="addTerm" class="add-branch" plain round type="success">添加条件</el-button>
|
||||
<div v-for="(item, index) in nodeConfig.conditionNodes" :key="index" class="col-box">
|
||||
<div class="condition-node">
|
||||
<div class="condition-node-box">
|
||||
<div class="auto-judge" @click="show(index)">
|
||||
<div v-if="index !== 0" class="sort-left" @click.stop="arrTransfer(index, -1)">
|
||||
<div @click="show(index)" class="auto-judge">
|
||||
<div v-if="index !== 0" @click.stop="arrTransfer(index, -1)" class="sort-left">
|
||||
<el-icon>
|
||||
<el-icon-arrow-left />
|
||||
</el-icon>
|
||||
@ -15,7 +15,7 @@
|
||||
<div class="title">
|
||||
<span class="node-title">{{ item.nodeName }}</span>
|
||||
<span class="priority-title">优先级{{ item.priorityLevel }}</span>
|
||||
<el-icon class="close" @click.stop="delTerm(index)">
|
||||
<el-icon @click.stop="delTerm(index)" class="close">
|
||||
<el-icon-close />
|
||||
</el-icon>
|
||||
</div>
|
||||
@ -23,7 +23,7 @@
|
||||
<span v-if="toText(nodeConfig, index)">{{ toText(nodeConfig, index) }}</span>
|
||||
<span v-else class="placeholder">请设置条件</span>
|
||||
</div>
|
||||
<div v-if="index != nodeConfig.conditionNodes.length - 1" class="sort-right" @click.stop="arrTransfer(index)">
|
||||
<div v-if="index != nodeConfig.conditionNodes.length - 1" @click.stop="arrTransfer(index)" class="sort-right">
|
||||
<el-icon>
|
||||
<el-icon-arrow-right />
|
||||
</el-icon>
|
||||
@ -41,7 +41,7 @@
|
||||
</div>
|
||||
<add-node v-model="nodeConfig.childNode"></add-node>
|
||||
</div>
|
||||
<el-drawer v-model="drawer" :size="600" append-to-body destroy-on-close :title="$t('条件设置')">
|
||||
<el-drawer v-model="drawer" :size="600" :title="$t('条件设置')" append-to-body destroy-on-close>
|
||||
<template #header>
|
||||
<div class="node-wrap-drawer__title">
|
||||
<label v-if="!isEditTitle" @click="editTitle"
|
||||
@ -52,11 +52,11 @@
|
||||
</label>
|
||||
<el-input
|
||||
v-if="isEditTitle"
|
||||
ref="nodeTitle"
|
||||
v-model="form.nodeName"
|
||||
clearable
|
||||
@blur="saveTitle"
|
||||
@keyup.enter="saveTitle"></el-input>
|
||||
@keyup.enter="saveTitle"
|
||||
clearable
|
||||
ref="nodeTitle"></el-input>
|
||||
</div>
|
||||
</template>
|
||||
<el-container>
|
||||
@ -102,18 +102,18 @@
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('移除')" prop="value" width="55">
|
||||
<template #default="scope">
|
||||
<el-link :underline="false" type="danger" @click="deleteConditionList(scope.$index)">移除</el-link>
|
||||
<el-link :underline="false" @click="deleteConditionList(scope.$index)" type="danger">移除</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-form-item>
|
||||
<p>
|
||||
<el-button icon="el-icon-plus" round type="primary" @click="addConditionList">增加条件</el-button>
|
||||
<el-button @click="addConditionList" icon="el-icon-plus" round type="primary">增加条件</el-button>
|
||||
</p>
|
||||
</el-form>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<el-button @click="save" type="primary">保存</el-button>
|
||||
<el-button @click="drawer = false">取消</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="node-wrap">
|
||||
<div class="node-wrap-box start-node" @click="show">
|
||||
<div @click="show" class="node-wrap-box start-node">
|
||||
<div class="title" style="background: #576a95">
|
||||
<el-icon class="icon">
|
||||
<el-icon-user-filled />
|
||||
@ -12,7 +12,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<add-node v-model="nodeConfig.childNode"></add-node>
|
||||
<el-drawer v-model="drawer" :size="500" append-to-body destroy-on-close :title="$t('发起人')">
|
||||
<el-drawer v-model="drawer" :size="500" :title="$t('发起人')" append-to-body destroy-on-close>
|
||||
<template #header>
|
||||
<div class="node-wrap-drawer__title">
|
||||
<label v-if="!isEditTitle" @click="editTitle"
|
||||
@ -23,20 +23,20 @@
|
||||
</label>
|
||||
<el-input
|
||||
v-if="isEditTitle"
|
||||
ref="nodeTitle"
|
||||
v-model="form.nodeName"
|
||||
clearable
|
||||
@blur="saveTitle"
|
||||
@keyup.enter="saveTitle"></el-input>
|
||||
@keyup.enter="saveTitle"
|
||||
clearable
|
||||
ref="nodeTitle"></el-input>
|
||||
</div>
|
||||
</template>
|
||||
<el-container>
|
||||
<el-main style="padding: 0 20px 20px 20px">
|
||||
<el-form label-position="top">
|
||||
<el-form-item :label="$t('谁可以发起此审批')">
|
||||
<el-button icon="el-icon-plus" round type="primary" @click="selectHandle(2, form.nodeRoleList)">选择角色</el-button>
|
||||
<el-button @click="selectHandle(2, form.nodeRoleList)" icon="el-icon-plus" round type="primary">选择角色</el-button>
|
||||
<div class="tags-list">
|
||||
<el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" closable type="info" @close="delRole(index)"
|
||||
<el-tag v-for="(role, index) in form.nodeRoleList" :key="role.id" @close="delRole(index)" closable type="info"
|
||||
>{{ role.name }}
|
||||
</el-tag>
|
||||
</div>
|
||||
@ -49,7 +49,7 @@
|
||||
</el-form>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<el-button @click="save" type="primary">保存</el-button>
|
||||
<el-button @click="drawer = false">取消</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<div class="node-wrap">
|
||||
<div class="node-wrap-box" @click="show">
|
||||
<div @click="show" class="node-wrap-box">
|
||||
<div class="title" style="background: #3296fa">
|
||||
<el-icon class="icon">
|
||||
<el-icon-promotion />
|
||||
</el-icon>
|
||||
<span>{{ nodeConfig.nodeName }}</span>
|
||||
<el-icon class="close" @click.stop="delNode()">
|
||||
<el-icon @click.stop="delNode()" class="close">
|
||||
<el-icon-close />
|
||||
</el-icon>
|
||||
</div>
|
||||
@ -16,7 +16,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<add-node v-model="nodeConfig.childNode"></add-node>
|
||||
<el-drawer v-model="drawer" :size="500" append-to-body destroy-on-close :title="$t('抄送人设置')">
|
||||
<el-drawer v-model="drawer" :size="500" :title="$t('抄送人设置')" append-to-body destroy-on-close>
|
||||
<template #header>
|
||||
<div class="node-wrap-drawer__title">
|
||||
<label v-if="!isEditTitle" @click="editTitle"
|
||||
@ -27,20 +27,20 @@
|
||||
</label>
|
||||
<el-input
|
||||
v-if="isEditTitle"
|
||||
ref="nodeTitle"
|
||||
v-model="form.nodeName"
|
||||
clearable
|
||||
@blur="saveTitle"
|
||||
@keyup.enter="saveTitle"></el-input>
|
||||
@keyup.enter="saveTitle"
|
||||
clearable
|
||||
ref="nodeTitle"></el-input>
|
||||
</div>
|
||||
</template>
|
||||
<el-container>
|
||||
<el-main style="padding: 0 20px 20px 20px">
|
||||
<el-form label-position="top">
|
||||
<el-form-item :label="$t('选择要抄送的人员')">
|
||||
<el-button icon="el-icon-plus" round type="primary" @click="selectHandle(1, form.nodeUserList)">选择人员</el-button>
|
||||
<el-button @click="selectHandle(1, form.nodeUserList)" icon="el-icon-plus" round type="primary">选择人员</el-button>
|
||||
<div class="tags-list">
|
||||
<el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" closable @close="delUser(index)"
|
||||
<el-tag v-for="(user, index) in form.nodeUserList" :key="user.id" @close="delUser(index)" closable
|
||||
>{{ user.name }}
|
||||
</el-tag>
|
||||
</div>
|
||||
@ -51,7 +51,7 @@
|
||||
</el-form>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<el-button type="primary" @click="save">保存</el-button>
|
||||
<el-button @click="save" type="primary">保存</el-button>
|
||||
<el-button @click="drawer = false">取消</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
|
@ -3,16 +3,16 @@
|
||||
v-model="dialogVisible"
|
||||
:title="titleMap[type - 1]"
|
||||
:width="type == 1 ? 680 : 460"
|
||||
@closed="$emit('closed')"
|
||||
append-to-body
|
||||
destroy-on-close
|
||||
@closed="$emit('closed')">
|
||||
destroy-on-close>
|
||||
<template v-if="type === 1">
|
||||
<div class="sc-user-select">
|
||||
<div class="sc-user-select__left">
|
||||
<div class="sc-user-select__search">
|
||||
<el-input v-model="keyword" :placeholder="$t('搜索成员')" prefix-icon="el-icon-search">
|
||||
<template #append>
|
||||
<el-button icon="el-icon-search" @click="search"></el-button>
|
||||
<el-button @click="search" icon="el-icon-search"></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
@ -20,30 +20,30 @@
|
||||
<div v-loading="showGrouploading" class="sc-user-select__tree">
|
||||
<el-scrollbar>
|
||||
<el-tree
|
||||
ref="groupTree"
|
||||
:current-node-key="groupId"
|
||||
:data="group"
|
||||
:expand-on-click-node="false"
|
||||
:node-key="groupProps.key"
|
||||
:props="groupProps"
|
||||
@node-click="groupClick"
|
||||
class="menu"
|
||||
highlight-current
|
||||
@node-click="groupClick" />
|
||||
ref="groupTree" />
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div v-loading="showUserloading" class="sc-user-select__user">
|
||||
<div class="sc-user-select__user__list">
|
||||
<el-scrollbar ref="userScrollbar">
|
||||
<el-tree
|
||||
ref="userTree"
|
||||
:data="user"
|
||||
:default-checked-keys="selectedIds"
|
||||
:node-key="userProps.key"
|
||||
:props="userProps"
|
||||
@check-change="userClick"
|
||||
check-on-click-node
|
||||
class="menu"
|
||||
show-checkbox
|
||||
@check-change="userClick"></el-tree>
|
||||
ref="userTree"
|
||||
show-checkbox></el-tree>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<footer>
|
||||
@ -51,10 +51,10 @@
|
||||
v-model:currentPage="currentPage"
|
||||
:page-size="pageSize"
|
||||
:total="total"
|
||||
@current-change="paginationChange"
|
||||
background
|
||||
layout="prev,next"
|
||||
small
|
||||
@current-change="paginationChange"></el-pagination>
|
||||
small></el-pagination>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
@ -74,7 +74,7 @@
|
||||
<label>{{ item.name }}</label>
|
||||
</span>
|
||||
<span class="delete">
|
||||
<el-button circle icon="el-icon-delete" size="small" type="danger" @click="deleteSelected(index)"></el-button>
|
||||
<el-button @click="deleteSelected(index)" circle icon="el-icon-delete" size="small" type="danger"></el-button>
|
||||
</span>
|
||||
</li>
|
||||
</el-scrollbar>
|
||||
@ -90,17 +90,17 @@
|
||||
<div v-loading="showGrouploading" class="sc-user-select__tree">
|
||||
<el-scrollbar>
|
||||
<el-tree
|
||||
ref="groupTree"
|
||||
:data="role"
|
||||
:default-checked-keys="selectedIds"
|
||||
:expand-on-click-node="false"
|
||||
:node-key="roleProps.key"
|
||||
:props="roleProps"
|
||||
@check-change="roleClick"
|
||||
check-on-click-node
|
||||
check-strictly
|
||||
class="menu"
|
||||
show-checkbox
|
||||
@check-change="roleClick" />
|
||||
ref="groupTree"
|
||||
show-checkbox />
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</div>
|
||||
@ -119,7 +119,7 @@
|
||||
<label>{{ item.name }}</label>
|
||||
</span>
|
||||
<span class="delete">
|
||||
<el-button circle icon="el-icon-delete" size="small" type="danger" @click="deleteSelected(index)"></el-button>
|
||||
<el-button @click="deleteSelected(index)" circle icon="el-icon-delete" size="small" type="danger"></el-button>
|
||||
</span>
|
||||
</li>
|
||||
</el-scrollbar>
|
||||
@ -130,7 +130,7 @@
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="save">确 认</el-button>
|
||||
<el-button @click="save" type="primary">确 认</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
File diff suppressed because one or more lines are too long
@ -6,7 +6,7 @@ export default {
|
||||
vue.loading = true
|
||||
vue.dialog.save = true
|
||||
await vue.$nextTick()
|
||||
vue.$refs.saveDialog.open('view', row)
|
||||
await vue.$refs.saveDialog.open('view', row)
|
||||
vue.loading = false
|
||||
},
|
||||
},
|
||||
@ -16,7 +16,7 @@ export default {
|
||||
vue.loading = true
|
||||
vue.dialog.save = true
|
||||
await vue.$nextTick()
|
||||
vue.$refs.saveDialog.open('edit', row)
|
||||
await vue.$refs.saveDialog.open('edit', row)
|
||||
vue.loading = false
|
||||
},
|
||||
},
|
||||
|
@ -7,7 +7,7 @@ import copy from '@/directives/copy'
|
||||
import errorHandler from '@/utils/errorHandler'
|
||||
import http from '@/utils/request'
|
||||
import naArea from '@/components/naArea/index.vue'
|
||||
import naUser from '@/components/naUser/index.vue'
|
||||
import naUserSelect from '@/components/naUserSelect/index.vue'
|
||||
import naButtonAdd from '@/components/naButtonAdd/index.vue'
|
||||
import naButtonBatchDel from '@/components/naButtonBatchDel/index.vue'
|
||||
import naColAvatar from '@/components/naColAvatar'
|
||||
@ -95,7 +95,7 @@ export default {
|
||||
app.component('naButtonBatchDel', naButtonBatchDel)
|
||||
app.component('naFormEmail', naFormEmail)
|
||||
app.component('naColTime', naColTime)
|
||||
app.component('naUser', naUser)
|
||||
app.component('naUserSelect', naUserSelect)
|
||||
|
||||
//注册全局指令
|
||||
app.directive('auth', auth)
|
||||
|
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<div v-if="navMenus.length <= 0" style="padding: 20px">
|
||||
<el-alert :closable="false" center :title="$t('无子集菜单')" type="info"></el-alert>
|
||||
<el-alert :closable="false" :title="$t('无子集菜单')" center type="info"></el-alert>
|
||||
</div>
|
||||
<template v-for="navMenu in navMenus" v-bind:key="navMenu">
|
||||
<template v-bind:key="navMenu" v-for="navMenu in navMenus">
|
||||
<el-menu-item v-if="!hasChildren(navMenu)" :index="navMenu.path">
|
||||
<a v-if="navMenu.meta && navMenu.meta.type == 'link'" :href="navMenu.path" target="_blank" @click.stop="() => {}"></a>
|
||||
<a v-if="navMenu.meta && navMenu.meta.type == 'link'" :href="navMenu.path" @click.stop="() => {}" target="_blank"></a>
|
||||
<el-icon v-if="navMenu.meta && navMenu.meta.icon">
|
||||
<component :is="navMenu.meta.icon || 'el-icon-menu'" />
|
||||
</el-icon>
|
||||
|
@ -1,23 +1,23 @@
|
||||
<template>
|
||||
<div class="sc-search">
|
||||
<el-input
|
||||
ref="input"
|
||||
v-model="input"
|
||||
:trigger-on-focus="false"
|
||||
clearable
|
||||
:placeholder="$t('搜索')"
|
||||
:trigger-on-focus="false"
|
||||
@input="inputChange"
|
||||
clearable
|
||||
prefix-icon="el-icon-search"
|
||||
size="large"
|
||||
@input="inputChange" />
|
||||
ref="input"
|
||||
size="large" />
|
||||
<div v-if="history.length > 0" class="sc-search-history">
|
||||
<el-tag
|
||||
v-for="(item, index) in history"
|
||||
:key="item"
|
||||
@click="historyClick(item)"
|
||||
@close="historyClose(index)"
|
||||
closable
|
||||
effect="dark"
|
||||
type="info"
|
||||
@click="historyClick(item)"
|
||||
@close="historyClose(index)"
|
||||
>{{ item }}
|
||||
</el-tag>
|
||||
</div>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<div v-drag class="mobile-nav-button" draggable="false" @click="showMobileNav($event)">
|
||||
<div v-drag @click="showMobileNav($event)" class="mobile-nav-button" draggable="false">
|
||||
<el-icon>
|
||||
<el-icon-menu />
|
||||
</el-icon>
|
||||
</div>
|
||||
|
||||
<el-drawer ref="mobileNavBox" v-model="nav" :size="240" :with-header="false" destroy-on-close direction="ltr" :title="$t('移动端菜单')">
|
||||
<el-drawer v-model="nav" :size="240" :title="$t('移动端菜单')" :with-header="false" destroy-on-close direction="ltr" ref="mobileNavBox">
|
||||
<el-container class="mobile-nav">
|
||||
<el-header>
|
||||
<div class="logo-bar">
|
||||
@ -16,11 +16,11 @@
|
||||
<el-scrollbar>
|
||||
<el-menu
|
||||
:default-active="$route.meta.active || $route.fullPath"
|
||||
@select="select"
|
||||
active-text-color="#409EFF"
|
||||
background-color="#212d3d"
|
||||
router
|
||||
text-color="#fff"
|
||||
@select="select">
|
||||
text-color="#fff">
|
||||
<NavMenu :navMenus="menu"></NavMenu>
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
|
@ -2,8 +2,8 @@
|
||||
<div class="adminui-tags">
|
||||
<ul ref="tags">
|
||||
<li
|
||||
v-for="tag in tagList"
|
||||
v-bind:key="tag"
|
||||
v-for="tag in tagList"
|
||||
:class="[isActive(tag) ? 'active' : '', tag.meta.affix ? 'affix' : '']"
|
||||
@contextmenu.prevent="openContextMenu($event, tag)">
|
||||
<router-link :to="tag">
|
||||
@ -17,7 +17,7 @@
|
||||
</div>
|
||||
|
||||
<transition name="el-zoom-in-top">
|
||||
<ul v-if="contextMenuVisible" id="contextmenu" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu">
|
||||
<ul v-if="contextMenuVisible" :style="{ left: left + 'px', top: top + 'px' }" class="contextmenu" id="contextmenu">
|
||||
<li @click="refreshTab()">
|
||||
<el-icon>
|
||||
<el-icon-refresh />
|
||||
|
@ -32,10 +32,10 @@
|
||||
<div class="handler">
|
||||
<el-button
|
||||
v-if="task.state === '1'"
|
||||
@click="download(task)"
|
||||
circle
|
||||
icon="el-icon-download"
|
||||
type="primary"
|
||||
@click="download(task)"></el-button>
|
||||
type="primary"></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -43,7 +43,7 @@
|
||||
</el-card>
|
||||
</el-main>
|
||||
<el-footer style="padding: 10px; text-align: right">
|
||||
<el-button circle icon="el-icon-refresh" @click="refresh"></el-button>
|
||||
<el-button @click="refresh" circle icon="el-icon-refresh"></el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
</template>
|
||||
|
@ -1,27 +1,27 @@
|
||||
<template>
|
||||
<div class="user-bar">
|
||||
<div class="panel-item hidden-sm-and-down" @click="search">
|
||||
<div @click="search" class="panel-item hidden-sm-and-down">
|
||||
<el-icon>
|
||||
<el-icon-search />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="screen panel-item hidden-sm-and-down" @click="screen">
|
||||
<div @click="screen" class="screen panel-item hidden-sm-and-down">
|
||||
<el-icon>
|
||||
<el-icon-full-screen />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="tasks panel-item" @click="tasks">
|
||||
<div @click="tasks" class="tasks panel-item">
|
||||
<el-icon>
|
||||
<el-icon-sort />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="msg panel-item" @click="showMsg">
|
||||
<div @click="showMsg" class="msg panel-item">
|
||||
<el-badge :hidden="unreadCnt === 0" :value="unreadCnt" class="badge" type="danger">
|
||||
<el-icon>
|
||||
<el-icon-chat-dot-round />
|
||||
</el-icon>
|
||||
</el-badge>
|
||||
<el-drawer v-model="msg" append-to-body destroy-on-close :title="$t('新消息')">
|
||||
<el-drawer v-model="msg" :title="$t('新消息')" append-to-body destroy-on-close>
|
||||
<el-container>
|
||||
<el-main style="padding: 0 1rem">
|
||||
<message />
|
||||
@ -32,7 +32,7 @@
|
||||
</el-container>
|
||||
</el-drawer>
|
||||
</div>
|
||||
<el-dropdown class="user panel-item" trigger="click" @command="handleUser">
|
||||
<el-dropdown @command="handleUser" class="user panel-item" trigger="click">
|
||||
<div class="user-avatar">
|
||||
<el-avatar :size="30" :src="user.avatar ? user.avatar : $CONFIG.DEFAULT_AVATAR"></el-avatar>
|
||||
<label>{{ user.userName }}</label>
|
||||
@ -50,11 +50,11 @@
|
||||
</el-dropdown>
|
||||
</div>
|
||||
|
||||
<el-dialog v-model="searchVisible" :width="700" center destroy-on-close :title="$t('搜索')">
|
||||
<el-dialog v-model="searchVisible" :title="$t('搜索')" :width="700" center destroy-on-close>
|
||||
<search @success="searchVisible = false"></search>
|
||||
</el-dialog>
|
||||
|
||||
<el-drawer v-model="tasksVisible" :size="450" destroy-on-close :title="$t('任务中心')">
|
||||
<el-drawer v-model="tasksVisible" :size="450" :title="$t('任务中心')" destroy-on-close>
|
||||
<tasks></tasks>
|
||||
</el-drawer>
|
||||
</template>
|
||||
|
@ -8,7 +8,7 @@
|
||||
<span>{{ $CONFIG.APP_NAME }}</span>
|
||||
</div>
|
||||
<ul v-if="!ismobile" class="nav">
|
||||
<li v-for="item in menu" :key="item" :class="pmenu.path == item.path ? 'active' : ''" @click="showMenu(item)">
|
||||
<li v-for="item in menu" :class="pmenu.path == item.path ? 'active' : ''" :key="item" @click="showMenu(item)">
|
||||
<el-icon>
|
||||
<component :is="item.meta.icon || 'el-icon-menu'" />
|
||||
</el-icon>
|
||||
@ -32,7 +32,7 @@
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="adminui-side-bottom" @click="$store.commit('TOGGLE_menuIsCollapse')">
|
||||
<div @click="$store.commit('TOGGLE_menuIsCollapse')" class="adminui-side-bottom">
|
||||
<el-icon>
|
||||
<el-icon-expand v-if="menuIsCollapse" />
|
||||
<el-icon-fold v-else />
|
||||
@ -43,10 +43,10 @@
|
||||
<div class="aminui-body el-container">
|
||||
<Topbar v-if="!ismobile"></Topbar>
|
||||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div id="adminui-main" class="adminui-main">
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" v-if="$store.state.keepAlive.routeShow" :key="$route.fullPath" />
|
||||
<component v-if="$store.state.keepAlive.routeShow" :is="Component" :key="$route.fullPath" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
@ -77,7 +77,7 @@
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="adminui-side-bottom" @click="$store.commit('TOGGLE_menuIsCollapse')">
|
||||
<div @click="$store.commit('TOGGLE_menuIsCollapse')" class="adminui-side-bottom">
|
||||
<el-icon>
|
||||
<el-icon-expand v-if="menuIsCollapse" />
|
||||
<el-icon-fold v-else />
|
||||
@ -88,10 +88,10 @@
|
||||
<div class="aminui-body el-container">
|
||||
<Topbar v-if="!ismobile"></Topbar>
|
||||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div id="adminui-main" class="adminui-main">
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" v-if="$store.state.keepAlive.routeShow" :key="$route.fullPath" />
|
||||
<component v-if="$store.state.keepAlive.routeShow" :is="Component" :key="$route.fullPath" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
@ -128,10 +128,10 @@
|
||||
<section class="aminui-wrapper">
|
||||
<div class="aminui-body el-container">
|
||||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div id="adminui-main" class="adminui-main">
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" v-if="$store.state.keepAlive.routeShow" :key="$route.fullPath" />
|
||||
<component v-if="$store.state.keepAlive.routeShow" :is="Component" :key="$route.fullPath" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
@ -152,7 +152,7 @@
|
||||
<div class="adminui-side-split-scroll">
|
||||
<el-scrollbar>
|
||||
<ul>
|
||||
<li v-for="item in menu" :key="item" :class="pmenu.path == item.path ? 'active' : ''" @click="showMenu(item)">
|
||||
<li v-for="item in menu" :class="pmenu.path == item.path ? 'active' : ''" :key="item" @click="showMenu(item)">
|
||||
<el-icon>
|
||||
<component :is="item.meta.icon || el - icon - menu" />
|
||||
</el-icon>
|
||||
@ -173,7 +173,7 @@
|
||||
</el-menu>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="adminui-side-bottom" @click="$store.commit('TOGGLE_menuIsCollapse')">
|
||||
<div @click="$store.commit('TOGGLE_menuIsCollapse')" class="adminui-side-bottom">
|
||||
<el-icon>
|
||||
<el-icon-expand v-if="menuIsCollapse" />
|
||||
<el-icon-fold v-else />
|
||||
@ -186,10 +186,10 @@
|
||||
<userbar></userbar>
|
||||
</Topbar>
|
||||
<Tags v-if="!ismobile && layoutTags"></Tags>
|
||||
<div id="adminui-main" class="adminui-main">
|
||||
<div class="adminui-main" id="adminui-main">
|
||||
<router-view v-slot="{ Component }">
|
||||
<keep-alive :include="this.$store.state.keepAlive.keepLiveRoute">
|
||||
<component :is="Component" v-if="$store.state.keepAlive.routeShow" :key="$route.fullPath" />
|
||||
<component v-if="$store.state.keepAlive.routeShow" :is="Component" :key="$route.fullPath" />
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
<iframe-view></iframe-view>
|
||||
@ -198,7 +198,7 @@
|
||||
</section>
|
||||
</template>
|
||||
|
||||
<div class="main-maximize-exit" @click="exitMaximize">
|
||||
<div @click="exitMaximize" class="main-maximize-exit">
|
||||
<el-icon>
|
||||
<el-icon-close />
|
||||
</el-icon>
|
||||
|
@ -6,9 +6,9 @@
|
||||
<div class="router-err__content">
|
||||
<h2>无权限或找不到页面</h2>
|
||||
<p>当前页面无权限访问或者打开了一个不存在的链接,请检查当前账户权限和链接的可访问性。</p>
|
||||
<el-button plain round type="primary" @click="gohome">返回首页</el-button>
|
||||
<el-button plain round type="primary" @click="gologin">重新登录</el-button>
|
||||
<el-button round type="primary" @click="goback">返回上一页</el-button>
|
||||
<el-button @click="gohome" plain round type="primary">返回首页</el-button>
|
||||
<el-button @click="gologin" plain round type="primary">重新登录</el-button>
|
||||
<el-button @click="goback" round type="primary">返回上一页</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-form ref="loginForm" :model="form" :rules="rules" label-width="0" size="large" @keyup.enter="login">
|
||||
<el-form :model="form" :rules="rules" @keyup.enter="login" label-width="0" ref="loginForm" size="large">
|
||||
<el-form-item prop="account">
|
||||
<el-input v-model="form.account" :placeholder="$t('用户名 / 手机 / 邮箱')" clearable prefix-icon="el-icon-user"></el-input>
|
||||
</el-form-item>
|
||||
@ -15,7 +15,7 @@
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button :loading="isLoading" round style="width: 100%" type="primary" @click="login">{{ $t('登录') }}</el-button>
|
||||
<el-button :loading="isLoading" @click="login" round style="width: 100%" type="primary">{{ $t('登录') }}</el-button>
|
||||
</el-form-item>
|
||||
<div class="login-reg">
|
||||
{{ $t('还没有账号?') }}
|
||||
|
@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<el-form ref="loginForm" :model="form" :rules="rules" label-width="0" size="large" @keyup.enter="login">
|
||||
<el-form :model="form" :rules="rules" @keyup.enter="login" label-width="0" ref="loginForm" size="large">
|
||||
<na-form-phone v-model="form" :vue="this" code-field="code" form-name="loginForm" phone-field="destDevice"></na-form-phone>
|
||||
<el-form-item>
|
||||
<el-button :loading="loading" class="w100p" round type="primary" @click="login">{{ $t('登录') }}</el-button>
|
||||
<el-button :loading="loading" @click="login" class="w100p" round type="primary">{{ $t('登录') }}</el-button>
|
||||
</el-form-item>
|
||||
<div class="login-reg">
|
||||
{{ $t('还没有账号?') }}
|
||||
|
@ -2,8 +2,8 @@
|
||||
<div class="login_bg">
|
||||
<div class="login_main">
|
||||
<div class="login_config">
|
||||
<el-button :icon="config.dark ? 'el-icon-sunny' : 'el-icon-moon'" circle type="info" @click="configDark"></el-button>
|
||||
<el-dropdown placement="bottom-end" trigger="click" @command="configLang">
|
||||
<el-button :icon="config.dark ? 'el-icon-sunny' : 'el-icon-moon'" @click="configDark" circle type="info"></el-button>
|
||||
<el-dropdown @command="configLang" placement="bottom-end" trigger="click">
|
||||
<el-button circle>
|
||||
<svg
|
||||
aria-hidden="true"
|
||||
@ -12,8 +12,8 @@
|
||||
role="img"
|
||||
viewBox="0 0 512 512"
|
||||
width="1em"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg">
|
||||
<path
|
||||
d="M478.33 433.6l-90-218a22 22 0 0 0-40.67 0l-90 218a22 22 0 1 0 40.67 16.79L316.66 406h102.67l18.33 44.39A22 22 0 0 0 458 464a22 22 0 0 0 20.32-30.4zM334.83 362L368 281.65L401.17 362z"
|
||||
fill="currentColor"></path>
|
||||
@ -24,7 +24,7 @@
|
||||
</el-button>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item v-for="item in lang" :key="item.value" :class="{ selected: config.lang === item.value }" :command="item"
|
||||
<el-dropdown-item v-for="item in lang" :class="{ selected: config.lang === item.value }" :command="item" :key="item.value"
|
||||
>{{ item.name }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
@ -49,7 +49,7 @@
|
||||
<template v-if="$CONFIG.MY_SHOW_LOGIN_OAUTH">
|
||||
<el-divider>{{ $t('其他登录方式') }}</el-divider>
|
||||
<div class="login-oauth">
|
||||
<el-button circle icon="sc-icon-wechat" type="success" @click="wechatLogin"></el-button>
|
||||
<el-button @click="wechatLogin" circle icon="sc-icon-wechat" type="success"></el-button>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
@ -5,16 +5,16 @@
|
||||
<el-step :title="$t('验证手机')" />
|
||||
<el-step :title="$t('注册成功')" />
|
||||
</el-steps>
|
||||
<el-form v-if="stepActive === 0" ref="stepForm_0" :model="form" :rules="rules" label-width="120" size="large" @keyup.enter="next">
|
||||
<el-form v-if="stepActive === 0" :model="form" :rules="rules" @keyup.enter="next" label-width="120" ref="stepForm_0" size="large">
|
||||
<el-form-item :label="$t('登录账号')" prop="userName">
|
||||
<el-input v-model="form.userName" clearable maxlength="16" :placeholder="$t('请输入登录账号')"></el-input>
|
||||
<el-input v-model="form.userName" :placeholder="$t('请输入登录账号')" clearable maxlength="16"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('登录密码')" prop="passwordText">
|
||||
<el-input
|
||||
v-model="form.passwordText"
|
||||
:placeholder="$t('请输入登录密码')"
|
||||
clearable
|
||||
maxlength="16"
|
||||
:placeholder="$t('请输入登录密码')"
|
||||
show-password
|
||||
type="password"></el-input>
|
||||
<sc-password-strength v-model="form.passwordText"></sc-password-strength>
|
||||
@ -23,18 +23,18 @@
|
||||
<el-form-item :label="$t('确认密码')" prop="passwordText2">
|
||||
<el-input
|
||||
v-model="form.passwordText2"
|
||||
:placeholder="$t('请再一次输入登录密码')"
|
||||
clearable
|
||||
maxlength="16"
|
||||
:placeholder="$t('请再一次输入登录密码')"
|
||||
show-password
|
||||
type="password"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="" prop="agree">
|
||||
<el-checkbox v-model="form.agree" label="">已阅读并同意</el-checkbox>
|
||||
<span class="link" @click="showAgree = true">《平台服务协议》</span>
|
||||
<span @click="showAgree = true" class="link">《平台服务协议》</span>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-form v-if="stepActive === 1" ref="stepForm_1" :model="form" :rules="rules" size="large">
|
||||
<el-form v-if="stepActive === 1" :model="form" :rules="rules" ref="stepForm_1" size="large">
|
||||
<na-form-phone
|
||||
v-model="form.verifySmsCodeReq"
|
||||
:code-field="['verifySmsCodeReq.code', 'code']"
|
||||
@ -43,29 +43,29 @@
|
||||
form-name="stepForm_1"></na-form-phone>
|
||||
</el-form>
|
||||
<div v-if="stepActive >= 2">
|
||||
<el-result icon="success" sub-title="$t('可以使用登录账号以及手机号登录系统')" :title="$t('注册成功')">
|
||||
<el-result :title="$t('注册成功')" icon="success" sub-title="$t('可以使用登录账号以及手机号登录系统')">
|
||||
<template #extra>
|
||||
<el-button size="large" type="primary" @click="goLogin">前去登录</el-button>
|
||||
<el-button @click="goLogin" size="large" type="primary">前去登录</el-button>
|
||||
</template>
|
||||
</el-result>
|
||||
</div>
|
||||
<el-form size="large" style="text-align: center">
|
||||
<el-button v-if="stepActive > 0 && stepActive < 2" size="large" @click="pre">上一步</el-button>
|
||||
<el-button v-if="stepActive < 1" size="large" type="primary" @click="next">下一步</el-button>
|
||||
<el-button v-if="stepActive === 1" :loading="loading" size="large" type="primary" @click="save">提 交</el-button>
|
||||
<el-button v-if="stepActive > 0 && stepActive < 2" @click="pre" size="large">上一步</el-button>
|
||||
<el-button v-if="stepActive < 1" @click="next" size="large" type="primary">下一步</el-button>
|
||||
<el-button v-if="stepActive === 1" :loading="loading" @click="save" size="large" type="primary">提 交</el-button>
|
||||
</el-form>
|
||||
<el-dialog v-model="showAgree" destroy-on-close :title="$t('平台服务协议')">
|
||||
<el-dialog v-model="showAgree" :title="$t('平台服务协议')" destroy-on-close>
|
||||
平台服务协议
|
||||
<template #footer>
|
||||
<el-button @click="showAgree = false">取消</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="
|
||||
() => {
|
||||
showAgree = false
|
||||
form.agree = true
|
||||
}
|
||||
"
|
||||
type="primary"
|
||||
>我已阅读并同意
|
||||
</el-button>
|
||||
</template>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<el-step :title="$t('填写新密码')" />
|
||||
<el-step :title="$t('完成重置')" />
|
||||
</el-steps>
|
||||
<el-form v-if="stepActive === 0" ref="form" :label-width="120" :model="form" :rules="rules" size="large" @keyup.enter="save">
|
||||
<el-form v-if="stepActive === 0" :label-width="120" :model="form" :rules="rules" @keyup.enter="save" ref="form" size="large">
|
||||
<na-form-phone
|
||||
v-model="form.verifySmsCodeReq"
|
||||
:code-field="['verifySmsCodeReq.code', 'code']"
|
||||
@ -22,12 +22,12 @@
|
||||
<el-input v-model="form.passwordText2" :placeholder="$t('请再一次输入新密码')" show-password></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button :loading="loading" type="primary" @click="save">提交</el-button>
|
||||
<el-button :loading="loading" @click="save" type="primary">提交</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-result v-if="stepActive >= 1" icon="success" :sub-title="$t('请牢记自己的新密码,返回登录后使用新密码登录')" :title="$t('密码重置成功')">
|
||||
<el-result v-if="stepActive >= 1" :sub-title="$t('请牢记自己的新密码,返回登录后使用新密码登录')" :title="$t('密码重置成功')" icon="success">
|
||||
<template #extra>
|
||||
<el-button size="large" type="primary" @click="backLogin">返回登录</el-button>
|
||||
<el-button @click="backLogin" size="large" type="primary">返回登录</el-button>
|
||||
</template>
|
||||
</el-result>
|
||||
</common-page>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-card class="item-background" :header="$t('关于项目')" shadow="hover">
|
||||
<el-card :header="$t('关于项目')" class="item-background" shadow="hover">
|
||||
<p>高性能 / 精致 / 优雅。基于Vue3 + Element-Plus 的中后台前端解决方案,如果喜欢就点个星星支持一下。</p>
|
||||
<p>
|
||||
<a href="https://gitee.com/lolicode/scui" target="_blank">
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-card v-loading="loading" :header="$t('实时收入')" shadow="hover">
|
||||
<scEcharts ref="c1" :option="option" height="300px"></scEcharts>
|
||||
<scEcharts :option="option" height="300px" ref="c1"></scEcharts>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-card class="item-background" :header="$t('时钟')" shadow="hover">
|
||||
<el-card :header="$t('时钟')" class="item-background" shadow="hover">
|
||||
<div class="time">
|
||||
<h2>{{ time }}</h2>
|
||||
<p>{{ day }}</p>
|
||||
|
@ -2,29 +2,29 @@
|
||||
<el-main>
|
||||
<el-row>
|
||||
<el-col :lg="24">
|
||||
<el-card shadow="never" class="aboutTop">
|
||||
<el-card class="aboutTop" shadow="never">
|
||||
<div class="aboutTop-info">
|
||||
<img src="@/assets/img/logo.png" alt="" />
|
||||
<img alt="" src="@/assets/img/logo.png" />
|
||||
<h2>{{ packageJson.name }}</h2>
|
||||
<p>{{ ver }}</p>
|
||||
</div>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="dependencies">
|
||||
<el-descriptions border :column="3">
|
||||
<el-card header="dependencies" shadow="never">
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item v-for="(value, key) in packageJson.dependencies" :key="key" :label="key">{{
|
||||
value
|
||||
}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="devDependencies">
|
||||
<el-descriptions border :column="3">
|
||||
<el-card header="devDependencies" shadow="never">
|
||||
<el-descriptions :column="3" border>
|
||||
<el-descriptions-item v-for="(value, key) in packageJson.devDependencies" :key="key" :label="key">{{
|
||||
value
|
||||
}}</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
</el-card>
|
||||
<el-card shadow="never" header="Assemblies">
|
||||
<el-descriptions border :column="2">
|
||||
<el-card header="Assemblies" shadow="never">
|
||||
<el-descriptions :column="2" border>
|
||||
<el-descriptions-item v-for="(value, key) in modules" :key="key" :label="value.name">{{
|
||||
value.version
|
||||
}}</el-descriptions-item>
|
||||
|
@ -32,7 +32,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<el-button icon="el-icon-check" size="large" type="primary" @click="godoc">文档</el-button>
|
||||
<el-button @click="godoc" icon="el-icon-check" size="large" type="primary">文档</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-card>
|
||||
|
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div ref="main" :class="['widgets-home', customizing ? 'customizing' : '']">
|
||||
<div :class="['widgets-home', customizing ? 'customizing' : '']" ref="main">
|
||||
<div class="widgets-content">
|
||||
<div ref="widgets" class="widgets">
|
||||
<div class="widgets" ref="widgets">
|
||||
<div class="widgets-wrapper">
|
||||
<div v-if="nowCompsList.length <= 0" class="no-widgets">
|
||||
<el-empty :image-size="280" :description="$t('没有部件啦')"></el-empty>
|
||||
<el-empty :description="$t('没有部件啦')" :image-size="280"></el-empty>
|
||||
</div>
|
||||
<el-row :gutter="15">
|
||||
<el-col v-for="(item, index) in grid.layout" v-bind:key="index" :md="item" :xs="24">
|
||||
<el-col v-bind:key="index" v-for="(item, index) in grid.layout" :md="item" :xs="24">
|
||||
<draggable
|
||||
v-model="grid.compsList[index]"
|
||||
animation="200"
|
||||
@ -23,12 +23,12 @@
|
||||
<component :is="allComps[element]"></component>
|
||||
<div v-if="customizing" class="customize-overlay">
|
||||
<el-button
|
||||
@click="remove(element)"
|
||||
class="close"
|
||||
icon="el-icon-close"
|
||||
plain
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="remove(element)"></el-button>
|
||||
type="danger"></el-button>
|
||||
<label>
|
||||
<el-icon>
|
||||
<component :is="allComps[element].icon" />
|
||||
@ -54,9 +54,9 @@
|
||||
添加部件
|
||||
</div>
|
||||
<div>
|
||||
<el-button v-if="customizing" icon="el-icon-check" round type="primary" @click="save">完成</el-button>
|
||||
<el-button v-if="customizing" @click="save" icon="el-icon-check" round type="primary">完成</el-button>
|
||||
</div>
|
||||
<div class="widgets-aside-close" @click="close()">
|
||||
<div @click="close()" class="widgets-aside-close">
|
||||
<el-icon>
|
||||
<el-icon-close />
|
||||
</el-icon>
|
||||
@ -64,7 +64,7 @@
|
||||
</el-header>
|
||||
<el-header style="height: auto">
|
||||
<div class="selectLayout">
|
||||
<div :class="{ active: grid.layout.join(',') === '12,6,6' }" class="selectLayout-item item01" @click="setLayout([12, 6, 6])">
|
||||
<div :class="{ active: grid.layout.join(',') === '12,6,6' }" @click="setLayout([12, 6, 6])" class="selectLayout-item item01">
|
||||
<el-row :gutter="2">
|
||||
<el-col :span="12"><span></span></el-col>
|
||||
<el-col :span="6"><span></span></el-col>
|
||||
@ -73,15 +73,15 @@
|
||||
</div>
|
||||
<div
|
||||
:class="{ active: grid.layout.join(',') === '24,16,8' }"
|
||||
class="selectLayout-item item02"
|
||||
@click="setLayout([24, 16, 8])">
|
||||
@click="setLayout([24, 16, 8])"
|
||||
class="selectLayout-item item02">
|
||||
<el-row :gutter="2">
|
||||
<el-col :span="24"><span></span></el-col>
|
||||
<el-col :span="16"><span></span></el-col>
|
||||
<el-col :span="8"><span></span></el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<div :class="{ active: grid.layout.join(',') === '24' }" class="selectLayout-item item03" @click="setLayout([24])">
|
||||
<div :class="{ active: grid.layout.join(',') === '24' }" @click="setLayout([24])" class="selectLayout-item item03">
|
||||
<el-row :gutter="2">
|
||||
<el-col :span="24"><span></span></el-col>
|
||||
<el-col :span="24"><span></span></el-col>
|
||||
@ -93,7 +93,7 @@
|
||||
<el-main class="nopadding">
|
||||
<div class="widgets-list">
|
||||
<div v-if="myCompsList.length <= 0" class="widgets-list-nodata">
|
||||
<el-empty :image-size="60" :description="$t('没有部件啦')"></el-empty>
|
||||
<el-empty :description="$t('没有部件啦')" :image-size="60"></el-empty>
|
||||
</div>
|
||||
<div v-for="item in myCompsList" :key="item.title" class="widgets-list-item">
|
||||
<div class="item-logo">
|
||||
@ -106,19 +106,19 @@
|
||||
<p>{{ item.description }}</p>
|
||||
</div>
|
||||
<div class="item-actions">
|
||||
<el-button icon="el-icon-plus" size="small" type="primary" @click="push(item)"></el-button>
|
||||
<el-button @click="push(item)" icon="el-icon-plus" size="small" type="primary"></el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-main>
|
||||
<el-footer style="height: 51px">
|
||||
<el-button size="small" @click="backDefault()">恢复默认</el-button>
|
||||
<el-button @click="backDefault()" size="small">恢复默认</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layout-setting" @click="custom">
|
||||
<div @click="custom" class="layout-setting">
|
||||
<el-icon><el-icon-setting /></el-icon>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -15,7 +15,7 @@
|
||||
<p>{{ mod.meta.title }}</p>
|
||||
</router-link>
|
||||
</li>
|
||||
<li class="modItem-add" @click="addMods">
|
||||
<li @click="addMods" class="modItem-add">
|
||||
<a href="javascript:void(0)">
|
||||
<el-icon>
|
||||
<el-icon-plus />
|
||||
@ -24,7 +24,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<el-drawer v-model="modsDrawer" :size="570" destroy-on-close :title="$t('添加应用')">
|
||||
<el-drawer v-model="modsDrawer" :size="570" :title="$t('添加应用')" destroy-on-close>
|
||||
<div class="setMods">
|
||||
<h4>我的常用 ( {{ myMods.length }} )</h4>
|
||||
<draggable v-model="myMods" animation="200" group="people" item-key="path" tag="ul">
|
||||
@ -53,7 +53,7 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="modsDrawer = false">取消</el-button>
|
||||
<el-button type="primary" @click="saveMods">保存</el-button>
|
||||
<el-button @click="saveMods" type="primary">保存</el-button>
|
||||
</template>
|
||||
</el-drawer>
|
||||
</div>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-card :header="$t('账号信息')" shadow="never">
|
||||
<el-form ref="form" :model="form" label-width="10rem">
|
||||
<el-form :model="form" label-width="10rem" ref="form">
|
||||
<el-form-item :label="$t('头像')">
|
||||
<sc-upload v-model="form.avatar" :onSuccess="updateUser" :title="$t('上传头像')"></sc-upload>
|
||||
</el-form-item>
|
||||
@ -34,9 +34,9 @@
|
||||
</el-form>
|
||||
</el-card>
|
||||
|
||||
<set-mobile-dialog v-if="dialog.setMobile" ref="setMobileDialog" @closed="dialog.setMobile = false" @success="setSuccess"></set-mobile-dialog>
|
||||
<set-password-dialog v-if="dialog.setPassword" ref="setPasswordDialog" @closed="dialog.setPassword = false"></set-password-dialog>
|
||||
<set-email-dialog v-if="dialog.setEmail" ref="setEmailDialog" @closed="dialog.setEmail = false" @success="setSuccess"></set-email-dialog>
|
||||
<set-mobile-dialog v-if="dialog.setMobile" @closed="dialog.setMobile = false" @success="setSuccess" ref="setMobileDialog"></set-mobile-dialog>
|
||||
<set-password-dialog v-if="dialog.setPassword" @closed="dialog.setPassword = false" ref="setPasswordDialog"></set-password-dialog>
|
||||
<set-email-dialog v-if="dialog.setEmail" @closed="dialog.setEmail = false" @success="setSuccess" ref="setEmailDialog"></set-email-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-dialog v-model="visible" :title="$t('设置邮箱')" :width="800" destroy-on-close @closed="$emit('closed')">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-position="top">
|
||||
<el-dialog v-model="visible" :title="$t('设置邮箱')" :width="800" @closed="$emit('closed')" destroy-on-close>
|
||||
<el-form :model="form" :rules="rules" label-position="top" ref="form">
|
||||
<el-row class="is-justify-space-evenly">
|
||||
<el-col v-if="$GLOBAL.user.mobile" :lg="10">
|
||||
<na-form-phone
|
||||
@ -28,7 +28,7 @@
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button :loading="loading" type="primary" @click="submit">保 存</el-button>
|
||||
<el-button :loading="loading" @click="submit" type="primary">保 存</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
@ -1,17 +1,17 @@
|
||||
<template>
|
||||
<el-dialog v-model="visible" :title="titleMap[mode]" :width="800" destroy-on-close @closed="$emit('closed')">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-position="top">
|
||||
<el-dialog v-model="visible" :title="titleMap[mode]" :width="800" @closed="$emit('closed')" destroy-on-close>
|
||||
<el-form :model="form" :rules="rules" label-position="top" ref="form">
|
||||
<el-row class="items-center justify-content-center">
|
||||
<el-col v-if="mode === 'edit'" :lg="10">
|
||||
<na-form-phone
|
||||
v-model="form.originverifySmsCodeReq"
|
||||
:code-field="['originverifySmsCodeReq.code', 'code']"
|
||||
:code-label="$t('原手机验证码')"
|
||||
:phone-field="['originverifySmsCodeReq.destDevice', 'destDevice']"
|
||||
:phone-label="$t('原手机号码')"
|
||||
:phone-place-holder="$GLOBAL.user.mobile"
|
||||
:vue="this"
|
||||
:code-label="$t('原手机验证码')"
|
||||
form-name="form"
|
||||
:phone-label="$t('原手机号码')" />
|
||||
form-name="form" />
|
||||
</el-col>
|
||||
<el-col v-if="mode === 'edit'" :lg="4" class="text-center arrow">
|
||||
<el-icon>
|
||||
@ -22,18 +22,18 @@
|
||||
<na-form-phone
|
||||
v-model="form.newverifySmsCodeReq"
|
||||
:code-field="['newverifySmsCodeReq.code', 'code']"
|
||||
:phone-field="['newverifySmsCodeReq.destDevice', 'destDevice']"
|
||||
:vue="this"
|
||||
:code-label="$t('新手机验证码')"
|
||||
form-name="form"
|
||||
:phone-label="$t('新手机号码')" />
|
||||
:phone-field="['newverifySmsCodeReq.destDevice', 'destDevice']"
|
||||
:phone-label="$t('新手机号码')"
|
||||
:vue="this"
|
||||
form-name="form" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button :loading="loading" type="primary" @click="submit">保 存</el-button>
|
||||
<el-button :loading="loading" @click="submit" type="primary">保 存</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<template>
|
||||
<el-dialog v-model="visible" :width="800" destroy-on-close :title="$t('修改密码')" @closed="$emit('closed')">
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="120">
|
||||
<el-dialog v-model="visible" :title="$t('修改密码')" :width="800" @closed="$emit('closed')" destroy-on-close>
|
||||
<el-form :model="form" :rules="rules" label-width="120" ref="form">
|
||||
<el-form-item :label="$t('旧密码')" prop="oldPassword">
|
||||
<el-input
|
||||
v-model="form.oldPassword"
|
||||
:placeholder="$t('请输入当前密码')"
|
||||
clearable
|
||||
maxlength="16"
|
||||
:placeholder="$t('请输入当前密码')"
|
||||
show-password
|
||||
type="password"></el-input>
|
||||
<div class="el-form-item-msg">必须提供当前登录用户密码才能进行更改</div>
|
||||
@ -14,9 +14,9 @@
|
||||
<el-form-item :label="$t('新密码')" prop="newPassword">
|
||||
<el-input
|
||||
v-model="form.newPassword"
|
||||
:placeholder="$t('请输入新密码')"
|
||||
clearable
|
||||
maxlength="16"
|
||||
:placeholder="$t('请输入新密码')"
|
||||
show-password
|
||||
type="password"></el-input>
|
||||
<sc-password-strength v-model="form.newPassword"></sc-password-strength>
|
||||
@ -25,16 +25,16 @@
|
||||
<el-form-item :label="$t('确认新密码')" prop="confirmNewPassword">
|
||||
<el-input
|
||||
v-model="form.confirmNewPassword"
|
||||
:placeholder="$t('请再次输入新密码')"
|
||||
clearable
|
||||
maxlength="16"
|
||||
:placeholder="$t('请再次输入新密码')"
|
||||
show-password
|
||||
type="password"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button :loading="loading" type="primary" @click="submit">保 存</el-button>
|
||||
<el-button :loading="loading" @click="submit" type="primary">保 存</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<el-main class="nopadding">
|
||||
<el-menu :default-active="$route.path" class="menu">
|
||||
<el-menu-item-group v-for="group in menu" :key="$t(group.groupName)" :title="$t(group.groupName)">
|
||||
<el-menu-item v-for="item in group.list" :key="item.component" :index="item.component" @click="openPage">
|
||||
<el-menu-item v-for="item in group.list" :index="item.component" :key="item.component" @click="openPage">
|
||||
<el-icon v-if="item.icon">
|
||||
<component :is="item.icon" />
|
||||
</el-icon>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<el-card :header="$t('近7天操作记录')" shadow="never">
|
||||
<scTable ref="table" :data="data" height="auto" hideDo paginationLayout="total, prev, pager, next">
|
||||
<scTable :data="data" height="auto" hideDo paginationLayout="total, prev, pager, next" ref="table">
|
||||
<sc-table-column :label="$t('序号')" type="index"></sc-table-column>
|
||||
<sc-table-column :label="$t('业务名称')" min-width="240" prop="title"></sc-table-column>
|
||||
<sc-table-column label="IP" prop="ip" width="150"></sc-table-column>
|
||||
|
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<el-skeleton :rows="5" animated v-if="loading" />
|
||||
<el-skeleton v-if="loading" :rows="5" animated />
|
||||
<template v-else>
|
||||
<el-container v-if="msgList.length > 0" class="nopadding">
|
||||
<el-header style="border: none">
|
||||
<div class="right-panel">
|
||||
<el-button icon="el-icon-message" plain type="success" @click="batchRead"></el-button>
|
||||
<el-button @click="batchRead" icon="el-icon-message" plain type="success"></el-button>
|
||||
<el-popconfirm :title="`确定清空本页消息吗?`" @confirm="batchDel" width="15rem">
|
||||
<template #reference>
|
||||
<el-button icon="el-icon-delete" plain type="danger" v-loading="delLoading"></el-button>
|
||||
<el-button v-loading="delLoading" icon="el-icon-delete" plain type="danger"></el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</div>
|
||||
@ -15,17 +15,17 @@
|
||||
<el-main>
|
||||
<div class="msg-collapse">
|
||||
<el-collapse
|
||||
v-model="currMsgId"
|
||||
accordion
|
||||
@change="change"
|
||||
v-infinite-scroll="load"
|
||||
infinite-scroll-distance="200"
|
||||
v-loading="msgLoading">
|
||||
v-loading="msgLoading"
|
||||
v-model="currMsgId"
|
||||
@change="change"
|
||||
accordion
|
||||
infinite-scroll-distance="200">
|
||||
<el-collapse-item
|
||||
v-for="(msg, i) in msgList"
|
||||
:class="msg.myFlags.userSiteMsgStatus === 'read' ? 'msg-wrapper-read' : ''"
|
||||
:key="i"
|
||||
:name="msg.id"
|
||||
:class="msg.myFlags.userSiteMsgStatus === 'read' ? 'msg-wrapper-read' : ''">
|
||||
:name="msg.id">
|
||||
<template #title>
|
||||
<div class="msg-title">
|
||||
<div>
|
||||
@ -49,7 +49,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div class="msg-content" v-html="msg.content"></div>
|
||||
<div v-html="msg.content" class="msg-content"></div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
</div>
|
||||
|
@ -4,22 +4,22 @@
|
||||
<el-row :gutter="15" style="margin-top: 20px">
|
||||
<el-col :lg="6">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic groupSeparator suffix="GB" :title="$t('文档')" value="7.41"></sc-statistic>
|
||||
<sc-statistic :title="$t('文档')" groupSeparator suffix="GB" value="7.41"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="6">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic groupSeparator suffix="GB" :title="$t('图片')" value="12.90"></sc-statistic>
|
||||
<sc-statistic :title="$t('图片')" groupSeparator suffix="GB" value="12.90"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="6">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic groupSeparator suffix="MB" :title="$t('视音频')" value="68.79"></sc-statistic>
|
||||
<sc-statistic :title="$t('视音频')" groupSeparator suffix="MB" value="68.79"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="6">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic groupSeparator suffix="GB" :title="$t('其他')" value="17.58"></sc-statistic>
|
||||
<sc-statistic :title="$t('其他')" groupSeparator suffix="GB" value="17.58"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -3,16 +3,16 @@
|
||||
<el-header>
|
||||
<div class="left-panel"></div>
|
||||
<div class="right-panel">
|
||||
<el-button :loading="loading" icon="sc-icon-sync" type="primary" @click="sync">同步接口</el-button>
|
||||
<el-button :loading="loading" @click="sync" icon="sc-icon-sync" type="primary">同步接口</el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<sc-table
|
||||
ref="table"
|
||||
:apiObj="$API.sys_api.query"
|
||||
:summary-method="(x) => ['接口总数', countTotalRows(x.data)]"
|
||||
default-expand-all
|
||||
hidePagination
|
||||
ref="table"
|
||||
row-key="id"
|
||||
show-summary
|
||||
stripe>
|
||||
|
22
src/frontend/admin/src/views/sys/cache/index.vue
vendored
22
src/frontend/admin/src/views/sys/cache/index.vue
vendored
@ -11,9 +11,9 @@
|
||||
<el-col :lg="4">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic
|
||||
:suffix="$t('天')"
|
||||
:value="parseInt(statistics.upTime / 86400)"
|
||||
groupSeparator
|
||||
:suffix="$t('天')"
|
||||
title="Redis 运行时间"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
@ -29,24 +29,24 @@
|
||||
<el-col :lg="4">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic
|
||||
:title="$t('内存使用量')"
|
||||
:value="(statistics.usedMemory / 1024 / 1024).toFixed(2)"
|
||||
groupSeparator
|
||||
suffix="MiB"
|
||||
:title="$t('内存使用量')"></sc-statistic>
|
||||
suffix="MiB"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="4">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic :value="statistics.dbSize" groupSeparator :title="$t('缓存数量')"></sc-statistic>
|
||||
<sc-statistic :title="$t('缓存数量')" :value="statistics.dbSize" groupSeparator></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :lg="4">
|
||||
<el-card shadow="never">
|
||||
<sc-statistic
|
||||
:title="$t('缓存命中率')"
|
||||
:value="((statistics.keyspaceHits / (statistics.keyspaceMisses + statistics.keyspaceHits)) * 100).toFixed(2)"
|
||||
groupSeparator
|
||||
suffix="%"
|
||||
:title="$t('缓存命中率')"></sc-statistic>
|
||||
suffix="%"></sc-statistic>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -56,7 +56,7 @@
|
||||
<el-container>
|
||||
<el-aside>
|
||||
<el-menu :default-active="query.filter.dbIndex" class="el-menu-vertical-demo">
|
||||
<el-menu-item v-for="(i, index) in 16" :key="index" :index="index" @click="this.query.filter.dbIndex = index">
|
||||
<el-menu-item v-for="(i, index) in 16" :index="index" :key="index" @click="this.query.filter.dbIndex = index">
|
||||
<el-icon>
|
||||
<el-icon-notebook></el-icon-notebook>
|
||||
</el-icon>
|
||||
@ -65,11 +65,11 @@
|
||||
</el-menu>
|
||||
</el-aside>
|
||||
<el-main>
|
||||
<sc-table ref="table" :apiObj="$API.sys_cache.getAllEntries" :params="query" row-key="key" stripe @row-click="rowClick">
|
||||
<el-table-column :min-width="300" :label="$t('键名')" prop="key" show-overflow-tooltip />
|
||||
<sc-table :apiObj="$API.sys_cache.getAllEntries" :params="query" @row-click="rowClick" ref="table" row-key="key" stripe>
|
||||
<el-table-column :label="$t('键名')" :min-width="300" prop="key" show-overflow-tooltip />
|
||||
<el-table-column :label="$t('键值')" prop="data" show-overflow-tooltip />
|
||||
<el-table-column align="right" :label="$t('滑动过期')" prop="sldExp" />
|
||||
<el-table-column align="right" :label="$t('绝对过期')" prop="absExp" />
|
||||
<el-table-column :label="$t('滑动过期')" align="right" prop="sldExp" />
|
||||
<el-table-column :label="$t('绝对过期')" align="right" prop="absExp" />
|
||||
</sc-table>
|
||||
</el-main>
|
||||
</el-container>
|
||||
|
@ -3,21 +3,21 @@
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<na-button-add :vue="this"></na-button-add>
|
||||
<el-button :disabled="selection.length === 0" icon="el-icon-delete" plain type="danger" @click="batchDel"></el-button>
|
||||
<el-button :disabled="selection.length === 0" @click="batchDel" icon="el-icon-delete" plain type="danger"></el-button>
|
||||
</div>
|
||||
<div class="right-panel"></div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<sc-table
|
||||
ref="table"
|
||||
:apiObj="$API.sys_config.pagedQuery"
|
||||
row-key="id"
|
||||
stripe
|
||||
@selection-change="
|
||||
(items) => {
|
||||
selection = items
|
||||
}
|
||||
">
|
||||
"
|
||||
ref="table"
|
||||
row-key="id"
|
||||
stripe>
|
||||
<el-table-column type="selection"></el-table-column>
|
||||
<el-table-column :label="$t('配置编号')" prop="id"></el-table-column>
|
||||
<el-table-column :label="$t('用户注册')">
|
||||
@ -51,9 +51,9 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@closed="dialog.save = false"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"></save-dialog>
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<sc-dialog v-model="visible" :title="titleMap[mode]" destroy-on-close @closed="$emit('closed')">
|
||||
<sc-dialog v-model="visible" :title="titleMap[mode]" @closed="$emit('closed')" destroy-on-close>
|
||||
<div v-loading="loading">
|
||||
<el-tabs v-if="!loading" tab-position="top">
|
||||
<el-tab-pane :label="$t('基本信息')">
|
||||
<el-form ref="dialogForm" :disabled="mode === 'view'" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form :disabled="mode === 'view'" :model="form" :rules="rules" label-width="100px" ref="dialogForm">
|
||||
<el-collapse>
|
||||
<el-collapse-item name="1" :title="$t('用户注册设置')">
|
||||
<el-collapse-item :title="$t('用户注册设置')" name="1">
|
||||
<div style="margin: 10px">
|
||||
<el-form-item :label="$t('默认角色')" prop="userRegisterRoleId">
|
||||
<sc-select
|
||||
@ -23,7 +23,7 @@
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-collapse-item>
|
||||
<el-collapse-item name="2" :title="$t('其他设置')"></el-collapse-item>
|
||||
<el-collapse-item :title="$t('其他设置')" name="2"></el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
<el-form-item :label="$t('启用')" prop="enabled">
|
||||
@ -44,7 +44,7 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button v-if="mode !== 'view'" :loading="loading" type="primary" @click="submit">保 存</el-button>
|
||||
<el-button v-if="mode !== 'view'" :loading="loading" @click="submit" type="primary">保 存</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
</template>
|
||||
|
@ -26,26 +26,26 @@
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<na-button-add :vue="this"></na-button-add>
|
||||
<el-button :disabled="selection.length === 0" icon="el-icon-delete" plain type="danger" @click="batchDel"></el-button>
|
||||
<el-button :disabled="selection.length === 0" @click="batchDel" icon="el-icon-delete" plain type="danger"></el-button>
|
||||
</div>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<sc-table
|
||||
ref="table"
|
||||
:apiObj="$API.sys_dept.query"
|
||||
:default-sort="{ prop: 'sort', order: 'descending' }"
|
||||
:params="query"
|
||||
default-expand-all
|
||||
hidePagination
|
||||
remote-filter
|
||||
remote-sort
|
||||
row-key="id"
|
||||
stripe
|
||||
@selection-change="
|
||||
(items) => {
|
||||
selection = items
|
||||
}
|
||||
">
|
||||
"
|
||||
default-expand-all
|
||||
hidePagination
|
||||
ref="table"
|
||||
remote-filter
|
||||
remote-sort
|
||||
row-key="id"
|
||||
stripe>
|
||||
<el-table-column type="selection" width="50"></el-table-column>
|
||||
<el-table-column :label="$t('部门编号')" prop="id" sortable="custom"></el-table-column>
|
||||
<el-table-column :label="$t('部门名称')" prop="name" sortable="custom"></el-table-column>
|
||||
@ -75,9 +75,9 @@
|
||||
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@closed="dialog.save = false"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"></save-dialog>
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<sc-dialog v-model="visible" :title="titleMap[mode]" :width="500" destroy-on-close @closed="$emit('closed')">
|
||||
<sc-dialog v-model="visible" :title="titleMap[mode]" :width="500" @closed="$emit('closed')" destroy-on-close>
|
||||
<div v-loading="loading">
|
||||
<el-tabs tab-position="top">
|
||||
<el-tab-pane :label="$t('基本信息')">
|
||||
<el-form ref="dialogForm" :disabled="mode === 'view'" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form :disabled="mode === 'view'" :model="form" :rules="rules" label-width="100px" ref="dialogForm">
|
||||
<el-form-item :label="$t('上级部门')" prop="parentId">
|
||||
<el-cascader
|
||||
v-model="form.parentId"
|
||||
@ -14,7 +14,7 @@
|
||||
style="width: 100%"></el-cascader>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('部门名称')" prop="name">
|
||||
<el-input v-model="form.name" clearable :placeholder="$t('请输入部门名称')"></el-input>
|
||||
<el-input v-model="form.name" :placeholder="$t('请输入部门名称')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('排序')" prop="sort">
|
||||
<el-input-number v-model="form.sort" :min="0" controls-position="right" style="width: 100%"></el-input-number>
|
||||
@ -40,7 +40,7 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button v-if="mode !== 'view'" :loading="loading" type="primary" @click="submit">保 存</el-button>
|
||||
<el-button v-if="mode !== 'view'" :loading="loading" @click="submit" type="primary">保 存</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
</template>
|
||||
|
@ -3,11 +3,10 @@
|
||||
<el-aside v-loading="loading" width="300px">
|
||||
<el-container>
|
||||
<el-header>
|
||||
<el-input v-model="filterText" clearable :placeholder="$t('输入关键字进行过滤')"></el-input>
|
||||
<el-input v-model="filterText" :placeholder="$t('输入关键字进行过滤')" clearable></el-input>
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<el-tree
|
||||
ref="dic"
|
||||
:data="data"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
@ -15,18 +14,19 @@
|
||||
:props="{
|
||||
label: 'name',
|
||||
}"
|
||||
@node-click="click"
|
||||
default-expand-all
|
||||
node-key="id"
|
||||
@node-click="click">
|
||||
ref="dic">
|
||||
<template #default="{ _, data }">
|
||||
<div class="custom-tree-node">
|
||||
<span>{{ data.name }} {{ data.code }}</span>
|
||||
<span class="btn">
|
||||
<el-button-group size="small">
|
||||
<el-button icon="el-icon-edit" @click.stop="edit(data)"></el-button>
|
||||
<el-button @click.stop="edit(data)" icon="el-icon-edit"></el-button>
|
||||
<el-popconfirm :title="`确定删除 ${data.name} 吗?`" @confirm="del(data)">
|
||||
<template #reference>
|
||||
<el-button icon="el-icon-delete" @click.stop="() => {}"></el-button>
|
||||
<el-button @click.stop="() => {}" icon="el-icon-delete"></el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</el-button-group>
|
||||
@ -36,13 +36,13 @@
|
||||
</el-tree>
|
||||
</el-main>
|
||||
<el-footer>
|
||||
<el-button icon="el-icon-plus" size="small" style="width: 100%" type="primary" @click="add">字典分类</el-button>
|
||||
<el-button @click="add" icon="el-icon-plus" size="small" style="width: 100%" type="primary">字典分类</el-button>
|
||||
</el-footer>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<list :catalogId="form.catalogId" />
|
||||
</el-container>
|
||||
<save-dialog v-if="dialog.save" ref="saveDialog" @closed="dialog.save = false" @success="getData"></save-dialog>
|
||||
<save-dialog v-if="dialog.save" @closed="dialog.save = false" @success="getData" ref="saveDialog"></save-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
@ -3,7 +3,6 @@
|
||||
<el-header>
|
||||
<div class="left-panel">
|
||||
<na-search
|
||||
ref="search"
|
||||
:controls="[
|
||||
{
|
||||
type: 'input',
|
||||
@ -13,7 +12,8 @@
|
||||
},
|
||||
]"
|
||||
:vue="this"
|
||||
@search="onSearch" />
|
||||
@search="onSearch"
|
||||
ref="search" />
|
||||
</div>
|
||||
<div class="right-panel">
|
||||
<na-button-add :data="{ catalogId: this.catalogId }" :vue="this" />
|
||||
@ -22,19 +22,19 @@
|
||||
</el-header>
|
||||
<el-main class="nopadding">
|
||||
<sc-table
|
||||
ref="table"
|
||||
:apiObj="$API.sys_dic.pagedQueryContent"
|
||||
:before-post="(data) => data.dynamicFilter.filters.length > 0"
|
||||
:default-sort="{ prop: 'createdTime', order: 'descending' }"
|
||||
:params="query"
|
||||
remote-sort
|
||||
row-key="id"
|
||||
stripe
|
||||
@selection-change="
|
||||
(items) => {
|
||||
selection = items
|
||||
}
|
||||
">
|
||||
"
|
||||
ref="table"
|
||||
remote-sort
|
||||
row-key="id"
|
||||
stripe>
|
||||
<el-table-column type="selection" width="50"></el-table-column>
|
||||
<el-table-column :label="$t('项名')" prop="key" sortable="custom"></el-table-column>
|
||||
<el-table-column :label="$t('项值')" prop="value" sortable="custom"></el-table-column>
|
||||
@ -54,9 +54,9 @@
|
||||
</el-container>
|
||||
<save-dialog
|
||||
v-if="dialog.save"
|
||||
ref="saveDialog"
|
||||
@closed="dialog.save = false"
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"></save-dialog>
|
||||
@success="(data, mode) => table.handleUpdate($refs.table, data, mode)"
|
||||
ref="saveDialog"></save-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import saveDialog from './save'
|
||||
|
@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<sc-dialog v-model="visible" :title="titleMap[mode]" :width="400" destroy-on-close @closed="$emit('closed')">
|
||||
<sc-dialog v-model="visible" :title="titleMap[mode]" :width="400" @closed="$emit('closed')" destroy-on-close>
|
||||
<div v-loading="loading">
|
||||
<el-tabs tab-position="top">
|
||||
<el-tab-pane :label="$t('基本信息')">
|
||||
<el-form ref="dialogForm" :disabled="mode === 'view'" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form :disabled="mode === 'view'" :model="form" :rules="rules" label-width="100px" ref="dialogForm">
|
||||
<el-form-item :label="$t('所属字典')" prop="catalogId">
|
||||
<na-dic-catalog v-model="form.catalogId" />
|
||||
</el-form-item>
|
||||
@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">取 消</el-button>
|
||||
<el-button v-if="mode !== 'view'" :loading="loading" type="primary" @click="submit">保 存</el-button>
|
||||
<el-button v-if="mode !== 'view'" :loading="loading" @click="submit" type="primary">保 存</el-button>
|
||||
</template>
|
||||
</sc-dialog>
|
||||
</template>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user