OrgSelect.vue 1018 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <el-select
  3. v-model="selected"
  4. class="size-select"
  5. placeholder="请选择"
  6. @change="select"
  7. :style="styles"
  8. clearable
  9. >
  10. <el-option
  11. v-for="item in optionList"
  12. :key="item.id"
  13. :label="item.name"
  14. :value="item.id"
  15. >
  16. <span>{{ item.name }}</span>
  17. </el-option>
  18. </el-select>
  19. </template>
  20. <script>
  21. export default {
  22. name: "OrgSelect",
  23. props: {
  24. value: [String, Array],
  25. styles: { type: String, default: "width: 100px;" },
  26. },
  27. data() {
  28. return {
  29. optionList: [],
  30. selected: "",
  31. };
  32. },
  33. async created() {
  34. const res = await this.$http.post("/api/admin/sys/org/query");
  35. // console.log(res.data);
  36. this.optionList = res.data.data;
  37. },
  38. watch: {
  39. value: {
  40. immediate: true,
  41. handler(val) {
  42. this.selected = val;
  43. },
  44. },
  45. },
  46. methods: {
  47. select() {
  48. this.$emit("input", this.selected);
  49. this.$emit("change", this.selected);
  50. },
  51. },
  52. };
  53. </script>
  54. <style></style>