diff --git a/public/css/googleapis.css b/public/css/googleapis.css new file mode 100644 index 00000000..bd94bc3e --- /dev/null +++ b/public/css/googleapis.css @@ -0,0 +1,252 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url(./woff/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 900; + font-display: swap; + src: url(./woff/KFOlCnqEu92Fr1MmYUtfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/public/css/roboto.css b/public/css/roboto.css new file mode 100644 index 00000000..5db1a7ad --- /dev/null +++ b/public/css/roboto.css @@ -0,0 +1,224 @@ +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 700; + src: url(./woff/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: url(./woff/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 500; + src: url(./woff/KFOlCnqEu92Fr1MmEU9fBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} +/* cyrillic-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2) format('woff2'); + unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; +} +/* cyrillic */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2) format('woff2'); + unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; +} +/* greek-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2) format('woff2'); + unicode-range: U+1F00-1FFF; +} +/* greek */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2) format('woff2'); + unicode-range: U+0370-03FF; +} +/* vietnamese */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2) format('woff2'); + unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB; +} +/* latin-ext */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2) format('woff2'); + unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: url(./woff/KFOlCnqEu92Fr1MmWUlfBBc4.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; +} diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 new file mode 100644 index 00000000..d2f30b58 Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic-CsTKlA.woff2 differ diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 new file mode 100644 index 00000000..c88b8aea Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic0CsTKlA.woff2 differ diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 new file mode 100644 index 00000000..6363b1c7 Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic1CsTKlA.woff2 differ diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 new file mode 100644 index 00000000..dd5a4a2e Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic2CsTKlA.woff2 differ diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 new file mode 100644 index 00000000..6abf54d0 Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic3CsTKlA.woff2 differ diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 new file mode 100644 index 00000000..c8091bc9 Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic5CsTKlA.woff2 differ diff --git a/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 new file mode 100644 index 00000000..a56a6ede Binary files /dev/null and b/public/css/woff/KFOjCnqEu92Fr1Mu51TzBic6CsQ.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 new file mode 100644 index 00000000..cb5834ff Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fABc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 new file mode 100644 index 00000000..29342a8d Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fBBc4.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 new file mode 100644 index 00000000..0933dfe8 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fBxc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 new file mode 100644 index 00000000..064e94b7 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fCBc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 new file mode 100644 index 00000000..8571683e Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fCRc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 new file mode 100644 index 00000000..68f094cd Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fChc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 new file mode 100644 index 00000000..6b0b4afe Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmEU9fCxc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 new file mode 100644 index 00000000..1bb7737c Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfABc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 new file mode 100644 index 00000000..771fbecc Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfBBc4.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 new file mode 100644 index 00000000..cb9bfa71 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfBxc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 new file mode 100644 index 00000000..a0d68e2b Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfCBc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 new file mode 100644 index 00000000..63995528 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfCRc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 new file mode 100644 index 00000000..94ab5fb0 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfChc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 new file mode 100644 index 00000000..3c450111 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmWUlfCxc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2 new file mode 100644 index 00000000..1d173f2a Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfABc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfBBc4.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfBBc4.woff2 new file mode 100644 index 00000000..067cb322 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfBBc4.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2 new file mode 100644 index 00000000..81848e2c Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfBxc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2 new file mode 100644 index 00000000..9eda94a2 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfCBc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2 new file mode 100644 index 00000000..f041fde3 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfCRc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2 new file mode 100644 index 00000000..cf61b889 Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfChc4EsA.woff2 differ diff --git a/public/css/woff/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2 b/public/css/woff/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2 new file mode 100644 index 00000000..53b8d0dc Binary files /dev/null and b/public/css/woff/KFOlCnqEu92Fr1MmYUtfCxc4EsA.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 new file mode 100644 index 00000000..fc71d944 Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu4WxKOzY.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu4mxK.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu4mxK.woff2 new file mode 100644 index 00000000..020729ef Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu4mxK.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 new file mode 100644 index 00000000..47da3629 Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu5mxKOzY.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu72xKOzY.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu72xKOzY.woff2 new file mode 100644 index 00000000..22ddee9c Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu72xKOzY.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 new file mode 100644 index 00000000..8a8de615 Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu7GxKOzY.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 new file mode 100644 index 00000000..6284d2e3 Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu7WxKOzY.woff2 differ diff --git a/public/css/woff/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 b/public/css/woff/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 new file mode 100644 index 00000000..72ce0e98 Binary files /dev/null and b/public/css/woff/KFOmCnqEu92Fr1Mu7mxKOzY.woff2 differ diff --git a/public/index.html b/public/index.html index faa7b3d0..ebb75311 100644 --- a/public/index.html +++ b/public/index.html @@ -6,11 +6,14 @@ AiDA - - + + + - + + diff --git a/public/js/color-thief.js b/public/js/color-thief.js new file mode 100644 index 00000000..c32f693f --- /dev/null +++ b/public/js/color-thief.js @@ -0,0 +1 @@ +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):t.ColorThief=r()}(this,function(){if(!t)var t={map:function(t,r){var n={};return r?t.map(function(t,o){return n.index=o,r.call(n,t)}):t.slice()},naturalOrder:function(t,r){return tr?1:0},sum:function(t,r){var n={};return t.reduce(r?function(t,o,e){return n.index=e,t+r.call(n,o)}:function(t,r){return t+r},0)},max:function(r,n){return Math.max.apply(null,n?t.map(r,n):r)}};var r=function(){var r=5,n=8-r,o=1e3;function e(t,n,o){return(t<<2*r)+(n<f/2){for(e=n.copy(),i=n.copy(),u=(r=a-n[s])<=(o=n[h]-a)?Math.min(n[h]-1,~~(a+o/2)):Math.max(n[s],~~(a-1-r/2));!v[u];)u++;for(c=l[u];!c&&v[u-1];)c=l[--u];return e[h]=u,i[s]=e[h]+1,[e,i]}}(u==o?"r":u==i?"g":"b")}}return u.prototype={volume:function(t){return this._volume&&!t||(this._volume=(this.r2-this.r1+1)*(this.g2-this.g1+1)*(this.b2-this.b1+1)),this._volume},count:function(t){var r=this.histo;if(!this._count_set||t){var n,o,i,u=0;for(n=this.r1;n<=this.r2;n++)for(o=this.g1;o<=this.g2;o++)for(i=this.b1;i<=this.b2;i++)u+=r[e(n,o,i)]||0;this._count=u,this._count_set=!0}return this._count},copy:function(){return new u(this.r1,this.r2,this.g1,this.g2,this.b1,this.b2,this.histo)},avg:function(t){var n=this.histo;if(!this._avg||t){var o,i,u,a,s=0,h=1<<8-r,c=0,f=0,v=0;for(i=this.r1;i<=this.r2;i++)for(u=this.g1;u<=this.g2;u++)for(a=this.b1;a<=this.b2;a++)s+=o=n[e(i,u,a)]||0,c+=o*(i+.5)*h,f+=o*(u+.5)*h,v+=o*(a+.5)*h;this._avg=s?[~~(c/s),~~(f/s),~~(v/s)]:[~~(h*(this.r1+this.r2+1)/2),~~(h*(this.g1+this.g2+1)/2),~~(h*(this.b1+this.b2+1)/2)]}return this._avg},contains:function(t){var r=t[0]>>n;return gval=t[1]>>n,bval=t[2]>>n,r>=this.r1&&r<=this.r2&&gval>=this.g1&&gval<=this.g2&&bval>=this.b1&&bval<=this.b2}},a.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n251&&e[1]>251&&e[2]>251&&(r[o].color=[255,255,255])}},{quantize:function(h,c){if(!h.length||c<2||c>256)return!1;var f=function(t){var o,i=new Array(1<<3*r);return t.forEach(function(t){o=e(t[0]>>n,t[1]>>n,t[2]>>n),i[o]=(i[o]||0)+1}),i}(h);f.forEach(function(){});var v=function(t,r){var o,e,i,a=1e6,s=0,h=1e6,c=0,f=1e6,v=0;return t.forEach(function(t){(o=t[0]>>n)s&&(s=o),(e=t[1]>>n)c&&(c=e),(i=t[2]>>n)v&&(v=i)}),new u(a,s,h,c,f,v,r)}(h,f),l=new i(function(r,n){return t.naturalOrder(r.count(),n.count())});function g(t,r){for(var n,e=t.size(),i=0;i=r)return;if(i++>o)return;if((n=t.pop()).count()){var u=s(f,n),a=u[0],h=u[1];if(!a)return;t.push(a),h&&(t.push(h),e++)}else t.push(n),i++}}l.push(v),g(l,.75*c);for(var p=new i(function(r,n){return t.naturalOrder(r.count()*r.volume(),n.count()*n.volume())});l.size();)p.push(l.pop());g(p,c);for(var d=new a;p.size();)d.push(p.pop());return d}}}().quantize,n=function(t){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),this.width=this.canvas.width=t.width,this.height=this.canvas.height=t.height,this.context.drawImage(t,0,0,this.width,this.height)};n.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var o=function(){};return o.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},o.prototype.getPalette=function(t,o,e){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return void 0===n||Number.isInteger(n)?n=10:n<1&&(n=10),{colorCount:r,quality:n}}({colorCount:o,quality:e}),u=new n(t),a=function(t,r,n){for(var o=t,e=[],i=0,u=void 0,a=void 0,s=void 0,h=void 0,c=void 0;i=125)&&(a>250&&s>250&&h>250||e.push([a,s,h]));return e}(u.getImageData().data,u.width*u.height,i.quality),s=r(a,i.colorCount);return s?s.palette():null},o.prototype.getColorFromUrl=function(t,r,n){var o=document.createElement("img"),e=this;o.addEventListener("load",function(){var i=e.getPalette(o,5,n);r(i[0],t)}),o.src=t},o.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="arraybuffer",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);o=t.length;for(var n=new Array(o),o=0;o -
Details
edit the details of your design
@@ -30,27 +25,33 @@
-
+
- +
+
+ +
+
+ +
- + - + - +
-
+
Current Apparel
- +
@@ -58,7 +59,10 @@
Current Print
- +
+ +
+
@@ -68,20 +72,17 @@
-
+
-
222
-
111
+
{{currentItem.color?.tcx}}
+
{{currentItem.color?.name}}
- - -
-
-
{{parentData.index + 1}}/{{parentData.collectionList.length}}
-
Redesign
+
+ Submit +
@@ -93,24 +94,16 @@
+
+
+ + +
-
-
- -
-
- -
-
- -
-
-
-
@@ -118,23 +111,28 @@ diff --git a/src/component/Detail/DesignPrintOperation.vue b/src/component/Detail/DesignPrintOperation.vue new file mode 100644 index 00000000..d414e486 --- /dev/null +++ b/src/component/Detail/DesignPrintOperation.vue @@ -0,0 +1,848 @@ + + + + + \ No newline at end of file diff --git a/src/component/Detail/habit.vue b/src/component/Detail/habit.vue index a5f82a3c..dda8c1d3 100644 --- a/src/component/Detail/habit.vue +++ b/src/component/Detail/habit.vue @@ -1,41 +1,51 @@ @@ -292,12 +507,24 @@ export default defineComponent({ padding: .4rem 1.5rem; font-size: 1.2rem; cursor: pointer; + position: relative; .fi-bs-angle-down { margin-left: 1rem; display: inline-block; transform: translateY(2px); } } + .habit_mask{ + position: absolute; + top: -20px; + left: auto; + right: -30px; + bottom: 0; + // background: #000; + opacity: 0; + width: 100vw; + height: 100vh; + } .habit_content { border: solid 2px #000; border-radius: 1rem; @@ -333,12 +560,19 @@ export default defineComponent({ } .habit_type { margin-top: 1.5rem; - // cursor: pointer; - button{ + cursor: pointer; + position: relative; + .habit_workspace_show{ + width: 100%; + z-index: 1; + transform: translateY(10%); + top: 4rem; + height: 14rem; + overflow-x: hidden; cursor: auto; - } - button:hover{ - color: rgba(0, 0, 0, 0.5); + &.active{ + transform: translateY(0%); + } } } .habit_Overal_Single { @@ -361,6 +595,19 @@ export default defineComponent({ } .habit_habit_singleton { margin-bottom: 3rem; + position: relative; + .habit_singleton_show{ + width: 100%; + z-index: 1; + transform: translateY(10%); + top: 4rem; + height: 14rem; + overflow-x: hidden; + cursor: auto; + &.active{ + transform: translateY(0%); + } + } } .habit_System_Designer { margin-top: 8rem; @@ -388,7 +635,6 @@ export default defineComponent({ } .habit_model{ margin-top: 2rem; - } .habit_model_show{ @@ -412,6 +658,49 @@ export default defineComponent({ display: flex; justify-content: space-between; } + .habit_model_list{ + margin: 0; + li{ + padding: .5rem 0; + display: flex; + input{ + border: 0; + width: 80%; + background: rgba(0,0,0,0); + } + >div{ + cursor: pointer; + width: 80%; + } + &.newWorkspace{ + text-align: center; + justify-content: center; + + div{ + border-radius: 50%; + border: 1px solid #000; + display: inline-block; + width: 2rem; + height: 2rem; + line-height: 2rem; + text-align: center; + } + i{ + flex: 1; + } + } + i{ + cursor: pointer; + } + .fi-rr-trash{ + margin-left: 1rem; + } + } + li:hover{ + background: rgba(0, 0, 0, 0.1); + } + + } .model_Designer{ .model_text{ display: flex; diff --git a/src/component/HomePage/ColorboardUpload.vue b/src/component/HomePage/ColorboardUpload.vue index 385c4ac1..f89300c1 100644 --- a/src/component/HomePage/ColorboardUpload.vue +++ b/src/component/HomePage/ColorboardUpload.vue @@ -168,6 +168,9 @@ export default defineComponent({ a:rgba?.a || rgba?.a===1 ? rgba?.a : 1, hex:selectColor.hex == undefined ? '#FFFFFF':selectColor.hex } + if(data.a != 1 || data.a != 0){ + data.hex = selectColor.hex8?selectColor.hex8:selectColor.hex + } return data } }, @@ -233,12 +236,12 @@ export default defineComponent({ selectColorItem(index,color){ let hex if(color.r){ - hex = this.rgbaToHex([color.r,color.g,color.b]) + hex = this.rgbaToHex([color.r,color.g,color.b,color.a?color.a:1]) }else{ hex = '#FFFFFF' } this.selectIndex = index - this.selectColor = color?.r + ''? {rgba:{r:color.r,g:color.g,b:color.b,a:1},hex:hex} : {hex:''} + this.selectColor = color?.r + ''? {rgba:{r:color.r,g:color.g,b:color.b,a:color.a? color.a: 1},hex:hex} : {hex:''} this.fileList = [] this.tcxColor = '' this.pantongName = '' @@ -256,7 +259,7 @@ export default defineComponent({ Https.axiosGet(Https.httpUrls.getRgbByTcx + '?tcx=' + this.tcxColor).then((rv) =>{ if(rv && rv.name){ // let hex = this.rgbaToHex([color.r,color.g,color.b]) - let hex = this.rgbaToHex([rv.r,rv.g,rv.b]) + let hex = this.rgbaToHex([rv.r,rv.g,rv.b,rv.a?rv.a:1]) this.reviewColor = rv?.r + ''? {rgba:{r:rv.r,g:rv.g,b:rv.b,a:1},hex:hex} : {hex:''} this.selectColor = this.reviewColor this.colorList[this.selectIndex] = {r:rv.r, g:rv.g, b:rv.b} @@ -326,9 +329,14 @@ export default defineComponent({ }, rgbaToHex(rgba) { // rgba转16进制 let hex = '#'; - for (const i of rgba) { - hex += Number(i).toString(16).padStart(2, '0'); - } + rgba.forEach((i,index) => { + if(index == 3){ + hex += Math.round(i * 255).toString(16) + }else{ + hex += Number(i).toString(16).padStart(2, '0'); + } + }); + return hex; }, setUplpadColor(color){ @@ -393,7 +401,6 @@ export default defineComponent({ rv.forEach(element => { this.pantongNameList.push(element.name) }); - console.log(rv); } } ).catch(res=>{ @@ -414,10 +421,13 @@ export default defineComponent({ recollection(){ let colorList = this.store.state.UploadFilesModule.allBoardData.colorBoards + let hex colorList.forEach((ele, index) => { + hex = this.rgbaToHex([ele.rgbValue.r,ele.rgbValue.g,ele.rgbValue.b,ele.rgbValue.a?ele.rgbValue.a:1]) + this.colorList[index] = ele.rgbValue }); - this.selectColor = {rgba:this.colorList[0]}, //顔色选择器默认颜色 + this.selectColor = {rgba:this.colorList[0],hex:hex}, //顔色选择器默认颜色 this.store.commit('setColorboardList',colorList) }, diff --git a/src/component/HomePage/Cropper.vue b/src/component/HomePage/Cropper.vue index 9798b329..211c5657 100644 --- a/src/component/HomePage/Cropper.vue +++ b/src/component/HomePage/Cropper.vue @@ -2,17 +2,21 @@ - +
@@ -153,6 +157,25 @@ export default defineComponent({ \ No newline at end of file diff --git a/src/router/index.ts b/src/router/index.ts index 3a553c54..e7f33546 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,4 +1,4 @@ -import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router' +import { createRouter, createWebHistory, RouteRecordRaw, createWebHashHistory } from 'vue-router' import { defineAsyncComponent } from 'vue' const _import = (path : string) => defineAsyncComponent(() => import(`../views/${path}.vue`)); @@ -37,6 +37,7 @@ const routes: Array = [ const router = createRouter({ history: createWebHistory(process.env.BASE_URL), +// history: createWebHashHistory(), routes }) diff --git a/src/store/Detail/designDetail.ts b/src/store/Detail/designDetail.ts index edd45ac6..abdc1918 100644 --- a/src/store/Detail/designDetail.ts +++ b/src/store/Detail/designDetail.ts @@ -20,7 +20,9 @@ const DesignDetailModule : Module = { setDesignItemOthers(state,data){ state.designItemDetail.others[data.index] = data.others }, - + // setDesignItemOthers(state,data){ + // state.designItemDetail.others[data.index] = data.others + // }, }, actions:{ diff --git a/src/store/index.ts b/src/store/index.ts index a868d635..767a30aa 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -3,6 +3,7 @@ import UploadFilesModule from './uploadFile/uploadFile' import DesignDetailModule from './Detail/designDetail' import HomeStoreModule from './homeStore/homeStore' import UserHabit from './userHabit/userHabit' +import Woekspace from './workspace/workspace' export interface RootState{ } @@ -20,6 +21,7 @@ export default createStore({ UploadFilesModule, DesignDetailModule, HomeStoreModule, - UserHabit + UserHabit, + Woekspace } }) diff --git a/src/store/uploadFile/uploadFile.ts b/src/store/uploadFile/uploadFile.ts index a23bb3ae..40d4f3cb 100644 --- a/src/store/uploadFile/uploadFile.ts +++ b/src/store/uploadFile/uploadFile.ts @@ -4,6 +4,7 @@ import { message } from "ant-design-vue"; interface UploadFiles{ moodboard:any, + disposeMoodboard:any, moodboardFiles:any, moodboardGenerateFiles:any, moodboardMaterialFiles:any, @@ -24,6 +25,7 @@ interface UploadFiles{ const UploadFilesModule : Module = { state:{ moodboard:[], + disposeMoodboard:[], moodboardFiles:[], moodboardGenerateFiles:[], moodboardMaterialFiles:[], @@ -46,6 +48,9 @@ const UploadFilesModule : Module = { setMoodboardFile(state,files){ state.moodboardFiles = files state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles] + }, + setDisposeMoodboard(state,files){ + state.disposeMoodboard = [files] }, setMoodboardGenerateFiles(state,files){ state.moodboardGenerateFiles = files @@ -55,11 +60,11 @@ const UploadFilesModule : Module = { state.moodboardMaterialFiles = files state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles] }, - addGenerateMaterialFils(state,data){ + addGenerateMaterialFils(state,data:any){ let file let arr = state.moodboard if(data.type_.type1 == 'generate'){ - + data.resData.designType = 'generate' if(data.type_.type2 == 'Moodboard'){ file = state.moodboardGenerateFiles }else if(data.type_.type2 == 'Sketchboard'){ @@ -68,12 +73,13 @@ const UploadFilesModule : Module = { file = state.printGenerateFiles } }else{ + data.resData.designType = 'library' if(data.type_.type2 == 'Moodboard'){ file = state.moodboardMaterialFiles }else if(data.type_.type2 == 'Sketchboard'){ file = state.sketchMaterialFiles }else if(data.type_.type2 == 'Printboard'){ - file = state.printGenerateFiles + file = state.printMaterialFiles } } if(file.length == 0){ @@ -117,7 +123,7 @@ const UploadFilesModule : Module = { }else if(data.type_.type2 == 'Sketchboard'){ state.sketchMaterialFiles = file }else if(data.type_.type2 == 'Printboard'){ - state.printMaterialFiles = state.printMaterialFiles + state.printMaterialFiles = file } } state.moodboard = [...state.moodboardFiles,...state.moodboardGenerateFiles,...state.moodboardMaterialFiles] @@ -159,6 +165,7 @@ const UploadFilesModule : Module = { setAllBoardData(state){ state.allBoardData = { moodboardFiles:state.moodboard, + disposeMoodboard:state.disposeMoodboard, printboardFiles:state.printboard, colorBoards:state.colorBoards, sketchboardFiles:state.sketchboard, @@ -185,12 +192,13 @@ const UploadFilesModule : Module = { state.colorBoards = [] state.marketingSketchFiles = [] state.moodTemplateId = '' + state.disposeMoodboard = [] }, setMoodTemplateId(state,moodTemplateId){ state.moodTemplateId = moodTemplateId }, clearMoodTemplateId(state){ - state.moodTemplateId = '' + state.disposeMoodboard = [] }, }, actions:{ diff --git a/src/store/workspace/workspace.ts b/src/store/workspace/workspace.ts new file mode 100644 index 00000000..118c0bb3 --- /dev/null +++ b/src/store/workspace/workspace.ts @@ -0,0 +1,25 @@ +import {Module} from 'vuex' +import {RootState} from '../index' + +interface DesignDetail{ + workspace:any, + +} + +const Woekspace : Module = { + state:{ + workspace:{} + }, + mutations:{ + setWoekspace(state,files){ + state.workspace = files + }, + + + }, + actions:{ + + } +} + +export default Woekspace \ No newline at end of file diff --git a/src/tool/domTurnImg.js b/src/tool/domTurnImg.js index f1ae9254..b5fa0a93 100644 --- a/src/tool/domTurnImg.js +++ b/src/tool/domTurnImg.js @@ -2,12 +2,57 @@ import html2canvas from "html2canvas"; const getJpeg = dom =>{ return new Promise(resolve =>{ html2canvas(dom,{useCORS: true,}).then(canvas =>{ - const jpeg = canvas.toDataURL('image/jpeg',1.0); - resolve(base64ToFile(jpeg)) - console.log(jpeg,'========='); + let base64 = canvas.toDataURL('image/jpeg',.9); + let quality = 0.9 // 压缩系数0-1之间 + let newImage = new Image() + newImage.src = base64 + newImage.setAttribute('crossOrigin', 'Anonymous') // url为外域时需要 + let imgWidth, + imgHeight + let w = undefined + newImage.onload = function () { + w = this.width * .8 + imgWidth = this.width + imgHeight = this.height + let canvas = document.createElement('canvas') + let ctx = canvas.getContext('2d') + if (Math.max(imgWidth, imgHeight) > w) { + if (imgWidth > imgHeight) { + canvas.width = w + canvas.height = w * (imgHeight / imgWidth) + } else { + canvas.height = w + canvas.width = w * (imgWidth / imgHeight) + } + } else { + canvas.width = imgWidth + canvas.height = imgHeight + quality = 0.6 + } + ctx.clearRect(0, 0, canvas.width, canvas.height) + ctx.drawImage(this, 0, 0, canvas.width, canvas.height) // // 这里面的 this 指向 newImage + let smallBase64 = canvas.toDataURL('image/jpeg', quality) // 压缩语句 + let fileData = dataURLtoFile(smallBase64); + let fileOfBlob = new File([fileData], new Date() + ".jpg"); // 命名图片名 + // console.log(smallBase64); + // resolve(base64ToFile(fileOfBlob)) + resolve(fileOfBlob) + } }) }) } + //base64转成blob +function dataURLtoFile(dataURI, type) { + let binary = atob(dataURI.split(",")[1]); + let array = []; + for (let i = 0; i < binary.length; i++) { + array.push(binary.charCodeAt(i)); + } + return new Blob([new Uint8Array(array)], { type: "image/jpeg" }); +} + +//转换 + const base64ToFile = urlData =>{ const arr = urlData.split(','); const mime = arr[0].match(/:(.*?);/)[1] @@ -17,7 +62,6 @@ const base64ToFile = urlData =>{ while (n--){ ia[n] = bytes.charCodeAt(n); } - console.log(new File([ia],'jpeg',{type:mime})); return new File([ia],'jpeg',{type:mime}) } diff --git a/src/tool/https.js b/src/tool/https.js index c0b8e09f..1a1eba16 100644 --- a/src/tool/https.js +++ b/src/tool/https.js @@ -19,8 +19,15 @@ import { message } from 'ant-design-vue'; // }else{ // axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; //配置接口地址 // } +let httpIp +if(process.env.NODE_ENV == 'development'){ + httpIp = 'http://192.168.1.6:10086' +}else{ + httpIp = '' +} +console.log(httpIp); axios.defaults.baseURL = process.env.VUE_APP_BASE_URL; //配置接口地址 -console.log(process.env.VUE_APP_BASE_URL); +// console.log(process.env.VUE_APP_BASE_URL); //POST传参序列化(添加请求拦截器) axios.interceptors.request.use((config) => { //在发送请求之前做某件事 @@ -75,10 +82,10 @@ export const Https = { elementSavePrint:'/api/element/savePrint',//保存印花 getRgbByTcx:'/api/element/getRgbByTcx', // 通过hsv值获取潘通信息 getRgbByHsv:'/api/element/getRgbByHsv', //通过hsv值获取潘通信息 - designCollection:'/api/design/designCollection', //设计 Conllection + designCollection:`${httpIp}/api/design/designCollection`, //设计 Conllection reDesignCollection:'/api/design/reDesignCollection',//重新设计 Conllection countDesignProcess:'/api/design/countDesignProcess', //统计design进度 - getRgbByHsvBatch:'http://192.168.1.6:10086/api/element/getRgbByHsvBatch', //通过hsv值数组批量获取潘通信息 + getRgbByHsvBatch:`${httpIp}/api/element/getRgbByHsvBatch`, //通过hsv值数组批量获取潘通信息 designLike:'/api/design/like', //Design Like designDislike: '/api/design/dislike', //Design Dislike queryUserGroup:'/api/history/queryUserGroup', //History用户分页分组列表 @@ -99,9 +106,12 @@ export const Https = { saveOrEditTemplatePoint:'/api/library/saveOrEditTemplatePoint',//保存或者编辑template打点 libraryModelsDot:'/api/library/modelsDot',//Models打点预览 pythonChatStream:'/api/python/chatStream',//机器人助力 - workspaceDetail:'http://192.168.1.6:10086/api/workspace/detail',//用户习惯详情 + workspaceDetail:`${httpIp}/api/workspace/detail`,//用户习惯详情 + workspaceList:`${httpIp}/api/workspace/list`, sketchAndPrintGenerate:'/api/generate/sketchAndPrint',//sketchGenerate生成图片 - + generateLike:'/api/generate/like',//喜欢ganerate图片 + elementUpload:'/api/element/upload',//上传图片 + }, axiosGet(url,config) { diff --git a/src/tool/util.js b/src/tool/util.js index de779c7b..fcbafc35 100644 --- a/src/tool/util.js +++ b/src/tool/util.js @@ -59,23 +59,25 @@ function rgbToHsv([R, G, B]) { B /= 255 const max = Math.max(R, G, B) const min = Math.min(R, G, B) - const range = max - min - let V = max - let S = V === 0 ? 0 : range / V - let H = 0 - if (R === V) H = (60 * (G - B)) / range - if (G === V) H = 120 + (60 * (B - R)) / range - if (B === V) H = 240 + (60 * (R - G)) / range - - if (range === 0) H = 0 - if (H < 0) H += 360 - H = (H / 2) * (256 / 180) - S *= 255 - V *= 255 - - H = parseInt(H) - S = parseInt(S) - V = parseInt(V) + const delta = max - min + var H,S,V + if (delta === 0) { + H = 0; + } else if (max === R) { + H = ((G - B) / delta) % 6; + } else if (max === G) { + H = (B - R) / delta + 2; + } else { // max === B + H = (R - G) / delta + 4; + } + H = Math.round(H * 60); // 范围为 0-360 + if (max === 0) { + S = 0; + } else { + S = delta / max; + } + S = Math.round(S*100); // 范围为 0-100 + V = Math.round(max*100); // 范围为 0-100 return [H, S, V] } diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index f46e8584..94a26909 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -53,45 +53,7 @@ @click="resDesignCollection()"> Redesign
- -
- - - -
-
@@ -250,34 +212,9 @@ export default defineComponent({ }, data() { return { - system_scale_value: 30, - switch_open: true, - designType: "Outwear", isHaveReviewCollection: false, isFinishLoading: false, isShowMark: false, //导出的loading蒙层 - disignTypeList: [ - { - value: "Outwear", - label: "Outwear", - }, - { - value: "Blouse", - label: "Blouse", - }, - { - value: "Dress", - label: "Dress", - }, - { - value: "Trousers", - label: "Trousers", - }, - { - value: "Skirt", - label: "Skirt", - }, - ], indicator: h(LoadingOutlined, { style: { fontSize: "4.8rem", @@ -316,9 +253,7 @@ export default defineComponent({ } }, methods: { - change_switch() { - this.switch_open = !this.switch_open; - }, + formatter(value: number) { return `${value}%`; @@ -346,7 +281,7 @@ export default defineComponent({ .then((res) => { _this.store.commit("setAllBoardData"); _this.isHaveReviewCollection = true; - _this.isFinishLoading = true; + _this.isFinishLoading = false; }) .catch((res) => { _this.isFinishLoading = false; @@ -394,8 +329,6 @@ export default defineComponent({ designNewCollection() { let { colorBoards } = this.store.state.UploadFilesModule.allBoardData; - // console.log(colorBoards); - if (!colorBoards || colorBoards?.length < 1) { message.error( "You must choose one or more colors for further process." @@ -403,9 +336,14 @@ export default defineComponent({ return; } let data = this.getDesignData(""); + console.log(data); + Https.axiosPost(Https.httpUrls.designCollection, data) + .then((rv: any) => { if (rv) { + console.log(rv); + this.store.commit( "setDesignCollectionList", rv.designCollectionItems @@ -457,31 +395,33 @@ export default defineComponent({ }); this.getDesignProcess(); }, - + getDesignData(designCollectionId: any) { let { moodboardFiles, printboardFiles, + disposeMoodboard, // generatePrintFiles, colorBoards, sketchboardFiles, marketingSketchFiles, moodTemplateId, } = this.store.state.UploadFilesModule.allBoardData; - // let new_printboardFiles = - // printboardFiles.concat(generatePrintFiles); + // console.log(this.store.state.UploadFilesModule.allBoardData); + let workspace = this.store.state.Workspace.workspace let data: any = { colorBoards: this.getColorBoard(colorBoards), - marketingSketchs: this.getBoardId(marketingSketchFiles), + // marketingSketchs: this.getBoardId(marketingSketchFiles), moodBoards: this.getBoardId(moodboardFiles), printBoards: this.getPrintId(printboardFiles), // printBoards: this.getPrintId(new_printboardFiles), sketchBoards: this.getSkecthBoard(sketchboardFiles), - switchCategory: !this.switch_open ? this.designType : "", - singleOverall: !this.switch_open ? "single" : "overall", - systemScale: this.system_scale_value / 100, + + switchCategory: workspace.soverallSingle ? workspace.position : "", + singleOverall: workspace.soverallSingle ? "single" : "overall", + systemScale: workspace.systemDesignerPercentage, templateId: this.templateId, - moodTemplateId: moodTemplateId ? String(moodTemplateId) : null, + moodTemplateId: disposeMoodboard[0] ? String(disposeMoodboard[0].id) : null, timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, }; if (designCollectionId) { @@ -507,6 +447,8 @@ export default defineComponent({ }, getBoardId(boardData: any) { + console.log(boardData); + let dataList = boardData.map((v: any) => { let data: any = { id: v.resData.id, @@ -733,8 +675,6 @@ export default defineComponent({ let blob: any = dataURLtoBlob( canvas.toDataURL("image/png") ); - // console.log(blob); - let allBoardData: any = this.store.state.UploadFilesModule.allBoardData; let index = 0; @@ -777,6 +717,7 @@ export default defineComponent({ collectionList: any, type: string ) { + let designDetail: any = this.$refs.designDetail; let data = { design: design, @@ -987,124 +928,6 @@ export default defineComponent({ .button_margin_14 { margin-left: 1.4rem; } - - .system_scale { - margin-left: 7rem; - width: 12rem; - position: relative; - - .system_scale_title { - font-size: 13px; - font-weight: 400; - color: #030303; - } - - .system_silder { - margin-top: 0.5rem; - display: flex; - align-items: center; - position: absolute; - - .system_silder_value { - font-size: 1.3rem; - color: #030303; - margin-left: 0.9rem; - } - } - - .sacle_left_tip { - position: absolute; - left: -2rem; - bottom: -3.8rem; - font-size: 1.4rem; - line-height: 1.4rem; - color: #030303; - } - - .sacle_right_tip { - position: absolute; - right: -2rem; - bottom: -3.8rem; - font-size: 1.4rem; - line-height: 1.4rem; - color: #030303; - } - } - - .switch_component_block { - width: 14rem; - height: 4rem; - background: #343579; - border: 1px solid #141533; - padding: 0.4rem 0.6rem; - margin-left: 7rem; - box-sizing: border-box; - display: flex; - position: relative; - cursor: pointer; - - .switch_item { - width: 50%; - height: 100%; - line-height: 3rem; - font-size: 1.2rem; - text-align: center; - color: #ffffff; - } - - .switch_white_button { - position: absolute; - width: calc(50% - 0.6rem); - height: 3rem; - left: 0.6rem; - top: 0.4rem; - background: #ffffff; - transition-duration: 0.5s; - line-height: 3rem; - font-size: 1.2rem; - text-align: center; - color: #030303; - - &.switch_open_button { - left: 50%; - } - } - } - - .select_block { - margin-left: 2rem; - - .icon-xiala { - color: #1a1a1a !important; - } - } - } - - .right_top_right { - display: flex; - align-items: center; - - .content_header_button { - display: flex; - justify-content: space-between; - align-items: center; - height: 4rem; - border: 1px solid #000000; - padding: 0 1.2rem 0 0.8rem; - font-size: 1.3rem; - color: #1a1a1a; - cursor: pointer; - - .content_header_button_des { - margin-right: 1rem; - font-weight: bold; - } - - .icon-xiala { - transform: rotate(-90deg); - color: #1a1a1a; - } - } } } diff --git a/src/views/LoginPage.vue b/src/views/LoginPage.vue index 44ca6e60..a7b92430 100644 --- a/src/views/LoginPage.vue +++ b/src/views/LoginPage.vue @@ -139,9 +139,9 @@
- @@ -265,6 +265,7 @@ export default defineComponent({ time: 60, //60秒倒计时 passwordType:'password', userId:'', + loginTime:true }; }, methods: { @@ -399,9 +400,8 @@ export default defineComponent({ }; // this.loginType = 'email' // this.emailStap = 2; - let loginTime = true - if(loginTime){ - loginTime = false + if(this.loginTime){ + this.loginTime = false Https.axiosPost(Https.httpUrls.preLogin, data).then( (rv: any) => { // if (rv) { @@ -418,9 +418,10 @@ export default defineComponent({ } } ); + setTimeout(() => { - loginTime = true - }, 1000); + this.loginTime = true + }, 2000); } } diff --git a/vue.config.js b/vue.config.js index 1483bb2c..33f67827 100644 --- a/vue.config.js +++ b/vue.config.js @@ -6,6 +6,7 @@ module.exports = defineConfig({ transpileDependencies: ['vuetify'], lintOnSave:false,//关闭语法检查 + productionSourceMap: false,//打包不生成map文件,减少文件大小 devServer: { // hot: true, // 热更新 // port: '8060', @@ -20,7 +21,7 @@ module.exports = defineConfig({ // changeOrigin: true, //是否允许跨越 // } '/api':{ - target:'http://18.167.251.121:5567', + target:'http://192.168.1.9:5567', changeOrigin:true, } },