联调 模版下载 批量导入功能 修改云效bug
This commit is contained in:
@@ -52,7 +52,7 @@
|
|||||||
: ''
|
: ''
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
{{ assessList.score }}
|
{{ assessList.score == 3.14159 ? '/' : assessList.score }}
|
||||||
<!-- {{ assessList.level }} -->
|
<!-- {{ assessList.level }} -->
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
: ''
|
: ''
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
{{ item.score }}
|
{{ item.score == 3.14159 ? '/' : item.score }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -47,7 +47,9 @@ import { getUserReportById } from '@/api/supervision-boot/userReport/form'
|
|||||||
import BpmUserReportDetail from '../../components/undocumented/detail.vue'
|
import BpmUserReportDetail from '../../components/undocumented/detail.vue'
|
||||||
import { useAdminInfo } from '@/stores/adminInfo'
|
import { useAdminInfo } from '@/stores/adminInfo'
|
||||||
const dictData = useDictData()
|
const dictData = useDictData()
|
||||||
const areaOptionList = dictData.getBasicData('jibei_area').filter(item => !(item.name == '超高压' || item.name == '风光储'))
|
const areaOptionList = dictData
|
||||||
|
.getBasicData('jibei_area')
|
||||||
|
.filter(item => !(item.name == '超高压' || item.name == '风光储'))
|
||||||
const statusSelect = dictData.statusSelect()
|
const statusSelect = dictData.statusSelect()
|
||||||
//获取登陆用户姓名和部门
|
//获取登陆用户姓名和部门
|
||||||
const adminInfo = useAdminInfo()
|
const adminInfo = useAdminInfo()
|
||||||
@@ -138,12 +140,13 @@ const tableStore = new TableStore({
|
|||||||
return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
|
return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// visible:!jb_pl.value && !jb_dky.value?true:false,
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
minWidth: 180,
|
minWidth: 180,
|
||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
render: 'buttons',
|
render: 'buttons',
|
||||||
visible:!jb_pl.value && !jb_dky.value?true:false,
|
|
||||||
buttons: [
|
buttons: [
|
||||||
{
|
{
|
||||||
name: 'productSetting',
|
name: 'productSetting',
|
||||||
@@ -151,36 +154,36 @@ const tableStore = new TableStore({
|
|||||||
type: 'primary',
|
type: 'primary',
|
||||||
icon: 'el-icon-EditPen',
|
icon: 'el-icon-EditPen',
|
||||||
render: 'basicButton',
|
render: 'basicButton',
|
||||||
disabled: row => {
|
// disabled: row => {
|
||||||
return jb_pl.value || jb_dky.value
|
// return jb_pl.value || jb_dky.value
|
||||||
},
|
// },
|
||||||
click: row => {
|
click: row => {
|
||||||
toFangAn(row, 0)
|
toFangAn(row, 0)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'productSetting',
|
name: 'productSetting',
|
||||||
title: '治理工程申请',
|
title: '治理工程验收申请',
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
icon: 'el-icon-EditPen',
|
icon: 'el-icon-EditPen',
|
||||||
render: 'basicButton',
|
render: 'basicButton',
|
||||||
disabled: row => {
|
disabled: row => {
|
||||||
return jb_pl.value || jb_dky.value
|
return row.needGovernance == 0
|
||||||
},
|
},
|
||||||
click: row => {
|
click: row => {
|
||||||
toFangAn(row, 1)
|
toFangAn(row, 1)
|
||||||
}
|
}
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'productSetting',
|
|
||||||
title: '/',
|
|
||||||
type: 'primary',
|
|
||||||
icon: 'el-icon-EditPen',
|
|
||||||
render: 'basicButton',
|
|
||||||
disabled: row => {
|
|
||||||
return !jb_pl.value && !jb_dky.value
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
// {
|
||||||
|
// name: 'productSetting',
|
||||||
|
// title: '/',
|
||||||
|
// type: 'primary',
|
||||||
|
// icon: 'el-icon-EditPen',
|
||||||
|
// render: 'basicButton',
|
||||||
|
// disabled: row => {
|
||||||
|
// return !jb_pl.value && !jb_dky.value
|
||||||
|
// }
|
||||||
|
// }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -23,8 +23,15 @@
|
|||||||
</template>
|
</template>
|
||||||
</TableHeader> -->
|
</TableHeader> -->
|
||||||
<div class="header_btn">
|
<div class="header_btn">
|
||||||
<el-button v-if="bussType == 0" icon="" type="primary" @click="toGoNet()">{{ titleButton }}</el-button>
|
<el-button v-if="bussType == 0 && !(jb_pl || jb_dky)" icon="" type="primary" @click="toGoNet()">
|
||||||
<el-button v-if="bussType == 1 && needGovernance != '0'" icon="" type="primary" @click="toGoNet()">
|
{{ titleButton }}
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
v-if="bussType == 1 && needGovernance != '0' && !(jb_pl || jb_dky)"
|
||||||
|
icon=""
|
||||||
|
type="primary"
|
||||||
|
@click="toGoNet()"
|
||||||
|
>
|
||||||
{{ titleButton }}
|
{{ titleButton }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button style="margin-left: 50px" :icon="Back" @click="go(-1)">返回</el-button>
|
<el-button style="margin-left: 50px" :icon="Back" @click="go(-1)">返回</el-button>
|
||||||
@@ -65,6 +72,20 @@ const needGovernance = query.needGovernance as unknown as string // 从 URL 传
|
|||||||
const dictData = useDictData()
|
const dictData = useDictData()
|
||||||
const areaOptionList = dictData.getBasicData('jibei_area')
|
const areaOptionList = dictData.getBasicData('jibei_area')
|
||||||
const adminInfo = useAdminInfo()
|
const adminInfo = useAdminInfo()
|
||||||
|
const jb_pl = ref(false)
|
||||||
|
const jb_dky = ref(false)
|
||||||
|
jb_pl.value =
|
||||||
|
adminInfo.$state.roleCode.filter(item => {
|
||||||
|
return item == 'jb_pl'
|
||||||
|
}).length != 0
|
||||||
|
? true
|
||||||
|
: false
|
||||||
|
jb_dky.value =
|
||||||
|
adminInfo.$state.roleCode.filter(item => {
|
||||||
|
return item == 'jb_dky'
|
||||||
|
}).length != 0
|
||||||
|
? true
|
||||||
|
: false
|
||||||
const tableStore = new TableStore({
|
const tableStore = new TableStore({
|
||||||
url: '/supervision-boot/userReportNormal/userReportGoNetPage',
|
url: '/supervision-boot/userReportNormal/userReportGoNetPage',
|
||||||
|
|
||||||
@@ -196,7 +217,6 @@ const tableStore = new TableStore({
|
|||||||
click: row => {
|
click: row => {
|
||||||
cancelLeave(row)
|
cancelLeave(row)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
v-for="(item, index) in userStateList"
|
v-for="(item, index) in userStateList"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
:disabled="item.label != '可研'"
|
:disabled="item.disabled"
|
||||||
:key="index"
|
:key="index"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -586,25 +586,30 @@ const userTypeList: any = ref([
|
|||||||
}
|
}
|
||||||
])
|
])
|
||||||
//用户状态数组
|
//用户状态数组
|
||||||
const userStateList = reactive([
|
const userStateList = ref([
|
||||||
{
|
{
|
||||||
label: '可研',
|
label: '可研',
|
||||||
value: 0
|
value: 0,
|
||||||
|
disabled: false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '建设',
|
label: '建设',
|
||||||
value: 1
|
value: 1,
|
||||||
|
disabled: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '运行',
|
label: '运行',
|
||||||
value: 2
|
value: 2,
|
||||||
|
disabled: true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: '退运',
|
label: '退运',
|
||||||
value: 3
|
value: 3,
|
||||||
|
disabled: true
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
const title = ref('')
|
const title = ref('')
|
||||||
|
|
||||||
//获取非线性终端类型树形下拉
|
//获取非线性终端类型树形下拉
|
||||||
const defaultProps = {
|
const defaultProps = {
|
||||||
children: 'children',
|
children: 'children',
|
||||||
@@ -623,7 +628,7 @@ const resetForm = () => {
|
|||||||
userType: 1, //用户性质 1
|
userType: 1, //用户性质 1
|
||||||
city: areaOptionList[0].name, //所在地市 1
|
city: areaOptionList[0].name, //所在地市 1
|
||||||
responsibleDepartment: '', //归口管理部门 1
|
responsibleDepartment: '', //归口管理部门 1
|
||||||
userStatus: userStateList[0].value, //用户状态 1
|
userStatus: userStateList.value[0].value, //用户状态 1
|
||||||
projectName: '', //用户名称 1
|
projectName: '', //用户名称 1
|
||||||
substation: '', //变电站 1
|
substation: '', //变电站 1
|
||||||
voltageLevel: voltageLevelList[0].id, //电压等级 1
|
voltageLevel: voltageLevelList[0].id, //电压等级 1
|
||||||
@@ -967,7 +972,7 @@ const fileRaw = (row: any, key: string) => {
|
|||||||
]
|
]
|
||||||
for (let k of list) {
|
for (let k of list) {
|
||||||
if (row[key][k] != null) {
|
if (row[key][k] != null) {
|
||||||
form.value[k] =
|
form.value[k] =
|
||||||
row[key][k].length == 0
|
row[key][k].length == 0
|
||||||
? []
|
? []
|
||||||
: [
|
: [
|
||||||
@@ -1351,6 +1356,7 @@ const confirmForm = (flag: boolean) => {
|
|||||||
// 过滤用户
|
// 过滤用户
|
||||||
const filterUsers = (arr: any) => {
|
const filterUsers = (arr: any) => {
|
||||||
control.value = false
|
control.value = false
|
||||||
|
userStateList.value.map(item => (item.disabled = false))
|
||||||
userTypeList.value = userTypeList.value.filter(item => !arr.includes(item.value))
|
userTypeList.value = userTypeList.value.filter(item => !arr.includes(item.value))
|
||||||
}
|
}
|
||||||
defineExpose({ open, filterUsers })
|
defineExpose({ open, filterUsers })
|
||||||
|
|||||||
@@ -13,6 +13,13 @@
|
|||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="搜索">
|
||||||
|
<el-input
|
||||||
|
v-model="tableStore.table.params.searchValue"
|
||||||
|
placeholder="输入变电站、监测点"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<template #operation>
|
<template #operation>
|
||||||
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
|
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
|
||||||
@@ -100,7 +107,7 @@ const tableStore = new TableStore({
|
|||||||
2: 'danger',
|
2: 'danger',
|
||||||
3: 'warning',
|
3: 'warning',
|
||||||
4: 'info',
|
4: 'info',
|
||||||
null: 'primary'
|
null: 'primary'
|
||||||
},
|
},
|
||||||
replaceValue: {
|
replaceValue: {
|
||||||
0: '投运',
|
0: '投运',
|
||||||
@@ -108,7 +115,7 @@ const tableStore = new TableStore({
|
|||||||
2: '停运',
|
2: '停运',
|
||||||
3: '调试',
|
3: '调试',
|
||||||
4: '退运',
|
4: '退运',
|
||||||
null:'/'
|
null: '/'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -13,6 +13,13 @@
|
|||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="搜索">
|
||||||
|
<el-input
|
||||||
|
v-model="tableStore.table.params.searchValue"
|
||||||
|
placeholder="输入变电站、终端"
|
||||||
|
clearable
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
<template #operation>
|
<template #operation>
|
||||||
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
|
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<template #operation>
|
<template #operation>
|
||||||
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
|
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate">模板下载</el-button>
|
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate">模板下载</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="importUserData">批量导入</el-button>
|
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
<Table ref="tableRef" />
|
<Table ref="tableRef" />
|
||||||
@@ -181,7 +181,7 @@ const getUserTypeName = (userType: any) => {
|
|||||||
return '扩建电网工程'
|
return '扩建电网工程'
|
||||||
}
|
}
|
||||||
if (userType === 2) {
|
if (userType === 2) {
|
||||||
return ' '
|
return '新建非线性负荷用户'
|
||||||
}
|
}
|
||||||
if (userType === 3) {
|
if (userType === 3) {
|
||||||
return '扩建非线性负荷用户'
|
return '扩建非线性负荷用户'
|
||||||
|
|||||||
@@ -95,83 +95,98 @@ const submit = async () => {
|
|||||||
if (valid) {
|
if (valid) {
|
||||||
let data = new FormData()
|
let data = new FormData()
|
||||||
data.append('file', form.file)
|
data.append('file', form.file)
|
||||||
if (title.value == '导入干扰源用户') {
|
if (title.value === '导入干扰源用户') {
|
||||||
await importSensitiveReportData(data)
|
await importSensitiveReportData(data)
|
||||||
.then((res: any) => {
|
.then(res => handleImportResponse(title.value, res))
|
||||||
if (res.type === 'application/json') {
|
|
||||||
// 说明是普通对象数据,读取信息
|
|
||||||
const fileReader = new FileReader()
|
|
||||||
fileReader.onloadend = () => {
|
|
||||||
try {
|
|
||||||
const jsonData = JSON.parse(fileReader.result)
|
|
||||||
// 后台信息
|
|
||||||
if (jsonData.code === 'A0000') {
|
|
||||||
ElMessage.success('导入成功')
|
|
||||||
} else {
|
|
||||||
ElMessage.error('导入失败,请查看下载附件!')
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fileReader.readAsText(res)
|
|
||||||
} else {
|
|
||||||
ElMessage.error('导入失败,请查看下载附件!')
|
|
||||||
let blob = new Blob([res], {
|
|
||||||
type: 'application/vnd.ms-excel'
|
|
||||||
})
|
|
||||||
const url = window.URL.createObjectURL(blob)
|
|
||||||
const link = document.createElement('a')
|
|
||||||
link.href = url
|
|
||||||
link.download = '敏感及重要用户失败列表'
|
|
||||||
document.body.appendChild(link)
|
|
||||||
link.click()
|
|
||||||
link.remove()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
eventDataUploadVisible.value = false
|
eventDataUploadVisible.value = false
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
await importSensitiveUserData(data)
|
await importSensitiveUserData(data)
|
||||||
.then((res: any) => {
|
.then(res => handleImportResponse(title.value, res))
|
||||||
if (res.type === 'application/json') {
|
|
||||||
// 说明是普通对象数据,读取信息
|
|
||||||
const fileReader = new FileReader()
|
|
||||||
fileReader.onloadend = () => {
|
|
||||||
try {
|
|
||||||
const jsonData = JSON.parse(fileReader.result)
|
|
||||||
// 后台信息
|
|
||||||
if (jsonData.code === 'A0000') {
|
|
||||||
ElMessage.success('导入成功')
|
|
||||||
} else {
|
|
||||||
ElMessage.error('导入失败,请查看下载附件!')
|
|
||||||
}
|
|
||||||
} catch (err) {
|
|
||||||
console.log(err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fileReader.readAsText(res)
|
|
||||||
} else {
|
|
||||||
ElMessage.error('导入失败,请查看下载附件!')
|
|
||||||
let blob = new Blob([res], {
|
|
||||||
type: 'application/vnd.ms-excel'
|
|
||||||
})
|
|
||||||
const url = window.URL.createObjectURL(blob)
|
|
||||||
const link = document.createElement('a')
|
|
||||||
link.href = url
|
|
||||||
link.download = '敏感及重要用户失败列表'
|
|
||||||
document.body.appendChild(link)
|
|
||||||
link.click()
|
|
||||||
link.remove()
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
eventDataUploadVisible.value = false
|
eventDataUploadVisible.value = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// if (title.value == '导入干扰源用户') {
|
||||||
|
// await importSensitiveReportData(data)
|
||||||
|
// .then((res: any) => {
|
||||||
|
// if (res.type === 'application/json') {
|
||||||
|
// // 说明是普通对象数据,读取信息
|
||||||
|
// const fileReader = new FileReader()
|
||||||
|
// fileReader.onloadend = () => {
|
||||||
|
// try {
|
||||||
|
// const jsonData = JSON.parse(fileReader.result)
|
||||||
|
// // 后台信息
|
||||||
|
// if (jsonData.code === 'A0000') {
|
||||||
|
// ElMessage.success('导入成功')
|
||||||
|
// } else {
|
||||||
|
// ElMessage.error('导入失败,请查看下载附件!')
|
||||||
|
// }
|
||||||
|
// } catch (err) {
|
||||||
|
// console.log(err)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// fileReader.readAsText(res)
|
||||||
|
// } else {
|
||||||
|
// ElMessage.error('导入失败,请查看下载附件!')
|
||||||
|
// let blob = new Blob([res], {
|
||||||
|
// type: 'application/vnd.ms-excel'
|
||||||
|
// })
|
||||||
|
// const url = window.URL.createObjectURL(blob)
|
||||||
|
// const link = document.createElement('a')
|
||||||
|
// link.href = url
|
||||||
|
// link.download = '干扰源用户失败列表'
|
||||||
|
// document.body.appendChild(link)
|
||||||
|
// link.click()
|
||||||
|
// link.remove()
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .finally(() => {
|
||||||
|
// tableStore.index()
|
||||||
|
// eventDataUploadVisible.value = false
|
||||||
|
// })
|
||||||
|
// } else {
|
||||||
|
// await importSensitiveUserData(data)
|
||||||
|
// .then((res: any) => {
|
||||||
|
// if (res.type === 'application/json') {
|
||||||
|
// // 说明是普通对象数据,读取信息
|
||||||
|
// const fileReader = new FileReader()
|
||||||
|
// fileReader.onloadend = () => {
|
||||||
|
// try {
|
||||||
|
// const jsonData = JSON.parse(fileReader.result)
|
||||||
|
// // 后台信息
|
||||||
|
// if (jsonData.code === 'A0000') {
|
||||||
|
// ElMessage.success('导入成功')
|
||||||
|
// } else {
|
||||||
|
// ElMessage.error('导入失败,请查看下载附件!')
|
||||||
|
// }
|
||||||
|
// } catch (err) {
|
||||||
|
// console.log(err)
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// fileReader.readAsText(res)
|
||||||
|
// } else {
|
||||||
|
// ElMessage.error('导入失败,请查看下载附件!')
|
||||||
|
// let blob = new Blob([res], {
|
||||||
|
// type: 'application/vnd.ms-excel'
|
||||||
|
// })
|
||||||
|
// const url = window.URL.createObjectURL(blob)
|
||||||
|
// const link = document.createElement('a')
|
||||||
|
// link.href = url
|
||||||
|
// link.download = '敏感及重要用户失败列表'
|
||||||
|
// document.body.appendChild(link)
|
||||||
|
// link.click()
|
||||||
|
// link.remove()
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// .finally(() => {
|
||||||
|
// tableStore.index()
|
||||||
|
// eventDataUploadVisible.value = false
|
||||||
|
// })
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
@@ -179,6 +194,35 @@ const submit = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function handleImportResponse(title: any, res: any) {
|
||||||
|
if (res.type === 'application/json') {
|
||||||
|
const fileReader = new FileReader()
|
||||||
|
fileReader.onloadend = () => {
|
||||||
|
try {
|
||||||
|
const jsonData = JSON.parse(fileReader.result)
|
||||||
|
if (jsonData.code === 'A0000') {
|
||||||
|
ElMessage.success('导入成功')
|
||||||
|
} else {
|
||||||
|
ElMessage.error('导入失败,请查看下载附件!')
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fileReader.readAsText(res)
|
||||||
|
} else {
|
||||||
|
ElMessage.error('导入失败,请查看下载附件!')
|
||||||
|
let blob = new Blob([res], { type: 'application/vnd.ms-excel' })
|
||||||
|
const url = window.URL.createObjectURL(blob)
|
||||||
|
const link = document.createElement('a')
|
||||||
|
link.href = url
|
||||||
|
link.download = title.includes('干扰源用户') ? '干扰源用户失败列表' : '敏感及重要用户失败列表'
|
||||||
|
document.body.appendChild(link)
|
||||||
|
link.click()
|
||||||
|
link.remove()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defineExpose({ open })
|
defineExpose({ open })
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<template #operation>
|
<template #operation>
|
||||||
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
|
<el-button icon="el-icon-Plus" type="primary" @click="addFormModel">新增</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate">模板下载</el-button>
|
<el-button icon="el-icon-Download" type="primary" @click="exportExcelTemplate">模板下载</el-button>
|
||||||
<el-button icon="el-icon-Download" type="primary" @click="importUserData">批量导入</el-button>
|
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
|
||||||
</template>
|
</template>
|
||||||
</TableHeader>
|
</TableHeader>
|
||||||
<Table ref="tableRef" />
|
<Table ref="tableRef" />
|
||||||
|
|||||||
Reference in New Issue
Block a user