联调 模版下载 批量导入功能 修改云效bug

This commit is contained in:
GGJ
2024-06-24 16:38:59 +08:00
parent d61db37512
commit 1487f5ceea
9 changed files with 187 additions and 100 deletions

View File

@@ -52,7 +52,7 @@
: ''
}"
>
{{ assessList.score }}
{{ assessList.score == 3.14159 ? '/' : assessList.score }}
<!-- {{ assessList.level }} -->
</span>
</div>
@@ -81,7 +81,7 @@
: ''
}"
>
{{ item.score }}
{{ item.score == 3.14159 ? '/' : item.score }}
</div>
</div>
</div>

View File

@@ -47,7 +47,9 @@ import { getUserReportById } from '@/api/supervision-boot/userReport/form'
import BpmUserReportDetail from '../../components/undocumented/detail.vue'
import { useAdminInfo } from '@/stores/adminInfo'
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 adminInfo = useAdminInfo()
@@ -138,12 +140,13 @@ const tableStore = new TableStore({
return dictData.state.userList.filter(item => item.id == row.cellValue)[0]?.name
}
},
// visible:!jb_pl.value && !jb_dky.value?true:false,
{
title: '操作',
minWidth: 180,
fixed: 'right',
render: 'buttons',
visible:!jb_pl.value && !jb_dky.value?true:false,
buttons: [
{
name: 'productSetting',
@@ -151,36 +154,36 @@ const tableStore = new TableStore({
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
disabled: row => {
return jb_pl.value || jb_dky.value
},
// disabled: row => {
// return jb_pl.value || jb_dky.value
// },
click: row => {
toFangAn(row, 0)
}
},
{
name: 'productSetting',
title: '治理工程申请',
title: '治理工程验收申请',
type: 'primary',
icon: 'el-icon-EditPen',
render: 'basicButton',
disabled: row => {
return jb_pl.value || jb_dky.value
return row.needGovernance == 0
},
click: row => {
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
// }
// }
]
}
],

View File

@@ -23,8 +23,15 @@
</template>
</TableHeader> -->
<div class="header_btn">
<el-button v-if="bussType == 0" icon="" type="primary" @click="toGoNet()">{{ titleButton }}</el-button>
<el-button v-if="bussType == 1 && needGovernance != '0'" icon="" type="primary" @click="toGoNet()">
<el-button v-if="bussType == 0 && !(jb_pl || jb_dky)" 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 }}
</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 areaOptionList = dictData.getBasicData('jibei_area')
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({
url: '/supervision-boot/userReportNormal/userReportGoNetPage',
@@ -196,7 +217,6 @@ const tableStore = new TableStore({
click: row => {
cancelLeave(row)
}
}
]
}

View File

@@ -80,7 +80,7 @@
v-for="(item, index) in userStateList"
:label="item.label"
:value="item.value"
:disabled="item.label != '可研'"
:disabled="item.disabled"
:key="index"
/>
</el-select>
@@ -586,25 +586,30 @@ const userTypeList: any = ref([
}
])
//用户状态数组
const userStateList = reactive([
const userStateList = ref([
{
label: '可研',
value: 0
value: 0,
disabled: false
},
{
label: '建设',
value: 1
value: 1,
disabled: true
},
{
label: '运行',
value: 2
value: 2,
disabled: true
},
{
label: '退运',
value: 3
value: 3,
disabled: true
}
])
const title = ref('')
//获取非线性终端类型树形下拉
const defaultProps = {
children: 'children',
@@ -623,7 +628,7 @@ const resetForm = () => {
userType: 1, //用户性质 1
city: areaOptionList[0].name, //所在地市 1
responsibleDepartment: '', //归口管理部门 1
userStatus: userStateList[0].value, //用户状态 1
userStatus: userStateList.value[0].value, //用户状态 1
projectName: '', //用户名称 1
substation: '', //变电站 1
voltageLevel: voltageLevelList[0].id, //电压等级 1
@@ -967,7 +972,7 @@ const fileRaw = (row: any, key: string) => {
]
for (let k of list) {
if (row[key][k] != null) {
form.value[k] =
form.value[k] =
row[key][k].length == 0
? []
: [
@@ -1351,6 +1356,7 @@ const confirmForm = (flag: boolean) => {
// 过滤用户
const filterUsers = (arr: any) => {
control.value = false
userStateList.value.map(item => (item.disabled = false))
userTypeList.value = userTypeList.value.filter(item => !arr.includes(item.value))
}
defineExpose({ open, filterUsers })

View File

@@ -13,6 +13,13 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="搜索">
<el-input
v-model="tableStore.table.params.searchValue"
placeholder="输入变电站、监测点"
clearable
></el-input>
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>
@@ -100,7 +107,7 @@ const tableStore = new TableStore({
2: 'danger',
3: 'warning',
4: 'info',
null: 'primary'
null: 'primary'
},
replaceValue: {
0: '投运',
@@ -108,7 +115,7 @@ const tableStore = new TableStore({
2: '停运',
3: '调试',
4: '退运',
null:'/'
null: '/'
}
},
{

View File

@@ -13,6 +13,13 @@
></el-option>
</el-select>
</el-form-item>
<el-form-item label="搜索">
<el-input
v-model="tableStore.table.params.searchValue"
placeholder="输入变电站、终端"
clearable
></el-input>
</el-form-item>
</template>
<template #operation>
<el-button icon="el-icon-Plus" type="primary" @click="add">新增</el-button>

View File

@@ -24,7 +24,7 @@
<template #operation>
<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="importUserData">批量导入</el-button>
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
</template>
</TableHeader>
<Table ref="tableRef" />
@@ -181,7 +181,7 @@ const getUserTypeName = (userType: any) => {
return '扩建电网工程'
}
if (userType === 2) {
return ' '
return '新建非线性负荷用户'
}
if (userType === 3) {
return '扩建非线性负荷用户'

View File

@@ -95,83 +95,98 @@ const submit = async () => {
if (valid) {
let data = new FormData()
data.append('file', form.file)
if (title.value == '导入干扰源用户') {
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()
}
})
.then(res => handleImportResponse(title.value, res))
.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()
}
})
.then(res => handleImportResponse(title.value, res))
.finally(() => {
tableStore.index()
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 {
@@ -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 })
</script>

View File

@@ -24,7 +24,7 @@
<template #operation>
<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="importUserData">批量导入</el-button>
<el-button icon="el-icon-Upload" type="primary" @click="importUserData">批量导入</el-button>
</template>
</TableHeader>
<Table ref="tableRef" />