index.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <template>
  2. <!-- 计划 重新提交-->
  3. <a-modal
  4. class="commonModal plan-recommit"
  5. title="重新提交"
  6. v-model:visible="visible"
  7. centered
  8. @cancel="cancel"
  9. width="890px"
  10. >
  11. <template #footer>
  12. <a-button key="submit" type="primary" :loading="loading" @click="submit">完成</a-button>
  13. </template>
  14. <a-form class="inlineForm" ref="formRef" :model="formState" :rules="rules">
  15. <a-row :gutter="24">
  16. <a-col :span="12">
  17. <a-form-item label="计划类型" name="ContractType">
  18. <a-select
  19. class="inlineFormSelect"
  20. style="width: 200px"
  21. v-model:value="formState.ContractType"
  22. placeholder="请选择计划类型"
  23. >
  24. <a-select-option
  25. v-for="item in planTye"
  26. :value="item.enumitemname"
  27. :key="item.autoid"
  28. >{{ item.enumdicname }}</a-select-option>
  29. </a-select>
  30. </a-form-item>
  31. </a-col>
  32. <a-col :span="12">
  33. <a-form-item label="计划名称" name="HedgePlanNo">
  34. <a-input
  35. class="dialogInput"
  36. v-model:value="formState.HedgePlanNo"
  37. style="width: 200px"
  38. placeholder="请输入计划名称"
  39. />
  40. </a-form-item>
  41. </a-col>
  42. <a-col :span="12">
  43. <a-form-item label="现货品种" name="DeliveryGoodsID">
  44. <a-select
  45. class="inlineFormSelect"
  46. style="width: 200px"
  47. v-model:value="formState.DeliveryGoodsID"
  48. @change="chooseMG"
  49. placeholder="请选择现货品种"
  50. >
  51. <a-select-option
  52. v-for="item in DGList"
  53. :value="item.data.deliverygoodsid"
  54. :key="item.data.deliverygoodsid"
  55. >{{ item.data.deliverygoodsname }}</a-select-option>
  56. </a-select>
  57. </a-form-item>
  58. </a-col>
  59. <a-col :span="12">
  60. <a-form-item label="商品" name="WRStandardID">
  61. <a-select
  62. class="inlineFormSelect"
  63. style="width: 200px"
  64. @change="chooseWR"
  65. v-model:value="formState.WRStandardID"
  66. placeholder="请选择商品"
  67. >
  68. <a-select-option
  69. v-for="item in gmlist"
  70. :value="item.wrstandardid"
  71. :key="item.wrstandardid"
  72. >{{ item.wrstandardname }}</a-select-option>
  73. </a-select>
  74. </a-form-item>
  75. </a-col>
  76. <a-col :span="12">
  77. <a-form-item label="计划量" class="relative" name="PlanQty">
  78. <a-input-number
  79. class="dialogInput"
  80. style="width: 200px"
  81. v-model:value="formState.PlanQty"
  82. placeholder="请输入计划量"
  83. />
  84. </a-form-item>
  85. </a-col>
  86. <a-col :span="12">
  87. <a-form-item label="交易用户" name="Tradeuserid">
  88. <a-select
  89. class="inlineFormSelect"
  90. style="width: 200px"
  91. v-model:value="formState.Tradeuserid"
  92. placeholder="请选择交易用户"
  93. >
  94. <a-select-option
  95. v-for="item in tableList"
  96. :value="item.roleid"
  97. :key="item.roleid"
  98. >{{ item.rolename }}</a-select-option>
  99. </a-select>
  100. </a-form-item>
  101. </a-col>
  102. <a-col :span="12">
  103. <a-form-item label="结算币种" name="Currencyid">
  104. <a-select
  105. class="inlineFormSelect"
  106. style="width: 200px"
  107. v-model:value="formState.Currencyid"
  108. placeholder="请选择结算币种"
  109. >
  110. <a-select-option
  111. v-for="item in priceTyep"
  112. :key="item.enumitemname"
  113. :value="item.enumitemname"
  114. >{{ item.enumdicname }}</a-select-option>
  115. </a-select>
  116. </a-form-item>
  117. </a-col>
  118. <a-col :span="24">
  119. <a-form-item label="备注" class="relative" name="Remark">
  120. <a-input
  121. class="dialogInput"
  122. v-model:value="formState.Remark"
  123. style="width: 636px"
  124. placeholder="请输入备注"
  125. />
  126. </a-form-item>
  127. </a-col>
  128. </a-row>
  129. </a-form>
  130. </a-modal>
  131. </template>
  132. <script lang="ts">
  133. import { defineComponent, PropType, ref, watchEffect } from 'vue';
  134. import { _closeModal } from '@/common/setup/modal/modal';
  135. import { formatTime } from '@/common/methods/index';
  136. import { getPayCurrencyTypeEnumList, getSpotContractTypeEnumList } from '@/common/constants/enumsList';
  137. import { AllEnums } from '@/services/go/commonService/interface';
  138. import { getMiddleGoodsD, handleForm } from '../setup';
  139. import { FormState } from '../interface';
  140. import { ErmcpHedgePlanReq } from '@/services/proto/hedgeplan/interface';
  141. import { geLoginID_number } from '@/services/bus/login';
  142. import { LongType } from '@/services/socket/login/interface';
  143. import { mergeTwoObj } from '@/utils/objHandle';
  144. import { Ermcp3HedgePlan } from '@/services/go/ermcp/plan/interface';
  145. import { getAreaUserId } from '@/services/bus/user';
  146. import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
  147. import { hedgePlanReq } from '@/services/proto/hedgeplan';
  148. import { validateAction } from '@/common/setup/form';
  149. import { handlerManagerList } from '@/common/setup/user';
  150. export default defineComponent({
  151. name: 'plan-recommit',
  152. emits: ['cancel', 'update'],
  153. components: {},
  154. props: {
  155. selectedRow: {
  156. type: Object as PropType<Ermcp3HedgePlan>,
  157. default: {},
  158. },
  159. },
  160. setup(props, context) {
  161. const { visible, cancel } = _closeModal(context);
  162. const loading = ref<boolean>(false);
  163. const planTye = ref<AllEnums[]>(getSpotContractTypeEnumList());
  164. // 表单
  165. const { formRef, formState, rules } = handleForm();
  166. // 品种、品类
  167. const { DGList, getDG, gmlist, chooseMG, chooseWR } = getMiddleGoodsD(formState);
  168. // 交易用户
  169. const { tableList, queryTable } = handlerManagerList(loading, 2);
  170. // 币种
  171. const priceTyep = getPayCurrencyTypeEnumList();
  172. watchEffect(() => {
  173. if (visible.value) {
  174. getDG();
  175. queryTable();
  176. mergeTwoObj(formState, props.selectedRow);
  177. const { deliverygoodsid, planqty, wrstandardid, hedgeplanid } = props.selectedRow;
  178. deliverygoodsid && chooseMG(deliverygoodsid);
  179. formState.PlanQty = planqty;
  180. formState.HedgePlanID = hedgeplanid;
  181. if (wrstandardid) {
  182. formState.WRStandardID = wrstandardid;
  183. chooseWR(wrstandardid);
  184. }
  185. }
  186. });
  187. function submit() {
  188. validateAction<FormState>(formRef, formState).then((param) => {
  189. const loginId = geLoginID_number();
  190. const userid = getAreaUserId();
  191. const reqParam: ErmcpHedgePlanReq = {
  192. HedgePlanID: param.HedgePlanID,
  193. HedgePlanNo: param.HedgePlanNo, // 计划类型
  194. ContractType: param.ContractType, // 计划类型
  195. DeliveryGoodsID: Number(param.DeliveryGoodsID),
  196. WRStandardID: Number(param.WRStandardID), // 现货品种
  197. PlanQty: Number(param.PlanQty), // 计划数量
  198. OperateType: 2,
  199. ConvertFactor: param.ConvertFactor,
  200. Currencyid: param.Currencyid,
  201. ApplyId: Number(loginId),
  202. PlanTime: formatTime(new Date(), 's'),
  203. ProductType: 1,
  204. Biztype: 1,
  205. AreaUserID: userid,
  206. Remark: param.Remark,
  207. Tradeuserid: param.Tradeuserid, // 交易用户id
  208. };
  209. requestResultLoadingAndInfo(hedgePlanReq, reqParam, loading, ['重新提交计划成功', '重新提交计划失败:']).then(() => {
  210. cancel(true);
  211. });
  212. });
  213. }
  214. return {
  215. visible,
  216. cancel,
  217. submit,
  218. loading,
  219. planTye,
  220. DGList,
  221. gmlist,
  222. chooseMG,
  223. tableList,
  224. priceTyep,
  225. formRef,
  226. formState,
  227. rules,
  228. chooseWR,
  229. };
  230. },
  231. });
  232. </script>