ImportDrugPurchase.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <window-size>
  3. <van-form @submit="onSubmit" style="margin-top: 12px">
  4. <van-cell-group inset>
  5. <van-field
  6. v-model="request.phoneNo"
  7. name="phoneNo"
  8. label="联系电话"
  9. placeholder="请填写手机号"
  10. required
  11. :rules="[{required: true, message: '请填写您的手机号'}]"
  12. />
  13. <van-field
  14. v-model="request.drugName"
  15. name="drugName"
  16. label="药品名称"
  17. placeholder="请填写药品名称"
  18. required
  19. :rules="[{required: true, message: '请填写药品名称'}]"
  20. />
  21. <van-field
  22. v-model="request.drugQuantity"
  23. name="drugQuantity"
  24. label="药品数量"
  25. placeholder="请填写药品数量"
  26. type="digit"
  27. required
  28. :rules="[{validator, message: '请填写药品数量'}]"
  29. />
  30. <van-field
  31. v-model="request.drugFactory"
  32. name="drugFactory"
  33. label="生产厂家"
  34. placeholder="请填写药品生产厂家"
  35. required
  36. :rules="[{required: true, message: '请填写药品生产厂家'}]"
  37. />
  38. <van-field
  39. v-model="request.drugSpecification"
  40. name="drugSpecification"
  41. label="药品规格"
  42. placeholder="请填写药品规格"
  43. />
  44. <van-field name="uploader" label="药品照片">
  45. <template #input>
  46. <van-uploader v-model="files" :max-count="1"/>
  47. </template>
  48. </van-field>
  49. <van-field
  50. v-model="request.expContent"
  51. name="expContent"
  52. label="补充说明"
  53. type="textarea"
  54. :maxlength="128"
  55. show-word-limit
  56. placeholder="补充性说明,非必填"
  57. />
  58. </van-cell-group>
  59. <div style="margin: 16px;">
  60. <van-button round block type="primary" native-type="submit">
  61. 提交
  62. </van-button>
  63. </div>
  64. </van-form>
  65. </window-size>
  66. </template>
  67. <script setup>
  68. import router from "@/router";
  69. import {reactive, ref} from "vue";
  70. import {resize} from "@/utils/image";
  71. import {importDrugPurchase} from "@/api/import-drug-purchase";
  72. import {showDialog} from "vant";
  73. const phoneNo = router.currentRoute.value.params.phoneNo
  74. const files = ref([])
  75. const request = reactive({
  76. phoneNo: phoneNo,
  77. drugName: null,
  78. drugQuantity: null,
  79. drugFactory: null,
  80. drugSpecification: null,
  81. expContent: null,
  82. drugImg: null
  83. })
  84. function validator(val) {
  85. return val > 0
  86. }
  87. function executeSubmit(img) {
  88. request.drugImg = img
  89. importDrugPurchase(request).then((res) => {
  90. showDialog({
  91. title: '提交成功',
  92. message: res,
  93. showCancelButton: false,
  94. showConfirmButton: true,
  95. }).then(() => {
  96. router.push('/hospitalService')
  97. })
  98. })
  99. }
  100. function onSubmit() {
  101. if (files.value.length > 0) {
  102. resize(files.value[0].content, executeSubmit)
  103. } else {
  104. executeSubmit(null)
  105. }
  106. }
  107. </script>