Edit in JSFiddle

  const vm = new Vue({
    el: "#app",
    data: {a: "", b: ""},
    watch: {
      a: function(v) {
        this.a = v.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) + 65248) })
      },
      b: function(v) {
        this.b = v.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 65248) })
      },
    },
  })
<div id="app">
  <div class="form-horizontal">
    <div class="form-group">
      <label class="col-md-2 control-label">全角</label>
      <div class="col-md-10">
        <input class="form-control" v-model.trim="a" />
      </div>
    </div>
    <div class="form-group">
      <label class="col-md-2 control-label">半角</label>
      <div class="col-md-10">
        <input class="form-control" v-model.trim="b" />
      </div>
    </div>
  </div>
</div>