dataSource.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <template>
  2. <el-select v-model="Datasource" multiple collapse-tags placeholder="全部" filterable @change="changeType">
  3. <el-option v-for="item in sourceList" :key="item" :label="item" :value="item"></el-option>
  4. </el-select>
  5. </template>
  6. <script>
  7. import { dynamicDataSource } from "@/api/scan/request";
  8. import { mapGetters, mapActions } from "vuex";
  9. export default {
  10. data() {
  11. return {
  12. sourceList: [], //数据字典设备类型
  13. timer: null,
  14. Datasource: []
  15. };
  16. },
  17. props: {
  18. Related: {},
  19. typeName: {}
  20. },
  21. created() {
  22. this.init();
  23. },
  24. computed: {
  25. ...mapGetters("layout", ["projectId"])
  26. },
  27. methods: {
  28. init() {
  29. this.Datasource = [];
  30. let param = { Related: this.Related, typeName: this.typeName };
  31. //数据源
  32. dynamicDataSource(param, res => {
  33. if (res.Result == "success") {
  34. this.sourceList = res.Content;
  35. }
  36. });
  37. },
  38. changeType(val) {
  39. clearTimeout(this.timer);
  40. this.timer = setTimeout(() => {
  41. this.$emit("change", val);
  42. }, 500);
  43. }
  44. },
  45. watch: {
  46. projectId(n, o) {
  47. this.init();
  48. }
  49. }
  50. };
  51. </script>
  52. <style lang="less" scoped>
  53. </style>