purchasecontract.vue 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. <template>
  2. <view class="container">
  3. <u-form ref="uForm">
  4. <u-form-item label-width='260' label="合同编号">
  5. {{list.contractNo}}
  6. </u-form-item>
  7. <u-form-item label-width='260' label="运输方式">
  8. {{list.shippingType}}
  9. </u-form-item>
  10. <u-form-item label-width='260' label="买方">
  11. {{list.buyer}}
  12. </u-form-item>
  13. <u-form-item label-width='260' label="结算方式">
  14. {{ list.settlementMethod }}
  15. </u-form-item>
  16. <u-form-item label-width='260' label="卖方">
  17. {{list.seller}}
  18. </u-form-item>
  19. <u-form-item label-width='260' label="交货方式">
  20. {{list.deliverType1}}
  21. </u-form-item>
  22. <u-form-item label-width='260' label="买方电话">
  23. {{list.buyerPhone}}
  24. </u-form-item>
  25. <u-form-item label-width='260' label="包装方式">
  26. {{list.packingMethod}}
  27. </u-form-item>
  28. <u-form-item label-width='260' label="卖方电话">
  29. {{list.sellerPhone}}
  30. </u-form-item>
  31. <u-form-item label-width='260' label="验收方式">
  32. {{list.acceptanceMethod}}
  33. </u-form-item>
  34. <u-form-item label-width='260' label="重量(吨)">
  35. {{list.weight}}
  36. </u-form-item>
  37. <u-form-item label-width='260' label="交货日期(起)">
  38. {{list.deliveryDateStart}}
  39. </u-form-item>
  40. <u-form-item label-width='260' label="溢短装(%)">
  41. {{list.overShort}}
  42. </u-form-item>
  43. <u-form-item label-width='260' label="交货日期(止)">
  44. {{list.deliveryDateEnd}}
  45. </u-form-item>
  46. <u-form-item label-width='260' label="合同单价(元/吨)">
  47. {{list.unitContractPrice}}
  48. </u-form-item>
  49. <u-form-item label-width='260' label="合同总价(元)">
  50. {{list.totalContractPrice}}
  51. </u-form-item>
  52. <u-form-item label-width='260' label="货源所在地区">
  53. {{list.sourceProvince}}{{list.sourceCity}}{{list.sourceArea}}
  54. </u-form-item>
  55. <u-form-item label-width='260' label="货源详细地址">
  56. {{list.sourceGoods}}
  57. </u-form-item>
  58. <u-form-item label-width='260' label="交货地所在地区">
  59. {{list.deliveryProvince}}{{list.deliveryCity}}{{list.deliveryArea}}
  60. </u-form-item>
  61. <u-form-item label-width='260' label="交货地详细地址">
  62. {{list.placeDelivery}}
  63. </u-form-item>
  64. <u-form-item label-width='260' label="签订日期">
  65. {{list.signingDate}}
  66. </u-form-item>
  67. <u-form-item label-width='260' label="最终实际交易量 (吨)">
  68. {{list.finalTradingVolume}}
  69. </u-form-item>
  70. <u-form-item v-if='list.deliverType == 1' label-width='260' label="临时仓库负责人">
  71. {{list.personCharge}}
  72. </u-form-item>
  73. <u-form-item label-width='260' label="货名">
  74. {{list.contractGoodsInfo.goodsName}}
  75. </u-form-item>
  76. <u-form-item label-width='260' label="水分(%)<=">
  77. {{list.contractGoodsInfo.waterContent}}
  78. </u-form-item>
  79. <u-form-item label-width='260' label="品级">
  80. {{list.contractGoodsInfo.grade}}
  81. </u-form-item>
  82. <u-form-item label-width='260' label="杂质(%)<=">
  83. {{list.contractGoodsInfo.impurity}}
  84. </u-form-item>
  85. <u-form-item label-width='260' label="容重(克/升)>=">
  86. {{list.contractGoodsInfo.bulkDensity}}
  87. </u-form-item>
  88. <u-form-item label-width='260' label="霉变粒(%)<=">
  89. {{list.contractGoodsInfo.mildewGrain}}
  90. </u-form-item>
  91. <u-form-item label-width='260' label="热损伤(%)<=">
  92. {{list.contractGoodsInfo.jiaorenli}}
  93. </u-form-item>
  94. <u-form-item label-width='260' label="不完善粒(%)<=">
  95. {{list.contractGoodsInfo.imperfectGrain}}
  96. </u-form-item>
  97. <u-form-item label-width='260' label="合同收入(元)">
  98. {{list.contractProcessInfo.goodsNameKey}}
  99. </u-form-item>
  100. <u-form-item label-width='260' label="已开发票(元)">
  101. {{list.contractProcessInfo.goodsName}}
  102. </u-form-item>
  103. <u-form-item label-width='260' label="费用支出(元)">
  104. {{list.contractProcessInfo.waterContent}}
  105. </u-form-item>
  106. <u-form-item label-width='260' label="未开发票(元)">
  107. {{list.contractProcessInfo.impurity}}
  108. </u-form-item>
  109. <u-form-item label-width='260' label="未回款(元)">
  110. {{list.contractProcessInfo.mildewGrain}}
  111. </u-form-item>
  112. <u-form-item label-width='260' label="双章原件回收情况">
  113. {{list.contractProcessInfo.grade}}
  114. </u-form-item>
  115. <u-form-item label-width='260' label="备注信息">
  116. {{list.remarks}}
  117. </u-form-item>
  118. <u-form-item label-width='260' label="附件">
  119. <!-- {{list.contractProcessInfo.grade}} -->
  120. <view v-for='item in imglist'>
  121. <image style='width:100px;height:100px;' :src="item" mode=""></image>
  122. </view>
  123. </u-form-item>
  124. </u-form>
  125. <view style='padding:10px;' class='flex bottom-btn'>
  126. <u-button v-if='list.approveStatus' @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
  127. <u-button v-if='list.approveStatus' @click='pass' type="success" class="btn2">通过</u-button>
  128. </view>
  129. <view v-if='show' class="shade">
  130. <view class="wrap">
  131. <view style='border-bottom:1px solid #eee;padding:10px;display:flex;justify-content:space-between;'>{{title}}
  132. <u-icon name="close"></u-icon></view>
  133. <view style='padding:10px;'>
  134. <input v-model='auditMind' placeholder="请输入原因" type="text" value="" />
  135. </view>
  136. <view @click='close()' class="cancel">取消</view>
  137. <view @click='passSubmit()' class="confirm">确定</view>
  138. </view>
  139. </view>
  140. </view>
  141. </template>
  142. <script>
  143. export default {
  144. data() {
  145. return {
  146. id: "",
  147. currentPage: 1,
  148. pageSize: 10,
  149. list: [
  150. {
  151. status:"",
  152. }
  153. ],
  154. imglist:[],
  155. auditMind:'',
  156. show:false,
  157. title:'',
  158. contractNo: "",
  159. }
  160. },
  161. onLoad(options) {
  162. this.id = options.id
  163. this.getList()
  164. },
  165. methods: {
  166. getList(id) {
  167. var that = this
  168. this.$api.doRequest('get', '/contractManagementInfo/getInfo', {
  169. id: this.id
  170. }).then(res => {
  171. if(res.data.code==200){
  172. this.list=res.data.data
  173. if (this.list.deliverType == 1) {
  174. this.list.deliverType1 = '我方自提'
  175. } else if (this.list.deliverType == 2) {
  176. this.list.deliverType1 = '对方送货'
  177. }
  178. this.$api.doRequest('get', '/appendix/query/getFileList', {
  179. appendixIds:that.list.addressUrl
  180. }).then(res1 => {
  181. for(var i=0;i<res1.data.data.length;i++){
  182. that.imglist.push(res1.data.data[i].appendixPath)
  183. }
  184. })
  185. }
  186. })
  187. },
  188. //驳回
  189. rejectSubmit() {
  190. var that = this
  191. that.$api.doRequest('post', '/workflow/api/handle', {
  192. taskId: that.list.taskId,
  193. approved: false,
  194. auditMind: this.auditMind,
  195. needReapply: true,
  196. }).then(res => {
  197. that.$api.msg('驳回成功')
  198. that.show=false
  199. })
  200. },
  201. close(){
  202. this.show=false
  203. },
  204. pass(){
  205. console.log(1111)
  206. this.show=true
  207. this.title='通过原因'
  208. },
  209. reject() {
  210. this.show=true
  211. this.title='驳回原因'
  212. },
  213. //通过
  214. passSubmit() {
  215. var that = this
  216. if(this.title=='驳回原因'){
  217. this.rejectSubmit()
  218. }else{
  219. that.$api.doRequest('post', '/workflow/api/handle', {
  220. taskId: that.list.taskId,
  221. approved: true,
  222. auditMind: this.auditMind,
  223. needReapply: true,
  224. }).then(res => {
  225. that.$api.msg('通过成功')
  226. that.show=false
  227. })
  228. }
  229. },
  230. //审核方法
  231. audit(item, index, status, status2, reason) {
  232. if (index < this.list.length) {
  233. this.$api.doRequest('post', '/workflow/api/handle', {
  234. taskId: item.taskId,
  235. approved: status,
  236. auditMind: reason != undefined ? '已驳回' : '34',
  237. needReapply: status2 != undefined ? true : false,
  238. }).then(res => {
  239. this.audit(this.list[index + 1], index + 1, status)
  240. })
  241. } else {
  242. if (status == true) {
  243. that.$api.msg('通过成功')
  244. this.getList()
  245. } else if (status == false) {
  246. that.$api.msg('驳回成功')
  247. this.getList()
  248. }
  249. }
  250. },
  251. }
  252. }
  253. </script>
  254. <style scoped lang="scss">
  255. .container {
  256. padding: 20rpx 20rpx 250rpx 20rpx;
  257. }
  258. .u-form{
  259. background:#fff;
  260. border-radius:10px;
  261. padding:0 10px;
  262. .u-form-item{
  263. line-height:30px;
  264. padding:5px 0;
  265. }
  266. }
  267. .content {
  268. margin-top: 30rpx;
  269. .top {
  270. display: flex;
  271. justify-content: space-between;
  272. }
  273. .content-item {
  274. border-radius: 20rpx;
  275. background: white;
  276. padding: 40rpx 20rpx;
  277. margin-bottom: 30rpx;
  278. }
  279. .title {
  280. font-size: 32rpx;
  281. font-weight: 600;
  282. color: #333333;
  283. text-align: left;
  284. margin: 20rpx 0;
  285. }
  286. .car-container{
  287. border-bottom: 2rpx solid #EEEEEE;
  288. }
  289. .car-type-item {
  290. font-size: 28rpx;
  291. margin: 20rpx 0;
  292. color: #878C9C;
  293. }
  294. .weightInfoCss {
  295. font-size: 28rpx;
  296. color: #333333;
  297. font-weight: 500;
  298. }
  299. .row {
  300. display: flex;
  301. justify-content: space-between;
  302. // .right,
  303. // input {
  304. // font-size: 28rpx;
  305. // // color: #333333;
  306. // }
  307. }
  308. .money {
  309. font-size: 32rpx;
  310. font-weight: 500;
  311. margin-bottom: 30rpx ;
  312. }
  313. .moneyInfo {
  314. color: #22C572;
  315. font-size: 32rpx;
  316. }
  317. }
  318. .bottom-btn {
  319. width: 100%;
  320. position: fixed;
  321. bottom:0;
  322. display: flex;
  323. z-index: 2;
  324. left: 0;
  325. background-color: #f8f8f8;
  326. flex-direction: column;
  327. .btn1,.btn2{
  328. width: 100%;
  329. margin-bottom: 26rpx;
  330. border-radius: 90rpx;
  331. }
  332. .btn1{
  333. background: white;
  334. color: #00C265;
  335. }
  336. }
  337. .topInfo {
  338. height: 210rpx;
  339. background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
  340. padding: 30rpx;
  341. .topInfo-item {
  342. height: 150rpx;
  343. background-color: #FFFFFF;
  344. border-radius: 20rpx;
  345. padding: 40rpx;
  346. .logo {
  347. width: 40rpx;
  348. height: 40rpx;
  349. margin-top: 8rpx;
  350. }
  351. .infoText {
  352. font-size: 36rpx;
  353. font-weight: 600;
  354. margin-left: 20rpx;
  355. }
  356. .infoData {
  357. color: #878C9C;
  358. font-size: 26rpx;
  359. margin-top: 10rpx;
  360. }
  361. }
  362. }
  363. .shade{
  364. position:fixed;
  365. top:0;
  366. left:0;
  367. height:100%;width:100%;
  368. background:rgba(0,0,0,0.1);
  369. z-index:3;
  370. .wrap{
  371. position:absolute;
  372. left:0;top:0;right:0;bottom:0;margin:auto;
  373. background:#fff;
  374. width:80%;
  375. height:30%;
  376. }
  377. }
  378. .cancel,.confirm{
  379. position:absolute;
  380. display:inline-block;
  381. width:50%;
  382. text-align:center;
  383. bottom:0;
  384. padding:10px;
  385. border-top:1px solid #eee;
  386. }
  387. .cancel{
  388. left:0;
  389. border-right:1px solid #eee;
  390. }
  391. .confirm{
  392. right:0;
  393. }
  394. </style>