Handy_Cao 11 месяцев назад
Родитель
Сommit
c01c13ff86

+ 18 - 1
src/packages/pc/views/query/other/bank_inout/index.vue

@@ -3,6 +3,11 @@
     <app-view>
         <template #header>
             <app-filter :option="filterOption">
+                <template #accountcode="{ item }">
+                    <el-form-item :label="item.label" prop="accountcode">
+                        <app-select-account v-model="item.value" @change="onAccountChange" />
+                    </el-form-item>
+                </template>
                 <template #after>
                     <el-form-item :label="t('query.other.bank_inout.date')" prop="date">
                         <el-date-picker type="daterange" v-model="dateValue" value-format="YYYYMMDD"
@@ -10,6 +15,11 @@
                     </el-form-item>
                 </template>
             </app-filter>
+            <div class="report-account__info" v-if="selectedAccount">
+                <span>{{ t('report.account.accountid1') }}{{ selectedAccount.relatedname }}</span>
+                <span>{{ t('report.account.accountid') }}{{ selectedAccount.accountid }}</span>
+                <span>{{ t('report.account.invloginids') }}{{ selectedAccount.invloginids }}</span>
+            </div>
         </template>
         <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <!-- 操作 -->
@@ -37,13 +47,15 @@ import { useDataFilter } from '@/hooks/datatable-v2'
 import { useOperation } from '@/hooks/operation'
 import { queryPutOrIn } from '@/services/api/account'
 import { getAllBankCus } from '@/services/api/bank'
