warehousings.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899
  1. <template>
  2. <view class="container">
  3. <view class="center">
  4. <view class="title_b ">发运信息</view>
  5. <view class="c-row ">
  6. <text class="tit">合同编号</text>
  7. <view class="con-list">
  8. <text>{{WarehouseInOutInfo.contractNo}}</text>
  9. </view>
  10. </view>
  11. <view class="c-row ">
  12. <text class="tit">货名</text>
  13. <view class="con-list">
  14. <text>{{WarehouseInOutInfo.goodsName}}</text>
  15. </view>
  16. </view>
  17. <view class="c-row ">
  18. <text class="tit">发车净重(吨)</text>
  19. <view class="con-list">
  20. <text>{{WarehouseInOutInfo.startWeight}}</text>
  21. </view>
  22. </view>
  23. <view class="c-row ">
  24. <text class="tit">车牌号</text>
  25. <view class="con-list">
  26. <text>{{WarehouseInOutInfo.carNo}}({{this.WarehouseInOutInfo.tranCarNo}})</text>
  27. </view>
  28. </view>
  29. </view>
  30. <view class="center">
  31. <view class="title_c ">入库信息</view>
  32. <view class="c-list">
  33. <view class="c-row b-b">
  34. <text class="tit">毛重(吨)</text>
  35. <view style="color: #ff0000; padding-left: 10rpx;">*</view>
  36. <view class="con-list">
  37. <input placeholder-style="font-size:14px" style="font-size: 14px;" placeholder="请输入毛重" name="input" v-model="WarehouseInOutInfo.grossWeight" @input="grossWeightInput"></input>
  38. </view>
  39. </view>
  40. <view class="c-row b-b">
  41. <view class="tit">皮重(吨)</view>
  42. <view style="color: #ff0000; padding-left: 10rpx;">*</view>
  43. <view class="con-list">
  44. <input placeholder-style="font-size:14px" style="font-size: 14px;" placeholder="请输入皮重" name="input" v-model="WarehouseInOutInfo.tare"
  45. @input="tareInput"></input>
  46. </view>
  47. </view>
  48. <view class="c-row b-b">
  49. <text class="tit">净重(吨)</text>
  50. <view class="con-list">
  51. <text>{{numFilter(WarehouseInOutInfo.netWeight)}}</text>
  52. </view>
  53. </view>
  54. <view class="c-row b-b">
  55. <text class="tit">仓库</text>
  56. <view style="color: #ff0000; padding-left: 10rpx;">*</view>
  57. <view class="con-list">
  58. <picker @change="warehouseChange" :value="warehouseIndex" :range="warehouse" class="con-list">
  59. <view >
  60. {{warehouseIndex>-1?warehouse[warehouseIndex]:'请选择仓库'}}
  61. </view>
  62. </picker>
  63. </view>
  64. </view>
  65. <view class="c-row b-b">
  66. <view class="title">仓位号</view>
  67. <view style="color: #ff0000; padding-left: 10rpx;">*</view>
  68. <view class="con-list">
  69. <picker @change="warehouseChange1" :value="warehouseIndex1" :range="warehouse1" class="con-list">
  70. <view >
  71. {{warehouseIndex1>-1?warehouse1[warehouseIndex1]:'请选择仓位号'}}
  72. </view>
  73. </picker>
  74. </view>
  75. </view>
  76. <view class="c-row b-b">
  77. <text class="tit">入库类型 </text>
  78. <picker @change="ruChange" :value="ruIndex" :range="ruType" class="con-list">
  79. <view >
  80. {{ruIndex > -1?ruType[ruIndex]:'请选择入库类型'}}
  81. </view>
  82. </picker>
  83. </view>
  84. <view class="c-row b-b">
  85. <view class="title">扣款金额</view>
  86. <view class="con-list">
  87. <input style="font-size:14px" placeholder="请输入扣款金额" name="input" v-model="WarehouseInOutInfo.deductionAmount"></input>
  88. </view>
  89. </view>
  90. <view class="c-row b-b">
  91. <view class="title">扣款项</view>
  92. <view class="con-list">
  93. <input style="font-size:14px" maxlength='16' placeholder="请输入扣款项" name="input" v-model="WarehouseInOutInfo.deductionItems"></input>
  94. </view>
  95. </view>
  96. <view class="c-row b-b">
  97. <text class="tit">入库日期</text>
  98. <view class="con-list" @click="show = true">{{WarehouseInOutInfo.inOutDate!=null?WarehouseInOutInfo.inOutDate:time1}}</view>
  99. <u-picker :params='params' :default-time='time' @confirm="DateChange" v-model="show" mode="time"></u-picker>
  100. </view>
  101. <view class="c-row ">
  102. <text class="tit">上传磅单照片</text>
  103. </view>
  104. <upload
  105. v-if="WarehouseInOutInfo.addressUrl == null || WarehouseInOutInfo.addressUrl == ''"
  106. class="upload"
  107. ref="upload"
  108. :action="action"
  109. :max-size="maxSize"
  110. :max-count="1"
  111. :size-type="['compressed']"
  112. @on-success="getImgUrl"
  113. @on-remove="onRemove"
  114. @on-uploaded="isAdd = true"
  115. :before-upload="filterFileType"
  116. ></upload>
  117. <image v-bind:src="WarehouseInOutInfo.addressUrl" mode="" v-if="WarehouseInOutInfo.addressUrl != null || WarehouseInOutInfo.addressUrl != ''" class="picture"></image>
  118. </view>
  119. </view>
  120. <view class="center">
  121. <view class="title_c ">化验信息</view>
  122. <view class="c-list">
  123. <view class="c-row b-b">
  124. <view class="title">质检员</view>
  125. <view class="con-list">
  126. <input maxlength='10' minlength='2' style="font-size:14px" placeholder="请输入质检员姓名" name="input" v-model="list.qualityInspector"></input>
  127. </view>
  128. </view>
  129. <view class="c-row b-b">
  130. <view class="title">蛋白(%)>=</view>
  131. <view class="con-list">
  132. <input style="font-size:14px" placeholder="请输入蛋白占比" name="input" v-model="list.protein"></input>
  133. </view>
  134. </view>
  135. <view class="c-row b-b">
  136. <view class="title">水分(%)<= </view>
  137. <view class="con-list">
  138. <input style="font-size:14px" placeholder="请输入水分占比" name="input" v-model="list.waterContent"></input>
  139. </view>
  140. </view>
  141. <view class="c-row b-b">
  142. <view class="title">容重(克/升)>= </view>
  143. <view class="con-list">
  144. <input style="font-size:14px" placeholder="请输入容重" name="input" v-model="list.bulkDensity"></input>
  145. </view>
  146. </view>
  147. <view class="c-row b-b">
  148. <view class="title">热损伤(%)<= </view>
  149. <view class="con-list">
  150. <input style="font-size:14px" placeholder="请输入热损伤占比" name="input" v-model="list.jiaorenli"></input>
  151. </view>
  152. </view>
  153. <view class="c-row b-b">
  154. <view class="title">杂质(%)<= </view>
  155. <view class="con-list">
  156. <input style="font-size:14px" placeholder="请输入杂质占比" name="input" v-model="list.impurity"></input>
  157. </view>
  158. </view>
  159. <view class="c-row b-b">
  160. <view class="title">霉变粒(%)<= </view>
  161. <view class="con-list">
  162. <input style="font-size:14px" placeholder="请输入霉变粒占比" name="input" v-model="list.mildewGrain"></input>
  163. </view>
  164. </view>
  165. <view class="c-row b-b">
  166. <view class="title">不完整粒(%)<= </view>
  167. <view class="con-list">
  168. <input style="font-size:14px" placeholder="请输入不完整粒占比" name="input"
  169. v-model="list.imperfectGrain"></input>
  170. </view>
  171. </view>
  172. <view class="c-row b-b">
  173. <text class="tit">品级 </text>
  174. <picker @change="pinChange" :value="pinIndex" :range="pinType" class="con-list">
  175. <view >
  176. {{pinIndex > -1 ? pinType[pinIndex]:'请选择品级'}}
  177. </view>
  178. </picker>
  179. </view>
  180. </view>
  181. </view>
  182. <!-- 底部操作菜单 -->
  183. <view class="page-bottom1">
  184. <view>
  185. <button type="primary" @click="commit1">暂 存</button>
  186. <button @click="commit" type="primary" class=" action-btn no-border add-cart-btn" >提 交</button>
  187. </view>
  188. </view>
  189. </view>
  190. </template>
  191. <script>
  192. import upload from '@/components/upload.vue';
  193. export default {
  194. components:{upload},
  195. data() {
  196. return {
  197. packingType: [],
  198. packingIndex: "",
  199. goods: {},
  200. list: {},
  201. WarehouseInOutInfo: {
  202. inOutDate:'',
  203. warehouseInOutDetail: {},
  204. pcFlag: 0,
  205. contractNo: {},
  206. carNo: {},
  207. },
  208. WarehouseInOutInfo1: {
  209. contractNo: {},
  210. carNo: {},
  211. },
  212. pinIndex: -1,
  213. pinTypes: '',
  214. pinType: ['一等品', '二等品', '三等品', '等外'],
  215. ruIndex: -1,
  216. rutypes: '',
  217. warehouse:[],
  218. warehouseIndex:-1,
  219. warehouse1:[],
  220. warehouseIndex1:-1,
  221. ruType: ['采购入库', '移库入库', '暂存入库', '贸易服务入库', '退库'],
  222. action: this.$uploadUrl,
  223. maxSize: 5 * 1024 * 1024,//限制文件大小 5M
  224. btnLoading: false, //防止重复点击
  225. imgUrls: [],
  226. isAdd: true,
  227. warehouselist:[],
  228. warehouselist1:[],
  229. params:{
  230. year: true,
  231. month: true,
  232. day: true,
  233. },
  234. show:false,
  235. }
  236. },
  237. computed: {
  238. time1() {
  239. var date=new Date()
  240. var year=date.getFullYear()
  241. var month=date.getMonth()
  242. var date1=date.getDate()
  243. if(month+1<10){
  244. month="0"+(month+1)
  245. }
  246. if(date1+1<10){
  247. date1="0"+date1
  248. }
  249. return year+'-'+month+"-"+date1
  250. },
  251. startDate() {
  252. //限制开始时间;
  253. //也可以直接限定为当天日期 var date= new Date(); return date
  254. return new Date(new Date(new Date().toLocaleDateString()).getTime()-(1*60*60*1000))
  255. },
  256. endDate() {
  257. return new Date()
  258. }
  259. },
  260. onShow(){
  261. this.$api.doRequest('get', '/warehouseInOutInfo/selectCompId', {contractNo:this.WarehouseInOutInfo.contractNo,warehouseType:1,}).then(res => {
  262. if(res.data.code==200){
  263. this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouse', {compId:res.data.data,warehouseType:1,}).then(res => {
  264. if(res.data.code==200){
  265. var arr=[]
  266. for(var i=0;i<res.data.data.length;i++){
  267. if(res.data.data[i].warehouseName==this.WarehouseInOutInfo.warehouseName){
  268. this.warehouseIndex=i
  269. }
  270. arr.push(res.data.data[i].warehouseName)
  271. }
  272. this.warehouse = arr
  273. this.warehouselist=res.data.data
  274. for(var i=0;i<this.warehouselist.length;i++){
  275. if(this.warehouselist[i].warehouseName==this.WarehouseInOutInfo.warehouseName){
  276. var id=this.warehouselist[i].id
  277. this.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse', {id:id,}).then(res => {
  278. var arr=[]
  279. for(var i=0;i<res.data.data.warehousePositionInfoList.length;i++)
  280. {
  281. if(res.data.data.warehousePositionInfoList[i].binNumber==this.WarehouseInOutInfo.binNumber){
  282. this.warehouseIndex1=i
  283. }
  284. arr.push(res.data.data.warehousePositionInfoList[i].binNumber)
  285. }
  286. this.warehouse1=arr
  287. this.warehouselist11=res.data.data
  288. })
  289. }
  290. }
  291. this.warehouse=arr
  292. }
  293. })
  294. }
  295. })
  296. },
  297. onLoad(option) {
  298. this.WarehouseInOutInfo.contractNo = option.contractNo
  299. this.WarehouseInOutInfo.goodsName = option.goodsName
  300. this.WarehouseInOutInfo.startWeight = option.startWeight
  301. this.WarehouseInOutInfo1.carNo = option.carNo + '(' + option.tranCarNo + ')'
  302. this.WarehouseInOutInfo.tranCarNo = option.tranCarNo
  303. this.WarehouseInOutInfo.warehouseName = option.warehouseName
  304. this.WarehouseInOutInfo.id = option.id
  305. this.WarehouseInOutInfo.carNo = option.carNo
  306. this.WarehouseInOutInfo.addressUrl = option.addressUrl
  307. this.WarehouseInOutInfo.binNumber = option.binNumber
  308. this.WarehouseInOutInfo.inOutDate = option.inOutDate
  309. var date=new Date()
  310. var year=date.getFullYear()
  311. var month=date.getMonth()
  312. var date1=date.getDate()
  313. if(month+1<10){
  314. month="0"+(month+1)
  315. }
  316. this.time = year+'-'+month+"-"+date1
  317. this.getList(this.WarehouseInOutInfo.id)
  318. },
  319. methods: {
  320. getList(id1){
  321. var that=this
  322. this.$api.doRequest('get','/warehouseInOutInfo/getInfo',{id:id1}).then(res => {
  323. that.WarehouseInOutInfo = res.data.data
  324. if( that.WarehouseInOutInfo.warehouseInOutDetail != null){
  325. that.list = that.WarehouseInOutInfo.warehouseInOutDetail
  326. }
  327. if(this.WarehouseInOutInfo.gradeKey != null){
  328. this.pinIndex = this.WarehouseInOutInfo.gradeKey
  329. }
  330. if(this.WarehouseInOutInfo.inOutTypeKey != null){
  331. this.ruIndex = this.WarehouseInOutInfo.inOutTypeKey
  332. }
  333. this.WarehouseInOutInfo.deductionAmount = Math.abs(res.data.data.deductionAmount)
  334. })
  335. .catch(res => {
  336. if(res.errmsg){
  337. uni.showToast({
  338. title: res.errmsg,
  339. icon: 'none',
  340. duration: 2000
  341. })
  342. }
  343. else{
  344. uni.showToast({
  345. title: "系统异常,请联系管理员",
  346. icon: 'none',
  347. duration: 2000
  348. })
  349. }
  350. });
  351. },
  352. warehouseChange(e){
  353. var id=''
  354. this.warehouseIndex=e.detail.value
  355. this.WarehouseInOutInfo.warehouseName=this.warehouse[this.warehouseIndex]
  356. for(var i=0;i<this.warehouselist.length;i++){
  357. if(this.warehouselist[i].warehouseName==this.WarehouseInOutInfo.warehouseName){
  358. id=this.warehouselist[i].id
  359. }
  360. }
  361. this.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse', {id:id,}).then(res => {
  362. var arr=[]
  363. for(var i=0;i<res.data.data.warehousePositionInfoList.length;i++){
  364. arr.push(res.data.data.warehousePositionInfoList[i].binNumber)
  365. }
  366. this.warehouse1=arr
  367. this.warehouselist11=res.data.data
  368. })
  369. },
  370. warehouseChange1(e){
  371. var id=''
  372. this.warehouseIndex1=e.detail.value
  373. this.WarehouseInOutInfo.binNumberKey = this.warehouseIndex1
  374. this.WarehouseInOutInfo.binNumber = this.warehouse1[this.warehouseIndex1]
  375. // for (var i = 0; i < this.WarehouseInOutInfo.binNumber.length; i++) {
  376. // if(this.binNumber[i].binNumber==this.warehouse1[this.warehouseIndex1]){
  377. // this.WarehouseInOutInfo.baseId=this.binNumber[i].baseId
  378. // }
  379. // }
  380. },
  381. DateChange(e) {
  382. this.WarehouseInOutInfo.inOutDate=e.year+'-'+e.month+'-'+e.day
  383. },
  384. filterFileType(index, lists) {
  385. if (lists[index].fileType != 'jpg' && lists[index].fileType != 'png' && lists[index].fileType != 'gif') {
  386. lists.splice(index, 1);
  387. // 当前文件不支持
  388. uni.showModal({
  389. title: '暂不支持当前图片类型',
  390. showCancel: false
  391. });
  392. } else {
  393. this.isAdd = false;
  394. }
  395. },
  396. getImgUrl(res) {
  397. this.imgUrls.push(res);
  398. },
  399. onRemove(index) {
  400. this.imgUrls.splice(index, 1);
  401. },
  402. commit1() {
  403. if(this.WarehouseInOutInfo.grossWeight>100||this.WarehouseInOutInfo.grossWeight<1){
  404. this.$api.msg('毛重输入错误')
  405. return
  406. }
  407. if(this.WarehouseInOutInfo.grossWeight.toString().indexOf('.')!=-1){
  408. if(this.WarehouseInOutInfo.grossWeight.toString().split('.')[1].length>2){
  409. this.$api.msg('毛重输入错误')
  410. return
  411. }
  412. }
  413. if(this.WarehouseInOutInfo.tare>50||this.WarehouseInOutInfo.tare<1){
  414. this.$api.msg('皮重输入错误')
  415. return
  416. }
  417. if(this.WarehouseInOutInfo.tare.toString().indexOf('.')!=-1){
  418. if(this.WarehouseInOutInfo.tare.toString().split('.')[1].length>2){
  419. this.$api.msg('皮重输入错误')
  420. return
  421. }
  422. }
  423. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount>10000||this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount<0){
  424. this.$api.msg('扣款金额输入错误')
  425. return
  426. }
  427. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount.toString().indexOf('.')!=-1){
  428. if(this.WarehouseInOutInfo.deductionAmount.toString().split('.')[1].length>2){
  429. this.$api.msg('扣款金额输入错误')
  430. return
  431. }
  432. }
  433. if(this.list.qualityInspector&&this.list.qualityInspector<2||this.list.qualityInspector&&this.list.qualityInspector>10){
  434. this.$api.msg('质检员姓名输入错误')
  435. return
  436. }
  437. if(this.list.protein&&this.list.protein<1||this.list.protein&&this.list.protein>80){
  438. this.$api.msg('蛋白占比输入错误')
  439. return
  440. }
  441. if(this.list.protein&&this.list.protein.indexOf('.')!=-1){
  442. if(this.list.protein.split('.')[1].length>2){
  443. this.$api.msg('蛋白占比输入错误')
  444. return
  445. }
  446. }
  447. if(this.list.waterContent&&this.list.waterContent<1||this.list.waterContent&&this.list.waterContent>40){
  448. this.$api.msg('水分输入错误')
  449. return
  450. }
  451. if(this.list.waterContent&&this.list.waterContent.indexOf('.')!=-1){
  452. if(this.list.waterContent.split('.')[1].length>2){
  453. this.$api.msg('水分输入错误')
  454. return
  455. }
  456. }
  457. if(this.list.bulkDensity&&this.list.bulkDensity<500||this.list.bulkDensity&&this.list.bulkDensity>1000){
  458. this.$api.msg('容重输入错误')
  459. return
  460. }
  461. if(this.list.bulkDensity&&this.list.bulkDensity.indexOf('.')!=-1){
  462. if(this.list.bulkDensity.split('.')[1].length>2){
  463. this.$api.msg('容重输入错误')
  464. return
  465. }
  466. }
  467. if(this.list.jiaorenli&&this.list.jiaorenli<1||this.list.jiaorenli&&this.list.jiaorenli>40){
  468. this.$api.msg('热损伤输入错误')
  469. return
  470. }
  471. if(this.list.jiaorenli&&this.list.jiaorenli.indexOf('.')!=-1){
  472. if(this.list.jiaorenli.split('.')[1].length>2){
  473. this.$api.msg('热损伤输入错误')
  474. return
  475. }
  476. }
  477. if(this.list.impurity&&this.list.impurity<1||this.list.impurity&&this.list.impurity>40){
  478. this.$api.msg('杂质输入错误')
  479. return
  480. }
  481. if(this.list.impurity&&this.list.impurity.indexOf('.')!=-1){
  482. if(this.list.impurity.split('.')[1].length>2){
  483. this.$api.msg('杂质输入错误')
  484. return
  485. }
  486. }
  487. if(this.list.mildewGrain&&this.list.mildewGrain<1||this.list.mildewGrain&&this.list.mildewGrain>40){
  488. this.$api.msg('霉变粒输入错误')
  489. return
  490. }
  491. if(this.list.mildewGrain&&this.list.mildewGrain.indexOf('.')!=-1){
  492. if(this.list.mildewGrain.split('.')[1].length>2){
  493. this.$api.msg('霉变粒输入错误')
  494. return
  495. }
  496. }
  497. if(this.list.imperfectGrain&&this.list.imperfectGrain<1||this.list.imperfectGrain&&this.list.imperfectGrain>40){
  498. this.$api.msg('不完整粒输入错误')
  499. return
  500. }
  501. if(this.list.imperfectGrain&&this.list.imperfectGrain.indexOf('.')!=-1){
  502. if(this.list.imperfectGrain.split('.')[1].length>2){
  503. this.$api.msg('不完整粒输入错误')
  504. return
  505. }
  506. }
  507. uni.showLoading({
  508. title:"正在暂存"
  509. })
  510. this.WarehouseInOutInfo.deductionAmount=-this.WarehouseInOutInfo.deductionAmount
  511. this.WarehouseInOutInfo.warehouseInOutDetail = this.list
  512. this.WarehouseInOutInfo.statusFlag = 1
  513. if(this.imgUrls.length > 0){
  514. this.WarehouseInOutInfo.addressUrl = this.imgUrls[0]
  515. }
  516. this.$api.doRequest('post', '/warehouseInOutInfo/InOutWarehouse', this.WarehouseInOutInfo).then(res => {
  517. if(res.data.code==200){
  518. uni.showToast({
  519. title: '暂存成功',
  520. icon: 'none',
  521. duration: 2000
  522. })
  523. setTimeout(() => {
  524. uni.navigateBack()
  525. }, 1000)
  526. }else{
  527. uni.showToast({
  528. title: res.data.message,
  529. icon: 'none',
  530. duration: 2000
  531. })
  532. }
  533. uni.hideLoading()
  534. }).catch(res => {
  535. uni.showToast({
  536. title: res.data.message,
  537. icon: 'none',
  538. duration: 2000
  539. })
  540. uni.hideLoading()
  541. })
  542. },
  543. commit() {
  544. if(!this.WarehouseInOutInfo.grossWeight){
  545. this.$api.msg('毛重不能为空')
  546. return
  547. }
  548. if(!this.WarehouseInOutInfo.tare){
  549. this.$api.msg('皮重不能为空')
  550. return
  551. }
  552. if(!this.WarehouseInOutInfo.warehouseName){
  553. this.$api.msg('仓库不能为空')
  554. return
  555. }
  556. if(!this.WarehouseInOutInfo.binNumber){
  557. this.$api.msg('仓库不能为空')
  558. return
  559. }
  560. if(this.WarehouseInOutInfo.grossWeight>100||this.WarehouseInOutInfo.grossWeight<1){
  561. this.$api.msg('毛重输入错误')
  562. return
  563. }
  564. if(this.WarehouseInOutInfo.grossWeight.toString().indexOf('.')!=-1){
  565. if(this.WarehouseInOutInfo.grossWeight.toString().split('.')[1].length>2){
  566. this.$api.msg('毛重输入错误')
  567. return
  568. }
  569. }
  570. if(this.WarehouseInOutInfo.tare>50||this.WarehouseInOutInfo.tare<1){
  571. this.$api.msg('皮重输入错误')
  572. return
  573. }
  574. if(this.WarehouseInOutInfo.tare.toString().indexOf('.')!=-1){
  575. if(this.WarehouseInOutInfo.toString().tare.split('.')[1].length>2){
  576. this.$api.msg('皮重输入错误')
  577. return
  578. }
  579. }
  580. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount>10000||this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount<0){
  581. this.$api.msg('扣款金额输入错误')
  582. return
  583. }
  584. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount.toString().indexOf('.')!=-1){
  585. if(this.WarehouseInOutInfo.deductionAmount.toString().split('.')[1].length>2){
  586. this.$api.msg('扣款金额输入错误')
  587. return
  588. }
  589. }
  590. if(this.list.qualityInspector&&this.list.qualityInspector<2||this.list.qualityInspector&&this.list.qualityInspector>10){
  591. this.$api.msg('质检员姓名输入错误')
  592. return
  593. }
  594. if(this.list.protein&&this.list.protein<1||this.list.protein&&this.list.protein>80){
  595. this.$api.msg('蛋白占比输入错误')
  596. return
  597. }
  598. if(this.list.protein&&this.list.protein.indexOf('.')!=-1){
  599. if(this.list.protein.split('.')[1].length>2){
  600. this.$api.msg('蛋白占比输入错误')
  601. return
  602. }
  603. }
  604. if(this.list.waterContent&&this.list.waterContent<1||this.list.waterContent&&this.list.waterContent>40){
  605. this.$api.msg('水分输入错误')
  606. return
  607. }
  608. if(this.list.waterContent&&this.list.waterContent.indexOf('.')!=-1){
  609. if(this.list.waterContent.split('.')[1].length>2){
  610. this.$api.msg('水分输入错误')
  611. return
  612. }
  613. }
  614. if(this.list.bulkDensity&&this.list.bulkDensity<500||this.list.bulkDensity&&this.list.bulkDensity>1000){
  615. this.$api.msg('容重输入错误')
  616. return
  617. }
  618. if(this.list.bulkDensity&&this.list.bulkDensity.indexOf('.')!=-1){
  619. if(this.list.bulkDensity.split('.')[1].length>2){
  620. this.$api.msg('容重输入错误')
  621. return
  622. }
  623. }
  624. if(this.list.jiaorenli&&this.list.jiaorenli<1||this.list.jiaorenli&&this.list.jiaorenli>40){
  625. this.$api.msg('热损伤输入错误')
  626. return
  627. }
  628. if(this.list.jiaorenli&&this.list.jiaorenli.indexOf('.')!=-1){
  629. if(this.list.jiaorenli.split('.')[1].length>2){
  630. this.$api.msg('热损伤输入错误')
  631. return
  632. }
  633. }
  634. if(this.list.impurity&&this.list.impurity<1||this.list.impurity&&this.list.impurity>40){
  635. this.$api.msg('杂质输入错误')
  636. return
  637. }
  638. if(this.list.impurity&&this.list.impurity.indexOf('.')!=-1){
  639. if(this.list.impurity.split('.')[1].length>2){
  640. this.$api.msg('杂质输入错误')
  641. return
  642. }
  643. }
  644. if(this.list.mildewGrain&&this.list.mildewGrain<1||this.list.mildewGrain&&this.list.mildewGrain>40){
  645. this.$api.msg('霉变粒输入错误')
  646. return
  647. }
  648. if(this.list.mildewGrain&&this.list.mildewGrain.indexOf('.')!=-1){
  649. if(this.list.mildewGrain.split('.')[1].length>2){
  650. this.$api.msg('霉变粒输入错误')
  651. return
  652. }
  653. }
  654. if(this.list.imperfectGrain&&this.list.imperfectGrain<1||this.list.imperfectGrain&&this.list.imperfectGrain>40){
  655. this.$api.msg('不完整粒输入错误')
  656. return
  657. }
  658. if(this.list.imperfectGrain&&this.list.imperfectGrain.indexOf('.')!=-1){
  659. if(this.list.imperfectGrain.split('.')[1].length>2){
  660. this.$api.msg('不完整粒输入错误')
  661. return
  662. }
  663. }
  664. this.WarehouseInOutInfo.deductionAmount=-this.WarehouseInOutInfo.deductionAmount
  665. if(this.imgUrls.length > 0){
  666. this.WarehouseInOutInfo.addressUrl = this.imgUrls[0]
  667. }
  668. this.WarehouseInOutInfo.warehouseInOutDetail = this.list
  669. this.WarehouseInOutInfo.statusFlag = 3
  670. this.WarehouseInOutInfo.pcFlag = 0
  671. debugger
  672. for(let i = 0 ;i < this.warehouselist.length ; i++){
  673. if(this.warehouselist[i].warehouseName == this.WarehouseInOutInfo.warehouseName){
  674. this.WarehouseInOutInfo.baseId = this.warehouselist[i].id
  675. }
  676. }
  677. this.WarehouseInOutInfo.taskType = "入库任务"
  678. uni.showLoading({
  679. title:"正在提交"
  680. })
  681. this.$api.doRequest('post', '/warehouseInOutInfo/InOutWarehouse', this.WarehouseInOutInfo).then(res => {
  682. if(res.data.code==200){
  683. uni.showToast({
  684. title: '提交成功',
  685. icon: 'none'
  686. })
  687. setTimeout(() => {
  688. uni.navigateBack()
  689. }, 1000)
  690. }else{
  691. uni.showToast({
  692. title: res.data.message,
  693. icon: 'none',
  694. duration: 2000
  695. })
  696. }
  697. uni.hideLoading()
  698. }).catch(res => {
  699. uni.showToast({
  700. title: res.data.message,
  701. icon: 'none',
  702. duration: 2000
  703. })
  704. uni.hideLoading()
  705. })
  706. },
  707. numFilter(value) {
  708. if (!value) {
  709. return 0
  710. }
  711. // 截取当前数据到小数点后两位
  712. let realVal = parseFloat(value).toFixed(2)
  713. return realVal
  714. },
  715. grossWeightInput(e) {
  716. this.WarehouseInOutInfo.grossWeight = e.detail.value
  717. if (this.WarehouseInOutInfo.grossWeight && this.WarehouseInOutInfo.tare) {
  718. this.WarehouseInOutInfo.netWeight = this.WarehouseInOutInfo.grossWeight - this.WarehouseInOutInfo.tare
  719. }
  720. },
  721. tareInput(e) {
  722. this.WarehouseInOutInfo.tare = e.detail.value
  723. if (this.WarehouseInOutInfo.grossWeight && this.WarehouseInOutInfo.tare) {
  724. this.WarehouseInOutInfo.netWeight = this.WarehouseInOutInfo.grossWeight - this.WarehouseInOutInfo.tare
  725. }
  726. },
  727. ruChange(e) {
  728. this.ruIndex = e.detail.value
  729. this.WarehouseInOutInfo.inOutTypeKey = e.detail.value
  730. this.WarehouseInOutInfo.inOutType = this.ruType[this.ruIndex];
  731. },
  732. pinChange(e) {
  733. this.pinIndex = e.detail.value
  734. this.WarehouseInOutInfo.gradeKey = e.detail.value
  735. this.WarehouseInOutInfo.grade = this.pinType[this.pinIndex];
  736. },
  737. }
  738. }
  739. </script>
  740. <style scoped lang='scss'>
  741. .upload {
  742. /deep/.u-list-item,
  743. .u-add-wrap {
  744. background-color: #eceae8;
  745. }
  746. }
  747. .center{
  748. margin: 15rpx 15rpx 10rpx 15rpx;
  749. padding:0rpx 10rpx 30rpx 10rpx;
  750. background-color: #FFFFFF;
  751. border-radius: 15px;
  752. }
  753. .title_b{
  754. margin: 20rpx 20rpx 0rpx 20rpx;
  755. padding:20rpx 10rpx 20rpx 10rpx;
  756. font-size: 18px;
  757. font-weight: 550;
  758. border-bottom: 1px solid #d6d6d6;
  759. }
  760. .title_c{
  761. margin: 20rpx 20rpx 0rpx 20rpx;
  762. padding:20rpx 10rpx 20rpx 10rpx;
  763. font-size: 18px;
  764. font-weight: 550;
  765. }
  766. .c-row {
  767. display: -webkit-box;
  768. display: -webkit-flex;
  769. display: flex;
  770. -webkit-box-align: center;
  771. -webkit-align-items: center;
  772. align-items: center;
  773. padding: 20rpx 30rpx;
  774. position: relative;
  775. }
  776. .con-list {
  777. -webkit-box-flex: 1;
  778. -webkit-flex: 1;
  779. flex: 1;
  780. display: -webkit-box;
  781. display: -webkit-flex;
  782. display: flex;
  783. -webkit-box-orient: vertical;
  784. -webkit-box-direction: normal;
  785. -webkit-flex-direction: column;
  786. flex-direction: column;
  787. color: #303133;
  788. line-height: 40rpx;
  789. text-align: right;
  790. padding-right: 20rpx;
  791. }
  792. .d-header {
  793. display: flex;
  794. justify-content: center;
  795. align-items: center;
  796. height: 80upx;
  797. font-size: $font-base + 2upx;
  798. color: $font-color-dark;
  799. position: relative;
  800. text {
  801. padding: 0 20upx;
  802. background: #fff;
  803. position: relative;
  804. z-index: 1;
  805. }
  806. &:after {
  807. position: absolute;
  808. left: 50%;
  809. top: 50%;
  810. transform: translateX(-50%);
  811. width: 300upx;
  812. height: 0;
  813. content: '';
  814. border-bottom: 1px solid #ccc;
  815. }
  816. }
  817. /* 底部操作菜单 */
  818. .page-bottom1 {
  819. position: fixed;
  820. left: 0;
  821. bottom: 0;
  822. z-index: 95;
  823. width:100%;
  824. height: 70px;
  825. background: rgba(255, 255, 255, .9);
  826. padding:15px;
  827. border-radius: 0;
  828. text-align:right;
  829. button{
  830. display:inline-block;
  831. border-radius:18px;
  832. margin:0 10px;
  833. font-size:14px;background:#fff;
  834. color:#333;
  835. border:1px solid #333;
  836. padding-left: 50rpx;
  837. padding-right: 50rpx;
  838. }
  839. .action-btn{
  840. background:#22C572;
  841. color:#fff;
  842. border:1px solid #22C572;
  843. }
  844. .p-b-btn {
  845. display: flex;
  846. flex-direction: column;
  847. align-items: center;
  848. justify-content: center;
  849. font-size: $font-sm;
  850. color: $font-color-base;
  851. width: 96upx;
  852. height: 80upx;
  853. .yticon {
  854. font-size: 40upx;
  855. line-height: 48upx;
  856. color: $font-color-light;
  857. }
  858. &.active,
  859. &.active .yticon {
  860. color: $uni-color-primary;
  861. }
  862. .icon-fenxiang2 {
  863. font-size: 42upx;
  864. transform: translateY(-2upx);
  865. }
  866. .icon-shoucang {
  867. font-size: 46upx;
  868. }
  869. }
  870. }
  871. .container{
  872. padding-bottom: 160upx;
  873. }
  874. .picture{
  875. width: 75px;
  876. height: 75px;
  877. border-radius: 10px;
  878. margin-left: 16px;
  879. }
  880. </style>