123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <template>
- <div>
- <com-detail
- :data="form"
- :schema="fromSchema"
- :collapsed="false"
- title="文章详情"
- >
- <template #content="scope">
- <div v-html="scope.row.content" />
- </template>
- </com-detail>
- <div class="dialong__button--wrap">
- <el-button @click="close">取消</el-button>
- </div>
- </div>
- </template>
- <script lang="ts">
- import { defineComponent, reactive, PropType } from 'vue'
- import { InfoWriteParams } from './types'
- import { getExampDetApi } from '../api'
- const fromSchema: any[] = [
- {
- field: 'title',
- label: '标题',
- span: 24
- },
- {
- field: 'author',
- label: '作者'
- },
- {
- field: 'display_time',
- label: '创建时间'
- },
- {
- field: 'importance',
- label: '重要性'
- },
- {
- field: 'pageviews',
- label: '阅读数'
- },
- {
- field: 'content',
- label: '内容',
- span: 24,
- slots: {
- default: 'content'
- }
- }
- ]
- export default defineComponent({
- name: 'Detail',
- props: {
- info: {
- type: Object as PropType<any>,
- default: () => null
- }
- },
- emits: ['close'],
- setup(props, { emit }) {
- const form = reactive<InfoWriteParams>({
- id: '', // id
- author: '', // 作者
- title: '', // 标题
- content: '', // 内容
- importance: '', // 重要性
- display_time: '', // 创建时间
- pageviews: 0 // 阅读数
- })
- async function getDet() {
- if (props.info) {
- const id = (props.info as any).id
- try {
- const res = await getExampDetApi({
- params: {
- id: id
- }
- })
- if (res.code) {
- for (const key in form) {
- if (key === 'importance') {
- form[key] = res.data[key].toString()
- } else {
- form[key] = res.data[key]
- }
- }
- }
- } catch (e) {
- console.log(e)
- }
- }
- }
- getDet()
- function close() {
- emit('close')
- }
- return {
- form,
- fromSchema,
- close
- }
- }
- })
- </script>
- <style>
- </style>
|