li.shaoyi 7 月之前
父節點
當前提交
25e92c36b0

+ 1 - 1
src/packages/pc/components/modules/select-goods/index.vue

@@ -5,7 +5,7 @@
         <template #default="{ option }">
             <div style="display: flex;justify-content: space-between;">
                 <span>{{ option.goodsCode }}</span>
-                <span>{{ option[getLocalizedKey()] }}</span>
+                <span>{{ option[getLocalizedKey()] || option.goodsId }}</span>
             </div>
         </template>
     </app-remote-select>

+ 27 - 5
src/packages/pc/views/investor/custom/tradecfg/components/add/index.vue

@@ -22,14 +22,16 @@
                 <el-form-item :label="t('investor.custom.tradecfg.edit.goodsid')" prop="goodsid">
                     <el-select v-model="formData.goodsid" @change="onGoodsChange">
                         <template v-for="(item, index) in goodsData?.goods" :key="index">
-                            <el-option :label="item.goodsname" :value="item.goodsid" />
+                            <el-option :label="item[getLocalizedKey()] || item.goodscode || item.goodsid"
+                                :value="item.goodsid" />
                         </template>
                     </el-select>
                 </el-form-item>
                 <el-form-item :label="t('investor.custom.tradecfg.edit.paramid')" prop="paramid">
                     <el-select v-model="formData.paramid" @change="onResultChange" clearable>
                         <template v-for="(item, index) in resultData?.results" :key="index">
-                            <el-option :label="item.enumdicname" :value="item.enumitemname" />
+                            <el-option :label="customerTypeEnum.getEnumTypeName(item.enumitemname)"
+                                :value="item.enumitemname" />
                         </template>
                     </el-select>
                 </el-form-item>
@@ -107,6 +109,7 @@
 import { ref, reactive, computed } from 'vue'
 import { ElMessage, FormInstance, FormRules } from 'element-plus'
 import { handleNoneValue } from '@/filters'
+import { Language } from '@/constants/language'
 import { getFeeAlgorithmName } from '@/constants/order'
 import { useEnum } from '@/hooks/enum'
 import { useRequest } from '@/hooks/request'
@@ -115,7 +118,26 @@ import AppDrawer from '@pc/components/base/drawer/index.vue'
 import AppTable from '@pc/components/base/table/index.vue'
 import { i18n } from '@/stores'
 
+// 获取本地化属性键
+const getLocalizedKey: () => keyof Investor.InvestorPersonRsp['goods'][number] = () => {
+    switch (i18n.global.locale) {
+        case Language.Simplified:
+            return 'goodsname'
+        case Language.Thai:
+            return 'goodsnameth'
+        case Language.Traditional:
+            return 'goodsnametw'
+        case Language.Vietnamese:
+            return 'goodsnamevi'
+        default:
+            return 'goodsnameen'
+    }
+}
+
 const feetypeEnum = useEnum('feetype')
+const customerTypeEnum = useEnum('customerType') // 保证金类别
+const traderuleEnum = useEnum('traderule') // 交易规则
+const tradefeeEnum = useEnum('tradefee') // 交易费用
 
 const { global: { t } } = i18n
 const formRef = ref<FormInstance>()
