km-default-picture-manage.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <template>
  2. <a-card>
  3. <sd-detail-form
  4. v-if="showForm"
  5. ref="docform"
  6. :record-id="docId"
  7. :page-id="pageId"
  8. :class="$style.docform"
  9. @saved="fnSaved"
  10. >
  11. <template v-slot="{ model, fields }">
  12. <sd-form-item name="coverImage">
  13. <sd-attachment
  14. v-model="model.coverImage"
  15. accept=".png,.jpeg,.jpg"
  16. max-file-size="0.5"
  17. :class="$style.upload"
  18. list-type="picture-card"
  19. :selected-keys="selectedKeys"
  20. :group-id="JSON.parse(fields.coverImage.value).value"
  21. />
  22. </sd-form-item>
  23. <div :class="$style.explanation">
  24. 说明:<br />
  25. <p :class="$style.content">建议尺寸:640*360 </p>
  26. <p :class="$style.content">格式:jpg、png</p>
  27. <p :class="$style.content">大小限制:512KB</p>
  28. </div>
  29. </template>
  30. </sd-detail-form>
  31. </a-card>
  32. </template>
  33. <script>
  34. import { Message } from 'ant-design-vue'
  35. import PageService from '@/common/services/page-service'
  36. import components from './_import-components/km-default-picture-manage-import'
  37. export default {
  38. name: 'KmDefaultPictureManage',
  39. metaInfo: {
  40. title: '知识封面维护',
  41. },
  42. components,
  43. data() {
  44. return {
  45. pageId: 'km/admin/kmKnowledgeCover',
  46. docId: null,
  47. showForm: false,
  48. selectedKeys: [],
  49. }
  50. },
  51. created() {
  52. this.getFirstDocData()
  53. },
  54. methods: {
  55. // 进来的时候先调用列表接口,然后打开第一条文档,没有的话打开新建的页面
  56. getFirstDocData() {
  57. const params = {
  58. columns: 'id,coverImage',
  59. maxResults: -1,
  60. startPosition: 0,
  61. expressions: [],
  62. formId: 'kmKnowledgeCover',
  63. }
  64. PageService.getList(params).then((res) => {
  65. if (res.data.data.length > 0) {
  66. this.docId = res.data.data[0].id
  67. this.showForm = true
  68. } else {
  69. this.docId = undefined
  70. this.showForm = true
  71. }
  72. })
  73. },
  74. // 保存后
  75. fnSaved() {
  76. Message.success('保存成功')
  77. },
  78. },
  79. }
  80. </script>
  81. <style module lang="scss">
  82. @use '@/common/design' as *;
  83. .explanation {
  84. margin-left: 20%;
  85. color: $text-color;
  86. p {
  87. margin: 0;
  88. text-indent: 2em;
  89. &:last-child {
  90. margin-bottom: 20px;
  91. }
  92. }
  93. }
  94. </style>