setup.ts 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import { getItemEnum } from '@/services/bus/allEnum';
  2. import { QueryGoodsfGroup } from '@/services/go/ermcp/goodsInfo';
  3. import { Ermcp3GoodsGroup } from '@/services/go/ermcp/goodsInfo/interface';
  4. import { addDeliveryGoodsApply } from '@/services/proto/delivery';
  5. import { DeliveryGoodsApplyReq } from '@/services/proto/delivery/interface';
  6. import { message } from 'ant-design-vue';
  7. import { reactive, ref, UnwrapRef } from 'vue';
  8. import { FormState } from './interface';
  9. /**
  10. * 处理新增
  11. * @returns
  12. */
  13. export function handleAdd() {
  14. const loading = ref<boolean>(false);
  15. function addAction(param: DeliveryGoodsApplyReq) {
  16. loading.value = true;
  17. addDeliveryGoodsApply(param).then(() => {
  18. message.success('新增现货品种成功!')
  19. }).catch(err => {
  20. message.error(err.message)
  21. }).finally(() => loading.value = false)
  22. }
  23. return { loading, addAction }
  24. }
  25. /**
  26. * 处理表单数据
  27. * @returns
  28. */
  29. export function handleFromState() {
  30. const formState: UnwrapRef<FormState> = reactive({
  31. deliverygoodscode: '', // string 交割商品代码(新增时有值)
  32. deliverygoodsname: '', // string 交割商品名称(新增时有值)
  33. deliverygoodsid: 0,// uint64 交割商品id(修改时有值)
  34. unitid: undefined, // uint64 单位ID
  35. type: 1,// int32 类型 1 新增 2 修改
  36. remark: '', // string 备注
  37. gldwrstandards: [
  38. { wrstandardname: '', unitid: undefined, convertfactor: null, }
  39. ], // GLDWRStandardEx 现货商品型号数据
  40. glddgfactoryItems: [
  41. { dgfactoryitemvalue: '', }
  42. ], // GLDDGFactoryItemEx 现货商品品牌数据
  43. wrsconvertdetails: [
  44. { middlegoodsid: undefined, unitid: null, unitidName: '', convertratio: null, }
  45. ], // WRSConvertDetailEx 现货商品折算配置明细数据
  46. });
  47. type Key = 'gldwrstandards' | 'glddgfactoryItems' | 'wrsconvertdetails'
  48. /**
  49. * 向动态表单里添加一条数据
  50. * @param key 'gldwrstandards' | 'glddgfactoryItems' | 'wrsconvertdetails'
  51. */
  52. function addOne(key: Key): void {
  53. if (key === 'gldwrstandards') {
  54. formState[key].push({ wrstandardname: '', unitid: undefined, convertfactor: null })
  55. } else if (key === 'glddgfactoryItems') {
  56. formState[key].push({ dgfactoryitemvalue: '', })
  57. } else if (key === 'wrsconvertdetails') {
  58. formState[key].push({ middlegoodsid: undefined, unitid: null, unitidName: '', convertratio: null, })
  59. }
  60. }
  61. /**
  62. * 删除动态表单一条数据
  63. * @param key
  64. * @param i
  65. */
  66. function deleteOne(key: Key, i: number): void {
  67. formState[key].splice(i, 1)
  68. }
  69. return { formState, addOne, deleteOne }
  70. }
  71. /**
  72. * 获取期货商品组
  73. * @returns
  74. */
  75. export function handleGoodsGroup() {
  76. const goodsGroup = ref<Ermcp3GoodsGroup[]>([])
  77. function getGoodsGroup() {
  78. QueryGoodsfGroup().then(res => {
  79. console.log('获取期货商品组', res);
  80. goodsGroup.value = res;
  81. }).catch(err => {
  82. message.error(err)
  83. })
  84. }
  85. return { goodsGroup, getGoodsGroup }
  86. }
  87. /**
  88. * 获取合约单位
  89. * @returns
  90. */
  91. export function getGoodsUnit(unit: number): string {
  92. const obj = getItemEnum('goodsunit').find(e => e.enumitemname === unit);
  93. return obj ? obj.enumdicname : '--'
  94. }