Browse Source

Merge branch 'master' of http://git.izouma.com/xiongzhu/raex_back into dev-meta

sunkean 3 years ago
parent
commit
cb2e008128

+ 4 - 0
src/main/java/com/izouma/nineth/domain/Company.java

@@ -23,4 +23,8 @@ public class Company extends BaseEntity {
     private boolean disabled;
     private boolean disabled;
 
 
     private String theme;
     private String theme;
+
+    private String bgImg;
+
+    private String bgColor;
 }
 }

+ 6 - 2
src/main/java/com/izouma/nineth/service/AirDropService.java

@@ -98,11 +98,13 @@ public class AirDropService {
                     for (int i = 0; i < target.getNum(); i++) {
                     for (int i = 0; i < target.getNum(); i++) {
                         if (collection.getType() == CollectionType.BLIND_BOX) {
                         if (collection.getType() == CollectionType.BLIND_BOX) {
                             BlindBoxItem winItem = collectionService.draw(target.getUserId(), collection.getId());
                             BlindBoxItem winItem = collectionService.draw(target.getUserId(), collection.getId());
+                            Collection winCollection = collectionRepo.findById(winItem.getCollectionId())
+                                    .orElseThrow(new BusinessException("藏品不存在"));
                             if (record.isSimulateOrder()) {
                             if (record.isSimulateOrder()) {
                                 assetService.createAsset(winItem, user, 0L, collection.getPrice(), "出售",
                                 assetService.createAsset(winItem, user, 0L, collection.getPrice(), "出售",
                                         winItem.getTotal() > 1 ?
                                         winItem.getTotal() > 1 ?
                                                 collectionService.getNextNumber(winItem.getCollectionId()) : null,
                                                 collectionService.getNextNumber(winItem.getCollectionId()) : null,
-                                        collection.getHoldDays(), false);
+                                        winCollection.getHoldDays(), false);
                             } else {
                             } else {
                                 //查看有无vip权限
                                 //查看有无vip权限
                                 CollectionPrivilege collectionPrivilege = collectionPrivilegeRepo
                                 CollectionPrivilege collectionPrivilege = collectionPrivilegeRepo
@@ -187,8 +189,10 @@ public class AirDropService {
                 Asset asset;
                 Asset asset;
                 if (collection.getType() == CollectionType.BLIND_BOX) {
                 if (collection.getType() == CollectionType.BLIND_BOX) {
                     BlindBoxItem winItem = collectionService.draw(userId, collection.getId());
                     BlindBoxItem winItem = collectionService.draw(userId, collection.getId());
+                    Collection winCollection = collectionRepo.findById(winItem.getCollectionId())
+                            .orElseThrow(new BusinessException("藏品不存在"));
                     asset = assetService.createAsset(winItem, user, 0L, collection.getPrice(), "出售",
                     asset = assetService.createAsset(winItem, user, 0L, collection.getPrice(), "出售",
-                            collectionService.getNextNumber(winItem), collection.getHoldDays(), true);
+                            collectionService.getNextNumber(winItem), winCollection.getHoldDays(), true);
                 } else {
                 } else {
                     asset = assetService.createAsset(collection, user, 0L, collection.getPrice(), "出售",
                     asset = assetService.createAsset(collection, user, 0L, collection.getPrice(), "出售",
                             collectionService.getNextNumber(collection), true);
                             collectionService.getNextNumber(collection), true);

+ 2 - 2
src/main/java/com/izouma/nineth/service/OrderService.java

@@ -675,10 +675,10 @@ public class OrderService {
                             userRepo.updateVipPurchase(order.getUserId(), 1);
                             userRepo.updateVipPurchase(order.getUserId(), 1);
                         }
                         }
                     }
                     }
-
+                    Collection winCollection = collectionRepo.findById(winItem.getCollectionId()).orElseThrow(new BusinessException("藏品不存在"));
                     assetService.createAsset(winItem, user, order.getId(), order.getPrice(), "出售",
                     assetService.createAsset(winItem, user, order.getId(), order.getPrice(), "出售",
                             winItem.getTotal() > 1 ? collectionService.getNextNumber(winItem.getCollectionId()) : null,
                             winItem.getTotal() > 1 ? collectionService.getNextNumber(winItem.getCollectionId()) : null,
-                            collection.getHoldDays(), false);
+                            winCollection.getHoldDays(), false);
 
 
 
 
                 } else {
                 } else {

+ 14 - 0
src/main/vue/src/assets/svgs/login_icon_code.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>login_icon_mima</title>
+    <g id="H5" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
+        <g id="验证码登录—01" transform="translate(-61.000000, -262.000000)" stroke="#FFFFFF" stroke-width="1.4">
+            <g id="编组-9" transform="translate(45.000000, 195.000000)">
+                <g id="编组-7" transform="translate(16.000000, 67.000000)">
+                    <path d="M4.40886423,4.84667591 L12,2 L12,2 L19.5911358,4.84667591 C20.3717432,5.13940371 20.8888889,5.88564515 20.8888889,6.71933427 L20.8888889,12 C20.8888889,16.010046 18.4014174,19.5994685 14.6466944,21.0074896 L12,22 L12,22 L9.35330563,21.0074896 C5.59858258,19.5994685 3.11111111,16.010046 3.11111111,12 L3.11111111,6.71933427 C3.11111111,5.88564515 3.62825678,5.13940371 4.40886423,4.84667591 Z" id="矩形"></path>
+                    <polyline id="直线" points="8.9096665 10.8801592 10.5763332 13.3801592 15.5763332 10.0468259"></polyline>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 18 - 0
src/main/vue/src/assets/svgs/login_icon_mima.svg

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>login_icon_mima</title>
+    <g id="H5" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round">
+        <g id="账号密码登录-01" transform="translate(-61.000000, -262.000000)" stroke="#FFFFFF" stroke-width="1.4">
+            <g id="编组-9" transform="translate(45.000000, 195.000000)">
+                <g id="编组-11备份-11" transform="translate(16.000000, 67.000000)">
+                    <g id="编组-4" transform="translate(3.500000, 2.000000)">
+                        <path d="M2,9.06666667 L15,9.06666667 C16.1045695,9.06666667 17,9.96209717 17,11.0666667 L17,18.4 C17,19.5045695 16.1045695,20.4 15,20.4 L2,20.4 C0.8954305,20.4 8.94280938e-16,19.5045695 0,18.4 L0,11.0666667 C-3.57315355e-16,9.96209717 0.8954305,9.06666667 2,9.06666667 Z" id="矩形"></path>
+                        <line x1="5.1" y1="13.0333333" x2="5.1" y2="16.4333333" id="直线"></line>
+                        <line x1="11.9" y1="13.0333333" x2="11.9" y2="16.4333333" id="直线备份"></line>
+                        <path d="M13.6,3.4 L13.6,3.96666667 C13.6,6.78331889 11.3166522,9.06666667 8.5,9.06666667 C5.68334778,9.06666667 3.4,6.78331889 3.4,3.96666667 C3.4,3.4 3.4,2.83333333 3.4,2.26666667 C3.4,2.26666667 3.4,1.88888889 3.4,1.13333333 L3.4,0" id="路径" transform="translate(8.500000, 4.533333) scale(1, -1) translate(-8.500000, -4.533333) "></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 16 - 0
src/main/vue/src/assets/svgs/login_icon_yao qingma.svg

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>login_icon_yao qingma</title>
+    <g id="H5" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round">
+        <g id="用户注册-01" transform="translate(-61.000000, -407.000000)" stroke="#FFFFFF" stroke-width="1.4">
+            <g id="编组-9" transform="translate(45.000000, 195.000000)">
+                <g id="编组-11备份-16" transform="translate(16.000000, 212.000000)">
+                    <g id="编组" transform="translate(2.662666, 2.446072)">
+                        <polyline id="路径-2" stroke-linejoin="round" points="17.2744252 0.530988633 5.20346147 13.1846547 5.20346147 18"></polyline>
+                        <path d="M3.51424038,11.4803669 L0.622484307,10.0361728 C0.066732791,9.75862063 -0.158792364,9.08309455 0.118759773,8.52734304 C0.232049121,8.30050015 0.418660915,8.11859003 0.648320223,8.01112481 L16.2852366,0.106286721 C16.8478882,-0.156996634 17.5174408,0.0856892707 17.7807241,0.64834086 C17.860915,0.819713359 17.8965796,1.00854578 17.8844171,1.19736099 L16.2524624,16.0965247 C16.2125303,16.7164443 15.6776148,17.1866171 15.0576951,17.146685 C14.9079649,17.1370402 14.7616776,17.097536 14.627446,17.0304984 L9.20998317,14.3249216" id="路径"></path>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 20 - 0
src/main/vue/src/assets/svgs/login_icon_zhanghao.svg

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>login_icon_zhanghao</title>
+    <g id="H5" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="账号密码登录-01" transform="translate(-61.000000, -213.000000)" stroke="#FFFFFF" stroke-width="1.4">
+            <g id="编组-9" transform="translate(45.000000, 195.000000)">
+                <g id="编组-11备份-12" transform="translate(16.000000, 16.000000)">
+                    <g id="编组-6" transform="translate(0.000000, 2.000000)">
+                        <path d="M11.8494862,9.25096392 C12.489192,9.25096392 13.0683369,9.51025591 13.4875553,9.92947434 C13.9067737,10.3486928 14.1660657,10.9278377 14.1660657,11.5675434 C14.1660657,12.2072492 13.9067737,12.7863941 13.4875553,13.2056125 C13.0683369,13.6248309 12.489192,13.8841229 11.8494862,13.8841229 C11.2097805,13.8841229 10.6306356,13.6248309 10.2114171,13.2056125 C9.79219871,12.7863941 9.53290671,12.2072492 9.53290671,11.5675434 C9.53290671,10.9278377 9.79219871,10.3486928 10.2114171,9.92947434 C10.6306356,9.51025591 11.2097805,9.25096392 11.8494862,9.25096392 Z" id="椭圆形" transform="translate(11.849486, 11.567543) rotate(5.000000) translate(-11.849486, -11.567543) "></path>
+                        <path d="M19.9138547,15.6893633 C20.3368515,14.7696871 20.5727354,13.7461465 20.5727354,12.6675122 C20.5727354,10.475382 19.5984583,8.51080632 18.0592935,7.18317458" id="路径" stroke-linejoin="round" transform="translate(19.316014, 11.436269) rotate(5.000000) translate(-19.316014, -11.436269) "></path>
+                        <rect id="矩形" x="2.83159827" y="19.6906567" width="18.7795588" height="3.08434641" rx="1.5421732"></rect>
+                        <path d="M19.8571184,5.48257944 C18.0067606,3.33255748 15.2655942,1.97113125 12.2064497,1.97113125 C6.63401837,1.97113125 2.11667026,6.48847937 2.11667026,12.0609107 C2.11667026,15.0424029 3.85080359,18.266989 5.90687169,20.1140943 M19.7147375,18.8011694 C20.5185786,17.9063266 21.1647649,16.8669949 21.6095833,15.7268876" id="形状" stroke-linecap="round" stroke-linejoin="round" transform="translate(11.863127, 11.042613) rotate(5.000000) translate(-11.863127, -11.042613) "></path>
+                        <line x1="21.3506284" y1="16.7231563" x2="14.154184" y2="12.6887744" id="路径"></line>
+                        <line x1="13.7923423" y1="10.3706389" x2="20.3112877" y2="6.20045932" id="路径"></line>
+                    </g>
+                </g>
+            </g>
+        </g>
+    </g>
+</svg>

+ 5 - 4
src/main/vue/src/components/phone/Home.vue

@@ -160,8 +160,7 @@ export default {
             riskShow: false,
             riskShow: false,
             activeIndex: 0,
             activeIndex: 0,
             isLoading: false,
             isLoading: false,
-            mySwiper: null,
-            companyInfo: {}
+            mySwiper: null
         };
         };
     },
     },
     watch: {
     watch: {
@@ -256,7 +255,9 @@ export default {
                 .then(res => {
                 .then(res => {
                     this.banners = res.content;
                     this.banners = res.content;
                     this.$nextTick(() => {
                     this.$nextTick(() => {
-                        this.mySwiper.update();
+                        if (this.mySwiper) {
+                            this.mySwiper.update();
+                        }
                     });
                     });
                     return Promise.resolve();
                     return Promise.resolve();
                 });
                 });
@@ -366,7 +367,7 @@ export default {
 }
 }
 .theme3-bg {
 .theme3-bg {
     width: 100%;
     width: 100%;
-    position: fixed;
+    position: absolute;
     top: 0;
     top: 0;
     left: 0;
     left: 0;
     height: auto;
     height: auto;

+ 278 - 0
src/main/vue/src/components/phone/Login.vue

@@ -0,0 +1,278 @@
+<template>
+    <div
+        class="login"
+        :style="{
+            backgroundImage: `url(${bgImg})`
+        }"
+    >
+        <!-- <img class="logo" v-if="active === 'phone'" src="../../assets/lvzhopu-logo.png" alt="" />
+        <img class="logo" v-else src="../../assets/lvzhopu-logo2.png" alt="" /> -->
+        <div class="tabs">
+            <div class="tab" :class="{ active: active === 'phone' }">账号密码登陆</div>
+            <div class="tab" :class="{ active: active === 'code' }">验证码登陆</div>
+        </div>
+
+        <van-form ref="form" v-if="active === 'phone'">
+            <div class="field-box">
+                <van-field placeholder="Account" v-model="form.phone" readonly>
+                    <template #left-icon>
+                        <img :src="require('../../assets/svgs/login_icon_zhanghao.svg')" class="icon" />
+                    </template>
+                </van-field>
+                <van-field
+                    placeholder="Password"
+                    v-model="form.password"
+                    readonly
+                    :rules="[{ required: true, message: '请填写密码' }]"
+                >
+                    <template #left-icon>
+                        <img :src="require('../../assets/svgs/login_icon_mima.svg')" class="icon" />
+                    </template>
+                </van-field>
+            </div>
+
+            <div class="button">
+                <!-- <van-button plain class="forget" v-if="$store.state.review" @click="getSim"> 获取手机号码 </van-button> -->
+
+                <van-button block native-type="submit" type="primary" class="sure">现在出发!</van-button>
+                <van-button
+                    class="del"
+                    block
+                    plain
+                    @click="$router.replace('/' + $route.params.companyId + '/register')"
+                    >暂无登陆许可 立即申领</van-button
+                >
+            </div>
+        </van-form>
+
+        <van-form ref="code" v-else>
+            <div class="field-box">
+                <van-field type="tel" name="手机号码" placeholder="Account" v-model="form.phone">
+                    <template #left-icon>
+                        <img :src="require('../../assets/svgs/login_icon_zhanghao.svg')" class="icon" />
+                    </template>
+                </van-field>
+
+                <van-field
+                    type="code"
+                    name="验证码"
+                    placeholder="Verify"
+                    v-model="form.code"
+                    :rules="[{ required: true, message: '请输入验证码' }]"
+                >
+                    <template #left-icon>
+                        <img :src="require('../../assets/svgs/login_icon_code.svg')" class="icon" />
+                    </template>
+                    <template #button>
+                        <van-button class="sub-code" size="small" plain>
+                            {{ isSend ? `已发送(${sendNum})S` : '发送验证码' }}
+                        </van-button>
+                    </template>
+                </van-field>
+            </div>
+            <div class="button">
+                <!-- <van-button plain class="forget" @click="$router.replace('/forget')">
+          忘记密码?
+        </van-button> -->
+
+                <van-button block native-type="submit" type="primary" class="sure">现在出发!</van-button>
+                <van-button class="del" block plain>暂无登陆许可 立即申领</van-button>
+            </div>
+        </van-form>
+
+        <div class="xieyi">
+            <van-checkbox v-model="checked" disabled>
+                已阅读并同意
+                <span>
+                    《用户服务协议》
+                </span>
+                和
+                <span> 《平台隐私协议》 </span>
+            </van-checkbox>
+        </div>
+    </div>
+</template>
+
+<script>
+export default {
+    name:'phone',
+    props: {
+        theme: {
+            type: String,
+            default: 'theme2'
+        },
+        companyInfo: {
+            type: Object,
+            default: () => {
+                return {};
+            }
+        }
+    },
+    data() {
+        return {
+            active: 'phone',
+            form: {
+                phone: '',
+                password: '',
+                code: ''
+            },
+            checked: localStorage.getItem('agreeTerm') === 'true'
+        };
+    },
+    computed: {
+        bgImg() {
+            return this.companyInfo.bgImg || 'https://cdn.raex.vip/image/2022-09-26-17-25-55tpfNbWbJ.png';
+        }
+    }
+};
+</script>
+
+<style lang="less" scoped>
+.login {
+    width: 100%;
+    padding: 40px 50px 100px;
+    background-repeat: no-repeat;
+    background-size: cover;
+    background-position: center bottom;
+    box-sizing: border-box;
+    overflow-y: auto;
+    max-height: 720px;
+    height: 720px;
+}
+/deep/.van-cell {
+    background-color: transparent;
+}
+/deep/input:-webkit-autofill {
+    box-shadow: 0 0 0px 1000px #101010 inset;
+    -webkit-text-fill-color: #898989;
+}
+/deep/.van-field__control {
+    color: #fff;
+    font-size: 14px;
+}
+.logo {
+    width: 94px;
+    height: 16px;
+    display: block;
+    margin-bottom: 2px;
+}
+.tabs {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding-right: 10px;
+    .tab {
+        font-size: 16px;
+        color: #c8c9cc;
+        line-height: 30px;
+
+        &.active {
+            font-size: 20px;
+            font-weight: bold;
+            color: var(--prim);
+            line-height: 30px;
+        }
+    }
+}
+
+/deep/.field-box {
+    background: #101010;
+    box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.5);
+    border-radius: 12px;
+    .van-cell:after {
+        left: 56px;
+        right: 16px;
+        border: none;
+        height: 1px;
+        background: rgba(137, 137, 137, 0.3);
+    }
+    .van-cell + .van-cell {
+        margin-top: 0 !important;
+    }
+}
+
+.icon {
+    display: block;
+    margin-top: 16px;
+}
+/deep/ .van-form {
+    margin-top: 28px;
+    .van-cell {
+        padding: 0px 16px;
+
+        .van-field__left-icon {
+            margin-right: 16px;
+        }
+    }
+
+    .van-cell + .van-cell {
+        margin-top: 20px;
+    }
+    .van-field__body {
+        height: 56px;
+        align-items: center;
+    }
+}
+.button {
+    margin-top: 60px;
+    position: relative;
+
+    .del {
+        margin-top: 20px;
+        border-color: #ffffff;
+        color: #ffffff;
+        background-color: #101010;
+    }
+
+    .sure {
+        color: #000000 !important;
+    }
+
+    .van-button {
+        font-weight: bold;
+        border-radius: 12px;
+    }
+}
+
+.sub-code {
+    padding-right: 0;
+    border-width: 0;
+    color: var(--prim);
+}
+
+.forget {
+    position: absolute;
+    font-weight: normal !important;
+    right: 0;
+    top: -65px;
+}
+.xieyi {
+    .flex();
+    justify-content: center;
+    margin-top: 50px;
+    font-size: 12px;
+
+    color: #fff;
+    span {
+        color: var(--prim);
+    }
+}
+.van-checkbox {
+    background-color: #101010;
+    padding: 5px 10px;
+    border-radius: 12px;
+}
+/deep/.van-checkbox__label {
+    color: #fff;
+}
+
+/deep/.van-checkbox__icon--checked .van-icon {
+    background: var(--prim);
+    border-width: 0;
+}
+
+.van-button--primary {
+    background-color: var(--prim);
+    border-color: var(--prim);
+}
+</style>

+ 8 - 2
src/main/vue/src/components/phone/module.vue

@@ -1,7 +1,8 @@
 <template>
 <template>
     <div class="module">
     <div class="module">
         <div class="phone" :class="[theme]">
         <div class="phone" :class="[theme]">
-            <phone-home :theme="theme" :companyInfo="companyInfo"></phone-home>
+            <phone-home v-if="page === 'home'" :theme="theme" :companyInfo="companyInfo"></phone-home>
+            <phone-login v-else-if="page === 'login'" :theme="theme" :companyInfo="companyInfo"></phone-login>
         </div>
         </div>
         <div class="phone-bg">
         <div class="phone-bg">
             <div class="bg" :style="{ backgroundImage: `url(${require('../../assets/phone.png')})` }"></div>
             <div class="bg" :style="{ backgroundImage: `url(${require('../../assets/phone.png')})` }"></div>
@@ -11,6 +12,7 @@
 
 
 <script>
 <script>
 import phoneHome from './Home.vue';
 import phoneHome from './Home.vue';
+import phoneLogin from './Login.vue';
 export default {
 export default {
     props: {
     props: {
         theme: {
         theme: {
@@ -22,9 +24,13 @@ export default {
             default: () => {
             default: () => {
                 return {};
                 return {};
             }
             }
+        },
+        page: {
+            type: String,
+            default: 'home'
         }
         }
     },
     },
-    components: { phoneHome }
+    components: { phoneHome, phoneLogin }
 };
 };
 </script>
 </script>
 
 

+ 66 - 30
src/main/vue/src/views/company/CompanyTheme.vue

@@ -7,37 +7,64 @@
         </page-title>
         </page-title>
         <div class="edit-view__content-wrapper">
         <div class="edit-view__content-wrapper">
             <div class="edit-view__content-section">
             <div class="edit-view__content-section">
-                <el-form
-                    :model="formData"
-                    :rules="rules"
-                    ref="form"
-                    label-width="125px"
-                    label-position="right"
-                    size="small"
-                    style="max-width: 750px"
-                >
-                    <el-form-item prop="logo" label="LOGO">
-                        <single-upload v-model="formData.logo"></single-upload>
-                    </el-form-item>
-                    <el-form-item label="选择主题">
-                        <el-radio-group v-model="formData.theme">
-                            <el-radio :label="item.value" v-for="(item, index) in themeOptions" :key="index">
-                                {{ item.label }}
-                            </el-radio>
-                        </el-radio-group>
-                    </el-form-item>
+                <el-tabs type="border-card" v-model="page">
+                    <el-tab-pane label="首页" name="home">
+                        <el-form
+                            :model="formData"
+                            :rules="rules"
+                            ref="form"
+                            label-width="125px"
+                            label-position="right"
+                            size="small"
+                            style="max-width: 750px"
+                        >
+                            <el-form-item prop="logo" label="LOGO">
+                                <single-upload v-model="formData.logo"></single-upload>
+                            </el-form-item>
+                            <el-form-item label="选择主题">
+                                <el-radio-group v-model="formData.theme">
+                                    <el-radio :label="item.value" v-for="(item, index) in themeOptions" :key="index">
+                                        {{ item.label }}
+                                    </el-radio>
+                                </el-radio-group>
+                            </el-form-item>
 
 
-                    <el-form-item class="form-submit">
-                        <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
-                        <!-- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
+                            <el-form-item class="form-submit">
+                                <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
+                                <!-- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
                             删除
                             删除
                         </el-button> -->
                         </el-button> -->
-                        <el-button @click="$router.go(-1)" :disabled="saving">取消</el-button>
-                    </el-form-item>
-                </el-form>
+                                <el-button @click="$router.go(-1)" :disabled="saving">取消</el-button>
+                            </el-form-item>
+                        </el-form>
+                    </el-tab-pane>
+                    <el-tab-pane label="登录页" name="login">
+                        <el-form
+                            :model="formData"
+                            :rules="rules"
+                            ref="form"
+                            label-width="125px"
+                            label-position="right"
+                            size="small"
+                            style="max-width: 750px"
+                        >
+                            <el-form-item prop="bgImg" label="背景图">
+                                <single-upload v-model="formData.bgImg"></single-upload>
+                            </el-form-item>
+
+                            <el-form-item class="form-submit">
+                                <el-button @click="onSave" :loading="saving" type="primary"> 保存 </el-button>
+                                <!-- <el-button @click="onDelete" :disabled="saving" type="danger" v-if="formData.id">
+                            删除
+                        </el-button> -->
+                                <el-button @click="$router.go(-1)" :disabled="saving">取消</el-button>
+                            </el-form-item>
+                        </el-form>
+                    </el-tab-pane>
+                </el-tabs>
 
 
                 <div class="phone">
                 <div class="phone">
-                    <phone-module :theme="formData.theme" :companyInfo="formData"></phone-module>
+                    <phone-module :theme="formData.theme" :page="page" :companyInfo="formData"></phone-module>
                 </div>
                 </div>
             </div>
             </div>
             <el-dialog title="添加藏品" :visible.sync="showCollectionDialog" width="500px">
             <el-dialog title="添加藏品" :visible.sync="showCollectionDialog" width="500px">
@@ -88,6 +115,7 @@ export default {
             if (res.theme) {
             if (res.theme) {
                 this.formData.theme = res.theme;
                 this.formData.theme = res.theme;
                 this.formData.logo = res.logo;
                 this.formData.logo = res.logo;
+                this.formData.bgImg = res.bgImg;
             }
             }
         });
         });
     },
     },
@@ -96,7 +124,8 @@ export default {
             saving: false,
             saving: false,
             formData: {
             formData: {
                 theme: 'theme1',
                 theme: 'theme1',
-                logo: ''
+                logo: '',
+                bgImg: ''
             },
             },
             rules: {},
             rules: {},
             themeOptions: [
             themeOptions: [
@@ -112,7 +141,8 @@ export default {
             collectionId: '',
             collectionId: '',
             showBoxDialog: false,
             showBoxDialog: false,
             boxId: '',
             boxId: '',
-            collectionSize: 0
+            collectionSize: 0,
+            page: 'home'
         };
         };
     },
     },
     computed: {
     computed: {
@@ -123,7 +153,12 @@ export default {
             this.$http
             this.$http
                 .post(
                 .post(
                     '/company/save',
                     '/company/save',
-                    { id: this.companyId, theme: this.formData.theme, logo: this.formData.logo },
+                    {
+                        id: this.companyId,
+                        theme: this.formData.theme,
+                        logo: this.formData.logo,
+                        bgImg: this.formData.bgImg
+                    },
                     { body: 'json' }
                     { body: 'json' }
                 )
                 )
                 .then(res => {
                 .then(res => {
@@ -279,7 +314,8 @@ export default {
         justify-content: center;
         justify-content: center;
         // padding: 20px 0;
         // padding: 20px 0;
     }
     }
-    .el-form {
+
+    .el-tabs {
         flex-grow: 1;
         flex-grow: 1;
     }
     }
 }
 }