Ver Fonte

Merge branch 'master' of http://47.101.159.18:3000/Muchinfo/MTP2.0_WEB

marymelisa há 4 anos atrás
pai
commit
c97e4a2b74
22 ficheiros alterados com 222 adições e 138 exclusões
  1. 8 0
      src/assets/styles/mixin.less
  2. 18 0
      src/common/constants/enumsName.ts
  3. 3 0
      src/common/setup/table/clolumn.ts
  4. 4 0
      src/services/bus/goods.ts
  5. 1 1
      src/services/go/ermcp/customInfo/interface.ts
  6. 1 1
      src/views/information/custom/compoments/add/index.vue
  7. 1 1
      src/views/information/custom/compoments/add/interface.ts
  8. 1 1
      src/views/information/custom/compoments/add/setup.ts
  9. 4 4
      src/views/information/custom/compoments/common-detail/index.vue
  10. 5 4
      src/views/information/custom/compoments/modify/index.vue
  11. 5 2
      src/views/market/spot_trade/components/buy-sell-market/components/delisting/index.vue
  12. 2 2
      src/views/market/spot_trade/components/buy-sell-market/components/delisting/setup.ts
  13. 1 1
      src/views/market/spot_trade/components/buy-sell-market/components/financing_delisting/index.vue
  14. 108 97
      src/views/market/spot_trade/components/buy-sell-market/index.vue
  15. 12 2
      src/views/market/spot_trade/components/buy-sell-market/setup.ts
  16. 20 10
      src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/index.vue
  17. 1 0
      src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/interface.ts
  18. 2 0
      src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/setup.ts
  19. 20 10
      src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue
  20. 1 0
      src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/interface.ts
  21. 3 1
      src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/setup.ts
  22. 1 1
      src/views/order/spot_warran/components/spot_warrant_spot_details/components/pick_up/index.vue

+ 8 - 0
src/assets/styles/mixin.less

@@ -731,6 +731,14 @@
     margin-left: 5px;
     font-size: 16px;
   }
