فهرست منبع

”平台规则“ 改为:
平台规则
买方规则
卖方规则
积分规则
采购合同
合同转让
现货合同
风险告知

deng.yinping 3 سال پیش
والد
کامیت
c0291713be

+ 254 - 216
src/packages/mobile/router/index.ts

@@ -1,404 +1,442 @@
-import { createWebHashHistory, RouteRecordRaw } from 'vue-router'
-import { useLoginStore } from '@/stores'
-import service from '@/services'
-import Page from '@mobile/components/layouts/page/index.vue'
-import animateRouter from './animateRouter'
+import { createWebHashHistory, RouteRecordRaw } from "vue-router";
+import { useLoginStore } from "@/stores";
+import service from "@/services";
+import Page from "@mobile/components/layouts/page/index.vue";
+import animateRouter from "./animateRouter";
 
-const { getToken } = useLoginStore()
+const { getToken } = useLoginStore();
 
 const routes: Array<RouteRecordRaw> = [
   {
-    path: '/:pathMatch(.*)*',
-    name: 'Error',
-    component: () => import('../views/error/404.vue'),
+    path: "/:pathMatch(.*)*",
+    name: "Error",
+    component: () => import("../views/error/404.vue"),
     meta: {
       ignoreAuth: true,
     },
   },
   {
-    path: '/boot',
-    name: 'Boot',
-    component: () => import('../views/boot/index.vue'),
+    path: "/boot",
+    name: "Boot",
+    component: () => import("../views/boot/index.vue"),
     meta: {
       ignoreAuth: true,
     },
   },
   {
-    path: '/',
+    path: "/",
     component: Page,
     children: [
       {
-        path: '',
-        name: 'Home',
-        component: () => import('../views/home/index.vue'),
-      }
-    ]
+        path: "",
+        name: "Home",
+        component: () => import("../views/home/index.vue"),
+      },
+    ],
   },
   {
-    path: '/user',
+    path: "/user",
     component: Page,
     children: [
       {
-        path: 'login',
-        name: 'UserLogin',
-        component: () => import('../views/user/login/index.vue'),
+        path: "login",
+        name: "UserLogin",
+        component: () => import("../views/user/login/index.vue"),
         meta: {
           ignoreAuth: true,
         },
       },
       {
-        path: 'register',
-        name: 'UserRegister',
-        component: () => import('../views/user/register/index.vue'),
+        path: "register",
+        name: "UserRegister",
+        component: () => import("../views/user/register/index.vue"),
         meta: {
           ignoreAuth: true,
         },
       },
       {
-        path: 'forget',
-        name: 'UserForget',
-        component: () => import('../views/user/forget/index.vue'),
+        path: "forget",
+        name: "UserForget",
+        component: () => import("../views/user/forget/index.vue"),
         meta: {
           ignoreAuth: true,
         },
       },
       {
-        path: 'logoff',
-        name: 'UserLogoff',
-        component: () => import('../views/user/logoff/index.vue'),
+        path: "logoff",
+        name: "UserLogoff",
+        component: () => import("../views/user/logoff/index.vue"),
       },
       {
-        path: 'password',
-        name: 'UserPassword',
-        component: () => import('../views/user/password/index.vue'),
+        path: "password",
+        name: "UserPassword",
+        component: () => import("../views/user/password/index.vue"),
       },
-    ]
+    ],
   },
   {
-    path: '/account',
+    path: "/account",
     component: Page,
     children: [
       {
-        path: 'certification',
-        name: 'account-certification',
-        component: () => import('../views/account/certification/index.vue'),
-      }
-    ]
+        path: "certification",
+        name: "account-certification",
+        component: () => import("../views/account/certification/index.vue"),
+      },
+    ],
   },
   {
-    path: '/news',
+    path: "/news",
     component: Page,
     children: [
       {
-        path: 'details',
-        name: 'news-details',
-        component: () => import('../views/news/details/index.vue'),
+        path: "details",
+        name: "news-details",
+        component: () => import("../views/news/details/index.vue"),
       },
       {
-        path: 'list',
-        name: 'news-list',
-        component: () => import('../views/news/list/index.vue'),
-      }
-    ]
+        path: "list",
+        name: "news-list",
+        component: () => import("../views/news/list/index.vue"),
+      },
+    ],
   },
   {
-    path: '/market',
+    path: "/market",
     component: Page,
     children: [
       {
-        path: '',
-        name: 'Market',
-        component: () => import('../views/market/list/index.vue'),
-      }
-    ]
+        path: "",
+        name: "Market",
+        component: () => import("../views/market/list/index.vue"),
+      },
+    ],
   },
   {
-    path: '/product',
+    path: "/product",
     component: Page,
     children: [
       {
-        path: '',
-        name: 'product',
-        component: () => import('../views/product/list/index.vue'),
+        path: "",
+        name: "product",
+        component: () => import("../views/product/list/index.vue"),
       },
       {
-        path: 'detail',
-        name: 'product-detail',
-        component: () => import('../views/product/detail/index.vue'),
-      }
-    ]
+        path: "detail",
+        name: "product-detail",
+        component: () => import("../views/product/detail/index.vue"),
+      },
+    ],
   },
   {
-    path: '/purchase',
+    path: "/purchase",
     component: Page,
     children: [
       {
-        path: 'detail',
-        name: 'PurchaseDetail',
-        component: () => import('../views/purchase/detail/index.vue'),
-      }
-    ]
+        path: "detail",
+        name: "PurchaseDetail",
+        component: () => import("../views/purchase/detail/index.vue"),
+      },
+    ],
   },
   {
-    path: '/supply-demand',
+    path: "/supply-demand",
     component: Page,
     children: [
       {
-        path: 'detail',
-        name: 'SupplyDemandDetail',
-        component: () => import('../views/supply-demand/detail/index.vue'),
-      }
-    ]
+        path: "detail",
+        name: "SupplyDemandDetail",
+        component: () => import("../views/supply-demand/detail/index.vue"),
+      },
+    ],
   },
   {
-    path: '/contract',
+    path: "/contract",
     component: Page,
     children: [
       {
-        path: '',
-        name: 'contract',
-        component: () => import('../views/contract/list/index.vue'),
+        path: "",
+        name: "contract",
+        component: () => import("../views/contract/list/index.vue"),
       },
       {
-        path: 'details',
-        name: 'contract-details',
-        component: () => import('../views/contract/details/index.vue'),
-      }
-    ]
+        path: "details",
+        name: "contract-details",
+        component: () => import("../views/contract/details/index.vue"),
+      },
+    ],
   },
   {
-    path: '/bank',
+    path: "/bank",
     component: Page,
     children: [
       {
-        path: 'bank',
-        name: 'bank-wallet',
-        component: () => import('../views/bank/wallet/index.vue'),
+        path: "bank",
+        name: "bank-wallet",
+        component: () => import("../views/bank/wallet/index.vue"),
       },
       {
-        path: 'sign',
-        name: 'bank-sign',
-        component: () => import('../views/bank/sign/index.vue'),
+        path: "sign",
+        name: "bank-sign",
+        component: () => import("../views/bank/sign/index.vue"),
       },
       {
-        path: 'edit',
-        name: 'add-banksign',
-        component: () => import('../views/bank/sign/components/edit/index.vue'),
+        path: "edit",
+        name: "add-banksign",
+        component: () => import("../views/bank/sign/components/edit/index.vue"),
       },
       {
-        path: 'statement',
-        name: 'bank-statement',
-        component: () => import('../views/bank/statement/index.vue'),
+        path: "statement",
+        name: "bank-statement",
+        component: () => import("../views/bank/statement/index.vue"),
       },
       {
-        path: 'hisstatement',
-        name: 'bank-hisstatement',
-        component: () => import('../views/bank/hisstatement/index.vue'),
+        path: "hisstatement",
+        name: "bank-hisstatement",
+        component: () => import("../views/bank/hisstatement/index.vue"),
       },
-    ]
+    ],
   },
   {
-    path: '/order',
+    path: "/order",
     component: Page,
     children: [
       {
-        path: '',
-        name: 'my-order',
-        component: () => import('../views/mine/order/list/index.vue'),
+        path: "",
+        name: "my-order",
+        component: () => import("../views/mine/order/list/index.vue"),
       },
       {
-        path: 'purchasetradedetail',
-        name: 'purchase-trade-detail',
-        component: () => import('../views/mine/order/detail/purchasetrade/index.vue'),
+        path: "purchasetradedetail",
+        name: "purchase-trade-detail",
+        component: () =>
+          import("../views/mine/order/detail/purchasetrade/index.vue"),
       },
       {
-        path: 'wrtradedetail',
-        name: 'wrtrade-detail',
-        component: () => import('../views/mine/order/detail/wrtrade/index.vue'),
+        path: "wrtradedetail",
+        name: "wrtrade-detail",
+        component: () => import("../views/mine/order/detail/wrtrade/index.vue"),
       },
       {
-        path: 'wrorderdetail',
-        name: 'wrorder-detail',
-        component: () => import('../views/mine/order/detail/wrorder/index.vue'),
+        path: "wrorderdetail",
+        name: "wrorder-detail",
+        component: () => import("../views/mine/order/detail/wrorder/index.vue"),
       },
       {
-        path: 'transferdetail',
-        name: 'transfer-detail',
-        component: () => import('../views/mine/order/detail/transfer/index.vue'),
-      }
-      ,
+        path: "transferdetail",
+        name: "transfer-detail",
+        component: () =>
+          import("../views/mine/order/detail/transfer/index.vue"),
+      },
       {
-        path: 'hispurchasetradedetail',
-        name: 'his-purchase-trade-detail',
-        component: () => import('../views/mine/order/his/purchasetrade/index.vue'),
+        path: "hispurchasetradedetail",
+        name: "his-purchase-trade-detail",
+        component: () =>
+          import("../views/mine/order/his/purchasetrade/index.vue"),
       },
       {
-        path: 'hiswrtradedetail',
-        name: 'his-wrtrade-detail',
-        component: () => import('../views/mine/order/his/wrtrade/index.vue'),
+        path: "hiswrtradedetail",
+        name: "his-wrtrade-detail",
+        component: () => import("../views/mine/order/his/wrtrade/index.vue"),
       },
       {
-        path: 'hiswrorderdetail',
-        name: 'his-wrorder-detail',
-        component: () => import('../views/mine/order/his/wrorder/index.vue'),
+        path: "hiswrorderdetail",
+        name: "his-wrorder-detail",
+        component: () => import("../views/mine/order/his/wrorder/index.vue"),
       },
       {
-        path: 'histransferdetail',
-        name: 'his-transfer-detail',
-        component: () => import('../views/mine/order/his/transfer/index.vue'),
-      }
-    ]
+        path: "histransferdetail",
+        name: "his-transfer-detail",
+        component: () => import("../views/mine/order/his/transfer/index.vue"),
+      },
+    ],
   },
   {
-    path: '/wareorder',
+    path: "/wareorder",
     component: Page,
     children: [
       {
-        path: '',
-        name: 'my-wareorder',
-        component: () => import('../views/mine/wareorder/list/index.vue'),
+        path: "",
+        name: "my-wareorder",
+        component: () => import("../views/mine/wareorder/list/index.vue"),
       },
       {
-        path: 'wroutinapplydetail',
-        name: 'wroutinapply-detail',
-        component: () => import('../views/mine/wareorder/wroutinapplydetail/index.vue'),
+        path: "wroutinapplydetail",
+        name: "wroutinapply-detail",
+        component: () =>
+          import("../views/mine/wareorder/wroutinapplydetail/index.vue"),
       },
-    ]
+    ],
   },
   {
-    path: '/rules',
+    path: "/rules",
     component: Page,
     children: [
       {
-        path: 'ptgz',
-        name: 'rules-ptgz',
-        component: () => import('../views/rules/ptgz/index.vue'),
+        path: "ptgz",
+        name: "rules-ptgz",
+        component: () => import("../views/rules/ptgz/index.vue"),
       },
       {
-        path: 'myrz',
-        name: 'rules-myrz',
-        component: () => import('../views/rules/myrz/index.vue'),
+        path: "myrz",
+        name: "rules-myrz",
+        component: () => import("../views/rules/myrz/index.vue"),
       },
       {
-        path: 'ccwl',
-        name: 'rules-ccwl',
-        component: () => import('../views/rules/ccwl/index.vue'),
+        path: "ccwl",
+        name: "rules-ccwl",
+        component: () => import("../views/rules/ccwl/index.vue"),
       },
       {
-        path: 'zcxy',
-        name: 'rules-zcxy',
-        component: () => import('../views/rules/zcxy/index.vue'),
+        path: "zcxy",
+        name: "rules-zcxy",
+        component: () => import("../views/rules/zcxy/index.vue"),
         meta: {
           ignoreAuth: true,
         },
       },
       {
-        path: 'yhkhfxgzs',
-        name: 'rules-yhkhfxgzs',
-        component: () => import('../views/rules/fxgzs/index.vue'),
+        path: "yhkhfxgzs",
+        name: "rules-yhkhfxgzs",
+        component: () => import("../views/rules/fxgzs/index.vue"),
         meta: {
           ignoreAuth: true,
         },
       },
       {
-        path: 'yszc',
-        name: 'rules-yszc',
-        component: () => import('../views/rules/yszc/index.vue'),
+        path: "yszc",
+        name: "rules-yszc",
+        component: () => import("../views/rules/yszc/index.vue"),
         meta: {
           ignoreAuth: true,
         },
       },
       {
-        path: 'gywm',
-        name: 'rules-gywm',
-        component: () => import('../views/rules/gywm/index.vue'),
+        path: "gywm",
+        name: "rules-gywm",
+        component: () => import("../views/rules/gywm/index.vue"),
+      },
+      {
+        path: "fpsm",
+        name: "rules-fpsm",
+        component: () => import("../views/rules/fpsm/index.vue"),
+      },
+      {
+        path: "fwrx",
+        name: "rules-fwrx",
+        component: () => import("../views/rules/fwrx/index.vue"),
+      },
+      {
+        path: "buyrule",
+        name: "rules-buyrule",
+        component: () => import("../views/rules/buyrule/index.vue"),
+      },
+      {
+        path: "sellrule",
+        name: "rules-sellrule",
+        component: () => import("../views/rules/sellrule/index.vue"),
+      },
+      {
+        path: "jfgz",
+        name: "rules-jf",
+        component: () => import("../views/rules/jfgz/index.vue"),
       },
       {
-        path: 'fpsm',
-        name: 'rules-fpsm',
-        component: () => import('../views/rules/fpsm/index.vue'),
+        path: "cght",
+        name: "rules-cght",
+        component: () => import("../views/rules/cght/index.vue"),
       },
       {
-        path: 'fwrx',
-        name: 'rules-fwrx',
-        component: () => import('../views/rules/fwrx/index.vue'),
+        path: "zrht",
+        name: "rules-zrht",
+        component: () => import("../views/rules/zrht/index.vue"),
       },
-    ]
+      {
+        path: "xhht",
+        name: "rules-xhht",
+        component: () => import("../views/rules/xhht/index.vue"),
+      },
+    ],
   },
   {
-    path: '/credit',
+    path: "/credit",
     component: Page,
     children: [
       {
-        path: 'signin',
-        name: 'credit-signin',
-        component: () => import('../views/credit/signin/index.vue'),
+        path: "signin",
+        name: "credit-signin",
+        component: () => import("../views/credit/signin/index.vue"),
       },
       {
-        path: 'statement',
-        name: 'credit-statement',
-        component: () => import('../views/credit/statement/index.vue'),
+        path: "statement",
+        name: "credit-statement",
+        component: () => import("../views/credit/statement/index.vue"),
       },
       {
-        path: 'lottery',
-        name: 'credit-lottery',
-        component: () => import('../views/credit/lottery/index.vue'),
+        path: "lottery",
+        name: "credit-lottery",
+        component: () => import("../views/credit/lottery/index.vue"),
       },
-    ]
+    ],
   },
   {
-    path: '/mine',
+    path: "/mine",
     component: Page,
     children: [
       {
-        path: 'generalize',
-        name: 'mine-generalize',
-        component: () => import('../views/mine/generalize/index.vue'),
+        path: "generalize",
+        name: "mine-generalize",
+        component: () => import("../views/mine/generalize/index.vue"),
       },
       {
-        path: 'promotion',
-        name: 'promotion-detail',
-        component: () => import('../views/mine/generalize/detail/index.vue'),
+        path: "promotion",
+        name: "promotion-detail",
+        component: () => import("../views/mine/generalize/detail/index.vue"),
       },
       {
-        path: 'service',
-        name: 'mine-service',
-        component: () => import('../views/mine/service/index.vue'),
+        path: "service",
+        name: "mine-service",
+        component: () => import("../views/mine/service/index.vue"),
       },
       {
-        path: 'address',
-        name: 'mine-address',
-        component: () => import('../views/mine/address/index.vue'),
+        path: "address",
+        name: "mine-address",
+        component: () => import("../views/mine/address/index.vue"),
       },
       {
-        path: 'invoice',
-        name: 'mine-invoice',
-        component: () => import('../views/mine/invoice/index.vue'),
+        path: "invoice",
+        name: "mine-invoice",
+        component: () => import("../views/mine/invoice/index.vue"),
       },
-    ]
+    ],
   },
   {
-    path: '/navigation',
+    path: "/navigation",
     component: Page,
     children: [
       {
-        path: 'setting',
-        name: 'NavigationSetting',
-        component: () => import('../views/navigation/setting/index.vue'),
+        path: "setting",
+        name: "NavigationSetting",
+        component: () => import("../views/navigation/setting/index.vue"),
       },
       {
-        path: 'invoice',
-        name: 'NavigationInvoice',
-        component: () => import('../views/navigation/invoice/index.vue'),
+        path: "invoice",
+        name: "NavigationInvoice",
+        component: () => import("../views/navigation/invoice/index.vue"),
       },
-    ]
-  }
-]
+      {
+        path: "ptgz",
+        name: "NavigationPTGZ",
+        component: () => import("../views/navigation/ptgz/index.vue"),
+      },
+    ],
+  },
+];
 
 const router = animateRouter.create({
   history: createWebHashHistory(),
   routes,
-})
+});
 
 // 路由跳转拦截
 router.beforeEach((to, from, next) => {
@@ -408,20 +446,20 @@ router.beforeEach((to, from, next) => {
       next();
     } else {
       next({
-        name: 'UserLogin',
+        name: "UserLogin",
         query: { redirect: to.fullPath },
       });
     }
   } else {
-    if (to.name === 'Boot' || to.name === 'UserLogin') {
+    if (to.name === "Boot" || to.name === "UserLogin") {
       next();
     } else {
       next({
-        name: 'Boot',
+        name: "Boot",
         query: { redirect: to.fullPath },
       });
     }
   }
-})
+});
 
