warehousings.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849
  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" 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" 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!=''?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: '不限(默认)',
  213. pinTypes: '',
  214. pinType: ['一等品', '二等品', '三等品', '等外'],
  215. ruIndex: '采购入库',
  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', '/warehouseBaseInfo/selectWarehouse', {compId:'2710b21efc1e4393930c5dc800010dc4',warehouseType:1,}).then(res => {
  262. if(res.data.code==200){
  263. var arr=[]
  264. for(var i=0;i<res.data.data.length;i++){
  265. if(res.data.data[i].warehouseName==this.WarehouseInOutInfo.warehouseName){
  266. this.warehouseIndex=i
  267. }
  268. arr.push(res.data.data[i].warehouseName)
  269. }
  270. this.warehouselist=res.data.data
  271. this.warehouse=arr
  272. }
  273. })
  274. },
  275. onLoad(option) {
  276. this.WarehouseInOutInfo.contractNo = option.contractNo
  277. this.WarehouseInOutInfo.goodsName = option.goodsName
  278. this.WarehouseInOutInfo.startWeight = option.startWeight
  279. this.WarehouseInOutInfo1.carNo = option.carNo + '(' + option.tranCarNo + ')'
  280. this.WarehouseInOutInfo.tranCarNo = option.tranCarNo
  281. this.WarehouseInOutInfo.warehouseName = option.warehouseName
  282. this.WarehouseInOutInfo.id = option.id
  283. this.WarehouseInOutInfo.carNo = option.carNo
  284. var date=new Date()
  285. var year=date.getFullYear()
  286. var month=date.getMonth()
  287. var date1=date.getDate()
  288. if(month+1<10){
  289. month="0"+(month+1)
  290. }
  291. this.time = year+'-'+month+"-"+date1
  292. },
  293. methods: {
  294. getList(id1){
  295. var that=this
  296. this.$api.doRequest('get','/warehouseInOutInfo/getInfo',{id:id1}).then(res => {
  297. that.WarehouseInOutInfo = res.data.data
  298. console.log(that.WarehouseInOutInfo.warehouseInOutDetail != null)
  299. if( that.WarehouseInOutInfo.warehouseInOutDetail != null){
  300. that.list = that.WarehouseInOutInfo.warehouseInOutDetail
  301. }
  302. this.pinIndex = this.WarehouseInOutInfo.gradeKey
  303. this.ruIndex = this.WarehouseInOutInfo.inOutTypeKey
  304. this.WarehouseInOutInfo.deductionAmount = Math.abs(res.data.data.deductionAmount)
  305. })
  306. .catch(res => {
  307. uni.showToast({
  308. title: res.errmsg,
  309. icon:'none',
  310. duration: 2000
  311. })
  312. });
  313. },
  314. warehouseChange(e){
  315. var id=''
  316. this.warehouseIndex=e.detail.value
  317. this.WarehouseInOutInfo.warehouseName=this.warehouse[this.warehouseIndex]
  318. for(var i=0;i<this.warehouselist.length;i++){
  319. if(this.warehouselist[i].warehouseName==this.WarehouseInOutInfo.warehouseName){
  320. id=this.warehouselist[i].id
  321. }
  322. }
  323. this.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse', {id:id,}).then(res => {
  324. var arr=[]
  325. for(var i=0;i<res.data.data.warehousePositionInfoList.length;i++){
  326. console.log(res.data.data.warehousePositionInfoList[i])
  327. arr.push(res.data.data.warehousePositionInfoList[i].binNumber)
  328. }
  329. this.warehouse1=arr
  330. this.warehouselist11=res.data.data
  331. })
  332. },
  333. warehouseChange1(e){
  334. var id=''
  335. this.warehouseIndex1=e.detail.value
  336. this.WarehouseInOutInfo.binNumber=this.warehouse1[this.warehouseIndex1]
  337. },
  338. DateChange(e) {
  339. this.WarehouseInOutInfo.inOutDate=e.year+'-'+e.month+'-'+e.day
  340. },
  341. filterFileType(index, lists) {
  342. if (lists[index].fileType != 'jpg' && lists[index].fileType != 'png' && lists[index].fileType != 'gif') {
  343. lists.splice(index, 1);
  344. // 当前文件不支持
  345. uni.showModal({
  346. title: '暂不支持当前图片类型',
  347. showCancel: false
  348. });
  349. } else {
  350. this.isAdd = false;
  351. }
  352. },
  353. getImgUrl(res) {
  354. this.imgUrls.push(res);
  355. },
  356. onRemove(index) {
  357. this.imgUrls.splice(index, 1);
  358. },
  359. commit1() {
  360. if(this.WarehouseInOutInfo.grossWeight>100||this.WarehouseInOutInfo.grossWeight<1){
  361. this.$api.msg('毛重输入错误')
  362. return
  363. }
  364. if(this.WarehouseInOutInfo.grossWeight.toString().indexOf('.')!=-1){
  365. if(this.WarehouseInOutInfo.grossWeight.toString().split('.')[1].length>2){
  366. this.$api.msg('毛重输入错误')
  367. return
  368. }
  369. }
  370. if(this.WarehouseInOutInfo.tare>50||this.WarehouseInOutInfo.tare<1){
  371. this.$api.msg('皮重输入错误')
  372. return
  373. }
  374. if(this.WarehouseInOutInfo.tare.toString().indexOf('.')!=-1){
  375. if(this.WarehouseInOutInfo.tare.toString().split('.')[1].length>2){
  376. this.$api.msg('皮重输入错误')
  377. return
  378. }
  379. }
  380. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount>10000||this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount<0){
  381. this.$api.msg('扣款金额输入错误')
  382. return
  383. }
  384. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount.toString().indexOf('.')!=-1){
  385. if(this.WarehouseInOutInfo.deductionAmount.toString().split('.')[1].length>2){
  386. this.$api.msg('扣款金额输入错误')
  387. return
  388. }
  389. }
  390. if(this.list.qualityInspector&&this.list.qualityInspector<2||this.list.qualityInspector&&this.list.qualityInspector>10){
  391. this.$api.msg('质检员姓名输入错误')
  392. return
  393. }
  394. if(this.list.protein&&this.list.protein<1||this.list.protein&&this.list.protein>80){
  395. this.$api.msg('蛋白占比输入错误')
  396. return
  397. }
  398. if(this.list.protein&&this.list.protein.indexOf('.')!=-1){
  399. if(this.list.protein.split('.')[1].length>2){
  400. this.$api.msg('蛋白占比输入错误')
  401. return
  402. }
  403. }
  404. if(this.list.waterContent&&this.list.waterContent<1||this.list.waterContent&&this.list.waterContent>40){
  405. this.$api.msg('水分输入错误')
  406. return
  407. }
  408. if(this.list.waterContent&&this.list.waterContent.indexOf('.')!=-1){
  409. if(this.list.waterContent.split('.')[1].length>2){
  410. this.$api.msg('水分输入错误')
  411. return
  412. }
  413. }
  414. if(this.list.bulkDensity&&this.list.bulkDensity<500||this.list.bulkDensity&&this.list.bulkDensity>1000){
  415. this.$api.msg('容重输入错误')
  416. return
  417. }
  418. if(this.list.bulkDensity&&this.list.bulkDensity.indexOf('.')!=-1){
  419. if(this.list.bulkDensity.split('.')[1].length>2){
  420. this.$api.msg('容重输入错误')
  421. return
  422. }
  423. }
  424. if(this.list.jiaorenli&&this.list.jiaorenli<1||this.list.jiaorenli&&this.list.jiaorenli>40){
  425. this.$api.msg('热损伤输入错误')
  426. return
  427. }
  428. if(this.list.jiaorenli&&this.list.jiaorenli.indexOf('.')!=-1){
  429. if(this.list.jiaorenli.split('.')[1].length>2){
  430. this.$api.msg('热损伤输入错误')
  431. return
  432. }
  433. }
  434. if(this.list.impurity&&this.list.impurity<1||this.list.impurity&&this.list.impurity>40){
  435. this.$api.msg('杂质输入错误')
  436. return
  437. }
  438. if(this.list.impurity&&this.list.impurity.indexOf('.')!=-1){
  439. if(this.list.impurity.split('.')[1].length>2){
  440. this.$api.msg('杂质输入错误')
  441. return
  442. }
  443. }
  444. if(this.list.mildewGrain&&this.list.mildewGrain<1||this.list.mildewGrain&&this.list.mildewGrain>40){
  445. this.$api.msg('霉变粒输入错误')
  446. return
  447. }
  448. if(this.list.mildewGrain&&this.list.mildewGrain.indexOf('.')!=-1){
  449. if(this.list.mildewGrain.split('.')[1].length>2){
  450. this.$api.msg('霉变粒输入错误')
  451. return
  452. }
  453. }
  454. if(this.list.imperfectGrain&&this.list.imperfectGrain<1||this.list.imperfectGrain&&this.list.imperfectGrain>40){
  455. this.$api.msg('不完整粒输入错误')
  456. return
  457. }
  458. if(this.list.imperfectGrain&&this.list.imperfectGrain.indexOf('.')!=-1){
  459. if(this.list.imperfectGrain.split('.')[1].length>2){
  460. this.$api.msg('不完整粒输入错误')
  461. return
  462. }
  463. }
  464. uni.showLoading({
  465. title:"正在暂存"
  466. })
  467. this.WarehouseInOutInfo.deductionAmount=-this.WarehouseInOutInfo.deductionAmount
  468. this.WarehouseInOutInfo.warehouseInOutDetail = this.list
  469. this.WarehouseInOutInfo.statusFlag = 1
  470. if(this.imgUrls.length > 0){
  471. this.WarehouseInOutInfo.addressUrl = this.imgUrls[0]
  472. }
  473. this.$api.doRequest('post', '/warehouseInOutInfo/InOutWarehouse', this.WarehouseInOutInfo).then(res => {
  474. if(res.data.code==200){
  475. uni.showToast({
  476. title: '暂存成功',
  477. icon: 'none',
  478. duration: 2000
  479. })
  480. setTimeout(() => {
  481. uni.navigateBack({})
  482. }, 200)
  483. }else{
  484. uni.showToast({
  485. title: res.data.message,
  486. icon: 'none',
  487. duration: 2000
  488. })
  489. }
  490. uni.hideLoading()
  491. }).catch(res => {
  492. uni.showToast({
  493. title: res.data.message,
  494. icon: 'none',
  495. duration: 2000
  496. })
  497. uni.hideLoading()
  498. })
  499. },
  500. commit() {
  501. if(!this.WarehouseInOutInfo.grossWeight){
  502. this.$api.msg('毛重不能为空')
  503. return
  504. }
  505. if(!this.WarehouseInOutInfo.tare){
  506. this.$api.msg('皮重不能为空')
  507. return
  508. }
  509. if(!this.WarehouseInOutInfo.warehouseName){
  510. this.$api.msg('仓库不能为空')
  511. return
  512. }
  513. if(!this.WarehouseInOutInfo.binNumber){
  514. this.$api.msg('仓库不能为空')
  515. return
  516. }
  517. if(this.WarehouseInOutInfo.grossWeight>100||this.WarehouseInOutInfo.grossWeight<1){
  518. this.$api.msg('毛重输入错误')
  519. return
  520. }
  521. if(this.WarehouseInOutInfo.grossWeight.toString().indexOf('.')!=-1){
  522. if(this.WarehouseInOutInfo.grossWeight.toString().split('.')[1].length>2){
  523. this.$api.msg('毛重输入错误')
  524. return
  525. }
  526. }
  527. if(this.WarehouseInOutInfo.tare>50||this.WarehouseInOutInfo.tare<1){
  528. this.$api.msg('皮重输入错误')
  529. return
  530. }
  531. if(this.WarehouseInOutInfo.tare.toString().indexOf('.')!=-1){
  532. if(this.WarehouseInOutInfo.toString().tare.split('.')[1].length>2){
  533. this.$api.msg('皮重输入错误')
  534. return
  535. }
  536. }
  537. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount>10000||this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount<0){
  538. this.$api.msg('扣款金额输入错误')
  539. return
  540. }
  541. if(this.WarehouseInOutInfo.deductionAmount&&this.WarehouseInOutInfo.deductionAmount.toString().indexOf('.')!=-1){
  542. if(this.WarehouseInOutInfo.deductionAmount.toString().split('.')[1].length>2){
  543. this.$api.msg('扣款金额输入错误')
  544. return
  545. }
  546. }
  547. if(this.list.qualityInspector&&this.list.qualityInspector<2||this.list.qualityInspector&&this.list.qualityInspector>10){
  548. this.$api.msg('质检员姓名输入错误')
  549. return
  550. }
  551. if(this.list.protein&&this.list.protein<1||this.list.protein&&this.list.protein>80){
  552. this.$api.msg('蛋白占比输入错误')
  553. return
  554. }
  555. if(this.list.protein&&this.list.protein.indexOf('.')!=-1){
  556. if(this.list.protein.split('.')[1].length>2){
  557. this.$api.msg('蛋白占比输入错误')
  558. return
  559. }
  560. }
  561. if(this.list.waterContent&&this.list.waterContent<1||this.list.waterContent&&this.list.waterContent>40){
  562. this.$api.msg('水分输入错误')
  563. return
  564. }
  565. if(this.list.waterContent&&this.list.waterContent.indexOf('.')!=-1){
  566. if(this.list.waterContent.split('.')[1].length>2){
  567. this.$api.msg('水分输入错误')
  568. return
  569. }
  570. }
  571. if(this.list.bulkDensity&&this.list.bulkDensity<500||this.list.bulkDensity&&this.list.bulkDensity>1000){
  572. this.$api.msg('容重输入错误')
  573. return
  574. }
  575. if(this.list.bulkDensity&&this.list.bulkDensity.indexOf('.')!=-1){
  576. if(this.list.bulkDensity.split('.')[1].length>2){
  577. this.$api.msg('容重输入错误')
  578. return
  579. }
  580. }
  581. if(this.list.jiaorenli&&this.list.jiaorenli<1||this.list.jiaorenli&&this.list.jiaorenli>40){
  582. this.$api.msg('热损伤输入错误')
  583. return
  584. }
  585. if(this.list.jiaorenli&&this.list.jiaorenli.indexOf('.')!=-1){
  586. if(this.list.jiaorenli.split('.')[1].length>2){
  587. this.$api.msg('热损伤输入错误')
  588. return
  589. }
  590. }
  591. if(this.list.impurity&&this.list.impurity<1||this.list.impurity&&this.list.impurity>40){
  592. this.$api.msg('杂质输入错误')
  593. return
  594. }
  595. if(this.list.impurity&&this.list.impurity.indexOf('.')!=-1){
  596. if(this.list.impurity.split('.')[1].length>2){
  597. this.$api.msg('杂质输入错误')
  598. return
  599. }
  600. }
  601. if(this.list.mildewGrain&&this.list.mildewGrain<1||this.list.mildewGrain&&this.list.mildewGrain>40){
  602. this.$api.msg('霉变粒输入错误')
  603. return
  604. }
  605. if(this.list.mildewGrain&&this.list.mildewGrain.indexOf('.')!=-1){
  606. if(this.list.mildewGrain.split('.')[1].length>2){
  607. this.$api.msg('霉变粒输入错误')
  608. return
  609. }
  610. }
  611. if(this.list.imperfectGrain&&this.list.imperfectGrain<1||this.list.imperfectGrain&&this.list.imperfectGrain>40){
  612. this.$api.msg('不完整粒输入错误')
  613. return
  614. }
  615. if(this.list.imperfectGrain&&this.list.imperfectGrain.indexOf('.')!=-1){
  616. if(this.list.imperfectGrain.split('.')[1].length>2){
  617. this.$api.msg('不完整粒输入错误')
  618. return
  619. }
  620. }
  621. this.WarehouseInOutInfo.deductionAmount=-this.WarehouseInOutInfo.deductionAmount
  622. if(this.imgUrls.length > 0){
  623. this.WarehouseInOutInfo.addressUrl = this.imgUrls[0]
  624. }
  625. this.WarehouseInOutInfo.warehouseInOutDetail = this.list
  626. this.WarehouseInOutInfo.statusFlag = 3
  627. this.WarehouseInOutInfo.pcFlag = 0
  628. this.WarehouseInOutInfo.taskType = "入库任务"
  629. uni.showLoading({
  630. title:"正在提交"
  631. })
  632. this.$api.doRequest('post', '/warehouseInOutInfo/InOutWarehouse', this.WarehouseInOutInfo).then(res => {
  633. if(res.data.code==200){
  634. uni.showToast({
  635. title: '提交成功',
  636. icon: 'none'
  637. })
  638. setTimeout(() => {
  639. uni.navigateBack({})
  640. }, 200)
  641. }else{
  642. uni.showToast({
  643. title: res.data.message,
  644. icon: 'none',
  645. duration: 2000
  646. })
  647. }
  648. uni.hideLoading()
  649. }).catch(res => {
  650. uni.showToast({
  651. title: res.data.message,
  652. icon: 'none',
  653. duration: 2000
  654. })
  655. uni.hideLoading()
  656. })
  657. },
  658. numFilter(value) {
  659. if (!value) {
  660. return 0
  661. }
  662. // 截取当前数据到小数点后两位
  663. let realVal = parseFloat(value).toFixed(2)
  664. return realVal
  665. },
  666. grossWeightInput(e) {
  667. this.WarehouseInOutInfo.grossWeight = e.detail.value
  668. if (this.WarehouseInOutInfo.grossWeight && this.WarehouseInOutInfo.tare) {
  669. this.WarehouseInOutInfo.netWeight = this.WarehouseInOutInfo.grossWeight - this.WarehouseInOutInfo.tare
  670. }
  671. },
  672. tareInput(e) {
  673. this.WarehouseInOutInfo.tare = e.detail.value
  674. if (this.WarehouseInOutInfo.grossWeight && this.WarehouseInOutInfo.tare) {
  675. this.WarehouseInOutInfo.netWeight = this.WarehouseInOutInfo.grossWeight - this.WarehouseInOutInfo.tare
  676. }
  677. },
  678. ruChange(e) {
  679. this.ruIndex = e.detail.value
  680. this.WarehouseInOutInfo.inOutTypeKey = e.detail.value
  681. this.WarehouseInOutInfo.inOutType = this.ruType[this.ruIndex];
  682. },
  683. pinChange(e) {
  684. this.pinIndex = e.detail.value
  685. this.WarehouseInOutInfo.gradeKey = e.detail.value
  686. this.WarehouseInOutInfo.grade = this.pinType[this.pinIndex];
  687. },
  688. }
  689. }
  690. </script>
  691. <style scoped lang='scss'>
  692. .upload {
  693. /deep/.u-list-item,
  694. .u-add-wrap {
  695. background-color: #eceae8;
  696. }
  697. }
  698. .center{
  699. margin: 15rpx 15rpx 10rpx 15rpx;
  700. padding:0rpx 10rpx 30rpx 10rpx;
  701. background-color: #FFFFFF;
  702. border-radius: 15px;
  703. }
  704. .title_b{
  705. margin: 20rpx 20rpx 0rpx 20rpx;
  706. padding:20rpx 10rpx 20rpx 10rpx;
  707. font-size: 18px;
  708. font-weight: 550;
  709. border-bottom: 1px solid #d6d6d6;
  710. }
  711. .title_c{
  712. margin: 20rpx 20rpx 0rpx 20rpx;
  713. padding:20rpx 10rpx 20rpx 10rpx;
  714. font-size: 18px;
  715. font-weight: 550;
  716. }
  717. .c-row {
  718. display: -webkit-box;
  719. display: -webkit-flex;
  720. display: flex;
  721. -webkit-box-align: center;
  722. -webkit-align-items: center;
  723. align-items: center;
  724. padding: 20rpx 30rpx;
  725. position: relative;
  726. }
  727. .con-list {
  728. -webkit-box-flex: 1;
  729. -webkit-flex: 1;
  730. flex: 1;
  731. display: -webkit-box;
  732. display: -webkit-flex;
  733. display: flex;
  734. -webkit-box-orient: vertical;
  735. -webkit-box-direction: normal;
  736. -webkit-flex-direction: column;
  737. flex-direction: column;
  738. color: #303133;
  739. line-height: 40rpx;
  740. text-align: right;
  741. padding-right: 20rpx;
  742. }
  743. .d-header {
  744. display: flex;
  745. justify-content: center;
  746. align-items: center;
  747. height: 80upx;
  748. font-size: $font-base + 2upx;
  749. color: $font-color-dark;
  750. position: relative;
  751. text {
  752. padding: 0 20upx;
  753. background: #fff;
  754. position: relative;
  755. z-index: 1;
  756. }
  757. &:after {
  758. position: absolute;
  759. left: 50%;
  760. top: 50%;
  761. transform: translateX(-50%);
  762. width: 300upx;
  763. height: 0;
  764. content: '';
  765. border-bottom: 1px solid #ccc;
  766. }
  767. }
  768. /* 底部操作菜单 */
  769. .page-bottom1 {
  770. position: fixed;
  771. left: 0;
  772. bottom: 0;
  773. z-index: 95;
  774. width:100%;
  775. height: 70px;
  776. background: rgba(255, 255, 255, .9);
  777. padding:15px;
  778. border-radius: 0;
  779. text-align:right;
  780. button{
  781. display:inline-block;
  782. border-radius:18px;
  783. margin:0 10px;
  784. font-size:14px;background:#fff;
  785. color:#333;
  786. border:1px solid #333;
  787. padding-left: 50rpx;
  788. padding-right: 50rpx;
  789. }
  790. .action-btn{
  791. background:#22C572;
  792. color:#fff;
  793. border:1px solid #22C572;
  794. }
  795. .p-b-btn {
  796. display: flex;
  797. flex-direction: column;
  798. align-items: center;
  799. justify-content: center;
  800. font-size: $font-sm;
  801. color: $font-color-base;
  802. width: 96upx;
  803. height: 80upx;
  804. .yticon {
  805. font-size: 40upx;
  806. line-height: 48upx;
  807. color: $font-color-light;
  808. }
  809. &.active,
  810. &.active .yticon {
  811. color: $uni-color-primary;
  812. }
  813. .icon-fenxiang2 {
  814. font-size: 42upx;
  815. transform: translateY(-2upx);
  816. }
  817. .icon-shoucang {
  818. font-size: 46upx;
  819. }
  820. }
  821. }
  822. .container{
  823. padding-bottom: 160upx;
  824. }
  825. .picture{
  826. width: 75px;
  827. height: 75px;
  828. border-radius: 10px;
  829. margin-left: 16px;
  830. }
  831. </style>