+.input-enumdicname-absolute {
+    position: absolute;
+    top: -8px;
+    right: -23px;
+    color: #394753;
+    margin-left: 5px;
+    font-size: 16px;
+  }
 
 .dialogInput {
     background: @m-grey21;

+ 18 - 0
src/common/constants/enumsName.ts

@@ -741,6 +741,24 @@ export function getPaymentTypeName(type: number) {
 }
 
 /**
+ * 类型 - 1:套保计划 2:现货合同
+ * @param type
+ */
+export function getLogType(logtype: number) {
+    let result = "--"
+    debugger
+    switch (logtype) {
+        case 1:
+            result = '套保计划'
+            break
+        case 2:
+            result = '现货合同'
+            break
+    }
+    return result
+}
+
+/**
  * 资金操作类型
  * 资金操作类型 (AccountFundCmdOp)- 101:入金 102:入金手续费 103:出金 104:出金冻结 105:出金解冻 106:出金手续费 107:出金手续费冻结 108:出金手续费解冻
  * 201:交易冻结 202:交易解冻 203:交易占用 204:交易解占用 205:交易手续费冻结 206:交易手续费解冻 207:交易手续费 208:交易货款 209:交易盈亏

+ 3 - 0
src/common/setup/table/clolumn.ts

@@ -127,6 +127,9 @@ function getFromatterFn(val: string) {
         case 'getChangeLogType':  // 变更流水类型
             result = FormatterFn.getChangeLogType
             break
+        case 'getLogType' : // 计划类型
+            result = FormatterFn.getLogType
+            break
         default:
             if (first) {
                 console.warn(`请开发人员配置${first}格式化函数!`)

+ 4 - 0
src/services/bus/goods.ts

@@ -10,6 +10,10 @@ export function getGoodsList(): Goods[] {
     return APP.get('Goods')
 }
 
+export function getGoodsByCode(goodsCode: string): Goods | undefined {
+    return getGoodsList().find(e => e.goodscode === goodsCode)
+}
+
 // 获取全部盘面信息
 export function getAllQuoteDayInfo(): QueryQuoteDayRsp[] {
     return APP.get('quoteDayInfo')

+ 1 - 1
src/services/go/ermcp/customInfo/interface.ts

@@ -26,7 +26,7 @@ export interface QueryCustomInfoType {
     taxpayernum: string;//纳税人识别号
     telphone: string;//联系电话
     userid: number;//用户ID
-    userinfotype: string;//客户类型
+    userinfotype: number;//客户类型
     username: string;
 }
 

+ 1 - 1
src/views/information/custom/compoments/add/index.vue

@@ -297,7 +297,7 @@ export default defineComponent({
         // 正面证件照地址
         const { getFirstImg: getFrontImg, uploadImgAction: cardfrontphotourlUpLoad } = getUploadImg();
         function isPersonal(): boolean {
-            return formState.userinfotype === 1;
+            return formState.userinfotype === '1';
         }
 
         function submit(OperateType: 1 | 2) {

+ 1 - 1
src/views/information/custom/compoments/add/interface.ts

@@ -1,5 +1,5 @@
 export interface FormState {
-    userinfotype: number; //客户类型
+    userinfotype: string; //客户类型
     customername: string; //客户名称(企业名称)
     nickname: string; //企业简称
     cardtype: number | undefined; //证件类型

+ 1 - 1
src/views/information/custom/compoments/add/setup.ts

@@ -39,7 +39,7 @@ export function handleForm() {
  */
 export function initFormState(): FormState {
     return {
-        userinfotype: 2,
+        userinfotype: '2',
         customername: '',
         nickname: '',
         cardtype: undefined,

+ 4 - 4
src/views/information/custom/compoments/common-detail/index.vue

@@ -33,7 +33,7 @@ export default defineComponent({
     },
     setup(props) {
         function isPersonal() {
-            return props.selectedRow.userinfotype === '1';
+            return props.selectedRow.userinfotype === 1;
         }
         const { desList, getDesList } = handleDesList();
         // 预览附件
@@ -54,12 +54,12 @@ export default defineComponent({
             }
         }
         watchEffect(() => {
-            if (props.selectedRow.customername) {
+            // if (props.selectedRow.customername) {
                 const data = props.selectedRow;
                 // 个人
                 const person = [
                     { label: '客户类型', value: '个人' },
-                    { label: '姓名', value: data.customername },
+                    { label: '姓名', value: formatValue(data.username) },
                     { label: '身份证号码', value: formatValue(data.cardnum) },
                     { label: '手机号码', value: formatValue(data.mobile) },
                     { label: '身份证正面照', value: formatValue(getImgName(data.cardfrontphotourl)), className: 'blue' },
@@ -87,7 +87,7 @@ export default defineComponent({
                     { label: '备注', value: formatValue(data.remark) },
                 ];
                 getDesList(isPersonal() ? person : company);
-            }
+            // }
         });
         return {
             desList,

+ 5 - 4
src/views/information/custom/compoments/modify/index.vue

@@ -30,10 +30,10 @@
                       style="width: 200px"
                       v-model:value="formState.userinfotype"
                       placeholder="请选择客户类型">
-              <a-select-option value="1">
+              <a-select-option value = "1">
                 个人
               </a-select-option>
-              <a-select-option value="2">
+              <a-select-option value = "2">
                 企业
               </a-select-option>
             </a-select>
@@ -307,7 +307,7 @@ export default defineComponent({
         const { uploadImgAction: cardfrontUpload, uploadImgList: cardfrontImgList, handleImg: cardfrontHandle } = getUploadImg();
 
         function isPersonal(): boolean {
-            return formState.userinfotype === 1;
+            return formState.userinfotype === '1';
         }
 
         const userid = ref<number>(0);
@@ -317,6 +317,7 @@ export default defineComponent({
                 userid.value = props.selectedRow.userid;
                 countryid.value = props.selectedRow.countryid;
                 mergeTwoObj(formState, props.selectedRow);
+                formState.userinfotype = formState.userinfotype.toString()
                 if (isPersonal()) {
                     formState.username = props.selectedRow.customername;
                 }else{
@@ -345,7 +346,7 @@ export default defineComponent({
             validateAction<FormState>(formRef, formState).then((param) => {
                 const reqParam: CustomerInfoOperateReq = {
                     operatetype: 2,   // 1: 新增 2:修改
-                    username: Number(param.userinfotype) === 1 ? param.username : param.customername,
+                    username: param.userinfotype === '1' ? param.username : param.customername,
                     userid: userid.value,
                     areaid: getUserId(),
                     userinfotype: Number(param.userinfotype),

+ 5 - 2
src/views/market/spot_trade/components/buy-sell-market/components/delisting/index.vue

@@ -72,12 +72,14 @@
           <a-row :gutter="24">
             <a-col :span="24">
               <a-form-item label="摘牌数量"
+                           class="relative"
                            name="num">
                 <a-input-number class="dialogInput yellowInput"
                                 style="width: 260px"
                                 :min="0"
                                 v-model:value="formState.num" />
-                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
+                <span class="input-enumdicname-absolute">{{selectedRow.enumdicname}}</span>
+                <div class="labelTip">({{selectedRow.minivalue}}{{selectedRow.enumdicname}}起)</div>
               </a-form-item>
             </a-col>
           </a-row>
@@ -165,6 +167,7 @@ export default defineComponent({
     },
 
     setup(props, context) {
+        console.log('props', props);
         const { visible, cancel } = _closeModal(context);
         const accountList = getAccountTypeList([2]);
         const { rules, formState, formRef } = handleForm(props.selectedRow);
@@ -331,7 +334,7 @@ export default defineComponent({
     color: @m-blue16;
     position: absolute;
     top: 15px;
-    left: -80px;
+    left: -66px;
 }
 .minusBtn,
 .plusBtn {

+ 2 - 2
src/views/market/spot_trade/components/buy-sell-market/components/delisting/setup.ts

@@ -58,8 +58,8 @@ export function handleSpotWarrant(enumName: EnumRouterName, buyOrSell: BuyOrSell
         if (!isSale()) {
             queryResultLoadingAndInfo(queryHoldLB, loading).then(res => {
                 wrHoldList.value = res.filter((e: WrHoldLB) => e.wrfactortypeid === String(selectedRow.wrfactortypeid)).map((e: WrHoldLB) => {
-                    const { wrholdeno, enableqty, ladingbillid } = e
-                    return { id: ladingbillid, name: `${wrholdeno}(${enableqty})` }
+                    const { wrholdeno, enableqty, ladingbillid, enumdicname } = e
+                    return { id: ladingbillid, name: `${wrholdeno}(${enableqty}${enumdicname})` }
                 })
             })
         }

+ 1 - 1
src/views/market/spot_trade/components/buy-sell-market/components/financing_delisting/index.vue

@@ -390,7 +390,7 @@ export default defineComponent({
     color: @m-blue16;
     position: absolute;
     top: 15px;
-    left: -80px;
+    left: -66px;
 }
 .minusBtn,
 .plusBtn {

+ 108 - 97
src/views/market/spot_trade/components/buy-sell-market/index.vue

@@ -1,99 +1,102 @@
 <template>
-    <!-- 买卖大厅 -->
-    <div class="buy-sell-market">
-        <div class="buy-sell-market-title">
-            <a class="backIcon" @click="cancel">
-                <LeftOutlined />
-            </a>
-            <div class="titleBtn">
-                <div class="name">{{selectedRow.deliverygoodsname}}</div>
-                <div class="arrowRightIcon"></div>
-            </div>
-            <div class="titleBtn titleBtn2">
-                <div class="arrowLeftIcon"></div>
-                <div class="name">{{selectedRow.wrgoodsname}}</div>
-                <div class="arrowRightIcon"></div>
-            </div>
-            <div class="titleBtn titleBtn2">
-                <div class="arrowLeftIcon"></div>
-                <div class="name">{{selectedRow.warehousename}}</div>
-                <div class="arrowRightIcon"></div>
-            </div>
-            <div class="titleBtn titleBtn3" v-if="!getHasWR(enumName)">
-                <div class="arrowLeftIcon"></div>
-                <div class="name">
-                    <a-month-picker
-                        :allowClear="false"
-                        v-model:value="time"
-                        @change="timeChange"
-                        class="commonDatePicker conditionPicker"
-                    />
-                </div>
-                <DownOutlined />
-            </div>
-            <div class="green">
-                <div class="numBlock" v-if="isFloatPrice()">
-                    <div class="first">卖基差</div>
-                    <div class="last">{{selectedRow.sellpricemove}}</div>
-                </div>
-                <div class="numBlock" v-else>
-                    <div class="first">卖价</div>
-                    <div class="last">{{selectedRow.sellprice}}</div>
-                </div>
-                <div class="numBlock">
-                    <div class="first">卖量</div>
-                    <div class="last">{{selectedRow.sellqty}}</div>
-                </div>
-            </div>
-            <div class="red ml35">
-                <div class="numBlock" v-if="isFloatPrice()">
-                    <div class="first">买基差</div>
-                    <div class="last">{{selectedRow.buypricemove}}</div>
-                </div>
-                <div class="numBlock" v-else>
-                    <div class="first">买价</div>
-                    <div class="last">{{selectedRow.buyprice}}</div>
-                </div>
-                <div class="numBlock">
-                    <div class="first">买量</div>
-                    <div class="last">{{selectedRow.buyqty}}</div>
-                </div>
-            </div>
-            <div class="market" v-if="isFloatPrice()">
-                <div class="first">{{selectedRow.goodscode}}</div>
-                <div class="last red">{{getGoodsPrice()}}</div>
-                <LineChartOutlined />
-            </div>
-            <BtnList :btnList="firstBtn" :record="selectedRow" @click="openComponent" />
+  <!-- 买卖大厅 -->
+  <div class="buy-sell-market">
+    <div class="buy-sell-market-title">
+      <a class="backIcon"
+         @click="cancel">
+        <LeftOutlined />
+      </a>
+      <div class="titleBtn">
+        <div class="name">{{selectedRow.deliverygoodsname}}</div>
+        <div class="arrowRightIcon"></div>
+      </div>
+      <div class="titleBtn titleBtn2">
+        <div class="arrowLeftIcon"></div>
+        <div class="name">{{selectedRow.wrgoodsname}}</div>
+        <div class="arrowRightIcon"></div>
+      </div>
+      <div class="titleBtn titleBtn2">
+        <div class="arrowLeftIcon"></div>
+        <div class="name">{{selectedRow.warehousename}}</div>
+        <div class="arrowRightIcon"></div>
+      </div>
+      <div class="titleBtn titleBtn3"
+           v-if="!getHasWR(enumName)">
+        <div class="arrowLeftIcon"></div>
+        <div class="name">
+          <a-month-picker :allowClear="false"
+                          v-model:value="time"
+                          @change="timeChange"
+                          class="commonDatePicker conditionPicker" />
         </div>
-        <a-row class="buySellHall">
-            <a-col :span="12" v-if="sellMarket.isMarket">
-                <Sell
-                    :enumName="enumName"
-                    ref="sellRef"
-                    :parantSelectedRow="selectedRow"
-                    :time="time"
-                    :btnList="handleBtnList(sellMarket.btnList)"
-                />
-            </a-col>
-            <a-col :span="12" v-if="buyMarket.isMarket">
-                <Buy
-                    :enumName="enumName"
-                    ref="buyRef"
-                    :time="time"
-                    :parantSelectedRow="selectedRow"
-                    :btnList="handleBtnList(buyMarket.btnList)"
-                />
-            </a-col>
-        </a-row>
-        <component
-            :is="componentId"
-            v-if="componentId"
-            :selectedRow="selectedRow"
-            :enumName="enumName"
-            @cancel="closeComponent"
-        ></component>
+        <DownOutlined />
+      </div>
+      <div class="green">
+        <div class="numBlock"
+             v-if="isFloatPrice()">
+          <div class="first">卖基差</div>
+          <div class="last">{{selectedRow.sellpricemove}}</div>
+        </div>
+        <div class="numBlock"
+             v-else>
+          <div class="first">卖价</div>
+          <div class="last">{{selectedRow.sellprice}}</div>
+        </div>
+        <div class="numBlock">
+          <div class="first">卖量</div>
+          <div class="last">{{selectedRow.sellqty}}</div>
+        </div>
+      </div>
+      <div class="red ml35">
+        <div class="numBlock"
+             v-if="isFloatPrice()">
+          <div class="first">买基差</div>
+          <div class="last">{{selectedRow.buypricemove}}</div>
+        </div>
+        <div class="numBlock"
+             v-else>
+          <div class="first">买价</div>
+          <div class="last">{{selectedRow.buyprice}}</div>
+        </div>
+        <div class="numBlock">
+          <div class="first">买量</div>
+          <div class="last">{{selectedRow.buyqty}}</div>
+        </div>
+      </div>
+      <div class="market"
+           v-if="isFloatPrice()">
+        <div class="first">{{selectedRow.goodscode}}</div>
+        <div class="last red">{{getGoodsPrice()}}</div>
+        <LineChartOutlined />
+      </div>
+      <BtnList :btnList="firstBtn"
+               :record="selectedRow"
+               @click="openComponent" />
     </div>
+    <a-row class="buySellHall">
+      <a-col :span="12"
+             v-if="sellMarket.isMarket">
+        <Sell :enumName="enumName"
+              ref="sellRef"
+              :parantSelectedRow="selectedRow"
+              :time="time"
+              :btnList="handleBtnList(sellMarket.btnList)" />
+      </a-col>
+      <a-col :span="12"
+             v-if="buyMarket.isMarket">
+        <Buy :enumName="enumName"
+             ref="buyRef"
+             :time="time"
+             :parantSelectedRow="selectedRow"
+             :btnList="handleBtnList(buyMarket.btnList)" />
+      </a-col>
+    </a-row>
+    <component :is="componentId"
+               v-if="componentId"
+               :selectedRow="selectedRow"
+               :enumName="enumName"
+               @cancel="closeComponent"></component>
+  </div>
 </template>
 
 <script lang="ts">
@@ -102,7 +105,7 @@ import { defineAsyncComponent, defineComponent, BtnList, ModalEnum } from '@/com
 import { _closeModal } from '@/common/setup/modal/modal';
 import { WrOrderQuote } from '@/services/go/wrtrade/interface';
 import { LeftOutlined } from '@ant-design/icons-vue';
-import { handleChildComponentMethod, handleFinacing, getHasWR } from './setup';
+import { handleChildComponentMethod, handleFinacing, getHasWR, handlePriceRule } from './setup';
 import Buy from './components/buy/index.vue';
 import Sell from './components/sell/index.vue';
 import { LineChartOutlined, DownOutlined } from '@ant-design/icons-vue';
@@ -112,7 +115,7 @@ import { handleSpotBtnList } from '../../setup';
 import { v4 } from 'uuid';
 import { addSubscribeQuotation, removeSubscribeQuotation } from '@/services/socket/quota';
 import Bus from '@/utils/eventBus/index';
-import { getQuoteDayInfoByCode } from '@/services/bus/goods';
+import { getGoodsByCode, getQuoteDayInfoByCode } from '@/services/bus/goods';
 import TimerUtils from '@/utils/timer/timerUtil';
 import { BtnList as BtnListType } from '@/common/components/btnList/interface';
 import moment, { Moment } from 'moment';
@@ -144,6 +147,8 @@ export default defineComponent({
         const time = ref<Moment>(moment()); // string 交收月
         const loading = ref<boolean>(false);
         const { visible, cancel } = _closeModal(context);
+        // 获取计算规则
+        handlePriceRule(loading, props.selectedRow.wrstandardid);
         // 买卖大厅 配置数据
         // 表格操作按钮列表
         const { firstBtn, buyMarket, sellMarket } = handleSpotBtnList(props.enumName);
@@ -155,8 +160,14 @@ export default defineComponent({
         // 获取浮动价商品实时价格
 
         function getGoodsPrice() {
-            const quoteData = getQuoteDayInfoByCode(props.selectedRow.goodscode);
-            return quoteData ? quoteData.ask : '--';
+            const goods = getGoodsByCode(props.selectedRow.goodscode);
+            if (goods) {
+                const n = Math.pow(10, goods.decimalplace);
+                const quoteData = getQuoteDayInfoByCode(props.selectedRow.goodscode);
+                return quoteData ? quoteData.ask / n : '--';
+            } else {
+                return '--';
+            }
         }
         const uuid = v4();
         if (isFloatPrice()) {

+ 12 - 2
src/views/market/spot_trade/components/buy-sell-market/setup.ts

@@ -2,8 +2,8 @@ import { EnumRouterName } from '@/common/constants/enumRouterName';
 import { queryResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
 import { TableKey } from '@/common/methods/table/interface';
 import { getTableColumns, getTableEvent, queryTableList } from "@/common/setup/table";
-import { queryFaProductDetail } from '@/services/go/wrtrade';
-import { WrFAProductDetail, WrMarketTradeConfig } from "@/services/go/wrtrade/interface";
+import { queryFaProductDetail, queryWrStandardFactoryItem } from '@/services/go/wrtrade';
+import { WrFAProductDetail, WrMarketTradeConfig, WrStandardFactoryItemEx } from "@/services/go/wrtrade/interface";
 import { Ref, ref } from 'vue';
 
 
@@ -100,6 +100,16 @@ export function handleChildComponentMethod() {
     return { childRef, loadChildComponentData }
 }
 
+// 获取金额计算规则
+const rules = ref<WrStandardFactoryItemEx[]>([])
+export function handlePriceRule(loading: Ref<boolean>, wrstandardid: number) {
+    queryResultLoadingAndInfo(queryWrStandardFactoryItem, loading, { wrstandardid }).then(res => {
+        rules.value = res;
+    })
+}
+export function getRules() {
+    return rules
+}
 
 const list = ref<WrFAProductDetail[]>([]);
 // 获取融资摘牌

+ 20 - 10
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/index.vue

@@ -56,17 +56,20 @@
                 <a-input-number class="dialogInput"
                                 style="width: 140px"
                                 :min="0"
-                                :suffix="selectedRow.enumdicname"
                                 v-model:value="formState.OrderQty"
                                 placeholder="请输入挂牌数量" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
               </a-form-item>
             </a-col>
             <a-col :span="12">
               <a-form-item label="起摘数量"
-                           class="relative">
-                <a-input class="commonInput"
-                         :suffix="selectedRow.enumdicname"
-                         style="width: 140px" />
+                           class="relative"
+                           name="DelistMinQty">
+                <a-input-number class="commonInput"
+                                :min="0"
+                                v-model:value="formState.DelistMinQty"
+                                style="width: 140px" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
                 <div class="tip">最小单位:1{{selectedRow.enumdicname}}</div>
               </a-form-item>
             </a-col>
@@ -112,7 +115,7 @@
                           placeholder="请择交易所">
                                 </a-select>-->
                 <a-select class="inlineFormSelect ml5"
-                          @change="groupsChange"
+                          @change="handleGoodsGroups"
                           style="width: 135px"
                           v-model:value="formState.goodsgroupid"
                           placeholder="请选择商品">
@@ -124,6 +127,7 @@
                 <a-select class="inlineFormSelect ml5"
                           style="width: 135px"
                           v-model:value="formState.goodsid"
+                          @change="handleGoodsChange"
                           placeholder="请选择合约">
                   <a-select-option v-for="item in goodsList"
                                    :value="item.goodsid"
@@ -186,12 +190,17 @@ export default defineComponent({
     },
     setup(props, context) {
         const { visible, cancel } = _closeModal(context);
-        console.log('selectedRow', props.selectedRow);
         const { rules, formState, formRef } = handlePasswordForm(props.selectedRow);
         const data = props.selectedRow;
         const loading = ref<boolean>(false);
         const { goodsGroup, goodsList, groupsChange, findGoodsCode } = handleGoods();
-
+        function handleGoodsGroups(value: number) {
+            groupsChange(value);
+            formRef.value.validate();
+        }
+        function handleGoodsChange() {
+            formRef.value.validate();
+        }
         function submit() {
             const marketInfo = getMarketRunByTradeMode(17);
             if (marketInfo) {
@@ -244,8 +253,8 @@ export default defineComponent({
                         wrstandardid: props.selectedRow.wrstandardid,
                         DeliveryMonth: moment(res.DeliveryMonth).format('YYYY-MM'), // string 交收月
                         HasWr: 0, // 0 无仓单  1: 有仓单
+                        DelistMinQty: res.DelistMinQty, // 起摘数量
                     };
-                    console.log(param);
                     requestResultLoadingAndInfo(hdWROrder, param, loading, ['挂牌成功', '挂牌失败:']).then(() => {
                         Bus.$emit('spotTrade', true);
                         cancel(true);
@@ -264,7 +273,8 @@ export default defineComponent({
             formRef,
             goodsGroup,
             goodsList,
-            groupsChange,
+            handleGoodsGroups,
+            handleGoodsChange,
         };
     },
 });

+ 1 - 0
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/interface.ts

@@ -2,6 +2,7 @@ export interface ListingForm {
     WRPriceType: 1 | 2,// 价格方式 1:固定价 2:浮动价
     FixedPrice: number, // 固定价格
     OrderQty: number,
+    DelistMinQty: number,
     PriceMove: number,// 升贴水(浮动价时填写)
     goodsgroupid: number | undefined,
     goodsid: number | undefined,

+ 2 - 0
src/views/order/pre_sale_warehouse_receipt/components/pre_sale_warehouse_receipt_order_summary/components/listed/setup.ts

@@ -13,6 +13,7 @@ export function handlePasswordForm(data: WrPosition) {
         WRPriceType: 1,
         FixedPrice: 0,
         OrderQty: 0,
+        DelistMinQty: 0,
         PriceMove: 1,
         goodsgroupid: undefined,
         goodsid: undefined,
@@ -40,6 +41,7 @@ export function handlePasswordForm(data: WrPosition) {
         FixedPrice: [{ required: true, message: '请输入挂牌价格', trigger: 'blur', type: 'number', min: 1, }],
         OrderQty: [{ required: true, validator: v_num, trigger: 'blur', type: 'number' }],
         PriceMove: [{ required: true, message: '请输入基差', trigger: 'blur', type: 'number', min: 1 }],
+        DelistMinQty: [{ required: true, message: '请输入起摘数量', trigger: 'blur', type: 'number', min: 0, }],
         DeliveryMonth: [{ required: true, message: '请选择交收月', }],
         goodsid: [{ required: true, validator: v_group }],
 

+ 20 - 10
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/index.vue

@@ -57,18 +57,20 @@
                 <a-input-number class="dialogInput"
                                 style="width: 140px"
                                 :min="0"
-                                :suffix="selectedRow.enumdicname"
                                 v-model:value="formState.OrderQty"
                                 placeholder="请输入挂牌数量" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
               </a-form-item>
             </a-col>
             <a-col :span="12">
               <a-form-item label="起摘数量"
-                           class="relative">
-                <a-input class="commonInput"
-                         :min="0"
-                         :suffix="selectedRow.enumdicname"
-                         style="width: 140px" />
+                           class="relative"
+                           name="DelistMinQty">
+                <a-input-number class="commonInput"
+                                :min="0"
+                                v-model:value="formState.DelistMinQty"
+                                style="width: 140px" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
                 <div class="tip">最小单位:1{{selectedRow.enumdicname}}</div>
               </a-form-item>
             </a-col>
@@ -99,7 +101,7 @@
                           placeholder="请择交易所">
                                 </a-select>-->
                 <a-select class="inlineFormSelect ml5"
-                          @change="groupsChange"
+                          @change="handleGoodsGroups"
                           style="width: 135px"
                           v-model:value="formState.goodsgroupid"
                           placeholder="请选择商品">
@@ -110,6 +112,7 @@
                 </a-select>
                 <a-select class="inlineFormSelect ml5"
                           style="width: 135px"
+                          @change="handleGoodsChange"
                           v-model:value="formState.goodsid"
                           placeholder="请选择合约">
                   <a-select-option v-for="item in goodsList"
@@ -174,11 +177,17 @@ export default defineComponent({
     },
     setup(props, context) {
         const { visible, cancel } = _closeModal(context);
-        console.log('selectedRow', props.selectedRow);
         const { rules, formState, formRef } = handleForm(props.selectedRow);
         const data = props.selectedRow;
         const loading = ref<boolean>(false);
         const { goodsGroup, goodsList, groupsChange, findGoodsCode } = handleGoods();
+        function handleGoodsGroups(value: number) {
+            groupsChange(value);
+            formRef.value.validate();
+        }
+        function handleGoodsChange() {
+            formRef.value.validate();
+        }
         function submit() {
             const marketInfo = getMarketRunByTradeMode(17);
             if (marketInfo) {
@@ -232,8 +241,8 @@ export default defineComponent({
                         WRTradeGoods: [wrGoodsInfo],
                         wrstandardid: props.selectedRow.wrstandardid,
                         HasWr: 1,
+                        DelistMinQty: res.DelistMinQty, // 起摘数量
                     };
-                    console.log(param);
                     requestResultLoadingAndInfo(hdWROrder, param, loading, ['挂牌成功', '挂牌失败:']).then(() => {
                         Bus.$emit('spotTrade', true);
                         cancel(true);
@@ -254,7 +263,8 @@ export default defineComponent({
             formRef,
             goodsGroup,
             goodsList,
-            groupsChange,
+            handleGoodsGroups,
+            handleGoodsChange,
         };
     },
 });

+ 1 - 0
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/interface.ts

@@ -2,6 +2,7 @@ export interface ListingForm {
     WRPriceType: 1 | 2,// 价格方式 1:固定价 2:浮动价
     FixedPrice: number, // 固定价格
     OrderQty: number,
+    DelistMinQty: number,
     PriceMove: number,// 升贴水(浮动价时填写)
     goodsgroupid: number | undefined,
     goodsid: number | undefined,

+ 3 - 1
src/views/order/spot_warran/components/spot_warrant_spot_details/components/listing/setup.ts

@@ -13,6 +13,7 @@ export function handleForm(data: WrHoldLB) {
         WRPriceType: 1,
         FixedPrice: 0,
         OrderQty: 0,
+        DelistMinQty: 0,
         PriceMove: 1,
         goodsgroupid: undefined,
         goodsid: undefined,
@@ -38,9 +39,10 @@ export function handleForm(data: WrHoldLB) {
 
     const rules = {
         FixedPrice: [{ required: true, message: '请输入挂牌价格', trigger: 'blur', type: 'number', min: 1, }],
+        DelistMinQty: [{ required: true, message: '请输入起摘数量', trigger: 'blur', type: 'number', min: 0, }],
         OrderQty: [{ required: true, validator: v_num, trigger: 'blur', type: 'number' }],
         PriceMove: [{ required: true, message: '请输入升贴水', trigger: 'blur', type: 'number', }],
-        goodsid: [{ required: true, validator: v_group }],
+        goodsid: [{ required: true, validator: v_group, }],
     }
     return { rules, formState, formRef }
 }

+ 1 - 1
src/views/order/spot_warran/components/spot_warrant_spot_details/components/pick_up/index.vue

@@ -24,8 +24,8 @@
                                 v-model:value="formState.OutQty"
                                 :min="0"
                                 :max="selectedRow.enableqty"
-                                :suffix="selectedRow.enumdicname"
                                 style="width: 140px" />
+                <span class="input-enumdicname">{{selectedRow.enumdicname}}</span>
               </a-form-item>
             </a-col>
             <a-col :span="12">