li.shaoyi 1 年之前
父節點
當前提交
02fa221ceb

+ 3 - 2
oem/tss/config/appconfig.json

@@ -3,7 +3,7 @@
   "appName": "TCE",
   "version": "1.0.27",
   "versionCode": "100027",
-  "apiUrl": "http://192.168.31.210:8080/cfg?key=test_210",
+  "apiUrl": "http://192.168.31.204:8080/cfg?key=test_204",
   "tradeChannel": "ws",
   "showLoginAlert": true,
   "modules": [
@@ -11,5 +11,6 @@
   ],
   "quotationProperties": [
     "holdvolume"
-  ]
+  ],
+  "priceColorType": 2
 }

+ 1 - 1
src/packages/pc/components/modules/quote/tik/index.vue

@@ -66,7 +66,7 @@ useRequest(queryMarketRun, {
 // 监听行情推送
 quoteWatch(props.goodsCode, (quote) => {
     const { last = 0, lasttime = '', lastvolume = 0 } = quote
-    if (last && (lastvolume || quoteDay.value?.trademode === 99)) {
+    if (last && (lastvolume || [10, 52, 53, 97, 99].includes(quoteDay.value?.trademode ?? 0))) {
         const list = dataList.value
         if (list.length > 29) {
             // 移除列表最后一条记录

+ 1 - 0
src/packages/tss/assets/images/icons/car.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1731912087379" class="icon" viewBox="0 0 1157 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3379" xmlns:xlink="http://www.w3.org/1999/xlink" width="225.9765625" height="200"><path d="M1051.974896 0a105.526924 105.526924 0 0 1 105.526924 105.526924v678.715257a105.68894 105.68894 0 0 1-105.526924 105.58093h-8.802911a189.262592 189.262592 0 0 0-372.395549 0.189019h-139.550446a189.262592 189.262592 0 0 0-372.476557 0.270028h-53.195507a105.445915 105.445915 0 0 1-105.526923-105.445915V461.423765a105.526924 105.526924 0 0 1 55.706766-93.051633l226.364433-121.215547a105.526924 105.526924 0 0 0 55.706766-93.02463v-48.605031A105.526924 105.526924 0 0 1 443.277886 0z m-152.05274 234.033226a44.527609 44.527609 0 0 0-62.862507 3.294341l-236.733506 262.818206-124.671905-117.138126-2.889299-2.538262a44.527609 44.527609 0 0 0-58.029007 67.506988l141.251621 132.745741 3.159327 2.700279a66.777913 66.777913 0 0 0 91.242445-5.751595l252.881178-280.82907 2.430251-2.943305a44.527609 44.527609 0 0 0-5.724592-59.919202z" fill="#86CF98" p-id="3380"></path><path d="M756.807341 923.81963a100.153367 100.153367 0 0 1 100.180371-100.18037 100.18037 100.18037 0 0 1 100.18037 100.18037 100.18037 100.18037 0 0 1-100.18037 100.18037 100.18037 100.18037 0 0 1-100.180371-100.18037z m-511.972997 0a100.153367 100.153367 0 0 1 100.18037-100.18037 100.18037 100.18037 0 0 1 100.180371 100.18037 100.18037 100.18037 0 0 1-100.180371 100.18037 100.18037 100.18037 0 0 1-100.18037-100.18037z" fill="#2CAD5D" p-id="3381"></path></svg>

文件差異過大導致無法顯示
+ 0 - 0
src/packages/tss/assets/images/icons/cart.svg


+ 1 - 0
src/packages/tss/assets/images/icons/gift.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1731912057324" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3093" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M236.006607 1023.951588a159.761115 159.761115 0 0 1-159.761114-159.761115V443.340966h-1.113487v-121.176384a86.876158 86.876158 0 0 1 91.426929-81.357138h327.897585a499.374515 499.374515 0 0 1 14.3785-67.293318 500.36697 500.36697 0 0 1 14.378501 67.293318h334.045967a86.779333 86.779333 0 0 1 91.378516 81.357138v92.927715a91.523754 91.523754 0 0 1 1.08928 14.136438v434.961738a159.761115 159.761115 0 0 1-159.761114 159.761115z" fill="#86CF98" p-id="3094"></path><path d="M563.008562 1023.903175H439.24211V480.884828H76.148668a48.412459 48.412459 0 0 1-48.412459-48.412459v-72.618688a48.412459 48.412459 0 0 1 48.412459-48.412459h225.650471a186.896298 186.896298 0 0 1-121.950984-131.02832 146.326657 146.326657 0 0 1 18.10626-129.575947 145.237377 145.237377 0 0 1 116.916088-50.663638 174.284852 174.284852 0 0 1 136.135835 60.733429A330.75392 330.75392 0 0 1 506.293366 173.126826a331.117013 331.117013 0 0 1 55.238616-112.22008 174.454296 174.454296 0 0 1 136.160041-60.733429 145.237377 145.237377 0 0 1 116.964501 50.663638 146.326657 146.326657 0 0 1 18.106259 129.575947 186.944711 186.944711 0 0 1-121.97519 131.02832h236.761131a48.412459 48.412459 0 0 1 48.412459 48.412459v72.618688a48.412459 48.412459 0 0 1-48.412459 48.412459H563.008562v543.018347zM508.762401 173.272064A588.985976 588.985976 0 0 0 487.654569 331.943898c0.774599 0 8.133293 1.258724 21.107832 2.420623 12.442002-1.113487 20.236408-2.275386 21.05942-2.420623a588.840739 588.840739 0 0 0-21.05942-158.575009z" fill="#2CAD5D" p-id="3095"></path></svg>

+ 45 - 0
src/packages/tss/assets/images/logo.svg

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 381.62 388.09">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #5d4330;
+      }
+
+      .cls-2 {
+        fill: #c19239;
+      }
+
+      .cls-3 {
+        fill: #c19238;
+      }
+
+      .cls-4 {
+        fill: #614e40;
+      }
+
+      .cls-5 {
+        fill: #72533b;
+      }
+    </style>
+  </defs>
+  <g id="Layer_1" data-name="Layer 1">
+    <g>
+      <path class="cls-2" d="M174.19,252.08c4.29-7.44,7.92-15.22,11.81-22.87,21.84-43.02,43.65-86.06,65.47-129.1,16.46-32.47,32.93-64.93,49.32-97.42C301.76,.76,302.83,0,305.06,0c24.48,.09,48.97,.05,73.46,.06,3,0,3,.02,1.62,2.75-23.29,45.95-46.57,91.9-69.94,137.8-1.31,2.57-.56,4.18,.76,6.76,13.99,27.37,27.96,54.72,41.85,82.14,1.13,2.22-.43,3.02-1,3.02-24.74,0-50.95-.02-75.69,.05-1.76,0-2.64-.6-3.3-2.12-.85-1.97-1.89-3.85-2.89-5.75-.27-.51-.38-1.31-1.05-1.36-.88-.08-.97,.86-1.25,1.42-5.19,10.17-10.35,20.36-15.51,30.54-7.53,14.86-15.06,29.71-22.56,44.59-.7,1.38-1.35,2.3-3.21,2.29-25.69-.07-51.38-.04-77.06-.05-.25,0-.51-.06-.76-.1-.05-.11-.06-.22-.03-.33h.21s.19-.07,.19-.07c.83-.33,.95-1.17,1.28-1.84,7.45-14.67,14.89-29.35,22.28-44.05,.6-1.2,1.65-2.22,1.73-3.67Z"/>
+      <path class="cls-5" d="M50.47,50.09c-.07,.85-.21,1.7-.21,2.55-.01,37.63,.01,75.26-.06,112.88,0,2.35,.59,2.98,2.96,2.98,39.35-.08,78.7-.03,118.04-.1,2.31,0,3.02,.5,3,2.93-.12,14.95-.1,29.9-.02,44.84,0,1.88-.41,2.48-2.4,2.47-56.44-.06-112.89-.06-169.33,0-1.99,0-2.4-.59-2.4-2.47C.09,144.95,.1,73.73,.04,2.51,.04,.39,.7,0,2.65,0,53.08,.06,103.51,.04,153.94,.05c.85,0,1.71,.11,2.56,.16,.18,.57,.28,1.18,.55,1.7,5.44,10.78,10.94,21.53,16.35,32.33,2.45,4.9,5.26,9.63,7.16,14.79-18.29,.02-36.58,.06-54.88,.07-24.13,.01-48.27,0-72.4,.03-.97,0-2.33-.68-2.83,.95Z"/>
+      <path class="cls-3" d="M180.57,49.04c-1.9-5.16-4.71-9.89-7.16-14.79-5.41-10.8-10.9-21.55-16.35-32.33-.27-.53-.37-1.13-.55-1.7,.94-.05,1.88-.15,2.82-.15,24.47,0,48.95,.02,73.42-.06,2.04,0,3.44,.55,4.33,2.33,7.42,14.81,14.94,29.56,22.47,44.32,.56,1.1,.17,2.09-.41,3.22-11.33,22.35-22.61,44.72-33.91,67.09-1.54,3.05-3.1,6.09-4.65,9.12-1.29-.44-1.42-1.5-1.82-2.3-12.09-23.79-24.15-47.6-36.22-71.4-.42-.83-.69-1.78-1.56-2.31-.04-.15-.07-.3-.1-.45-.11-.19-.21-.38-.32-.57Z"/>
+      <path class="cls-5" d="M378.76,251.91c2.05-.01,2.57,.55,2.56,2.58-.09,15.03-.08,30.06,0,45.09,.01,1.99-.44,2.6-2.53,2.59-24.39-.08-42.94-.07-67.33-.01-1.7,0-2.57-.5-3.34-2.05-7.57-15.31-15.2-30.59-22.91-45.82-1.04-2.06-.61-2.36,1.49-2.35,16.32,.06,75.75,.07,92.07-.01Z"/>
+      <path class="cls-1" d="M76.07,336.07c3.69,0,7.39,0,11.08,0,1.01,0,2.09-.23,2.09,1.44,0,1.34-.5,1.68-1.79,1.83-3.81,.46-4.87,1.72-4.92,5.55-.05,3.95,.06,7.9-.04,11.85-.04,1.74,.64,2.21,2.27,2.18,4.03-.09,8.07-.11,12.11,0,1.81,.05,2.14-.7,2.11-2.29-.09-4.03-.02-8.07-.03-12.11,0-3.46-.96-4.65-4.36-5.15-1.21-.18-2.11-.21-2.07-1.85,.04-1.89,1.3-1.45,2.33-1.46,7.39-.02,14.77-.02,22.16,0,1.04,0,2.29-.4,2.31,1.48,.02,1.64-.85,1.66-2.1,1.79-4.22,.43-5.19,1.57-5.19,5.71,0,11.25,0,22.5,0,33.75,0,4.4,.94,5.53,5.22,5.93,1.27,.12,2.13,.18,2.05,1.81-.07,1.58-1.05,1.5-2.11,1.5-7.47,0-14.94,0-22.41-.01-.98,0-2.12,.3-2.24-1.34-.11-1.48,.5-1.82,1.89-1.99,3.54-.44,4.52-1.69,4.52-5.27,0-4.98-.06-9.96,.03-14.94,.03-1.6-.51-2.07-2.06-2.04-4.12,.09-8.24,.08-12.36,0-1.59-.03-2.08,.57-2.06,2.11,.07,4.98-.03,9.96,.05,14.94,.05,3.47,1.28,4.83,4.72,5.21,1.31,.14,2.05,.32,1.98,1.89-.07,1.65-1.13,1.42-2.14,1.42-7.47,0-14.94,0-22.41,0-1.05,0-2.05,.14-2.1-1.47-.05-1.59,.74-1.71,2.03-1.84,4.05-.4,4.99-1.6,4.98-5.58-.03-11.42-.03-22.84,0-34.26,0-3.89-.93-5.11-4.76-5.52-1.3-.14-2.35-.09-2.25-1.91,.1-1.91,1.42-1.35,2.41-1.36,3.69-.04,7.38-.02,11.08-.02Z"/>
+      <path class="cls-1" d="M288.23,388.04c-7.13,0-14.25,.02-21.38-.02-1.05,0-2.49,.6-2.6-1.46-.11-1.92,1.07-1.69,2.29-1.81,4.19-.41,5.32-1.71,5.32-5.94,0-11.16,0-22.33,0-33.49,0-4.29-1.03-5.48-5.29-5.97-1.21-.14-2.41,.09-2.33-1.82,.08-2.11,1.57-1.43,2.6-1.44,14-.04,27.99,0,41.99-.06,1.9,0,2.52,.49,2.51,2.45-.02,4.63,.24,9.26,.34,13.89,.02,.91,.62,2.19-1.02,2.43-1.51,.23-2.6-.07-3.1-1.8-.96-3.35-2.62-6.34-5.16-8.77-3.96-3.79-8.87-4.66-14.07-4.28-2.22,.16-3.62,1.46-3.61,3.89,.03,4.38,.12,8.76,.06,13.13-.02,1.79,.71,2.2,2.34,2.03,4.31-.47,7.17-2.74,8.43-6.84,.45-1.47,1-2.22,2.63-2.04,2.08,.23,1.22,1.78,1.23,2.76,.08,5.41,.05,10.82,.03,16.23,0,.99,.26,2.14-1.37,2.23-1.32,.07-2.05-.37-2.43-1.7-1.2-4.25-3.98-6.67-8.43-7.14-1.7-.18-2.5,.27-2.46,2.2,.12,4.89,.02,9.79,.05,14.68,.02,3.27,1.36,4.6,4.7,4.78,9.1,.5,15.92-4.39,19.14-13.69,.29-.84,.19-1.92,1.33-2.32,1.88-.66,2.97,.13,2.91,2.15-.14,5.06-.34,10.12-.38,15.17-.02,1.91-.52,2.67-2.64,2.63-7.21-.15-14.42-.06-21.64-.06Z"/>
+      <path class="cls-1" d="M367.98,388.04c-3.78,0-7.56-.04-11.34,.02-1.24,.02-1.93-.22-1.9-1.67,.02-1.22,.45-1.53,1.65-1.66,5.45-.6,5.52-.88,2.61-5.55-1.82-2.91-3.56-5.87-5.22-8.88-.97-1.76-1.59-1.56-2.57-.02-1.85,2.89-3.84,5.69-5.76,8.54-2.47,3.65-1.82,5.05,2.53,5.81,1.05,.18,2.83-.58,2.8,1.66-.02,1.13-.29,1.77-1.58,1.76-6.27-.03-12.54-.02-18.81-.01-.75,0-1.44-.1-1.45-1.03-.01-.81-.4-2.06,.68-2.23,8.53-1.36,11.7-8.68,16.19-14.47,4.53-5.84,4.45-5.9,.57-12.33-2.35-3.9-4.67-7.81-7.06-11.68-1.91-3.1-3.96-6.08-7.88-6.91-1.36-.29-1.03-1.39-1.03-2.28,0-1.15,.9-1.05,1.67-1.05,7.47,0,14.94,0,22.42,0,1.03,0,1.85,.03,1.87,1.44,.01,1.3-.4,1.76-1.77,1.84-3.95,.23-4.45,1.11-2.61,4.54,1.5,2.8,3.18,5.5,4.74,8.26,.6,1.06,1.12,1.17,1.83,.12,2.03-2.98,4.17-5.89,6.09-8.94,1.35-2.14,.72-3.25-1.79-3.79-.42-.09-.85-.2-1.27-.2-1.3,.02-1.53-.72-1.53-1.83,0-1.18,.62-1.45,1.62-1.44,5.75,.01,11.51,.02,17.26,0,1.13,0,1.51,.49,1.49,1.56-.02,.98-.2,1.62-1.39,1.7-4.8,.33-7.96,3.11-10.53,6.95-2.24,3.35-4.7,6.56-7.16,9.76-.85,1.1-1,1.96-.24,3.2,4.44,7.25,8.79,14.55,13.18,21.83,1.2,1.99,3.09,2.9,5.27,3.34,1.3,.26,2.23,.68,2.04,2.32-.21,1.83-1.54,1.29-2.53,1.3-3.69,.05-7.39,.02-11.08,.02Z"/>
+      <path class="cls-1" d="M24.91,336.07c7.39,0,14.78,.05,22.17-.04,1.8-.02,2.35,.52,2.32,2.33-.08,4.46,.12,8.93,.07,13.39-.01,.99,.88,2.59-1.13,2.85-1.69,.22-2.88-.06-3.3-2.17-.52-2.61-1.75-5.02-3.34-7.19-1.96-2.67-4.53-4.32-7.79-5.08-1.98-.46-2.54-.02-2.52,2.02,.09,9.62,.04,19.25,.04,28.87,0,2.49,.15,5-.03,7.47-.39,5.22,1.83,5.58,5.83,6.24,.78,.13,1.95-.42,2.25,.68,.34,1.25,.5,2.61-1.61,2.6-8.76-.04-17.53-.03-26.29,0-1.13,0-1.73-.25-1.77-1.56-.04-1.42,.55-1.72,1.83-1.74,1.27-.02,2.56-.28,3.8-.59,1.88-.46,2.98-1.69,2.98-3.68,.01-12.97,0-25.95,.03-38.92,0-1.72-.88-1.73-2.16-1.51-4.4,.78-7.47,3.35-9.5,7.19-.92,1.73-1.77,3.58-2.19,5.47-.46,2.08-1.76,2-3.25,1.89-1.85-.14-1.24-1.59-1.22-2.56,.08-4.63,.35-9.26,.34-13.89,0-1.82,.72-2.13,2.29-2.11,7.39,.06,14.78,.02,22.17,.03Z"/>
+      <path class="cls-1" d="M173.86,388.04c-3.95,0-7.9-.04-11.85,.02-1.3,.02-1.86-.34-1.84-1.74,.01-1.31,.6-1.66,1.74-1.54,.08,0,.17,0,.26,0,5.82-.18,6.17-1.29,4.29-6.88-1.86-5.57-4.9-8.17-10.81-6.91-.66,.14-1.38-.04-2.06,.03-2.19,.21-5.19-1.07-6.4,.58-1.91,2.61-3.15,5.9-3.52,9.28-.22,2.01,.85,3.32,2.82,3.66,1.34,.23,2.73,.21,4.1,.22,1.06,0,1.31,.56,1.28,1.47-.03,.88,.06,1.79-1.24,1.79-6.18,0-12.37,0-18.55,0-.85,0-1.26-.43-1.24-1.27,.03-.83-.26-1.83,.88-2.15,5.01-1.4,6.92-5.51,8.7-9.78,5.2-12.51,10.46-25,15.65-37.52,.58-1.4,1.26-2.19,2.98-2.15,1.63,.03,2.44,.58,3.07,2.05,6.12,14.27,12.31,28.5,18.46,42.76,1.01,2.34,2.51,4.12,5.14,4.58,1.25,.22,2.05,.58,1.92,2.11-.15,1.82-1.45,1.38-2.47,1.39-3.78,.04-7.56,.01-11.34,.01Zm-18.99-36.65c-2.08,5.06-3.82,9.32-5.59,13.58-.44,1.07-.22,1.64,1.03,1.63,3.09-.02,6.17-.02,9.26,0,1.15,0,1.62-.44,1.14-1.57-1.84-4.31-3.69-8.62-5.84-13.63Z"/>
+      <path class="cls-1" d="M213.62,388.03c-3.95,0-7.9-.01-11.86,0-1.09,0-2.05,.06-2.06-1.51,0-1.36,.52-1.68,1.82-1.79,4.77-.41,5.71-1.52,5.71-6.34,0-11,0-21.99,0-32.99,0-4.45-1.05-5.68-5.43-6.08-1.27-.12-2.12-.17-2.1-1.79,.02-1.88,1.29-1.46,2.33-1.46,7.73-.02,15.46-.02,23.2,0,1.03,0,2.32-.4,2.38,1.46,.05,1.64-.87,1.67-2.11,1.79-4.47,.44-5.34,1.53-5.33,6.06,.02,11.17,.18,22.34-.08,33.5-.11,4.63,1.98,5.36,5.13,5.84,1.16,.17,2.49-.19,2.38,1.77-.12,1.97-1.52,1.5-2.63,1.51-3.78,.04-7.56,.01-11.34,.01Z"/>
+      <path class="cls-1" d="M180.57,49.04c.11,.19,.21,.38,.32,.57-.16,.13-.31,.26-.47,.39-.34,.04-.68,.11-1.02,.11-42.98,0-85.95-.02-128.93-.03,.49-1.63,1.85-.94,2.83-.95,24.13-.04,48.27-.02,72.4-.03,18.29,0,36.58-.04,54.88-.07Z"/>
+      <path class="cls-5" d="M7.93,252.01c-.59,0-1.19,.1-1.78,.16-1.5-.05-3.01-.1-4.51-.13-.79-.02-1.6-.01-1.39,1.18-.05,5.14-.07,37.18-.02,48.07,.39,.08,.62,.32,.71,.7,13.1,.05,136.04,.04,147.59,.06-.05-.11-.06-.22-.03-.33,.09-.26,.22-.32,.4-.07,.83-.33,16.17-31.18,23.56-45.89,.6-1.2,1.65-2.22,1.73-3.67-10.64,.02-137.37-.07-166.26-.07Z"/>
+      <path class="cls-1" d="M.23,301.27c.39,.08,.62,.32,.71,.7-.47,0-.71-.23-.71-.7Z"/>
+      <path class="cls-4" d="M180.42,50c.16-.13,.32-.26,.47-.39,.03,.15,.06,.3,.1,.45-.19-.02-.38-.04-.57-.06Z"/>
+      <path class="cls-1" d="M148.49,301.71c.09-.26,.22-.32,.4-.07,0,0-.19,.07-.19,.07h-.21Z"/>
+    </g>
+  </g>
+</svg>

文件差異過大導致無法顯示
+ 3 - 0
src/packages/tss/assets/themes/base/iconfont.less


+ 8 - 4
src/packages/tss/assets/themes/default/default.less

@@ -17,9 +17,9 @@
 
     /* 导航栏 */
     --navbar-height: 44px;
-    --navbar-color: #fff;
-    --navbar-background: #c1a36b;
-    --navbar-backbutton-color: #fff;
+    --navbar-color: #3B3D3E;
+    --navbar-background: #fff;
+    --navbar-backbutton-color: #3B3D3E;
 
     /* 标签栏 */
     --tabbar-background: #fff;
@@ -32,7 +32,7 @@
     /* Vant-Button */
     --van-button-border-width: 0;
     --van-button-primary-background: #72533B;
-    --van-button-danger-background: #c19239;
+    --van-button-danger-background: #305C3E;
 
     /* Vant-Checkbox */
     --van-checkbox-checked-icon-color: #DD364A !important;
@@ -42,6 +42,10 @@
 
     --van-dialog-confirm-button-text-color: #DD364A;
 
+    .app-view {
+        background-color: #EEF6F3;
+    }
+
     .app-tabs {
         .tabs {
             flex-wrap: wrap;

+ 4 - 3
src/packages/tss/assets/themes/global/global.less

@@ -233,7 +233,7 @@
 
     .goods {
         background-color: #fff;
-        box-shadow: 0 0 16px 0 #efefef;
+        box-shadow: 0px 2px 5px 1px rgba(52,35,23,0.15);
         border-radius: 8px;
         overflow: hidden;
 
@@ -270,6 +270,7 @@
 
             &__title {
                 font-size: 13px;
+                font-weight: bold;
                 margin-bottom: 5px;
             }
 
@@ -280,14 +281,14 @@
             }
 
             &__price {
-                color: #f2270c;
+                color: #C19239;
 
                 .unit {
                     font-size: 12px;
                 }
 
                 .integer {
-                    font-size: 15px;
+                    font-size: 16px;
                 }
             }
         }

+ 1 - 0
src/packages/tss/assets/themes/style.less

@@ -1,4 +1,5 @@
 @import '@mobile/assets/themes/base/reset.less';
+@import './base/iconfont.less';
 @import './global/global.less';
 @import './default/default.less';
 @import './light/light.less';

+ 3 - 3
src/packages/tss/views/home/index.less

@@ -1,13 +1,13 @@
 .home {
     .app-tabbar {
-        background: var(--tabbar-background) !important;
+        background: #DDF1E5 !important;
         margin-top: auto;
 
         .app-iconfont {
-            color: var(--tabbar-icon);
+            color: rgb(192,190,199);
 
             &.is-active {
-                color: var(--tabbar-icon-active);
+                color: rgb(48,92,62);
             }
         }
     }

+ 139 - 23
src/packages/tss/views/home/main/index.less

@@ -1,38 +1,131 @@
 @import '@mobile/assets/themes/base/mixin.less';
 
 .home-main {
-    --van-search-padding: 0 10px 10px 10px;
-
-    &__banner {
-        position: relative;
-        overflow: hidden;
-        padding: 0 10px;
-
-        &::before {
-            content: '';
-            width: 140%;
-            height: 120px;
-            position: absolute;
-            left: -20%;
-            top: 0;
-            border-radius: 0 0 50% 50%;
-            background-color: var(--navbar-background);
+    --box-shadow: 0px 2px 5px 1px rgba(52, 35, 23, 0.15);
+
+    &__header {
+        background-repeat: no-repeat;
+        background-size: 100% auto;
+        background-position: center top;
+
+        .searchbar {
+            --van-search-content-background: rgba(255, 255, 255, .8);
+
+            display: flex;
+            align-items: center;
+            padding: 0 10px;
+
+            &::before {
+                content: '';
+                width: 32px;
+                height: 32px;
+                background-image: url(../../../assets/images/logo.svg);
+                background-repeat: no-repeat;
+                background-size: contain;
+            }
+
+            >.van-search {
+                flex: 1;
+
+                input::placeholder {
+                    color: #b4b4b4;
+                }
+            }
+
+            >.van-icon {
+                color: #fff;
+                font-size: 20px;
+            }
+        }
+    }
+
+    &__container {
+        background-repeat: no-repeat;
+        background-size: 100% auto;
+        background-position: center -54px;
+        padding-top: 120px;
+    }
+
+    &__notice {
+        font-size: 12px;
+
+        .app-block__wrapper {
+            background-color: transparent;
         }
 
-        .app-banner {
-            position: relative;
-            z-index: 1;
-            border-radius: 10px;
-            overflow: hidden;
+        h4 {
+            display: flex;
+            justify-content: space-between;
+            color: #fff;
+            background-color: rgba(255, 255, 255, .5);
+            border-radius: 12px;
+            padding: 5px 10px;
+
+            span {
+                &:first-child {
+                    text-shadow: 0 1px #666;
+                }
+            }
+        }
+    }
+
+    &__iconbar {
+        .app-block__wrapper {
+            box-shadow: var(--box-shadow)
+        }
+
+        ul {
+            display: flex;
+            padding: 20px 0;
+
+            li {
+                flex: 1;
+                display: flex;
+                flex-direction: column;
+                align-items: center;
+                text-align: center;
+                font-size: 13px;
+                font-weight: 500;
+
+                &::before {
+                    content: '';
+                    width: 48px;
+                    height: 48px;
+                    background-size: contain;
+                    background-repeat: no-repeat;
+                    background-position: center;
+                    margin-bottom: 5px;
+                }
+
+                &:nth-child(1) {
+                    &::before {
+                        background-image: url(../../../assets/images/icons/gift.svg);
+                    }
+                }
+
+                &:nth-child(2) {
+                    &::before {
+                        background-image: url(../../../assets/images/icons/cart.svg);
+                    }
+                }
+
+                &:nth-child(3) {
+                    &::before {
+                        background-image: url(../../../assets/images/icons/car.svg);
+                    }
+                }
+            }
         }
     }
 
     &__titlebar {
+        padding: 10px;
+
         .van-cell__title {
             display: flex;
             align-items: center;
             line-height: 1;
-            font-size: 16px;
+            font-size: 13px;
             font-weight: bold;
 
             img {
@@ -53,14 +146,37 @@
 
         .van-cell__value {
             flex: none;
-            color: #666;
+            color: #C0BEC7;
+            font-size: 13px;
         }
     }
 
     &__news {
+        .app-block__wrapper {
+            box-shadow: var(--box-shadow)
+        }
+
         .article {
+            &-title {
+                display: flex;
+                align-items: center;
+
+                i {
+                    font-size: 20px;
+                    font-weight: normal;
+                    margin-right: 6px;
+                }
+
+                span {
+                    line-height: 0;
+                    color: #313331;
+                }
+            }
+
             &-item {
                 .van-cell__title {
+                    font-size: 13px;
+
                     span {
                         .mixin-text-overflow()
                     }

+ 59 - 23
src/packages/tss/views/home/main/index.vue

@@ -1,30 +1,50 @@
 <template>
   <app-view class="home-main">
     <template #header>
-      <app-navbar :title="globalStore.getSystemInfo('appName')" :show-back-button="false">
-        <template #footer>
+      <app-statusbar class="home-main__header" :style="{ backgroundImage: `url(${getFileUrl(topBanners)})` }">
+        <div class="searchbar">
           <Search shape="round" background="transparent" :placeholder="$t('tss.tips1')"
             @click="$router.push({ name: 'search' })" />
-        </template>
-      </app-navbar>
+          <Icon name="bullhorn-o" :dot="noticeStore.unreadList.length > 0" />
+        </div>
+      </app-statusbar>
     </template>
-    <div class="home-main__banner">
-      <Banner :data-list="topBanners" />
-    </div>
     <PullRefresh class="home-main__container" v-model="refreshing" @refresh="onRefresh"
       :pulling-text="$t('common.pulling-text')" :loosing-text="$t('common.loosing-text')"
-      :loading-text="$t('common.loading-text')" :success-text="$t('common.success-text')">
-      <app-block>
-        <Cell :value="$t('common.more')" :to="{ name: 'notice-list' }" icon="volume" is-link>
-          <template #title>
-            <Badge :offset="[10, 8]" :dot="noticeStore.unreadList.length > 0">{{ $t('routes.notice') }}</Badge>
-          </template>
-        </Cell>
+      :loading-text="$t('common.loading-text')" :success-text="$t('common.success-text')"
+      :style="{ backgroundImage: `url(${getFileUrl(topBanners)})` }">
+      <app-block class="home-main__notice">
+        <h4 @click="$router.push({ name: 'notice-list' })">
+          <span>{{ $t('routes.notice') }}</span>
+          <span>{{ $t('common.more') }}></span>
+        </h4>
+      </app-block>
+      <app-block class="home-main__iconbar">
+        <ul>
+          <li>
+            <span>新人福利</span>
+          </li>
+          <li>
+            <span>了解商城</span>
+          </li>
+          <li>
+            <span>物流服务</span>
+          </li>
+        </ul>
       </app-block>
       <app-block class="home-main__news">
         <CellGroup class="article">
-          <Cell class="home-main__titlebar" :title="$t('routes.news')" :value="$t('common.more')" icon="fire"
-            :to="{ name: 'news-list' }" is-link />
+          <Cell class="home-main__titlebar" :value="$t('common.more')" :to="{ name: 'news-list' }" is-link>
+            <template #title>
+              <div class="article-title">
+                <i class="g-icon g-icon-hot"></i>
+                <span>{{ $t('routes.news') }}</span>
+              </div>
+            </template>
+          </Cell>
+          <template v-for="(item, index) in newsList" :key="index">
+            <Cell class="article-item" :title="item.title" :to="{ name: 'news-detail', query: { id: item.id } }" />
+          </template>
         </CellGroup>
       </app-block>
       <ProductList :data-list="goodsList" />
@@ -34,21 +54,22 @@
 
 <script lang="ts" setup>
 import { shallowRef, onMounted, onActivated } from 'vue'
-import { Cell, CellGroup, PullRefresh, Badge, Search } from 'vant'
+import { Cell, CellGroup, PullRefresh, Search, Icon } from 'vant'
+import { getFileUrl } from '@/filters'
 import { queryImageConfigs } from '@/services/api/common'
+import { queryNewTitles } from '@/services/api/news'
 import { queryTouristGoods, queryTouristQuoteDay } from '@/services/api/goods'
-import { useLoginStore, useNoticeStore, useGlobalStore, useFuturesStore } from '@/stores'
-import Banner from '@mobile/components/base/banner/index.vue'
+import { useLoginStore, useNoticeStore, useFuturesStore } from '@/stores'
 import ProductList from '../../product/list/components/waterfall-list/index.vue'
 
 const noticeStore = useNoticeStore()
 const loginStore = useLoginStore()
-const globalStore = useGlobalStore()
 const futuresStore = useFuturesStore()
 
 const refreshing = shallowRef(false) // 是否处于加载中状态
-const topBanners = shallowRef<string[]>([]); // 轮播图列表
+const topBanners = shallowRef(''); // 背景图片
 const goodsList = shallowRef<Model.GoodsQuote[]>([])
+const newsList = shallowRef<Model.NewTitlesRsp[]>([]) // 资讯列表
 
 // 下拉刷新
 const onRefresh = () => {
@@ -58,7 +79,10 @@ const onRefresh = () => {
         imageType: 1,
       }
     }).then((res) => {
-      topBanners.value = res.data.map((e) => e.imagepath)
+      const [firstItem] = res.data
+      if (firstItem) {
+        topBanners.value = firstItem.imagepath
+      }
     })
   }
 }
@@ -73,7 +97,7 @@ const getGoodsList = () => {
 onMounted(() => {
   onRefresh()
 
-  if (!loginStore.token) {
+  if (!loginStore.userId) {
     // 获取游客商品列表
     queryTouristGoods({
       data: {
@@ -100,6 +124,18 @@ onMounted(() => {
       }
     })
   }
+
+  // 市场资讯
+  queryNewTitles({
+    data: {
+      page: 1,
+      pagesize: 3,
+    }
+  }).then((res) => {
+    newsList.value = res.data
+  }).finally(() => {
+    refreshing.value = false
+  })
 })
 
 onActivated(() => getGoodsList())

+ 1 - 1
src/packages/tss/views/mine/index.less

@@ -1,7 +1,7 @@
 @import '@mobile/assets/themes/base/mixin.less';
 
 .mine {
-    @backgroundImage: linear-gradient(var(--navbar-background), var(--navbar-background) 150px, transparent 150px);
+    @backgroundImage: linear-gradient(#0C5824, #0C5824 150px, transparent 150px);
 
     .app-navbar {
         background-image: @backgroundImage;

+ 1 - 1
src/packages/tss/views/product/list/components/waterfall-list/index.vue

@@ -9,7 +9,7 @@
                 <div class="goods-info">
                     <div class="goods-info__title">{{ item.goodscode }}</div>
                     <div class="goods-info__price">
-                        <span :class="['integer', item.askColor]">{{ handleNumberValue(formatDecimal(item.ask, item.decimalplace)) }}</span>
+                        <span class="integer">{{ handleNumberValue(formatDecimal(item.ask, item.decimalplace)) }}</span>
                     </div>
                 </div>
             </div>

+ 4 - 2
src/stores/modules/global.ts

@@ -15,9 +15,10 @@ export interface SystemInfo {
     modules: ('register' | 'delivery')[]; // 应用包含的模块
     quotationProperties: (keyof Model.QuoteDayRsp)[]; // 盘面可显示的属性
     forcedPasswordChange: boolean; // 首次登录是否强制修改密码
-    registrationCodeRule: -1 | 0 | 1; // 注册编码规则,-1隐藏,0非必填,1必填
-    riskType: 0 | 1 | 2; // 风控类型,1按单风控,2按账户风控
+    registrationCodeRule: -1 | 0 | 1; // 注册编码规则,-1=隐藏,0=非必填,1=必填
+    riskType: 0 | 1 | 2; // 风控类型,1=按单风控,2=按账户风控
     i18nEnabled: boolean; // 是否启用多语言设置
+    priceColorType: 1 | 2; // 行情涨跌颜色类型,1=红涨绿跌,2=绿涨红跌
 }
 
 export const useGlobalStore = defineStore(() => {
@@ -44,6 +45,7 @@ export const useGlobalStore = defineStore(() => {
             registrationCodeRule: 1,
             riskType: 0,
             i18nEnabled: true,
+            priceColorType: 1
         }
     })
 

部分文件因文件數量過多而無法顯示