row1.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <template>
  2. <div class="row full-width">
  3. <div
  4. v-if="index === 0"
  5. class="flex flex-align-center flex-justify-start full-height padding-left cell"
  6. >
  7. <el-checkbox
  8. v-if="showCheckBox"
  9. v-model="info.checked"
  10. :disabled="folderChecked"
  11. class="padding-right"
  12. @change="rowChecked(row)"
  13. />
  14. <div v-else style="width: 24px" />
  15. <div v-if="info.type === 2">
  16. <img
  17. v-if="info.isAccess === 1"
  18. src="../../../assets/svg/folder/see.svg"
  19. />
  20. <img
  21. v-if="info.isAccess === 2"
  22. src="../../../assets/svg/folder/edit.svg"
  23. />
  24. <img
  25. v-if="info.isAccess === 3"
  26. src="../../../assets/svg/folder/invisible.svg"
  27. />
  28. </div>
  29. <div v-else>
  30. <img
  31. v-if="info.suffix === 'pdf'"
  32. src="../../../assets/svg/folder/pdf.svg"
  33. />
  34. <img
  35. v-else-if="info.suffix === 'doc'"
  36. src="../../../assets/svg/folder/doc.svg"
  37. />
  38. <img
  39. v-else-if="info.suffix === 'xls'"
  40. src="../../../assets/svg/folder/xls.svg"
  41. />
  42. <img v-else src="../../../assets/svg/folder/other.svg" />
  43. </div>
  44. {{ info[column.prop] }}
  45. </div>
  46. <div
  47. v-else
  48. class="flex flex-align-center flex-center flex-justify-start ml-10 full-height flex-child-average"
  49. >
  50. {{ info[column.prop] }}
  51. </div>
  52. </div>
  53. </template>
  54. <script>
  55. export default {
  56. props: {
  57. row: {
  58. type: Object,
  59. default: null
  60. },
  61. column: {
  62. type: Object,
  63. default: null
  64. },
  65. index: {
  66. type: Number,
  67. default: 0
  68. },
  69. showCheckBox: {
  70. type: Boolean,
  71. default: false
  72. },
  73. folderChecked: {
  74. type: Boolean,
  75. default: false
  76. }
  77. },
  78. watch: {
  79. row: {
  80. handler(val) {
  81. this.info = val
  82. },
  83. immediate: true
  84. }
  85. },
  86. data() {
  87. return {
  88. info: null
  89. }
  90. },
  91. methods: {
  92. rowChecked(res) {
  93. this.$emit('row-change', res)
  94. }
  95. }
  96. }
  97. </script>
  98. <style lang="scss" scoped>
  99. .row {
  100. height: 55px;
  101. border-bottom: #f7f8fa solid 1px;
  102. .cell {
  103. width: 100%;
  104. word-break: break-word;
  105. text-align: left;
  106. }
  107. img {
  108. width: 40px;
  109. height: auto;
  110. margin-right: 10px;
  111. }
  112. }
  113. </style>