<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 } from "@/utils/cascader";

export default {
  props: {},

  data() {
    return {
      searchParams: [
        { field: "活动标题", keyName: "name", 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: "name",
          type: "input",
          maxlength: 50,
          editDisabled: true,
          rules: [
            {
              required: true,
              message: "文章标题不能为空",
              trigger: "blur",
            },
          ],
        },
        {
          field: "封面图片",
          keyName: "category",
          type: "upload",
          limit: 1,
          editDisabled: true,
          rules: [],
          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: "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: "principalName",
          type: "date",
          maxlength: 50,
        },
        {
          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: "content",
          type: "rich-text",
        },
        {
          field: "置顶",
          keyName: "principalMobile",
          type: "input",
          maxlength: 50,
        },
      ],
      editElseRules: {},
    };
  },
  components: { basePage },
  computed: {},
  watch: {},

  async mounted() {},

  methods: {},
};
</script>

<style lang="scss" scoped></style>
