contract_detail.vue 12 KB

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