<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://ytnxac.cn 潞城市| 焦作市| 和静县| 郑州市| 剑河县| 沙田区| 卢龙县| 五台县| 庆安县| 牡丹江市| 金溪县| 石渠县| 元阳县| 万盛区| 曲麻莱县| 灵寿县| 克拉玛依市| 阿瓦提县| 定结县| 开封市| 凤山市| 邛崃市| 芜湖县| 宣化县| 丹棱县| 宁波市| 巴塘县| 吉林省| 连平县| http://www.8458cpr.cn 天全县| 门源| 洪江市| 大荔县| 顺平县| 大田县| 隆回县| 三台县| 民县| 长沙市| 巩义市| 聊城市| 集贤县| 海盐县| 宁远县| 偃师市| 大庆市| 赞皇县| 崇州市| 芦溪县| 泾源县| 巴中市| 威海市| 中宁县| 宁德市| 贵南县| 上饶市| 米脂县| 定兴县| 舞阳县| 桑日县| 陵水| 互助| 资阳市| http://ptg6285.tw 余干县| 安丘市| 鲁甸县| 工布江达县| 顺义区| 托克托县| 宝坻区| 米脂县| 苍梧县| 闽清县| 绥棱县| 凉山| 桂平市| 新蔡县| 河间市| 盈江县| 临朐县| 秦皇岛市| 梧州市| 双辽市| 湖南省| 历史| 瑞金市| 丰都县| 丰宁| 花莲市| 兰溪市| 铜梁县| 两当县| http://www.gbtwjs.com.cn 通道| 曲麻莱县| 泰来县| 兴城市| 鄂托克旗| 乐清市| 枣庄市| 怀远县| 霸州市| 镇宁| 汝城县| 樟树市| 临城县| 华容县| 肇东市| 织金县| 连城县| 洛浦县| 慈利县| 墨玉县| 上虞市| 靖远县| 阿拉善右旗| 剑河县| 师宗县| 安国市| 怀宁县| 星子县| 黄梅县| http://www.hamwpu.cn 化州市| 兴安县| 成武县| 平阳县| 光泽县| 赤峰市| 柏乡县| 化隆| 建昌县| 精河县| 炎陵县| 嵊泗县| 金秀| 湛江市| 塔河县| 留坝县| 乳山市| 丹凤县| 砀山县| 秦安县| 乌拉特后旗| 汉中市| 迁安市| 浦城县| 宜宾市| 博客| 北票市| 赣州市| http://www.5163rjl.tw 东辽县| 鄄城县| 瑞金市| 寿宁县| 临朐县| 南丰县| 启东市| 密云县| 长顺县| 兖州市| 定襄县| 海南省| 都昌县| 洛川县| 广德县| 罗甸县| 天气|