detail.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  1. <template>
  2. <view class="activity-detail" v-if="info">
  3. <image :src="statusImg" mode="aspectFill" class="status-img" v-if="statusImg"></image>
  4. <!-- 路演 -->
  5. <block v-if="['路演','沙龙'].includes(info.RsCalendarItem.ActivityType)">
  6. <view class="section white-wrap">
  7. <view class="info-item flex">
  8. <view class="label">活动时间:</view>
  9. <view v-if="info.RsCalendarResearcherItem.StartDate === info.RsCalendarResearcherItem.EndDate">
  10. {{info.RsCalendarResearcherItem.StartDate}}({{info.RsCalendarResearcherItem.StartWeek}})
  11. {{info.RsCalendarResearcherItem.StartTime.substr(0,5)}}~{{info.RsCalendarResearcherItem.EndTime.substr(0,5)}}
  12. </view>
  13. <view v-else>
  14. {{info.RsCalendarResearcherItem.StartDate}}({{info.RsCalendarResearcherItem.StartWeek}})
  15. {{info.RsCalendarResearcherItem.StartTime.substr(0,5)}}~{{info.RsCalendarResearcherItem.EndDate}}({{info.RsCalendarResearcherItem.EndWeek}}){{info.RsCalendarResearcherItem.EndTime.substr(0,5)}}
  16. </view>
  17. </view>
  18. <view class="info-item flex" v-if="Role === 'seller'">
  19. <view class="label">研究员:</view>
  20. <view>{{info.RsCalendarResearcherItem.ResearcherName}}</view>
  21. </view>
  22. <view class="info-item flex">
  23. <view class="label">活动类型:</view>
  24. <view>{{info.RsCalendarItem.ActivityType}}</view>
  25. </view>
  26. <view class="info-item flex">
  27. <view class="label">路演形式:</view>
  28. <view>{{info.RsCalendarItem.RoadshowType}}</view>
  29. </view>
  30. <view class="info-item flex" v-if="info.RsCalendarItem.RoadshowPlatform">
  31. <view class="label">路演平台:</view>
  32. <view>{{info.RsCalendarItem.RoadshowPlatform}}</view>
  33. </view>
  34. <view class="info-item flex" v-if="info.RsCalendarItem.City">
  35. <view class="label">路演城市:</view>
  36. <view>{{info.RsCalendarItem.Province}}{{info.RsCalendarItem.City}}{{ info.RsCalendarItem.District||''}}</view>
  37. </view>
  38. <view class="info-item flex">
  39. <view class="label">客户名称:</view>
  40. <view>{{info.CompanyDetail.CompanyName}}</view>
  41. </view>
  42. </view>
  43. <view class="section white-wrap">
  44. <!-- 权益客户显示 -->
  45. <template v-if="Role.includes('rai')">
  46. <view class="info-item flex">
  47. <view class="label">客户状态:</view>
  48. <view>{{info.CompanyDetail.Status}}</view>
  49. </view>
  50. <view class="info-item flex">
  51. <view class="label">所属行业:</view>
  52. <view>{{info.CompanyDetail.IndustryName}}</view>
  53. </view>
  54. <view class="info-item flex">
  55. <view class="label">行业权限:</view>
  56. <view>{{info.CompanyDetail.PermissionName}}</view>
  57. </view>
  58. <view class="info-item flex">
  59. <view class="label">累计互动次数:</view>
  60. <view>{{info.CompanyDetail.ReportReadTotal}}</view>
  61. </view>
  62. </template>
  63. <template v-else>
  64. <template v-if="info.CompanyDetail.EnglishCompany===1">
  65. <view class="info-item flex">
  66. <view class="label">所属国家:</view>
  67. <view>{{info.CompanyDetail.EnglishCountry}}</view>
  68. </view>
  69. <view class="info-item flex">
  70. <view class="label">累计点击量:</view>
  71. <view>{{info.CompanyDetail.EnglishViewTotal}}</view>
  72. </view>
  73. </template>
  74. <template v-else>
  75. <view class="info-item flex">
  76. <view class="label">客户状态:</view>
  77. <view>{{info.CompanyDetail.Status}}</view>
  78. </view>
  79. <view class="info-item flex">
  80. <view class="label">所属行业:</view>
  81. <view>{{info.CompanyDetail.IndustryName}}</view>
  82. </view>
  83. <view class="info-item flex">
  84. <view class="label">开通品种:</view>
  85. <view>{{info.CompanyDetail.PermissionName}}</view>
  86. </view>
  87. <view class="info-item flex">
  88. <view class="label">累计阅读报告次数:</view>
  89. <view>{{info.CompanyDetail.ReportReadTotal}}</view>
  90. </view>
  91. </template>
  92. </template>
  93. <view class="line"></view>
  94. <view class="info-item flex" v-if="Role === 'researcher'">
  95. <view class="label">提交销售:</view>
  96. <view>{{info.RsCalendarItem.SysUserRealName}}</view>
  97. </view>
  98. <view class="info-item flex">
  99. <view class="label">提交时间:</view>
  100. <view>{{info.RsCalendarItem.CreateTime|formatTime}}</view>
  101. </view>
  102. <view class="info-item flex" v-if="['rai_seller','rai_group'].includes(Role)">
  103. <view class="label">提交人:</view>
  104. <view>
  105. {{info.RsCalendarItem.SysUserRealName}}
  106. </view>
  107. </view>
  108. </view>
  109. <view class="section white-wrap"
  110. v-if="info.RsCalendarResearcherItem.Status==2||info.RsCalendarResearcherItem.Status==3">
  111. <view class="info-item flex">
  112. <view class="label">审批时间:</view>
  113. <view>
  114. {{info.RsCalendarResearcherItem.Status==2?info.RsCalendarResearcherItem.ApproveTime:info.RsCalendarResearcherItem.RefuseTime | formatTime}}
  115. </view>
  116. </view>
  117. <view class="info-item flex" v-if="info.RsCalendarResearcherItem.Status==3">
  118. <view class="label">拒绝理由:</view>
  119. <view>{{info.RsCalendarResearcherItem.RefuseReason}}</view>
  120. </view>
  121. </view>
  122. <view class="section white-wrap" v-if="info.RsCalendarResearcherItem.Status==4">
  123. <view class="info-item flex">
  124. <view class="label">删除时间:</view>
  125. <view>{{info.RsCalendarResearcherItem.DeleteTime|formatTime}}</view>
  126. </view>
  127. <view class="info-item flex">
  128. <view class="label">删除原因:</view>
  129. <view>{{info.RsCalendarResearcherItem.DeleteReason}}</view>
  130. </view>
  131. </view>
  132. <!-- 客户问答详情 -->
  133. <view class="section white-wrap" v-if="info.RsCalendarResearcherItem.QuestionStatus===1">
  134. <view class="info-item flex">
  135. <view class="label">客户行业:</view>
  136. <view>{{info.RsCalendarResearcherItem.CompanyIndustry}}</view>
  137. </view>
  138. <view class="info-item flex">
  139. <view class="label">客户分类:</view>
  140. <view>{{info.RsCalendarResearcherItem.CompanyClassify}}</view>
  141. </view>
  142. <view class="line"></view>
  143. <view v-for="item,index in roadShowQuestionList" :key="item.RsCalendarResearcherQuestionId">
  144. <view class="info-item flex">
  145. <view class="label">Q{{ index+1 }}:</view>
  146. <view>{{item.QuestionContent}}</view>
  147. </view>
  148. <view class="info-item flex">
  149. <view class="label">A{{ index+1 }}:</view>
  150. <view>{{item.ReplyContent}}</view>
  151. </view>
  152. </view>
  153. </view>
  154. </block>
  155. <block v-else>
  156. <view class="section white-wrap">
  157. <view class="info-item flex">
  158. <view class="label">活动时间:</view>
  159. <view v-if="info.RsCalendarResearcherItem.StartDate === info.RsCalendarResearcherItem.EndDate">
  160. {{info.RsCalendarResearcherItem.StartDate}}({{info.RsCalendarResearcherItem.StartWeek}})
  161. {{info.RsCalendarResearcherItem.StartTime}}~{{info.RsCalendarResearcherItem.EndTime}}
  162. </view>
  163. <view v-else>
  164. {{info.RsCalendarResearcherItem.StartDate}}({{info.RsCalendarResearcherItem.StartWeek}})
  165. {{info.RsCalendarResearcherItem.StartTime}}~{{info.RsCalendarResearcherItem.EndDate}}({{info.RsCalendarResearcherItem.EndWeek}}){{info.RsCalendarResearcherItem.EndTime}}
  166. </view>
  167. </view>
  168. <view class="info-item flex" v-if="Role === 'seller'">
  169. <view class="label">研究员:</view>
  170. <view>{{info.RsCalendarResearcherItem.ResearcherName}}</view>
  171. </view>
  172. <view class="info-item flex">
  173. <view class="label">活动类型:</view>
  174. <view>{{info.RsCalendarItem.ActivityType}}</view>
  175. </view>
  176. <view class="info-item flex">
  177. <view class="label">会议形式:</view>
  178. <view>{{info.RsCalendarItem.RoadshowType}}</view>
  179. </view>
  180. <view class="info-item flex" v-if="info.RsCalendarItem.RoadshowPlatform">
  181. <view class="label">会议平台:</view>
  182. <view>{{info.RsCalendarItem.RoadshowPlatform}}</view>
  183. </view>
  184. <view class="info-item flex" v-if="info.RsCalendarItem.City">
  185. <view class="label">会议城市:</view>
  186. <view>{{info.RsCalendarItem.Province}}{{info.RsCalendarItem.City}}</view>
  187. </view>
  188. <view class="info-item flex">
  189. <view class="label">会议主题:</view>
  190. <view>{{info.RsCalendarItem.Theme}}</view>
  191. </view>
  192. <view class="info-item flex">
  193. <view class="label">合作方名称:</view>
  194. <view>{{info.RsCalendarItem.CooperationName}}</view>
  195. </view>
  196. <view class="info-item flex" v-if="Role === 'researcher'">
  197. <view class="label">提交销售:</view>
  198. <view>{{info.RsCalendarItem.SysUserRealName}}</view>
  199. </view>
  200. <view class="info-item flex">
  201. <view class="label">提交时间:</view>
  202. <view>{{info.RsCalendarItem.CreateTime|formatTime}}</view>
  203. </view>
  204. </view>
  205. <view class="section white-wrap"
  206. v-if="info.RsCalendarResearcherItem.Status==2||info.RsCalendarResearcherItem.Status==3">
  207. <view class="info-item flex">
  208. <view class="label">审批时间:</view>
  209. <view>
  210. {{info.RsCalendarResearcherItem.Status==2?info.RsCalendarResearcherItem.ApproveTime:info.RsCalendarResearcherItem.RefuseTime | formatTime}}
  211. </view>
  212. </view>
  213. <view class="info-item flex" v-if="info.RsCalendarResearcherItem.Status==3">
  214. <view class="label">拒绝理由:</view>
  215. <view>{{info.RsCalendarResearcherItem.RefuseReason}}</view>
  216. </view>
  217. </view>
  218. <view class="section white-wrap" v-if="info.RsCalendarResearcherItem.Status==4">
  219. <view class="info-item flex">
  220. <view class="label">删除时间:</view>
  221. <view>{{info.RsCalendarResearcherItem.DeleteTime | formatTime}}</view>
  222. </view>
  223. <view class="info-item flex">
  224. <view class="label">删除原因:</view>
  225. <view>{{info.RsCalendarResearcherItem.DeleteReason}}</view>
  226. </view>
  227. </view>
  228. </block>
  229. <!-- 审批按钮 -->
  230. <view class="fix-bottom-wrap btns-wrap flex" v-if="haveActiyityStart">
  231. <block v-if="info.RsCalendarResearcherItem.Status===1 && Role === 'researcher'">
  232. <button class="pass-btn" @click="handleActions('accept')">接受</button>
  233. <button class="refuse-btn" @click="handleActions('refuse')">拒绝</button>
  234. </block>
  235. <block v-else-if="info.RsCalendarResearcherItem.Status===1 && Role === 'seller'">
  236. <button class="pass-btn" @click="handleActions('back')">撤回</button>
  237. </block>
  238. <block v-else-if="info.RsCalendarResearcherItem.Status===2 && Role === 'seller'">
  239. <button class="pass-btn" @click="handleActions('edit')">修改</button>
  240. <button class="pass-btn" @click="handleActions('del')">删除</button>
  241. </block>
  242. <block v-else-if="[3,5].includes(info.RsCalendarResearcherItem.Status) && Role === 'seller'">
  243. <button class="pass-btn" @click="handleActions('reEdit')">修改重提</button>
  244. </block>
  245. </view>
  246. <!-- 填写客户问答按钮 -->
  247. <view
  248. class="fix-bottom-wrap btns-wrap flex"
  249. v-if="info.RsCalendarItem.ActivityType==='路演'&&info.RsCalendarResearcherItem.Status===2&&info.RsCalendarResearcherItem.QuestionStatus===0"
  250. >
  251. <button class="pass-btn" style="width: 100%;" @click="handleGoAddRoadShowQuestion">填写客户问答</button>
  252. </view>
  253. </view>
  254. </template>
  255. <script>
  256. import {
  257. apiRoadShowInfo,
  258. apiRoadShowApproved
  259. } from '@/api/approve/activity.js';
  260. import { backActivity,delActivity,roadShowQuestionInfo } from '@/api/roadshow/index.js'
  261. import {
  262. getRole,
  263. editInfoBack
  264. } from './checkRole.js';
  265. import moment from '@/pages-roadshow/utils/_moment.js';
  266. export default {
  267. computed: {
  268. statusImg() {
  269. if(!this.info) return ''
  270. switch (this.info.RsCalendarResearcherItem.Status) {
  271. case 2:
  272. return require('../static/roadshow/accept-ico.png') //同意
  273. case 3:
  274. return require('../static/roadshow/refuse-ico.png') //拒绝
  275. case 4:
  276. return require('../static/roadshow/del-ico.png') //删除
  277. case 5:
  278. return require('../static/roadshow/back-ico.png') //撤回
  279. case 6:
  280. return require('../static/roadshow/end-ico.png') //结束
  281. default: return ''
  282. }
  283. },
  284. Role() {
  285. let userinfo = this.$store.state.userInfo;
  286. return getRole(userinfo.RoleTypeCode);
  287. },
  288. /* 活动是否开始 */
  289. haveActiyityStart() {
  290. if(!this.info) return false
  291. const { StartDate,StartTime } = this.info.RsCalendarResearcherItem;
  292. return moment(`${StartDate} ${StartTime}`).valueOf() > new Date().getTime()
  293. }
  294. },
  295. data() {
  296. return {
  297. RsCalendarResearcherId: null, //活动研究员id
  298. RsCalendarId: null, //路演活动id
  299. info: null,
  300. roadShowQuestionList:[],
  301. }
  302. },
  303. onLoad(options) {
  304. this.RsCalendarResearcherId = options.RsCalendarResearcherId
  305. this.RsCalendarId = options.RsCalendarId
  306. },
  307. onShow() {
  308. this.getDetail();
  309. },
  310. methods: {
  311. // 获取路演问答详情
  312. async getRoadShowQuestionInfo(id){
  313. const res=await roadShowQuestionInfo({
  314. RsCalendarResearcherId:id
  315. })
  316. if(res.code===200){
  317. this.roadShowQuestionList=res.data||[]
  318. }
  319. },
  320. handleGoAddRoadShowQuestion(){
  321. const that=this
  322. uni.navigateTo({
  323. url:'/pages-approve/activity/addRoadShowQuestion',
  324. success: function(res) {
  325. // 通过eventChannel向被打开页面传送数据
  326. res.eventChannel.emit('data', {
  327. companyName:that.info.CompanyDetail.CompanyName,
  328. RsCalendarResearcherId:that.info.RsCalendarResearcherItem.RsCalendarResearcherId,
  329. RsCalendarId:that.info.RsCalendarResearcherItem.RsCalendarId
  330. })
  331. }
  332. })
  333. },
  334. // 获取详情
  335. async getDetail() {
  336. const res = await apiRoadShowInfo({
  337. RsCalendarId: this.RsCalendarId,
  338. RsCalendarResearcherId: this.RsCalendarResearcherId
  339. })
  340. if (res.code === 200) {
  341. this.info = res.data
  342. // 如果有问答
  343. if(res.data.RsCalendarResearcherItem.QuestionStatus===1){
  344. this.getRoadShowQuestionInfo(res.data.RsCalendarResearcherItem.RsCalendarResearcherId)
  345. }
  346. }
  347. },
  348. /* 所有操作 */
  349. handleActions(type) {
  350. const handleFns = {
  351. refuse: this.handleRefuse,
  352. accept: this.handlePass,
  353. back: this.revocationHandle,
  354. del: this.delHandle,
  355. reEdit: this.reEditHandle,
  356. edit:this.handleEdit
  357. }
  358. handleFns[type]();
  359. },
  360. /* 撤回操作 */
  361. revocationHandle() {
  362. uni.showModal({
  363. content: '确定要撤回该活动申请吗?',
  364. showCancel: true,
  365. cancelColor: '#A9AFB8',
  366. confirmColor: '#3385FF',
  367. success: async ({
  368. confirm,
  369. cancel
  370. }) => {
  371. if (confirm) {
  372. console.log('用户点击确定');
  373. const { code } = await backActivity({
  374. RsCalendarId: Number(this.RsCalendarId),
  375. RsCalendarResearcherId: Number(this.RsCalendarResearcherId)
  376. })
  377. if(code !==200) return
  378. this.getDetail()
  379. uni.$emit('activityApproveListUpdate', {
  380. RsCalendarId: this.RsCalendarId,
  381. RsCalendarResearcherId: this.RsCalendarResearcherId
  382. })
  383. } else if (cancel) {
  384. console.log('用户点击取消');
  385. }
  386. }
  387. })
  388. },
  389. /* 修改重提 */
  390. reEditHandle() {
  391. const { CompanyId,CompanyName,EnglishCompany } = this.info.CompanyDetail;
  392. const { ActivityType,RoadshowType,RoadshowPlatform,City,Province,Theme,CooperationName,ActivityCategory } = this.info.RsCalendarItem;
  393. const { ResearcherId,StartDate,EndDate,StartTime,EndTime,RsCalendarId,RsCalendarResearcherId } = this.info.RsCalendarResearcherItem;
  394. let form = editInfoBack({ActivityType,RoadshowType,RoadshowPlatform,City,Province,Theme,CooperationName,ActivityCategory,CompanyId,CompanyName,ResearcherId,StartDate,EndDate,StartTime,EndTime});
  395. let edit_id = RsCalendarId,edit_rs_id = RsCalendarResearcherId;
  396. if(CompanyId){
  397. uni.setStorageSync('roadshow_compantyId',CompanyId);
  398. uni.setStorageSync('roadshow_isEnglishCompany',EnglishCompany);
  399. }
  400. // uni.navigateTo({
  401. // url:`/pages-roadshow/addActivity/index?form=${JSON.stringify(form)}&edit_id=${edit_id}&edit_rs_id=${edit_rs_id}`
  402. // })
  403. uni.navigateTo({
  404. url:`/pages-roadshow/addActivity/index`,
  405. success: function(res) {
  406. // 通过eventChannel向被打开页面传送数据
  407. res.eventChannel.emit('emitBackData', {
  408. form: JSON.stringify(form),
  409. edit_id,
  410. edit_rs_id
  411. })
  412. }
  413. });
  414. },
  415. /* 删除 需删除理由 */
  416. delHandle() {
  417. uni.navigateTo({
  418. url: `./reason?RsCalendarId=${this.RsCalendarId}&RsCalendarResearcherId=${this.RsCalendarResearcherId}&type=del`
  419. })
  420. },
  421. handlePass() {
  422. uni.showModal({
  423. content: '接受申请后会加入您的日历,请确认!',
  424. showCancel: true,
  425. cancelColor: '#A9AFB8',
  426. confirmColor: '#3385FF',
  427. success: ({
  428. confirm,
  429. cancel
  430. }) => {
  431. if (confirm) {
  432. console.log('用户点击确定');
  433. this.passApprove()
  434. } else if (cancel) {
  435. console.log('用户点击取消');
  436. }
  437. }
  438. })
  439. },
  440. // 通过申请
  441. async passApprove() {
  442. const res = await apiRoadShowApproved({
  443. RsCalendarId: Number(this.RsCalendarId),
  444. RsCalendarResearcherId: Number(this.RsCalendarResearcherId)
  445. })
  446. if (res.code === 200) {
  447. this.getDetail()
  448. uni.$emit('activityApproveListUpdate', {
  449. RsCalendarId: this.RsCalendarId,
  450. RsCalendarResearcherId: this.RsCalendarResearcherId
  451. })
  452. }
  453. },
  454. handleRefuse() {
  455. uni.navigateTo({
  456. url: `./reason?RsCalendarId=${this.RsCalendarId}&RsCalendarResearcherId=${this.RsCalendarResearcherId}&type=refuse`
  457. })
  458. },
  459. handleEdit() {
  460. const { CompanyId,CompanyName,EnglishCompany } = this.info.CompanyDetail;
  461. const { ActivityType,RoadshowType,RoadshowPlatform,City,Province,Theme,CooperationName,ActivityCategory } = this.info.RsCalendarItem;
  462. const { ResearcherId,StartDate,EndDate,StartTime,EndTime,RsCalendarId,RsCalendarResearcherId } = this.info.RsCalendarResearcherItem;
  463. let form = editInfoBack({ActivityType,RoadshowType,RoadshowPlatform,City,Province,Theme,CooperationName,ActivityCategory,CompanyId,CompanyName,ResearcherId,StartDate,EndDate,StartTime,EndTime});
  464. let edit_id = RsCalendarId,edit_rs_id = RsCalendarResearcherId;
  465. if(CompanyId){
  466. uni.setStorageSync('roadshow_compantyId',CompanyId);
  467. uni.setStorageSync('roadshow_isEnglishCompany',EnglishCompany);
  468. }
  469. uni.navigateTo({
  470. url:`/pages-roadshow/addActivity/activityEdit`,
  471. success: function(res) {
  472. // 通过eventChannel向被打开页面传送数据
  473. res.eventChannel.emit('emitBackData', {
  474. form: JSON.stringify(form),
  475. edit_id,
  476. edit_rs_id
  477. })
  478. }
  479. });
  480. },
  481. }
  482. }
  483. </script>
  484. <style lang="scss" scoped>
  485. .activity-detail {
  486. padding-bottom: 200rpx;
  487. .status-img {
  488. position: absolute;
  489. right: 0;
  490. top: 50rpx;
  491. width: 220rpx;
  492. height: 220rpx;
  493. z-index: 10;
  494. }
  495. .section {
  496. margin-bottom: 14rpx;
  497. padding: 33rpx 34rpx;
  498. .line {
  499. width: 100%;
  500. height: 0;
  501. border-top: 1px dashed rgba(112, 112, 112, .21);
  502. margin: 30rpx 0;
  503. }
  504. }
  505. .info-item {
  506. margin-bottom: 20rpx;
  507. .label {
  508. flex-shrink: 0;
  509. color: #666;
  510. margin-right: 20rpx;
  511. }
  512. }
  513. .btns-wrap {
  514. justify-content: center;
  515. button {
  516. width: 260rpx;
  517. height: 70rpx;
  518. border-radius: 28px;
  519. border: none;
  520. margin: 0 15px;
  521. font-size: 15px;
  522. color: #fff;
  523. line-height: 70rpx;
  524. }
  525. .pass-btn {
  526. background-color: #5890fb;
  527. }
  528. .refuse-btn {
  529. background-color: #f55768;
  530. }
  531. }
  532. }
  533. </style>