setup.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import { validateCommon } from "@/common/setup/validate";
  2. import APP from '@/services';
  3. import { Ermcp3Wrstandard, ErmcpDeliveryGoodsDetailEx } from "@/services/go/ermcp/goodsInfo/interface";
  4. import { RuleObject } from "ant-design-vue/lib/form/interface";
  5. import { reactive, ref, UnwrapRef } from "vue";
  6. import { FormState } from "./interface";
  7. /**
  8. * 表单
  9. */
  10. export function handleForm() {
  11. const formRef = ref();
  12. const formState: UnwrapRef<FormState> = reactive({
  13. HedgePlanNo: '',// string 套保计划名称
  14. ContractType: undefined,// int32 计划类型-1:采购-1:销售
  15. DeliveryGoodsID: undefined,// uint64 现货品种ID
  16. PlanQty: '', // double 计划数量
  17. ConvertFactor: undefined, // double 标仓系数
  18. Remark: '', // string 计划备注
  19. OperateType: 2, // int32 操作类型-1:保存草稿2:提交申请
  20. WRStandardID: undefined, // uint64 现货品类ID
  21. Tradeuserid: undefined, // uint64 交易用户ID
  22. Currencyid: undefined, // uint64 结算币种ID
  23. })
  24. const v_ContractType = async (rule: RuleObject, value: number) => {
  25. return validateCommon(value, '请选择计划类型');
  26. };
  27. const v_DeliveryGoodsID = async (rule: RuleObject, value: number) => {
  28. return validateCommon(value, '请选择现货品种');
  29. };
  30. const v_Currencyid = async (rule: RuleObject, value: number) => {
  31. return validateCommon(value, '请选择结算币种');
  32. };
  33. const rules = {
  34. PlanQty: [{ required: true, message: '请输入计划数量', trigger: 'blur' }],
  35. ContractType: [{ required: true, validator: v_ContractType, trigger: 'change' }],
  36. DeliveryGoodsID: [{ required: true, validator: v_DeliveryGoodsID, trigger: 'change' }],
  37. Currencyid: [{ required: true, validator: v_Currencyid, trigger: 'change' }],
  38. }
  39. return { formRef, formState, rules }
  40. }
  41. /**
  42. * 获取现货品种和品类数据
  43. */
  44. export function getMiddleGoodsD(formState: UnwrapRef<FormState>) {
  45. // 现货品种列表
  46. const DGList = ref<ErmcpDeliveryGoodsDetailEx[]>([])
  47. // 品类
  48. const gmlist = ref<Ermcp3Wrstandard[]>([])
  49. // 获取品种数据
  50. function getDG() {
  51. DGList.value = APP.get('DeliveryGoodsList').filter((e: ErmcpDeliveryGoodsDetailEx) => e.data.isvalid === 1)
  52. }
  53. // 选中品种数据
  54. function chooseMG(id: number) {
  55. const temp = DGList.value.find(e => e.data.deliverygoodsid === id)
  56. gmlist.value = temp ? temp.gmlist : []
  57. formState.ConvertFactor = undefined
  58. formState.WRStandardID = undefined
  59. }
  60. // 选中品类
  61. function chooseWR(id: number | undefined) {
  62. if (id) {
  63. const temp = gmlist.value.find(e => e.wrstandardid === id)
  64. if (temp) {
  65. formState.ConvertFactor = temp.convertfactor
  66. } else {
  67. formState.ConvertFactor = undefined
  68. }
  69. } else {
  70. formState.ConvertFactor = undefined
  71. }
  72. }
  73. return { DGList, getDG, gmlist, chooseMG, chooseWR }
  74. }