cashoutInfo.vue 20 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000
  1. <template>
  2. <view>
  3. <view v-if="step==1">
  4. <ujp-navbar title="单据签名" :custom-back="customback" >
  5. </ujp-navbar>
  6. <signReceipt :obj="info" @signsubmit="submit" ></signReceipt>
  7. </view>
  8. <view v-show="step==0">
  9. <ujp-navbar title="提现申请单" >
  10. </ujp-navbar>
  11. <view class="withdraw">
  12. <view class="withdraw-head">
  13. <b class="asterisk">申请站点</b>
  14. <span v-if="stationList.length>1&&(info.status==-1||info.status==null)">
  15. <picker @change="bindPickerChange1" range-key="name" :range="stationList">
  16. <view class="uni-input">
  17. <view class="input-text">
  18. {{stationObj.name?stationObj.name:'无站点'}}
  19. </view>
  20. <view class="iconfont more">
  21. &#xe600;
  22. </view>
  23. </view>
  24. </picker>
  25. </span>
  26. <span v-else>
  27. <view class="uni-input">
  28. <view class="input-text">
  29. {{stationObj.name?stationObj.name:'无站点'}}
  30. </view>
  31. </view>
  32. </span>
  33. </view>
  34. <view >
  35. <!-- 个人桩 -->
  36. <view class="withdraw-head" >
  37. <b class="asterisk">提现开始日期
  38. <view class="tooltip" v-if="(info.status==-1||info.status==null)">
  39. <u-icon name="info-circle"></u-icon>
  40. <view class="tooltiptext">上次结算成功后的次日</view>
  41. </view>
  42. </b>
  43. <span>
  44. <view class="uni-input">{{showTime(info.startTime)}}</view>
  45. </span>
  46. </view>
  47. <view class="withdraw-head" >
  48. <b class="asterisk">提现结束日期
  49. <view class="tooltip" v-if="(info.status==-1||info.status==null)">
  50. <u-icon name="info-circle"></u-icon>
  51. <view class="tooltiptext">结算截止至今天前的第四日</view>
  52. </view>
  53. </b>
  54. <u-calendar ref="ucalendar" v-model="showcalendar" mode="date" @change="bindPickerChange4"
  55. :min-date="info.startTime" :max-date="nowTime"></u-calendar>
  56. <span v-if="(info.status==-1||info.status==null)">
  57. <!-- <picker @change="bindPickerChange4" mode="date" :end="nowTime"
  58. :value="endTime"></picker> -->
  59. <view class="uni-input" @click="showcalendar=true">{{showTime(endTime)}}<text class="iconfont more">
  60. &#xe600;
  61. </text></view>
  62. </span>
  63. <span v-else>
  64. <view class="uni-input">{{showTime(info.endTime)}}</view>
  65. </span>
  66. </view>
  67. </view>
  68. <view class="withdraw-head" >
  69. <b>充电订单汇总</b>
  70. <span class="withdraw-input " style="font-size: 16px;" >{{info.chargingIncome}}元
  71. <span class="download5" @click="ckdownload" >
  72. <u-icon name="download"></u-icon> 下载详情
  73. </span>
  74. </span>
  75. </view>
  76. <view class="withdraw-head" >
  77. <b class="asterisk">桩主分配比例</b>
  78. <span>
  79. <view class="uni-input">{{info.chargingPercent}}%</view>
  80. </span>
  81. </view>
  82. <view class="withdraw-head" >
  83. <b class="asterisk">可提现金额</b>
  84. <span>
  85. <view class="uni-input">{{info.chargingProfitAmount?showNumJP(info.chargingProfitAmount):0}}元</view>
  86. </span>
  87. </view>
  88. <view class="withdraw-head" style="height: 60px;" >
  89. <b class="asterisk">大写金额</b>
  90. <span>
  91. <view class="uni-input">{{info.chargingProfitAmount?getDX(info.chargingProfitAmount)+'':'零元整'}}</view>
  92. </span>
  93. </view>
  94. </view>
  95. <view class="withdraw">
  96. <view class="withdraw-head ">
  97. <b class="asterisk"><text>*</text>收款户名</b>
  98. <u-input class="textarea" type="textarea"
  99. v-model="info.accountName"
  100. placeholder="请填写收款户名" height="96" cursor-spacing="8" />
  101. </view>
  102. <view class="withdraw-head ">
  103. <b class="asterisk"><text>*</text>收款银行</b>
  104. <u-input class="textarea" type="textarea"
  105. v-model="info.bankName"
  106. placeholder="请填写收款银行全称" height="96" cursor-spacing="8" />
  107. </view>
  108. <view class="withdraw-head border-n">
  109. <b class="asterisk"><text>*</text>收款账号</b>
  110. <u-input class="textarea" v-model="info.accountNo"
  111. type="textarea" placeholder="请填写收款账号" height="96" cursor-spacing="8" />
  112. </view>
  113. </view>
  114. <view class="applyBtn" v-if="info.status==-1||info.status==null" >
  115. <u-button class="save" @click="submit(-1)">保存草稿</u-button>
  116. <u-button class="submit" @click="submitCk()">提交申请单</u-button>
  117. </view>
  118. </view>
  119. </view>
  120. </template>
  121. <script>
  122. import * as API from '@/apis/finance.js'
  123. import * as API_common from '@/apis/common.js'
  124. import signReceipt from './signReceipt.vue'
  125. import {
  126. beforeTimeStamp,
  127. parseUnixTime,
  128. substrMb,
  129. DX
  130. } from '@/utils'
  131. export default {
  132. components: {
  133. signReceipt
  134. },
  135. data() {
  136. return {
  137. step:0,
  138. showcalendar:false,
  139. penColor: 'red',
  140. penSize: 5,
  141. url: '',
  142. openSmooth: true,
  143. id:'',
  144. uuid:'',
  145. isPt: false,
  146. detailList:[],
  147. info: {
  148. electricityPrice: '',
  149. electricQuantity: '',
  150. stationId: "",
  151. applicationType: '1',
  152. status:""
  153. },
  154. applicationList: [{
  155. name: '物业结算',
  156. value: "1"
  157. }, {
  158. name: '市场费用',
  159. value: "2"
  160. }, {
  161. name: '利润提现',
  162. value: "3"
  163. }
  164. ],
  165. stationList: [],
  166. queryTime: '',
  167. nowTime: '',
  168. stationObj: {},
  169. current: 0, // tabs组件的current值,表示当前活动的tab选项
  170. params: {
  171. year: true,
  172. month: true,
  173. day: false,
  174. hour: false,
  175. minute: false,
  176. second: false,
  177. timestamp: false,
  178. },
  179. list1: [{
  180. name: '普票',
  181. value: "1"
  182. }, {
  183. name: '专票',
  184. value: "2"
  185. }, {
  186. name: '收据',
  187. value: "3"
  188. }],
  189. list2: [{
  190. name: '是',
  191. value: "1"
  192. }, {
  193. name: '否 ',
  194. value: "0"
  195. }],
  196. tabList: [],
  197. startTime:'',
  198. endTime:'',
  199. userType:"3", //账户类型(1-平台,2-企业,3-个人,4-物业,5-市场)
  200. }
  201. },
  202. onLoad(op){
  203. if(this.userType=="3"){
  204. this.tabList.push({
  205. name: '申请单主表',
  206. value:"main"
  207. })
  208. // {
  209. // name: '申请单主表'
  210. // }, {
  211. // name: '提现明细'
  212. // }
  213. }
  214. if(op.id){
  215. this.id=op.id
  216. }
  217. this.uuid=op.uuid;
  218. },
  219. onShow() {
  220. },
  221. onReady() {
  222. // var nowTime = parseUnixTime(new Date(), "{y}-{m}-01")
  223. // this.queryTime = parseUnixTime(beforeTimeStamp(1, new Date(nowTime)), '{y}-{m}')
  224. // this.nowTime = parseUnixTime(beforeTimeStamp(1, new Date(nowTime)), '{y}-{m}')
  225. if(this.userType=="3"){
  226. this.nowTime = parseUnixTime(beforeTimeStamp(4), '{y}-{m}-{d}')
  227. try{
  228. this.init();
  229. }catch(e){
  230. //TODO handle the exception
  231. console.log("error"+e)
  232. }
  233. this.endTime= parseUnixTime(beforeTimeStamp(4), '{y}-{m}-{d}')
  234. this.getStationList()
  235. }
  236. },
  237. computed: {
  238. itemApplicationAmountSum(){
  239. return ''
  240. },
  241. applicationAmountDX() {
  242. if (this.info.applicationAmount) {
  243. var c = DX(this.info.applicationAmount)
  244. return c
  245. } else {
  246. return '零元整'
  247. }
  248. },
  249. electricityPriceX() {
  250. if (this.info.electricityPrice != '' && this.info.electricQuantity != '') {
  251. return (this.info.electricityPrice * this.info.electricQuantity).toFixed(2)
  252. }
  253. return ''
  254. }
  255. },
  256. watch:{
  257. },
  258. methods: {
  259. init() {
  260. var _this=this.$refs.ucalendar
  261. _this.init=()=>{
  262. let now = new Date(this.nowTime);
  263. _this.year = now.getFullYear();
  264. _this.month = now.getMonth() + 1;
  265. _this.day = now.getDate();
  266. _this.today = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;
  267. _this.activeDate = _this.today;
  268. _this.min = _this.initDate(_this.minDate);
  269. _this.max = _this.initDate(_this.maxDate || _this.today);
  270. _this.startDate = "";
  271. _this.startYear = 0;
  272. _this.startMonth = 0;
  273. _this.startDay = 0;
  274. _this.endYear = 0;
  275. _this.endMonth = 0;
  276. _this.endDay = 0;
  277. _this.endDate = "";
  278. _this.isStart = true;
  279. _this.changeData();
  280. };
  281. _this.init()
  282. },
  283. customback(){
  284. this.step=0
  285. },
  286. getDX(value) {
  287. if (value) {
  288. var c = DX(value)
  289. return c
  290. } else {
  291. return '零元整'
  292. }
  293. },
  294. onClick(type) {
  295. if(type == 'openSmooth') {
  296. this.openSmooth = !this.openSmooth
  297. return
  298. }
  299. if (type == 'save') {
  300. this.$refs.signatureRef.canvasToTempFilePath({
  301. success: (res) => {
  302. // 是否为空画板 无签名
  303. console.log(res.isEmpty)
  304. console.log(res)
  305. // 生成图片的临时路径
  306. // app | H5 | 微信小程序 生成的是base64
  307. this.url = res.tempFilePath
  308. }
  309. })
  310. return
  311. }
  312. if (this.$refs.signatureRef)
  313. this.$refs.signatureRef[type]()
  314. },
  315. submitCk(){
  316. //this.value=this.info.amount
  317. if(!this.stationObj.id){
  318. uni.showToast({
  319. title: "请选择站点"
  320. })
  321. return
  322. }
  323. if(!this.info.accountName){
  324. uni.showToast({
  325. title: "请输入收款户名"
  326. })
  327. return
  328. }
  329. if(!this.info.bankName){
  330. uni.showToast({
  331. title: "请输入收款银行"
  332. })
  333. return
  334. }
  335. if(!this.info.accountNo){
  336. uni.showToast({
  337. title: "请输入收款账号"
  338. })
  339. return
  340. }
  341. this.step=1
  342. },
  343. submit(status,img){
  344. if(status==0){
  345. if(!img){
  346. uni.showToast({
  347. title: "请输入签字"
  348. })
  349. return
  350. }
  351. this.info.signUrl=img
  352. //this.value=this.info.amount
  353. if(!this.stationObj.id){
  354. uni.showToast({
  355. title: "请选择站点"
  356. })
  357. return
  358. }
  359. if(!this.info.accountName){
  360. uni.showToast({
  361. title: "请输入收款户名"
  362. })
  363. return
  364. }
  365. if(!this.info.bankName){
  366. uni.showToast({
  367. title: "请输入收款银行"
  368. })
  369. return
  370. }
  371. if(!this.info.accountNo){
  372. uni.showToast({
  373. title: "请输入收款账号"
  374. })
  375. return
  376. }
  377. }
  378. if(this.info.invoiceRequired!=''){
  379. this.info.invoiceRequired=this.info.invoiceRequired=='1'?true:false
  380. }
  381. this.info.applicationAmount=this.info.chargingProfitAmount;
  382. uni.showLoading({
  383. title: "加载中",
  384. mask: true,
  385. })
  386. if(this.id){
  387. this.info.id=this.id;
  388. }
  389. this.info.status=status;
  390. //var str=JSON.stringify();
  391. API.applyWithdrawByPersonal({
  392. record:this.info,
  393. detailList:[]
  394. }).then((res) => {
  395. this.carhelp.set("withdrawRecord",{
  396. uuid:this.uuid,
  397. })
  398. this.id=res.data;
  399. uni.hideLoading()
  400. if(status==-1){
  401. uni.showModal({
  402. title:"提示",
  403. content:"保存成功",
  404. showCancel:false
  405. })
  406. }else{
  407. uni.redirectTo({
  408. url:"/pagesFinance/user/applyResult?value="+this.info.applicationAmount
  409. })
  410. }
  411. }).catch(error => {
  412. this.info.status=null;
  413. uni.hideLoading()
  414. uni.showModal({
  415. title:"提示",
  416. content:error,
  417. showCancel:false
  418. })
  419. })
  420. },
  421. ckdownload(){
  422. //this.value=this.info.amount
  423. if(!this.stationObj.id){
  424. uni.showToast({
  425. title: "请选择站点"
  426. })
  427. return
  428. }
  429. uni.showLoading({
  430. title: "加载中",
  431. mask: true,
  432. })
  433. API.profitDetailsExcelByPersonal({
  434. stationId:this.stationObj.id,
  435. endDate:this.endTime,
  436. startDate:this.info.startTime
  437. }).then((resDown) => {
  438. uni.hideLoading()
  439. if(resDown.data){
  440. window.location.href=resDown.data
  441. }else{
  442. uni.showToast({
  443. title:"无文件下载"
  444. })
  445. }
  446. }).catch(error => {
  447. uni.showToast({
  448. title:error
  449. })
  450. })
  451. },
  452. showTime(name) {
  453. if (!name) {
  454. return ''
  455. }
  456. return parseUnixTime(new Date(name), '{y}年{m}月{d}日');
  457. },
  458. queryWithdrawInfo() {
  459. uni.showLoading({
  460. title: "加载中",
  461. mask: true,
  462. })
  463. var obj={
  464. stationId: this.stationObj.id,
  465. accountType:this.userType,
  466. endDate:this.endTime,
  467. }
  468. if(this.id){
  469. obj.recordId=this.id
  470. }
  471. API.queryWithdrawInfoByPersonal(obj).then((res) => {
  472. this.info = res.data.record;
  473. this.info.endTime=this.endTime
  474. this.info.stationName=this.stationObj.name
  475. var detailList = res.data.detailList;
  476. this.detailList=[];
  477. var nowTime=new Date(this.nowTime)
  478. var startTime=new Date(this.info.startTime)
  479. uni.hideLoading()
  480. if(startTime>nowTime){
  481. uni.showModal({
  482. title:"提示",
  483. content:"截止"+this.showTime(this.nowTime)+"订单已全部提交申请单",
  484. showCancel:false,
  485. confirmText:"返回列表",
  486. success: function (res) {
  487. uni.navigateBack()
  488. }
  489. })
  490. }
  491. }).catch(error => {
  492. uni.showToast({
  493. title: error
  494. })
  495. })
  496. },
  497. getInfo(){
  498. uni.showLoading({
  499. title: "加载中",
  500. mask: true,
  501. })
  502. API.getWithdrawInfoByPersonal(this.id).then((res) => {
  503. this.info=res.data.record
  504. this.endTime=this.info.endTime;
  505. this.detailList=res.data.detailList
  506. uni.hideLoading()
  507. }).catch(error => {
  508. uni.showToast({
  509. title: error
  510. })
  511. })
  512. },
  513. getStationList() {
  514. uni.showLoading({
  515. title: "加载中",
  516. mask: true,
  517. })
  518. API.stationList().then((res) => {
  519. this.stationList = res.data.stationList;
  520. if (this.stationList.length) {
  521. this.stationObj = this.stationList[0];
  522. if(this.id){
  523. this.getInfo()
  524. }else{
  525. this.queryWithdrawInfo()
  526. }
  527. }
  528. uni.hideLoading()
  529. }).catch(error => {
  530. uni.showToast({
  531. title: error
  532. })
  533. })
  534. API_common.findByCatalogName2({
  535. catalogName:"提现类型"
  536. }).then((res) => {
  537. this.applicationList= res.data.dataDictionaryList;
  538. // this.applicationList =dataDictionaryList.map((item)=>{
  539. // return {
  540. // name:item.name,
  541. // value:item.value
  542. // }
  543. // })
  544. uni.hideLoading()
  545. }).catch(error => {
  546. uni.showToast({
  547. title: error
  548. })
  549. })
  550. },
  551. bindPickerChange1(e) {
  552. if (this.stationList[e.detail.value]) {
  553. this.stationObj = this.stationList[e.detail.value];
  554. this.endTime=this.nowTime
  555. this.queryWithdrawInfo()
  556. }
  557. },
  558. bindPickerChange2(e) {
  559. this.info.applicationType = this.applicationList[e.detail.value].value;
  560. this.queryWithdrawInfo()
  561. },
  562. bindPickerChange4(e) {
  563. var nowTime=new Date(this.nowTime)
  564. var result=new Date(e.result)
  565. if(result<=nowTime){
  566. this.endTime =e.result;
  567. this.info.endTime= e.result;
  568. this.queryWithdrawInfo()
  569. }
  570. },
  571. bindPickerChange3(e) {
  572. this.queryTime = e.detail.value;
  573. this.queryWithdrawInfo()
  574. },
  575. change(index) {
  576. this.current = index;
  577. }
  578. }
  579. }
  580. </script>
  581. <style>
  582. page {
  583. background-color: #F7F7F7;
  584. padding-bottom: 65px;
  585. }
  586. </style>
  587. <style lang="scss" scoped>
  588. .jputabs {
  589. //position: absolute;
  590. position: fixed;
  591. background-color: #FFF;
  592. width: 100%;
  593. top: 40px;
  594. z-index: 99;
  595. }
  596. .classFFF {
  597. color: #607d8b !important;
  598. }
  599. .download {
  600. color: #185AC6 !important;
  601. }
  602. .download5 {
  603. width: 160rpx !important;
  604. float: right;
  605. color: #185AC6 !important;
  606. }
  607. /deep/.u-tab-bar {
  608. background-color: #0076FF !important;
  609. }
  610. /deep/.u-tabs-scorll-flex {
  611. width: 56%;
  612. margin: 0 auto;
  613. }
  614. .withdraw-tips {
  615. margin: 24px 16px;
  616. p {
  617. color: #999;
  618. margin-top: 4px;
  619. }
  620. }
  621. .uni-input {
  622. font-size: 16px;
  623. color: #333333;
  624. }
  625. .withdraw {
  626. margin-bottom: 8px;
  627. background-color: #fff;
  628. padding: 0px 16px 0 16px;
  629. .withdraw-head {
  630. padding: 24rpx 0;
  631. border-bottom: 1px solid #E5E7EA;
  632. align-items: center;
  633. position: relative;
  634. .unit {
  635. position: absolute;
  636. top: 34rpx;
  637. right: 0;
  638. }
  639. b {
  640. font-weight: normal;
  641. color: rgba(119, 119, 119, 100);
  642. font-size: 36rpx;
  643. }
  644. span {
  645. width: 60%;
  646. float: right;
  647. text-align: left;
  648. font-size: 32rpx;
  649. color: #333333;
  650. }
  651. @media screen and (max-width:320px) {
  652. span {
  653. width: 60%;
  654. }
  655. }
  656. }
  657. .withdraw-main {
  658. border-top: 1px solid #f7f7f7;
  659. border-bottom: 1px solid #f7f7f7;
  660. margin: 16px 0;
  661. padding: 16px 0;
  662. .withdraw-input {
  663. width: 63%;
  664. margin-top: 64rpx;
  665. display: flex;
  666. align-items: center;
  667. font-size: 56rpx;
  668. /deep/.uni-input-input {
  669. font-size: 28rpx;
  670. }
  671. }
  672. }
  673. .withdraw-foot {
  674. display: flex;
  675. align-items: center;
  676. p {
  677. color: #999
  678. }
  679. span {
  680. color: #2979FF;
  681. margin-left: 16px;
  682. }
  683. }
  684. }
  685. .more {
  686. color: #B3B3B3;
  687. font-size: 24px
  688. }
  689. .applyBtn {
  690. padding: 0 16px;
  691. display: flex;
  692. background-color: #FFF;
  693. font-size: 16px;
  694. line-height: 44px;
  695. height: 60px;
  696. position: fixed;
  697. bottom: 0;
  698. left: 0;
  699. right: 0;
  700. .save {
  701. width: 33.6%;
  702. border-radius: 8px 0px 0px 8px;
  703. background-color: rgba(0, 185, 98, 100);
  704. color: rgba(255, 255, 255, 100);
  705. }
  706. .submit {
  707. width: 66.4%;
  708. border-radius: 0px 8px 8px 0px;
  709. background-color: rgba(24, 90, 198, 100);
  710. color: rgba(255, 255, 255, 100);
  711. }
  712. }
  713. /deep/.uni-input-input {
  714. text-align: start !important;
  715. }
  716. .border-n {
  717. border: none !important;
  718. }
  719. .textarea {
  720. background-color: rgba(242, 242, 242, 100);
  721. margin-top: 12px;
  722. line-height: 20px;
  723. border-radius: 4px;
  724. color: rgba(136, 136, 136, 100);
  725. .uni-textarea-placeholder {
  726. padding: 0 16rpx;
  727. }
  728. /deep/.uni-textarea-textarea {
  729. width: 90%;
  730. padding: 0 16rpx;
  731. }
  732. }
  733. .withdrawHead{
  734. padding: 15px;
  735. font-size: 14px;
  736. .red{
  737. color: red;
  738. }
  739. }
  740. .details {
  741. margin: 16px;
  742. border-radius: 8px;
  743. background-color: #fff;
  744. overflow: hidden;
  745. }
  746. .asterisk {
  747. position: relative;
  748. text {
  749. position: absolute;
  750. top: 0px;
  751. left: -14rpx;
  752. color: #EE3138;
  753. }
  754. }
  755. .add {
  756. text-align: center;
  757. font-size: 18px;
  758. color: #101010;
  759. display: flex;
  760. align-items: center;
  761. justify-content: center;
  762. .ri-add-circle-fill {
  763. font-size: 24px;
  764. color: #44B371;
  765. margin: auto 0;
  766. margin-right: 4rpx;
  767. }
  768. }
  769. /deep/.u-input__input {
  770. font-size: 16px !important
  771. }
  772. .uni-input {
  773. display: flex;
  774. justify-content: space-between;
  775. }
  776. .input-text {
  777. white-space: nowrap;
  778. overflow: hidden;
  779. text-overflow: ellipsis;
  780. }
  781. .tooltip {
  782. position: relative;
  783. display: inline-flex;
  784. width: 36rpx;
  785. height: 36rpx;
  786. }
  787. .tooltip .tooltiptext {
  788. min-width: 180px;
  789. min-height: 20px;
  790. position: absolute;
  791. visibility: hidden;
  792. top: -30px;
  793. left: -10px;
  794. padding: 1px 20rpx;
  795. line-height: 20px;
  796. font-size: 24rpx;
  797. color: #fff;
  798. background-color: #333333;
  799. border-radius: 10px;
  800. text-align: center;
  801. z-index: 1;
  802. }
  803. .tooltip:hover .tooltiptext {
  804. visibility: visible;
  805. }
  806. .tooltiptext:before {
  807. z-index: 1;
  808. content: "";
  809. position: absolute;
  810. top: 20px;
  811. //right: 5px;
  812. left: 10px;
  813. border-top: 5px solid #333333;
  814. border-right: 5px solid transparent;
  815. border-left: 5px solid transparent;
  816. }
  817. </style>