Parcourir la source

修改选择交易账户不切换资金账户

li.shaoyi il y a 3 ans
Parent
commit
bef55c357b
1 fichiers modifiés avec 13 ajouts et 10 suppressions
  1. 13 10
      src/views/market/futures/compoments/futures-trade/index.vue

+ 13 - 10
src/views/market/futures/compoments/futures-trade/index.vue

@@ -26,8 +26,7 @@
               </a-form-item>
             </template>
             <a-form-item label="账号" name="AccountID">
-              <a-select class="inlineFormSelect" placeholder="请选择账号" v-model:value="formData.AccountID"
-                @change="tradeAccountChange">
+              <a-select class="inlineFormSelect" placeholder="请选择账号" v-model:value="formData.AccountID">
                 <a-select-option v-for="item in accountList" :value="item.accountid" :key="item.accountid">
                   {{ item.accountid }}/{{ item.accountname }}</a-select-option>
               </a-select>
@@ -225,7 +224,7 @@ export default defineComponent({
       }
     }
 
-    const { futuresAccountList, tradePositionList, tradeAccount, tradeAccountChange } = useTradeAccount();
+    const { futuresAccountList, tradeAccountList } = useTradeAccount();
     // 表格选中的 rowKey 数据 :rowKey="(record,index)=>index"
     const selectedRowKeys = ref<number[]>([]);
     // 当前选择的持仓单据
@@ -240,7 +239,7 @@ export default defineComponent({
       formData.OrderQty = enableqty;
     };
 
-    // 账列表
+    // 账列表
     const accountList = computed(() => {
       if (isSpotContract) {
         const tmpList = futuresAccountList.value.filter((e) => relatedTaAccountList.value.some((a) => a.accountid === e.accountid));
@@ -254,23 +253,28 @@ export default defineComponent({
       return futuresAccountList.value;
     })
 
+    // 选中的账户
+    const selectedAccount = computed(() => tradeAccountList.find((e) => e.accountid === formData.AccountID));
+
     // 持仓列表
     const positionList = computed(() => {
-      if (selectedGoods.value) {
+      const positionList = selectedAccount.value?.positionList;
+
+      if (positionList && selectedGoods.value) {
         const { goodscode, goodsid } = selectedGoods.value;
         // 判断是否现货合同交易
         if (isSpotContract) {
           // 买卖方向,根据合同类型判断
           const buyorsell = props.selectedRow.contracttype === 1 ? BuyOrSell.buy : BuyOrSell.sell;
-          const index = tradePositionList.findIndex((item) => item.goodscode === goodscode && item.goodsid === goodsid && item.buyorsell === buyorsell);
+          const index = positionList.findIndex((item) => item.goodscode === goodscode && item.goodsid === goodsid && item.buyorsell === buyorsell);
           if (index > -1) {
-            const result = [tradePositionList[index]];
+            const result = [positionList[index]];
             onSelectChange([0], result);
             return result;
           }
         } else {
           // 过滤出当前商品的持仓单据
-          const result = tradePositionList.filter((item) => item.goodsid === goodsid);
+          const result = positionList.filter((item) => item.goodsid === goodsid);
           // 查找选中的持仓单据
           const index = result.findIndex((item) => item.goodscode === goodscode && item.buyorsell === props.selectedRow.buyorsell);
           if (index > -1) {
@@ -452,7 +456,7 @@ export default defineComponent({
           formData.ChannelBuildType = BuildType.close;
 
           // 判断是否母账号
-          if (tradeAccount.value?.ismain) {
+          if (selectedAccount.value?.ismain) {
             if (selectedGoods.value?.outerdealmode === 3 && curtdpositionenabled > 0) {
               formData.CloseTodayQty = curtdpositionenabled;
             }
@@ -485,7 +489,6 @@ export default defineComponent({
       buyPrice,
       sellPrice,
       selectedGoods,
-      tradeAccountChange,
       goodsChange,
       selectedRowKeys,
       selectedPosition,