-export default router
+export default router;

+ 89 - 53
src/packages/mobile/views/home/components/main/index.vue

@@ -3,7 +3,11 @@
     <template #header>
       <app-navbar title="铁合金掌上行" :show-back-button="false" />
     </template>
-    <PullRefresh class="home-main__container" v-model="refreshing" @refresh="onRefresh">
+    <PullRefresh
+      class="home-main__container"
+      v-model="refreshing"
+      @refresh="onRefresh"
+    >
       <div class="home-main__banner home-main__banner--header">
         <Swipe :autoplay="5000" indicator-color="white" lazy-render>
           <SwipeItem v-for="(item, index) in topBanners" :key="index">
@@ -14,24 +18,36 @@
       <div class="home-main__iconbar">
         <ul>
           <li @click="routerTo('product')">
-            <app-iconfont icon="icon-chanpinjieshao" label-direction="bottom">产品介绍</app-iconfont>
+            <app-iconfont icon="icon-chanpinjieshao" label-direction="bottom"
+              >产品介绍</app-iconfont
+            >
           </li>
           <li @click="routerTo('Market')">
-            <app-iconfont icon="icon-maoyirongzi" label-direction="bottom">产品价格</app-iconfont>
+            <app-iconfont icon="icon-maoyirongzi" label-direction="bottom"
+              >产品价格</app-iconfont
+            >
           </li>
