整个如下:

import vueCropper  from 'vue-cropper'
Vue.use(vueCropper);
<template>
  <div id="app">
        <Cephalosome></Cephalosome>
      <div class="subContent user_back">
          <div class="location">
              <a href="/" class="home">Forums</a>
              <a :href="`/aUser${configTool.urlRouter()}/`">用户中心</a>
              <a href="javascript:;">编辑资料</a>
          </div>
          <div class="container aUserEditProfile">
              <div class="row">
                  <div class="col-sm-12">
                  </div>
              </div>
              <div class="row">
                  <div class="col-sm-12">
                      <section class="auth-main">
                          <div class="auth-main-heading">
                              <h2 class="main-heading-title">基本资料</h2>
                          </div>
                          <div class="auth-main-body profile-edit">
                              <a href="javascript:;" data-toggle="modal" data-target="#myModal" class="img-circle main-body-avatar" target="_blank">
                                  <img src="/static/img/common/photo.jpg" alt="" data-taptap-avatar="display">
                                  <span><i></i></span>
                              </a>

                                  <div class="form-horizontal">
                                  <div class="form-group">
                                      <label class="col-sm-5 control-label">ID</label>
                                      <div class="col-sm-4">
                                          <span style="display: block;margin-top: 7px;">79410285</span>
                                      </div>
                                  </div>

                                  <div class="form-group">
                                      <label class="col-sm-5 control-label">昵称</label>
                                      <div class="col-sm-4">
                                          <input type="text" name="user_name" id="user_name" class="form-control" value="79410285">
                                      </div>
                                  </div>
                                  <div class="form-group">
                                      <label class="col-sm-5 control-label" for="mobile">收信手机号</label>
                                      <div class="col-sm-1">
                                          <select name="phone_prefix" class="form-control">
                                              <option value="81">+81</option>
                                              <option value="86">+86</option>
                                          </select>
                                      </div>
                                      <div class="col-sm-3">
                                          <input type="tel" name="phone_number" id="mobile" class="form-control" value="13017932304">

                                      </div>
                                  </div>
                                  <div class="form-group">
                                      <label class="col-sm-5 control-label">邮箱帐号</label>
                                      <div class="col-sm-4">
                                          <input type="tel" name="email_address" id="email_address" class="form-control" value="">
                                      </div>
                                  </div>
                                  <div class="form-group">
                                      <label class="col-sm-5 control-label">生日</label>
                                      <div class="col-sm-4">
                                          <select name="birth_year" id="select_year" class="form-control">
                                              <option value="">年</option>
                                              <option value="2019">2019</option>
                                              <option value="2018">2018</option>
                                              <option value="2017">2017</option>
                                              <option value="2016">2016</option>
                                              <option value="2015">2015</option>
                                              <option value="2014">2014</option>
                                              <option value="2013">2013</option>
                                              <option value="2012">2012</option>
                                              <option value="2011">2011</option>
                                              <option value="2010">2010</option>
                                              <option value="2009">2009</option>
                                              <option value="2008">2008</option>
                                              <option value="2007">2007</option>
                                              <option value="2006">2006</option>
                                              <option value="2005">2005</option>
                                              <option value="2004">2004</option>
                                              <option value="2003">2003</option>
                                              <option value="2002">2002</option>
                                              <option value="2001">2001</option>
                                              <option value="2000">2000</option>
                                              <option value="1999">1999</option>
                                              <option value="1998">1998</option>
                                              <option value="1997">1997</option>
                                              <option value="1996">1996</option>
                                              <option value="1995">1995</option>
                                              <option value="1994">1994</option>
                                              <option value="1993">1993</option>
                                              <option value="1992">1992</option>
                                              <option value="1991">1991</option>
                                              <option value="1990">1990</option>
                                              <option value="1989">1989</option>
                                              <option value="1988">1988</option>
                                              <option value="1987">1987</option>
                                              <option value="1986">1986</option>
                                              <option value="1985">1985</option>
                                              <option value="1984">1984</option>
                                              <option value="1983">1983</option>
                                              <option value="1982">1982</option>
                                              <option value="1981">1981</option>
                                              <option value="1980">1980</option>
                                              <option value="1979">1979</option>
                                              <option value="1978">1978</option>
                                              <option value="1977">1977</option>
                                              <option value="1976">1976</option>
                                              <option value="1975">1975</option>
                                              <option value="1974">1974</option>
                                              <option value="1973">1973</option>
                                              <option value="1972">1972</option>
                                              <option value="1971">1971</option>
                                              <option value="1970">1970</option>
                                              <option value="1969">1969</option>
                                              <option value="1968">1968</option>
                                              <option value="1967">1967</option>
                                              <option value="1966">1966</option>
                                              <option value="1965">1965</option>
                                              <option value="1964">1964</option>
                                              <option value="1963">1963</option>
                                              <option value="1962">1962</option>
                                              <option value="1961">1961</option>
                                              <option value="1960">1960</option>
                                              <option value="1959">1959</option>
                                              <option value="1958">1958</option>
                                              <option value="1957">1957</option>
                                              <option value="1956">1956</option>
                                              <option value="1955">1955</option>
                                              <option value="1954">1954</option>
                                              <option value="1953">1953</option>
                                              <option value="1952">1952</option>
                                              <option value="1951">1951</option>
                                              <option value="1950">1950</option>
                                              <option value="1949">1949</option>
                                              <option value="1948">1948</option>
                                              <option value="1947">1947</option>
                                              <option value="1946">1946</option>
                                              <option value="1945">1945</option>
                                              <option value="1944">1944</option>
                                              <option value="1943">1943</option>
                                              <option value="1942">1942</option>
                                              <option value="1941">1941</option>
                                              <option value="1940">1940</option>
                                              <option value="1939">1939</option>
                                              <option value="1938">1938</option>
                                              <option value="1937">1937</option>
                                              <option value="1936">1936</option>
                                              <option value="1935">1935</option>
                                              <option value="1934">1934</option>
                                              <option value="1933">1933</option>
                                              <option value="1932">1932</option>
                                              <option value="1931">1931</option>
                                              <option value="1930">1930</option>
                                              <option value="1929">1929</option>
                                              <option value="1928">1928</option>
                                              <option value="1927">1927</option>
                                              <option value="1926">1926</option>
                                              <option value="1925">1925</option>
                                              <option value="1924">1924</option>
                                              <option value="1923">1923</option>
                                              <option value="1922">1922</option>
                                              <option value="1921">1921</option>
                                              <option value="1920">1920</option>
                                              <option value="1919">1919</option>
                                          </select>
                                          <select name="birth_month" id="select_month" class="form-control birth_">
                                              <option value="">月</option>
                                              <option value="1">1</option>
                                              <option value="2">2</option>
                                              <option value="3">3</option>
                                              <option value="4">4</option>
                                              <option value="5">5</option>
                                              <option value="6">6</option>
                                              <option value="7">7</option>
                                              <option value="8">8</option>
                                              <option value="9">9</option>
                                              <option value="10">10</option>
                                              <option value="11">11</option>
                                              <option value="12">12</option>
                                          </select>
                                          <select name="birth_day" id="select_day" class="form-control birth_">
                                              <option value="">日</option>
                                              <option value="1">1</option>
                                              <option value="2">2</option>
                                              <option value="3">3</option>
                                              <option value="4">4</option>
                                              <option value="5">5</option>
                                              <option value="6">6</option>
                                              <option value="7">7</option>
                                              <option value="8">8</option>
                                              <option value="9">9</option>
                                              <option value="10">10</option>
                                              <option value="11">11</option>
                                              <option value="12">12</option>
                                              <option value="13">13</option>
                                              <option value="14">14</option>
                                              <option value="15">15</option>
                                              <option value="16">16</option>
                                              <option value="17">17</option>
                                              <option value="18">18</option>
                                              <option value="19">19</option>
                                              <option value="20">20</option>
                                              <option value="21">21</option>
                                              <option value="22">22</option>
                                              <option value="23">23</option>
                                              <option value="24">24</option>
                                              <option value="25">25</option>
                                              <option value="26">26</option>
                                              <option value="27">27</option>
                                              <option value="28">28</option>
                                              <option value="29">29</option>
                                              <option value="30">30</option>
                                              <option value="31">31</option>
                                          </select>
                                      </div>
                                  </div>
                                  <div class="form-group">
                                      <label class="col-sm-5 control-label" for="gender">性别</label>
                                      <div class="col-sm-5">
                                          <select name="gender_id" id="gender" class="form-control">
                                              <option value="" selected="">-请选择-</option>
                                              <option value="1">男</option>
                                              <option value="2">女</option>
                                          </select>
                                      </div>
                                  </div>
                                  <div class="form-group">
                                      <label class="col-sm-5 control-label" for="intro">简介</label>
                                      <div class="col-sm-5">
                                          <input type="text" name="introduction" id="intro" class="form-control" value="" maxlength="30" placeholder="用一句话展示你的个性留言(最多30个字)">
                                      </div>
                                  </div>

                                  <div class="col-sm-5 col-sm-offset-5">
                                      <button type="submit" class="btn btn-primary taptap-button-download">保存</button>
                                  </div>
                              </div>
                          </div>
                      </section>
                  </div>
              </div>
              <!-- 模态框(Modal) -->
              <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                  <div class="modal-dialog">
                      <div class="modal-content">
                          <div class="modal-header">
                              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                              <h4 class="modal-title" id="myModalLabel">上传头像</h4>
                          </div>
                          <div class="modal-body">
                              <div class="show-info">
                                  <div class="test">
                                      <vueCropper
                                              ref="cropper2"
                                              :img="example2.img "
                                              :outputSize="example2.size"
                                              :outputType="example2.outputType"
                                              :info="example2.info"
                                              :canScale="example2.canScale"
                                              :autoCrop="example2.autoCrop"
                                              :autoCropWidth="example2.autoCropWidth"
                                              :autoCropHeight="example2.autoCropHeight"
                                              :fixed="example2.fixed"
                                              :fixedNumber="example2.fixedNumber"
                                      ></vueCropper>
                                  </div>
                                  <label class="btn btn-primary" for="upload2">上传</label>
                                  <input type="file" id="upload2" style="position:absolute; clip:rect(0 0 0 0);" accept="image/png, image/jpeg, image/gif, image/jpg" @change="uploadImg($event,2)">
                                  <button @click="finish2()" style="margin-left: 13px;" type="button" class="btn btn-primary">保存</button>
                              </div>
                          </div>
                          <div class="modal-footer">
                              <button type="button" style="display: none" class="btn btn-default" data-dismiss="modal" ref="close">关闭</button>
                          </div>
                      </div><!-- /.modal-content -->
                  </div><!-- /.modal -->
              </div>
          </div>
      </div>

    <Bottom></Bottom>

                    <!--<ul class="depth02">-->
                      <!--<li><a href="/ceshi2/?boardNo=2">测试页面,打包之后可用的写法{{ss}}</a></li>-->
                      <!--<li><a href="/ceshi2.html/?boardNo=2">测试页面,dev 的时候可用的写法{{ss}}</a></li>-->
                    <!--</ul>-->

  </div>

