update:
This commit is contained in:
parent
030e5736e0
commit
a69aa0e768
|
|
@ -23,7 +23,7 @@
|
|||
label-position="left" v-loading="detailLoading" style="border-top: 1px solid var(--el-border-color);">
|
||||
|
||||
<div v-if="normalFields.length" class="in18-form-top">
|
||||
<el-form-item v-for="item in normalFields" :key="item.key" :prop="item.key">
|
||||
<el-form-item v-for="item in normalFields.filter(i => !i.hide)" :key="item.key" :prop="item.key">
|
||||
<template #label>
|
||||
{{ item.name }}
|
||||
</template>
|
||||
|
|
@ -60,6 +60,9 @@
|
|||
:uploadFile="uploadFun" hideUploadButton
|
||||
:onUpdateValue="(val: any) => { formData[item.key] = val[0]?.url || '' }" />
|
||||
</div>
|
||||
<div v-else-if="item.type === 'datetime'">
|
||||
<el-date-picker v-model="formData[item.key]" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择日期时间" />
|
||||
</div>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
|
|
@ -185,6 +188,7 @@ type FormItemType =
|
|||
| 'upload:images,video'
|
||||
| 'upload:image,video'
|
||||
| 'upload:file'
|
||||
| 'datetime'
|
||||
|
||||
type FormItem = {
|
||||
name: string
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
element-loading-background="rgba(255,255,255,0.8)"
|
||||
@tab-change="handleTabChange"
|
||||
>
|
||||
<el-tab-pane v-for="lang in langKeys" :key="lang" :label="lang" :name="lang">
|
||||
<el-tab-pane v-for="lang in langKeys" :key="lang" :label="langMap[lang]" :name="lang">
|
||||
<el-scrollbar max-height="60vh">
|
||||
<div class="jfd-content">
|
||||
<NodeEditor v-for="sKey in getSectionKeys(lang)" :key="sKey" :parent="formData[lang]"
|
||||
|
|
@ -93,6 +93,10 @@ const props = withDefaults(defineProps<{
|
|||
fieldMap: () => ({}),
|
||||
uploadFile: () => Promise.resolve({}),
|
||||
})
|
||||
const langMap: any = {
|
||||
"ZH": "中文",
|
||||
"EN": "英文"
|
||||
}
|
||||
|
||||
const emit = defineEmits(['close', 'submit'])
|
||||
|
||||
|
|
|
|||
|
|
@ -36,11 +36,14 @@ const data: TableData = {
|
|||
params.translations.ZH.path = params.path
|
||||
delete params.path
|
||||
|
||||
params.translations.ZH.cover = params.cover.image[0] || ''
|
||||
params.translations.EN.cover = params.cover.image[0] || ''
|
||||
let img = params.cover.image[0]
|
||||
if(typeof img === 'object') {
|
||||
img = img.url
|
||||
}
|
||||
params.translations.ZH.cover = img || ''
|
||||
params.translations.EN.cover = img || ''
|
||||
delete params.cover
|
||||
|
||||
|
||||
if(data.id) {
|
||||
await self.api?.updateData(params)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,19 @@ const data: TableData = {
|
|||
video: data.cover_resource.video.map((i: any) => (i.url || i)),
|
||||
}
|
||||
}
|
||||
if(params.publish_time) {
|
||||
params.translations['ZH'].publish_time = params.publish_time
|
||||
params.translations['EN'].publish_time = params.publish_time
|
||||
delete params.publish_time
|
||||
}
|
||||
if(params.covers_show !== undefined) {
|
||||
params.cover_show = params.covers_show
|
||||
delete params.covers_show
|
||||
}
|
||||
|
||||
params.weight = String(params.weight || 0);
|
||||
params.pinned = String(params.pinned || 0);
|
||||
|
||||
if(data.id) {
|
||||
await self.api?.updateData(params)
|
||||
} else {
|
||||
|
|
@ -71,6 +84,14 @@ const data: TableData = {
|
|||
self.bean.locales = LOCALES;
|
||||
self.bean.id = null;
|
||||
self.bean.form = [
|
||||
{
|
||||
key: "weight",
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
key: "pinned",
|
||||
hide: true,
|
||||
},
|
||||
{
|
||||
name: '分类',
|
||||
key: 'category_id',
|
||||
|
|
@ -82,9 +103,17 @@ const data: TableData = {
|
|||
must: true,
|
||||
shouldTranslate: false,
|
||||
},
|
||||
{
|
||||
name: '发布时间',
|
||||
key: 'publish_time',
|
||||
type: 'datetime',
|
||||
value: '',
|
||||
must: true,
|
||||
shouldTranslate: false,
|
||||
},
|
||||
{
|
||||
name: '封面类型',
|
||||
key: 'cover_show',
|
||||
key: 'covers_show',
|
||||
type: 'select',
|
||||
items: [
|
||||
{key: 'image', name: '图片'},
|
||||
|
|
@ -213,7 +242,7 @@ const data: TableData = {
|
|||
{
|
||||
key: 'covers',
|
||||
name: '封面',
|
||||
width: '200px',
|
||||
width: '100px',
|
||||
renderBodyCell(data) {
|
||||
let covers = data.row.covers
|
||||
try {
|
||||
|
|
@ -228,6 +257,9 @@ const data: TableData = {
|
|||
key: 'covers_show',
|
||||
name: '封面类型',
|
||||
width: '100px',
|
||||
renderBodyCell(data) {
|
||||
return <span>{data.row.covers_show ? (data.row.covers_show === 'image' ? '图片' : '视频') : ""}</span>
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'title',
|
||||
|
|
@ -239,15 +271,56 @@ const data: TableData = {
|
|||
name: '内容',
|
||||
},
|
||||
{
|
||||
key: 'create_time',
|
||||
key: 'publish_time',
|
||||
name: '发布时间',
|
||||
width: '150px',
|
||||
},
|
||||
{
|
||||
key: 'create_time',
|
||||
name: '创建时间',
|
||||
width: '150px',
|
||||
sort: 'desc'
|
||||
},
|
||||
{
|
||||
key: 'count',
|
||||
name: '阅读次数',
|
||||
width: '150px'
|
||||
width: '100px'
|
||||
},
|
||||
{
|
||||
key: 'weight',
|
||||
name: '权重',
|
||||
width: '100px',
|
||||
sort: 'desc',
|
||||
editor: {
|
||||
type: 'input',
|
||||
subFun(self, data, row) {
|
||||
return self.api?.updateData({
|
||||
id: String(data.id),
|
||||
category_id: String(row.category_id),
|
||||
weight: data.weight,
|
||||
pinned: String(row.pinned),
|
||||
cover_show: row.covers_show
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'pinned',
|
||||
name: '置于首页(最多3个)',
|
||||
width: '120px',
|
||||
editor: {
|
||||
type: 'switch',
|
||||
openValue: 1,
|
||||
closeValue: 0,
|
||||
subFun(self, data, row) {
|
||||
return self.api?.updateData({
|
||||
id: String(data.id),
|
||||
pinned: String(data.pinned),
|
||||
weight: String(row.weight),
|
||||
cover_show: row.covers_show
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
key: 'table_tools',
|
||||
|
|
|
|||
Loading…
Reference in New Issue