RepairDetails.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749
  1. <template>
  2. <view>
  3. <!-- 状态 -->
  4. <!-- && userInfoRoleName.indexOf('admin') == -1 -->
  5. <view class="label" v-if="(form.dispatchingWorkers == 2 || form.status == 3 || form.status == 4)">
  6. <view class="tab" ref="wx" :style="{'color':wxStyle,'height':'100%','border-right': '1rpx solid #f4f4f4'}" @click="tab('wx')">
  7. <text>报修单</text>
  8. </view>
  9. <view class="tab" ref="gz" :style="{'color':gzStyle,'height':'100%','border-left': '1rpx solid #f4f4f4'}"
  10. @click="tab('gz')">
  11. <text>工作单</text>
  12. </view>
  13. </view>
  14. <view class="repairdetails" v-if="form.status == 1">
  15. <view class="cardBox">
  16. <!-- <view class="text">设备信息:</view> -->
  17. <u-input v-model="form.deviceName" disabledColor="#fff" disabled
  18. border="none" placeholder="请选择设备信息" >
  19. <!-- <template slot="suffix">
  20. <u-icon name="scan" color="#bbb" size="32"></u-icon>
  21. </template> -->
  22. </u-input>
  23. </view>
  24. <view class="cardBox">
  25. <!-- <view class="text">客户名称:</view> -->
  26. <u-input v-model="form.corpName" disabled disabledColor="#fff"
  27. border="none" placeholder="客户名称" ></u-input>
  28. </view>
  29. <view class="cardBox">
  30. <!-- <view class="text">地址:</view> -->
  31. <u-input v-model="form.deviceAddress" disabledColor="#fff" disabled
  32. border="none" placeholder="设备地址" ></u-input>
  33. </view>
  34. <view class="cardBox">
  35. <!-- <view class="text">故障描述:</view> -->
  36. <u--textarea v-model="form.faultDescribe" placeholder="故障描述" disabled
  37. border="none" >
  38. </u--textarea>
  39. </view>
  40. <view class="kapian">
  41. <!-- <view style="font-size: 30rpx;color: #999;margin-left: 10rpx;">添加图片</view> -->
  42. <view style="margin-top: 20rpx;">
  43. <u-upload
  44. :fileList="form.maintenanceFiles"
  45. :disabled="form.status != 3"
  46. @afterRead="afterRead"
  47. @delete="deletePic"
  48. name="1"
  49. multiple
  50. :maxCount="10"
  51. ></u-upload>
  52. </view>
  53. </view>
  54. </view>
  55. <!-- 维修单 -->
  56. <view class="repairdetails" v-if="wxStyle != ''">
  57. <view class="cardBox">
  58. <!-- <view class="text">设备信息:</view> -->
  59. <u-input v-model="form.deviceName" disabledColor="#fff" disabled
  60. border="none" placeholder="请选择设备信息" >
  61. <!-- <template slot="suffix">
  62. <u-icon name="scan" color="#bbb" size="32"></u-icon>
  63. </template> -->
  64. </u-input>
  65. </view>
  66. <view class="cardBox">
  67. <!-- <view class="text">客户名称:</view> -->
  68. <u-input v-model="form.corpName" disabled disabledColor="#fff"
  69. border="none" placeholder="客户名称" ></u-input>
  70. </view>
  71. <view class="cardBox">
  72. <!-- <view class="text">地址:</view> -->
  73. <u-input v-model="form.deviceAddress" disabledColor="#fff" disabled
  74. border="none" placeholder="设备地址" ></u-input>
  75. </view>
  76. <view class="cardBox">
  77. <!-- <view class="text">故障描述:</view> -->
  78. <u--textarea v-model="form.faultDescribe" placeholder="故障描述" disabled
  79. border="none" >
  80. </u--textarea>
  81. </view>
  82. <view class="kapian">
  83. <!-- <view style="font-size: 30rpx;color: #999;margin-left: 10rpx;">添加图片</view> -->
  84. <view style="margin-top: 20rpx;">
  85. <u-upload
  86. :fileList="form.maintenanceFiles"
  87. :disabled="form.status != 3"
  88. @afterRead="afterRead"
  89. @delete="deletePic"
  90. name="1"
  91. multiple
  92. :maxCount="10"
  93. ></u-upload>
  94. </view>
  95. </view>
  96. </view>
  97. <!-- 工作单 -->
  98. <view class="repairdetails" v-if="gzStyle != ''">
  99. <view class="cardBox">
  100. <!-- <view class="text">设备信息:</view> -->
  101. <u-input v-model="form.deviceName" disabledColor="#fff" disabled
  102. border="none" placeholder="请选择设备信息" >
  103. <!-- <template slot="suffix">
  104. <u-icon name="scan" color="#bbb" size="32"></u-icon>
  105. </template> -->
  106. </u-input>
  107. </view>
  108. <view class="cardBox">
  109. <u--textarea v-model="form.repairDescription" placeholder="维修描述" border="none" :disabled="form.status != 3" >
  110. </u--textarea>
  111. </view>
  112. <view class="kapian">
  113. <!-- <view style="font-size: 30rpx;color: #999;margin-left: 10rpx;">添加图片</view> -->
  114. <view style="margin-top: 20rpx;">
  115. <u-upload
  116. :fileList="form.maintenanceFiles"
  117. :disabled="form.status != 3"
  118. @afterRead="afterRead"
  119. @delete="deletePic"
  120. name="1"
  121. multiple
  122. :maxCount="10"
  123. ></u-upload>
  124. </view>
  125. </view>
  126. <view>
  127. <view class="kapian" v-for="(item,index) in form.maintenanceFees" :key="item.id">
  128. <view class="WXflex">
  129. <view class="wxscfun" style="color: #fff; background-color: #FD4B09;" v-if="form.status == 3" @click="kapianClick(item,index)">修改</view>
  130. </view>
  131. <view class="repairProject">
  132. <view class="wxbox">
  133. {{item.costName}}
  134. </view>
  135. <view class="wxbox" style="color: #FD4B09;">
  136. {{item.amount}}元
  137. </view>
  138. </view>
  139. </view>
  140. </view>
  141. <view class="kapian" >
  142. <view class="wxtitleflex">
  143. <view class="wxtitle">添加费用</view>
  144. <view v-if="form.status == 3 && type != 'XQ'" style="color: #fff; background-color: #FD4B09;" class="addwx" @click="kapianShow = true">添加</view>
  145. </view>
  146. </view>
  147. </view>
  148. <!-- wxaddfun -->
  149. <u-gap height="60"></u-gap>
  150. <view class="bottombox">
  151. <view class="bottombox_name" v-if="form.dispatchingWorkers == 2 && form.status != 1">
  152. <text>{{form.maintenanceWorkerName}}</text>
  153. </view>
  154. <view class="bottombox_name" @click="pickerShowfun" v-if="form.status == 1 && userInfoRoleName.indexOf('admin') != -1">
  155. <text>{{form.maintenanceWorkerName == null || form.maintenanceWorkerName == '' ? '请选择维修工' : form.maintenanceWorkerName}}</text>
  156. </view>
  157. <view v-if="(form.status == 3 || form.status == 4) && form.dispatchingWorkers == 3" style="color: #FD4B09;">维修费:{{form.maintenanceAmount?form.maintenanceAmount:0}}元</view>
  158. <view class="bottombox_right">
  159. <view class="buttonClass"
  160. v-if="form.status == 1 && userInfoRoleName.indexOf('admin') != -1"
  161. @click="maintenanceDispatchingWorkersfun">确认派工</view>
  162. <view class="buttonClass"
  163. v-if="form.dispatchingWorkers == 2 && userInfoRoleName.indexOf('admin') != -1"
  164. @click="maintenanceRevokeDispatchingWorkersfun">撤销派工</view>
  165. <view class="buttonClass" v-if="form.dispatchingWorkers == 2 && userInfoRoleName.indexOf('维修工') != -1" @click="receivingOrdersfun">确认接单</view>
  166. <view class="buttonClass" v-if="form.status == 3 && userInfoRoleName.indexOf('维修工') != -1 && form.dispatchingWorkers == 3" @click="Confirmexpenses">确认费用</view>
  167. <view class="buttonClass" v-if="form.status == 4" @click="Revocationfeesfun">撤销费用</view>
  168. <view class="buttonClass" v-if="form.status == 4" @click="ConfirmSettlement">确认结算</view>
  169. </view>
  170. </view>
  171. <u-picker :show="pickerShow" :columns="pickerList" keyName="name"
  172. @confirm="pickerShowConfirm" @cancel="pickerShowCancel"></u-picker>
  173. <u-toast ref="uToast"></u-toast>
  174. <!-- 添加费用弹窗 -->
  175. <!-- <u-popup :show="show" mode="top" @close="close" @open="open">
  176. <view>
  177. <text>人生若只如初见,何事秋风悲画扇</text>
  178. </view>
  179. </u-popup> -->
  180. <u-modal :show="kapianShow" title="项目" :showCancelButton="true" @cancel="kapianCancel" @confirm="kapianConfirm" confirmColor="#FD4B09">
  181. <view style="position: relative;">
  182. <view class="positionSC" @click="maintenanceDe(kapianindex)">删除</view>
  183. <view class="kapianModel">
  184. <text style="color: #FD4B09;font-size: 28rpx;">项目:</text>
  185. <u-input v-model="kapian.costName" disabledColor="#fff" :disabled="form.status != 3"
  186. border="bottom" confirm-type="next" placeholder="添加项目" ></u-input>
  187. </view>
  188. <view class="kapianModel">
  189. <text style="color: #FD4B09;font-size: 28rpx;">金额:</text>
  190. <u-input v-model="kapian.amount" disabledColor="#fff" :disabled="form.status != 3"
  191. border="bottom" type="digit" confirm-type="done" @input="moneyInput" placeholder="金额" ></u-input>
  192. </view>
  193. </view>
  194. </u-modal>
  195. </view>
  196. </template>
  197. <script>
  198. import {
  199. maintenanceDetail,
  200. maintenanceReceivingOrders,
  201. maintenanceConfirm,
  202. userList,
  203. maintenanceDispatchingWorkers,
  204. maintenanceRevokeDispatchingWorkers,
  205. maintenancerRvokeConfirmFees
  206. } from '@/api/device/index.js'
  207. import http from '@/http/api.js'
  208. import {
  209. clientId,
  210. clientSecret
  211. } from '@/common/setting'
  212. export default {
  213. data() {
  214. return {
  215. id:null,
  216. wxStyle: '',
  217. gzStyle: '',
  218. form:{
  219. maintenanceFees:[
  220. {
  221. id:null,
  222. costId:null,
  223. costName:null,
  224. number:1,
  225. price:null,
  226. amount:null,
  227. currency:'CNY',
  228. settlementAmount:null,
  229. remarks:null,
  230. }
  231. ]
  232. },
  233. // 项目
  234. kapian: {},
  235. // 弹窗的开启
  236. pickerShow:false,
  237. // 添加费用弹窗
  238. kapianShow: false,
  239. pickerList:[],
  240. userInfoRoleName:[],
  241. // 当前点击费用的下标
  242. kapianindex:null,
  243. }
  244. },
  245. onLoad(e) {
  246. this.id = e.id
  247. this.type = e.type
  248. this.userInfoRoleName = uni.getStorageSync('userInfo').role_name.split(',')
  249. this.maintenanceDetailfun()
  250. },
  251. onShow() {
  252. },
  253. methods: {
  254. // 添加费用的点击
  255. kapianClick(item,index) {
  256. if (this.form.status == 4) return
  257. this.kapian = item
  258. this.kapianindex = index
  259. this.kapianShow = true;
  260. },
  261. // 添加项目取消
  262. kapianCancel() {
  263. this.kapian = {};
  264. this.kapianShow = false;
  265. },
  266. // 添加项目确认
  267. kapianConfirm() {
  268. console.log("this.kapianindex," + this.kapianindex);
  269. if (this.kapianindex != null) {
  270. this.form.maintenanceFees[this.kapianindex] = this.kapian
  271. }else {
  272. this.form.maintenanceFees.push(this.kapian)
  273. }
  274. this.kapianindex = null
  275. this.kapianShow = false;
  276. },
  277. moneyInput() {
  278. var money = 0
  279. for (let fees of this.form.maintenanceFees) {
  280. money += Number(fees.amount)
  281. }
  282. this.form.maintenanceAmount = money;
  283. },
  284. tab(type) {
  285. if(type == "wx") {
  286. this.wxStyle = "#fd4b09"
  287. this.gzStyle = ""
  288. // this.form.status = 2
  289. } else if (type == "gz") {
  290. if (this.form.dispatchingWorkers == 2) return
  291. this.gzStyle = "#fd4b09"
  292. this.wxStyle = ""
  293. // this.form.status = 3
  294. }
  295. },
  296. // 设备删除
  297. maintenanceDe(index){
  298. this.form.maintenanceFees.splice(index,1)
  299. this.moneyInput()
  300. },
  301. // 撤销派工
  302. maintenanceRevokeDispatchingWorkersfun(){
  303. maintenanceRevokeDispatchingWorkers(this.form).then(res=>{
  304. if (res.code == 200) {
  305. this.$refs.uToast.show({
  306. type: 'success',
  307. message: "撤销派工成功",
  308. })
  309. this.form = res.data
  310. }else {
  311. this.$refs.uToast.show({
  312. type: 'error',
  313. message: res.msg,
  314. })
  315. }
  316. })
  317. },
  318. // 派工
  319. maintenanceDispatchingWorkersfun(){
  320. if (!this.form.maintenanceWorkerId) {
  321. return this.$refs.uToast.show({type: 'warning',message: '请选择维修工'})
  322. }
  323. // if (!this.form.maintenanceWorkerTel) {
  324. // return this.$refs.uToast.show({type: 'warning',message: '请输入维修工电话'})
  325. // }
  326. maintenanceDispatchingWorkers(this.form).then(res=>{
  327. if (res.code == 200) {
  328. this.$refs.uToast.show({
  329. type: 'success',
  330. message: "派工成功",
  331. })
  332. this.form = res.data
  333. this.tab('wx')
  334. }else {
  335. this.$refs.uToast.show({
  336. type: 'error',
  337. message: res.msg,
  338. })
  339. }
  340. })
  341. },
  342. // 维修工弹窗开启
  343. pickerShowfun(){
  344. this.pickerShow = true
  345. this.userListfun()
  346. },
  347. // 维修工获取
  348. userListfun(){
  349. userList({roleAlias:'维修工'}).then(res=>{
  350. this.pickerList = [res.data]
  351. })
  352. },
  353. // 维修工弹窗的确认
  354. pickerShowConfirm(e){
  355. console.log(e.value[0],181);
  356. this.form.maintenanceWorkerId = e.value[0].id
  357. this.form.maintenanceWorkerName = e.value[0].name
  358. this.form.maintenanceWorkerTel = e.value[0].phone
  359. this.pickerShow = false
  360. },
  361. // 维修工弹窗取消
  362. pickerShowCancel() {
  363. this.pickerShow = false
  364. },
  365. // 维修费用的添加
  366. wxaddfun(){
  367. this.form.maintenanceFees.push({
  368. id:null,
  369. costId:null,
  370. costName:null,
  371. number:1,
  372. price:null,
  373. amount:null,
  374. currency:'CNY',
  375. settlementAmount:null,
  376. remarks:null,
  377. })
  378. },
  379. // 确认费用
  380. Confirmexpenses(){
  381. let a = true
  382. if (this.form.maintenanceFees.length <= 0) {
  383. return this.$refs.uToast.show({type: 'warning',message: '请添加维修费用'})
  384. }else {
  385. this.form.maintenanceFees.map((item,index)=>{
  386. if (!item.costName) {
  387. this.$refs.uToast.show({type: 'warning',message: `请填写序号${index + 1}的费用名称`})
  388. a = false
  389. return
  390. }
  391. if (!item.amount) {
  392. this.$refs.uToast.show({type: 'warning',message: `请填写序号${index + 1}的金额`})
  393. a = false
  394. return
  395. }
  396. })
  397. if (a == false) return
  398. maintenanceConfirm(this.form).then(res=>{
  399. if (res.code == 200) {
  400. this.$refs.uToast.show({
  401. type: 'success',
  402. message: "操作成功",
  403. })
  404. // uni.navigateBack({
  405. // delta: 1
  406. // });
  407. this.form = res.data
  408. }else {
  409. this.$refs.uToast.show({
  410. type: 'error',
  411. message: res.msg,
  412. })
  413. }
  414. })
  415. }
  416. },
  417. // 撤销费用
  418. Revocationfeesfun(){
  419. maintenancerRvokeConfirmFees(this.form).then(res=>{
  420. if (res.code == 200) {
  421. this.$refs.uToast.show({
  422. type: 'success',
  423. message: "撤销成功",
  424. })
  425. this.form = res.data
  426. }else {
  427. this.$refs.uToast.show({
  428. type: 'error',
  429. message: res.msg,
  430. })
  431. }
  432. })
  433. },
  434. // 确认结算
  435. ConfirmSettlement(){
  436. },
  437. // 确认接单接口
  438. receivingOrdersfun(){
  439. maintenanceReceivingOrders(this.form).then(res=>{
  440. console.log(res,180);
  441. if (res.code == 200) {
  442. this.$refs.uToast.show({
  443. type: 'success',
  444. message: "接单成功",
  445. })
  446. this.form = res.data
  447. this.tab('gz')
  448. }else {
  449. this.$refs.uToast.show({
  450. type: 'error',
  451. message: res.msg,
  452. })
  453. }
  454. })
  455. },
  456. // 维修设备详情
  457. maintenanceDetailfun(){
  458. maintenanceDetail({id:this.id}).then(res=>{
  459. this.form = res.data
  460. if (this.form.status == 4) {
  461. this.gzStyle = "#fd4b09"
  462. this.wxStyle = ""
  463. } else if (this.form.status == 3 && this.form.dispatchingWorkers == 3) {
  464. this.gzStyle = "#fd4b09"
  465. this.wxStyle = ""
  466. } else if (this.form.dispatchingWorkers == 2) {
  467. console.log(this.form.status);
  468. this.wxStyle = "#fd4b09"
  469. this.gzStyle = ""
  470. } else if (this.form.status == 1) {
  471. userList({roleAlias:'维修工'}).then(res=>{
  472. this.wxUserList = [res.data]
  473. })
  474. }
  475. // if (this.type == 'JD') {
  476. // this.form.maintenanceFees.push({
  477. // id:null,
  478. // costId:null,
  479. // costName:null,
  480. // number:1,
  481. // price:null,
  482. // amount:null,
  483. // currency:'CNY',
  484. // settlementAmount:null,
  485. // remarks:null,
  486. // })
  487. // }
  488. })
  489. },
  490. // 图片删除
  491. deletePic(e){
  492. if(e.file.uploadType == 0) return this.$refs.uToast.show({ type: 'warning', message: '请勿删除客户添加的图片',})
  493. this.form.maintenanceFiles.splice(e.index,1)
  494. },
  495. // 上传图片
  496. async afterRead(event){
  497. // 当设置 multiple 为 true 时, file 为数组格式,否则为对象格式
  498. let lists = [].concat(event.file)
  499. console.log(lists);
  500. let fileListLen = this.form.maintenanceFiles.length
  501. lists.map((item) => {
  502. this.form.maintenanceFiles.push({
  503. uploadType:1,
  504. ...item
  505. })
  506. })
  507. for (let i = 0; i < lists.length; i++) {
  508. const result = await this.uploadFilePromise(lists[i].url)
  509. let item = this.form.maintenanceFiles[fileListLen]
  510. this.form.maintenanceFiles.splice(fileListLen, 1, Object.assign(item, {
  511. sort: this.form.maintenanceFiles.length,
  512. fileName: JSON.parse(result).data.originalName,
  513. url: JSON.parse(result).data.link
  514. }))
  515. fileListLen++
  516. }
  517. },
  518. uploadFilePromise(url) {
  519. return new Promise((resolve, reject) => {
  520. let a = uni.uploadFile({
  521. url: http.config.baseURL +
  522. '/blade-resource/oss/endpoint/put-file', // 仅为示例,非真实的接口地址
  523. filePath: url,
  524. name: 'file',
  525. formData: {
  526. user: 'test'
  527. },
  528. header: {
  529. // 客户端认证参数
  530. 'Authorization': 'Basic ' + Base64.encode(clientId + ':' +
  531. clientSecret),
  532. 'Blade-Auth': 'bearer ' + uni.getStorageSync('accessToken')
  533. },
  534. success: (res) => {
  535. setTimeout(() => {
  536. resolve(res.data)
  537. }, 1000)
  538. }
  539. });
  540. })
  541. },
  542. }
  543. }
  544. </script>
  545. <style lang="scss" scoped>
  546. .kapianModel {
  547. display: flex;
  548. align-items: center;
  549. // justify-content: flex-start;
  550. }
  551. .positionSC {
  552. position: absolute;
  553. top: -80rpx;
  554. right: -60rpx;
  555. background: #fd4b09;
  556. color: #fff;
  557. font-size: 30rpx;
  558. padding: 10rpx 15rpx;
  559. border-radius: 12rpx;
  560. }
  561. .label {
  562. left: 0rpx;
  563. top: 190rpx;
  564. width: 100%;
  565. height: 114rpx;
  566. line-height: 40rpx;
  567. background-color: rgba(255, 255, 255, 1);
  568. text-align: center;
  569. display: flex;
  570. align-items: center;
  571. .tab {
  572. width: 50%;
  573. display: flex;
  574. color: #c4c4c4;
  575. align-items: center;
  576. justify-content: center;
  577. font-size: 40rpx;
  578. text-align: left;
  579. font-family: PingFangSC-semiBold;
  580. }
  581. }
  582. .repairdetails {
  583. padding: 20rpx;
  584. box-sizing: border-box;
  585. }
  586. .cardBox {
  587. background: #fff;
  588. border-radius: 12rpx;
  589. width: 100%;
  590. padding: 30rpx;
  591. box-sizing: border-box;
  592. margin-bottom: 20rpx;
  593. display: flex;
  594. align-items: center;
  595. justify-content: center;
  596. }
  597. .text {
  598. font-size: 30rpx;
  599. color: #999;
  600. margin-right: 10rpx;
  601. }
  602. .kapian {
  603. background: #fff;
  604. border-radius: 12rpx;
  605. width: 100%;
  606. padding: 30rpx;
  607. box-sizing: border-box;
  608. margin-bottom: 20rpx;
  609. .repairProject {
  610. display: flex;
  611. justify-content: space-between;
  612. padding: 0 20rpx;
  613. }
  614. .wxtitleflex {
  615. display: flex;
  616. align-items: center;
  617. justify-content: space-between;
  618. }
  619. .wxtitle {
  620. font-size: 34rpx;
  621. color: #888;
  622. }
  623. .wxbox {
  624. border-bottom: 2rpx solid #eee;
  625. display: flex;
  626. align-items: center;
  627. justify-content: center;
  628. padding: 20rpx 0;
  629. margin: 10rpx 0;
  630. }
  631. .addwx {
  632. color: #dd451b;
  633. font-size: 30rpx;
  634. padding: 10rpx 20rpx;
  635. border: 2rpx solid;
  636. border-radius: 30rpx;
  637. }
  638. .WXflex {
  639. display: flex;
  640. justify-content: space-between;
  641. align-items: center;
  642. .xuhao {
  643. font-size: 32rpx;
  644. color: #101010;
  645. }
  646. .wxscfun {
  647. color: red;
  648. font-size: 30rpx;
  649. padding: 10rpx 20rpx;
  650. border: 2rpx solid;
  651. border-radius: 28rpx;
  652. }
  653. }
  654. }
  655. .bottombox {
  656. position: fixed;
  657. bottom: 0;
  658. width: 100%;
  659. height: 120rpx;
  660. background: #fff;
  661. box-shadow: 0rpx 4rpx 4rpx 4rpx rgba(0, 0, 0, 0.5);
  662. padding: 0 40rpx;
  663. box-sizing: border-box;
  664. display: flex;
  665. justify-content: space-between;
  666. align-items: center;
  667. .bottombox_name {
  668. font-size: 38rpx;
  669. color: #101010;
  670. }
  671. .bottombox_right {
  672. display: flex;
  673. .buttonClass {
  674. // background: #2d4a6a;
  675. background: #FD4B09;
  676. padding: 15rpx;
  677. margin: 0 5rpx;
  678. border-radius: 30rpx;
  679. color: #fff;
  680. // font-weight: bold;
  681. // margin: 0 10rpx;
  682. }
  683. }
  684. }
  685. </style>