li.shaoyi 11 月之前
父節點
當前提交
2ea4af8bc2

+ 1 - 1
src/business/login/index.ts

@@ -115,7 +115,7 @@ export function useLogin(persist = false) {
                     GUID: v4(),
                     LoginType: 0,
                     ClientType: payload.clientType,
-                    Version: '2.0.0.4'
+                    Version: '2.0.0.5'
                 })
                 // 首次登录是否强制修改密码
                 forcedPasswordChange = globalStore.getSystemInfo('forcedPasswordChange') && res.HasUpdatedPwd === 0

File diff suppressed because it is too large
+ 0 - 0
src/packages/mobile/assets/themes/base/iconfont.less


+ 16 - 11
src/packages/mobile/components/base/waterfall/flex/index.vue

@@ -14,7 +14,7 @@
 </template>
 
 <script lang="ts" setup>
-import { reactive, shallowRef, computed,  watch, onMounted, onActivated, onDeactivated } from 'vue'
+import { reactive, shallowRef, computed, watch, onMounted, onActivated, onDeactivated } from 'vue'
 
 const props = defineProps({
     //数据列表
@@ -38,8 +38,8 @@ const waterfallRef = shallowRef<HTMLDivElement>()
 
 const state = reactive({
     columns: Array.from<unknown, unknown[]>({ length: props.column }, () => []),
+    currentColumnsIndex: 0, // 当前列索引
     renderedItemCount: 0,
-    loadedImageCount: 0,
     isDeactivated: false
 })
 
@@ -52,8 +52,15 @@ const render = async () => {
     if (props.dataList.length > state.renderedItemCount) {
         const el = waterfallRef.value
         if (el) {
-            const imageElements = el.querySelectorAll('img')
-            const images = Array.from(imageElements).slice(state.loadedImageCount)
+            const columnElements = el.querySelectorAll<HTMLDivElement>('.app-waterfall__column')
+
+            const currentColumnElement = columnElements[state.currentColumnsIndex]
+
+            const lastElement = currentColumnElement?.lastElementChild
+
+            const imageElements = lastElement?.querySelectorAll('img')
+
+            const images = Array.from(imageElements ?? [])
 
             if (images.length) {
                 // 等待所有图片加载完成
@@ -65,16 +72,12 @@ const render = async () => {
                         img.onerror = () => resolve()
                     }
                 })))
-
-                // 更新已加载完成的图片总数
-                state.loadedImageCount += images.length
             }
 
             // 在 keepalive 组件下,如果数据还未全部加载完成之前跳转了页面,这会导致获取不到元素信息,从而影响布局的正常显示
             // 所以需要暂停数据的加载,待页面重新显示后继续渲染
             if (!state.isDeactivated) {
-                const columnElements = el.querySelectorAll<HTMLDivElement>('.app-waterfall__column')
-                const columnHeights = [...columnElements].map((e) => e.offsetHeight)
+                const columnHeights = Array.from(columnElements).map((e) => e.offsetHeight)
 
                 const minHeight = Math.min(...columnHeights) // 获取数组中最小值
                 const columnIndex = columnHeights.findIndex((e) => e === minHeight) // 最小值的索引位置
@@ -85,16 +88,18 @@ const render = async () => {
 
                 // 更新已渲染完成的数据总数
                 state.renderedItemCount++
+                state.currentColumnsIndex = columnIndex
                 requestAnimationFrame(() => render())
             }
         }
     }
 }
 
-// 待优化,未完成
 // watch(() => props.dataList, () => {
+//     state.columns = state.columns.map(() => [])
+//     state.currentColumnsIndex = 0
 //     state.renderedItemCount = 0
