bargainDtl.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764
  1. <template>
  2. <view class="list-content">
  3. <pageHead pageTitle="议价审批" :showBack="true" :showHistory="true" @jumpHistory="jumpPage" style="margin-bottom: 10px;"></pageHead>
  4. <view class="list-card">
  5. <u--form ref="form" :model="bargainInfo" labelPosition="left" labelWidth="80" :labelStyle="{'color': '#6B7688','fontSize':'16px'}" >
  6. <u-form-item label="项目名称" prop="projectName">
  7. <view class="val-posi">{{bargainInfo.projectName}}</view>
  8. </u-form-item>
  9. <u-form-item label="报价编号" prop="quotationNo">
  10. <view class="val-posi">{{bargainInfo.quotationNo}}</view>
  11. </u-form-item>
  12. <u-form-item label="报价人" prop="quoter">
  13. <view class="val-posi">{{bargainInfo.quoter}}</view>
  14. </u-form-item>
  15. <u-form-item label="地区" prop="nickName" >
  16. <view class="val-posi">{{bargainInfo.countryName+'/'+bargainInfo.city}}</view>
  17. </u-form-item>
  18. <!-- <u-form-item label="销售" prop="saler" >
  19. <view class="val-posi">{{bargainInfo.saler}}</view>
  20. </u-form-item> -->
  21. <u-form-item label="代理商" prop="agentName" >
  22. <view class="val-posi">{{bargainInfo.agentName}}</view>
  23. </u-form-item>
  24. </u--form>
  25. </view>
  26. <view class="list-card" >
  27. <view class="card-title">电梯列表</view>
  28. <view v-for="(item, index) in bargainInfo.elevatorList">
  29. <u--form ref="form" :model="item" labelPosition="left" labelWidth="80" :labelStyle="{'color': '#6B7688','fontSize':'16px'}" >
  30. <u-form-item label="型号" prop="elevatorModel">
  31. <view class="val-posi">{{item.elevatorModel}}</view>
  32. </u-form-item>
  33. <u-form-item label="编号" prop="elevatorCode">
  34. <!-- <uni-tooltip :content="item.elevatorCode" placement="bottom">
  35. <view class="val-posi" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;">{{item.elevatorCode}}</view>
  36. </uni-tooltip> -->
  37. <view class="val-posi">{{item.elevatorCode}}</view>
  38. </u-form-item>
  39. <u-form-item label="规格" prop="specification" >
  40. <view class="val-posi">{{item.specification}}</view>
  41. </u-form-item>
  42. <u-form-item label="数量" prop="elevatorNumber" >
  43. <view class="val-posi">{{item.elevatorNumber}}</view>
  44. </u-form-item>
  45. <u-form-item label="价格" prop="price" >
  46. <view class="val-posi">{{stateFormatLow(item.price,0)}}</view>
  47. </u-form-item>
  48. <u-form-item label="基价折率" prop="discountRate">
  49. <u-input v-model="item.discountRate" placeholder="请输入基价折率" type="digit" inputAlign="right" border="surround"
  50. style="font-size: 16px;" :maxlength="30" @blur="changeRate(item)" :customStyle="{width:'150px'}"></u-input>
  51. <span style="margin-left: 5px;">%</span>
  52. </u-form-item>
  53. <u-form-item label="折后价格" prop="price" >
  54. <view class="val-posi">{{stateFormatLow(item.discountPrice,2)}}</view>
  55. </u-form-item>
  56. </u--form>
  57. <u-divider class="divider"></u-divider>
  58. </view>
  59. </view>
  60. <view class="list-card" style="padding: 16px 10px;">
  61. <view class="card-title">价格信息</view>
  62. <u-row gutter="4" style="margin-bottom: 8px;">
  63. <u-col span="4" >
  64. <view class="card__price">
  65. <view class="txt-label">价格合计</view>
  66. <view class="txt-value">¥{{stateFormatLow(bargainInfo.priceTotal,0)}}</view>
  67. </view>
  68. </u-col>
  69. <u-col span="4">
  70. <view class="card__price">
  71. <view class="txt-label">基价合计</view>
  72. <view class="txt-value">¥{{stateFormatLow(bargainInfo.basicPriceTotal,0)}}</view>
  73. </view>
  74. </u-col>
  75. <u-col span="4">
  76. <view class="card__price">
  77. <view class="txt-label">选配合计</view>
  78. <view class="txt-value">¥{{stateFormatLow(bargainInfo.optionalPriceTotal,0)}}</view>
  79. </view>
  80. </u-col>
  81. </u-row>
  82. <u-row gutter="4">
  83. <u-col span="4">
  84. <view class="card__price">
  85. <view class="txt-label">希望价格</view>
  86. <view class="txt-value2">¥{{stateFormatLow(bargainInfo.expectedPrice,0)}}</view>
  87. </view>
  88. </u-col>
  89. <u-col span="4">
  90. <view class="card__price">
  91. <view class="txt-label">希望基价折率</view>
  92. <view class="txt-value2">{{bargainInfo.basicPriceRate}}%</view>
  93. </view>
  94. </u-col>
  95. <u-col span="4">
  96. <view class="card__price">
  97. <view class="txt-label">实际基价折率</view>
  98. <view class="txt-value2">{{bargainInfo.discountRate}}%</view>
  99. </view>
  100. </u-col>
  101. </u-row>
  102. </view>
  103. <view style="height: 75px;"></view>
  104. <view class="card_bottom ">
  105. <view class="flex-center" style="width: 100%;">
  106. <view class="list-card__price" >
  107. <view class="txt-label" style="font-size: 14px;">同意价格</view>
  108. <view class="txt-value2" style="font-size: 20px;">¥{{stateFormatLow(bargainInfo.acceptPrice,0)}}</view>
  109. </view>
  110. <view class="flex-center" style="width: 60%;padding: 0px 8px;">
  111. <view class="button-left flex-center-middle" @click="toggle('02')">
  112. <img class="button-icon" src="@/static/img/approve/reject.png" alt="" />
  113. <view class="reject-text">驳回</view>
  114. </view>
  115. <view class="button-right flex-center-middle" @click="toggle('01')">
  116. <img class="button-icon" src="@/static/img/approve/pass.png" alt="" />
  117. <view class="pass-text">通过</view>
  118. </view>
  119. </view>
  120. </view>
  121. </view>
  122. <!-- 弹窗 -->
  123. <view>
  124. <!-- 驳回弹窗 -->
  125. <uni-popup ref="popup" type="bottom" background-color="#fff" style="border-radius: 8rpx;">
  126. <view class="popup-content" >
  127. <view class="return_title">
  128. <text style="color: rgba(0, 0, 0, 0.85);">驳回原因:</text>
  129. </view>
  130. <view class="uni-textarea">
  131. <textarea v-model.trim="returnMsg" placeholder-style="color:#6B7688" placeholder="请输入驳回原因…" class="return_content" maxlength="200"/>
  132. </view>
  133. <view class="flex-center mt32">
  134. <view class="button-left flex-center-middle" @click="closePup()">
  135. <img class="button-icon" src="@/static/img/approve/reject.png" alt="" />
  136. <view class="reject-text">取消</view>
  137. </view>
  138. <view class="button-right flex-center-middle" @click="doSP('02')">
  139. <img class="button-icon" src="@/static/img/approve/pass.png" alt="" />
  140. <view class="pass-text">提交</view>
  141. </view>
  142. </view>
  143. </view>
  144. </uni-popup>
  145. <!-- 通过弹窗 -->
  146. <uni-popup ref="popupPass" background-color="#fff" borderRadius="10px 10px 10px 10px" style="width: 90%;">
  147. <view class="popup-content" style="padding: 20rpx 40rpx" >
  148. <view class="flex-center" style="justify-content: center;margin-bottom: 20rpx 0 30rpx">
  149. <view><img style="height: 100%;width: 300rpx;" src="@/static/img/approve/nomessage.png" alt="" /></view>
  150. </view>
  151. <view style="text-align: center;margin-bottom: 30rpx">
  152. <img class="button-icon" src="@/static/img/approve/warning.png" alt="" />
  153. <text style="color: rgba(0, 0, 0, 0.85);">确认无误并通过审核?</text>
  154. </view>
  155. <view class="flex-center mt32" style="margin-bottom: 30rpx;">
  156. <view class="button-left-one flex-center-middle" @click="closePup()">
  157. <img class="button-icon" src="@/static/img/approve/reject.png" alt="" />
  158. <view class="reject-text">取消</view>
  159. </view>
  160. <view style="width: 50rpx;"></view>
  161. <view class="button-right-one flex-center-middle" @click="doSP('01')">
  162. <img class="button-icon" src="@/static/img/approve/pass.png" alt="" />
  163. <view class="pass-text">通过</view>
  164. </view>
  165. </view>
  166. </view>
  167. </uni-popup>
  168. <!-- 确认弹窗 -->
  169. <uni-popup ref="popupConfirm" background-color="#fff" borderRadius="10px 10px 10px 10px" style="width: 90%;">
  170. <view class="popup-content" style="padding: 20rpx 40rpx" >
  171. <view style="text-align: center;margin: 50rpx 0 30rpx">
  172. <img class="button-icon" src="@/static/img/approve/warning.png" alt="" />
  173. <text style="color: rgba(0, 0, 0, 0.85);">该报价单的折扣超出您的折扣范围</text>
  174. </view>
  175. <view style="text-align: center;margin: 30rpx 0">
  176. <text style="color: rgba(0, 0, 0, 0.85);">是否确认?</text>
  177. </view>
  178. <view class="flex-center mt32" style="margin-bottom: 30rpx;">
  179. <view class="button-left-one flex-center-middle" @click="closePup()">
  180. <img class="button-icon" src="@/static/img/approve/reject.png" alt="" />
  181. <view class="reject-text">取消</view>
  182. </view>
  183. <view style="width: 50rpx;"></view>
  184. <view class="button-right-one flex-center-middle" @click="handleApprove('01')">
  185. <img class="button-icon" src="@/static/img/approve/pass.png" alt="" />
  186. <view class="pass-text">确定</view>
  187. </view>
  188. </view>
  189. </view>
  190. </uni-popup>
  191. </view>
  192. </view>
  193. </template>
  194. <script>
  195. import * as ApproveApi from '@/api/work/approve'
  196. import { stateFormat,stateFormatLow } from '@/utils/common.js'
  197. export default {
  198. data() {
  199. return {
  200. projectPageParam: {
  201. pageNum: 1,
  202. pageSize: 5
  203. },
  204. bargainInfo:{},
  205. bargainLoadAll: false,
  206. bargainId:'',
  207. quotationId:'',
  208. returnMsg:"",
  209. jumpUrl:"/pages/work/approve/bargainAduit?businessId="
  210. }
  211. },
  212. onLoad (params) {
  213. this.quotationId = params.quotationId
  214. this.jumpUrl = this.jumpUrl+this.quotationId
  215. this.getBargainInfo()
  216. },
  217. methods: {
  218. jumpPage(){
  219. uni.navigateTo({
  220. url: this.jumpUrl
  221. })
  222. },
  223. closePup(){
  224. this.returnMsg = "";
  225. this.$refs.popup.close()
  226. this.$refs.popupPass.close()
  227. this.$refs.popupConfirm.close()
  228. },
  229. toggle(status) {
  230. // open 方法传入参数 等同在 uni-popup 组件上绑定 type属性
  231. if(status == '02'){
  232. this.$refs.popup.open()
  233. }else{
  234. this.$refs.popupPass.open()
  235. }
  236. },
  237. handleApprove(status){
  238. if(status == '02' && this.returnMsg == ""){
  239. uni.showToast({
  240. icon: 'error',
  241. mask: true,
  242. title: '请输入驳回原因..',
  243. })
  244. return
  245. }
  246. //设置实体
  247. let bargainObj = {}
  248. let auditForm = {}
  249. if (status == '02') {
  250. //驳回
  251. bargainObj = {
  252. quotationId: this.quotationId,
  253. }
  254. auditForm = {
  255. // 审批流
  256. auditFlow: 2,
  257. // 业务id 报价id
  258. businessId: this.quotationId,
  259. // 审批结果
  260. status: 30,
  261. // 备注
  262. remark: '基价折率:' + this.bargainInfo.discountRate + '%',
  263. // 业务参数
  264. businessObj: bargainObj
  265. }
  266. }else{
  267. //通过
  268. bargainObj = {
  269. bargainId: this.bargainInfo.bargainId,
  270. quotationId: this.quotationId,
  271. tableList: this.bargainInfo.elevatorList,
  272. discountRate: this.bargainInfo.discountRate
  273. }
  274. auditForm = {
  275. // 审批流
  276. auditFlow: 2,
  277. // 业务id 报价id
  278. businessId: this.quotationId,
  279. // 审批结果
  280. status: 200,
  281. // 备注
  282. remark: '基价折率:' + this.bargainInfo.discountRate + '%',
  283. // 业务参数
  284. businessObj: bargainObj
  285. }
  286. }
  287. if (status == '02') {
  288. auditForm.remark += ',驳回原因:'+ this.returnMsg
  289. }
  290. ApproveApi.audit(auditForm).then(res => {
  291. if (res.code == 200) {
  292. setTimeout(() => {
  293. uni.showToast({
  294. icon: 'none',
  295. mask: true,
  296. title: '操作成功',
  297. })
  298. }, 500)
  299. //调回上一页
  300. this.goBack()
  301. }
  302. })
  303. },
  304. changeRate(item){
  305. if(item.discountRate < 1){
  306. item.discountRate = 1
  307. }
  308. if(item.discountRate > 100){
  309. item.discountRate = 100
  310. }
  311. //格式化
  312. item.discountRate = Number(item.discountRate).toFixed(4)
  313. //重新计算该梯形的折后价
  314. item.discountPrice = ((item.originalBasicPrice * item.discountRate) / 100 ) + item.originalOptionalPrice
  315. console.log("item.discountPrice"+item.discountPrice)
  316. //重新计算同意价格
  317. let sum = 0
  318. //计算折扣前后的基价
  319. let basicPricePre = 0
  320. let basicPriceAft = 0
  321. let elevators = this.bargainInfo.elevatorList
  322. elevators.some(it=>{
  323. sum += it.discountPrice * it.elevatorNumber
  324. basicPricePre += it.originalBasicPrice * it.elevatorNumber
  325. basicPriceAft += ((it.originalBasicPrice * it.discountRate * it.elevatorNumber) / 100 )
  326. })
  327. //重新计算折扣率
  328. let discountRate = (basicPriceAft / basicPricePre) * 100
  329. //重新设置接受价格
  330. this.bargainInfo.acceptPrice = sum
  331. //折扣率格式化
  332. this.bargainInfo.discountRate = Number(discountRate).toFixed(4)
  333. },
  334. stateFormat,
  335. stateFormatLow,
  336. getBargainInfo() {
  337. ApproveApi.bargainById(this.quotationId).then(res => {
  338. if (res.code == 200) {
  339. this.bargainInfo = res.data
  340. if(this.bargainInfo.elevatorList){
  341. let list = this.bargainInfo.elevatorList
  342. //this.bargainInfo.discountRate = Number(this.bargainInfo.discountRate).toFixed(4)
  343. this.bargainInfo.elevatorList.some(item=>{
  344. item.discountRate = Number(item.discountRate).toFixed(4)
  345. })
  346. //赋值完成后重新计算一下折率
  347. this.changeRate(this.bargainInfo.elevatorList[0])
  348. }
  349. }
  350. })
  351. },
  352. async doSP(status){
  353. const that = this
  354. let res = await ApproveApi.getSalesDiscount(this.quotationId);
  355. let minRate = res.data.minDiscount
  356. let maxRate = res.data.maxDiscount
  357. let realRate = this.bargainInfo.discountRate
  358. console.log(this.bargainInfo.priceTotal)
  359. console.log(this.bargainInfo.originOptionalPrice)
  360. console.log(this.bargainInfo.originBasicPrice)
  361. console.log(Math.round((this.bargainInfo.priceTotal - this.bargainInfo.originOptionalPrice)))
  362. //20240828新算法
  363. let ratePoint = Math.round((this.bargainInfo.priceTotal - this.bargainInfo.originOptionalPrice) * 100000 /this.bargainInfo.originBasicPrice) / 1000 - Number(realRate)
  364. console.log('ratePoint', ratePoint)
  365. console.log('minRate', minRate)
  366. console.log('maxRate', maxRate)
  367. if ((ratePoint >= 0 && minRate >= ratePoint) || (ratePoint < 0 && maxRate >= Math.abs(ratePoint))) {
  368. //可以掉通过
  369. this.handleApprove(status)
  370. }else {
  371. //不行还需确认
  372. this.$refs.popupConfirm.open()
  373. }
  374. },
  375. // 审批
  376. handleApproveOld(status) {
  377. let bargainObj = {}
  378. let auditForm = {}
  379. if (status == '02') {
  380. //驳回
  381. bargainObj = {
  382. quotationId: this.quotationId,
  383. }
  384. auditForm = {
  385. // 审批流
  386. auditFlow: 2,
  387. // 业务id 报价id
  388. businessId: this.quotationId,
  389. // 审批结果
  390. status: 30,
  391. // 备注
  392. remark: '基价折率:' + this.bargainInfo.discountRate + '%',
  393. // 业务参数
  394. businessObj: bargainObj
  395. }
  396. }else{
  397. //通过
  398. bargainObj = {
  399. bargainId: this.bargainInfo.bargainId,
  400. quotationId: this.quotationId,
  401. tableList: this.bargainInfo.elevatorList,
  402. discountRate: this.bargainInfo.discountRate
  403. }
  404. auditForm = {
  405. // 审批流
  406. auditFlow: 2,
  407. // 业务id 报价id
  408. businessId: this.quotationId,
  409. // 审批结果
  410. status: 200,
  411. // 备注
  412. remark: '基价折率:' + this.bargainInfo.discountRate + '%',
  413. // 业务参数
  414. businessObj: bargainObj
  415. }
  416. }
  417. const that = this
  418. uni.showModal({
  419. title: status == '02' ? '是否确认驳回' : '是否确认通过',
  420. editable: status == '02',
  421. placeholderText: status == '02' ? '请输入驳回原因' : null,
  422. cancelColor: '#6B7688',
  423. confirmColor: '#E60114',
  424. success: function(res) {
  425. if (res.confirm) {
  426. if (status == '02') {
  427. auditForm.remark += ',驳回原因:'+res.content
  428. }
  429. ApproveApi.audit(auditForm).then(res => {
  430. if (res.code == 200) {
  431. setTimeout(() => {
  432. uni.showToast({
  433. icon: 'none',
  434. mask: true,
  435. title: '操作成功',
  436. })
  437. }, 500)
  438. //调回上一页
  439. that.goBack()
  440. }
  441. })
  442. }
  443. }
  444. })
  445. },
  446. goBack () {
  447. //uni.navigateBack({ delta: 1});
  448. uni.navigateTo({
  449. url: '/pages/work/approve/list'
  450. })
  451. }
  452. }
  453. }
  454. </script>
  455. <style>
  456. page {
  457. background-color: #EFF2F6;
  458. }
  459. </style>
  460. <style lang="scss" scoped>
  461. .list-card__price {
  462. width: 40%;
  463. }
  464. .card_bottom{
  465. display:flex;
  466. width: 100%;
  467. align-items: center;
  468. height: 75px;
  469. position:fixed;
  470. bottom: 0px;
  471. margin-left: 0px;
  472. background: #FFFFFF;
  473. .button-left {
  474. width: 48%;
  475. height: 84rpx;
  476. background: #FFF8F8;
  477. border-radius: 200rpx 0rpx 0rpx 200rpx;
  478. box-shadow: 0px 5px 6px 0px #EADEDF;
  479. .reject-text {
  480. font-size: 32rpx;
  481. color: #E60114;
  482. line-height: 44rpx;
  483. }
  484. }
  485. .button-right {
  486. width: 48%;
  487. height: 84rpx;
  488. background: linear-gradient(90deg, #DC0736 0%, #E60114 100%);
  489. box-shadow: 0px 5px 6px 0px #EADEDF;
  490. border-radius: 0rpx 200rpx 200rpx 0rpx;
  491. .pass-text {
  492. font-size: 32rpx;
  493. color: #FFFFFF;
  494. line-height: 44rpx;
  495. }
  496. }
  497. }
  498. .card-title{
  499. font-weight: 600;
  500. font-size: 16px;
  501. margin-bottom: 10px;
  502. }
  503. .txt-label {
  504. color: #3C485B;
  505. font-weight: 400;
  506. font-size: 12px;
  507. text-align: center;
  508. margin-bottom: 5px;
  509. }
  510. .txt-value {
  511. color: #000000;
  512. text-align: center;
  513. font-size: 16px;
  514. font-weight: 600;
  515. }
  516. .txt-value2 {
  517. color: #E60012;
  518. text-align: center;
  519. font-size: 16px;
  520. font-weight: 600;
  521. }
  522. .card__price{
  523. text-align: center;
  524. width: 90%;
  525. background-color: #FFF5F6;
  526. border-radius: 4px;
  527. padding:7px 5px;
  528. }
  529. .val-posi{
  530. width: 100%;
  531. text-align: right;
  532. font-size: 16px;
  533. }
  534. ::v-deep .u-badge--error {
  535. background-color: #E60114;
  536. }
  537. .flex-center {
  538. display: flex;
  539. align-items: center;
  540. justify-content: center;
  541. }
  542. .flex-center-between {
  543. display: flex;
  544. align-items: center;
  545. justify-content: space-between;
  546. margin-bottom: 10px;
  547. }
  548. .flex-center-middle {
  549. display: flex;
  550. align-items: center;
  551. justify-content: center;
  552. }
  553. .ml40 {
  554. margin-left: 40rpx
  555. }
  556. .mt32 {
  557. margin-top: 32rpx;
  558. }
  559. .list-content {
  560. // padding: 20rpx 24rpx;
  561. .button-icon {
  562. width: 28rpx;
  563. height: 28rpx;
  564. margin-right: 8rpx;
  565. }
  566. .divider {
  567. margin: 32rpx 0;
  568. border: 2rpx solid #E9EEF3;
  569. }
  570. .list-card {
  571. margin: 0px 24rpx;
  572. background: #FFFFFF;
  573. border-radius: 8rpx;
  574. padding: 32rpx;
  575. margin-bottom: 20rpx;
  576. &__title {
  577. font-weight: 600;
  578. font-size: 34rpx;
  579. color: #000000;
  580. line-height: 48rpx;
  581. width: 480rpx;
  582. white-space: nowrap;
  583. overflow: hidden;
  584. text-overflow: ellipsis;
  585. }
  586. &__area {
  587. font-size: 32rpx;
  588. color: rgba(0, 0, 0, 0.85);
  589. line-height: 32rpx;
  590. }
  591. &__text {
  592. font-size: 32rpx;
  593. color: #6B7688;
  594. line-height: 40rpx;
  595. }
  596. .developer {
  597. color: rgba(0, 0, 0, 0.85);
  598. width: 490rpx;
  599. white-space: nowrap;
  600. overflow: hidden;
  601. text-overflow: ellipsis;
  602. }
  603. .button-icon {
  604. width: 28rpx;
  605. height: 28rpx;
  606. margin-right: 8rpx;
  607. }
  608. .button-left {
  609. width: 350rpx;
  610. height: 84rpx;
  611. background: #FFF8F8;
  612. border-radius: 200rpx 0rpx 0rpx 200rpx;
  613. box-shadow: 0rpx 4rpx 16rpx 0rpx #DFDFDF;
  614. .reject-text {
  615. font-size: 32rpx;
  616. color: #E60114;
  617. line-height: 44rpx;
  618. }
  619. }
  620. .button-right {
  621. width: 350rpx;
  622. height: 84rpx;
  623. background: linear-gradient(90deg, #DC0736 0%, #E60114 100%);
  624. box-shadow: 0rpx 4rpx 16rpx 0rpx #DFDFDF;
  625. border-radius: 0rpx 200rpx 200rpx 0rpx;
  626. .pass-text {
  627. font-size: 32rpx;
  628. color: #FFFFFF;
  629. line-height: 44rpx;
  630. }
  631. }
  632. }
  633. .popup-content {
  634. padding: 20rpx 20rpx;
  635. .return_content{
  636. width: 92%;
  637. padding: 20rpx 28rpx;
  638. background: #EFF2F6;
  639. border-radius: 4px;
  640. }
  641. .return_title{
  642. font-family: PingFangSC, PingFang SC;
  643. font-weight: 600;
  644. font-size: 16px;
  645. color: rgba(0,0,0,0.85);
  646. margin-bottom: 10rpx;
  647. }
  648. .button-icon {
  649. width: 28rpx;
  650. height: 28rpx;
  651. margin-right: 8rpx;
  652. }
  653. .button-left {
  654. width: 350rpx;
  655. height: 84rpx;
  656. background: #FFF8F8;
  657. border-radius: 200rpx 0rpx 0rpx 200rpx;
  658. box-shadow: 0px 2px 8px 0px #DFDFDF;
  659. .reject-text {
  660. font-size: 32rpx;
  661. color: #E60114;
  662. line-height: 44rpx;
  663. }
  664. }
  665. .button-right {
  666. width: 350rpx;
  667. height: 84rpx;
  668. background: linear-gradient(90deg, #DC0736 0%, #E60114 100%);
  669. border-radius: 0rpx 200rpx 200rpx 0rpx;
  670. box-shadow: 0px 2px 8px 0px #DFDFDF;
  671. .pass-text {
  672. font-size: 32rpx;
  673. color: #FFFFFF;
  674. line-height: 44rpx;
  675. }
  676. }
  677. .button-left-one {
  678. width: 220rpx;
  679. height: 84rpx;
  680. background: #FFF8F8;
  681. border-radius: 200rpx;
  682. box-shadow: 0px 2px 8px 0px #DFDFDF;
  683. .reject-text {
  684. font-size: 32rpx;
  685. color: #E60114;
  686. line-height: 44rpx;
  687. }
  688. }
  689. .button-right-one {
  690. width: 220rpx;
  691. height: 84rpx;
  692. background: linear-gradient(90deg, #DC0736 0%, #E60114 100%);
  693. border-radius: 200rpx;
  694. box-shadow: 0px 2px 8px 0px #DFDFDF;
  695. .pass-text {
  696. font-size: 32rpx;
  697. color: #FFFFFF;
  698. line-height: 44rpx;
  699. }
  700. }
  701. }
  702. }
  703. </style>