758 lines
23 KiB
Vue
758 lines
23 KiB
Vue
<template>
|
||
<div>
|
||
<BasicTable @register="registerTable" :searchInfo="searchInfo">
|
||
<template #toolbar>
|
||
<PermissionBtn @btn-event="onBtnClicked" />
|
||
</template>
|
||
|
||
<template #bodyCell="{ column, record }">
|
||
<!-- 乡镇 -->
|
||
<template v-if="column.key === 'streetname'">
|
||
<a v-if="currentOrgLevel == 'country'" @click="getOrgCaseList(column,record)">{{record.streetname}}</a>
|
||
<span v-if="currentOrgLevel == 'street'">{{record.streetname}}</span>
|
||
</template>
|
||
|
||
<!-- 无人机发现数量 -->
|
||
<template v-if="column.key === 'allCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.allCount}}</a>
|
||
</template>
|
||
|
||
<!-- 完成外业核查数量 -->
|
||
<template v-if="column.key === 'handleStatus'">
|
||
<a @click="handlePreViewData(column,record)">{{record.handleStatus}}</a>
|
||
</template>
|
||
|
||
<!-- 24H内为核查 -->
|
||
<template v-if="column.key === 'notDealHour24'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notDealHour24}}</a>
|
||
</template>
|
||
|
||
<!-- 房屋翻新 -->
|
||
<template v-if="column.key === 'typeFanxinCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeFanxinCount}}</a>
|
||
</template>
|
||
|
||
<!-- 房屋加盖 -->
|
||
<template v-if="column.key === 'typeJiagaiCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeJiagaiCount}}</a>
|
||
</template>
|
||
|
||
<!-- 房屋翻建 -->
|
||
<template v-if="column.key === 'typeFanjianCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeFanjianCount}}</a>
|
||
</template>
|
||
|
||
<!-- 存量建设 -->
|
||
<template v-if="column.key === 'typeCunliangCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeCunliangCount}}</a>
|
||
</template>
|
||
|
||
<!-- 推土 -->
|
||
<template v-if="column.key === 'typeTuituCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeTuituCount}}</a>
|
||
</template>
|
||
|
||
<!-- 其他 -->
|
||
<!-- <template v-if="column.key === 'typeOtherCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeOtherCount}}</a>
|
||
</template> -->
|
||
|
||
<!-- 合法 -->
|
||
<template v-if="column.key === 'illegal0Count'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal0Count}}</a>
|
||
</template>
|
||
<!-- 违法 -->
|
||
<template v-if="column.key === 'illegal1Count'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal1Count}}</a>
|
||
</template>
|
||
<!-- 伪变化 -->
|
||
<template v-if="column.key === 'illegal2Count'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal2Count}}</a>
|
||
</template>
|
||
<!-- 外业核实后确定违法数量 -->
|
||
<template v-if="column.key === 'illegal1Count1'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal1Count}}</a>
|
||
</template>
|
||
<!-- 违法面积 -->
|
||
<!-- <template v-if="column.key === 'illegalHandleAreaList'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandleAreaList}}</a>
|
||
</template> -->
|
||
<!-- 整改销号数 -->
|
||
<template v-if="column.key === 'illegalHandle2Status'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle2Status}}</a>
|
||
</template>
|
||
<!-- 销号面积 -->
|
||
<!-- <template v-if="column.key === 'illegalHandle2AreaList'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle2AreaList}}</a>
|
||
</template> -->
|
||
<!-- 尚未整改宗数 -->
|
||
<template v-if="column.key === 'illegalHandle01Status'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle01Status}}</a>
|
||
</template>
|
||
<!-- 尚未整改面积 -->
|
||
<!-- <template v-if="column.key === 'illegalHandle01AreaList'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle01AreaList}}</a>
|
||
</template> -->
|
||
<!-- 3日内未整改完成 -->
|
||
<template v-if="column.key === 'notComplete3'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete3}}</a>
|
||
</template>
|
||
<!-- 7日内未整改完成 -->
|
||
<template v-if="column.key === 'notComplete7'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete7}}</a>
|
||
</template>
|
||
<!-- 30日内未整改完成 -->
|
||
<template v-if="column.key === 'notComplete30'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete30}}</a>
|
||
</template>
|
||
<!-- 30日以上未整改完成 -->
|
||
<template v-if="column.key === 'notComplete30More'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete30More}}</a>
|
||
</template>
|
||
|
||
</template>
|
||
</BasicTable>
|
||
|
||
<div class="data-preview-container" v-if="showRecordList">
|
||
<a-tabs v-model:activeKey="activeKey" hide-add type="editable-card" @edit="onEdit" @change="handleTabChange">
|
||
<a-tab-pane v-for="(pane,index) in tablist" :key="index.toString()" :tab="pane.streetname+'-'+pane.label" :closable="pane.closable">
|
||
</a-tab-pane>
|
||
</a-tabs>
|
||
<RecordList :tablist="tablist" :currentListQuery="currentListQuery.listQuery"></RecordList>
|
||
|
||
<div class="data-preview-container-option">
|
||
|
||
<div @click="exportList()">
|
||
<CloudDownloadOutlined />
|
||
</div>
|
||
<div @click="handleCloseRecordList()">
|
||
<MinusOutlined />
|
||
</div>
|
||
<div @click="handleCloseAllRecordList()">
|
||
<CloseOutlined />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<a-modal
|
||
v-model:open="printOpen"
|
||
title="打印预览"
|
||
width="100%"
|
||
wrap-class-name="full-modal"
|
||
>
|
||
<template #footer>
|
||
<a-button type="primary" v-print="printObj">打印</a-button>
|
||
</template>
|
||
<div id="printMe">
|
||
<BasicTable size="small" @register="registerPrintTable" :searchInfo="searchInfo" style="transform: scale(1);">
|
||
|
||
<template #bodyCell="{ column, record }">
|
||
<!-- 乡镇 -->
|
||
<template v-if="column.key === 'streetname'">
|
||
<a v-if="currentOrgLevel == 'country'" @click="getOrgCaseList(column,record)">{{record.streetname}}</a>
|
||
<span v-if="currentOrgLevel == 'street'">{{record.streetname}}</span>
|
||
</template>
|
||
|
||
<!-- 无人机发现数量 -->
|
||
<template v-if="column.key === 'allCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.allCount}}</a>
|
||
</template>
|
||
|
||
<!-- 完成外业核查数量 -->
|
||
<template v-if="column.key === 'handleStatus'">
|
||
<a @click="handlePreViewData(column,record)">{{record.handleStatus}}</a>
|
||
</template>
|
||
|
||
<!-- 24H内为核查 -->
|
||
<template v-if="column.key === 'notDealHour24'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notDealHour24}}</a>
|
||
</template>
|
||
|
||
<!-- 房屋翻新 -->
|
||
<template v-if="column.key === 'typeFanxinCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeFanxinCount}}</a>
|
||
</template>
|
||
|
||
<!-- 房屋加盖 -->
|
||
<template v-if="column.key === 'typeJiagaiCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeJiagaiCount}}</a>
|
||
</template>
|
||
|
||
<!-- 房屋翻建 -->
|
||
<template v-if="column.key === 'typeFanjianCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeFanjianCount}}</a>
|
||
</template>
|
||
|
||
<!-- 存量建设 -->
|
||
<template v-if="column.key === 'typeCunliangCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeCunliangCount}}</a>
|
||
</template>
|
||
|
||
<!-- 推土 -->
|
||
<template v-if="column.key === 'typeTuituCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeTuituCount}}</a>
|
||
</template>
|
||
|
||
<!-- 其他 -->
|
||
<!-- <template v-if="column.key === 'typeOtherCount'">
|
||
<a @click="handlePreViewData(column,record)">{{record.typeOtherCount}}</a>
|
||
</template> -->
|
||
|
||
<!-- 合法 -->
|
||
<template v-if="column.key === 'illegal0Count'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal0Count}}</a>
|
||
</template>
|
||
<!-- 违法 -->
|
||
<template v-if="column.key === 'illegal1Count'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal1Count}}</a>
|
||
</template>
|
||
<!-- 伪变化 -->
|
||
<template v-if="column.key === 'illegal2Count'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal2Count}}</a>
|
||
</template>
|
||
<!-- 外业核实后确定违法数量 -->
|
||
<template v-if="column.key === 'illegal1Count1'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegal1Count}}</a>
|
||
</template>
|
||
<!-- 违法面积 -->
|
||
<!-- <template v-if="column.key === 'illegalHandleAreaList'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandleAreaList}}</a>
|
||
</template> -->
|
||
<!-- 整改销号数 -->
|
||
<template v-if="column.key === 'illegalHandle2Status'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle2Status}}</a>
|
||
</template>
|
||
<!-- 销号面积 -->
|
||
<!-- <template v-if="column.key === 'illegalHandle2AreaList'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle2AreaList}}</a>
|
||
</template> -->
|
||
<!-- 尚未整改宗数 -->
|
||
<template v-if="column.key === 'illegalHandle01Status'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle01Status}}</a>
|
||
</template>
|
||
<!-- 尚未整改面积 -->
|
||
<!-- <template v-if="column.key === 'illegalHandle01AreaList'">
|
||
<a @click="handlePreViewData(column,record)">{{record.illegalHandle01AreaList}}</a>
|
||
</template> -->
|
||
<!-- 3日内未整改完成 -->
|
||
<template v-if="column.key === 'notComplete3'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete3}}</a>
|
||
</template>
|
||
<!-- 7日内未整改完成 -->
|
||
<template v-if="column.key === 'notComplete7'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete7}}</a>
|
||
</template>
|
||
<!-- 30日内未整改完成 -->
|
||
<template v-if="column.key === 'notComplete30'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete30}}</a>
|
||
</template>
|
||
<!-- 30日以上未整改完成 -->
|
||
<template v-if="column.key === 'notComplete30More'">
|
||
<a @click="handlePreViewData(column,record)">{{record.notComplete30More}}</a>
|
||
</template>
|
||
|
||
</template>
|
||
</BasicTable>
|
||
</div>
|
||
|
||
</a-modal>
|
||
|
||
</div>
|
||
</template>
|
||
<script lang="ts" setup>
|
||
import { ref,reactive } from 'vue';
|
||
|
||
import { BasicTable, useTable, TableAction } from '@/components/Table';
|
||
import { getStatisticalList, deleteRole } from '@/api/demo/system';
|
||
|
||
// import {DataPreivew} from './RecordList.vue'
|
||
|
||
import { useMessage } from '@/hooks/web/useMessage';
|
||
import { useModal } from '@/components/Modal';
|
||
import { RecordList } from './page';
|
||
|
||
import { PermissionBtn } from '@/components/PermissionBtn/index';
|
||
|
||
import { columns, columnsDataPreview,searchFormSchema } from './statistical.data';
|
||
import {MinusOutlined,CloseOutlined,CloudDownloadOutlined} from '@ant-design/icons-vue'
|
||
import axios from 'axios';
|
||
import print from "vue3-print-nb";
|
||
|
||
import { getAppEnvConfig } from '@/utils/env';
|
||
|
||
const { VITE_GLOB_API_URL } = getAppEnvConfig();
|
||
|
||
|
||
const vPrint = print;
|
||
|
||
const printOpen = ref<boolean>(false);
|
||
|
||
const printObj = reactive({
|
||
id:"printMe",
|
||
popTitle: "",
|
||
beforeOpenCallback() {
|
||
|
||
},
|
||
openCallback() {
|
||
|
||
},
|
||
closeCallback() {
|
||
|
||
}
|
||
})
|
||
|
||
defineOptions({ name: 'RoleManagement' });
|
||
|
||
let activeKey = ref('0')
|
||
|
||
const { createConfirm, createMessage } = useMessage();
|
||
const [registerModal, { openModal: openRoleModal }] = useModal();
|
||
const [registerModulesModal, { openModal: openModulesModal }] = useModal();
|
||
const [registerAccountModal, { openModal: openAccountModal }] = useModal();
|
||
const searchInfo = reactive<Recordable>({
|
||
countyid:null
|
||
});
|
||
|
||
const currentOrgLevel = ref<string>("country")
|
||
|
||
const showRecordList = ref<boolean>(false);
|
||
|
||
const panes = reactive<{ title: string; content: string; key: string; closable?: boolean}[]>([])
|
||
const searchParams = ref();
|
||
const [registerTable, { reload, getSelectRows, clearSelectedRowKeys, updateTableData}] = useTable({
|
||
// 表格名称
|
||
title: '统计报表',
|
||
// 获取数据的接口
|
||
api: getStatisticalList,
|
||
// 表单列信息 BasicColumn[]
|
||
columns,
|
||
rowKey: 'id',
|
||
formConfig: {
|
||
labelWidth: 120,
|
||
schemas: searchFormSchema,
|
||
},
|
||
// 使用搜索表单
|
||
useSearchForm: true,
|
||
// 显示表格设置工具
|
||
showTableSetting: true,
|
||
// 是否显示分页
|
||
pagination:false,
|
||
// 是否显示表格边框
|
||
bordered: true,
|
||
// 序号列
|
||
showIndexColumn: false,
|
||
// 勾选列
|
||
rowSelection: false,
|
||
// 搜索
|
||
handleSearchInfoFn(info) {
|
||
searchParams.value = info;
|
||
return info;
|
||
},
|
||
});
|
||
|
||
const [registerPrintTable] = useTable({
|
||
// 表格名称
|
||
title: '',
|
||
// 获取数据的接口
|
||
api: getStatisticalList,
|
||
// 表单列信息 BasicColumn[]
|
||
columns,
|
||
rowKey: 'id',
|
||
formConfig: {
|
||
labelWidth: 120,
|
||
schemas: searchFormSchema,
|
||
},
|
||
// 使用搜索表单
|
||
useSearchForm: false,
|
||
// 显示表格设置工具
|
||
showTableSetting: false,
|
||
// 是否显示分页
|
||
pagination:false,
|
||
// 是否显示表格边框
|
||
bordered: true,
|
||
// 序号列
|
||
showIndexColumn: false,
|
||
// 勾选列
|
||
rowSelection: false,
|
||
// 搜索
|
||
handleSearchInfoFn(info) {
|
||
searchParams.value = info;
|
||
return info;
|
||
},
|
||
});
|
||
|
||
|
||
|
||
|
||
|
||
const [registerTableDataPreview,{ reloadDataPreview, getSelectRowsDataPreview, clearSelectedRowKeysDataPreview }] = useTable({
|
||
// 表格名称
|
||
title: '',
|
||
// 获取数据的接口
|
||
api: getStatisticalList,
|
||
// 表单列信息 BasicColumn[]
|
||
columnsDataPreview,
|
||
rowKey: 'id',
|
||
formConfig: {
|
||
labelWidth: 120,
|
||
// schemas: searchFormSchema,
|
||
},
|
||
// 使用搜索表单
|
||
useSearchForm: false,
|
||
// 显示表格设置工具
|
||
showTableSetting: false,
|
||
// 是否显示表格边框
|
||
bordered: true,
|
||
// 序号列
|
||
showIndexColumn: false,
|
||
// 勾选列
|
||
rowSelection: false,
|
||
// 搜索
|
||
handleSearchInfoFn(info) {
|
||
return info;
|
||
},
|
||
});
|
||
function handleCloseRecordList(){
|
||
showRecordList.value = false;
|
||
}
|
||
function exportList(){
|
||
createMessage.success("接口待对接!")
|
||
}
|
||
|
||
function handleCreate() {
|
||
openRoleModal(true, {
|
||
isUpdate: false,
|
||
});
|
||
}
|
||
function viewAccount(record: Recordable) {
|
||
openAccountModal(true, {
|
||
record,
|
||
});
|
||
}
|
||
function onEdit(targetKey: string){
|
||
tablist.splice(parseInt(targetKey),1);
|
||
if(tablist.length==0){
|
||
showRecordList.value = false;
|
||
}
|
||
if(parseInt(targetKey)>1){
|
||
activeKey.value = (parseInt(targetKey)-1).toString();
|
||
|
||
}else{
|
||
activeKey.value = '0';
|
||
}
|
||
currentListQuery.listQuery = tablist[activeKey.value].listQuery
|
||
}
|
||
|
||
let currentListQuery = reactive({listQuery:{}});
|
||
|
||
function handleTabChange(e){
|
||
currentListQuery.listQuery = tablist[e].listQuery
|
||
|
||
console.log(currentListQuery)
|
||
}
|
||
|
||
|
||
// function remvoeTab(){
|
||
|
||
// }
|
||
|
||
const tablist = reactive<{streetname:string;label:string;listQuery:searchListSchema}[]>([])
|
||
// 查询条件
|
||
interface searchListSchema{
|
||
is_intact?:number;
|
||
streetid?:number;
|
||
countyid?:number;
|
||
identification_start_time?:string;
|
||
identification_end_time?:string;
|
||
page?:number;
|
||
limit?:number;
|
||
is_deal?:number;
|
||
is_not_deal_hour24?:number;
|
||
is_drawback?:number;
|
||
typeid?:number;
|
||
is_illegal?:number;
|
||
is_complete?:number;
|
||
handle_status_id?:number;
|
||
out_time_flag?:number;
|
||
}
|
||
|
||
|
||
|
||
// const searchForm = reactive<searchListSchema>({
|
||
|
||
// })
|
||
|
||
function handlePreViewData(column,record:Recordable){
|
||
|
||
const searchForm = reactive<searchListSchema>({
|
||
identification_start_time:searchParams.value?.identification_start_time,
|
||
identification_end_time:searchParams.value?.identification_end_time,
|
||
is_intact:1,
|
||
page:1,
|
||
limit:10,
|
||
})
|
||
|
||
if(currentOrgLevel.value == 'country'){
|
||
searchForm.countyid = record.streetid;
|
||
}else if(currentOrgLevel.value == 'street'){
|
||
searchForm.streetid = record.streetid;
|
||
}
|
||
|
||
console.log("searchForm",searchForm);
|
||
|
||
switch(column.dataIndex){
|
||
case 'allCount':
|
||
break;
|
||
case 'handleStatus':
|
||
searchForm.is_deal = 1;
|
||
break;
|
||
case 'notDealHour24':
|
||
searchForm.is_not_deal_hour24 = 1;
|
||
searchForm.is_drawback = 0;
|
||
break;
|
||
case 'notDealHour24':
|
||
searchForm.is_not_deal_hour24 = 1;
|
||
searchForm.is_drawback = 0;
|
||
break;
|
||
case 'typeFanxinCount':
|
||
searchForm.typeid = record.typeid
|
||
case 'typeJiagaiCount':
|
||
searchForm.typeid = record.typeid
|
||
case 'typeFanjianCount':
|
||
searchForm.typeid = record.typeid
|
||
case 'typeCunliangCount':
|
||
searchForm.typeid = record.typeid
|
||
case 'typeTuituCount':
|
||
searchForm.typeid = record.typeid
|
||
case 'illegal0Count':
|
||
searchForm.is_illegal = 0;
|
||
searchForm.is_deal = 1;
|
||
break;
|
||
case 'illegal1Count':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_deal = 1;
|
||
break;
|
||
case 'illegal2Count':
|
||
searchForm.is_illegal = 2;
|
||
searchForm.is_deal = 1;
|
||
break;
|
||
case 'illegal1Count1':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_deal = 1;
|
||
break;
|
||
case 'illegalHandle2Status':
|
||
searchForm.handle_status_id = 1;
|
||
searchForm.is_deal = 1;
|
||
break;
|
||
case 'illegalHandle01Status':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_deal = 1;
|
||
searchForm.is_complete = 0;
|
||
break;
|
||
case 'notComplete3':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_complete = 0;
|
||
searchForm.out_time_flag = 1;
|
||
break;
|
||
case 'notComplete7':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_complete = 0;
|
||
searchForm.out_time_flag = 2;
|
||
break;
|
||
case 'notComplete30':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_complete = 0;
|
||
searchForm.out_time_flag = 4;
|
||
break;
|
||
case 'notComplete30More':
|
||
searchForm.is_illegal = 1;
|
||
searchForm.is_complete = 0;
|
||
searchForm.out_time_flag = 5;
|
||
break;
|
||
}
|
||
|
||
let tabItem = {
|
||
streetname:record.streetname,
|
||
label:column.title,
|
||
listQuery:searchForm,
|
||
}
|
||
|
||
tablist.push(tabItem)
|
||
activeKey.value = tablist.length > 1 ? (tablist.length-1).toString() : '0';
|
||
|
||
showRecordList.value = true;
|
||
currentListQuery.listQuery = searchForm
|
||
|
||
}
|
||
|
||
// 获取下级行政结构图斑统计
|
||
function getOrgCaseList(column,record:Recordable){
|
||
|
||
if(currentOrgLevel.value == 'country'){
|
||
currentOrgLevel.value = 'street'
|
||
}else if(currentOrgLevel.value == 'street'){
|
||
currentOrgLevel.value = 'country'
|
||
}
|
||
searchInfo.countyid = record.streetid;
|
||
console.log("searchInfo",searchInfo);
|
||
reload();
|
||
console.log("searchInfo",searchInfo);
|
||
}
|
||
function handleCloseAllRecordList(){
|
||
for(let i=0;i<tablist.length;i++){
|
||
tablist.pop();
|
||
}
|
||
showRecordList.value = false;
|
||
|
||
}
|
||
function handleEdit() {
|
||
let rows = getSelectRows();
|
||
if (rows.length == 0) {
|
||
return createMessage.warn('请勾选一个角色进行编辑');
|
||
}
|
||
const record = rows[0];
|
||
openRoleModal(true, {
|
||
record,
|
||
isUpdate: true,
|
||
});
|
||
}
|
||
|
||
async function handleDelete() {
|
||
let rows = getSelectRows();
|
||
if (rows.length == 0) {
|
||
return createMessage.warn('请勾选一个角色进行删除');
|
||
}
|
||
const query = [rows[0].id];
|
||
createConfirm({
|
||
iconType: 'info',
|
||
title: '删除',
|
||
content: '确定要删除当前角色吗',
|
||
onOk: async () => {
|
||
const data = await deleteRole(query);
|
||
if (data) {
|
||
handleSuccess();
|
||
createMessage.success('删除成功');
|
||
} else {
|
||
createMessage.error('删除失败');
|
||
}
|
||
},
|
||
});
|
||
}
|
||
|
||
function handlePrint(){
|
||
printOpen.value = true;
|
||
}
|
||
|
||
// 直接下载接口返回的二进制流
|
||
|
||
function handleExport(){
|
||
let params = {...searchParams.value}
|
||
params.countyid = searchInfo?.countyid;
|
||
axios({
|
||
method:"post",
|
||
url:VITE_GLOB_API_URL+"/api/DroneCaseinfo/ExportCaseSynthesisCensusStreet",
|
||
params:params,
|
||
headers:{
|
||
"X-Token":localStorage.getItem("X-Token")
|
||
},
|
||
responseType:"blob"
|
||
}).then(res=>{
|
||
console.log("excel",res);
|
||
let fileName = "统计报表" + new Date().getTime() + ".xls";
|
||
const elink = document.createElement('a')
|
||
elink.download = fileName;
|
||
elink.style.display = 'none'
|
||
elink.href = URL.createObjectURL(res.data)
|
||
document.body.appendChild(elink)
|
||
elink.click()
|
||
URL.revokeObjectURL(elink.href)
|
||
document.body.removeChild(elink)
|
||
|
||
})
|
||
}
|
||
|
||
function handleExcelDownload(data) {
|
||
// 将二进制数据转换为Excel文件
|
||
const workbook = XLSX.read(data, { type: 'array' });
|
||
|
||
// 可以进一步处理workbook对象,例如提取工作表数据等
|
||
const firstSheetName = workbook.SheetNames[0];
|
||
const worksheet = workbook.Sheets[firstSheetName];
|
||
const excelData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
|
||
|
||
console.log('Excel Data:', excelData);
|
||
|
||
// 下载Excel文件
|
||
XLSX.writeFile(workbook, 'example.xlsx');
|
||
}
|
||
|
||
|
||
function handleSuccess() {
|
||
clearSelectedRowKeys();
|
||
reload();
|
||
reloadDataPreview();
|
||
}
|
||
|
||
function onBtnClicked(domId) {
|
||
switch (domId) {
|
||
case 'btnBack':
|
||
currentOrgLevel.value = 'street'
|
||
getOrgCaseList({},{streetid:null});
|
||
break;
|
||
case 'btnAdd':
|
||
handleCreate();
|
||
break;
|
||
case 'btnEdit':
|
||
handleEdit();
|
||
break;
|
||
case 'btnDelete':
|
||
handleDelete();
|
||
break;
|
||
case 'btnModules':
|
||
let rows = getSelectRows();
|
||
if (rows.length == 0) {
|
||
return createMessage.warn('请勾选一个角色进行编辑');
|
||
}
|
||
const record = rows[0];
|
||
openModulesModal(true, {
|
||
record,
|
||
});
|
||
break;
|
||
case 'btnPrint':
|
||
handlePrint();
|
||
break;
|
||
case 'btnExport':
|
||
handleExport();
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
</script>
|
||
<style>
|
||
.data-preview-container{
|
||
width:100%;
|
||
height: calc( 100% - 0px);
|
||
position:absolute;
|
||
padding:30px 10px;
|
||
top:0px;
|
||
left:0px;
|
||
background:#fff;
|
||
}
|
||
.data-preview-container-option{
|
||
width:120px;
|
||
height: 40px;
|
||
position:absolute;
|
||
top:30px;
|
||
right:0px;
|
||
}
|
||
.data-preview-container-option div{
|
||
width:40px;
|
||
height:40px;
|
||
line-height:40px;
|
||
float:left;
|
||
text-align: center;
|
||
cursor:pointer;
|
||
}
|
||
</style>
|