Browse Source

feat:'移动端适配'

shenchunlv 2 years ago
parent
commit
1da4df47db
7 changed files with 1100 additions and 340 deletions
  1. 1 0
      nuxt.config.js
  2. 58 0
      package-lock.json
  3. 1 0
      package.json
  4. 396 2
      pages/user/m_user.vue
  5. 5 0
      plugins/vant-ui.js
  6. 301 0
      static/m_index.less
  7. 338 338
      yarn.lock

+ 1 - 0
nuxt.config.js

@@ -24,6 +24,7 @@ export default {
   // Plugins to run before rendering page: https://go.nuxtjs.dev/config-plugins
   plugins: [
     '@/plugins/antd-ui',
+    '@/plugins/vant-ui'
   ],
 
   // Auto import components: https://go.nuxtjs.dev/config-components

+ 58 - 0
package-lock.json

@@ -13,6 +13,7 @@
         "less": "^4.1.3",
         "less-loader": "^7.0.0",
         "nuxt": "^2.15.8",
+        "vant": "^2.12.54",
         "vue": "^2.7.10",
         "vue-server-renderer": "^2.7.10",
         "vue-template-compiler": "^2.7.10"
@@ -3410,6 +3411,16 @@
         "node": ">= 8"
       }
     },
+    "node_modules/@vant/icons": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz",
+      "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg=="
+    },
+    "node_modules/@vant/popperjs": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
+      "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
+    },
     "node_modules/@vue/babel-helper-vue-jsx-merge-props": {
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
@@ -13704,6 +13715,21 @@
         "node": ">= 0.4.0"
       }
     },
+    "node_modules/vant": {
+      "version": "2.12.54",
+      "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.54.tgz",
+      "integrity": "sha512-t7DCiLxNosDrg0Jm5EY9p0A5cAMo5OadmizbYtPEc0ru+OJKEa3kcfxtKIK5on7ZPqoOkyYJt8e6BQ1VDMPsrg==",
+      "dependencies": {
+        "@babel/runtime": "7.x",
+        "@vant/icons": "^1.7.1",
+        "@vant/popperjs": "^1.1.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "vue-lazyload": "1.2.3"
+      },
+      "peerDependencies": {
+        "vue": ">= 2.6.0"
+      }
+    },
     "node_modules/vary": {
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@@ -13741,6 +13767,11 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "license": "MIT"
     },
+    "node_modules/vue-lazyload": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
+      "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
+    },
     "node_modules/vue-loader": {
       "version": "15.10.1",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz",
@@ -16977,6 +17008,16 @@
         }
       }
     },
+    "@vant/icons": {
+      "version": "1.8.0",
+      "resolved": "https://registry.npmmirror.com/@vant/icons/-/icons-1.8.0.tgz",
+      "integrity": "sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg=="
+    },
+    "@vant/popperjs": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/@vant/popperjs/-/popperjs-1.3.0.tgz",
+      "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
+    },
     "@vue/babel-helper-vue-jsx-merge-props": {
       "version": "1.4.0",
       "resolved": "https://registry.npmmirror.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
@@ -23992,6 +24033,18 @@
       "resolved": "https://registry.npmmirror.com/utils-merge/-/utils-merge-1.0.1.tgz",
       "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
     },
+    "vant": {
+      "version": "2.12.54",
+      "resolved": "https://registry.npmmirror.com/vant/-/vant-2.12.54.tgz",
+      "integrity": "sha512-t7DCiLxNosDrg0Jm5EY9p0A5cAMo5OadmizbYtPEc0ru+OJKEa3kcfxtKIK5on7ZPqoOkyYJt8e6BQ1VDMPsrg==",
+      "requires": {
+        "@babel/runtime": "7.x",
+        "@vant/icons": "^1.7.1",
+        "@vant/popperjs": "^1.1.0",
+        "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
+        "vue-lazyload": "1.2.3"
+      }
+    },
     "vary": {
       "version": "1.1.2",
       "resolved": "https://registry.npmmirror.com/vary/-/vary-1.1.2.tgz",
@@ -24021,6 +24074,11 @@
       "resolved": "https://registry.npmmirror.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz",
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog=="
     },
