deliveriedList.vue 21 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009
  1. <template>
  2. <view>
  3. <u-navbar>
  4. <view class="u-navbar ">
  5. <view class="title">
  6. 出库设备清单<text>({{recordsTotal}})</text>
  7. </view>
  8. </view>
  9. <view class="details" v-if="status==1" slot="bottom">
  10. <view class="list-details">
  11. <view class="list-head">
  12. <view class="title">
  13. 扫码出库
  14. </view>
  15. <view class="amount" @click="gotoscan('')">
  16. <u-icon name="scan" color="#0051ff" ></u-icon>扫码识别
  17. </view>
  18. </view>
  19. </view>
  20. </view>
  21. </u-navbar>
  22. <u-popup v-model="showpopup" class="" mode="bottom"
  23. border-radius="14"
  24. :closeable="true" >
  25. <view class="scantitle">连续扫码</view>
  26. <view class="list">
  27. <view class=" list-infos">
  28. <view class="infos-head">
  29. <view class="name">
  30. {{nowscan.title?nowscan.title:'扫码后出当前结果'}}
  31. </view>
  32. <view class="name">
  33. 编号:{{nowscan.code}}
  34. </view>
  35. </view>
  36. <view class="infos-head infos-head2" style="margin-bottom: 12rpx;">
  37. <view class="name">
  38. 上次巡检:{{nowscan.experimentLastTime}}
  39. </view>
  40. <view class="name" v-show="nowscan.experimentPeriod">
  41. 周期:{{nowscan.experimentPeriod}}天
  42. </view>
  43. </view>
  44. <view class="infos">
  45. <view class="infos-1">
  46. <view class="infos-item">
  47. <view class="item-name">
  48. 厂家:
  49. </view>
  50. <view class="item-value">
  51. {{nowscan.manufactor}}
  52. </view>
  53. </view>
  54. <view class="infos-item">
  55. <view class="item-name">
  56. 单位:
  57. </view>
  58. <view class="item-value">
  59. {{nowscan.unit}}
  60. </view>
  61. </view>
  62. </view>
  63. <view class="infos-2">
  64. <view class="infos-item">
  65. <view class="item-name">
  66. 规格:
  67. </view>
  68. <view class="item-value">
  69. {{nowscan.specifications}}
  70. </view>
  71. </view>
  72. <view class="infos-item">
  73. <view class="item-name">
  74. 型号:
  75. </view>
  76. <view class="item-value">
  77. {{nowscan.model}}
  78. </view>
  79. </view>
  80. </view>
  81. </view>
  82. </view>
  83. </view>
  84. <camera mode="scanCode" resolution='medium'
  85. @scancode="takeCode" v-if="showpopup"
  86. device-position="back" flash="off" @error="error"
  87. style="width: 100%; height: 300px;"></camera>
  88. </u-popup>
  89. <view class="listHead " :class="status==1?'container':''" >
  90. <view class="list" v-for="(item,index) in list" :key="index">
  91. <!-- 清单信息 -->
  92. <view class="list-infos">
  93. <view class="infos-head">
  94. <view class="name">
  95. {{item.deviceName}}
  96. </view>
  97. </view>
  98. <view class="infos">
  99. <view class="infos-1">
  100. <view class="infos-item">
  101. <view class="item-name">
  102. {{recordItemStatus(item.status)}}:
  103. </view>
  104. <view class="item-value" :style="'color:'+recordStatusColor(0)">
  105. {{item.needCount}}
  106. </view>
  107. </view>
  108. <!--
  109. <view class="infos-item">
  110. <view class="item-name">
  111. 厂家:
  112. </view>
  113. <view class="item-value">
  114. {{item.deviceInfo.manufactor}}
  115. </view>
  116. </view> -->
  117. <view class="infos-item">
  118. <view class="item-name">
  119. 单位:
  120. </view>
  121. <view class="item-value">
  122. {{item.deviceInfo.unit}}
  123. </view>
  124. </view>
  125. </view>
  126. <view class="infos-2">
  127. <view class="infos-item">
  128. <view class="item-name">
  129. 规格:
  130. </view>
  131. <view class="item-value">
  132. {{item.deviceInfo.specifications}}
  133. </view>
  134. </view>
  135. <view class="infos-item">
  136. <view class="item-name">
  137. 型号:
  138. </view>
  139. <view class="item-value">
  140. {{item.deviceInfo.model}}
  141. </view>
  142. </view>
  143. </view>
  144. </view>
  145. <view class="infos" v-if="false">
  146. <view class="infos-1">
  147. <view class="infos-item">
  148. <view class="item-name">
  149. {{recordItemStatus(item.status)}}:
  150. </view>
  151. <view class="item-value" :style="'color:'+recordStatusColor(0)">
  152. {{item.needCount}}
  153. </view>
  154. </view>
  155. </view>
  156. <view class="infos-2" v-if="false">
  157. <view class="infos-item">
  158. <view class="item-name">
  159. 库存:
  160. </view>
  161. <view class="item-value" :style="'color:'+recordStatusColor(1)">
  162. {{item.deviceInfo.count}}
  163. </view>
  164. </view>
  165. </view>
  166. </view>
  167. <!-- 地址 -->
  168. <view class="address">
  169. <view class="name">
  170. 位置:
  171. </view>
  172. <view class="value">
  173. {{item.deviceInfo.addressId?item.deviceInfo.addressId:'未录入'}}
  174. </view>
  175. </view>
  176. <!-- 备注 -->
  177. <view class="remark" v-if="false">
  178. <view class="name">
  179. 备注:
  180. </view>
  181. <view class="value">
  182. 22
  183. </view>
  184. </view>
  185. <view class="prepare-out" v-if="item.realDeviceList&&item.realDeviceList.length">
  186. <view class="head">
  187. <view class="amount">
  188. <view class="title">
  189. 实际领用:
  190. </view>
  191. <view class="value">
  192. {{item.realDeviceList.length}}
  193. </view>
  194. </view>
  195. <view class="unfold" v-show="item.realDeviceList.length>2" @click="changeShow(item)">
  196. {{item.show?'收起':'展开'}}<u-icon name="arrow-down"></u-icon>
  197. <!-- <view class="option" v-if="show==true">
  198. </view> -->
  199. </view>
  200. </view>
  201. <!-- 编号 -->
  202. <view class="serial-number" v-for="(item2,j) in item.realDeviceList"
  203. v-show="j<2||item.show" :key="j">
  204. <view class="itemLine">
  205. <span class="text">
  206. 设备编号:
  207. </span>
  208. <span class="number" >
  209. {{item2.deviceCode}}
  210. </span>
  211. <span class="view" @click="ckInfo(item2)" >
  212. 查看设备
  213. </span>
  214. </view>
  215. </view>
  216. </view>
  217. <view class="prepare-out" v-if="scanMap.get(item.deviceName)&&scanMap.get(item.deviceName).length">
  218. <view class="head">
  219. <view class="amount">
  220. <view class="title">
  221. 实际领用:
  222. </view>
  223. <view class="value">
  224. {{scanMap.get(item.deviceName).length}}
  225. </view>
  226. </view>
  227. <view class="unfold" v-show="scanMap.get(item.deviceName).length>2" @click="changeShow(item)">
  228. {{item.show?'收起':'展开'}}<u-icon name="arrow-down"></u-icon>
  229. <!-- <view class="option" v-if="show==true">
  230. </view> -->
  231. </view>
  232. </view>
  233. <!-- 编号 -->
  234. <view class="serial-number" v-for="(item2,j) in scanMap.get(item.deviceName)"
  235. v-show="j<2||item.show" :key="j">
  236. <view class="item">
  237. <view class="text">
  238. 设备编号:
  239. </view>
  240. <view class="number" @click="delOutList(item2)">
  241. <span v-if="item2.healthStatus!=1"
  242. :style="' margin-right: 1px;color:'+recordStatusColor(item2.healthStatus)">[{{item2.healthStatusN}}]</span>
  243. <span v-if="item2.status!=1"
  244. :style="' margin-right: 1px;color:'+recordStatusColor(item2.status)">[{{item2.statusN}}]</span>
  245. {{item2.code}}
  246. </view>
  247. </view>
  248. <view class="del" @click="delOutList(item2)">
  249. <u-icon name="trash-fill"></u-icon>
  250. <!-- <img src="@/assets/img/riLine-delete-bin-line Copy@1x.png" alt=""> -->
  251. </view>
  252. </view>
  253. </view>
  254. <textarea class="textarea"
  255. placeholder="备注" name="" id="" v-model="item.remark" cols="30" rows="1"></textarea>
  256. </view>
  257. </view>
  258. <view class="list" v-if="noScanList.length" >
  259. <view class="list-infos">
  260. <view class="infos-head">
  261. <view class="name">
  262. 扫码结果不符合清单
  263. </view>
  264. </view>
  265. <view class="infos">
  266. <view class="infos-1">
  267. <view class="infos-item">
  268. <view class="item-value">
  269. 以下设备不计入出库设备中
  270. </view>
  271. </view>
  272. </view>
  273. </view>
  274. <view class="prepare-out" >
  275. <view class="head">
  276. <view class="amount">
  277. <view class="title">
  278. 不符合清单:
  279. </view>
  280. </view>
  281. </view>
  282. <!-- 编号 -->
  283. <view class="serial-number" v-for="(item,index) in noScanList" :key="index">
  284. <view class="item">
  285. <view class="text">
  286. 设备编号:
  287. </view>
  288. <view class="number">
  289. {{item.code}}
  290. </view>
  291. </view>
  292. <view class="item">
  293. <view class="text">
  294. 设备名称:
  295. </view>
  296. <view class="number">
  297. {{item.title}}
  298. </view>
  299. </view>
  300. </view>
  301. </view>
  302. </view>
  303. </view>
  304. <u-divider border-color="#CFD2D5">已经到底了</u-divider>
  305. </view>
  306. <!-- 确认出库 -->
  307. <view class="bottom" v-if="status==1">
  308. <u-button type="primary" @click="gotoOut()">确认出库</u-button>
  309. </view>
  310. </view>
  311. </template>
  312. <script>
  313. import * as API from '@/apis/pagejs/storeManagement.js'
  314. import {
  315. recordItemStatus,
  316. recordStatusColor
  317. } from '@/apis/status.js'
  318. export default {
  319. data() {
  320. return {
  321. nowscan:{
  322. "title": "",
  323. "specifications": "",
  324. "experimentLastTime":"",
  325. "manufactor": "",
  326. "unit": "",
  327. "model": "",
  328. "code": "",
  329. },
  330. status:"",
  331. deviceposition:"back",
  332. scanFunctionIsUseable:true,
  333. showpopup:false,
  334. show: false,
  335. list: [],
  336. scanList: [],
  337. id: "",
  338. recordsTotal: 0,
  339. listFrom: {
  340. pageIndex: 1,
  341. pageSize: 99999,
  342. }
  343. }
  344. },
  345. onReachBottom() {
  346. if (this.list.length < this.recordsTotal) {
  347. this.myLoadmore();
  348. }
  349. },
  350. onLoad(op) {
  351. this.id = op.id
  352. this.status = op.status
  353. this.getList()
  354. },
  355. onReady() {
  356. },
  357. computed: {
  358. noScanList() {
  359. var list= this.list.map(item=>{
  360. return item.deviceName
  361. })
  362. var map = new Map()
  363. var reList= this.scanList.filter(item=>{
  364. return list.indexOf(item.title)==-1
  365. })
  366. return reList
  367. },
  368. scanMap() {
  369. var map = new Map()
  370. this.scanList.forEach(item => {
  371. if (map.has(item.title)) {
  372. var list = map.get(item.title)
  373. list.unshift(item)
  374. map.set(item.title, list)
  375. } else {
  376. map.set(item.title, [item])
  377. }
  378. })
  379. console.log(map)
  380. return map
  381. },
  382. },
  383. methods: {
  384. recordItemStatus,
  385. recordStatusColor,
  386. ckInfo(item) {
  387. var url = "/pages/otherFunctions/equipmentRetrieval/equipmentInfo?id=" + item.deviceId;
  388. uni.navigateTo({
  389. url: url,
  390. })
  391. },
  392. gotoOut() {
  393. //recordData
  394. uni.showLoading({
  395. title: "加载中",
  396. mask: true,
  397. })
  398. var list=[];
  399. var bl=true;
  400. this.list.forEach(item=>{
  401. var maplist=this.scanMap.get(item.deviceName);
  402. if(!maplist||maplist.length==0){
  403. bl=false;
  404. uni.showToast({
  405. title: item.deviceName+"未出库设备",
  406. icon: "none"
  407. })
  408. }
  409. if(bl){
  410. var maplistStr=maplist.map(item2=>{
  411. return item2.id
  412. }).join()
  413. list.push({
  414. "remark":item.remark?item.remark:"",
  415. "deviceIds":maplistStr,
  416. "recordDeviceId":item.id
  417. })
  418. }
  419. })
  420. if(!bl){
  421. uni.hideLoading();
  422. return;
  423. }
  424. var obj={
  425. "recordId":this.id,
  426. "deviceData":list,
  427. }
  428. API.saveRecordOut({
  429. recordData: JSON.stringify(obj),
  430. }).then((res) => {
  431. this.status=3;
  432. const eventChannel = this.getOpenerEventChannel();
  433. eventChannel.emit('refreshData');
  434. uni.hideLoading()
  435. uni.showModal({
  436. title: '提示',
  437. content: '操作成功',
  438. showCancel:false,
  439. success: function (res) {
  440. if (res.confirm) {
  441. uni.navigateBack()
  442. } else if (res.cancel) {
  443. console.log('用户点击取消');
  444. }
  445. }
  446. });
  447. }).catch(error => {
  448. uni.showToast({
  449. title: error,
  450. icon: "none"
  451. })
  452. })
  453. },
  454. error(e) {
  455. console.log(e);
  456. },
  457. gotoscan(val){
  458. // if(this.deviceposition=='back'){
  459. // this.deviceposition="front"
  460. // }else{
  461. // this.deviceposition="back"
  462. // }
  463. // #ifdef H5
  464. this.gotoscanH5(val)
  465. // #endif
  466. // #ifdef MP-WEIXIN
  467. this.gotoscanMP(val)
  468. // #endif
  469. },
  470. takeCode(e){
  471. console.log(e);
  472. if(this.scanFunctionIsUseable) {
  473. this.scanFunctionIsUseable = false;
  474. // 对扫码结果进行处理
  475. //this.getscan(e.detail.result)
  476. this.getscan(this.takeCodeJp(e.detail.result))
  477. // 扫码间隔两秒
  478. setTimeout(() => {
  479. this.scanFunctionIsUseable = true;
  480. }, 1000)
  481. }
  482. },
  483. gotoscanMP(val){
  484. this.showpopup=true;
  485. // const ctx = uni.createCameraContext();
  486. // ctx.takePhoto({
  487. // quality: 'high',
  488. // success: (res) => {
  489. // this.src = res.tempImagePath
  490. // }
  491. // });
  492. },
  493. gotoscanH5(val) {
  494. console.log('111')
  495. var _this = this;
  496. uni.showModal({
  497. title: '提示',
  498. editable: true,
  499. //content: '这是一个模态弹窗',
  500. success: function(res) {
  501. if (res.confirm) {
  502. _this.getscan(res.content)
  503. } else if (res.cancel) {
  504. console.log('用户点击取消');
  505. }
  506. }
  507. });
  508. },
  509. delOutListMethod(deviceInfo) {
  510. var c = this.scanList.findIndex(item => {
  511. return item.id == deviceInfo.id
  512. })
  513. if (c > -1) {
  514. this.scanList.splice(c, 1)
  515. uni.showToast({
  516. title: "删除成功",
  517. icon: "none"
  518. })
  519. }
  520. },
  521. delOutList(item) {
  522. var _this = this;
  523. uni.showModal({
  524. title: '提示',
  525. //editable:true,
  526. content: '确认是否删除编号为' + item.code,
  527. success: function(res) {
  528. if (res.confirm) {
  529. _this.delOutListMethod(item)
  530. } else if (res.cancel) {
  531. console.log('用户点击取消');
  532. }
  533. }
  534. });
  535. },
  536. getscan(val) {
  537. console.log(val);
  538. this.showpopup=true;
  539. var c = this.scanList.find(item => {
  540. return item.code == val
  541. })
  542. if (c) {
  543. return
  544. }
  545. uni.showLoading({
  546. title: "加载中",
  547. mask: true,
  548. })
  549. API.queryDeviceByCode({
  550. code: val,
  551. }).then((res) => {
  552. uni.hideLoading();
  553. if (res.data.deviceInfo) {
  554. console.log(res.data.deviceInfo)
  555. this.nowscan=res.data.deviceInfo;
  556. var c = this.scanList.find(item => {
  557. return item.id == res.data.deviceInfo.id
  558. })
  559. if (c) {
  560. uni.showToast({
  561. title: "已存在,添加失败",
  562. icon: "none"
  563. })
  564. } else {
  565. this.scanList.push(res.data.deviceInfo)
  566. uni.showToast({
  567. title: "添加成功",
  568. icon: "none"
  569. })
  570. }
  571. } else {
  572. uni.showToast({
  573. title: "二维码无效",
  574. icon: "none"
  575. })
  576. }
  577. }).catch(error => {
  578. uni.showToast({
  579. title: error,
  580. icon: "none"
  581. })
  582. })
  583. },
  584. getList() {
  585. uni.showLoading({
  586. title: "加载中",
  587. mask: true,
  588. })
  589. API.outRecordDeviceById({
  590. recordId: this.id,
  591. pageSize: this.listFrom.pageSize,
  592. pageIndex: this.listFrom.pageIndex,
  593. }).then((res) => {
  594. uni.hideLoading();
  595. if (this.listFrom.pageIndex == 1) {
  596. this.list = res.data.data;
  597. } else {
  598. this.list = [
  599. ...this.list,
  600. ...res.data.data
  601. ];
  602. }
  603. this.recordsTotal = res.data.recordsTotal;
  604. }).catch(error => {
  605. uni.showToast({
  606. title: error,
  607. icon: "none"
  608. })
  609. })
  610. },
  611. myLoadmore() {
  612. this.listFrom.pageIndex += 1;
  613. this.getList();
  614. },
  615. changeShow(item) {
  616. console.log(item.show)
  617. console.log(item)
  618. if (item.show) {
  619. item.show = false;
  620. } else {
  621. item.show = true;
  622. }
  623. this.$forceUpdate()
  624. }
  625. }
  626. }
  627. </script>
  628. <style scoped lang="scss">
  629. .bottom {
  630. background-color: #fff;
  631. margin-top: 44rpx;
  632. padding: 16rpx 32rpx;
  633. z-index: 999;
  634. position: fixed;
  635. left: 0;
  636. right: 0;
  637. bottom: 0;
  638. // uni-button{
  639. // border-radius: 8px;
  640. // background: linear-gradient(180deg, rgba(22,119,255,1) 0%,rgba(16,98,213,1) 100%);
  641. // color: rgba(255, 255, 255, 1);
  642. // font-size: 32rpx;
  643. // line-height: 88rpx;
  644. // }
  645. }
  646. page {
  647. padding-bottom: 100px;
  648. }
  649. .u-navbar {
  650. display: flex;
  651. font-size: 36rpx;
  652. align-items: center;
  653. justify-content: center;
  654. flex: 1;
  655. position: absolute;
  656. left: 0;
  657. right: 0;
  658. height: 60rpx;
  659. text-align: center;
  660. flex-shrink: 0;
  661. left: 237rpx;
  662. right: 107rpx;
  663. width: 300rpx;
  664. .title {
  665. line-height: 60rpx;
  666. font-size: 36rpx;
  667. flex: 1;
  668. text {
  669. color: #2A8EFB
  670. }
  671. }
  672. }
  673. .details {
  674. background-color: #fff;
  675. margin-top: 24rpx;
  676. padding: 0 32rpx;
  677. .list-details {
  678. background-color: #fff;
  679. margin: 24rpx;
  680. padding: 22rpx 32rpx;
  681. .list-head {
  682. display: flex;
  683. justify-content: space-between;
  684. align-items: center;
  685. .title {
  686. color: #333333;
  687. font-size: 32rpx
  688. }
  689. .amount {
  690. color: #777777;
  691. font-size: 24rpx;
  692. text {
  693. color: #3385FF;
  694. }
  695. /deep/.u-icon--right {
  696. margin-left: 8rpx;
  697. }
  698. }
  699. }
  700. // 清单信息
  701. .list-infos {
  702. border-radius: 8px;
  703. .infos-head {
  704. display: flex;
  705. justify-content: space-between;
  706. align-items: center;
  707. margin-bottom: 24rpx;
  708. .name {
  709. color: rgba(51, 51, 51, 1);
  710. font-size: 32rpx;
  711. }
  712. .qr-code {
  713. border-radius: 4px;
  714. background: linear-gradient(180deg, rgba(22, 119, 255, 1) 0%, rgba(16, 98, 213, 1) 100%);
  715. color:red;
  716. font-size: 24rpx;
  717. width: 160rpx;
  718. text-align: center;
  719. line-height: 64rpx;
  720. text {
  721. img {
  722. vertical-align: middle;
  723. }
  724. }
  725. }
  726. }
  727. .infos {
  728. margin-top: 16rpx;
  729. display: flex;
  730. color: #777777;
  731. font-size: 24rpx;
  732. .infos-1 {
  733. margin-right: 68rpx;
  734. }
  735. .infos-item {
  736. display: flex;
  737. margin-bottom: 8rpx;
  738. }
  739. }
  740. .address,
  741. .remark {
  742. display: flex;
  743. color: #777777;
  744. font-size: 24rpx;
  745. margin-bottom: 8rpx;
  746. }
  747. }
  748. }
  749. }
  750. .scantitle{
  751. text-align: center;
  752. font-size: 44rpx;
  753. padding-top: 20px;
  754. }
  755. .container{
  756. margin-top: 80px;
  757. }
  758. .listHead{
  759. padding-bottom: 60px;
  760. }
  761. .list {
  762. background-color: #fff;
  763. margin: 24rpx;
  764. padding: 22rpx 32rpx;
  765. // 清单信息
  766. .list-infos {
  767. border-radius: 8px;
  768. .infos-head {
  769. display: flex;
  770. justify-content: space-between;
  771. align-items: center;
  772. margin-bottom: 24rpx;
  773. .name {
  774. color: rgba(51, 51, 51, 1);
  775. font-size: 32rpx;
  776. }
  777. .qr-code {
  778. border-radius: 4px;
  779. background: linear-gradient(180deg, rgba(22, 119, 255, 1) 0%, rgba(16, 98, 213, 1) 100%);
  780. color: rgba(255, 255, 255, 1);
  781. font-size: 24rpx;
  782. width: 160rpx;
  783. text-align: center;
  784. line-height: 64rpx;
  785. text {
  786. img {
  787. vertical-align: middle;
  788. }
  789. }
  790. }
  791. }
  792. .infos {
  793. margin-top: 16rpx;
  794. display: flex;
  795. color: #777777;
  796. font-size: 24rpx;
  797. .infos-1 {
  798. margin-right: 68rpx;
  799. }
  800. .infos-item {
  801. display: flex;
  802. margin-bottom: 8rpx;
  803. }
  804. }
  805. .address,
  806. .remark {
  807. display: flex;
  808. color: #777777;
  809. font-size: 24rpx;
  810. margin-bottom: 8rpx;
  811. }
  812. }
  813. .prepare-out {
  814. padding: 24rpx;
  815. margin-top: 40rpx;
  816. border-radius: 8px;
  817. background-color: rgba(245, 246, 249, 1);
  818. .head {
  819. display: flex;
  820. justify-content: space-between;
  821. align-items: center;
  822. margin-bottom: 24rpx;
  823. .amount {
  824. display: flex;
  825. color: rgba(0, 81, 255, 1);
  826. font-size: 32rpx;
  827. }
  828. .unfold {
  829. color: rgba(146, 158, 165, 1);
  830. font-size: 24rpx;
  831. position: relative;
  832. .u-icon--right {
  833. margin-left: 8rpx;
  834. }
  835. }
  836. .option {
  837. width: 160rpx;
  838. height: 32rpx;
  839. background-color: #fff;
  840. position: absolute;
  841. top: 30rpx;
  842. right: 0;
  843. }
  844. }
  845. // 编号
  846. .serial-number {
  847. display: flex;
  848. justify-content: space-between;
  849. align-items: center;
  850. margin-top: 16rpx;
  851. color: rgba(51, 51, 51, 1);
  852. font-weight: bold;
  853. .itemLine{
  854. width: 100%;
  855. .view {
  856. float: right;
  857. color: #0051ff;
  858. }
  859. }
  860. .item {
  861. display: flex;
  862. }
  863. }
  864. }
  865. // 备注
  866. .textarea {
  867. width: 100%;
  868. height: 80rpx;
  869. line-height: 80rpx;
  870. text-indent: 24rpx;
  871. margin-top: 24rpx;
  872. background-color: rgba(241, 242, 245, 1);
  873. color: rgba(136, 136, 136, 1);
  874. border-radius: 8px;
  875. font-family: Microsoft Yahei;
  876. font-size: 28rpx;
  877. }
  878. }
  879. </style>