@@ -168,14 +190,14 @@ const { data: resultData, run: getResultList } = useRequest(initInvestorPerson,
 })
 
 const ruleColumns = computed<Model.TableColumn[]>(() => [
-    { field: 'rulename', label: 'investor.custom.tradecfg.edit.rulename' },
+    { field: 'ruleid', label: 'investor.custom.tradecfg.edit.rulename', formatValue: (val) => traderuleEnum.getEnumTypeName(val) },
     { field: 'paramvalue', label: 'investor.custom.tradecfg.edit.paramvalue' },
     { field: 'dvalue', label: 'investor.custom.tradecfg.edit.dvalue', show: formData.usergroupid !== 0 },
     { field: 'cvalue', label: 'investor.custom.tradecfg.edit.cvalue' },
 ])
 
 const feeColumns = computed<Model.TableColumn[]>(() => [
-    { field: 'tradefeename', label: 'investor.custom.tradecfg.edit.tradefeename' },
+    { field: 'tradefeeid', label: 'investor.custom.tradecfg.edit.tradefeename', formatValue: (val) => tradefeeEnum.getEnumTypeName(val) },
     { field: 'feealgorithm', label: 'investor.custom.tradecfg.edit.feealgorithm', formatValue: (val) => getFeeAlgorithmName(val) },
     { field: 'exchangevalue', label: 'investor.custom.tradecfg.edit.exchangevalue' },
     { field: 'dvalue', label: 'investor.custom.tradecfg.edit.dvalue', show: formData.usergroupid !== 0 },
@@ -230,7 +252,7 @@ const onGoodsChange = (value: number) => {
 
 // 选择保证金类别
 const onResultChange = (value?: number) => {
-    const res = resultData.value?.results.find((e) => e.enumitemname === value?.toString())
+    const res = resultData.value?.results.find((e) => e.enumitemname === value)
     formData.feealgorithm = res?.marginalgorithm
 }
 

+ 26 - 5
src/packages/pc/views/investor/custom/tradecfg/components/edit/index.vue

@@ -12,12 +12,13 @@
                     {{ handleNoneValue(marketItem?.name) }}
                 </el-form-item>
                 <el-form-item :label="t('investor.custom.tradecfg.edit.goodsid')">
-                    {{ handleNoneValue(goodsItem?.name) }}
+                    {{ handleNoneValue(goodsItem?.[getLocalizedKey()]) }}
                 </el-form-item>
                 <el-form-item :label="t('investor.custom.tradecfg.edit.paramid')" prop="paramid">
                     <el-select v-model="formData.paramid" @change="onResultChange" clearable>
                         <template v-for="(item, index) in resultData?.results" :key="index">
-                            <el-option :label="item.enumdicname" :value="item.enumitemname" />
+                            <el-option :label="customerTypeEnum.getEnumTypeName(item.enumitemname)"
+                                :value="item.enumitemname" />
                         </template>
                     </el-select>
                 </el-form-item>
@@ -95,6 +96,7 @@
 import { reactive, shallowRef, PropType, computed, onMounted } from 'vue'
 import { ElMessage, FormInstance } from 'element-plus'
 import { handleNoneValue } from '@/filters'
+import { Language } from '@/constants/language'
 import { useEnum } from '@/hooks/enum'
 import { useRequest } from '@/hooks/request'
 import { traderPersonAdd, getInvestorTree, initInvestorPerson } from '@/services/api/investor'
@@ -109,8 +111,27 @@ const props = defineProps({
     }
 })
 
+// 获取本地化属性键
+const getLocalizedKey: () => keyof Investor.InvestorTreeRsp = () => {
+    switch (i18n.global.locale) {
+        case Language.Simplified:
+            return 'name'
+        case Language.Thai:
+            return 'nameth'
+        case Language.Traditional:
+            return 'nametw'
+        case Language.Vietnamese:
+            return 'namevi'
+        default:
+            return 'nameen'
+    }
+}
+
 const feetypeEnum = useEnum('feetype')
 const scfRiskMode = useEnum('SCFRiskMode')
+const customerTypeEnum = useEnum('customerType') // 保证金类别
+const traderuleEnum = useEnum('traderule') // 交易规则
+const tradefeeEnum = useEnum('tradefee') // 交易费用
 
 const { global: { t } } = i18n
 const formRef = shallowRef<FormInstance>()
@@ -150,14 +171,14 @@ const { data: resultData } = useRequest(initInvestorPerson, {
 })
 
 const ruleColumns = computed<Model.TableColumn[]>(() => [
-    { field: 'rulename', label: 'investor.custom.tradecfg.edit.rulename' },
+    { field: 'ruleid', label: 'investor.custom.tradecfg.edit.rulename', formatValue: (val) => traderuleEnum.getEnumTypeName(val) },
     { field: 'paramvalue', label: 'investor.custom.tradecfg.edit.paramvalue' },
     { field: 'dvalue', label: 'investor.custom.tradecfg.edit.dvalue', show: formData.usergroupid !== 0 },
     { field: 'cvalue', label: 'investor.custom.tradecfg.edit.cvalue' },
 ])
 
 const feeColumns = computed<Model.TableColumn[]>(() => [
-    { field: 'tradefeename', label: 'investor.custom.tradecfg.edit.tradefeename' },
+    { field: 'tradefeeid', label: 'investor.custom.tradecfg.edit.tradefeename', formatValue: (val) => tradefeeEnum.getEnumTypeName(val) },
     { field: 'feealgorithm', label: 'investor.custom.tradecfg.edit.feealgorithm', formatValue: (val) => scfRiskMode.getEnumTypeName(val) },
     { field: 'exchangevalue', label: 'investor.custom.tradecfg.edit.exchangevalue' },
     { field: 'dvalue', label: 'investor.custom.tradecfg.edit.dvalue', show: formData.usergroupid !== 0 },
@@ -168,7 +189,7 @@ const feeColumns = computed<Model.TableColumn[]>(() => [
 
 // 选择保证金类别
 const onResultChange = (value?: number) => {
-    const res = resultData.value?.results.find((e) => e.enumitemname === value?.toString())
+    const res = resultData.value?.results.find((e) => e.enumitemname === value)
     formData.feealgorithm = res?.marginalgorithm
 }
 

+ 26 - 3
src/packages/pc/views/investor/custom/tradecfg/index.vue

@@ -2,7 +2,7 @@
 <template>
     <div class="g-view-tree">
         <app-view>
-            <el-tree ref="treeRef" :data="nodeList" node-key="id" :props="{ label: 'name' }"
+            <el-tree ref="treeRef" :data="nodeList" node-key="id" :props="{ label: getLocalizedKey() }"
                 :default-expanded-keys="['-1']" @node-click="nodeClick" highlight-current />
         </app-view>
         <app-view>
@@ -87,6 +87,7 @@ import { ref, computed, reactive, toRaw, nextTick } from 'vue'
 import { ElMessage } from 'element-plus'
 import type Node from 'element-plus/es/components/tree/src/model/node'
 import { buildTree, handleNoneValue } from '@/filters'
+import { Language } from '@/constants/language'
 import { useEnum } from '@/hooks/enum'
 import { useRequest } from '@/hooks/request'
 import { useOperation } from '@/hooks/operation'
@@ -97,10 +98,28 @@ import AppOperation from '@pc/components/base/operation/index.vue'
 import AppTableDetails from '@pc/components/base/table-details/index.vue'
 import { i18n } from '@/stores'
 
+// 获取本地化属性键
+const getLocalizedKey: () => keyof Investor.InvestorTreeRsp = () => {
+    switch (i18n.global.locale) {
+        case Language.Simplified:
+            return 'name'
+        case Language.Thai:
+            return 'nameth'
+        case Language.Traditional:
+            return 'nametw'
+        case Language.Vietnamese:
+            return 'namevi'
+        default:
+            return 'nameen'
+    }
+}
+
 const { global: { t } } = i18n
 const customerTypeEnum = useEnum('customerType')
 const feetypeEnum = useEnum('feetype')
 const scfRiskMode = useEnum('SCFRiskMode')
+const traderuleEnum = useEnum('traderule') // 交易规则
+const tradefeeEnum = useEnum('tradefee') // 交易费用
 
 const treeRef = ref()
 const nodeList = ref<(Investor.InvestorTreeRsp & { children: Investor.InvestorTreeRsp[]; })[]>([])
@@ -144,6 +163,10 @@ const { run: getNodeList } = useRequest(getInvestorTree, {
                 level: 0,
                 marketid: 0,
                 name: t('investor.custom.tradecfg.subtitle2'),
+                nameen: t('investor.custom.tradecfg.subtitle2'),
+                nameth: t('investor.custom.tradecfg.subtitle2'),
+                nametw: t('investor.custom.tradecfg.subtitle2'),
+                namevi: t('investor.custom.tradecfg.subtitle2'),
                 pid: '0',
                 usergroupid: 0
             }
@@ -179,14 +202,14 @@ const detailProps = computed<CellProp[]>(() => [
 ])
 
 const ruleColumns = computed<Model.TableColumn[]>(() => [
-    { field: 'rulename', label: 'investor.custom.tradecfg.rulename' },
+    { field: 'ruleid', label: 'investor.custom.tradecfg.edit.rulename', formatValue: (val) => traderuleEnum.getEnumTypeName(val) },
     { field: 'paramvalue', label: 'investor.custom.tradecfg.paramvalue' },
     { field: 'dvalue', label: 'investor.custom.tradecfg.dvalue', show: qs.value.usergroupid !== 0 },
     { field: 'cvalue', label: 'investor.custom.tradecfg.cvalue' },
 ])
 
 const feeColumns = computed<Model.TableColumn[]>(() => [
-    { field: 'tradefeename', label: 'investor.custom.tradecfg.tradefeename' },
+    { field: 'tradefeeid', label: 'investor.custom.tradecfg.edit.tradefeename', formatValue: (val) => tradefeeEnum.getEnumTypeName(val) },
     { field: 'exchangevalue', label: 'investor.custom.tradecfg.exchangevalue' },
     { field: 'dvalue', label: 'investor.custom.tradecfg.dvalue', show: qs.value.usergroupid !== 0 },
     { field: 'cvalue', label: 'investor.custom.tradecfg.cvalue' },

+ 9 - 1
src/types/model/investor.d.ts

@@ -557,6 +557,10 @@ declare namespace Investor {
         level: number;
         marketid: number;
         name: string;
+        nameen: string;
+        nameth: string;
+        nametw: string;
+        namevi: string;
         pid: string;
         usergroupid: number;
     }
@@ -609,6 +613,10 @@ declare namespace Investor {
             goodsgroupid: number; // 期货品种ID
             goodsid: number; // 期货合约ID(自增ID SEQ_GOODS)
             goodsname: string; // 期货合约名称
+            goodsnameen: string;
+            goodsnameth: string;
+            goodsnametw: string;
+            goodsnamevi: string;
             goodsquotetype: number; // 合约报价类型: 1-直接报价 2-间接报价
             goodsstatus: number; // 商品状态- 1:待审核 2:未上市 3:上市 4:已注销 5:审核拒绝 6:退市 7:待退市
             goodstradetype: number; // 商品交易权限类型 - 1:可建可平 2:可建不可平 3:不可建可平 4:不可建不可平
@@ -701,7 +709,7 @@ declare namespace Investor {
         }[];
         results: {
             enumdicname: string;
-            enumitemname: string;
+            enumitemname: number;
             marginalgorithm: number;
             marketmarginvalue: number;
         }[];