li.shaoyi 1 рік тому
батько
коміт
4ceac50306
69 змінених файлів з 389 додано та 108 видалено
  1. 0 5
      public/language/en.json
  2. 0 5
      public/language/zh-cn.json
  3. 1 0
      public/locales/en-US.json
  4. 1 0
      public/locales/extras/en-US.json
  5. 1 0
      public/locales/extras/th-TH.json
  6. 1 0
      public/locales/extras/zh-CN.json
  7. 1 0
      public/locales/extras/zh-TW.json
  8. 1 0
      public/locales/th-TH.json
  9. 3 0
      public/locales/zh-CN.json
  10. 1 0
      public/locales/zh-TW.json
  11. 23 4
      src/constants/language.ts
  12. 36 0
      src/hooks/countdown/index.ts
  13. 25 1
      src/packages/pc/App.vue
  14. 4 4
      src/packages/pc/components/layouts/sidebar/index.vue
  15. 2 5
      src/packages/pc/main.ts
  16. 1 1
      src/packages/pc/views/account/tradeacct/components/bankstatement/index.vue
  17. 1 1
      src/packages/pc/views/account/tradeacct/components/details/index.vue
  18. 1 1
      src/packages/pc/views/account/tradeacct/components/sign/index.vue
  19. 1 1
      src/packages/pc/views/account/tradeacct/index.vue
  20. 1 1
      src/packages/pc/views/admin/role/index.vue
  21. 1 1
      src/packages/pc/views/admin/user/index.vue
  22. 1 1
      src/packages/pc/views/investor/manage/user/index.vue
  23. 1 1
      src/packages/pc/views/investor/user/open/index.vue
  24. 83 1
      src/packages/pc/views/marketrun/monitor/account/index.vue
  25. 47 1
      src/packages/pc/views/marketrun/monitor/liquidation/index.vue
  26. 1 1
      src/packages/pc/views/marketrun/monitor/user/index.vue
  27. 1 1
      src/packages/pc/views/member/institution/open/index.vue
  28. 1 1
      src/packages/pc/views/member/institution/role/index.vue
  29. 1 1
      src/packages/pc/views/member/subinstitution/manage/index.vue
  30. 1 1
      src/packages/pc/views/member/subinstitution/user/index.vue
  31. 1 5
      src/packages/pc/views/profitshare/institution/config/components/edit/index.vue
  32. 2 2
      src/packages/pc/views/profitshare/institution/config/index.vue
  33. 1 1
      src/packages/pc/views/profitshare/institution/group/components/member/index.vue
  34. 1 1
      src/packages/pc/views/profitshare/institution/group/index.vue
  35. 1 1
      src/packages/pc/views/query/order/accountsumm/index.vue
  36. 1 1
      src/packages/pc/views/query/order/goodssumm/index.vue
  37. 1 1
      src/packages/pc/views/query/order/institutionsumm/index.vue
  38. 2 2
      src/packages/pc/views/query/order/order/components/details/index.vue
  39. 1 1
      src/packages/pc/views/query/order/order/index.vue
  40. 1 1
      src/packages/pc/views/query/order/position/index.vue
  41. 1 1
      src/packages/pc/views/query/order/positionsumm/index.vue
  42. 1 1
      src/packages/pc/views/query/order/trade/components/details/index.vue
  43. 1 1
      src/packages/pc/views/query/order/trade/index.vue
  44. 1 1
      src/packages/pc/views/query/order/tradesumm/index.vue
  45. 1 1
      src/packages/pc/views/query/other/bank_inout/index.vue
  46. 1 1
      src/packages/pc/views/query/other/bank_statement/index.vue
  47. 1 1
      src/packages/pc/views/query/warehouse_receipt_order/order/components/details/index.vue
  48. 1 1
      src/packages/pc/views/query/warehouse_receipt_order/order/index.vue
  49. 1 1
      src/packages/pc/views/query/warehouse_receipt_order/trade/index.vue
  50. 1 1
      src/packages/pc/views/report/account/components/bank/index.vue
  51. 1 1
      src/packages/pc/views/report/account/components/performance/index.vue
  52. 1 1
      src/packages/pc/views/report/account/components/position/index.vue
  53. 1 1
      src/packages/pc/views/report/account/components/trade/index.vue
  54. 1 1
      src/packages/pc/views/report/account/components/wrorder/index.vue
  55. 1 1
      src/packages/pc/views/report/broker/index.vue
  56. 1 1
      src/packages/pc/views/report/investor/index.vue
  57. 1 1
      src/packages/pc/views/report/profitshare/index.vue
  58. 1 1
      src/packages/pc/views/report/trade/index.vue
  59. 1 1
      src/packages/pc/views/settlement/profitsharepay/index.vue
  60. 1 1
      src/packages/pc/views/system/login_failed/index.vue
  61. 1 1
      src/packages/pc/views/system/operation_log/index.vue
  62. 22 1
      src/services/api/market/index.ts
  63. 2 1
      src/services/http/index.ts
  64. 3 0
      src/shims-vue.d.ts
  65. 2 2
      src/stores/index.ts
  66. 26 25
      src/stores/modules/language.ts
  67. 2 2
      src/stores/storage.ts
  68. 53 1
      src/types/model/market.d.ts
  69. 3 0
      tsconfig.json