-          <li @click="routerTo('rules-ptgz')">
-            <app-iconfont icon="icon-pingtaiguize" label-direction="bottom">平台规则</app-iconfont>
+          <li @click="routerTo('NavigationPTGZ')">
+            <app-iconfont icon="icon-pingtaiguize" label-direction="bottom"
+              >平台规则</app-iconfont
+            >
           </li>
         </ul>
         <ul>
           <li @click="routerTo('credit-signin')">
-            <app-iconfont icon="icon-woderenwu" label-direction="bottom">我的任务</app-iconfont>
+            <app-iconfont icon="icon-woderenwu" label-direction="bottom"
+              >我的任务</app-iconfont
+            >
           </li>
           <li @click="routerTo('contract')">
-            <app-iconfont icon="icon-chanpinjiage" label-direction="bottom">合同转让</app-iconfont>
+            <app-iconfont icon="icon-chanpinjiage" label-direction="bottom"
+              >合同转让</app-iconfont
+            >
           </li>
           <li @click="routerTo('rules-ccwl')">
-            <app-iconfont icon="icon-a-bianzu12" label-direction="bottom">仓储物流</app-iconfont>
+            <app-iconfont icon="icon-a-bianzu12" label-direction="bottom"
+              >仓储物流</app-iconfont
+            >
           </li>
         </ul>
       </div>
