edit.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <template>
  2. <div class="knowledge-edit-box">
  3. <header>
  4. <el-form
  5. ref="formRef"
  6. label-position="left"
  7. hide-required-asterisk
  8. inline
  9. label-width="0"
  10. :model="eventForm"
  11. :rules="formRules"
  12. :disabled="!isEdit"
  13. >
  14. <el-form-item prop="title">
  15. <el-input
  16. v-model="eventForm.title"
  17. placeholder="请输入标题"
  18. />
  19. </el-form-item>
  20. <el-form-item prop="classifyId">
  21. <el-cascader
  22. :options="classifyOptions"
  23. v-model="eventForm.classifyId"
  24. :props="{
  25. value: 'Id',
  26. label: 'ClassifyName',
  27. children: 'Child'
  28. }"
  29. clearable
  30. placeholder="请选择分类"
  31. style="width:100%;"
  32. ></el-cascader>
  33. </el-form-item>
  34. <el-form-item prop="source">
  35. <el-select
  36. v-model="eventForm.source"
  37. placeholder="请选择来源"
  38. size="medium"
  39. clearable
  40. style="width:100%;"
  41. >
  42. <el-option
  43. v-for="item in sourcesOptions"
  44. :key="item"
  45. :label="item"
  46. :value="item"
  47. />
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item prop="tag">
  51. <el-select
  52. v-model="eventForm.tags"
  53. placeholder="请选择标签"
  54. size="medium"
  55. clearable
  56. style="width:100%;"
  57. multiple
  58. @change="filterChange"
  59. >
  60. <el-option
  61. v-for="item in tagsOptions"
  62. :key="item"
  63. :label="item"
  64. :value="item"
  65. />
  66. </el-select>
  67. </el-form-item>
  68. <el-form-item prop="startTime">
  69. <label>开始时间</label>
  70. <el-date-picker
  71. v-model="eventForm.startTime"
  72. type="datetime"
  73. placeholder="请选择开始时间"
  74. />
  75. </el-form-item>
  76. <el-form-item prop="startTime">
  77. <label>结束时间</label>
  78. <el-date-picker
  79. v-model="eventForm.endTime"
  80. type="datetime"
  81. placeholder="请选择结束时间"
  82. />
  83. </el-form-item>
  84. <el-form-item v-if="!isEdit">
  85. <el-button type="primary" @click="handleSaveTarget">编辑</el-button>
  86. </el-form-item>
  87. </el-form>
  88. </header>
  89. <div class="main">
  90. <template v-if="isEdit">
  91. <editor
  92. ref="editorRef"
  93. />
  94. <div class="btn-bottom">
  95. <el-button type="primary" plain @click="$router.replace({path: ''})">取消</el-button>
  96. <el-button type="primary" @click="">确定</el-button>
  97. </div>
  98. </template>
  99. </div>
  100. </div>
  101. </template>
  102. <script>
  103. import editor from '@/views/semantics_manage/summery/components/editor.vue';
  104. export default {
  105. components: { editor },
  106. computed: {
  107. isEdit() {
  108. return this.$route.path==='/knowledgeEdit'
  109. }
  110. },
  111. data() {
  112. return {
  113. eventForm: {
  114. title: '',
  115. classifyId: 0,
  116. source:'',
  117. tags:[],
  118. startTime:'',
  119. endTime:''
  120. },
  121. formRules:[],
  122. sourcesOptions:[],
  123. tagsOptions:[],
  124. }
  125. },
  126. mounted(){
  127. },
  128. methods:{
  129. },
  130. }
  131. </script>
  132. <style scoped lang='scss'>
  133. .knowledge-edit-box {
  134. height: calc(100vh - 120px);
  135. display: flex;
  136. flex-direction: column;
  137. header,.main{
  138. padding: 20px;
  139. background: #fff;
  140. border: 1px solid #C8CDD9;
  141. border-radius: 4px;
  142. }
  143. .main {
  144. flex: 1;
  145. margin-top: 20px;
  146. overflow-y: auto;
  147. .btn-bottom {
  148. display: flex;
  149. gap: 20px;
  150. justify-content: flex-end;
  151. margin-top: 20px;
  152. .el-button {
  153. width: 130px;
  154. }
  155. }
  156. }
  157. }
  158. </style>
  159. <style lang="scss">
  160. .knowledge-edit-box {
  161. .fr-element {
  162. height: calc(100vh - 500px);
  163. }
  164. }
  165. </style>