+ 0 - 5
public/language/en.json

@@ -1,5 +0,0 @@
-{
-    "app": {
-        "name": "GuangZhou Diamond Exchange"
-    }
-}

+ 0 - 5
public/language/zh-cn.json

@@ -1,5 +0,0 @@
-{
-    "app": {
-        "name": "MTP管理系统"
-    }
-}

+ 1 - 0
public/locales/en-US.json

@@ -0,0 +1 @@
+{}

+ 1 - 0
public/locales/extras/en-US.json

@@ -0,0 +1 @@
+{}

+ 1 - 0
public/locales/extras/th-TH.json

@@ -0,0 +1 @@
+{}

+ 1 - 0
public/locales/extras/zh-CN.json

@@ -0,0 +1 @@
+{}

+ 1 - 0
public/locales/extras/zh-TW.json

@@ -0,0 +1 @@
+{}

+ 1 - 0
public/locales/th-TH.json

@@ -0,0 +1 @@
+{}

+ 3 - 0
public/locales/zh-CN.json

@@ -1,4 +1,7 @@
 {
+    "app":{
+        "name":"MTP后台管理系统"
+    },
     "common": {},
     "routes": {}
 }

+ 1 - 0
public/locales/zh-TW.json

@@ -0,0 +1 @@
+{}

+ 23 - 4
src/constants/language.ts

@@ -2,8 +2,25 @@
  * 系统语言
  */
 export enum Language {
-    ZhCN = 'zh-cn',
-    EN = 'en',
+    Simplified = 'zh-CN',
+    Traditional = 'zh-TW',
+    English = 'en-US',
+    Thai = 'th'
+}
+
+/**
+ * 获取客户端语言
+ * @returns 
+ */
+export function getClientLanguage() {
+    const rules = [
+        { result: Language.Simplified, code: ['zh-CN'] },
+        { result: Language.Traditional, code: ['zh-TW'] },
+        { result: Language.English, code: ['en', 'en-US'] },
+        { result: Language.Thai, code: ['th', 'th-TH'] },
+    ]
+    const lang = rules.find(rule => rule.code.includes(navigator.language))
+    return lang ? lang.result : Language.English
 }
 
 /**
@@ -12,7 +29,9 @@ export enum Language {
  */
 export function getLanguageList() {
     return [
-        { label: '中文', value: Language.ZhCN },
-        { label: '英文', value: Language.EN },
+        { label: '简体中文', value: Language.Simplified },
+        { label: '繁体中文', value: Language.Traditional },
+        { label: 'English', value: Language.English },
+        { label: 'ภาษาไทย', value: Language.Thai },
     ]
 }

+ 36 - 0
src/hooks/countdown/index.ts

@@ -0,0 +1,36 @@
+import { reactive, toRefs, onUnmounted } from 'vue'
+
+export function useCountDown(defaultTime: number) {
+    let intervalId = 0
+
+    const state = reactive({
+        time: defaultTime, // 倒计时秒数
+        status: 0 // 倒计时状态
+    })
+
+    const start = (callback: () => void) => {
+        state.status = 1
+        intervalId = window.setInterval(() => {
+            state.time--
+            if (state.time < 0) {
+                state.time = defaultTime
+                callback()
+            }
+        }, 1000)
+    }
+
+    const stop = () => {
+        clearInterval(intervalId)
+        state.status = 0
+    }
+
+    onUnmounted(() => {
+        stop()
+    })
+
+    return {
+        ...toRefs(state),
+        start,
+        stop
+    }
+}

+ 25 - 1
src/packages/pc/App.vue

@@ -1,5 +1,8 @@
 <template>
-  <router-view />
+  <el-config-provider :locale="locale">
+    <!-- 一级路由 -->
+    <router-view />
+  </el-config-provider>
 </template>
 
 <!--<script lang="ts">