@@ -64,14 +80,29 @@
           </SwipeItem>
         </Swipe>
       </div>
-      <div class="home-main__news" style="margin-top:.2rem">
-        <Cell class="titlebar" title-class="titlebar-title" value-class="titlebar-more" title="市场资讯" value="更多资讯"
-          :to="{ name: 'news-list' }" is-link />
+      <div class="home-main__news" style="margin-top: 0.2rem">
+        <Cell
+          class="titlebar"
+          title-class="titlebar-title"
+          value-class="titlebar-more"
+          title="市场资讯"
+          value="更多资讯"
+          :to="{ name: 'news-list' }"
+          is-link
+        />
         <CellGroup class="article">
           <template v-for="(item, index) in newsList" :key="index">
-            <Cell class="article-item" title-class="article-item__title" value-class="article-item__time"
-              :title="item.title" :value="formatDate(item.creaedate, 'MM/DD')"
-              :to="{ name: 'news-details', params: { item: JSON.stringify(item) } }" />
+            <Cell
+              class="article-item"
+              title-class="article-item__title"
+              value-class="article-item__time"
+              :title="item.title"
+              :value="formatDate(item.creaedate, 'MM/DD')"
+              :to="{
+                name: 'news-details',
+                params: { item: JSON.stringify(item) },
+              }"
+            />
           </template>
         </CellGroup>
       </div>
