d2a46e097ebf7f94d8f6b20b2da13535ac3875ce.svn-base 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <template>
  2. <div>
  3. <el-select
  4. v-model="value"
  5. placeholder="请选择"
  6. filterable
  7. autoComplete = "off"
  8. :filter-method="filterMethod"
  9. @change='chooseChange'
  10. >
  11. <el-option
  12. v-for="item in searchDataList"
  13. :key="item.adCode"
  14. :value="item.adCode"
  15. :label="item.adName"
  16. >
  17. </el-option>
  18. </el-select>
  19. </div>
  20. </template>
  21. <script>
  22. import request from '../utils/gw_ajax_request.js';
  23. export default {
  24. props: ['nodeList'],
  25. components:{
  26. },
  27. data() {
  28. return {
  29. value: '',
  30. searchDataList:[],
  31. }
  32. },
  33. computed:{
  34. userId:function(){
  35. return localStorage.getItem("userid")? localStorage.getItem("userid"): ''
  36. },
  37. },
  38. mounted(){
  39. this.getAreaList();
  40. },
  41. watch: {
  42. },
  43. methods:{
  44. getAreaList(){
  45. var _self = this;
  46. var str = '';
  47. let codes = [];
  48. for(var i=0;i<_self.nodeList.length;i++){
  49. codes.push(_self.nodeList[i].code);
  50. }
  51. str = codes.join(',');
  52. request.get('/dc/att/adXBase/getTargetAdByNodeId',{params:{'persGuid':this.userId,'nodeIds':str}}).then((res)=>{
  53. let data = res.data
  54. this.searchDataList = data;
  55. })
  56. },
  57. chooseChange:function(p){
  58. console.log(p);
  59. this.searchDataList.forEach((element) => {
  60. if(element.adCode == p){
  61. console.log(element);
  62. this.$emit("selectDuChaAreaNode", { 'adCode':element.adCode, 'adName': element.adName});
  63. }
  64. });
  65. },
  66. filterMethod:function(text){
  67. console.log(text);
  68. this.value = text;
  69. let filterResult = [];
  70. this.searchDataList.forEach((element) =>{
  71. if(element.adName.indexOf(text)>=0){
  72. filterResult.push(element);
  73. }
  74. });
  75. this.searchDataList = filterResult;
  76. },
  77. },
  78. }
  79. </script>
  80. <style>
  81. </style>