+import AppSelectAccount from '@pc/components/modules/select-account/index.vue'
+import { i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter-v2/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 import AppOperation from '@pc/components/base/operation/index.vue'
-import { i18n } from '@/stores'
 
 const { global: { t } } = i18n
+const selectedAccount = shallowRef<Model.TAAccountChildrenSelectRsp>()
 
 const executetypeEnum = useEnum('executetype') // 类型
 const applystatusEnum = useEnum('applystatus') // 状态
@@ -57,6 +69,11 @@ const { componentMap, componentId, record, openComponent, closeComponent, getAct
 
 const { dataList: bankList } = useRequest(getAllBankCus)
 
+const onAccountChange = (item?: Model.TAAccountChildrenSelectRsp) => {
+    selectedAccount.value = item
+}
+
+
 const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(queryPutOrIn, {
     manual: true,
     params: {

+ 17 - 2
src/packages/pc/views/query/other/bank_statement/index.vue

@@ -15,7 +15,17 @@
                             :start-placeholder="t('common.start')" :end-placeholder="t('common.end')" />
                     </el-form-item>
                 </template>
+                <template #accountId="{ item }">
+                        <el-form-item :label="item.label" prop="accountId">
+                            <app-select-account v-model="item.value" @change="onAccountChange" />
+                        </el-form-item>
+                    </template>
             </app-filter>
+            <div class="report-account__info" v-if="selectedAccount">
+                <span>{{ t('report.account.accountid1') }}{{ selectedAccount.relatedname }}</span>
+                <span>{{ t('report.account.accountid') }}{{ selectedAccount.accountid }}</span>
+                <span>{{ t('report.account.invloginids') }}{{ selectedAccount.invloginids }}</span>
+            </div>
         </template>
         <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
@@ -40,14 +50,15 @@ import { useRequest } from '@/hooks/request'
 import { useDataFilter } from '@/hooks/datatable-v2'
 import { useOperation } from '@/hooks/operation'
 import { queryAmountStream } from '@/services/api/account'
+import { i18n } from '@/stores'
 import AppTable from '@pc/components/base/table/index.vue'
 import AppFilter from '@pc/components/base/table-filter-v2/index.vue'
 import AppPagination from '@pc/components/base/pagination/index.vue'
 import AppOperation from '@pc/components/base/operation/index.vue'
-import { i18n } from '@/stores'
+import AppSelectAccount from '@pc/components/modules/select-account/index.vue'
 
 const { global: { t } } = i18n
-
+const selectedAccount = shallowRef<Model.TAAccountChildrenSelectRsp>()
 const { getEnumOptions } = useEnum('operatetypesearch') // 业务类型
 
 const dateValue = shallowRef<string[] | null>([])
@@ -117,6 +128,10 @@ const { queryParams, filterOption, getQueryParams, resetFilters } = useDataFilte
     ]
 })
 
+const onAccountChange = (item?: Model.TAAccountChildrenSelectRsp) => {
+    selectedAccount.value = item
+}
+
 // 处理请求参数
 const processRequiredParams = () => {
     const qs = getQueryParams()

+ 95 - 1
src/packages/pc/views/query/other/esign/index.vue

@@ -1,7 +1,101 @@
 <!-- 查询管理-其它查询-电子协议管理 -->
 <template>
-    <app-view></app-view>
+    <app-view>
+        <app-filter :option="filterOption">
+
+        </app-filter>
+        <app-table :data="dataList" :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="{ record, queryParams }" @closed="closeComponent"
+            v-if="componentId" />
+    </app-view>
 </template>
 
 <script lang="ts" setup>
+import { formatDate } from '@/filters'
+import { useRequest } from '@/hooks/request'
+import { queryesignrecord } from '@/services/api/account'
+import { ElMessage } from 'element-plus'
+import { shallowRef } from 'vue'
+import { useDataFilter } from '@/hooks/datatable-v2'
+import { i18n } from '@/stores'
+import { useOperation } from '@/hooks/operation';
+import { useEnum } from '@/hooks/enum'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+import AppFilter from '@pc/components/base/table-filter-v2/index.vue'
+
+const { global: { t } } = i18n
+
+const { getEnumOptions } = useEnum('esignrecordstatus') // 业务类型
+
+const dateValue = shallowRef<string[] | null>([])
+
+const { componentMap, componentId, record, closeComponent } = useOperation<Model.SignRecordReq>({
+    onClose: () => onSearch()
+})
+
+const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(queryesignrecord, {
+    manual: true,
+    params: {
+        pageNum: 1,
+        pageSize: 20
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = shallowRef<Model.TableColumn[]>([
+    { field: 'userfullname', label: '用户' },
+    { field: 'loginid', label: '登录账号' },
+    { field: 'esigntype', label: '协议类型' },
+    { field: 'templatetype', label: '模板类型' },
+    { field: 'templatename', label: '协议名称' },
+    { field: 'recordstatus', label: '签署状态' },
+    { field: 'updatetimestr', label: '更新时间', formatValue: (val) => formatDate(val) },
+    { field: 'operate', label: 'common.operate', fixed: 'right' }
+])
+
+const { filterOption, queryParams, getQueryParams, resetFilters } = useDataFilter<Model.SignRecordReq>({
+    filters: [
+        {
+            field: 'userid',
+            label: '用户ID',
+            placeholder: '请输入用户ID',
+            value: 1
+        },
+        {
+            field: 'recordstatus',
+            label: '签署状态',
+            placeholder: '请选择签署状态',
+            options: () => getEnumOptions()
+        }
+    ],
+    buttons: [
+        { label: t('operation.search'), className: 'el-button--primary', onClick: () => onSearch() },
+        { label: t('operation.reset'), className: 'el-button--primary', validateEvent: false, onClick: () => onReset() }
+    ]
+})
+
+// 处理请求参数
+const processRequiredParams = () => {
+    const qs = getQueryParams()
+    return qs
+}
+
+const onSearch = () => {
+    const qs = processRequiredParams()
+    run(qs)
+}
+
+const onReset = () => {
+    dateValue.value = []
+    resetFilters()
+}
+
 </script>

+ 146 - 1
src/packages/pc/views/query/other/institution_bank/index.vue

@@ -1,7 +1,152 @@
 <!-- 查询管理-其它查询-机构资金查询 -->
 <template>
-    <app-view></app-view>
+    <app-view>
+        <template #header>
+            <app-filter :option="filterOption"  :rules="filterRules">
+                <template #memberid="{ item }">
+                    <el-form-item :label="item.label" prop="memberid">
+                        <app-select-member v-model="item.value" usertype="2" :placeholder="t('investor.custom.group.edit.tips1')" />
+                    </el-form-item>
+                </template>
+            </app-filter>
+        </template>
+        <app-table :data="dataList" :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="{ record, queryParams }" @closed="closeComponent"
+            v-if="componentId" />
+    </app-view>
 </template>
 
 <script lang="ts" setup>
+import { ref, shallowRef } from 'vue'
+import { ElMessage, FormRules } from 'element-plus'
+import { useDataFilter } from '@/hooks/datatable-v2'
+import { useRequest } from '@/hooks/request'
+import { useOperation } from '@/hooks/operation'
+import { queryinvestor } from '@/services/api/order'
+import { i18n } from '@/stores'
+import { useEnum } from '@/hooks/enum'
+import AppSelectMember from '@pc/components/modules/select-member/index.vue'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+import AppFilter from '@pc/components/base/table-filter-v2/index.vue'
+
+const { global: { t } } = i18n
+const dateValue = shallowRef<string[] | null>([])
+
+const { getEnumOptions } = useEnum('accountstatus') // 业务类型
+
+const { componentMap, componentId, record, closeComponent } = useOperation<Model.investorReq>({
+    onClose: () => onSearch()
+})
+
+const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(queryinvestor, {
+    manual: true,
+    params: {
+        pageNum: 1,
+        pageSize: 20
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = ref<Model.TableColumn[]>([
+    { field: 'accountid', label: '资金账号' },
+    { field: 'accountcodename', label: '机构名称' },
+    { field: 'balance', label: '期初余额' },
+    { field: 'currentbalance', label: '期末余额' },
+    { field: 'inamount', label: '今日入金' },
+    { field: 'outamount', label: '今日出金' },
+    { field: 'closepl', label: '转让损益' },
+    { field: 'floatpl', label: '浮动损益' },
+    { field: 'freezecharge', label: '冻结手续费' },
+    { field: 'paycharge', label: '手续费' },
+    { field: 'otherpay', label: '其他支出' },
+    { field: 'otherincome', label: '其他收入' },
+    { field: 'freezemargin', label: '冻结保证金' },
+    { field: 'usedmargin', label: '占用保证金' },
+    { field: 'otherfreezemargin', label: '其他冻结' },
+    { field: 'outamountfreeze', label: '出金冻结' },
+    { field: 'avaiablemoney', label: '可用资金' },
+    { field: 'avaiableoutmoney', label: '可出资金' },
+    { field: 'floatnetvalue', label: '当前净值' },
+    { field: 'cur_risk_rate', label: '风险率' },
+    { field: 'operate', label: 'common.operate', fixed: 'right' }
+])
+
+// 表单验证规则
+const filterRules: FormRules = {
+    date: [{
+        required: true,
+        validator: () => {
+            return !!dateValue.value && dateValue.value.length === 2
+        }
+    }]
+}
+
+const { queryParams, filterOption, getQueryParams, resetFilters } = useDataFilter<Model.investorReq>({
+    filters: [
+        {
+            field: 'memberid',
+            label: '所属会员',
+            placeholder: '请输入',
+        },
+        {
+            field: 'accountstatus',
+            label: '机构状态',
+            required: true,
+            placeholder: '请选择',
+            options: () => getEnumOptions()
+        },
+        {
+            field: 'sortfield',
+            label: '排序',
+            required: true,
+            value: 0,
+            options: () => [
+                { label: '不限', value:  0 },
+                { label: '期末余额', value: 1 },
+                { label: '期初余额', value: 2 },
+                { label: '今日入金', value: 3 },
+                { label: '今日出金', value: 4 },
+                { label: '转让损益', value: 5 },
+                { label: '手续费', value: 6 }
+            ]
+        },
+        {
+            field: 'sorttype',
+            value: 0,
+            options: () => [
+                { label: '降序', value: 1 },
+                { label: '升序', value: 0 }
+            ]
+        },
+    ],
+    buttons: [
+        { label: t('operation.search'), className: 'el-button--primary', onClick: () => onSearch() },
+        { label: t('operation.reset'), className: 'el-button--primary', validateEvent: false, onClick: () => onReset() }
+    ]
+})
+
+// 处理请求参数
+const processRequiredParams = () => {
+    const qs = getQueryParams()
+    return qs
+}
+
+const onSearch = () => {
+    const qs = processRequiredParams()
+    run(qs)
+}
+
+
+const onReset = () => {
+    dateValue.value = []
+    resetFilters()
+}
 </script>

+ 166 - 1
src/packages/pc/views/query/other/investor_bank/index.vue

@@ -1,7 +1,172 @@
 <!-- 查询管理-其它查询-交易商资金查询 -->
 <template>
-    <app-view></app-view>
+    <app-view>
+        <template #header>
+            <app-filter :option="filterOption"  :rules="filterRules">
+                <template #accountid="{ item }">
+                    <el-form-item :label="item.label" prop="accountid">
+                        <app-select-account v-model="item.value" @change="onAccountChange" />
+                    </el-form-item>
+                </template>
+                <template #memberid="{ item }">
+                    <el-form-item :label="item.label" prop="memberid">
+                        <app-select-member v-model="item.value" usertype="2" :placeholder="t('investor.custom.group.edit.tips1')" />
+                    </el-form-item>
+                </template>
+            </app-filter>
+            <div class="report-account__info" v-if="selectedAccount">
+                <span>{{ t('report.account.accountid1') }}{{ selectedAccount.relatedname }}</span>
+                <span>{{ t('report.account.accountid') }}{{ selectedAccount.accountid }}</span>
+                <span>{{ t('report.account.invloginids') }}{{ selectedAccount.invloginids }}</span>
+            </div>
+        </template>
+        <app-table :data="dataList" :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="{ record, queryParams }" @closed="closeComponent"
+            v-if="componentId" />
+    </app-view>
 </template>
 
 <script lang="ts" setup>
+import { ref, shallowRef } from 'vue'
+import { ElMessage, FormRules } from 'element-plus'
+import { useDataFilter } from '@/hooks/datatable-v2'
+import { useRequest } from '@/hooks/request'
+import { useOperation } from '@/hooks/operation'
+import { queryinvestor } from '@/services/api/order'
+import { i18n } from '@/stores'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+import AppFilter from '@pc/components/base/table-filter-v2/index.vue'
+import AppSelectAccount from '@pc/components/modules/select-account/index.vue'
+import AppSelectMember from '@pc/components/modules/select-member/index.vue'
+import { parsePercent } from '@/filters'
+
+const { global: { t } } = i18n
+const selectedAccount = shallowRef<Model.TAAccountChildrenSelectRsp>()
+
+const { componentMap, componentId, record, closeComponent } = useOperation<Model.investorReq>({
+    onClose: () => onSearch()
+})
+
+const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(queryinvestor, {
+    manual: true,
+    params: {
+        pageNum: 1,
+        pageSize: 20
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = ref<Model.TableColumn[]>([
+    { field: 'accountid', label: '资金账号' },
+    { field: 'accountcodename', label: '机构名称' },
+    { field: 'balance', label: '期初余额' },
+    { field: 'currentbalance', label: '期末余额' },
+    { field: 'inamount', label: '今日入金' },
+    { field: 'outamount', label: '今日出金' },
+    { field: 'closepl', label: '转让损益' },
+    { field: 'floatpl', label: '浮动损益' },
+    { field: 'freezecharge', label: '冻结手续费' },
+    { field: 'paycharge', label: '手续费' },
+    { field: 'otherpay', label: '其他支出' },
+    { field: 'otherincome', label: '其他收入' },
+    { field: 'freezemargin', label: '冻结保证金' },
+    { field: 'usedmargin', label: '占用保证金' },
+    { field: 'otherfreezemargin', label: '其他冻结' },
+    { field: 'outamountfreeze', label: '出金冻结' },
+    { field: 'avaiablemoney', label: '可用资金' },
+    { field: 'avaiableoutmoney', label: '可出资金' },
+    { field: 'floatnetvalue', label: '当前净值' },
+    { field: 'cur_risk_rate', label: '风险率', formatValue: (val) => parsePercent(val) },
+    { field: 'operate', label: 'common.operate', fixed: 'right' }
+])
+
+const onAccountChange = (item?: Model.TAAccountChildrenSelectRsp) => {
+    selectedAccount.value = item
+}
+
+// 表单验证规则
+const filterRules: FormRules = {
+    
+}
+
+const { queryParams, filterOption, getQueryParams, resetFilters } = useDataFilter<Model.investorReq>({
+    filters: [
+        {
+            field: 'accountcode',
+            label: '交易商',
+            placeholder: '请输入',
+        },
+        {
+            field: 'memberid',
+            label: '所属会员',
+            placeholder: '请输入',
+        },
+        {
+            field: 'sortfield',
+            label: '排序',
+            required: true,
+            value: 0,
+            options: () => [
+                { label: '不限', value:  0 },
+                { label: '期末余额', value: 1 },
+                { label: '期初余额', value: 2 },
+                { label: '今日入金', value: 3 },
+                { label: '今日出金', value: 4 },
+                { label: '转让损益', value: 5 },
+                { label: '手续费', value: 6 }
+            ]
+        },
+        {
+            field: 'sorttype',
+            value: 0,
+            options: () => [
+                { label: '降序', value: 1 },
+                { label: '升序', value: 0 }
+            ]
+        },
+        {
+            field: 'accountid',
+            label: '资金账户',
+            placeholder: '请输入',
+        },
+        {
+            field: 'loginid',
+            label: '登录账号',
+            placeholder: '请输入',
+        },
+        {
+            field: 'parentarea',
+            label: '所属机构',
+            placeholder: '请输入',
+        },
+    ],
+    buttons: [
+        { label: t('operation.search'), className: 'el-button--primary', onClick: () => onSearch() },
+        { label: t('operation.reset'), className: 'el-button--primary', validateEvent: false, onClick: () => onReset() }
+    ]
+})
+
+// 处理请求参数
+const processRequiredParams = () => {
+    const qs = getQueryParams()
+    return qs
+}
+
+const onSearch = () => {
+    const qs = processRequiredParams()
+    run(qs)
+}
+
+
+const onReset = () => {
+    resetFilters()
+}
 </script>

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

@@ -2,7 +2,7 @@
 <template>
     <app-view>
         <template #header>
-            <app-filter :option="filterOption"  :rules="filterRules">
+            <app-filter :option="filterOption" :rules="filterRules">
                 <template #reckondate>
                     <el-form-item :label="t('report.investor.reckondate')" prop="reckondate">
                         <el-date-picker :type="dateType" v-model="dateValue" :format="dateFormat" :value-format="dateFormat"

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

@@ -83,4 +83,11 @@ export function queryCommonFlag(options: CommonFetchOptions<{ request: Model.Com
  */
 export function inOrOutAmount(options: CommonFetchOptions<{ request: Model.inOrOutAmountReq; }>) {
     return httpClient.commonRequest('/taAccount/inOrOutAmount', 'post', options)
+}
+
+/**
+ * 内部订单查询--> 电子协议管理 --> 获取列表
+ */
+export function queryesignrecord(options: CommonFetchOptions<{ request: Model.SignRecordReq; response: Model.SignRecordRsp[] }>) {
+    return httpClient.commonRequest('/query/queryesignrecord', 'get', options)
 }

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

@@ -382,4 +382,11 @@ export function queryOrderDate(options: CommonFetchOptions<{ request: Model.Orde
  */
 export function orderDateExport(options: CommonFetchOptions<{ request: Model.OrderDateReq; response: string; }>) {
     return httpClient.commonRequest('/queryOrder/orderDateExport', 'get', options)
+}
+
+/**
+ * 其他查询--> 交易商资金查询、机构资金查询--> 获取列表
+ */
+export function queryinvestor(options: CommonFetchOptions<{ request: Model.investorReq; response: Model.investorRsp[]; }>) {
+    return httpClient.commonRequest('/query/queryinvestor', 'get', options)
 }

+ 28 - 0
src/types/model/bank.d.ts

@@ -164,4 +164,32 @@ declare namespace Model {
         currencyid: number;
         money: number;
     }
+
+    /** 内部订单查询->电子协议管理->获取列表 请求 */
+    interface SignRecordReq {
+        recordstatus?: number; // 签署状态
+        userid?: number; // 用户
+    }
+
+    /** 内部订单查询->电子协议管理->获取列表 响应 */
+    interface SignRecordRsp {
+        // 协议类型 esigntype
+        esigntype: number;
+        // 登录账号
+        loginid: number;
+        // 
+        recordid: number;
+        // 签署状态 esignrecordstatus
+        recordstatus: number;
+        //
+        sp1005Url: string;
+        //// 协议名称
+        templatename: string;
+        // 模板类型 esigntemplatetype
+        templatetype: number;
+        // 更新时间
+        updatetimestr: string;
+        // 用户
+        userfullname: string;
+    }
 }

+ 71 - 0
src/types/model/order.d.ts

@@ -1878,4 +1878,75 @@ declare namespace Model {
         tradeid: string; // 订单号
         userfullname: string; // 客户
     }
+
+    /** 其他查询--> 交易商资金查询、机构资金查询--> 获取列表 */
+    interface investorReq {
+        accountcode?: number; // 交易商
+        accountid?: string; // 资金账户
+        accountstatus?: number; // 机构状态
+        areauserid?: number; // 
+        changeflag?: number; // 
+        loginid?: string; // 登录账号
+        memberid?: number; // 所属会员
+        orgztypes?: number; // 权限控制
+        pageNum: number; // 页码
+        pageSize: number; // 页大小
+        parentarea?: string; // 所属机构
+        roles?: string; // 机构角色
+        sortfield?: string // 排序
+        sorttype?: number; // 
+    }
+
+    /** 其他查询--> 交易商资金查询、机构资金查询--> 获取列表 */
+    interface investorRsp {
+        // 交易商
+        accountcodename: string
+        // 资金账户
+        accountid: number
+        // 可用资金
+        avaiablemoney: number
+        // 可出资金
+        avaiableoutmoney: number
+        // 期初余额
+        balance: number
+        // 转让损益
+        closepl: number
+        // 风险率(%)
+        cur_risk_rate: number
+        // 期末余额
+        currentbalance: number
+        // 当前净值
+        floatnetvalue: number
+        // 浮动损益
+        floatpl: number
+        // 冻结手续费
+        freezecharge: number
+        // 冻结保证金
+        freezemargin: number
+        // 今日入金
+        inamount: number
+        // 登录账号
+        invloginids: number
+        // 所属会员
+        membername: string
+        mortgagecredit: number
+        othercredit: number
+        // 其他冻结
+        otherfreezemargin: number
+        // 其它收入
+        otherincome: number
+        // 其它支出
+        otherpay: number
+        // 今日出金
+        outamount: number
+        // 出金冻结
+        outamountfreeze: number
+        outthreshold: number
+        // 所属机构
+        parentarea: string
+        // 手续费
+        paycharge: number
+        // 占用保证金
+        usedmargin: number
+    }
 }