@@ -80,43 +111,48 @@
 </template>
 
 <script lang="ts" setup>
-import { shallowRef, computed } from 'vue'
-import { Cell, CellGroup, Swipe, SwipeItem, PullRefresh } from 'vant'
-import { getImageUrl, formatDate, parsePercent, handleNumberValue } from '@/filters'
-import { useNavigation } from '@/hooks/navigation'
-import { queryImageConfigs } from '@/services/api/common'
-import { querySiteColumnDetail } from '@/services/api/news'
-import { useSpotGoodsPrice } from '@/business/market'
-import { queryMarketRun } from '@/services/api/goods'
-import AppIconfont from '@mobile/components/base/iconfont/index.vue'
+import { shallowRef, computed } from "vue";
+import { Cell, CellGroup, Swipe, SwipeItem, PullRefresh } from "vant";
+import {
+  getImageUrl,
+  formatDate,
+  parsePercent,
+  handleNumberValue,
+} from "@/filters";
+import { useNavigation } from "@/hooks/navigation";
+import { queryImageConfigs } from "@/services/api/common";
+import { querySiteColumnDetail } from "@/services/api/news";
+import { useSpotGoodsPrice } from "@/business/market";
+import { queryMarketRun } from "@/services/api/goods";
+import AppIconfont from "@mobile/components/base/iconfont/index.vue";
 
