quickNavigation.vue 3.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <template>
  2. <el-card :style="{ height: cardHeight }" class="home-card">
  3. <div slot="header" class="clearfix">
  4. <ibps-icon name="link" />
  5. <span>快捷导航</span>
  6. <ibps-desktop-toolbar
  7. ref="toolbar"
  8. :actions="[{ key: 'add' }]"
  9. @action-event="handleActionEvent"
  10. />
  11. </div>
  12. <div ref="body" :style="{height: showHeight, width: '100%'}">
  13. <div :style="{height: showHeight, width: '100%'}" class="nav-content">
  14. <vue-draggable
  15. v-if="quickNavigationData && quickNavigationData.length"
  16. v-model="quickNavigationData"
  17. v-bind="draggableOptions"
  18. class="list-group"
  19. @start="isDragging = true"
  20. @end="()=>{ isDragging = false }"
  21. >
  22. <el-tag
  23. v-for="(tag, i) in quickNavigationData"
  24. :key="i"
  25. closable
  26. :disable-transitions="false"
  27. class="draggable"
  28. @close="handleNavRemove(tag.id, i)"
  29. >
  30. <el-tooltip
  31. :disabled="tag.urlName.length <= 8"
  32. :content="tag.urlName"
  33. placement="top"
  34. >
  35. <a :href="tag.urlAddr" :target="tag.display">{{ handleOverflow(tag.urlName, 8) }}</a>
  36. </el-tooltip>
  37. </el-tag>
  38. </vue-draggable>
  39. </div>
  40. </div>
  41. <el-dialog
  42. :visible.sync="dialogFormVisible"
  43. :close-on-click-modal="false"
  44. :close-on-press-escape="false"
  45. title="添加快捷导航"
  46. append-to-body
  47. >
  48. <el-form
  49. ref="quickNavform"
  50. :model="quickNavform"
  51. :rules="rules"
  52. :label-width="formLabelWidth"
  53. @submit.native.prevent
  54. >
  55. <el-form-item label="名称:" prop="urlName">
  56. <el-input
  57. v-model="quickNavform.urlName"
  58. type="text"
  59. autocomplete="off"
  60. :maxlength="64"
  61. show-word-limit
  62. />
  63. </el-form-item>
  64. <el-form-item label="url地址:" prop="urlAddr">
  65. <el-input
  66. v-model="quickNavform.urlAddr"
  67. type="textarea"
  68. :autosize="{ minRows: 4, maxRows: 8 }"
  69. autocomplete="off"
  70. placeholder="请填写完整的URL地址,如https://www.szjyxt.com"
  71. />
  72. </el-form-item>
  73. <el-form-item label="打开方式:" prop="display">
  74. <el-select v-model="quickNavform.display" placeholder="请选择" style="width:100%">
  75. <el-option label="新页面打开" value="_blank" />
  76. <el-option label="当前页面打开" value="_self" />
  77. </el-select>
  78. </el-form-item>
  79. </el-form>
  80. <div slot="footer" class="el-dialog--center">
  81. <el-button type="primary" icon="el-icon-circle-save" @click="saveQuickNav">确 定</el-button>
  82. <el-button icon="ibps-icon-close" @click="close">关 闭</el-button>
  83. </div>
  84. </el-dialog>
  85. </el-card>
  86. </template>