EntrapmentAdd.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742
  1. <template>
  2. <view class="entrapment-form">
  3. <view class="entrapment-form__header">
  4. <view class="entrapment-form__card">诱捕器:{{baseinfo.trap_number}}</view>
  5. </view>
  6. <view class="entrapment-form__form">
  7. <view class="entrapment-form__item" v-for="(item,index) in wornlist" :key="index">
  8. <view class="entrapment-form__label">
  9. <image src="@/static/image/task/pest/pest.png" mode="aspectFit" class="icon">
  10. </image>
  11. <text class="text">{{item.pest_name}}</text>
  12. <view class="fill-icon">
  13. <uni-icons type="arrowright" size="12" color="#fff"></uni-icons>
  14. </view>
  15. </view>
  16. <!-- #ifndef APP-NVUE -->
  17. <u-input border="none" type="number" v-model="item.pest_number" disabled>
  18. <!-- #endif -->
  19. <!-- #ifdef APP-NVUE -->
  20. <u--input border="none" type="number" v-model="item.pest_number" disabled>
  21. <!-- #endif -->
  22. <template slot="prefix">
  23. <image src="@/static/image/task/pest/statistics.png" mode="aspectFit" class="icon">
  24. </image>
  25. </template>
  26. <template slot="suffix">
  27. <text>头</text>
  28. </template>
  29. <!-- #ifndef APP-NVUE -->
  30. </u-input>
  31. <!-- #endif -->
  32. <!-- #ifdef APP-NVUE -->
  33. </u--input>
  34. <!-- #endif -->
  35. <view class="entrapment-form__close" @click="selectdelold(item,index)"
  36. v-if="baseinfo.taskStatus==='处理中'">
  37. <uni-icons type="clear"></uni-icons>
  38. </view>
  39. </view>
  40. <view class="entrapment-form__item" v-for="(item,index) in notwornlistnum" :key="item">
  41. <view class="entrapment-form__label" @click="show = true;elsectindex = index">
  42. <image src="@/static/image/task/pest/pest.png" mode="aspectFit" class="icon">
  43. </image>
  44. <text class="text">{{notwornlistdata.name[index] || '请选择害虫'}}</text>
  45. <view class="fill-icon">
  46. <uni-icons type="arrowright" size="12" color="#fff"></uni-icons>
  47. </view>
  48. </view>
  49. <!-- #ifndef APP-NVUE -->
  50. <u-input border="none" type="number" v-model="notwornlistdata.num[index]">
  51. <!-- #endif -->
  52. <!-- #ifdef APP-NVUE -->
  53. <u--input border="none" type="number" v-model="notwornlistdata.num[index]">
  54. <!-- #endif -->
  55. <template slot="prefix">
  56. <image src="@/static/image/task/pest/statistics.png" mode="aspectFit" class="icon">
  57. </image>
  58. </template>
  59. <template slot="suffix">
  60. <text>头</text>
  61. </template>
  62. <!-- #ifndef APP-NVUE -->
  63. </u-input>
  64. <!-- #endif -->
  65. <!-- #ifdef APP-NVUE -->
  66. </u--input>
  67. <!-- #endif -->
  68. <view class="entrapment-form__close" @click="selectdel(index)">
  69. <uni-icons type="clear"></uni-icons>
  70. </view>
  71. </view>
  72. <u-empty text="暂无数据" v-if="notwornlistnum<1 && !wornlist.length">
  73. </u-empty>
  74. <!-- <u--form labelPosition="left" ref="entrapmentForm">
  75. <u-form-item label="" prop="userInfo.name" borderBottom v-for="(item,index) in wornlist" :key="index">
  76. <view class="entrapment-form__item">
  77. <view class="entrapment-form__label">
  78. <image src="@/static/image/task/pest/pest.png" mode="aspectFit" class="icon">
  79. </image>
  80. <text class="text">{{item.pest_name}}</text>
  81. <view class="fill-icon">
  82. <uni-icons type="arrowright" size="12" color="#fff"></uni-icons>
  83. </view>
  84. </view>
  85. <u--input border="none" type="number" v-model="item.pest_number">
  86. <template slot="prefix">
  87. <image src="@/static/image/task/pest/statistics.png" mode="aspectFit" class="icon">
  88. </image>
  89. </template>
  90. <template slot="suffix">
  91. <text>头</text>
  92. </template>
  93. </u--input>
  94. <view class="entrapment-form__close" @click="selectdelold(item,index)">
  95. <uni-icons type="clear"></uni-icons>
  96. </view>
  97. </view>
  98. </u-form-item>
  99. <u-form-item label="" borderBottom v-for="(item) in notwornlistnum" :key="item">
  100. <view class="entrapment-form__item">
  101. <view class="entrapment-form__label" @click="show = true;elsectindex = item">
  102. <image src="@/static/image/task/pest/pest.png" mode="aspectFit" class="icon">
  103. </image>
  104. <text class="text">{{notwornlistdata.name[item] || '请选择害虫'}}</text>
  105. <view class="fill-icon">
  106. <uni-icons type="arrowright" size="12" color="#fff"></uni-icons>
  107. </view>
  108. </view>
  109. <u--input border="none" type="number" v-model="notwornlistdata.num[item]">
  110. <template slot="prefix">
  111. <image src="@/static/image/task/pest/statistics.png" mode="aspectFit" class="icon">
  112. </image>
  113. </template>
  114. <template slot="suffix">
  115. <text>头</text>
  116. </template>
  117. </u--input>
  118. <view class="entrapment-form__close" @click="selectdel(item)">
  119. <uni-icons type="clear"></uni-icons>
  120. </view>
  121. </view>
  122. </u-form-item>
  123. </u--form> -->
  124. </view>
  125. <view class="entrapment-form__content" v-if="baseinfo.comtype">
  126. <view class="entrapment-form__content__btn">
  127. <u-button type="primary" :plain="true" icon="plus" text="增加" size="small" @click="addnotwornlistnum">
  128. </u-button>
  129. </view>
  130. <view class="entrapment-form__actions">
  131. <view class="entrapment-form__action green" @click="opebtn2('无虫')">
  132. <image src="@/static/image/task/pest/pest-none.png" mode="aspectFit" class="img"></image>
  133. <text class="text">无虫</text>
  134. </view>
  135. <view class="entrapment-form__action pink" @click="opebtn3('已带回')">
  136. <image src="@/static/image/task/pest/bring.png" mode="aspectFit" class="img"></image>
  137. <text class="text">带回</text>
  138. </view>
  139. <view class="entrapment-form__action blue" @click="opebtn('已登记')">
  140. <image src="@/static/image/task/pest/submit.png" mode="aspectFit" class="img"></image>
  141. <text class="text">提交</text>
  142. </view>
  143. </view>
  144. </view>
  145. <!-- <u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page> -->
  146. <u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show = false"></u-picker>
  147. </view>
  148. <!-- <view class="inset">
  149. <view class="" style="width: 100%;height: 30rpx;background-color: #f7f7f7;">
  150. </view>
  151. <view class="title">
  152. <view class="">
  153. 设备号:
  154. </view>
  155. <view class="title_R">
  156. {{baseinfo.trap_number}}
  157. </view>
  158. </view>
  159. <view class="examine" v-if="baseinfo.comtype">
  160. <view class="examine_itemno" v-for="item,index in wornlist" :key="'a'+index">
  161. <view class="examine_itemno_input">
  162. <u--input suffixIcon="arrow-down-fill" v-model="item.pest_name"
  163. suffixIconStyle="color: #909399;fontSize:14px" disabled></u--input>
  164. </view>
  165. <view class="examine_itemno_input">
  166. <u--input border="surround" v-model="item.pest_number" disabled></u--input>
  167. </view>
  168. <view class="" style="color:red" @click="selectdelold(item,index)">
  169. 删除
  170. </view>
  171. </view>
  172. <view class="examine_item" v-for="item in notwornlistnum" :key="item">
  173. <view class="examine_itemno_input" @click="show = true;elsectindex = item">
  174. <u--input placeholder="请选择害虫名称" suffixIcon="arrow-down-fill"
  175. placeholderStyle="fontSize:12px;color:#999999" readonly
  176. suffixIconStyle="color: #909399;fontSize:14px" v-model="notwornlistdata.name[item]"></u--input>
  177. </view>
  178. <view class="examine_itemno_input">
  179. <u--input placeholder="请输入害虫数量" type="number" placeholderStyle="fontSize:12px;color:#999999"
  180. border="surround" v-model="notwornlistdata.num[item]"></u--input>
  181. </view>
  182. <view class="" style="color:red">
  183. <view class="" v-if="item != notwornlistnum" @click="selectdel(item)">
  184. 删除
  185. </view>
  186. <u-icon name="plus-circle" size="22" color="#1890ff" top="4" v-else
  187. @click="addnotwornlistnum(item)">
  188. </u-icon>
  189. </view>
  190. </view>
  191. </view>
  192. <view class="write" v-else>
  193. <view class="hisbox_hint" v-if="wornlist.length==0">
  194. 暂无数据
  195. </view>
  196. <view class="write_item" v-for="item,index in wornlist" :key="index">
  197. <view class="write_item_L">
  198. {{item.pest_name}}
  199. </view>
  200. <view class="write_item_R">
  201. {{item.pest_number}}只
  202. </view>
  203. </view>
  204. </view>
  205. <view class="operation" v-if="baseinfo.comtype">
  206. <u-button type="primary" text="无虫" @click="opebtn2('无虫')"></u-button>
  207. <u-button type="primary" text="带回" @click="opebtn3('已带回')"></u-button>
  208. <u-button type="primary" text="提交" @click="opebtn('已登记')"></u-button>
  209. </view>
  210. <u-loading-page loading-text="加载中..." :loading="loading" font-size="16"></u-loading-page>
  211. <u-picker :show="show" :columns="columns" @confirm="confirm" @cancel="show = false"></u-picker>
  212. </view> -->
  213. </template>
  214. <script>
  215. import {
  216. isEmpty
  217. } from 'lodash-es';
  218. export default {
  219. props: {
  220. dataSource: {
  221. type: Object,
  222. default: () => ({})
  223. }
  224. },
  225. data() {
  226. return {
  227. baseinfo: {},
  228. wornlist: [],
  229. loading: false,
  230. notwornlist: [],
  231. notwornlistnum: 0,
  232. columns: [],
  233. columns2: [],
  234. show: false,
  235. notwornlistdata: {
  236. name: [],
  237. num: []
  238. },
  239. elsectindex: 0,
  240. dellist: [],
  241. roteindex: false,
  242. isFirstLoad: true,
  243. entrapmentFormModel: {
  244. pestList: []
  245. },
  246. rules: {},
  247. }
  248. },
  249. onShow(option) {
  250. // console.log(option,555555555555555)
  251. },
  252. onLoad(option) {
  253. },
  254. watch: {
  255. videoData(news, old) {
  256. console.log('触发了2222222222222222222222')
  257. console.log(news)
  258. uni.switchTab({
  259. url: '../response/index'
  260. })
  261. // if (news) {
  262. // }
  263. },
  264. dataSource: {
  265. handler(val) {
  266. if (this.isFirstLoad) {
  267. this.isFirstLoad = false;
  268. this.baseinfo = this.dataSource;
  269. this.init();
  270. }
  271. },
  272. immediate: true
  273. }
  274. },
  275. computed: {
  276. // 视频消息
  277. videoData() {
  278. return this.$store.state.video
  279. },
  280. },
  281. mounted() {
  282. if (this.isFirstLoad && !isEmpty(this.dataSource)) {
  283. this.isFirstLoad = false;
  284. this.baseinfo = this.dataSource;
  285. this.init();
  286. }
  287. },
  288. methods: {
  289. init() {
  290. this.getselectworn();
  291. this.getwornlist(this.baseinfo.id);
  292. },
  293. async getwornlist(id) {
  294. console.log(id)
  295. this.loading = true
  296. const res = await this.$myRequest({
  297. url: '/api/api_gateway?method=control_center.task.trap_pest_record_info',
  298. data: {
  299. trap_record_id: id
  300. }
  301. })
  302. console.warn(res, '诱捕器信息')
  303. this.wornlist = res
  304. this.loading = false
  305. var arr = []
  306. for (var i = 0; i < res.length; i++) {
  307. arr.unshift(this.columns[0].indexOf(res[i].pest_name))
  308. }
  309. // console.log(arr)
  310. for (var i = 0; i < arr.length; i++) {
  311. this.columns[0].splice(arr[i], 1)
  312. }
  313. },
  314. async getselectworn() {
  315. const res = await this.$myRequest({
  316. url: '/api/api_gateway?method=sysmenage.maintain.pest_list',
  317. data: {
  318. page: "1",
  319. page_item: "1000000000000000000000000000"
  320. }
  321. })
  322. // this.
  323. console.log(res.page_list)
  324. var arr = []
  325. for (var i = 0; i < res.page_list.length; i++) {
  326. arr.push(res.page_list[i].pest_name)
  327. this.columns2.push(res.page_list[i].pest_name)
  328. }
  329. this.columns.push(arr)
  330. },
  331. addnotwornlistnum() {
  332. console.log(this.notwornlistdata)
  333. const isEveryVailid = this.notwornlistdata.name.every(item => !!item) && this.notwornlistdata.num.every(
  334. item => !!item)
  335. console.log(isEveryVailid, ' add not worn list num')
  336. if (isEveryVailid) {
  337. this.notwornlistnum++;
  338. this.notwornlistdata.name.push('');
  339. this.notwornlistdata.num.push('');
  340. } else {
  341. uni.$u.toast('请将信息填写完成')
  342. }
  343. },
  344. confirm(e) {
  345. this.show = false
  346. console.log(e.value[0], this.elsectindex)
  347. this.notwornlistdata.name[this.elsectindex] = e.value[0]
  348. // console.log(this.notwornlistdata)
  349. this.datacount()
  350. },
  351. datacount() {
  352. // for(var k=0;k<this.dellist.length;k++){
  353. // this.columns[0].push(this.dellist[k])
  354. // }
  355. console.log(this.notwornlistdata.name)
  356. // this.columns[0] = JSON.parse(JSON.stringify(this.columns2))
  357. for (var i = 0; i < this.notwornlistdata.name.length; i++) {
  358. for (var j = 0; j < this.columns[0].length; j++) {
  359. if (this.notwornlistdata.name[i] == this.columns[0][j]) {
  360. this.columns[0].splice(j, 1)
  361. console.log(this.columns[0])
  362. }
  363. }
  364. }
  365. for (var k = 0; k < this.columns2.length; k++) {
  366. if (this.notwornlistdata.name.indexOf(this.columns2[k]) == -1) {
  367. if (this.columns[0].indexOf(this.columns2[k]) == -1) {
  368. this.columns[0].unshift(this.columns2[k])
  369. }
  370. }
  371. }
  372. },
  373. selectdel(item) {
  374. this.notwornlistnum--
  375. var arr = this.notwornlistdata.name.splice(item, 1)
  376. this.notwornlistdata.num.splice(item, 1)
  377. this.columns[0].unshift(arr[0])
  378. },
  379. selectdelold(item, index) {
  380. console.log(item, index)
  381. // var arr = this.notwornlistdata.name.splice(item.pest_name, 1)
  382. // this.notwornlistdata.num.splice(item, 1)
  383. var arr = item.pest_name
  384. this.columns[0].unshift(arr)
  385. this.wornlist.splice(index, 1)
  386. },
  387. opebtn2(str) {
  388. var arr = []
  389. var obj = {
  390. record_id: this.baseinfo.id, // 填报记录id
  391. report_status: str, // 填报记录状态
  392. pest_list: []
  393. }
  394. arr.push()
  395. this.$store.state.wornlist = {
  396. record_id: this.baseinfo.id, // 填报记录id
  397. report_status: str, // 填报记录状态
  398. pest_list: arr
  399. }
  400. // console.log(obj)
  401. // console.log(this.$store.state.wornlist)
  402. // var arr = []
  403. // var store = this.$store.state.wornlist
  404. // for(var i =0;i<store.lengthl;i++){
  405. // arr.push(store[i])
  406. // }
  407. // var obj = {
  408. // record_id: this.baseinfo.id, // 填报记录id
  409. // report_status: str, // 填报记录状态
  410. // pest_list: arr
  411. // }
  412. // arr.push(obj)
  413. // console.log(arr)
  414. // this.$store.state.wornlist = JSON.parse(JSON.stringify(arr))
  415. if (this.roteindex) {
  416. // console.log("返回二页")
  417. uni.navigateBack({
  418. delta: 2
  419. });
  420. } else {
  421. // console.log("返回一页")
  422. // uni.navigateBack({
  423. // delta: 1
  424. // });
  425. this.$emit('close')
  426. }
  427. },
  428. opebtn3(str) {
  429. // var arr = []
  430. var arr = []
  431. console.log(this.wornlist)
  432. for (var j = 0; j < this.wornlist.length; j++) {
  433. var obj = {
  434. pest_name: this.wornlist[j].pest_name, // 害虫名称
  435. pest_number: this.wornlist[j].pest_number // 害虫数量
  436. }
  437. arr.push(obj)
  438. }
  439. // console.log(arr)
  440. // var arr1 = []
  441. for (var i = 1; i < this.notwornlistdata.name.length; i++) {
  442. if (this.notwornlistdata.name[i]) {
  443. var obj = {
  444. pest_name: this.notwornlistdata.name[i], // 害虫名称
  445. pest_number: this.notwornlistdata.num[i] || 0 // 害虫数量
  446. }
  447. arr.push(obj)
  448. }
  449. }
  450. console.warn(arr, '已带回')
  451. // this.$store.state.wornlist = arr
  452. this.$store.state.wornlist = {
  453. record_id: this.baseinfo.id, // 填报记录id
  454. report_status: str, // 填报记录状态
  455. pest_list: arr
  456. }
  457. if (this.roteindex) {
  458. uni.navigateBack({
  459. delta: 2
  460. });
  461. } else {
  462. this.$emit('close')
  463. }
  464. },
  465. opebtn(str) {
  466. var arr = []
  467. console.log(this.wornlist)
  468. for (var j = 0; j < this.wornlist.length; j++) {
  469. var obj = {
  470. pest_name: this.wornlist[j].pest_name, // 害虫名称
  471. pest_number: this.wornlist[j].pest_number // 害虫数量
  472. }
  473. arr.push(obj)
  474. }
  475. // console.log(arr)
  476. // var arr1 = []
  477. for (var i = 0; i < this.notwornlistdata.name.length; i++) {
  478. if (this.notwornlistdata.name[i]) {
  479. var obj = {
  480. pest_name: this.notwornlistdata.name[i], // 害虫名称
  481. pest_number: this.notwornlistdata.num[i] // 害虫数量
  482. }
  483. arr.push(obj)
  484. }
  485. }
  486. // console.log(arr)
  487. var tf = arr.every((item) => {
  488. return item.pest_number
  489. })
  490. console.warn(tf, arr, '提交 1213131313331')
  491. if (arr.length != 0 && tf) {
  492. // this.$store.state.wornlist = arr
  493. this.$store.state.wornlist = {
  494. record_id: this.baseinfo.id, // 填报记录id
  495. report_status: str, // 填报记录状态
  496. pest_list: arr
  497. }
  498. if (this.roteindex) {
  499. uni.navigateBack({
  500. delta: 2
  501. });
  502. } else {
  503. this.$emit('close')
  504. }
  505. } else {
  506. uni.$u.toast('请将信息填写完成')
  507. }
  508. }
  509. }
  510. }
  511. </script>
  512. <style lang="less" scoped>
  513. .inset {
  514. width: 100%;
  515. .title {
  516. width: 90%;
  517. margin: 0 auto;
  518. border-bottom: 1px solid #F6F6F6;
  519. padding: 20rpx 0;
  520. display: flex;
  521. justify-content: space-between;
  522. .title_R {
  523. color: #999999;
  524. }
  525. }
  526. .examine {
  527. width: 90%;
  528. margin: 0 auto;
  529. .examine_itemno,
  530. .examine_item {
  531. display: flex;
  532. // justify-content: space-around;
  533. margin-top: 20rpx;
  534. border-bottom: 1px solid #F6F6F6;
  535. padding-bottom: 20rpx;
  536. .examine_itemno_input {
  537. // width: 45%;
  538. margin-right: 60rpx;
  539. }
  540. /deep/.u-input {
  541. width: 200rpx;
  542. height: 30rpx;
  543. }
  544. }
  545. }
  546. .write {
  547. width: 90%;
  548. margin: 0 auto;
  549. .hisbox_hint {
  550. width: 100%;
  551. text-align: center;
  552. font-size: 28rpx;
  553. height: 100rpx;
  554. line-height: 100rpx;
  555. color: #999999;
  556. }
  557. .write_item {
  558. display: flex;
  559. justify-content: space-between;
  560. border-bottom: 1px solid #F6F6F6;
  561. padding: 20rpx 0;
  562. .write_item_R {
  563. color: #999999;
  564. }
  565. }
  566. }
  567. .operation {
  568. display: flex;
  569. margin-top: 30rpx;
  570. /deep/.u-button {
  571. width: 140rpx;
  572. height: 60rpx;
  573. }
  574. }
  575. }
  576. .entrapment-form {
  577. &__header {
  578. position: relative;
  579. width: 540rpx;
  580. height: 144rpx;
  581. border-radius: 70rpx;
  582. margin: 0 auto;
  583. margin-top: -122rpx;
  584. background-image: url(~@/static/image/task/pest/bg.png);
  585. background-repeat: no-repeat;
  586. background-size: 100% 100%;
  587. z-index: 2;
  588. overflow: hidden;
  589. }
  590. &__card {
  591. padding: 0 68rpx;
  592. height: 100%;
  593. font-size: 14px;
  594. line-height: 144rpx;
  595. color: #fff;
  596. }
  597. &__form {
  598. margin-top: -30rpx;
  599. padding: 76rpx;
  600. margin-bottom: 20rpx;
  601. height: 556rpx;
  602. box-sizing: border-box;
  603. border-bottom: 1px solid rgba(2, 2, 2, 0.3);
  604. overflow: auto;
  605. }
  606. &__item {
  607. position: relative;
  608. flex: 1;
  609. display: flex;
  610. justify-content: space-between;
  611. align-items: center;
  612. padding: 20rpx 24rpx;
  613. background: #F8F8F8;
  614. margin-bottom: 40rpx;
  615. .icon {
  616. width: 38rpx;
  617. height: 38rpx;
  618. }
  619. ::v-deep .u-input__content__field-wrapper {
  620. border-bottom: 1rpx solid #3183FF;
  621. }
  622. }
  623. &__label {
  624. display: flex;
  625. align-items: center;
  626. margin-right: 100rpx;
  627. .icon {
  628. width: 50rpx;
  629. height: 50rpx;
  630. }
  631. .text {
  632. font-size: 12px;
  633. line-height: 18px;
  634. color: #555555;
  635. margin: 0 24rpx;
  636. width: 100rpx;
  637. @include line;
  638. }
  639. .fill-icon {
  640. display: flex;
  641. justify-content: center;
  642. align-items: center;
  643. width: 26rpx;
  644. height: 26rpx;
  645. background-color: #1B76FF;
  646. border-radius: 50%;
  647. line-height: 26rpx;
  648. }
  649. }
  650. &__content {
  651. padding: 36rpx 76rpx;
  652. }
  653. &__actions {
  654. padding: 140rpx 30rpx;
  655. display: flex;
  656. justify-content: space-between;
  657. align-items: center;
  658. }
  659. &__action {
  660. display: flex;
  661. flex-direction: column;
  662. justify-content: center;
  663. align-items: center;
  664. width: 100rpx;
  665. height: 100rpx;
  666. border-radius: 50%;
  667. background: #4CD964;
  668. box-shadow: 0px 1px 9px 0px rgba(169, 169, 169, 0.5);
  669. &.green {}
  670. &.pink {
  671. background: linear-gradient(136deg, #FFA4A4 0%, #FF6B6B 100%);
  672. box-shadow: 0px 1px 9px 0px rgba(169, 169, 169, 0.5);
  673. }
  674. &.blue {
  675. background: linear-gradient(220deg, #19A1FF 0%, #70C9FF 100%);
  676. box-shadow: 0px 1px 9px 0px rgba(169, 169, 169, 0.5);
  677. }
  678. .img {
  679. width: 40rpx;
  680. height: 40rpx;
  681. }
  682. .text {
  683. color: #fff;
  684. font-size: 12px;
  685. line-height: 14px;
  686. }
  687. }
  688. &__close {
  689. position: absolute;
  690. padding: 20rpx;
  691. right: -60rpx;
  692. top: 50%;
  693. transform: translateY(-50%);
  694. }
  695. }
  696. </style>