addDetails.vue 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <template>
  2. <div>
  3. <van-form @submit="onSubmit" label-align="top">
  4. <van-field
  5. v-model="result"
  6. is-link
  7. readonly
  8. name="picker"
  9. label="仓库名称"
  10. placeholder="请选择"
  11. @click="formStatus.isShowWarehouse = true"
  12. :rules="[
  13. { required: true, message: '请选择仓库名称', trigger: 'onChange' },
  14. ]"
  15. />
  16. <div>
  17. 出库明细1
  18. <van-field
  19. v-model="result"
  20. is-link
  21. readonly
  22. name="picker"
  23. label="物品名称"
  24. placeholder="请选择"
  25. :rules="[
  26. { required: true, message: '请选择物品名称', trigger: 'onChange' },
  27. ]"
  28. @click="formStatus.isShowProduct = true"
  29. />
  30. <van-field
  31. v-model="username"
  32. name="出库数量"
  33. label="出库数量"
  34. placeholder="请输入"
  35. :rules="[
  36. { required: true, message: '请输入出库数量', trigger: 'onBlur' },
  37. ]"
  38. />
  39. </div>
  40. <div style="margin: 16px">
  41. <van-button round block type="primary" native-type="submit">
  42. 提交
  43. </van-button>
  44. </div>
  45. </van-form>
  46. <!-- 仓库弹窗选择 -->
  47. <van-popup v-model:show="formStatus.isShowWarehouse" position="bottom">
  48. <van-picker
  49. :columns="formStatus.warehouseColumns"
  50. :columns-field-names="{
  51. text: 'name',
  52. value: 'id',
  53. }"
  54. @confirm="onConfirm"
  55. @cancel="formStatus.isShowWarehouse = false"
  56. />
  57. </van-popup>
  58. <!-- 产品弹窗选择 -->
  59. <van-popup v-model:show="formStatus.isShowProduct" position="bottom">
  60. <van-picker
  61. :columns="formStatus.productColumns"
  62. :columns-field-names="{
  63. text: 'name',
  64. value: 'id',
  65. }"
  66. @confirm="onConfirm"
  67. @cancel="formStatus.isShowProduct = false"
  68. />
  69. </van-popup>
  70. </div>
  71. </template>
  72. <script setup>
  73. import { ref, reactive, getCurrentInstance } from "vue";
  74. const { proxy } = getCurrentInstance();
  75. const submitForm = reactive({});
  76. const formStatus = reactive({
  77. isShowWarehouse: false,
  78. isShowProduct: false,
  79. warehouseColumns: [],
  80. productColumns: [],
  81. });
  82. const getSelectData = async () => {
  83. const res = await proxy.post("/warehouse/page", {
  84. pageNum: 1,
  85. pageSize: 9999,
  86. });
  87. formStatus.warehouseColumns = res.data.rows;
  88. const res1 = await proxy.post("/productInfo/page", {
  89. pageNum: 1,
  90. pageSize: 9999,
  91. definition: "1",
  92. });
  93. formStatus.productColumns = res1.data.rows;
  94. };
  95. getSelectData();
  96. </script>
  97. <style lang="scss" scoped>
  98. </style>