li.shaoyi vor 11 Monaten
Ursprung
Commit
1260450f9a

+ 42 - 6
src/packages/pc/views/account/fundacct/components/details/index.vue

@@ -1,10 +1,42 @@
 <!-- 账号管理-资金账户管理-详情 -->
 <template>
     <app-drawer :title="t('account.tradeacct.details.title')" width="900" v-model:show="show">
-        <app-table-details :data="data" :label-width="160" :cell-props="detailProps" :column="2" />
+        <app-table-details :data="data" :label-width="160" :cell-props="detailProps" :column="2">
+            <!-- 市场权限 -->
+            <template #dtype="{ value }">
+                <template v-for="(item, index) in value" :key="index">
+                    <dl>
+                        <dt>{{ item.marketName }}</dt>
+                        <dd v-if="item.tradeMode === 79">
+                            <span>买大厅权限:</span>
+                            <span>{{ buyspotrighttypeEnum.getEnumTypeName(item.dtype) }}</span>
+                        </dd>
+                        <dd v-else-if="item.tradeMode === 78">
+                            <span>买大厅权限:</span>
+                            <span>{{ marketbstypeEnum.getEnumTypeName(item.spotRightType) }}</span>
+                        </dd>
+                        <template v-if="item.tradeProperty === 4">
+                            <dd>
+                                <span v-if="item.tradeMode === 17">卖大厅权限:</span>
+                                <span v-else>交易权限:</span>
+                                <span>{{ marketbstypeEnum.getEnumTypeName(item.spotRightType) }}</span>
+                            </dd>
+                            <dd v-if="item.tradeMode === 17">
+                                <span>买大厅权限:</span>
+                                <span>{{ buyspotrighttypeEnum.getEnumTypeName(item.dtype) }}</span>
+                            </dd>
+                        </template>
+                    </dl>
+                </template>
+            </template>
+            <!-- 授权交易账户 -->
+            <template #loginIds="{ value }">
+                {{ value.join(',') }}
+            </template>
+        </app-table-details>
         <app-table :data="data?.bankAccountsignList" :columns="tableColumns" v-if="data?.isMain === 1" />
         <template #footer>
-            <el-button @click="onCancel(false)">{{ t('operation.close') }}</el-button>
+            <el-button @click="onCancel">{{ t('operation.close') }}</el-button>
         </template>
     </app-drawer>
 </template>
@@ -24,7 +56,7 @@ import { i18n } from '@/stores'
 
 const props = defineProps({
     record: {
-        type: Object as PropType<Model.TaAccountRsp>,
+        type: Object as PropType<Model.TaAccountRsp | Model.OrganTaaccountRsp>,
         required: true
     }
 })
