manualIn.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <template>
  2. <view class="bg-f9 warehouse-add">
  3. <header-bar :title="submitType === 'add' ? '手动入库' : '手动入库'"></header-bar>
  4. <view class="example">
  5. <!-- 基础用法,不包含校验规则 -->
  6. <uni-forms label-position="top" :modelValue="form" ref="form" :rules="rules">
  7. <uni-forms-item label="物品名称" required name="classifyId">
  8. <uni-data-picker v-model="form.classifyId" :map="{text:'label',value:'id'}" :localdata="treeData"
  9. popup-title="请选择班级" @change="treeChange">
  10. </uni-data-picker>
  11. </uni-forms-item>
  12. <uni-forms-item label="单位" required name="type">
  13. <uni-easyinput v-model="form.unit" :disabled="true" placeholder="选择物料后自动输入" />
  14. </uni-forms-item>
  15. <uni-forms-item label="仓库名称" required name="type">
  16. <uni-data-select v-model="form.type" :localdata="types"></uni-data-select>
  17. </uni-forms-item>
  18. <uni-forms-item label="入库数量" required name="unit">
  19. <uni-easyinput v-model="form.unit" placeholder="请输入" />
  20. </uni-forms-item>
  21. <uni-forms-item label="备注" name="introduce">
  22. <uni-easyinput type="textarea" v-model="form.introduce" placeholder="请输入自我介绍" />
  23. </uni-forms-item>
  24. </uni-forms>
  25. <button class="submit" @click="submitForm">提交</button>
  26. </view>
  27. </view>
  28. </template>
  29. <script>
  30. import headerBar from '../../../components/header-bar/index.vue'
  31. import Vue from 'vue'
  32. export default {
  33. components: {
  34. headerBar
  35. },
  36. data() {
  37. return {
  38. form: {
  39. name: '',
  40. type: null,
  41. classifyId: null,
  42. code: null,
  43. unit: null,
  44. introduce: null,
  45. },
  46. types: [{
  47. text: '半成品',
  48. value: '0'
  49. }, {
  50. text: '成品',
  51. value: '1'
  52. }],
  53. rules: {
  54. // 对name字段进行必填验证
  55. name: {
  56. rules: [{
  57. required: true,
  58. errorMessage: '请输入产品名称',
  59. }, ]
  60. },
  61. // 对email字段进行必填验证
  62. type: {
  63. rules: [{
  64. required: true,
  65. errorMessage: '请选择产品类型',
  66. }, ]
  67. },
  68. unit: {
  69. rules: [{
  70. required: true,
  71. errorMessage: '请输入产品单位',
  72. }, ]
  73. },
  74. classifyId: {
  75. rules: [{
  76. required: true,
  77. errorMessage: '请选择产品分类',
  78. }, ]
  79. },
  80. },
  81. submitType: 'add',
  82. treeData: [],
  83. }
  84. },
  85. onLoad(e) {
  86. if (e.id) {
  87. this.form.id = e.id
  88. this.form.remarks = e.remarks
  89. this.form.type = e.type
  90. this.form.name = e.name
  91. this.submitType = 'edit'
  92. }
  93. this.getTree()
  94. },
  95. methods: {
  96. treeChange() {},
  97. getTree() {
  98. const v = this
  99. v.$post('/api/basics//classify/tree', {
  100. type: 1
  101. }).then(res => {
  102. if (res.code === 200) {
  103. v.treeData = res.data
  104. }
  105. })
  106. },
  107. submitForm() {
  108. const v = this
  109. this.$refs.form.validate().then(res => {
  110. uni.showLoading({
  111. title: '加载中'
  112. });
  113. v.$post('/api/basics/product/' + this.submitType, v.form).then(res => {
  114. if (res.code === 200) {
  115. uni.showToast({
  116. title: this.submitType == 'add' ? '添加成功' : '修改成功',
  117. duration: 1000,
  118. icon: 'success'
  119. })
  120. }
  121. uni.hideLoading()
  122. let pages = getCurrentPages(); // 获取页面栈
  123. let prePage = pages[pages.length - 2]; //获取上一页
  124. prePage.$vm.needRefresh = true; // 需要刷新
  125. setTimeout(() => {
  126. uni.navigateBack(1)
  127. }, 1000)
  128. })
  129. }).catch(err => {
  130. console.log('表单错误信息:', err);
  131. })
  132. },
  133. },
  134. }
  135. </script>
  136. <style lang="less">
  137. .warehouse-add {}
  138. </style>