<template>
  <browser class="browser-businesss-table"
      :component-loading="componentLoading"
      :api-config="apiConfig"
      :table-config="tableConfig"
      :permissions="permissions"
      :actions="actions"
      @update:actions="actions = $event">
    <template #queryPanel="{ queryParams: query }">
      <el-form ref="queryForm" :model="query" label-width="100px">
        <el-row class="query-condition">
          <el-col :span="8">
            <el-form-item label="管辖机构" prop="unitName">
              <el-input v-model="query.agencyName" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="行政处罚种类" prop="cflx">
              <el-select v-model="query.cflx" placeholder="选择类型" size="small">
                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"/>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="统计时间" prop="statisticsTime">
              <el-date-picker v-model="query.statisticsTime"
                              type="datetimerange"
                              start-placeholder="开始时间"
                              end-placeholder="结束时间"
                              format="YYYY-MM-DD HH:mm:ss"/>
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </template>
    <el-table-column prop="ay" label="案由" min-width="220"/>
    <el-table-column prop="qymc" label="企业（个人）名称" min-width="220"/>
    <el-table-column prop="jcsj" label="检查时间" min-width="200"/>
    <el-table-column prop="ajly" label="案件来源" min-width="150" />
    <el-table-column prop="cfsx" label="处罚事项" min-width="150" />
    <el-table-column prop="xzcfzl" label="行政处罚种类" min-width="150" />
    <el-table-column prop="fk" label="罚款（万元）" min-width="150" />
    <el-table-column prop="sfxzfy" label="是否行政复议" min-width="150" />
    <el-table-column prop="xzfyjg" label="行政复议结果" min-width="150" />
    <el-table-column prop="sfxzss" label="是否行政诉讼" min-width="150" />
    <el-table-column prop="xzssjg" label="行政诉讼结果" min-width="150" />
    <el-table-column prop="sfnrlhcj" label="是否纳入联合惩戒" min-width="150" />
  </browser>
</template>
<script setup>
import { reactive, toRefs } from 'vue'
import browser from '@/components/Browser.vue'
import lawEnfPenaltyStat from '@/api/lawenforcement/LawEnfPenaltyStat'

const state = reactive({
  componentLoading: false,
  queryParams: {
    query: {}
  },
  permissions: {
    query: true,
    add: false,
    modify: false,
    detail: false,
    delete: false,
    importFile: false,
    exportFile: true,
    exportSelectFile: false,
    downloadTemp: false,
  },
  tableConfig: {
    hasControlColumn: false,
    tableData: [],
    tableLoading: false,
    usePage: false,
    multipleSelect: false,
    lazy: true,
    rowKey: 'agencyCode',
    treeProps: { children: 'children', hasChildren: 'leaf' },
    load: loadTree
  },
  apiConfig: {
    api: lawEnfPenaltyStat,
    modelId: 'enforcementId',
  },
  actions: {
    query: handleQuery
  }
})

const options =  reactive([
  {
    value: '1',
    label: '安全生产行政许可类违法',
  },
  {
    value: '2',
    label: '安全生产管理机构和管理人员类违法',
  },
  {
    value: '3',
    label: '安全生产建设工程项目类违法',
  },
  {
    value: '4',
    label: '安全生产规章制度类违法',
  },
  {
    value: '5',
    label: '安全生产培训教育类违法',
  },
  {
    value: '6',
    label: '安全生产资金投入类违法',
  },
  {
    value: '7',
    label: '安全生产隐患管理类违法',
  },
  {
    value: '8',
    label: '生产安全事故应急救援类违法',
  },
  {
    value: '9',
    label: '安全生产承包租赁类违法',
  },
  {
    value: '10',
    label: '安全生产警示标志类违法',
  },
  {
    value: '11',
    label: '安全生产中介机构类违法',
  },
  {
    value: '12',
    label: '安全设备使用维护类违法',
  },
  {
    value: '13',
    label: '重大危险源管理类违法',
  },
  {
    value: '14',
    label: '生产经营单位作业现场管理类违法',
  },
  {
    value: '15',
    label: '生产安全事故报告类违法',
  },
  {
    value: '16',
    label: '生产安全事故责任类违法',
  },
  {
    value: '17',
    label: '其他',
  },
])

const { componentLoading, queryParams, permissions, tableConfig, apiConfig, actions  } = toRefs(state)

function handleQuery() {
  tableConfig.value.tableLoading = true
  apiConfig.value.api.statistics(queryParams.value).then(res => {
    tableConfig.value.tableLoading = false
    if (res.success) {
      tableConfig.value.tableData = res
      tableConfig.value.tableData.data = [
        {
          'ay' : '安全生产行政许可类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-01 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产管理机构和管理人员类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-02 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产建设工程项目类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-03 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产规章制度类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-04 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产培训教育类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-05 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产资金投入类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-06 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '生产安全事故应急救援类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-07 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产承包租赁类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-08 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产警示标志类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-09 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产中介机构类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-10 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全设备使用维护类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-11 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '重大危险源管理类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-12 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '生产安全事故报告类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-13 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '生产安全事故责任类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-14 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '其他',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-15 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产管理机构和管理人员类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-03-16 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产建设工程项目类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-02-01 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产警示标志类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-02-02 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        },
        {
          'ay' : '安全生产中介机构类违法',
          'qymc' : '西安钢铁集团有限公司',
          'jcsj' : '2025-02-03 15:26:31',
          'ajly' : '现场录入',
          'cfsx' : '危险生成',
          'xzcfzl' : '安全生产',
          'fk' : '10.08',
          'sfxzfy' : '是',
          'xzfyjg' : '通过',
          'sfxzss' : '是',
          'xzssjg' : '通过',
          'sfnrlhcj' : '否'
        }
      ]
    }
  }).finally(() => {
    tableConfig.value.tableLoading = false
  })
}

function loadTree(tree, treeNode, resolve) {
  tableConfig.value.tableLoading = true
  queryParams.value.agencyLevel = tree.agencyLevel + 1
  queryParams.value.agencyCode = tree.agencyCode
  apiConfig.value.api.statistics(queryParams.value).then(res => {
    tableConfig.value.tableLoading = true
    if (res.success) {
      resolve(res.data)
    }
  }).finally(() => {
    tableConfig.value.tableLoading = false
  })
}
</script>
<style lang="scss" scoped>
.browser-businesss-table {
  .browser-businesss-table-dialog-form {
    padding: 10px 20px 10px 20px;
  }
}
</style>
