Handy_Cao 1 年間 前
コミット
c517aa05b1

+ 0 - 1
src/packages/pc/views/query/order/accountsumm/index.vue

@@ -53,7 +53,6 @@ const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(accoun
     params: {
         pageNum: 1,
         pageSize: 20,
-        // isHis: 0,
     }
 })
 

+ 11 - 0
src/packages/pc/views/report/broker/index.vue

@@ -23,6 +23,7 @@ import { useDataFilter } from '@/hooks/datatable'
 import { orgReportQuery } from '@/services/api/report'
 import { useOperation } from '@/hooks/operation'
 import { useUserStore } from '@/stores'
+import { getReportTypeList } from '@/constants/report'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
@@ -63,6 +64,16 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'investorSellHoldQty', label: '卖持仓数量' }
 ])
 
+filterOptons.selectList = [
+    {
+        key: 'cycletype',
+        label: '报表类型',
+        selectedValue: 0,
+        locked: true,
+        options: getReportTypeList(),
+    }
+]
+
 filterOptons.buttonList = [
     { lable: '查询', className: 'el-button--primary', onClick: () => onSearch() },
     { lable: '重置', className: 'el-button--primary', onClick: () => onSearch(true) }

+ 88 - 1
src/packages/pc/views/report/investor/index.vue

@@ -1,7 +1,94 @@
 <!-- 报表查询-交易商资金报表 -->
 <template>
-    <app-view></app-view>
+    <app-view>
+        <template #header>
+            <app-filter :options="filterOptons" />
+        </template>
+        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+            <template #footer>
+                <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
+                    @change="onSearch" />
+            </template>
+        </app-table>
+        <component :is="componentMap.get(componentId)" v-bind="{ selectedRow, queryParams }" @closed="closeComponent"
+            v-if="componentId" />
+    </app-view>
 </template>
 
 <script lang="ts" setup>
+import { shallowRef } from 'vue'
+import { ElMessage } from 'element-plus'
+import { useRequest } from '@/hooks/request'
+import { useDataFilter } from '@/hooks/datatable'
+import { investorReportQuery } from '@/services/api/report'
+import { useOperation } from '@/hooks/operation'
+import { useUserStore } from '@/stores'
+import { getReportTypeList } from '@/constants/report'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppFilter from '@pc/components/base/table-filter/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+
+const queryParams = shallowRef<Model.InvestorReportReq>()
+const { filterOptons, getQueryParams } = useDataFilter<Model.InvestorReportReq>()
+const userStore = useUserStore()
+
+const { componentMap, componentId, selectedRow, closeComponent } = useOperation<Model.InvestorReportReq>({
+    onClose: () => onSearch()
+})
+
+const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(investorReportQuery, {
+    params: {
+        pageNum: 1,
+        pageSize: 20,
+        orgztypes: userStore.userInfo.orgztypes
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = shallowRef<Model.TableColumn[]>([
+    { field: 'reckondate', label: '日期' },
+    { field: 'loginids', label: '登录账号' },
+    { field: 'accountid', label: '资金账户' },
+    { field: 'accountname', label: '账户名称' },
+    { field: 'memberaccountname', label: '所属会员' },
+    { field: 'balance', label: '期初余额' },
+    { field: 'currentbalance', label: '期末余额' },
+    { field: 'inamount', label: '入金金额' },
+    { field: 'outamount', label: '出金金额' },
+    { field: 'closepl', label: '转让损益' },
+    { field: 'floatpl', label: '浮动损益' },
+    { field: 'reckonpl', label: '结算损益' },
+    { field: 'paycharge', label: '手续费' },
+    { field: 'interestCharge', label: '递延费' },
+    { field: 'usedmargin', label: '占用资金' },
+    { field: 'freezemargin', label: '冻结资金' },
+    { field: 'otherfreezemargin', label: '其他冻结资金' },
+    { field: 'outamountfreeze', label: '出金冻结' },
+    { field: 'avaiablemoney', label: '可用资金' },
+    { field: 'avaiableoutmoney', label: '可出资金' },
+    { field: 'riskrate', label: '风险率' }
+])
+
+filterOptons.selectList = [
+    {
+        key: 'cycletype',
+        label: '报表类型',
+        selectedValue: 0,
+        locked: true,
+        options: getReportTypeList(),
+    }
+]
+
+filterOptons.buttonList = [
+    { lable: '查询', className: 'el-button--primary', onClick: () => onSearch() },
+    { lable: '重置', className: 'el-button--primary', onClick: () => onSearch(true) }
+]
+
+const onSearch = (clear = false) => {
+    const qs = getQueryParams(clear)
+    run(qs)
+}
+
 </script>

+ 11 - 0
src/packages/pc/views/report/profitshare/index.vue

@@ -23,6 +23,7 @@ import { useDataFilter } from '@/hooks/datatable'
 import { shareAmountQuery } from '@/services/api/report'
 import { useOperation } from '@/hooks/operation'
 import { useUserStore } from '@/stores'
+import { getReportTypeList } from '@/constants/report'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
@@ -56,6 +57,16 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'divideamount', label: '分润金额' }
 ])
 
+filterOptons.selectList = [
+    {
+        key: 'cycletype',
+        label: '报表类型',
+        selectedValue: 0,
+        locked: true,
+        options: getReportTypeList(),
+    }
+]
+
 filterOptons.buttonList = [
     { lable: '查询', className: 'el-button--primary', onClick: () => onSearch() },
     { lable: '重置', className: 'el-button--primary', onClick: () => onSearch(true) }

+ 12 - 4
src/packages/pc/views/report/trade/index.vue

@@ -22,14 +22,13 @@ import { useRequest } from '@/hooks/request'
 import { useDataFilter } from '@/hooks/datatable'
 import { queryTrade } from '@/services/api/report'
 import { useOperation } from '@/hooks/operation'
-import { useUserStore } from '@/stores'
+import { getReportTypeList } from '@/constants/report'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 
 const queryParams = shallowRef<Model.TradeReq>()
 const { filterOptons, getQueryParams } = useDataFilter<Model.TradeReq>()
-const userStore = useUserStore()
 
 const { componentMap, componentId, selectedRow, closeComponent } = useOperation<Model.TradeReq>({
     onClose: () => onSearch()
@@ -38,8 +37,7 @@ const { componentMap, componentId, selectedRow, closeComponent } = useOperation<
 const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(queryTrade, {
     params: {
         pageNum: 1,
-        pageSize: 20,
-        orgztypes: userStore.userInfo.orgztypes
+        pageSize: 20
     },
     onError: (err) => {
         ElMessage.error(err)
@@ -57,6 +55,16 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'closecharge', label: '转让手续费' }
 ])
 
+filterOptons.selectList = [
+    {
+        key: 'cycletype',
+        label: '报表类型',
+        selectedValue: 0,
+        locked: true,
+        options: getReportTypeList(),
+    }
+]
+
 filterOptons.buttonList = [
     { lable: '查询', className: 'el-button--primary', onClick: () => onSearch() },
     { lable: '重置', className: 'el-button--primary', onClick: () => onSearch(true) }

+ 7 - 0
src/services/api/report/index.ts

@@ -77,4 +77,11 @@ export function tradeQuery(options: CommonFetchOptions<{ request: Model.Taaccoun
  */
 export function accountppQuery(options: CommonFetchOptions<{ request: Model.TaaccountReportReq; response: Model.AccountppRsp; }>) {
     return httpClient.commonRequest('/reportForm/accountppquery', 'get', options)
+}
+
+/**
+ * 报表管理-->交易商资金报表
+ */
+export function investorReportQuery(options: CommonFetchOptions<{ request: Model.InvestorReportReq; response: Model.InvestorReportRsp; }>) {
+    return httpClient.commonRequest('/reportForm/investorReportQuery', 'get', options)
 }

+ 90 - 0
src/types/model/report.d.ts

@@ -273,4 +273,94 @@ declare namespace Model {
         sellreceivedamount: number; // 今日已收金额(作为卖方)
         selltodayamount: number; // 今日收取金额(作为卖方)
     }
+    
+    /** 报表管理-->交易商资金报表 请求 */
+    interface InvestorReportReq {
+        // 交易商
+        accountid?: number
+        // 所属经纪人
+        brokerid?: number
+        // 
+        changeflag?: number
+        // 报表类型
+        cycletype?: number
+        // 
+        flag?: number
+        // 入金金额
+        inamount?: number
+        // 所属会员
+        memberid?: number
+        // 管理员所属机构角色类型
+        orgztypes?: string
+        // 出金金额
+        outamount?: number
+        // 页码
+        pageNum?: number
+        // 页大小
+        pageSize?: number
+        // 
+        parentuserid?: number
+        // 开始季度
+        quarter?: number
+        // 结束季度
+        quarterend?: number
+        // 开始时间
+        reckondate?: string
+        // 结束时间
+        reckondateend?: string
+        // 排序
+        sortField?: number
+        // 排序 1 降序 0 升序
+        sortType?: number
+        // 所属子机构
+        subareaid?: number
+        // 
+        usertype?: number
+    }
+
+    /** 报表管理-->交易商资金报表 响应 */
+    interface InvestorReportRsp {
+        // 资金账户
+        accountid: number
+        // 账户名称
+        accountname: string
+        // 可用资金
+        avaiablemoney: number
+        // 可出资金
+        avaiableoutmoney: number
+        // 期初余额
+        balance: number
+        // 转让损益
+        closepl: number
+        // 期末余额
+        currentbalance: number
+        // 浮动损益
+        floatpl: number
+        // 冻结资金
+        freezemargin: number
+        // 入金金额
+        inamount: number
+        // 递延费
+        interestCharge: number
+        // 登录账号
+        loginids: string
+        // 所属会员
+        memberaccountname: string
+        // 其他冻结资金
+        otherfreezemargin: number
+        // 出金金额
+        outamount: number
+        // 出金冻结
+        outamountfreeze: number
+        // 手续费
+        paycharge: number
+        // 日期
+        reckondate: string
+        // 结算损益
+        reckonpl: number
+        // 风险率
+        riskrate: number
+        // 占用资金
+        usedmargin: number
+    }
 }