123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- <template>
- <div>
- <van-swipe class="my-swipe" :autoplay="5000" indicator-color="#ffffff">
- <van-swipe-item v-for="(image, index) in images" :key="index">
- <img v-lazy="image" />
- </van-swipe-item>
- </van-swipe>
- <div class="box">
- <h3>
- 选择油枪号 | <small>选择所加油枪号</small>
- <span @click="showPopup=true">更多></span>
- </h3>
- <van-row gutter="10">
- <van-col span="8" v-for="(item, index) in gasarr" :key="index" class="gas">
- <van-button :type="gas==item.oilGunNo?'primary':'default'" block @click="selectGas(item.oilGunNo,item.oilName)">
- {{item.oilGunNo+'号枪'}}
- <p style="font-size: 16px;">{{item.oilName}}</p>
- </van-button>
- </van-col>
- </van-row>
- <h3>输入金额 | <small>建议询问加油员后输入</small></h3>
- <div class="input-box">
- <input type="number" :value="account" class="my-input">
- <span class="input-left">¥</span>
- <span class="input-right">(元)</span>
- </div>
- <van-row gutter="10">
- <van-col span="6" v-for="(item, index) in money" :key="index">
- <van-button type="default" block class="btn-money" @click="account=item">{{item}}</van-button>
- </van-col>
- </van-row>
- <center class="tips">
- <van-icon name="warning-o" /> <span>请勿在油机旁使用手机</span></center>
- <van-popup v-model="showPopup" round position="bottom" safe-area-inset-bottom>
- <center>
- <h3>选择油枪号</h3>
- </center>
- <van-row gutter="10">
- <van-col span="8" v-for="(item, index) in gasallarr" :key="index" class="gas">
- <van-button :type="gas==item.oilGunNo?'primary':'default'" block @click="selectGasAll(index, item.oilGunNo,item.oilName)">
- {{item.oilGunNo+'号枪'}}
- <p style="font-size: 16px;">{{item.oilName}}</p>
- </van-button>
- </van-col>
- </van-row>
- </van-popup>
- <van-goods-action>
- <van-goods-action-button type="primary" text="去结算" v-if="gas>0 && account>0" @click="toConfirmOrder()" />
- <van-goods-action-button text="去结算" color="#cdcbce" v-else @click="toastMsg" />
- </van-goods-action>
- </div>
- </div>
- </template>
- <script>
- import Vue from 'vue';
- import {
- Swipe,
- SwipeItem,
- Lazyload,
- Button,
- Col,
- Row,
- Popup,
- GoodsAction,
- GoodsActionButton,
- Icon,
- Toast
- } from 'vant';
- Vue.use(Swipe);
- Vue.use(SwipeItem);
- Vue.use(Lazyload);
- Vue.use(Button);
- Vue.use(Col);
- Vue.use(Row);
- Vue.use(Popup);
- Vue.use(GoodsAction);
- Vue.use(GoodsActionButton);
- Vue.use(Icon);
- Vue.use(Toast);
- export default Vue.extend({
- head() {
- return {
- title:'一键加油'
- }
- },
- data() {
- return {
- showPopup: false,
- images: [],
- gasarr: [],
- gasallarr: [],
- money: [200, 400, 600, 800],
- gas: 0,
- oName: '',
- account: ''
- };
- },
- created() {
- console.log(this.$route.query);
- },
- mounted() {
- var r = this.$axios.get('/stationOilGunList', {
- params: {
- stationId: this.$route.query.stationId
- },
- });
- r.then(res => {
- if (res.data.retCode == 0) {
- this.gasallarr = this.gasallarr.concat(res.data.data); //追加数据
- var gasarr = [];
- var gasallarr = [];
- var index = gasallarr.length;
- if (index > 5) {
- for (let i = index - 5; i <= index; i++) {
- gasarr.push(this.gasallarr[i]);
- }
- } else {
- for (let i = 0; i < 6; i++) {
- gasarr.push(this.gasallarr[i]);
- }
- }
- this.gasarr = gasarr;
- }
- })
- },
- methods: {
- selectGas: function(num, name) {
- this.gas = num;
- this.oName = name;
- this.showPopup = false;
- },
- selectGasAll: function(index, num) {
- var gasarr = [];
- if (index > 5) {
- for (let i = index - 5; i <= index; i++) {
- gasarr.push(this.gasallarr[i]);
- }
- } else {
- for (let i = 0; i < 6; i++) {
- gasarr.push(this.gasallarr[i]);
- }
- }
- this.gasarr = gasarr;
- this.gas = num;
- this.showPopup = false;
- },
- toConfirmOrder: function() {
- var $this = this;
- let data = {
- stationId: this.$route.query.stationId,
- oilGun: this.gas,
- oilName: this.oName,
- amt: '0.1',
- token: this.$route.query.openId,
- userType: '1'
- }
- var getOrderInfoUrl = '/AddPayOrderInfo';
- this.$axios.post(getOrderInfoUrl, data).then(res => {
- if (res.data.retCode == 0) {
- let stationId=data.stationId;
- let stationName=this.$route.query.stationName;
- let oilName=data.oilName;
- let gas = data.oilGun;
- let account = data.amt;
- let orderNo = res.data.data;
- let openId =data.token;
- this.$router.push({
- path: '/order/confirm',
- query: {
- stationId: stationId,
- stationName: stationName,
- gasNum: gas,
- oilName: oilName,
- account: account,
- orderNo: orderNo,
- openId:openId
- }
- });
- } else {
- Toast.fail('创建订单失败!请联系管理员');
- }
- })
- },
- toastMsg: function() {
- if (this.gas <= 0) {
- Toast.fail('请选择油枪');
- } else if (this.account <= 0) {
- Toast.fail('请输入金额');
- }
- }
- }
- })
- </script>
- <style lang="less">
- .my-swipe {
- z-index: 1;
- .van-swipe__indicators {
- bottom: 32px;
- }
- .van-swipe-item {
- color: #fff;
- font-size: 20px;
- line-height: 150px;
- text-align: center;
- background-color: #39a9ed;
- img {
- display: block;
- box-sizing: border-box;
- width: 100%;
- height: 185px;
- background-color: #fff;
- pointer-events: none;
- overflow: hidden;
- object-fit: cover;
- }
- }
- }
- .box {
- box-sizing: border-box;
- width: 100%;
- min-height: 60vh;
- background-color: #ffffff;
- border-radius: 20px 20px 0 0;
- position: absolute;
- top: 190px;
- left: 0;
- z-index: 999;
- box-shadow: 0 -2px 2px rgba(0, 0, 0, 0.1);
- padding: 0 15px 80px 15px;
- .van-button--primary {
- background-color: rgb(15, 179, 123);
- border-color: rgb(15, 179, 123);
- }
- h3 {
- font-size: 16px;
- small {
- font-size: 12px;
- color: #ccc;
- font-weight: normal;
- }
- span {
- font-size: 14px;
- color: #ccc;
- font-weight: normal;
- float: right;
- }
- }
- .input-box {
- position: relative;
- margin-bottom: 10px;
- .my-input {
- width: 100%;
- height: 44px;
- line-height: 44px;
- border: 0;
- border-radius: 5px;
- box-shadow: 0 1px 2px 2px rgba(15, 179, 123, 0.1);
- text-indent: 25px;
- font-size: 18px;
- font-weight: bold;
- }
- .input-left,
- .input-right {
- position: absolute;
- top: 0;
- z-index: 999;
- line-height: 44px;
- font-size: 12px;
- }
- .input-left {
- left: 10px;
- font-weight: bold;
- line-height: 46px;
- }
- .input-right {
- right: 10px;
- color: #999;
- }
- }
- .gas {
- margin-bottom: 10px;
- .van-button {
- line-height: 1.5em;
- border-radius: 3px;
- height: 54px;
- p {
- font-size: 9px;
- margin-block: 0;
- }
- }
- .van-button--default {
- background-color: #eee;
- color: rgb(102, 101, 104);
- }
- }
- .btn-money {
- border: 0;
- box-shadow: 0 1px 2px 2px rgba(15, 179, 123, 0.1);
- color: rgb(168, 170, 170);
- height: 40px;
- }
- .tips {
- padding: 10px;
- color: rgb(240, 180, 80);
- .van-icon {
- vertical-align: middle;
- }
- span {
- font-size: 14px;
- }
- }
- .van-popup {
- box-sizing: border-box;
- padding: 20px;
- top: 20vh;
- }
- .van-goods-action {
- height: 80px;
- padding: 0 15px;
- }
- }
- </style>
|