ll
liukangdong
2024-12-11 d73c61eb5a8dcc4e40732b97d92d36edcf6b3d61
ll
已添加3个文件
已修改11个文件
已重命名1个文件
783 ■■■■ 文件已修改
admin/src/components/business/OperaHiddenDangerParamWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/UploadFaceImg.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/api/driver.js 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/api/staff.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages.json 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/driver/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/login/login.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/staff/task/vDangetAppr.vue 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/waybill/home.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/waybill/list.vue 375 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/pages/waybill/waybillDetail.vue 196 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/ic_shaixuan@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/static/wuliuche_bg@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
h5/utils/config.js 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaHiddenDangerParamWindow.vue
@@ -70,6 +70,7 @@
      this.form.memberIdList = null
      this.form.type = type
      this.getfindCompanyTreePage()
      this.loadMember()
      // æ–°å»ºç»„织
      if (target == null) {
        this.$nextTick(() => {
@@ -92,7 +93,6 @@
            })
          }
        }
        this.loadMember()
      })
    },
    getfindCompanyTreePage() {
admin/src/components/common/UploadFaceImg.vue
@@ -69,6 +69,9 @@
        const formData = new FormData()
        formData.append('folder', 'member')
        if(this.uploadData.isFace || this.uploadData.isFace == 0){
          formData.append('isFace', 0)
        }
        formData.append(
            'file',
            new File(
h5/api/driver.js
@@ -121,3 +121,24 @@
    data
  })
}
export const validPhoneCaptcha = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/business/smsEmail/validPhoneCaptcha',
    method: 'post',
    data
  })
}
export const orderListTms = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/tms/orderList',
    method: 'post',
    data
  })
}
export const orderInfoTms = (data) => {
  return http({
    url: 'visitsAdmin/cloudService/tms/orderInfo',
    method: 'post',
    data
  })
}
h5/api/staff.js
@@ -61,7 +61,7 @@
// loginout
export const logoutPost = (data) => {
  return http({
    url: '/logout',
    url: '/logoutForH5',
    method: 'post',
    data
  })
h5/pages.json
@@ -461,6 +461,20 @@
            {
                "navigationBarTitleText" : "我的考勤"
            }
        },
        {
            "path" : "pages/waybill/home",
            "style" :
            {
                "navigationBarTitleText" : "运单查询"
            }
        },
        {
            "path" : "pages/waybill/list",
            "style" :
            {
                "navigationBarTitleText" : "运单查询"
            }
        }
    ],
    "subPackages": [
h5/pages/driver/index.vue
@@ -133,7 +133,7 @@
            })
        },
        loginOut() {
            logoutPost()
            logoutPost({isH5: 1})
            this.$store.commit('empty')
            window.location.href = app_url
        },
h5/pages/login/login.vue
@@ -44,6 +44,11 @@
                code: ''
            }
        },
        onLoad(option) {
            if(option.type){
            }
        },
        onShow() {
            var that = this
            let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
h5/pages/staff/index.vue
@@ -151,7 +151,7 @@
            return permissions.indexOf(str) > -1
        },
        loginOut() {
            logoutPost()
            logoutPost({isH5: 1})
            this.$store.commit('empty')
            window.location.href = app_url
        },
