add.vue 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <template>
  2. <view>
  3. <view class="cmain">
  4. <view class="form_group">
  5. <view class="lable re">贸易区域</view>
  6. <picker :range="tradeAreaList" @change="pickerTradeArea($event)" range-key="name">
  7. <input placeholder="请选择" v-model="item.tradeAreaName" :disabled="true" />
  8. <view class="icon more">&#xe8f2;</view>
  9. </picker>
  10. </view>
  11. <view class="form_group">
  12. <view class="lable re">商品名称</view>
  13. <picker v-if="flag === '新增商品'" :range="goodsList" @change="pickerGoods($event)" range-key="name">
  14. <input placeholder="请选择" v-model="item.goodsName" :disabled="true" />
  15. <view class="icon more">&#xe8f2;</view>
  16. </picker>
  17. <input v-else placeholder="请选择" v-model="item.goodsName" :disabled="true" disabled="true"/>
  18. </view>
  19. <view class="form_group">
  20. <view class="lable re">商品价格</view>
  21. <input type="number" placeholder="请输入" v-model="item.price" />
  22. <view class="ops">{{ item.unit }}</view>
  23. </view>
  24. <view class="form_group">
  25. <view class="lable re">商品数量</view>
  26. <input type="number" placeholder="请输入" v-model="item.stock" />
  27. <view class="ops">{{ item.goodsUnits }}</view>
  28. </view>
  29. <view class="form_group">
  30. <view class="lable re">净重</view>
  31. <input placeholder="请输入" v-model="item.netWeight" />
  32. <view class="ops">{{ item.unit }}</view>
  33. </view>
  34. <view class="form_group">
  35. <view class="lable re">毛重</view>
  36. <input placeholder="请输入" v-model="item.grossWeight" />
  37. <view class="ops">{{ item.unit }}</view>
  38. </view>
  39. <view class="form_group">
  40. <view class="lable re">商品状态</view>
  41. <picker :range="dict.goodsStatus" @change="picker($event, 'goodsStatus')">
  42. <input placeholder="请选择" :value="item.goodsStatus" :disabled="true" />
  43. <view class="icon more">&#xe8f2;</view>
  44. </picker>
  45. </view>
  46. </view>
  47. </view>
  48. </template>
  49. <script>
  50. export default {
  51. data() {
  52. return {
  53. flag: '新增商品',
  54. item: {},
  55. dict: {
  56. goodsType: ['水果', '药品', '茶叶'],
  57. goodsUnits: ['吨', '个', '柜'],
  58. goodsStatus: ['在售', '下架']
  59. },
  60. goodsList: [],
  61. tradeAreaList: []
  62. };
  63. },
  64. onLoad(e) {
  65. if (e.id) {
  66. this.flag = '编辑商品'
  67. this.http.request({
  68. url: '/level-one-server/app/TbGoodsTransit/getById?id=' + e.id,
  69. success: res => {
  70. this.item = res.data.data;
  71. this.item.goodsStatus = this.item.goodsStatus == 1 ? '在售' : '下架';
  72. uni.setNavigationBarTitle({ title: '编辑商品' });
  73. }
  74. });
  75. };
  76. this.getGoodsList();
  77. this.getTradeAreaList();
  78. },
  79. methods: {
  80. picker(e, tag) {
  81. this.item[tag] = this.dict[tag][e.detail.value];
  82. this.$forceUpdate();
  83. },
  84. pickerGoods(e) {
  85. this.item['goodsName'] = this.goodsList[e.detail.value].name;
  86. this.item['unit'] = this.goodsList[e.detail.value].unit;
  87. this.$forceUpdate();
  88. if(this.flag == '新增商品') {
  89. this.item.id = this.goodsList[e.detail.value].id;
  90. }
  91. },
  92. pickerTradeArea(e) {
  93. this.item['tradeAreaName'] = this.tradeAreaList[e.detail.value].name;
  94. this.$forceUpdate();
  95. this.item.tradeAreaId = this.tradeAreaList[e.detail.value].id;
  96. },
  97. // 获取监管商品列表
  98. getGoodsList() {
  99. this.http.request({
  100. url: '/level-one-server/app/TbGoods/getList',
  101. method: 'POST',
  102. success: res => {
  103. this.goodsList = res.data.data;
  104. console.log("监管商品列表",this.goodsList);
  105. }
  106. });
  107. },
  108. // 获取贸易区域列表
  109. getTradeAreaList() {
  110. this.http.request({
  111. url: '/level-one-server/app/TbTradeArea/getList',
  112. method: 'POST',
  113. success: res => {
  114. this.tradeAreaList = res.data.data;
  115. console.log("贸易区域列表",this.tradeAreaList);
  116. }
  117. });
  118. }
  119. },
  120. onNavigationBarButtonTap() {
  121. let rule = [
  122. { name: 'goodsName', checkType: 'notnull', errorMsg: '请输入商品名称' },
  123. { name: 'goodsStatus', checkType: 'notnull', errorMsg: '请选择状态' }
  124. ];
  125. if (!this.verify.check(this.item, rule)) {
  126. uni.showModal({ content: this.verify.error, showCancel: false });
  127. return false;
  128. }
  129. this.item.goodsStatus = this.item.goodsStatus == '在售' ? 1 : 0;
  130. let url = '';
  131. if(this.flag == '新增商品') {
  132. url = '/level-one-server/app/TbGoodsTransit/transactionGoods';
  133. } else {
  134. url = '/level-one-server/app/TbGoodsTransit/update';
  135. }
  136. this.http.request({
  137. url: url,
  138. method: 'POST',
  139. data: this.item,
  140. success: res => {
  141. uni.showToast({ title: '操作成功' });
  142. setTimeout(() => {
  143. uni.$emit('goodsHandle');
  144. uni.navigateBack();
  145. }, 1000);
  146. }
  147. });
  148. }
  149. };
  150. </script>
  151. <style lang="scss"></style>