@@ -9,14 +12,35 @@ export default {
 </script>-->
 
 <script lang="ts" setup>
+import { computed } from 'vue'
 import { useRouter } from 'vue-router'
 import { ElMessageBox } from 'element-plus'
+import { Language } from '@/constants/language'
 import { useLogin } from '@/business/login'
+import { i18n } from '@/stores'
 import eventBus from '@/services/bus'
+import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
+import en from 'element-plus/dist/locale/en.mjs'
+import th from 'element-plus/dist/locale/th.mjs'
+import zhTW from 'element-plus/dist/locale/zh-tw.mjs'
 
 const { userLogout } = useLogin()
 const router = useRouter()
 
+// 国际化语言
+const locale = computed(() => {
+  switch (i18n.global.locale) {
+    case Language.English:
+      return en
+    case Language.Thai:
+      return th
+    case Language.Traditional:
+      return zhTW
+    default:
+      return zhCn
+  }
+})
+
 // 接收用户登出通知
 eventBus.$on('Logout', (msg) => {
   userLogout(() => {

+ 4 - 4
src/packages/pc/components/layouts/sidebar/index.vue

@@ -1,7 +1,7 @@
 <template>
   <el-scrollbar :class="['app-sidebar', collapse && 'is-hide']" view-class="app-sidebar__view">
     <div :class="['app-sidebar__header', globalStore.isMobile ? 'is-show' : collapse && 'is-hide']">
-      <span class="logo">{{ $t('app.name') }}</span>
+      <span class="logo">{{ t('app.name') }}</span>
     </div>
     <div class="app-sidebar__menu">
       <app-sidemenu :collapse="globalStore.isMobile ? false : collapse" @select="routerTo" />
@@ -16,16 +16,16 @@
 <script lang="ts" setup>
 import { watch } from 'vue'
 import { useRouter } from 'vue-router'
-import { useGlobalStore } from '@/stores'
+import { useGlobalStore, i18n } from '@/stores'
 import AppSidemenu from '../sidemenu/index.vue'
 
-const emit = defineEmits(['update:collapse'])
-
 defineProps({
   // 折叠收起菜单栏
   collapse: Boolean,
 })
 
+const emit = defineEmits(['update:collapse'])
+const t = i18n.global.t
 const globalStore = useGlobalStore()
 const router = useRouter()
 const year = new Date().getFullYear()

+ 2 - 5
src/packages/pc/main.ts

@@ -5,7 +5,6 @@ import directives from '@/directives' // 自定义指令集
 import { i18n } from '@/stores' // 国际化语言
 import layouts from "./components/layouts" // 布局组件
 import ElementPlus from 'element-plus'
-import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
 import * as ElementIcons from '@element-plus/icons-vue'
 import 'element-plus/dist/index.css'
 import './assets/themes/style.less' // 主题样式
@@ -13,13 +12,11 @@ import { timerInterceptor } from '@/utils/timer'
 import { useGlobalStore } from '@/stores'
 
 const app = createApp(App)
+app.use(i18n)
 app.use(router)
 app.use(directives)
-app.use(ElementPlus, {
-    locale: zhCn,
-})
+app.use(ElementPlus)
 app.use(layouts)
-app.use(i18n)
 app.mount('#app')
 
 // 等待 html 加载完成

+ 1 - 1
src/packages/pc/views/account/tradeacct/components/bankstatement/index.vue

@@ -5,7 +5,7 @@
             <template #header>
                 <app-filter :options="filterOptons" />
             </template>
-            <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+            <app-table :data="dataList" :columns="tableColumns" :loading="loading">
                 <template #headerLeft>
                     <span>资金账户:{{ record.accountId }}</span>
                 </template>

+ 1 - 1
src/packages/pc/views/account/tradeacct/components/details/index.vue

@@ -2,7 +2,7 @@
 <template>
     <app-drawer title="详情" width="900" v-model:show="show">
         <app-table-details :data="data" :label-width="160" :cell-props="detailProps" :column="2" />
-        <app-table :data="data?.bankAccountsignList" v-model:columns="tableColumns" v-if="data?.isMain === 1" />
+        <app-table :data="data?.bankAccountsignList" :columns="tableColumns" v-if="data?.isMain === 1" />
         <template #footer>
             <el-button @click="onCancel(false)">关闭</el-button>
         </template>

+ 1 - 1
src/packages/pc/views/account/tradeacct/components/sign/index.vue

@@ -2,7 +2,7 @@
 <template>
     <teleport to="#appPageTeleport">
         <app-view>
-            <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+            <app-table :data="dataList" :columns="tableColumns" :loading="loading">
                 <template #headerLeft>
                     <span>资金账户:{{ record.accountId }}</span>
                 </template>

+ 1 - 1
src/packages/pc/views/account/tradeacct/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <!-- 操作 -->
             <template #operate="{ row }">
                 <app-operation size="small" :data-list="getFilteredButtons()"

+ 1 - 1
src/packages/pc/views/admin/role/index.vue

@@ -1,7 +1,7 @@
 <!-- 管理员管理-管理员角色管理 -->
 <template>
     <app-view>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['admin_role_add'])" @click="openComponent" />
             </template>

+ 1 - 1
src/packages/pc/views/admin/user/index.vue

@@ -9,7 +9,7 @@
                 </el-select>
             </app-filter>
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['admin_user_add'])" @click="openComponent" />
             </template>

+ 1 - 1
src/packages/pc/views/investor/manage/user/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['investor_manage_user_export'])"
                     @click="openComponent" />

+ 1 - 1
src/packages/pc/views/investor/user/open/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['investor_user_open_add'])" @click="openComponent" />
             </template>

+ 83 - 1
src/packages/pc/views/marketrun/monitor/account/index.vue

@@ -1,7 +1,89 @@
 <!-- 市场运行管理-监控管理-账户风险监控 -->
 <template>
-    <app-view></app-view>
+    <app-view>
+        <app-table :data="dataList" :columns="tableColumns">
+            <template #headerLeft>
+                <el-form ref="formRef" class="el-form--filter" :model="queryParams">
+                    <el-form-item prop="orderbytype">
+                        <el-select v-model="queryParams.orderbytype">
+                            <el-option label="风险率" :value="0" />
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item prop="risk">
+                        监控当前风险率><el-input-number v-model="queryParams.risk" placeholder="请输入" />%
+                    </el-form-item>
+                    <el-form-item label="查询类型" prop="searchtype">
+                        <el-select v-model="queryParams.searchtype">
+                            <el-option label="交易商" :value="5" />
+                            <template v-if="userStore.userInfo.releType === 1">
+                                <el-option label="不限" :value="0" />
+                                <el-option label="自营会员" :value="2" />
+                            </template>
+                        </el-select>
+                    </el-form-item>
+                    <el-form-item label="所属机构" prop="puserid">
+                        <app-select-member v-model="queryParams.puserid" usertype="2,3" placeholder="代码或名称模糊匹配" />
+                    </el-form-item>
+                    <el-form-item>
+                        (默认风险率>50%;每10秒刷新一次,下次刷新: {{ countDown.time }})
+                    </el-form-item>
+                    <el-form-item>
+                        <el-button type="primary" @click="countDown.stop" v-if="countDown.status.value">停止监控</el-button>
+                        <el-button type="primary" @click="startCountDown" v-else>开始监控</el-button>
+                    </el-form-item>
+                </el-form>
+            </template>
+        </app-table>
+    </app-view>
 </template>
 
 <script lang="ts" setup>
+import { ref,computed } from 'vue'
+import { ElMessage, FormInstance } from 'element-plus'
+import { useCountDown } from '@/hooks/countdown'
+import { useRequest } from '@/hooks/request'
+import { marketRunInitInvestor, marketRunInvestor } from '@/services/api/market'
+import { useUserStore } from '@/stores'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppSelectMember from '@pc/components/modules/select-member/index.vue'
+
+const userStore = useUserStore()
+const formRef = ref<FormInstance>()
+const countDown = useCountDown(10)
+
+const queryParams = ref<Model.MarketRunInvestorReq>({
+    orderbytype: 0,
+    risk: 50,
+    searchtype: 5
+})
+
+const { data } = useRequest(marketRunInitInvestor)
+
+const { dataList, run } = useRequest(marketRunInvestor, {
+    params: queryParams.value,
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = ref<Model.TableColumn[]>([
+    { field: 'accountid', label: '账户' },
+    { field: 'memberusername', label: '所属会员' },
+    { field: 'parentusername', label: '所属机构' },
+    { field: 'freezemargin', label: '当前冻结资金' },
+    { field: 'usedmargin', label: '当前占用保证金', width: 140 },
+    { field: 'netbalance', label: '当前净值' },
+    { field: 'balance', label: '当前风险净值' },
+    { field: 'availmargin', label: '可用资金' },
+    { field: 'totalfrozen', label: '总冻结' },
+    { field: 'totalfloatpl', label: '浮动损益' },
+    { field: 'credit', label: '授信资金' },
+    { field: 'curriskrate', label: '当前风险率(%)' },
+    { field: 'currisklv', label: '当前风险等级' },
+    { field: 'operate', label: '操作', fixed: 'right' }
+])
+
+const startCountDown = () => {
+    countDown.start(() => run(queryParams.value))
+}
 </script>

+ 47 - 1
src/packages/pc/views/marketrun/monitor/liquidation/index.vue

@@ -1,7 +1,53 @@
 <!-- 市场运行管理-监控管理-斩仓监控 -->
 <template>
-    <app-view></app-view>
+    <app-view>
+        <app-table :data="dataList" :columns="tableColumns">
+            <template #headerLeft>
+                <div>每10秒刷新一次,下次刷新:{{ countDown.time }}</div>
+                <el-button type="primary" @click="countDown.stop" v-if="countDown.status.value">停止监控</el-button>
+                <el-button type="primary" @click="startCountDown" v-else>开始监控</el-button>
+            </template>
+            <template #footer>
+                <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
+                    @change="run" />
+            </template>
+        </app-table>
+    </app-view>
 </template>
 
 <script lang="ts" setup>
+import { shallowRef } from 'vue'
+import { ElMessage } from 'element-plus'
+import { formatDate } from '@/filters'
+import { getBuyOrSellName } from '@/constants/order'
+import { useCountDown } from '@/hooks/countdown'
+import { useRequest } from '@/hooks/request'
+import { marketRunCutposition } from '@/services/api/market'
+import AppTable from '@pc/components/base/table/index.vue'
+import AppPagination from '@pc/components/base/pagination/index.vue'
+
+const countDown = useCountDown(10)
+
+const { dataList, total, pageSize, pageIndex, run } = useRequest(marketRunCutposition, {
+    params: {
+        pageNum: 1,
+        pageSize: 20
+    },
+    onError: (err) => {
+        ElMessage.error(err)
+    }
+})
+
+const tableColumns = shallowRef<Model.TableColumn[]>([
+    { field: 'accountid', label: '斩仓资金账户' },
+    { field: 'goodsname', label: '商品' },
+    { field: 'buyorsell', label: '交易方向', formatValue: (val) => getBuyOrSellName(val) },
+    { field: 'cuttime', label: '斩仓时间', formatValue: (val) => formatDate(val) },
+    { field: 'cuttradeqty', label: '已斩数量' },
+    { field: 'cutorderid', label: '关联单号' }
+])
+
+const startCountDown = () => {
+    countDown.start(() => run())
+}
 </script>

+ 1 - 1
src/packages/pc/views/marketrun/monitor/user/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['marketrun_monitor_user_alloffline'])"
                     @click="openComponent" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['member_institution_open_add'])"
                     @click="openComponent" />

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

@@ -1,7 +1,7 @@
 <!-- 会员机构管理-机构管理-系统角色管理 -->
 <template>
     <app-view>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <!-- 创建时间 -->
             <template #modifytime="{ value }">
                 {{ formatDate(value) }}

+ 1 - 1
src/packages/pc/views/member/subinstitution/manage/index.vue

@@ -15,7 +15,7 @@
             <app-operation :data-list="handleHeaderButtons()" @click="openComponent" v-if="selectedParent" />
             <app-table-details :data="selectedParent" :label-width="120" label-align="left" :cell-props="detailProps"
                 :column="3" />
-            <app-table :data="dataList" v-model:columns="tableColumns">
+            <app-table :data="dataList" :columns="tableColumns">
                 <!-- 操作 -->
                 <template #operate="{ row }">
                     <app-operation size="small" :data-list="handleOperateButtons(row)"

+ 1 - 1
src/packages/pc/views/member/subinstitution/user/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['member_subinstitution_user_add'])"
                     @click="openComponent" />

