Explorar el Código

[add][消息ui]

zhangwei hace 2 años
padre
commit
daa4c1f44c

BIN
src/assets/img/icon-message-close.png


BIN
src/assets/img/icon-message-fail.png


BIN
src/assets/img/icon-message-win.png


+ 75 - 0
src/assets/svg/icon-message-fail.svg

@@ -0,0 +1,75 @@
+<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
+<rect width="40" height="40" rx="8" fill="#8554FD"/>
+<g clip-path="url(#clip0_19899_286973)">
+<path d="M20.6698 18.791V27.5443L13.3125 30.9122V21.4326L20.6698 18.791Z" fill="#582701"/>
+<path d="M28.1904 21.5007V30.7899L20.4258 27.4897V18.9121L28.1904 21.5007Z" fill="#582701"/>
+<path d="M21.0101 24.5078V33.9489L13.0898 30.9211V21.5195L21.0101 24.5078Z" fill="#F9CE46"/>
+<path d="M14.3086 24.4258L14.6796 24.5768L14.6969 26.1241L14.9909 26.2439L14.9959 26.7098L14.3309 26.4393L14.3086 24.4258Z" fill="black"/>
+<path d="M15.1289 24.7598L15.5095 24.9146L15.5254 26.3326C15.5263 26.3989 15.5412 26.4572 15.5701 26.5075C15.5993 26.5579 15.6378 26.5928 15.6858 26.6125C15.7357 26.6327 15.7749 26.6281 15.8034 26.5988C15.832 26.5692 15.8458 26.5183 15.8449 26.4461L15.829 25.0447L16.2077 25.1992L16.2223 26.5199C16.2244 26.6999 16.2069 26.8364 16.1699 26.9294C16.1325 27.0224 16.0767 27.0792 16.0026 27.0996C15.9288 27.1198 15.8249 27.1028 15.6909 27.0484C15.4934 26.968 15.3534 26.8489 15.2711 26.6914C15.1891 26.5338 15.1464 26.3067 15.143 26.0101L15.1289 24.7598Z" fill="black"/>
+<path d="M17.3574 27.1976L17.3629 27.6758C17.2848 27.6749 17.2148 27.6618 17.1528 27.6365C16.9383 27.5492 16.7631 27.3791 16.6273 27.1263C16.4915 26.8732 16.4217 26.5848 16.4181 26.2612C16.4147 25.9606 16.4793 25.7399 16.6118 25.5991C16.7443 25.4583 16.9134 25.4299 17.1191 25.5138C17.1993 25.5465 17.273 25.5894 17.3401 25.6426L17.3456 26.1221C17.2742 26.0641 17.207 26.0223 17.1441 25.9967C17.0478 25.9574 16.9685 25.9792 16.9062 26.062C16.8436 26.1447 16.8132 26.27 16.8151 26.4378C16.8172 26.6187 16.8509 26.7748 16.9162 26.9062C16.9816 27.0373 17.0677 27.1246 17.1747 27.1681C17.2266 27.1895 17.2875 27.1993 17.3574 27.1976Z" fill="black"/>
+<path d="M17.5156 25.7324L17.8866 25.8834L17.8976 26.8309L17.9035 26.833L18.243 26.0285L18.6322 26.1872L18.2644 27.0613L18.6391 28.1939L18.2316 28.0279L17.9062 27.0625L17.8998 27.06L17.9094 27.897L17.5384 27.7459L17.5156 25.7324Z" fill="black"/>
+<path d="M18.5977 26.1738L19.0142 26.3436C19.1096 26.6707 19.1791 26.9211 19.2225 27.0948L19.2275 27.097C19.2673 26.9531 19.3308 26.7567 19.418 26.5079L19.8442 26.6815L19.4185 27.6055L19.4285 28.5163L19.053 28.3631L19.0425 27.4523L18.5977 26.1738Z" fill="black"/>
+<path d="M14.3086 24.4258L14.6796 24.5768L14.6969 26.1241L14.9909 26.2439L14.9959 26.7098L14.3309 26.4393L14.3086 24.4258Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path d="M15.1289 24.7598L15.5095 24.9146L15.5254 26.3326C15.5263 26.3989 15.5412 26.4572 15.5701 26.5075C15.5993 26.5579 15.6378 26.5928 15.6858 26.6125C15.7357 26.6327 15.7749 26.6281 15.8034 26.5988C15.832 26.5692 15.8458 26.5183 15.8449 26.4461L15.829 25.0447L16.2077 25.1992L16.2223 26.5199C16.2244 26.6999 16.2069 26.8364 16.1699 26.9294C16.1325 27.0224 16.0767 27.0792 16.0026 27.0996C15.9288 27.1198 15.8249 27.1028 15.6909 27.0484C15.4934 26.968 15.3534 26.8489 15.2711 26.6914C15.1891 26.5338 15.1464 26.3067 15.143 26.0101L15.1289 24.7598Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path d="M17.3574 27.1976L17.3629 27.6758C17.2848 27.6749 17.2148 27.6618 17.1528 27.6365C16.9383 27.5492 16.7631 27.3791 16.6273 27.1263C16.4915 26.8732 16.4217 26.5848 16.4181 26.2612C16.4147 25.9606 16.4793 25.7399 16.6118 25.5991C16.7443 25.4583 16.9134 25.4299 17.1191 25.5138C17.1993 25.5465 17.273 25.5894 17.3401 25.6426L17.3456 26.1221C17.2742 26.0641 17.207 26.0223 17.1441 25.9967C17.0478 25.9574 16.9685 25.9792 16.9062 26.062C16.8436 26.1447 16.8132 26.27 16.8151 26.4378C16.8172 26.6187 16.8509 26.7748 16.9162 26.9062C16.9816 27.0373 17.0677 27.1246 17.1747 27.1681C17.2266 27.1895 17.2875 27.1993 17.3574 27.1976Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path d="M17.5156 25.7324L17.8866 25.8834L17.8976 26.8309L17.9035 26.833L18.243 26.0285L18.6322 26.1872L18.2644 27.0613L18.6391 28.1939L18.2316 28.0279L17.9062 27.0625L17.8998 27.06L17.9094 27.897L17.5384 27.7459L17.5156 25.7324Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path d="M18.5977 26.1738L19.0142 26.3436C19.1096 26.6707 19.1791 26.9211 19.2225 27.0948L19.2275 27.097C19.2673 26.9531 19.3308 26.7567 19.418 26.5079L19.8442 26.6815L19.4185 27.6055L19.4285 28.5163L19.053 28.3631L19.0425 27.4523L18.5977 26.1738Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path d="M14.3086 24.4258L14.6796 24.5768L14.6969 26.1241L14.9909 26.2439L14.9959 26.7098L14.3309 26.4393L14.3086 24.4258Z" fill="#BCCFFF"/>
+<path d="M15.1289 24.7598L15.5095 24.9146L15.5254 26.3326C15.5263 26.3989 15.5412 26.4572 15.5701 26.5075C15.5993 26.5579 15.6378 26.5928 15.6858 26.6125C15.7357 26.6327 15.7749 26.6281 15.8034 26.5988C15.832 26.5692 15.8458 26.5183 15.8449 26.4461L15.829 25.0447L16.2077 25.1992L16.2223 26.5199C16.2244 26.6999 16.2069 26.8364 16.1699 26.9294C16.1325 27.0224 16.0767 27.0792 16.0026 27.0996C15.9288 27.1198 15.8249 27.1028 15.6909 27.0484C15.4934 26.968 15.3534 26.8489 15.2711 26.6914C15.1891 26.5338 15.1464 26.3067 15.143 26.0101L15.1289 24.7598Z" fill="#BCCFFF"/>
+<path d="M17.3574 27.1976L17.3629 27.6758C17.2848 27.6749 17.2148 27.6618 17.1528 27.6365C16.9383 27.5492 16.7631 27.3791 16.6273 27.1263C16.4915 26.8732 16.4217 26.5848 16.4181 26.2612C16.4147 25.9606 16.4793 25.7399 16.6118 25.5991C16.7443 25.4583 16.9134 25.4299 17.1191 25.5138C17.1993 25.5465 17.273 25.5894 17.3401 25.6426L17.3456 26.1221C17.2742 26.0641 17.207 26.0223 17.1441 25.9967C17.0478 25.9574 16.9685 25.9792 16.9062 26.062C16.8436 26.1447 16.8132 26.27 16.8151 26.4378C16.8172 26.6187 16.8509 26.7748 16.9162 26.9062C16.9816 27.0373 17.0677 27.1246 17.1747 27.1681C17.2266 27.1895 17.2875 27.1993 17.3574 27.1976Z" fill="#BCCFFF"/>
+<path d="M17.5156 25.7324L17.8866 25.8834L17.8976 26.8309L17.9035 26.833L18.243 26.0285L18.6322 26.1872L18.2644 27.0613L18.6391 28.1939L18.2316 28.0279L17.9062 27.0625L17.8998 27.06L17.9094 27.897L17.5384 27.7459L17.5156 25.7324Z" fill="#BCCFFF"/>
+<path d="M18.5977 26.1738L19.0142 26.3436C19.1096 26.6707 19.1791 26.9211 19.2225 27.0948L19.2275 27.097C19.2673 26.9531 19.3308 26.7567 19.418 26.5079L19.8442 26.6815L19.4185 27.6055L19.4285 28.5163L19.053 28.3631L19.0425 27.4523L18.5977 26.1738Z" fill="#BCCFFF"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14.2812 26.9121L14.6276 27.0533C14.8677 27.1509 15.051 27.3093 15.1777 27.5285C15.3047 27.7478 15.3701 28.0193 15.3737 28.3429C15.3764 28.5883 15.3479 28.7739 15.288 28.8996C15.2279 29.0253 15.1429 29.0994 15.0333 29.1219C14.9233 29.144 14.8014 29.128 14.6677 29.0737L14.304 28.9256L14.2812 26.9121ZM14.6568 27.4914L14.67 28.6466C14.7824 28.6802 14.8614 28.6636 14.907 28.5967C14.9526 28.5296 14.9743 28.3975 14.9722 28.2004C14.9707 28.0838 14.9614 27.9817 14.9444 27.8941C14.9271 27.8065 14.902 27.7343 14.8692 27.6774C14.8367 27.6205 14.8049 27.5809 14.7739 27.5584C14.7432 27.5359 14.7042 27.5136 14.6568 27.4914V27.4914Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.5508 27.4277L15.9828 27.6039C16.1576 27.675 16.2961 27.7865 16.3985 27.9384C16.5009 28.09 16.5532 28.2609 16.5553 28.4511C16.5565 28.5487 16.5384 28.6351 16.501 28.7105C16.4637 28.7856 16.4085 28.8317 16.3356 28.8479L16.6423 29.8764L16.2504 29.7168L15.94 28.6777L15.9341 28.6755L15.9441 29.5923L15.5731 29.4413L15.5508 27.4277ZM15.9263 27.9678L15.9318 28.446C16.0959 28.5089 16.1772 28.4713 16.1756 28.3334C16.1744 28.2401 16.1547 28.1656 16.1164 28.1099C16.0778 28.0541 16.0144 28.0068 15.9263 27.9678V27.9678Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.9319 30.4005L17.5463 30.2431L17.4797 29.8813L17.0878 29.7222L17.0267 30.0319L16.6484 29.8779L17.0591 28.041L17.4756 28.2104L17.9319 30.4005ZM17.405 29.491C17.3461 29.1688 17.3011 28.8668 17.2701 28.5849L17.2655 28.5832C17.2391 28.8497 17.201 29.1179 17.1511 29.3878L17.405 29.491Z" fill="black"/>
+<path d="M17.8359 28.3594L18.1923 28.5044L18.4166 29.8042L18.4216 29.806L18.5989 28.6699L18.922 28.8013L19.1289 30.0807L19.134 30.0828L19.3213 28.9639L19.6872 29.1127L19.3181 30.9667L18.9826 30.8302L18.8172 29.8665C18.799 29.761 18.7836 29.6602 18.7712 29.5641L18.7661 29.5619C18.7476 29.7095 18.7341 29.8077 18.7256 29.8563L18.5811 30.6668L18.2507 30.532L17.8359 28.3594Z" fill="black"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14.2812 26.9121L14.6276 27.0533C14.8677 27.1509 15.051 27.3093 15.1777 27.5285C15.3047 27.7478 15.3701 28.0193 15.3737 28.3429C15.3764 28.5883 15.3479 28.7739 15.288 28.8996C15.2279 29.0253 15.1429 29.0994 15.0333 29.1219C14.9233 29.144 14.8014 29.128 14.6677 29.0737L14.304 28.9256L14.2812 26.9121ZM14.6568 27.4914L14.67 28.6466C14.7824 28.6802 14.8614 28.6636 14.907 28.5967C14.9526 28.5296 14.9743 28.3975 14.9722 28.2004C14.9707 28.0838 14.9614 27.9817 14.9444 27.8941C14.9271 27.8065 14.902 27.7343 14.8692 27.6774C14.8367 27.6205 14.8049 27.5809 14.7739 27.5584C14.7432 27.5359 14.7042 27.5136 14.6568 27.4914V27.4914Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.5508 27.4277L15.9828 27.6039C16.1576 27.675 16.2961 27.7865 16.3985 27.9384C16.5009 28.09 16.5532 28.2609 16.5553 28.4511C16.5565 28.5487 16.5384 28.6351 16.501 28.7105C16.4637 28.7856 16.4085 28.8317 16.3356 28.8479L16.6423 29.8764L16.2504 29.7168L15.94 28.6777L15.9341 28.6755L15.9441 29.5923L15.5731 29.4413L15.5508 27.4277ZM15.9263 27.9678L15.9318 28.446C16.0959 28.5089 16.1772 28.4713 16.1756 28.3334C16.1744 28.2401 16.1547 28.1656 16.1164 28.1099C16.0778 28.0541 16.0144 28.0068 15.9263 27.9678V27.9678Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.9319 30.4005L17.5463 30.2431L17.4797 29.8813L17.0878 29.7222L17.0267 30.0319L16.6484 29.8779L17.0591 28.041L17.4756 28.2104L17.9319 30.4005ZM17.405 29.491C17.3461 29.1688 17.3011 28.8668 17.2701 28.5849L17.2655 28.5832C17.2391 28.8497 17.201 29.1179 17.1511 29.3878L17.405 29.491Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path d="M17.8359 28.3594L18.1923 28.5044L18.4166 29.8042L18.4216 29.806L18.5989 28.6699L18.922 28.8013L19.1289 30.0807L19.134 30.0828L19.3213 28.9639L19.6872 29.1127L19.3181 30.9667L18.9826 30.8302L18.8172 29.8665C18.799 29.761 18.7836 29.6602 18.7712 29.5641L18.7661 29.5619C18.7476 29.7095 18.7341 29.8077 18.7256 29.8563L18.5811 30.6668L18.2507 30.532L17.8359 28.3594Z" stroke="#8D5500" stroke-width="0.857143"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M14.2812 26.9121L14.6276 27.0533C14.8677 27.1509 15.051 27.3093 15.1777 27.5285C15.3047 27.7478 15.3701 28.0193 15.3737 28.3429C15.3764 28.5883 15.3479 28.7739 15.288 28.8996C15.2279 29.0253 15.1429 29.0994 15.0333 29.1219C14.9233 29.144 14.8014 29.128 14.6677 29.0737L14.304 28.9256L14.2812 26.9121ZM14.6568 27.4914L14.67 28.6466C14.7824 28.6802 14.8614 28.6636 14.907 28.5967C14.9526 28.5296 14.9743 28.3975 14.9722 28.2004C14.9707 28.0838 14.9614 27.9817 14.9444 27.8941C14.9271 27.8065 14.902 27.7343 14.8692 27.6774C14.8367 27.6205 14.8049 27.5809 14.7739 27.5584C14.7432 27.5359 14.7042 27.5136 14.6568 27.4914V27.4914Z" fill="#FFB047"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M15.5508 27.4277L15.9828 27.6039C16.1576 27.675 16.2961 27.7865 16.3985 27.9384C16.5009 28.09 16.5532 28.2609 16.5553 28.4511C16.5565 28.5487 16.5384 28.6351 16.501 28.7105C16.4637 28.7856 16.4085 28.8317 16.3356 28.8479L16.6423 29.8764L16.2504 29.7168L15.94 28.6777L15.9341 28.6755L15.9441 29.5923L15.5731 29.4413L15.5508 27.4277ZM15.9263 27.9678L15.9318 28.446C16.0959 28.5089 16.1772 28.4713 16.1756 28.3334C16.1744 28.2401 16.1547 28.1656 16.1164 28.1099C16.0778 28.0541 16.0144 28.0068 15.9263 27.9678V27.9678Z" fill="#FFB047"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M17.9319 30.4005L17.5463 30.2431L17.4797 29.8813L17.0878 29.7222L17.0267 30.0319L16.6484 29.8779L17.0591 28.041L17.4756 28.2104L17.9319 30.4005ZM17.405 29.491C17.3461 29.1688 17.3011 28.8668 17.2701 28.5849L17.2655 28.5832C17.2391 28.8497 17.201 29.1179 17.1511 29.3878L17.405 29.491Z" fill="#FFB047"/>
+<path d="M17.8359 28.3594L18.1923 28.5044L18.4166 29.8042L18.4216 29.806L18.5989 28.6699L18.922 28.8013L19.1289 30.0807L19.134 30.0828L19.3213 28.9639L19.6872 29.1127L19.3181 30.9667L18.9826 30.8302L18.8172 29.8665C18.799 29.761 18.7836 29.6602 18.7712 29.5641L18.7661 29.5619C18.7476 29.7095 18.7341 29.8077 18.7256 29.8563L18.5811 30.6668L18.2507 30.532L17.8359 28.3594Z" fill="#FFB047"/>
+<path opacity="0.5" d="M21.0101 24.5068V33.948L20.9737 24.533L13.0898 21.4277L21.0101 24.5068Z" fill="url(#paint0_linear_19899_286973)"/>
+<path d="M28.3723 21.4551V30.9216L21.0117 33.9494V24.5083L28.3723 21.4551Z" fill="#FEB13E"/>
+<path opacity="0.5" d="M28.3723 21.4277L21.0567 24.533L21.0117 33.948V24.5068L28.3723 21.4277Z" fill="url(#paint1_linear_19899_286973)"/>
+<path d="M20.4544 18.8668L28.13 21.4995L21.0091 24.4309L13.2709 21.52L20.4544 18.8668ZM23.9538 21.5029C23.9538 21.3122 23.8505 21.1392 23.6824 20.9903C23.5143 20.8414 23.2751 20.7106 22.9855 20.6023C22.4057 20.3853 21.6093 20.2527 20.7321 20.2527C19.8547 20.2527 19.0582 20.3853 18.4784 20.6023C18.1888 20.7106 17.9495 20.8414 17.7814 20.9903C17.6133 21.1392 17.51 21.3122 17.51 21.5029C17.51 21.6937 17.6133 21.8667 17.7814 22.0155C17.9495 22.1644 18.1888 22.2952 18.4784 22.4035C19.0582 22.6204 19.8547 22.7529 20.7321 22.7529C21.6093 22.7529 22.4057 22.6204 22.9855 22.4035C23.2751 22.2952 23.5143 22.1644 23.6824 22.0155C23.8505 21.8667 23.9538 21.6937 23.9538 21.5029Z" fill="#F9CE46" stroke="#FFD99F" stroke-width="0.142857"/>
+<path d="M28.3707 21.8188L20.4423 18.83L13.0898 21.8188L20.4504 18.791L28.3707 21.8188Z" fill="#FFBF06"/>
+<path d="M21.1016 24.3906L21.1016 33.8871" stroke="#FFD99F" stroke-width="0.142857"/>
+<path opacity="0.3" d="M17.5798 21.6529C17.5798 21.674 17.5809 21.6947 17.5831 21.7154C17.5699 21.666 17.5625 21.616 17.5625 21.5653C17.5625 20.8379 18.9804 20.248 20.7293 20.248C22.4785 20.248 23.8965 20.8379 23.8965 21.5653C23.8965 21.616 23.8891 21.666 23.8758 21.7154C23.878 21.6947 23.8791 21.674 23.8791 21.6529C23.8791 20.9217 22.4689 20.3291 20.7293 20.3291C18.99 20.3291 17.5798 20.9217 17.5798 21.6529Z" fill="white"/>
+<path opacity="0.3" d="M23.9131 21.5195C23.8341 22.1704 22.4395 22.6888 20.7298 22.6888C19.0205 22.6888 17.6259 22.1704 17.5469 21.5195C17.7284 22.1285 19.0843 22.6015 20.7298 22.6015C22.3757 22.6015 23.7316 22.1285 23.9131 21.5195V21.5195Z" fill="white"/>
+<path d="M30.7601 16.0729L27.5989 13.9054C27.5989 13.9054 27.5997 13.9055 27.5991 13.9056C26.3203 14.1207 24.5766 18.0644 24.5766 18.0644L27.9601 20.3845C28.8307 18.6352 29.4745 17.688 30.7601 16.0729Z" fill="#9FA0FF"/>
+<path d="M7.74534 19.0143L9.66943 17.1277C9.66943 17.1277 9.6689 17.1279 9.66929 17.1279C10.581 17.1207 12.2697 19.6383 12.2697 19.6383L10.2103 21.6577C9.39399 20.5528 8.83261 19.9756 7.74534 19.0143Z" fill="#4092B8"/>
+<path d="M9.30037 12.9429L10.4241 11.8411C10.4241 11.8411 10.4238 11.8412 10.424 11.8412C10.9565 11.837 11.9428 13.3074 11.9428 13.3074L10.74 14.4868C10.2632 13.8415 9.93538 13.5044 9.30037 12.9429Z" fill="#3E6EFE"/>
+<path d="M28.0246 10.5505L25.7392 8.98352C25.7392 8.98352 25.7398 8.98362 25.7394 8.98369C24.8148 9.13916 23.5542 11.9903 23.5542 11.9903L26.0003 13.6677C26.6297 12.403 27.0952 11.7182 28.0246 10.5505Z" fill="#AB7BDB"/>
+<path d="M13.0774 10.3453L19.7983 8.48953C19.7983 8.48953 19.7984 8.48953 19.7978 8.48979C21.7693 9.17886 22.5336 17.4329 22.5336 17.4329L15.3399 19.4196C14.8785 15.8952 14.3321 13.8847 13.0774 10.3453Z" fill="url(#paint2_linear_19899_286973)"/>
+<path d="M19.2288 11.3856L19.1635 11.1719C19.1112 11.001 18.9215 10.9106 18.7456 10.9643L16.1778 11.7494C16.002 11.8031 15.8952 11.9842 15.9475 12.1551L16.0128 12.3688C15.5269 12.6218 15.2751 13.1908 15.4411 13.7338C15.6178 14.312 16.2045 14.6494 16.7827 14.5276C17.1517 14.9975 17.769 15.2376 18.3943 15.1261L18.6091 15.7437L17.6041 16.0509C17.5488 16.0678 17.5055 16.1058 17.4786 16.1525C17.4549 16.201 17.4477 16.2582 17.4646 16.3135C17.4984 16.4241 17.6165 16.4869 17.7271 16.4532L20.1391 15.7157C20.2496 15.6819 20.3124 15.5638 20.2786 15.4532C20.2448 15.3426 20.1267 15.2797 20.0161 15.3135L19.0111 15.6208L18.7963 15.0032C19.1476 14.8491 19.425 14.5883 19.5982 14.2743C19.7139 14.0685 19.7819 13.8415 19.8002 13.605C20.3477 13.3827 20.6446 12.7724 20.4686 12.1967C20.3001 11.6545 19.7731 11.3236 19.2288 11.3856ZM15.8431 13.6109C15.7455 13.2917 15.8768 12.9574 16.1396 12.7836L16.5177 14.0204C16.5293 14.0581 16.5441 14.0975 16.5581 14.1345C16.2373 14.1363 15.9407 13.9302 15.8431 13.6109ZM18.6108 12.806L18.4632 13.0957C18.4457 13.1286 18.4447 13.1701 18.4638 13.2055L18.6085 13.4993C18.6528 13.5903 18.5738 13.6914 18.4771 13.6715L18.1861 13.6093C18.1448 13.5999 18.1046 13.6122 18.0755 13.6431L17.8691 13.8574C17.8007 13.9305 17.678 13.8883 17.6638 13.7882L17.6195 13.4636C17.6138 13.4269 17.5922 13.3922 17.5587 13.3723L17.2742 13.2146C17.1881 13.1667 17.1912 13.0421 17.2796 12.9986L17.5547 12.865C17.585 12.8474 17.61 12.8123 17.6176 12.7743L17.661 12.4669C17.6743 12.3666 17.7999 12.3282 17.8695 12.4031L18.0774 12.6337C18.1032 12.6643 18.1436 12.6794 18.1828 12.6729L18.4856 12.6298C18.5831 12.6165 18.6554 12.7181 18.6108 12.806ZM19.7633 13.1518C19.7543 13.1133 19.7453 13.0748 19.733 13.0346L19.3556 11.8004C19.6715 11.8 19.9673 12.0037 20.0641 12.3204C20.1617 12.6397 20.0311 12.9764 19.7633 13.1518Z" fill="#A96F00"/>
+</g>
+<defs>
+<linearGradient id="paint0_linear_19899_286973" x1="-5414.69" y1="18923.5" x2="8676.57" y2="9722.93" gradientUnits="userSpaceOnUse">
+<stop stop-color="white"/>
+<stop offset="0.2" stop-color="white"/>
+<stop offset="0.3" stop-color="#9A969A"/>
+<stop offset="0.5" stop-color="white"/>
+<stop offset="0.6" stop-color="#B7BFC1"/>
+<stop offset="0.7" stop-color="white"/>
+<stop offset="1" stop-color="white"/>
+</linearGradient>
+<linearGradient id="paint1_linear_19899_286973" x1="15888.9" y1="53394.6" x2="44956" y2="35757.2" gradientUnits="userSpaceOnUse">
+<stop stop-color="#DED9D6"/>
+<stop offset="0.3" stop-color="#8B878D"/>
+<stop offset="0.5" stop-color="#F3F4F4"/>
+<stop offset="0.6" stop-color="#807B80"/>
+<stop offset="0.8" stop-color="white"/>
+<stop offset="1" stop-color="#A7A9AC"/>
+</linearGradient>
+<linearGradient id="paint2_linear_19899_286973" x1="16.8665" y1="9.22052" x2="15.5721" y2="15.5427" gradientUnits="userSpaceOnUse">
+<stop stop-color="#FFDD5E"/>
+<stop offset="1" stop-color="#FFCA00"/>
+</linearGradient>
+<clipPath id="clip0_19899_286973">
+<rect width="30" height="30" fill="white" transform="translate(5 5)"/>
+</clipPath>
+</defs>
+</svg>

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 7 - 0
src/assets/svg/icon-message-win.svg


