|
@@ -8,8 +8,8 @@
|
|
|
highlight-current-row
|
|
|
:selectConfig="selectConfig"
|
|
|
:table-events="{
|
|
|
- select: select,
|
|
|
- }"
|
|
|
+ select: select,
|
|
|
+ }"
|
|
|
:action-list="[
|
|
|
{
|
|
|
text: '添加栏目文章',
|
|
@@ -21,6 +21,48 @@
|
|
|
</byTable>
|
|
|
<el-dialog z-index="100" :title="modalType == 'add' ? '添加栏目文章' : '编辑栏目文章'" v-if="dialogVisible" v-model="dialogVisible" width="600" v-loading="loading">
|
|
|
<byForm :formConfig="formConfig" :formOption="formOption" v-model="formData.data" :rules="rules" ref="byform">
|
|
|
+ <template #columnSlot>
|
|
|
+ <el-row >
|
|
|
+ <el-col :span="9">
|
|
|
+ <el-form-item prop="columnId">
|
|
|
+ <el-select
|
|
|
+ v-model="formData.data.columnId"
|
|
|
+ :rule="rules.columnId"
|
|
|
+ placeholder="请选择菜单"
|
|
|
+ no-data-text="无数据,请到栏目菜单添加"
|
|
|
+ @change="(val) => getSubMenuList(val)"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in columnListData"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="1"></el-col>
|
|
|
+ <el-col :span="9">
|
|
|
+ <el-form-item prop="subId">
|
|
|
+ <el-select
|
|
|
+ v-model="formData.data.subId"
|
|
|
+ :rule="rules.subId"
|
|
|
+ placeholder="请选择栏目"
|
|
|
+ no-data-text="无数据,请到栏目菜单子栏目添加"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in subColumnListData"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </template>
|
|
|
+
|
|
|
<template #coverList>
|
|
|
<el-row style="width: 100%">
|
|
|
<el-col :span="6">
|
|
@@ -112,8 +154,15 @@ import byForm from "@/components/byForm/index";
|
|
|
import {computed, nextTick, reactive, ref} from "vue";
|
|
|
import TinymceEditor from "@/components/Editor/TinymceEditor.vue";
|
|
|
import {getDictOneByXmhjc, getFileList,getFileStr} from "@/api/XMHJC/common";
|
|
|
-import {addColumnArticle, editColumnArticle, findColumnArticleList, getColumnArticle} from "@/api/XMHJC/column";
|
|
|
+import {
|
|
|
+ addColumnArticle,
|
|
|
+ editColumnArticle,
|
|
|
+ findColumnArticleList,
|
|
|
+ findMenuListByOpen, findSubMenuListByOpen,
|
|
|
+ getColumnArticle
|
|
|
+} from "@/api/XMHJC/column";
|
|
|
import {deleteAboutUsCulture} from "@/api/XMHJC/aboutUs";
|
|
|
+import useUserStore from "@/store/modules/user";
|
|
|
|
|
|
const loading = ref(false);
|
|
|
const submitLoading = ref(false);
|
|
@@ -136,15 +185,55 @@ let rules = ref({
|
|
|
videoUrl: [{ required: true, message: "请输入第三方链接", trigger: "blur" }],
|
|
|
sort: [{ required: true, message: "请输入排序", trigger: "blur" }],
|
|
|
status: [{ required: true, message: "请选择启用状态", trigger: "change" }],
|
|
|
+ columnId: [{ required: true, message: "请选择菜单", trigger: "change" }],
|
|
|
+ subId: [{ required: true, message: "请选择子栏目", trigger: "change" }],
|
|
|
});
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
const bodyListType = ref([]);
|
|
|
const enableStatus = ref([]);
|
|
|
-const selectConfig = [];
|
|
|
+const columnListData = ref([]);
|
|
|
+const subColumnListData = ref([]);
|
|
|
+
|
|
|
+
|
|
|
+const selectConfig = computed(() => {
|
|
|
+ return [
|
|
|
+ {
|
|
|
+ label: "状态",
|
|
|
+ prop: "status",
|
|
|
+ data: enableStatus.value
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "菜单",
|
|
|
+ prop: "columnId",
|
|
|
+ data: columnListData.value.map((x) => ({
|
|
|
+ label: x.name,
|
|
|
+ value: x.id,
|
|
|
+ }))
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // label: "栏目",
|
|
|
+ // prop: "subId",
|
|
|
+ //
|
|
|
+ // },
|
|
|
+]});
|
|
|
const config = computed(() => {
|
|
|
return [
|
|
|
{
|
|
|
attrs: {
|
|
|
+ label: "菜单",
|
|
|
+ prop: "columnIdName",
|
|
|
+ width: '120'
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ attrs: {
|
|
|
+ label: "栏目",
|
|
|
+ prop: "subIdName",
|
|
|
+ width: '120'
|
|
|
+ },
|
|
|
+ },
|
|
|
+ {
|
|
|
+ attrs: {
|
|
|
label: "标题",
|
|
|
prop: "title",
|
|
|
},
|
|
@@ -258,6 +347,13 @@ const byform = ref(null);
|
|
|
const formConfig = computed(() => {
|
|
|
return [
|
|
|
{
|
|
|
+ type: "slot",
|
|
|
+ slotName: "columnSlot",
|
|
|
+ prop: "columnId",
|
|
|
+ label: "菜单",
|
|
|
+ required: true,
|
|
|
+ },
|
|
|
+ {
|
|
|
type: "input",
|
|
|
prop: "title",
|
|
|
label: "标题",
|
|
@@ -339,6 +435,7 @@ const getDictlist = async () => {
|
|
|
label: x.dictValue,
|
|
|
value: x.dictKey,
|
|
|
}));
|
|
|
+
|
|
|
bodyListType.value = res["column_body_type"].map((x) => ({
|
|
|
label: x.dictValue,
|
|
|
value: x.dictKey,
|
|
@@ -435,6 +532,8 @@ const getDtl = async (row) => {
|
|
|
const resFile1 = await getFileList({businessIdList: [response.data.id], fileType: 2})
|
|
|
formData.data.videoList = resFile1.data[response.data.id];
|
|
|
|
|
|
+ getSubMenuList(formData.data.columnId);
|
|
|
+
|
|
|
dialogVisible.value = true;
|
|
|
};
|
|
|
|
|
@@ -482,8 +581,18 @@ const videoListSuccess = (response, uploadFile) => {
|
|
|
];
|
|
|
};
|
|
|
|
|
|
+const getMenuList = async () => {
|
|
|
+ const res = await findMenuListByOpen({})
|
|
|
+ columnListData.value = res.data;
|
|
|
+};
|
|
|
+
|
|
|
+const getSubMenuList = async (id) => {
|
|
|
+ const res = await findSubMenuListByOpen({columnId: id})
|
|
|
+ subColumnListData.value = res.data;
|
|
|
+};
|
|
|
|
|
|
|
|
|
+getMenuList()
|
|
|
getDictlist()
|
|
|
getList()
|
|
|
|