-//     state.loadedImageCount = 0
+//     render()
 // })
 
 watch(() => props.dataList.length, () => {

+ 10 - 2
src/packages/sbyj/views/mine/index.vue

@@ -125,6 +125,13 @@
                         <Iconfont icon="g-icon-fwrx">服务热线</Iconfont>
                     </template>
                 </Cell> -->
+                <Cell is-link :to="{ name: 'notice-list' }">
+                    <template #title>
+                        <Badge :offset="[10, 8]" :dot="noticeStore.unreadList.length > 0">
+                            <Iconfont icon="g-icon-caution">通知公告</Iconfont>
+                        </Badge>
+                    </template>
+                </Cell>
                 <Cell is-link :to="{ name: 'mine-setting' }">
                     <template #title>
                         <Iconfont icon="g-icon-setting">设置</Iconfont>
@@ -145,14 +152,14 @@
 
 <script lang="ts" setup>
 import { shallowRef, onActivated, computed } from 'vue'
-import { Cell, CellGroup, Button, Icon } from 'vant'
+import { Cell, CellGroup, Button, Icon,Badge } from 'vant'
 import { fullloading, dialog } from '@/utils/vant'
 import { handlePriceColor, parsePercent } from '@/filters'
 import { useNavigation } from '@mobile/router/navigation'
 import { AuthStatus } from '@/constants/account'
 import { useRequest } from '@/hooks/request'
 import { queryBankAccountSign } from '@/services/api/bank'
-import { useGlobalStore, useLoginStore, useAccountStore, useUserStore, useSBYJOrderStore } from '@/stores'
+import { useGlobalStore,useNoticeStore, useLoginStore, useAccountStore, useUserStore, useSBYJOrderStore } from '@/stores'
 import eventBus from '@/services/bus'
 import Iconfont from '@/components/base/iconfont/index.vue'
 import { queryTencentUsereSignRecords } from '@/services/api/account'
@@ -160,6 +167,7 @@ import { queryTencentUsereSignRecords } from '@/services/api/account'
 const { router, routerTo } = useNavigation()
 const globalStore = useGlobalStore()
 const loginStore = useLoginStore()
+const noticeStore = useNoticeStore()
 const userStore = useUserStore()
 const sbyjOrderStore = useSBYJOrderStore()
 const accountStore = useAccountStore()

二進制
src/packages/sjgj/assets/images/home-bg.png


二進制
src/packages/sjgj/assets/images/home-header.png


+ 108 - 0
src/packages/sjgj/assets/images/home-logo.svg

@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 137.15 76.03">
+  <defs>
+    <style>
+      .cls-1, .cls-2 {
+        fill: #fff;
+      }
+
+      .cls-2 {
+        fill-rule: evenodd;
+      }
+
+      .cls-3 {
+        filter: url(#drop-shadow-1);
+      }
+    </style>
+    <filter id="drop-shadow-1" filterUnits="userSpaceOnUse">
+      <feOffset dx=".33" dy=".33"/>
+      <feGaussianBlur result="blur" stdDeviation="0"/>
+      <feFlood flood-color="#663e22" flood-opacity=".75"/>
+      <feComposite in2="blur" operator="in"/>
+      <feComposite in="SourceGraphic"/>
+    </filter>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <g class="cls-3">
+      <g>
+        <g>
+          <polygon class="cls-2" points="76.26 11.16 61.16 11.16 57.7 17.44 79.73 17.44 76.26 11.16"/>
+          <path class="cls-2" d="M84.77,0H52.66c-2.94,0-5.35,2.41-5.35,5.35V37.46c0,2.94,2.41,5.35,5.35,5.35h32.11c2.94,0,5.35-2.41,5.35-5.35V5.35c0-2.94-2.41-5.35-5.35-5.35ZM52.08,18.57l5.88-10.66c.38-.7,1.12-1.13,1.91-1.13h17.68c.8,0,1.53,.43,1.91,1.13l5.88,10.66c.37,.68,.36,1.5-.03,2.17-.39,.67-1.11,1.08-1.88,1.08h-29.44c-.77,0-1.49-.41-1.88-1.08-.39-.67-.41-1.49-.03-2.17Zm33.49,9.8c-2.08,3.76-5.33,6.66-9.16,8.34-3.74,1.64-8.03,2.1-12.3,1.04-2.62-.65-5.02-1.82-7.09-3.41-2.1-1.61-3.86-3.64-5.15-5.98-.66-1.2-.22-2.71,.98-3.37,1.2-.66,2.71-.22,3.37,.98,.96,1.73,2.26,3.23,3.81,4.42,1.54,1.18,3.32,2.05,5.27,2.53,3.17,.78,6.35,.44,9.13-.77,2.84-1.24,5.25-3.39,6.79-6.18,.66-1.2,2.17-1.64,3.37-.98,1.2,.66,1.64,2.17,.98,3.37Z"/>
+        </g>
+        <g>
+          <g>
+            <rect class="cls-1" x=".1" y="59.4" width="3.6" height="1.12"/>
+            <path class="cls-2" d="M2.11,53.56h-.74l1.81-3.31H1.82l-1.58,2.91c-.16,.3-.24,.58-.24,.85,0,.2,.06,.35,.2,.47,.15,.14,.31,.2,.5,.2h.78l-1.24,2.21c-.13,.23-.19,.48-.19,.76,0,.35,.2,.56,.6,.65,.09,.02,.28,.03,.59,.03H3.59v-1.13H1.44l2.33-4.1h-1.39s-.27,.46-.27,.46Z"/>
+            <path class="cls-2" d="M8.34,50.23h-1.13v.59h-2.92v1.11h2.92v5.03h-1.39c-.23,0-.35-.09-.35-.26v-.19s0-3.57,0-3.57h-1.13s0,4.1,0,4.1c0,.29,.08,.52,.25,.7,.22,.23,.54,.34,.98,.34h1.64v1.32c0,.76,.37,1.15,1.12,1.15h3.03v-1.13h-2.67c-.12,0-.19,0-.22-.03-.09-.04-.13-.13-.13-.27v-1.05h1.94c.35,0,.61-.13,.8-.4,.14-.19,.21-.44,.21-.72v-4.02h-1.11v3.59c0,.28-.12,.42-.35,.42h-1.48s0-5.03,0-5.03h3.02v-1.11h-3.02v-.59Z"/>
+          </g>
+          <path class="cls-2" d="M23.03,51.3c-.11-.26-.19-.43-.23-.49-.09-.14-.21-.26-.37-.37-.15-.09-.41-.14-.79-.14h-6.44c-.38,0-.66,.09-.84,.26-.16,.14-.34,.46-.55,.95-.24,.57-.44,.89-.59,.98-.08,.04-.21,.07-.37,.07v1.09l.42-.05v.6h4.66v1.34h-4.66v1.13h4.66v2.87h-3.36v-1.9h-1.12v1.9h-.59v1.13h11.28v-1.13h-.57v-1.9h-1.13v1.9h-3.37v-2.87h4.65v-1.13h-4.65v-1.34h4.65v-.6l.42,.05v-1.09c-.26-.02-.43-.08-.53-.19-.14-.15-.32-.5-.54-1.06Zm-8.8,1.76c.12-.19,.27-.46,.45-.82,.18-.36,.3-.58,.35-.64,.09-.1,.3-.15,.62-.15h5.73c.25,0,.41,.04,.49,.11,.09,.09,.19,.24,.28,.44,.2,.43,.38,.79,.55,1.06H14.23Z"/>
+          <g>
+            <path class="cls-2" d="M36.42,50.72c-.31-.26-.73-.4-1.27-.4h-7.83c-.51,0-.91,.15-1.2,.44-.3,.3-.45,.68-.45,1.13v8.76h1.13v-8.46c0-.5,.26-.75,.78-.75h7.38c.53,0,.79,.25,.79,.75v6.74c0,.15-.06,.29-.2,.41-.14,.12-.29,.18-.46,.18h-.86v1.12h1.04c.51,0,.91-.16,1.21-.47,.28-.3,.41-.66,.41-1.09v-7.16c0-.52-.16-.92-.48-1.21Z"/>
+            <path class="cls-2" d="M30.91,52.64h-1.08c-.3,1.19-.54,2.01-.71,2.47-.17-.5-.4-1.32-.7-2.47h-1.07c.19,.72,.38,1.4,.57,2.04,.16,.52,.37,1.07,.63,1.65-.26,.44-.66,.88-1.19,1.32v1.31c.41-.29,.74-.54,.96-.76,.26-.24,.53-.54,.81-.92,.59,.77,1.18,1.33,1.77,1.68v-1.27c-.47-.43-.88-.88-1.23-1.36,.3-.56,.56-1.25,.78-2.05,.21-.78,.36-1.32,.45-1.64Z"/>
+            <path class="cls-2" d="M35.04,57.66c-.5-.4-.9-.84-1.21-1.34,.31-.7,.57-1.41,.77-2.12,.12-.4,.26-.92,.43-1.57h-1.06c-.47,1.65-.71,2.49-.72,2.52-.25-.83-.48-1.67-.69-2.52h-1.07c.24,.93,.41,1.57,.52,1.93,.12,.41,.35,1,.66,1.75-.28,.46-.68,.91-1.2,1.35v1.29c.66-.41,1.25-.97,1.78-1.67,.14,.21,.35,.46,.64,.74,.37,.38,.75,.69,1.14,.94v-1.31Z"/>
+          </g>
+          <path class="cls-2" d="M48.61,51.31c-.11-.26-.19-.43-.23-.49-.09-.14-.21-.26-.37-.37-.15-.09-.41-.14-.79-.14h-6.45c-.38,0-.66,.09-.84,.26-.16,.14-.34,.46-.55,.95-.24,.57-.44,.89-.59,.98-.08,.04-.21,.07-.37,.07v1.09l.42-.05v.6h4.66v1.34h-4.66v1.13h4.66v2.88h-3.37v-1.9h-1.12v1.9h-.59v1.13h11.29v-1.13h-.57v-1.9h-1.13v1.9h-3.37v-2.88h4.65v-1.13h-4.65v-1.34h4.65v-.6l.42,.05v-1.09c-.26-.02-.43-.08-.53-.19-.14-.15-.32-.5-.54-1.06Zm-8.81,1.76c.12-.19,.27-.46,.45-.82,.18-.36,.3-.58,.35-.64,.09-.1,.3-.15,.62-.15h5.74c.25,0,.41,.04,.49,.11,.09,.09,.19,.24,.28,.44,.2,.43,.38,.79,.55,1.06h-8.48Z"/>
+          <g>
+            <path class="cls-2" d="M53.69,54.61h1.26v-1.13h-3.53v1.13h1.09v.95h-1.43v1.13h1.43v3.96c.85-.29,1.7-.7,2.55-1.23v-.93c-.43,.26-.88,.49-1.37,.69v-2.49h1.42v-1.13h-1.42v-.95Z"/>
+            <path class="cls-2" d="M56.92,55.53h3.19c1.08,0,1.6-.52,1.57-1.57v-3.92h-5.98v10.61c.95-.29,1.9-.7,2.85-1.23v-.93c-.65,.33-1.19,.56-1.62,.69v-3.64Zm0-4.66h3.63v1.32h-3.63v-1.32Zm0,2.45h3.63v.54c.03,.56-.23,.82-.78,.78h-2.85v-1.32Z"/>
+            <path class="cls-2" d="M53.57,50.04h-.18c-.38,0-.66,.09-.84,.26-.16,.14-.34,.46-.55,.95-.24,.57-.44,.89-.59,.98-.08,.04-.21,.07-.37,.07v1.09c.27-.03,.53-.12,.77-.25l.22-.13c.32-.19,.58-.46,.75-.79,.02-.03,.03-.07,.05-.1h2.41v-1.13h-1.66v-.93Z"/>
+            <path class="cls-2" d="M60.21,58.35c1.05-.49,1.75-1.29,2.11-2.4h-1.13c-.26,.78-.74,1.37-1.42,1.77-.29-.46-.56-1.05-.78-1.77h-1.18c.65,2.37,2.2,3.94,4.66,4.69v-.79c-.99-.45-1.74-.95-2.26-1.5Z"/>
+          </g>
+          <g>
+            <path class="cls-2" d="M78.77,50.03c-.36,1.86-1.18,3.19-2.45,3.97v.74c.56-.2,1.05-.44,1.47-.74v6.79h1.23v-8.07c.39-.59,.74-1.49,1.03-2.7h-1.28Z"/>
+            <path class="cls-2" d="M84.42,50.03h-1.28c-.62,1.64-1.8,2.93-3.53,3.88v.78c1.93-.75,3.32-1.81,4.17-3.19,.85,1.37,2.24,2.44,4.17,3.19v-.78c-1.73-.95-2.91-2.24-3.53-3.88Z"/>
+            <rect class="cls-1" x="84.81" y="54.26" width="1.23" height="6.39"/>
+            <path class="cls-2" d="M82.6,54.26h-1.28v2.81c.07,1.34-.36,2.31-1.28,2.89v.88c1.83-.75,2.68-2.11,2.55-4.07v-2.51Z"/>
+          </g>
+          <g>
+            <path class="cls-2" d="M74.91,54.81v-.78h0v-.02s-5.3,0-5.3,0v-3.11h4.02v.93c.03,.46-.2,.69-.69,.69h-1.37v.78h1.67c1.08,.03,1.6-.51,1.57-1.62v-1.67h-6.43v10.64h1.23v-5.51h4.08c-.16,1.16-.52,2.1-1.09,2.82-.49-.69-.9-1.5-1.23-2.45h-1.13c.36,1.34,.9,2.4,1.62,3.19-.46,.36-1.08,.72-1.86,1.08v.78c1.01-.39,1.86-.82,2.55-1.28,.58,.45,1.44,.88,2.57,1.27v-.79c-.84-.36-1.47-.73-1.89-1.12,.88-.85,1.44-2.13,1.67-3.83Z"/>
+            <path class="cls-2" d="M66.72,50.03h-1.23v1.24h-1.48v1.13h1.48v2.72c-.43,.1-.92,.18-1.47,.25v1.13c.42-.1,.92-.21,1.47-.34v3.14c0,.33-.2,.49-.59,.49h-.59v.88h1.08c.88,0,1.32-.44,1.32-1.32v-3.58c.39-.13,.8-.29,1.23-.49v-.83l-1.23,.39v-2.42h1.29v-1.13h-1.29v-1.24Z"/>
+          </g>
+          <path class="cls-2" d="M125.12,51.53h-.1v-.02s-4.27,0-4.27,0v-1.49h-1.37v1.49h-4.37v5.95h0s4.37,0,4.37,0v3.14h1.37v-3.14h3.1v-.02c.87-.09,1.3-.68,1.27-1.75v-4.17Zm-5.74,4.81h-3.09v-3.7h3.09v3.7Zm4.46-.6c0,.26-.05,.46-.16,.6h-2.93v-3.7h3.09v3.11Z"/>
+          <g>
+            <path class="cls-2" d="M126.41,58.74h1.28c.36-2.32,.56-4.56,.59-6.72h-1.03c-.13,2.42-.41,4.66-.83,6.72Z"/>
+            <path class="cls-2" d="M135.04,58.05h-1.08v.64c0,.59-.29,.88-.88,.88h-2.01c-.72,0-1.06-.33-1.03-.98v-8.19h-1.37v8.19c-.03,1.24,.59,1.83,1.86,1.77h2.85c1.14,.03,1.7-.49,1.67-1.57v-.74Z"/>
+            <path class="cls-2" d="M135.98,51.92h-1.03c.42,2.16,.72,4.41,.88,6.77h1.28c-.23-2.29-.61-4.55-1.13-6.77Z"/>
+            <path class="cls-2" d="M133.57,54.91c-.18-1.74-.45-3.37-.81-4.9h-1.05c.3,1.53,.48,3.16,.54,4.9h1.32Z"/>
+          </g>
+          <g>
+            <path class="cls-2" d="M92.34,52.62c-.16,.39-.29,.67-.39,.83h-.15c-.49,.07-.93,.08-1.32,.05,.88-.95,1.59-2.17,2.11-3.68h-1.32c-.39,1.37-1.01,2.6-1.86,3.68v.88c.46,.03,.96,.03,1.52,0h.54c-.46,.72-1.08,1.49-1.86,2.31v.93c1.57,.03,2.81-.07,3.73-.29v-.88c-.69,.16-1.52,.25-2.5,.25,1.24-1.11,2.19-2.58,2.85-4.41h-1.18c-.03,.1-.08,.21-.15,.34Z"/>
+            <polygon class="cls-2" points="97.74 49.78 96.41 49.78 96.41 50.87 93.52 50.87 93.52 52 96.41 52 96.41 53.92 93.91 53.92 93.91 55.05 100.35 55.05 100.35 53.92 97.74 53.92 97.74 52 100.73 52 100.73 50.87 97.74 50.87 97.74 49.78"/>
+            <path class="cls-2" d="M89.35,59.15v.88c1.44,0,2.81-.15,4.12-.44v-.88c-1.31,.33-2.68,.47-4.12,.44Z"/>
+            <path class="cls-2" d="M94.11,56.1h-.05v4.56h4.41c.11,0,.21,0,.31,0h.09c.87-.1,1.29-.62,1.27-1.56v-1.87h0v-1.13h-6.04Zm4.73,3.43h-3.6v-2.3h3.68v1.82c.01,.2-.02,.36-.08,.48Z"/>
+          </g>
+          <g>
+            <path class="cls-2" d="M110.78,57.33c.95-.03,1.41-.51,1.37-1.42v-3.38h-8.73v4.81h1.42v.59h-2.75v.78h2.65c-.13,.56-.67,1.01-1.62,1.37v.78c1.73-.43,2.7-1.15,2.89-2.16h3.48v1.96h1.28v-1.96h2.65v-.78h-2.65v-.59Zm-6.13-4.12h6.23v.74h-6.23v-.74Zm0,1.32h6.23v.74h-6.23v-.74Zm4.86,3.39h-3.38v-.59h3.38v.59Zm.74-1.33h-5.59v-.69h6.23v.05c.03,.46-.18,.67-.64,.64Z"/>
+            <path class="cls-2" d="M107.49,52.38c.79-.22,1.37-.52,1.75-.89h1.31c.08,.26,.15,.53,.22,.79h1.08c-.04-.26-.12-.53-.22-.79h1.73v-.39h0v-.69h0v-.05h-3.42s0-.04,.02-.06c.05-.12,.09-.24,.12-.37,.02-.08,.04-.15,.05-.21h-1.13c-.23,.95-.74,1.62-1.52,2.01v.64Z"/>
+            <path class="cls-2" d="M105.17,51.49c.06,.16,.11,.34,.17,.54,.03,.1,.05,.18,.05,.25h1.08c-.04-.28-.11-.55-.2-.79h1.56v-.34h0v-.74h0v-.05h-3.1c.08-.18,.14-.37,.17-.58h-1.13c-.23,.98-.78,1.67-1.67,2.06v.69c.86-.26,1.51-.61,1.96-1.03h1.11Z"/>
+          </g>
+        </g>
+      </g>
+      <g>
+        <g>
+          <path class="cls-1" d="M16.77,72.77v-4.51h3.15v-1.47h1.22v1.47h3.14v3.09c.03,.98-.4,1.45-1.28,1.42h-1.86v2.48h-1.22v-2.48h-3.15Zm1.13-.79h2.02v-2.93h-2.02v2.93Zm5.26-2.93h-2.01v2.93h1.5c.36,.01,.53-.18,.52-.58v-2.35Z"/>
+          <path class="cls-1" d="M26.22,75.08v-7.99h7.82v6.58c.04,.99-.4,1.46-1.3,1.41h-6.51Zm1.17-.77h4.9c.41,.02,.6-.19,.59-.62v-5.85h-5.49v6.47Zm.45-4.96v-.72h4.56v.72h-1.77v1.14h1.61v.71h-1.61v1.59h1.87v.72h-4.75v-.72h1.75v-1.59h-1.49v-.71h1.49v-1.14h-1.65Zm3.5,3.21c-.04-.34-.15-.71-.32-1.1h.78c.19,.34,.32,.71,.4,1.1h-.85Z"/>
+          <path class="cls-1" d="M35.64,68.82v-.72h.93v-1.23h1.07v1.23h.79v.72h-.79v1.83c.23-.06,.48-.14,.77-.23v.73l-.77,.29v2.66c.01,.71-.35,1.07-1.09,1.05h-.78v-.76h.43c.25,0,.37-.12,.36-.37v-2.26c-.29,.06-.63,.13-1.02,.2v-.9c.34-.04,.68-.1,1.02-.17v-2.08h-.93Zm8.27,6.37c-1.19-.29-2.12-.67-2.78-1.13-.68,.43-1.63,.82-2.83,1.15v-.7c.87-.33,1.57-.67,2.1-1.04-.52-.5-.99-1.19-1.41-2.08h1.17c.3,.59,.62,1.07,.97,1.47,.44-.46,.81-1.05,1.11-1.77h-3.49v-.76h4.71v.75c-.41,1.05-.95,1.86-1.6,2.43,.49,.36,1.18,.68,2.05,.97v.71Zm-1-5.3c-.7,.02-1.04-.33-1.03-1.03v-.95h-1.58v.51c.05,.94-.56,1.49-1.82,1.64v-.6c.56-.14,.82-.48,.79-1.02v-1.27h3.65v1.61c-.01,.31,.13,.45,.42,.43h.54v.69h-.97Z"/>
+          <path class="cls-1" d="M45.17,70.73c.48-.65,.8-1.35,.96-2.11h.94c-.13,.79-.38,1.49-.76,2.11h-1.15Zm.11,4.42v-.67c2.41-.34,3.58-1.04,3.48-2.08v-.41h1.22v.41c-.08,.99,1.05,1.69,3.39,2.09v.67c-1.85-.15-3.18-.58-3.98-1.28-.83,.72-2.2,1.15-4.11,1.27Zm.74-6.89c-.11-.49-.32-.96-.62-1.41h1c.31,.39,.55,.86,.7,1.41h-1.08Zm.2,5.27v-2.65h6.28v2.65h-1.13v-1.93h-4.03v1.93h-1.13Zm1.03-2.8v-.58c1.65-.33,2.48-.9,2.49-1.7v-.23h1.16v.26c0,.75,.86,1.3,2.56,1.66v.6c-1.46-.13-2.5-.5-3.13-1.1-.67,.62-1.69,.99-3.09,1.09Zm4.9-1.9v-.87h-3.02c-.36,.42-.94,.71-1.74,.88v-.56c.7-.33,1.11-.82,1.23-1.49h1.08c-.04,.18-.1,.35-.17,.51h3.66v1.53h-1.04Z"/>
+          <path class="cls-1" d="M63.16,70.21c-.58-.17-1.12-.35-1.6-.56v.55h-1.99v.96h2.85v.79h-2.85v2.16h3.38v.79h-7.96v-.79h3.36v-2.16h-2.85v-.79h2.85v-.96h-1.97v-.56c-.47,.2-1.01,.39-1.63,.57v-.75c1.64-.64,2.83-1.54,3.58-2.71h1.25c.75,1.16,1.94,2.07,3.58,2.71v.75Zm-6.66,3.56c-.24-.46-.38-.95-.43-1.47h1.05c.04,.49,.16,.98,.37,1.47h-1Zm2.46-5.88c-.67,.67-1.36,1.17-2.1,1.52h4.19c-.74-.36-1.44-.87-2.1-1.52Zm1.47,5.88c.2-.46,.32-.95,.37-1.47h1.05c-.04,.52-.18,1.01-.42,1.47h-1Z"/>
+          <path class="cls-1" d="M72.71,71.03c-1.72-.19-3.08-.47-4.07-.83-.97,.34-2.38,.62-4.21,.83v-.68c1.26-.17,2.29-.38,3.09-.64-.54-.3-1.06-.65-1.54-1.06-.35,.11-.75,.21-1.19,.29v-.64c1.1-.32,1.84-.81,2.21-1.47h1.27c-.09,.17-.19,.32-.29,.45h3.91v.76c-.66,.72-1.36,1.28-2.12,1.68,.78,.26,1.76,.47,2.95,.63v.68Zm-6.6,1.6h1.13c-.31,1.15-1.2,1.87-2.66,2.17v-.67c.79-.32,1.31-.82,1.53-1.5Zm3.1-1.87v.72h3.17v.75h-3.17v1.76c.01,.78-.37,1.16-1.15,1.15h-.91v-.75h.45c.31,.01,.46-.15,.45-.48v-1.67h-3.28v-.75h3.28v-.72h1.15Zm1.15-2.73h-3.12c-.2,.15-.43,.28-.67,.39h.76c.43,.34,.86,.62,1.3,.84,.59-.3,1.17-.71,1.74-1.23Zm.66,4.6c.23,.68,.74,1.18,1.53,1.5v.67c-1.46-.3-2.35-1.03-2.66-2.17h1.13Z"/>
+          <path class="cls-1" d="M74.44,68.34v-.76h2.16l.21-.79h1.27c-.08,.28-.16,.55-.25,.79h4.1v.76h-4.36c-.14,.4-.28,.77-.44,1.11h5.27v.78h-5.64c-.18,.35-.37,.68-.55,.98h5.45v.76c-.68,.81-1.35,1.41-2.01,1.82,.38,.12,.77,.26,1.19,.42v1.08c-1.76-.75-3.58-1.31-5.46-1.7v-.8c1.24,.2,2.33,.43,3.28,.7,.52-.38,1.02-.89,1.51-1.52h-5.03v-.76c.18-.34,.34-.67,.49-.98h-1.65v-.78h2c.14-.32,.27-.69,.41-1.11h-1.93Z"/>
+          <path class="cls-1" d="M91.93,73.99v.79h-8.29v-.79h2.42v-7.05h1.13v7.05h1.17v-7.05h1.13v7.05h2.44Zm-8.11-5.64h1.07c.11,1.4,.33,2.75,.66,4.05h-.96c-.36-1.11-.61-2.46-.77-4.05Zm7.93,0c-.15,1.55-.4,2.89-.77,4.05h-.97c.33-1.29,.54-2.64,.66-4.05h1.08Z"/>
+          <path class="cls-1" d="M93.25,70.71v-.66c1.08-.19,1.81-.63,2.19-1.32h1.3c-.51,1.21-1.68,1.87-3.49,1.98Zm8.26,4.52c-1.83-.38-3.21-.84-4.13-1.39-.92,.55-2.3,1.02-4.12,1.39v-.76c1.4-.38,2.48-.8,3.24-1.27-.7-.59-1.3-1.42-1.8-2.49h1.31c.41,.78,.87,1.39,1.37,1.84,.51-.46,.97-1.07,1.38-1.84h1.31c-.51,1.07-1.11,1.9-1.8,2.49,.77,.48,1.85,.91,3.24,1.27v.76Zm-8.18-6.89v-.79h3.38v-.68h1.35v.68h3.42v.79h-8.15Zm8.2,2.37c-1.82-.1-2.99-.76-3.5-1.98h1.3c.38,.69,1.11,1.13,2.2,1.32v.66Z"/>
+          <path class="cls-1" d="M103.77,70.55v-3.38h6.59v2.22c.04,.81-.36,1.2-1.18,1.16h-3.25c-.1,.22-.21,.42-.32,.6h5.16v2.73c.02,.81-.39,1.21-1.24,1.18h-1.03v-.76h.58c.37,.02,.54-.16,.52-.55v-1.85h-.74c-.27,1.53-1.26,2.65-2.97,3.35v-.77c1.06-.63,1.68-1.5,1.87-2.59h-.97c-.54,1.5-1.77,2.57-3.7,3.21v-.73c1.31-.63,2.17-1.46,2.57-2.48h-.67c-.45,.43-1.12,.76-2,1v-.67c.87-.38,1.46-.94,1.75-1.68h-.95Zm1.13-2.69v.67h4.33v-.67h-4.33Zm0,2h3.82c.36,.02,.54-.15,.52-.51v-.18h-4.33v.69Z"/>
+          <path class="cls-1" d="M112.46,68.1v-.75h3.5v-.51h1.35v.51h3.44v.75h-8.29Zm.43,7.09v-5.94h1.73c-.14-.26-.24-.57-.3-.93h1.15c.05,.35,.14,.66,.28,.93h1.73c.14-.3,.24-.61,.29-.93h1.14c-.07,.36-.17,.67-.31,.93h1.7v4.57c.03,.88-.35,1.3-1.14,1.27h-.9v-.74h.44c.33,.01,.49-.15,.48-.48v-3.9h-5.18v5.22h-1.1Zm2.01-1.09v-2.31c-.23,.1-.49,.2-.78,.29v-.67c.56-.28,.96-.69,1.19-1.23h1.03c-.27,.67-.64,1.14-1.12,1.42h2.7c-.49-.3-.86-.77-1.12-1.42h1.03c.23,.55,.62,.96,1.19,1.23v.67c-.31-.09-.56-.18-.75-.28v1.19c.02,.76-.33,1.13-1.06,1.11h-2.33Zm.91-.68h1.08c.34,.02,.5-.14,.47-.48v-.65h-1.55v1.13Z"/>
+        </g>
+        <g>
+          <g>
+            <rect class="cls-1" x="12.54" y="65.97" width=".56" height="10.06"/>
+            <rect class="cls-1" x="5.61" y="65.47" width=".56" height="11.06" transform="translate(76.89 65.11) rotate(90)"/>
+          </g>
+          <g>
+            <rect class="cls-1" x="124.41" y="65.97" width=".56" height="10.06" transform="translate(249.38 142) rotate(180)"/>
+            <rect class="cls-1" x="131.34" y="65.47" width=".56" height="11.06" transform="translate(60.62 202.62) rotate(-90)"/>
+          </g>
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>

+ 14 - 0
src/packages/sjgj/assets/images/icons/announcement.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 108.44 31.17">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #cf9e3a;
+      }
+    </style>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <path class="cls-1" d="M25.14,25.6c-.3,0-.55-.2-.63-.49-.08-.29,.04-.59,.3-.74,1.51-.89,2.77-2.15,3.65-3.66,.91-1.56,1.39-3.34,1.39-5.15s-.47-3.57-1.37-5.11c-.87-1.5-2.11-2.76-3.6-3.65-.31-.19-.41-.59-.23-.91,.09-.15,.23-.26,.4-.3,.17-.04,.35-.02,.5,.07,1.68,1.01,3.08,2.43,4.06,4.13,1.01,1.75,1.54,3.75,1.54,5.77,0,2.04-.54,4.05-1.57,5.82-1,1.71-2.42,3.13-4.12,4.13-.1,.06-.22,.09-.33,.09m-2.19-4.45c-.3,0-.58-.19-.67-.47-.08-.29,.05-.59,.32-.72,.82-.44,1.5-1.07,1.97-1.82,.49-.78,.75-1.66,.75-2.56,0-.89-.25-1.77-.74-2.54-.48-.76-1.15-1.39-1.94-1.82-.15-.08-.26-.22-.31-.39-.04-.17-.02-.34,.08-.49,.21-.31,.62-.4,.94-.23,1.01,.56,1.84,1.34,2.43,2.28,.61,.97,.93,2.07,.93,3.19s-.32,2.24-.94,3.21c-.6,.94-1.45,1.73-2.47,2.28-.11,.06-.23,.09-.35,.09m-15,2.76c-.06-.04-1.66-1.17-3.45-1.15h0C2.24,22.77,.33,20.9,.05,18.42v-.02s-.05-.56-.05-.56v-4.51l.05-.57c.28-2.48,2.19-4.35,4.45-4.35h.04s2.06,.1,3.44-1.14l.02-.02L15.55,1.02c.3-.25,.63-.47,.98-.65,.82-.42,1.58-.48,2.19-.18,.31,.16,.63,.36,.89,.8,.25,.44,.39,1.03,.43,1.87v.04s0,25.39,0,25.39c-.02,1.1-.14,2.31-1.32,2.75-.22,.08-.46,.12-.69,.12-1.15,0-2.29-.86-2.45-.98l-1.22-.94"/>
+    <path class="cls-1" d="M108.44,15.58c0,5.77-1.76,11.15-4.77,15.59H29.26c3.01-4.45,4.77-9.82,4.77-15.59S32.27,4.45,29.26,0H103.67c3.01,4.45,4.77,9.8,4.77,15.57Z"/>
+  </g>
+</svg>

+ 49 - 0
src/packages/sjgj/assets/images/icons/delivery.svg

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45.07 46.06">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #d09f3b;
+      }
+    </style>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <g>
+      <g>
+        <path class="cls-1" d="M18.19,43.18s1.99,.35,3.53-.12c.77-.24,1.79-.33,2.61-.37,1.05-.05,2.09-.26,3.07-.66,.44-.18,.92-.38,1.35-.56,1.08-.45,1.93-1.66,3.18-2.36,.71-.4,1.38-.87,1.96-1.45,.7-.69,1.6-1.58,2.26-2.22,0,0,.5-.41,.64-1.44,.03-.23,.08-.45,.17-.67,.25-.61,.82-1.89,1.73-3.09,.44-.57,.72-1.25,.76-1.97,0-.06,0-.11,0-.17h0c.35,.31,.48,.8,.33,1.24-.13,.4-.27,.87-.28,1.12,0,.09,0,.19-.03,.28-.1,.5-.47,1.98-1.55,3.23-.38,.44-.68,.94-.92,1.48-.36,.82-1.29,2.19-3.64,3.76,0,0-3.44,3.03-5.5,3.53,0,0-2.89,.52-3.99,1.04,0,0-3.64,.98-5.71-.59Z"/>
+        <path class="cls-1" d="M28.98,45.18s1.04-.27,2.15-.97c.38-.24,.74-.53,1.07-.83,.59-.55,2.15-1.9,3.15-2.04,.08-.01,.14,.08,.09,.15-.26,.34-.94,1.18-2.08,2.01,0,0-.8,.47-1.48,.79-.27,.13-.54,.26-.79,.42-.33,.21-.99,.5-2.1,.47Z"/>
+        <path class="cls-1" d="M18.49,45.05s1.59,.25,6.22-.38c.55-.07,1.08-.21,1.6-.41,.87-.33,2.28-.89,3.27-1.38,1.53-.77,3.18-2.37,4.29-2.75s3.91-3.59,4.22-4.44,2.02-1.74,2.02-1.74c0,0-2.02,1.74-2.38,3.3-.12,.51-1.19,2.17-3.23,3.31-1.73,.97-1.6,1.9-3.19,2.4-.53,.17-1.04,.38-1.51,.67-.52,.31-1.58,.76-3.73,1.23-.23,.05-.45,.11-.67,.18-.74,.23-3.01,.75-6.91,.02Z"/>
+        <path class="cls-1" d="M16.83,41.56s2.32,1.61,5.91,.78,3.23-1.05,4.53-1.26,1.75-.16,3.84-2.04c2.08-1.87,1.97-.97,3.97-3.47,0,0,.89-1.56,2.4-4.29,.43-.78,.72-1.64,.83-2.53,.03-.25,.07-.55,.13-.87,.05-.29-.14-.56-.42-.63h0s-.24,1.07-.65,2.23c-.29,.81-.69,1.59-1.19,2.29-.26,.37-.58,.86-.81,1.31-.52,1.03-1.22,1.97-2.02,2.8-.67,.69-1.47,1.42-2.26,1.92-.32,.2-.64,.42-.94,.65-.91,.69-3.22,2.18-6.94,2.81-1.17,.2-2.37,.23-3.56,.15-.58-.04-1.49-.03-2.82,.17Z"/>
+        <path class="cls-1" d="M36.39,40.66s1.42-.48,2.09-2.06c0,0-.82-.07-2.09,2.06Z"/>
+        <path class="cls-1" d="M39.59,36.64s2.05-.22,3.02-6.12c0,0-2.41,3.47-3.02,6.12Z"/>
+        <path class="cls-1" d="M15.27,41.12s-1.78-.52-3.08-1.66c-1.3-1.14-3.6-2.69-4.31-3.5s-3.34-3.27-4.29-6.24c-.94-2.97-1.25-4.62-1.25-4.62,0,0-.58-.25,.08,2.15,0,0,.58,1.91,.81,2.87,0,0-.15,1.72,2.35,4.75,0,0,.87,1.59,2.88,3.04,0,0,1.59,.98,2.34,1.73,.39,.39,.83,.74,1.31,1.01,.97,.54,2.42,1.15,3.16,.47Z"/>
+        <path class="cls-1" d="M13.62,42.63s-.95-.9-2.81-1.9c-1.86-1.01-1.49-1.61-4.53-3.7-3.04-2.09-3.67-5.53-4.27-6.17,0,0-.83,.13,.76,2.77,0,0,1.49,2.76,3.31,4.05,0,0,3.01,2.87,3.8,3.12,0,0,1.58,2,3.74,1.83Z"/>
+        <path class="cls-1" d="M12.82,43.88c.11,1.25-4.8-2.31-6.47-3.59-.31-.24-.58-.54-.79-.87-.49-.75-1.48-1.47-1.48-1.47-1.16-.77-2.66-3.57-2.66-3.57-1.21-2.46-.99-3.51-.99-3.51,.32,2.18,3.33,5.55,4.05,6.67,.53,.82,2.18,2.04,3.02,2.63,.28,.2,.54,.44,.76,.7,.96,1.11,3.13,2.17,3.98,2.55,.23,.1,.43,.26,.59,.46h0Z"/>
+        <path class="cls-1" d="M8.2,43.5s-3.08-1.62-4.65-4.33c0,0,3.61,2.63,4.65,4.33Z"/>
+        <path class="cls-1" d="M.12,12.27s.78-1.63,1.64-2.55,2.85-3.33,3.42-3.49c0,0-1.26-.28-2.98,2.54,0,0-1.42,.69-2.08,3.5Z"/>
+        <path class="cls-1" d="M.02,16.88s.5-2.14,1.42-3.13c.92-1,2.79-3.91,2.79-3.91,0,0,1.58-2.11,2.71-3.03,.08-.07,0-.19-.09-.15-.77,.32-2.08,1.06-3.09,2.67,0,0-2.67,1.84-2.59,4.14,0,0-1.36,.84-1.14,3.42Z"/>
+        <path class="cls-1" d="M11.02,2.53c.57,0,1.88-.17,3.2-1.31,.1-.08,.04-.24-.09-.24-.64,0-2.07,.14-3.21,1.31-.09,.09-.02,.24,.1,.24Z"/>
+        <path class="cls-1" d="M19.61,.61s1.38,.23,2.6,.15c1.23-.07,1.79,0,1.81-.29,0,0-2.01-1.15-4.42,.14Z"/>
+        <path class="cls-1" d="M27.08,1.18s.47,.9,1.17,.37c0,0-.06-.55-1.17-.37Z"/>
+        <path class="cls-1" d="M21.79,2.37s1.77,.48,2.53-.08c0,0-.72-1-3.85-.62-3.14,.38-5.21,.29-6.65,1.08,0,0-2.45,.36-2.64,1.5,0,0,1.67,0,3.45-.93,1.22-.63,2.56-1.01,3.94-1.06,.22,0,.42,0,.58,.01,.38,.04,.76,.05,1.13,.04,.45-.02,1.02-.02,1.5,.06Z"/>
+        <path class="cls-1" d="M7.44,6.28s2.17-.49,2.91-1.6c0,0-.85-.52-2.91,1.6Z"/>
+        <path class="cls-1" d="M41.5,37.16s1.28-.91,2.21-4.18c0,0-.68,.6-2.21,4.18Z"/>
+        <path class="cls-1" d="M38.84,34.36s.71-2.99,2.09-3.74c0,0,.59,1.08-1.18,3.18,0,0-.13,.25-.92,.56Z"/>
+        <path class="cls-1" d="M42.45,37.96s1.58-3.62,2.62-4.26c0,0,.18,2.76-2.62,4.26Z"/>
+        <path class="cls-1" d="M35.11,46.06s1.56-.58,2.1-1.84c0,0-1.21-.22-2.1,1.84Z"/>
+        <path class="cls-1" d="M40.64,11.88s-1.67-2.31-2.4-2.86c-.73-.55-2.18-1.81-2.47-2.45s-2.3-1.17-3.78-3.53c0,0,2.01,.81,3.98,2.85,0,0,1.68,.26,2.47,2.37,0,0,2.22,1.98,2.2,3.62Z"/>
+        <path class="cls-1" d="M39.76,7.42s-.57,.13-1.67-1.38c-.69-.95-1.39-1.41-1.81-1.63s-.82-.58-1.04-1.03c-.07-.14-.12-.28-.14-.43,0,0,1.05,.67,2.22,1.56,1.04,.79,2.21,1.72,2.44,2.91Z"/>
+        <path class="cls-1" d="M41.19,6.66c-.37-.24-1.22-.83-1.81-1.62,0,0-2.08-1.47-2.46-2.4,0,0,.29-.66,2.68,1.99,0,0,1.4,.65,1.73,1.92,.02,.08-.07,.15-.14,.1Z"/>
+        <path class="cls-1" d="M40.12,13.96s-.7-2.47-2.12-4.01c-.77-.84-1.17-1.35-1.38-1.64-.25-.35-.55-.67-.87-.96-.35-.31-.79-.66-1.21-.9-.48-.27-.92-.6-1.31-.99-.6-.6-1.56-1.33-2.48-1.04-.05,.01-.06,.07-.03,.11,.24,.26,1.1,1.16,2.17,1.77,.44,.25,.84,.58,1.2,.94,.47,.48,1.12,1.13,1.66,1.64,.14,.13,.28,.24,.43,.36,.43,.33,1.5,1.2,1.92,2.05,0,0,1.36,2.79,2.03,2.69Z"/>
+        <path class="cls-1" d="M25.82,2.77s1.13,1.08,2.76,.82c0,0-.72-1.2-2.23-1.13,0,0-.54-.06-.53,.31Z"/>
+        <path class="cls-1" d="M40.41,21.49s.65-2.83-1.51-5.45c0,0-.48-1.28-.67-2.36,0,0-.17-1.84-3.05-4.31,0,0-3.65-3.14-4.97-3.69,0,0-.67-.43-1.19-.34,0,0,.63,.57,.97,.98,.33,.39,.69,.74,1.08,1.06,.27,.22,.57,.47,.86,.71,.31,.25,.6,.51,.87,.8,.5,.52,1.36,1.4,1.97,1.89,.42,.34,.83,.71,1.19,1.12,.85,.95,2.17,2.46,2.3,2.88,0,0,.58,1.17,.66,3.18,0,0,.43,3.35,1.49,3.52Z"/>
+        <path class="cls-1" d="M23.24,4.25s2.22,.15,2.93,.7,1.54,.1,1.54,.1c0,0-.12-.52-1.39-.72,0,0-1.21-.46-1.27-.61s-1.23-.57-1.95-.32c-.61,.21-1.25-.46-3.03-.08-.65,.14-1.33,.17-2,.13-.49-.03-1.12,.02-1.78,.29,0,0-5.35,1.54-5.84,2.8l-1.26,.73s1.84-.61,2.34-.9c.49-.29,4.78-2.05,6.8-2.29,0,0,1.05,0,2.49,.06,0,0,.6,.36,2.42,.13Z"/>
+        <path class="cls-1" d="M.46,21.41s-1.05-1.19,.91-3.75c0,0,.55-2.68,1.29-3.53,.75-.85,.04-2.09,4.13-5.38,0,0,.58-.77,2.66-1.58,0,0-1.51,1.07-1.95,1.72-.34,.51-.75,.97-1.18,1.4l-.63,.63s-2.32,2.87-2.62,3.52c0,0-1.21,2.69-1.45,2.96,0,0-.13,2.65-.96,3.89"/>
+        <path class="cls-1" d="M2.11,22.48s-.86-3.05,1.02-5.07c0,0,.72-4.15,3.25-6.16,0,0,2.03-2.49,4.16-3.34,.05-.02,.1-.04,.15-.07,.54-.33,4.09-2.49,6.33-2.83,0,0,1.89-.44,3.73-.44,0,0,3.96,.19,5.95,1.38,0,0,2.67,.29,4.45,2.34,0,0,.66,.12,1.39,.97,.47,.54,.96,1.05,1.52,1.48,.61,.48,1.37,1.19,1.82,2.07,.13,.24,.25,.48,.41,.71,.37,.55,1.09,1.8,1.56,3.69,.09,.37-.38,.62-.63,.33h0c-.05-.06-.08-.12-.09-.2-.05-.42-.31-1.96-1.39-3.06l-.61-.67-1.56-1.8-1.44-1.32s-1.38-1.64-2.84-2.49c-1.46-.86-2.53-1.38-2.53-1.38l-3.58-.91c-.15-.04-.31-.04-.47,0-.47,.11-1.67,.29-3.29-.09-.13-.03-.27-.04-.4-.02l-.93,.15c-.25,.04-.47,.17-.62,.36h0c-.11,.14-.25,.24-.41,.3-1,.39-4.73,1.85-5.9,2.09-.14,.03-.27,.08-.39,.17-.91,.65-4.75,3.53-6.4,6.85,0,0-1.02,1.8-1.33,3.37,0,0-.59,2.67-.93,3.58Z"/>
+        <path class="cls-1" d="M20.34,40.59s-1.66-.16-3.45-.28c-.43-.03-.86-.1-1.27-.23-1.18-.36-3.63-1.21-5.07-2.47-.16-.14-.31-.3-.45-.46-.21-.24-.68-.73-1.42-1.3-1.04-.79-3.51-2.98-5.13-8.9,0,0-1.37-5.1,.99-9.59,0,0,1.07-3.66,3.68-5.36,0,0,.94-1.53,4.42-3.52,.22-.13,.45-.23,.69-.3,.97-.31,3.72-1.17,5.05-1.48,.33-.08,.68-.11,1.02-.09,.59,.04,1.66,.08,2.17-.07,.58-.17,2.1-.28,2.73,.24,.46,.38,.98,.68,1.56,.81,.7,.16,1.47,.31,1.75,.27,.43-.07,1.5,.35,2.05,1.1,.33,.45,.73,.84,1.2,1.15,.27,.18,.56,.4,.78,.68,.19,.23,.39,.45,.63,.64,.75,.58,2.3,1.88,2.81,3.13,0,0,1.36,3.69,1.68,4.64,.02,.06,.03,.13,.02,.19l-.17,1.03c-.05,.3-.41,.45-.65,.26h0c-.1-.07-.15-.18-.16-.3-.05-.77-.33-3.76-1.82-5.14,0,0-3.01-3.39-4.29-4.59-.19-.18-.39-.34-.61-.48l-2.31-1.47c-.54-.34-1.16-.53-1.8-.55s-1.58-.1-2.48-.36c-.49-.14-1-.19-1.51-.12-.28,.04-.63,.05-1.06-.03-.57-.11-1.15-.06-1.71,.1l-3.85,1.14c-.23,.07-.44,.16-.65,.27l-.86,.46c-.06,.03-.12,.07-.18,.1-.53,.32-3.17,1.95-3.54,2.68-.42,.81-2.68,1.88-3.87,5.8,0,0-2.13,5-.93,6.97,.29,.47,.52,.98,.62,1.52,.07,.36,.13,.78,.17,1.24,.04,.48,.16,.96,.36,1.4,.58,1.28,1.86,3.86,3.36,5.03,0,0,3.17,3.06,5.65,4.16,.21,.1,.43,.2,.63,.32,.56,.34,2.13,1.08,4.78,.86,0,0,4.63-.05,6.31-1.02,0,0,3.19-1.61,4.79-3.04,0,0,1.92-1.61,2.93-3.7,.05-.11,.1-.23,.15-.34,.18-.46,.76-1.86,1.64-3.3,.43-.72,.72-1.52,.81-2.35,.03-.25,.03-.48,0-.67,0,0,.6,1.08,.14,3.41-.14,.69-.41,1.35-.78,1.95-.37,.59-.88,1.44-1.2,2.16-.21,.47-.48,.91-.81,1.31-.73,.89-2.05,2.37-3.34,3.25,0,0-1.42,1.78-4.05,2.25-.07,.01-.13,.03-.2,.06-.48,.2-2.72,1.09-2.95,.81,0,0-1.57,.65-2.97,.12Z"/>
+        <path class="cls-1" d="M14.17,9.59s-2.02,.68-2.53,1.28l-2.13,1.74s-2.27,1.98-2.8,3.69c-.11,.35-.23,.7-.39,1.04-.67,1.43-2.17,5.07-1.21,7.07,0,0,.42,2.98,.57,3.51s1.19,4.38,3.51,5.86c0,0,2.8,3.22,5.26,4.32,0,0,2.63,.89,4.11,.65,0,0,2,1.08,4.49,.17,.45-.17,.93-.29,1.41-.32,.02,0,.03,0,.05,0,.7-.03,1.38-.2,2-.52,1.9-.97,5.38-3.08,6.79-6.22,0,0,.58-1.03,1.14-2.19,.61-1.26,.98-2.63,1.11-4.02l.07-.76c.05-.51,.06-1.02,.04-1.53l-.03-.87c-.04-1.15-.25-2.28-.62-3.37-.13-.39-.27-.85-.4-1.35-.4-1.6-1.64-2.98-1.64-2.98l-2.71-3.01s-2.43-2.35-4.25-2.56c-.26-.03-.51-.13-.72-.28h0c-.21-.15-.46-.24-.71-.28l-2.42-.36-2.85,.14s-1.06-.29-5.13,1.16Zm6.27-.15c1.8,.53,4.43,.22,4.67,.51,.23,.29,.83,.56,1.66,.8,.83,.24,.63,.17,1.28,.45,.65,.27,1.39,.83,1.64,1.3,.25,.47,.61,.6,1.41,1.3,.79,.7,1.51,1.93,1.51,1.93,1.5,2.54,1.14,4.03,1.43,5,.3,.97,.19,1.17,.43,2.66,.24,1.49-1.55,6.73-2.42,8.4-.88,1.67-3.46,4.13-5.74,4.94-2.28,.81-4.35,1.47-6.98,1.22-2.63-.25-3.46-.77-3.46-.77-1.42-1.04-2.4-1.35-2.4-1.35-1.94-.8-4.7-4.15-4.7-4.15-2.13-2.29-2.53-6.21-2.53-6.21-.53-1.86,.24-3.94,.24-3.94-.32-2,2.02-5.46,2.02-5.46l2.03-2.27,1.05-1.56,1.88-1.06s2.34-.97,3.06-1.1c.72-.13,3.93-.64,3.93-.64Z"/>
+      </g>
+      <path class="cls-1" d="M20.17,8.53c-8.3,0-15,6.71-15,14.98,0,1.32,.16,2.59,.51,3.81,.26,1.06,.65,2.08,1.16,3.04,2.47,4.85,7.5,8.15,13.33,8.15,8.28,0,14.98-6.71,14.98-15s-6.71-14.98-14.98-14.98Zm8.97,25.3s-.1-.06-.14-.08c-.1-.02-.18-.06-.24-.14-.31-.22-.65-.53-1-.77-1.1-.61-2.36-.9-3.63-.79-.39,.04-.8,0-1.18-.1l-4.1-1.14c-.86-.2-1.59-.79-1.98-1.61-.29-.71-.67-1.41-.98-2.12-.14-.41-.26-.82-.37-1.24-.02-.12-.02-.24,.04-.35,.06-.1,.14-.18,.27-.2,.2-.14,.43-.24,.65-.33,.37-.08,.73,.02,1,.29,.33,.59,.73,1.2,1.14,1.79,.18,.22,.43,.39,.71,.49l3.42,.96,.12-.41c-.8-.2-1.59-.47-2.34-.77-1.18-.35-1.49-.57-1.53-.94-.04-.35,.1-.69,.39-.92,.26-.2,.65-.26,.98-.12l4.04,1.12c.8-.06,1.37-.04,2.14-.04,.71-.02,1.41,.24,1.92,.73,.22,.22,.45,.45,.67,.67v6.03Zm-13.52-11.57h7.5c.49,0,.89,.4,.89,.89s-.4,.89-.89,.89h-7.51c-.49,0-.89-.4-.89-.89s.4-.89,.89-.89Zm-.89-3.71c0-.49,.4-.89,.89-.89h5.96c.49,0,.89,.4,.89,.89s-.4,.89-.89,.89h-5.96c-.49,0-.89-.4-.89-.89Zm14.41,4.17l-1.79-1.47v-6.25H12.97v14.16l.03-.03,1.19-1.05,1.19,1.05,1.83,1.62v2.4l-3.02-2.67-3,2.65h-.02V14.11c0-.5,.4-.9,.9-.9H28.24c.5,0,.9,.4,.9,.9v8.61Z"/>
+    </g>
+  </g>
+</svg>

+ 49 - 0
src/packages/sjgj/assets/images/icons/inventory.svg

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45.07 46.06">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #d09f3b;
+      }
+    </style>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <g>
+      <g>
+        <path class="cls-1" d="M18.19,43.18s1.99,.35,3.53-.12c.77-.24,1.79-.33,2.61-.37,1.05-.05,2.09-.26,3.07-.66,.44-.18,.92-.38,1.35-.56,1.08-.45,1.93-1.66,3.18-2.36,.71-.4,1.38-.87,1.96-1.45,.7-.69,1.6-1.58,2.26-2.22,0,0,.5-.41,.64-1.44,.03-.23,.08-.45,.17-.67,.25-.61,.82-1.89,1.73-3.09,.44-.57,.72-1.25,.76-1.97,0-.06,0-.11,0-.17h0c.35,.31,.48,.8,.33,1.24-.13,.4-.27,.87-.28,1.12,0,.09,0,.19-.03,.28-.1,.5-.47,1.98-1.55,3.23-.38,.44-.68,.94-.92,1.48-.36,.82-1.29,2.19-3.64,3.76,0,0-3.44,3.03-5.5,3.53,0,0-2.89,.52-3.99,1.04,0,0-3.64,.98-5.71-.59Z"/>
+        <path class="cls-1" d="M28.98,45.18s1.04-.27,2.15-.97c.38-.24,.74-.53,1.07-.83,.59-.55,2.15-1.9,3.15-2.04,.08-.01,.14,.08,.09,.15-.26,.34-.94,1.18-2.08,2.01,0,0-.8,.47-1.48,.79-.27,.13-.54,.26-.79,.42-.33,.21-.99,.5-2.1,.47Z"/>
+        <path class="cls-1" d="M18.49,45.05s1.59,.25,6.22-.38c.55-.07,1.08-.21,1.6-.41,.87-.33,2.28-.89,3.27-1.38,1.53-.77,3.18-2.37,4.29-2.75s3.91-3.59,4.22-4.44c.31-.86,2.02-1.74,2.02-1.74,0,0-2.02,1.74-2.38,3.3-.12,.51-1.19,2.17-3.23,3.31-1.73,.97-1.6,1.9-3.19,2.4-.53,.17-1.04,.38-1.51,.67-.52,.31-1.58,.76-3.73,1.23-.23,.05-.45,.11-.67,.18-.74,.23-3.01,.75-6.91,.02Z"/>
+        <path class="cls-1" d="M16.83,41.56s2.32,1.61,5.91,.78,3.23-1.05,4.53-1.26,1.75-.16,3.84-2.04c2.08-1.87,1.97-.97,3.97-3.47,0,0,.89-1.56,2.4-4.29,.43-.78,.72-1.64,.83-2.53,.03-.25,.07-.55,.13-.87,.05-.29-.14-.56-.42-.63h0s-.24,1.07-.65,2.23c-.29,.81-.69,1.59-1.19,2.29-.26,.37-.58,.86-.81,1.31-.52,1.03-1.22,1.97-2.02,2.8-.67,.69-1.47,1.42-2.26,1.92-.32,.2-.64,.42-.94,.65-.91,.69-3.22,2.18-6.94,2.81-1.17,.2-2.37,.23-3.56,.15-.58-.04-1.49-.03-2.82,.17Z"/>
+        <path class="cls-1" d="M36.39,40.66s1.42-.48,2.09-2.06c0,0-.82-.07-2.09,2.06Z"/>
+        <path class="cls-1" d="M39.59,36.64s2.05-.22,3.02-6.12c0,0-2.41,3.47-3.02,6.12Z"/>
+        <path class="cls-1" d="M15.27,41.12s-1.78-.52-3.08-1.66c-1.3-1.14-3.6-2.69-4.31-3.5-.71-.81-3.34-3.27-4.29-6.24-.94-2.97-1.25-4.62-1.25-4.62,0,0-.58-.25,.08,2.15,0,0,.58,1.91,.81,2.87,0,0-.15,1.72,2.35,4.75,0,0,.87,1.59,2.88,3.04,0,0,1.59,.98,2.34,1.73,.39,.39,.83,.74,1.31,1.01,.97,.54,2.42,1.15,3.16,.47Z"/>
+        <path class="cls-1" d="M13.62,42.63s-.95-.9-2.81-1.9c-1.86-1.01-1.49-1.61-4.53-3.7-3.04-2.09-3.67-5.53-4.27-6.17,0,0-.83,.13,.76,2.77,0,0,1.49,2.76,3.31,4.05,0,0,3.01,2.87,3.8,3.12,0,0,1.58,2,3.74,1.83Z"/>
+        <path class="cls-1" d="M12.82,43.88c.11,1.25-4.8-2.31-6.47-3.59-.31-.24-.58-.54-.79-.87-.49-.75-1.48-1.47-1.48-1.47-1.16-.77-2.66-3.57-2.66-3.57-1.21-2.46-.99-3.51-.99-3.51,.32,2.18,3.33,5.55,4.05,6.67,.53,.82,2.18,2.04,3.02,2.63,.28,.2,.54,.44,.76,.7,.96,1.11,3.13,2.17,3.98,2.55,.23,.1,.43,.26,.59,.46h0Z"/>
+        <path class="cls-1" d="M8.2,43.5s-3.08-1.62-4.65-4.33c0,0,3.61,2.63,4.65,4.33Z"/>
+        <path class="cls-1" d="M.12,12.27s.78-1.63,1.64-2.55,2.85-3.33,3.42-3.49c0,0-1.26-.28-2.98,2.54,0,0-1.42,.69-2.08,3.5Z"/>
+        <path class="cls-1" d="M.02,16.88s.5-2.14,1.42-3.13,2.79-3.91,2.79-3.91c0,0,1.58-2.11,2.71-3.03,.08-.07,0-.19-.09-.15-.77,.32-2.08,1.06-3.09,2.67,0,0-2.67,1.84-2.59,4.14,0,0-1.36,.84-1.14,3.42Z"/>
+        <path class="cls-1" d="M11.02,2.53c.57,0,1.88-.17,3.2-1.31,.1-.08,.04-.24-.09-.24-.64,0-2.07,.14-3.21,1.31-.09,.09-.02,.24,.1,.24Z"/>
+        <path class="cls-1" d="M19.61,.61s1.38,.23,2.6,.15c1.23-.07,1.79,0,1.81-.29,0,0-2.01-1.15-4.42,.14Z"/>
+        <path class="cls-1" d="M27.08,1.18s.47,.9,1.17,.37c0,0-.06-.55-1.17-.37Z"/>
+        <path class="cls-1" d="M21.79,2.37s1.77,.48,2.53-.08c0,0-.72-1-3.85-.62-3.14,.38-5.21,.29-6.65,1.08,0,0-2.45,.36-2.64,1.5,0,0,1.67,0,3.45-.93,1.22-.63,2.56-1.01,3.94-1.06,.22,0,.42,0,.58,.01,.38,.04,.76,.05,1.13,.04,.45-.02,1.02-.02,1.5,.06Z"/>
+        <path class="cls-1" d="M7.44,6.28s2.17-.49,2.91-1.6c0,0-.85-.52-2.91,1.6Z"/>
+        <path class="cls-1" d="M41.5,37.16s1.28-.91,2.21-4.18c0,0-.68,.6-2.21,4.18Z"/>
+        <path class="cls-1" d="M38.84,34.36s.71-2.99,2.09-3.74c0,0,.59,1.08-1.18,3.18,0,0-.13,.25-.92,.56Z"/>
+        <path class="cls-1" d="M42.45,37.96s1.58-3.62,2.62-4.26c0,0,.18,2.76-2.62,4.26Z"/>
+        <path class="cls-1" d="M35.11,46.06s1.56-.58,2.1-1.84c0,0-1.21-.22-2.1,1.84Z"/>
+        <path class="cls-1" d="M40.64,11.88s-1.67-2.31-2.4-2.86-2.18-1.81-2.47-2.45-2.3-1.17-3.78-3.53c0,0,2.01,.81,3.98,2.85,0,0,1.68,.26,2.47,2.37,0,0,2.22,1.98,2.2,3.62Z"/>
+        <path class="cls-1" d="M39.76,7.42s-.57,.13-1.67-1.38c-.69-.95-1.39-1.41-1.81-1.63s-.82-.58-1.04-1.03c-.07-.14-.12-.28-.14-.43,0,0,1.05,.67,2.22,1.56,1.04,.79,2.21,1.72,2.44,2.91Z"/>
+        <path class="cls-1" d="M41.19,6.66c-.37-.24-1.22-.83-1.81-1.62,0,0-2.08-1.47-2.46-2.4,0,0,.29-.66,2.68,1.99,0,0,1.4,.65,1.73,1.92,.02,.08-.07,.15-.14,.1Z"/>
+        <path class="cls-1" d="M40.12,13.96s-.7-2.47-2.12-4.01c-.77-.84-1.17-1.35-1.38-1.64-.25-.35-.55-.67-.87-.96-.35-.31-.79-.66-1.21-.9-.48-.27-.92-.6-1.31-.99-.6-.6-1.56-1.33-2.48-1.04-.05,.01-.06,.07-.03,.11,.24,.26,1.1,1.16,2.17,1.77,.44,.25,.84,.58,1.2,.94,.47,.48,1.12,1.13,1.66,1.64,.14,.13,.28,.24,.43,.36,.43,.33,1.5,1.2,1.92,2.05,0,0,1.36,2.79,2.03,2.69Z"/>
+        <path class="cls-1" d="M25.82,2.77s1.13,1.08,2.76,.82c0,0-.72-1.2-2.23-1.13,0,0-.54-.06-.53,.31Z"/>
+        <path class="cls-1" d="M40.41,21.49s.65-2.83-1.51-5.45c0,0-.48-1.28-.67-2.36,0,0-.17-1.84-3.05-4.31,0,0-3.65-3.14-4.97-3.69,0,0-.67-.43-1.19-.34,0,0,.63,.57,.97,.98,.33,.39,.69,.74,1.08,1.06,.27,.22,.57,.47,.86,.71,.31,.25,.6,.51,.87,.8,.5,.52,1.36,1.4,1.97,1.89,.42,.34,.83,.71,1.19,1.12,.85,.95,2.17,2.46,2.3,2.88,0,0,.58,1.17,.66,3.18,0,0,.43,3.35,1.49,3.52Z"/>
+        <path class="cls-1" d="M23.24,4.25s2.22,.15,2.93,.7c.72,.55,1.54,.1,1.54,.1,0,0-.12-.52-1.39-.72,0,0-1.21-.46-1.27-.61s-1.23-.57-1.95-.32c-.61,.21-1.25-.46-3.03-.08-.65,.14-1.33,.17-2,.13-.49-.03-1.12,.02-1.78,.29,0,0-5.35,1.54-5.84,2.8l-1.26,.73s1.84-.61,2.34-.9,4.78-2.05,6.8-2.29c0,0,1.05,0,2.49,.06,0,0,.6,.36,2.42,.13Z"/>
+        <path class="cls-1" d="M.46,21.41s-1.05-1.19,.91-3.75c0,0,.55-2.68,1.29-3.53,.75-.85,.04-2.09,4.13-5.38,0,0,.58-.77,2.66-1.58,0,0-1.51,1.07-1.95,1.72-.34,.51-.75,.97-1.18,1.4l-.63,.63s-2.32,2.87-2.62,3.52c0,0-1.21,2.69-1.45,2.96,0,0-.13,2.65-.96,3.89"/>
+        <path class="cls-1" d="M2.11,22.48s-.86-3.05,1.02-5.07c0,0,.72-4.15,3.25-6.16,0,0,2.03-2.49,4.16-3.34,.05-.02,.1-.04,.15-.07,.54-.33,4.09-2.49,6.33-2.83,0,0,1.89-.44,3.73-.44,0,0,3.96,.19,5.95,1.38,0,0,2.67,.29,4.45,2.34,0,0,.66,.12,1.39,.97,.47,.54,.96,1.05,1.52,1.48,.61,.48,1.37,1.19,1.82,2.07,.13,.24,.25,.48,.41,.71,.37,.55,1.09,1.8,1.56,3.69,.09,.37-.38,.62-.63,.33h0c-.05-.06-.08-.12-.09-.2-.05-.42-.31-1.96-1.39-3.06l-.61-.67-1.56-1.8-1.44-1.32s-1.38-1.64-2.84-2.49c-1.46-.86-2.53-1.38-2.53-1.38l-3.58-.91c-.15-.04-.31-.04-.47,0-.47,.11-1.67,.29-3.29-.09-.13-.03-.27-.04-.4-.02l-.93,.15c-.25,.04-.47,.17-.62,.36h0c-.11,.14-.25,.24-.41,.3-1,.39-4.73,1.85-5.9,2.09-.14,.03-.27,.08-.39,.17-.91,.65-4.75,3.53-6.4,6.85,0,0-1.02,1.8-1.33,3.37,0,0-.59,2.67-.93,3.58Z"/>
+        <path class="cls-1" d="M20.34,40.59s-1.66-.16-3.45-.28c-.43-.03-.86-.1-1.27-.23-1.18-.36-3.63-1.21-5.07-2.47-.16-.14-.31-.3-.45-.46-.21-.24-.68-.73-1.42-1.3-1.04-.79-3.51-2.98-5.13-8.9,0,0-1.37-5.1,.99-9.59,0,0,1.07-3.66,3.68-5.36,0,0,.94-1.53,4.42-3.52,.22-.13,.45-.23,.69-.3,.97-.31,3.72-1.17,5.05-1.48,.33-.08,.68-.11,1.02-.09,.59,.04,1.66,.08,2.17-.07,.58-.17,2.1-.28,2.73,.24,.46,.38,.98,.68,1.56,.81,.7,.16,1.47,.31,1.75,.27,.43-.07,1.5,.35,2.05,1.1,.33,.45,.73,.84,1.2,1.15,.27,.18,.56,.4,.78,.68,.19,.23,.39,.45,.63,.64,.75,.58,2.3,1.88,2.81,3.13,0,0,1.36,3.69,1.68,4.64,.02,.06,.03,.13,.02,.19l-.17,1.03c-.05,.3-.41,.45-.65,.26h0c-.1-.07-.15-.18-.16-.3-.05-.77-.33-3.76-1.82-5.14,0,0-3.01-3.39-4.29-4.59-.19-.18-.39-.34-.61-.48l-2.31-1.47c-.54-.34-1.16-.53-1.8-.55s-1.58-.1-2.48-.36c-.49-.14-1-.19-1.51-.12-.28,.04-.63,.05-1.06-.03-.57-.11-1.15-.06-1.71,.1l-3.85,1.14c-.23,.07-.44,.16-.65,.27l-.86,.46c-.06,.03-.12,.07-.18,.1-.53,.32-3.17,1.95-3.54,2.68-.42,.81-2.68,1.88-3.87,5.8,0,0-2.13,5-.93,6.97,.29,.47,.52,.98,.62,1.52,.07,.36,.13,.78,.17,1.24s.16,.96,.36,1.4c.58,1.28,1.86,3.86,3.36,5.03,0,0,3.17,3.06,5.65,4.16,.21,.1,.43,.2,.63,.32,.56,.34,2.13,1.08,4.78,.86,0,0,4.63-.05,6.31-1.02,0,0,3.19-1.61,4.79-3.04,0,0,1.92-1.61,2.93-3.7,.05-.11,.1-.23,.15-.34,.18-.46,.76-1.86,1.64-3.3,.43-.72,.72-1.52,.81-2.35,.03-.25,.03-.48,0-.67,0,0,.6,1.08,.14,3.41-.14,.69-.41,1.35-.78,1.95s-.88,1.44-1.2,2.16c-.21,.47-.48,.91-.81,1.31-.73,.89-2.05,2.37-3.34,3.25,0,0-1.42,1.78-4.05,2.25-.07,.01-.13,.03-.2,.06-.48,.2-2.72,1.09-2.95,.81,0,0-1.57,.65-2.97,.12Z"/>
+        <path class="cls-1" d="M14.17,9.59s-2.02,.68-2.53,1.28l-2.13,1.74s-2.27,1.98-2.8,3.69c-.11,.35-.23,.7-.39,1.04-.67,1.43-2.17,5.07-1.21,7.07,0,0,.42,2.98,.57,3.51s1.19,4.38,3.51,5.86c0,0,2.8,3.22,5.26,4.32,0,0,2.63,.89,4.11,.65,0,0,2,1.08,4.49,.17,.45-.17,.93-.29,1.41-.32,.02,0,.03,0,.05,0,.7-.03,1.38-.2,2-.52,1.9-.97,5.38-3.08,6.79-6.22,0,0,.58-1.03,1.14-2.19,.61-1.26,.98-2.63,1.11-4.02l.07-.76c.05-.51,.06-1.02,.04-1.53l-.03-.87c-.04-1.15-.25-2.28-.62-3.37-.13-.39-.27-.85-.4-1.35-.4-1.6-1.64-2.98-1.64-2.98l-2.71-3.01s-2.43-2.35-4.25-2.56c-.26-.03-.51-.13-.72-.28h0c-.21-.15-.46-.24-.71-.28l-2.42-.36-2.85,.14s-1.06-.29-5.13,1.16Zm6.27-.15c1.8,.53,4.43,.22,4.67,.51,.23,.29,.83,.56,1.66,.8,.83,.24,.63,.17,1.28,.45,.65,.27,1.39,.83,1.64,1.3,.25,.47,.61,.6,1.41,1.3,.79,.7,1.51,1.93,1.51,1.93,1.5,2.54,1.14,4.03,1.43,5,.3,.97,.19,1.17,.43,2.66,.24,1.49-1.55,6.73-2.42,8.4-.88,1.67-3.46,4.13-5.74,4.94-2.28,.81-4.35,1.47-6.98,1.22-2.63-.25-3.46-.77-3.46-.77-1.42-1.04-2.4-1.35-2.4-1.35-1.94-.8-4.7-4.15-4.7-4.15-2.13-2.29-2.53-6.21-2.53-6.21-.53-1.86,.24-3.94,.24-3.94-.32-2,2.02-5.46,2.02-5.46l2.03-2.27,1.05-1.56,1.88-1.06s2.34-.97,3.06-1.1c.72-.13,3.93-.64,3.93-.64Z"/>
+      </g>
+      <path class="cls-1" d="M20.16,8.53c-8.3,0-15,6.71-15,14.98,0,1.32,.16,2.59,.51,3.81,3.59-4.34,3.73-4.34,4.52-4.32,.37,0,.71,.16,.98,.39l4.83,4.5,8.44-9.89h-6.4c-.77,0-1.43-.63-1.43-1.43s.65-1.43,1.43-1.43h9.58c.79,0,1.43,.63,1.43,1.43v9.56c0,.79-.63,1.43-1.43,1.43s-1.43-.63-1.43-1.43v-5.77l-8.99,10.52c-.24,.31-.61,.49-1.02,.49-.37,.04-.75-.08-1.08-.37l-4.91-4.63c-.82,.92-2.12,2.47-3.36,3.97,2.47,4.85,7.5,8.15,13.33,8.15,8.28,0,14.98-6.71,14.98-15s-6.71-14.98-14.98-14.98Z"/>
+    </g>
+  </g>
+</svg>

