MulSubject.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <style lang="scss">
  2. @import '../style/style.scss';
  3. .sub{
  4. .el-input{
  5. width: 300px !important;
  6. }
  7. }
  8. </style>
  9. <template>
  10. <el-cascader-multi v-model="value2" :data="data" @change="valChange" value="value2"> </el-cascader-multi>
  11. </template>
  12. <script>
  13. export default {
  14. data(){
  15. return{
  16. data:[],
  17. checkList:[[1,32,38]],
  18. value1:[],
  19. props2:{
  20. label:'name',
  21. checkStrictly:true,
  22. value:'id'
  23. },
  24. // value2:[[1,32,38]],
  25. props1:{
  26. label:'name',
  27. checkStrictly:true,
  28. value:'name'
  29. }
  30. }
  31. },
  32. props: {
  33. subvalue:'',
  34. subject_id:'',
  35. value2:{
  36. type:Array,
  37. default:[]
  38. }
  39. },
  40. methods:{
  41. getData(type){
  42. this.$api.getSubList().then(res=>{
  43. let data=res.data.data;
  44. if(this.subject_id){
  45. for(let i=0;i<data.length;i++){
  46. if(data[i].id == this.subject_id){
  47. this.data=data[i].children
  48. }
  49. }
  50. }else{
  51. this.data=res.data.data
  52. }
  53. // this.value2 = [[1,32,38]]
  54. })
  55. },
  56. handleChange(value) {
  57. var id='',that=this;
  58. if(value.length>=3&&isNaN(value[0])){
  59. var item1=this.data.filter(item=>item.name==value[0]),
  60. item2=item1[0].children.filter(item=>item.name==value[1]),
  61. item3=item2[0].children.filter(item=>item.name==value[2])
  62. id=item3[0].id;
  63. }
  64. setTimeout(function(){
  65. let values=document.querySelector('.el-input__inner').value;
  66. let items=values.split(' / ');
  67. console.log(values)
  68. that.$emit('subChange',items,id,value)
  69. },100)
  70. }
  71. },
  72. created(){
  73. this.getData()
  74. console.log(this.value2)
  75. }
  76. }
  77. </script>