contract_detail.vue 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. <template>
  2. <view class="container">
  3. <view class="information">
  4. <!-- <block v-if="TabCur==2"> -->
  5. <view class="c-row">
  6. <view class="title1">发车信息</view>
  7. </view>
  8. <view class="c-row b-b">
  9. <view class="title">派车编号</view>
  10. <view class="con-list">
  11. <input disabled name="input" v-model="goods.tranCarNo"></input>
  12. </view>
  13. </view>
  14. <view class="c-row b-b">
  15. <view class="title">车牌号</view>
  16. <input maxlength='7' placeholder="请输入车牌号" name="input" v-model="goods.carNo"></input>
  17. </view>
  18. <view class="c-row b-b">
  19. <view class="title">司机手机号</view>
  20. <view class="con-list">
  21. <input maxlength='11' placeholder="请输入司机身份认证的手机号" name="input" v-model="goods.driverPhone"></input>
  22. </view>
  23. </view>
  24. <view class="c-row b-b">
  25. <view class="title">毛重(吨)</view>
  26. <view class="con-list">
  27. <input placeholder="请输入毛重" type="mobile" name="input" @input="grossWeightchange" v-model="goods.grossWeight"></input>
  28. </view>
  29. </view>
  30. <view class="c-row b-b">
  31. <view class="title">皮重(吨)</view>
  32. <view class="con-list">
  33. <input placeholder="请输入皮重" type="mobile" name="input" @input="tarechange" v-model="goods.tare"></input>
  34. </view>
  35. </view>
  36. <view class="c-row b-b">
  37. <view class="title">净重(吨)</view>
  38. <view class="con-list">
  39. <view class="con-list">
  40. <input placeholder="自动计算" type="mobile" name="input" v-model="goods.loadNetWeight"></input>
  41. </view>
  42. </view>
  43. </view>
  44. <view class="c-row ">
  45. <view class="title">发货日期</view>
  46. <view class="con-list">
  47. <view @click="show = true">{{goods.sendDateStart!=''?goods.sendDateStart:time}}</view>
  48. <u-picker :params='params' :default-time='time' @confirm="DateChange" v-model="show" mode="time"></u-picker>
  49. </view>
  50. </view>
  51. </view>
  52. <view class="information">
  53. <view class="c-row">
  54. <view class="action">
  55. 上传磅单照片
  56. </view>
  57. </view>
  58. <view class="c-row">
  59. <view class="grid col-4 grid-square flex-sub">
  60. <view class="bg-img" v-if="goods.loadPoundImg != ''" @tap="ViewImage" :data-url="goods.loadPoundImg">
  61. <image :src="goods.loadPoundImg" mode="aspectFit"></image>
  62. <view class="cu-tag bg-red" @tap.stop="DelImg" :data-index="0">
  63. <text class='cuIcon-close'></text>
  64. </view>
  65. </view>
  66. <view class="solids" @tap="ChooseImagePerson" v-if="goods.loadPoundImg == ''">
  67. <text class='cuIcon-cameraadd'></text>
  68. </view>
  69. </view>
  70. </view>
  71. </view>
  72. <button class="btn btns" @click="getList">提交</button>
  73. <!-- </block> -->
  74. </view>
  75. </template>
  76. <script>
  77. import uploadImage from '@/components/ossutil/uploadFile.js';
  78. import {
  79. mapState
  80. } from 'vuex';
  81. export default {
  82. name: "trust",
  83. data() {
  84. return {
  85. goods: {
  86. tranCarNo:'',
  87. carNo:'',
  88. grossWeight:'',
  89. tare:'',
  90. loadNetWeight:'',
  91. loadPoundImg:'',
  92. contractNo:'',
  93. goodsName:'',
  94. sendDateStart:''
  95. },
  96. params:{
  97. year: true,
  98. month: true,
  99. day: true,
  100. },
  101. carNo:'',
  102. PageCur: "trust",
  103. TabCur: 0,
  104. priceTypeIndex:-1,
  105. priceType: ['库内价', '到库价', '到港价'],
  106. unitPrice:0,
  107. price:'',
  108. seller:'',
  109. sellerPhone:'',
  110. minSale:'',
  111. exsitCount:0,
  112. origin:'',
  113. stock:'',
  114. show:false,
  115. goodsName:'',
  116. verifyCode:'',
  117. sendText0:'获取验证码',
  118. sendText1:'获取验证码',
  119. sendText2:'获取验证码',
  120. sendText3:'获取验证码',
  121. sendDisabled0: false,
  122. sendDisabled1: false,
  123. sendDisabled2: false,
  124. sendDisabled3: false,
  125. buyer:'',
  126. buyerPhone:'',
  127. level:'',
  128. sender:'',
  129. senderPhone:'',
  130. receiver:'',
  131. receiverPhone:'',
  132. total:0,
  133. startPlace:'',
  134. endPlace:'',
  135. driver:'',
  136. driverPhone:'',
  137. carNo:'',
  138. personNoImg:'',
  139. personNoImg1:'',
  140. driverNoImg:'',
  141. driverNoImg1:'',
  142. carNoImg:'',
  143. carNoImg1:'',
  144. goodsName:'',
  145. showTran:true
  146. };
  147. },
  148. computed: {
  149. ...mapState(['hasLogin','userInfo']),
  150. time() {
  151. var date=new Date()
  152. var year=date.getFullYear()
  153. var month=date.getMonth()
  154. var date1=date.getDate()
  155. if(month+1<10){
  156. month="0"+(month+1)
  157. }
  158. if(date1+1<10){
  159. date1="0"+date1
  160. }
  161. return year+'-'+month+"-"+date1
  162. },
  163. startDate() {
  164. //限制开始时间;
  165. //也可以直接限定为当天日期 var date= new Date(); return date
  166. return new Date(new Date(new Date().toLocaleDateString()).getTime()-(1*60*60*1000))
  167. },
  168. endDate() {
  169. return new Date()
  170. }
  171. },
  172. onShow() {
  173. },
  174. onLoad(option) {
  175. this.goods.planId=options.planId
  176. this.goodsName=option.goodsName
  177. this.contractNo = option.contractNo
  178. this.goods.goodsName=option.goodsName
  179. this.goods.contractNo = option.contractNo
  180. this.goods.tranCarNo=option.tranCarNo
  181. },
  182. methods: {
  183. DateChange(e) {
  184. this.goods.sendDateStart=e.year+'-'+e.month+'-'+e.day
  185. // this.goods.sendDateStart = e.detail.value
  186. },
  187. commit1(item){
  188. uni.navigateTo({
  189. url: `/pageB/contract/look?id=${item.id}&netWeight=${item.netWeight}&carNo=${item.carNo}&sendDateStart=${item.sendDateStart}`
  190. })
  191. },
  192. grossWeightchange(e) {
  193. if (this.goods.grossWeight && this.goods.tare) {
  194. this.goods.loadNetWeight = Number(
  195. this.goods.grossWeight - this.goods.tare
  196. )
  197. }
  198. },
  199. tarechange(e) {
  200. if (this.goods.grossWeight && this.goods.tare) {
  201. this.goods.loadNetWeight = Number(
  202. this.goods.grossWeight - this.goods.tare
  203. )
  204. }
  205. },
  206. getList(){
  207. // tranCarNo:'',
  208. // carNo:'',
  209. // grossWeight:'',
  210. // tare:'',
  211. // loadNetWeight:'',
  212. // loadPoundImg:'',
  213. // contractNo:'',
  214. // goodsName:'',
  215. if(this.goods.carNo.length==0){
  216. this.$api.msg('车牌号不能为空')
  217. return
  218. }
  219. if(this.goods.carNo.length!=7){
  220. this.$api.msg('车牌号输入错误')
  221. return
  222. }
  223. if(this.goods.driverPhone.length==0){
  224. this.$api.msg('手机号不能为空')
  225. return
  226. }
  227. if(this.goods.driverPhone.length!=11){
  228. this.$api.msg('司机手机号输入错误')
  229. return
  230. }
  231. if(this.goods.grossWeight==''){
  232. this.$api.msg('毛重不能为空')
  233. return
  234. }
  235. if(this.goods.tare==''){
  236. this.$api.msg('皮重不能为空')
  237. return
  238. }
  239. if(this.goods.grossWeight>100){
  240. this.$api.msg('毛重输入错误')
  241. return
  242. }
  243. if(this.goods.tare>50){
  244. this.$api.msg('皮重输入错误')
  245. return
  246. }
  247. var that=this
  248. uni.showModal({
  249. content: '确定提交发车信息?',
  250. success: function (res) {
  251. if (res.confirm) {
  252. that.$api.doRequest('post','/tranCarInfo/api/addTranTask',that.goods).then(res => {
  253. if(res.data.code==200){
  254. console.log(that.goods)
  255. uni.showModal({
  256. content: '提交成功!',
  257. success: function (res) {
  258. if (res.confirm) {
  259. var result = that.goods.tranCarNo.substr(that.goods.tranCarNo.indexOf("C") + 1,that.goods.tranCarNo.length);
  260. var num=Number(result)+1
  261. if(num<=9){
  262. num='C00'+num
  263. }else if(num<100&&num>9){
  264. num='C0'+num
  265. }else if(num<1000&&num>99){
  266. num='C'+num
  267. }
  268. that.goods={
  269. tranCarNo:num,
  270. carNo:'',
  271. grossWeight:'',
  272. tare:'',
  273. loadNetWeight:'',
  274. loadPoundImg:'',
  275. contractNo:that.contractNo,
  276. goodsName:that.goodsName,
  277. sendDateStart:''
  278. }
  279. }else if (res.cancel) {
  280. uni.navigateBack();
  281. }
  282. }
  283. });
  284. }else if(res.data.code==11015){
  285. uni.showToast({
  286. title: '该司机未认证身份,请司机认证后再操作',
  287. icon:'none',
  288. duration: 2000
  289. })
  290. }
  291. })
  292. .catch(res => {
  293. uni.showToast({
  294. title: res.errmsg,
  295. icon:'none',
  296. duration: 2000
  297. })
  298. });
  299. } else if (res.cancel) {
  300. }
  301. }
  302. });
  303. },
  304. ChooseImagePerson() {
  305. uni.chooseImage({
  306. count: 1, //默认9
  307. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  308. sourceType: ['album','camera'], //从相册选择
  309. success: (res) => {
  310. //上传图片
  311. //图片路径可自行修改
  312. uploadImage(res.tempFilePaths[0], 'loadPoundImg/',
  313. result => {
  314. this.goods.loadPoundImg = result
  315. uni.hideLoading();
  316. }
  317. )
  318. }
  319. });
  320. },
  321. ChooseImageDriver() {
  322. uni.chooseImage({
  323. count: 1, //默认9
  324. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  325. sourceType: ['album','camera'], //从相册选择
  326. success: (res) => {
  327. //上传图片
  328. //图片路径可自行修改
  329. uploadImage(res.tempFilePaths[0], 'driverNoImg/',
  330. result => {
  331. if (this.driverNoImg.length != 0) {
  332. this.driverNoImg1 = result
  333. } else {
  334. this.driverNoImg = result
  335. }
  336. uni.hideLoading();
  337. }
  338. )
  339. }
  340. });
  341. },
  342. ChooseImageCar() {
  343. uni.chooseImage({
  344. count: 1, //默认9
  345. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  346. sourceType: ['album','camera'], //从相册选择
  347. success: (res) => {
  348. //上传图片
  349. //图片路径可自行修改
  350. uploadImage(res.tempFilePaths[0], 'carNoImg/',
  351. result => {
  352. if (this.carNoImg.length != 0) {
  353. this.carNoImg1 = result
  354. } else {
  355. this.carNoImg = result
  356. }
  357. uni.hideLoading();
  358. }
  359. )
  360. }
  361. });
  362. },
  363. ViewImage(e) {
  364. var img = [];
  365. img = e.currentTarget.dataset.url.split(' ')
  366. uni.previewImage({
  367. current:0,
  368. urls: img
  369. });
  370. },
  371. DelImg(e) {
  372. uni.showModal({
  373. title: '提示',
  374. content: '确定要删除该照片吗?',
  375. cancelText: '取消',
  376. confirmText: '确定',
  377. success: res => {
  378. if (res.confirm) {
  379. if(e.currentTarget.dataset.index == 0){
  380. this.personNoImg = "";
  381. }
  382. else if(e.currentTarget.dataset.index == 1){
  383. this.personNoImg1 = "";
  384. }
  385. else if(e.currentTarget.dataset.index == 2){
  386. this.driverNoImg = "";
  387. }
  388. else if(e.currentTarget.dataset.index == 3){
  389. this.driverNoImg1 = "";
  390. }
  391. else if(e.currentTarget.dataset.index == 4){
  392. this.carNoImg = "";
  393. }
  394. else if(e.currentTarget.dataset.index == 5){
  395. this.carNoImg1 = "";
  396. }
  397. }
  398. }
  399. })
  400. },
  401. },
  402. }
  403. </script>
  404. <style scoped>
  405. .container{
  406. padding: 10px 10px;
  407. background-color: #F5F6FA;
  408. }
  409. .title1{
  410. font-size: 18px;
  411. font-weight: 600;
  412. }
  413. .cu-form-group input {
  414. text-align: right;
  415. }
  416. .text-white text{
  417. background: linear-gradient(45deg, #3DC146, #B2D612);
  418. padding:5px 10px;
  419. border-radius: 38rpx;
  420. }
  421. .cu-form-group textarea {
  422. text-align: right;
  423. }
  424. .commit{
  425. background: linear-gradient(45deg, #DF331C, #DA611A);
  426. color:#fff;
  427. }
  428. .c-row {
  429. display: -webkit-box;
  430. display: -webkit-flex;
  431. display: flex;
  432. -webkit-box-align: center;
  433. -webkit-align-items: center;
  434. align-items: center;
  435. padding: 20rpx 30rpx;
  436. position: relative;
  437. }
  438. .con-list {
  439. -webkit-box-flex: 1;
  440. -webkit-flex: 1;
  441. flex: 1;
  442. display: -webkit-box;
  443. display: -webkit-flex;
  444. display: flex;
  445. -webkit-box-orient: vertical;
  446. -webkit-box-direction: normal;
  447. -webkit-flex-direction: column;
  448. flex-direction: column;
  449. color: #303133;
  450. line-height: 40rpx;
  451. text-align: right;
  452. padding-right: 20rpx;
  453. font-size: 14px;
  454. }
  455. .information{
  456. background-color: #FFFFFF;
  457. border-radius: 20px;
  458. margin-top: 10px;
  459. }
  460. .btn{
  461. margin-top: 10px;
  462. border-radius: 25px;
  463. background-color: #22C572;
  464. border: none;
  465. color: #FFFFFF;
  466. }
  467. </style>