updateorder.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810
  1. <template>
  2. <view :class="[AppTheme]" class="container">
  3. <view class="central_information">
  4. <view class="modular_setion">
  5. <!-- 土地标题 -->
  6. <view class="package_title">
  7. <view class="package_dtitle_p1">
  8. <!-- <view class="dtitle_text_p1 dtitle_text_green">{{ ordermess.soil_name }}</view> -->
  9. <view class="dtitle_text_p2 dtitle_text_green text-primary">{{ ordermess.selelanditemtext.alias }}</view>
  10. </view>
  11. <image class="package_thumbnail" mode="aspectFit" :src="settingFile.root_img+'/static/app/imgs/land.png'"></image>
  12. </view>
  13. <view class="border_nn"></view>
  14. <view class="package_item">
  15. <view class="package_item_tp1">地块编号</view>
  16. <view class="package_item_tp2">
  17. <view class="pa_title_selt">{{ ordermess.selelanditemtext.name }}</view>
  18. </view>
  19. </view>
  20. <view class="border_nn"></view>
  21. <view class="package_item">
  22. <view class="package_item_tp1">地块面积</view>
  23. <view class="package_item_tp2">
  24. <view class="pa_title_selt">{{ ordermess.selelanditemtext.area + '㎡' }}</view>
  25. </view>
  26. </view>
  27. <view class="border_nn"></view>
  28. <!-- 服务类型 -->
  29. <view class="package_item">
  30. <view class="package_item_tp1">服务类型</view>
  31. <view class="package_item_tp2" @click="hostifshow = true">
  32. <view class="pa_title_selt">{{ ordermess.cutlysetagetext.serve_name }}</view>
  33. <u-icon size="30" color="#666" name="arrow-right"></u-icon>
  34. </view>
  35. </view>
  36. <view class="border_nn"></view>
  37. <!-- 租赁周期 -->
  38. <view class="package_item">
  39. <view class="package_item_tp1">租赁周期</view>
  40. <view class="package_item_tp2" @click="hiepackshow = true">
  41. <view class="pa_title_selt">{{ ordermess.hirecycle.label }}</view>
  42. <u-icon size="30" color="#666" name="arrow-right"></u-icon>
  43. </view>
  44. </view>
  45. </view>
  46. <!-- 种子管理 -->
  47. <view class="seedmodular" v-if="ordermess.cutlysetagetext.serve_name !== '无托管'">
  48. <view class="seedmodular_p1"><view class="seedlar_text1 text-primary">种子管理</view></view>
  49. <view class="border_nn"></view>
  50. <view class="seedmodular_p2" v-if="ordermess.seedordermy.orderseedlist.length > 0">
  51. <view class="seleedseed_item" v-for="(item, index) in ordermess.seedordermy.orderseedlist" :key="index">
  52. <view class="seleedseed_item_p1">
  53. <image class="seditem_thumbnail" mode="aspectFill" :src="item.seeditem.ripe_pic"></image>
  54. <view class="seditem_title">{{ item.seeditem.seed_name }}</view>
  55. </view>
  56. <view class="seleedseed_item_p2">{{ item.seeditem.seed_yield * item.seednum }}kg</view>
  57. </view>
  58. </view>
  59. <view class="seedmodular_p3 text-primary border-primary" @click="chooseseed()">更改种子</view>
  60. </view>
  61. <!-- 配送信息 -->
  62. <view class="seedmodular" v-if="ordermess.cutlysetagetext.serve_name === '全托管'">
  63. <view class="seedmodular_p1"><view class="seedlar_text1 text-primary">配送信息</view></view>
  64. <view class="border_nn"></view>
  65. <navigator class="address_delti" v-if="addressData !== null" url="/pagesD/pages/address/address?source=1">
  66. <view class="detaed_addrss">
  67. <u-icon name="phone-fill" color="#56AB2F" size="35"></u-icon>
  68. <view class="addr_text">{{ addressData.name }}-{{ addressData.mobile }}</view>
  69. </view>
  70. <view class="detaed_addrss">
  71. <u-icon name="map-fill" color="#56AB2F" size="35"></u-icon>
  72. <view class="addr_text">{{ addressData.address }}</view>
  73. </view>
  74. </navigator>
  75. <navigator class="seedmodular_p3 text-primary border-primary" url="/pagesD/pages/address/address?source=1">更改地址</navigator>
  76. </view>
  77. <!-- 自主采摘 -->
  78. <view class="seedmodular" v-if="ordermess.cutlysetagetext.serve_name === '半托管'">
  79. <view class="seedlar_text1 text-primary">自主采摘</view>
  80. <view class="border_nn"></view>
  81. <view class="feed_moudel">
  82. <view class="feed_modetitle">
  83. <u-icon name="map" color="#56AB2F" size="40"></u-icon>
  84. <view class="feed_modetext">采摘地址</view>
  85. </view>
  86. <view class="feed_modetitle2">
  87. <view class="feed_modnnsnt">xx市xx区xx区</view>
  88. <u-icon name="arrow-right" color="#333" size="26"></u-icon>
  89. </view>
  90. </view>
  91. <view class="feed_moudel">
  92. <view class="feed_modetitle">
  93. <u-icon name="phone-fill" color="#56AB2F" size="40"></u-icon>
  94. <view class="feed_modetext">采摘说明</view>
  95. </view>
  96. <view class="feed_modetitle2">
  97. <view class="feed_modnnsnt">请提前打电话预约</view>
  98. <u-icon name="arrow-right" color="#333" size="26"></u-icon>
  99. </view>
  100. </view>
  101. </view>
  102. <!-- 租赁人信息 -->
  103. <view class="seedmodular">
  104. <view class="seedlar_text1">租赁人信息</view>
  105. <view class="border_nn"></view>
  106. <view class="leation_suject">姓名</view>
  107. <input type="text" class="brodnn" placeholder-style="color:#555" v-model="leasename" placeholder="请输入租赁人姓名" />
  108. <view class="border_nn"></view>
  109. <view class="leation_suject">电话</view>
  110. <input
  111. type="number"
  112. class="brodnn"
  113. :value="addressData.mobile"
  114. :disabled="ordermess.cutlysetagetext.serve_name === '全托管'"
  115. placeholder-style="color:#555"
  116. placeholder="请输入租赁人电话"
  117. />
  118. <view class="border_nn"></view>
  119. <view class="leation_suject">备注</view>
  120. <input type="text" class="brodnn" placeholder-style="color:#555" v-model="remarks" placeholder="有问题请告诉我" />
  121. <view class="border_nn"></view>
  122. </view>
  123. <!-- 支付 -->
  124. <view class="seedmodular">
  125. <view class="seedlar_text1" style="color: #000000;">请选择支付方式</view>
  126. <view class="choosepay">
  127. <radio-group @change="radioChange">
  128. <label class="unll_pd" v-for="(item, index) in items" :key="item.value">
  129. <view class="ann_fle">
  130. <view class="ann_nfjds">
  131. <image class="unclas" mode="aspectFill" :src="item.iconsrc"></image>
  132. {{ item.name }}
  133. </view>
  134. <radio :value="item.value" :checked="index === current" style="transform: scale(0.6);" />
  135. </view>
  136. </label>
  137. </radio-group>
  138. </view>
  139. </view>
  140. </view>
  141. <!-- 底部结算和价格计算 -->
  142. <view class="footer_payment">
  143. <view class="settlement_information">
  144. <view class="setnt_inion_p1">总计:</view>
  145. <view class="setnt_inion_p2">¥{{ totalpricenum }}</view>
  146. <view class="setnt_inion_p3" @click="detailed = true">明细</view>
  147. </view>
  148. <u-button type="success" shape="square" size="medium" @click="settlement()">确定修改</u-button>
  149. </view>
  150. <!-- 托管套餐和日期选择器 -->
  151. <u-picker :show="hostifshow" :columns="hostingpackage" :closeOnClickOverlay="true" @confirm="confirmpa" @cancel="hostifshow=false"></u-picker>
  152. <u-picker :show="hiepackshow" :columns="hirepackagelist" :closeOnClickOverlay="true" @confirm="confirmdate" @cancel="hiepackshow=false"></u-picker>
  153. <!-- <u-select v-model="hostifshow" safe-area-inset-bottom="true" :list="hostingpackage" @confirm="confirmpa"></u-select>
  154. <u-select v-model="hiepackshow" safe-area-inset-bottom="true" :list="hirepackagelist" @confirm="confirmdate"></u-select> -->
  155. <!-- 账单明细 -->
  156. <u-popup :show="detailed" mode="bottom" safe-area-inset-bottom="true" round="12">
  157. <view class="bill_item">
  158. <view class="bill_text_p1">土地租赁费用</view>
  159. <view class="bill_text_p2">¥{{ ordermess.landexpenss }}</view>
  160. </view>
  161. <view class="bill_item">
  162. <view class="bill_text_p1">土地服务费用</view>
  163. <view class="bill_text_p2">¥{{ ordermess.servlandexpenss }}</view>
  164. </view>
  165. <view class="bill_item">
  166. <view class="bill_text_p1">种子费用</view>
  167. <view class="bill_text_p2">¥{{ ordermess.seedexpenses }}</view>
  168. </view>
  169. <!-- <view class="bill_item">
  170. <view class="bill_text_p1">优惠卷抵用</view>
  171. <view class="bill_text_p2">-¥{{ ordermess.coupon }}</view>
  172. </view>
  173. <view class="bill_item">
  174. <view class="bill_text_p1">会员折扣</view>
  175. <view class="bill_text_p2">-¥{{ ordermess.vipdiscount }}</view>
  176. </view> -->
  177. <view class="bill_item">
  178. <view class="bill_text_p1">总计</view>
  179. <view class="bill_text_p2">¥{{ ordermess.totalprice }}</view>
  180. </view>
  181. </u-popup>
  182. <!-- 模拟框 -->
  183. <u-modal v-model="modalshow" :content="content" show-cancel-button="true" @confirm="modalconfirm()" @cancel="modalcancel()"></u-modal>
  184. </view>
  185. </template>
  186. <script>
  187. import Landapi from '@/api/land/index.js';
  188. export default {
  189. components: {},
  190. data() {
  191. return {
  192. primary:this.$theme.primary,
  193. settingFile:getApp().globalData.siteinfo,
  194. modalshow: false,
  195. content: '修改成功,现在是否支付?',
  196. //支付方式
  197. items: [
  198. {
  199. value: 'weixinpay',
  200. name: '微信支付',
  201. iconsrc: '/static/imgs/icon/wxpay.png',
  202. checked: 'true'
  203. },
  204. {
  205. value: 'balancepay',
  206. iconsrc: '/static/imgs/icon/cacardpay.png',
  207. name: '余额支付'
  208. }
  209. ],
  210. current: 0,
  211. // 提交订单信息
  212. updaordermess: {},
  213. //总资费
  214. totalpricenum: 0,
  215. // 托管套餐选择器显隐
  216. hostifshow: false,
  217. // 托管周期选择器显隐
  218. hiepackshow: false,
  219. //数据库托管套餐
  220. longrangepackage: [],
  221. // 重排后托管套餐列表
  222. hostingpackage: [],
  223. // 托管周期
  224. hirepackagelist: [],
  225. //订单资费详情弹出层
  226. detailed: false,
  227. // 收货地址
  228. addressData: null,
  229. // 租赁姓名
  230. leasename: '',
  231. // 备注
  232. remarks: '',
  233. orderid: 0,
  234. // 订单信息
  235. ordermess: {
  236. //土地信息
  237. selelanditemtext: null,
  238. //服务信息
  239. cutlysetagetext: null,
  240. //租赁套餐类型
  241. hirecycle: null,
  242. //种子集合
  243. seedordermy: {
  244. orderseedlist: []
  245. },
  246. //订单种子费用
  247. seedexpenses: null,
  248. coupon: null,
  249. vipdiscount: null,
  250. order_id: null,
  251. soil_id: null,
  252. subdivision_id: null,
  253. period: []
  254. }
  255. };
  256. },
  257. onLoad(options) {
  258. let ordermess = JSON.parse(options.params);
  259. this.updateinit(ordermess);
  260. },
  261. onUnload() {},
  262. onReady() {},
  263. onShow: function() {},
  264. methods: {
  265. //查看信息弹出框确定操作
  266. modalconfirm() {
  267. //跳转支付
  268. this.nowpay();
  269. },
  270. //查看信息弹出框取消操作
  271. modalcancel() {
  272. uni.redirectTo({
  273. url: '/pagesB/pages/myland/myland'
  274. });
  275. },
  276. //立即支付
  277. nowpay() {
  278. let that = this;
  279. let totalprice = 0;
  280. let parms = {
  281. id: that.orderid
  282. };
  283. //发送订单id获取订单总金额,在执行成功的回调函数发起支付请求
  284. Landapi.lookorderbyid(parms).then(res => {
  285. if (res.status == 1) {
  286. let params2 = {
  287. orderidpayaga: that.orderid,
  288. payprice: res.data.order_money * 1,
  289. payType: 1,
  290. additionalpayment: true
  291. };
  292. uni.redirectTo({
  293. url: '/pagesB/pages/creatorder/pay?parms=' + JSON.stringify(params2)
  294. });
  295. } else {
  296. that.$api.msg(res.msg);
  297. }
  298. });
  299. },
  300. //更改数据初始化
  301. updateinit(ordermess) {
  302. let that = this;
  303. that.ordermess.selelanditemtext = ordermess.subdivision[ordermess.subdivision_id];
  304. that.ordermess.cutlysetagetext = {
  305. id: ordermess.service_id,
  306. is_default: 0,
  307. serve_desc: ordermess.serve_desc,
  308. serve_name: ordermess.serve_name,
  309. serve_price: ordermess.serve_price
  310. };
  311. // 设置租赁套餐
  312. that.ordermess.hirecycle = {
  313. label: '',
  314. value: ordermess.period_days
  315. };
  316. //设置租赁时间
  317. that.ordermess.period = ordermess.period;
  318. that.ordermess.period.forEach(item => {
  319. if (parseInt(item.days) === ordermess.period_days) {
  320. that.ordermess.hirecycle.label = item.periodname;
  321. }
  322. });
  323. //设置种子
  324. ordermess.seeds.forEach(item => {
  325. let seeditem = {
  326. seeditem: {
  327. id: item.seed_id,
  328. price: item.price,
  329. ripe_pic: item.ripe_pic,
  330. seed_name: item.seed_name,
  331. seed_yield: item.seed_yield
  332. },
  333. seednum: item.seed_num
  334. };
  335. that.ordermess.seedordermy.orderseedlist.push(seeditem);
  336. });
  337. //设置地址
  338. that.addressData = {
  339. address: ordermess.address,
  340. id: ordermess.address_id,
  341. is_default: ordermess.is_default,
  342. mobile: ordermess.mobile,
  343. name: ordermess.name,
  344. remark: ordermess.remark,
  345. uniacid: ordermess.uniacid,
  346. vipid: ordermess.vipid,
  347. xqid: ordermess.xqid
  348. };
  349. that.ordermess.order_id = ordermess.order_sn;
  350. that.ordermess.soil_id = ordermess.soil_id;
  351. that.ordermess.subdivision_id = ordermess.subdivision_id;
  352. that.leasename = ordermess.order_name;
  353. that.remarks = that.addressData.remarks;
  354. that.current = ordermess.type_pay - 1;
  355. that.orderid = ordermess.id;
  356. // 获取土地租赁协议列表
  357. this.hirepackagelist = this.ordermess.hirepackagelist;
  358. // 获取土地租赁协议列表
  359. that.gethostingpackage();
  360. that.calprice();
  361. },
  362. //更新整体套餐信息
  363. calprice() {
  364. var that = this;
  365. // 优惠卷抵用
  366. // that.ordermess.coupon = 0;
  367. // 会员折扣
  368. // that.ordermess.vipdiscount = 0;
  369. // 土地租赁费用
  370. that.ordermess.landexpenss = parseInt(that.ordermess.selelanditemtext.price);
  371. // 土地服务费用
  372. that.ordermess.servlandexpenss = that.ordermess.hirecycle.value * parseFloat(that.ordermess.cutlysetagetext.serve_price);
  373. // 种子费用
  374. if (that.ordermess.seedordermy !== undefined) {
  375. that.ordermess.seedexpenses = that.seedtariff();
  376. } else {
  377. that.ordermess.seedexpenses = 0;
  378. }
  379. //合计费用
  380. that.ordermess.totalprice =
  381. that.ordermess.landexpenss + that.ordermess.servlandexpenss + that.ordermess.seedexpenses - that.ordermess.coupon - that.ordermess.vipdiscount;
  382. that.totalpricenum = that.ordermess.totalprice;
  383. },
  384. // 实时计算已选种子总金额
  385. seedtariff() {
  386. var comattribute = 0;
  387. this.ordermess.seedordermy.orderseedlist.forEach(item => {
  388. comattribute += item.seednum * parseInt(item.seeditem.price);
  389. });
  390. return comattribute;
  391. },
  392. // 获取土地租赁协议列表
  393. gethostingpackage(title) {
  394. var that = this;
  395. Landapi.getsecemist().then(res => {
  396. if (res.status == 1) {
  397. // 给套餐集合赋值
  398. that.longrangepackage = res.data;
  399. res.data.forEach(item => {
  400. let paitem = {
  401. label: item.serve_name,
  402. value: item.id
  403. };
  404. that.hostingpackage.push(paitem);
  405. });
  406. } else {
  407. that.$api.msg(res.msg);
  408. }
  409. });
  410. },
  411. // 套餐选择器回调函数
  412. confirmpa(e) {
  413. let that = this;
  414. that.longrangepackage.some(function(item) {
  415. if (item.id === e[0].value) {
  416. that.ordermess;
  417. that.ordermess.cutlysetagetext = item;
  418. return true;
  419. }
  420. });
  421. that.calprice();
  422. },
  423. // 日期选择器回调函数
  424. confirmdate(e) {
  425. this.ordermess.hirecycle = this.hirepackagelist[e[0].extra];
  426. this.calprice();
  427. },
  428. //选择种子
  429. chooseseed() {
  430. let params = {
  431. seeds: this.ordermess.seedordermy.orderseedlist,
  432. selelanditemtext: this.ordermess.selelanditemtext
  433. };
  434. uni.navigateTo({
  435. url: '/pagesB/pages/updateorder/changeseed?params=' + JSON.stringify(params)
  436. });
  437. },
  438. // 单选改变
  439. radioChange(evt) {
  440. for (let i = 0; i < this.items.length; i++) {
  441. if (this.items[i].value === evt.detail.value) {
  442. this.current = i;
  443. break;
  444. }
  445. }
  446. },
  447. // 结算订单
  448. settlement() {
  449. var that = this;
  450. //如果为全判断收货地址是否为空
  451. if (that.ordermess.cutlysetagetext.serve_name === '全托管') {
  452. if (that.addressData === null) {
  453. that.$api.msg('请填写收货地址');
  454. return;
  455. }
  456. }
  457. // 判断租赁人姓名是否正确
  458. var re = /^[\u4e00-\u9fa5]+$/;
  459. if (re.test(that.leasename)) {
  460. // 用户id赋值
  461. // that.updaordermess.vip_id = that.addressData.vipid;
  462. //土地id赋值
  463. // that.updaordermess.soil_id = that.ordermess.landid;
  464. // 选中地块id
  465. that.updaordermess.subdivision_id = that.ordermess.selelanditem;
  466. //订单金额
  467. that.updaordermess.order_money = that.totalpricenum;
  468. // 服务id
  469. that.updaordermess.service_id = that.ordermess.cutlysetagetext.id;
  470. // 服务名称
  471. // that.updaordermess.service_name = that.ordermess.cutlysetagetext.serve_name;
  472. // 租赁周期
  473. that.updaordermess.period_days = that.ordermess.hirecycle.value;
  474. // 选购种子,加一层判断
  475. if (that.ordermess.cutlysetagetext.serve_name !== '无托管') {
  476. if (that.ordermess.seedordermy === undefined || that.ordermess.seedordermy === null) {
  477. // that.$api.msg("当前订单未选择种子")
  478. that.updaordermess.seeds = [];
  479. } else {
  480. that.updaordermess.seeds = that.ordermess.seedordermy.orderseedlist;
  481. }
  482. }
  483. //地址id
  484. that.updaordermess.address_id = that.addressData.id;
  485. //订单客户姓名
  486. that.updaordermess.order_name = that.leasename;
  487. //订单手机号
  488. that.updaordermess.order_mobile = that.addressData.mobile;
  489. //订单备注
  490. // that.updaordermess.remark = that.remarks;
  491. //订单支付方式
  492. // that.updaordermess.type_pay = that.current + 1;
  493. let tmplId = uni.getStorageSync('temlist');
  494. let updanpram = {
  495. order_sn: that.ordermess.order_id,
  496. soil_id: that.ordermess.soil_id,
  497. subdivision_id: that.ordermess.subdivision_id,
  498. order_money: that.ordermess.totalprice,
  499. service_id: that.updaordermess.service_id,
  500. period_days: that.updaordermess.period_days,
  501. seeds: that.ordermess.seedordermy.orderseedlist,
  502. address_id: that.updaordermess.address_id,
  503. order_name: that.updaordermess.order_name,
  504. order_mobile: that.updaordermess.order_mobile,
  505. remark: that.remarks
  506. };
  507. let seeds = [];
  508. updanpram.seeds.forEach(item => {
  509. let seeditem = {
  510. seed_id: 0,
  511. seed_num: 0
  512. };
  513. seeditem.seed_id = item.seeditem.id;
  514. seeditem.seed_num = item.seednum;
  515. seeds.push(seeditem);
  516. });
  517. updanpram.seeds = JSON.stringify(seeds);
  518. Landapi.updateorder(updanpram).then(res => {
  519. if (res.status == 1) {
  520. // that.$api.msg(res.msg);
  521. that.modalshow = true;
  522. } else {
  523. that.$api.msg(res.msg);
  524. }
  525. });
  526. } else {
  527. that.$api.msg('请输入正确的名字');
  528. }
  529. },
  530. }
  531. };
  532. </script>
  533. <style lang="scss">
  534. @import 'common/nowvue.scss';
  535. </style>
  536. <style lang="scss">
  537. .container {
  538. background: #f1f1f1;
  539. }
  540. .central_information {
  541. overflow-y: scroll;
  542. padding: 0 20rpx;
  543. height: calc(100vh - 90rpx - env(safe-area-inset-bottom));
  544. }
  545. .modular_setion {
  546. padding: 45rpx 30rpx;
  547. background: #ffffff;
  548. box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.08);
  549. margin: 15rpx 0 25rpx 0;
  550. border-radius: 10rpx;
  551. }
  552. .package_title {
  553. display: flex;
  554. justify-content: space-between;
  555. align-items: center;
  556. }
  557. .package_dtitle_p1 {
  558. width: auto;
  559. }
  560. .dtitle_text_p1 {
  561. font-size: 34rpx;
  562. font-weight: 900;
  563. }
  564. .dtitle_text_p2 {
  565. font-size: 28rpx;
  566. margin-top: 30rpx;
  567. }
  568. .package_thumbnail {
  569. width: 60rpx;
  570. height: 47.5rpx;
  571. }
  572. .dtitle_text_green {
  573. // color: #56ab2f;
  574. }
  575. .package_item {
  576. margin-top: 25rpx;
  577. }
  578. .package_item_tp1 {
  579. font-size: 26rpx;
  580. color: #999;
  581. }
  582. .package_item_tp2 {
  583. display: flex;
  584. justify-content: space-between;
  585. align-items: center;
  586. margin-top: 30rpx;
  587. }
  588. .pa_title_selt {
  589. color: #000;
  590. font-size: 30rpx;
  591. }
  592. .footer_payment {
  593. position: fixed;
  594. width: calc(100vw - 15rpx);
  595. margin: 0 7.5rpx;
  596. padding: 10rpx;
  597. bottom: calc(env(safe-area-inset-bottom) + 10rpx);
  598. background: rgba(255, 255, 255, 0.9);
  599. box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.08);
  600. border-radius: 16rpx;
  601. display: flex;
  602. justify-content: space-between;
  603. align-items: center;
  604. z-index: 2;
  605. }
  606. .settlement_information {
  607. display: flex;
  608. justify-content: flex-start;
  609. align-items: center;
  610. padding: 0 15rpx;
  611. }
  612. .setnt_inion_p1 {
  613. font-size: 30rpx;
  614. color: #000;
  615. }
  616. .setnt_inion_p2 {
  617. margin: 0 25rpx;
  618. font-size: 28rpx;
  619. font-weight: 800;
  620. color: red;
  621. }
  622. .setnt_inion_p3 {
  623. font-size: 24rpx;
  624. color: #999;
  625. }
  626. .bill_item {
  627. display: flex;
  628. justify-content: space-between;
  629. align-items: center;
  630. padding: 25rpx;
  631. }
  632. .bill_text_p1 {
  633. font-size: 30rpx;
  634. color: #999;
  635. }
  636. .bill_text_p2 {
  637. font-size: 28rpx;
  638. color: #000000;
  639. }
  640. .seedmodular {
  641. padding: 45rpx 30rpx;
  642. background: #ffffff;
  643. box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.08);
  644. margin: 15rpx 0 25rpx 0;
  645. border-radius: 10rpx;
  646. }
  647. .seedmodular_p1 {
  648. display: flex;
  649. justify-content: space-between;
  650. align-items: center;
  651. }
  652. .seedlar_text1 {
  653. font-size: 30rpx;
  654. // color: #56ab2f;
  655. font-weight: 900;
  656. }
  657. .seedlar_text2 {
  658. font-size: 26rpx;
  659. color: #999;
  660. }
  661. .seedmodular_p2 {
  662. margin: 25rpx 0;
  663. }
  664. .seedmodular_p3 {
  665. // color: #19be6b;
  666. background-color: #fff;
  667. font-size: 30rpx;
  668. height: 70rpx;
  669. line-height: 70rpx;
  670. text-align: center;
  671. border-width: 1px;
  672. border-style: solid;
  673. // border: 1px solid #19be6b;
  674. border-radius: 35rpx;
  675. width: 55%;
  676. margin: 25rpx 22.5%;
  677. }
  678. .seleedseed_item {
  679. display: flex;
  680. justify-content: space-between;
  681. align-items: center;
  682. margin: 10rpx 0;
  683. }
  684. .seleedseed_item_p1 {
  685. display: flex;
  686. justify-content: flex-start;
  687. align-items: center;
  688. }
  689. .seditem_thumbnail {
  690. width: 60rpx;
  691. height: 60rpx;
  692. }
  693. .seditem_title {
  694. font-size: 26rpx;
  695. color: #999;
  696. margin-left: 15rpx;
  697. }
  698. .address_delti {
  699. width: auto;
  700. margin-top: 30rpx;
  701. }
  702. .detaed_addrss {
  703. display: flex;
  704. justify-content: flex-start;
  705. align-items: center;
  706. margin: 20rpx 0;
  707. }
  708. .addr_text {
  709. font-size: 26rpx;
  710. color: #000;
  711. margin-left: 15rpx;
  712. letter-spacing: 2rpx;
  713. }
  714. .feed_moudel {
  715. padding: 25rpx 0;
  716. }
  717. .border_nn {
  718. border-bottom: 1rpx solid #999;
  719. transform: scaleY(0.3);
  720. margin-top: 15rpx;
  721. }
  722. .feed_modetitle {
  723. display: flex;
  724. justify-content: flex-start;
  725. align-items: center;
  726. }
  727. .feed_modetext {
  728. color: #333;
  729. font-size: 26rpx;
  730. margin-left: 15rpx;
  731. }
  732. .feed_modetitle2 {
  733. display: flex;
  734. justify-content: space-between;
  735. align-items: center;
  736. margin-top: 15rpx;
  737. text-indent: 45rpx;
  738. }
  739. .feed_modnnsnt {
  740. font-size: 28rpx;
  741. color: #000;
  742. }
  743. .leation_suject {
  744. color: #666;
  745. font-size: 24rpx;
  746. margin: 15rpx 0;
  747. }
  748. .choosepay {
  749. margin: 20rpx 0;
  750. }
  751. .ann_fle {
  752. display: flex;
  753. justify-content: space-between;
  754. margin: 17.5rpx 0;
  755. align-items: center;
  756. color: #000;
  757. font-size: 28rpx;
  758. }
  759. .brodnn {
  760. margin: 20rpx 0;
  761. }
  762. .unclas {
  763. width: 45rpx;
  764. height: 45rpx;
  765. margin-right: 25rpx;
  766. }
  767. .ann_nfjds {
  768. display: flex;
  769. justify-content: flex-start;
  770. align-items: center;
  771. }
  772. .unll_pd {
  773. margin: 15rpx 0;
  774. }
  775. .load_window {
  776. position: fixed;
  777. top: 50%;
  778. left: 50%;
  779. width: 100%;
  780. transform: translate(-50%, -50%);
  781. background-color: #ffffff;
  782. box-shadow: 2px 4px 12px rgba(0, 0, 0, 0.08);
  783. }
  784. </style>