</template>
<style lang="scss">
    @import "../../assets/scss/user";
</style>
<script>

import Cephalosome from "../../components/Cephalosome"
import Bottom from "../../components/Bottom"

import {P_LIST_TEST} from '../../config/api'

export default {
  name: 'app',
  components: {
      Cephalosome,
      Bottom
  },
    data(){
      return{
          ss:23423432,
          list:{},
          loding: true,
          example2: {
              //img的路径自行修改
              img: '$oss.url + \'/\' + form.head ',
              info: true,
              size: 1,
              outputType: 'jpeg',
              canScale: true,
              autoCrop: true,
              // 只有自动截图开启 宽度高度才生效
              autoCropWidth: 300,
              autoCropHeight: 225,
              fixed: true,
              // 真实的输出宽高
              infoTrue: true,
              fixedNumber: [4, 3]
          },
          downImg: '#'
      }
    },
    mounted(){

        // this.$get(P_LIST_TEST,{name:1212}).then(res => {
        //     if(res.code==200){
        //         this.list=res.data;
        //         this.loding=false;
        //         window.console.log(res,'res')
        //     }
        //
        // })
    },
    methods:{
        //点击裁剪,这一步是可以拿到处理后的地址
        finish2 () {
            this.$refs.cropper2.getCropData((data) => {
                this.modelSrc = data
                //裁剪后的图片显示
                this.example2.img = this.modelSrc;
                window.console.log( this.example2.img)
                this.$refs.close.click()

                //阿里云处理图片,项目的接口,这里可以不用,上面的地址打印即为base64的地址
                // this.$api.random(random => {
                //   this.$api.upload.oss(data => {
                //     new OSS.Wrapper({
                //       //这里应该是有自己的配置的
                //       region: 'oss-cn-hangzhou',
                //       accessKeyId: data.accessKeyId,
                //       accessKeySecret: data.accessKeySecret,
                //       stsToken: data.securityToken,
                //       bucket: 'zhiyuan-hz'
                //     }).put(random.uuid,new Buffer(this.example2.img)).then(data => {
                //       this.form.head = data.name;
                //       this.modelSrc = this.form.head;
                //       console.log(this.modelSrc)
                //     }).catch(function (err) {
                //       console.error('error: %j', err);
                //     });
                //   });
                // },{});

                // console.log(this.modelSrc)
            })

        },

        uploadImg (e, num) {
            //上传图片
            this.example2.img = ''
            var file = e.target.files[0]
            if (!/\.(gif|jpg|jpeg|png|bmp|GIF|JPG|PNG)$/.test(e.target.value)) {
                alert('图片类型必须是.gif,jpeg,jpg,png,bmp中的一种')
                return false
            }
            var reader = new FileReader()
            reader.onload = (e) => {
                let data
                data = e.target.result
                if (typeof e.target.result === 'object') {
                    // 把Array Buffer转化为blob 如果是base64不需要
                    data = window.URL.createObjectURL(new Blob([e.target.result]))
                } else {
                    data = e.target.result
                }
                if (num === 1) {
                    this.option.img = data
                } else if (num === 2) {
                    this.example2.img = data
                }
            }
            // 转化为base64
            // reader.readAsDataURL(file)
            // 转化为blobcs
            reader.readAsArrayBuffer(file)
        },
        test(){

        }
    }
}
</script>