+ 49 - 0
src/packages/sjgj/assets/images/icons/order.svg

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45.07 46.06">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #d09f3b;
+      }
+    </style>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <g>
+      <g>
+        <path class="cls-1" d="M18.19,43.18s1.99,.35,3.53-.12c.77-.24,1.79-.33,2.61-.37,1.05-.05,2.09-.26,3.07-.66,.44-.18,.92-.38,1.35-.56,1.08-.45,1.93-1.66,3.18-2.36,.71-.4,1.38-.87,1.96-1.45,.7-.69,1.6-1.58,2.26-2.22,0,0,.5-.41,.64-1.44,.03-.23,.08-.45,.17-.67,.25-.61,.82-1.89,1.73-3.09,.44-.57,.72-1.25,.76-1.97,0-.06,0-.11,0-.17h0c.35,.31,.48,.8,.33,1.24-.13,.4-.27,.87-.28,1.12,0,.09,0,.19-.03,.28-.1,.5-.47,1.98-1.55,3.23-.38,.44-.68,.94-.92,1.48-.36,.82-1.29,2.19-3.64,3.76,0,0-3.44,3.03-5.5,3.53,0,0-2.89,.52-3.99,1.04,0,0-3.64,.98-5.71-.59Z"/>
+        <path class="cls-1" d="M28.98,45.18s1.04-.27,2.15-.97c.38-.24,.74-.53,1.07-.83,.59-.55,2.15-1.9,3.15-2.04,.08-.01,.14,.08,.09,.15-.26,.34-.94,1.18-2.08,2.01,0,0-.8,.47-1.48,.79-.27,.13-.54,.26-.79,.42-.33,.21-.99,.5-2.1,.47Z"/>
+        <path class="cls-1" d="M18.49,45.05s1.59,.25,6.22-.38c.55-.07,1.08-.21,1.6-.41,.87-.33,2.28-.89,3.27-1.38,1.53-.77,3.18-2.37,4.29-2.75,1.11-.38,3.91-3.59,4.22-4.44s2.02-1.74,2.02-1.74c0,0-2.02,1.74-2.38,3.3-.12,.51-1.19,2.17-3.23,3.31-1.73,.97-1.6,1.9-3.19,2.4-.53,.17-1.04,.38-1.51,.67-.52,.31-1.58,.76-3.73,1.23-.23,.05-.45,.11-.67,.18-.74,.23-3.01,.75-6.91,.02Z"/>
+        <path class="cls-1" d="M16.83,41.56s2.32,1.61,5.91,.78c3.59-.82,3.23-1.05,4.53-1.26s1.75-.16,3.84-2.04c2.08-1.87,1.97-.97,3.97-3.47,0,0,.89-1.56,2.4-4.29,.43-.78,.72-1.64,.83-2.53,.03-.25,.07-.55,.13-.87,.05-.29-.14-.56-.42-.63h0s-.24,1.07-.65,2.23c-.29,.81-.69,1.59-1.19,2.29-.26,.37-.58,.86-.81,1.31-.52,1.03-1.22,1.97-2.02,2.8-.67,.69-1.47,1.42-2.26,1.92-.32,.2-.64,.42-.94,.65-.91,.69-3.22,2.18-6.94,2.81-1.17,.2-2.37,.23-3.56,.15-.58-.04-1.49-.03-2.82,.17Z"/>
+        <path class="cls-1" d="M36.39,40.66s1.42-.48,2.09-2.06c0,0-.82-.07-2.09,2.06Z"/>
+        <path class="cls-1" d="M39.59,36.64s2.05-.22,3.02-6.12c0,0-2.41,3.47-3.02,6.12Z"/>
+        <path class="cls-1" d="M15.27,41.12s-1.78-.52-3.08-1.66c-1.3-1.14-3.6-2.69-4.31-3.5s-3.34-3.27-4.29-6.24c-.94-2.97-1.25-4.62-1.25-4.62,0,0-.58-.25,.08,2.15,0,0,.58,1.91,.81,2.87,0,0-.15,1.72,2.35,4.75,0,0,.87,1.59,2.88,3.04,0,0,1.59,.98,2.34,1.73,.39,.39,.83,.74,1.31,1.01,.97,.54,2.42,1.15,3.16,.47Z"/>
+        <path class="cls-1" d="M13.62,42.63s-.95-.9-2.81-1.9c-1.86-1.01-1.49-1.61-4.53-3.7-3.04-2.09-3.67-5.53-4.27-6.17,0,0-.83,.13,.76,2.77,0,0,1.49,2.76,3.31,4.05,0,0,3.01,2.87,3.8,3.12,0,0,1.58,2,3.74,1.83Z"/>
+        <path class="cls-1" d="M12.82,43.88c.11,1.25-4.8-2.31-6.47-3.59-.31-.24-.58-.54-.79-.87-.49-.75-1.48-1.47-1.48-1.47-1.16-.77-2.66-3.57-2.66-3.57-1.21-2.46-.99-3.51-.99-3.51,.32,2.18,3.33,5.55,4.05,6.67,.53,.82,2.18,2.04,3.02,2.63,.28,.2,.54,.44,.76,.7,.96,1.11,3.13,2.17,3.98,2.55,.23,.1,.43,.26,.59,.46h0Z"/>
+        <path class="cls-1" d="M8.2,43.5s-3.08-1.62-4.65-4.33c0,0,3.61,2.63,4.65,4.33Z"/>
+        <path class="cls-1" d="M.12,12.27s.78-1.63,1.64-2.55,2.85-3.33,3.42-3.49c0,0-1.26-.28-2.98,2.54,0,0-1.42,.69-2.08,3.5Z"/>
+        <path class="cls-1" d="M.02,16.88s.5-2.14,1.42-3.13,2.79-3.91,2.79-3.91c0,0,1.58-2.11,2.71-3.03,.08-.07,0-.19-.09-.15-.77,.32-2.08,1.06-3.09,2.67,0,0-2.67,1.84-2.59,4.14,0,0-1.36,.84-1.14,3.42Z"/>
+        <path class="cls-1" d="M11.02,2.53c.57,0,1.88-.17,3.2-1.31,.1-.08,.04-.24-.09-.24-.64,0-2.07,.14-3.21,1.31-.09,.09-.02,.24,.1,.24Z"/>
+        <path class="cls-1" d="M19.61,.61s1.38,.23,2.6,.15c1.23-.07,1.79,0,1.81-.29,0,0-2.01-1.15-4.42,.14Z"/>
+        <path class="cls-1" d="M27.08,1.18s.47,.9,1.17,.37c0,0-.06-.55-1.17-.37Z"/>
+        <path class="cls-1" d="M21.79,2.37s1.77,.48,2.53-.08c0,0-.72-1-3.85-.62-3.14,.38-5.21,.29-6.65,1.08,0,0-2.45,.36-2.64,1.5,0,0,1.67,0,3.45-.93,1.22-.63,2.56-1.01,3.94-1.06,.22,0,.42,0,.58,.01,.38,.04,.76,.05,1.13,.04,.45-.02,1.02-.02,1.5,.06Z"/>
+        <path class="cls-1" d="M7.44,6.28s2.17-.49,2.91-1.6c0,0-.85-.52-2.91,1.6Z"/>
+        <path class="cls-1" d="M41.5,37.16s1.28-.91,2.21-4.18c0,0-.68,.6-2.21,4.18Z"/>
+        <path class="cls-1" d="M38.84,34.36s.71-2.99,2.09-3.74c0,0,.59,1.08-1.18,3.18,0,0-.13,.25-.92,.56Z"/>
+        <path class="cls-1" d="M42.45,37.96s1.58-3.62,2.62-4.26c0,0,.18,2.76-2.62,4.26Z"/>
+        <path class="cls-1" d="M35.11,46.06s1.56-.58,2.1-1.84c0,0-1.21-.22-2.1,1.84Z"/>
+        <path class="cls-1" d="M40.64,11.88s-1.67-2.31-2.4-2.86-2.18-1.81-2.47-2.45-2.3-1.17-3.78-3.53c0,0,2.01,.81,3.98,2.85,0,0,1.68,.26,2.47,2.37,0,0,2.22,1.98,2.2,3.62Z"/>
+        <path class="cls-1" d="M39.76,7.42s-.57,.13-1.67-1.38c-.69-.95-1.39-1.41-1.81-1.63s-.82-.58-1.04-1.03c-.07-.14-.12-.28-.14-.43,0,0,1.05,.67,2.22,1.56,1.04,.79,2.21,1.72,2.44,2.91Z"/>
+        <path class="cls-1" d="M41.19,6.66c-.37-.24-1.22-.83-1.81-1.62,0,0-2.08-1.47-2.46-2.4,0,0,.29-.66,2.68,1.99,0,0,1.4,.65,1.73,1.92,.02,.08-.07,.15-.14,.1Z"/>
+        <path class="cls-1" d="M40.12,13.96s-.7-2.47-2.12-4.01c-.77-.84-1.17-1.35-1.38-1.64-.25-.35-.55-.67-.87-.96-.35-.31-.79-.66-1.21-.9-.48-.27-.92-.6-1.31-.99-.6-.6-1.56-1.33-2.48-1.04-.05,.01-.06,.07-.03,.11,.24,.26,1.1,1.16,2.17,1.77,.44,.25,.84,.58,1.2,.94,.47,.48,1.12,1.13,1.66,1.64,.14,.13,.28,.24,.43,.36,.43,.33,1.5,1.2,1.92,2.05,0,0,1.36,2.79,2.03,2.69Z"/>
+        <path class="cls-1" d="M25.82,2.77s1.13,1.08,2.76,.82c0,0-.72-1.2-2.23-1.13,0,0-.54-.06-.53,.31Z"/>
+        <path class="cls-1" d="M40.41,21.49s.65-2.83-1.51-5.45c0,0-.48-1.28-.67-2.36,0,0-.17-1.84-3.05-4.31,0,0-3.65-3.14-4.97-3.69,0,0-.67-.43-1.19-.34,0,0,.63,.57,.97,.98,.33,.39,.69,.74,1.08,1.06,.27,.22,.57,.47,.86,.71,.31,.25,.6,.51,.87,.8,.5,.52,1.36,1.4,1.97,1.89,.42,.34,.83,.71,1.19,1.12,.85,.95,2.17,2.46,2.3,2.88,0,0,.58,1.17,.66,3.18,0,0,.43,3.35,1.49,3.52Z"/>
+        <path class="cls-1" d="M23.24,4.25s2.22,.15,2.93,.7c.72,.55,1.54,.1,1.54,.1,0,0-.12-.52-1.39-.72,0,0-1.21-.46-1.27-.61s-1.23-.57-1.95-.32c-.61,.21-1.25-.46-3.03-.08-.65,.14-1.33,.17-2,.13-.49-.03-1.12,.02-1.78,.29,0,0-5.35,1.54-5.84,2.8l-1.26,.73s1.84-.61,2.34-.9c.49-.29,4.78-2.05,6.8-2.29,0,0,1.05,0,2.49,.06,0,0,.6,.36,2.42,.13Z"/>
+        <path class="cls-1" d="M.46,21.41s-1.05-1.19,.91-3.75c0,0,.55-2.68,1.29-3.53,.75-.85,.04-2.09,4.13-5.38,0,0,.58-.77,2.66-1.58,0,0-1.51,1.07-1.95,1.72-.34,.51-.75,.97-1.18,1.4l-.63,.63s-2.32,2.87-2.62,3.52c0,0-1.21,2.69-1.45,2.96,0,0-.13,2.65-.96,3.89"/>
+        <path class="cls-1" d="M2.11,22.48s-.86-3.05,1.02-5.07c0,0,.72-4.15,3.25-6.16,0,0,2.03-2.49,4.16-3.34,.05-.02,.1-.04,.15-.07,.54-.33,4.09-2.49,6.33-2.83,0,0,1.89-.44,3.73-.44,0,0,3.96,.19,5.95,1.38,0,0,2.67,.29,4.45,2.34,0,0,.66,.12,1.39,.97,.47,.54,.96,1.05,1.52,1.48,.61,.48,1.37,1.19,1.82,2.07,.13,.24,.25,.48,.41,.71,.37,.55,1.09,1.8,1.56,3.69,.09,.37-.38,.62-.63,.33h0c-.05-.06-.08-.12-.09-.2-.05-.42-.31-1.96-1.39-3.06l-.61-.67-1.56-1.8-1.44-1.32s-1.38-1.64-2.84-2.49c-1.46-.86-2.53-1.38-2.53-1.38l-3.58-.91c-.15-.04-.31-.04-.47,0-.47,.11-1.67,.29-3.29-.09-.13-.03-.27-.04-.4-.02l-.93,.15c-.25,.04-.47,.17-.62,.36h0c-.11,.14-.25,.24-.41,.3-1,.39-4.73,1.85-5.9,2.09-.14,.03-.27,.08-.39,.17-.91,.65-4.75,3.53-6.4,6.85,0,0-1.02,1.8-1.33,3.37,0,0-.59,2.67-.93,3.58Z"/>
+        <path class="cls-1" d="M20.34,40.59s-1.66-.16-3.45-.28c-.43-.03-.86-.1-1.27-.23-1.18-.36-3.63-1.21-5.07-2.47-.16-.14-.31-.3-.45-.46-.21-.24-.68-.73-1.42-1.3-1.04-.79-3.51-2.98-5.13-8.9,0,0-1.37-5.1,.99-9.59,0,0,1.07-3.66,3.68-5.36,0,0,.94-1.53,4.42-3.52,.22-.13,.45-.23,.69-.3,.97-.31,3.72-1.17,5.05-1.48,.33-.08,.68-.11,1.02-.09,.59,.04,1.66,.08,2.17-.07,.58-.17,2.1-.28,2.73,.24,.46,.38,.98,.68,1.56,.81,.7,.16,1.47,.31,1.75,.27,.43-.07,1.5,.35,2.05,1.1,.33,.45,.73,.84,1.2,1.15,.27,.18,.56,.4,.78,.68,.19,.23,.39,.45,.63,.64,.75,.58,2.3,1.88,2.81,3.13,0,0,1.36,3.69,1.68,4.64,.02,.06,.03,.13,.02,.19l-.17,1.03c-.05,.3-.41,.45-.65,.26h0c-.1-.07-.15-.18-.16-.3-.05-.77-.33-3.76-1.82-5.14,0,0-3.01-3.39-4.29-4.59-.19-.18-.39-.34-.61-.48l-2.31-1.47c-.54-.34-1.16-.53-1.8-.55s-1.58-.1-2.48-.36c-.49-.14-1-.19-1.51-.12-.28,.04-.63,.05-1.06-.03-.57-.11-1.15-.06-1.71,.1l-3.85,1.14c-.23,.07-.44,.16-.65,.27l-.86,.46c-.06,.03-.12,.07-.18,.1-.53,.32-3.17,1.95-3.54,2.68-.42,.81-2.68,1.88-3.87,5.8,0,0-2.13,5-.93,6.97,.29,.47,.52,.98,.62,1.52,.07,.36,.13,.78,.17,1.24,.04,.48,.16,.96,.36,1.4,.58,1.28,1.86,3.86,3.36,5.03,0,0,3.17,3.06,5.65,4.16,.21,.1,.43,.2,.63,.32,.56,.34,2.13,1.08,4.78,.86,0,0,4.63-.05,6.31-1.02,0,0,3.19-1.61,4.79-3.04,0,0,1.92-1.61,2.93-3.7,.05-.11,.1-.23,.15-.34,.18-.46,.76-1.86,1.64-3.3,.43-.72,.72-1.52,.81-2.35,.03-.25,.03-.48,0-.67,0,0,.6,1.08,.14,3.41-.14,.69-.41,1.35-.78,1.95s-.88,1.44-1.2,2.16c-.21,.47-.48,.91-.81,1.31-.73,.89-2.05,2.37-3.34,3.25,0,0-1.42,1.78-4.05,2.25-.07,.01-.13,.03-.2,.06-.48,.2-2.72,1.09-2.95,.81,0,0-1.57,.65-2.97,.12Z"/>
+        <path class="cls-1" d="M14.17,9.59s-2.02,.68-2.53,1.28l-2.13,1.74s-2.27,1.98-2.8,3.69c-.11,.35-.23,.7-.39,1.04-.67,1.43-2.17,5.07-1.21,7.07,0,0,.42,2.98,.57,3.51s1.19,4.38,3.51,5.86c0,0,2.8,3.22,5.26,4.32,0,0,2.63,.89,4.11,.65,0,0,2,1.08,4.49,.17,.45-.17,.93-.29,1.41-.32,.02,0,.03,0,.05,0,.7-.03,1.38-.2,2-.52,1.9-.97,5.38-3.08,6.79-6.22,0,0,.58-1.03,1.14-2.19,.61-1.26,.98-2.63,1.11-4.02l.07-.76c.05-.51,.06-1.02,.04-1.53l-.03-.87c-.04-1.15-.25-2.28-.62-3.37-.13-.39-.27-.85-.4-1.35-.4-1.6-1.64-2.98-1.64-2.98l-2.71-3.01s-2.43-2.35-4.25-2.56c-.26-.03-.51-.13-.72-.28h0c-.21-.15-.46-.24-.71-.28l-2.42-.36-2.85,.14s-1.06-.29-5.13,1.16Zm6.27-.15c1.8,.53,4.43,.22,4.67,.51,.23,.29,.83,.56,1.66,.8,.83,.24,.63,.17,1.28,.45,.65,.27,1.39,.83,1.64,1.3,.25,.47,.61,.6,1.41,1.3,.79,.7,1.51,1.93,1.51,1.93,1.5,2.54,1.14,4.03,1.43,5,.3,.97,.19,1.17,.43,2.66s-1.55,6.73-2.42,8.4c-.88,1.67-3.46,4.13-5.74,4.94-2.28,.81-4.35,1.47-6.98,1.22-2.63-.25-3.46-.77-3.46-.77-1.42-1.04-2.4-1.35-2.4-1.35-1.94-.8-4.7-4.15-4.7-4.15-2.13-2.29-2.53-6.21-2.53-6.21-.53-1.86,.24-3.94,.24-3.94-.32-2,2.02-5.46,2.02-5.46l2.03-2.27,1.05-1.56,1.88-1.06s2.34-.97,3.06-1.1c.72-.13,3.93-.64,3.93-.64Z"/>
+      </g>
+      <path class="cls-1" d="M20.17,8.53c-8.3,0-15,6.71-15,14.98,0,1.32,.16,2.59,.51,3.81,.26,1.06,.65,2.08,1.16,3.04,2.47,4.85,7.5,8.15,13.33,8.15,8.28,0,14.98-6.71,14.98-15s-6.71-14.98-14.98-14.98Zm-3.38,24.94l-3.02-2.67-3,2.65h-.01V14.43c0-.5,.4-.9,.9-.9H27.81c.5,0,.9,.4,.9,.9v8.61l-1.8-1.47v-6.25H12.54v14.16l.03-.03,1.19-1.05,1.19,1.05,1.83,1.62v2.4Zm-1.6-10.89h7.5c.49,0,.89,.4,.89,.89s-.4,.89-.89,.89h-7.51c-.49,0-.89-.4-.89-.89s.4-.89,.89-.89Zm-.89-3.71c0-.49,.4-.89,.89-.89h5.96c.49,0,.89,.4,.89,.89s-.4,.89-.89,.89h-5.96c-.49,0-.89-.4-.89-.89Zm14.82,8.55h0s0,.02,0,.02l-7.47,6.06h-3.16v-3.22l.08-.07,7.43-6.08c.29-.29,.68-.45,1.09-.45,.41,0,.8,.16,1.09,.45h.01s.96,1.1,.96,1.1c.59,.6,.59,1.58-.01,2.19Z"/>
+    </g>
+  </g>
+</svg>

