inleft
2022-02-15 d734432a8bbbf863dc3de305f56e831c56ac767a
_web/src/views/main/blogarticle/index.vue
@@ -10,19 +10,16 @@
              </a-form-item>
            </a-col>
            <a-col :md="8" :sm="24">
              <a-form-item label="文章文件id">
                <a-input v-model="queryParam.articleFileId" allow-clear placeholder="请输入文章文件id"/>
              <a-form-item label="文件类型">
                <a-select style="width: 100%" v-model="queryParam.articleFileType" placeholder="请选择文件类型">
                  <a-select-option v-for="(item,index) in articleFileTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
                </a-select>
              </a-form-item>
            </a-col>
            <template v-if="advanced">
              <a-col :md="8" :sm="24">
                <a-form-item label="文件类型 1:markdown 2:html">
                  <a-input v-model="queryParam.articleFileType" allow-clear placeholder="请输入文件类型 1:markdown 2:html"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="文章分类id 0:没有分类">
                  <a-input v-model="queryParam.articleTypeId" allow-clear placeholder="请输入文章分类id 0:没有分类"/>
                <a-form-item label="文章分类">
                  <a-input v-model="queryParam.articleTypeId" allow-clear placeholder="请输入文章分类"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
@@ -31,68 +28,29 @@
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="封面文件地址(id)">
                  <a-input v-model="queryParam.coverFileId" allow-clear placeholder="请输入封面文件地址(id)"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="上次编辑时间">
                  <a-date-picker style="width: 100%" placeholder="请选择上次编辑时间" v-model="queryParam.lastEditorDateDate" @change="onChangelastEditorDate"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="发布时间">
                  <a-date-picker style="width: 100%" placeholder="请选择发布时间" v-model="queryParam.publishDateDate" @change="onChangepublishDate"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="是否置顶 0:否 1:是">
                  <a-input v-model="queryParam.isTop" allow-clear placeholder="请输入是否置顶 0:否 1:是"/>
                <a-form-item label="是否置顶">
                  <a-select style="width: 100%" v-model="queryParam.isTop" placeholder="请选择是否置顶">
                    <a-select-option v-for="(item,index) in isTopData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="置顶值(越小越靠前)">
                  <a-input v-model="queryParam.topValue" allow-clear placeholder="请输入置顶值(越小越靠前)"/>
                <a-form-item label="公开状态">
                  <a-select style="width: 100%" v-model="queryParam.authStatus" placeholder="请选择公开状态">
                    <a-select-option v-for="(item,index) in authStatusData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="公开状态 1:公开 2:私密 3:密码授权">
                  <a-input v-model="queryParam.authStatus" allow-clear placeholder="请输入公开状态 1:公开 2:私密 3:密码授权"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="授权密码(在密码授权状态时)">
                  <a-input v-model="queryParam.authPassword" allow-clear placeholder="请输入授权密码(在密码授权状态时)"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="编辑状态 0:草稿 1:发布">
                  <a-input v-model="queryParam.editorStatus" allow-clear placeholder="请输入编辑状态 0:草稿 1:发布"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="归档年份(以初次发布时间为准)">
                  <a-input v-model="queryParam.separateYear" allow-clear placeholder="请输入归档年份(以初次发布时间为准)"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="归档月份">
                  <a-input v-model="queryParam.separateMonth" allow-clear placeholder="请输入归档月份"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="归档日">
                  <a-input v-model="queryParam.separateDay" allow-clear placeholder="请输入归档日"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="是否启用 0:否 1:是">
                  <a-input v-model="queryParam.isEnable" allow-clear placeholder="请输入是否启用 0:否 1:是"/>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
                <a-form-item label="更新时间">
                  <a-date-picker style="width: 100%" placeholder="请选择更新时间" v-model="queryParam.updateDateDate" @change="onChangeupdateDate"/>
                <a-form-item label="编辑状态">
                  <a-select style="width: 100%" v-model="queryParam.editorStatus" placeholder="请选择编辑状态">
                    <a-select-option v-for="(item,index) in editorStatusData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
                  </a-select>
                </a-form-item>
              </a-col>
              <a-col :md="8" :sm="24">
