<template>
  <!-- 流程选择 dialog -->
  <ht-dialog
    ref="htDialog"
    custom-class="select-flow-dialog"
    :dialog-title="dialogTitle"
    quick-search-props="defKey,name"
    :data="data"
    :table-columns="tableColumns"
    :pagination="pagination"
    append-to-body
    search-placeholder="统括表单key，名称查询"
    @load="handleLoad"
    @onConfirm="onConfirm"
  ></ht-dialog>
</template>

<script>
  import { getFlowList, getFlowWithOutAuth } from '@/api/personal'
  export default {
    name: 'FlowSelectDialog',
    props: {
      dialogTitle: {
        type: String,
        default: '对话框',
      },
      authFilter: {
        type: Boolean,
        default: false,
      },
    },
    data() {
      return {
        timeVal: '',
        data: [],
        tableColumns: [
          { prop: 'name', label: '名称' },
          { prop: 'defKey', label: '流程key' },
        ],
        pagination: {
          page: 1,
          pageSize: 50,
          total: 0,
        },
        selectResult: [],
      }
    },
    methods: {
      showDialog() {
        this.$refs.htDialog.showDialog()
      },
      handleLoad(param, cb) {
        const api = this.authFilter ? getFlowList : getFlowWithOutAuth
        if (this.authFilter) {
          param.querys = param.querys || []
          param.params = param.params || {}
          param.params['bpmDefAuthorizeRightType'] = 'start'
        }
        api(param)
          .then((rawData) => {
            this.data = rawData.rows
            this.pagination = {
              page: rawData.page,
              pageSize: rawData.pageSize,
              total: rawData.total,
            }
          })
          .finally(() => cb())
      },
      onConfirm(result) {
        // this.selectResult = []
        result.forEach((item) => {
          this.selectResult.push({
            flowKey: item.defKey,
            flowName: item.name,
          })
        })
        this.$emit('get-selected-rows', this.selectResult)
      },
    },
  }
</script>

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