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