operatingArea.vue 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. <!--
  2. * @Description: 头部
  3. * @Author: kcz
  4. * @Date: 2019-12-30 00:37:05
  5. * @LastEditors: kcz
  6. * @LastEditTime: 2021-05-27 23:01:59
  7. -->
  8. <template>
  9. <div class="operating-area">
  10. <!-- 头部操作按钮区域 start -->
  11. <!-- 操作左侧区域 start -->
  12. <div class="left-btn-box">
  13. <!-- <a-tooltip title="保存">
  14. <a v-if="toolbars.includes('save')" @click="$emit('handleSave')">
  15. <a-icon type="save" />
  16. <span v-if="showToolbarsText">保存</span>
  17. </a>
  18. </a-tooltip> -->
  19. <a-tooltip title="预览">
  20. <a v-if="toolbars.includes('preview')" @click="$emit('handlePreview')">
  21. <a-icon type="chrome" />
  22. <!-- <span v-if="showToolbarsText">预览</span> -->
  23. <span>预览</span>
  24. </a>
  25. </a-tooltip>
  26. <a-tooltip title="查询">
  27. <a v-if="toolbars.includes('preview')" @click="$emit('handleQuery')">
  28. <a-icon type="search" />
  29. <!-- <span v-if="showToolbarsText">查询</span> -->
  30. <span>查询</span>
  31. </a>
  32. </a-tooltip>
  33. <a-tooltip title="导入">
  34. <a
  35. v-if="toolbars.includes('importJson')"
  36. @click="$emit('handleOpenImportJsonModal')"
  37. >
  38. <a-icon type="upload" />
  39. <!-- <span v-if="showToolbarsText">导入</span> -->
  40. <span>导入</span>
  41. </a>
  42. </a-tooltip>
  43. <a-tooltip title="生成JSON">
  44. <a
  45. v-if="toolbars.includes('exportJson')"
  46. @click="$emit('handleOpenJsonModal')"
  47. >
  48. <a-icon type="credit-card" />
  49. <!-- <span v-if="showToolbarsText">生成JSON</span> -->
  50. <span>生成JSON</span>
  51. </a>
  52. </a-tooltip>
  53. <!-- <a-tooltip title="生成代码">
  54. <a
  55. v-if="toolbars.includes('exportCode')"
  56. @click="$emit('handleOpenCodeModal')"
  57. >
  58. <a-icon type="code" />
  59. <span v-if="showToolbarsText">生成代码</span>
  60. </a>
  61. </a-tooltip> -->
  62. <a-tooltip title="清空">
  63. <a v-if="toolbars.includes('reset')" @click="$emit('handleReset')">
  64. <a-icon type="delete" />
  65. <!-- <span v-if="showToolbarsText">清空</span> -->
  66. <span>清空</span>
  67. </a>
  68. </a-tooltip>
  69. <a-divider type="vertical" />
  70. <a-tooltip title="撤销">
  71. <a
  72. v-if="toolbars.includes('undo')"
  73. :class="{ disabled: !(recordList.length > 0) }"
  74. @click="$emit('handleUndo')"
  75. >
  76. <a-icon type="undo" />
  77. <!-- <span v-if="showToolbarsText">撤销</span> -->
  78. <span>撤销</span>
  79. </a>
  80. </a-tooltip>
  81. <a-tooltip title="重做">
  82. <a
  83. v-if="toolbars.includes('redo')"
  84. :class="{ disabled: !(redoList.length > 0) }"
  85. @click="$emit('handleRedo')"
  86. >
  87. <a-icon type="redo" />
  88. <!-- <span v-if="showToolbarsText">重做</span> -->
  89. <span>重做</span>
  90. </a>
  91. </a-tooltip>
  92. <!-- 按钮左侧插槽 start -->
  93. <slot name="left-action"></slot>
  94. <!-- 按钮左侧插槽 end -->
  95. </div>
  96. <!-- 操作左侧区域 end -->
  97. <!-- 操作右侧区域 start -->
  98. <div class="right-btn-box">
  99. <!-- 按钮右侧插槽 start -->
  100. <slot name="right-action"></slot>
  101. <!-- 按钮右侧插槽 end -->
  102. <a-tooltip title="关闭">
  103. <a v-if="toolbars.includes('close')" @click="$emit('handleClose')">
  104. <a-icon type="close" />
  105. </a>
  106. </a-tooltip>
  107. </div>
  108. <!-- 操作右侧区域 end -->
  109. <!-- 头部操作按钮区域 end -->
  110. </div>
  111. <!-- 操作区域 start -->
  112. </template>
  113. <script>
  114. export default {
  115. props: {
  116. toolbars: {
  117. type: Array,
  118. default: () => [
  119. "save",
  120. "preview",
  121. "importJson",
  122. "exportJson",
  123. "exportCode",
  124. "reset",
  125. "close"
  126. ]
  127. },
  128. recordList: {
  129. type: Array,
  130. require: true
  131. },
  132. redoList: {
  133. type: Array,
  134. require: true
  135. },
  136. showToolbarsText: {
  137. type: Boolean,
  138. default: false
  139. }
  140. }
  141. };
  142. </script>