@@ -125,7 +83,7 @@
        :rowSelection="options.rowSelection"
      >
        <template class="table-operator" slot="operator" v-if="hasPerm('blogArticle:add')" >
          <a-button type="primary" v-if="hasPerm('blogArticle:add')" icon="plus" @click="$refs.addForm.add()">新增blog文章主体</a-button>
          <a-button type="primary" v-if="hasPerm('blogArticle:add')" icon="plus" @click="$refs.addForm.add()">新增blog文章</a-button>
          <a-button type="danger" :disabled="selectedRowKeys.length < 1" v-if="hasPerm('blogArticle:delete')" @click="batchDelete"><a-icon type="delete"/>批量删除</a-button>
          <x-down
            v-if="hasPerm('blogArticle:export')"
@@ -133,6 +91,21 @@
            @batchExport="batchExport"
          />
        </template>
        <span slot="titleScopedSlots" slot-scope="text">
          <ellipsis :length="10" tooltip>{{ text }}</ellipsis>
        </span>
        <span slot="articleFileTypeScopedSlots" slot-scope="text">
          {{ 'blog_file_type' | dictType(text) }}
        </span>
        <span slot="isTopScopedSlots" slot-scope="text">
          {{ 'blog_yes_or_no' | dictType(text) }}
        </span>
        <span slot="authStatusScopedSlots" slot-scope="text">
          {{ 'blog_auth_status' | dictType(text) }}
        </span>
        <span slot="editorStatusScopedSlots" slot-scope="text">
          {{ 'blog_editor_status' | dictType(text) }}
        </span>
        <span slot="action" slot-scope="text, record">
          <a v-if="hasPerm('blogArticle:edit')" @click="$refs.editForm.edit(record)">编辑</a>
          <a-divider type="vertical" v-if="hasPerm('blogArticle:edit') & hasPerm('blogArticle:delete')"/>
@@ -147,13 +120,14 @@
  </div>
