freight_settlement_approval.vue 26 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232
  1. <template>
  2. <view class="container">
  3. <view class="topInfo">
  4. <view class="topInfo-item">
  5. <view class="flex info">
  6. <view class="logo">
  7. <image src="../../../static/img/reject.png" mode="" v-if="list&&list[0].approveStatus == '已驳回'"
  8. style="height: 40rpx;"></image><!-- 驳回 -->
  9. <image src="../../../static/img/tongguo.png" mode="" v-if="list&&list[0].approveStatus == '已通过'"
  10. style="height: 40rpx;"></image><!-- 通过 -->
  11. <image src="../../../static/img/daishenhe.png" mode=""
  12. v-if="list&&list[0].approveStatus == '待决策人审核'|| list&&list[0].approveStatus == '待财务审核'"
  13. style="height: 40rpx;"></image><!-- 待审核 -->
  14. </view>
  15. <view class="infoText">{{list[0].approveStatus?list[0].approveStatus:list[0].status}}</view>
  16. </view>
  17. <view class="infoData">{{list[0].updateDate}}</view>
  18. </view>
  19. </view>
  20. <view class="content">
  21. <view class="top">
  22. <view v-if='list&&list[0].contractFlag=="1"'>合同编号</view>
  23. <view v-if='list&&list[0].contractFlag=="0"'>移库编号</view>
  24. <view>{{list[0].contractNo}}</view>
  25. </view>
  26. <view class="person-info">
  27. <view v-if='list&&list[0].contractFlag=="1"' class="top1" style="display: flex;">
  28. <view>客户</view>
  29. <view>{{list[0].customer}}</view>
  30. </view>
  31. <view class="top1 flex">
  32. <view>发货地址</view>
  33. <view class="top_info">{{list[0].send ? list[0].send : "暂无发货地址"}}</view>
  34. </view>
  35. <view class="top1 flex">
  36. <view>收货地址</view>
  37. <view class="top_info">{{list[0].receive ? list[0].receive : "暂无收货地址"}}</view>
  38. </view>
  39. <view style='display:flex;align-items: center;' class="top1">
  40. <view>合计</view>
  41. <view class="top_info">{{num}}</view>
  42. </view>
  43. </view>
  44. <view class="car-container">
  45. <view v-for="item in list" class="car-container-item">
  46. <view class="car-num title" v-if="item.tranTypeKey== '1'">{{item.carNo}} ({{item.tranCarNo}})</view>
  47. <view class="car-num title" v-if="item.tranTypeKey== '2'">车厢号{{item.boxNo}}</view>
  48. <view class="car-num title" v-if="item.tranTypeKey== '3'&&item.shipType== '散船'">仓位号{{item.boxNo}}
  49. </view>
  50. <view class="car-num title" v-if="item.tranTypeKey== '3'&&item.shipType== '集装箱'">箱号{{item.boxNo}}
  51. </view>
  52. <view class="car-type-item">
  53. <view class="left">装</view>
  54. <view class="textInfo">{{item.loadingWeight}}吨</view>
  55. </view>
  56. <view class="car-type-item">
  57. <view class="center">卸</view>
  58. <view class="textInfo">{{item.unloadingWeight}}吨</view>
  59. </view>
  60. <view class="car-type-item">
  61. <view class="right">结</view>
  62. <view class="textInfo">{{item.settlementWeight}}吨</view>
  63. </view>
  64. <view class="car-type-item">
  65. <view class="left">预</view>
  66. <view class="textInfo">{{item.transportPrice}}元/吨</view>
  67. </view>
  68. <view class="car-type-item">
  69. <view class="center">算</view>
  70. <view class="textInfo">{{item.settlementPrice}}元/吨</view>
  71. </view>
  72. <view class="car-type-item">
  73. <view v-if='item.deductionAmount>=0' class="right">扣</view>
  74. <view v-if='item.deductionAmount<0' class="right">加</view>
  75. <view v-if='item.deductionAmount<0' class="textInfo">{{-item.deductionAmount}}元</view>
  76. <view v-if='item.deductionAmount>=0' class="textInfo">{{item.deductionAmount}}元</view>
  77. </view>
  78. <view class="car-type-item">
  79. <view class="left">服</view>
  80. <view class="textInfo">{{item.serviceCharge}}元</view>
  81. </view>
  82. <view class="car-type-item">
  83. <view class="center">税</view>
  84. <view class="textInfo">{{item.taxPoint}}元</view>
  85. </view>
  86. <view class="car-type-item">
  87. <view class="right">实</view>
  88. <view class="textInfo">{{item.amountActuallyPaid}}元</view>
  89. </view>
  90. <view class="car-type-item">
  91. <view class="left">合</view>
  92. <view class="textInfo">{{item.totalPayable}}元</view>
  93. </view>
  94. </view>
  95. </view>
  96. </view>
  97. <flow :auditList="auditList" @status='getStatus'></flow>
  98. <view v-if='show' class="shade">
  99. <view class="wrap">
  100. <view class="alert-top">
  101. <view class="title">
  102. {{title}}
  103. </view>
  104. <u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
  105. </view>
  106. <view class="u-textarea-style">
  107. <view class="right-bottom">
  108. {{auditMind.length}}/1000个字
  109. </view>
  110. <u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
  111. maxlength="1000" />
  112. </view>
  113. <view @click='close()' class="cancel">取消</view>
  114. <view @click='passSubmit()' class="confirm">确定</view>
  115. </view>
  116. </view>
  117. <u-toast ref="uToast" />
  118. <view style='padding:10px;' class='flex bottom-btn'>
  119. <u-button v-if='isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
  120. <u-button v-if='isSHowBtn' @click='pass' type="success" class="btn2">通过</u-button>
  121. </view>
  122. </view>
  123. </template>
  124. <script>
  125. import flow from '@/components/flow.vue';
  126. import helper from '@/common/helper.js';
  127. export default {
  128. components: {
  129. flow
  130. },
  131. data() {
  132. return {
  133. isSHowBtn: true,
  134. currentPage: 1,
  135. pageSize: 10,
  136. list: {
  137. approveStatus: "",
  138. },
  139. title: '',
  140. num: 0,
  141. show: false,
  142. height: 200,
  143. auditList: [],
  144. auditMind: '',
  145. autoHeight: true,
  146. border: false,
  147. everyCheck: '',
  148. customerName: "", //客户
  149. shippingAddress: "", //发货地址
  150. receivingAddress: "", //收货地址
  151. }
  152. },
  153. onBackPress(e) {
  154. if (this.everyCheck) {
  155. uni.navigateTo({
  156. url: "/pages/task/my_task"
  157. })
  158. return true;
  159. }
  160. },
  161. onLoad(options) {
  162. this.id = options.id
  163. this.everyCheck = uni.getStorageSync("everyTask")
  164. this.isSHowBtn = options.isShowbtn
  165. this.getList()
  166. },
  167. methods: {
  168. getList() {
  169. var that = this
  170. this.$api.doRequest('get', '/tranSettlementReport/getTranSettlementReport', {
  171. batchId: this.id
  172. }).then(res => {
  173. if (res.data.code == 200) {
  174. if (res.data.data.length > 0) {
  175. this.num = 0
  176. for (var i = 0; i < res.data.data.length; i++) {
  177. if (res.data.data[i].totalPayable) {
  178. this.num += res.data.data[i].totalPayable
  179. }
  180. }
  181. }
  182. this.num = this.num.toFixed(2)
  183. this.list = res.data.data
  184. // console.log(this.list, 124)
  185. // 查流程
  186. this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
  187. businessCode: 'TRANSPORTATION-SETTLEMENT-REPORT',
  188. tmpCompId: uni.getStorageSync('pcUserInfo').compId
  189. }).then(res1 => {
  190. this.$api.doRequest('get', '/commonUser/getHis', {
  191. workflowId: res1.data.data[0].id,
  192. businessKey: this.id,
  193. // branch:that.list[0].jointVentureParties?that.list[0].jointVentureParties:'zt'
  194. }).then(response => {
  195. uni.hideLoading()
  196. for (let i = 0; i < response.data.data.length; i++) {
  197. this.$set(response.data.data[i], 'status', 'question')
  198. console.log(response.data.data[i].workflowHistoricTasks, i)
  199. if (response.data.data[i].commonStaffs) {
  200. response.data.data[i].showflow = false
  201. response.data.data[i].operatorTitle = response.data.data[i]
  202. .desc.substring(0, 2)
  203. response.data.data[i].operatorName = response.data.data[i]
  204. .desc
  205. response.data.data[i].staffscontent = '共' + response.data
  206. .data[i].commonStaffs.length + '人,当前审核' + response.data
  207. .data[i].workflowHistoricTasks.length + '人'
  208. if (response.data.data[i].workflowHistoricTasks && response
  209. .data.data[i].workflowHistoricTasks.length > 0) {
  210. if (response.data.data[i].workflowHistoricTasks
  211. .length != response.data.data[i].commonStaffs
  212. .length) {
  213. // response.data.data[i].status='question'
  214. this.$set(response.data.data[i], 'status',
  215. 'question')
  216. } else {
  217. this.$set(response.data.data[i], 'status',
  218. 'success')
  219. // response.data.data[i].status='success'
  220. }
  221. response.data.data[i].workflowlen = response.data.data[
  222. i].workflowHistoricTasks.length
  223. var workflowdata = response.data.data[i]
  224. .workflowHistoricTasks
  225. var staffsdata = response.data.data[i].commonStaffs
  226. for (let q = 0; q < staffsdata.length; q++) {
  227. staffsdata[q].status = false
  228. staffsdata[q].staffTitle = staffsdata[q].staffName
  229. for (let k = 0; k < workflowdata.length; k++) {
  230. if (staffsdata[q].staffId == workflowdata[k]
  231. .operatorId) {
  232. staffsdata[q].status = true
  233. }
  234. }
  235. }
  236. }
  237. response.data.data[i].commonStaffs1 = response.data.data[i]
  238. .commonStaffs
  239. } else {
  240. if (response.data.data[i].workflowHistoricTasks && response
  241. .data.data[i].workflowHistoricTasks.length > 0) {
  242. var len = response.data.data[i].workflowHistoricTasks
  243. .length - 1
  244. if (response.data.data[i].workflowHistoricTasks[len]
  245. .approved) {
  246. this.$set(response.data.data[i], 'status',
  247. 'success')
  248. } else {
  249. this.$set(response.data.data[i], 'status', 'error')
  250. }
  251. response.data.data[i].operatorTitle = response.data
  252. .data[i].workflowHistoricTasks[len].operatorName
  253. .substring(response.data.data[i]
  254. .workflowHistoricTasks[0].operatorName.length -
  255. 2)
  256. response.data.data[i].operatorName = response.data
  257. .data[i].workflowHistoricTasks[len].operatorName
  258. var time = new Date(response.data.data[i]
  259. .workflowHistoricTasks[len].claimTime)
  260. .getTime()
  261. response.data.data[i].updateDate = this.$u.timeFormat(
  262. time, 'mm.dd hh:MM')
  263. response.data.data[i].auditMind = response.data.data[i]
  264. .workflowHistoricTasks[len].auditMind
  265. } else {
  266. this.$set(response.data.data[i], 'status', 'question')
  267. // response.data.data[i].status='question'
  268. if (response.data.data[i].desc == '总经理助理审核') {
  269. response.data.data[i].operatorTitle = '总助'
  270. } else if (response.data.data[i].desc == '杜大光审核') {
  271. response.data.data[i].operatorTitle = '大光'
  272. } else {
  273. response.data.data[i].operatorTitle = response.data
  274. .data[i].desc.substring(0, 2)
  275. }
  276. response.data.data[i].operatorName = response.data
  277. .data[i].desc
  278. var time1 = new Date(response.data.data[i].updateDate)
  279. .getTime()
  280. response.data.data[i].updateDate = this.$u.timeFormat(
  281. time1, 'mm.dd hh:MM')
  282. response.data.data[i].auditMind = ''
  283. }
  284. }
  285. }
  286. console.log(response.data.data)
  287. for (let i = 0; i < response.data.data.length; i++) {
  288. if (response.data.data[i].status == "error") {
  289. this.auditCheck = "error"
  290. break;
  291. } else if (response.data.data[i].status == "question") {
  292. this.auditCheck = "question"
  293. break;
  294. } else {
  295. this.auditCheck = "success"
  296. }
  297. }
  298. this.auditList = response.data.data
  299. var time2 = new Date(this.list[0].createDate).getTime()
  300. var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
  301. this.auditList.unshift({
  302. operatorTitle: this.list[0].requester.substring(0, 2),
  303. operatorName: this.list[0].requester,
  304. updateDate: time3,
  305. auditMind: '',
  306. desc: '发起申请',
  307. showflow: false,
  308. commonStaffs1: null,
  309. commonStaffs: null,
  310. workflowHistoricTasks: [],
  311. status: 'success'
  312. })
  313. })
  314. })
  315. }
  316. })
  317. // this.$api.doRequest('get', '/tranSettlementReport/getInfo', {
  318. // id: this.id
  319. // }).then(res => {
  320. // this.contractNo = res.data.data.contractNo
  321. // this.carId = res.data.data.carId
  322. // this.customerName = res.data.data.customer
  323. // this.shippingAddress = res.data.data.send
  324. // this.receivingAddress = res.data.data.receive
  325. // if (res.data.code == 200) {
  326. // this.$api.doRequest('get', '/tranSettlementReport/getTranSettlementReport', {
  327. // compId: "2710b21efc1e4393930c5dc800010dc4",
  328. // currentPage: this.currentPage,
  329. // pageSize: this.pageSize,
  330. // contractNo: this.contractNo,
  331. // carId: this.carId,
  332. // }).then(res => {
  333. // if (res.data.code == 200) {
  334. // this.list = res.data.data.records[0]
  335. // console.log(this.list, 124)
  336. // }
  337. // })
  338. // }
  339. // })
  340. },
  341. close() {
  342. this.show = false
  343. },
  344. pass() {
  345. this.show = true
  346. this.title = '审核意见(通过)'
  347. },
  348. reject() {
  349. this.show = true
  350. this.title = '驳回原因(驳回)'
  351. },
  352. // 驳回
  353. rejectSubmit() {
  354. var that = this
  355. if (!this.auditMind) {
  356. this.$api.msg('驳回原因不能为空!')
  357. } else {
  358. this.show = false
  359. uni.showModal({
  360. content: "是否确定驳回?",
  361. showCancel: true,
  362. confirmText: '确定',
  363. success: function(res) {
  364. if (res.confirm) {
  365. that.audit(that.list[0], 0, false, true, that.auditMind)
  366. }
  367. }
  368. })
  369. }
  370. },
  371. //通过
  372. passSubmit() {
  373. var that = this
  374. if (this.title == '驳回原因(驳回)') {
  375. this.rejectSubmit()
  376. } else {
  377. this.show = false
  378. uni.showModal({
  379. content: "是否确定通过?",
  380. showCancel: true,
  381. confirmText: '确定',
  382. success: function(res) {
  383. if (res.confirm) {
  384. that.audit(that.list[0], 0, true, 2, that.auditMind)
  385. }
  386. }
  387. })
  388. }
  389. },
  390. //审核方法
  391. audit(list, index, status, status2, reason) {
  392. uni.showLoading({
  393. title: "审核中"
  394. })
  395. let that = this
  396. if (this.list) {
  397. this.$api.doRequest('post', '/newWorkflow/api/handle', {
  398. taskId: list.taskId,
  399. approved: status,
  400. auditMind: this.auditMind,
  401. needReapply: status2 != undefined ? true : false,
  402. }).then(res => {
  403. if (status == true) {
  404. this.$api.msg('通过成功')
  405. } else if (status == false) {
  406. this.$api.msg('驳回成功')
  407. }
  408. setTimeout(function() {
  409. if (that.everyCheck) {
  410. helper.setAudit(that.list[0])
  411. } else {
  412. uni.navigateBack()
  413. }
  414. }, 1000);
  415. })
  416. }
  417. },
  418. }
  419. }
  420. </script>
  421. <style scoped lang="scss">
  422. .container {
  423. margin: 10rpx;
  424. padding: 20rpx 20rpx 230rpx 20rpx;
  425. }
  426. .u-form {
  427. margin-bottom: 20rpx;
  428. background: #fff;
  429. border-radius: 10px;
  430. padding: 30rpx 10px;
  431. .u-form-item {
  432. line-height: 30px;
  433. padding: 0px 0;
  434. font-size: 26rpx;
  435. color: #878C9C;
  436. }
  437. }
  438. .content {
  439. .top {
  440. display: flex;
  441. justify-content: space-between;
  442. border-radius: 20rpx;
  443. background: white;
  444. padding: 30rpx 20rpx;
  445. font-size: 36rpx;
  446. margin-top: 20rpx;
  447. }
  448. .top1 {
  449. // display: flex;
  450. justify-content: space-between;
  451. align-items: center;
  452. border-radius: 20rpx;
  453. background: white;
  454. padding: 10rpx 20rpx;
  455. font-size: 30rpx;
  456. margin-top: 20rpx;
  457. }
  458. .top_info {
  459. margin: 10rpx 0;
  460. width: 70%;
  461. text-align: right;
  462. }
  463. .title {
  464. font-size: 28rpx;
  465. font-weight: 600;
  466. color: #333333;
  467. text-align: left;
  468. margin-bottom: 30rpx;
  469. }
  470. .car-container {
  471. // border-bottom: 2rpx solid #EEEEEE;
  472. }
  473. .car-container-item {
  474. background: white;
  475. padding: 10rpx 20rpx;
  476. border-radius: 20rpx;
  477. margin: 20rpx 0;
  478. }
  479. .car-type-item {
  480. display: inline-flex;
  481. // justify-content: center;
  482. width: 33.33%;
  483. margin-bottom: 40rpx;
  484. }
  485. .title {
  486. font-size: 36rpx;
  487. }
  488. }
  489. .bottom-btn {
  490. width: 100%;
  491. position: fixed;
  492. bottom: 0;
  493. display: flex;
  494. z-index: 2;
  495. left: 0;
  496. background-color: #f8f8f8;
  497. flex-direction: column;
  498. .btn1,
  499. .btn2 {
  500. width: 100%;
  501. margin-bottom: 26rpx;
  502. border-radius: 90rpx;
  503. }
  504. .btn1 {
  505. background: white;
  506. color: #00C265;
  507. }
  508. }
  509. .submit {
  510. width: 40%;
  511. background: #22C572;
  512. border-radius: 10rpx;
  513. }
  514. .left {
  515. background: #FEECE6;
  516. color: #FE6430;
  517. }
  518. .center {
  519. background: #EBEEFA;
  520. color: #5C76DF;
  521. }
  522. .right {
  523. background: #E9F8F0;
  524. color: #22C572;
  525. }
  526. .left,
  527. .center,
  528. .right {
  529. width: 50rpx;
  530. height: 50rpx;
  531. text-align: center;
  532. line-height: 50rpx;
  533. border-radius: 10rpx;
  534. }
  535. .textInfo {
  536. margin: 6rpx 0 0 10rpx;
  537. }
  538. .topInfo {
  539. height: 210rpx;
  540. background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
  541. padding: 30rpx;
  542. .topInfo-item {
  543. height: 158rpx;
  544. background-color: #FFFFFF;
  545. border-radius: 20rpx;
  546. padding: 40rpx;
  547. .logo {
  548. width: 40rpx;
  549. height: 40rpx;
  550. margin-top: 8rpx;
  551. }
  552. .infoText {
  553. font-size: 36rpx;
  554. font-weight: 600;
  555. margin-left: 20rpx;
  556. }
  557. .infoData {
  558. color: #878C9C;
  559. font-size: 26rpx;
  560. margin-top: 10rpx;
  561. }
  562. }
  563. }
  564. .shade {
  565. position: fixed;
  566. top: 0;
  567. left: 0;
  568. height: 100%;
  569. width: 100%;
  570. background: rgba(0, 0, 0, 0.4);
  571. z-index: 3;
  572. .wrap {
  573. position: absolute;
  574. left: 0;
  575. top: 0;
  576. right: 0;
  577. bottom: 0;
  578. margin: auto;
  579. background: #fff;
  580. width: calc(100% - 198rpx);
  581. height: 700rpx;
  582. border-radius: 20rpx;
  583. .alert-top {
  584. padding: 33rpx;
  585. display: flex;
  586. justify-content: center;
  587. align-items: center;
  588. position: relative;
  589. }
  590. .title {
  591. font-size: 32rpx;
  592. font-weight: 600;
  593. color: #333333;
  594. }
  595. .close {
  596. position: absolute;
  597. right: 33rpx;
  598. }
  599. }
  600. }
  601. .cancel,
  602. .confirm {
  603. position: absolute;
  604. display: inline-block;
  605. width: 50%;
  606. text-align: center;
  607. bottom: 0;
  608. padding: 10px;
  609. border-top: 1px solid #eee;
  610. font-size: 34rpx;
  611. }
  612. .cancel {
  613. left: 0;
  614. border-right: 1px solid #eee;
  615. color: #AFB3BF;
  616. }
  617. .confirm {
  618. right: 0;
  619. color: #22C572;
  620. }
  621. .u-textarea-style {
  622. margin: 20rpx;
  623. background: #F9F9FA;
  624. border-radius: 10px;
  625. border: 1px solid #EEEEEE;
  626. padding: 10rpx 20rpx;
  627. position: relative;
  628. .right-bottom {
  629. position: absolute;
  630. right: 20rpx;
  631. bottom: 20rpx;
  632. color: #AFB3BF;
  633. }
  634. }
  635. /deep/.u-input__textarea {
  636. height: 300rpx !important;
  637. }
  638. .person-info {
  639. background: white;
  640. padding: 20rpx 0;
  641. border-radius: 20rpx;
  642. // margin-bottom: 50rpx;
  643. margin: 20rpx 0;
  644. .tit {
  645. font-size: 36rpx;
  646. }
  647. }
  648. .c-row {
  649. display: -webkit-box;
  650. display: -webkit-flex;
  651. display: flex;
  652. -webkit-box-align: center;
  653. -webkit-align-items: center;
  654. align-items: center;
  655. padding: 20rpx 30rpx;
  656. position: relative;
  657. }
  658. .c-row1 {
  659. // display: -webkit-box;
  660. // display: -webkit-flex;
  661. // display: flex;
  662. -webkit-box-align: center;
  663. -webkit-align-items: center;
  664. align-items: center;
  665. padding: 20rpx 30rpx;
  666. position: relative;
  667. }
  668. .container {
  669. padding: 20rpx 20rpx 250rpx 20rpx;
  670. }
  671. .u-form {
  672. margin-bottom: 20rpx;
  673. background: #fff;
  674. border-radius: 10px;
  675. padding: 30rpx 10px;
  676. .u-form-item {
  677. line-height: 30px;
  678. padding: 0px 0;
  679. font-size: 26rpx;
  680. color: #878C9C;
  681. }
  682. }
  683. .content {
  684. margin-top: 30rpx;
  685. .top {
  686. display: flex;
  687. justify-content: space-between;
  688. }
  689. .content-item {
  690. border-radius: 20rpx;
  691. background: white;
  692. padding: 40rpx 20rpx;
  693. margin-bottom: 30rpx;
  694. }
  695. .title {
  696. font-size: 32rpx;
  697. font-weight: 600;
  698. color: #333333;
  699. text-align: left;
  700. margin: 20rpx 0;
  701. }
  702. .car-container {
  703. border-bottom: 2rpx solid #EEEEEE;
  704. }
  705. .car-type-item {
  706. font-size: 28rpx;
  707. margin: 20rpx 0;
  708. color: #878C9C;
  709. }
  710. .weightInfoCss {
  711. font-size: 28rpx;
  712. color: #333333;
  713. font-weight: 500;
  714. }
  715. .row {
  716. display: flex;
  717. justify-content: space-between;
  718. // .right,
  719. // input {
  720. // font-size: 28rpx;
  721. // // color: #333333;
  722. // }
  723. }
  724. .money {
  725. font-size: 32rpx;
  726. font-weight: 500;
  727. margin-bottom: 30rpx;
  728. }
  729. .moneyInfo {
  730. color: #22C572;
  731. font-size: 32rpx;
  732. }
  733. }
  734. .bottom-btn {
  735. width: 100%;
  736. position: fixed;
  737. bottom: 0;
  738. display: flex;
  739. z-index: 2;
  740. left: 0;
  741. background-color: #f8f8f8;
  742. flex-direction: column;
  743. .btn1,
  744. .btn2 {
  745. width: 100%;
  746. margin-bottom: 26rpx;
  747. border-radius: 90rpx;
  748. }
  749. .btn1 {
  750. background: white;
  751. color: #00C265;
  752. }
  753. }
  754. .topInfo {
  755. height: 210rpx;
  756. background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
  757. padding: 30rpx;
  758. .topInfo-item {
  759. height: 150rpx;
  760. background-color: #FFFFFF;
  761. border-radius: 20rpx;
  762. padding: 40rpx;
  763. .logo {
  764. width: 40rpx;
  765. height: 40rpx;
  766. margin-top: 8rpx;
  767. }
  768. .infoText {
  769. font-size: 36rpx;
  770. font-weight: 600;
  771. margin-left: 20rpx;
  772. }
  773. .infoData {
  774. color: #878C9C;
  775. font-size: 26rpx;
  776. margin-top: 10rpx;
  777. }
  778. }
  779. }
  780. .shade {
  781. position: fixed;
  782. top: 0;
  783. left: 0;
  784. height: 100%;
  785. width: 100%;
  786. background: rgba(0, 0, 0, 0.4);
  787. z-index: 3;
  788. .wrap {
  789. position: absolute;
  790. left: 0;
  791. top: 0;
  792. right: 0;
  793. bottom: 0;
  794. margin: auto;
  795. background: #fff;
  796. width: calc(100% - 198rpx);
  797. height: 700rpx;
  798. border-radius: 20rpx;
  799. .alert-top {
  800. padding: 33rpx;
  801. display: flex;
  802. justify-content: center;
  803. align-items: center;
  804. position: relative;
  805. }
  806. .title {
  807. font-size: 32rpx;
  808. font-weight: 600;
  809. color: #333333;
  810. }
  811. .close {
  812. position: absolute;
  813. right: 33rpx;
  814. }
  815. }
  816. }
  817. .cancel,
  818. .confirm {
  819. position: absolute;
  820. display: inline-block;
  821. width: 50%;
  822. text-align: center;
  823. bottom: 0;
  824. padding: 10px;
  825. border-top: 1px solid #eee;
  826. font-size: 34rpx;
  827. }
  828. .cancel {
  829. left: 0;
  830. border-right: 1px solid #eee;
  831. color: #AFB3BF;
  832. }
  833. .confirm {
  834. right: 0;
  835. color: #22C572;
  836. }
  837. .textarea {
  838. margin: 18rpx auto;
  839. width: 100%;
  840. background: #F9F9FA;
  841. border-radius: 10px;
  842. border: 1px solid #EEEEEE;
  843. font-size: 28rpx;
  844. padding: 10px;
  845. }
  846. .textCss {
  847. display: flex;
  848. justify-content: flex-end;
  849. width: 100%;
  850. text-align: right;
  851. color: #333333;
  852. }
  853. .u-textarea-style {
  854. margin: 20rpx;
  855. background: #F9F9FA;
  856. border-radius: 10px;
  857. border: 1px solid #EEEEEE;
  858. padding: 10rpx 20rpx;
  859. position: relative;
  860. height: 240px;
  861. /deep/.uni-textarea-textarea {
  862. width: 80%;
  863. }
  864. .right-bottom {
  865. position: absolute;
  866. right: 20rpx;
  867. bottom: 20rpx;
  868. color: #AFB3BF;
  869. }
  870. }
  871. /deep/.u-input__textarea {
  872. height: 300rpx !important;
  873. }
  874. .content2 {
  875. background: white;
  876. margin: 20rpx 0;
  877. border-radius: 20rpx;
  878. padding: 20rpx;
  879. .row {
  880. display: flex;
  881. .row-left {
  882. display: flex;
  883. align-items: center;
  884. .item1 {
  885. position: relative;
  886. .item-content {
  887. background: #617AE0;
  888. width: 44px;
  889. height: 44px;
  890. border-radius: 22px;
  891. line-height: 44px;
  892. text-align: center;
  893. font-size: 15px;
  894. color: #fff;
  895. }
  896. .status {
  897. position: absolute;
  898. border-radius: 50%;
  899. padding: 0px 2px;
  900. right: -3px;
  901. bottom: -3px;
  902. background: #fff;
  903. }
  904. .status.success {
  905. border: 1px solid rgb(60, 156, 255);
  906. }
  907. .status.error {
  908. border: 1px solid rgb(245, 108, 108);
  909. }
  910. .status.question {
  911. border: 1px solid #f9ae3d;
  912. }
  913. }
  914. }
  915. .row-right {
  916. width: 80%;
  917. // color: #B0B1B5;
  918. margin-top: 10px;
  919. .right-content {
  920. background: #F2F3F7;
  921. margin-left: 10px;
  922. margin-top: 10px;
  923. padding: 10px;
  924. border-radius: 5px;
  925. color: #B0B1B5;
  926. }
  927. .right-item {
  928. display: flex;
  929. justify-content: space-between;
  930. .time {
  931. color: #999;
  932. }
  933. .item2 {
  934. margin-left: 20rpx;
  935. margin-top: -7px;
  936. .name {
  937. font-size: 28rpx;
  938. font-weight: 800;
  939. margin-bottom: 4px;
  940. }
  941. .status.success {
  942. color: #6CC48C;
  943. }
  944. .status.error {
  945. color: rgb(245, 108, 108);
  946. }
  947. .status.question {
  948. color: #f9ae3d;
  949. }
  950. }
  951. }
  952. }
  953. }
  954. .row2 {
  955. display: flex;
  956. .item-content {
  957. background: #22C572;
  958. width: 30px;
  959. height: 30px;
  960. border-radius: 50%;
  961. line-height: 30px;
  962. text-align: center;
  963. font-size: 12px;
  964. color: #fff;
  965. padding: 0 2px;
  966. margin: 0 auto;
  967. }
  968. .status {
  969. position: absolute;
  970. top: 0;
  971. right: 0;
  972. }
  973. }
  974. .row-line {
  975. width: 1px;
  976. height: 30px;
  977. background: #F2F2F2;
  978. margin: 10rpx 50rpx;
  979. }
  980. .audit {
  981. margin-top: 20rpx;
  982. }
  983. }
  984. .form_top {
  985. border-bottom: 1px solid #C7CAD6;
  986. padding-bottom: 10px;
  987. font-size: 30rpx;
  988. font-weight: 600;
  989. }
  990. .form_view {
  991. margin: 20rpx 0;
  992. border-radius: 20rpx;
  993. background: #F9F9FA;
  994. padding: 30rpx 20rpx;
  995. }
  996. .label_css {
  997. font-size: 26rpx;
  998. color: #878C9C;
  999. }
  1000. .input_css {
  1001. font-size: 20rpx;
  1002. }
  1003. /deep/.uni-textarea-wrapper {
  1004. height: 200px;
  1005. }
  1006. // .fujian_title{
  1007. // font-size: 34rpx;
  1008. // margin-top: 20px;
  1009. // font-weight: 600;
  1010. // // margin-left: 10px;
  1011. // }
  1012. .headInfo {
  1013. height: 100px;
  1014. background-color: #FFFFFF;
  1015. margin-bottom: 20rpx;
  1016. border-radius: 10px;
  1017. padding: 30rpx 10px;
  1018. display: flex;
  1019. .headInfo_left {
  1020. width: 10%;
  1021. line-height: 60px;
  1022. text-align: center;
  1023. }
  1024. .headInfo_middle {
  1025. width: 70%;
  1026. padding-left: 10px;
  1027. }
  1028. .headInfo_right {
  1029. width: 20%;
  1030. line-height: 60px;
  1031. .char_a {
  1032. color: #22C572;
  1033. }
  1034. .char_b {
  1035. color: #FE6430;
  1036. }
  1037. .char_c {
  1038. color: #FB2323;
  1039. }
  1040. .char_a,
  1041. .char_b,
  1042. .char_c {
  1043. font-size: 16px;
  1044. }
  1045. }
  1046. .adopt {
  1047. position: absolute;
  1048. right: 30px;
  1049. top: 60px;
  1050. .adopt_img {
  1051. width: 90px;
  1052. height: 90px;
  1053. }
  1054. }
  1055. .headInfo_title {
  1056. font-size: 19px;
  1057. color: #333333;
  1058. font-weight: 600;
  1059. }
  1060. .headInfo_No {
  1061. color: #878C9C;
  1062. font-size: 13px;
  1063. margin-top: 10px;
  1064. }
  1065. }
  1066. .img_item {
  1067. display: flex;
  1068. width: 100%;
  1069. margin: 10px 0;
  1070. padding: 0 10rpx;
  1071. .imgsign {
  1072. width: 25px;
  1073. height: 25px;
  1074. margin-top: 6px;
  1075. }
  1076. .char_css {
  1077. font-size: 28rpx;
  1078. font-weight: 600;
  1079. display: -webkit-box;
  1080. overflow: hidden;
  1081. /*! autoprefixer: off; */
  1082. -webkit-box-orient: vertical;
  1083. -webkit-line-clamp: 1;
  1084. -webkit-box-orient: vertical;
  1085. text-overflow: ellipsis;
  1086. word-break: break-all;
  1087. }
  1088. .img_size {
  1089. color: #B0B3BF;
  1090. font-size: 12px;
  1091. margin-top: 5px;
  1092. }
  1093. .img_dowload {
  1094. width: 14%;
  1095. color: #22C572;
  1096. text-align: right;
  1097. }
  1098. }
  1099. </style>