+ 49 - 0
src/packages/sjgj/assets/images/icons/pickup.svg

@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 45.07 46.06">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #d09f3b;
+      }
+    </style>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <g>
+      <g>
+        <path class="cls-1" d="M18.19,43.18s1.99,.35,3.53-.12c.77-.24,1.79-.33,2.61-.37,1.05-.05,2.09-.26,3.07-.66,.44-.18,.92-.38,1.35-.56,1.08-.45,1.93-1.66,3.18-2.36,.71-.4,1.38-.87,1.96-1.45,.7-.69,1.6-1.58,2.26-2.22,0,0,.5-.41,.64-1.44,.03-.23,.08-.45,.17-.67,.25-.61,.82-1.89,1.73-3.09,.44-.57,.72-1.25,.76-1.97,0-.06,0-.11,0-.17h0c.35,.31,.48,.8,.33,1.24-.13,.4-.27,.87-.28,1.12,0,.09,0,.19-.03,.28-.1,.5-.47,1.98-1.55,3.23-.38,.44-.68,.94-.92,1.48-.36,.82-1.29,2.19-3.64,3.76,0,0-3.44,3.03-5.5,3.53,0,0-2.89,.52-3.99,1.04,0,0-3.64,.98-5.71-.59Z"/>
+        <path class="cls-1" d="M28.98,45.18s1.04-.27,2.15-.97c.38-.24,.74-.53,1.07-.83,.59-.55,2.15-1.9,3.15-2.04,.08-.01,.14,.08,.09,.15-.26,.34-.94,1.18-2.08,2.01,0,0-.8,.47-1.48,.79-.27,.13-.54,.26-.79,.42-.33,.21-.99,.5-2.1,.47Z"/>
+        <path class="cls-1" d="M18.49,45.05s1.59,.25,6.22-.38c.55-.07,1.08-.21,1.6-.41,.87-.33,2.28-.89,3.27-1.38,1.53-.77,3.18-2.37,4.29-2.75s3.91-3.59,4.22-4.44,2.02-1.74,2.02-1.74c0,0-2.02,1.74-2.38,3.3-.12,.51-1.19,2.17-3.23,3.31-1.73,.97-1.6,1.9-3.19,2.4-.53,.17-1.04,.38-1.51,.67-.52,.31-1.58,.76-3.73,1.23-.23,.05-.45,.11-.67,.18-.74,.23-3.01,.75-6.91,.02Z"/>
+        <path class="cls-1" d="M16.83,41.56s2.32,1.61,5.91,.78,3.23-1.05,4.53-1.26,1.75-.16,3.84-2.04c2.08-1.87,1.97-.97,3.97-3.47,0,0,.89-1.56,2.4-4.29,.43-.78,.72-1.64,.83-2.53,.03-.25,.07-.55,.13-.87,.05-.29-.14-.56-.42-.63h0s-.24,1.07-.65,2.23c-.29,.81-.69,1.59-1.19,2.29-.26,.37-.58,.86-.81,1.31-.52,1.03-1.22,1.97-2.02,2.8-.67,.69-1.47,1.42-2.26,1.92-.32,.2-.64,.42-.94,.65-.91,.69-3.22,2.18-6.94,2.81-1.17,.2-2.37,.23-3.56,.15-.58-.04-1.49-.03-2.82,.17Z"/>
+        <path class="cls-1" d="M36.39,40.66s1.42-.48,2.09-2.06c0,0-.82-.07-2.09,2.06Z"/>
+        <path class="cls-1" d="M39.59,36.64s2.05-.22,3.02-6.12c0,0-2.41,3.47-3.02,6.12Z"/>
+        <path class="cls-1" d="M15.27,41.12s-1.78-.52-3.08-1.66c-1.3-1.14-3.6-2.69-4.31-3.5s-3.34-3.27-4.29-6.24c-.94-2.97-1.25-4.62-1.25-4.62,0,0-.58-.25,.08,2.15,0,0,.58,1.91,.81,2.87,0,0-.15,1.72,2.35,4.75,0,0,.87,1.59,2.88,3.04,0,0,1.59,.98,2.34,1.73,.39,.39,.83,.74,1.31,1.01,.97,.54,2.42,1.15,3.16,.47Z"/>
+        <path class="cls-1" d="M13.62,42.63s-.95-.9-2.81-1.9c-1.86-1.01-1.49-1.61-4.53-3.7-3.04-2.09-3.67-5.53-4.27-6.17,0,0-.83,.13,.76,2.77,0,0,1.49,2.76,3.31,4.05,0,0,3.01,2.87,3.8,3.12,0,0,1.58,2,3.74,1.83Z"/>
+        <path class="cls-1" d="M12.82,43.88c.11,1.25-4.8-2.31-6.47-3.59-.31-.24-.58-.54-.79-.87-.49-.75-1.48-1.47-1.48-1.47-1.16-.77-2.66-3.57-2.66-3.57-1.21-2.46-.99-3.51-.99-3.51,.32,2.18,3.33,5.55,4.05,6.67,.53,.82,2.18,2.04,3.02,2.63,.28,.2,.54,.44,.76,.7,.96,1.11,3.13,2.17,3.98,2.55,.23,.1,.43,.26,.59,.46h0Z"/>
+        <path class="cls-1" d="M8.2,43.5s-3.08-1.62-4.65-4.33c0,0,3.61,2.63,4.65,4.33Z"/>
+        <path class="cls-1" d="M.12,12.27s.78-1.63,1.64-2.55c.86-.92,2.85-3.33,3.42-3.49,0,0-1.26-.28-2.98,2.54,0,0-1.42,.69-2.08,3.5Z"/>
+        <path class="cls-1" d="M.02,16.88s.5-2.14,1.42-3.13c.92-1,2.79-3.91,2.79-3.91,0,0,1.58-2.11,2.71-3.03,.08-.07,0-.19-.09-.15-.77,.32-2.08,1.06-3.09,2.67,0,0-2.67,1.84-2.59,4.14,0,0-1.36,.84-1.14,3.42Z"/>
+        <path class="cls-1" d="M11.02,2.53c.57,0,1.88-.17,3.2-1.31,.1-.08,.04-.24-.09-.24-.64,0-2.07,.14-3.21,1.31-.09,.09-.02,.24,.1,.24Z"/>
+        <path class="cls-1" d="M19.61,.61s1.38,.23,2.6,.15c1.23-.07,1.79,0,1.81-.29,0,0-2.01-1.15-4.42,.14Z"/>
+        <path class="cls-1" d="M27.08,1.18s.47,.9,1.17,.37c0,0-.06-.55-1.17-.37Z"/>
+        <path class="cls-1" d="M21.79,2.37s1.77,.48,2.53-.08c0,0-.72-1-3.85-.62-3.14,.38-5.21,.29-6.65,1.08,0,0-2.45,.36-2.64,1.5,0,0,1.67,0,3.45-.93,1.22-.63,2.56-1.01,3.94-1.06,.22,0,.42,0,.58,.01,.38,.04,.76,.05,1.13,.04,.45-.02,1.02-.02,1.5,.06Z"/>
+        <path class="cls-1" d="M7.44,6.28s2.17-.49,2.91-1.6c0,0-.85-.52-2.91,1.6Z"/>
+        <path class="cls-1" d="M41.5,37.16s1.28-.91,2.21-4.18c0,0-.68,.6-2.21,4.18Z"/>
+        <path class="cls-1" d="M38.84,34.36s.71-2.99,2.09-3.74c0,0,.59,1.08-1.18,3.18,0,0-.13,.25-.92,.56Z"/>
+        <path class="cls-1" d="M42.45,37.96s1.58-3.62,2.62-4.26c0,0,.18,2.76-2.62,4.26Z"/>
+        <path class="cls-1" d="M35.11,46.06s1.56-.58,2.1-1.84c0,0-1.21-.22-2.1,1.84Z"/>
+        <path class="cls-1" d="M40.64,11.88s-1.67-2.31-2.4-2.86c-.73-.55-2.18-1.81-2.47-2.45-.29-.64-2.3-1.17-3.78-3.53,0,0,2.01,.81,3.98,2.85,0,0,1.68,.26,2.47,2.37,0,0,2.22,1.98,2.2,3.62Z"/>
+        <path class="cls-1" d="M39.76,7.42s-.57,.13-1.67-1.38c-.69-.95-1.39-1.41-1.81-1.63s-.82-.58-1.04-1.03c-.07-.14-.12-.28-.14-.43,0,0,1.05,.67,2.22,1.56,1.04,.79,2.21,1.72,2.44,2.91Z"/>
+        <path class="cls-1" d="M41.19,6.66c-.37-.24-1.22-.83-1.81-1.62,0,0-2.08-1.47-2.46-2.4,0,0,.29-.66,2.68,1.99,0,0,1.4,.65,1.73,1.92,.02,.08-.07,.15-.14,.1Z"/>
+        <path class="cls-1" d="M40.12,13.96s-.7-2.47-2.12-4.01c-.77-.84-1.17-1.35-1.38-1.64-.25-.35-.55-.67-.87-.96-.35-.31-.79-.66-1.21-.9-.48-.27-.92-.6-1.31-.99-.6-.6-1.56-1.33-2.48-1.04-.05,.01-.06,.07-.03,.11,.24,.26,1.1,1.16,2.17,1.77,.44,.25,.84,.58,1.2,.94,.47,.48,1.12,1.13,1.66,1.64,.14,.13,.28,.24,.43,.36,.43,.33,1.5,1.2,1.92,2.05,0,0,1.36,2.79,2.03,2.69Z"/>
+        <path class="cls-1" d="M25.82,2.77s1.13,1.08,2.76,.82c0,0-.72-1.2-2.23-1.13,0,0-.54-.06-.53,.31Z"/>
+        <path class="cls-1" d="M40.41,21.49s.65-2.83-1.51-5.45c0,0-.48-1.28-.67-2.36,0,0-.17-1.84-3.05-4.31,0,0-3.65-3.14-4.97-3.69,0,0-.67-.43-1.19-.34,0,0,.63,.57,.97,.98,.33,.39,.69,.74,1.08,1.06,.27,.22,.57,.47,.86,.71,.31,.25,.6,.51,.87,.8,.5,.52,1.36,1.4,1.97,1.89,.42,.34,.83,.71,1.19,1.12,.85,.95,2.17,2.46,2.3,2.88,0,0,.58,1.17,.66,3.18,0,0,.43,3.35,1.49,3.52Z"/>
+        <path class="cls-1" d="M23.24,4.25s2.22,.15,2.93,.7c.72,.55,1.54,.1,1.54,.1,0,0-.12-.52-1.39-.72,0,0-1.21-.46-1.27-.61s-1.23-.57-1.95-.32c-.61,.21-1.25-.46-3.03-.08-.65,.14-1.33,.17-2,.13-.49-.03-1.12,.02-1.78,.29,0,0-5.35,1.54-5.84,2.8l-1.26,.73s1.84-.61,2.34-.9,4.78-2.05,6.8-2.29c0,0,1.05,0,2.49,.06,0,0,.6,.36,2.42,.13Z"/>
+        <path class="cls-1" d="M.46,21.41s-1.05-1.19,.91-3.75c0,0,.55-2.68,1.29-3.53s.04-2.09,4.13-5.38c0,0,.58-.77,2.66-1.58,0,0-1.51,1.07-1.95,1.72-.34,.51-.75,.97-1.18,1.4l-.63,.63s-2.32,2.87-2.62,3.52c0,0-1.21,2.69-1.45,2.96,0,0-.13,2.65-.96,3.89"/>
+        <path class="cls-1" d="M2.11,22.48s-.86-3.05,1.02-5.07c0,0,.72-4.15,3.25-6.16,0,0,2.03-2.49,4.16-3.34,.05-.02,.1-.04,.15-.07,.54-.33,4.09-2.49,6.33-2.83,0,0,1.89-.44,3.73-.44,0,0,3.96,.19,5.95,1.38,0,0,2.67,.29,4.45,2.34,0,0,.66,.12,1.39,.97,.47,.54,.96,1.05,1.52,1.48,.61,.48,1.37,1.19,1.82,2.07,.13,.24,.25,.48,.41,.71,.37,.55,1.09,1.8,1.56,3.69,.09,.37-.38,.62-.63,.33h0c-.05-.06-.08-.12-.09-.2-.05-.42-.31-1.96-1.39-3.06l-.61-.67-1.56-1.8-1.44-1.32s-1.38-1.64-2.84-2.49-2.53-1.38-2.53-1.38l-3.58-.91c-.15-.04-.31-.04-.47,0-.47,.11-1.67,.29-3.29-.09-.13-.03-.27-.04-.4-.02l-.93,.15c-.25,.04-.47,.17-.62,.36h0c-.11,.14-.25,.24-.41,.3-1,.39-4.73,1.85-5.9,2.09-.14,.03-.27,.08-.39,.17-.91,.65-4.75,3.53-6.4,6.85,0,0-1.02,1.8-1.33,3.37,0,0-.59,2.67-.93,3.58Z"/>
+        <path class="cls-1" d="M20.34,40.59s-1.66-.16-3.45-.28c-.43-.03-.86-.1-1.27-.23-1.18-.36-3.63-1.21-5.07-2.47-.16-.14-.31-.3-.45-.46-.21-.24-.68-.73-1.42-1.3-1.04-.79-3.51-2.98-5.13-8.9,0,0-1.37-5.1,.99-9.59,0,0,1.07-3.66,3.68-5.36,0,0,.94-1.53,4.42-3.52,.22-.13,.45-.23,.69-.3,.97-.31,3.72-1.17,5.05-1.48,.33-.08,.68-.11,1.02-.09,.59,.04,1.66,.08,2.17-.07,.58-.17,2.1-.28,2.73,.24,.46,.38,.98,.68,1.56,.81,.7,.16,1.47,.31,1.75,.27,.43-.07,1.5,.35,2.05,1.1,.33,.45,.73,.84,1.2,1.15,.27,.18,.56,.4,.78,.68,.19,.23,.39,.45,.63,.64,.75,.58,2.3,1.88,2.81,3.13,0,0,1.36,3.69,1.68,4.64,.02,.06,.03,.13,.02,.19l-.17,1.03c-.05,.3-.41,.45-.65,.26h0c-.1-.07-.15-.18-.16-.3-.05-.77-.33-3.76-1.82-5.14,0,0-3.01-3.39-4.29-4.59-.19-.18-.39-.34-.61-.48l-2.31-1.47c-.54-.34-1.16-.53-1.8-.55s-1.58-.1-2.48-.36c-.49-.14-1-.19-1.51-.12-.28,.04-.63,.05-1.06-.03-.57-.11-1.15-.06-1.71,.1l-3.85,1.14c-.23,.07-.44,.16-.65,.27l-.86,.46c-.06,.03-.12,.07-.18,.1-.53,.32-3.17,1.95-3.54,2.68-.42,.81-2.68,1.88-3.87,5.8,0,0-2.13,5-.93,6.97,.29,.47,.52,.98,.62,1.52,.07,.36,.13,.78,.17,1.24s.16,.96,.36,1.4c.58,1.28,1.86,3.86,3.36,5.03,0,0,3.17,3.06,5.65,4.16,.21,.1,.43,.2,.63,.32,.56,.34,2.13,1.08,4.78,.86,0,0,4.63-.05,6.31-1.02,0,0,3.19-1.61,4.79-3.04,0,0,1.92-1.61,2.93-3.7,.05-.11,.1-.23,.15-.34,.18-.46,.76-1.86,1.64-3.3,.43-.72,.72-1.52,.81-2.35,.03-.25,.03-.48,0-.67,0,0,.6,1.08,.14,3.41-.14,.69-.41,1.35-.78,1.95-.37,.59-.88,1.44-1.2,2.16-.21,.47-.48,.91-.81,1.31-.73,.89-2.05,2.37-3.34,3.25,0,0-1.42,1.78-4.05,2.25-.07,.01-.13,.03-.2,.06-.48,.2-2.72,1.09-2.95,.81,0,0-1.57,.65-2.97,.12Z"/>
+        <path class="cls-1" d="M14.17,9.59s-2.02,.68-2.53,1.28l-2.13,1.74s-2.27,1.98-2.8,3.69c-.11,.35-.23,.7-.39,1.04-.67,1.43-2.17,5.07-1.21,7.07,0,0,.42,2.98,.57,3.51s1.19,4.38,3.51,5.86c0,0,2.8,3.22,5.26,4.32,0,0,2.63,.89,4.11,.65,0,0,2,1.08,4.49,.17,.45-.17,.93-.29,1.41-.32,.02,0,.03,0,.05,0,.7-.03,1.38-.2,2-.52,1.9-.97,5.38-3.08,6.79-6.22,0,0,.58-1.03,1.14-2.19,.61-1.26,.98-2.63,1.11-4.02l.07-.76c.05-.51,.06-1.02,.04-1.53l-.03-.87c-.04-1.15-.25-2.28-.62-3.37-.13-.39-.27-.85-.4-1.35-.4-1.6-1.64-2.98-1.64-2.98l-2.71-3.01s-2.43-2.35-4.25-2.56c-.26-.03-.51-.13-.72-.28h0c-.21-.15-.46-.24-.71-.28l-2.42-.36-2.85,.14s-1.06-.29-5.13,1.16Zm6.27-.15c1.8,.53,4.43,.22,4.67,.51,.23,.29,.83,.56,1.66,.8,.83,.24,.63,.17,1.28,.45,.65,.27,1.39,.83,1.64,1.3,.25,.47,.61,.6,1.41,1.3,.79,.7,1.51,1.93,1.51,1.93,1.5,2.54,1.14,4.03,1.43,5,.3,.97,.19,1.17,.43,2.66,.24,1.49-1.55,6.73-2.42,8.4-.88,1.67-3.46,4.13-5.74,4.94-2.28,.81-4.35,1.47-6.98,1.22-2.63-.25-3.46-.77-3.46-.77-1.42-1.04-2.4-1.35-2.4-1.35-1.94-.8-4.7-4.15-4.7-4.15-2.13-2.29-2.53-6.21-2.53-6.21-.53-1.86,.24-3.94,.24-3.94-.32-2,2.02-5.46,2.02-5.46l2.03-2.27,1.05-1.56,1.88-1.06s2.34-.97,3.06-1.1c.72-.13,3.93-.64,3.93-.64Z"/>
+      </g>
+      <path class="cls-1" d="M20.17,8.53c-8.3,0-15,6.71-15,14.98,0,1.32,.16,2.59,.51,3.81,.26,1.06,.65,2.08,1.16,3.04,2.47,4.85,7.5,8.15,13.33,8.15,8.28,0,14.98-6.71,14.98-15s-6.71-14.98-14.98-14.98Zm-4.11,24.96l-3.02-2.67-3,2.65h-.02V14.45c0-.5,.4-.9,.9-.9H27.08c.5,0,.9,.4,.9,.9v8.61l-1.79-1.47v-6.25H11.81v14.16l.03-.03,1.19-1.05,1.19,1.05,1.83,1.62v2.4Zm-1.6-10.89h7.5c.49,0,.89,.4,.89,.89s-.4,.89-.89,.89h-7.51c-.49,0-.89-.4-.89-.89s.4-.89,.89-.89Zm-.89-3.71c0-.49,.4-.89,.89-.89h5.96c.49,0,.89,.4,.89,.89s-.4,.89-.89,.89h-5.96c-.49,0-.89-.4-.89-.89Zm16.39,6.73l-8.16,7.29c-.19,.17-.44,.26-.68,.26s-.5-.09-.69-.27l-3.68-3.43c-.41-.38-.43-1.03-.05-1.44,.39-.41,1.03-.44,1.44-.05l3,2.8,7.46-6.67c.42-.37,1.06-.34,1.44,.08s.34,1.06-.08,1.44Z"/>
+    </g>
+  </g>
+</svg>