+ 19 - 3
src/entry/background.js

@@ -20,15 +20,20 @@ import {
     windwoLoadSetPopupPage,
     setActionPopup,
     getTwitterNftPostPre,
-    nftTxtPublish
+    nftTxtPublish,
+    getLuckMessage
 } from "@/logic/background/twitter";
 
-import { PingPong } from "@/logic/background/help";
+import { PingPong, httpNetWork } from "@/logic/background/help";
 
 import {
     facebookShareSuccess
 } from "@/logic/background/facebook";
 
+setInterval(() => {
+    getLuckMessage()    
+}, 5000);
+
 //加载bg.js 执行
 setMessageCount();
 
@@ -58,6 +63,9 @@ chrome.alarms.onAlarm.addListener(function (alarm) {
         case 'PingPong':
             PingPong()
             break;
+        case 'LuckMessage':
+            getLuckMessage()
+            break
     }
 });
 
@@ -81,10 +89,15 @@ function onInstalledMethod() {
         //開始後每一分鐘執行一次(該值不能小于1) 
         periodInMinutes: 4
     });
+    chrome.alarms.create('LuckMessage', {
+        //1分鐘之後開始(該值不能小於1) 
+        delayInMinutes: 1,
+        //開始後每一分鐘執行一次(該值不能小于1) 
+        periodInMinutes: 1
+    });
 }
 
 function onMessageMethod(req, sender, sendResponse) {
-    sendResponse('')
     if (req) {
         switch (req.actionType) {
             case "POPUP_LOGIN":
@@ -140,6 +153,9 @@ function onMessageMethod(req, sender, sendResponse) {
             case 'CONTENT_NFT_TXT_PUBLISH':
                 nftTxtPublish(req.data, sender)
                 break
+            case 'CONTENT_HTTP_NET_WORK':
+                httpNetWork(req.data, sender, sendResponse)
+                break
         }
     }
 }

+ 2 - 3
src/entry/content.js

@@ -104,6 +104,7 @@ window.onmessage = (res) => {
 
 
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
+    
     switch (req.actionType) {
         case 'BG_SHOW_PIN_TIPS':
             showPinTips()
@@ -182,6 +183,4 @@ chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
             refreshTabGroup()
             break
     }
-})
-
-
+})