-const { routerTo } = useNavigation()
-const { dataList, getSpotGoodsPrice } = useSpotGoodsPrice()
-const refreshing = shallowRef(false) // 是否处于加载中状态
-const topBanners = shallowRef<Model.ImageConfigsRsp[]>([])   // 轮播图列表
-const bodyBanners = shallowRef<Model.ImageConfigsRsp[]>([])  // 轮播图列表
-const newsList = shallowRef<Model.SiteColumnDetailRsp[]>([]) // 资讯列表
-const marketRun = shallowRef<Partial<Model.MarketRunRsp>>({})         // 市场
+const { routerTo } = useNavigation();
+const { dataList, getSpotGoodsPrice } = useSpotGoodsPrice();
+const refreshing = shallowRef(false); // 是否处于加载中状态
+const topBanners = shallowRef<Model.ImageConfigsRsp[]>([]); // 轮播图列表
+const bodyBanners = shallowRef<Model.ImageConfigsRsp[]>([]); // 轮播图列表
+const newsList = shallowRef<Model.SiteColumnDetailRsp[]>([]); // 资讯列表
+const marketRun = shallowRef<Partial<Model.MarketRunRsp>>({}); // 市场
 
 // 合金指数组列表(4条记录为一组)
 const groupList = computed(() => {
-  const result: Model.SpotGoodsPriceRsp[][] = []
+  const result: Model.SpotGoodsPriceRsp[][] = [];
   for (let i = 0; i < dataList.value.length; i += 4) {
-    result.push(dataList.value.slice(i, i + 4))
+    result.push(dataList.value.slice(i, i + 4));
   }
-  return result
-})
+  return result;
+});
 
 // 下拉刷新
 const onRefresh = () => {
   // 合金指数
-  getSpotGoodsPrice()
+  getSpotGoodsPrice();
   // 市场信息
   queryMarketRun({
     success: (res) => {
-      marketRun.value = res.data[0]
-    }
-  })
+      marketRun.value = res.data[0];
+    },
+  });
   // 市场资讯
   querySiteColumnDetail({
     data: {
@@ -124,35 +160,35 @@ const onRefresh = () => {
       pagesize: 10,
     },
     success: (res) => {
-      newsList.value = res.data
+      newsList.value = res.data;
     },
     complete: () => {
-      refreshing.value = false
-    }
-  })
-}
+      refreshing.value = false;
+    },
+  });
+};
 
 queryImageConfigs({
   data: {
-    imageType: 1
+    imageType: 1,
   },
   success: (res) => {
-    topBanners.value = res.data
-  }
-})
+    topBanners.value = res.data;
+  },
+});
 
 queryImageConfigs({
   data: {
-    imageType: 10
+    imageType: 10,
   },
   success: (res) => {
-    bodyBanners.value = res.data
-  }
-})
+    bodyBanners.value = res.data;
+  },
+});
 
