工行这里学车报名流程h5
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

655 lines
19 KiB

1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
  1. <template>
  2. <view class="main">
  3. <u-form :model="form" ref="uForm" :label-width="'auto'">
  4. <u-form-item label="驾校名称" >
  5. <view class="tar">
  6. {{currentSchool.schoolName}}
  7. </view>
  8. </u-form-item>
  9. <u-form-item label="学驾车型" prop="classModel" required >
  10. <view @click="showDriveModels=true" class="select_row" >
  11. <u-input v-model="form.classModel" input-align="right" placeholder="请选择" disabled @click="showDriveModels=true" />
  12. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  13. </view>
  14. </u-form-item>
  15. <u-form-item label="班型" prop="classModel" required >
  16. <view @click="showDriveModels=true" class="select_row" >
  17. <u-input v-model="form.trainingClassLable" input-align="right" placeholder="请选择" disabled @click="showDriveModels=true" />
  18. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  19. </view>
  20. </u-form-item>
  21. <view class="line"></view>
  22. <u-form-item label="业务类型" required prop="businessTypeName" >
  23. <view class="tag_row">
  24. <view class="tag" v-for="(item, index) in businessTypeArr" :key="index" @click="form.businessType=item.id" :class="{active: item.id==form.businessType}">{{item.name}}</view>
  25. </view>
  26. </u-form-item>
  27. <!-- <view :class="{line: !form.businessType}"></view> -->
  28. <view class="" v-if="form.businessType==1">
  29. <!-- <u-form-item label="原驾驶证号" required >
  30. <u-input v-model="form.certificateCodeShow" disabled input-align="right" placeholder="" disabled/>
  31. </u-form-item> -->
  32. <u-form-item label="驾驶证初领日期" required >
  33. <view @click="showFirstLicenceTime=true" class="select_row">
  34. <u-input v-model="form.firstLicenceTime" disabled input-align="right" placeholder="请选择" @click="showFirstLicenceTime=true"/>
  35. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;"></u-icon>
  36. </view>
  37. </u-form-item>
  38. <u-form-item label="原准驾车型" required>
  39. <view @click="showOldDriveModel=true" class="select_row">
  40. <u-input v-model="form.oldDriveModel" disabled input-align="right" placeholder="请选择" @click="showOldDriveModel=true"/>
  41. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;"></u-icon>
  42. </view>
  43. </u-form-item>
  44. <view class="line"></view>
  45. </view>
  46. <!-- <view :class="{line: !form.businessType}"></view> -->
  47. <!-- <u-form-item label="异地转入" required prop="businessTypeName" >
  48. <view class="tag_row" @click="transfer=!transfer">
  49. <view class="tag" :class="{active: transfer}"></view>
  50. <view class="tag" :class="{active: !transfer}"></view>
  51. </view>
  52. </u-form-item>
  53. <view class="" v-if="transfer">
  54. <u-form-item label="转出城市" prop="coachName" >
  55. <view @click="showDriveModels=true" class="select_row" >
  56. <u-input v-model="form.value" input-align="right" placeholder="请选择" disabled @click="showDriveModels=true" />
  57. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  58. </view>
  59. </u-form-item>
  60. <u-form-item label="已学科目" prop="coachName" >
  61. <view @click="showDriveModels=true" class="select_row" >
  62. <u-input v-model="form.value" input-align="right" placeholder="请选择" disabled @click="showDriveModels=true" />
  63. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  64. </view>
  65. </u-form-item>
  66. </view> -->
  67. <view class="h2">
  68. 学员信息 <text>请准确填写学员真实信息</text>
  69. </view>
  70. <u-form-item label="头 像" >
  71. <view @click="chooseImages('avatar')" class="select_row" >
  72. <view class="avatar">
  73. <image src="@/static/images/avatar.png" mode="" v-if="!form.avatar"></image>
  74. <image :src="form.avatar" mode="" v-else></image>
  75. </view>
  76. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  77. </view>
  78. </u-form-item>
  79. <u-form-item label="姓 名" >
  80. <u-input placeholder="请填写" input-align="right" v-model="form.realName"></u-input>
  81. </u-form-item>
  82. <u-form-item label="性 别" >
  83. <view @click="showSex=true" class="select_row" >
  84. <u-input v-model="form.sexName" input-align="right" placeholder="请选择" disabled @click="showSex=true" />
  85. <u-icon name="arrow-right" size="28" color="#686B73" style="margin-left: 12rpx;" ></u-icon>
  86. </view>
  87. </u-form-item>
  88. <u-form-item label="国 籍" prop="coachName" >
  89. <view class="tar">中国</view>
  90. </u-form-item>
  91. <u-form-item label="证件类型" >
  92. <view class="tar">身份证</view>
  93. </u-form-item>
  94. <u-form-item label="证件号码">
  95. <view class="tar">
  96. <u-input placeholder="请输入证件号码" input-align="right" v-model="form.certificateCode"></u-input>
  97. </view>
  98. </u-form-item>
  99. <!-- <u-form-item label="地址">
  100. <view class="tar">
  101. <u-input placeholder="请输入证件号码" input-align="right" v-model="form.address"></u-input>
  102. </view>
  103. </u-form-item> -->
  104. <view class="idcardBox">
  105. <view class="idcard" @click="chooseImages('idcardA')" >
  106. <image src="@/static/images/idcardA.png" mode="widthFix" v-if="!form.idcardA"></image>
  107. <image :src="form.idcardA" mode="widthFix" v-else></image>
  108. </view>
  109. <view class="idcard" @click="chooseImages('idcardB')" >
  110. <image src="@/static/images/idcardB.png" mode="widthFix" v-if="!form.idcardB"></image>
  111. <image :src="form.idcardB" mode="widthFix" v-else></image>
  112. </view>
  113. </view>
  114. <view class="line"></view>
  115. <view class="remark">
  116. <view class="h3">备注</view>
  117. <view class="remarkInput">
  118. <u-input v-model="form.value" type="textarea" :border="false" :auto-height="true" :height="176"/>
  119. </view>
  120. </view>
  121. </u-form>
  122. <view class="footBox">
  123. <view class="leftCon">
  124. <view class="row1">
  125. <view class="lab">总额</view>
  126. <view class="redPrice">
  127. <text></text>{{ $u.utils.priceTo(newPrice)}}
  128. </view>
  129. <view class="oldPrice">{{$u.utils.priceTo(totalPrice)}}</view>
  130. </view>
  131. <view class="redTxt">享9.5已减{{$u.utils.priceTo(totalPrice - newPrice)}}</view>
  132. </view>
  133. <view class="rightBtn" @click="oneBtnConfirm">下一步</view>
  134. </view>
  135. <!-- 车型 -->
  136. <u-picker mode="selector" v-model="showDriveModels" :range="selectorDriveModels" @confirm="confirmDriveModels"></u-picker>
  137. <!-- 班型 -->
  138. <u-picker mode="selector" v-model="showTrainingClasss" :range="selectorTrainingClasss" range-key="className" @confirm="confirmTrainingClasss"></u-picker>
  139. <!-- 性别选择 -->
  140. <u-picker mode="selector" v-model="showSex" :range="sexArr" range-key="lab" @confirm="confirmSex"></u-picker>
  141. <!-- 原驾驶证初领日期 -->
  142. <u-picker mode="time" v-model="showFirstLicenceTime" @confirm="confirmFirstLicenceTime" :params="paramsPicker"></u-picker>
  143. <!-- 原驾驶证学驾车型 -->
  144. <u-popup v-model="showOldDriveModel" mode="bottom">
  145. <view class="carBox">
  146. <view class="carh1">学驾车型</view>
  147. <view v-for="(item,index) in carTypeArr" :key="index" class="carLi">
  148. <view class="carType">{{item.lab}}</view>
  149. <view class="carName_row">
  150. <view class="carName" v-for="(item2,index2) in item.arr" :key="index2" @click="pickerCarClick(item2)" :class="{active: pickerCarArr.indexOf(item2) > -1}">{{item2}}</view>
  151. </view>
  152. </view>
  153. <view class="payBtn_row">
  154. <view class="payBtn border" @click="pickerCar()">重置</view>
  155. <view class="payBtn" @click="pickerCar(1)">完成</view>
  156. </view>
  157. </view>
  158. </u-popup>
  159. </view>
  160. </template>
  161. <script>
  162. import indexApi from '@/api/index.js'
  163. import {mapState} from 'vuex'
  164. import { APP_API, APP_HOST } from '@/site.config.js';
  165. const _url = APP_HOST + APP_API + '/util/manage/uploadFile.do';
  166. export default {
  167. computed: {
  168. ...mapState(['currentSchool','classChooseItem']),
  169. // 该函数内部运行的返回值大致为:{num: () => this.$store.state.num, school: () => this.$store.state.school}
  170. },
  171. data() {
  172. return {
  173. transfer: false,
  174. showDriveModels: false,
  175. showTrainingClasss: false,
  176. showFirstLicenceTime: false,
  177. showOldDriveModel: false,
  178. form: {
  179. classModel: '',
  180. businessType: 0,//业务类型
  181. firstLicenceTime: '',//原驾驶证初领日期
  182. avatar: '',//上传头像
  183. certificateType: 1,//证件类型
  184. trainingClassId: '',//班型
  185. realName: '',
  186. certificateCode: '',
  187. sex: '',
  188. nationality: '中国',
  189. oldDriveModel: '',//原驾驶证车型
  190. address: '',
  191. adaptability: 0,
  192. businessTypeName: '',
  193. sexName: '',
  194. trainingClassLable: '',
  195. idcardA: '',
  196. idcardB: ''
  197. },
  198. showSex: false,
  199. info: {},
  200. selectorTrainingClasss: [],//班型数据
  201. selectorDriveModels: [],//车型数据
  202. businessTypeArr: [
  203. {name: '初领', id: 0},
  204. {name: '增领', id: 1}
  205. ],
  206. sexArr: [
  207. {id: 1, lab: '男'},
  208. {id: 2, lab: '女'},
  209. ],
  210. carTypeArr: [
  211. {lab: '小车',arr: ['C1','C2','C3']},
  212. {lab: '货车',arr: ['A2','B2',]},
  213. {lab: '客车',arr: ['A1','B3','B1']},
  214. {lab: '摩托车',arr: ['D','E','F']},
  215. {lab: '其它',arr: ['C4','C5','C6']},
  216. ],
  217. pickerCarArr: [],
  218. paramsPicker: {
  219. year: true,
  220. month: true,
  221. day: true,
  222. },
  223. trainingApplyId: '',
  224. totalPrice: '',
  225. newPrice: 0
  226. }
  227. },
  228. onLoad(options) {
  229. this.trainingApplyId = options.trainingApplyId
  230. // totalPrice trainingClassId
  231. this.form.classModel = this.classChooseItem.className
  232. this.totalPrice = this.classChooseItem.totalPrice
  233. this.newPrice = this.totalPrice * 0.95
  234. this.form.trainingClassId = this.classChooseItem.trainingClassId
  235. this.form.trainingClassLable = this.classChooseItem.classModel
  236. this.InitFn()
  237. },
  238. methods: {
  239. async InitFn() {
  240. await this.getTrainingApplyDetailsFn()
  241. this.queryTrainingClasssFn()
  242. this.queryDriveModelsFn()
  243. },
  244. // 确认提交表单还是继续修改
  245. async oneBtnConfirm() {
  246. this.form.trainingSchoolId = this.info.trainingSchoolId
  247. this.form.trainingApplyId = this.trainingApplyId
  248. let obj = {}
  249. for(let key in this.form) {
  250. if(this.form[key]!=='') {
  251. obj[key] = this.form[key]
  252. }
  253. }
  254. if(this.form.businessType) {
  255. // 如果是增驾——原驾驶证号==身份证
  256. obj.driveLicence = obj.certificateCode
  257. }
  258. delete obj.businessTypeName
  259. delete obj.sexName
  260. delete obj.trainingClassLable
  261. console.log(obj)
  262. const [nulls, res] = await indexApi.createTrainingApplyDetails(obj)
  263. setTimeout(()=>{
  264. uni.navigateTo({
  265. url: '/pages/application/payment'
  266. })
  267. },2000)
  268. this.$store.commit('upDateCoachItem', {})
  269. console.log('表单已提交')
  270. console.log(res)
  271. if(res.code==0) {
  272. this.signContractFn()
  273. }
  274. },
  275. // 获取签约链接
  276. async signContractFn() {
  277. uni.showLoading({
  278. title: '请稍后',
  279. mask: true
  280. })
  281. const [nulls, res] = await indexApi.signContract({trainingApplyId: this.trainingApplyId})
  282. console.log('获取签约链接')
  283. console.log(res)
  284. if(res.code!=0) return this.$u.toast(res.message)
  285. // this.showWebView = true
  286. // this.webVeiwUrl = res.data.url
  287. // console.log(this.webVeiwUrl)
  288. uni.hideLoading()
  289. this.$store.commit('updateWebVeiwUrl',res.data.url)
  290. this.showSignConfirmPopup = false
  291. uni.navigateTo({
  292. url: 'pages/application/webView?id='+ this.trainingApplyId
  293. })
  294. },
  295. // 选择性别
  296. confirmSex(i) {
  297. let index = i[0]
  298. let item = this.sexArr[index]
  299. this.form.sex = item.id
  300. this.form.sexName = item.lab
  301. },
  302. // 选择原驾驶证学驾车型
  303. pickerCarClick(item) {
  304. let index = this.pickerCarArr.indexOf(item)
  305. if(index>-1) {
  306. this.pickerCarArr.splice(index, 1);
  307. }else {
  308. this.pickerCarArr.push(item)
  309. }
  310. },
  311. // 选择原驾驶证学驾车型 点击重置或确定
  312. pickerCar(num) {
  313. if(num==1) {
  314. if(!this.pickerCarArr.length) return this.$u.toast('请选择学驾车型')
  315. this.form.oldDriveModel = this.pickerCarArr.join('')
  316. this.showOldDriveModel = false
  317. }else {
  318. this.pickerCarArr = []
  319. this.form.oldDriveModel = ''
  320. }
  321. },
  322. // 选择原驾驶证初领日期
  323. confirmFirstLicenceTime(val) {
  324. let str = val.year+'-'+val.month+'-'+val.day
  325. this.form.firstLicenceTime = str
  326. console.log(val)
  327. },
  328. // 选择车型
  329. async confirmDriveModels(i) {
  330. let index = i[0]
  331. this.form.classModel = this.selectorDriveModels[index]
  332. this.form.trainingClassLable = ''
  333. await this.queryTrainingClasssFn()
  334. this.showTrainingClasss = true
  335. },
  336. // 选择班型
  337. confirmTrainingClasss(i) {
  338. let index = i[0]
  339. let item = this.selectorTrainingClasss[index]
  340. this.form.trainingClassId = item.trainingClassId
  341. this.form.trainingClassLable = item.className
  342. this.totalPrice = item.totalPrice
  343. },
  344. // 获取班型
  345. async queryTrainingClasssFn() {
  346. if(!this.info.trainingSchoolId) return
  347. let obj = {pageSize: 20,pageIndex: 1,trainingSchoolId: this.info.trainingSchoolId,}
  348. if(this.form.classModel) obj.classModel = this.form.classModel
  349. const [nulls, res] = await indexApi.querySimpleTrainingClasssByModel(obj)
  350. this.selectorTrainingClasss = res.data
  351. console.log('获取班型')
  352. console.log(res)
  353. },
  354. // 获取学驾车型
  355. async queryDriveModelsFn() {
  356. if(!this.info.trainingSchoolId) return
  357. const [nulls, res] = await indexApi.queryDriveModels({trainingSchoolId: this.info.trainingSchoolId})
  358. this.selectorDriveModels = res.data
  359. console.log('学驾车型')
  360. console.log(res)
  361. },
  362. // 查询状态
  363. async getTrainingApplyDetailsFn() {
  364. console.log(this.trainingApplyId)
  365. const [nulls, res] = await indexApi.getTrainingApplyDetails({trainingApplyId: this.trainingApplyId})
  366. this.info = res.data
  367. console.log('整体状态控制***************')
  368. console.log(res)
  369. console.log(nulls)
  370. if(this.info.checkStatus==1) this.stepIcon = 1 //按顺序:体检,面签,1为完成,0-未完成
  371. if(this.info.applyStatus==1) this.currentIndex = this.stepIcon = 3//0-预报名,1-已报名,2-已支付,3-已学完
  372. if(this.info.applyStatus==1&&this.info.contractStatus<2) this.showSignPopup = true
  373. if(this.info.contractStatus==2) this.currentIndex = 5
  374. if(this.info.contractStatus==2&&this.info.applyStatus==1) {
  375. if(!this.info.trainingOrderId) {
  376. this.createOrder()
  377. }else {
  378. uni.redirectTo({
  379. url: '/pages/learnDriveStep/payMoney/payMoney?trainingOrderId='+ this.info.trainingOrderId + '&trainingApplyId='+ this.trainingApplyId
  380. })
  381. }
  382. }
  383. },
  384. //选择图片
  385. chooseImages(type) {
  386. uni.chooseImage({
  387. count: 1, //允许选择的数量
  388. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  389. sourceType: ['album', 'camera'], //从相册选择
  390. success: res => {
  391. // console.log(res)
  392. uni.showLoading({
  393. title: '图片上传中...'
  394. });
  395. this.uploadImgApi(res.tempFilePaths[0],type)
  396. }
  397. })
  398. },
  399. uploadImgApi(filePath,type) {
  400. console.log(filePath)
  401. let _this = this
  402. // 上传图片到服务器
  403. uni.uploadFile({
  404. url: _url,//接口
  405. filePath: filePath,//要上传的图片的本地路径
  406. name: 'file',
  407. formData: {
  408. fileType: 1,
  409. fileSuffix: "png"
  410. },
  411. header: {
  412. token: uni.getStorageSync("Authorization") || '',
  413. },
  414. success(res) {
  415. console.log(res)
  416. console.log('上传成功')
  417. let res2 = JSON.parse(res.data)
  418. console.log(res2)
  419. if(res2.code==0) {
  420. _this.form[type] = res2.data
  421. }
  422. uni.hideLoading();
  423. },
  424. complete: ()=> {}
  425. })
  426. },
  427. }
  428. }
  429. </script>
  430. <style lang="scss" scoped>
  431. .main {
  432. width: 100%;
  433. padding: 0 32rpx 100rpx 32rpx;
  434. background: #fff;
  435. }
  436. .payBtn_row {
  437. width: 100%;
  438. padding: 20rpx 46rpx;
  439. display: flex;
  440. justify-content: space-between;
  441. border-top: 1px solid #ededed;
  442. .payBtn {
  443. width: 48%;
  444. line-height: 96rpx;
  445. color: #fff;
  446. height: 96rpx;
  447. background: linear-gradient(180deg, #3593FB 0%, #53D3E5 100%);
  448. border-radius: 49rpx;
  449. text-align: center;
  450. &.border {
  451. border: 2rpx solid rgba(53, 147, 251, 1);
  452. color: #1989FA;
  453. background: #fff;
  454. }
  455. }
  456. }
  457. .select_row {
  458. display: flex;justify-content: flex-end;width: 100%;
  459. }
  460. .avatar {
  461. width: 96rpx;
  462. height: 96rpx;
  463. border-radius: 50%;
  464. overflow: hidden;
  465. }
  466. .idcardBox {
  467. display: flex;
  468. padding: 42rpx 0 28rpx 0;
  469. .idcard {
  470. flex: 1;
  471. padding: 0 10rpx;
  472. }
  473. }
  474. .h2 {
  475. width: 100vw;
  476. margin-left: -32rpx;
  477. height: 96rpx;
  478. background: #F6F7F8;
  479. font-weight: 600;
  480. color: #333333;
  481. line-height: 96rpx;
  482. padding: 0 32rpx;
  483. text {
  484. font-size: 28rpx;
  485. color: #686B73;
  486. padding: 0 0 0 8rpx;
  487. }
  488. }
  489. .line {
  490. height: 20rpx;
  491. width: 100vw;
  492. background-color: #f7f7f7;
  493. margin: -1px 0 0 -32rpx;
  494. }
  495. .tar {
  496. text-align: right;
  497. width: 100%;
  498. }
  499. .tag_row {
  500. display: flex;
  501. width: 100%;
  502. justify-content: flex-end;
  503. // padding-top: 15rpx;
  504. .tag {
  505. width: 88rpx;
  506. height: 56rpx;
  507. background: #F6F7F8;
  508. border-radius: 28rpx;
  509. font-size: 28rpx;
  510. color: #686B73;
  511. margin-left: 12rpx;
  512. text-align: center;
  513. line-height: 56rpx;
  514. &.active {
  515. background: #EDF8FE;
  516. border: 1rpx solid #3593FB;
  517. color: #1989FA;
  518. }
  519. }
  520. }
  521. .remark{
  522. padding-bottom: 80rpx;
  523. .remarkInput {
  524. width: 100%;
  525. padding: 12rpx 32rpx;
  526. border-radius: 8rpx;
  527. background: #F6F7F8;
  528. }
  529. .h3 {
  530. height: 108rpx;
  531. line-height: 108rpx;
  532. font-size: 32rpx;
  533. color: #333;
  534. }
  535. }
  536. .footBox {
  537. position: fixed;
  538. bottom: 0;
  539. left: 0;
  540. width: 100vw;
  541. height: 128rpx;
  542. background: #FFFFFF;
  543. box-shadow: inset 0px 1px 0px 0px #E8E9EC;
  544. padding: 0 32rpx;
  545. display: flex;
  546. justify-content: space-between;
  547. align-items: center;
  548. .leftCon {
  549. flex: 1;
  550. width: 0;
  551. .row1 {
  552. display: flex;
  553. align-items: center;
  554. font-size: 28rpx;
  555. .lab {
  556. color: #333;
  557. }
  558. .redPrice {
  559. color: #E63633;
  560. text {
  561. font-size: 28rpx;
  562. }
  563. font-size: 40rpx;
  564. }
  565. .oldPrice {
  566. color: #686B73;
  567. text-decoration: line-through;
  568. margin-right: 10rpx;
  569. }
  570. }
  571. .redTxt {
  572. color: #E63633;
  573. // margin-top: 8rpx;
  574. font-size: 28rpx;
  575. }
  576. }
  577. .rightBtn {
  578. width: 216rpx;
  579. height: 96rpx;
  580. background: linear-gradient(180deg, #3593FB 0%, #53D3E5 100%);
  581. border-radius: 50rpx;
  582. font-size: 36rpx;
  583. color: #fff;
  584. text-align: center;
  585. line-height: 96rpx;
  586. }
  587. }
  588. .carBox {
  589. width: 100%;
  590. .carh1 {
  591. font-size: 26rpx;
  592. font-weight: 700;
  593. text-align: center;
  594. padding: 30rpx 0 0 0;
  595. }
  596. .carLi {
  597. width: 100%;
  598. margin-bottom: 30rpx;
  599. padding: 0 32rpx;
  600. }
  601. .carType {
  602. font-size: 26rpx;
  603. font-weight: 500;
  604. line-height: 40rpx;
  605. padding: 28rpx 12rpx 12rpx 0;
  606. }
  607. .carName_row {
  608. display: flex;
  609. .carName {
  610. margin-right: 40rpx;
  611. width: 88rpx;
  612. height: 56rpx;
  613. background: #F6F7F8;
  614. border-radius: 28rpx;
  615. line-height: 56rpx;
  616. text-align: center;
  617. color: #686B73;
  618. &.active {
  619. background: #ECF7FE;
  620. border: 1px solid #3593FB;
  621. color: #1989FA;
  622. }
  623. }
  624. }
  625. }
  626. </style>