li.shaoyi 1 년 전
부모
커밋
84b0929d4d

+ 3 - 3
src/packages/mobile/views/account/authresult/Index.vue

@@ -17,7 +17,7 @@
                 <Cell :title="halfBodyPhotoTitle" v-if="showHalfBodyPhoto === '1'">
                     <Image fit="contain" :src="getFileUrl(userInfo.halfbodyphotourl)" width="100" height="100" />
                 </Cell>
-                <Cell :title="$t('user.authentication.authstatus')" :value="getAuthStatusName(2)" />
+                <Cell :title="$t('user.authentication.authstatus')" :value="getAuthStatusName(userStore.userAccount.hasauth)" />
             </CellGroup>
         </div>
         <Empty :description="$t('common.nodatas')" v-else />
@@ -33,10 +33,10 @@ import { useRequest } from '@/hooks/request'
 import { getCertificateTypeCodeName } from '@/constants/account'
 import { getFileUrl } from '@/filters'
 import { getWskhOpenAccountConfigs } from '@/services/api/account'
-import { i18n } from "@/stores";
+import { i18n ,useUserStore} from "@/stores"
 
 const { t } = i18n.global
-
+const userStore = useUserStore()
 const userInfo = shallowRef<Model.UserInfo>()
 const showHalfBodyPhoto = shallowRef('0')
 const showCardBackPhoto = shallowRef('0')

+ 1 - 1
src/packages/pc/views/market/trade/index.vue

@@ -24,7 +24,7 @@ const componentMap = new Map<string, unknown>([
     ['tradeModel_46', defineAsyncComponent(() => import('./swap/index.vue'))], // 掉期市场
     ['tradeModel_99', defineAsyncComponent(() => import('./market/index.vue'))], // 参考行情
     ['tradeModel_10', defineAsyncComponent(() => import('./pricing/v2/index.vue'))], // 挂牌点价
-    ['tradeModel_53', defineAsyncComponent(() => import('./pricing/v2/index.vue'))], // 点价商城
+    ['tradeModel_53', defineAsyncComponent(() => import('./mall/index.vue'))], // 点价商城
 ])
 
 const futuresStore = useFuturesStore()

+ 42 - 0
src/packages/pc/views/market/trade/mall/index.less

@@ -0,0 +1,42 @@
+.market-pricing-v2 {
+    display: flex;
+    flex-wrap: wrap;
+    color: #e5e5e5;
+    line-height: normal;
+    padding: 15px 15px 0 0;
+
+    article {
+        width: 200px;
+        background-color: #202831;
+        border-radius: 3px;
+        cursor: pointer;
+        margin: 0 0 15px 15px;
+        padding: 10px;
+
+        h3 {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            font-size: 14px;
+            border-bottom: 1px solid #414851;
+            padding-bottom: 10px;
+        }
+
+        section {
+            display: flex;
+            justify-content: space-between;
+            padding-top: 10px;
+
+            dl {
+                dt {
+                    color: #71848f;
+                }
+
+                dd {
+                    font-size: 16px;
+                    padding-top: 10px;
+                }
+            }
+        }
+    }
+}

+ 74 - 0
src/packages/pc/views/market/trade/mall/index.vue

@@ -0,0 +1,74 @@
+<!-- 交易市场 - 点价商城 -->
+<template>
+    <el-scrollbar>
+        <div class="market-pricing-v2">
+            <article v-for="(item, index) in futuresStore.marketGoodsList" :key="index">
+                <h3 @click="openImageViewer(item.pictureurl)">
+                    <span>{{ item.goodscode }}</span>
+                    <app-icon icon="PictureFilled" v-if="item.pictureurl" />
+                </h3>
+                <section @click="onRowClick(item)">
+                    <dl>
+                        <dt>{{ t('quote.ask') }}</dt>
+                        <dd :class="item.askColor">{{ handleNumberValue(formatDecimal(item.ask, item.decimalplace)) }}
+                        </dd>
+                    </dl>
+                </section>
+            </article>
+        </div>
+        <el-image-viewer :url-list="viewerList" @close="showViewer = false" teleported v-if="showViewer" />
+        <component ref="componentRef" v-bind="{ goodsId: futuresStore.selectedGoodsId }"
+            :is="componentMap.get(componentId)" @closed="closeComponent" v-if="componentId" />
+    </el-scrollbar>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, onMounted, onUnmounted, defineAsyncComponent } from 'vue'
+import { getFileUrl } from '@/filters'
+import { useComponent } from '@/hooks/component'
+import { handleNumberValue, formatDecimal } from '@/filters'
+import { useUserStore, useFuturesStore, useGlobalStore, i18n } from '@/stores'
+import AppIcon from '@pc/components/base/icon/index.vue'
+
+const t = i18n.global.t
+const futuresStore = useFuturesStore()
+const globalStore = useGlobalStore()
+const userStore = useUserStore()
+const showViewer = shallowRef(false)
+const viewerList = shallowRef<string[]>([])
+
+// 任务 #6289
+const param1012 = userStore.getSystemParamValue('1012')
+
+const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => true, false)
+
+const componentMap = new Map<string, unknown>([
+    ['detail', defineAsyncComponent(() => import('@pc/components/modules/goods-detail/index.vue'))], // 详情
+])
+
+const onRowClick = (row: Model.GoodsQuote) => {
+    if (param1012 !== '0') {
+        futuresStore.selectedGoodsId = row.goodsid
+        openComponent('detail')
+    }
+}
+
+const openImageViewer = (url?: string) => {
+    if (url) {
+        viewerList.value = [getFileUrl(url)]
+        showViewer.value = true
+    }
+}
+
+onMounted(() => {
+    globalStore.showPricingListing = true
+})
+
+onUnmounted(() => {
+    globalStore.showPricingListing = false
+})
+</script>
+
+<style lang="less">
+@import './index.less';
+</style>

