add.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <template>
  2. <view class="p-content">
  3. <view class="u-forms">
  4. <u--form
  5. labelPosition="left"
  6. :model="form"
  7. ref="uForm"
  8. errorType="toast"
  9. labelWidth="auto"
  10. >
  11. <u-form-item
  12. label="盘点类型"
  13. prop="checkType"
  14. borderBottom
  15. @click="showCheckType = true;"
  16. ref="item1"
  17. required
  18. >
  19. <!-- <u-radio-group
  20. v-model="form.checkType"
  21. @change="checkTypeChange"
  22. placement="row">
  23. <u-radio
  24. :customStyle="{marginLeft: '20px'}"
  25. v-for="item in checkTypeList"
  26. :key="item.code"
  27. :label="item.name"
  28. :name="item.code">
  29. </u-radio>
  30. </u-radio-group> -->
  31. <view style="text-align: right;width: 100%;">
  32. 自选盘点
  33. </view>
  34. </u-form-item>
  35. <!-- <u-form-item
  36. label="是否区分仓库"
  37. prop="warehouseFlag"
  38. borderBottom
  39. @change="warehouseFlagChange"
  40. @click="showWarehouseFlag = true;"
  41. ref="item2"
  42. required
  43. v-if="form.checkType=='SELECT'"
  44. >
  45. <u-radio-group
  46. v-model="form.warehouseFlag"
  47. placement="row">
  48. <u-radio
  49. :customStyle="{marginLeft: '20px'}"
  50. v-for="item in warehouseFlagList"
  51. :key="item.code"
  52. :label="item.name"
  53. :name="item.code">
  54. </u-radio>
  55. </u-radio-group>
  56. </u-form-item> -->
  57. <u-form-item
  58. label="盘点仓库"
  59. prop="warehouseSnList"
  60. borderBottom
  61. @click="showWarehouse = true;"
  62. ref="item2"
  63. required
  64. v-if="form.checkType=='SELECT'"
  65. >
  66. <u--input
  67. v-model="warehouseName"
  68. disabled
  69. inputAlign="right"
  70. disabledColor="#ffffff"
  71. placeholder="请选择盘点仓库"
  72. border="none"
  73. ></u--input>
  74. <u-icon
  75. slot="right"
  76. name="arrow-right"
  77. ></u-icon>
  78. </u-form-item>
  79. </u--form>
  80. </view>
  81. <view class="f-button">
  82. <u-button @click="cansel" hairline>取消</u-button>
  83. <u-button :loading="spinning" type="primary" @click="submit" hairline>提交</u-button>
  84. </view>
  85. <!-- 请选择盘点仓库 -->
  86. <u-picker
  87. title="请选择盘点仓库"
  88. :show="showWarehouse"
  89. @cancel="showWarehouse = false"
  90. @close="showWarehouse = false"
  91. @confirm="warehouseSelect"
  92. :columns="warehouseList"
  93. :closeOnClickOverlay="true"
  94. keyName="name">
  95. </u-picker>
  96. </view>
  97. </template>
  98. <script>
  99. import { checkWarehouseSave } from '@/config/api.js'
  100. export default {
  101. data() {
  102. return {
  103. spinning: false,
  104. showCheckType: false,
  105. checkTypeList: [],
  106. showWarehouseFlag: false,
  107. warehouseFlagList: [],
  108. showWarehouse: false,
  109. warehouseList:[],
  110. warehouseName: '',
  111. form:{
  112. checkType: 'SELECT',
  113. warehouseFlag: '0',
  114. warehouseSnList: undefined
  115. }
  116. };
  117. },
  118. onLoad() {
  119. this.checkTypeList = this.$store.state.vuex_checkTypeList
  120. this.warehouseFlagList = this.$store.state.vuex_warehouseFlagList
  121. const warehouseList = this.$store.state.vuex_checkWarehouseList
  122. this.warehouseList = [warehouseList]
  123. console.log(this.warehouseList)
  124. // 只有一个仓库是默认选中
  125. if(warehouseList.length==1){
  126. this.form.warehouseSnList = warehouseList[0].warehouseSn
  127. this.warehouseName = warehouseList[0].name
  128. this.$refs.uForm.validateField('warehouseSnList')
  129. }
  130. },
  131. onBackPress(e) {
  132. if(this.showWarehouse){
  133. this.showWarehouse = false
  134. return true
  135. }
  136. },
  137. methods: {
  138. checkTypeChange (e) {
  139. this.form.warehouseFlag = '0'
  140. this.form.warehouseSnList = undefined
  141. },
  142. warehouseFlagChange (e) {
  143. this.form.warehouseSnList = undefined
  144. },
  145. // 请选择盘点仓库
  146. warehouseSelect(e) {
  147. this.form.warehouseSnList = e.value[0].warehouseSn
  148. this.warehouseName = e.value[0].name
  149. this.$refs.uForm.validateField('warehouseSnList')
  150. this.showWarehouse = false
  151. },
  152. // 获取仓库列表
  153. getWarehouseList () {
  154. checkWarehouseWarehouse({}).then(res => {
  155. if (res.status == 200) {
  156. this.warehouseList = res.data || []
  157. } else {
  158. this.warehouseList = []
  159. }
  160. })
  161. },
  162. submit() {
  163. const form = JSON.parse(JSON.stringify(this.form))
  164. form.sourceType = 'HAND'
  165. if(!form.warehouseSnList){
  166. uni.$u.toast("请选择盘点仓库")
  167. return false
  168. }
  169. // 全部
  170. if (form.warehouseSnList == '-1') {
  171. form.warehouseFlag = '0'
  172. form.warehouseSnList = undefined
  173. }else{
  174. form.warehouseFlag = '1'
  175. }
  176. this.spinning = true
  177. checkWarehouseSave(form,{custom:{catch:true}}).then(res => {
  178. console.log(res)
  179. if (res.status == 200) {
  180. uni.$u.toast(res.message)
  181. uni.redirectTo({
  182. url:"/pages/stockPan/index?id="+res.data.id+"&checkWarehouseSn="+res.data.checkWarehouseSn
  183. })
  184. }
  185. this.spinning = false
  186. }).catch(res => {
  187. this.spinning = false
  188. })
  189. },
  190. cansel(){
  191. uni.navigateBack()
  192. }
  193. }
  194. };
  195. </script>
  196. <style lang="scss">
  197. .p-content{
  198. .u-forms{
  199. flex-grow: 1;
  200. height: 100%;
  201. overflow: auto;
  202. padding: 0 50upx;
  203. }
  204. .f-button{
  205. display: flex;
  206. justify-content: space-around;
  207. padding: 60upx 40upx;
  208. button{
  209. width: 40%;
  210. }
  211. }
  212. }
  213. </style>