<center id="ody8e"><rt id="ody8e"></rt></center><th id="ody8e"></th>
<nobr id="ody8e"><rt id="ody8e"></rt></nobr>
<video id="ody8e"></video>
<nobr id="ody8e"></nobr><video id="ody8e"></video>

一聚教程网:一个值得你收藏的教程网站

最新下载

详解vuejs2.0 select 动态绑定下拉框支持多选

时间:2019-04-25 17:36:04 编辑:猪哥 来源:转载

select 下拉选择

产品类型:这一项是select 涉及到父子组件信息传递 下面拆开讲解

父组件

 
    
     产品类型:
    
    
     
    
   
<script>
import VSelection from '../../components/base/selection'
import _ from 'lodash'
export default {
 components: {
 VSelection,
 VCounter,
 VChooser,
 VMulChooser,
 MyDialog: Dialog,
 BankChooser,
 CheckOrder
 },
 data () {
 return {
  buyNum: 0,
  buyType: {},
  versions: [],
  period: {},
  price: 0,
  versionList: [
  {
   label: '客户版',
   value: 0
  },
  {
   label: '代理商版',
   value: 1
  },
  {
   label: '专家版',
   value: 2
  }
  ],
  periodList: [
  {
   label: '半年',
   value: 0
  },
  {
   label: '一年',
   value: 1
  },
  {
   label: '三年',
   value: 2
  }
  ],
  buyTypes: [
  {
   label: '入门版',
   value: 0
  },
  {
   label: '中级版',
   value: 1
  },
  {
   label: '高级版',
   value: 2
  }
  ],
  isShowPayDialog: false,
  bankId: null,
  orderId: null,
  isShowCheckOrder: false,
  isShowErrDialog: false
 }
 },
 methods: {
 onParamChange (attr, val) {
  this[attr] = val
  // this.getPrice()
  console.log(this[attr], attr)
 },
 getPrice () {
  let buyVersionsArray = _.map(this.versions, (item) => {
  return item.value
  })
  let reqParams = {
  buyNumber: this.buyNum,
  buyType: this.buyType.value,
  period: this.period.value,
  version: buyVersionsArray.join(',')
  }
  this.$http.post('/api/getPrice', reqParams)
  .then((res) => {
  this.price = res.data.amount
  })
 },

 onChangeBanks (bankObj) {
  this.bankId = bankObj.id
 },
 confirmBuy () {
  let buyVersionsArray = _.map(this.versions, (item) => {
  return item.value
  })
  let reqParams = {
  buyNumber: this.buyNum,
  buyType: this.buyType.value,
  period: this.period.value,
  version: buyVersionsArray.join(','),
  bankId: this.bankId
  }
  this.$http.post('/api/createOrder', reqParams)
  .then((res) => {
  this.orderId = res.data.orderId
  this.isShowCheckOrder = true
  this.isShowPayDialog = false
  }, (err) => {
  this.isShowBuyDialog = false
  this.isShowErrDialog = true
  })
 }
 },
 mounted () {
 this.buyNum = 1
 this.buyType = this.buyTypes[0]
 this.versions = [this.versionList[0]]
 this.period = this.periodList[0]
 }
}
</script>

:selections=”buyTypes” 传入子组件 在子组件 接收这个参数