<style scoped>
    .show-info {
        /*margin-bottom: 50px;*/
        text-align: right;
    }

    .show-info h2 {
        line-height: 50px;
    }

    /*.title, .title:hover, .title-focus, .title:visited {
          color: black;
      }*/

    .title {
        display: block;
        text-decoration: none;
        text-align: center;
        line-height: 1.5;
        margin: 20px 0px;
        background-image: -webkit-linear-gradient(left,#3498db,#f47920 10%,#d71345 20%,#f7acbc 30%,#ffd400 40%,#3498db 50%,#f47920 60%,#d71345 70%,#f7acbc 80%,#ffd400 90%,#3498db);
        color: transparent;
        -webkit-background-clip: text;
        background-size: 200% 100%;
        animation: slide 5s infinite linear;
        font-size: 40px;
    }

    .test {
        height: 285px;
        margin-bottom: 20px;
    }

    .model {
        position: fixed;
        z-index: 10;
        width: 100vw;
        height: 100vh;
        overflow: auto;
        top: 0;
        left: 0;
        background: rgba(0, 0, 0, 0.8);
    }

    .model-show {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100vw;
        height: 100vh;
    }

    .model img {
        display: block;
        margin: auto;
        max-width: 80%;
        user-select: none;
        background-position: 0px 0px, 10px 10px;
        background-size: 20px 20px;
        background-image: linear-gradient(45deg, #eee 25%, transparent 25%, transparent 75%, #eee 75%, #eee 100%),linear-gradient(45deg, #eee 25%, white 25%, white 75%, #eee 75%, #eee 100%);
    }

    .c-item {
        display: block;
        padding: 10px 0;
        user-select: none;
    }

    @keyframes slide {
        0%  {
            background-position: 0 0;
        }
        100% {
            background-position: -100% 0;
        }
    }

    @media screen and (max-width: 1000px) {
        .content {
            max-width: 90%;
            margin: auto;
        }

        .test {
            height: 400px;
        }
    }
</style>

结果:

posted on 2019-08-12 13:49  lllomh  阅读(34)  评论(0编辑  收藏  举报