</template>
<script>
  import { STable, XDown } from '@/components'
  import { STable, XDown, Ellipsis } from '@/components'
  import moment from 'moment'
  import { blogArticlePage, blogArticleDelete, blogArticleExport } from '@/api/modular/main/blogarticle/blogArticleManage'
  import addForm from './addForm.vue'
  import editForm from './editForm.vue'
  export default {
    components: {
      Ellipsis,
      STable,
      addForm,
      editForm,
@@ -170,32 +144,19 @@
          {
            title: '文章标题',
            align: 'center',
            dataIndex: 'title'
            dataIndex: 'title',
            scopedSlots: { customRender: 'titleScopedSlots' }
          },
          {
            title: '文章文件id',
            title: '文件类型',
            align: 'center',
            dataIndex: 'articleFileId'
            dataIndex: 'articleFileType',
            scopedSlots: { customRender: 'articleFileTypeScopedSlots' }
          },
          {
            title: '文件类型 1:markdown 2:html',
            align: 'center',
            dataIndex: 'articleFileType'
          },
          {
            title: '文章分类id 0:没有分类',
            title: '文章分类',
            align: 'center',
            dataIndex: 'articleTypeId'
          },
          {
            title: '文章引言',
            align: 'center',
            dataIndex: 'introduce'
          },
          {
            title: '封面文件地址(id)',
            align: 'center',
            dataIndex: 'coverFileId'
          },
          {
            title: '上次编辑时间',
@@ -208,54 +169,37 @@
            dataIndex: 'publishDate'
          },
          {
            title: '是否置顶 0:否 1:是',
            title: '是否置顶',
            align: 'center',
            dataIndex: 'isTop'
            dataIndex: 'isTop',
            scopedSlots: { customRender: 'isTopScopedSlots' }
          },
          {
            title: '置顶值(越小越靠前)',
            title: '置顶值',
            align: 'center',
            dataIndex: 'topValue'
          },
          {
            title: '公开状态 1:公开 2:私密 3:密码授权',
            title: '公开状态',
            align: 'center',
            dataIndex: 'authStatus'
            dataIndex: 'authStatus',
            scopedSlots: { customRender: 'authStatusScopedSlots' }
          },
          {
            title: '授权密码(在密码授权状态时)',
            title: '授权密码',
            align: 'center',
            dataIndex: 'authPassword'
          },
          {
            title: '编辑状态 0:草稿 1:发布',
            title: '编辑状态',
            align: 'center',
            dataIndex: 'editorStatus'
            dataIndex: 'editorStatus',
            scopedSlots: { customRender: 'editorStatusScopedSlots' }
          },
          {
            title: '归档年份(以初次发布时间为准)',
            align: 'center',
            dataIndex: 'separateYear'
          },
          {
            title: '归档月份',
            align: 'center',
            dataIndex: 'separateMonth'
          },
          {
            title: '归档日',
            align: 'center',
            dataIndex: 'separateDay'
          },
          {
            title: '是否启用 0:否 1:是',
            title: '是否启用',
            align: 'center',
            dataIndex: 'isEnable'
          },
          {
            title: '更新时间',
            align: 'center',
            dataIndex: 'updateDate'
          },
          {
            title: '创建时间',
@@ -270,6 +214,10 @@
            return res.data
          })
        },
        articleFileTypeData: [],
        isTopData: [],
        authStatusData: [],
        editorStatusData: [],
        selectedRowKeys: [],
        selectedRows: [],
        options: {
@@ -290,6 +238,14 @@
          scopedSlots: { customRender: 'action' }
        })
      }
      const articleFileTypeOption = this.$options
      this.articleFileTypeData = articleFileTypeOption.filters['dictData']('blog_file_type')
      const isTopOption = this.$options
      this.isTopData = isTopOption.filters['dictData']('blog_yes_or_no')
      const authStatusOption = this.$options
      this.authStatusData = authStatusOption.filters['dictData']('blog_auth_status')
      const editorStatusOption = this.$options
      this.editorStatusData = editorStatusOption.filters['dictData']('blog_editor_status')
    },
    methods: {
      moment,
@@ -297,25 +253,11 @@
       * 查询参数组装
       */
      switchingDate () {
        const queryParamlastEditorDate = this.queryParam.lastEditorDateDate
        if (queryParamlastEditorDate != null) {
            this.queryParam.lastEditorDate = moment(queryParamlastEditorDate).format('YYYY-MM-DD')
            if (queryParamlastEditorDate.length < 1) {
                delete this.queryParam.lastEditorDate
            }
        }
        const queryParampublishDate = this.queryParam.publishDateDate
        if (queryParampublishDate != null) {
            this.queryParam.publishDate = moment(queryParampublishDate).format('YYYY-MM-DD')
            if (queryParampublishDate.length < 1) {
                delete this.queryParam.publishDate
            }
        }
        const queryParamupdateDate = this.queryParam.updateDateDate
        if (queryParamupdateDate != null) {
            this.queryParam.updateDate = moment(queryParamupdateDate).format('YYYY-MM-DD')
            if (queryParamupdateDate.length < 1) {
                delete this.queryParam.updateDate
            }
        }
        const queryParamcreateDate = this.queryParam.createDateDate
@@ -357,14 +299,8 @@
      toggleAdvanced () {
        this.advanced = !this.advanced
      },
      onChangelastEditorDate(date, dateString) {
        this.lastEditorDateDateString = dateString
      },
      onChangepublishDate(date, dateString) {
        this.publishDateDateString = dateString
      },
      onChangeupdateDate(date, dateString) {
        this.updateDateDateString = dateString
      },
      onChangecreateDate(date, dateString) {
        this.createDateDateString = dateString