BillPending.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. <template>
  2. <view class="page">
  3. <u-tabs :list="tabs" @click="sectionChange" style="background-color: #fff;" :current=current
  4. :itemStyle="{'width':'375rpx','padding':'24rpx'}" lineHeight="2px" lineWidth="30px"></u-tabs>
  5. <!-- <view class="subsection">
  6. <u-subsection :list="list" fontSize="30rpx" :current="current" @change="sectionChange"></u-subsection>
  7. </view> -->
  8. <!-- 账单明细 -->
  9. <view class="contain" v-show="cdshow==0">
  10. <view class="topbilledit">
  11. <view class="changetime1">
  12. <picker mode="date" :value="myday" fields="month" @change="dateChange">
  13. <view class="selestDate">{{myday}}</view>
  14. </picker>
  15. </view>
  16. <view class="changetime2">
  17. <u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
  18. </view>
  19. </view>
  20. <view style="padding:16rpx 0 16rpx 32rpx">
  21. 共有 <span style="color: red">{{totalnumber}}</span>条记录
  22. </view>
  23. <view class="u-listdata">
  24. <u-list @scrolltolower="scrolltolower" :pagingEnabled='true'
  25. style="height:400px;flex:1;padding-bottom: 49px;">
  26. <u-list-item v-for="(item, index) in indexList1" :key="index">
  27. <view class="paisong">
  28. <u-icon name="arrow-up" @click="item.showMore=false" class="iconBtn" size="20px"
  29. v-if="item.showMore" color="#999"></u-icon>
  30. <u-icon name="arrow-down" @click="item.showMore=true" class="iconBtn" size="22px"
  31. color="#999" v-else></u-icon>
  32. <checkbox :checked="item.check" class="check" />
  33. <view class="title" @click="paybills(item)">
  34. 物业费: <span>¥{{item.amount}}</span>
  35. <view class="status" v-if='item.status==1'>
  36. 已支付
  37. </view>
  38. <view class="status" v-if='item.status==2'>
  39. 待支付
  40. </view>
  41. <view class="status" v-if='item.status==3'>
  42. 支付失败
  43. </view>
  44. </view>
  45. <template v-if="item.showMore">
  46. <view class="subtit" style="margin-top: 16rpx;">
  47. 管理费:{{item.billLists[0].amount}}
  48. </view>
  49. <view class="subtit">
  50. 中央空调使用费:{{item.billLists[1].amount}}
  51. </view>
  52. <view class="subtit">
  53. 电梯费:{{item.billLists[2].amount}}
  54. </view>
  55. </template>
  56. </view>
  57. </u-list-item>
  58. </u-list>
  59. </view>
  60. <view class="zhifu">
  61. <view class="zhifuright" @click="Immediatepayment">
  62. <view class="heji">
  63. 合计:<span>¥ {{heji}}</span>
  64. </view>
  65. <view class="likezhifu">
  66. <u-button type="primary" size='mini' shape='circle' text="立即支付"></u-button>
  67. </view>
  68. </view>
  69. </view>
  70. </view>
  71. <!--缴费记录 -->
  72. <view class="contain" v-show="cdshow==1">
  73. <!-- 列表 -->
  74. <view class="u-listdata">
  75. <view class="topbilledit" @click="typechange">
  76. <view class="changetime1">
  77. {{mytype}}
  78. </view>
  79. <view class="changetime2">
  80. <u-icon name="arrow-down-fill" color="#999" size="20"></u-icon>
  81. </view>
  82. </view>
  83. <view style="padding:20rpx 0 0 30rpx">
  84. 共有 <span style="color: red">{{totalnumber}}</span>条记录
  85. </view>
  86. <u-list @scrolltolower="scrolltolower2" :pagingEnabled='true'
  87. style="height:400px;flex:1;padding-bottom: 49px;">
  88. <u-list-item v-for="(item, index) in indexList2" :key="index">
  89. <view class="paisong2">
  90. <view class="status" v-if="item.type=='Subsidy'">
  91. 补助
  92. </view>
  93. <view class="status s2" v-if="item.type=='PreStorage'">
  94. 预存
  95. </view>
  96. <div class="title">{{item.tenantInfo.name}}</div>
  97. <view class="subtit">
  98. 扣缴金额:{{item.amount}}
  99. </view>
  100. <view class="subtit">
  101. 账户金额:{{item.surplus}}
  102. </view>
  103. <view class="subtit">
  104. 租户电话:{{item.tenantInfo.tel}}
  105. </view>
  106. <view class="subtit">
  107. 操作人:{{item.createName}}
  108. </view>
  109. <view class="subtit">
  110. 扣缴时间:{{item.createDate}}
  111. </view>
  112. </view>
  113. </u-list-item>
  114. </u-list>
  115. <view class="Predeposit" v-show="Predepositshow">
  116. <span @click="Predeposit">预存</span>
  117. </view>
  118. </view>
  119. </view>
  120. <u-picker :show="showtype" itemHeight="76" :columns="columnstype" keyName="dictLabel" @confirm="confirmtype"
  121. @cancel='canceltype'></u-picker>
  122. <u-popup :show="showpay" @close="closepay" @open="openpay" mode="bottom" :round="10" :closeable=true
  123. :closeOnClickOverlay=true>
  124. <view class="paytall">
  125. <!-- <text>请选择支付方式</text> -->
  126. <view class="hejitop">
  127. ¥ {{heji}}
  128. </view>
  129. <view class="zhifufs">
  130. <u-radio-group @change="groupChange" v-model="radiovalue1" placement="column" iconPlacement="right">
  131. <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist1" :key="index"
  132. :label="item.name" :name="item.id">
  133. </u-radio>
  134. </u-radio-group>
  135. </view>
  136. <view style="margin: 0 30rpx;">
  137. <u-button type="primary" text="确认支付" @click="Confirmationpayment"></u-button>
  138. </view>
  139. </view>
  140. </u-popup>
  141. <u-modal :show="showjiaofei" title="提示" content='当前账户余额不足,请问是否充值?' @confirm="jiaofeiconfirm"
  142. @cancel='jiaofeicancel' :showCancelButton=true></u-modal>
  143. <view class="canys" v-if="zhifucanvas">
  144. <h4>请用微信扫码二维码</h4>
  145. <canvas class="zhifucanvas" canvas-id='canvas'></canvas>
  146. <view class="guanbi">
  147. <u-button type="primary" :plain="true" text="关闭" style="border:none" @click="guanbi"></u-button>
  148. </view>
  149. </view>
  150. <u-popup :show="showpayjine" @close="closepay1" @open="openpay1" mode="bottom" :round="10" :closeable=true
  151. :closeOnClickOverlay=true>
  152. <view class="paytall1">
  153. <view class="hejitop">
  154. 预存
  155. </view>
  156. <view class="zhifufs">
  157. <u--form labelWidth="30" labelPosition="left" :model="model1" :rules="rules" ref="uForm">
  158. <u-form-item label="¥" prop="userInfo.amount" ref="item1">
  159. <u--input v-model="model1.userInfo.amount" border="none" placeholder="点击输入金额"></u--input>
  160. </u-form-item>
  161. </u--form>
  162. </view>
  163. <view style="margin:0 32rpx">
  164. <u-button type="primary" text="确认支付" @click="Confirmationpaymentjine"></u-button>
  165. </view>
  166. </view>
  167. </u-popup>
  168. <u-notify ref="uNotify" message=""></u-notify>
  169. </view>
  170. </template>
  171. <script>
  172. var QRCode = require('@/utils/qrcode.js');
  173. const BaseApi = require("@/http/baseApi.js");
  174. // import {isEmpty,getDictDataList} from "@/utils/index";
  175. export default {
  176. name: 'Workordertodone',
  177. data() {
  178. const currentDate = this.getDate({
  179. format: 'yyyy-mm'
  180. })
  181. return {
  182. tabs: [{
  183. name: '账单明细',
  184. }, {
  185. name: '扣缴记录'
  186. }],
  187. model1: {
  188. userInfo: {
  189. amount: '',
  190. },
  191. },
  192. rules: {
  193. 'userInfo.amount': {
  194. type: 'string',
  195. required: true,
  196. message: '请填写预存金额',
  197. trigger: ['blur', 'change']
  198. },
  199. },
  200. showMore: false,
  201. Predepositshow: true,
  202. showpayjine: false,
  203. showcw: false,
  204. zhifucanvas: false,
  205. radiolist1: [],
  206. radiovalue1: '微信',
  207. showjiaofei: false,
  208. showpay: false,
  209. quanxuan: true,
  210. zhifumk: false,
  211. mytype: '扣缴类型',
  212. myday: currentDate,
  213. totalnumber: 0,
  214. jfnodata: false,
  215. showtype: false,
  216. cdshow: 0,
  217. fatherparameter: {},
  218. expensedata: '全部',
  219. list: ['账单明细', '缴费记录', ],
  220. current: 0,
  221. dataForm: {
  222. tenantId: '',
  223. costCycle: currentDate,
  224. type: '',
  225. page: 1,
  226. limit: 10,
  227. },
  228. zhanghuyue: 0,
  229. heji: 0,
  230. indexList1: [],
  231. indexList11: [],
  232. indexList2: [],
  233. payStatusList: [],
  234. nodata: true,
  235. pd: true,
  236. zhifufangshi: '',
  237. columnstype: [],
  238. repairTypeList: [],
  239. UrgencyTypelist: [],
  240. PayStatus: [],
  241. PropertyType: [],
  242. userInfotenantName: '',
  243. }
  244. },
  245. //监听页面加载,其参数为上个页面传递的数据,参数类型为 Object(用于页面传参
  246. onLoad: function(options) { //option为object类型,会序列化上个页面传递的参数
  247. let userInfo = JSON.parse(decodeURIComponent(options.info));
  248. // console.log('userInfo', userInfo);
  249. this.userInfotenantName = userInfo.tenantName;
  250. this.dataForm.tenantId = userInfo.tenantId;
  251. let getDictDataList = uni.getStorageSync('getDictDataList');
  252. // console.log('111111111111111111', userInfo)
  253. for (let i = 0; i < getDictDataList.length; i++) {
  254. if (getDictDataList[i].dictType == 'PayType') {
  255. this.columnstype = [getDictDataList[i].dataList]
  256. }
  257. if (getDictDataList[i].dictType == 'PayStatus') {
  258. this.PayStatus = [getDictDataList[i].dataList]
  259. }
  260. if (getDictDataList[i].dictType == 'PropertyType') {
  261. this.PropertyType = [getDictDataList[i].dataList]
  262. }
  263. }
  264. this.indexList11 = [{
  265. showMore: false,
  266. status: 2,
  267. amount: 300,
  268. billLists: [{
  269. amount: 100,
  270. }, {
  271. amount: 200,
  272. }, {
  273. amount: 130,
  274. }]
  275. }]
  276. // console.log('111111111111111111', this.PayStatus)
  277. this.getpaisongdata();
  278. },
  279. //监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发
  280. onReady() {},
  281. //监听页面隐藏
  282. onHide() {},
  283. //监听窗口尺寸变化
  284. onResize() {},
  285. //监听页面卸载
  286. onUnload() {},
  287. //监听用户下拉动作,一般用于下拉刷新
  288. onPullDownRefresh() {},
  289. methods: {
  290. guanbi() {
  291. this.zhifucanvas = false;
  292. this.Predepositshow = true;
  293. this.queryOrder1();
  294. this.queryOrder2();
  295. },
  296. Confirmationpaymentjine() {
  297. this.zhifucanvas = true;
  298. this.$refs.uForm.validate().then(res => {
  299. uni.$u.toast('校验通过')
  300. // console.log('111111111111111111', this.model1.userInfo.amount)
  301. this.showpayjine = false;
  302. this.Predepositshow = false;
  303. // this.Immediatepayment();
  304. let postdata = {
  305. totalFee: this.model1.userInfo.amount,
  306. tenantId: this.dataForm.tenantId,
  307. tradeType: 'NATIVE',
  308. billIds: ''
  309. }
  310. uni.request({
  311. url: BaseApi.BaseApi + '/pay/createOrder',
  312. method: "POST",
  313. data: postdata,
  314. header: {
  315. 'content-type': 'application/x-www-form-urlencoded',
  316. "token": uni.getStorageSync('tokendata'),
  317. },
  318. success: (res) => {
  319. // window.open(res.codeUrl, '_blank);
  320. let qrcode = new QRCode('canvas', {
  321. text: res.data.codeUrl, // weixin://wxpay/bizpayurl?pr=sZz****
  322. width: 213,
  323. height: 213,
  324. colorDark: "black",
  325. colorLight: "white",
  326. correctLevel: QRCode.CorrectLevel.H,
  327. });
  328. // 10秒之后调取查询订单
  329. // let that = this;
  330. // setTimeout(function () {
  331. // that.queryOrder2();
  332. // }, 15000);
  333. }
  334. });
  335. }).catch(errors => {
  336. uni.$u.toast('校验失败')
  337. })
  338. },
  339. groupChange(n) {
  340. console.log('groupChange', n);
  341. this.zhifufangshi = n;
  342. },
  343. Predeposit() {
  344. this.showpayjine = true;
  345. },
  346. queryOrder1() {
  347. this.Predepositshow = true;
  348. this.zhifucanvas = false;
  349. this.indexList1 = [];
  350. this.dataForm.page = 1;
  351. this.getpaisongdata();
  352. },
  353. queryOrder2() {
  354. this.Predepositshow = true;
  355. this.zhifucanvas = false;
  356. this.indexList2 = [];
  357. this.dataForm.page = 1;
  358. this.getpayrecord();
  359. },
  360. Confirmationpayment() {
  361. if (this.zhifufangshi == 'zhanghu') {
  362. if (this.zhanghuyue >= this.heji) {
  363. console.log('账户余额支付', )
  364. let billIdslist = [this.indexList1[0].billLists[0].id, this.indexList1[0].billLists[1].id,
  365. this.indexList1[0].billLists[2].id
  366. ];
  367. let postdata = {
  368. amount: String(this.zhanghuyue - this.heji),
  369. tenantId: this.dataForm.tenantId,
  370. payType: 'Account',
  371. billIds: billIdslist
  372. }
  373. this.$api.post('/billinfo/billPay', postdata)
  374. .then(res => {
  375. // console.log('111111111111111111', res)
  376. if (res.data.code == 0) {
  377. this.zhifucanvas = true;
  378. this.$refs.uNotify.success(res.data.msg)
  379. this.showpay = false;
  380. this.indexList1 = [];
  381. this.dataForm.page = 1;
  382. this.getpaisongdata();
  383. } else {
  384. this.$refs.uNotify.error(res.data.msg)
  385. this.showpay = false;
  386. this.indexList1 = [];
  387. this.dataForm.page = 1;
  388. this.getpaisongdata();
  389. }
  390. })
  391. } else if (this.zhanghuyue < this.heji) {
  392. this.showjiaofei = true;
  393. }
  394. } else if (this.zhifufangshi == 'weixin') {
  395. this.zhifucanvas = true;
  396. this.showpay = false;
  397. let billIdslist = this.indexList1[0].billLists[0].id + ',' +
  398. this.indexList1[0].billLists[1].id + ',' + this.indexList1[0].billLists[2].id;
  399. // let postdata = {
  400. // totalFee: String(this.heji),
  401. // tenantId:Math.floor(this.dataForm.tenantId),
  402. // tradeType: 'NATIVE',
  403. // billIds: billIdslist
  404. // }
  405. let postdata = {
  406. totalFee: '0.01',
  407. tenantId: this.dataForm.tenantId,
  408. tradeType: 'NATIVE',
  409. billIds: billIdslist
  410. }
  411. uni.request({
  412. url: BaseApi.BaseApi + '/pay/createOrder',
  413. method: "POST",
  414. data: postdata,
  415. header: {
  416. 'content-type': 'application/x-www-form-urlencoded',
  417. "token": uni.getStorageSync('tokendata'),
  418. },
  419. success: (res) => {
  420. // window.open(res.codeUrl, '_blank);
  421. let qrcode = new QRCode('canvas', {
  422. text: res.data.codeUrl, // weixin://wxpay/bizpayurl?pr=sZz****
  423. width: 213,
  424. height: 213,
  425. colorDark: "black",
  426. colorLight: "white",
  427. correctLevel: QRCode.CorrectLevel.H,
  428. });
  429. //10秒之后调取查询订单
  430. // let that = this;
  431. // setTimeout(function () {
  432. // that.queryOrder1();
  433. // }, 15000);
  434. }
  435. });
  436. }
  437. },
  438. jiaofeiconfirm() {
  439. this.showpay = false;
  440. let billIdslist = this.indexList1[0].billLists[0].id + ',' +
  441. this.indexList1[0].billLists[1].id + ',' + this.indexList1[0].billLists[2].id;
  442. let postdata = {
  443. totalFee: String(this.heji - this.zhanghuyue),
  444. tenantId: this.dataForm.tenantId,
  445. tradeType: 'NATIVE',
  446. billIds: billIdslist
  447. }
  448. uni.request({
  449. url: BaseApi.BaseApi + '/pay/createOrder',
  450. method: "POST",
  451. data: postdata,
  452. header: {
  453. 'content-type': 'application/x-www-form-urlencoded',
  454. "token": uni.getStorageSync('tokendata'),
  455. },
  456. success: (res) => {
  457. // window.open(res.codeUrl, '_blank);
  458. let qrcode = new QRCode('canvas', {
  459. text: res.data.codeUrl, // weixin://wxpay/bizpayurl?pr=sZz****
  460. width: 213,
  461. height: 213,
  462. colorDark: "black",
  463. colorLight: "white",
  464. correctLevel: QRCode.CorrectLevel.H,
  465. });
  466. //10秒之后调取查询订单
  467. // let that = this;
  468. // setTimeout(function () {
  469. // that.queryOrder1();
  470. // }, 15000);
  471. }
  472. });
  473. },
  474. jiaofeicancel() {
  475. this.showjiaofei = false;
  476. },
  477. Immediatepayment() {
  478. this.$api.get('/accountinfo/detail/' + this.dataForm.tenantId, {})
  479. .then(res => {
  480. this.zhanghuyue = res.data.data.amount;
  481. this.showpay = true;
  482. this.radiolist1 = [{
  483. name: '微信',
  484. disabled: false,
  485. id: 'weixin',
  486. },
  487. {
  488. name: '账户余额' + '(可用¥' + this.zhanghuyue + ')',
  489. disabled: false,
  490. id: 'zhanghu'
  491. },
  492. ]
  493. })
  494. },
  495. openpay() {
  496. console.log('open');
  497. },
  498. closepay() {
  499. this.showpay = false
  500. // console.log('close');
  501. },
  502. openpay1() {
  503. console.log('open');
  504. },
  505. closepay1() {
  506. this.showpayjine = false
  507. // console.log('close');
  508. },
  509. paybills(e) {
  510. e.check = !e.check;
  511. if (e.check) {
  512. this.zhifumk = e.check
  513. } else {
  514. console.log('222222', e.check)
  515. this.zhifumk = e.check
  516. }
  517. },
  518. dateChange(e) {
  519. this.myday = e.target.value;
  520. this.dataForm.costCycle = e.target.value;
  521. this.dataForm.page = 1;
  522. this.indexList1 = [];
  523. this.getpaisongdata();
  524. },
  525. sectionChange(val) {
  526. this.current = val.index;
  527. if (val.index == 0) {
  528. this.cdshow = 0;
  529. this.indexList1 = [];
  530. this.dataForm.page = 1;
  531. this.getpaisongdata();
  532. } else if (val.index == 1) {
  533. this.cdshow = 1;
  534. this.indexList2 = [];
  535. this.dataForm.page = 1;
  536. this.getpayrecord();
  537. }
  538. },
  539. scrolltolower() {
  540. if (this.pd) {
  541. this.getpaisongdata();
  542. } else {
  543. return
  544. }
  545. },
  546. scrolltolower2() {
  547. if (this.pd) {
  548. this.getpayrecord();
  549. } else {
  550. return
  551. }
  552. },
  553. getpayrecord() {
  554. this.$api.get('/payrecord/page', this.dataForm)
  555. .then(res => {
  556. this.totalnumber = res.data.data.total;
  557. if (res.data.data.list.length != 0) {
  558. this.indexList2.push(...res.data.data.list);
  559. this.dataForm.page = this.dataForm.page + 1;
  560. this.pd = true;
  561. this.jfnodata = false;
  562. } else {
  563. uni.showToast({
  564. title: '暂无更多数据了',
  565. icon: 'none',
  566. duration: 1500
  567. })
  568. this.pd = false;
  569. }
  570. })
  571. },
  572. getpaisongdata() {
  573. this.$api.post('/billinfo/billDetail', this.dataForm)
  574. .then(res => {
  575. this.totalnumber = res.data.data.length;
  576. if (res.data.data.length != 0) {
  577. //check
  578. for (let i = 0; i < res.data.data.length; i++) {
  579. res.data.data[i].check = false;
  580. }
  581. this.heji = res.data.data[0].amount;
  582. this.indexList1.push(...res.data.data);
  583. this.dataForm.page = this.dataForm.page + 1;
  584. this.pd = true;
  585. this.jfnodata = false;
  586. } else {
  587. uni.showToast({
  588. title: '暂无更多数据了',
  589. icon: 'none',
  590. duration: 1500
  591. })
  592. this.pd = false;
  593. //this.jfnodata=true
  594. }
  595. })
  596. },
  597. getDate(type) {
  598. const date = new Date();
  599. let year = date.getFullYear();
  600. let month = date.getMonth();
  601. if (type === 'start') {
  602. year = year - 60;
  603. } else if (type === 'end') {
  604. year = year + 2;
  605. }
  606. month = month > 9 ? month : '0' + month;
  607. // day = day > 9 ? day : '0' + day;
  608. return `${year}-${month}`;
  609. },
  610. typechange() {
  611. this.showtype = true;
  612. },
  613. confirmtype(e) {
  614. this.indexList2 = [];
  615. //console.log('111111111111111111', e.value[0])
  616. this.showtype = false;
  617. if (e.value[0].dictValue == 'all') {
  618. this.mytype = e.value[0].dictLabel;
  619. this.dataForm.type = '';
  620. this.dataForm.page = 1;
  621. this.getpayrecord();
  622. } else {
  623. this.mytype = e.value[0].dictLabel;
  624. this.dataForm.type = e.value[0].dictValue;
  625. this.dataForm.page = 1;
  626. this.getpayrecord();
  627. }
  628. },
  629. canceltype() {
  630. this.showtype = false;
  631. },
  632. }
  633. }
  634. </script>
  635. <style lang="scss">
  636. .Predeposit {
  637. position: fixed;
  638. bottom: 0;
  639. left: 0;
  640. right: 0;
  641. height: 98rpx;
  642. line-height: 98rpx;
  643. width: 750rpx;
  644. background-color: #fff;
  645. text-align: center;
  646. color: #2E69EB;
  647. box-shadow: 0 -6px 12px 0 rgba(153, 153, 153, 0.10);
  648. }
  649. .nodata {
  650. text-align: center;
  651. padding-top: 400rpx;
  652. }
  653. .zhifucanvas {
  654. width: 400rpx;
  655. height: 400rpx;
  656. margin: 0 auto;
  657. }
  658. .canys {
  659. width: 500rpx;
  660. height: 600rpx;
  661. position: fixed;
  662. top: 30%;
  663. left: 0;
  664. right: 0;
  665. margin: 0 auto;
  666. background: #e6e6e6;
  667. h4 {
  668. width: 500rpx;
  669. text-align: center;
  670. height: 80rpx;
  671. line-height: 80rpx;
  672. }
  673. }
  674. .guanbi {
  675. margin-top: 50rpx;
  676. }
  677. .zhifufs {
  678. padding: 10rpx 60rpx 30px;
  679. ::v-deep .u-radio-label--right {
  680. margin-top: 30rpx;
  681. }
  682. ::v-deep .uni-input-placeholder {
  683. text-align: left
  684. }
  685. ::v-deep .u-radio__icon-wrap {
  686. width: 40rpx !important;
  687. height: 40rpx !important;
  688. }
  689. ::v-deep .u-radio__text {
  690. font-size: 32rpx !important;
  691. }
  692. }
  693. .hejitop {
  694. text-align: center;
  695. border-bottom: 1px solid #eee;
  696. padding: 48rpx 0 24rpx;
  697. font-size: 32rpx;
  698. }
  699. .paytall {
  700. padding: 12px 0;
  701. }
  702. .heji span {
  703. color: #ED3A25;
  704. }
  705. .likezhifu {
  706. margin-left: 20rpx;
  707. margin-right: 30rpx;
  708. }
  709. .zhifu {
  710. position: fixed;
  711. right: 0;
  712. bottom: 0;
  713. left: 0;
  714. height: 98rpx;
  715. background-color: #fff;
  716. display: flex;
  717. align-items: center;
  718. justify-content: flex-end;
  719. .zhifuright {
  720. display: flex;
  721. align-items: center;
  722. justify-content: flex-end;
  723. }
  724. }
  725. .page {
  726. height: 100%;
  727. overflow: hidden;
  728. .contain {
  729. height: calc(100% - 44px);
  730. padding: 0;
  731. display: flex;
  732. flex-direction: column;
  733. .u-listdata {
  734. height: 400px;
  735. flex: 1;
  736. display: flex;
  737. flex-direction: column;
  738. }
  739. }
  740. }
  741. .paisong,
  742. .paisong2 {
  743. display: flex;
  744. flex-direction: column;
  745. justify-content: center;
  746. background-color: #fff;
  747. margin: 0 16px 24rpx;
  748. padding: 12px 16px 12px 34px;
  749. border-radius: 4px;
  750. position: relative;
  751. .iconBtn {
  752. position: absolute;
  753. top: 32rpx;
  754. right: 32rpx;
  755. z-index: 1;
  756. }
  757. .title {
  758. font-size: 32rpx;
  759. color: #0C1935;
  760. margin-bottom: 16rpx;
  761. span {
  762. color: #FA5555;
  763. font-weight: 600;
  764. }
  765. .status {
  766. width: 100rpx;
  767. padding: 6rpx;
  768. text-align: center;
  769. font-size: 24rpx;
  770. color: #fff;
  771. background-color: #09C700;
  772. border-radius: 22rpx;
  773. position: absolute;
  774. left: 40%;
  775. top: 20rpx;
  776. transform: scale(.85);
  777. }
  778. }
  779. .subtit {
  780. color: #9DA0AC;
  781. margin-bottom: 6rpx;
  782. }
  783. .check {
  784. position: absolute;
  785. left: 20rpx;
  786. top: 32rpx;
  787. z-index: 1;
  788. font-size: 0;
  789. transform: scale(.7)
  790. }
  791. }
  792. .paisong2 {
  793. display: flex;
  794. flex-direction: column;
  795. justify-content: center;
  796. background-color: #fff;
  797. margin: 0 16px 24rpx;
  798. padding: 12px 16px;
  799. border-radius: 4px;
  800. position: relative;
  801. .status {
  802. position: absolute;
  803. width: 96rpx;
  804. height: 48rpx;
  805. border-radius: 0 8rpx 0 20rpx;
  806. right: 0;
  807. line-height: 48rpx;
  808. text-align: center;
  809. top: 0;
  810. z-index: 1;
  811. font-size: 22rpx;
  812. background-color: #30D3A2;
  813. color: #fff;
  814. &.s2 {
  815. background-color: #09C700;
  816. }
  817. }
  818. }
  819. .topbilledit {
  820. display: flex;
  821. justify-content: center;
  822. align-items: center;
  823. background: #fff;
  824. height: 88rpx;
  825. }
  826. .changetime2 {
  827. padding-left: 10rpx;
  828. }
  829. </style>