You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
296 lines
8.2 KiB
296 lines
8.2 KiB
<template>
|
|
<div>
|
|
<base-page
|
|
:searchParams="searchParams"
|
|
:tableParams="tableParams"
|
|
:tableUrl="tableUrl"
|
|
:addUrl="addUrl"
|
|
:editUrl="editUrl"
|
|
:delUrl="delUrl"
|
|
:editAuth="editAuth"
|
|
:delAuth="delAuth"
|
|
:infoUrl="infoUrl"
|
|
:exportUrl="exportUrl"
|
|
:importUrl="importUrl"
|
|
:mubanUrl="mubanUrl"
|
|
:editParams="editParams"
|
|
:editElseRules="editElseRules"
|
|
:editBtnName="(item) => (!item.latitude ? '待完善' : '修改')"
|
|
idName="articleId"
|
|
></base-page>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import basePage from "@/views/modules/cpts/base/index";
|
|
import { getItemByIdInCascader, collapse } from "@/utils/cascader";
|
|
import { requestPost } from "@/js/dai/request";
|
|
|
|
export default {
|
|
props: {},
|
|
|
|
data() {
|
|
return {
|
|
searchParams: [
|
|
{ field: "活动标题", keyName: "title", type: "input" },
|
|
{
|
|
field: "标签",
|
|
keyName: "tagIds",
|
|
type: "select",
|
|
multiple: true,
|
|
optionUrl: "/gov/voice/tag/taglist",
|
|
optionUrlParams: {},
|
|
optionList: [],
|
|
optionCook(list) {
|
|
return list.map((item) => ({
|
|
label: item.tagName,
|
|
value: item.tagId,
|
|
}));
|
|
},
|
|
},
|
|
{
|
|
field: "状态",
|
|
keyName: "statusFlag",
|
|
value: "",
|
|
type: "select",
|
|
optionUrl: "",
|
|
optionUrlParams: {},
|
|
optionList: [
|
|
{
|
|
label: "全部",
|
|
value: "",
|
|
},
|
|
{
|
|
label: "已发布",
|
|
value: "published",
|
|
},
|
|
{
|
|
label: "已下线",
|
|
value: "offline",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
field: "发布范围",
|
|
keyName: "publishRangeIds",
|
|
type: "cascader",
|
|
optionUrl: "/gov/org/customeragency/agencygridtree",
|
|
optionUrlParams: {
|
|
agencyId: this.$store.state.user.agencyId,
|
|
},
|
|
optionList: [],
|
|
optionProps: {
|
|
multiple: false,
|
|
value: "agencyId",
|
|
label: "agencyName",
|
|
children: "subAgencyList",
|
|
checkStrictly: true,
|
|
},
|
|
optionCook(obj) {
|
|
return [obj];
|
|
},
|
|
supKeys: ["publishRangeId", "publishRangeType"],
|
|
supValues: ["", ""],
|
|
handleChangeFn(vals, item) {
|
|
const { optionList } = item;
|
|
if (vals.length > 0) {
|
|
item["supValues"][0] = vals[vals.length - 1];
|
|
item["supValues"][1] = getItemByIdInCascader(
|
|
optionList,
|
|
vals,
|
|
"agencyId",
|
|
"subAgencyList"
|
|
)[vals.length - 1]["level"];
|
|
} else {
|
|
item["supValues"][0] = "";
|
|
item["supValues"][1] = "";
|
|
}
|
|
},
|
|
},
|
|
{
|
|
field: "发布时间",
|
|
keyName: "publishTime",
|
|
type: "date-range",
|
|
supKeys: ["startTime", "endTime"],
|
|
supValues: ["", ""],
|
|
},
|
|
],
|
|
|
|
tableParams: [
|
|
{ field: "序号", keyName: "", type: "no" },
|
|
{ field: "活动标题", keyName: "title", type: "text" },
|
|
{
|
|
field: "标签",
|
|
keyName: "tagNameList",
|
|
type: "array",
|
|
arrayDiv: "、",
|
|
},
|
|
{ field: "状态", keyName: "statusFlag", type: "text" },
|
|
{ field: "发布单位", keyName: "publisherName", type: "text" },
|
|
{ field: "发布时间", keyName: "publishDate", type: "text" },
|
|
{
|
|
field: "发布范围",
|
|
keyName: "publishRangeDesc",
|
|
type: "array",
|
|
arrayDiv: "、",
|
|
},
|
|
{ field: "置顶", keyName: "isTopName", type: "text" },
|
|
],
|
|
tableUrl: "/gov/voice/article/articleListV2",
|
|
mubanUrl: "",
|
|
importUrl: "",
|
|
exportUrl: "",
|
|
|
|
addUrl: "/gov/voice/article/addOrSaveDraft",
|
|
editUrl: "",
|
|
infoUrl: "/gov/voice/article/detailV2",
|
|
delUrl: "",
|
|
editAuth(item) {
|
|
return false;
|
|
},
|
|
delAuth(item) {
|
|
return false;
|
|
},
|
|
|
|
editParams: [
|
|
{
|
|
field: "文章标题",
|
|
keyName: "title",
|
|
type: "input",
|
|
maxlength: 50,
|
|
editDisabled: true,
|
|
rules: [
|
|
{
|
|
required: true,
|
|
message: "文章标题不能为空",
|
|
trigger: "blur",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
field: "封面图片",
|
|
keyName: "imgArr",
|
|
type: "upload",
|
|
limit: 1,
|
|
editDisabled: true,
|
|
rules: [],
|
|
value: [],
|
|
supKeys: ["imgUrlArr", "imgUrl"],
|
|
supValues: [[], ""],
|
|
beforeImgUpload(file, item, that) {
|
|
console.log(file);
|
|
const isLt1M = file.size / 1024 / 1024 < 10;
|
|
const srcType = file.type;
|
|
|
|
if (!isLt1M) {
|
|
that.$message.error("上传文件大小不能超过 10MB!");
|
|
return false;
|
|
}
|
|
if (srcType.indexOf("image") == -1) {
|
|
that.$message.error("仅限图片格式");
|
|
return false;
|
|
}
|
|
return true;
|
|
},
|
|
},
|
|
{
|
|
field: "发布范围",
|
|
keyName: "gridIdList",
|
|
type: "cascader",
|
|
value: [],
|
|
supKeys: ["publishRangeDesc"],
|
|
supValues: [""],
|
|
optionUrl: "/gov/org/customeragency/agencygridtree",
|
|
optionUrlParams: {
|
|
agencyId: this.$store.state.user.agencyId,
|
|
},
|
|
optionList: [],
|
|
optionProps: {
|
|
multiple: true,
|
|
value: "agencyId",
|
|
label: "agencyName",
|
|
children: "subAgencyList",
|
|
checkStrictly: false,
|
|
emitPath: false,
|
|
},
|
|
optionCook(obj) {
|
|
return [obj];
|
|
},
|
|
handleChangeFn(vals, item, that) {
|
|
console.log("handleChangeFn", vals);
|
|
const { optionList } = item;
|
|
const optionPlaneList = collapse(optionList, "subAgencyList");
|
|
if (vals.length > 0) {
|
|
let selectedList = vals.map(
|
|
(v) =>
|
|
getItemByIdInCascader(
|
|
optionPlaneList,
|
|
[v],
|
|
"agencyId",
|
|
"subAgencyList"
|
|
)[0]
|
|
);
|
|
console.log("handleChangeFn", selectedList);
|
|
let selectedFilterList = selectedList.filter(
|
|
(a) => a.level == "grid"
|
|
);
|
|
that.fmData[item["keyName"]] = selectedFilterList.map(
|
|
(a) => a.agencyId
|
|
);
|
|
that.fmData[item["supKeys"][0]] = selectedFilterList.map(
|
|
(a) => a.agencyName
|
|
);
|
|
} else {
|
|
}
|
|
},
|
|
},
|
|
{
|
|
field: "发布时间",
|
|
keyName: "publishDate",
|
|
type: "date",
|
|
maxlength: 50,
|
|
},
|
|
{
|
|
field: "文章标签",
|
|
keyName: "tagNameList",
|
|
type: "select",
|
|
multiple: true,
|
|
filterable: true,
|
|
allowCreate: true,
|
|
optionUrl: "/gov/voice/tag/taglist",
|
|
optionUrlParams: {},
|
|
optionList: [],
|
|
optionCook(list) {
|
|
return list.map((item) => ({
|
|
label: item.tagName,
|
|
value: item.tagName,
|
|
}));
|
|
},
|
|
},
|
|
{
|
|
field: "内容",
|
|
keyName: "content",
|
|
type: "rich-text",
|
|
},
|
|
{
|
|
field: "置顶",
|
|
keyName: "isTop",
|
|
type: "switch",
|
|
activeValue: "1",
|
|
inactiveValue: "0",
|
|
},
|
|
],
|
|
editElseRules: {},
|
|
};
|
|
},
|
|
components: { basePage },
|
|
computed: {},
|
|
watch: {},
|
|
|
|
async mounted() {},
|
|
|
|
methods: {},
|
|
};
|
|
</script>
|
|
|
|
<style lang="scss" scoped></style>
|
|
|