-onRefresh()
+onRefresh();
 </script>
 
 <style lang="less">
-@import './index.less';
+@import "./index.less";
 </style>

+ 31 - 0
src/packages/mobile/views/navigation/ptgz/index.vue

@@ -0,0 +1,31 @@
+<!--
+ * @Author: deng.yinping deng.yinping@muchinfo.cn
+ * @Date: 2022-12-10 10:33:12
+ * @LastEditors: deng.yinping deng.yinping@muchinfo.cn
+ * @LastEditTime: 2022-12-10 11:11:08
+ * @FilePath: \THJ_Mobile\src\packages\mobile\views\navigation\ptgz\index.vue
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+-->
+<template>
+  <app-view class="navmenu-invoice" :loading="false">
+    <template #header>
+      <app-navbar title="平台规则" />
+    </template>
+    <div class="g-navmenu" style="margin-top: 0.2rem">
+      <CellGroup>
+        <Cell title="平台规则" :to="{ name: 'rules-ptgz' }" is-link />
+        <Cell title="买方规则" :to="{ name: 'rules-buyrule' }" is-link />
+        <Cell title="卖方规则" :to="{ name: 'rules-sellrule' }" is-link />
+        <Cell title="积分规则" :to="{ name: 'rules-jf' }" is-link />
+        <Cell title="采购合同" :to="{ name: 'rules-cght' }" is-link />
+        <Cell title="合同转让" :to="{ name: 'rules-zrht' }" is-link />
+        <Cell title="现货合同" :to="{ name: 'rules-xhht' }" is-link />
+        <Cell title="风险告知" :to="{ name: 'rules-yhkhfxgzs' }" is-link />
+      </CellGroup>
+    </div>
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import { Cell, CellGroup } from "vant";
+</script>

+ 12 - 0
src/packages/mobile/views/rules/buyrule/index.vue

@@ -0,0 +1,12 @@
+<template>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="买方规则" />
+    </template>
+    <app-html url="./html/mjgz_b.htm" />
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
+</script>

+ 30 - 0
src/packages/mobile/views/rules/cght/index.vue

@@ -0,0 +1,30 @@
+<!--
+ * @Author: deng.yinping deng.yinping@muchinfo.cn
+ * @Date: 2022-12-10 11:04:12
+ * @LastEditors: deng.yinping deng.yinping@muchinfo.cn
+ * @LastEditTime: 2022-12-10 11:12:47
+ * @FilePath: \THJ_Mobile\src\packages\mobile\views\rules\cght\index.vue
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+-->
+<template>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="采购合同" />
+    </template>
+    <div style="text-align: center; background-color: #fff; padding: 1rem 0">
+      <h4 style="margin-bottom: 0.32rem">产能预售合同.docx</h4>
+      <Button type="primary" style="width: 50%" round @click="download"
+        >下载文档</Button
+      >
+    </div>
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import { Tab, Tabs, Button } from "vant";
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
+
+const download = () => {
+  window.open("./html/ht_cg.docx");
+};
+</script>

+ 12 - 0
src/packages/mobile/views/rules/jfgz/index.vue

@@ -0,0 +1,12 @@
+<template>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="积分规则" />
+    </template>
+    <app-html url="./html/jfgz.htm" />
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
+</script>