@on-change=”onParamChange(‘buyType', $event)” 通过这个事件 接收 子组件传入 的参数

子组件



<script>
export default {
 props: {
 selections: {
  type: Array,
  default: [{
  label: 'test',
  value: 0
  }]
 }
 },
 data () {
 return {
  isDrop: false,
  nowIndex: 0
 }
 },
 methods: {
 toggleDrop () {
  this.isDrop = !this.isDrop
 },
 chooseSelection (index) {
  this.nowIndex = index
  this.isDrop = false
  this.$emit('on-change', this.selections[this.nowIndex])
 }
 }
}
</script>

select 多选

产品版本:这一项是select 涉及到父子组件信息传递 下面拆开讲解

父组件

    
     产品版本:
    
    
     
    
   

子组件



<script>
import _ from 'lodash'
export default {
 props: {
 selections: {
  type: Array,
  default: [{
  label: 'test',
  value: 0
  }]
 }
 },
 data () {
 return {
  nowIndexes: [0]
 }
 },
 methods: {
 toggleSelection (index) {
  if (this.nowIndexes.indexOf(index) === -1) {
  this.nowIndexes.push(index) 
  }
  else {
  this.nowIndexes = _.remove(this.nowIndexes, (idx) => {
   return idx !== index
  })
  }
  let nowObjArray = _.map(this.nowIndexes, (idx) => {
  return this.selections[idx]
  })
  this.$emit('on-change', nowObjArray)
 },
 checkActive (index) {
  return this.nowIndexes.indexOf(index) !== -1
 }
 }
}
</script>


这里用到 lodash 因为vuejs2.0 放弃了$.remove 方法 可以通过lodash 方法解决

文章评论

热门栏目

68期一肖二码期期准 宜兰县| 贺兰县| 科技| 东丰县| 长子县| 蓬安县| 乐安县| 噶尔县| 建水县| 康乐县| 宕昌县| 遂川县| 黄龙县| 永清县| 黔西| 吉安市| 霍林郭勒市| 兴化市| 叙永县| 彰化市| 乐山市| 油尖旺区| 抚远县| 江山市| 诸城市| 老河口市| http://opucth.cn 五华县| 枣强县| 鄂托克旗| 化隆| 且末县| 宁南县| 双桥区| 灵璧县| 祁连县| 天峻县| 晋江市| 桐庐县| 太和县| 正定县| 沙雅县| 株洲县| 金寨县| 茶陵县| 井冈山市| 珲春市| 启东市| 临高县| 万源市| 霞浦县| 奉新县| 徐闻县| 通城县| 罗源县| 同仁县| http://tvp8520.tw 高雄县| 新泰市| 滨州市| 密云县| 宁安市| 辽阳县| 汉中市| 崇仁县| 吉木乃县| 普宁市| 喀什市| 灌南县| 安福县| 巴楚县| 栖霞市| 承德市| 玉溪市| 深水埗区| 宣恩县| 光山县| 枣阳市| 锦州市| 祁门县| 乡城县| 芒康县| 深水埗区| 寿宁县| 鄱阳县| 磐石市| 长垣县| 南岸区| 广水市| 松江区| 高青县| http://www.wartqyv.tw 云霄县| 海盐县| 塘沽区| 北辰区| 海兴县| 错那县| 武穴市| 石屏县| 酉阳| 乌海市| 甘德县| 泗阳县| 贡山| 阳朔县| 济阳县| 鄂托克前旗| 长春市| 南江县| 宣化县| 阿荣旗| 通山县| 宁南县| 广水市| 屯昌县| 吴忠市| 长寿区| 郴州市| 固安县| 亳州市| http://7132jka.tw 开化县| 莱芜市| 建昌县| 侯马市| 临泽县| 平陆县| 河南省| 奉新县| 万安县| 宁阳县| 临湘市| 集贤县| 克什克腾旗| 南宁市| 嘉荫县| 农安县| 修水县| 中阳县| 株洲县| 定南县| 汾阳市| 湖北省| 武威市| 广水市| 淮北市| 高密市| 汕尾市| 西丰县| 子洲县| http://www.wug0716.co 商南县| 孟村| 合江县| 丰镇市| 绵阳市| 乡城县| 南陵县| 卢龙县| 马关县| 佳木斯市| 松原市| 乌兰浩特市| 仁化县| 乌兰县| 岗巴县| 佛冈县| 凤山市| 扬中市| 邛崃市| 称多县| 南涧| 苏尼特左旗| 河西区| 泰顺县| 五台县| 英吉沙县| 宁海县| 大连市| http://uxyqceq.tw 梧州市| 南汇区| 拉萨市| 建昌县| 凤冈县| 冕宁县| 敖汉旗| 卢湾区| 郑州市| 新蔡县| 徐闻县| 临桂县| 开封县| 乐平市| 万全县| 成都市| 平果县|