+ 31 - 2
src/packages/tss/views/home/main/index.vue

@@ -33,7 +33,7 @@
           </template>
         </CellGroup>
       </app-block>
-      <ProductList :data-list="goodsList" v-if="loginStore.token" />
+      <ProductList :data-list="goodsList" />
     </PullRefresh>
   </app-view>
 </template>
@@ -44,6 +44,7 @@ import { Cell, CellGroup, PullRefresh, Badge, Search } from 'vant'
 import { formatDate } from '@/filters'
 import { queryImageConfigs } from '@/services/api/common'
 import { queryNewTitles } from '@/services/api/news'
+import { queryTouristGoods, queryTouristQuoteDay } from '@/services/api/goods'
 import { useLoginStore, useNoticeStore, useGlobalStore, useFuturesStore } from '@/stores'
 import Banner from '@mobile/components/base/banner/index.vue'
 import ProductList from '../../product/list/components/waterfall-list/index.vue'
@@ -91,7 +92,35 @@ const getGoodsList = () => {
 
 onActivated(() => getGoodsList())
 
-onMounted(() => onRefresh())
+onMounted(() => {
+  onRefresh()
+  
+  if (!loginStore.token) {
+    // 获取游客商品列表
+    queryTouristGoods({
+      data: {
+        trademodes: '53',
+        marketids: '53201'
+      }
+    }).then((res) => {
+      futuresStore.goodsList = res.data
+      const goodsCodes = res.data.map((e) => e.goodscode)
+
+      // 获取游客商品盘面
+      queryTouristQuoteDay({
+        data: {
+          goodsCodes: goodsCodes.join(',')
+        }
+      }).then((res) => {
+        goodsCodes.forEach((goodscode) => {
+          const item = res.data.find((e) => e.goodscode === goodscode)
+          futuresStore.updateQuotation(item ?? { goodscode })
+        })
+        getGoodsList()
+      })
+    })
+  }
+})
 </script>
 
 <style lang="less">

+ 4 - 2
src/packages/tss/views/mine/Index.vue

@@ -51,7 +51,8 @@
         <app-block class="mine-iconbar">
             <ul>
                 <li @click="routerTo('order-position')">
-                    <Iconfont label-direction="bottom" icon="g-icon-position--line">{{ $t('mine.myposition') }}</Iconfont>
+                    <Iconfont label-direction="bottom" icon="g-icon-position--line">{{ $t('mine.myposition') }}
+                    </Iconfont>
                 </li>
                 <li @click="routerTo('order-list')">
                     <Iconfont label-direction="bottom" icon="g-icon-order--line">{{ $t('mine.myorder') }}</Iconfont>
@@ -68,7 +69,8 @@
                         <Iconfont icon="g-icon-capital">{{ $t('mine.fundsinfo') }}</Iconfont>
                     </template>
                 </Cell>
-                <Cell is-link :to="{ name: 'account-authresult' }" v-if="authStatus === AuthStatus.Submitted">
+                <Cell is-link :to="{ name: 'account-authresult' }"
+                    v-if="authStatus === AuthStatus.Submitted || authStatus === AuthStatus.Certified">
                     <template #title>
                         <Iconfont icon="g-icon-certification">{{ $t('mine.authentication') }}</Iconfont>
                     </template>

+ 9 - 9
src/packages/tss/views/user/login/Index.vue

@@ -4,14 +4,14 @@
 
 <script lang="ts" setup>
 import { onMounted, onUnmounted } from 'vue'
-import { dialog } from '@/utils/vant'
-import { useLoginStore, i18n } from '@/stores'
+// import { dialog } from '@/utils/vant'
+// import { useLoginStore, i18n } from '@/stores'
 import plus from '@/utils/h5plus'
 import AppLogin from '@mobile/components/layouts/login/index.vue'
 import logoImage from '../../../assets/images/login-logo.png'
 
-const { t } = i18n.global
-const loginStore = useLoginStore()
+// const { t } = i18n.global
+// const loginStore = useLoginStore()
 
 onMounted(() => {
   plus.setStatusBarStyle('dark')
@@ -20,11 +20,11 @@ onMounted(() => {
 onUnmounted(() => {
   plus.setStatusBarStyle('light')
 
-  setTimeout(() => {
-    if (loginStore.token) {
-      dialog({ message: t('user.login.tips7'), confirmButtonText: t('operation.confirm') })
-    }
-  }, 500)
+  // setTimeout(() => {
+  //   if (loginStore.token) {
+  //     dialog({ message: t('user.login.tips7'), confirmButtonText: t('operation.confirm') })
+  //   }
+  // }, 500)
 })
 </script>
 

+ 1 - 1
src/services/api/goods/index.ts

@@ -162,7 +162,7 @@ export function queryWrStandardFactoryItem(config: RequestConfig<Model.WrStandar
 /**
  * 查询企业风管期货商品信息
  */
-export function queryTouristGoods(config: RequestConfig = {}) {
+export function queryTouristGoods(config: RequestConfig<{ trademodes?: string; marketids?: string; }> = {}) {
     return http.commonRequest<Model.GoodsRsp[]>({
         url: '/sbyj/GetTouristGoods',
         params: config.data,