+    "vue-lazyload": {
+      "version": "1.2.3",
+      "resolved": "https://registry.npmmirror.com/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
+      "integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
+    },
     "vue-loader": {
       "version": "15.10.1",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-15.10.1.tgz",

+ 1 - 0
package.json

@@ -14,6 +14,7 @@
     "less": "^4.1.3",
     "less-loader": "^7.0.0",
     "nuxt": "^2.15.8",
+    "vant": "^2.12.54",
     "vue": "^2.7.10",
     "vue-server-renderer": "^2.7.10",
     "vue-template-compiler": "^2.7.10"

+ 396 - 2
pages/user/m_user.vue

@@ -1,3 +1,397 @@
 <template>
-  <h1>移动端</h1> 
- </template>
+  <div class="home">
+    <!-- <img class="home-back" src={require('../../assets/img_home.png')} /> -->
+    <a-modal v-model="amodal" title="申请试用" on-ok="handleOk" centered @afterClose="fouse" destroyOnClose>
+      <template slot="footer">
+        <div class="sub">
+          <a-button key="submit" type="primary" @click="handleSubmit">
+            立即提交
+          </a-button>
+        </div>
+      </template>
+      <a-form :form="form" :label-col="{ span: 5 }" :wrapper-col="{ span: 50 }" @submit="handleSubmit">
+        <a-form-item label="CompanyName">
+          <!-- 公司名称 -->
+          <a-input v-decorator="['companyName', { rules: [{ required: true, message: '请输入您的公司名称' }] }]"
+            v-model="customer.companyName" placeholder="请输入您的公司名称*">
+            <img src="../../static/image/img_home_modal_0.png" class="w-15 h-15" slot="prefix" alt="">
+          </a-input>
+        </a-form-item>
+        <a-form-item label="City">
+          <!-- 选择所在城市 -->
+          <a-input v-decorator="['city', { rules: [{ required: true, message: '请输入所在城市' }] }]" v-model="customer.city"
+            placeholder="请输入所在城市*">
+            <!-- <a-icon slot="prefix" type="bank" /> -->
+            <img src="../../static/image/img_home_modal_1.png" class="w-15 h-15" slot="prefix" alt="">
+          </a-input>
+        </a-form-item>
+        <a-form-item label="CustomName">
+          <!-- 姓名 -->
+          <a-input v-decorator="['customName', { rules: [{ required: true, message: '请输入您的姓名' }] }]"
+            v-model="customer.customName" placeholder="请输入您的姓名*">
+            <!-- <a-icon slot="prefix" type="UserOutlined" /> -->
+            <img src="../../static/image/img_home_modal_2.png" class="w-15 h-15" slot="prefix" alt="">
+          </a-input>
+        </a-form-item>
+        <a-form-item label="Phone">
+          <!-- 手机号 -->
+          <a-input v-decorator="['phone', { rules: [{ required: true, message: '请输入您的联系方式' }] }]" v-model="customer.phone"
+            placeholder="请输入您的联系方式*">
+            <!-- <a-icon slot="prefix" type="phone" /> -->
+            <img src="../../static/image/img_home_modal_3.png" class="w-15 h-15" slot="prefix" alt="">
+          </a-input>
+        </a-form-item>
+        <!-- 验证码 -->
+        <a-form-item label="VerifyCode">
+          <a-input v-decorator="['verifyCode', { rules: [{ required: true, message: '请输入验证码' }] }]" placeholder="输入验证码"
+            v-model="customer.verifyCode" size="large">
+            <img src="../../static/image/img_home_modal_4.png" class="w-15 h-15" slot="prefix" alt="">
+            <div slot="suffix" style="cursor: pointer; color: #1890ff;" @click="verifyCodeFn">
+              {{ countdown == 0 ? '获取验证码' : countdown }}
+            </div>
+          </a-input>
+        </a-form-item>
+      </a-form>
+    </a-modal>
+    <img src="../../static/image/img_home.png" class="home-back" style="cursor: pointer;" alt="" @click="amodalFn">
+    <div class="home-qa">
+      <div class="home-title">为什么选择惠融易客</div>
+      <div class="home-title-sub">
+        与传统方式相比较,惠融易客的优势又都有哪些?
+      </div>
+      <div class="m-content">
+        <div class="home-qa-img-row">
+          <div class="container">
+            <div v-for="(p, i) in homeList0" :key="i" class="container-row">
+              <div class='home-qa-img-row-item'>
+                <img :src="require('../../static/image/img_home_qs_0_' + i + '.png')" alt="">
+                <div class="home-qa-img-row-item-absolute">
+                  <div class="home-qa-img-row-item-absolute-title">
+                    {{ p.title }}
+                  </div>
+                  <div class="home-qa-img-row-item-absolute-subtitle yc-4">
+                    {{ p.content }}
+                  </div>
+                </div>
+              </div>
+              <!-- </a-col>
+          </a-row> -->
+            </div>
+          </div>
+        </div>
+        <div class="home-qa-img-row">
+          <div class="container">
+            <div v-for="(p, i) in homeList1" :key="i" class="container-row">
+              <div class='home-qa-img-row-item'>
+                <img :src="require('../../static/image/img_home_qs_1_' + i + '.png')" alt="">
+                <div class="home-qa-img-row-item-absolute">
+                  <div class="home-qa-img-row-item-absolute-title">
+                    <span>0{{ i + 1 }}</span> {{ p.title }}
+                  </div>
+                  <div class="home-qa-img-row-item-absolute-subtitle yc-4">
+                    {{ p.content }}
+                  </div>
+                </div>
+              </div>
+              <!-- </a-col>
+          </a-row> -->
+            </div>
+          </div>
+        </div>
+      </div>
+
+    </div>
+    <div class="home-ad">
+      <div>
+        <div class="home-title">精准获客</div>
+        <div class="home-title-sub">
+          多渠道投放对接,帮助企业搭建推广产品矩阵
+        </div>
+        <div class="home-ad-row">
+          <div v-for="(index, i) in 6" :key="i" class="home-row-single">
+            <img :src="require('../../static/image/img_home_ad_' + i + '.png')" alt="">
+          </div>
+
+        </div>
+      </div>
+    </div>
+    <div class="home-static">
+      <div class="home-content">
+        <div class="home-title">免费试用</div>
+        <div class="home-title-sub">
+          立即免费试用惠融易客CRM 提升企业业绩
+        </div>
+        <div class="home-ad-free">
+          <div class="home-static-title">
+            已加入
+          </div>
+          <div v-for="(index, i) in freeList" :key="i" class="home-row-single">
+            <div class="home-static-num">
+              <div class="home-static-num-wrap">{{ index }}</div>
+            </div>
+          </div>
+          <div class="home-static-title">人</div>
+        </div>
+        <div style="text-align: center">
+          <a-button class="home-static-btn" shape="round" @click="amodalFn">立即申请试用</a-button>
+        </div>
+      </div>
+    </div>
+    <div class="home-qa">
+      <div class="home-content">
+        <div class="home-title">咨询信息</div>
+        <div class="home-title-sub" @click="amodalFn">
+          点击了解惠融易客的更多信息
+        </div>
+        <div class="home-ad-xw" v-if="homeList3[0]">
+          <div class="ad-free-img">
+            <img v-if="activeKey" :src="homeList3[activeKey].images" style="width:100%;height: 100%;" alt="">
+            <img v-else :src="homeList3[0].images" style="width:100%;height: 100%;" alt="">
+
+          </div>
+          <div class="ad-free-content">
+            <a-collapse v-model="activeKey" accordion @change="collapseChange">
+              <a-collapse-panel key="0" :header="homeList3[0].title" :showArrow="false">
+                <div class="add-title yc-3">
+                  {{ homeList3[0].summary }}
+                </div>
+                <a-button type="primary" style="margin-top: 5px;" @click="btnContent(homeList3[0])">
+                  查看详情
+                </a-button>
+              </a-collapse-panel>
+              <template v-for="(item, index) in homeList3">
+                <a-collapse-panel v-if="index !== 0" :key="index + ''" :header="item.title" :showArrow="false">
+                  <!-- <p>{{ item.title }}</p> -->
+                  <div class="add-title yc-3">
+                    {{ item.summary }}
+                  </div>
+                  <a-button type="primary" @click="btnContent(item)">
+                    查看详情
+                  </a-button>
+                </a-collapse-panel>
+              </template>
+            </a-collapse>
+            <div>
+
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <!-- 底部 -->
+    <div class="home-bottom">
+      <div>
+        <a-button type="dashed" shape="round" icon="search">
+          电话咨询
+        </a-button>
+      </div>
+      <div>
+        <a-button type="dashed" shape="round" icon="search">
+          加入我们
+        </a-button>
+      </div>
+      <div>
+        <a-button type="primary" shape="round" icon="search">
+          申请试用
+        </a-button>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { postListData, sendSms, postCustomer } from '../../api/index'
+import { message } from 'ant-design-vue'
+export default {
+  name: 'IndexPage',
+  data() {
+    return {
+      homeList0: [
+        {
+          title: '传统获得客效率低,成本高',
+          content:
+            '3000个白名单里可能只能挖掘出一个意向客户,员工信心不足,线路成本与人工成本均居高不下',
+        },
+        {
+          title: '客户资源易流失',
+          content:
+            '高价挖掘的意向客户,面临员工离职带走客户和员工飞单的风险,无法形成客户资产,资源全部在业务员手上',
+        },
+        {
+          title: '跨部门沟通成本高',
+          content:
+            '线下上门客户填写个人信息受法律监管,机构对于各类纸质资料不易保存,上门客户服务情况无法掌握,跨部门沟通成本高',
+        },
+      ],
+      homeList1: [
+        {
+          title: '轻松获客',
+          content: '通过惠融易客推广获客,轻松获取意向客户,有效降低获客成本95%',
+        },
+        {
+          title: '客户管理',
+          content:
+            '通过惠融易客客户管理系统,科学高效管理企业客户资料,开成公司资产,员工离职一键收回所有权限,客户跟进情况一目了然',
+        },
+        {
+          title: '业务管理',
+          content:
+            '通过惠融易客客户管理系统记录跟进,客户从上门到成交的各个环节均可清晰化、信息化记录,有效提高效率与服务质量',
+        },
+      ],
+      freeList: ['3', '0', '7', '0', '1', '3', '7', '4'],
+      homeList3: [],
+      activeKey: [0],
+      text: `A dog is a type of domesticated animal.Known for its loyalty and faithfulness,it can be found as a welcome guest in many households across the world.`,
+      amodal: false, //申请试用弹窗
+      countdown: 0,
+      customer: {
+        sceneType: "loanofficial", // 场景
+        companyName: '',// 公司名称
+        customName: '', // 姓名
+        city: '', // 所在城市
+        phone: '', // 手机号
+        verifyCode: '', //验证码
+        channel: 17, //pc官网16 手机端17
+      },
+      // 定时器
+      intervalBtn: {},
+      formLayout: 'horizontal',
+      form: this.$form.createForm(this, { name: 'coordinated' }),
+    }
+  },
+  created() {
+    this.postListDataFn()
+  },
+  methods: {
+    async postListDataFn() {
+      let list = await postListData({
+        "categoryId": 1
+      })
+      list.data.data ? this.homeList3 = list.data.data.list : ''
+      // console.log('this.homeList3',this.homeList3)
+    },
+    collapseChange(e) {
+      console.log(this.activeKey, 'collapseChange', e)
+    },
+    btnContent(item) {
+      console.log('item', item)
+      this.$router.push({ path: `/user/content?id=${item.id}` })
+    },
+    // 发送
+    handleSubmit(e) {
+      e.preventDefault();
+      this.form.validateFields(async (err, values) => {
+        if (!err) {
+          // console.log('Received values of form: ', values);
+          let z = await postCustomer(this.customer)
+          console.log('zzz', z)
+          if (z.data.msg == '成功') {
+            // 关闭页面
+            this.fouse()
+          }
+        } else {
+          console.log('进来了')
+        }
+      });
+    },
+    // 打开
+    amodalFn() {
+      this.amodal = true
+    },
+    // 关闭
+    fouse() {
+      console.log('关闭了')
+      this.amodal = false
+    },
+    handleSelectChange(value) {
+      console.log(value);
+      this.form.setFieldsValue({
+        note: `Hi, ${value === 'male' ? 'man' : 'lady'}!`,
+      });
+    },
+    // 验证码
+    async verifyCodeFn() {
+      if (this.customer.phone) {
+        if (new RegExp('^1[0-9]{10}$').test(this.customer.phone)) {
+          let z = await sendSms({
+            sceneType: "loanofficial",
+            userMobile: this.customer.phone
+          })
+          // console.log('zzz', z)
+          if (z.data.code == 0) {
+            message.success('发送成功')
+            this.countdown = 60
+            this.countDown()
+            // console.log('进来了', this.countdown)
+          } else {
+            message.error('发送失败')
+          }
+        } else {
+          message.error('请输入正确的手机号');
+        }
+      } else {
+        message.error('请输入手机号')
+      }
+
+    },
+    // 倒计时
+    countDown() {
+      // 设置倒计时
+      this.intervalBtn = setInterval(() => {
+        if (this.countdown == 1) {
+          // 清除定时器
+          clearInterval(this.intervalBtn)
+          // 重置倒计时状态
+          // this.countdown = 0
+        };
+        // 倒计时
+        this.countdown--
+      }, 1000)
+    },
+  }
+}
+</script>
+<style lang="less">
+@import '../../static/m_index.less';
+
+.ant-collapse-header {
+  white-space: nowrap !important;
+  text-overflow: ellipsis !important;
+  overflow: hidden !important;
+}
+
+.ant-btn-primary {
+  background-color: #526eea !important;
+  border-color: #526eea !important;
+}
+
+.ant-btn-primary {
+  background-color: #fff !important;
+  border-color: #fff !important;
+  color: #1890ff !important;
+}
+
+.ant-form-item-label {
+  display: none !important;
+}
+
+.ant-modal-footer {
+  text-align: center !important;
+}
+
+.sub .ant-btn-primary {
+  background-color: #526eea !important;
+  border-color: #526eea !important;
+  color: #fff !important;
+  width: 150px;
+  height: 40px;
+}
+.home-bottom .ant-btn {
+  height: 80px !important;
+}
+.home-bottom .ant-btn-primary{
+  background-color: #526eea !important;
+  color: #fff !important;
+}
+</style>

+ 5 - 0
plugins/vant-ui.js

@@ -0,0 +1,5 @@
+import Vue from 'vue'
+import { Tab, Tabs }  from 'vant'
+import 'vant/lib/index.less'
+Vue.use(Tab)
+Vue.use(Tabs)

+ 301 - 0
static/m_index.less

@@ -0,0 +1,301 @@
+
+.m-content{
+  width: 100%;
+  display: flex;
+}
+.container {
+  // max-width: 1200px;
+  /* max-width: 1200px; */
+  display: flex;
+  // width: 100%;
+  height: 100%;
+  flex-wrap: wrap;
+  flex-direction: column;
+  // min-height: auto;
+  align-items: center;
+  justify-content: space-between;
+  // margin: 0 169px;
+  // padding: 0 169px ;
+  // margin: auto;
+}
+
+.container-row {
+  // width: 100%;
+  // width: 33%;
+  height: auto;
+  // background-color: #5cf;
+}
+
+// @media (max-width: 600px) {
+//   .container-row {
+//     width: 50%;
+//   }
+// }
+
+html,
+body {
+  margin: 0;
+}
+
+.home {
+  .home-back {
+    width: 100%;
+  }
+
+  .home-title {
+    font-size: 18px;
+    font-weight: 400;
+    text-align: center;
+
+    &-sub {
+      text-align: center;
+      font-size: 12px;
+      font-weight: 400;
+      margin: 20px 0;
+      color: #888888;
+    }
+  }
+
+  .home-qa {
+    padding: 50px 30px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+
+    .home-qa-img-row {
+      margin-top: 20px;
+      // margin: 103px 169px 0;
+      width: 100%;
+
+      .home-qa-img-row-item {
+        // max-width: 490px;
+        position: relative;
+
+        &>img {
+          width: 100%;
+          height: 100%;
+        }
+
+        .home-qa-img-row-item-absolute {
+          position: absolute;
+          top: 0;
+          left: 0;
+          width: 100%;
+          height: 100%;
+          // padding: 32px 24px;
+          color: #fff;
+          display: flex;
+          flex-direction: column;
+          justify-content: space-around;
+
+          .home-qa-img-row-item-absolute-title {
+            font-size: 14px;
+            font-weight: bold;
+
+            &>span {
+              font-size: 40px;
+            }
+          }
+
+          .home-qa-img-row-item-absolute-subtitle {
+            // height: 300px;
+            // height: 100%;
+            font-size: 10px;
+            font-weight: 400;
+          }
+        }
+      }
+    }
+  }
+
+  .home-ad {
+    background-color: #f3f5fe;
+    padding: 50px;
+    // padding-top: 50px;
+    // padding-bottom: 160px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+
+    .home-ad-row {
+      margin-top: 30px;
+      display: flex;
+      flex-wrap: wrap;
+      justify-content: space-between;
+
+      .home-row-single {
+        width: 45%;
+        margin: 20px 0;
+      }
+
+      img {
+        width: 100%;
+      }
+    }
+  }
+
+  .home-static {
+    // height: 723px;
+    background: linear-gradient(315deg, #496cf2 0%, #7663ff 100%);
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    justify-content: center;
+    color: #fff;
+
+    .home-content {
+      display: flex;
+      align-items: center;
+      flex-direction: column;
+      margin: 50px 0;
+    }
+
+    .home-title {
+      color: #fff;
+
+      &-sub {
+        color: #fff;
+        // margin-bottom: 45px;
+      }
+    }
+
+    .home-static-num {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      margin: 20px 5px;
+
+      &-wrap {
+        padding: 0 24px;
+        border-radius: 9px;
+        background-color: #fff;
+        color: #723bed;
+        font-size: 30px;
+      }
+    }
+
+    &-title {
+      font-size: 16px;
+    }
+
+    .home-static-btn {
+      // margin-top: 18px;
+      height: 40px;
+      border-radius: 40px;
+      color: #723bed;
+      // width: 150px;
+      cursor: pointer;
+    }
+
+    .home-ad-free {
+      display: flex;
+      align-items: center;
+      margin: 20px 0;
+    }
+  }
+}
+
+// 底部
+.home-bottom {
+  width: 100%;
+  background: #f7f7f7;
+  padding: 20px 50px 10px;
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+
+
+    .contact-1 {
+      color: #FFFFFF;
+      font-size: 20px;
+    }
+
+    .contact-2 {
+      font-size: 14px;
+      color: #b4b4b8;
+    }
+    .consult-tel{
+      width: 50%;
+      display: flex;
+      justify-content: space-between;
+      flex-wrap: wrap;
+    }
+    .consult-code{
+      margin-left: 10%;
+      width: 40%;
+      display: flex;
+      .code-content{
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        justify-content: center;
+      }
+    }
+  
+  .reference{
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    color: #585667;
+    font-size: 10px;
+    margin: 30px 0;
+  }
+}
+
+.ant-modal-body {
+  padding: 40px !important;
+}
+.color-fff-12{
+  color: #2f2f2f;
+  font-size: 12px;
+}
+.color-fff{
+  color: #2f2f2f;
+}
+.w-15 {
+  width: 15px;
+}
+.h-15 {
+  height: 15px;
+}
+.w-20{
+  width: 20px;
+}
+.h-20{
+  height: 20px;
+}
+
+.home-ad-xw {
+  display: flex;
+  flex-direction: column;
+  // align-items: center;
+  .ad-free-img{
+    width: 100%;
+    // height: 100%;
+    // margin-right: 50px;
+  }
+  .ad-free-content{
+    flex: 1;
+    height: 100%;
+    border: 1px solid #ECECEC;
+  }
+}
+.yc{
+  white-space: nowrap; 
+  text-overflow: ellipsis;
+  overflow: hidden; 
+}
+.yc-3{
+  display: -webkit-box;
+-webkit-line-clamp:3;
+-webkit-box-orient: vertical;
+overflow: hidden;
+}
+.yc-4{
+  display: -webkit-box;
+-webkit-line-clamp:4;
+-webkit-box-orient: vertical;
+overflow: hidden;
+}

File diff suppressed because it is too large
+ 338 - 338
yarn.lock


Some files were not shown because too many files changed in this diff