diff --git a/public/css/Satoshi/css/satoshi.css b/public/css/Satoshi/css/satoshi.css new file mode 100644 index 00000000..773415bc --- /dev/null +++ b/public/css/Satoshi/css/satoshi.css @@ -0,0 +1,148 @@ +/** +* @license +* +* Font Family: Satoshi +* Designed by: Deni Anggara +* URL: https://www.fontshare.com/fonts/satoshi +* © 2025 Indian Type Foundry +* +* Satoshi Light +* Satoshi LightItalic +* Satoshi Regular +* Satoshi Italic +* Satoshi Medium +* Satoshi MediumItalic +* Satoshi Bold +* Satoshi BoldItalic +* Satoshi Black +* Satoshi BlackItalic +* Satoshi Variable (Variable font) +* Satoshi VariableItalic (Variable font) + +* +*/ +@font-face { + font-family: 'Satoshi-Light'; + src: url('../fonts/Satoshi-Light.woff2') format('woff2'), + url('../fonts/Satoshi-Light.woff') format('woff'), + url('../fonts/Satoshi-Light.ttf') format('truetype'); + font-weight: 300; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Satoshi-LightItalic'; + src: url('../fonts/Satoshi-LightItalic.woff2') format('woff2'), + url('../fonts/Satoshi-LightItalic.woff') format('woff'), + url('../fonts/Satoshi-LightItalic.ttf') format('truetype'); + font-weight: 300; + font-display: swap; + font-style: italic; +} +@font-face { + font-family: 'Satoshi-Regular'; + src: url('../fonts/Satoshi-Regular.woff2') format('woff2'), + url('../fonts/Satoshi-Regular.woff') format('woff'), + url('../fonts/Satoshi-Regular.ttf') format('truetype'); + font-weight: 400; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Satoshi-Italic'; + src: url('../fonts/Satoshi-Italic.woff2') format('woff2'), + url('../fonts/Satoshi-Italic.woff') format('woff'), + url('../fonts/Satoshi-Italic.ttf') format('truetype'); + font-weight: 400; + font-display: swap; + font-style: italic; +} +@font-face { + font-family: 'Satoshi-Medium'; + src: url('../fonts/Satoshi-Medium.woff2') format('woff2'), + url('../fonts/Satoshi-Medium.woff') format('woff'), + url('../fonts/Satoshi-Medium.ttf') format('truetype'); + font-weight: 500; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Satoshi-MediumItalic'; + src: url('../fonts/Satoshi-MediumItalic.woff2') format('woff2'), + url('../fonts/Satoshi-MediumItalic.woff') format('woff'), + url('../fonts/Satoshi-MediumItalic.ttf') format('truetype'); + font-weight: 500; + font-display: swap; + font-style: italic; +} +@font-face { + font-family: 'Satoshi-Bold'; + src: url('../fonts/Satoshi-Bold.woff2') format('woff2'), + url('../fonts/Satoshi-Bold.woff') format('woff'), + url('../fonts/Satoshi-Bold.ttf') format('truetype'); + font-weight: 700; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Satoshi-BoldItalic'; + src: url('../fonts/Satoshi-BoldItalic.woff2') format('woff2'), + url('../fonts/Satoshi-BoldItalic.woff') format('woff'), + url('../fonts/Satoshi-BoldItalic.ttf') format('truetype'); + font-weight: 700; + font-display: swap; + font-style: italic; +} +@font-face { + font-family: 'Satoshi-Black'; + src: url('../fonts/Satoshi-Black.woff2') format('woff2'), + url('../fonts/Satoshi-Black.woff') format('woff'), + url('../fonts/Satoshi-Black.ttf') format('truetype'); + font-weight: 900; + font-display: swap; + font-style: normal; +} +@font-face { + font-family: 'Satoshi-BlackItalic'; + src: url('../fonts/Satoshi-BlackItalic.woff2') format('woff2'), + url('../fonts/Satoshi-BlackItalic.woff') format('woff'), + url('../fonts/Satoshi-BlackItalic.ttf') format('truetype'); + font-weight: 900; + font-display: swap; + font-style: italic; +} +/** +* This is a variable font +* You can control variable axes as shown below: +* font-variation-settings: wght 900.0; +* +* available axes: +'wght' (range from 300.0 to 900.0 +*/ +@font-face { + font-family: 'Satoshi-Variable'; + src: url('../fonts/Satoshi-Variable.woff2') format('woff2'), + url('../fonts/Satoshi-Variable.woff') format('woff'), + url('../fonts/Satoshi-Variable.ttf') format('truetype'); + font-weight: 300 900; + font-display: swap; + font-style: normal; +} +/** +* This is a variable font +* You can control variable axes as shown below: +* font-variation-settings: wght 900.0; +* +* available axes: +'wght' (range from 300.0 to 900.0 +*/ +@font-face { + font-family: 'Satoshi-VariableItalic'; + src: url('../fonts/Satoshi-VariableItalic.woff2') format('woff2'), + url('../fonts/Satoshi-VariableItalic.woff') format('woff'), + url('../fonts/Satoshi-VariableItalic.ttf') format('truetype'); + font-weight: 300 900; + font-display: swap; + font-style: italic; +} + diff --git a/public/css/Satoshi/fonts/Satoshi-Black.eot b/public/css/Satoshi/fonts/Satoshi-Black.eot new file mode 100644 index 00000000..11747f36 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Black.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Black.ttf b/public/css/Satoshi/fonts/Satoshi-Black.ttf new file mode 100644 index 00000000..62015aca Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Black.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Black.woff b/public/css/Satoshi/fonts/Satoshi-Black.woff new file mode 100644 index 00000000..a6bee36d Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Black.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Black.woff2 b/public/css/Satoshi/fonts/Satoshi-Black.woff2 new file mode 100644 index 00000000..64492d52 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Black.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-BlackItalic.eot b/public/css/Satoshi/fonts/Satoshi-BlackItalic.eot new file mode 100644 index 00000000..de2edbbc Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BlackItalic.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-BlackItalic.ttf b/public/css/Satoshi/fonts/Satoshi-BlackItalic.ttf new file mode 100644 index 00000000..74410b97 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BlackItalic.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-BlackItalic.woff b/public/css/Satoshi/fonts/Satoshi-BlackItalic.woff new file mode 100644 index 00000000..0e07e1c5 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BlackItalic.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-BlackItalic.woff2 b/public/css/Satoshi/fonts/Satoshi-BlackItalic.woff2 new file mode 100644 index 00000000..9d5c911d Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BlackItalic.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-Bold.eot b/public/css/Satoshi/fonts/Satoshi-Bold.eot new file mode 100644 index 00000000..390ae252 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Bold.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Bold.ttf b/public/css/Satoshi/fonts/Satoshi-Bold.ttf new file mode 100644 index 00000000..00bc985b Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Bold.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Bold.woff b/public/css/Satoshi/fonts/Satoshi-Bold.woff new file mode 100644 index 00000000..bba8257f Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Bold.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Bold.woff2 b/public/css/Satoshi/fonts/Satoshi-Bold.woff2 new file mode 100644 index 00000000..0a8db7a4 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Bold.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-BoldItalic.eot b/public/css/Satoshi/fonts/Satoshi-BoldItalic.eot new file mode 100644 index 00000000..426be2ac Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BoldItalic.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-BoldItalic.ttf b/public/css/Satoshi/fonts/Satoshi-BoldItalic.ttf new file mode 100644 index 00000000..24f012cb Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BoldItalic.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-BoldItalic.woff b/public/css/Satoshi/fonts/Satoshi-BoldItalic.woff new file mode 100644 index 00000000..8bcb7a6e Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BoldItalic.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-BoldItalic.woff2 b/public/css/Satoshi/fonts/Satoshi-BoldItalic.woff2 new file mode 100644 index 00000000..225527f7 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-BoldItalic.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-Italic.eot b/public/css/Satoshi/fonts/Satoshi-Italic.eot new file mode 100644 index 00000000..64039a84 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Italic.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Italic.ttf b/public/css/Satoshi/fonts/Satoshi-Italic.ttf new file mode 100644 index 00000000..c214f4fe Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Italic.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Italic.woff b/public/css/Satoshi/fonts/Satoshi-Italic.woff new file mode 100644 index 00000000..edd4d932 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Italic.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Italic.woff2 b/public/css/Satoshi/fonts/Satoshi-Italic.woff2 new file mode 100644 index 00000000..8b98599d Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Italic.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-Light.eot b/public/css/Satoshi/fonts/Satoshi-Light.eot new file mode 100644 index 00000000..d8fcaccd Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Light.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Light.ttf b/public/css/Satoshi/fonts/Satoshi-Light.ttf new file mode 100644 index 00000000..b41a2d4a Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Light.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Light.woff b/public/css/Satoshi/fonts/Satoshi-Light.woff new file mode 100644 index 00000000..8f05e4e9 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Light.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Light.woff2 b/public/css/Satoshi/fonts/Satoshi-Light.woff2 new file mode 100644 index 00000000..cf18cd4c Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Light.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-LightItalic.eot b/public/css/Satoshi/fonts/Satoshi-LightItalic.eot new file mode 100644 index 00000000..e34a0df4 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-LightItalic.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-LightItalic.ttf b/public/css/Satoshi/fonts/Satoshi-LightItalic.ttf new file mode 100644 index 00000000..08f5db57 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-LightItalic.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-LightItalic.woff b/public/css/Satoshi/fonts/Satoshi-LightItalic.woff new file mode 100644 index 00000000..a03a50d7 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-LightItalic.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-LightItalic.woff2 b/public/css/Satoshi/fonts/Satoshi-LightItalic.woff2 new file mode 100644 index 00000000..6bd15ad5 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-LightItalic.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-Medium.eot b/public/css/Satoshi/fonts/Satoshi-Medium.eot new file mode 100644 index 00000000..83caceca Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Medium.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Medium.ttf b/public/css/Satoshi/fonts/Satoshi-Medium.ttf new file mode 100644 index 00000000..ab149b71 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Medium.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Medium.woff b/public/css/Satoshi/fonts/Satoshi-Medium.woff new file mode 100644 index 00000000..cef3226e Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Medium.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Medium.woff2 b/public/css/Satoshi/fonts/Satoshi-Medium.woff2 new file mode 100644 index 00000000..ffd0ac96 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Medium.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-MediumItalic.eot b/public/css/Satoshi/fonts/Satoshi-MediumItalic.eot new file mode 100644 index 00000000..25d229a5 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-MediumItalic.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-MediumItalic.ttf b/public/css/Satoshi/fonts/Satoshi-MediumItalic.ttf new file mode 100644 index 00000000..387f278e Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-MediumItalic.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-MediumItalic.woff b/public/css/Satoshi/fonts/Satoshi-MediumItalic.woff new file mode 100644 index 00000000..46d8995a Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-MediumItalic.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-MediumItalic.woff2 b/public/css/Satoshi/fonts/Satoshi-MediumItalic.woff2 new file mode 100644 index 00000000..212adc92 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-MediumItalic.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-Regular.eot b/public/css/Satoshi/fonts/Satoshi-Regular.eot new file mode 100644 index 00000000..452666f4 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Regular.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Regular.ttf b/public/css/Satoshi/fonts/Satoshi-Regular.ttf new file mode 100644 index 00000000..fe85cd6c Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Regular.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Regular.woff b/public/css/Satoshi/fonts/Satoshi-Regular.woff new file mode 100644 index 00000000..03ac1952 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Regular.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Regular.woff2 b/public/css/Satoshi/fonts/Satoshi-Regular.woff2 new file mode 100644 index 00000000..81c40ab0 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Regular.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-Variable.eot b/public/css/Satoshi/fonts/Satoshi-Variable.eot new file mode 100644 index 00000000..f42624e1 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Variable.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-Variable.ttf b/public/css/Satoshi/fonts/Satoshi-Variable.ttf new file mode 100644 index 00000000..976e85cb Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Variable.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-Variable.woff b/public/css/Satoshi/fonts/Satoshi-Variable.woff new file mode 100644 index 00000000..f8dcd1d6 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Variable.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-Variable.woff2 b/public/css/Satoshi/fonts/Satoshi-Variable.woff2 new file mode 100644 index 00000000..b00e833e Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-Variable.woff2 differ diff --git a/public/css/Satoshi/fonts/Satoshi-VariableItalic.eot b/public/css/Satoshi/fonts/Satoshi-VariableItalic.eot new file mode 100644 index 00000000..5f4554af Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-VariableItalic.eot differ diff --git a/public/css/Satoshi/fonts/Satoshi-VariableItalic.ttf b/public/css/Satoshi/fonts/Satoshi-VariableItalic.ttf new file mode 100644 index 00000000..4c2677c6 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-VariableItalic.ttf differ diff --git a/public/css/Satoshi/fonts/Satoshi-VariableItalic.woff b/public/css/Satoshi/fonts/Satoshi-VariableItalic.woff new file mode 100644 index 00000000..3fe029e2 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-VariableItalic.woff differ diff --git a/public/css/Satoshi/fonts/Satoshi-VariableItalic.woff2 b/public/css/Satoshi/fonts/Satoshi-VariableItalic.woff2 new file mode 100644 index 00000000..e7ab3a09 Binary files /dev/null and b/public/css/Satoshi/fonts/Satoshi-VariableItalic.woff2 differ diff --git a/src/assets/images/homePage/defaultModel.png b/src/assets/images/homePage/FemaleAdultModel.png similarity index 100% rename from src/assets/images/homePage/defaultModel.png rename to src/assets/images/homePage/FemaleAdultModel.png diff --git a/src/assets/images/homePage/FemaleChildModel.png b/src/assets/images/homePage/FemaleChildModel.png new file mode 100644 index 00000000..5468894d Binary files /dev/null and b/src/assets/images/homePage/FemaleChildModel.png differ diff --git a/src/assets/images/homePage/MaleAdultModel.png b/src/assets/images/homePage/MaleAdultModel.png new file mode 100644 index 00000000..f99e087d Binary files /dev/null and b/src/assets/images/homePage/MaleAdultModel.png differ diff --git a/src/assets/images/homePage/MaleChildModel.png b/src/assets/images/homePage/MaleChildModel.png new file mode 100644 index 00000000..8a7e0c69 Binary files /dev/null and b/src/assets/images/homePage/MaleChildModel.png differ diff --git a/src/assets/images/homePage/loginLeftImg.png b/src/assets/images/homePage/loginLeftImg.png new file mode 100644 index 00000000..54f81f95 Binary files /dev/null and b/src/assets/images/homePage/loginLeftImg.png differ diff --git a/src/assets/images/homePage/loginLeftImg1.png b/src/assets/images/homePage/loginLeftImg1.png deleted file mode 100644 index 7cf756d5..00000000 Binary files a/src/assets/images/homePage/loginLeftImg1.png and /dev/null differ diff --git a/src/assets/images/homePage/loginLeftImg2.png b/src/assets/images/homePage/loginLeftImg2.png deleted file mode 100644 index 373cbfcb..00000000 Binary files a/src/assets/images/homePage/loginLeftImg2.png and /dev/null differ diff --git a/src/assets/images/homePage/squareLeftImg.png b/src/assets/images/homePage/squareLeftImg.png deleted file mode 100644 index 89b4b806..00000000 Binary files a/src/assets/images/homePage/squareLeftImg.png and /dev/null differ diff --git a/src/assets/images/homePage/squareLeftImgModel.png b/src/assets/images/homePage/squareLeftImgModel.png new file mode 100644 index 00000000..e4471876 Binary files /dev/null and b/src/assets/images/homePage/squareLeftImgModel.png differ diff --git a/src/assets/images/homePage/squareLeftImgText.png b/src/assets/images/homePage/squareLeftImgText.png new file mode 100644 index 00000000..31277f88 Binary files /dev/null and b/src/assets/images/homePage/squareLeftImgText.png differ diff --git a/src/assets/images/icon/jcbPay.svg b/src/assets/images/icon/jcbPay.svg new file mode 100644 index 00000000..0bf91633 --- /dev/null +++ b/src/assets/images/icon/jcbPay.svg @@ -0,0 +1,33 @@ + + + + + + + + + + diff --git a/src/assets/images/icon/mastercardPay.svg b/src/assets/images/icon/mastercardPay.svg new file mode 100644 index 00000000..1d5b3b51 --- /dev/null +++ b/src/assets/images/icon/mastercardPay.svg @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/src/assets/images/icon/visaPay.svg b/src/assets/images/icon/visaPay.svg new file mode 100644 index 00000000..6265b358 --- /dev/null +++ b/src/assets/images/icon/visaPay.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/assets/images/icon/yinlianPay.svg b/src/assets/images/icon/yinlianPay.svg new file mode 100644 index 00000000..71166754 --- /dev/null +++ b/src/assets/images/icon/yinlianPay.svg @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/src/assets/style/style.css b/src/assets/style/style.css index 0096eae5..e60b5a90 100644 --- a/src/assets/style/style.css +++ b/src/assets/style/style.css @@ -10,7 +10,7 @@ body, --aida-fsize1-8: calc(1.8rem); --aida-fsize1-6: calc(1.6rem); --aida-fsize1-4: calc(1.4rem*1.2); - --antd-wave-shadow-color: #39215b; + --antd-wave-shadow-color: #000; } ::selection { background-color: #1890ff; @@ -57,7 +57,9 @@ li { } .ant-slider.system_silder { margin: 0; - width: 100%; + margin-left: 1rem; + margin-right: 1rem; + width: calc(100% - 2rem); } .ant-slider.system_silder .ant-slider-rail { height: 0.6rem; @@ -716,6 +718,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte .generalModel_state .generalModel_state_item.smail .ant-select-selector, .generalModel_state .generalModel_state_item.smail .range_picker { padding: 1rem 2rem !important; + padding-right: 3rem !important; } .generalModel_state .generalModel_state_item.smail .el-cascader { padding: 1rem 2rem; @@ -1750,6 +1753,7 @@ textarea:focus { .productImg_content .input_border, .poseTransfer .input_border, .scaleImage_modal .input_border, +.editDesignType_modal .input_border, .accountEdit_page .input_border, .generalMenu_printModel_upload .input_border, .generate .input_border { @@ -1759,6 +1763,7 @@ textarea:focus { padding-bottom: calc(2rem*1.2); top: 0; flex-wrap: wrap; + z-index: 6; --width: 65%; } .collection_modal_body .input_border .input_box, @@ -1767,11 +1772,12 @@ textarea:focus { .productImg_content .input_border .input_box, .poseTransfer .input_border .input_box, .scaleImage_modal .input_border .input_box, +.editDesignType_modal .input_border .input_box, .accountEdit_page .input_border .input_box, .generalMenu_printModel_upload .input_border .input_box, .generate .input_border .input_box { position: relative; - z-index: 2; + z-index: 6; flex: 1; display: flex; align-items: center; @@ -1784,6 +1790,7 @@ textarea:focus { .productImg_content .input_border .input_box .inputShowText, .poseTransfer .input_border .input_box .inputShowText, .scaleImage_modal .input_border .input_box .inputShowText, +.editDesignType_modal .input_border .input_box .inputShowText, .accountEdit_page .input_border .input_box .inputShowText, .generalMenu_printModel_upload .input_border .input_box .inputShowText, .generate .input_border .input_box .inputShowText { @@ -1796,6 +1803,7 @@ textarea:focus { .productImg_content .input_border .input_box.active .input_box_btnBox, .poseTransfer .input_border .input_box.active .input_box_btnBox, .scaleImage_modal .input_border .input_box.active .input_box_btnBox, +.editDesignType_modal .input_border .input_box.active .input_box_btnBox, .accountEdit_page .input_border .input_box.active .input_box_btnBox, .generalMenu_printModel_upload .input_border .input_box.active .input_box_btnBox, .generate .input_border .input_box.active .input_box_btnBox, @@ -1805,6 +1813,7 @@ textarea:focus { .productImg_content .input_border .input_box.active .search_textarea, .poseTransfer .input_border .input_box.active .search_textarea, .scaleImage_modal .input_border .input_box.active .search_textarea, +.editDesignType_modal .input_border .input_box.active .search_textarea, .accountEdit_page .input_border .input_box.active .search_textarea, .generalMenu_printModel_upload .input_border .input_box.active .search_textarea, .generate .input_border .input_box.active .search_textarea { @@ -1817,6 +1826,7 @@ textarea:focus { .productImg_content .input_border .input_box.active .inputShowText, .poseTransfer .input_border .input_box.active .inputShowText, .scaleImage_modal .input_border .input_box.active .inputShowText, +.editDesignType_modal .input_border .input_box.active .inputShowText, .accountEdit_page .input_border .input_box.active .inputShowText, .generalMenu_printModel_upload .input_border .input_box.active .inputShowText, .generate .input_border .input_box.active .inputShowText { @@ -1830,6 +1840,7 @@ textarea:focus { .productImg_content .input_border .search_keyword, .poseTransfer .input_border .search_keyword, .scaleImage_modal .input_border .search_keyword, +.editDesignType_modal .input_border .search_keyword, .accountEdit_page .input_border .search_keyword, .generalMenu_printModel_upload .input_border .search_keyword, .generate .input_border .search_keyword { @@ -1842,6 +1853,7 @@ textarea:focus { .productImg_content .input_border .search_keyword .search_keyword_center, .poseTransfer .input_border .search_keyword .search_keyword_center, .scaleImage_modal .input_border .search_keyword .search_keyword_center, +.editDesignType_modal .input_border .search_keyword .search_keyword_center, .accountEdit_page .input_border .search_keyword .search_keyword_center, .generalMenu_printModel_upload .input_border .search_keyword .search_keyword_center, .generate .input_border .search_keyword .search_keyword_center { @@ -1863,6 +1875,7 @@ textarea:focus { .productImg_content .input_border .search_keyword .search_keyword_center .search_keyword_center_left, .poseTransfer .input_border .search_keyword .search_keyword_center .search_keyword_center_left, .scaleImage_modal .input_border .search_keyword .search_keyword_center .search_keyword_center_left, +.editDesignType_modal .input_border .search_keyword .search_keyword_center .search_keyword_center_left, .accountEdit_page .input_border .search_keyword .search_keyword_center .search_keyword_center_left, .generalMenu_printModel_upload .input_border .search_keyword .search_keyword_center .search_keyword_center_left, .generate .input_border .search_keyword .search_keyword_center .search_keyword_center_left { @@ -1877,6 +1890,7 @@ textarea:focus { .productImg_content .input_border .search_keyword .search_keyword_center .search_keyword_center_item, .poseTransfer .input_border .search_keyword .search_keyword_center .search_keyword_center_item, .scaleImage_modal .input_border .search_keyword .search_keyword_center .search_keyword_center_item, +.editDesignType_modal .input_border .search_keyword .search_keyword_center .search_keyword_center_item, .accountEdit_page .input_border .search_keyword .search_keyword_center .search_keyword_center_item, .generalMenu_printModel_upload .input_border .search_keyword .search_keyword_center .search_keyword_center_item, .generate .input_border .search_keyword .search_keyword_center .search_keyword_center_item { @@ -1896,6 +1910,7 @@ textarea:focus { .productImg_content .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child, .poseTransfer .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child, .scaleImage_modal .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child, +.editDesignType_modal .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child, .accountEdit_page .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child, .generalMenu_printModel_upload .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child, .generate .input_border .search_keyword .search_keyword_center .search_keyword_center_item:last-child { @@ -1907,6 +1922,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox, .poseTransfer .input_border .input_box_btnBox, .scaleImage_modal .input_border .input_box_btnBox, +.editDesignType_modal .input_border .input_box_btnBox, .accountEdit_page .input_border .input_box_btnBox, .generalMenu_printModel_upload .input_border .input_box_btnBox, .generate .input_border .input_box_btnBox { @@ -1917,10 +1933,9 @@ textarea:focus { float: left; align-items: center; padding: 1.5rem 2rem; - padding-right: 0; background-color: #fff; flex: 1; - height: 5rem; + height: auto; } .collection_modal_body .input_border .input_box_btnBox.sketch, .design_detail_modal_component .input_border .input_box_btnBox.sketch, @@ -1928,6 +1943,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox.sketch, .poseTransfer .input_border .input_box_btnBox.sketch, .scaleImage_modal .input_border .input_box_btnBox.sketch, +.editDesignType_modal .input_border .input_box_btnBox.sketch, .accountEdit_page .input_border .input_box_btnBox.sketch, .generalMenu_printModel_upload .input_border .input_box_btnBox.sketch, .generate .input_border .input_box_btnBox.sketch { @@ -1943,6 +1959,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox.sketch .upload_item, .poseTransfer .input_border .input_box_btnBox.sketch .upload_item, .scaleImage_modal .input_border .input_box_btnBox.sketch .upload_item, +.editDesignType_modal .input_border .input_box_btnBox.sketch .upload_item, .accountEdit_page .input_border .input_box_btnBox.sketch .upload_item, .generalMenu_printModel_upload .input_border .input_box_btnBox.sketch .upload_item, .generate .input_border .input_box_btnBox.sketch .upload_item { @@ -1954,6 +1971,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox.sketch .upload_item .upload_file_item, .poseTransfer .input_border .input_box_btnBox.sketch .upload_item .upload_file_item, .scaleImage_modal .input_border .input_box_btnBox.sketch .upload_item .upload_file_item, +.editDesignType_modal .input_border .input_box_btnBox.sketch .upload_item .upload_file_item, .accountEdit_page .input_border .input_box_btnBox.sketch .upload_item .upload_file_item, .generalMenu_printModel_upload .input_border .input_box_btnBox.sketch .upload_item .upload_file_item, .generate .input_border .input_box_btnBox.sketch .upload_item .upload_file_item { @@ -1966,12 +1984,13 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox > .textarea, .poseTransfer .input_border .input_box_btnBox > .textarea, .scaleImage_modal .input_border .input_box_btnBox > .textarea, +.editDesignType_modal .input_border .input_box_btnBox > .textarea, .accountEdit_page .input_border .input_box_btnBox > .textarea, .generalMenu_printModel_upload .input_border .input_box_btnBox > .textarea, .generate .input_border .input_box_btnBox > .textarea { border-radius: 1rem; min-height: 2rem; - max-height: 20rem; + max-height: 14rem; border: none; resize: none; height: 2.7rem; @@ -1985,6 +2004,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox .ant-spin-text, .poseTransfer .input_border .input_box_btnBox .ant-spin-text, .scaleImage_modal .input_border .input_box_btnBox .ant-spin-text, +.editDesignType_modal .input_border .input_box_btnBox .ant-spin-text, .accountEdit_page .input_border .input_box_btnBox .ant-spin-text, .generalMenu_printModel_upload .input_border .input_box_btnBox .ant-spin-text, .generate .input_border .input_box_btnBox .ant-spin-text { @@ -1996,6 +2016,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox .search_seed, .poseTransfer .input_border .input_box_btnBox .search_seed, .scaleImage_modal .input_border .input_box_btnBox .search_seed, +.editDesignType_modal .input_border .input_box_btnBox .search_seed, .accountEdit_page .input_border .input_box_btnBox .search_seed, .generalMenu_printModel_upload .input_border .input_box_btnBox .search_seed, .generate .input_border .input_box_btnBox .search_seed { @@ -2011,6 +2032,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox .upload_item, .poseTransfer .input_border .input_box_btnBox .upload_item, .scaleImage_modal .input_border .input_box_btnBox .upload_item, +.editDesignType_modal .input_border .input_box_btnBox .upload_item, .accountEdit_page .input_border .input_box_btnBox .upload_item, .generalMenu_printModel_upload .input_border .input_box_btnBox .upload_item, .generate .input_border .input_box_btnBox .upload_item { @@ -2022,6 +2044,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox .upload_item .upload_file_item, .poseTransfer .input_border .input_box_btnBox .upload_item .upload_file_item, .scaleImage_modal .input_border .input_box_btnBox .upload_item .upload_file_item, +.editDesignType_modal .input_border .input_box_btnBox .upload_item .upload_file_item, .accountEdit_page .input_border .input_box_btnBox .upload_item .upload_file_item, .generalMenu_printModel_upload .input_border .input_box_btnBox .upload_item .upload_file_item, .generate .input_border .input_box_btnBox .upload_item .upload_file_item { @@ -2040,6 +2063,7 @@ textarea:focus { .productImg_content .input_border input, .poseTransfer .input_border input, .scaleImage_modal .input_border input, +.editDesignType_modal .input_border input, .accountEdit_page .input_border input, .generalMenu_printModel_upload .input_border input, .generate .input_border input { @@ -2058,6 +2082,7 @@ textarea:focus { .productImg_content .input_border inputinput:-moz-placeholder, .poseTransfer .input_border inputinput:-moz-placeholder, .scaleImage_modal .input_border inputinput:-moz-placeholder, +.editDesignType_modal .input_border inputinput:-moz-placeholder, .accountEdit_page .input_border inputinput:-moz-placeholder, .generalMenu_printModel_upload .input_border inputinput:-moz-placeholder, .generate .input_border inputinput:-moz-placeholder { @@ -2069,6 +2094,7 @@ textarea:focus { .productImg_content .input_border inputinput:-ms-input-placeholder, .poseTransfer .input_border inputinput:-ms-input-placeholder, .scaleImage_modal .input_border inputinput:-ms-input-placeholder, +.editDesignType_modal .input_border inputinput:-ms-input-placeholder, .accountEdit_page .input_border inputinput:-ms-input-placeholder, .generalMenu_printModel_upload .input_border inputinput:-ms-input-placeholder, .generate .input_border inputinput:-ms-input-placeholder { @@ -2080,6 +2106,7 @@ textarea:focus { .productImg_content .input_border inputinput::-webkit-input-placeholder, .poseTransfer .input_border inputinput::-webkit-input-placeholder, .scaleImage_modal .input_border inputinput::-webkit-input-placeholder, +.editDesignType_modal .input_border inputinput::-webkit-input-placeholder, .accountEdit_page .input_border inputinput::-webkit-input-placeholder, .generalMenu_printModel_upload .input_border inputinput::-webkit-input-placeholder, .generate .input_border inputinput::-webkit-input-placeholder { @@ -2091,6 +2118,7 @@ textarea:focus { .productImg_content .input_border input.forbidden, .poseTransfer .input_border input.forbidden, .scaleImage_modal .input_border input.forbidden, +.editDesignType_modal .input_border input.forbidden, .accountEdit_page .input_border input.forbidden, .generalMenu_printModel_upload .input_border input.forbidden, .generate .input_border input.forbidden { @@ -2102,6 +2130,7 @@ textarea:focus { .productImg_content .input_border .input_box_btnBox_upImg, .poseTransfer .input_border .input_box_btnBox_upImg, .scaleImage_modal .input_border .input_box_btnBox_upImg, +.editDesignType_modal .input_border .input_box_btnBox_upImg, .accountEdit_page .input_border .input_box_btnBox_upImg, .generalMenu_printModel_upload .input_border .input_box_btnBox_upImg, .generate .input_border .input_box_btnBox_upImg { @@ -2113,6 +2142,7 @@ textarea:focus { .productImg_content .input_border .fi, .poseTransfer .input_border .fi, .scaleImage_modal .input_border .fi, +.editDesignType_modal .input_border .fi, .accountEdit_page .input_border .fi, .generalMenu_printModel_upload .input_border .fi, .generate .input_border .fi { @@ -2132,6 +2162,7 @@ textarea:focus { .productImg_content .input_border .fi.fi-br-loading, .poseTransfer .input_border .fi.fi-br-loading, .scaleImage_modal .input_border .fi.fi-br-loading, +.editDesignType_modal .input_border .fi.fi-br-loading, .accountEdit_page .input_border .fi.fi-br-loading, .generalMenu_printModel_upload .input_border .fi.fi-br-loading, .generate .input_border .fi.fi-br-loading { @@ -2144,6 +2175,7 @@ textarea:focus { .productImg_content .input_border .fi.active, .poseTransfer .input_border .fi.active, .scaleImage_modal .input_border .fi.active, +.editDesignType_modal .input_border .fi.active, .accountEdit_page .input_border .fi.active, .generalMenu_printModel_upload .input_border .fi.active, .generate .input_border .fi.active { @@ -2155,6 +2187,7 @@ textarea:focus { .productImg_content .input_border .fi.forbidden, .poseTransfer .input_border .fi.forbidden, .scaleImage_modal .input_border .fi.forbidden, +.editDesignType_modal .input_border .fi.forbidden, .accountEdit_page .input_border .fi.forbidden, .generalMenu_printModel_upload .input_border .fi.forbidden, .generate .input_border .fi.forbidden { @@ -2166,6 +2199,7 @@ textarea:focus { .productImg_content .input_border .search_upImg, .poseTransfer .input_border .search_upImg, .scaleImage_modal .input_border .search_upImg, +.editDesignType_modal .input_border .search_upImg, .accountEdit_page .input_border .search_upImg, .generalMenu_printModel_upload .input_border .search_upImg, .generate .input_border .search_upImg { @@ -2181,6 +2215,7 @@ textarea:focus { .productImg_content .input_border .search_upImg span, .poseTransfer .input_border .search_upImg span, .scaleImage_modal .input_border .search_upImg span, +.editDesignType_modal .input_border .search_upImg span, .accountEdit_page .input_border .search_upImg span, .generalMenu_printModel_upload .input_border .search_upImg span, .generate .input_border .search_upImg span { @@ -2193,6 +2228,7 @@ textarea:focus { .productImg_content .input_border .search_upImg .ant-upload-select-picture-card, .poseTransfer .input_border .search_upImg .ant-upload-select-picture-card, .scaleImage_modal .input_border .search_upImg .ant-upload-select-picture-card, +.editDesignType_modal .input_border .search_upImg .ant-upload-select-picture-card, .accountEdit_page .input_border .search_upImg .ant-upload-select-picture-card, .generalMenu_printModel_upload .input_border .search_upImg .ant-upload-select-picture-card, .generate .input_border .search_upImg .ant-upload-select-picture-card { @@ -2206,6 +2242,7 @@ textarea:focus { .productImg_content .input_border .search_textarea, .poseTransfer .input_border .search_textarea, .scaleImage_modal .input_border .search_textarea, +.editDesignType_modal .input_border .search_textarea, .accountEdit_page .input_border .search_textarea, .generalMenu_printModel_upload .input_border .search_textarea, .generate .input_border .search_textarea { @@ -2214,7 +2251,7 @@ textarea:focus { position: absolute; left: 0; font-size: calc(1.6rem*1.2); - width: var(--width); + width: 100%; border-radius: 4px; height: 20rem; top: 0rem; diff --git a/src/assets/style/style.less b/src/assets/style/style.less index 2ff27053..9c65100e 100644 --- a/src/assets/style/style.less +++ b/src/assets/style/style.less @@ -10,7 +10,7 @@ html,body,#app{ --aida-fsize1-8: calc(1.8rem); --aida-fsize1-6: calc(1.6rem); --aida-fsize1-4: calc(1.4rem*1.2); - --antd-wave-shadow-color:#39215b; + --antd-wave-shadow-color:#000; } ::selection{ background-color: #1890ff; @@ -60,8 +60,10 @@ input:focus{ } .ant-slider.system_silder{ - margin: 0; - width: 100%; + margin: 0; + margin-left: 1rem; + margin-right: 1rem; + width: calc(100% - 2rem); .ant-slider-rail{ height: 0.6rem; @@ -787,6 +789,7 @@ tr > .ant-picker-cell-in-view.ant-picker-cell-range-hover-start:last-child::afte } .ant-picker-range,.ant-select-selector,.range_picker{ padding: 1rem 2rem !important; + padding-right: 3rem !important; } .el-cascader{ padding: 1rem 2rem; @@ -1911,7 +1914,7 @@ textarea:focus{ } //设计input和上传按钮样式 -.collection_modal_body,.design_detail_modal_component,.library_page,.productImg_content,.poseTransfer,.scaleImage_modal,.accountEdit_page,.generalMenu_printModel_upload,.generate{ +.collection_modal_body,.design_detail_modal_component,.library_page,.productImg_content,.poseTransfer,.scaleImage_modal,.editDesignType_modal,.accountEdit_page,.generalMenu_printModel_upload,.generate{ .input_border{ z-index: 2; display: flex; @@ -1919,10 +1922,11 @@ textarea:focus{ padding-bottom: calc(2rem*1.2); top: 0; flex-wrap: wrap; + z-index: 6; --width:65%; .input_box{ position: relative; - z-index: 2; + z-index: 6; flex: 1; display: flex; align-items: center; @@ -1995,10 +1999,11 @@ textarea:focus{ float: left; align-items: center; padding: 1.5rem 2rem; - padding-right: 0; + // padding-right: 0; background-color: #fff; flex: 1; - height: 5rem; + height: auto; + // height: 5rem; // border &.sketch{ padding: 0; @@ -2017,7 +2022,8 @@ textarea:focus{ > .textarea{ border-radius: 1rem; min-height: 2rem; - max-height: 20rem; + // max-height: 20rem; + max-height: 14rem; border: none; resize: none; height: 2.7rem; @@ -2123,7 +2129,8 @@ textarea:focus{ left: 0; font-size: calc(1.6rem*1.2); // width: 30rem; - width: var(--width); + // width: var(--width); + width: 100%; border-radius: 4px; height: 20rem; top: 0rem; diff --git a/src/component/Account/account.vue b/src/component/Account/account.vue index 388cf45a..44328dc1 100644 --- a/src/component/Account/account.vue +++ b/src/component/Account/account.vue @@ -405,6 +405,9 @@ export default defineComponent({ text-align: center; margin-right: 2rem; padding: 12px 0; + > a{ + border-radius: 1rem; + } } .account_page_content_right{ flex: 1; @@ -486,7 +489,7 @@ export default defineComponent({ font-size: 1.4rem; } .search_icon_block{ - background: #39215b; + background: #000; color: #fff; padding: .5rem 2rem; font-size: 1.8rem; @@ -525,7 +528,7 @@ export default defineComponent({ right: 0; } .account_generalMessage_item_link{ - color: #39215b; + color: #000; cursor: pointer; font-weight: 600; } diff --git a/src/component/Account/message/privateChat.vue b/src/component/Account/message/privateChat.vue index fbf61e11..2a2b0e7e 100644 --- a/src/component/Account/message/privateChat.vue +++ b/src/component/Account/message/privateChat.vue @@ -372,7 +372,7 @@ export default defineComponent({ } .content_right_record_item_text{ border-radius: 2rem 0rem 2rem 2rem; - background: #39215b; + background: #000; color: #fff; } } diff --git a/src/component/Administrator/affiliate/itemAffiliateDetail.vue b/src/component/Administrator/affiliate/itemAffiliateDetail.vue index cf4fa566..3f916cb4 100644 --- a/src/component/Administrator/affiliate/itemAffiliateDetail.vue +++ b/src/component/Administrator/affiliate/itemAffiliateDetail.vue @@ -14,7 +14,7 @@
- + diff --git a/src/component/Administrator/allUserPoerations.vue b/src/component/Administrator/allUserPoerations.vue index 9388b88f..80e508ab 100644 --- a/src/component/Administrator/allUserPoerations.vue +++ b/src/component/Administrator/allUserPoerations.vue @@ -16,7 +16,7 @@
- + diff --git a/src/component/Administrator/organization/add.vue b/src/component/Administrator/organization/add.vue index 8baf53e3..ddf822fc 100644 --- a/src/component/Administrator/organization/add.vue +++ b/src/component/Administrator/organization/add.vue @@ -17,7 +17,7 @@
- + diff --git a/src/component/Canvas/index.vue b/src/component/Canvas/index.vue index f3609e0e..51d00f9f 100644 --- a/src/component/Canvas/index.vue +++ b/src/component/Canvas/index.vue @@ -1,18 +1,15 @@ @@ -23,11 +20,6 @@ import CanvasEditor from "./CanvasEditor/index.vue"; // 画布编辑器引用 const canvasEditor = ref(null); -// 图像URL配置 -const imageUrls = { - baseImage: "@/assets/redGreenPic/clothing_base_image.png", - maskImage: "@/assets/redGreenPic/clothing_mask_image.png", -}; const getJSON = () => { if (canvasEditor.value) { const json = canvasEditor.value.getJSON(); @@ -43,7 +35,42 @@ const loadJSON = () => { console.log("加载的JSON数据:", currentJSON); } }; +const exportElement = ()=>{ + canvasEditor.value.exportImage({isContainBg:true,isContainFixed:false}).then((rv)=>{ + console.log(rv) + downloadBase64Image(rv,'canvas') + }) +} +function downloadBase64Image(base64Data, filename) { + // 1. 提取MIME类型(自动处理各种Base64前缀) + const mimeMatch = base64Data.match(/^data:(.+?);base64,/); + if (!mimeMatch) { + console.error('Invalid Base64 data'); + return; + } + // 2. 获取扩展名 + const mimeType = mimeMatch[1]; + const extension = mimeType.split('/')[1] || 'png'; + // 3. 转换Base64为Blob + const byteString = atob(base64Data.split(',')[1]); + const ab = new ArrayBuffer(byteString.length); + const ia = new Uint8Array(ab); + for (let i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i); + } + const blob = new Blob([ab], { type: mimeType }); + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = `${filename}.${extension}`; + document.body.appendChild(a); + a.click(); + setTimeout(() => { + document.body.removeChild(a); + URL.revokeObjectURL(url); + }, 100); +} // 组件挂载时绑定键盘事件 onMounted(() => {}); @@ -52,14 +79,16 @@ onUnmounted(() => {}); - diff --git a/src/component/HomePage/PrintboardUpload.vue b/src/component/HomePage/PrintboardUpload.vue deleted file mode 100644 index 060174bc..00000000 --- a/src/component/HomePage/PrintboardUpload.vue +++ /dev/null @@ -1,940 +0,0 @@ - - - diff --git a/src/component/HomePage/SketchboardUpload.vue b/src/component/HomePage/SketchboardUpload.vue deleted file mode 100644 index cf1c4d99..00000000 --- a/src/component/HomePage/SketchboardUpload.vue +++ /dev/null @@ -1,913 +0,0 @@ - - - diff --git a/src/component/HomePage/generalMenu.vue b/src/component/HomePage/generalMenu.vue index 6112bba3..3ba3d705 100644 --- a/src/component/HomePage/generalMenu.vue +++ b/src/component/HomePage/generalMenu.vue @@ -15,42 +15,44 @@
-
    -
  • - - + {{ listItem?.label }} + {{ listItem?.name }} + +
    + {{ listItem?.label }} + {{ listItem?.name }} +
    +
  • +
