li.shaoyi 3 lat temu
rodzic
commit
88c8aeeabf

+ 3 - 2
src/business/bank/index.ts

@@ -48,9 +48,9 @@ export function useHisAmountStatementList() {
     const { dataList, total, pageIndex, pageSize, pageCount } = useDataTable<Model.HisAmountLogRsp>()
     const loading = shallowRef(false)
 
-    const getHisAmountStatementList = () => {
+    const getHisAmountStatementList = async () => {
         loading.value = true
-        return queryHisAmountLog({
+        await queryHisAmountLog({
             data: {
                 page: pageIndex.value,
                 pagesize: pageSize.value,
@@ -64,6 +64,7 @@ export function useHisAmountStatementList() {
                 loading.value = false
             }
         })
+        return dataList.value
     }
 
     return {

+ 31 - 4
src/constants/order.ts

@@ -3,10 +3,37 @@ import { useEnumStore } from '@/stores'
 const { getEnumTypeList, getEnumTypeName } = useEnumStore()
 
 /**
+ * 买卖方向
+ */
+export enum BuyOrSell {
+    Buy = 0, // 买
+    Sell = 1, // 卖
+}
+
+/**
+ * 获取买卖方向列表
+ * @returns 
+ */
+export function getBuyOrSellList() {
+    return [
+        { label: '买入', value: BuyOrSell.Buy },
+        { label: '卖出', value: BuyOrSell.Sell },
+    ]
+}
+
+/**
+ * 获取买卖方向名称
+ * @returns 
+ */
+export function getBuyOrSellName(value: number) {
+    return getEnumTypeName(getBuyOrSellList(), value)
+}
+
+/**
  * 获取交割方式类型列表
  * @returns 
  */
- export function getTHJDeliveryModeList() {
+export function getTHJDeliveryModeList() {
     return getEnumTypeList('thjDeliveryMode')
 }
 
@@ -14,7 +41,7 @@ const { getEnumTypeList, getEnumTypeName } = useEnumStore()
  * 获取交割方式类型名称
  * @returns 
  */
- export function getTHJDeliveryModeName(value: number) {
+export function getTHJDeliveryModeName(value: number) {
     const enums = getTHJDeliveryModeList()
     return getEnumTypeName(enums, value)
 }
@@ -23,7 +50,7 @@ const { getEnumTypeList, getEnumTypeName } = useEnumStore()
  * 获取单据状态类型列表
  * @returns 
  */
- export function getTHJOrderStatusList() {
+export function getTHJOrderStatusList() {
     return getEnumTypeList('thjOrderStatus')
 }
 
@@ -31,7 +58,7 @@ const { getEnumTypeList, getEnumTypeName } = useEnumStore()
  * 获取单据状态类型名称
  * @returns 
  */
- export function getTHJOrderStatusName(value: number) {
+export function getTHJOrderStatusName(value: number) {
     const enums = getTHJDeliveryModeList()
     return getEnumTypeName(enums, value)
 }

+ 2 - 2
src/packages/mobile/components/base/list/index.less

@@ -3,7 +3,7 @@
     padding         : 0 .32rem;
 
     &__table {
-        width     : 100%;
+        min-width : 100%;
         text-align: center;
 
         th {
@@ -29,7 +29,7 @@
     }
 
     &__column {
-        padding: .16rem;
+        padding: .16rem .08rem;
 
         &:first-child {
             text-align  : left;

+ 6 - 1
src/packages/mobile/components/base/list/index.vue

@@ -13,7 +13,7 @@
             </thead>
             <tbody>
                 <template v-for="(row, i) in dataList" :key="i">
-                    <tr class="app-list__row">
+                    <tr class="app-list__row" @click="onClick(row, i)">
                         <td class="app-list__column" :class="column.className" v-for="(column, n) in columns"
                             :key="i + n.toString()">
                             <div class="app-list__cell">
@@ -42,7 +42,12 @@ defineProps({
     },
 })
 
+const emit = defineEmits(['click'])
 //const colWidth = computed(() => (100 / props.columns.length) + '%')
+
+const onClick = (row: unknown, index: number) => {
+    emit('click', row, index)
+}
 </script>
 
 <style lang="less">

+ 4 - 19
src/packages/mobile/router/index.ts

@@ -211,29 +211,14 @@ const routes: Array<RouteRecordRaw> = [
     component: Page,
     children: [
       {
-        path: 'order',
+        path: '',
         name: 'my-order',
-        component: () => import('../views/mine/order/index.vue'),
-      },
-      {
-        path: 'purchasetrade',
-        name: 'purchase-trade',
-        component: () => import('../views/mine/order/components/purchasetrade/index.vue'),
-      },
-      {
-        path: 'wrorder',
-        name: 'wr-order',
-        component: () => import('../views/mine/order/components/wrorder/index.vue'),
-      },
-      {
-        path: 'wrtrade',
-        name: 'wr-trade',
-        component: () => import('../views/mine/order/components/wrtrade/index.vue'),
+        component: () => import('../views/mine/order/list/index.vue'),
       },
       {
-        path: 'purchasetradedetail',
+        path: 'detail',
         name: 'purchase-trade-detail',
-        component: () => import('../views/mine/order/purchasetradedetail/index.vue'),
+        component: () => import('../views/mine/order/detail/index.vue'),
       }
     ]
   },

+ 40 - 63
src/packages/mobile/views/bank/hisstatement/index.vue

@@ -1,33 +1,19 @@
 <template>
-    <app-view class="credit-hisstatement">
+    <app-view class="bank-hisstatement">
         <template #header>
             <app-navbar title="历史资金流水" />
         </template>
-        <app-pull-refresh class="credit-hisstatement__container" v-model:pageIndex="pageIndex" :page-count="pageCount"
-            :updateList="dataList" @refresh="onRefresh" @updated="onRefreshUpdated">
-            <template #header>
-                <ul class="list list-row" v-if="showHeader">
-                    <li class="list-column">
-                        <span>时间</span>
-                    </li>
-                    <li class="list-column">
-                        <span>操作类型</span>
-                    </li>
-                    <li class="list-column">
-                        <span>金额</span>
-                    </li>
-                </ul>
-            </template>
-            <template #default="{ item }">
-                <ul class="list list-row">
-                    <li class="list-column">
-                        <span>{{ formatDate(item.createtime, 'YYYY-MM-DD') }}</span>
-                        <span>{{ formatDate(item.createtime, 'HH:mm:ss') }}</span>
-                    </li>
-                    <li class="list-column">{{ getAccountBusinessCodeName(item.businesscode) }}</li>
-                    <li class="list-column">{{ item.amount }}</li>
-                </ul>
-            </template>
+        <app-pull-refresh v-model:error="error" v-model:pageIndex="pageIndex" :page-count="pageCount"
+            @refresh="onRefresh">
+            <app-list class="bank-hisstatement__table" :columns="columns" :data-list="dataList">
+                <template #createtime="{ value }">
+                    <span>{{ formatDate(value, 'YYYY-MM-DD') }}</span>
+                    <span>{{ formatDate(value, 'HH:mm:ss') }}</span>
+                </template>
+                <template #businesscode="{ value }">
+                    {{ getAccountBusinessCodeName(value) }}
+                </template>
+            </app-list>
         </app-pull-refresh>
     </app-view>
 </template>
@@ -38,55 +24,46 @@ import { formatDate } from '@/filters'
 import { getAccountBusinessCodeName } from '@/constants/bank'
 import { useHisAmountStatementList } from '@/business/bank'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+import AppList from '@mobile/components/base/list/index.vue'
 
-const { dataList, pageIndex, pageCount, getHisAmountStatementList } = useHisAmountStatementList()
-const showHeader = shallowRef(false)
+const { pageIndex, pageCount, getHisAmountStatementList } = useHisAmountStatementList()
+const dataList = shallowRef<Model.HisAmountLogRsp[]>([])
+const error = shallowRef(false)
 
-const onRefresh = (callback: () => void) => {
-    getHisAmountStatementList().finally(() => callback())
-}
+const columns: Model.TableColumn[] = [
+    { prop: 'createtime', label: '时间' },
+    { prop: 'businesscode', label: '操作类型' },
+    { prop: 'amount', label: '积分' },
+]
 
-const onRefreshUpdated = (data: Model.UserScoreLogRsp[]) => {
-    showHeader.value = data.length > 0
+const onRefresh = (finish: () => void) => {
+    getHisAmountStatementList().then((res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res)
+    }).catch(() => {
+        error.value = true
+    }).finally(() => {
+        finish()
+    })
 }
 </script>
 
 <style lang="less">
-.credit-hisstatement {
-    &__container {
-        height: 100%;
-        overflow-y: auto;
-
-        .list {
-            display: flex;
-            align-items: center;
-            background-color: #fff;
-
-            &-row {
-                font-size: .32rem;
-                border-bottom: 1px solid #eee;
-                padding: .12rem .32rem;
-            }
-
-            &-column {
-                flex: 1;
-                display: flex;
-                flex-direction: column;
-                text-align: center;
-
-                &:first-child {
-                    text-align: left;
-                }
-
-                &:last-child {
-                    text-align: right;
-                }
-
+.bank-hisstatement {
+    &__table {
+        td.app-list__column {
+            &:first-child {
                 span:last-child {
                     color: #999;
                     font-size: .24rem;
                 }
             }
+
+            &:not(:first-child) {
+                font-size: .32rem;
+            }
         }
     }
 }

+ 29 - 58
src/packages/mobile/views/bank/statement/index.vue

@@ -1,5 +1,5 @@
 <template>
-    <app-view class="credit-statement">
+    <app-view class="bank-statement">
         <template #header>
             <app-navbar title="资金流水">
                 <template #right>
@@ -7,49 +7,42 @@
                 </template>
             </app-navbar>
         </template>
-        <app-pull-refresh class="credit-statement__container" :dataList="dataList" v-model:error="error"
-            v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="onRefresh">
-            <template #header>
-                <ul class="list list-row" v-if="dataList.length">
-                    <li class="list-column">
-                        <span>时间</span>
-                    </li>
-                    <li class="list-column">
-                        <span>操作类型</span>
-                    </li>
-                    <li class="list-column">
-                        <span>金额</span>
-                    </li>
-                </ul>
-            </template>
-            <template #default="{ item }">
-                <ul class="list list-row">
-                    <li class="list-column">
-                        <span>{{ formatDate(item.createtime, 'YYYY-MM-DD') }}</span>
-                        <span>{{ formatDate(item.createtime, 'HH:mm:ss') }}</span>
-                    </li>
-                    <li class="list-column">{{ getAccountBusinessCodeName(item.businesscode) }}</li>
-                    <li class="list-column">{{ item.amount }}</li>
-                </ul>
-            </template>
+        <app-pull-refresh v-model:error="error" v-model:pageIndex="pageIndex" :page-count="pageCount"
+            @refresh="onRefresh">
+            <app-list class="bank-statement__table" :columns="columns" :data-list="dataList">
+                <template #createtime="{ value }">
+                    <span>{{ formatDate(value, 'YYYY-MM-DD') }}</span>
+                    <span>{{ formatDate(value, 'HH:mm:ss') }}</span>
+                </template>
+                <template #businesscode="{ value }">
+                    {{ getAccountBusinessCodeName(value) }}
+                </template>
+            </app-list>
         </app-pull-refresh>
     </app-view>
 </template>
 
 <script lang="ts" setup>
 import { shallowRef } from 'vue'
+import { Button } from 'vant'
 import { formatDate } from '@/filters'
+import { useNavigation } from '@/hooks/navigation'
 import { getAccountBusinessCodeName } from '@/constants/bank'
 import { useAmountStatementList } from '@/business/bank'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
-import { useNavigation } from '@/hooks/navigation'
-import { Button } from 'vant'
+import AppList from '@mobile/components/base/list/index.vue'
 
 const { routerTo } = useNavigation()
 const { pageIndex, pageCount, getAmountStatementList } = useAmountStatementList()
 const dataList = shallowRef<Model.AmountLogRsp[]>([])
 const error = shallowRef(false)
 
+const columns: Model.TableColumn[] = [
+    { prop: 'createtime', label: '时间' },
+    { prop: 'businesscode', label: '操作类型' },
+    { prop: 'amount', label: '积分' },
+]
+
 const onRefresh = (finish: () => void) => {
     getAmountStatementList().then((res) => {
         if (pageIndex.value === 1) {
@@ -65,41 +58,19 @@ const onRefresh = (finish: () => void) => {
 </script>
 
 <style lang="less">
-.credit-statement {
-    &__container {
-        height: 100%;
-        overflow-y: auto;
-
-        .list {
-            display: flex;
-            align-items: center;
-            background-color: #fff;
-
-            &-row {
-                font-size: .32rem;
-                border-bottom: 1px solid #eee;
-                padding: .12rem .32rem;
-            }
-
-            &-column {
-                flex: 1;
-                display: flex;
-                flex-direction: column;
-                text-align: center;
-
-                &:first-child {
-                    text-align: left;
-                }
-
-                &:last-child {
-                    text-align: right;
-                }
-
+.bank-statement {
+    &__table {
+        td.app-list__column {
+            &:first-child {
                 span:last-child {
                     color: #999;
                     font-size: .24rem;
                 }
             }
+
+            &:not(:first-child) {
+                font-size: .32rem;
+            }
         }
     }
 }

+ 1 - 1
src/packages/mobile/views/market/main/index.vue

@@ -9,7 +9,7 @@
     </template>
     <app-pull-refresh v-model:loading="state.loading" v-model:updateList="state.list" @refresh="onRefresh"
       v-if="animationend">
-      <template #default="{ item }">
+      <template v-for="(item, index) in state.list" :key="index">
         <Cell :title="item" :to="{ name: 'market-detail', params: { id: 1 } }" />
       </template>
     </app-pull-refresh>

+ 50 - 46
src/packages/mobile/views/mine/generalize/index.vue

@@ -3,53 +3,46 @@
         <template #header>
             <app-navbar title="我的推广" />
         </template>
-        <app-pull-refresh class="mine-generalize__container" :dataList="dataList" v-model:error="error"
-            v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="onRefresh">
-            <template #header>
-                <div class="mine-generalize__header">
-                    <div class="info">
-                        <span>{{ userAccount.refercount }}</span>
-                        <h4>推广人数</h4>
+        <app-pull-refresh class="mine-generalize__container" v-model:error="error" v-model:pageIndex="pageIndex"
+            :page-count="pageCount" @refresh="onRefresh">
+            <div class="mine-generalize__header">
+                <div class="info">
+                    <span>{{ userAccount.refercount }}</span>
+                    <h4>推广人数</h4>
+                </div>
+                <div class="block">
+                    <div class="block-left">
+                        <h4>当日新增</h4>
+                        <span>{{ userAccount.todayrefercount }}</span>
                     </div>
-                    <div class="block">
-                        <div class="block-left">
-                            <h4>当日新增</h4>
-                            <span>{{ userAccount.todayrefercount }}</span>
-                        </div>
-                        <div class="block-right">
-                            <h4>推广编号</h4>
-                            <span @click="showQRCode = false">{{ userAccount.refernum }}</span>
-                        </div>
+                    <div class="block-right">
+                        <h4>推广编号</h4>
+                        <span @click="showQRCode = false">{{ userAccount.refernum }}</span>
                     </div>
                 </div>
-                <Tabs class="mine-generalize__tabs" @change="onClickTab">
-                    <Tab title="交易数据">
-                        <Empty v-if="dataList.length === 0" />
-                    </Tab>
-                    <Tab title="推广收益">
-                        <Empty />
-                    </Tab>
-                </Tabs>
-                <ul class="list list-row" v-if="dataList.length">
-                    <li class="list-column"><span>日期</span></li>
-                    <li class="list-column"><span>市场</span></li>
-                    <li class="list-column"><span>商品</span></li>
-                    <li class="list-column"><span>被推荐人</span></li>
-                    <li class="list-column"><span>吨数</span></li>
-                    <li class="list-column"><span>笔数</span></li>
-                </ul>
-            </template>
-            <template #default="{ item }">
-                <ul class="list list-row">
-                    <li class="list-column"><span>{{ formatDate(item.reckondate, 'YYYY-MM-DD') }}</span></li>
-                    <li class="list-column"><span>{{ item.marketid == 64201 ? '采购' : '供求' }}</span></li>
-                    <li class="list-column"><span>{{ item.wrstandardname }}</span></li>
-                    <li class="list-column"><span>{{ item.accountname }}</span></li>
-                    <li class="list-column"><span>{{ item.marketid == 64201 ? item.buytradeqty : item.selltradeqty
-                    }}</span></li>
-                    <li class="list-column"><span>{{ item.selltradelot }}</span></li>
-                </ul>
-            </template>
+            </div>
+            <Tabs class="mine-generalize__tabs" @change="onClickTab">
+                <Tab title="交易数据">
+                    <Empty v-if="dataList.length === 0" />
+                </Tab>
+                <Tab title="推广收益">
+                    <Empty />
+                </Tab>
+            </Tabs>
+            <app-list :columns="columns" :data-list="dataList" v-if="dataList.length">
+                <!-- 日期 -->
+                <template #reckondate="{ value }">
+                    {{ formatDate(value, 'YYYY-MM-DD') }}
+                </template>
+                <!-- 市场 -->
+                <template #marketid="{ value }">
+                    {{ value == Market.THJ ? '采购' : '供求' }}
+                </template>
+                <!-- 吨数 -->
+                <template #tradeqty="{ row }">
+                    {{ row.marketid === Market.THJ ? row.buytradeqty : row.selltradeqty }}
+                </template>
+            </app-list>
         </app-pull-refresh>
         <app-qrcode v-model:show="showQRCode" :content="userAccount.refernum" />
     </app-view>
@@ -58,12 +51,14 @@
 <script lang="ts" setup>
 import { shallowRef } from 'vue'
 import { Tab, Tabs, Empty } from 'vant'
+import { formatDate } from '@/filters'
 import { useLoginStore } from '@/stores'
 import { queryUserAccount } from '@/services/api/account'
 import { useQueryTHJTradeDataList } from '@/business/goods'
+import { Market } from '@/constants/market'
 import AppQrcode from '@mobile/components/base/qrcode/index.vue'
-import { formatDate } from '@/filters'
 import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+import AppList from '@mobile/components/base/list/index.vue'
 
 const { pageIndex, pageCount, getQueryTHJTradeDataList } = useQueryTHJTradeDataList()
 const pullRefreshRef = shallowRef()
@@ -77,6 +72,15 @@ const userAccount = shallowRef<Partial<Model.UserAccount>>({
     refercount: 0,
 })
 
+const columns: Model.TableColumn[] = [
+    { prop: 'reckondate', label: '日期' },
+    { prop: 'marketid', label: '市场' },
+    { prop: 'wrstandardname', label: '商品' },
+    { prop: 'accountname', label: '被推荐人' },
+    { prop: 'tradeqty', label: '吨数' },
+    { prop: 'selltradelot', label: '笔数' },
+]
+
 queryUserAccount({
     data: {
         userID: getUserId()
@@ -93,7 +97,7 @@ const onClickTab = () => {
 
 const onRefresh = (finish: () => void) => {
     /// 查询数据
-    getQueryTHJTradeDataList(64201).then((res) => {
+    getQueryTHJTradeDataList(Market.THJ).then((res) => {
         if (pageIndex.value === 1) {
             dataList.value = []
         }

+ 0 - 111
src/packages/mobile/views/mine/order/components/purchasetrade/index.vue

@@ -1,111 +0,0 @@
-<template>
-    <app-view class="purchase">
-        <app-pull-refresh class="purchase__container" :dataList="dataList" v-model:error="error" v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="onRefresh">
-            <template #header>
-                <ul class="list list-row">
-                    <li class="list-column">
-                        <span>商品</span>
-                    </li>
-                    <li class="list-column">
-                        <span>数量</span>
-                    </li>
-                    <li class="list-column">
-                        <span>预售价</span>
-                    </li>
-                    <li class="list-column">
-                        <span>实际价</span>
-                    </li>
-                    <li class="list-column">
-                        <span>定金</span>
-                    </li>
-                    <li class="list-column">
-                        <span>尾款</span>
-                    </li>
-                    <li class="list-column">
-                        <span>状态</span>
-                    </li>
-                    <Button round size="mini">更多</Button>
-                </ul>
-            </template>
-            <template #default="{ item }">
-                <ul class="list list-row" @click="$router.push({name:'purchase-trade-detail', params: {item: JSON.stringify(item)}})">
-                    <li class="list-column"><span>{{ item.wrstandardname }}</span></li>
-                    <li class="list-column"><span>{{ item.tradeqty }}</span></li>
-                    <li class="list-column"><span>{{ item.tradeprice }}</span></li>
-                    <li class="list-column"><span>{{ item.lastprice }}</span></li>
-                    <li class="list-column"><span>{{ item.payeddeposit }}</span></li>
-                    <li class="list-column"><span>{{ item.remainamount }}</span></li>
-                    <li class="list-column"><span>{{ item.thjorderstatusdisplay }}</span></li>
-                </ul>
-            </template>
-        </app-pull-refresh>
-    </app-view>
-</template>
-
-<script lang="ts" setup>
-
-import { shallowRef } from 'vue'
-import { useTHJPurchaseTradeDetail } from '@/business/order'
-import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
-import { Button } from 'vant'
-
-const {  pageIndex, pageCount, getTHJPurchaseTradeDetail } = useTHJPurchaseTradeDetail()
-const error = shallowRef(false)
-const dataList = shallowRef<Model.THJPurchaseTradeDetailRsp[]>([])
-
-const onRefresh = (finish: () => void) => {
-    /// 查询未完成
-    getTHJPurchaseTradeDetail(0).then((res) => {
-        if (pageIndex.value === 1) {
-            dataList.value = []
-        }
-        dataList.value.push(...res)
-    }).catch(() => {
-        error.value = true
-    }).finally(() => {
-        finish()
-    })
-}
-
-</script>
-
-<style lang="less">
-.purchase {
-    &__container {
-        height: 100%;
-        overflow-y: auto;
-
-        .list {
-            display: flex;
-            align-items: center;
-            background-color: #fff;
-
-            &-row {
-                font-size: .32rem;
-                border-bottom: 1px solid #eee;
-                padding: .20rem .32rem;
-            }
-
-            &-column {
-                flex: 1;
-                display: flex;
-                flex-direction: column;
-                text-align: center;
-
-                &:first-child {
-                    text-align: left;
-                }
-
-                &:last-child {
-                    text-align: right;
-                }
-
-                span:last-child {
-                    color: #999;
-                    font-size: .24rem;
-                }
-            }
-        }
-    }
-}
-</style>

+ 0 - 108
src/packages/mobile/views/mine/order/components/wrorder/index.vue

@@ -1,108 +0,0 @@
-<template>
-    <app-view class="wrorderdetail">
-        <app-pull-refresh class="wrorderdetail__container" v-model:pageIndex="pageIndex"  v-model:error="error" :page-count="pageCount"
-            :dataList="dataList" @refresh="onRefresh">
-            <template #header>
-                <ul class="list list-row">
-                    <li class="list-column">
-                        <span>商品</span>
-                    </li>
-                    <li class="list-column">
-                        <span>方向</span>
-                    </li>
-                    <li class="list-column">
-                        <span>挂牌价格</span>
-                    </li>
-                    <li class="list-column">
-                        <span>挂牌数量</span>
-                    </li>
-                    <li class="list-column">
-                        <span>成交数量</span>
-                    </li>
-                    <li class="list-column">
-                        <span>状态</span>
-                    </li>
-                    <Button round size="mini">更多</Button>
-                </ul>
-            </template>
-            <template #default="{ item }">
-                <ul class="list list-row">
-                    <li class="list-column"><span>{{ item.wrstandardname }}</span></li>
-                    <li class="list-column"><span>{{ item.buyorsell === 0 ? '买入' : '卖出' }}</span></li>
-                    <li class="list-column"><span>{{ item.fixedprice }}</span></li>
-                    <li class="list-column"><span>{{ item.orderqty }}</span></li>
-                    <li class="list-column"><span>{{ item.tradeqty }}</span></li>
-                    <li class="list-column"><span></span>{{ getTHJOrderStatusName(item.wrtradeorderstatus) }}</li>
-                </ul>
-            </template>
-        </app-pull-refresh>
-    </app-view>
-</template>
-
-<script lang="ts" setup>
-
-import { shallowRef } from 'vue'
-import { useQueryWrOrderDetail } from '@/business/order'
-import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
-import { Button } from 'vant'
-import { getTHJOrderStatusName } from "@/constants/order";
-
-const { dataList, pageIndex, pageCount, getWrOrderDetail } = useQueryWrOrderDetail()
-const error = shallowRef(false)
-
-const onRefresh = (finish: () => void) => {
-    /// 查询未完成
-    getWrOrderDetail(1).then((res) => {
-        if (pageIndex.value === 1) {
-            dataList.value = []
-        }
-        dataList.value.push(...res)
-    }).catch(() => {
-        error.value = true
-    }).finally(() => {
-        finish()
-    })
-}
-
-</script>
-
-<style lang="less">
-.wrorderdetail {
-    &__container {
-        height: 100%;
-        overflow-y: auto;
-
-        .list {
-            display: flex;
-            align-items: center;
-            background-color: #fff;
-
-            &-row {
-                font-size: .32rem;
-                border-bottom: 1px solid #eee;
-                padding: .12rem .32rem;
-            }
-
-            &-column {
-                flex: 1;
-                display: flex;
-                flex-direction: column;
-                text-align: center;
-
-                &:first-child {
-                    text-align: left;
-                }
-
-                &:last-child {
-                    text-align: right;
-                }
-
-                span:last-child {
-                    color: #999;
-                    font-size: .24rem;
-                }
-            }
-        }
-    }
-}
-</style>

+ 0 - 112
src/packages/mobile/views/mine/order/components/wrtrade/index.vue

@@ -1,112 +0,0 @@
-<template>
-    <app-view class="wrtradedetail">
-        <app-pull-refresh class="wrtradedetail__container" v-model:pageIndex="pageIndex" :page-count="pageCount" v-model:error="error"
-        :dataList="dataList" @refresh="onRefresh">
-            <template #header>
-                <ul class="list list-row">
-                    <li class="list-column">
-                        <span>商品</span>
-                    </li>
-                    <li class="list-column">
-                        <span>方向</span>
-                    </li>
-                    <li class="list-column">
-                        <span>成交价格</span>
-                    </li>
-                    <li class="list-column">
-                        <span>成交数量</span>
-                    </li>
-                    <li class="list-column">
-                        <span>成交金额</span>
-                    </li>
-                    <li class="list-column">
-                        <span>成交时间</span>
-                    </li>
-                    <Button round size="mini" @click="routerTo('bank-hisstatement')">更多</Button>
-                </ul>
-            </template>
-            <template #default="{ item }">
-                <ul class="list list-row">
-                    <li class="list-column"><span>{{ item.wrstandardname }}</span></li>
-                    <li class="list-column"><span>{{ item.buyorsell === 0 ? '买入' : '卖出' }}</span></li>
-                    <li class="list-column"><span>{{ item.tradeprice }}</span></li>
-                    <li class="list-column"><span>{{ item.tradeqty }}</span></li>
-                    <li class="list-column">
-                        <span>{{ formatDate(item.tradetime, 'YYYY-MM-DD') }}</span>
-                        <span>{{ formatDate(item.tradetime, 'HH:mm:ss') }}</span>
-                    </li>
-                </ul>
-            </template>
-        </app-pull-refresh>
-    </app-view>
-</template>
-
-<script lang="ts" setup>
-
-import { shallowRef } from 'vue'
-import { useQueryWrTradeDetail } from '@/business/order'
-import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
-import { useNavigation } from '@/hooks/navigation'
-import { Button } from 'vant'
-import { formatDate } from '@/filters'
-
-const { dataList, pageIndex, pageCount, getWrTradeDetail } = useQueryWrTradeDetail()
-const { routerTo } = useNavigation()
-const error = shallowRef(false)
-
-const onRefresh = (finish: () => void) => {
-    /// 查询未完成
-    getWrTradeDetail(1).then((res) => {
-        if (pageIndex.value === 1) {
-            dataList.value = []
-        }
-        dataList.value.push(...res)
-    }).catch(() => {
-        error.value = true
-    }).finally(() => {
-        finish()
-    })
-}
-
-</script>
-
-<style lang="less">
-.wrtradedetail {
-    &__container {
-        height: 100%;
-        overflow-y: auto;
-
-        .list {
-            display: flex;
-            align-items: center;
-            background-color: #fff;
-
-            &-row {
-                font-size: .32rem;
-                border-bottom: 1px solid #eee;
-                padding: .12rem .32rem;
-            }
-
-            &-column {
-                flex: 1;
-                display: flex;
-                flex-direction: column;
-                text-align: center;
-
-                &:first-child {
-                    text-align: left;
-                }
-
-                &:last-child {
-                    text-align: right;
-                }
-
-                span:last-child {
-                    color: #999;
-                    font-size: .24rem;
-                }
-            }
-        }
-    }
-}
-</style>

+ 0 - 0
src/packages/mobile/views/mine/order/purchasetradedetail/index.vue → src/packages/mobile/views/mine/order/detail/index.vue


+ 52 - 0
src/packages/mobile/views/mine/order/list/components/purchasetrade/index.vue

@@ -0,0 +1,52 @@
+<template>
+    <app-view class="order-list-purchase">
+        <app-pull-refresh v-model:error="error" v-model:pageIndex="pageIndex" :page-count="pageCount"
+            @refresh="onRefresh">
+            <app-list :columns="columns" :data-list="dataList" @click="onClick" />
+            <!-- <Button>更多</Button> -->
+        </app-pull-refresh>
+    </app-view>
+</template>
+
+<script lang="ts" setup>
+
+import { shallowRef } from 'vue'
+// import { Button } from 'vant'
+import { useNavigation } from '@/hooks/navigation'
+import { useTHJPurchaseTradeDetail } from '@/business/order'
+import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+import AppList from '@mobile/components/base/list/index.vue'
+
+const { router } = useNavigation()
+const { pageIndex, pageCount, getTHJPurchaseTradeDetail } = useTHJPurchaseTradeDetail()
+const dataList = shallowRef<Model.THJPurchaseTradeDetailRsp[]>([])
+const error = shallowRef(false)
+
+const columns: Model.TableColumn[] = [
+    { prop: 'wrstandardname', label: '商品' },
+    { prop: 'tradeqty', label: '数量' },
+    { prop: 'tradeprice', label: '预售价' },
+    { prop: 'lastprice', label: '实际价' },
+    { prop: 'payeddeposit', label: '定金' },
+    { prop: 'remainamount', label: '尾款' },
+    { prop: 'thjorderstatusdisplay', label: '状态' },
+]
+
+const onClick = (item: Model.THJPurchaseTradeDetailRsp) => {
+    router.push({ name: 'purchase-trade-detail', params: { item: JSON.stringify(item) } })
+}
+
+const onRefresh = (finish: () => void) => {
+    /// 查询未完成
+    getTHJPurchaseTradeDetail(0).then((res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res)
+    }).catch(() => {
+        error.value = true
+    }).finally(() => {
+        finish()
+    })
+}
+</script>

+ 55 - 0
src/packages/mobile/views/mine/order/list/components/wrorder/index.vue

@@ -0,0 +1,55 @@
+<template>
+    <app-view class="wrorderdetail">
+        <app-pull-refresh v-model:pageIndex="pageIndex" v-model:error="error" :page-count="pageCount"
+            @refresh="onRefresh">
+            <app-list :columns="columns" :data-list="dataList">
+                <!-- 方向 -->
+                <template #buyorsell="{ value }">
+                    {{ getBuyOrSellName(value) }}
+                </template>
+                <!-- 状态 -->
+                <template #wrtradeorderstatus="{ value }">
+                    {{ getTHJOrderStatusName(value) }}
+                </template>
+            </app-list>
+            <!-- <Button>更多</Button> -->
+        </app-pull-refresh>
+    </app-view>
+</template>
+
+<script lang="ts" setup>
+
+import { shallowRef } from 'vue'
+// import { Button } from 'vant'
+import { getTHJOrderStatusName, getBuyOrSellName } from '@/constants/order'
+import { useQueryWrOrderDetail } from '@/business/order'
+import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+import AppList from '@mobile/components/base/list/index.vue'
+
+const { pageIndex, pageCount, getWrOrderDetail } = useQueryWrOrderDetail()
+const dataList = shallowRef<Model.WrOrderDetailRsp[]>([])
+const error = shallowRef(false)
+
+const columns: Model.TableColumn[] = [
+    { prop: 'wrstandardname', label: '商品' },
+    { prop: 'buyorsell', label: '方向' },
+    { prop: 'fixedprice', label: '挂牌价格' },
+    { prop: 'orderqty', label: '挂牌数量' },
+    { prop: 'tradeqty', label: '成交数量' },
+    { prop: 'wrtradeorderstatus', label: '状态' },
+]
+
+const onRefresh = (finish: () => void) => {
+    /// 查询未完成
+    getWrOrderDetail(1).then((res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res)
+    }).catch(() => {
+        error.value = true
+    }).finally(() => {
+        finish()
+    })
+}
+</script>

+ 59 - 0
src/packages/mobile/views/mine/order/list/components/wrtrade/index.vue

@@ -0,0 +1,59 @@
+<template>
+    <app-view class="wrtradedetail">
+        <app-pull-refresh v-model:pageIndex="pageIndex" :page-count="pageCount" v-model:error="error"
+            @refresh="onRefresh">
+            <app-list :columns="columns" :data-list="dataList">
+                <!-- 方向 -->
+                <template #buyorsell="{ value }">
+                    {{ getBuyOrSellName(value) }}
+                </template>
+                <!-- 成交时间 -->
+                <template #tradetime="{ value }">
+                    <span>{{ formatDate(value, 'YYYY-MM-DD') }}</span>
+                    <span>{{ formatDate(value, 'HH:mm:ss') }}</span>
+                </template>
+            </app-list>
+            <Button @click="routerTo('bank-hisstatement')">更多</Button>
+        </app-pull-refresh>
+    </app-view>
+</template>
+
+<script lang="ts" setup>
+
+import { shallowRef } from 'vue'
+import { Button } from 'vant'
+import { useNavigation } from '@/hooks/navigation'
+import { formatDate } from '@/filters'
+import { getBuyOrSellName } from '@/constants/order'
+import { useQueryWrTradeDetail } from '@/business/order'
+import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
+import AppList from '@mobile/components/base/list/index.vue'
+
+const { routerTo } = useNavigation()
+const { pageIndex, pageCount, getWrTradeDetail } = useQueryWrTradeDetail()
+const dataList = shallowRef<Model.WrTradeDetailRsp[]>([])
+const error = shallowRef(false)
+
+const columns: Model.TableColumn[] = [
+    { prop: 'wrstandardname', label: '商品' },
+    { prop: 'buyorsell', label: '方向' },
+    { prop: 'tradeprice', label: '成交价格' },
+    { prop: 'orderqty', label: '成交数量' },
+    { prop: 'tradeqty', label: '成交金额' },
+    { prop: 'tradetime', label: '成交时间' },
+]
+
+const onRefresh = (finish: () => void) => {
+    /// 查询未完成
+    getWrTradeDetail(1).then((res) => {
+        if (pageIndex.value === 1) {
+            dataList.value = []
+        }
+        dataList.value.push(...res)
+    }).catch(() => {
+        error.value = true
+    }).finally(() => {
+        finish()
+    })
+}
+</script>

+ 0 - 0
src/packages/mobile/views/mine/order/index.less → src/packages/mobile/views/mine/order/list/index.less


+ 0 - 0
src/packages/mobile/views/mine/order/index.vue → src/packages/mobile/views/mine/order/list/index.vue


+ 0 - 31
src/packages/mobile/views/news/list/components/article/index.vue

@@ -1,31 +0,0 @@
-<template>
-    <app-pull-refresh class="news-list__container" v-model:pageIndex="pageIndex" :page-count="pageCount"
-            :updateList="dataList" @refresh="onRefresh">
-            <template #default="{ 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: { details: JSON.stringify(item) } }" />
-            </template>
-      </app-pull-refresh>
-</template>
-
-<script lang="ts" setup>
-
-import { Cell } from 'vant'
-import { formatDate } from '@/filters'
-import { useSiteColumnDetail } from '@/business/news'
-import AppPullRefresh from '@mobile/components/base/pull-refresh/index.vue'
-
-const props=defineProps({
-    columnid: {
-        type:Number,
-        default:0
-    }
-})
-
-const { dataList, pageIndex, pageCount, getSiteColumnDetail } = useSiteColumnDetail()
-
-const onRefresh = (callback: () => void) => {
-  getSiteColumnDetail(props.columnid).finally(() => callback())
-}
-</script>

+ 3 - 5
src/packages/mobile/views/news/list/index.vue

@@ -8,12 +8,10 @@
         <Tab :name="item.id" :title="item.columnname" />
       </template>
     </Tabs>
-    <app-pull-refresh ref="pullRefreshRef" class="news-list__container" :dataList="dataList" v-model:error="error"
+    <app-pull-refresh ref="pullRefreshRef" class="news-list__container" v-model:error="error"
       v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="onRefresh">
-      <template #header>
-        <Empty v-if="dataList.length === 0" />
-      </template>
-      <template #default="{ item }">
+      <Empty v-if="dataList.length === 0" />
+      <template v-for="(item, index) in dataList" :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: { details: JSON.stringify(item) } }" />

+ 37 - 36
src/packages/mobile/views/product/index.vue

@@ -1,29 +1,30 @@
 <template>
-    <app-view class="product">
-      <template #header>
-        <app-navbar class="product__header" title="产品介绍" />
+  <app-view class="product">
+    <template #header>
+      <app-navbar class="product__header" title="产品介绍" />
+    </template>
+    <Tabs class="product__tabs" v-model:active="active" @change="onClickTab">
+      <Tab title="已关注" :name="0">
+        <Empty v-if="dataList.length === 0" />
+      </Tab>
+      <Tab title="未关注" :name="1">
+        <Empty v-if="dataList.length === 0" />
+      </Tab>
+    </Tabs>
+    <app-pull-refresh ref="pullRefreshRef" class="product__container" v-model:error="error"
+      v-model:pageIndex="pageIndex" :page-count="pageCount" @refresh="onRefresh">
+      <template v-for="(item, index) in dataList" :key="index">
+        <Cell>
+          <template #title>
+            <img :src="getImageUrl(item.bannerpicurl)" />
+            <span>{{ item.wrstandardname }}</span>
+            <Button type="primary" round size="small"
+              @click="$router.push({ name: 'product-detail', query: { wrstandardid: item.wrstandardid, active: active } })">立即进入</Button>
+          </template>
+        </Cell>
       </template>
-      <Tabs class="product__tabs" v-model:active="active" @change="onClickTab">
-          <Tab title="已关注" :name="0">
-              <Empty v-if="dataList.length === 0"/>
-          </Tab>
-          <Tab title="未关注" :name="1">
-            <Empty v-if="dataList.length === 0"/>
-          </Tab>
-      </Tabs>
-      <app-pull-refresh ref="pullRefreshRef" class="product__container" :dataList="dataList" v-model:error="error" v-model:pageIndex="pageIndex"
-        :page-count="pageCount" @refresh="onRefresh">
-        <template #default="{ item }">
-          <Cell>
-            <template #title>
-              <img :src="getImageUrl(item.bannerpicurl)" />
-              <span>{{ item.wrstandardname }}</span>
-              <Button type="primary" round size="small" @click="$router.push({name: 'product-detail', query: { wrstandardid: item.wrstandardid, active: active } })">立即进入</Button>
-            </template>
-          </Cell>
-        </template>
-      </app-pull-refresh>
-    </app-view>
+    </app-pull-refresh>
+  </app-view>
 </template>
   
 <script lang="ts" setup>
@@ -40,21 +41,21 @@ const error = shallowRef(false)
 
 // Tab触发
 const onClickTab = () => {
-pullRefreshRef.value?.refresh()
+  pullRefreshRef.value?.refresh()
 }
 
 const onRefresh = (finish: () => void) => {
-/// 获取产品列表
-getQueryTHJProductLists().then((res) => {
-  if (pageIndex.value === 1) {
-    dataList.value = []
-  }
-  dataList.value.push(...res)
-}).catch(() => {
-  error.value = true
-}).finally(() => {
-  finish()
-})
+  /// 获取产品列表
+  getQueryTHJProductLists().then((res) => {
+    if (pageIndex.value === 1) {
+      dataList.value = []
+    }
+    dataList.value.push(...res)
+  }).catch(() => {
+    error.value = true
+  }).finally(() => {
+    finish()
+  })
 }
 
 </script>