h5/pages/staff/task/vDangetAppr.vue
@@ -365,11 +365,14 @@
                this.videoContext = uni.createVideoContext("myvideo", this); // this这个是实例对象 å¿…ä¼ 
                console.log(item)
                this.videoUrl = item.fileurlFull;
                this.videoPlay = true;
                this.$nextTick(() => {
                this.videoContext.requestFullScreen({
                    direction: 90
                });
                this.videoContext.play();
                this.videoPlay = true;
                })
            },
            handleOpen() {
                this.isShowHandle = true;
@@ -800,7 +803,7 @@
        }
        .flow_wrap {
            padding: 30rpx 0;
            padding: 30rpx 0 90rpx;
            .list {
                .item {
@@ -1368,7 +1371,11 @@
            color: #333333;
        }
    }
    .video_app{
        position: absolute;
        left: 3000rpx;
        top: 3000rpx;
    }
    .Transfer_footer {
        display: flex;
h5/pages/waybill/home.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
<template>
    <view class="main_app">
        <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image>
        <view class="login_wrap">
            <view class="item">
                <view class="la">手机号</view>
              <input v-model="form.phone" maxlength="18" placeholder-class="placeholder9" placeholder="请输入手机号" />
            </view>
            <view class="item">
                <view class="la">验证码</view>
              <view class="df_sb">
                  <input
                    v-model="form.code"
                    placeholder="请输入验证码"
                      placeholder-class="placeholder9"
                    type="text"
                  />
                  <text class="captcha" v-if="countDown == 0" @click="initCaptcha"
                    >获取验证码</text
                  >
                  <text class="placeholder9" v-else>{{ countDown }}</text>
              </view>
            </view>
            <view class="login_btn" @click="onSubmit">
                <view class="login_btn_n">查询</view>
            </view>
        </view>
    </view>
</template>
<script>
    import { sendSms, validPhoneCaptcha } from '@/api'
    export default {
        data() {
            return {
                form: {
                    code: '',
                    phone: ''
                },
                countDown: 0
            };
        },
        methods: {
            onSubmit() {
                const { code, phone } = this.form
                if (!phone) return this.showToast('手机号不能为空')
                if (!code) return this.showToast('验证码不能为空')
                validPhoneCaptcha({
                  phone, code
                }).then(res => {
                  if (res && res.code == 200) {
                    uni.navigateTo({
                      url: "/pages/waybill/list?phone=" + phone
                    })
                  }
                })
            },
            initCaptcha() {
              if (!this.form.phone) return uni.showToast({
                title: '手机号不能为空',
                icon: 'none'
              })
              sendSms({ phone: this.form.phone }).then(res => {
                this.countDown = 60
                setInterval(() => {
                  if (this.countDown == 0) return
                  this.countDown--
                }, 1000)
              })
            },
        }
    }
</script>
<style lang="scss">
.main_app{
    padding-top: 218rpx;
    .bg{
        width: 750rpx;
        position: absolute;
        left: 0;
        top: 0;
        z-index: -1;
    }
    .login_wrap {
      width: 690rpx;
      height: 490rpx;
      background: #FFFFFF;
      box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(39,155,170,0.16);
      border-radius: 16rpx;
      padding: 40rpx 30rpx;
      box-sizing: border-box;
      .item {
        width: 100%;
        height: 126rpx;
            padding-right: 10rpx;
        box-sizing: border-box;
        margin-bottom: 30rpx;
            border-bottom: 1px solid #E5E5E5;
        &:last-child {
          margin-bottom: 0 !important;
        }
        .la{
                font-weight: 400;
                font-size: 28rpx;
                color: #222222;
            }
        .captcha {
          color: $uni-color-primary;
        }
            .df_sb{
                display: flex;
                justify-content: space-between;
                align-items: center;
            }
        input {
          flex: 1;
          height: 86rpx;
          color: #666666;
          // margin-left: 24rpx;
                display: flex;
                align-items: center;
          border: none;
        }
      }
    }
    .login_btn {
     width: 630rpx;
     height: 88rpx;
      box-sizing: border-box;
      margin-top: 40rpx;
      .login_btn_n {
        width: 100%;
        height: 98rpx;
        background: $uni-color-primary;
        box-shadow: 0rpx 12rpx 24rpx 0rpx rgba(39, 155, 170, 0.2);
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 30rpx;
        color: #ffffff;
        border-radius: 50rpx;
      }
    }
}
</style>
h5/pages/waybill/list.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,375 @@
<template>
    <view class="main_app">
        <view class="head_wrap">
            <view class="search_box">
                <image src="@/static/ic_search@2x.png" class="search" mode=""></image>
                <input type="text" placeholder-class="placeholder9" v-model="param.name" @confirm="handleQuery" />
            </view>
            <view class="right" @click="openModal">
                <image src="@/static/ic_shaixuan@2x.png" mode=""></image>
                <text>筛选</text>
            </view>
        </view>
        <!--  -->
        <view class="main_list">
            <view class="item" v-for="item,index in list" :key="index">
                <view class="head">
                    <view class="code">{{item.contractNumber}}</view>
                    <view class="status">{{item.orderStatus}}</view>
                </view>
                <view class="content">
                    <view class="line">
                        <view class="la">发货地:</view>
                        <view class="val">{{item.fromRepertoty || '-'}}</view>
                    </view>
                    <view class="line">
                        <view class="la">到货地:</view>
                        <view class="val">{{item.toRepertoty || '-'}}</view>
                    </view>
                    <view class="line">
                        <view class="la">车牌号:</view>
                        <view class="val">{{item.plateNumber || '-'}}</view>
                    </view>
                </view>
                <view class="footer">
                    <view class="time">{{item.ncCreateDate}}</view>
                    <view class="detail" @click="handleDetail(item)">查看详情</view>
                </view>
            </view>
            <view v-if="list.length === 0" style="text-align: center">
                <image src="@/static/empty.png" style="width: 320rpx; margin: 120px auto 0" mode="widthFix" />
                <view class="placeholder9 fs24">暂无数据</view>
            </view>
        </view>
        <!--  -->
        <u-popup :show="showModal" round="12" @close="showModal = false">
            <view class="modal">
                <view class="modal_title">筛选</view>
                <view class="line">
                    <view class="la">合同号</view>
                    <view class="val">
                        <input type="text" placeholder-class="placeholder9" v-model="form.contract" />
                    </view>
                </view>
                <view class="line">
                    <view class="la">制单开始日期</view>
                    <view class="val" @click="showStarttime = true">
                        <text class="mr12"
                            :class="{placeholder9: !form.starttime}">{{ form.starttime ? form.starttime : '请选择' }}</text>
                        <u-icon name="arrow-right" size="14" color="#999999"></u-icon>
                    </view>
                </view>
                <view class="line">
                    <view class="la">制单结束日期</view>
                    <view class="val" @click="showEndtime = true">
                        <text class="mr12" :class="{placeholder9: !form.endtime}">{{ form.endtime ? form.endtime : '请选择' }}</text>
                        <u-icon name="arrow-right" size="14" color="#999999"></u-icon>
                    </view>
                </view>
                <view class="line">
                    <view class="la">发货地</view>
                    <view class="val">
                        <input type="text" placeholder-class="placeholder9" v-model="form.fromRepertoty" />
                    </view>
                </view>
                <view class="line">
                    <view class="la">到货地</view>
                    <view class="val">
                        <input type="text" placeholder-class="placeholder9" v-model="form.toRepertoty" />
                    </view>
                </view>
                <view class="line">
                    <view class="la">省份</view>
                    <view class="val" @click="showPri = true">
                        <text class="mr12" :class="{placeholder9: !form.provinceName}">{{ form.provinceName ? form.provinceName : '请选择' }}</text>
                        <u-icon name="arrow-right" size="14" color="#999999"></u-icon>
                    </view>
                </view>
                <view class="btns">
                    <view class="btn" @click="showModal = false">取消</view>
                    <view class="btn sub" @click="modalSub">提交</view>
                </view>
            </view>
        </u-popup>
        <!--  -->
        <u-datetime-picker :show="showStarttime" v-model="form.starttime" mode="date" @confirm="confirmStart"
            @cancel="showStarttime = false"></u-datetime-picker>
        <u-datetime-picker :show="showEndtime" v-model="form.endtime" mode="date" @confirm="confirmEnd"
            @cancel="showEndtime = false"></u-datetime-picker>
        <u-picker :show="showPri" :columns="provinceList" @cancel="showPri = false" @confirm="confirmPro"></u-picker>
    </view>
</template>
<script>
    import {
        orderListTms
    } from '@/api'
    import dayjs from 'dayjs';
    export default {
        data() {
            return {
                param: {},
                list: [],
                page: 1,
                total: 0,
                showModal: false,
                showStarttime: false,
                showEndtime: false,
                showPri: false,
                form: {},
                provinceList: [
                    [
                        '安徽省', '江苏省', '浙江省', '河北省', '山西省', '北京', '天津', '上海', '重庆', '辽宁省', '吉林省', '黑龙江省', '福建省', '江西省', '山东省',
                        '河南省', '湖北省', '湖南省', '广东省', '海南省', '四川省', '贵州省', '云南省', '陕西省', '甘肃省', '青海省', '台湾省', '内蒙古自治区', '广西壮族自治区',
                        '西藏自治区', '宁夏回族自治区', '新疆维吾尔自治区'
                    ]
                ]
            };
        },
        onLoad(options) {
            this.$set(this.param, 'phoneNumber', options.phone)
            this.$set(this.form, 'starttime', dayjs().format('YYYY/MM/DD'))
            const nextMonth = dayjs().add(1, 'month');
            this.$set(this.form, 'endtime', nextMonth.format('YYYY/MM/DD'))
            this.getList()
        },
        methods: {
            modalSub() {
                this.handleQuery()
                this.showModal = false
            },
            openModal() {
                this.showModal = true
            },
            confirmPro(e) {
                this.$set(this.form, 'provinceName', e.value[0])
                this.showPri = false
            },
            confirmStart(e) {
                this.$nextTick(() => {
                    this.$set(this.form, 'starttime', dayjs(e.value).format('YYYY/MM/DD'))
                })
                this.showStarttime = false
            },
            confirmEnd(e) {
                this.$nextTick(() => {
                    this.$set(this.form, 'endtime', dayjs(e.value).format('YYYY/MM/DD'))
                })
                this.showEndtime = false
            },
            handleQuery() {
                this.getList()
            },
            handleDetail(item) {
                uni.navigateTo({
                    url: '/pages/waybill/waybillDetail?id=' + item.contractNumber
                })
            },
            getList() {
                const {
                    param,
                    form
                } = this
                if(form.contract){
                    form.contractNumber = [form.contract]
                }else{
                    form.contractNumber = null
                }
                orderListTms({
                    ...param,
                    ...form
                }).then(res => {
                    this.list = res.data || []
                    this.total = res.data.total
                })
            }
        }
    }
</script>
<style lang="scss">
    page {
        background: #F7F7F7;
    }
    .head_wrap {
        display: flex;
        align-items: center;
        width: 750rpx;
        background-color: #fff;
        margin: 0 -30rpx;
        padding: 12rpx 30rpx;
        .search_box {
            flex: 1;
            width: 572rpx;
            height: 76rpx;
            background: #F7F7F7;
            border-radius: 38rpx;
            padding-left: 30rpx;
            display: flex;
            align-items: center;
            input {
                flex: 1;
                height: 60rpx;
            }
            .search {
                width: 28rpx;
                height: 28rpx;
                margin-right: 16rpx;
            }
        }
        .right {
            display: flex;
            align-items: center;
            margin-left: 30rpx;
            image {
                width: 28rpx;
                height: 28rpx;
            }
        }
    }
    .main_list {
        background-color: #f7f7f7;
        width: 750rpx;
        margin: 0 -30rpx;
        padding: 24rpx 30rpx;
        height: calc(100vh - 140rpx);
        .item {
            border-radius: 8rpx;
            margin-bottom: 20rpx;
            padding: 0 30rpx;
            background-color: #fff;
            .head {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 0 30rpx;
                width: 690rpx;
                height: 84rpx;
                margin: 0 -30rpx;
                background: linear-gradient(270deg, #FEFEFF 0%, #E1F7FE 100%);
                .code {
                    font-weight: 500;
                    font-size: 32rpx;
                    color: #222222;
                }
                .status {
                    color: $uni-color-primary;
                }
            }
            .content {
                padding: 20rpx 0rpx;
                border-bottom: 1rpx solid #E5E5E5;
                margin-bottom: 20rpx;
                .line {
                    display: flex;
                    margin-bottom: 16rpx;
                    font-size: 26rpx;
                    .la {
                        color: #666666;
                    }
                    .val {}
                    &:nth-last-child(1) {
                        margin-bottom: 0;
                    }
                }
            }
            .footer {
                display: flex;
                justify-content: space-between;
                align-items: center;
                font-size: 26rpx;
                color: #999999;
                padding-bottom: 20rpx;
                .detail {
                    width: 168rpx;
                    height: 60rpx;
                    background: #FFFFFF;
                    border-radius: 30rpx;
                    border: 1rpx solid $uni-color-primary;
                    color: $uni-color-primary;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 26rpx;
                }
            }
        }
    }
    .modal {
        .modal_title {
            height: 112rpx;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 500;
            font-size: 32rpx;
            color: #222222;
        }
        .line {
            display: flex;
            justify-content: space-between;
            align-items: center;
            font-size: 30rpx;
            height: 98rpx;
            padding: 0 28rpx;
            border-bottom: 1rpx solid #E5E5E5;
            .val {
                display: flex;
                justify-content: flex-end;
                flex: 1;
                input {
                    text-align: right;
                    width: 100%;
                }
            }
        }
        .btns {
            display: flex;
            justify-content: space-between;
            padding: 30rpx;
            .btn {
                width: 336rpx;
                height: 88rpx;
                border-radius: 44rpx;
                border: 1rpx solid $uni-color-primary;
                color: $uni-color-primary;
                display: flex;
                justify-content: center;
                align-items: center;
                font-size: 32rpx;
            }
            .sub {
                background-color: $uni-color-primary;
                color: #fff;
            }
        }
    }
</style>
h5/pages/waybill/waybillDetail.vue
@@ -1,47 +1,41 @@
<template>
    <view class="main_app">
        <image src="@/static/driver/wuliuche_bg@2x.png" class="main_bg"></image>
        <view class="form_wrap">
            <view class="item">
                <view class="label">合同编号</view>
        <image class="bg" src="@/static/wuliuche_bg@2x.png" mode="widthFix"></image>
        <view class="info">
            <view class="head">
                <view class="code">{{info.contractNumber}}</view>
                <view class="status">{{info.orderStatus}}</view>
            </view>
            <view class="content">
                <view class="line">
                    <view class="input_wrap"><input v-model="param.aa" placeholder="请输入合同编号" placeholder-class="place" type="text" /></view>
                </view>
            </view>
            <view class="item">
                <view class="label">需方编号</view>
                <view class="line">
                    <view class="input_wrap"><input v-model="param.aa" placeholder="请输入合同中需方编号" placeholder-class="place" type="text" /></view>
                </view>
            </view>
            <view class="item">
                <view class="label">验证码</view>
                <view class="line">
                    <view class="input_wrap"><input v-model="param.aa" placeholder="请输入验证码" placeholder-class="place" type="text" /></view>
                    <image src="" class="auth_code" mode=""></image>
                </view>
            </view>
            <view class="query">查询</view>
        </view>
        <view class="title">查询结果</view>
        <view class="drive_info">
            <view class="title">合同编号</view>
            <view class="line">
                <view class="label">运输车辆</view>
                <view class="val">11</view>
                    <view class="la">发货地</view>
                    <view class="val">{{info.fromRepertoty || '-'}}</view>
            </view>
            <view class="line">
                <view class="label">司机信息</view>
                <view class="val">11</view>
                    <view class="la">到货地</view>
                    <view class="val">{{info.toRepertoty || '-'}}</view>
            </view>
            <view class="line">
                <view class="label">车辆位置</view>
                <view class="val">11</view>
                    <view class="la">车牌号</view>
                    <view class="val">{{info.plateNumber || '-'}}</view>
                </view>
                <view class="line">
                    <view class="la">司机信息</view>
                    <view class="val">{{ '-'}}</view>
                </view>
                <view class="line">
                    <view class="la">车辆位置</view>
                    <view class="val">{{ '-'}}</view>
                </view>
                <view class="line">
                    <view class="la">预计到达</view>
                    <view class="val">{{'-'}}</view>
                </view>
            </view>
        </view>
        <view class="drive_info">
            <view class="title">物流信息</view>
            <view class="item">
<!--             <view class="item">
                <view class="h2">
                    <view class="icon_wrap"><image src="@/static/driver/ic_mostarted.png" class="icon"></image></view>
                    <view class="text">到达卸货地</view>
@@ -64,77 +58,58 @@
                </view>
                <view class="time">202422222222</view>
                <view class="separate"></view>
            </view>
            </view> -->
        </view>
    </view>
</template>
<script>
    import { orderInfoTms } from '@/api'
    export default {
        data() {
            return {
                id: '',
                info: {},
                param: {}
            };
        },
        onLoad(options) {
            this.id = options.id
            this.getDetail()
        },
        methods: {
            getDetail() {
                orderInfoTms({ contractNumber: this.id }).then(res => {
                    this.info = res.data
                })
            },
        }
    }
</script>
<style lang="scss" scoped>
    .form_wrap {
        width: 690rpx;
        height: 646rpx;
        background: #FFFFFF;
        box-shadow: 0rpx 4rpx 20rpx 0rpx rgba(39,155,170,0.16);
        border-radius: 16rpx;
        padding: 10rpx 30rpx;
        margin-bottom: 40rpx;
        .item{
            height: 154rpx;
            padding: 30rpx 0 8rpx;
            border-bottom: 1rpx solid #E5E5E5;
            .label{}
            .line{
                display: flex;
                .input_wrap{
                    padding: 18rpx 0;
                    flex: 1;
                    .place{
                        color: #999999;
                        font-size: 28rpx;
                    }
                }
                .auth_code{
                    width: 160rpx;
                    height: 64rpx;
                    border: 2px solid;
                }
            }
        }
        .query{
            width: 630rpx;
            height: 88rpx;
            background: $uni-color-primary;
            border-radius: 44rpx;
            margin-top: 40rpx;
            color: #fff;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 30rpx;
        }
    page{
        background-color: #f7f7f7;
    }
    .main_app{
        padding-top: 218rpx;
        .title{
            font-weight: 500;
            font-size: 32rpx;
            margin-bottom: 30rpx;
        padding-top: 120rpx;
        .bg{
            width: 750rpx;
            position: absolute;
            left: 0;
            top: 0;
        }
        .drive_info{
            background: #F7F7F7;
            background: #fff;
            border-radius: 16rpx;
            padding: 30rpx;
            margin-bottom: 20rpx;
            .title{
                font-weight: 500;
                font-size: 32rpx;
                color: #222222;
                margin-bottom: 20rpx;
            }
            .line{
                display: flex;
                margin-bottom: 24rpx;
@@ -183,8 +158,8 @@
                }
                .separate{
                    height: calc( 100% );
                    width: 2rpx;
                    border: 2rpx dashed red;
                    width: 1rpx;
                    border: 1rpx dashed #666666;
                    position: absolute;
                    left: 22rpx;
                    top: 24rpx;
@@ -195,6 +170,59 @@
                }
            }
        }
        .info {
            border-radius: 12rpx;
            margin-bottom: 20rpx;
            padding: 0 30rpx;
            background-color: #fff;
            overflow: hidden;
            position: relative;
            z-index: 1;
            .head {
                display: flex;
                justify-content: space-between;
                align-items: center;
                padding: 0 30rpx;
                width: 690rpx;
                height: 84rpx;
                margin: 0 -30rpx;
                background: linear-gradient( 270deg, #FEFEFF 0%, #E1F7FE 100%);
                .code {
                    font-weight: 500;
                    font-size: 32rpx;
                    color: #222222;
                }
                .status {
                    color: $uni-color-primary;
                }
            }
            .content {
                padding: 20rpx 0rpx;
                margin-bottom: 20rpx;
                .line {
                    display: flex;
                    margin-bottom: 16rpx;
                    font-size: 26rpx;
                    .la {
                        color: #666666;
                        width: 140rpx;
                    }
                    .val {}
                    &:nth-last-child(1) {
                        margin-bottom: 0;
                    }
                }
            }
        }
    }
    .main_bg {
        position: absolute;
h5/static/ic_shaixuan@2x.png
h5/static/wuliuche_bg@2x.png

h5/utils/config.js