+ 1 - 5
src/packages/pc/views/profitshare/institution/config/components/edit/index.vue

@@ -77,11 +77,7 @@ const refresh = ref(false)
 const loading = ref(false)
 
 // 查询分组
-const { dataList } = useRequest(profitShareQueryPage, {
-    onError: (err) => {
-        ElMessage.error(err)
-    }
-})
+const { dataList } = useRequest(profitShareQueryPage)
 
 const formData = ref<Model.ProfitShareDelSOrganSecReq>({
     dividefeetype: props.config.feeType,

+ 2 - 2
src/packages/pc/views/profitshare/institution/config/index.vue

@@ -3,7 +3,7 @@
     <app-view>
         <fieldset v-for="(item, index) in dataList" :key="index">
             <legend>{{ item.feeName + (item.marketId && ` [${item.marketName}]`) }}</legend>
-            <app-table :data="item.configs" v-model:columns="tableColumns">
+            <app-table :data="item.configs" :columns="tableColumns">
                 <template #headerLeft>
                     <app-operation :data-list="getFilteredButtons(['profitshare_institution_config_add'])"
                         @click="(code: string) => showComponent(code, item)" />
@@ -101,7 +101,7 @@ const tableColumns = ref<Model.TableColumn[]>([
     { field: 'dividetype', label: '分润算法', formatValue: (val) => premiumAutoModeEnum.getEnumTypeName(val) },
     { field: 'dividemode', label: '分润方式', formatValue: (val) => areadividemodeEnum.getEnumTypeName(val) },
     { field: 'dividevalue', label: '分润值', formatValue: (val) => parsePercent(val) },
-    { field: 'creatorid', label: '创建人' },
+    { field: 'username', label: '创建人' },
     { field: 'createtime', label: '创建时间', formatValue: (val) => formatDate(val) },
     { field: 'operate', label: '操作', fixed: 'right' }
 ])

+ 1 - 1
src/packages/pc/views/profitshare/institution/group/components/member/index.vue

@@ -2,7 +2,7 @@
 <template>
     <teleport to="#appPageTeleport">
         <app-view>
-            <app-table :data="dataList" v-model:columns="tableColumns">
+            <app-table :data="dataList" :columns="tableColumns">
                 <template #headerLeft>
                     <span>分组:{{ record.subareagroupname }}</span>
                 </template>

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['profitshare_institution_group_add'])"
                     @click="openComponent" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_accountsumm_export'])"
                     @click="openComponentOnClick" />

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

@@ -31,7 +31,7 @@
                 </el-form-item>
             </el-form>
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_goodssumm_export'])"
                     @click="openComponentOnClick" />

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

@@ -25,7 +25,7 @@
                 </el-form-item>
             </el-form>
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_institutionsumm_export'])"
                     @click="openComponentOnClick" />

+ 2 - 2
src/packages/pc/views/query/order/order/components/details/index.vue

@@ -4,12 +4,12 @@
         <app-table-details title="委托单信息" :data="data" :label-width="200" :cell-props="detailProps1" :column="2" />
         <app-table-details title="费用相关配置及收取值" :data="data" :label-width="200" :cell-props="detailProps2" :column="2" />
         <template v-if="data && [7, 8, 9].includes(data.orderstatus)">
-            <app-table :data="data.tradeHisResultList" v-model:columns="tableColumns" v-if="record.isHis">
+            <app-table :data="data.tradeHisResultList" :columns="tableColumns" v-if="record.isHis">
                 <template #headerLeft>
                     <b>成交单列表(历史)</b>
                 </template>
             </app-table>
-            <app-table :data="data.tradeResultList" v-model:columns="tableColumns" v-else>
+            <app-table :data="data.tradeResultList" :columns="tableColumns" v-else>
                 <template #headerLeft>
                     <b>成交单列表(当日)</b>
                 </template>

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_order_export'])"
                     @click="openComponentOnClick" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_position_export'])"
                     @click="openComponentOnClick" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_positionsumm_export'])"
                     @click="openComponentOnClick" />

+ 1 - 1
src/packages/pc/views/query/order/trade/components/details/index.vue

@@ -3,7 +3,7 @@
     <app-drawer title="详情" width="960" v-model:show="show">
         <app-table-details title="成交单信息" :data="data" :label-width="200" :cell-props="detailProps1" :column="2" />
         <app-table-details title="费用相关配置及收取值" :data="data" :label-width="200" :cell-props="detailProps2" :column="2" />
-        <app-table :data="data.resultList" v-model:columns="tableColumns" v-if="data?.buildtype === 2">
+        <app-table :data="data.resultList" :columns="tableColumns" v-if="data?.buildtype === 2">
             <template #headerLeft>
                 <b>平仓单明细</b>
             </template>

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_trade_export'])"
                     @click="openComponentOnClick" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_tradesumm_export'])"
                     @click="openComponentOnClick" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <!-- 操作 -->
             <template #operate="{ row }">
                 <app-operation size="small" :data-list="getFilteredButtons(['query_other_bankinout_details'])"

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_other_bankstatement_export'])"
                     @click="openComponentOnClick" />

+ 1 - 1
src/packages/pc/views/query/warehouse_receipt_order/order/components/details/index.vue

@@ -5,7 +5,7 @@
             :column="2" />
         <app-table-details title="价格信息" :data="data?.wrTradeOrderDetail" :label-width="180" :cell-props="detailProps2"
             :column="2" v-if="data?.wrTradeOrderDetail.wrtradetype === 1">
-            <app-table :data="data.wrTradeGoodsConfigs" v-model:columns="tableColumns"
+            <app-table :data="data.wrTradeGoodsConfigs" :columns="tableColumns"
                 v-if="data.wrTradeOrderDetail.wrpricetype == 2" />
         </app-table-details>
         <!-- <app-table-details title="对手信息" :data="data?.wrTradeOrderDetail" :label-width="180" :cell-props="detailProps1"

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_wrorder_order_export'])"
                     @click="openComponentOnClick" />

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

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_wrorder_trade_export'])"
                     @click="openComponentOnClick" />

+ 1 - 1
src/packages/pc/views/report/account/components/bank/index.vue

@@ -1,6 +1,6 @@
 <!-- 报表查询-资金账户报表-资金信息 -->
 <template>
-    <app-table :data="dataList" v-model:columns="tableColumns" />
+    <app-table :data="dataList" :columns="tableColumns" />
 </template>
 
 <script lang="ts" setup>

+ 1 - 1
src/packages/pc/views/report/account/components/performance/index.vue

@@ -1,6 +1,6 @@
 <!-- 报表查询-资金账户报表-履约汇总表 -->
 <template>
-    <app-table :data="dataList" v-model:columns="tableColumns" />
+    <app-table :data="dataList" :columns="tableColumns" />
 </template>
 
 <script lang="ts" setup>

+ 1 - 1
src/packages/pc/views/report/account/components/position/index.vue

@@ -1,6 +1,6 @@
 <!-- 报表查询-资金账户报表-持仓汇总表 -->
 <template>
-    <app-table :data="dataList" v-model:columns="tableColumns">
+    <app-table :data="dataList" :columns="tableColumns">
         <template #footer>
             <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex" @change="run" />
         </template>

+ 1 - 1
src/packages/pc/views/report/account/components/trade/index.vue

@@ -1,6 +1,6 @@
 <!-- 报表查询-资金账户报表-成交汇总表 -->
 <template>
-    <app-table :data="dataList" v-model:columns="tableColumns">
+    <app-table :data="dataList" :columns="tableColumns">
         <template #footer>
             <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex" @change="run" />
         </template>

+ 1 - 1
src/packages/pc/views/report/account/components/wrorder/index.vue

@@ -1,6 +1,6 @@
 <!-- 报表查询-资金账户报表-仓单汇总表 -->
 <template>
-    <app-table :data="dataList" v-model:columns="tableColumns">
+    <app-table :data="dataList" :columns="tableColumns">
         <template #footer>
             <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex" @change="run" />
         </template>

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

@@ -46,7 +46,7 @@
                 <span>登录账号:{{ selectedAccount.invloginids }}</span>
             </div>
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_report_broker_export'])"
                     @click="openComponentOnClick" />

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

@@ -49,7 +49,7 @@
                 <span>登录账号:{{ selectedAccount.invloginids }}</span>
             </div>
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_report_investor_export'])"
                     @click="openComponentOnClick" />

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

@@ -27,7 +27,7 @@
                 </el-form-item>
             </el-form>
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_order_institutionsumm_export'])"
                     @click="openComponentOnClick" />

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

@@ -33,7 +33,7 @@
                 <span>登录账号:{{ selectedAccount.invloginids }}</span>
             </div>
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['query_report_trade_export'])"
                     @click="openComponentOnClick" />

