add.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. <template>
  2. <view>
  3. <view class="headerGetbg"></view>
  4. <view class="home-content">
  5. <form @submit="save">
  6. <!-- <view class="main"> -->
  7. <view class="bgf mar-24 home-content-top">
  8. <view class="br box-pack-between" style="padding: 32rpx 0 25rpx 0;">
  9. <text>活动信息</text>
  10. <view class="flex-y-center" v-if="id">
  11. <view @click="del" class="flex-y-center ft28" style="color: #999999;">
  12. <image src="/saomaDiancan/static/images/del2.png" class="list-icon" mode=""></image> 删除
  13. </view>
  14. </view>
  15. </view>
  16. <view>
  17. <view class="box-pack-between ft32 item">
  18. <text class="item_name ft28">活动类型<text style="color:red">*</text></text>
  19. <view class="flex-center ft28">
  20. <input :value="info.title" placeholder="请填写活动标题" name="title" />
  21. </view>
  22. </view>
  23. </view>
  24. <view class="box-pack-between ft32 item flex-y-center">
  25. <text class="item_name ft28">活动类型<text style="color:red">*</text></text>
  26. <picker class="ft28" :range="game_list" range-key="name" @change="bindGame">
  27. <view class="flex-y-center">
  28. <!-- <view v-if="game_index<=-1">{{game_name}}</view> -->
  29. <view >{{game_list[0].name}}</view>
  30. <text class="iconfont icon-prev"></text>
  31. </view>
  32. </picker>
  33. </view>
  34. </view>
  35. <!-- <view v-if="game_index!=2" class="home-content-top" style="padding-bottom: 20rpx;">
  36. <view class="box-pack-between ft32 item">
  37. <text class="ft28">奖品设置 <text style="color:red">*</text></text>
  38. <view class="add-home flex-center ft24" @click="open">
  39. 添加
  40. </view>
  41. </view>
  42. <view class="item-bg" v-if="prize.length>0">
  43. <view class="box-pack-between mar64 flex-y-center" v-for="(item,index) of prize" :key='index'>
  44. <view class="flex-y-center flex-grow-1 pdr-20">
  45. <text style="margin-right: 10rpx;">{{item.name}}/<text
  46. class="col-num">{{item.num}}张</text>/<text class="col-num">
  47. {{item.rate}}%</text></text>
  48. </view>
  49. <image class="item-del" @click="delScene" :data-index='index'
  50. src="../../static/images/del.png" mode=""></image>
  51. </view>
  52. </view>
  53. </view> -->
  54. <block v-if="game_index==2">
  55. <view class="home-content-top" style="padding-bottom: 20rpx;">
  56. <view class="box-pack-between ft32 item">
  57. <text class="ft28">奖品列表 </text>
  58. </view>
  59. <view class="box-pack-between ft32 item">
  60. <text class="item_name ft28">转盘ID</text>
  61. <view class="flex-center ft28">
  62. <input :value="info.content.dial_id" placeholder="请输入转盘ID" name="dial_id" />
  63. </view>
  64. </view>
  65. <view class="box-pack-between ft32 item">
  66. <text class="item_name ft28">旋转时间(秒)</text>
  67. <view class="flex-center ft28">
  68. <input :value="info.content.rotate_time" placeholder="请输入旋转时间(秒)" name="rotate_time" />
  69. </view>
  70. </view>
  71. <view class="box-pack-between ft32 item">
  72. <text class="item_name ft28">LED 数量</text>
  73. <view class="flex-center ft28">
  74. <input :value="info.content.led_num" placeholder="请输入LED 数量" name="led_num" />
  75. </view>
  76. </view>
  77. </view>
  78. <view class="home-content-top" v-for="(item,index) of content" :key='index'>
  79. <view class="box-pack-between ft32 item-li">
  80. <text class="item_name ft28">第{{index+1}}个灯奖项</text>
  81. <picker class="ft28" :range="coupon_list" range-key="name" @change="onCoupon"
  82. :data-index='index'>
  83. <view class="flex-y-center">
  84. <view v-if="!item.awards">请选择优惠劵类型</view>
  85. <view v-else>{{item.awards}}</view>
  86. <text class="iconfont icon-prev"></text>
  87. </view>
  88. </picker>
  89. </view>
  90. <view class="box-pack-between ft32 item-li">
  91. <text class="item_name ft28">概率</text>
  92. <view class="flex-center ft28">
  93. <input :value="item.probability" @input="getScene" :data-index="index"
  94. placeholder="请输入概率" />
  95. </view>
  96. </view>
  97. <view class="box-pack-between ft32 item-li">
  98. <text class="item_name ft28">数量</text>
  99. <view class="flex-center ft28">
  100. <input :value="item.num" @input="getNum" placeholder="请输入数量" :data-index="index" />
  101. </view>
  102. </view>
  103. <view class="box-pack-between ft32 item-li">
  104. <text class="item_name ft28">指定openid</text>
  105. <view class="flex-center ft28">
  106. <input :value="item.assign" @input="getOpenid" placeholder="请填写某音用户OPENID"
  107. :data-index="index" />
  108. </view>
  109. </view>
  110. </view>
  111. </block>
  112. <view class="home-content-top">
  113. <view class="br" style="padding: 32rpx 0 25rpx 0;">
  114. <text>活动时间</text>
  115. </view>
  116. <view class="box-pack-between ft32 item">
  117. <text>开始时间<text style="color:red">*</text></text>
  118. <view class="flex-center ft24">
  119. <view class="model-item" :class="act_index==1?'act':''">
  120. <picker mode='date' :value="start" :start="startDate" :end="endDate"
  121. @change="bindDateChange1" data-index="1">
  122. <view class="flex-center">
  123. <text>{{start}}</text>
  124. <text class="iconfont icongengduo"></text>
  125. </view>
  126. </picker>
  127. </view>
  128. </view>
  129. </view>
  130. <view class="box-pack-between ft32 item">
  131. <text>结束时间<text style="color:red">*</text></text>
  132. <view class="flex-center ft24">
  133. <view class="model-item" :class="act_index2==2?'act':''">
  134. <picker mode='date' :value="end" :start="startDate" :end="endDate"
  135. @change="bindDateChange2" data-index="2">
  136. <view class="flex-center">
  137. <text>{{end}}</text> <text class="iconfont icongengduo"></text>
  138. </view>
  139. </picker>
  140. </view>
  141. </view>
  142. </view>
  143. </view>
  144. <view class="home-content-top">
  145. <view class="br" style="padding: 32rpx 0 25rpx 0;">
  146. <text>活动说明</text>
  147. </view>
  148. <view class="box-pack-between ft32 descps ">
  149. <textarea :value='info.explain' placeholder-class="desc-placeholder" maxlength="200"
  150. placeholder="请输入内容(选填)" name='explain' />
  151. </view>
  152. </view>
  153. <view class="bottom-bar">
  154. <button form-type="submit" type="2" class="btn1 flex-center">
  155. 确定
  156. </button>
  157. </view>
  158. <!-- </view> -->
  159. </form>
  160. </view>
  161. <zx-uni-popup ref="popup" type="center">
  162. <view class="games-model">
  163. <form @submit="sure">
  164. <view class="title">
  165. 设置奖品
  166. </view>
  167. <view class="flex-y-center item">
  168. <view style="min-width: 150rpx;">名称
  169. <text class="red">*</text>
  170. </view>
  171. <view class="border-b flex-grow-1">
  172. <input name="name" type="text" maxlength="30" />
  173. </view>
  174. </view>
  175. <view class="flex-y-center item" @click="bindCoupon">
  176. <view style="min-width: 100rpx;">奖品<text class="red">*</text></view>
  177. <view class="flex-y-center box-pack-between flex-grow-1 ft28">
  178. <text></text>
  179. <view class="flex-y-center">
  180. <text>{{coupon_title}}</text>
  181. <text class="iconfont icon-prev"></text>
  182. </view>
  183. </view>
  184. </view>
  185. <view class="flex-y-center item">
  186. <view style="min-width: 100rpx;">数量<text class="red">*</text></view>
  187. <view class="border-b flex-grow-1">
  188. <input name="num" :value="num" type="number" value="" />
  189. </view>
  190. </view>
  191. <view class="flex-y-center item">
  192. <text style="min-width: 100rpx;"> 概率<text class="red">*</text></text>
  193. <view class="border-b flex-grow-1">
  194. <input name="probability" :value="probability" type="digit" value="" />
  195. </view>
  196. <text>%</text>
  197. </view>
  198. <text class="ft20 red">*所填写的奖品概率总和不能超过100,未中奖的概率 = 100 - 所填写的奖品概率的总和</text>
  199. <button class="btn flex-center" form-type="submit">确定</button>
  200. </form>
  201. </view>
  202. </zx-uni-popup>
  203. </view>
  204. </template>
  205. <script>
  206. import zxUniPopup from '@/components/zx-uni-popup/uni-popup.vue'
  207. export default {
  208. components: {
  209. zxUniPopup,
  210. },
  211. data() {
  212. return {
  213. game_list: [
  214. // {
  215. // name: "刮刮卡",
  216. // },
  217. // {
  218. // name: "大转盘",
  219. // },
  220. {
  221. name: "实体大转盘",
  222. }
  223. ],
  224. game_index: 2,
  225. game_name: "请选择小游戏类型",
  226. game_id: "",
  227. prize: [],
  228. coupon_title: "",
  229. num: "",
  230. coupon_id: "",
  231. startDate: "2020-10-01",
  232. endDate: "2030-10-01",
  233. start: "请选择开始时间",
  234. end: "请选择结束时间",
  235. act_index: 0,
  236. act_index2: 0,
  237. info: {},
  238. id: "",
  239. coupon_name: "请选择优惠劵类型",
  240. coupon_list: [],
  241. coupon_index: -1,
  242. content: [{
  243. awards: "请选择优惠劵类型",
  244. probability: "",
  245. num: "",
  246. assign: "",
  247. },
  248. {
  249. awards: "请选择优惠劵类型",
  250. probability: "",
  251. num: "",
  252. assign: "",
  253. },
  254. {
  255. awards: "请选择优惠劵类型",
  256. probability: "",
  257. num: "",
  258. assign: "",
  259. }, {
  260. awards: "请选择优惠劵类型",
  261. probability: "",
  262. num: "",
  263. assign: "",
  264. }, {
  265. awards: "请选择优惠劵类型",
  266. probability: "",
  267. num: "",
  268. assign: "",
  269. }, {
  270. awards: "请选择优惠劵类型",
  271. probability: "",
  272. num: "",
  273. assign: "",
  274. }, {
  275. awards: "请选择优惠劵类型",
  276. probability: "",
  277. num: "",
  278. assign: "",
  279. }, {
  280. awards: "请选择优惠劵类型",
  281. probability: "",
  282. num: "",
  283. assign: "",
  284. }, {
  285. awards: "请选择优惠劵类型",
  286. probability: "",
  287. num: "",
  288. assign: "",
  289. }, {
  290. awards: "请选择优惠劵类型",
  291. probability: "",
  292. num: "",
  293. assign: "",
  294. }, {
  295. awards: "请选择优惠劵类型",
  296. probability: "",
  297. num: "",
  298. assign: "",
  299. }, {
  300. awards: "请选择优惠劵类型",
  301. probability: "",
  302. num: "",
  303. assign: "",
  304. }, {
  305. awards: "请选择优惠劵类型",
  306. probability: "",
  307. num: "",
  308. assign: "",
  309. }, {
  310. awards: "请选择优惠劵类型",
  311. probability: "",
  312. num: "",
  313. assign: "",
  314. }, {
  315. awards: "请选择优惠劵类型",
  316. probability: "",
  317. num: "",
  318. assign: "",
  319. }, {
  320. awards: "请选择优惠劵类型",
  321. probability: "",
  322. num: "",
  323. assign: "",
  324. },
  325. ]
  326. }
  327. },
  328. onLoad(e) {
  329. if (e.id) {
  330. this.id = e.id;
  331. uni.setNavigationBarTitle({
  332. title: "编辑活动"
  333. })
  334. }
  335. // this.coupon();
  336. },
  337. onShow() {
  338. uni.$on("handleFun", res => {
  339. console.log(res, "res")
  340. this.coupon_title = res.title;
  341. this.coupon_id = res.coupon_id;
  342. this.number = res.num;
  343. // 清除监听
  344. uni.$off('handleFun');
  345. })
  346. },
  347. methods: {
  348. coupon(e) {
  349. this.request({
  350. url: "coupon/lists",
  351. data: {
  352. token: uni.getStorageSync("token"),
  353. page: 1,
  354. limit: 100,
  355. },
  356. }).then(res => {
  357. console.log(res, "res")
  358. if (res.code === '200') {
  359. for (let i of res.data.list) {
  360. i.name = i.type == 1 ? '[' + i.title + ']' + '满减劵' + ':满' + Number(i.cut_price) + '减' +
  361. Number(i.full_price) :
  362. i.type == 2 ? '[' + i.title + ']' + '折扣劵' + ':折扣' + Number(i.discount) : '[' + i
  363. .title + ']' + '礼品劵:' + i.gift;
  364. // item.name=item.type==3?'['+item.title+']'+'礼品劵'+
  365. }
  366. console.log(res.data.list, "res.data.list")
  367. this.coupon_list = res.data.list;
  368. if (this.id) {
  369. this.http();
  370. }
  371. }
  372. }).catch((res) => {});
  373. },
  374. http(e) {
  375. let url = "lottery/detail";
  376. this.request({
  377. url,
  378. data: {
  379. id: this.id
  380. },
  381. }).then(res => {
  382. console.log(res, "res")
  383. if (res.code === "200") {
  384. this.info = res.data.detail;
  385. this.start = res.data.detail.start_time;
  386. this.end = res.data.detail.end_time;
  387. this.game_index = res.data.detail.type == 2 ? 1 : res.data.detail.type == 3 ? 2 : 0;
  388. if (res.data.detail.type == 3) {
  389. for (let i of res.data.detail.content.data) {
  390. for (let j of this.coupon_list) {
  391. if (i.awards == j.id) {
  392. i.awards = j.name;
  393. i.id = j.id
  394. }
  395. }
  396. }
  397. this.content = res.data.detail.content.data;
  398. // this.content[index].awards = this.coupon_list[e.detail.value].name;
  399. // this.content[index].id = this.coupon_list[e.detail.value].id;
  400. } else {
  401. this.prize = res.data.detail.content;
  402. }
  403. }
  404. });
  405. },
  406. del() {
  407. uni.showModal({
  408. title: '提示',
  409. content: '是否要删除?',
  410. showCancel: true,
  411. cancelText: '取消',
  412. confirmText: '确定',
  413. success: res => {
  414. if (res.confirm) {
  415. this.request({
  416. url: 'lottery/del',
  417. data: {
  418. id: this.info.id,
  419. },
  420. }).then(res => {
  421. console.log(res, "res")
  422. if (res.code === 200 || res.code === "200") {
  423. uni.showToast({
  424. title: "删除成功",
  425. icon: "none",
  426. })
  427. setTimeout(() => {
  428. uni.navigateBack()
  429. }, 2e3)
  430. }
  431. }).catch(() => {
  432. uni.showToast({
  433. title: res.message,
  434. icon: "none",
  435. })
  436. });
  437. }
  438. },
  439. fail: () => {},
  440. complete: () => {}
  441. });
  442. },
  443. bindDateChange1(e) {
  444. this.act_index = e.currentTarget.dataset.index;
  445. this.start = e.target.value;
  446. },
  447. bindDateChange2(e) {
  448. this.act_index2 = e.currentTarget.dataset.index;
  449. this.end = e.target.value;
  450. },
  451. bindGame(e) {
  452. console.log(e.detail.value, "e.detail.value")
  453. // this.game_index = e.detail.value;
  454. // this.game_id = this.game_list[e.detail.value].id;
  455. },
  456. onCoupon(e) {
  457. var index = e.currentTarget.dataset.index;
  458. this.content[index].awards = this.coupon_list[e.detail.value].name;
  459. this.content[index].id = this.coupon_list[e.detail.value].id;
  460. },
  461. getScene(e) {
  462. var index = e.currentTarget.dataset.index;
  463. this.content[index].probability = e.detail.value
  464. },
  465. getNum(e) {
  466. var index = e.currentTarget.dataset.index;
  467. this.content[index].num = e.detail.value
  468. },
  469. getOpenid(e) {
  470. var index = e.currentTarget.dataset.index;
  471. this.content[index].assign = e.detail.value
  472. },
  473. bindCoupon() {
  474. uni.navigateTo({
  475. url: "./CouponList"
  476. })
  477. },
  478. sure(e) {
  479. if (!this.coupon_title || !e.detail.value.num || !e.detail.value.probability) {
  480. uni.showToast({
  481. title: "必选项不能为空",
  482. icon: 'none'
  483. })
  484. return
  485. }
  486. if (e.detail.value.probability > 100) {
  487. uni.showToast({
  488. title: "概率不能大于100",
  489. icon: 'none'
  490. })
  491. return
  492. }
  493. if (e.detail.value.num > Number(this.number)) {
  494. uni.showToast({
  495. title: "数量不能大于优惠劵数量",
  496. icon: 'none'
  497. })
  498. return
  499. }
  500. let sum = this.prize.reduce((acc, curVal) => acc + Number(curVal.probability), 0);
  501. if ((sum + Number(e.detail.value.probability)) > 100) {
  502. uni.showToast({
  503. title: "奖品合计概率不能超过100%",
  504. icon: 'none'
  505. })
  506. return
  507. }
  508. if (this.prize.length > 0) {
  509. let hasGoodStudentType = this.prize.some((v, i) => v.coupon_id == this.coupon_id)
  510. console.log(hasGoodStudentType); // true
  511. if (hasGoodStudentType) {
  512. uni.showToast({
  513. title: "已有此优惠劵",
  514. icon: 'none'
  515. })
  516. return
  517. }
  518. }
  519. this.prize.push({
  520. coupon_id: this.coupon_id,
  521. coupon_title: this.coupon_title,
  522. name: e.detail.value.name,
  523. num: e.detail.value.num,
  524. rate: e.detail.value.probability,
  525. })
  526. this.probability = "";
  527. this.coupon_title = "";
  528. this.$refs.popup.close();
  529. },
  530. open() {
  531. if (this.prize.length > 8) {
  532. uni.showToast({
  533. title: "奖品已超限制长度",
  534. icon: 'none'
  535. })
  536. return
  537. }
  538. this.$refs.popup.open();
  539. },
  540. delScene(e) {
  541. var index = Number(e.currentTarget.dataset.index);
  542. this.prize.splice(index, 1);
  543. },
  544. save(e) {
  545. let data = e.detail.value;
  546. data.type = this.game_index == 1 ? 2 : this.game_index == 2 ? 3 : 1;
  547. data.token = uni.getStorageSync("token");
  548. data.time = this.start + " - " + this.end;
  549. if (data.type == 3) {
  550. let content = [];
  551. for (let i of this.content) {
  552. content.push({
  553. awards: i.id,
  554. probability: i.probability,
  555. num: i.num,
  556. assign: i.assign
  557. })
  558. }
  559. data.content = JSON.stringify(content);
  560. } else {
  561. data.content = JSON.stringify(this.prize);
  562. }
  563. if (this.id) {
  564. data.id = this.id;
  565. }
  566. let a = ((Date.parse(new Date(this.start))) / 1000); //开始的时间戳
  567. let b = ((Date.parse(new Date(this.end))) / 1000); //结束的时间戳
  568. // console.log(isNaN(a), "aad")
  569. if (isNaN(a)) {
  570. uni.showToast({
  571. title: '请选择开始时间',
  572. icon: 'none',
  573. duration: 2000
  574. });
  575. return false
  576. }
  577. if (isNaN(b)) {
  578. uni.showToast({
  579. title: '请选择结束时间',
  580. icon: 'none',
  581. duration: 2000
  582. });
  583. return false
  584. }
  585. if (a > b) {
  586. uni.showToast({
  587. title: '开始时间不能大于结束时间哦',
  588. icon: 'none',
  589. duration: 2000
  590. });
  591. return false
  592. }
  593. if (this.prize.length <= 0 && this.game_index != 2) {
  594. uni.showToast({
  595. title: "请选择奖品",
  596. icon: 'none'
  597. })
  598. return false
  599. }
  600. if (!data.title) {
  601. uni.showToast({
  602. title: "必填项不能为空",
  603. icon: 'none'
  604. })
  605. return false
  606. }
  607. this.request({
  608. url: "lottery/save",
  609. data,
  610. }).then(res => {
  611. console.log(res, "res")
  612. if (res.code === '200') {
  613. console.log(res)
  614. uni.showToast({
  615. title: "提交成功",
  616. icon: 'none',
  617. duration: 1000
  618. })
  619. setTimeout(() => {
  620. uni.navigateBack({
  621. delta: 1
  622. })
  623. }, 1500)
  624. }
  625. }).catch((err) => {
  626. console.log(err)
  627. uni.showToast({
  628. title: err.message,
  629. icon: 'none',
  630. duration: 2000
  631. })
  632. })
  633. }
  634. }
  635. }
  636. </script>
  637. <style lang="scss">
  638. page {
  639. background: #F1F1F1;
  640. }
  641. .home-content {
  642. width: 690rpx;
  643. opacity: 1;
  644. border-radius: 14rpx;
  645. box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(204, 215, 230, 0.08);
  646. margin: 0 auto;
  647. position: relative;
  648. .home-content-top {
  649. width: 100%;
  650. opacity: 1;
  651. background: #ffffff;
  652. border-radius: 14rpx;
  653. box-shadow: 0rpx 8rpx 16rpx 0rpx rgba(204, 215, 230, 0.08);
  654. padding: 0 24rpx;
  655. margin-top: 24rpx;
  656. }
  657. }
  658. .list-icon {
  659. width: 29rpx;
  660. height: 29rpx;
  661. margin-right: 6rpx;
  662. }
  663. .mar64 {
  664. margin-bottom: 60rpx;
  665. }
  666. .item-bg .mar64:last-child {
  667. margin-bottom: 0rpx;
  668. }
  669. .col-num {
  670. color: #007AFF;
  671. }
  672. .item_name {
  673. -webkit-box-flex: 0;
  674. -webkit-flex: none;
  675. flex: none;
  676. width: 176rpx;
  677. }
  678. .content {
  679. word-wrap: break-word;
  680. word-break: break-all;
  681. }
  682. .pdr-20 {
  683. padding-right: 20rpx;
  684. }
  685. .item {
  686. padding: 32rpx 0rpx;
  687. }
  688. .item input {
  689. text-align: right;
  690. }
  691. .upimg {
  692. width: 126rpx;
  693. height: 126rpx;
  694. }
  695. .add-home {
  696. color: #FFFFFF;
  697. width: 126rpx;
  698. height: 54rpx;
  699. background: linear-gradient(315deg, #3387ff 2%, #569bff 99%);
  700. border-radius: 8rpx;
  701. box-shadow: 0px 0px 8rpx 0px rgba(51, 135, 255, 0.2);
  702. }
  703. .item-bg {
  704. // width: 670rpx;
  705. /* height: 298rpx; */
  706. background: #f6f8fe;
  707. border-radius: 12rpx;
  708. margin: 0 auto;
  709. font-size: 28rpx;
  710. font-family: PingFang SC, PingFang SC-Regular;
  711. font-weight: 400;
  712. color: #333333;
  713. padding: 36rpx 32rpx;
  714. }
  715. .item-del {
  716. width: 40rpx;
  717. height: 40rpx;
  718. min-width: 40rpx;
  719. }
  720. .item-bg-32 {
  721. margin-right: 32rpx;
  722. }
  723. .mgr57 {
  724. margin-bottom: 57rpx;
  725. }
  726. .item-li {
  727. padding: 20rpx 0;
  728. text-align: right;
  729. .item_name {
  730. text-align: left;
  731. }
  732. }
  733. .games-model {
  734. background: #FFFFFF;
  735. width: 500rpx;
  736. padding: 0rpx 40rpx 40rpx 40rpx;
  737. border-radius: 12rpx;
  738. .title {
  739. text-align: center;
  740. padding: 20rpx 0;
  741. }
  742. .item {
  743. padding: 20rpx 0;
  744. .border-b input {
  745. margin-left: 10rpx;
  746. text-align: center;
  747. }
  748. }
  749. .red {
  750. color: red;
  751. }
  752. .btn {
  753. margin: 0 auto;
  754. color: #FFFFFF;
  755. width: 250rpx;
  756. height: 60rpx;
  757. background: linear-gradient(315deg, #3387ff 2%, #569bff 99%);
  758. border-radius: 8rpx;
  759. box-shadow: 0px 0px 8rpx 0px rgba(51, 135, 255, 0.2);
  760. margin-top: 30rpx;
  761. }
  762. }
  763. .model-item {
  764. text-align: center;
  765. font-size: 28rpx;
  766. color: #999;
  767. position: relative;
  768. padding: 10rpx 0;
  769. text-align: center;
  770. border-radius: 8rpx;
  771. }
  772. .act {
  773. color: #000;
  774. }
  775. .descps textarea {
  776. padding-top: 20rpx;
  777. width: 100%;
  778. }
  779. .bottom-bar {
  780. width: 100%;
  781. background: none;
  782. margin-top: 100rpx;
  783. }
  784. .btn1 {
  785. height: 98rpx;
  786. background: linear-gradient(315deg, #3387ff 2%, #569bff 99%);
  787. border-radius: 8rpx;
  788. box-shadow: 0px 0px 8rpx 0px rgba(51, 135, 255, 0.2);
  789. opacity: 1;
  790. font-size: 32rpx;
  791. color: #FFFFFF;
  792. margin: 0 auto;
  793. margin-bottom: 32rpx;
  794. }
  795. .ft32 {
  796. font-size: 28rpx;
  797. }
  798. </style>