Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite
This commit is contained in:
@@ -13,6 +13,11 @@
|
|||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
src: url('pingfang/pingfang-regular.ttf') format('truetype');
|
src: url('pingfang/pingfang-regular.ttf') format('truetype');
|
||||||
}
|
}
|
||||||
|
@font-face {
|
||||||
|
font-family: 'pingfang_heavy';
|
||||||
|
font-weight: normal;
|
||||||
|
src: url('pingfang/pingfang-heavy.ttf') format('truetype');
|
||||||
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'satoshi_light';
|
font-family: 'satoshi_light';
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
|
|||||||
BIN
public/css/pingfang/pingfang-heavy.ttf
Normal file
BIN
public/css/pingfang/pingfang-heavy.ttf
Normal file
Binary file not shown.
88
src/assets/css/ant-from-style.css
Normal file
88
src/assets/css/ant-from-style.css
Normal file
@@ -0,0 +1,88 @@
|
|||||||
|
:deep(.ant-form) .form-group {
|
||||||
|
display: flex;
|
||||||
|
gap: 1.6rem;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .form-group .ant-form-item {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item {
|
||||||
|
margin-bottom: 1.6rem;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item .tip-length {
|
||||||
|
user-select: none;
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 1rem;
|
||||||
|
right: 1.6rem;
|
||||||
|
font-family: pingfang_regular;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #df2c2c;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item .ant-form-item-explain,
|
||||||
|
:deep(.ant-form) .ant-form-item .ant-form-item-explain-connected {
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item .ant-form-item-explain-error {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-label {
|
||||||
|
display: flex;
|
||||||
|
padding: 0 0 0.6rem 0;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-label > label {
|
||||||
|
font-family: pingfang_medium;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
line-height: 150%;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional)::before {
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-label > label.ant-form-item-required:not(.ant-form-item-required-mark-optional):after {
|
||||||
|
display: inline-block;
|
||||||
|
color: #df2c2c;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
content: "*";
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input .ant-input-affix-wrapper,
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input textarea,
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input input {
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
border: 0.16rem solid #d1d1d1;
|
||||||
|
font-family: pingfang_regular;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
color: #000;
|
||||||
|
padding: 1.6rem;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input .ant-input-affix-wrapper::placeholder,
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input textarea::placeholder,
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input input::placeholder {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input .ant-input-affix-wrapper {
|
||||||
|
margin-bottom: 0.6rem;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input .ant-input-affix-wrapper:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input .ant-input-affix-wrapper .ant-input-prefix {
|
||||||
|
width: 5.2rem;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
line-height: 150%;
|
||||||
|
color: #000;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input .ant-input-affix-wrapper input {
|
||||||
|
border: none;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0 1.6rem;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input input {
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
|
:deep(.ant-form) .ant-form-item-control-input textarea {
|
||||||
|
height: 11rem;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
0
src/assets/css/ant-from.css
Normal file
0
src/assets/css/ant-from.css
Normal file
11
src/assets/icons/seller/camera.svg
Normal file
11
src/assets/icons/seller/camera.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1572_2304)">
|
||||||
|
<path d="M19 4H18.492L16.308 1.168C16.0265 0.805806 15.6663 0.512417 15.2547 0.310054C14.843 0.107691 14.3907 0.00166304 13.932 0L10.068 0C9.6093 0.00166304 9.15699 0.107691 8.74533 0.310054C8.33368 0.512417 7.97347 0.805806 7.692 1.168L5.508 4H5C3.67441 4.00159 2.40356 4.52888 1.46622 5.46622C0.528882 6.40356 0.00158786 7.67441 0 9L0 19C0.00158786 20.3256 0.528882 21.5964 1.46622 22.5338C2.40356 23.4711 3.67441 23.9984 5 24H19C20.3256 23.9984 21.5964 23.4711 22.5338 22.5338C23.4711 21.5964 23.9984 20.3256 24 19V9C23.9984 7.67441 23.4711 6.40356 22.5338 5.46622C21.5964 4.52888 20.3256 4.00159 19 4ZM9.276 2.39C9.36967 2.26905 9.48969 2.17106 9.62693 2.10348C9.76418 2.0359 9.91502 2.00051 10.068 2H13.932C14.085 2.00066 14.2357 2.03611 14.373 2.10368C14.5102 2.17125 14.6302 2.26916 14.724 2.39L15.966 4H8.034L9.276 2.39ZM22 19C22 19.7956 21.6839 20.5587 21.1213 21.1213C20.5587 21.6839 19.7956 22 19 22H5C4.20435 22 3.44129 21.6839 2.87868 21.1213C2.31607 20.5587 2 19.7956 2 19V9C2 8.20435 2.31607 7.44129 2.87868 6.87868C3.44129 6.31607 4.20435 6 5 6H19C19.7956 6 20.5587 6.31607 21.1213 6.87868C21.6839 7.44129 22 8.20435 22 9V19Z" fill="white"/>
|
||||||
|
<path d="M12 8C10.8133 8 9.65328 8.35189 8.66658 9.01118C7.67989 9.67047 6.91085 10.6075 6.45673 11.7039C6.0026 12.8003 5.88378 14.0067 6.11529 15.1705C6.3468 16.3344 6.91825 17.4035 7.75736 18.2426C8.59648 19.0818 9.66558 19.6532 10.8295 19.8847C11.9933 20.1162 13.1997 19.9974 14.2961 19.5433C15.3925 19.0892 16.3295 18.3201 16.9888 17.3334C17.6481 16.3467 18 15.1867 18 14C17.9984 12.4092 17.3658 10.884 16.2409 9.75911C15.116 8.63424 13.5908 8.00159 12 8ZM12 18C11.2089 18 10.4355 17.7654 9.77772 17.3259C9.11993 16.8864 8.60723 16.2616 8.30448 15.5307C8.00173 14.7998 7.92252 13.9956 8.07686 13.2196C8.2312 12.4437 8.61217 11.731 9.17158 11.1716C9.73099 10.6122 10.4437 10.2312 11.2196 10.0769C11.9956 9.92252 12.7998 10.0017 13.5307 10.3045C14.2616 10.6072 14.8864 11.1199 15.3259 11.7777C15.7654 12.4355 16 13.2089 16 14C16 15.0609 15.5786 16.0783 14.8284 16.8284C14.0783 17.5786 13.0609 18 12 18Z" fill="white"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1572_2304">
|
||||||
|
<rect width="24" height="24" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
11
src/assets/icons/seller/picture.svg
Normal file
11
src/assets/icons/seller/picture.svg
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<svg width="60" height="60" viewBox="0 0 60 60" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<g clip-path="url(#clip0_1572_2553)">
|
||||||
|
<path d="M47.5 0H12.5C9.18601 0.00396964 6.00889 1.3222 3.66555 3.66555C1.3222 6.00889 0.00396964 9.18601 0 12.5L0 47.5C0.00396964 50.814 1.3222 53.9911 3.66555 56.3345C6.00889 58.6778 9.18601 59.996 12.5 60H47.5C50.814 59.996 53.9911 58.6778 56.3345 56.3345C58.6778 53.9911 59.996 50.814 60 47.5V12.5C59.996 9.18601 58.6778 6.00889 56.3345 3.66555C53.9911 1.3222 50.814 0.00396964 47.5 0ZM12.5 5H47.5C49.4891 5 51.3968 5.79018 52.8033 7.1967C54.2098 8.60322 55 10.5109 55 12.5V47.5C54.9957 48.6137 54.7393 49.712 54.25 50.7125L31.3425 27.805C30.1817 26.6439 28.8036 25.7229 27.2868 25.0945C25.77 24.4661 24.1443 24.1427 22.5025 24.1427C20.8607 24.1427 19.235 24.4661 17.7182 25.0945C16.2014 25.7229 14.8233 26.6439 13.6625 27.805L5 36.465V12.5C5 10.5109 5.79018 8.60322 7.1967 7.1967C8.60322 5.79018 10.5109 5 12.5 5ZM12.5 55C10.5109 55 8.60322 54.2098 7.1967 52.8033C5.79018 51.3968 5 49.4891 5 47.5V43.535L17.195 31.34C17.8915 30.6431 18.7185 30.0902 19.6288 29.713C20.539 29.3358 21.5147 29.1416 22.5 29.1416C23.4853 29.1416 24.461 29.3358 25.3712 29.713C26.2815 30.0902 27.1085 30.6431 27.805 31.34L50.7125 54.25C49.712 54.7393 48.6137 54.9957 47.5 55H12.5Z" fill="#D0D0D0"/>
|
||||||
|
<path d="M40 26.25C41.7306 26.25 43.4223 25.7368 44.8612 24.7754C46.3002 23.8139 47.4217 22.4473 48.0839 20.8485C48.7462 19.2496 48.9195 17.4903 48.5819 15.793C48.2443 14.0956 47.4109 12.5365 46.1872 11.3128C44.9635 10.0891 43.4044 9.25575 41.707 8.91813C40.0097 8.58051 38.2504 8.75379 36.6515 9.41606C35.0527 10.0783 33.6861 11.1998 32.7246 12.6388C31.7632 14.0777 31.25 15.7694 31.25 17.5C31.25 19.8206 32.1719 22.0462 33.8128 23.6872C35.4538 25.3281 37.6794 26.25 40 26.25ZM40 13.75C40.7417 13.75 41.4667 13.9699 42.0834 14.382C42.7001 14.794 43.1807 15.3797 43.4645 16.0649C43.7484 16.7502 43.8226 17.5042 43.6779 18.2316C43.5333 18.959 43.1761 19.6272 42.6516 20.1517C42.1272 20.6761 41.459 21.0333 40.7316 21.1779C40.0042 21.3226 39.2502 21.2484 38.5649 20.9646C37.8797 20.6807 37.294 20.2001 36.882 19.5834C36.4699 18.9667 36.25 18.2417 36.25 17.5C36.25 16.5054 36.6451 15.5516 37.3483 14.8484C38.0516 14.1451 39.0054 13.75 40 13.75Z" fill="#D0D0D0"/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<clipPath id="clip0_1572_2553">
|
||||||
|
<rect width="60" height="60" fill="white"/>
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.3 KiB |
4
src/assets/icons/seller/user.svg
Normal file
4
src/assets/icons/seller/user.svg
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
<svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M24 24C26.3734 24 28.6935 23.2962 30.6668 21.9776C32.6402 20.6591 34.1783 18.7849 35.0866 16.5922C35.9948 14.3995 36.2324 11.9867 35.7694 9.65892C35.3064 7.33115 34.1635 5.19295 32.4853 3.51472C30.8071 1.83649 28.6689 0.693605 26.3411 0.230582C24.0133 -0.232441 21.6005 0.00519943 19.4078 0.913451C17.2151 1.8217 15.3409 3.35977 14.0224 5.33316C12.7038 7.30655 12 9.62663 12 12C12.0032 15.1816 13.2685 18.232 15.5182 20.4818C17.768 22.7315 20.8184 23.9968 24 24ZM24 4.00001C25.5823 4.00001 27.129 4.4692 28.4446 5.34825C29.7602 6.2273 30.7855 7.47673 31.391 8.93854C31.9965 10.4003 32.155 12.0089 31.8463 13.5607C31.5376 15.1126 30.7757 16.538 29.6569 17.6569C28.538 18.7757 27.1126 19.5376 25.5607 19.8463C24.0089 20.155 22.4003 19.9965 20.9385 19.391C19.4767 18.7855 18.2273 17.7602 17.3482 16.4446C16.4692 15.129 16 13.5823 16 12C16 9.87827 16.8429 7.84344 18.3431 6.34315C19.8434 4.84286 21.8783 4.00001 24 4.00001Z" fill="#BBBBBB"/>
|
||||||
|
<path d="M24 28C19.2277 28.0053 14.6524 29.9034 11.2779 33.2779C7.90342 36.6524 6.00529 41.2277 6 46C6 46.5304 6.21071 47.0391 6.58579 47.4142C6.96086 47.7893 7.46957 48 8 48C8.53043 48 9.03914 47.7893 9.41421 47.4142C9.78929 47.0391 10 46.5304 10 46C10 42.287 11.475 38.726 14.1005 36.1005C16.726 33.475 20.287 32 24 32C27.713 32 31.274 33.475 33.8995 36.1005C36.525 38.726 38 42.287 38 46C38 46.5304 38.2107 47.0391 38.5858 47.4142C38.9609 47.7893 39.4696 48 40 48C40.5304 48 41.0391 47.7893 41.4142 47.4142C41.7893 47.0391 42 46.5304 42 46C41.9947 41.2277 40.0966 36.6524 36.7221 33.2779C33.3476 29.9034 28.7723 28.0053 24 28Z" fill="#BBBBBB"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.7 KiB |
110
src/assets/style/ant-from-style.less
Normal file
110
src/assets/style/ant-from-style.less
Normal file
@@ -0,0 +1,110 @@
|
|||||||
|
:deep(.ant-form) {
|
||||||
|
.form-group {
|
||||||
|
display: flex;
|
||||||
|
gap: 1.6rem;
|
||||||
|
|
||||||
|
.ant-form-item {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-form-item {
|
||||||
|
margin-bottom: 1.6rem;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.tip-length {
|
||||||
|
user-select: none;
|
||||||
|
pointer-events: none;
|
||||||
|
position: absolute;
|
||||||
|
bottom: 1rem;
|
||||||
|
right: 1.6rem;
|
||||||
|
font-family: pingfang_regular;
|
||||||
|
font-size: 1rem;
|
||||||
|
color: #df2c2c;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-form-item-explain,
|
||||||
|
.ant-form-item-explain-connected {
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-form-item-explain-error {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-form-item-label {
|
||||||
|
display: flex;
|
||||||
|
padding: 0 0 0.6rem 0;
|
||||||
|
|
||||||
|
>label {
|
||||||
|
font-family: pingfang_medium;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
line-height: 150%;
|
||||||
|
|
||||||
|
&.ant-form-item-required:not(.ant-form-item-required-mark-optional) {
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
}
|
||||||
|
|
||||||
|
&:after {
|
||||||
|
display: inline-block;
|
||||||
|
color: #df2c2c;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
content: "*";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-form-item-control-input {
|
||||||
|
|
||||||
|
.ant-input-affix-wrapper,
|
||||||
|
textarea,
|
||||||
|
input {
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
border: 0.16rem solid #d1d1d1;
|
||||||
|
font-family: pingfang_regular;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
color: #000;
|
||||||
|
padding: 1.6rem;
|
||||||
|
|
||||||
|
&::placeholder {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-input-affix-wrapper {
|
||||||
|
margin-bottom: 0.6rem;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-input-prefix {
|
||||||
|
width: 5.2rem;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
line-height: 150%;
|
||||||
|
color: #000;
|
||||||
|
justify-content: center;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
border: none;
|
||||||
|
height: 100%;
|
||||||
|
padding: 0 1.6rem;
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
input {
|
||||||
|
height: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
height: 11rem;
|
||||||
|
resize: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -24,471 +24,494 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
component: () => import("@/component/Canvas/canvasExample.vue")
|
component: () => import("@/component/Canvas/canvasExample.vue")
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/schoolLogin",
|
path: "/schoolLogin",
|
||||||
name: "schoolLogin",
|
name: "schoolLogin",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/Login.vue") // 使用通用登录组件
|
component: () => import("@/views/Login.vue"), // 使用通用登录组件
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/enterpriseLogin",
|
path: "/enterpriseLogin",
|
||||||
name: "enterpriseLogin",
|
name: "enterpriseLogin",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/Login.vue") // 使用通用登录组件
|
component: () => import("@/views/Login.vue"), // 使用通用登录组件
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/test",
|
path: "/test",
|
||||||
name: "test1",
|
name: "test1",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/test.vue")
|
component: () => import("@/views/test.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/register",
|
path: "/register",
|
||||||
name: "register",
|
name: "register",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/Register.vue")
|
component: () => import("@/views/Register.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/register/:lang",
|
path: "/register/:lang",
|
||||||
name: "registerLang",
|
name: "registerLang",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/Register.vue")
|
component: () => import("@/views/Register.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/upgrade",
|
path: "/upgrade",
|
||||||
name: "upgrade",
|
name: "upgrade",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/Upgrade.vue")
|
component: () => import("@/views/Upgrade.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/home",
|
path: "/home",
|
||||||
name: "home",
|
name: "home",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/HomeMain.vue"),
|
component: () => import("@/views/HomeMain.vue"),
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: "tools",
|
path: "tools",
|
||||||
name: "tools",
|
name: "tools",
|
||||||
meta: { enter: "all", cache: true },
|
meta: { enter: "all",cache:true },
|
||||||
component: () => import("@/views/HomeView/Tools.vue")
|
component: () => import("@/views/HomeView/Tools.vue"),
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// path: "homePage",
|
// path: "homePage",
|
||||||
// name: "homePage",
|
// name: "homePage",
|
||||||
// meta: { enter: "all" },
|
// meta: { enter: "all" },
|
||||||
// component: () => import("@/views/HomeView/HomeView.vue"),
|
// component: () => import("@/views/HomeView/HomeView.vue"),
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
path: "library",
|
path: "library",
|
||||||
name: "library",
|
name: "library",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/HomeView/library.vue")
|
component: () => import("@/views/HomeView/library.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "history",
|
path: "history",
|
||||||
name: "history",
|
name: "history",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/HomeView/history.vue")
|
component: () => import("@/views/HomeView/history.vue"),
|
||||||
},
|
},
|
||||||
// {
|
// {
|
||||||
// path: "history/:type/:id",
|
// path: "history/:type/:id",
|
||||||
// name: "toolsPage",
|
// name: "toolsPage",
|
||||||
// meta: { enter: "all",cache:true },
|
// meta: { enter: "all",cache:true },
|
||||||
// component: () => import("@/views/HomeView/Tools.vue"),
|
// component: () => import("@/views/HomeView/Tools.vue"),
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
path: "history/:id",
|
path: "history/:id",
|
||||||
name: "designPage",
|
name: "designPage",
|
||||||
meta: { enter: "all", cache: true },
|
meta: { enter: "all",cache:true },
|
||||||
component: () => import("@/component/home/design/index.vue")
|
component: () => import("@/component/home/design/index.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "works",
|
path: "works",
|
||||||
name: "works",
|
name: "works",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/HomeView/Works.vue")
|
component: () => import("@/views/HomeView/Works.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "events",
|
path: "events",
|
||||||
name: "events",
|
name: "events",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/HomeView/Events.vue")
|
component: () => import("@/views/HomeView/Events.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "cloud",
|
path: "cloud",
|
||||||
name: "cloud",
|
name: "cloud",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/views/HomeView/cloudGeneration.vue")
|
component: () => import("@/views/HomeView/cloudGeneration.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "eventsDetail",
|
path: "eventsDetail",
|
||||||
name: "eventsDetail",
|
name: "eventsDetail",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/component/Events/eventsDetail.vue")
|
component: () => import("@/component/Events/eventsDetail.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "account",
|
path: "account",
|
||||||
name: "account",
|
name: "account",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/component/Account/account.vue"),
|
component: () => import("@/component/Account/account.vue"),
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: "",
|
path: "",
|
||||||
name: "accountChil",
|
name: "accountChil",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
redirect: "/home/account/frontPage"
|
redirect: "/home/account/frontPage",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "frontPage",
|
path: "frontPage",
|
||||||
name: "frontPage",
|
name: "frontPage",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/component/Account/frontPage.vue")
|
component: () => import("@/component/Account/frontPage.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "accountMessage",
|
path: "accountMessage",
|
||||||
name: "accountMessage",
|
name: "accountMessage",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/component/Account/accountMessage.vue")
|
component: () => import("@/component/Account/accountMessage.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "accountFollowFans",
|
path: "accountFollowFans",
|
||||||
name: "accountFollowFans",
|
name: "accountFollowFans",
|
||||||
meta: { enter: "all" },
|
meta: { enter: "all" },
|
||||||
component: () => import("@/component/Account/accountFollowFans.vue")
|
component: () =>
|
||||||
}
|
import("@/component/Account/accountFollowFans.vue"),
|
||||||
]
|
},
|
||||||
},
|
],
|
||||||
{
|
},
|
||||||
path: "otherUsers",
|
{
|
||||||
name: "otherUsers",
|
path: "otherUsers",
|
||||||
meta: { enter: "all" },
|
name: "otherUsers",
|
||||||
component: () => import("@/component/Account/otherUsers.vue")
|
meta: { enter: "all" },
|
||||||
},
|
component: () => import("@/component/Account/otherUsers.vue"),
|
||||||
{
|
},
|
||||||
path: "becomeSeller",
|
{
|
||||||
name: "becomeSeller",
|
path: "becomeSeller",
|
||||||
meta: { enter: "all" },
|
name: "becomeSeller",
|
||||||
component: () => import("@/views/SellerDashboard/BecomeSeller/index.vue")
|
meta: { enter: "all" },
|
||||||
},
|
component: () => import("@/views/SellerDashboard/BecomeSeller/index.vue"),
|
||||||
{
|
},
|
||||||
path: "seller",
|
{
|
||||||
name: "seller",
|
path: "seller",
|
||||||
meta: { enter: "all" },
|
name: "seller",
|
||||||
component: () => import("@/views/SellerDashboard/index.vue"),
|
meta: { enter: "all" },
|
||||||
children: [
|
component: () => import("@/views/SellerDashboard/index.vue"),
|
||||||
{
|
children:[
|
||||||
path: "brandProfile",
|
{
|
||||||
name: "brandProfile",
|
path: "brandProfile",
|
||||||
meta: { enter: "all" },
|
name: "brandProfile",
|
||||||
component: () => import("@/views/SellerDashboard/BrandProfile/index.vue")
|
meta: { enter: "all" },
|
||||||
},
|
component: () => import("@/views/SellerDashboard/BrandProfile/index.vue"),
|
||||||
{
|
},
|
||||||
path: "myListings",
|
{
|
||||||
name: "myListings",
|
path: "myListings",
|
||||||
meta: { enter: "all" },
|
name: "myListings",
|
||||||
children: [
|
meta: { enter: "all" },
|
||||||
{
|
children:[
|
||||||
path: "",
|
{
|
||||||
name: "myListingsChild",
|
path: "",
|
||||||
meta: { enter: "all" },
|
name: "myListingsChild",
|
||||||
redirect: "/home/seller/myListings/index"
|
meta: { enter: "all" },
|
||||||
},
|
redirect: "/home/seller/myListings/index",
|
||||||
{
|
|
||||||
path: "index",
|
|
||||||
name: "myListingsIndex",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () =>
|
|
||||||
import("@/views/SellerDashboard/MyListings/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "select",
|
|
||||||
name: "myListingsSelect",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () =>
|
|
||||||
import("@/views/SellerDashboard/MyListingCreateSelect/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "select/:id",
|
|
||||||
name: "myListingsSelectItem",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () =>
|
|
||||||
import("@/views/SellerDashboard/MyListingCreateSelectItem/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "edit-detail",
|
|
||||||
name: "EditDetail",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () =>
|
|
||||||
import("@/views/SellerDashboard/MyListings/EditDetail/index.vue")
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "myOrders",
|
|
||||||
name: "myOrders",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () => import("@/views/SellerDashboard/BrandProfile/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "settings",
|
|
||||||
name: "settings",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () => import("@/views/SellerDashboard/BrandProfile/index.vue")
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/Square",
|
|
||||||
name: "HomeRecommend",
|
|
||||||
meta: { enter: "all" },
|
|
||||||
component: () => import("@/views/HomeRecommend.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/administrator",
|
|
||||||
name: "administrator",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/views/Administrator.vue"),
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "allUser",
|
|
||||||
name: "allUser",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/allUser.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "coupons",
|
|
||||||
name: "coupons",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/coupons/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "testClickData",
|
|
||||||
name: "testClickData",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/TestClickData.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "trialApproval",
|
|
||||||
name: "trialApproval",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/trialApproval.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "questionnaire",
|
|
||||||
name: "questionnaire",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/questionnaire.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "recentActiveChart",
|
|
||||||
name: "recentActiveChart",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/recentActiveChart.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "recentActiveUser",
|
|
||||||
name: "recentActiveUser",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/recentActiveUser.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "recentActiveUserChart",
|
|
||||||
name: "recentActiveUserChart",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/recentActiveUserChart.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "recentNewUser",
|
|
||||||
name: "recentNewUser",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/recentNewUser.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "recentNewUserChart",
|
|
||||||
name: "recentNewUserChart",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/recentNewUserChart.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "trialUserCountry",
|
|
||||||
name: "trialUserCountry",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/trialUserCountry.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "trialUserConversionRateChart",
|
|
||||||
name: "trialUserConversionRateChart",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () =>
|
|
||||||
import("@/component/Administrator/trialUserConversionRateChart.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "trialAllUser",
|
|
||||||
name: "trialAllUser",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/trialAllUser.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "affiliateAudit",
|
|
||||||
name: "affiliateAudit",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () =>
|
|
||||||
import("@/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "affiliateReferral",
|
|
||||||
name: "affiliateReferral",
|
|
||||||
meta: {
|
|
||||||
enter: 3
|
|
||||||
},
|
},
|
||||||
component: () =>
|
{
|
||||||
import("@/component/Administrator/affiliate/affiliateReferral/index.vue")
|
path: "index",
|
||||||
},
|
name: "myListingsIndex",
|
||||||
{
|
meta: { enter: "all" },
|
||||||
path: "TransactionTable",
|
component: () => import("@/views/SellerDashboard/MyListings/main/index.vue"),
|
||||||
name: "TransactionTable",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () =>
|
|
||||||
import("@/component/Administrator/Transaction/TransactionTable.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "organization",
|
|
||||||
name: "organization",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/organization/organization.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "subscriptionPlan",
|
|
||||||
name: "subscriptionPlan",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/subscriptionPlan.vue")
|
|
||||||
},
|
|
||||||
//企业版教育管理员页面
|
|
||||||
{
|
|
||||||
path: "allUserSE",
|
|
||||||
name: "allUserSE",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/SE/allUser/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "testClickDataSE",
|
|
||||||
name: "testClickDataSE",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/SE/designDetailList/index.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "recentActiveChartSE",
|
|
||||||
name: "recentActiveChartSE",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () => import("@/component/Administrator/SE/recentActiveChart.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "generateFrequencySE",
|
|
||||||
name: "generateFrequencySE",
|
|
||||||
meta: { enter: 3 },
|
|
||||||
component: () =>
|
|
||||||
import("@/component/Administrator/SE/getGenerateFrequency/index.vue")
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/paySucceed",
|
|
||||||
name: "paySucceed",
|
|
||||||
meta: {
|
|
||||||
enter: "all"
|
|
||||||
},
|
|
||||||
component: () => import("@/views/paySucceed.vue")
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/affiliate",
|
|
||||||
name: "affiliate",
|
|
||||||
meta: {
|
|
||||||
enter: 2
|
|
||||||
},
|
|
||||||
component: () => import("@/views/affiliate/affiliatePage.vue"),
|
|
||||||
children: [
|
|
||||||
{
|
|
||||||
path: "",
|
|
||||||
name: "defaultAffiliateHome",
|
|
||||||
meta: {
|
|
||||||
enter: 2
|
|
||||||
},
|
},
|
||||||
component: () => import("@/component/affiliate/home.vue")
|
{
|
||||||
},
|
path: "select",
|
||||||
{
|
name: "myListingsSelect",
|
||||||
path: "/affiliateHome",
|
meta: { enter: "all" },
|
||||||
name: "affiliateHome",
|
component: () => import("@/views/SellerDashboard/MyListings/createSelect/index.vue"),
|
||||||
meta: {
|
|
||||||
enter: 2
|
|
||||||
},
|
},
|
||||||
component: () => import("@/component/affiliate/home.vue")
|
{
|
||||||
}
|
path: "select/:id",
|
||||||
]
|
name: "myListingsSelectItem",
|
||||||
},
|
meta: { enter: "all" },
|
||||||
{
|
component: () => import("@/views/SellerDashboard/MyListings/createSelectItem/index.vue"),
|
||||||
path: "/affiliateRegister",
|
},
|
||||||
name: "affiliateRegister",
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "myOrders",
|
||||||
|
name: "myOrders",
|
||||||
|
meta: { enter: "all" },
|
||||||
|
component: () => import("@/views/SellerDashboard/BrandProfile/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "settings",
|
||||||
|
name: "settings",
|
||||||
|
meta: { enter: "all" },
|
||||||
|
component: () => import("@/views/SellerDashboard/BrandProfile/index.vue"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/Square",
|
||||||
|
name: "HomeRecommend",
|
||||||
|
meta: { enter: "all" },
|
||||||
|
component: () => import("@/views/HomeRecommend.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/administrator",
|
||||||
|
name: "administrator",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/views/Administrator.vue"),
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "allUser",
|
||||||
|
name: "allUser",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/allUser.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "coupons",
|
||||||
|
name: "coupons",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/coupons/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "testClickData",
|
||||||
|
name: "testClickData",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/TestClickData.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "trialApproval",
|
||||||
|
name: "trialApproval",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/trialApproval.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "questionnaire",
|
||||||
|
name: "questionnaire",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/questionnaire.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "recentActiveChart",
|
||||||
|
name: "recentActiveChart",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/recentActiveChart.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "recentActiveUser",
|
||||||
|
name: "recentActiveUser",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/recentActiveUser.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "recentActiveUserChart",
|
||||||
|
name: "recentActiveUserChart",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/recentActiveUserChart.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "recentNewUser",
|
||||||
|
name: "recentNewUser",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/recentNewUser.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "recentNewUserChart",
|
||||||
|
name: "recentNewUserChart",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/recentNewUserChart.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "trialUserCountry",
|
||||||
|
name: "trialUserCountry",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/trialUserCountry.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "trialUserConversionRateChart",
|
||||||
|
name: "trialUserConversionRateChart",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/trialUserConversionRateChart.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "trialAllUser",
|
||||||
|
name: "trialAllUser",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () => import("@/component/Administrator/trialAllUser.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "affiliateAudit",
|
||||||
|
name: "affiliateAudit",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>import("@/component/Administrator/affiliate/affiliateAudit/affiliateAudit.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "affiliateReferral",
|
||||||
|
name: "affiliateReferral",
|
||||||
meta: {
|
meta: {
|
||||||
enter: "all"
|
enter: 3,
|
||||||
},
|
},
|
||||||
component: () => import("@/views/affiliate/affiliateRegister.vue")
|
component: () =>import("@/component/Administrator/affiliate/affiliateReferral/index.vue"),
|
||||||
},
|
|
||||||
{
|
|
||||||
path: "/feedbackSurvey",
|
|
||||||
name: "feedbackSurvey",
|
|
||||||
meta: {
|
|
||||||
enter: "all"
|
|
||||||
},
|
},
|
||||||
component: () => import("@/views/feedbackSurvey.vue")
|
{
|
||||||
},
|
path: "TransactionTable",
|
||||||
{
|
name: "TransactionTable",
|
||||||
path: "/feedbackSurveyCN",
|
meta: { enter: 3 },
|
||||||
name: "feedbackSurveyCN",
|
component: () =>
|
||||||
meta: {
|
import("@/component/Administrator/Transaction/TransactionTable.vue"),
|
||||||
enter: "all"
|
},
|
||||||
|
{
|
||||||
|
path: "organization",
|
||||||
|
name: "organization",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/organization/organization.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "subscriptionPlan",
|
||||||
|
name: "subscriptionPlan",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/subscriptionPlan.vue"),
|
||||||
|
},
|
||||||
|
//企业版教育管理员页面
|
||||||
|
{
|
||||||
|
path: "allUserSE",
|
||||||
|
name: "allUserSE",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/SE/allUser/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "testClickDataSE",
|
||||||
|
name: "testClickDataSE",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/SE/designDetailList/index.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "recentActiveChartSE",
|
||||||
|
name: "recentActiveChartSE",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/SE/recentActiveChart.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "generateFrequencySE",
|
||||||
|
name: "generateFrequencySE",
|
||||||
|
meta: { enter: 3 },
|
||||||
|
component: () =>
|
||||||
|
import("@/component/Administrator/SE/getGenerateFrequency/index.vue"),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/paySucceed",
|
||||||
|
name: "paySucceed",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: () => import("@/views/paySucceed.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/affiliate",
|
||||||
|
name: "affiliate",
|
||||||
|
meta: {
|
||||||
|
enter: 2,
|
||||||
|
},
|
||||||
|
component: () => import("@/views/affiliate/affiliatePage.vue"),
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: "",
|
||||||
|
name: "defaultAffiliateHome",
|
||||||
|
meta: {
|
||||||
|
enter: 2,
|
||||||
|
},
|
||||||
|
component: () => import("@/component/affiliate/home.vue"),
|
||||||
},
|
},
|
||||||
component: () => import("@/views/feedbackSurveyCN.vue")
|
{
|
||||||
},
|
path: "/affiliateHome",
|
||||||
{
|
name: "affiliateHome",
|
||||||
path: "/email3-1EN",
|
meta: {
|
||||||
name: "email3-1EN",
|
enter: 2,
|
||||||
meta: {
|
},
|
||||||
enter: "all"
|
component: () => import("@/component/affiliate/home.vue"),
|
||||||
},
|
},
|
||||||
component: () => import("@/views/emailPage/email3-1EN.vue")
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/email3-1CN",
|
path: "/affiliateRegister",
|
||||||
name: "email3-1CN",
|
name: "affiliateRegister",
|
||||||
meta: {
|
meta: {
|
||||||
enter: "all"
|
enter: "all",
|
||||||
},
|
},
|
||||||
component: () => import("@/views/emailPage/email3-1CN.vue")
|
component: () => import("@/views/affiliate/affiliateRegister.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/404",
|
path: "/feedbackSurvey",
|
||||||
name: "404",
|
name: "feedbackSurvey",
|
||||||
meta: {
|
meta: {
|
||||||
enter: "all"
|
enter: "all",
|
||||||
},
|
},
|
||||||
component: () => import("@/views/404.vue")
|
component: () => import("@/views/feedbackSurvey.vue"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "/userManual",
|
path: "/feedbackSurveyCN",
|
||||||
name: "userManual",
|
name: "feedbackSurveyCN",
|
||||||
meta: {
|
meta: {
|
||||||
enter: "all"
|
enter: "all",
|
||||||
},
|
},
|
||||||
component: () => import("@/views/userManual.vue")
|
component: () => import("@/views/feedbackSurveyCN.vue"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
{
|
path: "/email3-1EN",
|
||||||
path: "/:catchAll(.*)",
|
name: "email3-1EN",
|
||||||
redirect: "/404"
|
meta: {
|
||||||
}
|
enter: "all",
|
||||||
]
|
},
|
||||||
|
component: () => import("@/views/emailPage/email3-1EN.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/email3-1CN",
|
||||||
|
name: "email3-1CN",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: () => import("@/views/emailPage/email3-1CN.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/404",
|
||||||
|
name: "404",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: () => import("@/views/404.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/userManual",
|
||||||
|
name: "userManual",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: () => import("@/views/userManual.vue"),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/award",
|
||||||
|
name: "award",
|
||||||
|
meta: {
|
||||||
|
enter: "all",
|
||||||
|
},
|
||||||
|
component: () => import("@/views/AwardPage/container.vue"),
|
||||||
|
children:[
|
||||||
|
{
|
||||||
|
path:'',
|
||||||
|
name:'AwardIndex',
|
||||||
|
component:()=>import('@/views/AwardPage/index.vue')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path:'index',
|
||||||
|
name:'AwardIndexAlt',
|
||||||
|
component:()=>import('@/views/AwardPage/index.vue')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path:'contestants',
|
||||||
|
name:'Contestants',
|
||||||
|
component:()=>import('@/views/AwardPage/apply.vue')
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/:catchAll(.*)",
|
||||||
|
redirect: "/404",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHistory(import.meta.env.BASE_URL),
|
history: createWebHistory(import.meta.env.BASE_URL),
|
||||||
|
|||||||
@@ -2132,7 +2132,7 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
> .routerView {
|
> .routerView {
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow-y: hidden;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
display: flex;
|
display: flex;
|
||||||
> .router {
|
> .router {
|
||||||
|
|||||||
@@ -5,13 +5,7 @@
|
|||||||
<div class="title">Brand Information</div>
|
<div class="title">Brand Information</div>
|
||||||
<div class="tip">Share a few details to set up your seller profile</div>
|
<div class="tip">Share a few details to set up your seller profile</div>
|
||||||
<div class="form">
|
<div class="form">
|
||||||
<a-form
|
<a-form :model="formData" :rules="formRules" layout="vertical" ref="formRef">
|
||||||
:model="formData"
|
|
||||||
:rules="formRules"
|
|
||||||
layout="vertical"
|
|
||||||
class="my-form"
|
|
||||||
ref="formRef"
|
|
||||||
>
|
|
||||||
<a-form-item label="Store Name" name="storeName">
|
<a-form-item label="Store Name" name="storeName">
|
||||||
<a-input
|
<a-input
|
||||||
v-model:value="formData.storeName"
|
v-model:value="formData.storeName"
|
||||||
@@ -154,6 +148,7 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
|
@import "@/assets/style/ant-from-style.less";
|
||||||
.seller-apply {
|
.seller-apply {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@@ -257,97 +252,4 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
:deep(.my-form) {
|
|
||||||
.form-group {
|
|
||||||
display: flex;
|
|
||||||
gap: 1.6rem;
|
|
||||||
.ant-form-item {
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.ant-form-item {
|
|
||||||
margin-bottom: 1.6rem;
|
|
||||||
position: relative;
|
|
||||||
.tip-length {
|
|
||||||
user-select: none;
|
|
||||||
pointer-events: none;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 1rem;
|
|
||||||
right: 1.6rem;
|
|
||||||
font-family: pingfang_regular;
|
|
||||||
font-size: 1rem;
|
|
||||||
color: #df2c2c;
|
|
||||||
}
|
|
||||||
.ant-form-item-explain,
|
|
||||||
.ant-form-item-explain-connected {
|
|
||||||
min-height: 0;
|
|
||||||
}
|
|
||||||
.ant-form-item-explain-error {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.ant-form-item-label {
|
|
||||||
display: flex;
|
|
||||||
padding: 0 0 0.6rem 0;
|
|
||||||
> label {
|
|
||||||
font-family: pingfang_medium;
|
|
||||||
font-size: 1.4rem;
|
|
||||||
line-height: 150%;
|
|
||||||
|
|
||||||
&.ant-form-item-required:not(.ant-form-item-required-mark-optional) {
|
|
||||||
&::before {
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
&:after {
|
|
||||||
display: inline-block;
|
|
||||||
color: #df2c2c;
|
|
||||||
font-size: 1.4rem;
|
|
||||||
content: "*";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.ant-form-item-control-input {
|
|
||||||
.ant-input-affix-wrapper,
|
|
||||||
textarea,
|
|
||||||
input {
|
|
||||||
border-radius: 1.2rem;
|
|
||||||
border: 0.16rem solid #d1d1d1;
|
|
||||||
font-family: pingfang_regular;
|
|
||||||
font-size: 1.4rem;
|
|
||||||
color: #000;
|
|
||||||
padding: 1.6rem;
|
|
||||||
&::placeholder {
|
|
||||||
color: #999;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.ant-input-affix-wrapper {
|
|
||||||
margin-bottom: 0.6rem;
|
|
||||||
&:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
.ant-input-prefix {
|
|
||||||
width: 5.2rem;
|
|
||||||
font-size: 1.4rem;
|
|
||||||
line-height: 150%;
|
|
||||||
color: #000;
|
|
||||||
justify-content: center;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
input {
|
|
||||||
border: none;
|
|
||||||
height: 100%;
|
|
||||||
padding: 0 1.6rem;
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
input {
|
|
||||||
height: 5rem;
|
|
||||||
}
|
|
||||||
textarea {
|
|
||||||
height: 11rem;
|
|
||||||
resize: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
139
src/views/SellerDashboard/BrandProfile/brand-info.vue
Normal file
139
src/views/SellerDashboard/BrandProfile/brand-info.vue
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
<template>
|
||||||
|
<div class="brand-info">
|
||||||
|
<a-form :model="formData" :rules="isEdit ? formRules : {}" layout="vertical" ref="formRef">
|
||||||
|
<div class="form-group">
|
||||||
|
<a-form-item label="Store Name" name="storeName">
|
||||||
|
<a-input
|
||||||
|
v-model:value="formData.storeName"
|
||||||
|
placeholder="Enter the store name"
|
||||||
|
:maxlength="80"
|
||||||
|
:readonly="!isEdit"
|
||||||
|
/>
|
||||||
|
<span v-show="isEdit" class="tip-length"
|
||||||
|
>{{ formData.storeName.length }}/80</span
|
||||||
|
>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="Owner’s Full Name" name="fullName">
|
||||||
|
<a-input
|
||||||
|
v-model:value="formData.fullName"
|
||||||
|
placeholder="Enter store owner's full name"
|
||||||
|
:readonly="!isEdit"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<a-form-item label="Email" name="email">
|
||||||
|
<a-input
|
||||||
|
type="email"
|
||||||
|
v-model:value="formData.email"
|
||||||
|
placeholder="Enter email"
|
||||||
|
:readonly="!isEdit"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="Phone Number" name="phoneNumber">
|
||||||
|
<a-input
|
||||||
|
type="tel"
|
||||||
|
v-model:value="formData.phoneNumber"
|
||||||
|
placeholder="Enter phone number"
|
||||||
|
:readonly="!isEdit"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<a-form-item label="Portfoilo/Social Media Links">
|
||||||
|
<a-input
|
||||||
|
placeholder="https://"
|
||||||
|
v-for="(v, i) in formData.links"
|
||||||
|
:key="i"
|
||||||
|
v-model:value="formData.links[i]"
|
||||||
|
:readonly="!isEdit"
|
||||||
|
>
|
||||||
|
<template #prefix>Link {{ i + 1 }}</template>
|
||||||
|
</a-input>
|
||||||
|
<a-input
|
||||||
|
placeholder="https://"
|
||||||
|
v-model:value="newLink"
|
||||||
|
@keyup.enter.prevent="addLink"
|
||||||
|
v-if="isEdit"
|
||||||
|
>
|
||||||
|
<template #prefix>
|
||||||
|
<span @click="addLink" style="cursor: pointer">
|
||||||
|
<svg-icon name="seller-add" size="20" />
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</a-input>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="Store Description" name="description">
|
||||||
|
<a-textarea
|
||||||
|
v-model:value="formData.description"
|
||||||
|
placeholder="Briefly describe your design style and store features..."
|
||||||
|
:maxlength="500"
|
||||||
|
:readonly="!isEdit"
|
||||||
|
/>
|
||||||
|
<span v-show="isEdit" class="tip-length"
|
||||||
|
>{{ formData.description.length }}/500</span
|
||||||
|
>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { ref, reactive, watch } from "vue"
|
||||||
|
import { useRoute, useRouter } from "vue-router"
|
||||||
|
const route = useRoute()
|
||||||
|
const router = useRouter()
|
||||||
|
const props = defineProps({
|
||||||
|
isEdit: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
const formRules = {
|
||||||
|
storeName: [{ required: true, message: "Enter the store name" }],
|
||||||
|
fullName: [{ required: true, message: "Enter store owner's full name" }],
|
||||||
|
email: [{ required: true, message: "Enter email" }],
|
||||||
|
phoneNumber: [{ required: true, message: "Enter phone number" }],
|
||||||
|
description: [{ required: true, message: "Enter store description" }]
|
||||||
|
}
|
||||||
|
|
||||||
|
const formRef = ref(null)
|
||||||
|
const formData = reactive({
|
||||||
|
storeName: "",
|
||||||
|
fullName: "",
|
||||||
|
email: "",
|
||||||
|
phoneNumber: "",
|
||||||
|
description: "",
|
||||||
|
links: ["", ""]
|
||||||
|
})
|
||||||
|
const newLink = ref("")
|
||||||
|
const addLink = () => {
|
||||||
|
formData.links.push(newLink.value)
|
||||||
|
newLink.value = ""
|
||||||
|
}
|
||||||
|
watch(
|
||||||
|
() => props.isEdit,
|
||||||
|
(v) => (v ? edit() : cancel())
|
||||||
|
)
|
||||||
|
const edit = () => {}
|
||||||
|
const cancel = () => {}
|
||||||
|
const submit = async () => {
|
||||||
|
const valid = await formRef.value.validate()
|
||||||
|
if (!valid) return Promise.reject(false)
|
||||||
|
console.log(valid)
|
||||||
|
return valid
|
||||||
|
}
|
||||||
|
defineExpose({
|
||||||
|
submit
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
@import "@/assets/style/ant-from-style.less";
|
||||||
|
.brand-info {
|
||||||
|
// width: 100%;
|
||||||
|
// height: 100%;
|
||||||
|
// overflow: hidden;
|
||||||
|
// padding: 0 10rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,12 +1,183 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="brand-profile-index">brand-profile-index</div>
|
<div class="brand-profile-index">
|
||||||
|
<div class="header">
|
||||||
|
<div class="bg">
|
||||||
|
<img v-if="banner" :src="banner" />
|
||||||
|
<div v-else class="null">
|
||||||
|
<span class="icon"><svg-icon name="seller-picture" size="60" /></span>
|
||||||
|
<span class="tip">Your brand banner has not been set up yet.</span>
|
||||||
|
</div>
|
||||||
|
<button>Change Brand Banner</button>
|
||||||
|
</div>
|
||||||
|
<!-- 头像 -->
|
||||||
|
<div class="avatar">
|
||||||
|
<img v-if="avatar" :src="avatar" />
|
||||||
|
<div v-else class="null">
|
||||||
|
<svg-icon name="seller-user" size="48" />
|
||||||
|
</div>
|
||||||
|
<span class="icon">
|
||||||
|
<svg-icon name="seller-camera" size="24" />
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<brand-info :is-edit="isEdit" ref="brandInfoRef" />
|
||||||
|
</div>
|
||||||
|
<div class="and-profile-footer">
|
||||||
|
<template v-if="isEdit">
|
||||||
|
<div class="btns">
|
||||||
|
<button class="cancel" @click="onCancel">Cancel</button>
|
||||||
|
<button class="submit" @click="onSubmit">Save Change</button>
|
||||||
|
</div>
|
||||||
|
<p class="tip">Changes will be reflected on your Stylish Parade brand page.</p>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<div class="btns">
|
||||||
|
<button class="edit" @click="onEdit">Edit</button>
|
||||||
|
</div>
|
||||||
|
<p class="tip"> </p>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup></script>
|
<script setup>
|
||||||
|
import { ref } from "vue"
|
||||||
|
import BrandInfo from "./brand-info.vue"
|
||||||
|
const banner = ref("http://118.31.39.42:3000/falls/5bd8065cbb396eb5a8ef0a142605139358734e57.png")
|
||||||
|
const avatar = ref("http://118.31.39.42:3000/falls/20251024140128_10355_1.jpg")
|
||||||
|
const isEdit = ref(false)
|
||||||
|
const brandInfoRef = ref(null)
|
||||||
|
const onEdit = () => {
|
||||||
|
isEdit.value = true
|
||||||
|
}
|
||||||
|
const onCancel = () => {
|
||||||
|
isEdit.value = false
|
||||||
|
}
|
||||||
|
const onSubmit = () => {
|
||||||
|
brandInfoRef.value
|
||||||
|
.submit()
|
||||||
|
.then(() => {
|
||||||
|
isEdit.value = false
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.seller-dashboard-index {
|
.brand-profile-index {
|
||||||
width: 100%;
|
flex: 1;
|
||||||
height: 100%;
|
overflow-y: auto;
|
||||||
overflow: hidden;
|
padding: 0 8rem;
|
||||||
}
|
margin: 0 7rem;
|
||||||
|
> .header {
|
||||||
|
position: relative;
|
||||||
|
margin-bottom: 6rem;
|
||||||
|
> .bg {
|
||||||
|
position: relative;
|
||||||
|
> img {
|
||||||
|
width: 100%;
|
||||||
|
height: auto;
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
}
|
||||||
|
> .null {
|
||||||
|
width: 100%;
|
||||||
|
height: 23rem;
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
border: 1px dashed #b0b0b0;
|
||||||
|
background: #f9f9f9;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
> .tip {
|
||||||
|
margin-top: 1.2rem;
|
||||||
|
font-family: pingfang_medium;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
color: rgba(153, 153, 153, 0.6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> button {
|
||||||
|
position: absolute;
|
||||||
|
bottom: 1.6rem;
|
||||||
|
right: 1.6rem;
|
||||||
|
padding: 0 2.7rem;
|
||||||
|
border-radius: 4rem;
|
||||||
|
height: 4.5rem;
|
||||||
|
border: none;
|
||||||
|
background-color: #fff;
|
||||||
|
box-shadow: 0.2rem 0.2rem 1.2rem 0 rgba(0, 0, 0, 0.1);
|
||||||
|
font-family: pingfang_medium;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #000;
|
||||||
|
&:active {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .avatar {
|
||||||
|
position: absolute;
|
||||||
|
left: 6rem;
|
||||||
|
bottom: -4rem;
|
||||||
|
> img,
|
||||||
|
> .null {
|
||||||
|
width: 12rem;
|
||||||
|
height: 12rem;
|
||||||
|
border-radius: 1.2rem;
|
||||||
|
border: 0.15rem solid #919191;
|
||||||
|
}
|
||||||
|
> .null {
|
||||||
|
background-color: #f2f1f1;
|
||||||
|
}
|
||||||
|
> .icon {
|
||||||
|
position: absolute;
|
||||||
|
width: 5rem;
|
||||||
|
height: 5rem;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: rgba(146, 146, 146, 0.96);
|
||||||
|
right: -1.6rem;
|
||||||
|
bottom: -1.6rem;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.and-profile-footer {
|
||||||
|
margin: 0 15rem;
|
||||||
|
> .btns {
|
||||||
|
margin-top: 3rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
padding-right: 1.6rem;
|
||||||
|
gap: 1.3rem;
|
||||||
|
> button {
|
||||||
|
height: 6rem;
|
||||||
|
border-radius: 6rem;
|
||||||
|
padding: 0 4rem;
|
||||||
|
background-color: #000;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
border: none;
|
||||||
|
cursor: pointer;
|
||||||
|
&:active:not(:disabled) {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
&:disabled {
|
||||||
|
opacity: 0.5;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .cancel {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #000;
|
||||||
|
border: 0.15rem solid #000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
> .tip {
|
||||||
|
padding-right: 1.6rem;
|
||||||
|
margin-top: 0.7rem;
|
||||||
|
font-family: pingfang_regular;
|
||||||
|
font-size: 1.4rem;
|
||||||
|
text-align: right;
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
||||||
import sellerHeader from "../seller-header.vue"
|
import sellerHeader from "../../seller-header.vue"
|
||||||
|
|
||||||
//const props = defineProps({
|
//const props = defineProps({
|
||||||
//})
|
//})
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
||||||
import sellerHeader from "../seller-header.vue"
|
import sellerHeader from "../../seller-header.vue"
|
||||||
|
|
||||||
//const props = defineProps({
|
//const props = defineProps({
|
||||||
//})
|
//})
|
||||||
229
src/views/SellerDashboard/MyListings/main/content.vue
Normal file
229
src/views/SellerDashboard/MyListings/main/content.vue
Normal file
@@ -0,0 +1,229 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
||||||
|
import { VueDraggable } from "vue-draggable-plus"
|
||||||
|
|
||||||
|
//const props = defineProps({
|
||||||
|
//})
|
||||||
|
//const emit = defineEmits([
|
||||||
|
//])
|
||||||
|
let data = reactive({
|
||||||
|
showDrafts: false,
|
||||||
|
})
|
||||||
|
const list = ref([
|
||||||
|
{ id: "1" },
|
||||||
|
{ id: "2" },
|
||||||
|
{ id: "3" },
|
||||||
|
{ id: "4" },
|
||||||
|
{ id: "5" },
|
||||||
|
{ id: "6" },
|
||||||
|
{ id: "7" },
|
||||||
|
{ id: "8" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "10" }
|
||||||
|
])
|
||||||
|
const list2 = ref([
|
||||||
|
{ id: "1" },
|
||||||
|
{ id: "2" },
|
||||||
|
{ id: "3" },
|
||||||
|
{ id: "4" },
|
||||||
|
{ id: "5" },
|
||||||
|
{ id: "6" },
|
||||||
|
{ id: "7" },
|
||||||
|
{ id: "8" },
|
||||||
|
{ id: "9" },
|
||||||
|
{ id: "10" }
|
||||||
|
])
|
||||||
|
const config = ref({
|
||||||
|
"data-container-type": "root",
|
||||||
|
"data-parent-id": "null",
|
||||||
|
animation: 250,
|
||||||
|
handle: ".item", // 可拖动的元素
|
||||||
|
"ghost-class": "ghost", // 拖动时的类名
|
||||||
|
"chosen-class": "chosen", // 选中时的类名
|
||||||
|
"drag-class": "drag", // 拖动时的类名
|
||||||
|
"swap-threshold": 0.5,
|
||||||
|
"empty-insert-threshold": 5,
|
||||||
|
"force-fallback": false,
|
||||||
|
"fallback-tolerance": 3,
|
||||||
|
"scroll-sensitivity": 100,
|
||||||
|
"scroll-speed": 10,
|
||||||
|
onEnd: (e) => {}
|
||||||
|
})
|
||||||
|
onMounted(()=>{
|
||||||
|
})
|
||||||
|
onUnmounted(()=>{
|
||||||
|
})
|
||||||
|
defineExpose({})
|
||||||
|
const { showDrafts } = toRefs(data);
|
||||||
|
</script>
|
||||||
|
<template>
|
||||||
|
<div class="listings">
|
||||||
|
<div class="listingsBox listingsBox1">
|
||||||
|
<div class="box">
|
||||||
|
<div class="title">
|
||||||
|
<div class="left">
|
||||||
|
<i class="fi fi-rs-comments"></i>
|
||||||
|
<span>Active Listings</span>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<VueDraggable
|
||||||
|
v-model="list"
|
||||||
|
class="list"
|
||||||
|
v-bind="config"
|
||||||
|
:group="{
|
||||||
|
name: 'sortable',
|
||||||
|
pull: false,
|
||||||
|
put: true
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<div class="item" v-for="v in list" :key="v.id" :draging="true">
|
||||||
|
{{ v.id }}
|
||||||
|
</div>
|
||||||
|
</VueDraggable>
|
||||||
|
</div>
|
||||||
|
<div class="openOrCloseDrafts" :class="{'active': showDrafts}" @click="showDrafts = !showDrafts">
|
||||||
|
<span class="icon iconfont icon-xiala"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="listingsBox listingsBox2" :class="{'active': showDrafts}">
|
||||||
|
<div class="box">
|
||||||
|
<VueDraggable
|
||||||
|
v-model="list2"
|
||||||
|
class="list"
|
||||||
|
v-bind="config"
|
||||||
|
:group="{
|
||||||
|
name: 'sortable',
|
||||||
|
pull: true,
|
||||||
|
put: true
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<div class="item" v-for="v in list" :key="v.id" :draging="true">
|
||||||
|
{{ v.id }}
|
||||||
|
</div>
|
||||||
|
</VueDraggable>
|
||||||
|
</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.listings{
|
||||||
|
position: absolute;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
gap: 2rem;
|
||||||
|
.listingsBox{
|
||||||
|
background-color: #f9fafa;
|
||||||
|
border-radius: 2rem;
|
||||||
|
flex: 1;
|
||||||
|
position: relative;
|
||||||
|
// overflow: hidden;
|
||||||
|
display: flex;
|
||||||
|
.box{
|
||||||
|
width: 100%;
|
||||||
|
padding: 2.4rem 4rem;
|
||||||
|
padding-bottom: 0;
|
||||||
|
flex-direction: column;
|
||||||
|
flex: 1;
|
||||||
|
> .title{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
> .left{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
font-family: pingfang_heavy;
|
||||||
|
font-weight: 400;
|
||||||
|
font-size: 1.8rem;
|
||||||
|
line-height: 130%;
|
||||||
|
letter-spacing: 0%;
|
||||||
|
gap: 1.2rem;
|
||||||
|
> i{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 2.4rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.list{
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 20px;
|
||||||
|
.item{
|
||||||
|
width: 197px;
|
||||||
|
height: 249px;
|
||||||
|
border-radius: 20px;
|
||||||
|
border: 1.5px solid #C7C7C7;
|
||||||
|
&:hover{
|
||||||
|
border: 2px solid #000000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.listingsBox1{
|
||||||
|
flex: 1;
|
||||||
|
.box{
|
||||||
|
.list{
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
.listingsBox2{
|
||||||
|
width: 48.8rem;
|
||||||
|
transition: all .3s;
|
||||||
|
overflow: hidden;
|
||||||
|
&.active{
|
||||||
|
width: 0;
|
||||||
|
}
|
||||||
|
.box{
|
||||||
|
width: 48.8rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.openOrCloseDrafts{
|
||||||
|
position: absolute;
|
||||||
|
width: 3.4rem;
|
||||||
|
height: 8rem;
|
||||||
|
border-top-right-radius: 2rem;
|
||||||
|
border-bottom-right-radius: 2rem;
|
||||||
|
border-width: 1.5px, 1.5px, 1.5px, 0px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: #000000;
|
||||||
|
right: 1.5px;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(100%,-50%);
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
border-left: none;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
background-color: #fff;
|
||||||
|
z-index: 2;
|
||||||
|
> span{
|
||||||
|
transform: rotate(-90deg);
|
||||||
|
transition: all .3s;
|
||||||
|
}
|
||||||
|
&.active{
|
||||||
|
> span{
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&:hover{
|
||||||
|
width: 4.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
import { ref, onMounted, onUnmounted, reactive, toRefs } from "vue";
|
||||||
import sellerHeader from "../seller-header.vue"
|
import sellerHeader from "../../seller-header.vue"
|
||||||
|
import sellerContent from "./content.vue"
|
||||||
|
|
||||||
//const props = defineProps({
|
//const props = defineProps({
|
||||||
//})
|
//})
|
||||||
@@ -31,21 +32,20 @@ const {} = toRefs(data);
|
|||||||
</template>
|
</template>
|
||||||
</seller-header>
|
</seller-header>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
123122222s
|
<sellerContent></sellerContent>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.myListings-seller {
|
.myListings-seller {
|
||||||
width: 100%;
|
flex: 1;
|
||||||
height: 100%;
|
// overflow: hidden;
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
.button {
|
.button {
|
||||||
width: 16rem;
|
width: 16rem;
|
||||||
line-height: 6rem;
|
height: 6rem;
|
||||||
border-radius: 4rem;
|
border-radius: 4rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
border: 1.5px solid #000000;
|
border: 1.5px solid #000000;
|
||||||
@@ -73,7 +73,7 @@ const {} = toRefs(data);
|
|||||||
> .content {
|
> .content {
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
overflow: hidden;
|
position: relative;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -12,17 +12,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="view">
|
<router-view></router-view>
|
||||||
<router-view></router-view>
|
<toolTipBox v-model:visible="visible" @close="() => {}"></toolTipBox>
|
||||||
</div>
|
|
||||||
<toolTipBox v-model:visible="visible" @close="()=>{}"></toolTipBox>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, computed } from "vue"
|
import { ref, computed } from "vue"
|
||||||
import { useRoute, useRouter } from "vue-router"
|
import { useRoute, useRouter } from "vue-router"
|
||||||
import toolTipBox from './toolTipBox.vue'
|
import toolTipBox from "./toolTipBox.vue"
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const visible = ref(false)
|
const visible = ref(false)
|
||||||
@@ -58,7 +56,6 @@
|
|||||||
.seller-dashboard-index {
|
.seller-dashboard-index {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
@@ -67,6 +64,7 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 3.6rem;
|
gap: 3.6rem;
|
||||||
|
margin-bottom: 4rem;
|
||||||
> div {
|
> div {
|
||||||
width: 18rem;
|
width: 18rem;
|
||||||
height: 6rem;
|
height: 6rem;
|
||||||
@@ -100,9 +98,5 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
> .view {
|
|
||||||
margin-top: 4rem;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.seller-header {
|
.seller-header {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 6rem;
|
min-height: 6rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 2.4rem;
|
gap: 2.4rem;
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ const { showAgain } = toRefs(data);
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color:#000000;
|
color:#000000;
|
||||||
line-height: 130%;
|
line-height: 130%;
|
||||||
font-family: 'pingfang_semibold';
|
font-family: pingfang_heavy;
|
||||||
margin-bottom: 1.2rem;
|
margin-bottom: 1.2rem;
|
||||||
}
|
}
|
||||||
.info{
|
.info{
|
||||||
@@ -214,6 +214,7 @@ const { showAgain } = toRefs(data);
|
|||||||
font-size: 2.4rem;
|
font-size: 2.4rem;
|
||||||
line-height: 130%;
|
line-height: 130%;
|
||||||
color: var(--textColor);
|
color: var(--textColor);
|
||||||
|
font-family: pingfang_heavy;
|
||||||
margin-bottom: 2.6rem;
|
margin-bottom: 2.6rem;
|
||||||
}
|
}
|
||||||
.info{
|
.info{
|
||||||
|
|||||||
Reference in New Issue
Block a user