+ 7 - 21
src/packages/mobile/views/rules/ptgz/index.vue

@@ -1,26 +1,12 @@
 <template>
-    <app-view class="app-html">
-        <template #header>
-            <app-navbar title="平台规则" />
-        </template>
-        <Tabs class="mine-generalize__tabs">
-            <Tab title="平台规则">
-                <app-html url="./html/ptgz.htm" />
-            </Tab>
-            <Tab title="买家规则">
-                <app-html url="./html/mjgz_b.htm" />
-            </Tab>
-            <Tab title="卖家规则">
-                <app-html url="./html/mjgz_s.htm" />
-            </Tab>
-            <Tab title="积分规则">
-                <app-html url="./html/jfgz.htm" />
-            </Tab>
-        </Tabs>
-    </app-view>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="平台规则" />
+    </template>
+    <app-html url="./html/ptgz.htm" />
+  </app-view>
 </template>
 
 <script lang="ts" setup>
-import { Tab, Tabs } from 'vant'
-import AppHtml from '@mobile/components/base/html-panel/index.vue'
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
 </script>

+ 20 - 0
src/packages/mobile/views/rules/sellrule/index.vue

@@ -0,0 +1,20 @@
+<!--
+ * @Author: deng.yinping deng.yinping@muchinfo.cn
+ * @Date: 2022-12-10 10:54:54
+ * @LastEditors: deng.yinping deng.yinping@muchinfo.cn
+ * @LastEditTime: 2022-12-10 10:55:50
+ * @FilePath: \THJ_Mobile\src\packages\mobile\views\rules\sellrule\index.vue
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+-->
+<template>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="卖方规则" />
+    </template>
+    <app-html url="./html/mjgz_s.htm" />
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
+</script>

+ 41 - 0
src/packages/mobile/views/rules/xhht/index.vue

@@ -0,0 +1,41 @@
+<!--
+ * @Author: deng.yinping deng.yinping@muchinfo.cn
+ * @Date: 2022-12-10 11:06:24
+ * @LastEditors: deng.yinping deng.yinping@muchinfo.cn
+ * @LastEditTime: 2022-12-10 11:09:57
+ * @FilePath: \THJ_Mobile\src\packages\mobile\views\rules\zrht\index.vue
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+-->
+<template>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="现货合同" />
+    </template>
+    <div style="text-align: center; background-color: #fff; padding: 1rem 0">
+      <h4 style="margin-bottom: 0.32rem">现货贸易合同(买方).docx</h4>
+      <Button type="primary" style="width: 50%" round @click="downloadbuy"
+        >下载文档</Button
+      >
+    </div>
+
+    <div style="text-align: center; background-color: #fff; padding: 1rem 0">
+      <h4 style="margin-bottom: 0.32rem">现货贸易合同(卖方).docx</h4>
+      <Button type="primary" style="width: 50%" round @click="downloadsell"
+        >下载文档</Button
+      >
+    </div>
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import { Tab, Tabs, Button } from "vant";
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
+
+const downloadbuy = () => {
+  window.open("./html/ht_xh_b.docx");
+};
+
+const downloadsell = () => {
+  window.open("./html/ht_xh_s.docx");
+};
+</script>

+ 30 - 0
src/packages/mobile/views/rules/zrht/index.vue

@@ -0,0 +1,30 @@
+<!--
+ * @Author: deng.yinping deng.yinping@muchinfo.cn
+ * @Date: 2022-12-10 11:06:24
+ * @LastEditors: deng.yinping deng.yinping@muchinfo.cn
+ * @LastEditTime: 2022-12-10 11:06:57
+ * @FilePath: \THJ_Mobile\src\packages\mobile\views\rules\zrht\index.vue
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
+-->
+<template>
+  <app-view class="app-html">
+    <template #header>
+      <app-navbar title="合同转让" />
+    </template>
+    <div style="text-align: center; background-color: #fff; padding: 1rem 0">
+      <h4 style="margin-bottom: 0.32rem">协议转让合同.docx</h4>
+      <Button type="primary" style="width: 50%" round @click="download"
+        >下载文档</Button
+      >
+    </div>
+  </app-view>
+</template>
+
+<script lang="ts" setup>
+import { Tab, Tabs, Button } from "vant";
+import AppHtml from "@mobile/components/base/html-panel/index.vue";
+
+const download = () => {
+  window.open("./html/ht_zr.docx");
+};
+</script>