+ 23 - 7
src/entry/content_help.js

@@ -2,31 +2,47 @@ import {
     appendPopupPage,
     tiggerInjectPopupPage
 } from "@/logic/content/twitter.js";
+import { createApp } from 'vue'
+import ViewMessage from '@/view/content/message/index.vue'
+
+const addDomMessage = (element) => {
+    const div = document.createElement('div')
+    div.id = 'denet_message'
+    document.body.appendChild(div)
+    createApp(element).mount('#denet_message')
+}
+
+setTimeout(() => {
+    addDomMessage(ViewMessage)
+}, 3000);
+
 
 window.onload = () => {
     // appendPopupPage();
-    chrome.runtime.sendMessage({ 
-        actionType: "CONTENT_WINDOW_LOADED_SET_POPUP_PAGE", 
-        data: { } 
+    chrome.runtime.sendMessage({
+        actionType: "CONTENT_WINDOW_LOADED_SET_POPUP_PAGE",
+        data: {}
     }, () => { });
 };
 
-chrome.runtime.sendMessage({ 
-    actionType: "CONTENT_SET_POPUP_CONFIG", 
+chrome.runtime.sendMessage({
+    actionType: "CONTENT_SET_POPUP_CONFIG",
     data: {
         popup: 'popup.html'
-    } 
+    }
 }, () => { });
 
 chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
     sendResponse('')
     switch (req.actionType) {
         case 'BACK_PING':
-            console.log('BACK_PING')
             chrome.runtime.sendMessage({ actionType: "CONTENT_PONG", data: '1' }, (res) => { console.log(res) })
             break
         case 'BG_INJECT_EXTENSION_POPUP':
             tiggerInjectPopupPage();
             break
+        case 'CONTENT_HTTP_NET_WORK':
+            httpNetWork(req.funcName, req.data, sender, sendResponse)
+            break
     }
 })

+ 13 - 0
src/logic/background/fetch/twitter.js

@@ -112,4 +112,17 @@ export async function fetchPublish(params = {}) {
         },
         params
     })
