com-specs-values-select.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. <template id="com-specs-values-select">
  2. <div class="specs-select" v-if="isShow()">
  3. <span class="el-dropdown-link-specs" @click="showSelect">
  4. 选择已有规格<i class="el-icon-arrow-down el-icon--right"></i>
  5. </span>
  6. <el-collapse-transition>
  7. <ul class="down-select" v-if="downSelectShow">
  8. <li class="el-dropdown-menu__item" v-for="item in specs.values" @click="useSpecsValue(item)">{{ item }}</li>
  9. </ul>
  10. </el-collapse-transition>
  11. </div>
  12. </template>
  13. <script>
  14. Vue.component('com-specs-values-select', {
  15. template: '#com-specs-values-select',
  16. props: {
  17. specs: {
  18. type: Object,
  19. default: () => {
  20. return {}
  21. }
  22. },
  23. index: 0,
  24. show: Boolean,
  25. },
  26. data() {
  27. return {
  28. downSelectShow: false,
  29. }
  30. },
  31. methods: {
  32. isShow() {
  33. return JSON.stringify(this.specs) != '{}'
  34. },
  35. showSelect() {
  36. this.downSelectShow = !this.downSelectShow
  37. },
  38. useSpecsValue(item) {
  39. this.$emit('use-specs-value', item, this.index)
  40. }
  41. }
  42. })
  43. </script>
  44. <style>
  45. .specs-select {
  46. margin-right: 16px;
  47. }
  48. .el-dropdown-link-specs {
  49. cursor: pointer;
  50. color: #409EFF;
  51. font-size: 12px;
  52. }
  53. .el-icon-arrow-down {
  54. font-size: 12px;
  55. }
  56. .down-select {
  57. position: absolute;
  58. /* top: 0; */
  59. /* left: 0; */
  60. z-index: 10;
  61. padding: 10px 0;
  62. margin: 5px 0;
  63. background-color: #fff;
  64. border: 1px solid #ebeef5;
  65. border-radius: 4px;
  66. box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);
  67. }
  68. </style>