apply.vue 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830
  1. <template>
  2. <app-layout>
  3. <view v-if="middleman.status == 0" class="wait">
  4. <image :src="bonusImg.wait"></image>
  5. <view>谢谢您的支持,请等待审核...</view>
  6. <view class="app-button">
  7. <app-button :theme="getTheme" color="#fff" @click="toIndex" arrangement="row" type="important" round width="320">
  8. <text class="app-text">去商城逛逛</text>
  9. </app-button>
  10. </view>
  11. </view>
  12. <view v-else-if="middleman.status == 1" class="success">
  13. <image :src="bonusImg.success"></image>
  14. <view class="success-text">您已成为团长</view>
  15. <view class="app-button">
  16. <app-button :theme="getTheme" color="#fff" @click="toCommunity" arrangement="row" type="important" round width="320">
  17. <text class="app-text">团长中心</text>
  18. </app-button>
  19. </view>
  20. </view>
  21. <view v-else-if="middleman.status == -1" class="pay">
  22. <app-head :apply="middleman.status == -1" :theme="getTheme"></app-head>
  23. <view class="pay-view">
  24. <image class="money-icon" src="./../image/money.png"></image>
  25. <view class="money-name">{{setting.apply_money_name}}</view>
  26. <view>商家设置了加入门槛,你需要支付相应费用</view>
  27. <view class="pay-price">¥<text>{{middleman.pay_price}}</text></view>
  28. </view>
  29. <view class="app-button">
  30. <app-button :theme="getTheme" color="#fff" @click="middlemanPay" roundSize="40rpx" arrangement="row" type="important" round>
  31. <text class="app-text">确认支付</text>
  32. </app-button>
  33. </view>
  34. </view>
  35. <view v-else-if="middleman.status == 3" class="refuse">
  36. <image src="./../image/refuse.png"></image>
  37. <view>您被解除{{setting.middleman}}身份</view>
  38. <view class="refuse-info">
  39. <view>审核时间:
  40. <text>{{middleman.apply_at}}</text>
  41. </view>
  42. <view class="refuse-reason">解除理由:
  43. <text style="word-wrap:break-word;">{{middleman.reason ? middleman.reason :"无"}}</text>
  44. </view>
  45. <view class="app-button">
  46. <app-button :theme="getTheme" color="#fff" @click="reApply" arrangement="row" type="important" round width="320">
  47. <text class="app-text">再次申请</text>
  48. </app-button>
  49. </view>
  50. </view>
  51. </view>
  52. <view v-else-if="middleman.status == 2" class="refuse">
  53. <image src="./../image/refuse.png"></image>
  54. <view>您的申请被拒</view>
  55. <view class="refuse-info">
  56. <view>审核时间:
  57. <text>{{middleman.apply_at}}</text>
  58. </view>
  59. <view class="refuse-reason">拒绝理由:
  60. <text style="word-wrap:break-word;">{{middleman.reason ? middleman.reason :"无"}}</text>
  61. </view>
  62. <view class="app-button">
  63. <app-button :theme="getTheme" color="#fff" @click="reApply" arrangement="row" type="important" round>
  64. <text class="app-text">再次申请</text>
  65. </app-button>
  66. </view>
  67. </view>
  68. </view>
  69. <view v-else-if="middleman.status == -2">
  70. <app-head :theme="getTheme"></app-head>
  71. <view class="title">
  72. <view class="big-title-text">{{setting.middleman}}信息</view>
  73. <view>用于商品配送管理,请填写真实信息</view>
  74. </view>
  75. <view class="app-view">
  76. <view class="app-line main-between cross-center">
  77. <text class="app-text box-grow-0">姓名</text>
  78. <view class="address-input" style="opacity: 0.3" v-if="address">{{form.name}}</view>
  79. <input v-else placeholder-style="color:#cdcdcd" placeholder="请输入姓名" maxlength="10" class="address-input" type="text" v-model="form.name" />
  80. </view>
  81. <view class="app-line main-between cross-center">
  82. <text class="app-text box-grow-0">手机号</text>
  83. <view class="address-input" style="opacity: 0.3" v-if="address">{{form.mobile}}</view>
  84. <input v-else placeholder-style="color:#cdcdcd" placeholder="请输入手机号" maxlength="11" class="address-input" type="number" v-model="form.mobile" />
  85. </view>
  86. <view class="app-line main-between cross-center">
  87. <text class="app-text box-grow-0">省市区</text>
  88. <view class="address-input" v-if="address" style="opacity: 0.3" >{{form.province}},{{form.city}},{{form.district}}</view>
  89. <view v-else class="box-grow-1 area-left">
  90. <app-area-picker @customevent="areaEvent"
  91. :ids="[form.province_id,form.city_id,form.district_id]"></app-area-picker>
  92. </view>
  93. </view>
  94. <!-- #ifndef MP-TOUTIAO -->
  95. <view v-if="is_refund_address == 0" class="app-line main-between cross-center">
  96. <text class="app-text box-grow-0">所在地区</text>
  97. <view class="h-100 main-right dir-left-nowrap cross-center box-grow-1" @click="getChooseLocation" :style="{'opacity': address ? '0.3' : '1'}">
  98. <view class="box-grow-0 c-address t-omit" :class="{'placeholder':!location}">{{location ? location : '请选择所在地区'}}</view>
  99. <image src="/static/image/icon/arrow-right.png" class="box-grow-0 icon-arrow-image"></image>
  100. </view>
  101. </view>
  102. <!-- #endif -->
  103. <view class="app-line main-between cross-center">
  104. <text class="app-text box-grow-0">提货地址</text>
  105. <input placeholder-style="color:#cdcdcd" placeholder="请输入详细提货地址" class="address-input" type="text" :focus="focus" @blur="focus = false" v-model="form.detail" />
  106. </view>
  107. </view>
  108. <view class="app-button">
  109. <app-button v-if="address" :theme="getTheme" color="#fff" @click="saveAddress" arrangement="row" type="important" round width="90%">
  110. <text class="app-text">保存</text>
  111. </app-button>
  112. <app-button v-else :theme="getTheme" color="#fff" @click="submit" arrangement="row" type="important" round width="90%">
  113. <text class="app-text">下一步</text>
  114. </app-button>
  115. </view>
  116. </view>
  117. </app-layout>
  118. </template>
  119. <script>
  120. import {mapGetters, mapState} from 'vuex';
  121. import appAreaPicker from '../../../components/page-component/app-area-picker/app-area-picker.vue';
  122. import appHead from '../components/app-head.vue';
  123. import appTextArea from '../../../components/basic-component/app-textarea/app-textarea.vue';
  124. export default {
  125. data() {
  126. return {
  127. wait: false,
  128. middleman: {
  129. status: 99
  130. },
  131. id: null,
  132. form: {
  133. location: '',
  134. latitude: '',
  135. longitude: '',
  136. name: '',
  137. mobile: '',
  138. province_id: 0,
  139. city_id: 0,
  140. district_id: 0,
  141. detail: '',
  142. },
  143. location: '',
  144. setting: {
  145. middleman: ''
  146. },
  147. is_refund_address: 0,
  148. detail_url: '',
  149. list: [],
  150. submit_status: false,
  151. automatic: '',
  152. province: [],
  153. focus: false,
  154. address: false,
  155. }
  156. },
  157. computed: {
  158. ...mapGetters('mallConfig', {
  159. getTheme: 'getTheme',
  160. }),
  161. ...mapState({
  162. community: state => state.mallConfig.__wxapp_img.community,
  163. bonusImg: state => state.mallConfig.__wxapp_img.bonus,
  164. })
  165. },
  166. components: {appAreaPicker, appTextArea, appHead},
  167. onLoad(options) { this.$commonLoad.onload(options);
  168. if(options.id > 0) {
  169. this.address = true;
  170. }
  171. this.getPlace();
  172. this.getStatus();
  173. },
  174. methods: {
  175. areaEvent(data) {
  176. if (data) {
  177. this.form.province_id = data.province.id;
  178. this.form.city_id = data.city.id;
  179. this.form.district_id = data.district.id;
  180. }
  181. },
  182. toCommunity() {
  183. uni.navigateTo({
  184. url: '/plugins/community/index/index'
  185. });
  186. },
  187. toIndex() {
  188. uni.navigateTo({
  189. url: '/pages/index/index'
  190. });
  191. },
  192. reApply() {
  193. let that = this;
  194. that.middleman.status = -2;
  195. },
  196. middlemanPay() {
  197. let that = this;
  198. if(that.id > 0) {
  199. that.pay(that.id);
  200. return false;
  201. }
  202. that.$request({
  203. url: that.$api.community.apply_pay,
  204. data: {
  205. id: that.middleman.id
  206. }
  207. }).then(response=>{
  208. if(response.code == 0) {
  209. that.pay(response.data.id);
  210. }else {
  211. uni.showToast({
  212. title: response.msg,
  213. icon: 'none',
  214. duration: 1000
  215. });
  216. }
  217. }).catch(response => {
  218. that.$hideLoading();
  219. });
  220. },
  221. getStatus() {
  222. let that = this;
  223. that.$request({
  224. url: that.$api.community.index,
  225. }).then(response=>{
  226. that.$hideLoading();
  227. if(response.code == 0) {
  228. that.setting = response.data.setting;
  229. uni.setNavigationBarTitle({
  230. title: '申请' + that.setting.middleman,
  231. })
  232. if(response.data.middleman.id > 0) {
  233. that.middleman = response.data.middleman;
  234. if(that.address) {
  235. that.middleman.status = -2;
  236. that.form = response.data.middleman;
  237. if(that.form.province == that.form.city) {
  238. that.location = that.form.province + ' ' + that.form.district + ' ' + that.form.location;
  239. }else {
  240. that.location = that.form.province + ' ' + that.form.city + ' ' + that.form.district + ' ' + that.form.location;
  241. }
  242. uni.setNavigationBarTitle({
  243. title: '填写' + that.setting.middleman +'信息',
  244. })
  245. }
  246. }else {
  247. that.middleman.status = -2;
  248. }
  249. }else {
  250. uni.showToast({
  251. title: response.msg,
  252. icon: 'none',
  253. duration: 1000
  254. });
  255. }
  256. }).catch(() => {
  257. that.$hideLoading();
  258. });
  259. },
  260. getPlace() {
  261. let that = this;
  262. that.$request({
  263. url: that.$api.city.cityName,
  264. }).then(response=>{
  265. if(response.code === 0) {
  266. that.province = response.data.list;
  267. }else {
  268. uni.showToast({
  269. title: response.msg,
  270. icon: 'none',
  271. duration: 1000
  272. });
  273. }
  274. })
  275. },
  276. // #ifndef MP-TOUTIAO
  277. async getChooseLocation() {
  278. const self = this;
  279. if(self.address) {
  280. return false
  281. }
  282. const [err, res] = await uni.chooseLocation();
  283. if (res) {
  284. if(res.name == '我的位置' || res.address == '我的位置') {
  285. uni.showToast({
  286. title: '请选择具体位置',
  287. icon: 'none'
  288. });
  289. return false;
  290. }
  291. let province = '';
  292. let city = '';
  293. let area = '';
  294. let name = res.name;
  295. // #ifdef MP-ALIPAY
  296. if(res.provinceName == '上海') {
  297. res.provinceName = '上海市'
  298. }
  299. if(res.provinceName == '澳门特别行政区' || res.provinceName == '香港特别行政区' || res.provinceName == '台湾省') {
  300. uni.showToast({
  301. title: '不支持该地区',
  302. icon: 'none'
  303. });
  304. return false;
  305. }
  306. res.address = res.address.replace(res.provinceName,'');
  307. res.address = res.address.replace(res.cityName,'');
  308. res.address = res.address.replace(res.adName,'');
  309. name = res.name ? res.name : res.address;
  310. res.address = res.provinceName + res.cityName + res.adName + name;
  311. if(!(res.adCode > 0)) {
  312. res.address = '其他其他其他'
  313. }
  314. // #endif
  315. if(!res.address) {
  316. res.address = '其他其他其他'
  317. }
  318. res.address = res.address.replace('北京市北京市','北京市');
  319. res.address = res.address.replace('天津市天津市','天津市');
  320. res.address = res.address.replace('上海市上海市','上海市');
  321. res.address = res.address.replace('重庆市重庆市','重庆市');
  322. res.address = res.address.replace('香港特别行政区香港特别行政区','香港特别行政区');
  323. res.address = res.address.replace('澳门特别行政区澳门特别行政区','澳门特别行政区');
  324. for(let i in self.province) {
  325. if(res.address.indexOf(self.province[i].name) == 0) {
  326. province = self.province[i].name != 'undefined' ? self.province[i].name : '';
  327. self.form.province_id = self.province[i].id;
  328. if(province != '北京市' && province != '天津市' && province != '上海市' && province != '重庆市' && province != '澳门特别行政区' && province != '香港特别行政区') {
  329. res.address = res.address.replace(province,'');
  330. }
  331. for(let j in self.province[i].list) {
  332. if(res.address.indexOf(self.province[i].list[j].name) == 0 && self.province[i].list[j].parent_id == self.province[i].id) {
  333. city = self.province[i].list[j].name != 'undefined' ? self.province[i].list[j].name : '';
  334. self.form.city_id = self.province[i].list[j].id;
  335. res.address = res.address.replace(city,'');
  336. for(let x in self.province[i].list[j].list) {
  337. if(res.address.indexOf(self.province[i].list[j].list[x].name) == 0 && self.province[i].list[j].list[x].parent_id == self.province[i].list[j].id && self.province[i].list[j].list[x].provinceCode == self.province[i].code) {
  338. area = self.province[i].list[j].list[x].name != 'undefined' ? self.province[i].list[j].list[x].name : '';
  339. self.form.district_id = self.province[i].list[j].list[x].id;
  340. }
  341. }
  342. }
  343. }
  344. }
  345. }
  346. if(!province || !area || !name) {
  347. self.form.province_id = ''
  348. self.form.city_id = ''
  349. self.form.district_id = ''
  350. }
  351. if(province == city) {
  352. self.location = province + ' ' + area + ' ' + name;
  353. }else {
  354. self.location = province + ' ' + city + ' ' + area + ' ' + name;
  355. }
  356. self.form.location = name;
  357. self.form.latitude = res.latitude;
  358. self.form.longitude = res.longitude;
  359. }
  360. if (err) {
  361. const setting = () => {
  362. uni.showModal({
  363. title: '授权权限',
  364. content: '请先授权地理位置权限',
  365. success(res) {
  366. if (res.confirm) {
  367. uni.openSetting({
  368. success(settingdata) {
  369. if (settingdata.authSetting['scope.userLocation']) {
  370. uni.chooseLocation({
  371. success: function (res) {
  372. self.getChooseLocation();
  373. },
  374. });
  375. } else {
  376. uni.showToast({
  377. title: '授权失败',
  378. icon: 'none'
  379. });
  380. }
  381. }
  382. })
  383. }
  384. }
  385. })
  386. };
  387. //#ifdef MP-BAIDU
  388. if (err.errCode === 1003) {
  389. setting();
  390. }
  391. //#endif
  392. //#ifdef MP-WEIXIN
  393. if (err.errMsg === `chooseLocation:fail auth deny`) {
  394. setting();
  395. }
  396. //#endif
  397. }
  398. },
  399. // #endif
  400. getInfo(detail) {
  401. this.$request({
  402. url: this.$api.user.wechat_district,
  403. data: {
  404. province_name: detail.address[0],
  405. city_name: detail.address[1],
  406. county_name: detail.address[2],
  407. },
  408. }).then(info => {
  409. if (info.code === 0) {
  410. const {province, city, district} = info.data.district;
  411. detail.province_id = province.id;
  412. detail.city_id = city.id;
  413. detail.district_id = district.id;
  414. this.form = detail;
  415. }
  416. }).catch(() => {
  417. uni.showToast({
  418. title: '网络异常',
  419. icon: 'none',
  420. });
  421. })
  422. },
  423. areaEvent(data) {
  424. if (data) {
  425. this.form.province_id = data.province.id;
  426. this.form.city_id = data.city.id;
  427. this.form.district_id = data.district.id;
  428. this.list = [data.province.name, data.city.name, data.district.name];
  429. }
  430. },
  431. saveAddress() {
  432. let that = this;
  433. if (!this.form.detail) {
  434. uni.showToast({
  435. title: '提货地址不能为空',
  436. icon: 'none',
  437. });
  438. return false
  439. }
  440. if (!this.form.province_id || !this.form.city_id || !this.form.district_id) {
  441. uni.showToast({
  442. title: '提货地址不能为空',
  443. icon: 'none',
  444. });
  445. return false
  446. }
  447. that.$request({
  448. url: that.$api.community.edit_address,
  449. data: {
  450. detail: that.form.detail
  451. },
  452. method: 'post'
  453. }).then(response=>{
  454. uni.showToast({
  455. title: response.msg,
  456. icon: 'none',
  457. duration: 1000
  458. });
  459. if(response.code == 0) {
  460. setTimeout(()=>{
  461. uni.navigateBack({});
  462. },1000)
  463. }
  464. }).catch(response => {
  465. that.$hideLoading();
  466. });
  467. },
  468. async submit() {
  469. try {
  470. if (this.submit_status) return;
  471. let content;
  472. if (!this.form.detail) {
  473. content = '提货地址不能为空';
  474. }
  475. if (!this.form.location) {
  476. content = '所在地区不能为空';
  477. }
  478. if (!this.form.mobile) {
  479. content = '手机号不能为空';
  480. }
  481. if (!this.form.name) {
  482. content = '姓名不能为空';
  483. }
  484. if (content) {
  485. uni.showToast({
  486. title: content,
  487. icon: 'none'
  488. });
  489. return;
  490. }
  491. this.submit_status = true;
  492. let url = this.$api.community.apply;
  493. let para = this.form;
  494. if (this.is_refund_address > 0) {
  495. url = this.$api.app_admin.refund_address_edit;
  496. let {id, name, mobile, detail} = this.form;
  497. para = {
  498. form: JSON.stringify({
  499. id,
  500. name,
  501. mobile,
  502. address_detail: detail,
  503. address: this.list,
  504. is_default: 0,
  505. remark: ''
  506. })
  507. }
  508. }
  509. const info = await this.$request({
  510. url: url,
  511. data: para,
  512. method: 'POST',
  513. });
  514. this.submit_status = false;
  515. if (info.code === 0) {
  516. let queue_id = info.data.queue_id;
  517. let token = info.data.token;
  518. this.getResult(queue_id, token)
  519. } else {
  520. uni.showToast({title: info.msg, icon: 'none'});
  521. }
  522. } catch (e) {
  523. this.submit_status = false;
  524. throw new Error(e);
  525. }
  526. },
  527. getResult(queue_id,token) {
  528. this.$request({
  529. url: this.$api.community.apply_result,
  530. data: {
  531. queue_id: queue_id,
  532. token: token,
  533. },
  534. }).then(response => {
  535. if (response.code === 0) {
  536. if (response.data.retry && response.data.retry === 1) {
  537. this.getPayDataTimer = setTimeout(() => {
  538. this.getResult(queue_id, token);
  539. }, 1000);
  540. } else {
  541. uni.hideLoading();
  542. if(response.data.id > 0) {
  543. this.id = response.data.id
  544. }
  545. this.getStatus();
  546. }
  547. } else {
  548. this.exchangeCoupon = false;
  549. uni.hideLoading();
  550. uni.showModal({
  551. title: '提示',
  552. content: response.msg,
  553. showCancel: false,
  554. });
  555. }
  556. }).catch(e => {
  557. this.exchangeCoupon = false;
  558. uni.hideLoading();
  559. uni.showModal({
  560. title: '提示',
  561. content: e.errMsg,
  562. showCancel: false,
  563. });
  564. });
  565. },
  566. pay(id) {
  567. this.$payment.pay(id).then(res => {
  568. this.getStatus();
  569. }).catch(() => {
  570. uni.showToast({
  571. title: '支付失败',
  572. icon: 'none',
  573. duration: 1000
  574. });
  575. });
  576. },
  577. detailFocus() {
  578. this.focus = true;
  579. }
  580. }
  581. }
  582. </script>
  583. <style scoped lang="scss">
  584. .success {
  585. position: absolute;
  586. left: 0;
  587. top: 0;
  588. width: 100%;
  589. height: 100%;
  590. background-color: #fff;
  591. text-align: center;
  592. .success-text {
  593. margin: #{-20rpx} auto #{30rpx};
  594. color: #353535;
  595. font-size: #{40rpx};
  596. }
  597. image {
  598. height: #{270rpx};
  599. width: #{380rpx};
  600. margin: #{120rpx} auto #{60rpx};
  601. }
  602. .app-button {
  603. margin: #{24rpx} auto;
  604. width: #{320rpx};
  605. }
  606. }
  607. .pay {
  608. font-size: #{36rpx};
  609. color: #353535;
  610. text-align: center;
  611. position: absolute;
  612. top: 0;
  613. left: 0;
  614. width: 100%;
  615. height: 100%;
  616. background-color: #fff;
  617. .pay-view {
  618. position: relative;
  619. margin-top: #{-324rpx};
  620. color: #fff;
  621. font-size: #{26rpx};
  622. .money-icon {
  623. width: #{93rpx};
  624. height: #{93rpx};
  625. border-radius: 50%;
  626. margin-bottom: #{20rpx};
  627. }
  628. .money-name {
  629. font-size: #{34rpx};
  630. margin-bottom: #{10rpx};
  631. }
  632. .pay-price {
  633. margin-top: #{150rpx};
  634. color: #353535;
  635. font-size: #{50rpx};
  636. text {
  637. font-size: #{70rpx};
  638. }
  639. }
  640. }
  641. }
  642. .refuse {
  643. font-size: #{36rpx};
  644. color: #353535;
  645. text-align: center;
  646. top: 0;
  647. left: 0;
  648. width: 100%;
  649. height: 100%;
  650. background-color: #fff;
  651. position: absolute;
  652. image {
  653. height: #{160rpx};
  654. width: #{160rpx};
  655. margin: #{80rpx} auto #{40rpx};
  656. }
  657. view {
  658. margin-bottom:#{25rpx};
  659. }
  660. .refuse-reason {
  661. margin:#{10rpx} 0 #{76rpx};
  662. }
  663. .refuse-info {
  664. font-size: #{28rpx};
  665. color: #999;
  666. border-top: #{1rpx} solid #e2e2e2;
  667. width: #{520rpx};
  668. margin: 0 auto;
  669. margin-bottom: 0;
  670. padding-top: #{30rpx};
  671. padding-left: #{20rpx};
  672. text-align: left;
  673. text {
  674. color: #666;
  675. }
  676. }
  677. .app-button {
  678. margin: #{24rpx} auto;
  679. width: #{320rpx};
  680. }
  681. }
  682. .wait {
  683. color: #666;
  684. font-size: #{32rpx};
  685. text-align: center;
  686. position: absolute;
  687. top: 0;
  688. left: 0;
  689. width: 100%;
  690. height: 100%;
  691. background-color: #fff;
  692. view {
  693. margin-bottom: #{68rpx};
  694. }
  695. image {
  696. height: #{270rpx};
  697. width: #{380rpx};
  698. margin: #{120rpx} auto #{60rpx};
  699. }
  700. .app-button {
  701. margin: #{24rpx} auto;
  702. width: #{320rpx};
  703. }
  704. }
  705. .title {
  706. font-size: #{26rpx};
  707. color: #fff;
  708. margin-top: #{-360rpx};
  709. text-align: center;
  710. height: #{160rpx};
  711. padding-top: #{30rpx};
  712. position: relative;
  713. .big-title-text {
  714. font-size: #{34rpx};
  715. margin: 0 0 #{12rpx};
  716. }
  717. }
  718. .popup {
  719. position: fixed;
  720. background: rgba(0, 0, 0, 0.5);
  721. padding: #{50rpx};
  722. top: 0;
  723. left: 0;
  724. right: 0;
  725. bottom: 0;
  726. z-index: 2000;
  727. .textarea {
  728. width: 100%;
  729. background: #fff;
  730. border: #{1rpx} solid #ccc;
  731. z-index: 1;
  732. padding: #{24rpx};
  733. border-radius: #{5rpx};
  734. }
  735. .c {
  736. position: fixed;
  737. left: 0;
  738. top: 0;
  739. right: 0;
  740. bottom: 0;
  741. z-index: 0;
  742. }
  743. }
  744. .h-100 {
  745. height: 100%;
  746. }
  747. .app-button {
  748. margin: #{40rpx} #{24rpx};
  749. color: #fff;
  750. text {
  751. color: #fff!important;
  752. }
  753. }
  754. .address-input {
  755. width: #{580rpx};
  756. font-size: #{28rpx};
  757. color: #353535;
  758. }
  759. .area-left {
  760. text-align: text;
  761. margin-left: auto;
  762. }
  763. .app-view {
  764. background-color: #ffffff;
  765. position: relative;
  766. z-index: 10;
  767. width: #{702rpx};
  768. margin: 0 auto;
  769. border-radius: #{16rpx};
  770. .app-line {
  771. height: #{118rpx};
  772. line-height: #{118rpx};
  773. padding: #{0 32rpx 0 0};
  774. text.app-text {
  775. font-size: #{28rpx};
  776. color: $uni-important-color-black;
  777. width: #{140rpx};
  778. margin-right: #{20rpx};
  779. text-align: right;
  780. flex-shrink: 0;
  781. }
  782. }
  783. .c-address {
  784. padding-right: #{24rpx};
  785. font-size: #{28rpx};
  786. color: #353535;
  787. width: #{500rpx};
  788. height: 100%;
  789. &.placeholder {
  790. color: #cdcdcd;
  791. }
  792. }
  793. .icon-arrow-image {
  794. width: #{12rpx};
  795. height: #{24rpx};
  796. }
  797. .tip {
  798. padding: #{0 24rpx 24rpx 24rpx};
  799. background: #ffffff;
  800. color: #b7b7b7;
  801. }
  802. }
  803. </style>