+ 1 - 1
src/packages/pc/views/settlement/profitsharepay/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #footer>
                 <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
                     @change="onSearch" />

+ 1 - 1
src/packages/pc/views/system/login_failed/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #headerLeft>
                 <app-operation :data-list="getFilteredButtons(['system_loginfailed_export'])"
                     @click="openComponentOnClick" />

+ 1 - 1
src/packages/pc/views/system/operation_log/index.vue

@@ -4,7 +4,7 @@
         <template #header>
             <app-filter :options="filterOptons" />
         </template>
-        <app-table :data="dataList" showIndex v-model:columns="tableColumns" :loading="loading">
+        <app-table :data="dataList" showIndex :columns="tableColumns" :loading="loading">
             <template #footer>
                 <app-pagination :total="total" v-model:page-size="pageSize" v-model:page-index="pageIndex"
                     @change="onSearch" />

+ 22 - 1
src/services/api/market/index.ts

@@ -11,6 +11,27 @@ export function marketRunUserLogin(options: CommonFetchOptions<{ request: Model.
 /**
  * 市场运行管理-->监控管理-->在线用户查询-->强制下线
  */
-export function marketRunDownonline(options: CommonFetchOptions<{ request: Model.marketRunDownonlineReq; }> = {}) {
+export function marketRunDownonline(options: CommonFetchOptions<{ request: Model.MarketRunDownonlineReq; }> = {}) {
     return httpClient.commonRequest('/marketRun/downonline', 'get', options)
+}
+
+/**
+ * 市场运行管理-->监控管理-->斩仓监控-->获取列表
+ */
+export function marketRunCutposition(options: CommonFetchOptions<{ request: Model.MarketRunCutpositionReq; response: Model.MarketRunCutpositionRsp[]; }> = {}) {
+    return httpClient.commonRequest('/marketRun/cutposition', 'get', options)
+}
+
+/**
+ * 市场运行管理-->监控管理-->账户风险监控-->获取列表
+ */
+export function marketRunInvestor(options: CommonFetchOptions<{ request: Model.MarketRunInvestorReq; response: Model.MarketRunInvestorRsp[]; }> = {}) {
+    return httpClient.commonRequest('/marketRun/investor', 'get', options)
+}
+
+/**
+ * 市场运行管理-->监控管理-->账户风险监控-->初始化参数信息
+ */
+export function marketRunInitInvestor(options: CommonFetchOptions<{ response: Model.MarketRunInitInvestorRsp; }> = {}) {
+    return httpClient.commonRequest('/marketRun/initInvestor', 'get', options)
 }

+ 2 - 1
src/services/http/index.ts

@@ -4,6 +4,7 @@ import service from '@/services'
 import eventBus from '@/services/bus'
 import { encryptAES, encryptRSA, generateRandomString } from '@/utils/crypto'
 import { useLoginStore } from '@/stores'
+import { localData } from '@/stores/storage'
 import { CommonFetchOptions, CommonResult, FetchTypes, ResultCode } from './types'
 //import { addPending, removePending } from './pending'
 
@@ -95,7 +96,7 @@ export default new (class {
 
         //设置请求头
         config.headers = {
-            'Accept-Language': 'zh-CN',
+            'Accept-Language': localData.getValue('appLanguage'),
             'Sign-Id': loginStore.signId,
             Sign: cryptojs.SHA256(loginStore.sign + timestamp.toString()).toString(),
             Authorization: loginStore.token,

+ 3 - 0
src/shims-vue.d.ts

@@ -18,6 +18,9 @@ declare module 'worker-loader!*' {
 }
 
 declare module 'element-plus/dist/locale/zh-cn.mjs'
+declare module 'element-plus/dist/locale/en.mjs'
+declare module 'element-plus/dist/locale/th.mjs'
+declare module 'element-plus/dist/locale/zh-tw.mjs'
 declare module 'mockjs-x'
 declare module 'protobufjs'
 declare module '*.jpg'

+ 2 - 2
src/stores/index.ts

@@ -1,5 +1,5 @@
+export { i18n } from './modules/language'
 export { useLoginStore } from './modules/login'
 export { useUserStore } from './modules/user'
 export { useGlobalStore } from './modules/global'
-export { useRouterStore } from './modules/menu'
-export { useLanguageStore, i18n } from './modules/language'
+export { useRouterStore } from './modules/menu'

+ 26 - 25
src/stores/modules/language.ts

@@ -1,34 +1,35 @@
 import axios from 'axios'
-import { createI18n } from 'vue-i18n'
+import zhCN from '@public/locales/zh-CN.json'
+import enUS from '@public/locales/en-US.json'
+import thTH from '@public/locales/th-TH.json'
+import zhTW from '@public/locales/zh-TW.json'
 import { Language } from '@/constants/language'
-import { defineStore } from '../store'
+import { createI18n } from 'vue-i18n'
 import { localData } from '../storage'
 
-export const i18n = createI18n({})
-
-export const useLanguageStore = defineStore(() => {
-    const appLanguage = localData.getRef('appLanguage')
-
-    // 设置语言
-    const setLanguage = async (lang: Language) => {
-        const locale = i18n.global.getLocaleMessage(lang)
+export const i18n = createI18n({
+    locale: localData.getValue('appLanguage'),
+    fallbackLocale: Language.English,
+    messages: {
+        [Language.Simplified]: zhCN,
+        [Language.Traditional]: zhTW,
+        [Language.English]: enUS,
+        [Language.Thai]: thTH,
+    }
+})
 
-        if (!Object.keys(locale).length) {
-            await axios(`./language/${lang}.json`).then((res) => {
-                i18n.global.setLocaleMessage(lang, res.data)
-            }).catch(() => {
-                // 默认语言
-            })
-        }
+axios('./locales/extras/zh-CN.json').then((res) => {
+    i18n.global.mergeLocaleMessage(Language.Simplified, res.data)
+})
 
-        i18n.global.locale = lang
-        appLanguage.value = lang
-    }
+axios('./locales/extras/zh-TW.json').then((res) => {
+    i18n.global.mergeLocaleMessage(Language.Traditional, res.data)
+})
 
-    setLanguage(appLanguage.value)
+axios('./locales/extras/en-US.json').then((res) => {
+    i18n.global.mergeLocaleMessage(Language.English, res.data)
+})
 
-    return {
-        appLanguage,
-        setLanguage,
-    }
+axios('./locales/extras/th-TH.json').then((res) => {
+    i18n.global.mergeLocaleMessage(Language.Thai, res.data)
 })

+ 2 - 2
src/stores/storage.ts

@@ -1,11 +1,11 @@
-import { Language } from '@/constants/language'
+import { getClientLanguage } from '@/constants/language'
 import { AppTheme } from '@/constants/theme'
 import WebStorage from '@/utils/storage'
 
 // 本地存储
 function createLocalData() {
     return {
-        appLanguage: Language.ZhCN,
+        appLanguage: getClientLanguage(),
         appTheme: AppTheme.Default,
         accessToken: '', // 登录令牌
         autoLoginEncryptedData: '', // 自动登录加密数据

+ 53 - 1
src/types/model/market.d.ts

@@ -20,7 +20,59 @@ declare namespace Model {
     }
 
     /** 市场运行管理-->监控管理-->在线用户查询-->强制下线 请求 */
-    interface marketRunDownonlineReq {
+    interface MarketRunDownonlineReq {
         loginid?: string;
     }
+
+    /** 市场运行管理-->监控管理-->斩仓监控-->获取列表 请求 */
+    interface MarketRunCutpositionReq {
+        pageNum: number;
+        pageSize: number;
+    }
+
+    /** 市场运行管理-->监控管理-->斩仓监控-->获取列表 响应 */
+    interface MarketRunCutpositionRsp {
+        accountid: number; // 斩仓资金账户
+        buyorsell: number; // 交易方向
+        cutorderid: string; // 关联单号
+        cuttime: string; // 斩仓时间
+        cuttradeqty: number; // 已斩数量
+        goodsname: string; // 商品
+    }
+
+    /** 市场运行管理-->监控管理-->斩仓监控-->获取列表 请求 */
+    interface MarketRunInvestorReq {
+        orderbytype?: number; // 类型
+        orgztypes?: string; // 管理员所属机构角色类型
+        puserid?: number; // 所属机构
+        risk?: number; // 监控当前风险率
+        searchtype?: number; // 查询类型
+    }
+
+    /** 市场运行管理-->监控管理-->斩仓监控-->获取列表 响应 */
+    interface MarketRunInvestorRsp {
+        accountid: number; // 账户
+        accountname: string; // 账户名称
+        availmargin: number; // 可用资金
+        balance: number; // 当前风险净值
+        credit: number; // 授信资金
+        currisklv: number; // 当前风险等级
+        curriskrate: number; // 当前风险率(%)
+        currisksafelv: number; // 当前安全等级
+        currisksaferate: number; // 当前安全度(%)
+        freezemargin: number; // 当前冻结资金
+        memberusername: string; // 所属会员
+        netbalance: number; // 当前净值
+        parentusername: string; // 所属机构
+        totalfloatpl: number; // 浮动盈亏
+        totalfrozen: number; // 总冻结
+        usedmargin: number; // 当前占用保证金
+    }
+
+    /** 市场运行管理-->监控管理-->账户风险监控-->初始化参数信息 响应 */
+    interface MarketRunInitInvestorRsp {
+        isshowrate: string; // 是否按风险率风控
+        isshowsafe: string; // 是否按安全度风控
+        isshowshouxin: string; // 是否显示授信金额
+    }
 }

+ 3 - 0
tsconfig.json

@@ -18,6 +18,9 @@
       "webpack-env"
     ],
     "paths": {
+      "@public/*": [
+        "public/*"
+      ],
       "@/*": [
         "src/*"
       ],