add.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <view>
  3. <view class="cmain">
  4. <view class="form_group">
  5. <view class="lable re">海关申报单号</view>
  6. <input placeholder="请输入" v-model="item.declareOdd" />
  7. </view>
  8. <view class="form_group">
  9. <view class="lable re">商品名称</view>
  10. <input placeholder="请输入" v-model="item.goodsName" />
  11. </view>
  12. <view class="form_group">
  13. <view class="lable re">商品产地</view>
  14. <input placeholder="请输入" v-model="item.placeOrigin" />
  15. </view>
  16. <view class="form_group">
  17. <view class="lable re">商品类型</view>
  18. <picker :range="dict.goodsType" @change="picker($event, 'goodsType')">
  19. <input placeholder="请选择" v-model="item.goodsType" :disabled="true" />
  20. <view class="icon more">&#xe8f2;</view>
  21. </picker>
  22. </view>
  23. <view class="form_group">
  24. <view class="lable re">商品单位</view>
  25. <picker :range="dict.goodsUnits" @change="picker($event, 'goodsUnits')">
  26. <input placeholder="请选择" v-model="item.goodsUnits" :disabled="true" />
  27. <view class="icon more">&#xe8f2;</view>
  28. </picker>
  29. </view>
  30. <view class="form_group">
  31. <view class="lable re">商品价格</view>
  32. <input type="number" placeholder="请输入" v-model="item.price" />
  33. <view class="ops">元</view>
  34. </view>
  35. <view class="form_group">
  36. <view class="lable re">商品数量</view>
  37. <input type="number" placeholder="请输入" v-model="item.stock" />
  38. <view class="ops">{{ item.goodsUnits }}</view>
  39. </view>
  40. <view class="form_group">
  41. <view class="lable re">净重</view>
  42. <input placeholder="请输入" v-model="item.netWeight" />
  43. <view class="ops">吨</view>
  44. </view>
  45. <view class="form_group">
  46. <view class="lable re">毛重</view>
  47. <input placeholder="请输入" v-model="item.grossWeight" />
  48. <view class="ops">吨</view>
  49. </view>
  50. <view class="form_group">
  51. <view class="lable re">商品状态</view>
  52. <picker :range="dict.goodsStatus" @change="picker($event, 'goodsStatus')">
  53. <input placeholder="请选择" :value="item.goodsStatus == 1 ? '在售' : '下架'" :disabled="true" />
  54. <view class="icon more">&#xe8f2;</view>
  55. </picker>
  56. </view>
  57. <view class="form_group">
  58. <view class="lable re">商品描述</view>
  59. <textarea v-model="item.description" placeholder="请输入"></textarea>
  60. </view>
  61. </view>
  62. </view>
  63. </template>
  64. <script>
  65. export default {
  66. data() {
  67. return {
  68. item: {},
  69. dict: {
  70. goodsType: ['水果', '药品', '茶叶'],
  71. goodsUnits: ['吨', '个', '柜'],
  72. goodsStatus: ['在售', '下架']
  73. }
  74. };
  75. },
  76. onLoad(e) {
  77. if (e.id) {
  78. this.http.request({
  79. url: '/level-one-server/app/TbGoodsTransit/getById?id=' + e.id,
  80. success: res => {
  81. this.item = res.data.data;
  82. uni.setNavigationBarTitle({ title: '编辑商品' });
  83. }
  84. });
  85. }
  86. },
  87. methods: {
  88. picker(e, tag) {
  89. this.item[tag] = this.dict[tag][e.detail.value];
  90. this.$forceUpdate();
  91. }
  92. },
  93. onNavigationBarButtonTap() {
  94. let rule = [
  95. { name: 'goodsName', checkType: 'notnull', errorMsg: '请输入商品名称' },
  96. { name: 'placeOrigin', checkType: 'notnull', errorMsg: '请输入商品产地' },
  97. { name: 'goodsStatus', checkType: 'notnull', errorMsg: '请选择状态' }
  98. ];
  99. if (!this.verify.check(this.item, rule)) {
  100. uni.showModal({ content: this.verify.error, showCancel: false });
  101. return false;
  102. }
  103. this.http.request({
  104. url: '/level-one-server/app/TbGoodsTransit/transactionGoods',
  105. method: 'POST',
  106. data: this.item,
  107. success: res => {
  108. uni.showToast({ title: '操作成功' });
  109. setTimeout(() => {
  110. uni.$emit('goodsHandle');
  111. uni.navigateBack();
  112. }, 1000);
  113. }
  114. });
  115. }
  116. };
  117. </script>
  118. <style lang="scss"></style>