+}
+// 获取所有未读消息
+export async function fetchGetAllUnReadNotices(params = {}) {
+    const { accessToken: token = '', uid = '' } = await getChromeStorage('userInfo') || {}
+    if (!token) {
+        return new Promise(function (resolve, reject) {
+            resolve({});
+        })
+    }
+    return commonFetch({
+        url: '/notice/getAllUnReadNotices',
+        params
+    })
 }

+ 27 - 2
src/logic/background/help.js

@@ -1,10 +1,35 @@
+import { commonFetch } from '@/http/fetch'
+
 // 每4分钟调用一次,保持background一直有效
-export function PingPong(){
+export function PingPong() {
     chrome.tabs.query({}, (tabs = []) => {
         if (tabs.length) {
             let tab = tabs.filter((item) => { return item.active == true })
             if (tab.length) {
-                chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' }, (res) => { console.log(res) });
+                chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' }, () => { });
+            }
+        }
+    })
+}
+
+export function httpNetWork(funcName, data, sender, sendResponse) {
+    return commonFetch(data)
+        .then((response) => {
+            chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: response, funcName });
+        })
+        .catch(() => {
+            chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: null, funcName });
+        })
+}
+
+// 向content 发送消息
+export const setContentMessage = (data) => {
+    chrome.tabs.query({}, (tabs = []) => {
+        if (tabs.length) {
+            let tab = tabs.filter((item) => { return item.active == true }) || []
+            if (tab.length) {
+                // 未读消息
+                chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_未读消息', data });
             }
         }
     })

+ 19 - 7
src/logic/background/twitter.js

@@ -1,7 +1,8 @@
-import { fetchTtwitterRequestToken, fetchTwitterLogin, fetchTwitterShortUrl, fetchAllMessageInfo, fetchReadTaskAllMsg, getDiscordUserInfo, fetchGetTwitterNftPostPre, fetchPublish } from '@/logic/background/fetch/twitter.js'
+import { fetchTtwitterRequestToken, fetchTwitterLogin, fetchTwitterShortUrl, fetchAllMessageInfo, fetchReadTaskAllMsg, getDiscordUserInfo, fetchGetTwitterNftPostPre, fetchPublish, fetchGetAllUnReadNotices } from '@/logic/background/fetch/twitter.js'
 import { LANDING_PAGE, LANDING_PAGE_MID, setChromeStorage, setChromeCookie, getChromeCookie, getChromeStorage, removeChromeCookie } from '@/uilts/chromeExtension.js'
 import { guid } from '@/uilts/help.js'
 import { pageUrl, discordAuthRedirectUri } from '@/http/configAPI'
+import { setContentMessage} from '@/logic/background/help.js'
 
 let authToken = ''
 let consumerKey = ''
@@ -284,9 +285,11 @@ export function onInstalledCreateTab() {
                             // setChromeStorage({ groupTabData: JSON.stringify({
                             //     deTabVal: 'deGroupTab'
                             // })})
-                            chrome.storage.local.set({ groupTabData: JSON.stringify({
-                                deTabVal: 'deGroupTab'
-                            })}, (res)=> {
+                            chrome.storage.local.set({
+                                groupTabData: JSON.stringify({
+                                    deTabVal: 'deGroupTab'
+                                })
+                            }, (res) => {
                                 let url = `https://twitter.com/${twitterAccount}`
                                 chrome.tabs.create({
                                     url
@@ -428,6 +431,15 @@ export const setPopupConfig = (activeInfo) => {
     })
 }
 
+export const getLuckMessage = () => {
+    // 请求通知接口
+    fetchGetAllUnReadNotices({})
+        .then((res) => {
+            // 向选中的content发送消息
+            setContentMessage(res)
+        })
+}
+
 export const windwoLoadSetPopupPage = (data, sender) => {
     let { url = '' } = sender.tab;
     if (url.startsWith('chrome://')) {
@@ -466,16 +478,16 @@ export const setActionPopup = (data) => {
 
 export const getTwitterNftPostPre = (params, sender) => {
     fetchGetTwitterNftPostPre(params).then((res) => {
-        if(res.code == 0){
+        if (res.code == 0) {
             chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_TWITTER_NFT_POST_PRE', data: res.data }, (res) => { console.log(res) });
         }
     })
 }
 
 
-export const nftTxtPublish = (params,sender) => {
+export const nftTxtPublish = (params, sender) => {
     fetchPublish(params).then((res) => {
-        if(res.code == 0){
+        if (res.code == 0) {
             chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_NFT_PUBLISH_DONE', data: res.data }, (res) => { console.log(res) });
         }
     })

+ 10 - 2
src/manifest.json

@@ -17,10 +17,15 @@
     },
     "content_scripts": [
         {
-            "matches":["<all_urls>"],
+            "matches": [
+                "<all_urls>"
+            ],
             "run_at": "document_start",
             "js": [
                 "/js/content_help.js"
+            ],
+            "css": [
+                "/css/content_help.css"
             ]
         },
         {
@@ -33,9 +38,12 @@
                 "*://h5.denetme.net/*",
                 "*://preh5.denetme.net/*"
             ],
-            "run_at": "document_start",
+            "run_at": "document_idle",
             "js": [
                 "/js/content.js"
+            ],
+            "css": [
+                "/css/content.css"
             ]
         }
     ],

+ 124 - 0
src/view/content/message/index.vue

@@ -0,0 +1,124 @@
+<template>
+    <div class="denet-message">
+        <!-- <template v-for="item in ">
+
+        </template> -->
+        <div class="denet-message-area" @click="clickItem()">
+            <img :src="require('@/assets/img/icon-message-fail.png')" alt />
+            <span>You were not selected from jerryWang's giveaway... click to see more giveaway!</span>
+            <div class="denet-message-close">
+                <img :src="require('@/assets/img/icon-message-close.png')" alt />
+            </div>
+        </div>
+        <div class="denet-message-area">
+            <img :src="require('@/assets/img/icon-message-win.png')" alt />
+            <span>Congratulations! You won <b class="denet-message-money">23.6 USDT</b> from jerryWang's giveaway!
+                🎉</span>
+            <div class="denet-message-close">
+                <img :src="require('@/assets/img/icon-message-close.png')" alt />
+            </div>
+        </div>
+    </div>
+</template>
+<script setup>
+import { onMounted, reactive } from "vue";
+let state = reactive({
+    list:[]
+})
+
+onMounted(() => {
+
+})
+const clickItem = () => {
+    chrome.runtime.sendMessage({
+        actionType: "CONTENT_HTTP_NET_WORK",
+        funcName: '通知已读',
+        data: {
+            url: '/notice/read',
+            params: {
+                noticeId: 0
+            }
+        }
+    });
+}
+
+chrome.runtime.onMessage.addListener((req, sender, sendResponse) => {
+
+    if (req.actionType == 'CONTENT_HTTP_NET_WORK') {
+        switch (req.funcName) {
+            case '通知已读':
+                break
+        }
+    } else if (req.actionType == 'BACK_未读消息') {
+
+        console.log('req.data',req)
+    }
+})
+</script>
+
+<style lang="scss" scoped>
+.denet-message {
+    position: fixed;
+    max-height: 100%;
+    overflow: hidden;
+    top: 0;
+    right: 0;
+    width: 500px;
+
+    &-area {
+        width: 344px;
+        background: #FFFFFF;
+        border-radius: 15px;
+        min-height: 72px;
+        position: relative;
+        margin-top: 22px;
+        display: flex;
+        cursor: pointer;
+        filter: drop-shadow(0px 5px 20px rgba(0, 0, 0, 0.22));
+        margin-left: 129px;
+
+        img:first-child {
+            width: 40px;
+            height: 40px;
+            margin: 16px 14px 0 16px;
+        }
+
+        span {
+            padding: 14px 26px 14px 0;
+            font-style: normal;
+            font-weight: 500;
+            font-size: 14px;
+            line-height: 20px;
+        }
+
+        .denet-message-money {
+            color: #3D7CB4;
+        }
+    }
+
+    &-area:last-child {
+        margin-bottom: 50px;
+    }
+
+    &-close {
+        border-radius: 100px;
+        width: 24px;
+        height: 24px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        background: #F2F2F2;
+        position: absolute;
+        right: -10px;
+        top: -10px;
+        filter: drop-shadow(0px 2px 4px rgba(0, 0, 0, 0.12));
+        cursor: pointer;
+
+        img:first-child {
+            height: 10px;
+            width: 10px;
+            margin: 0;
+        }
+    }
+}
+</style>

+ 65 - 27
src/view/iframe/red-packet/luck-draw.vue

@@ -163,9 +163,9 @@
                     <img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl"
                         @click="openTwitterDetail(item)" alt />
                     <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt />
-                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i==0" alt/>
-                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i==1" alt/>
-                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i==2" alt/>
+                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i == 0" alt />
+                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i == 1" alt />
+                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i == 2" alt />
                     <div class="luck-content">
                         <div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName
                         }}</div>
@@ -210,7 +210,7 @@
                 <div class="mark-area">
                     <div class="time">
                         <img :src="require('@/assets/svg/icon-time.svg')" />
-                        <span>{{ moment(state.detail.endTimestamp).format('HH:mm:ss') }}</span>
+                        <span>{{ state.count_down_time }}</span>
                     </div>
                     <div class="win">
                         <img :src="require('@/assets/svg/icon-win.svg')" />
@@ -247,9 +247,9 @@
                     <img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt
                         @click="openTwitterDetail(item)" />
                     <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt />
-                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i==0" alt/>
-                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i==1" alt/>
-                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i==2" alt/>
+                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i == 0" alt />
+                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i == 1" alt />
+                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i == 2" alt />
                     <div class="luck-content">
                         <div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName
                         }}</div>
@@ -314,7 +314,7 @@
                 <p>Announcement Winner</p>
                 <div class="time">
                     <img :src="require('@/assets/svg/icon-win-time.svg')" alt />
-                    <span>{{ moment(state.detail.endTimestamp).format('HH:mm:ss') || '' }}</span>
+                    <span>{{ state.count_down_time || '' }}</span>
                 </div>
                 <get-more :style_type="2"></get-more>
                 <div class="notification_switch">
@@ -345,9 +345,9 @@
                     <img v-if="item.simpleUserInfoVO.avatarUrl" :src="item.simpleUserInfoVO.avatarUrl" alt
                         @click="openTwitterDetail(item)" />
                     <img v-else :src="require('@/assets/svg/icon-twitter.svg')" alt />
-                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i==0" alt/>
-                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i==1" alt/>
-                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i==2" alt/>
+                    <img class="win" :src="require('@/assets/svg/icon-win-1.svg')" v-if="i == 0" alt />
+                    <img class="win" :src="require('@/assets/svg/icon-win-2.svg')" v-if="i == 1" alt />
+                    <img class="win" :src="require('@/assets/svg/icon-win-3.svg')" v-if="i == 2" alt />
                     <div class="luck-content">
                         <div class="luck-title" v-if="item.simpleUserInfoVO.nickName">{{ item.simpleUserInfoVO.nickName
                         }}</div>
@@ -422,6 +422,7 @@ import { discordAuthUrl, checkGuildJoined } from '@/http/discordApi'
 import { discordAuthRedirectUri, faceShareRedirectUrl } from '@/http/configAPI'
 import { getFrontConfig } from "@/http/account";
 import GlobalTip from '@/view/components/global-tip.vue'
+import { formItemValidateStates } from "element-plus";
 var moment = require('moment');
 
 let discordAuthorizeRequired = false;
@@ -456,7 +457,8 @@ let state = reactive({
         reply: false
     },
     notification_switch: false,
-    open_timer_status: false
+    open_timer_status: false,
+    count_down_time: ''
 })
 
 let fullName = '';
@@ -773,6 +775,39 @@ function getValidity() {
     }, 1000)
 }
 
+let stop_open_conut_down_time_type = ''
+function openConutDownTime(end_time_ms, type = '未打开', callback) {
+    let now_time_ms, now_time, end_time
+    let _time, _h, _m, _s, _time_str
+    let timer = setInterval(() => {
+        now_time_ms = new Date().getTime()
+        _time = end_time_ms - now_time_ms
+        if (_time > 0) {
+            now_time = moment(now_time_ms)
+            end_time = moment(end_time_ms)
+            _h = moment.duration(end_time.diff(now_time)).hours()
+            _m = moment.duration(end_time.diff(now_time)).minutes()
+            _s = moment.duration(end_time.diff(now_time)).seconds()
+            if (_h < 10) {
+                _h = '0' + _h
+            }
+            if (_m < 10) {
+                _m = '0' + _m
+            }
+            if (_s < 10) {
+                _s = '0' + _s
+            }
+            _time_str = `${_h}:${_m}:${_s}`
+        } else {
+            _time_str = `00:00:00`
+        }
+        if (stop_open_conut_down_time_type == type) {
+            clearInterval(timer)
+        }
+        callback(_time_str)
+    }, 1000);
+}
+
 const openFollowTabs = (arr_name) => {
     let array_finish = arr_name.filter((item) => { return !item.finished })
     // let array_finish = state.detail.taskCondition[0].relatedUsers.filter((item) => { return item.finished == false })
@@ -927,8 +962,15 @@ const showSuccessPage = () => {
         senderId: state.userId,
     });
 }
+
 const showNotOpenPage = () => {
     state.status = 'not-open'
+    openConutDownTime(state.detail.endTimestamp, '未打开', (time_str) => {
+        state.count_down_time = time_str
+        if (time_str == '00:00:00') {
+            stop_open_conut_down_time_type = '未打开'
+        }
+    })
     Report.reportLog({
         pageSource: Report.pageSource.pending_page,
         businessType: Report.businessType.pageView,
@@ -1253,23 +1295,16 @@ const open_timer = () => {
         return
     }
     open_timer_flag = true
-    let new_time
-    let open_time
-    let timer = setInterval(() => {
-        open_time = state.detail.endTimestamp || ''
-        if (!open_time || state.close_status == '没有抽中') {
-            return
-        }
-        new_time = new Date().getTime()
-        // 到时间了
-        if (new_time >= open_time) {
-            // 调用detail 查看结果
+
+    openConutDownTime(state.detail.endTimestamp,'等待结果', (time_str) => {
+        state.count_down_time = time_str
+        if (time_str == '00:00:00') {
             init()
             if (state.open_timer_status == true) {
-                clearInterval(timer)
+                stop_open_conut_down_time_type = '等待结果'
             }
         }
-    }, 1000)
+    })
 }
 const showLoadResult = () => {
     state.status = 'close'
@@ -1932,6 +1967,7 @@ body {
     margin-left: 3px;
     left: 100% !important;
 }
+
 .content {
     position: relative;
     width: 375px;
@@ -2229,13 +2265,15 @@ body {
                 border-bottom: 1px solid #F2F2F2;
                 justify-content: space-between;
                 position: relative;
-                .win{
+
+                .win {
                     position: absolute;
-                    left:28px;
+                    left: 28px;
                     bottom: 7px;
                     width: 20px;
                     height: 20px;
                 }
+
                 img:first-child {
                     border-radius: 50%;
                 }

+ 6 - 0
vue.config.js

@@ -108,4 +108,10 @@ module.exports = {
       })
     ],
   },
+  // 配置 content.css
+	css: {
+		extract: {
+			filename: "css/[name].css"
+		}
+	}
 }

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio