|
@@ -1,35 +1,18 @@
|
|
|
<template>
|
|
|
<div class="tenant">
|
|
|
- <byTable
|
|
|
- :source="sourceList.data"
|
|
|
- :pagination="sourceList.pagination"
|
|
|
- :config="config"
|
|
|
- :loading="loading"
|
|
|
- highlight-current-row
|
|
|
- :selectConfig="selectConfig"
|
|
|
- :table-events="{
|
|
|
+ <byTable :source="sourceList.data" :pagination="sourceList.pagination" :config="config" :loading="loading" highlight-current-row
|
|
|
+ :selectConfig="selectConfig" :table-events="{
|
|
|
select: select,
|
|
|
- }"
|
|
|
-
|
|
|
- @get-list="getList">
|
|
|
+ }" @get-list="getList">
|
|
|
|
|
|
</byTable>
|
|
|
<el-dialog z-index="1100" :title="'编辑栏目文章'" 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 #menuId>
|
|
|
<el-form-item prop="menuId">
|
|
|
- <el-select clearable
|
|
|
- v-model="formData.data.menuId"
|
|
|
- :rule="rules.columnId"
|
|
|
- placeholder="请选择菜单"
|
|
|
- no-data-text="无数据,请到栏目菜单添加"
|
|
|
- @change="(val) => getArticleListSelect(val)"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in columnListData"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- >
|
|
|
+ <el-select clearable v-model="formData.data.menuId" :rule="rules.columnId" placeholder="请选择菜单" no-data-text="无数据,请到栏目菜单添加"
|
|
|
+ @change="(val) => getArticleListSelect(val)">
|
|
|
+ <el-option v-for="item in columnListData" :label="item.name" :value="item.id">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
|
|
@@ -49,18 +32,24 @@
|
|
|
import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
import byTable from "@/components/byTable/index";
|
|
|
import byForm from "@/components/byForm/index";
|
|
|
-import {computed, nextTick, reactive, ref} from "vue";
|
|
|
+import { computed, nextTick, reactive, ref } from "vue";
|
|
|
import TinymceEditor from "@/components/Editor/TinymceEditor.vue";
|
|
|
-import {getDictOneByXmhjc, getFileList,getFileStr} from "@/api/XMHJC/common";
|
|
|
+import { getDictOneByXmhjc, getFileList, getFileStr } from "@/api/XMHJC/common";
|
|
|
import {
|
|
|
- addColumnArticle, deleteColumnArticle,
|
|
|
+ addColumnArticle,
|
|
|
+ deleteColumnArticle,
|
|
|
editColumnArticle,
|
|
|
findColumnArticleList,
|
|
|
- findMenuListByOpen, findSubMenuListByOpen,
|
|
|
- getColumnArticle
|
|
|
+ findMenuListByOpen,
|
|
|
+ findSubMenuListByOpen,
|
|
|
+ getColumnArticle,
|
|
|
} from "@/api/XMHJC/column";
|
|
|
-import {editHomeSetting, findHomeSettingList, getHomeSetting} from "@/api/XMHJC/home";
|
|
|
-import {isNullOrUndefined} from "@tinymce/tinymce-vue/lib/es2015/main/ts/Utils";
|
|
|
+import {
|
|
|
+ editHomeSetting,
|
|
|
+ findHomeSettingList,
|
|
|
+ getHomeSetting,
|
|
|
+} from "@/api/XMHJC/home";
|
|
|
+import { isNullOrUndefined } from "@tinymce/tinymce-vue/lib/es2015/main/ts/Utils";
|
|
|
|
|
|
const loading = ref(false);
|
|
|
const submitLoading = ref(false);
|
|
@@ -92,48 +81,48 @@ const config = computed(() => {
|
|
|
attrs: {
|
|
|
label: "首页位置",
|
|
|
prop: "id",
|
|
|
- width: '120',
|
|
|
+ width: "120",
|
|
|
},
|
|
|
render(id) {
|
|
|
- return '首页位置'+id;
|
|
|
+ return "首页位置" + id;
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "菜单",
|
|
|
prop: "menuIdName",
|
|
|
- width: '200'
|
|
|
+ width: "200",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "标题别名",
|
|
|
prop: "titleAlias",
|
|
|
- width: '180'
|
|
|
+ width: "180",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
label: "英文标题",
|
|
|
prop: "titleEn",
|
|
|
- width: '180'
|
|
|
+ width: "180",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "文章1",
|
|
|
+ label: "内容1",
|
|
|
prop: "articleTitle1",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "文章2",
|
|
|
+ label: "内容2",
|
|
|
prop: "articleTitle2",
|
|
|
},
|
|
|
},
|
|
|
{
|
|
|
attrs: {
|
|
|
- label: "文章3",
|
|
|
+ label: "内容3",
|
|
|
prop: "articleTitle3",
|
|
|
},
|
|
|
},
|
|
@@ -162,8 +151,7 @@ const config = computed(() => {
|
|
|
];
|
|
|
});
|
|
|
let formData = reactive({
|
|
|
- data: {
|
|
|
- },
|
|
|
+ data: {},
|
|
|
});
|
|
|
const formOption = reactive({
|
|
|
inline: true,
|
|
@@ -196,7 +184,7 @@ const formConfig = computed(() => {
|
|
|
{
|
|
|
type: "select",
|
|
|
prop: "article1",
|
|
|
- label: "文章1",
|
|
|
+ label: "内容1",
|
|
|
placeholder: "请选择文章",
|
|
|
data: articleList.value,
|
|
|
clearable: true,
|
|
@@ -205,7 +193,7 @@ const formConfig = computed(() => {
|
|
|
{
|
|
|
type: "select",
|
|
|
prop: "article2",
|
|
|
- label: "文章2",
|
|
|
+ label: "内容2",
|
|
|
placeholder: "请选择文章",
|
|
|
data: articleList.value,
|
|
|
clearable: true,
|
|
@@ -214,7 +202,7 @@ const formConfig = computed(() => {
|
|
|
{
|
|
|
type: "select",
|
|
|
prop: "article3",
|
|
|
- label: "文章3",
|
|
|
+ label: "内容3",
|
|
|
placeholder: "请选择文章",
|
|
|
clearable: true,
|
|
|
data: articleList.value,
|
|
@@ -223,15 +211,12 @@ const formConfig = computed(() => {
|
|
|
];
|
|
|
});
|
|
|
|
|
|
-
|
|
|
-
|
|
|
const getList = async (req) => {
|
|
|
const res = await findHomeSettingList();
|
|
|
sourceList.value.data = res.data;
|
|
|
setTimeout(() => {
|
|
|
loading.value = false;
|
|
|
}, 200);
|
|
|
-
|
|
|
};
|
|
|
|
|
|
const selection = ref({
|
|
@@ -242,10 +227,10 @@ const select = (_selection, row) => {
|
|
|
};
|
|
|
const submitForm = () => {
|
|
|
byform.value.handleSubmit(() => {
|
|
|
-
|
|
|
submitLoading.value = true;
|
|
|
|
|
|
- editHomeSetting(formData.data).then(response => {
|
|
|
+ editHomeSetting(formData.data)
|
|
|
+ .then((response) => {
|
|
|
ElMessage({
|
|
|
message: "编辑成功",
|
|
|
type: "success",
|
|
@@ -253,44 +238,39 @@ const submitForm = () => {
|
|
|
dialogVisible.value = false;
|
|
|
submitLoading.value = false;
|
|
|
getList();
|
|
|
- }).catch(()=>{
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
submitLoading.value = false;
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
});
|
|
|
};
|
|
|
|
|
|
const getDtl = async (row) => {
|
|
|
- const response = await getHomeSetting({ id: row.id })
|
|
|
+ const response = await getHomeSetting({ id: row.id });
|
|
|
formData.data = response.data;
|
|
|
- if (!isNullOrUndefined(formData.data.menuId)){
|
|
|
+ if (!isNullOrUndefined(formData.data.menuId)) {
|
|
|
await getArticleList(formData.data.menuId);
|
|
|
- }else {
|
|
|
- articleList.value =[]
|
|
|
+ } else {
|
|
|
+ articleList.value = [];
|
|
|
}
|
|
|
dialogVisible.value = true;
|
|
|
};
|
|
|
|
|
|
const getMenuList = async () => {
|
|
|
- const res = await findMenuListByOpen({})
|
|
|
- columnListData.value = res.data
|
|
|
+ const res = await findMenuListByOpen({});
|
|
|
+ columnListData.value = res.data;
|
|
|
};
|
|
|
|
|
|
//获取文章列表
|
|
|
const getArticleListSelect = async (value) => {
|
|
|
+ formData.data.article1 = "";
|
|
|
+ formData.data.article2 = "";
|
|
|
+ formData.data.article3 = "";
|
|
|
+ formData.data.article4 = "";
|
|
|
|
|
|
- formData.data.article1 = ""
|
|
|
- formData.data.article2 = ""
|
|
|
- formData.data.article3 = ""
|
|
|
- formData.data.article4 = ""
|
|
|
-
|
|
|
-
|
|
|
- await getArticleList(value)
|
|
|
-
|
|
|
+ await getArticleList(value);
|
|
|
};
|
|
|
|
|
|
-
|
|
|
//获取文章列表
|
|
|
const getArticleList = async (value) => {
|
|
|
const res = await findColumnArticleList({
|
|
@@ -305,16 +285,14 @@ const getArticleList = async (value) => {
|
|
|
}));
|
|
|
};
|
|
|
|
|
|
-
|
|
|
-getMenuList()
|
|
|
-getList()
|
|
|
-
|
|
|
+getMenuList();
|
|
|
+getList();
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.tenant {
|
|
|
padding: 20px;
|
|
|
- .delete-btn{
|
|
|
+ .delete-btn {
|
|
|
margin-top: 10px;
|
|
|
margin-left: 25px;
|
|
|
}
|