+ 56 - 0
src/packages/sjgj/assets/images/tabbar-bg.svg

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg id="_图层_2" data-name="图层 2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 430 76.65">
+  <defs>
+    <style>
+      .cls-1 {
+        fill: #fff;
+        opacity: 0;
+      }
+
+      .cls-2 {
+        fill: none;
+        stroke: #cf9e3a;
+        stroke-miterlimit: 10;
+        stroke-width: .52px;
+      }
+
+      .cls-3 {
+        clip-path: url(#clippath);
+      }
+    </style>
+    <clipPath id="clippath">
+      <rect class="cls-1" width="430" height="76.65"/>
+    </clipPath>
+  </defs>
+  <g id="_图层_1-2" data-name="图层 1">
+    <g>
+      <rect class="cls-1" width="430" height="76.65"/>
+      <g class="cls-3">
+        <g>
+          <g>
+            <path class="cls-2" d="M432.75,50.28c-1.2,2.56-2.34,4.59-3.97,6.74-2.1,2.11-3.38,3.81-2.86,6.99,.02,.11-.01,.21-.07,.29,0,0-.33,.41-.33,.42l.4-.7c.22,1.23,.48,2.55,.67,3.78,.24,1.22,.59,2.39,.86,3.57,.53,2.58,1.2,4.92,1.8,7.62,.03,.12-.05,.23-.16,.25-1.43-.53-2.56-1.72-3.52-2.86-1.87-2.32-2.78-5.34-2.61-8.31-.01-1.65,.42-3.25,1.04-4.77,.04-.11,.13-.2,.23-.24l-.4,.7c.54-1.37,1.03-2.65,1.33-4.01,.32-1.34,.32-2.89,.82-4.3,1.13-2.71,3.6-4.87,6.53-5.46,.17-.03,.31,.15,.24,.3h0Z"/>
+            <path class="cls-2" d="M427.22,43.21c.6-2.02,2.21-3.75,4.23-4.35,1.02-.23,2.17-.07,3.12-.31,1.47-.3,2.68-1.46,4-2.19,3.3-1.64,7.43-1.62,10.34,.82,.12,.1,.1,.31-.05,.38-3.44,1.78-7.28,2.13-11.07,1.67-1.46-.18-2.94,.23-3.9,1.41-.63,.74-1.25,1.45-2.14,1.81-1.36,.63-2.73,1.06-4.3,1.05-.16,0-.28-.15-.24-.3h0Z"/>
+            <path class="cls-2" d="M416.46,62.98s.07-.13,.07-.12c.26,1.94,.53,3.8,.89,5.61,.36,1.81,.82,3.57,1.37,5.29,1.24,3.44,2.41,6.86,4.22,10.09,2.84,4.99,8.36,7.5,13.71,8.71,1.75,.45,3.53,.76,5.31,.89l-1.44,.4c.42-.36,.94-.47,1.45-.4,1.78,.13,3.56,.13,5.34,.03,3.61-.18,7.15-.86,10.6-2.06,1.76-.59,3.48-1.34,5.25-2.16,.1-.05,.22,0,.26,.09,.03,.07,.02,.15-.03,.21-1.25,1.54-2.76,2.85-4.42,3.98-3.35,2.26-7.33,3.66-11.37,4.04-2.04,.19-4.1,.09-6.12-.24l1.45-.4c-.41,.33-.95,.5-1.45,.4-2.01-.34-3.99-.87-5.87-1.61-5.56-2.31-9.8-6.72-14.04-10.8-2.9-2.76-5.24-6.28-6.06-10.27-.92-3.93-.87-8.16,.6-11.93,.16-.17,.42,.08,.28,.26h0Z"/>
+            <path class="cls-2" d="M431.04,37.08c-5.49,1.87-8.38,6.09-10.03,11.38-.66,1.84-1.55,3.63-2.59,5.25-2.09,3.14-4.35,5.85-4.94,9.64-.54,3.15-.43,6.49,.04,9.66,.65,4.05,2.1,8.05,4.48,11.39,2.11,2.91,4.98,5.13,8.06,6.9,4.74,2.59,9.52,5.42,14.58,7.39,1.7,.62,3.41,1.12,5.16,1.18,.36,.02,.65,.32,.63,.69-.01,.29-.21,.52-.47,.6-.99,.3-2.04,.44-3.04,.43-4.93-.13-9.59-2.08-13.9-4.32-3.27-1.58-6.43-3.64-8.87-6.38-2.41-2.74-4.4-5.95-5.71-9.36-2.2-5.84-2.65-12.16-2.28-18.35,.15-1.92,.47-3.89,1.12-5.78,1.37-3.84,3.36-7.08,4.79-10.8,1.33-3.54,3.73-6.89,7.16-8.63,1.82-.9,3.8-1.44,5.78-1.27,.22,.04,.24,.33,.02,.38h0Z"/>
+            <path class="cls-2" d="M418.52,64.76c-1.01-1.62-1.22-3.75-.36-5.44,.45-.78,1.3-1.45,1.71-2.25,.65-1.18,.45-2.71,.63-4.05,.52-2.82,2.27-5.45,5.11-6.35,2.03-.55,2.01-.52,1.36,1.42-.89,2.87-2.41,5.15-4.64,7.18-1.01,.95-1.56,2.17-1.25,3.53,.16,.87,.31,1.74,0,2.57-.47,1.33-1,2.34-2.16,3.44-.11,.11-.3,.09-.38-.04h0Z"/>
+            <path class="cls-2" d="M430.02,67.05c1.11,1.88,1.88,3.67,2.32,5.73,.16,.99,.14,2.11,.56,3.05,.4,.95,1.09,1.75,1.92,2.35,1.55,1.08,3.19,2.11,4.94,2.79,1.65,.79,3.47,1.31,5.61,2.07,.12,.04,.14,.23,.02,.28-3.4,1.83-7.84,.89-10.35-2.01-1.37-1.41-1.86-3.48-2.95-5.04-.58-.9-1.43-1.71-1.97-2.69-.53-.98-.74-2.08-.83-3.17-.07-1.1,0-2.22,.44-3.33,.05-.12,.22-.13,.28-.02h0Z"/>
+          </g>
+          <path class="cls-2" d="M423.79,12.52s-5.64,1.92-8.95,5.33c-1.65,1.71-4.15,3.4-6.23,4.67-2.66,1.62-5.04,3.66-6.99,6.09-.88,1.09-1.83,2.27-2.71,3.37-2.15,2.71-2.61,7.04-4.85,10.63-1.27,2.05-2.33,4.22-3.01,6.53-.82,2.78-1.88,6.35-2.69,8.97,0,0-.71,1.78,.39,4.65,.24,.64,.43,1.29,.51,1.97,.24,1.93,.57,6.04-.09,10.44-.32,2.1-.09,4.27,.85,6.18,.07,.15,.15,.3,.23,.44h-.02c-1.34-.31-2.37-1.38-2.62-2.73-.23-1.23-.55-2.63-.87-3.3-.12-.25-.24-.5-.32-.76-.46-1.45-1.6-5.79-.59-10.55,.36-1.68,.42-3.41,.27-5.12-.23-2.64,.2-7.51,4.06-14.89,0,0,4.59-12.74,9.19-16.96,0,0,6.73-5.48,8.84-8.37,0,0,8.02-7.73,15.61-6.59Z"/>
+          <path class="cls-2" d="M393.04,22.73s-2.31,2.19-4.18,5.57c-.65,1.17-1.16,2.41-1.58,3.68-.76,2.26-2.85,7.96-5.24,9.76-.19,.15-.47-.02-.44-.27,.18-1.25,.76-4.38,2.51-8.17,0,0,1.4-2.36,2.71-4.16,.52-.72,1.02-1.45,1.45-2.22,.56-1,1.86-2.7,4.77-4.2Z"/>
+          <path class="cls-2" d="M420.33,8.11s-4.47,1.62-15.54,9.83c-1.31,.97-2.5,2.09-3.56,3.33-1.78,2.09-4.63,5.54-6.49,8.23-2.88,4.17-4.84,10.64-7.17,13.21-2.33,2.57-5,14.84-4.57,17.49,.43,2.66-2.75,7.39-2.75,7.39,0,0,2.75-7.39,1.46-11.91-.42-1.47-.03-7.31,3.62-13.16,3.11-4.97,1.44-7.19,4.82-10.74,1.13-1.18,2.14-2.47,2.96-3.88,.9-1.55,3-4.21,7.9-8.49,.51-.45,1-.93,1.48-1.42,1.57-1.64,6.7-6.22,17.85-9.88Z"/>
+          <path class="cls-2" d="M429.61,14.77s-8.29-.85-16.4,6.39c-8.1,7.24-6.85,7.31-9.92,9.7-3.06,2.4-4.3,2.92-7.02,10.73-2.72,7.81-3.71,5.32-5.31,14.63,0,0-.07,5.3-.1,14.52,0,2.64,.48,5.26,1.45,7.72,.28,.71,.58,1.52,.92,2.44,.29,.81,1.16,1.25,1.99,1.02h0s-.91-3.09-1.49-6.69c-.4-2.52-.46-5.09-.19-7.63,.14-1.31,.28-3.04,.22-4.53-.12-3.41,.34-6.81,1.25-10.11,.75-2.74,1.78-5.75,3.11-8.18,.54-.98,1.05-1.98,1.5-3.01,1.36-3.08,5.21-10.23,13.96-17.14,2.76-2.18,5.8-3.95,8.98-5.44,1.55-.72,3.89-2.04,7.05-4.44Z"/>
+          <path class="cls-2" d="M380.31,44.93s-3,3.27-2.48,8.32c0,0,2.22-.99,2.48-8.32Z"/>
+          <path class="cls-2" d="M377.76,59.9s-4.98,3.47,.9,20.11c0,0,1.28-12.4-.9-20.11Z"/>
+          <path class="cls-2" d="M372.07,61.26s-2.01,4.17,.23,13.95c0,0,.9-2.53-.23-13.95Z"/>
+          <path class="cls-2" d="M382.93,64.72s2.4,8.73-.09,12.65c0,0-3.06-1.94-1.48-9.89,0,0-.01-.83,1.56-2.76Z"/>
+          <path class="cls-2" d="M368.5,60.55s1.06,11.6-.7,14.74c0,0-4.4-6.88,.7-14.74Z"/>
+          <path class="cls-2" d="M375.92,29.15s-3.21,3.71-2.8,7.74c0,0,3.45-1.16,2.8-7.74Z"/>
+          <path class="cls-2" d="M494.82,43.15s6.57,6.66,4.58,14.56c0,0,4.04,11.74,.35,20.55,0,0-1.71,9.32-6,14.55-.1,.13-.2,.26-.28,.4-.92,1.63-7.03,12.26-12.34,16.34,0,0-4.27,3.83-9.03,6.44,0,0-10.5,5.13-17.34,4.89,0,0-7.33,3.05-14.84,.28,0,0-1.89,.62-4.98-.52-1.97-.73-3.98-1.33-6.05-1.66-2.25-.36-5.24-1.13-7.64-2.76-.67-.45-1.35-.89-2.07-1.26-1.74-.91-5.38-3.11-9.3-7.32-.77-.83,.09-2.14,1.15-1.76h0c.21,.07,.38,.2,.51,.38,.73,1.01,3.6,4.62,7.95,5.94l2.51,.86,6.6,2.43,5.6,1.36s5.9,2.27,10.89,2.4c5,.13,8.5-.04,8.5-.04l10.55-2.73c.45-.12,.87-.33,1.22-.64,1.06-.94,3.9-3.12,8.63-4.45,.38-.11,.75-.28,1.06-.53l2.19-1.71c.58-.45,.97-1.1,1.1-1.83h0c.09-.51,.31-.98,.64-1.38,2.02-2.44,9.59-11.52,12.29-13.79,.32-.27,.58-.6,.76-.98,1.43-2.99,7.26-15.89,6.8-26.83,0,0,.06-6.11-1.34-10.61,0,0-2.28-7.74-2.69-10.59Z"/>
+          <path class="cls-2" d="M421.92,22.27s4.52-1.95,9.33-4.2c1.16-.54,2.37-.95,3.62-1.22,3.57-.76,11.09-2.04,16.63-.82,.62,.14,1.23,.34,1.83,.55,.88,.32,2.79,.94,5.51,1.34,3.82,.57,13.3,2.71,25.94,15.7,0,0,10.79,11.24,11.09,26.19,0,0,2.44,11-1.9,19.1,0,0-.24,5.3-6.41,15.39-.39,.64-.84,1.23-1.36,1.77-2.06,2.17-7.96,8.31-10.94,11.02-.75,.68-1.6,1.24-2.51,1.68-1.57,.74-4.4,2.16-5.51,3.28-1.27,1.28-5.03,3.71-7.39,3.28-1.73-.32-3.5-.36-5.19,.12-2.03,.58-4.26,1.29-4.9,1.8-1,.8-4.37,1.23-6.88,.07-1.49-.69-3.08-1.14-4.73-1.27-.96-.07-2.02-.25-2.97-.64-.82-.33-1.66-.61-2.54-.75-2.75-.43-8.62-1.59-11.71-4.09,0,0-8.78-7.59-10.96-9.61-.14-.13-.25-.3-.32-.48l-1.03-2.91c-.3-.86,.41-1.73,1.31-1.6h0c.35,.05,.66,.25,.84,.54,1.22,1.92,6.21,9.25,12.03,10.71,0,0,12.6,4.47,17.61,5.76,.74,.19,1.5,.31,2.26,.36l8.06,.52c1.89,.12,3.77-.28,5.45-1.14,1.73-.89,4.24-1.99,6.92-2.6,1.47-.33,2.87-.93,4.06-1.84,.65-.5,1.56-1.03,2.78-1.42,1.62-.52,3.07-1.47,4.27-2.68l8.32-8.42c.49-.5,.93-1.04,1.31-1.62l1.57-2.41c.11-.17,.22-.34,.32-.52,.9-1.57,5.41-9.56,5.35-11.98-.07-2.69,4.25-8.67,1.75-20.5,0,0-1.6-15.97-7.52-19.35-1.42-.81-2.73-1.79-3.78-3.05-.69-.82-1.46-1.83-2.22-2.97-.79-1.2-1.77-2.26-2.92-3.12-3.32-2.5-10.31-7.32-15.84-8.22,0,0-12.55-3.39-20.53-2.72-.69,.06-1.38,.1-2.08,.07-1.94-.08-7.04,.23-13.58,4.58,0,0-11.89,6.72-14.85,11.62,0,0-5.96,8.69-8.06,14.66,0,0-2.68,6.89-2.29,13.74,.02,.37,.06,.73,.11,1.09,.18,1.44,.67,5.89,.47,10.86-.1,2.47,.28,4.95,1.24,7.23,.29,.68,.61,1.3,.95,1.74,0,0-3.07-1.93-5.21-8.62-.64-1.99-.88-4.08-.76-6.17,.12-2.05,.22-4.96,.04-7.29-.12-1.52-.06-3.05,.23-4.55,.63-3.33,1.94-9.06,4.02-13.15,0,0,1.14-6.61,7.28-11.59,.16-.13,.3-.27,.43-.42,.97-1.2,5.47-6.7,6.46-6.3,0,0,3.14-3.91,7.52-4.54Z"/>
+          <path class="cls-2" d="M481.99,93.63s4.26-4.62,4.71-6.9l3.01-7.54s3.05-8.34,1.99-13.53c-.22-1.07-.39-2.15-.47-3.24-.31-4.65-1.6-16.2-6.92-20,0,0-5.32-7.1-6.46-8.26-1.14-1.16-9.31-9.63-17.43-10.16,0,0-11.82-4.35-19.76-3.68,0,0-8.05,1.44-11.55,4.18,0,0-6.7,.04-11.85,5.95-.94,1.08-1.98,2.06-3.19,2.82-.04,.03-.08,.05-.12,.07-1.76,1.08-3.28,2.49-4.44,4.19-3.54,5.2-9.51,15.62-8.7,25.76,0,0-.03,3.5,.19,7.29,.23,4.13,1.21,8.19,2.86,11.98l.9,2.06c.6,1.38,1.29,2.72,2.07,4.01l1.32,2.2c1.74,2.9,3.9,5.53,6.39,7.82,.9,.83,1.91,1.82,2.95,2.94,3.31,3.58,8.48,5.36,8.48,5.36l11.3,3.94s9.64,2.62,14.64,.57c.71-.29,1.5-.38,2.26-.31h0c.76,.07,1.52-.03,2.24-.3l6.77-2.53,7.18-4.42s3.16-.76,11.63-10.29Zm-16.01,9.31c-5.41,1.19-11.78,5.75-12.79,5.33-1.01-.41-2.95-.26-5.42,.29-2.48,.56-1.88,.45-3.94,.66-2.06,.21-4.76-.18-6.09-1.03-1.32-.85-2.43-.66-5.49-1.36-3.06-.69-6.65-2.85-6.65-2.85-7.49-4.42-8.68-8.8-10.82-10.89-2.15-2.09-2.16-2.76-4.9-6.27s-5.58-19.62-5.69-25.18c-.11-5.56,3.08-15.6,7.82-20.94,4.73-5.34,9.15-9.98,16.32-13.08,7.16-3.1,10.05-2.92,10.05-2.92,5.15,.67,8.12,.09,8.12,.09,6.14-.69,18.06,4.03,18.06,4.03,8.78,2.9,15.39,12.45,15.39,12.45,4.02,4.05,4.99,10.54,4.99,10.54,3.68,4.71,2.53,16.99,2.53,16.99l-2.01,8.77-.51,5.53-3.35,5.4s-4.68,5.84-6.36,7.2c-1.68,1.36-9.25,7.23-9.25,7.23Z"/>
+          <path class="cls-2" d="M473.32,94.59c1.62-1.44,6.58-7.03,8.63-11.03,2.05-4,5.25-11.3,4.23-14.79-.83-2.85-.81-7.38-.77-8.95,.01-.49,0-.98-.05-1.46-.25-2.61-1.38-10.29-6.44-15.25-.65-.64-1.26-1.31-1.77-2.07-1.53-2.27-5.3-7.31-9.95-9.87-1.35-.74-2.84-1.19-4.37-1.38-2.2-.28-6.52-.95-8.97-2.16-1.37-.68-2.82-1.16-4.33-1.34-2.45-.28-5.92-.47-8.64,.16-1.14,.26-2.3,.37-3.47,.35-1.78-.04-4.74,.34-8.15,2.55-.92,.6-1.92,1.06-2.96,1.41-1.69,.56-4.32,1.66-6.08,3.52-2.76,2.94-5.2,2.99-7.81,9.56-2.61,6.57-6.42,7.51-6.44,19.16,0,0-.1,11.52,2.38,16.88,2.48,5.36,4.99,10.76,7.52,12.89,2.41,2.04,6.4,7.29,9.45,9.12,.3,.18,.58,.37,.86,.57,1.01,.74,3.75,2.48,7.33,2.67,4.55,.25,6.5,2,7.21,2.29,.71,.29,5.08-.04,7.61-.31,2.53-.27,3.57-.74,4.56-.65,.99,.08,6.16-2.95,7.17-2.96,1.02-.02,3.94-1.7,5.07-2.03,1.13-.33,6.56-5.43,8.18-6.87Zm-9.62,2.16c-4.31,1.95-2.6,1.92-7.02,3.66-4.42,1.74-2.8,1.51-6.52,2.53-3.72,1.03-4.04,1.1-6.26,.45-2.23-.66-3.2-.58-5.02-1.38-1.82-.8-2.7,.05-5.23-1.22-1.22-.61-2.84-1.23-4.19-1.7-1.67-.59-3.2-1.51-4.49-2.72-.49-.46-1.1-1.02-1.87-1.71-3.25-2.94-5.48-4.28-8.6-9.37-3.13-5.09-3.57-6.97-3.96-10.27-.39-3.29,.01-3.09-.46-7.86-.47-4.77-.02-3.75,.63-9.05,.65-5.3,4.77-10.76,8.61-17.02,3.84-6.26,2.51-2.48,13.94-8.02,11.43-5.54,17.78,1.7,21.93,0,4.15-1.7,11.37,4.46,12.95,6.48s2.25,4.41,7.46,8.88c5.21,4.47,3.79,8.35,5.62,12.4,1.83,4.05,1.62,10.21-.04,17.85-1.66,7.63-13.16,16.12-17.47,18.07Z"/>
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>

+ 11 - 1
src/packages/sjgj/views/home/index.less

@@ -1,8 +1,18 @@
 .home {
     .app-tabbar {
-        background: var(--tabbar-background) !important;
+        height: 70px;
+        background:#F7F8F8 url(../../assets/images/tabbar-bg.svg) no-repeat !important;
+        background-size: auto 100% !important;
+        background-position: right bottom !important;
+        box-shadow: 0 -3px 10px #EAEAEA;
+        padding: 0 36px;
         margin-top: auto;
 
+        &__wrapper {
+            height: 100%;
+            border-top: 0;
+        }
+
         .app-iconfont {
             color: var(--tabbar-icon);
 

+ 68 - 95
src/packages/sjgj/views/home/main/index.less

@@ -1,38 +1,29 @@
 @import '@mobile/assets/themes/base/mixin.less';
 
 .home-main {
-    &__title {
+    background:#fff  url(../../../assets/images/home-bg.png) repeat-y;
+    background-size: 100%;
+
+    .app-view__body {
+        margin-top: -60px;
+    }
+
+    &__header {
         display: flex;
-        flex-direction: column;
+        justify-content: center;
         align-items: center;
+        height: 212px;
+        background: #fff url(../../../assets/images/home-header.png) no-repeat;
+        background-size: 100%;
+        padding-bottom: 20px;
 
-        span {
-            &:first-child {
-                font-size: 16px;
-            }
-
-            &:last-child {
-                font-size: 14px;
-            }
+        img {
+            width: 35%;
         }
     }
 
     &__banner {
-        position: relative;
-        overflow: hidden;
-        padding: 10px;
-        padding-bottom: 0;
-
-        &::before {
-            content: '';
-            width: 140%;
-            height: 150px;
-            position: absolute;
-            left: -20%;
-            top: 0;
-            border-radius: 0 0 50% 50%;
-            background-color: var(--color-primary);
-        }
+        padding: 0 12px;
 
         .app-banner {
             position: relative;
@@ -43,97 +34,79 @@
     }
 
     &__iconbar {
+        padding: 20px 30px;
+
         ul {
             display: flex;
-            flex-wrap: wrap;
-            padding-top: 12px;
-
-            &:last-child {
-                padding-bottom: 12px;
-            }
+            background-color: #fff;
+            border-radius: 8px;
+            padding: 10px;
 
             li {
+                flex: 1;
                 display: flex;
                 flex-direction: column;
                 align-items: center;
-                width: calc(~'100% / 4');
-                text-align: center;
-
-                .g-icon {
-                    width: 42px;
-                    height: 42px;
-                    font-size: 24px;
-                    color: #fff;
-                    border-radius: 50%;
-                    margin-bottom: 4px;
-
-                    &-quote--line {
-                        background-color: #79b933;
-                    }
 
-                    &-order--line {
-                        background-color: #ff8917;
-                    }
-
-                    &-delivery--line {
-                        background-color: #9d6969;
-                    }
-
-                    &-pickup--line {
-                        background-color: #69869d;
-                    }
+                img {
+                    width: 48px;
+                    height: 48px;
+                }
 
-                    &-inventory {
-                        background-color: #8b699d;
-                    }
+                span {
+                    font-size: 12px;
+                    font-weight: bold;
+                    color: #898989;
+                    margin-top: 5px;
                 }
             }
         }
     }
 
-    &__titlebar {
-        .van-cell__title {
-            display: flex;
-            align-items: center;
-            line-height: 1;
-            font-size: 16px;
-            font-weight: bold;
-
-            img {
-                width: 16px;
-                height: 16px;
-                margin-right: 5px;
-            }
+    &__news {
+        border-top: 1px solid #9FA0A0;
+        padding: 10px;
+        padding-top: 0;
+        margin: 0 30px;
 
-            span {
-                +span {
-                    color: #999;
-                    font-size: 13px;
-                    font-weight: normal;
-                    margin-left: 5px;
-                }
-            }
-        }
+        section {
+            background-color: #fff;
+            box-shadow: 0 0 10px #DCDDDD;
+            padding: 30px;
+            padding-top: 0;
 
-        .van-cell__value {
-            flex: none;
-            color: #666;
-        }
-    }
+            h2 {
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                height: 80px;
+                background: url(../../../assets/images/icons/announcement.svg) no-repeat center left;
+                background-size: auto 32px;
+                padding: 24px 0 24px 48px;
 
-    &__news {
-        .article {
-            &-item {
-                .van-cell__title {
-                    span {
-                        .mixin-text-overflow()
+                span {
+                    font-size: 12px;
+                    font-weight: bold;
+
+                    &:first-child {
+                        color: #fff;
+                    }
+
+                    &:last-child {
+                        color: #D09F3B;
                     }
                 }
+            }
 
-                .van-cell__value {
-                    flex: initial;
+            ul {
+                li {
+                    .mixin-text-overflow();
+                    display: inherit;
                     font-size: 12px;
-                    margin-left: 24px;
+                    font-weight: bold;
+                    color: #9FA0A0;
+                    white-space: nowrap;
+                    padding-bottom: 16px;
                 }
             }
         }

+ 38 - 45
src/packages/sjgj/views/home/main/index.vue

@@ -1,68 +1,59 @@
 <template>
   <app-view class="home-main">
     <template #header>
-      <app-navbar :show-back-button="false">
-        <div class="home-main__title">
-          <span>{{ globalStore.getSystemInfo('appName') }}</span>
-          <span>订单管理系统</span>
-        </div>
-      </app-navbar>
+      <app-statusbar class="home-main__header">
+        <img src="../../../assets/images/home-logo.svg" />
+      </app-statusbar>
     </template>
-    <div class="home-main__banner">
-      <Banner :data-list="topBanners" />
-    </div>
-    <PullRefresh class="home-main__container" v-model="refreshing" @refresh="onRefresh">
-      <app-block>
-        <Cell title="通知公告" value="更多" :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>
-      </app-block>
-      <app-block class="home-main__iconbar bg">
+    <div class="home-main__container">
+      <div class="home-main__banner">
+        <Banner :data-list="topBanners" />
+      </div>
+      <div class="home-main__iconbar">
         <ul>
           <li @click="routerTo('order-list')">
-            <Iconfont label-direction="bottom" icon="g-icon-order--line">持有订单</Iconfont>
+            <img src="../../../assets/images/icons/order.svg" />
+            <span>持有订单</span>
           </li>
           <li @click="routerTo('delivery-list')">
-            <Iconfont label-direction="bottom" icon="g-icon-delivery--line">交料订单</Iconfont>
+            <img src="../../../assets/images/icons/delivery.svg" />
+            <span>交料订单</span>
           </li>
           <li @click="routerTo('pickup-list')">
-            <Iconfont label-direction="bottom" icon="g-icon-pickup--line">提料订单</Iconfont>
+            <img src="../../../assets/images/icons/pickup.svg" />
+            <span>提料订单</span>
           </li>
           <li @click="routerTo('inventory-list')">
-            <Iconfont label-direction="bottom" icon="g-icon-inventory">我的库存</Iconfont>
+            <img src="../../../assets/images/icons/inventory.svg" />
+            <span>我的库存</span>
           </li>
         </ul>
-      </app-block>
-      <app-block class="home-main__news">
-        <CellGroup class="article">
-          <Cell class="home-main__titlebar" title="业务公告" value="更多" icon="fire" @click="routerTo('news-list')"
-            is-link />
-          <template v-for="(item, index) in newsList" :key="index">
-            <Cell class="article-item" :title="item.title" :value="formatDate(item.publishdate, 'MM/DD')"
-              @click="routerTo('news-list')" />
-          </template>
-        </CellGroup>
-      </app-block>
-    </PullRefresh>
+      </div>
+      <div class="home-main__news">
+        <section>
+          <h2>
+            <span>业务公告</span>
+            <span @click="routerTo('news-list')">更多></span>
+          </h2>
+          <ul v-if="newsList.length">
+            <template v-for="(item, index) in newsList" :key="index">
+              <li @click="routerTo('news-list')">{{ item.title }}</li>
+            </template>
+          </ul>
+        </section>
+      </div>
+    </div>
   </app-view>
 </template>
 
 <script lang="ts" setup>
-import { shallowRef } from "vue";
-import { Cell, CellGroup, PullRefresh, Badge } from "vant";
-import { formatDate } from "@/filters";
-import { useNavigation } from '@mobile/router/navigation';
-import { queryImageConfigs } from "@/services/api/common";
-import { useNoticeStore, useGlobalStore } from '@/stores'
+import { shallowRef, onActivated } from 'vue'
+import { useNavigation } from '@mobile/router/navigation'
+import { queryImageConfigs } from "@/services/api/common"
 import Banner from '@mobile/components/base/banner/index.vue'
-import Iconfont from '@/components/base/iconfont/index.vue'
-import { queryNewTitles } from "@/services/api/news";
+import { queryNewTitles } from '@/services/api/news'
 
 const { routerTo } = useNavigation()
-const noticeStore = useNoticeStore()
-const globalStore = useGlobalStore()
 const refreshing = shallowRef(false) // 是否处于加载中状态
 const topBanners = shallowRef<string[]>([]) // 轮播图列表
 const newsList = shallowRef<Model.NewTitlesRsp[]>([]) // 资讯列表
@@ -91,7 +82,9 @@ const onRefresh = () => {
   })
 }
 
-onRefresh()
+onActivated(() => {
+  onRefresh()
+})
 </script>
 
 <style lang="less">

+ 82 - 18
src/services/worker/index.ts

@@ -1,18 +1,82 @@
-const workerUrl = new URL('./quote.js', import.meta.url).toString();
-
-// 创建Web Worker实例  
-const worker = new Worker(workerUrl);  
-  
-// 监听来自Worker的消息  
-worker.onmessage = (event: MessageEvent) => {  
-  console.log('接收工作线程消息:', event.data);  
-};  
-  
-// 监听来自Worker的错误  
-worker.onerror = (error: ErrorEvent) => {  
-  console.error('Error from worker:', error.message);  
-};  
-  
-// 发送WebSocket URL给Worker  
-const websocketUrl = 'wss://your-websocket-server-url';  
-worker.postMessage({ type: 'connect', url: websocketUrl });
+import { reactive, toRaw } from 'vue'
+import { queryErmcpGoods } from '@/services/api/goods'
+import Worker from 'worker-loader!./quote'
+
+export default new (class {
+  private readonly worker = new Worker()
+
+  private state = reactive({
+    loading: false,
+    goodsMap: new Map<string, Model.GoodsRsp>(), // 商品列表
+    quoteMap: new Map<string, Model.QuoteDayRsp>(), // 盘面列表
+  })
+
+  constructor() {
+    // 监听来自Worker的消息
+    this.worker.onmessage = (event) => {
+      const message = event.data
+
+      if (typeof message === 'object') {
+        switch (message.type) {
+          case 'push': {
+            const quote = message.data
+            this.state.quoteMap.set(quote.goodscode, quote)
+            break
+          }
+        }
+      }
+
+      console.log('接收工作线程消息:', event.data)
+    }
+
+    // 监听来自Worker的错误
+    this.worker.onerror = (error) => {
+      console.error('Error from worker:', error.message)
+    }
+
+    // 发送WebSocket URL给Worker
+    this.worker.postMessage({
+      type: 'connect',
+      url: 'ws://192.168.31.204:18891'
+    })
+
+    setTimeout(() => {
+      this.worker.postMessage({
+        type: 'send',
+        data: [{
+          exchangeCode: 250,
+          goodsCode: 'XAUUSD',
+          subState: 0,
+        }]
+      })
+
+      setTimeout(() => {
+        this.worker.postMessage({
+          type: 'close',
+        })
+      }, 5000);
+    }, 1000)
+  }
+
+  goodsMapToList() {
+    return [...this.state.goodsMap.values()]
+  }
+
+  async updateData() {
+    try {
+      this.state.loading = true
+      
+      const res = await queryErmcpGoods()
+      res.data.forEach((item) => {
+        this.state.goodsMap.set(item.goodscode, item)
+      })
+
+      this.worker.postMessage({
+        type: 'update',
+        data: toRaw(this.state)
+      })
+    } finally {
+      this.state.loading = false
+    }
+  }
+})

+ 261 - 0
src/services/worker/market.ts

@@ -0,0 +1,261 @@
+import moment from 'moment'
+
+export default class {
+    loading = false
+    goodsMap = new Map<string, Model.GoodsRsp>()
+    quoteMap = new Map<string, Model.QuoteDayRsp>()
+
+    updateGoodsList(data: Map<string, Model.GoodsRsp>) {
+        this.goodsMap = data
+    }
+
+    // 处理订阅行情
+    subscribeToQuotes(quotes: Proto.Quote[]) {
+        const result: Model.QuoteDayRsp[] = []
+
+        quotes.forEach((item) => {
+            const processedQuote = this.processQuote(item)
+
+            if (!this.loading) {
+                const updatedQuote = this.updateGoodsQuote(processedQuote)
+                result.push(updatedQuote)
+            }
+        })
+
+        return result
+    }
+
+    // 处理行情报价
+    private processQuote(quote: Proto.Quote): Partial<Model.QuoteDayRsp> {
+        const goodsCode = quote.goodscode ?? ''
+        const goodsItem = this.goodsMap.get(goodsCode)
+
+        // 处理报价小数位
+        const handleDeimalplace = (value?: number) => {
+            if (goodsItem && value) {
+                const decimal = Math.pow(10, goodsItem.decimalplace)
+                return value / decimal
+            }
+            return value
+        }
+
+        return {
+            goodscode: quote.goodscode,
+            last: handleDeimalplace(quote.last),
+            lasttime: (quote.date && quote.time) ? moment(quote.date + quote.time, 'YYYYMMDDHHmmss').toISOString(true) : undefined,
+            ask: handleDeimalplace(quote.ask),
+            ask2: handleDeimalplace(quote.ask2),
+            ask3: handleDeimalplace(quote.ask3),
+            ask4: handleDeimalplace(quote.ask4),
+            ask5: handleDeimalplace(quote.ask5),
+            askvolume: quote.askvolume,
+            askvolume2: quote.askvolume2,
+            askvolume3: quote.askvolume3,
+            askvolume4: quote.askvolume4,
+            askvolume5: quote.askvolume5,
+            bid: handleDeimalplace(quote.bid),
+            bid2: handleDeimalplace(quote.bid2),
+            bid3: handleDeimalplace(quote.bid3),
+            bid4: handleDeimalplace(quote.bid4),
+            bid5: handleDeimalplace(quote.bid5),
+            bidvolume: quote.bidvolume,
+            bidvolume2: quote.bidvolume2,
+            bidvolume3: quote.bidvolume3,
+            bidvolume4: quote.bidvolume4,
+            bidvolume5: quote.bidvolume5,
+            calloptionpremiums: quote.calloptionpremiums,
+            calloptionpremiums2: quote.calloptionpremiums2,
+            calloptionpremiums3: quote.calloptionpremiums3,
+            calloptionpremiums4: quote.calloptionpremiums4,
+            calloptionpremiums5: quote.calloptionpremiums5,
+            exchangecode: quote.exchangecode,
+            exchangedate: quote.exchangedate,
+            highest: handleDeimalplace(quote.highest),
+            holdvolume: quote.holdvolume,
+            inventory: quote.inventory,
+            lastvolume: quote.lastvolume,
+            Lastturnover: handleDeimalplace(quote.lastturnover),
+            limitdown: handleDeimalplace(quote.limitlow),
+            limitup: handleDeimalplace(quote.limithigh),
+            lowest: handleDeimalplace(quote.lowest),
+            opened: handleDeimalplace(quote.opened),
+            preclose: handleDeimalplace(quote.preclose),
+            preholdvolume: quote.preholdvolume,
+            presettle: handleDeimalplace(quote.presettle),
+            putoptionpremiums: handleDeimalplace(quote.putoptionpremiums),
+            putoptionpremiums2: handleDeimalplace(quote.putoptionpremiums2),
+            putoptionpremiums3: handleDeimalplace(quote.putoptionpremiums3),
+            putoptionpremiums4: handleDeimalplace(quote.putoptionpremiums4),
+            putoptionpremiums5: handleDeimalplace(quote.putoptionpremiums5),
+            settle: handleDeimalplace(quote.settle),
+            totalturnover: handleDeimalplace(quote.totalturnover),
+            totalvolume: quote.totalvolume
+        }
+    }
+
+    // 处理商品报价
+    private updateGoodsQuote(quote: Partial<Model.QuoteDayRsp>) {
+        const goodsCode = quote.goodscode ?? ''
+        const goodsItem = this.goodsMap.get(goodsCode)
+        const goodsQuoteItem = this.quoteMap.get(goodsCode)
+
+        const updatedQuote: Model.QuoteDayRsp = goodsQuoteItem ?? {
+            ask: quote.ask ?? 0,
+            ask10: quote.ask10 ?? 0,
+            ask2: quote.ask2 ?? 0,
+            ask3: quote.ask3 ?? 0,
+            ask4: quote.ask4 ?? 0,
+            ask5: quote.ask5 ?? 0,
+            ask6: quote.ask6 ?? 0,
+            ask7: quote.ask7 ?? 0,
+            ask8: quote.ask8 ?? 0,
+            ask9: quote.ask9 ?? 0,
+            askorderid: quote.askorderid ?? 0,
+            askorderid2: quote.askorderid2 ?? 0,
+            askorderid3: quote.askorderid3 ?? 0,
+            askorderid4: quote.askorderid4 ?? 0,
+            askorderid5: quote.askorderid5 ?? 0,
+            askordervolume: quote.askordervolume ?? 0,
+            askordervolume10: quote.askordervolume10 ?? 0,
+            askordervolume2: quote.askordervolume2 ?? 0,
+            askordervolume3: quote.askordervolume3 ?? 0,
+            askordervolume4: quote.askordervolume4 ?? 0,
+            askordervolume5: quote.askordervolume5 ?? 0,
+            askordervolume6: quote.askordervolume6 ?? 0,
+            askordervolume7: quote.askordervolume7 ?? 0,
+            askordervolume8: quote.askordervolume8 ?? 0,
+            askordervolume9: quote.askordervolume9 ?? 0,
+            askqueueinfo: quote.askqueueinfo ?? '',
+            askvolume: quote.askvolume ?? 0,
+            askvolume10: quote.askvolume10 ?? 0,
+            askvolume2: quote.askvolume2 ?? 0,
+            askvolume3: quote.askvolume3 ?? 0,
+            askvolume4: quote.askvolume4 ?? 0,
+            askvolume5: quote.askvolume5 ?? 0,
+            askvolume6: quote.askvolume6 ?? 0,
+            askvolume7: quote.askvolume7 ?? 0,
+            askvolume8: quote.askvolume8 ?? 0,
+            askvolume9: quote.askvolume9 ?? 0,
+            averageprice: quote.averageprice ?? 0,
+            bid: quote.bid ?? 0,
+            bid10: quote.bid10 ?? 0,
+            bid2: quote.bid2 ?? 0,
+            bid3: quote.bid3 ?? 0,
+            bid4: quote.bid4 ?? 0,
+            bid5: quote.bid5 ?? 0,
+            bid6: quote.bid6 ?? 0,
+            bid7: quote.bid7 ?? 0,
+            bid8: quote.bid8 ?? 0,
+            bid9: quote.bid9 ?? 0,
+            bidorderid: quote.bidorderid ?? 0,
+            bidorderid2: quote.bidorderid2 ?? 0,
+            bidorderid3: quote.bidorderid3 ?? 0,
+            bidorderid4: quote.bidorderid4 ?? 0,
+            bidorderid5: quote.bidorderid5 ?? 0,
+            bidordervolume: quote.bidordervolume ?? 0,
+            bidordervolume10: quote.bidordervolume10 ?? 0,
+            bidordervolume2: quote.bidordervolume2 ?? 0,
+            bidordervolume3: quote.bidordervolume3 ?? 0,
+            bidordervolume4: quote.bidordervolume4 ?? 0,
+            bidordervolume5: quote.bidordervolume5 ?? 0,
+            bidordervolume6: quote.bidordervolume6 ?? 0,
+            bidordervolume7: quote.bidordervolume7 ?? 0,
+            bidordervolume8: quote.bidordervolume8 ?? 0,
+            bidordervolume9: quote.bidordervolume9 ?? 0,
+            bidqueueinfo: quote.bidqueueinfo ?? '',
+            bidvolume: quote.bidvolume ?? 0,
+            bidvolume10: quote.bidvolume10 ?? 0,
+            bidvolume2: quote.bidvolume2 ?? 0,
+            bidvolume3: quote.bidvolume3 ?? 0,
+            bidvolume4: quote.bidvolume4 ?? 0,
+            bidvolume5: quote.bidvolume5 ?? 0,
+            bidvolume6: quote.bidvolume6 ?? 0,
+            bidvolume7: quote.bidvolume7 ?? 0,
+            bidvolume8: quote.bidvolume8 ?? 0,
+            bidvolume9: quote.bidvolume9 ?? 0,
+            calloptionpremiums: quote.calloptionpremiums ?? 0,
+            calloptionpremiums2: quote.calloptionpremiums2 ?? 0,
+            calloptionpremiums3: quote.calloptionpremiums3 ?? 0,
+            calloptionpremiums4: quote.calloptionpremiums4 ?? 0,
+            calloptionpremiums5: quote.calloptionpremiums5 ?? 0,
+            cleartime: quote.cleartime ?? 0,
+            exchangecode: quote.exchangecode ?? 0,
+            exchangedate: quote.exchangedate ?? 0,
+            goodscode: quote.goodscode ?? '',
+            grepmarketprice: quote.grepmarketprice ?? 0,
+            highest: quote.highest ?? 0,
+            holdincrement: quote.holdincrement ?? 0,
+            holdvolume: quote.holdvolume ?? 0,
+            iep: quote.iep ?? 0,
+            iev: quote.iev ?? 0,
+            inventory: quote.inventory ?? 0,
+            iscleared: quote.iscleared ?? 0,
+            issettled: quote.issettled ?? 0,
+            last: quote.last ?? 0,
+            lastlot: quote.lastlot ?? 0,
+            lasttime: quote.lasttime ?? '',
+            Lastturnover: quote.Lastturnover ?? 0,
+            lastvolume: quote.lastvolume ?? 0,
+            limitdown: quote.limitdown ?? 0,
+            limitup: quote.limitup ?? 0,
+            lowest: quote.lowest ?? 0,
+            nontotalholdervolume: quote.nontotalholdervolume ?? 0,
+            nontotallot: quote.nontotallot ?? 0,
+            nontotalturnover: quote.nontotalturnover ?? 0,
+            nontotalvolume: quote.nontotalvolume ?? 0,
+            opened: quote.opened ?? 0,
+            opentime: quote.opentime ?? '',
+            orderid: quote.orderid ?? 0,
+            preclose: quote.preclose ?? 0,
+            preholdvolume: quote.preholdvolume ?? 0,
+            presettle: quote.presettle ?? 0,
+            publictradetype: quote.publictradetype ?? '',
+            putoptionpremiums: quote.putoptionpremiums ?? 0,
+            putoptionpremiums2: quote.putoptionpremiums2 ?? 0,
+            putoptionpremiums3: quote.putoptionpremiums3 ?? 0,
+            putoptionpremiums4: quote.putoptionpremiums4 ?? 0,
+            putoptionpremiums5: quote.putoptionpremiums5 ?? 0,
+            settle: quote.settle ?? 0,
+            strikeprice: quote.strikeprice ?? 0,
+            totalaskvolume: quote.totalaskvolume ?? 0,
+            totalbidvolume: quote.totalbidvolume ?? 0,
+            totallot: quote.totallot ?? 0,
+            totalturnover: quote.totalturnover ?? 0,
+            totalvolume: quote.totalvolume ?? 0,
+            utclasttime: quote.utclasttime ?? ''
+        }
+
+        if (goodsQuoteItem) {
+            // 更新对象属性
+            for (const [key, value] of Object.entries(quote)) {
+                if (value !== undefined) {
+                    type TKey = keyof Model.QuoteDayRsp
+                    (<K extends TKey>(prop: K, value: Model.QuoteDayRsp[K]) => {
+                        updatedQuote[prop] = value
+                    })(key as TKey, value)
+                }
+            }
+        } else {
+            this.quoteMap.set(goodsCode, updatedQuote)
+        }
+
+        // 任务 #5677 任务 #6268
+        const hprice = (goodsItem?.trademode === 52 || goodsItem?.trademode === 10) ? updatedQuote.ask : updatedQuote.last
+        const lprice = (goodsItem?.trademode === 52 || goodsItem?.trademode === 10) ? updatedQuote.bid : updatedQuote.last
+        updatedQuote.opened = updatedQuote.opened || updatedQuote.last // 没有开盘价默认取最新价
+        updatedQuote.highest = updatedQuote.highest || hprice // 没有最高价默认取最新价
+        updatedQuote.lowest = updatedQuote.lowest || lprice // 没有最低价价默认取最新价
+
+        // 处理最高最低价
+        if (updatedQuote.last) {
+            if (hprice > updatedQuote.highest) {
+                updatedQuote.highest = hprice
+            }
+            if (lprice < updatedQuote.lowest) {
+                updatedQuote.lowest = lprice
+            }
+        }
+
+        return updatedQuote
+    }
+}

+ 106 - 0
src/services/worker/quote.ts

@@ -0,0 +1,106 @@
+import Long from 'long'
+import MarketService from './market'
+import WebSocketManager from './websocket'
+import { Package40 } from '@/services/websocket/package'
+import { subscribeListToByteArrary } from '@/services/websocket/package/package40/encode'
+import { parseReceivePush } from '@/services/websocket/package/package40/decode'
+
+const marketService = new MarketService()
+
+const webSocket = new WebSocketManager({
+    //heartbeatMessage: () => JSON.stringify({ type: 'ping' }),
+    onMessage: (data) => {
+        new Response(data as Uint8Array).arrayBuffer().then((res) => {
+            const arr = new Uint8Array(res)
+            const raw = disposeReceiveDatas(arr)
+
+            if (raw?.content) {
+                const quotes = parseReceivePush(raw.content)
+                const result = marketService.subscribeToQuotes(quotes)
+
+                result.forEach((item) => {
+                    self.postMessage({
+                        type: 'push',
+                        data: item
+                    })
+                })
+            }
+        })
+    }
+})
+
+const disposeReceiveDatas = (bytes: Uint8Array) => {
+    const cache: number[] = [];
+    let cachePackageLength = 0;
+
+    for (let i = 0; i < bytes.length; i++) {
+        const byte = bytes[i];
+        cache.push(byte);
+
+        if (i === 0 && byte !== 0xff) {
+            console.error('接收到首字节不是0xFF');
+            return;
+        } else {
+            // 取报文长度
+            if (cache.length === 5) {
+                const uint8View = new Uint8Array(cache.slice(1, 5));
+                cachePackageLength = new DataView(uint8View.buffer).getUint32(0, false);
+                if (cachePackageLength > 65535) {
+                    console.error('接收到长度超过65535的行情包');
+                    return;
+                }
+            }
+            // 判断是否已经到包尾
+            if (cache.length === cachePackageLength) {
+                if (byte !== 0x0) {
+                    console.error('接收到尾字节不是0x0的错误数据包');
+                    return;
+                }
+
+                const content = new Uint8Array(cache);
+                const result = new Package40(content);
+
+                if (result.packageLength === 0) {
+                    console.error('报文装箱失败');
+                    return;
+                }
+                return result
+            }
+        }
+    }
+}
+
+// 监听来自主线程的消息
+self.onmessage = (e) => {
+    const message = e.data
+
+    if (typeof message === 'object') {
+        switch (message.type) {
+            case 'connect': {
+                const { url, protocols } = message
+                webSocket.connection(url, protocols)
+                break
+            }
+            case 'update': {
+                marketService.updateGoodsList(message.data)
+                break
+            }
+            case 'send': {
+                const content = subscribeListToByteArrary(message.data, '2_TOKEN_NEKOT_', Long.fromNumber(2))
+                const package40 = new Package40(32, content)
+
+                webSocket.send(package40.data())
+                break
+            }
+            case 'close': {
+                webSocket.disconnect()
+                break
+            }
+        }
+    }
+}
+
+// 错误处理
+self.onerror = (error) => {
+    console.error('工作线程错误:', error)
+}

+ 177 - 0
src/services/worker/websocket.ts

@@ -0,0 +1,177 @@
+export default class {
+    private ws: WebSocket | null = null; // WebSocket 对象
+    private connectionId = 0;
+    private url = '';
+    private protocols?: string | string[];
+    private isReconnecting = false; // 是否正在重连
+    private messageTimer = 0; // 消息超时定时器
+    private messageTimeout = 1000 * 15; // 消息超时时间
+    private heartbeatTimer = 0; // 心跳定时器
+    private heartbeatInterval = 1000 * 30; // 心跳间隔时间
+    private reconnectTimer = 0; // 重连定时器
+    private reconnectCount = 0; // 本次已重连次数
+    private reconnectLimit = 10; // 限制重连次数,0 = 无限制
+
+    private heartbeatMessage?: () => string | ArrayBufferLike | Blob | ArrayBufferView; // 心跳消息
+    private onOpen?: () => void; // 连接成功的回调
+    private onMessage: (data: unknown) => void; // 消息回调
+    private onClose?: () => void; // 连接断开的回调
+    private onError?: (err: Event) => void; // 连接发生错误的回调
+    private onBeforeReconnect?: (count: number) => void; // 重连之前的回调
+    private onReconnect?: () => void; // 重连成功之后的回调
+
+    constructor(options: {
+        heartbeatMessage?: () => string | ArrayBufferLike | Blob | ArrayBufferView;
+        onOpen?: () => void;
+        onMessage: (data: unknown) => void;
+        onClose?: () => void;
+        onError?: (err: Event) => void;
+        onBeforeReconnect?: (count: number) => void;
+        onReconnect?: () => void;
+    }) {
+        this.heartbeatMessage = options.heartbeatMessage
+        this.onOpen = options.onOpen
+        this.onMessage = options.onMessage
+        this.onClose = options.onClose
+        this.onError = options.onError
+        this.onBeforeReconnect = options.onBeforeReconnect
+        this.onReconnect = options.onReconnect
+    }
+
+    // 创建 WebSocket 连接
+    connection(url: string, protocols?: string | string[]) {
+        clearTimeout(this.reconnectTimer)
+        this.stopHeartbeat()
+
+        const currentConnectionId = this.connectionId + 1
+        this.connectionId = currentConnectionId
+        this.url = url
+        this.protocols = protocols
+
+        this.ws?.close()
+        this.ws = this.protocols ? new WebSocket(this.url, this.protocols) : new WebSocket(this.url)
+        console.log(this.url, '正在连接')
+
+        // 连接成功
+        this.ws.onopen = () => {
+            if (this.connectionId === currentConnectionId) {
+                if (this.reconnectCount) {
+                    this.onReconnect?.()
+                } else {
+                    this.onOpen?.()
+                }
+
+                console.log(this.url, '连接成功')
+                this.reconnectCount = 0
+                this.startHeartbeat()
+            } else {
+                this.ws?.close()
+            }
+        }
+
+        // 接收消息
+        this.ws.onmessage = (event) => {
+            this.stopHeartbeat()
+
+            if (this.connectionId === currentConnectionId) {
+                this.startHeartbeat()
+                this.onMessage?.(event.data)
+            }
+        }
+
+        // 连接断开
+        this.ws.onclose = () => {
+            this.stopHeartbeat()
+            this.ws = null
+            this.isReconnecting = false
+
+            // 判断是否当前实例,重连时不处理旧 WebSocket 事件
+            if (this.connectionId === currentConnectionId) {
+                if (this.reconnectCount) {
+                    console.warn(this.url, `第${this.reconnectCount}次重连失败`)
+                } else {
+                    console.warn(this.url, '连接已断开')
+                }
+                this.reconnect() // 重连失败会不断尝试,直到成功为止
+            }
+        }
+
+        // 连接发生错误
+        this.ws.onerror = (error) => {
+            if (this.connectionId === currentConnectionId) {
+                console.error(this.url, '连接发生错误')
+                this.onError?.(error)
+            }
+        }
+    }
+
+    // 主动断开连接,断开后不会自动重连
+    disconnect(forced = false) {
+        return new Promise<void>((resolve) => {
+            clearTimeout(this.reconnectTimer)
+            this.reconnectCount = 0
+            this.connectionId++
+
+            if (!forced && this.ws) {
+                const listener = () => {
+                    console.warn(this.url, '主动断开')
+                    this.ws?.removeEventListener('close', listener)
+                    this.onClose?.()
+                    resolve()
+                }
+                this.ws.addEventListener('close', listener)
+                this.ws.close()
+            } else {
+                if (this.ws) {
+                    console.warn(this.url, '主动断开')
+                    this.ws.close()
+                }
+                this.onClose?.()
+                resolve()
+            }
+        })
+    }
+
+    // 发送消息
+    send(data: string | ArrayBufferLike | Blob | ArrayBufferView) {
+        this.ws?.send(data)
+    }
+
+    // 断开重连
+    private reconnect() {
+        if (!this.isReconnecting && this.reconnectCount < this.reconnectLimit) {
+            this.isReconnecting = true
+            this.reconnectCount++
+            this.onBeforeReconnect?.(this.reconnectCount)
+
+            // 自动计算每次重试的延时,重试次数越多,延时越大
+            const delay = this.reconnectCount * 3000
+            console.log(this.url, `${delay / 1000}秒后将进行第${this.reconnectCount}次重连`)
+
+            this.reconnectTimer = setTimeout(() => {
+                this.connection(this.url, this.protocols)
+            }, delay)
+        }
+    }
+
+    // 发送心跳检测
+    private startHeartbeat() {
+        const message = this.heartbeatMessage?.()
+        if (message) {
+            this.heartbeatTimer = setTimeout(() => {
+                this.send(message)
+                // 如果已经超过或心跳超时时长没有收到心跳回复,则认为网络已经异常,进行断网重连
+                this.messageTimer = setTimeout(() => {
+                    console.warn(this.url, '心跳超时')
+                    this.reconnect()
+                }, this.messageTimeout)
+            }, this.heartbeatInterval)
+        }
+    }
+
+    // 停止心跳检测
+    private stopHeartbeat() {
+        clearTimeout(this.messageTimer)
+        clearTimeout(this.heartbeatTimer)
+    }
+}

Some files were not shown because too many files changed in this diff