@@ -32,7 +64,6 @@ const props = defineProps({
 const { global: { t } } = i18n
 
 const show = shallowRef(true)
-const refresh = shallowRef(false)
 
 // 账户类型
 const mainaccounttypeEnum = useEnum('mainaccounttype')
@@ -44,6 +75,10 @@ const traderstatusEnum = useEnum('traderstatus')
 const signstatusEnum = useEnum('signstatus')
 // 变动标志
 const flagEnum = useEnum('flag')
+// 买大厅权限
+const buyspotrighttypeEnum = useEnum('buyspotrighttype')
+// 卖大厅权限
+const marketbstypeEnum = useEnum('marketbstype')
 
 const { data } = useRequest(queryTaAccountDetail, {
     params: {
@@ -71,6 +106,8 @@ const detailProps: CellProp[] = [
     { prop: 'freezeCharge', label: 'account.tradeacct.details.freezeCharge', decimal: 2 },
     { prop: 'outAmountFreeze', label: 'account.tradeacct.details.outAmountFreeze', decimal: 2 },
     { prop: 'outThreshold', label: 'account.tradeacct.details.outThreshold', decimal: 2 },
+    { prop: 'dtype', label: '市场权限', show: !!data.value?.isSelf },
+    { prop: 'loginIds', label: '授权交易账户', show: !!data.value?.isSelf }
 ]
 
 const tableColumns = shallowRef<Model.TableColumn[]>([
@@ -81,8 +118,7 @@ const tableColumns = shallowRef<Model.TableColumn[]>([
     { field: 'signStatus', label: 'account.tradeacct.details.signStatus', formatValue: (val) => signstatusEnum.getEnumTypeName(val) }
 ])
 
-const onCancel = (isRefresh = false) => {
+const onCancel = () => {
     show.value = false
-    refresh.value = isRefresh
 }
 </script>

+ 95 - 0
src/packages/pc/views/member/institution/user/components/account/edit/index.vue

@@ -0,0 +1,95 @@
+<!-- 会员机构管理-机构管理-机构资料管理-资金账户-修改 -->
+<template>
+    <app-drawer title="修改" width="480" v-model:show="show" :refresh="refresh" :loading="loading">
+        <el-form ref="formRef" class="el-form--vertical" label-width="100px" :model="formData" :rules="formRules"
+            :show-message="false">
+            <el-form-item label="资金账户">
+                {{ record.accountId }}
+            </el-form-item>
+            <el-form-item label="交易状态" prop="tradestatus">
+                <el-select v-model="formData.tradestatus">
+                    <template v-for="item in traderstatusEnum.getEnumOptions([1, 4, 5])" :key="item.value">
+                        <el-option :label="item.label" :value="item.value" />
+                    </template>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="内外部">
+                {{ accounttypeEnum.getEnumTypeName(record.taAccountType) }}
+            </el-form-item>
+            <el-form-item label="币种">
+                {{ record.currency }}
+            </el-form-item>
+            <el-form-item label="出金阈值" prop="outthreshold">
+                <el-input-number v-model="formData.outthreshold" placeholder="请输入" />
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <el-button @click="onCancel(false)">{{ t('operation.close') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, reactive, PropType, toRaw } from 'vue'
+import { ElMessage, FormInstance, FormRules } from 'element-plus'
+import { useEnum } from '@/hooks/enum'
+import { taaccountEdit } from '@/services/api/member'
+import { i18n } from '@/stores'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+
+const props = defineProps({
+    record: {
+        type: Object as PropType<Model.OrganTaaccountRsp>,
+        required: true
+    }
+})
+
+// 内/外部
+const accounttypeEnum = useEnum('accounttype')
+// 交易状态
+const traderstatusEnum = useEnum('traderstatus')
+
+const { global: { t } } = i18n
+const formRef = shallowRef<FormInstance>()
+const show = shallowRef(true)
+const refresh = shallowRef(false)
+const loading = shallowRef(false)
+
+const formData = reactive<Model.TaaccountEditReq>({
+    accountid: props.record.accountId,
+    outthreshold: props.record.outThreshold,
+    parentaccountid: props.record.parentAccountId,
+    tradestatus: props.record.tradeStatus
+})
+
+// 表单验证规则
+const formRules: FormRules = {
+    outthreshold: [{ required: true }],
+    tradestatus: [{ required: true }]
+}
+
+const onCancel = (isRefresh = false) => {
+    show.value = false
+    refresh.value = isRefresh
+}
+
+const onSubmit = () => {
+    formRef.value?.validate((valid) => {
+        if (valid) {
+            const rawData = toRaw(formData)
+            loading.value = true
+            taaccountEdit({
+                data: rawData
+            }).then(() => {
+                ElMessage.success(t('common.tips3'))
+                onCancel(true)
+            }).catch((err) => {
+                ElMessage.error(t('common.tips4') + err)
+            }).finally(() => {
+                loading.value = false
+            })
+        }
+    })
+}
+</script>

+ 123 - 0
src/packages/pc/views/member/institution/user/components/account/index.vue

@@ -0,0 +1,123 @@
+<!-- 会员机构管理-机构管理-机构资料管理-资金账户 -->
+<template>
+    <teleport to="#appPageTeleport">
+        <app-view>
+            <template #header>
+                <app-filter :option="filterOption" />
+            </template>
+            <app-table :data="dataList" :columns="tableColumns" :loading="loading">
+                <template #headerLeft>
+                    <span>[{{ record.accountname }}]的资金账户</span>
+                </template>
+                <template #headerRight>
+                    <div>
+                        <el-button type="primary" @click="showComponent('Edit')">{{ t('operation.add') }}</el-button>
+                        <el-button @click="emit('closed')">{{ t('operation.close') }}</el-button>
+                    </div>
+                </template>
+                <!-- 操作 -->
+                <template #operate="{ row }">
+                    <el-button size="small" icon="Search" @click="showComponent('Details', row)" circle plain />
+                    <el-button size="small" icon="Document" @click="showComponent('SignStatement', row)" circle plain />
+                    <el-button size="small" icon="Edit" @click="showComponent('Edit', row)" circle plain />
+                    <el-button size="small" icon="Key" @click="showComponent('Password', row)" circle plain />
+                </template>
+                <template #footer>
+                    <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
+                        @change="onSearch" />
+                </template>
+            </app-table>
+            <component ref="componentRef" :is="componentMap.get(componentId)" v-bind="{ record: selectedItem }"
+                @closed="closeComponent" v-if="componentId" />
+        </app-view>
+    </teleport>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType, defineAsyncComponent } from 'vue'
+import { ElMessage } from 'element-plus'
+import { useEnum } from '@/hooks/enum'
+import { useRequest } from '@/hooks/request'
+import { useDataFilter } from '@/hooks/datatable-v2'
+import { useComponent } from '@/hooks/component'
+import { organTaaccount } from '@/services/api/member'
+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 { i18n } from '@/stores'
+
+const props = defineProps({
+    record: {
+        type: Object as PropType<Model.OrganDetailListRsp>,
+        required: true
+    }
+})
+
+const componentMap = new Map<string, unknown>([
+    ['Details', defineAsyncComponent(() => import('@pc/views/account/fundacct/components/details/index.vue'))], // 详情
+    ['SignStatement', defineAsyncComponent(() => import('./signstatement/index.vue'))], // 签解约流水
+    ['Edit', defineAsyncComponent(() => import('./edit/index.vue'))], // 修改
+    ['Password', defineAsyncComponent(() => import('./password/index.vue'))], // 重置密码
+])
+
+const emit = defineEmits(['closed'])
+
+// 账户类型
+const mainaccounttypeEnum = useEnum('mainaccounttype')
+// 内/外部
+const accounttypeEnum = useEnum('accounttype')
+// 交易状态
+const traderstatusEnum = useEnum('traderstatus')
+
+const selectedItem = shallowRef<Model.OrganTaaccountRsp>()
+
+const { global: { t } } = i18n
+
+const { componentRef, componentId, openComponent, closeComponent } = useComponent(() => run())
+
+const { dataList, total, pageSize, pageIndex, loading, run } = useRequest(organTaaccount, {
+    params: {
+        pageNum: 1,
+        pageSize: 20,
+        userId: props.record.userid
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = shallowRef<Model.TableColumn[]>([
+    { field: 'accountId', label: '资金账户' },
+    { field: 'isMain', label: '账户类型', formatValue: (val) => mainaccounttypeEnum.getEnumTypeName(val) },
+    { field: 'taAccountType', label: '内/外部', formatValue: (val) => accounttypeEnum.getEnumTypeName(val) },
+    { field: 'relatedName', label: '关联账户' },
+    { field: 'parentAccountId', label: '所属母账户' },
+    { field: 'tradeStatus', label: '交易状态', formatValue: (val) => traderstatusEnum.getEnumTypeName(val) },
+    { field: 'currency', label: '币种' },
+    { field: 'curRiskRate', label: '风险率(%)' },
+    { field: 'operate', label: 'common.operate', width: 180, fixed: 'right' }
+])
+
+const { filterOption, getQueryParams, resetFilters } = useDataFilter<Model.OrganTaaccountReq>({
+    filters: [
+        {
+            field: 'accountId',
+            label: '资金账户'
+        },
+    ],
+    buttons: [
+        { label: t('operation.search'), className: 'el-button--primary', onClick: () => onSearch() },
+        { label: t('operation.reset'), className: 'el-button--primary', validateEvent: false, onClick: () => resetFilters() }
+    ]
+})
+
+const showComponent = (code: string, row?: Model.OrganTaaccountRsp) => {
+    selectedItem.value = row
+    openComponent(code)
+}
+
+const onSearch = (clear = false) => {
+    const qs = getQueryParams(clear)
+    run(qs)
+}
+</script>

+ 49 - 0
src/packages/pc/views/member/institution/user/components/account/password/index.vue

@@ -0,0 +1,49 @@
+<!-- 会员机构管理-机构管理-机构资料管理-资金账户-重置密码 -->
+<template>
+    <app-drawer :title="t('common.alert')" v-model:show="show" :loading="loading">
+        <div class="g-text-message">确认将密码重置?</div>
+        <template #footer>
+            <el-button @click="onCancel">{{ t('operation.cancel') }}</el-button>
+            <el-button type="primary" @click="onSubmit">{{ t('operation.confirm') }}</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import { taaccountResetPwd } from '@/services/api/member'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+import { i18n } from '@/stores'
+
+const props = defineProps({
+    record: {
+        type: Object as PropType<Model.OrganTaaccountRsp>,
+        required: true
+    }
+})
+
+const { global: { t } } = i18n
+const show = shallowRef(true)
+const loading = shallowRef(false)
+
+const onCancel = () => {
+    show.value = false
+}
+
+const onSubmit = () => {
+    loading.value = true
+    taaccountResetPwd({
+        data: {
+            accountid: props.record.accountId
+        }
+    }).then(() => {
+        ElMessage.success('重置成功')
+    }).catch((err) => {
+        ElMessage.error('重置失败:' + err)
+    }).finally(() => {
+        loading.value = false
+        onCancel()
+    })
+}
+</script>

+ 92 - 0
src/packages/pc/views/member/institution/user/components/account/signstatement/index.vue

@@ -0,0 +1,92 @@
+<!-- 会员机构管理-机构管理-机构资料管理-资金账户-签解约流水 -->
+<template>
+    <app-drawer title="签解约流水记录" width="1200" v-model:show="show">
+        <app-table :data="dataList" :columns="tableColumns">
+            <template #headerLeft>
+                <span>资金账户:{{ record.accountId }}</span>
+            </template>
+            <template #headerRight>
+                <app-filter :option="filterOption" />
+            </template>
+            <template #footer>
+                <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
+                    @change="onSearch" />
+            </template>
+        </app-table>
+        <template #footer>
+            <el-button @click="onCancel">{{ t('operation.close') }}</el-button>
+        </template>
+    </app-drawer>
+</template>
+
+<script lang="ts" setup>
+import { shallowRef, PropType } from 'vue'
+import { ElMessage } from 'element-plus'
+import { useRequest } from '@/hooks/request'
+import { useDataFilter } from '@/hooks/datatable-v2'
+import { querySignlog } from '@/services/api/member'
+import AppDrawer from '@pc/components/base/drawer/index.vue'
+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 { i18n } from '@/stores'
+
+const props = defineProps({
+    record: {
+        type: Object as PropType<Model.OrganTaaccountRsp>,
+        required: true
+    }
+})
+
+const { global: { t } } = i18n
+
+const show = shallowRef(true)
+
+const { dataList, total, pageSize, pageIndex, run } = useRequest(querySignlog, {
+    params: {
+        accountId: props.record.accountId,
+        pageNum: 1,
+        pageSize: 20,
+        querytype: 0
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = shallowRef<Model.TableColumn[]>([
+    { field: 'accountcode', label: '资金账户' },
+    { field: 'cusbankid', label: '托管银行编号' },
+    { field: 'signtype', label: '签(解)约类型' },
+    { field: 'dealstatus', label: '处理状态' },
+    { field: 'createtime', label: '时间' },
+    { field: 'bankaccountno', label: '银行卡号' },
+    { field: 'currency', label: '币种' }
+])
+
+const { filterOption, getQueryParams } = useDataFilter<Model.SignlogReq>({
+    filters: [
+        {
+            field: 'querytype',
+            label: '查询类型',
+            value: 0,
+            options: () => [
+                { label: '当前', value: 0 },
+                { label: '历史', value: 1 },
+            ],
+        }
+    ],
+    buttons: [
+        { label: t('operation.search'), className: 'el-button--primary', onClick: () => onSearch() },
+    ]
+})
+
+const onSearch = () => {
+    const qs = getQueryParams()
+    run(qs)
+}
+
+const onCancel = () => {
+    show.value = false
+}
+</script>

+ 0 - 90
src/packages/pc/views/member/institution/user/components/details/agree.vue

@@ -1,90 +0,0 @@
-<!-- 会员机构管理-机构管理-机构开户申请-审核通过 -->
-<template>
-    <app-drawer :title="t('member.institution.open.details.title2')" width="480" v-model:show="show" :loading="loading" :refresh="refresh">
-        <el-form ref="formRef" label-width="130px" :model="formData" :rules="formRules" :show-message="false">
-            <el-form-item :label="t('member.institution.open.details.areacode')" prop="areacode">
-                <el-input type="number" v-model="formData.areacode" :placeholder="t('member.institution.open.details.tips1')" />
-            </el-form-item>
-            <el-form-item :label="t('member.institution.open.details.smlogincode')" prop="smlogincode">
-                <el-input v-model="formData.smlogincode" maxlength="50" :placeholder="t('member.institution.open.details.tips2')" />
-            </el-form-item>
-            <el-form-item :label="t('member.institution.open.details.loginname')" prop="loginname">
-                <el-input v-model="formData.loginname" maxlength="50" :placeholder="t('common.pleaseenter')" />
-            </el-form-item>
-            <el-form-item :label="t('member.institution.open.details.smpassword')" prop="smpassword">
-                <el-input v-model="formData.smpassword" maxlength="50" :placeholder="t('common.pleaseenter')" disabled />
-            </el-form-item>
-        </el-form>
-        <template #footer>
-            <el-button @click="onCancel(false)">{{ t('operation.close') }}</el-button>
-            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
-        </template>
-    </app-drawer>
-</template>
-
-<script lang="ts" setup>
-import { ref, PropType, toRaw } from 'vue'
-import { ElMessage, FormInstance, FormRules } from 'element-plus'
-import { wskhUserinfoApproved } from '@/services/api/member'
-import AppDrawer from '@pc/components/base/drawer/index.vue'
-import { i18n } from '@/stores'
-
-const props = defineProps({
-    record: {
-        type: Object as PropType<Model.MemberDetail>,
-        required: true
-    }
-})
-
-const { global: { t } } = i18n
-const formRef = ref<FormInstance>()
-const show = ref(true)
-const refresh = ref(false)
-const loading = ref(false)
-
-const formData = ref<Partial<Model.MemberDetail>>({
-    userid: props.record.userid,
-    auditflag: 1,
-    smpassword: '123456'
-})
-
-// 表单验证规则
-const formRules: FormRules = {
-    areacode: [{ required: true, min: 4, max: 4 }],
-    smlogincode: [{
-        required: true,
-        validator: (rule, value, callback) => {
-            if (value?.length > 2 && /[a-zA-Z]/.test(value)) {
-                callback()
-            } else {
-                callback(new Error(t('member.institution.open.details.tips2')))
-            }
-        }
-    }],
-    loginname: [{ required: true }]
-}
-
-const onCancel = (isRefresh = false) => {
-    show.value = false
-    refresh.value = isRefresh
-}
-
-const onSubmit = () => {
-    formRef.value?.validate((valid) => {
-        if (valid) {
-            loading.value = true
-            wskhUserinfoApproved({
-                data: toRaw(formData.value)
-            }).then(() => {
-                ElMessage.success(t('common.tips7'))
-                onCancel(true)
-            }).catch((err) => {
-                ElMessage.error(t('common.tips8') + err)
-                //onCancel()
-            }).finally(() => {
-                loading.value = false
-            })
-        }
-    })
-}
-</script>

+ 0 - 69
src/packages/pc/views/member/institution/user/components/details/refuse.vue

@@ -1,69 +0,0 @@
-<!-- 会员机构管理-机构管理-机构开户申请-审核拒绝 -->
-<template>
-    <app-drawer :title="t('member.institution.open.details.title1')" width="480" v-model:show="show" :loading="loading" :refresh="refresh">
-        <el-form ref="formRef" label-width="100px" :model="formData" :rules="formRules" :show-message="false">
-            <el-form-item :label="t('member.institution.open.details.reason')" prop="remark">
-                <el-input type="textarea" v-model="formData.remark" maxlength="200" :rows="5" :placeholder="t('common.pleaseenter')" />
-            </el-form-item>
-        </el-form>
-        <template #footer>
-            <el-button @click="onCancel(false)">{{ t('operation.close') }}</el-button>
-            <el-button type="primary" @click="onSubmit">{{ t('operation.submit') }}</el-button>
-        </template>
-    </app-drawer>
-</template>
-
-<script lang="ts" setup>
-import { ref, PropType, toRaw } from 'vue'
-import { ElMessage, FormInstance, FormRules } from 'element-plus'
-import { wskhUserinfoApproved } from '@/services/api/member'
-import AppDrawer from '@pc/components/base/drawer/index.vue'
-import { i18n } from '@/stores'
-
-const props = defineProps({
-    record: {
-        type: Object as PropType<Model.MemberDetail>,
-        required: true
-    }
-})
-
-const { global: { t } } = i18n
-const formRef = ref<FormInstance>()
-const show = ref(true)
-const refresh = ref(false)
-const loading = ref(false)
-
-const formData = ref<Partial<Model.MemberDetail>>({
-    userid: props.record.userid,
-    auditflag: 2
-})
-
-// 表单验证规则
-const formRules: FormRules = {
-    remark: [{ required: true }],
-}
-
-const onCancel = (isRefresh = false) => {
-    show.value = false
-    refresh.value = isRefresh
-}
-
-const onSubmit = () => {
-    formRef.value?.validate((valid) => {
-        if (valid) {
-            loading.value = true
-            wskhUserinfoApproved({
-                data: toRaw(formData.value)
-            }).then(() => {
-                ElMessage.success(t('common.tips7'))
-                onCancel(true)
-            }).catch((err) => {
-                ElMessage.error(t('common.tips8') + err)
-                onCancel()
-            }).finally(() => {
-                loading.value = false
-            })
-        }
-    })
-}
-</script>

+ 36 - 0
src/services/api/member/index.ts

@@ -188,4 +188,40 @@ export function deleteOrganRole(options: CommonFetchOptions<{ request: Model.Org
  */
 export function deleteAccountRiskConfig(options: CommonFetchOptions<{ request: Model.DeleteAccountRiskConfigReq; }>) {
     return httpClient.commonRequest('/organDetail/delaccountriskconfig', 'get', options)
+}
+
+
+/**
+ * 会员机构管理-->机构管理-->机构资料管理-->资金账户-->获取列表
+ */
+export function organTaaccount(options: CommonFetchOptions<{ request: Model.OrganTaaccountReq; response: Model.OrganTaaccountRsp[]; }>) {
+    return httpClient.commonRequest('/organDetail/organTaaccount', 'get', options)
+}
+
+/**
+ * 会员机构管理-->机构管理-->机构资料管理-->资金账户-->详情
+ */
+export function organTaaccountDetail(options: CommonFetchOptions<{ request: Model.OrganTaaccountDetailReq; response: Model.OrganTaaccountDetailRsp; }>) {
+    return httpClient.commonRequest('/organDetail/organTaaccountDetail', 'get', options)
+}
+
+/**
+ * 会员机构管理-->机构管理-->机构资料管理-->资金账户-->签解约流水
+ */
+export function querySignlog(options: CommonFetchOptions<{ request: Model.SignlogReq; response: Model.SignlogRsp[]; }>) {
+    return httpClient.commonRequest('/organDetail/querySignlog', 'get', options)
+}
+
+/**
+ * 会员机构管理-->机构管理-->机构资料管理-->资金账户-->修改
+ */
+export function taaccountEdit(options: CommonFetchOptions<{ request: Model.TaaccountEditReq; }>) {
+    return httpClient.commonRequest('/organDetail/taaccountedit', 'post', options)
+}
+
+/**
+ * 会员机构管理-->机构管理-->机构资料管理-->资金账户-->重置密码
+ */
+export function taaccountResetPwd(options: CommonFetchOptions<{ request: Model.TaaccountResetPwdReq; }>) {
+    return httpClient.commonRequest('/organDetail/resetPwd', 'get', options)
 }

+ 11 - 0
src/types/model/account.d.ts

@@ -41,6 +41,17 @@ declare namespace Model {
         changeFlag: number; // 变动标志
         currency: string; // 币种
         currentBalance: number; // 期末余额
+        dtype: {
+            checked: number;
+            dtype: number;
+            fdType: number;
+            fspotRightType: number;
+            marketId: number;
+            marketName: string;
+            spotRightType: number; // code:marketbstype
+            tradeMode: number;
+            tradeProperty: number;
+        }[];
         freezeCharge: number; // 交易服务费冻结
         freezeMargin: number; // 冻结保证金
         isMain: number; // 是否母账户 0 子账户,1 母账号

+ 120 - 0
src/types/model/member.d.ts

@@ -394,6 +394,7 @@ declare namespace Model {
 
     /** 会员机构管理-->机构管理-->机构资料管理-->获取机构资料列表 响应 */
     interface OrganDetailListRsp {
+        accountid: number; // 资金账户
         accountname: string; // 账户名称(机构名称)
         accountstatus: number; // code areastatus 账户状态 - 1:待激活 2:待审核 3:待复审 4:正常 5:审核拒绝 6:停用(注销) 7:注销(删除)
         applysrc: number; // 申请来源 - 1:管理端 2:终端
@@ -1473,4 +1474,123 @@ declare namespace Model {
     interface DeleteAccountRiskConfigReq {
         accountid?: number; // accountid
     }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->获取列表 请求 */
+    interface OrganTaaccountReq {
+        accountId?: string; // 资金账号
+        pageNum: number;
+        pageSize: number;
+        userId: number;
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->获取列表 响应 */
+    interface OrganTaaccountRsp {
+        accountId: number; // 资金账号
+        accountName: string; // 所属用户
+        curRiskRate: number; // 风险率
+        currency: string; // 币种
+        isMain: number; // 账户类型 0 子账户,1 母账号
+        outThreshold:number; // 出金阈值
+        parentAccountId: number; // 所属母账户
+        relatedName: string; // 关联账户
+        selfsupport: number; // 是否展示修改按钮
+        taAccountType: number; // 内/外部 0 内部账户,1 外部账户
+        tradeStatus: number; // 交易状态 code:traderstatus
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->详情 请求 */
+    interface OrganTaaccountDetailReq {
+        accountId?: number;
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->详情 响应 */
+    interface OrganTaaccountDetailRsp {
+        accountId: number; // 资金账号
+        accountName: string; // 所属机构
+        bankAccountsignList: {
+            accountCode: number; // 登录账户
+            accountName: string; // 客户名称
+            applyexchticket: string;
+            bankAccountName: string; // 银行卡户名、银行账户名称/ismain = 1 展示
+            bankAccountNo: string; // 银行卡号、对公账号/ismain = 1 展示
+            bankChildAccount: number; // 银行子账号
+            bankName: string; // 开户银行/ismain = 1 展示
+            canBindCard: number; // 是否可绑卡 解绑 - 0:不可 1:可以
+            canModifyPhone: number; // 是否可修改手机号 - 0:不可 1:可以
+            canModifySignInfo: number; // 是否可修改签约信息 - 0:不可 1:可以
+            cardNo: string; // 证件号码
+            cardType: number; // 证件类型
+            currency: string; // 币种
+            cusBankName: string; // 银行业务编号、托管银行/ismain = 1 展示
+            cusbankid: string;
+            isCanRelease: number; // 是否允许解约 0:不可 1:可以
+            loginIds: string; // 登录账户
+            signStatus: number; // 签约状态 - code:signstatus /ismain = 1 展示
+        }[];
+        changeFlag: number; // 变动标志
+        currency: string; // 币种
+        currentBalance: number; // 期末余额
+        dtype: {
+            checked: number;
+            dtype: number;
+            fdType: number;
+            fspotRightType: number;
+            marketId: number;
+            marketName: string;
+            spotRightType: number; // code:marketbstype
+            tradeMode: number;
+            tradeProperty: number;
+        }[];
+        freezeCharge: number; // 交易服务费冻结
+        freezeMargin: number; // 冻结保证金
+        isMain: number; // 是否母账户 0 子账户,1 母账号
+        isSelf: number; // 是否展示市场控件 1展示,0不展示
+        loginIds: number[];
+        otherFreezeMargin: number; // 交割保证金
+        otherPay: number; // 货款
+        outAmountFreeze: number; // 出金冻结
+        outThreshold: number; // 出金阈值
+        parentAccountId: number; // 所属母账户/ismain = 0 展示
+        payCharge: number; // 平台服务费
+        relatedAccountStatus: number; // 关联用户状态/关联用户id!=null &&ismain = 0 展示
+        relatedUserId: number; // 关联用户id
+        relativeAccountName: string; // 关联用户/关联用户id!=null && ismain = 0 展示
+        taAccountType: number; // 内/外部 0 内部账户,1 外部账户
+        tradeStatus: number; // 交易状态
+        usedMargin: number; // 占用保证金
+        userId: number; // 资金账号
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->签解约流水 请求 */
+    interface SignlogReq {
+        accountId: number;
+        pageNum: number;
+        pageSize: number;
+        querytype: number;
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->签解约流水 响应 */
+    interface SignlogRsp {
+        accountcode: number; // 资金账户
+        bankaccountno: string; // 银行卡号
+        createtime: string; // 时间
+        currency: string; // 币种
+        cusbankid: number; // 托管银行编号
+        dealstatus: number; // 处理状态
+        histradedate: string;
+        signtype: number; // 签(解)约类型
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->修改 请求 */
+    interface TaaccountEditReq {
+        accountid: number;
+        outthreshold: number; // 出金阈值
+        parentaccountid: number; // 默认0
+        tradestatus: number; // 交易状态 1正常 4禁止建仓(人工受限) 5 禁止交易(人工冻结)
+    }
+
+    /** 会员机构管理-->机构管理-->机构资料管理-->资金账户-->重置密码 请求 */
+    interface TaaccountResetPwdReq {
+        accountid: number;
+    }
 }