@@ -91,6 +93,10 @@ import { message, Upload, Modal } from "ant-design-vue"; type:Object, default:{} }, + ulStyle:{ + type:Object, + default:{} + }, selectWidth:{ type:String, default:'20rem' @@ -241,12 +247,16 @@ import { message, Upload, Modal } from "ant-design-vue"; } ul{ position: absolute; - border: 1px solid; width: 20rem; margin-top: calc(.3rem*1.2); - border-radius: calc(1rem*1.2); + z-index: 10; overflow: hidden; - z-index: 3; + border-radius: calc(1rem*1.2); + > div{ + overflow-y: auto; + + height: 100%; + } li{ // background: rgba(0,0,0,.2); background: #fff; diff --git a/src/component/HomePage/productImg.vue b/src/component/HomePage/productImg.vue index 19d4d73a..4928ab8f 100644 --- a/src/component/HomePage/productImg.vue +++ b/src/component/HomePage/productImg.vue @@ -16,7 +16,7 @@
- + diff --git a/src/component/HomePage/renew.vue b/src/component/HomePage/renew.vue index 1ae00333..3d34d6e2 100644 --- a/src/component/HomePage/renew.vue +++ b/src/component/HomePage/renew.vue @@ -206,23 +206,24 @@
- +
{{$t('ProductImg.Highlight')}} @@ -75,28 +76,33 @@ :step="0.1" > - +
- - + --> +
-
+
+
{{ $t('poseTransfer.hint') }}
+
@@ -130,7 +136,7 @@
- + + >
@@ -438,7 +442,7 @@ export default defineComponent({ border-radius: 10px; cursor: pointer; padding: 0.3rem 4rem; - background: #39215b; + background: #000; color: #fff; border: none; margin: 0 2rem; diff --git a/src/component/Pay/payOrder.vue b/src/component/Pay/payOrder.vue index a8bcfdd4..bcbef2dd 100644 --- a/src/component/Pay/payOrder.vue +++ b/src/component/Pay/payOrder.vue @@ -16,7 +16,7 @@
- + diff --git a/src/component/WorksPage/Falls.vue b/src/component/WorksPage/Falls.vue index 3994cb17..a90d2d39 100644 --- a/src/component/WorksPage/Falls.vue +++ b/src/component/WorksPage/Falls.vue @@ -1,6 +1,6 @@ @@ -25,13 +25,14 @@ import { defineComponent,computed,inject,provide,nextTick,watch,toRefs, reactive import { ExclamationCircleOutlined } from '@ant-design/icons-vue'; import { Https } from "@/tool/https"; import { useStore } from "vuex"; +import { downloadIamge,getMinioUrl } from "@/tool/util"; import { useI18n } from 'vue-i18n' import { useRoute,useRouter } from 'vue-router'; import toProduct from '@/component/home/tools/toProduct/index.vue'; import poseTransfer from '@/component/home/tools/poseTransfer/index.vue'; import deReconstruction from '@/component/home/tools/deReconstruction/index.vue'; import patternMaking3D from '@/component/home/tools/patternMaking3D/index.vue'; -import canvasUpload from "@/component/Canvas/index.vue"; +import canvasUpload from "@/component/modules/generalMiniCanvas.vue"; import {openTypeList} from "@/tool/listData.js"; export default defineComponent({ @@ -147,11 +148,35 @@ export default defineComponent({ } provide('setIsShowMark',setIsShowMark) provide('createProbject',createProbject) - + let time = null as any + + const canvasChangeGetJSON = async ({canvasJSON,submitDate})=>{ + clearTimeout(time) + if(!store.state.Workspace.probjects.id)await createProbject() + time = setTimeout(()=>{ + let canvasData = JSON.parse(canvasJSON) + canvasData.canvas.objects.forEach((objectsItem:any) => { + if(objectsItem.type == 'image')objectsItem.minioUrl = getMinioUrl(objectsItem.src) + }); + let blob = new Blob([JSON.stringify(canvasData)], { type: "application/json" }); + let formData = new FormData(); + formData.append("file", blob, "data.json"); + formData.append("module", "canvas"); + formData.append("projectId", store.state.Workspace.probjects.id) + let config = { + headers: { "Content-Type": "multipart/form-data", Accept: "*/*" }, + }; + Https.axiosPost(Https.httpUrls.exportSave, formData, config).then( + (rv) => { + } + ); + },submitDate) + } return{ ...toRefs(dataDom), ...toRefs(data), createProbject, + canvasChangeGetJSON, } }, provide() { diff --git a/src/lang/cn.ts b/src/lang/cn.ts index c6a44344..a24aa50b 100644 --- a/src/lang/cn.ts +++ b/src/lang/cn.ts @@ -6,6 +6,7 @@ export default { HISTORY:'历史', WORKS:'作品广场', EVENTS:'活动', + Events:'活动', AdvancedTools:'高级工具', personal:'个人中心', bindEmail:'绑定邮箱', @@ -23,35 +24,40 @@ export default { SubscribeNow:'立即订阅', TaskList:'任务列表', ViewOrders:'查询订单', - toolsToProduct:'产品图', - toolsRelight:'打光', - toolsToTransferPose:'转换姿势', - toolsDeReconstruction:'拼贴', - toolsPatternMaking:'3D模型', + toolsToProduct:'线稿转产品图', + toolsRelight:'产品图编辑', + toolsToTransferPose:'产品图视频', + toolsDeReconstruction:'拼贴重构廓形', + toolsPatternMaking:'制版', toolsCanvas:'画布', NewProject:'新建项目', Rename:'重命名', Setting:'设置', BatchGeneration:'批量生成', Delete:'删除', + onLiked:'取消喜欢', Language:'语言', Administrator:'管理员', Affiliate:'组织', - Tools:'工具', + Tools:'高级工具', Type:'类型', - Unfold:'展开', + Filter:'筛选', + Unfold:'布局', + expand:'展开', + collapse:'折叠', Size:'大小', Small:'小', - Medium:'中等', + Medium:'中', Large:'大', All:'全部', - Design:'设计图', + Design:'时装画', Product:'产品图', - PoseTransfer:'动图', + PoseTransfer:'时装视频', Today:'今天', Yesterday:'昨天', WithinAWeek:'一周内', Earlier:'更早', + openUpgrade:'升级至专业版', pastDue:'只有成为正式用户后,您才能使用这些功能~', jsContent1:'邮箱格式不正确', jsContent2:'绑定邮箱成功', @@ -140,9 +146,9 @@ export default { Payment:'付款', PurchasePoints:'购买', paymentmethod:'请选择付款方式', - policy:'继续注册账号即表示您同意我们的使用条款与服务协议。', - policy1:'我承认我已阅读并同意', - policy2:'条款和条件', + policy:'继续注册账号即表示您同意我们的使用', + policy1:'条款', + policy2:'服务协议', policy3:'(包括服务范围)及', policy4:'订购协议', completed:'是否已完成支付?', @@ -198,7 +204,7 @@ export default { Reset:'重置', Design:'设计', Redesign:'重新设计', - GeneratedDesign:'设计草稿', + GeneratedDesign:'生成线稿', elementTitle:'设计素材', recycleBin:'回收站', SelectedDesign:'设计集', @@ -220,14 +226,19 @@ export default { jsContent6:" 就可以开始订阅。感谢您试用我们的服务!", jsContent9:"您确定要清除当前系列并重新开始吗?", jsContent10:"二次创作的作品不允许使用'设计',但是您可以使用'重新设计'", + jsContent11:"取消喜欢后相关联的元素会被删除,确认要删除吗", }, ProductImg:{ productInput:'输入关键词(例如风格、材质)', relightInput:'输入关键词(例如场景、地点)', Finalize:'完成', - SelectCollection:'上传要转换的图片', - SelectedDesign:'产品图集', - productImageDrafts:'产品图草稿', + SelectCollection:'线稿图', + SelectCollectionRelight:'产品图', + DesignSelectCollection:'选择一副插图', + SelectedDesign:'已选', + DesignSelectedDesign:'已选', + productImageDrafts:'生成结果', + DesignproductImageDrafts:'生成结果', Upload:'上传', MagicTools:'转换产品图工具', relightingTool:'打光工具', @@ -251,10 +262,13 @@ export default { jsContent3:'您有一张图生成失败,请重试。', }, poseTransfer:{ - SelectDesign:'选择“设计”以应用', + SelectDesign:'产品图', Selectpose:'选择动作', - InputVideo:'输入的视频', + LikeVideo:'已选', + InputVideo:'生成结果', GeneratedVideo:'生成的视频', + hint:'将草图改为逼真的照片,这条裙子的材质是牛仔布。', + jsContent1:'生成视频预计需要三分钟,请问是否继续', }, LibraryPage:{ library:'收藏', @@ -274,7 +288,7 @@ export default { NoLabel:'空标签', unionSet:'并集', all:'全选', - generated:'所有默认材质都是AiDA自己生成', + generated:'所有默认材质都是AiDA生成', ImageOnly:'图片', TextOnly:'文字', TextImage:'图片-文字', @@ -407,7 +421,7 @@ export default { Generate:'生成', Close:'取消', currently:'您排在队列中的第{generateLineUp}位', - PIN:'PIN', + PIN:'必须', Maximum:'最多可上传16张图片,每张图片最大5MB', Thumbnail:'选择的印花', inputContent1:'生成图片的标题', @@ -637,8 +651,9 @@ export default { jsContent1:'请输入标签名称', }, works:{ + WORKS:'作品广场', all:'全部', - FavoriteWorks:'点赞的作品', + FavoriteWorks:'我的喜欢', MyWorks:'我的作品', RCAworkshop_2024:'AiDA工作坊 2024', NewYear_2025:'新年 2025', @@ -883,23 +898,28 @@ export default { }, newProjectg:{ helpYou:'今天我能为您做些什么呢?', - Chat:'对话', - Setting:'设置', - SeriesDesign:'系列设计', + Chat:'代理模式', + Setting:'手动模式', + SeriesDesign:'整身设计', SeriesDesignInfo:'系列设计专注于多品类服装的协调设计,是打造统一时尚系列的理想之选。使用“设计资源”面板中的“情绪板”、“印刷板”、“配色板”、“草图板”和“人体模型”工具,收集和整理您的灵感,打造和谐的服装组合。在“草稿”和“系列”面板中,使用“产品图像”、“重新照明”和“转移姿势”等强大工具,完善您的作品。准备就绪后,将所有内容导出到“画布”以展示完整的系列设计。', SingleDesign:'单品设计', DeepThinking:'深度思考', SingleDesignInfo:'单一设计专注于单一服装类别的独立设计,例如 T 恤、连衣裙或夹克,无需考虑与其他单品的搭配。使用“设计资源”面板中的“情绪板”、“打印板”、“配色板”和“草图板”来收集灵感,并专注于打造一件独一无二的作品。完成后,在“草稿”和“收藏”面板中使用“产品图像”、“重新照明”和“传输姿势”等工具优化您的设计,然后导出到“画布”以展示您的个人作品。', - hintList1:'设计一套田园风衣服 ', - hintList2:'设计一套夏日风衣服 ', - hintList3:'设计一套未来风格的衣服 ', + hintListSERIES1:'设计一套以夏日海滩为灵感的连衣裙。', + hintListSERIES2:'设计一套暗色系,哥特风格的上衣。', + hintListSERIES3:'设计一套男童的无帽夹克设计,要求以森林探险为主题。', + hintListSIGNLE1:'设计一套以夏日海滩为灵感的连衣裙。', + hintListSIGNLE2:'设设计一套女童连衣裙,田园风格。', + hintListSIGNLE3:'设计一套男性短袖衬衫,阳光,活力的感觉。', jsContent1:'文件大小不能超过 5MB。', jsContent2:'您最多只能上传五张图片。', jsContent3:'您最多只能上传一个文件。', }, DeReconstruction:{ - GenerateLineDrawing:'生成线条图', + GenerateLineDrawing:'生成线稿图', Download:'下载', + Girls:"女童", + Boys:"男童", }, patternMaking3D:{ Clothing:'服装', @@ -916,6 +936,7 @@ export default { Rename:'重命名', Review:'查看', Delete:'删除', + sequence:'序号', TaskName:'任务名字', TaskType:'任务类型', QuantityGenerated:'生成数量', @@ -932,8 +953,9 @@ export default { enterNumber:'请输入数量', }, brandDNA:{ - Addbrand:'添加品牌', + Addbrand:'创建新品牌', BrandName:'品牌名字', + BrandTextarea:'从描述中创建品牌', BrandSlogan:'品牌标语', BrandLogo:'品牌logo', Generate:'生成', @@ -942,4 +964,17 @@ export default { Delete:'删除', textarea:'请阐述您对这个品牌的看法,我们将帮助您设计出名称、标志以及宣传语。', }, + chat:{ + DeepThinking:'深度思考', + message:'输入', + }, + Model:{ + Style:'风格', + CurrentModel:'当前模特', + all:'全部', + }, + libraryList:{ + System:'系统', + Library:'库', + }, } diff --git a/src/lang/en.ts b/src/lang/en.ts index ef592273..41e01a5f 100644 --- a/src/lang/en.ts +++ b/src/lang/en.ts @@ -6,6 +6,7 @@ export default { HISTORY:'HISTORY', WORKS:'GALLERY', EVENTS:'EVENTS', + Events:'Events', AdvancedTools:'Advanced tools', personal:'Personal Center', bindEmail:'bind email', @@ -23,10 +24,10 @@ export default { SubscribeNow:'Subscribe now', TaskList:'Task List', ViewOrders:'View Orders', - toolsToProduct:'To Product Image', - toolsRelight:'Relight', - toolsToTransferPose:'Transfer Pose', - toolsDeReconstruction:'De/Reconstruction', + toolsToProduct:'Line Drawing to Product', + toolsRelight:'Product Image Editing', + toolsToTransferPose:'Animate Product Image', + toolsDeReconstruction:'Create Sketches', toolsPatternMaking:'3D Pattern Making', toolsCanvas:'Canvas', NewProject:'New Project', @@ -34,24 +35,29 @@ export default { Setting:'Setting', BatchGeneration:'Batch Generation', Delete:'Delete', + onLiked:'Dislike', Language:'Language', Administrator:'Administrator', Affiliate:'Affiliate', - Tools:'Tools', + Tools:'Advanced Tools', Type:'Type', - Unfold:'Unfold', + Filter:'Filter', + Unfold:'Layout', + expand:'Expand', + collapse:'Collapse', Size:'Size', Small:'Small', Large:'Large', Medium:'Medium', All:'All', - Design:'Design', + Design:'Line Drawing', Product:'Product', - PoseTransfer:'Pose Transfer', + PoseTransfer:'Video', Today:'Today', Yesterday:'Yesterday', WithinAWeek:'Within a week', Earlier:'Earlier', + openUpgrade:'Upgrade to Pro', pastDue:'You can use these features only after becoming a regular user~', jsContent1:'The email format is incorrect', jsContent2:'Succeeded in binding the mailbox.', @@ -140,9 +146,9 @@ export default { Payment:'Payment', PurchasePoints:'Purchase points', paymentmethod:'select a payment method', - policy:'By continuing an account, you agree to our Terms & Conditions', - policy1:'I acknowledge that I have read, understand, and agree with the ', - policy2:'Terms and Conditions', + policy:'By continuing an account, you agree to our', + policy1:'Terms', + policy2:'Conditions', policy3:' (including the Scope of service) and the ', policy4:'Subscription Agreement', completed:'Is payment completed', @@ -198,7 +204,7 @@ export default { Reset:'Reset', Design:'Design', Redesign:'Redesign', - GeneratedDesign:'Design Drafts', + GeneratedDesign:'Generated Line Drawing', elementTitle:'Design Assets', recycleBin:'Recycle Bin', SelectedDesign:'Design Collection', @@ -220,21 +226,26 @@ export default { jsContent6:" to get started. Thank you for trying our services!", jsContent9:"Are you sure to erase current collection and start over?", jsContent10:"Re-created works are not allowed to use 'design', but you can use 'redesign'", + jsContent11:"By unliking this, all connected posts will be deleted. Are you sure you want to continue?", }, ProductImg:{ - productInput:'Enter keywords (e.g. Style, Material)', + productInput:'Prompt to describe details', relightInput:'Enter keywords (e.g. Scene, Location)', Finalize:'Finalize', - SelectCollection:'Upload or Select an Image', - SelectedDesign:'Image Library', - productImageDrafts:'Draft Images', + SelectCollection:'Line Drawings', + SelectCollectionRelight:'Product Image', + DesignSelectCollection:'Select an illustration', + SelectedDesign:'Selected', + DesignSelectedDesign:'Selected', + productImageDrafts:'Generated', + DesignproductImageDrafts:'Generated', Upload:'Upload', Similarity:'Similarity', SelectionFunction:'Choose Editing Mode', Highlight:'Adjust Exposure', RelightDirection:'Set Light Direction', MagicTools:'To Product lmage Tool', - relightingTool:'Relighting Tool', + relightingTool:'Edit Product Image', GenerateProduct:'Generate Product', SelectedProduct:'Selected Product', Export:'Export', @@ -251,10 +262,13 @@ export default { jsContent3:'One of your images failed to generate. Please try again.', }, poseTransfer:{ - SelectDesign:'Select Design to Apply', + SelectDesign:'Product image', Selectpose:'Select pose', - InputVideo:'Input Video', + LikeVideo:'Selected', + InputVideo:'Generated', GeneratedVideo:'Generated Video', + hint:'change the sketch to realistic photo, the material of the skirt is denim', + jsContent1:'Video generation will take approximately 3 minutes. Continue?', }, LibraryPage:{ library:'Library', @@ -637,16 +651,17 @@ export default { jsContent1:'Please enter a tag name', }, works:{ + WORKS:'Gallery', all:'All', - FavoriteWorks:'Like Works', + FavoriteWorks:'My Likes', MyWorks:'My Works', RCAworkshop_2024:'AiDA Workshop 2024', NewYear_2025:'NewYear 2025', }, Publish:{ - Publish:'Publish to gallery', + Publish:'Share', CoverPicture:'Cover Picture', - CollectionTitle:'Collection Title', + CollectionTitle:'Share to gallery Title', topic:'Topic', Description:'Description', Permissions:'Permissions', @@ -883,16 +898,19 @@ export default { }, newProjectg:{ helpYou:'How can I help you today?', - Chat:'Chat', - Setting:'Setting', - SeriesDesign:'Series Design', + Chat:'Agent Mode', + Setting:'Manual Mode', + SeriesDesign:'Overall illustrantion design', SeriesDesignInfo:'Series Design focuses on the coordinated design of multi-category clothing, ideal for creating a unified fashion collection. Gather and arrange your inspiration using the Moodboard, Printboard, Colorboard, Sketchboard, and Mannequin tools in the Design Assets panel to build harmonious outfit combinations. Refine your creations in the Draft and Collection panels using powerful tools like To Product Image, Relight, and Transfer Pose. When you’re ready, export everything to the Canvas to display your complete series design.', - SingleDesign:'Single Design', + SingleDesign:'Single item design', DeepThinking:'Deep Thinking', SingleDesignInfo:'Single Design focuses on creating an individual clothing item, such as a T-shirt, dress, or jacket, without coordinating it with other pieces. Use the Moodboard, Printboard, Colorboard, and Sketchboard sections in the Design Assets panel to gather inspiration and develop a unique design. Once finished, refine your work in the Draft and Collection panels using tools like To Product Image, Relight, and Transfer Pose, then export to the Canvas to showcase your standalone creation. ', - hintList1:'Design a set of countryside-inspired clothes', - hintList2:'Design a summer-inspired outfit set.', - hintList3:'Design a set of futuristic-style clothing.', + hintListSERIES1:'Design a collection of futuristic clothes, deep purple color scheme.', + hintListSERIES2:'Design a set of bright-colored, Bohemian-style dresses.', + hintListSERIES3:'Design a set of hip-hop street style denim jackets for boys.', + hintListSIGNLE1:'A silver-gray, steampunk-style windbreaker.', + hintListSIGNLE2:'Design a set of skirts in bright colors and ethnic styles.', + hintListSIGNLE3:'Design a set of bright-colored, Bohemian-style dresses.', jsContent1:'The file size cannot exceed 5MB.', jsContent2:'You can only upload five pictures.', jsContent3:'You can only upload one file.', @@ -900,6 +918,8 @@ export default { DeReconstruction:{ GenerateLineDrawing:'Generate Line Drawing', Download:'Download', + Girls:"Girls' Fashion", + Boys:"Boys' Fashion", }, patternMaking3D:{ Clothing:'Clothing', @@ -916,13 +936,14 @@ export default { Rename:'Rename', Review:'Review', Delete:'Delete', + sequence:'Sequence', TaskName:'Task Name', TaskType:'Task Type', - QuantityGenerated:'Generation Quality', + QuantityGenerated:'Quantity', Quantity:'Quantity', - CreationTime:'Date Created', - StartTime:'Start time', - UpdateTime:'Updated At', + CreationTime:'Created Time', + StartTime:'Start Time', + UpdateTime:'Update Time', Status:'Status', Keyword:'Keyword', CostCredit:'Cost credit', @@ -932,8 +953,9 @@ export default { enterNumber:'Please enter number', }, brandDNA:{ - Addbrand:'Add brand', + Addbrand:'Create new brand', BrandName:'Brand Name', + BrandTextarea:'Generating brand from description', BrandSlogan:'Brand Slogan', BrandLogo:'Brand Logo', Generate:'Generate', @@ -942,4 +964,17 @@ export default { Delete:'Delete', textarea:'Please enter your thoughts about this brand, and we will help you generate the name, logo, and slogan.', }, + chat:{ + DeepThinking:'Deep Thinking', + message:'Write your message', + }, + Model:{ + Style:'Style', + CurrentModel:'Current Model', + all:'All', + }, + libraryList:{ + System:'System', + Library:'Library', + }, } diff --git a/src/store/Detail/designDetailCopy.ts b/src/store/Detail/designDetailCopy.ts index 8d1b3bcd..5a1594d2 100644 --- a/src/store/Detail/designDetailCopy.ts +++ b/src/store/Detail/designDetailCopy.ts @@ -52,7 +52,7 @@ const DesignDetailCopy : Module = { v.layersObject[i].designOpenrtionBtn = false if(v.layersObject[i].imageCategory.indexOf("back") == -1){ front[index] = v.layersObject[i] - front[index].style.zIndex = v.priority + // front[index].style.zIndex = v.priority front[index].id = v.id front[index].undividedLayer = v.undividedLayer }else{ @@ -206,6 +206,10 @@ const DesignDetailCopy : Module = { } let el:any = document.querySelector('.molepositon .perview_img') await new Promise((resolve, reject) => { + if(!state.frontBack?.body?.path){ + state.frontBack.front[0].undividedLayer = value.rv.clothes[0].undividedLayer + resolve('') + } const img = new Image(); img.src = state.frontBack.body.path; img.onload = () => { diff --git a/src/store/homeStore/homeStore.ts b/src/store/homeStore/homeStore.ts index 1ba15f08..60a85efc 100644 --- a/src/store/homeStore/homeStore.ts +++ b/src/store/homeStore/homeStore.ts @@ -32,8 +32,14 @@ const HomeStoreModule : Module = { templateImgUrl:'', designId:'', showSketchList:[], - toProductImageList:[], - relightList:[], + toProductImageList:{ + list:[], + likedList:[], + }, + relightList:{ + list:[], + likedList:[], + }, uploadElement:[], poseTransfer:{ list:[], @@ -46,6 +52,7 @@ const HomeStoreModule : Module = { categoryValue:'23', categoryShow:false }], + deReconstructionUploadImages:[], patternMaking3D:{ collectionElementId:null, threeDSimpleId:null, @@ -73,9 +80,18 @@ const HomeStoreModule : Module = { }, setRelightList(state,data){ if(data.str == 'add'){ - state.relightList.unshift(...data.list) + if(data.list){ + state.relightList.list.unshift(...data.list) + } + if(data.likedList){ + state.relightList.likedList.unshift(...data.likedList) + } }else{ - state.relightList.splice(data.index,1) + if(data.list){ + state.relightList.list.splice(data.index,1) + }else if(data.likedList){ + state.relightList.likedList.splice(data.index,1) + } } }, setUploadElement(state,data){ @@ -107,6 +123,12 @@ const HomeStoreModule : Module = { } } }, + toolsClear(state){ + state.relightList.likedList = [] + state.uploadElement = [] + state.toProductImageList.likedList = [] + state.poseTransfer.likedList = [] + }, setDeReconstruction(state,data){ if(data.str == 'add'){ state.deReconstruction = [] @@ -117,6 +139,13 @@ const HomeStoreModule : Module = { }else{ state.deReconstruction.splice(data.index,1) } + }, + setDeReconstructionUploadImages(state,data){ + if(data.str == 'add'){ + state.deReconstructionUploadImages.unshift(...data.list) + }else{ + state.deReconstructionUploadImages.splice(data.index,1) + } }, setPatternMaking3D(state,data){ for (const key in data) { @@ -134,9 +163,18 @@ const HomeStoreModule : Module = { }, setToProductImage(state,data){ if(data.str == 'add'){ - state.toProductImageList.unshift(...data.list) + if(data.list){ + state.toProductImageList.list.unshift(...data.list) + } + if(data.likedList){ + state.toProductImageList.likedList.unshift(...data.likedList) + } }else{ - state.toProductImageList.splice(data.index,1) + if(data.list){ + state.toProductImageList.list.splice(data.index,1) + }else if(data.likedList){ + state.toProductImageList.likedList.splice(data.index,1) + } } }, setDeleteDesignCollectionList(state,data){ @@ -188,14 +226,21 @@ const HomeStoreModule : Module = { state.likeDesignCollectionList = [] state.designCollectionId = '' state.deleteDesignCollectionList = [] - state.relightList = [] + state.relightList = { + list:[], + likedList:[], + } state.uploadElement = [] - state.toProductImageList = [] + state.toProductImageList = { + list:[], + likedList:[], + } state.poseTransfer = { list:[], likedList:[], } state.deReconstruction = null + state.deReconstructionUploadImages = [] state.patternMaking3D = { collectionElementId:null, threeDSimpleId:null, diff --git a/src/store/userHabit/userHabit.ts b/src/store/userHabit/userHabit.ts index aa3946d9..40b98d9d 100644 --- a/src/store/userHabit/userHabit.ts +++ b/src/store/userHabit/userHabit.ts @@ -3,6 +3,8 @@ import {RootState} from '../index' import { Https } from "@/tool/https"; import { setLang } from "@/tool/guide"; import { setCookie } from "@/tool/cookie"; +import { useI18n } from "vue-i18n"; + import store from '../index' interface UserHabit{ clothingType:any, @@ -266,7 +268,7 @@ const userHabit : Module = { if(data.systemUser != 0)state.userDetail.systemList.push(1) if(data.affiliate)state.userDetail.systemList.push(2) - let adminIdList = [88,6,46,31,73,83,87,4,11482,11630,12201,12592,23534] + let adminIdList = [88,6,46,31,73,83,87,4,11482,11630,12201,12592,23534,23705] // if(data.email == '' || data.email)state.userDetail.systemList.push(3) if(adminIdList.indexOf(data.userId) > -1 || data.systemUser == 6 || data.systemUser == 7){ state.userDetail.systemList.push(3) @@ -389,7 +391,8 @@ const userHabit : Module = { item.value = item.name item.name = name }); - rv.unshift({name:'All',value:'',id:''}) + const {t} = useI18n() + rv.unshift({name:t('Model.all'),value:'',id:''}) store.commit('setMannequinStyle',rv) resolve('') } diff --git a/src/store/workspace/workspace.ts b/src/store/workspace/workspace.ts index 8e84fb99..5b39201f 100644 --- a/src/store/workspace/workspace.ts +++ b/src/store/workspace/workspace.ts @@ -16,6 +16,7 @@ const Workspace : Module = { workspaceSex:{}, workspacePosition:{}, workspaceAllPosition:{}, + openChat:false, probjects:{ name:'',//项目名称 id:'',//项目id @@ -53,6 +54,9 @@ const Workspace : Module = { // a.download = 'video.mp4' // a.click() }, + setOpenChatStatus(state,boolean){ + state.openChat = boolean + }, setWorkspaceSex(state,files){ state.workspaceSex = files }, diff --git a/src/tool/flexible.js b/src/tool/flexible.js index 85cf0c1e..c53e76f8 100644 --- a/src/tool/flexible.js +++ b/src/tool/flexible.js @@ -4,7 +4,7 @@ let flexible = (designWidth, maxWidth,minWidth) =>{ var doc = document, win = window, docEl = doc.documentElement, remStyle = document.createElement("style"), tid; designWidth = designWidth || 1920; maxWidth = maxWidth || 2560; - minWidth = minWidth || 500; + minWidth = minWidth || 1024; // minWidth = minWidth || 1024; function refreshRem() { var width = docEl.getBoundingClientRect().width; diff --git a/src/tool/https.js b/src/tool/https.js index 267146a5..aac645cc 100644 --- a/src/tool/https.js +++ b/src/tool/https.js @@ -181,6 +181,7 @@ export const Https = { elementSavePrint:'/api/element/savePrint',//保存印花 getRgbByTcx:'/api/element/getRgbByTcx', // 通过hsv值获取潘通信息 getRgbByHsv:'/api/element/getRgbByHsv', //通过hsv值获取潘通信息 + elementDelete:'/api/element/delete', //删除上传的图片 designCollection:`/api/design/designCollection`, //设计 Conllection reDesignCollection:`/api/design/reDesignCollection`,//重新设计 Conllection countDesignProcess:'/api/design/countDesignProcess', //统计design进度 @@ -223,7 +224,8 @@ export const Https = { designSingle:`/api/design/detail/designSingle`,//单个design queryLibraryPage:`/api/library/queryLibraryPage`,//Library分页列表 libraryUpload:`/api/library/upload`, // Library文件上传 - setSketchLibrary:`/api/library/updateLibraryLevel2Type`, // Library文件上传 + setSketchLibrary:`/api/library/updateLibraryLevel2Type`, // 修改图片类型 + updateElementLevel2Type:`/api/element/updateElementLevel2Type`, // 修改拼贴上传的衣服类型 queryClassification:`/api/classification/queryClassification`,//标签类别查询 classificationSaveOrUpdate:`/api/classification/saveOrUpdate`,//标签类别新增修改 @@ -337,6 +339,7 @@ export const Https = { addOrUpdateSubAccount:`/api/account/addOrUpdateSubAccount`,//添加子账号 deleteSubAccount:`/api/account/deleteSubAccount`,//删除子账号 subAccountImportExcelDownload:`/api/account/subAccountImportExcelDownload`,//批量添加模板下载模板 + getNextSequence:`/api/project/getNextSequence`,//批量添加模板下载模板 subAccountImport:`/api/account/subAccountImport`,//模板导入 getGenerateFrequency:`/api/inquiry/getGenerateFrequency`,//积分使用详情 getAllGenerateFuncName:`/api/inquiry/getAllGenerateFuncName`,//获取所有generate类型 @@ -391,6 +394,9 @@ export const Https = { toProduct:`/api/history/toProduct`,//开始生成 toProductImageResult:`/api/history/toProductImageResult`,//获取结果 toProductImageElementUpload:`/api/history/toProductImageElementUpload`,//上传 + historyDeleteResult:`/api/history/deleteResult`,//relight toproduct删除 + generateDeleteResult:`/api/generate/deleteResult`,//pose删除 + productImageLike:`/api/history/productImageLike`,//like生成结果 productImageUnLike:`/api/history/productImageUnLike`,//取消like生成结果 productImageLikeList:`/api/history/productImageLikeList`,//like生成结果 diff --git a/src/tool/listData.js b/src/tool/listData.js index 427012f6..c0788da3 100644 --- a/src/tool/listData.js +++ b/src/tool/listData.js @@ -271,6 +271,11 @@ const openTypeList = (t)=>{ // router:'tools=design' // }, { + icon:'i class="fi fi-rr-puzzle-alt', + value:'deReconstruction', + label:t('Header.toolsDeReconstruction'), + router:'tools=deReconstruction' + },{ icon:'fi fi-ss-box-open', value:'toProduct', label:t('Header.toolsToProduct'), @@ -285,17 +290,14 @@ const openTypeList = (t)=>{ value:'poseTransfer', label:t('Header.toolsToTransferPose'), router:'tools=poseTransfer' - },{ - icon:'i class="fi fi-rr-puzzle-alt', - value:'deReconstruction', - label:t('Header.toolsDeReconstruction'), - router:'tools=deReconstruction' - },{ - icon:'fi fi-rr-cubes', - value:'patternMaking3D', - label:t('Header.toolsPatternMaking'), - router:'tools=patternMaking3D' - },{ + }, + // { + // icon:'fi fi-rr-cubes', + // value:'patternMaking3D', + // label:t('Header.toolsPatternMaking'), + // router:'tools=patternMaking3D' + // }, + { icon:'fi fi-rr-pen-swirl', value:'canvasUpload', label:t('Header.toolsCanvas'), @@ -352,12 +354,12 @@ const openTypeList = (t)=>{ ], WithinAWeeklist:[ ], - EarlierTodaylist:[ + Earlierlist:[ ], }, gallery:{ icon:'fi-rr-gallery', - label:t('Header.WORKS'), + label:t('works.WORKS'), value:'works', router:'/home/works', list:[ @@ -386,7 +388,7 @@ const openTypeList = (t)=>{ }, event:{ icon:'fi-rr-calendar-star', - label:t('Header.EVENTS'), + label:t('Header.Events'), value:'events', router:'/home/events', list:[ diff --git a/src/tool/mdEvent.js b/src/tool/mdEvent.js index b3aaf859..014edcb7 100644 --- a/src/tool/mdEvent.js +++ b/src/tool/mdEvent.js @@ -1,6 +1,6 @@ const getMousePosition = (e,bor,dom) => { e.stopPropagation() - e.preventDefault(); + // if(e?.preventDefault)e.preventDefault(); if(bor){ const touch = e.changedTouches[0]; event = { diff --git a/src/tool/util.js b/src/tool/util.js index da8a84f2..e04f6d8c 100644 --- a/src/tool/util.js +++ b/src/tool/util.js @@ -23,6 +23,7 @@ const getUploadUrl = () => { return url } const getMinioUrl = (url) => { + if (!isValidMinioUrl(url)) return ''; if(isUrl(url)){ const { pathname } = new URL(url); const result = pathname.slice(1); @@ -30,6 +31,9 @@ const getMinioUrl = (url) => { } return '' } +function isValidMinioUrl(url) { + return url.includes('www.minio-api.aida.com.hk'); // 关键特征检测 + } function isUrl(str) { try { new URL(str); diff --git a/src/views/HomeMain.vue b/src/views/HomeMain.vue index c9d63d76..d60b9951 100644 --- a/src/views/HomeMain.vue +++ b/src/views/HomeMain.vue @@ -31,18 +31,19 @@
-
+
{{$t('Header.Today')}}
{{$t('Header.Yesterday')}}
{{$t('Header.WithinAWeek')}}
-
{{$t('Header.Earlier')}}
+
{{$t('Header.Earlier')}}
{{ childItem.name }}
-
{{ childItem.process.replace(/_/g, ' ').toLowerCase().replace(/\b\w/g, char => char.toUpperCase()) }}
+
3D Pattern Making
+
{{ childItem.process.replace(/_/g, ' ').toLowerCase().replace(/\b\w/g, char => char.toUpperCase()) }}
{{ childItem.updateTime.replace('T', ' ') }}
@@ -69,7 +70,6 @@
-
@@ -125,7 +125,7 @@
- +
@@ -139,15 +139,15 @@
-
+
- +
-
+
- +
@@ -302,11 +302,11 @@ export default defineComponent({ projectSetting:null, historyData:{ isNoData:false, - isShowLoading:true, + isShowLoading:false, isNull:false, searchCollectionName:'', historyTextarea:'', - updateTimeType:['Todaylist','Yesterdaylist','WithinAWeeklist','EarlierTodaylist'], + updateTimeType:['Todaylist','Yesterdaylist','WithinAWeeklist','Earlierlist'], selectHistoryId:-1, page:1, size:10, @@ -320,6 +320,18 @@ export default defineComponent({ const historyData = reactive({ }) + const getIdExistToHistory = async ()=>{ + return await new Promise((resolve, reject) => { + let value = { + id:Number(route.query?.id || route.query?.history), + } + Https.axiosPost( Https.httpUrls.historyProject, value) + .then((rv)=>{ + resolve(rv.content.length > 0) + }).catch(()=>{resolve(false)}) + }) + + } watch(() => route.query, (query, oldQuery) => { nextTick(()=>{ @@ -331,16 +343,20 @@ export default defineComponent({ }else{ homeMainData.openType = Object.keys(query)[0] homeMainData.openTypeChild = query[Object.keys(query)[0]] + } }else{ homeMainData.openType = '' homeMainData.openTypeChild = '' } - if(query.create == 'true')settingGetHistory() + if(query.create == 'true' || query?.source == 'batch')settingGetHistory() }) }, { immediate: true } // 立即触发一次以处理初始参数 ); + watch(()=>homeMainData.openTypeList,()=>{ + homeMainData.historyData.page = 1 + }) let userDetail= computed(()=>{ return store.state.UserHabit.userDetail }) @@ -419,6 +435,9 @@ export default defineComponent({ renew.value.init() } onMounted(async ()=>{ + if((route.query?.id || route.query?.history) && !await getIdExistToHistory()){ + router.push('/home') + } let test = getCookie('isTest') let isTest =JSON.parse(test) //判断账号剩余时间是否太短 @@ -519,9 +538,11 @@ export default defineComponent({ homeMainData.openTypeList.history.Todaylist = [] homeMainData.openTypeList.history.Yesterdaylist = [] homeMainData.openTypeList.history.WithinAWeeklist = [] - homeMainData.openTypeList.history.EarlierTodaylist = [] + homeMainData.openTypeList.history.Earlierlist = [] homeMainData.historyData.isShowLoading = false homeMainData.historyData.isNoData = false + isFound = 0//表示是否找到当前id的记录, + existToHistoryIndex = -1 } provide('settingGetHistory',settingGetHistory) const categorizeDate = (inputDate) => { @@ -541,8 +562,34 @@ export default defineComponent({ return "Earlier"; } } + let isFound = 0 + let existToHistoryIndex = -1 + const setScrollTop = ()=>{ + setTimeout(()=>{ + let historyDateList = ['Todaylist','Yesterdaylist','WithinAWeeklist','Earlierlist'] + let num = 0 + let dateIndex = -1 //表示某个时间段 + let parent = document.querySelectorAll('.homeMain_max .navList .history .detail') + let imgParent = document.querySelectorAll('.homeMain_max .navList .history .detail>div') + if(existToHistoryIndex == -1){ + parent[0].parentNode.scrollTop = parent[0].offsetHeight + }else{ + isFound++ + historyDateList.forEach((item,dateItemIndex)=>{ + let length = homeMainData.openTypeList.history[item].length + if(existToHistoryIndex > length + num){ + num += length + }else{ + if(dateIndex == -1)dateIndex = dateItemIndex + } + }) + let dateEl = imgParent[dateIndex].querySelectorAll('.history') + parent[0].parentNode.scrollTop = dateEl[existToHistoryIndex - num-1].offsetTop + } + },0) + + } const getHistory = ()=>{ - console.log(123) if(homeMainData.historyData.isShowLoading && !homeMainData.historyData.isNoData)return homeMainData.historyData.isShowLoading = true let data = { @@ -557,19 +604,22 @@ export default defineComponent({ } Https.axiosPost( Https.httpUrls.historyProject, data).then( // Https.axiosPost( Https.httpUrls.queryUserGroup, data).then( - (rv) => { + (rv) => { if(data.page == 1 && rv.content.length == 0){ homeMainData.historyData.isNull = true }else{ homeMainData.historyData.isNull = false } if (rv.content.length > 0) { - rv.content.forEach((item)=>{ + rv.content.forEach((item,index)=>{ let str = categorizeDate(item.updateTime) + 'list' homeMainData.openTypeList.history[str].push(item) + if(item.id == (route.query?.id || route.query?.history)){ + existToHistoryIndex = rv.page * rv.size + index + 1 - rv.size + } }) homeMainData.historyData.isNull = false - // homeMainData.openTypeList.history.list.push(...rv.content) + if((route.query?.id || route.query?.history) && isFound < 1)setScrollTop() } else { homeMainData.historyData.isNoData = true } @@ -612,7 +662,7 @@ export default defineComponent({ const editName = (item)=>{ homeMainData.historyData.selectHistoryId = -1 for (const key in homeMainData.openTypeList.history) { - let list = ['EarlierTodaylist','Todaylist','WithinAWeeklist','Yesterdaylist'] + let list = ['Earlierlist','Todaylist','WithinAWeeklist','Yesterdaylist'] if(list.indexOf(key) == -1)continue homeMainData.openTypeList.history[key].forEach((item)=>{ item.editName = false @@ -657,7 +707,7 @@ export default defineComponent({ const bathGeneration = (item)=>{ homeMainData.openType = '' homeMainData.historyData.selectHistoryId = -1 - router.push(`/home/cloud?type=creation&id=${item.id}&name=${item.name}`) + router.push(`/home/cloud?type=creation&id=${item.id}&name=${item.name}&process=${item.process}`) } return { store, @@ -979,7 +1029,10 @@ export default defineComponent({ margin-top: 2rem; } .marginB2{ - margin-bottom: 1rem; + // margin-bottom: 1rem; + &.active{ + margin-bottom: 1rem; + } } .list{ display: flex; @@ -1062,7 +1115,10 @@ export default defineComponent({ border-radius: .8rem; display: flex; align-items: center; - flex-wrap: wrap; + // flex-wrap: wrap; + flex-wrap: nowrap; + + > .time{ font-size: 1.2rem; opacity: .5; @@ -1072,9 +1128,12 @@ export default defineComponent({ display: flex; } > .text{ + flex: 1; + overflow: hidden; > span{ //只在一行显示 - + width: 100%; + display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; @@ -1522,7 +1581,9 @@ export default defineComponent({ &:hover { background: #f3f3f6; } - + .fi{ + font-size: 1.8rem; + } .iconfont ,.fi-rr-book-user { // font-size: 1.4rem; } @@ -1572,9 +1633,9 @@ export default defineComponent({ cursor: pointer; } .attention_item_active:hover{ - color: #39215b; + color: #000; span{ - color: #39215b; + color: #000; } } div{ diff --git a/src/views/HomeRecommend.vue b/src/views/HomeRecommend.vue index 8a134536..da2d5800 100644 --- a/src/views/HomeRecommend.vue +++ b/src/views/HomeRecommend.vue @@ -1,43 +1,6 @@