Compare commits

..

No commits in common. 'main' and 'duhanyu' have entirely different histories.

@ -5,12 +5,9 @@ VUE_APP_TITLE = 数据中台系统
ENV = 'development'
# 若依管理系统/开发环境
# VUE_APP_BASE_API = 'http://localhost:9035'
# VUE_APP_BASE_API = 'https://vue.ruoyi.vip/prod-api'
# VUE_APP_BASE_API = 'http://39.101.188.84:9035'
VUE_APP_BASE_API = 'http://192.168.0.108:9035'
# VUE_APP_BASE_API = 'https://vue.ruoyi.vip/prod-api'
VUE_APP_BASE_API = 'http://39.101.188.84:9035'
# 路由懒加载

@ -6,7 +6,5 @@ ENV = 'production'
# 若依管理系统/生产环境
# VUE_APP_BASE_API = '/prod-api'
# VUE_APP_BASE_API = 'http://39.101.188.84:9035'
VUE_APP_BASE_API = 'http://20.1.0.157:9035'
VUE_APP_BASE_API = 'http://39.101.188.84:9035'
VUE_CLI_BABEL_TRANSPILE_MODULES = true

@ -1,9 +1,7 @@
import request from '@/utils/request'
import {encrypt} from '@/utils/jsencrypt'
// 登录方法
export function login(username, password, code, uuid) {
password = encrypt(password);
const data = {
username,
password,

@ -42,11 +42,3 @@ export function delCy(id) {
method: 'delete'
})
}
//通用导入信息
export function importCy(data) {
return request({
url: '/tcZz/netWorkYq/cy/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delMtlx(id) {
method: 'delete'
})
}
//通用导入信息
export function importMtlx(data) {
return request({
url: '/tcZz/netWorkYq/mtlx/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delSslx(id) {
method: 'delete'
})
}
//通用导入信息
export function importSslx(data) {
return request({
url: '/tcZz/netWorkYq/sslx/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delYqzs(id) {
method: 'delete'
})
}
//通用导入信息
export function importYqzs(data) {
return request({
url: '/tcZz/netWorkYq/yqzs/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delAqyh(id) {
method: 'delete'
})
}
//通用导入信息
export function importAqyh(data) {
return request({
url: '/tcZz/networkSecurity/aqyh/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delFbqk(id) {
method: 'delete'
})
}
//通用导入信息
export function importFbqk(data) {
return request({
url: '/tcZz/networkSecurity/fbqk/common/importExcel',
method: 'post',
data
})
}

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询监管单位列表
export function listJgdw(query) {
return request({
url: '/tcZz/networkSecurity/jgdw/ListNoToken',
url: '/tcZz/networkSecurity/jgdw/list',
method: 'get',
params: query
})

@ -42,11 +42,3 @@ export function delMap(id) {
method: 'delete'
})
}
//通用导入信息
export function importMap(data) {
return request({
url: '/tcZz/networkSecurity/map/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delTbwc(id) {
method: 'delete'
})
}
//通用导入信息
export function importTbwc(data) {
return request({
url: '/tcZz/networkSecurity/tbwc/common/importExcel',
method: 'post',
data
})
}

@ -42,11 +42,3 @@ export function delTop5(id) {
method: 'delete'
})
}
//通用导入信息
export function importTop5(data) {
return request({
url: '/tcZz/networkSecurity/top5/common/importExcel',
method: 'post',
data
})
}

@ -1,60 +0,0 @@
import request from '@/utils/request'
// 查询政府网站列表
export function listZczccg(query) {
return request({
url: '/tcZz/networkSecurity/zczccg/list',
method: 'get',
params: query
})
}
// 查询政府网站详细
export function getZczccg(id) {
return request({
url: '/tcZz/networkSecurity/zczccg/' + id,
method: 'get'
})
}
// 新增政府网站
export function addZczccg(data) {
return request({
url: '/tcZz/networkSecurity/zczccg',
method: 'post',
data: data
})
}
// 修改政府网站
export function updateZczccg(data) {
return request({
url: '/tcZz/networkSecurity/zczccg',
method: 'put',
data: data
})
}
// 删除政府网站
export function delZczccg(id) {
return request({
url: '/tcZz/networkSecurity/zczccg/' + id,
method: 'delete'
})
}
//批量启用禁用
export function isStatusZczccg(params) {
return request({
url: '/tcZz/networkSecurity/zczccg/isStatus',
method: 'get',
params
})
}
//通用导入信息
export function importZczccg(data) {
return request({
url: '/tcZz/networkSecurity/zczccg/common/importExcel',
method: 'post',
data
})
}

@ -1,60 +0,0 @@
import request from '@/utils/request'
// 查询政府网站列表
export function listZcdwpm(query) {
return request({
url: '/tcZz/networkSecurity/zcdwpm/list',
method: 'get',
params: query
})
}
// 查询政府网站详细
export function getZcdwpm(id) {
return request({
url: '/tcZz/networkSecurity/zcdwpm/' + id,
method: 'get'
})
}
// 新增政府网站
export function addZcdwpm(data) {
return request({
url: '/tcZz/networkSecurity/zcdwpm',
method: 'post',
data: data
})
}
// 修改政府网站
export function updateZcdwpm(data) {
return request({
url: '/tcZz/networkSecurity/zcdwpm',
method: 'put',
data: data
})
}
// 删除政府网站
export function delZcdwpm(id) {
return request({
url: '/tcZz/networkSecurity/zcdwpm/' + id,
method: 'delete'
})
}
//批量启用禁用
// export function isStatusZcdwpm(params) {
// return request({
// url: '/tcZz/networkSecurity/zcdwpm/isStatus',
// method: 'get',
// params
// })
// }
//通用导入信息
export function importZcdwpm(data) {
return request({
url: '/tcZz/networkSecurity/zcdwpm/common/importExcel',
method: 'post',
data
})
}

@ -1,60 +0,0 @@
import request from '@/utils/request'
// 查询政府网站列表
export function listZclds(query) {
return request({
url: '/tcZz/networkSecurity/zclds/list',
method: 'get',
params: query
})
}
// 查询政府网站详细
export function getZclds(id) {
return request({
url: '/tcZz/networkSecurity/zclds/' + id,
method: 'get'
})
}
// 新增政府网站
export function addZclds(data) {
return request({
url: '/tcZz/networkSecurity/zclds',
method: 'post',
data: data
})
}
// 修改政府网站
export function updateZclds(data) {
return request({
url: '/tcZz/networkSecurity/zclds',
method: 'put',
data: data
})
}
// 删除政府网站
export function delZclds(id) {
return request({
url: '/tcZz/networkSecurity/zclds/' + id,
method: 'delete'
})
}
//批量启用禁用
// export function isStatusZclds(params) {
// return request({
// url: '/tcZz/networkSecurity/zclds/isStatus',
// method: 'get',
// params
// })
// }
//通用导入信息
export function importZclds(data) {
return request({
url: '/tcZz/networkSecurity/zclds/common/importExcel',
method: 'post',
data
})
}

@ -1,60 +0,0 @@
import request from '@/utils/request'
// 查询政府网站列表
export function listZclb(query) {
return request({
url: '/tcZz/networkSecurity/zclb/list',
method: 'get',
params: query
})
}
// 查询政府网站详细
export function getZclb(id) {
return request({
url: '/tcZz/networkSecurity/zclb/' + id,
method: 'get'
})
}
// 新增政府网站
export function addZclb(data) {
return request({
url: '/tcZz/networkSecurity/zclb',
method: 'post',
data: data
})
}
// 修改政府网站
export function updateZclb(data) {
return request({
url: '/tcZz/networkSecurity/zclb',
method: 'put',
data: data
})
}
// 删除政府网站
export function delZclb(id) {
return request({
url: '/tcZz/networkSecurity/zclb/' + id,
method: 'delete'
})
}
//批量启用禁用
// export function isStatusZclb(params) {
// return request({
// url: '/tcZz/networkSecurity/zclb/isStatus',
// method: 'get',
// params
// })
// }
//通用导入信息
export function importZclb(data) {
return request({
url: '/tcZz/networkSecurity/zclb/common/importExcel',
method: 'post',
data
})
}

@ -1,8 +1,7 @@
@import "./element-variables.scss";
.container-main {
height: calc(100vh - 84px);
// overflow: hidden;
overflow-y:scroll ;
overflow: hidden;
padding: 0 10px;
//
.search-hearder {
@ -43,19 +42,19 @@
}
//
.el-table .el-table__header-wrapper th {
font-size: 12px;
font-weight: 400;
// height: 35px;
color: #666;
// .el-table .el-table__header-wrapper th {
// font-size: 12px;
// font-weight: 400;
// // height: 35px;
// color: #666;
// background-color: #f2f2f2;
}
.el-table--medium .el-table__cell {
padding: 3px 0;
// height: 35px;
font-size: 12px;
color: #666;
}
// }
// .el-table--medium .el-table__cell {
// padding: 3px 0;
// // height: 35px;
// font-size: 12px;
// color: #666;
// }
.el-table .fixed-width .el-button--mini {
font-size: 12px;
@ -174,9 +173,6 @@ input[type="number"] {
.desLable {
width: 180px !important;
}
.desContent {
width: 400px;
}
.image-title {
margin: 10px 0;

@ -28,7 +28,7 @@
<!-- 文件列表 -->
<transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul">
<li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList">
<el-link :href="`${file.url}`" :underline="false" target="_blank">
<el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank">
<span class="el-icon-document"> {{ file.name }} </span>
</el-link>
<div class="ele-upload-list__item-content-action">
@ -41,7 +41,7 @@
<script>
import { getToken } from "@/utils/auth";
import { MessageBox } from 'element-ui'
export default {
name: "FileUpload",
props: {
@ -149,19 +149,6 @@ export default {
if (res.code === 200) {
this.uploadList.push({ name: res.originalFilename, url: res.fileName });
this.uploadedSuccessfully();
} else {
this.$modal.closeLoading();
if(res.code == 401) {
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = '/tczzpc';
})
}).catch(err=>{
this.number--;
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
})
} else {
this.number--;
this.$modal.closeLoading();
@ -169,7 +156,6 @@ export default {
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
}
},
//
handleDelete(index) {

@ -12,6 +12,7 @@
<script>
import InnerLink from "../InnerLink/index"
export default {
components: { InnerLink },
computed: {

@ -102,8 +102,7 @@ export default {
type: 'warning'
}).then(() => {
this.$store.dispatch('LogOut').then(() => {
location.href = '/tczzpc';
// location.href = '/demo/tczzpc';
location.href = '/demo/tczzpc';
})
}).catch(() => {});
}

@ -1,11 +1,11 @@
<template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
<transition name="sidebarLogoFade">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/tcZz/networkSecurity/sjly/DataSourceTj">
<router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/tcZz/networkSecurity/DataSourceTj">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link>
<router-link v-else key="expand" class="sidebar-logo-link" to="/tcZz/networkSecurity/sjly/DataSourceTj">
<router-link v-else key="expand" class="sidebar-logo-link" to="/tcZz/networkSecurity/DataSourceTj">
<img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link>

@ -181,5 +181,3 @@ export default new Router({
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
})

@ -16,7 +16,6 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// baseURL: location.origin + process.env.VUE_APP_URL,
// 超时
timeout: 100000
})

@ -98,7 +98,7 @@ export default {
watch: {
$route: {
handler: function(route) {
this.redirect = '/tcZz/networkSecurity/sjly/DataSourceTj';
this.redirect = 'tcZz/networkSecurity/sjly/DataSourceTj';
// this.redirect = route.query && route.query.redirect;
},
immediate: true

@ -1,28 +1,13 @@
<template>
<el-form ref="form" :model="user" :rules="rules" label-width="80px">
<el-form-item label="旧密码" prop="oldPassword">
<el-input
v-model="user.oldPassword"
placeholder="请输入旧密码"
type="password"
show-password
/>
<el-input v-model="user.oldPassword" placeholder="请输入旧密码" type="password" show-password/>
</el-form-item>
<el-form-item label="新密码" prop="newPassword">
<el-input
v-model="user.newPassword"
placeholder="请输入新密码"
type="password"
show-password
/>
<el-input v-model="user.newPassword" placeholder="请输入新密码" type="password" show-password/>
</el-form-item>
<el-form-item label="确认密码" prop="confirmPassword">
<el-input
v-model="user.confirmPassword"
placeholder="请确认新密码"
type="password"
show-password
/>
<el-input v-model="user.confirmPassword" placeholder="请确认新密码" type="password" show-password/>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" @click="submit"></el-button>
@ -33,7 +18,6 @@
<script>
import { updateUserPwd } from "@/api/system/user";
import {encrypt} from '@/utils/jsencrypt'
export default {
data() {
@ -48,46 +32,37 @@ export default {
user: {
oldPassword: undefined,
newPassword: undefined,
confirmPassword: undefined,
confirmPassword: undefined
},
//
rules: {
oldPassword: [
{ required: true, message: "旧密码不能为空", trigger: "blur" },
{ required: true, message: "旧密码不能为空", trigger: "blur" }
],
newPassword: [
{ required: true, message: "新密码不能为空", trigger: "blur" },
{
min: 6,
max: 20,
message: "长度在 6 到 20 个字符",
trigger: "blur",
},
{ min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur" }
],
confirmPassword: [
{ required: true, message: "确认密码不能为空", trigger: "blur" },
{ required: true, validator: equalToPassword, trigger: "blur" },
],
},
{ required: true, validator: equalToPassword, trigger: "blur" }
]
}
};
},
methods: {
submit() {
this.$refs["form"].validate((valid) => {
this.$refs["form"].validate(valid => {
if (valid) {
const oldPassword = encrypt(this.user.oldPassword);
const newPassword = encrypt(this.user.newPassword);
updateUserPwd(oldPassword, newPassword).then(
(response) => {
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
this.$modal.msgSuccess("修改成功");
}
);
});
}
});
},
close() {
this.$tab.closePage();
},
},
}
}
};
</script>

@ -237,6 +237,16 @@
<el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<!-- <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域">
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="类型" prop="type">
<el-select v-model="form.type" placeholder="请选择类型">
<el-option
@ -291,8 +301,7 @@
<el-descriptions-item label="账号ID">{{ form.zhId }}</el-descriptions-item>
<!-- <el-descriptions-item label="网址">{{ form.url }}</el-descriptions-item> -->
<el-descriptions-item label="网址"><a :href="form.url" target="blank">网址</a></el-descriptions-item>
<el-descriptions-item label="网址">{{ form.url }}</el-descriptions-item>
<el-descriptions-item label="类型">{{ selectDictLabel(dict.type.tc_bztype,form.type) }}</el-descriptions-item>
@ -605,9 +614,3 @@
}
</script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -261,7 +261,7 @@
<!-- <el-form-item label="文件名称" prop="fileName">
<el-input v-model="form.fileName" placeholder="请输入文件名称" />
</el-form-item> -->
<!-- <el-form-item label="文件">
<el-form-item label="文件">
<el-button @click="addDomain" type="primary">添加文件</el-button>
</el-form-item>
<div v-for="(domain, index) in form.domains" :key="index" class="file-item">
@ -284,10 +284,10 @@
<el-input v-model="domain.fileUrl" placeholder="请输入文件路径"></el-input>
</el-form-item>
<el-button @click.prevent="removeDomain(domain)" type="danger" size="mini">删除</el-button>
</div> -->
<el-form-item label="文件上传" prop='fileNameS'>
</div>
<!-- <el-form-item label="文件路径(完整路径)">
<fileUpload v-model="fileNameS"/>
</el-form-item>
</el-form-item> -->
<el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
@ -311,7 +311,6 @@
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="工作动态" :column="2" border labelClassName="desLable">
<el-descriptions-item label="区域">{{ selectDictLabel(dict.type.tc_area,form.areaId) }}</el-descriptions-item>
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
@ -409,12 +408,12 @@
},
//
form: {
// domains: [
// {
// fileName: "",
// fileUrl: ""
// }
// ],
domains: [
{
fileName: "",
fileUrl: ""
}
],
},
//
rules: {
@ -428,7 +427,7 @@
{ required: true, message: '请输入类型', trigger: 'blur' },
],
},
fileNameS:[],
// fileNameS:[],
fileList:[],
files:[],
};
@ -488,12 +487,12 @@
updateTime: null,
remark: null,
// domains: [
// {
// fileName: "",
// fileUrl: ""
// }
// ],
domains: [
{
fileName: "",
fileUrl: ""
}
],
};
this.resetForm("form");
},
@ -548,7 +547,7 @@
this.form = response.data;
let arr1 = this.form.fileName.split(',');
let arr2 = this.form.fileUrl.split(',');
if(arr1[0] !== '' && arr1.length > 0 && arr2.length > 0) {
if(arr1[0] !== '' && arr1.length > 1 && arr2.length > 1) {
arr1.forEach((item,index)=>{
let obj = {};
obj.name = item;
@ -565,61 +564,50 @@
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = [];
// this.fileNameS = [];
this.open = true;
this.title = "添加工作动态";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = []
// this.fileNameS = []
const id = row.id || this.ids
getGzdt(id).then(response => {
this.form = response.data;
console.log(this.form)
// this.form.areaId = response.data.areaId;
// this.form.isStatus = response.data.isStatus;
// this.form.title = response.data.title;
// this.form.type = response.data.type;
// this.form.createTime = response.data.createTime;
// this.form.remark = response.data.remark;
// this.form.id = response.data.id;
// if (response.data.fileName && response.data.fileUrl) {
// let arr1 = response.data.fileName.split(",");
// let arr2 = response.data.fileUrl.split(",");
// if(arr1.length > 1) {
// this.form.domains = [];
// arr1.forEach((value, index) => {
// this.form.domains.push({
// fileName: value,
// fileUrl: arr2[index],
// });
// });
// } else {
// this.form.domains = [
// {
// fileName: arr1[0],
// fileUrl: arr2[0],
// }
// ];
// }
// } else {
// this.form.domains = [
// {
// fileName: '',
// fileUrl: '',
// }
// ];
// }
// this.form = response.data;
this.form.areaId = response.data.areaId;
this.form.isStatus = response.data.isStatus;
this.form.title = response.data.title;
this.form.type = response.data.type;
this.form.createTime = response.data.createTime;
this.form.remark = response.data.remark;
this.form.id = response.data.id;
if (response.data.fileName && response.data.fileUrl) {
let arr1 = response.data.fileName.split(",");
let arr2 = response.data.fileUrl.split(",");
arr1.forEach((name,index) =>{
let obj = {};
obj.name = name;
obj.url = arr2[index]
this.fileNameS.push(obj)
})
if(arr1.length > 1) {
this.form.domains = [];
arr1.forEach((value, index) => {
this.form.domains.push({
fileName: value,
fileUrl: arr2[index],
});
});
} else {
this.form.domains = [
{
fileName: arr1[0],
fileUrl: arr2[0],
}
];
}
} else {
this.form.domains = [
{
fileName: '',
fileUrl: '',
}
];
}
this.open = true;
this.title = "修改工作动态";
@ -638,20 +626,14 @@
},
/** 提交按钮 */
submitForm() {
let reg = new RegExp('http')
let arr1 = [];
let arr2 = [];
this.fileNameS.forEach((value) => {
arr1.push(value.name);
if(reg.test(value.url)){
arr2.push(value.url);
} else {
arr2.push(process.env.VUE_APP_BASE_API + value.url);
}
this.form.domains.forEach((value) => {
arr1.push(value.fileName);
arr2.push(value.fileUrl);
});
this.form.fileName = arr1.join(",");
this.form.fileUrl = arr2.join(",");
if(this.form.fileName && this.form.fileUrl) {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
@ -669,9 +651,6 @@
}
}
});
} else {
this.$modal.msgError('请上传文件')
}
},
/** 删除按钮操作 */
handleDelete(row) {
@ -723,19 +702,19 @@
// this.$model.msgError("");
// });
},
// addDomain() {
// // console.log(this.form.domains,'domains')
// this.form.domains.push({
// fileUrl: '',
// fileName: '',
// });
// },
// removeDomain(item) {
// var index = this.form.domains.indexOf(item)
// if (index !== -1) {
// this.form.domains.splice(index, 1)
// }
// },
addDomain() {
// console.log(this.form.domains,'domains')
this.form.domains.push({
fileUrl: '',
fileName: '',
});
},
removeDomain(item) {
var index = this.form.domains.indexOf(item)
if (index !== -1) {
this.form.domains.splice(index, 1)
}
},
}
}

@ -1,12 +1,7 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
<!-- <el-form-item label="${comment}" prop="id">
<el-input
v-model="queryParams.id"
@ -94,16 +89,8 @@
/>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</div>
@ -121,18 +108,14 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/netManage:jbsjndfltj:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/netManage:jbsjndfltj:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
>删除</el-button>
<el-button
type="warning"
size="mini"
@ -142,11 +125,7 @@
>导出</el-button
>
</div>
<el-table
v-loading="loading"
:data="jbsjndfltjList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="jbsjndfltjList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="类型" align="center" prop="type">
@ -156,13 +135,7 @@
</el-table-column>
<el-table-column label="数量" align="center" prop="count" />
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@ -176,15 +149,13 @@
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:jbsjndfltj:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:jbsjndfltj:remove']"
>删除</el-button
>
>删除</el-button>
</template>
</el-table-column>
</el-table>
@ -198,20 +169,9 @@
/>
<!-- 添加或修改举报事件年度分类统计对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<el-form-item label="类型" prop="type">
<el-input
v-model="form.type"
@ -230,21 +190,11 @@
</el-select> -->
</el-form-item>
<el-form-item label="数量" prop="count">
<el-input
v-model="form.count"
type="number"
placeholder="请输入数量"
/>
<el-input v-model="form.count" type="number" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input
v-model="form.remark"
resize="none"
:rows="5"
type="textarea"
placeholder="请输入备注"
/>
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -261,52 +211,26 @@
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="举报事件年度分类统计"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="类型">{{
form.type
}}</el-descriptions-item>
<el-descriptions title="举报事件年度分类统计" :column="2" border labelClassName="desLable">
<el-descriptions-item label="类型">{{ form.type }}</el-descriptions-item>
<el-descriptions-item label="数量">{{ form.count }}</el-descriptions-item>
<el-descriptions-item label="数量">{{
form.count
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/netManage/jbsjndfltj/common/importExcel"
importUrl="/tcZz/netManage/jbsjndfltj/importTemplate"
importName="举报年度事件分类统计"
:getList="getList"
></import-dialog>
</div>
</template>
<script>
import {
listJbsjndfltj,
getJbsjndfltj,
delJbsjndfltj,
addJbsjndfltj,
updateJbsjndfltj,
exportJbsjndfltj,
importExcel,
} from "@/api/tcZz/netManage/jbsjndfltj";
import importDialog from "@/views/components/importDialog/index.vue";
import { listJbsjndfltj, getJbsjndfltj, delJbsjndfltj, addJbsjndfltj, updateJbsjndfltj, exportJbsjndfltj, importExcel } from "@/api/tcZz/netManage/jbsjndfltj";
export default {
name: "Jbsjndfltj",
components: { importDialog },
//
data() {
return {
@ -314,7 +238,7 @@ export default {
//
infoOpen:false,
//
infoTitle: "",
infoTitle:'',
//
loading: true,
//
@ -358,40 +282,41 @@ export default {
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
type: [{ required: true, message: "请输入类型", trigger: "blur" }],
count: [{ required: true, message: "请输入数量", trigger: "blur" }],
type:[
{ required: true, message: '请输入类型', trigger: 'blur' },
],
count:[
{ required: true, message: '请输入数量', trigger: 'blur' },
],
},
fileList:[],
};
},
created() {
this.getList();
},
methods: {
/** 导入按钮操作 */
exportFile() {
this.$refs.importdialog.open();
},
/** 查询举报事件年度分类统计列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listJbsjndfltj(this.queryParams).then((response) => {
listJbsjndfltj(this.queryParams).then(response => {
this.jbsjndfltjList = response.rows;
this.total = response.total;
this.loading = false;
@ -420,6 +345,7 @@ export default {
updateTime: null,
remark: null,
};
this.resetForm("form");
},
@ -437,18 +363,18 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/**查看按钮操作 */
handleInfo(row){
this.reset();
const id = row.id || this.ids;
getJbsjndfltj(id).then((response) => {
const id = row.id || this.ids
getJbsjndfltj(id).then(response => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看举报事件年度分类统计详情";
this.infoTitle = "查看举报事件年度分类统计详情"
});
},
/** 新增按钮操作 */
@ -460,8 +386,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getJbsjndfltj(id).then((response) => {
const id = row.id || this.ids
getJbsjndfltj(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改举报事件年度分类统计";
@ -469,16 +395,16 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateJbsjndfltj(this.form).then((response) => {
updateJbsjndfltj(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addJbsjndfltj(this.form).then((response) => {
addJbsjndfltj(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -493,37 +419,29 @@ export default {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
type: "warning"
}).then(function() {
return delJbsjndfltj(ids);
})
.then(() => {
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有举报事件年度分类统计数据项?", "警告", {
this.$confirm('是否确认导出所有举报事件年度分类统计数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/netManage/jbsjndfltj/export",
{
...this.queryParams,
},
"举报事件年度分类统计_" + new Date().getTime() + ".xlsx"
);
type: "warning"
}).then(() => {
this.download('/tcZz/netManage/jbsjndfltj/export', {
...this.queryParams
}, '举报事件年度分类统计_'+ new Date().getTime() +'.xlsx')
this.exportLoading = false;
})
.catch(() => {});
}).catch(() => {});
},
},
};
}
}
</script>

@ -240,10 +240,10 @@
<!-- <editor v-model="form.content" :min-height="192"/> -->
<el-input v-model="form.content" resize="none" :rows="5" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="图片上传">
<imageUpload v-model="imageUrls"/>
</el-form-item>
<!-- <el-form-item label="文件">
<!-- <el-form-item label="图片路径(完整路径)">
<imageUpload v-model="form.imageUrl"/>
</el-form-item> -->
<el-form-item label="文件">
<el-button @click="addDomain" type="primary">添加图片</el-button>
</el-form-item>
<div v-for="(domain, index) in form.domains" :key="index" class="file-item">
@ -257,7 +257,7 @@
<el-input v-model="domain.imageUrl" placeholder="请输入图片路径"></el-input>
</el-form-item>
<el-button @click.prevent="removeDomain(domain)" type="danger" size="mini">删除</el-button>
</div> -->
</div>
<el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
@ -280,7 +280,7 @@
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="清朗专项行动动态" :column="2" border labelClassName="desLable" contentClassName="desContent">
<el-descriptions title="清朗专项行动动态" :column="2" border labelClassName="desLable">
<!-- <el-descriptions-item label="区域">{{ selectDictLabel(dict.type.tc_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
@ -289,18 +289,7 @@
<el-descriptions-item label="内容"><div v-html='form.content'></div></el-descriptions-item>
<!-- <el-descriptions-item label="图片路径(完整路径)"><div class="images-box"><img v-for="(url,index) in images" :key="index" :src="url"></img></div></el-descriptions-item> -->
<el-descriptions-item label="图片">
<div class="images-box">
<el-image
v-for="(url,index) in images"
:key="index"
style="width: 150px"
:src="url"
:preview-src-list="srcList">
</el-image>
</div>
</el-descriptions-item>
<el-descriptions-item label="图片路径(完整路径)"><a v-for="(url,index) in images" :key="index" :href="url" target="blank"></a></el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
@ -383,11 +372,11 @@
},
//
form: {
// domains: [
// {
// imageUrl: ""
// }
// ],
domains: [
{
imageUrl: ""
}
],
},
//
rules: {
@ -400,14 +389,9 @@
content:[
{ required: true, message: '请输入内容', trigger: 'blur' },
],
imageUrl:[
{ required: true, message: '请上传图片', trigger: 'blur' },
],
},
fileList:[],
images:[],
imageUrls:'',
srcList:[],
};
},
created() {
@ -464,11 +448,11 @@
remark: null,
// domains: [
// {
// imageUrl: ""
// }
// ],
domains: [
{
imageUrl: ""
}
],
};
this.resetForm("form");
@ -519,12 +503,10 @@
handleInfo(row){
this.reset();
this.images = [];
this.srcList = [];
const id = row.id || this.ids
getQlzxxddt(id).then(response => {
this.form = response.data;
this.images = this.form.imageUrl.split(',');
this.srcList = this.form.imageUrl.split(',');
this.infoOpen = true;
this.infoTitle = "查看清朗专项行动动态详情"
});
@ -540,38 +522,36 @@
this.reset();
const id = row.id || this.ids
getQlzxxddt(id).then(response => {
this.form = response.data;
this.imageUrls = this.form.imageUrl
// this.form.isStatus = response.data.isStatus;
// this.form.title = response.data.title;
// this.form.content = response.data.content;
// this.form.createTime = response.data.createTime;
// this.form.remark = response.data.remark;
// this.form.id = response.data.id;
// if (response.data.imageUrl) {
// let arr1 = response.data.imageUrl.split(",");
// if(arr1.length > 1) {
// this.form.domains = [];
// arr1.forEach((value, index) => {
// this.form.domains.push({
// imageUrl: value,
// });
// });
// } else {
// this.form.domains = [
// {
// imageUrl: arr1[0],
// }
// ];
// }
// } else {
// this.form.domains = [
// {
// imageUrl: '',
// }
// ];
// }
// this.form = response.data;
this.form.isStatus = response.data.isStatus;
this.form.title = response.data.title;
this.form.content = response.data.content;
this.form.createTime = response.data.createTime;
this.form.remark = response.data.remark;
this.form.id = response.data.id;
if (response.data.imageUrl) {
let arr1 = response.data.imageUrl.split(",");
if(arr1.length > 1) {
this.form.domains = [];
arr1.forEach((value, index) => {
this.form.domains.push({
imageUrl: value,
});
});
} else {
this.form.domains = [
{
imageUrl: arr1[0],
}
];
}
} else {
this.form.domains = [
{
imageUrl: '',
}
];
}
this.open = true;
this.title = "修改清朗专项行动动态";
});
@ -590,22 +570,10 @@
/** 提交按钮 */
submitForm() {
let arr1 = [];
// this.form.domains.forEach((value) => {
// arr1.push(value.imageUrl);
// });
let images = this.imageUrls.split(',')
let reg = new RegExp('http')
if(images.length > 0 && images[0] !== ''){
images.forEach(item=>{
if(reg.test(item)){
item = item;
} else {
item = process.env.VUE_APP_BASE_API + item;
}
arr1.push(item)
})
}
this.form.imageUrl = arr1.join(',')
this.form.domains.forEach((value) => {
arr1.push(value.imageUrl);
});
this.form.imageUrl = arr1.join(",");
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
@ -704,14 +672,9 @@
}
}
}
.images-box {
display: flex;
flex-wrap: wrap;
width: 100%;
img {
// width: 150px;
margin: 5px;
}
a {
color: #0072c6;
margin: 0 5px;
}
}
}

@ -1,12 +1,7 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
<!-- <el-form-item label="${comment}" prop="id">
<el-input
v-model="queryParams.id"
@ -98,16 +93,8 @@
/>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</div>
@ -125,18 +112,14 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
>删除</el-button>
<el-button
type="warning"
size="mini"
@ -146,32 +129,18 @@
>导出</el-button
>
</div>
<el-table
v-loading="loading"
:data="qlzxxdsjtjList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="qlzxxdsjtjList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="日期" align="center" prop="dateTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.dateTime, "{y}-{m}-{d}") }}</span>
<span>{{ parseTime(scope.row.dateTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="处理有害信息数量" align="center" prop="count1" />
<el-table-column
label="关闭直播平台违规账号(个)"
align="center"
prop="count2"
/>
<el-table-column label="关闭直播平台违规账号(个)" align="center" prop="count2" />
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@ -185,15 +154,13 @@
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:remove']"
>删除</el-button
>
>删除</el-button>
</template>
</el-table-column>
</el-table>
@ -207,54 +174,26 @@
/>
<!-- 添加或修改清郎专项行动数据统计对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<el-form-item label="日期" prop="dateTime">
<el-date-picker
clearable
size="small"
<el-date-picker clearable size="small"
v-model="form.dateTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
placeholder="选择日期">
</el-date-picker>
</el-form-item>
<el-form-item label="处理有害信息数量" prop="count1">
<el-input
v-model="form.count1"
type="number"
placeholder="请输入处理有害信息数量"
/>
<el-input v-model="form.count1" type="number" placeholder="请输入处理有害信息数量" />
</el-form-item>
<el-form-item label="关闭直播平台违规账号(个)" prop="count2">
<el-input
v-model="form.count2"
type="number"
placeholder="请输入关闭直播平台违规账号(个)"
/>
<el-input v-model="form.count2" type="number" placeholder="请输入关闭直播平台违规账号(个)" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input
v-model="form.remark"
resize="none"
:rows="5"
type="textarea"
placeholder="请输入备注"
/>
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -271,57 +210,28 @@
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="清郎专项行动数据统计"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="日期">{{
form.dateTime
}}</el-descriptions-item>
<el-descriptions title="清郎专项行动数据统计" :column="2" border labelClassName="desLable">
<el-descriptions-item label="日期">{{ form.dateTime }}</el-descriptions-item>
<el-descriptions-item label="处理有害信息数量">{{ form.count1 }}</el-descriptions-item>
<el-descriptions-item label="处理有害信息数量">{{
form.count1
}}</el-descriptions-item>
<el-descriptions-item label="关闭直播平台违规账号(个)">{{ form.count2 }}</el-descriptions-item>
<el-descriptions-item label="关闭直播平台违规账号(个)">{{
form.count2
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/netManage/qlzxxdsjtj/common/importExcel"
importUrl="/tcZz/netManage/qlzxxdsjtj/importTemplate"
importName="清朗专项行动数据统计"
:getList="getList"
></import-dialog>
</div>
</template>
<script>
import {
listQlzxxdsjtj,
getQlzxxdsjtj,
delQlzxxdsjtj,
addQlzxxdsjtj,
updateQlzxxdsjtj,
exportQlzxxdsjtj,
importExcel,
} from "@/api/tcZz/netManage/qlzxxdsjtj";
import importDialog from "@/views/components/importDialog/index.vue";
import { listQlzxxdsjtj, getQlzxxdsjtj, delQlzxxdsjtj, addQlzxxdsjtj, updateQlzxxdsjtj, exportQlzxxdsjtj, importExcel } from "@/api/tcZz/netManage/qlzxxdsjtj";
export default {
name: "Qlzxxdsjtj",
components: { importDialog },
//
data() {
return {
@ -329,7 +239,7 @@ export default {
//
infoOpen:false,
//
infoTitle: "",
infoTitle:'',
//
loading: true,
//
@ -377,56 +287,48 @@ export default {
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
dateTime: [{ required: true, message: "请选择日期", trigger: "blur" }],
dateTime:[
{ required: true, message: '请选择日期', trigger: 'blur' },
],
count1:[
{
required: true,
message: "请输入处理有害信息数量",
trigger: "blur",
},
{ required: true, message: '请输入处理有害信息数量', trigger: 'blur' },
],
count2:[
{
required: true,
message: "请输入关闭直播平台违规账号(个)",
trigger: "blur",
},
{ required: true, message: '请输入关闭直播平台违规账号(个)', trigger: 'blur' },
],
},
fileList:[],
};
},
created() {
this.getList();
},
methods: {
exportFile() {
this.$refs.importdialog.open();
},
/** 查询清郎专项行动数据统计列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeDateTime && "" != this.daterangeDateTime) {
if (null != this.daterangeDateTime && '' != this.daterangeDateTime) {
this.queryParams.params["beginDateTime"] = this.daterangeDateTime[0];
this.queryParams.params["endDateTime"] = this.daterangeDateTime[1];
}
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listQlzxxdsjtj(this.queryParams).then((response) => {
listQlzxxdsjtj(this.queryParams).then(response => {
this.qlzxxdsjtjList = response.rows;
this.total = response.total;
this.loading = false;
@ -457,6 +359,7 @@ export default {
updateTime: null,
remark: null,
};
this.resetForm("form");
},
@ -475,18 +378,18 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/**查看按钮操作 */
handleInfo(row){
this.reset();
const id = row.id || this.ids;
getQlzxxdsjtj(id).then((response) => {
const id = row.id || this.ids
getQlzxxdsjtj(id).then(response => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看清郎专项行动数据统计详情";
this.infoTitle = "查看清郎专项行动数据统计详情"
});
},
/** 新增按钮操作 */
@ -498,8 +401,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getQlzxxdsjtj(id).then((response) => {
const id = row.id || this.ids
getQlzxxdsjtj(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改清郎专项行动数据统计";
@ -507,16 +410,16 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateQlzxxdsjtj(this.form).then((response) => {
updateQlzxxdsjtj(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addQlzxxdsjtj(this.form).then((response) => {
addQlzxxdsjtj(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -531,37 +434,29 @@ export default {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
type: "warning"
}).then(function() {
return delQlzxxdsjtj(ids);
})
.then(() => {
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有清郎专项行动数据统计数据项?", "警告", {
this.$confirm('是否确认导出所有清郎专项行动数据统计数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/netManage/qlzxxdsjtj/export",
{
...this.queryParams,
},
"清郎专项行动数据统计_" + new Date().getTime() + ".xlsx"
);
type: "warning"
}).then(() => {
this.download('/tcZz/netManage/qlzxxdsjtj/export', {
...this.queryParams
}, '清郎专项行动数据统计_'+ new Date().getTime() +'.xlsx')
this.exportLoading = false;
})
.catch(() => {});
},
}).catch(() => {});
},
};
}
}
</script>

@ -295,8 +295,7 @@
<el-descriptions-item label="真实IP">{{ form.trueIp }}</el-descriptions-item>
<!-- <el-descriptions-item label="网站域名">{{ form.webDns }}</el-descriptions-item> -->
<el-descriptions-item label="网站域名"><a :href="form.webDns" target="blank">网站域名</a></el-descriptions-item>
<el-descriptions-item label="网站域名">{{ form.webDns }}</el-descriptions-item>
<el-descriptions-item label="备案许可证号">{{ form.icp }}</el-descriptions-item>
@ -616,9 +615,3 @@
}
</script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -1,12 +1,7 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
<el-form-item label="名称" prop="name">
<el-input
v-model="queryParams.name"
@ -17,16 +12,8 @@
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</div>
@ -44,18 +31,14 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/netManage:ytlc:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/netManage:ytlc:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
>删除</el-button>
<el-button
type="warning"
size="mini"
@ -65,24 +48,14 @@
>导出</el-button
>
</div>
<el-table
v-loading="loading"
:data="ytlcList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="ytlcList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="文件名称" align="center" prop="fileName" />
<!-- <el-table-column label="文件路径(完整路径)" align="center" prop="fileUrl" />
<el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@ -96,15 +69,13 @@
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:ytlc:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:ytlc:remove']"
>删除</el-button
>
>删除</el-button>
</template>
</el-table-column>
</el-table>
@ -118,20 +89,9 @@
/>
<!-- 添加或修改约谈流程对话框 -->
<el-dialog
:visible.sync="open"
width="600px"
append-to-body
custom-class="dialog-box"
>
<el-dialog :visible.sync="open" width="600px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="请输入名称" />
</el-form-item>
@ -164,13 +124,7 @@
</div> -->
<el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input
v-model="form.remark"
resize="none"
:rows="5"
type="textarea"
placeholder="请输入备注"
/>
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -187,61 +141,28 @@
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="约谈流程"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="名称">{{
form.name
}}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">{{ form.fileName }}</el-descriptions-item> -->
<el-descriptions-item label="文件"
><a
v-for="(item, index) in files"
:key="index"
:href="item.url"
target="blank"
>{{ item.name }}</a
></el-descriptions-item
>
<el-descriptions title="约谈流程" :column="2" border labelClassName="desLable">
<el-descriptions-item label="名称">{{ form.name }}</el-descriptions-item>
<!-- <el-descriptions-item label="文件路径(完整路径)">{{ form.fileUrl }}</el-descriptions-item> -->
<el-descriptions-item label="文件名称">{{ form.fileName }}</el-descriptions-item>
<el-descriptions-item label="文件路径(完整路径)">{{ form.fileUrl }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/netManage/ytlc/common/importExcel"
importUrl="/tcZz/netManage/ytlc/importTemplate"
importName="约谈流程"
:getList="getList"
></import-dialog>
</div>
</template>
<script>
import {
listYtlc,
getYtlc,
delYtlc,
addYtlc,
updateYtlc,
exportYtlc,
} from "@/api/tcZz/netManage/ytlc";
import importDialog from "@/views/components/importDialog/index.vue"
import { listYtlc, getYtlc, delYtlc, addYtlc, updateYtlc, exportYtlc } from "@/api/tcZz/netManage/ytlc";
export default {
name: "Ytlc",
components: { importDialog },
//
data() {
return {
@ -249,7 +170,7 @@ export default {
//
infoOpen:false,
//
infoTitle: "",
infoTitle:'',
//
loading: true,
//
@ -295,6 +216,7 @@ export default {
updateTime: null,
remark: null,
},
//
form: {
@ -307,36 +229,33 @@ export default {
},
//
rules: {
name: [{ required: true, message: "请输入名称", trigger: "blur" }],
name: [
{ required: true, message: '请输入名称', trigger: 'blur' },
],
},
fileList:[],
fileNameS:[],
files: [],
};
},
created() {
this.getList();
},
methods: {
/** 导入按钮操作 */
exportFile() {
this.$refs.importdialog.open();
},
/** 查询约谈流程列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listYtlc(this.queryParams).then((response) => {
listYtlc(this.queryParams).then(response => {
this.ytlcList = response.rows;
this.total = response.total;
this.loading = false;
@ -374,6 +293,7 @@ export default {
// fileUrl: "",
// }
// ],
};
this.resetForm("form");
},
@ -391,31 +311,18 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/**查看按钮操作 */
handleInfo(row){
this.reset();
this.files = [];
const id = row.id || this.ids;
getYtlc(id).then((response) => {
const id = row.id || this.ids
getYtlc(id).then(response => {
this.form = response.data;
let arr1 = this.form.fileName.split(",");
let arr2 = this.form.fileUrl.split(",");
if (arr1[0] !== "" && arr1.length > 0 && arr2.length > 0) {
arr1.forEach((item, index) => {
let obj = {};
obj.name = item;
obj.url = arr2[index];
this.files.push(obj);
});
} else {
this.files = [];
}
this.infoOpen = true;
this.infoTitle = "查看约谈流程详情";
this.infoTitle = "查看约谈流程详情"
});
},
/** 新增按钮操作 */
@ -428,10 +335,10 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = [];
const id = row.id || this.ids;
getYtlc(id).then((response) => {
// console.log(response.data,'response.data')
this.fileNameS = []
const id = row.id || this.ids
getYtlc(id).then(response => {
console.log(response.data,'response.data')
this.form = response.data;
// this.form.name = response.data.name;
// this.form.createTime = response.data.createTime;
@ -448,7 +355,6 @@ export default {
});
});
}
// console.log(this.fileNameS,'this.fileNameS')
this.open = true;
this.title = "修改约谈流程";
});
@ -457,15 +363,11 @@ export default {
submitForm() {
let arr1 = [];
let arr2 = [];
let reg = new RegExp("http");
console.log(this.fileNameS)
if (this.fileNameS.length > 0) {
this.fileNameS.forEach((value) => {
arr1.push(value.name);
if (reg.test(value.url)) {
arr2.push(value.url);
} else {
arr2.push(process.env.VUE_APP_BASE_API + value.url);
}
});
this.form.fileName = arr1.join(",");
this.form.fileUrl = arr2.join(",");
@ -473,18 +375,17 @@ export default {
this.form.fileName = "";
this.form.fileUrl = "";
}
// console.log(this.form, "this.form");
this.$refs["form"].validate((valid) => {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
console.log(this.form);
updateYtlc(this.form).then((response) => {
console.log(this.form)
updateYtlc(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addYtlc(this.form).then((response) => {
addYtlc(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -499,53 +400,45 @@ export default {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
type: "warning"
}).then(function() {
return delYtlc(ids);
})
.then(() => {
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有约谈流程数据项?", "警告", {
this.$confirm('是否确认导出所有约谈流程数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/netManage/ytlc/export",
{
...this.queryParams,
},
"约谈流程_" + new Date().getTime() + ".xlsx"
);
type: "warning"
}).then(() => {
this.download('/tcZz/netManage/ytlc/export', {
...this.queryParams
}, '约谈流程_'+ new Date().getTime() +'.xlsx')
this.exportLoading = false;
})
.catch(() => {});
}).catch(() => {});
},
addDomain() {
this.form.domains.push({
fileUrl: "",
fileName: "",
fileUrl: '',
fileName: '',
});
console.log(this.form.domains, "domains");
console.log(this.form.domains,'domains')
},
removeDomain(item) {
var index = this.form.domains.indexOf(item);
var index = this.form.domains.indexOf(item)
// console.log(index,'index')
if (index !== -1) {
this.form.domains.splice(index, 1);
this.form.domains.splice(index, 1)
}
},
},
};
}
}
</script>
<style lang="scss" scoped>
// ::v-deep .el-dialog {
@ -566,8 +459,4 @@ export default {
// }
// }
// }
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -174,6 +174,16 @@
<el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<!-- <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域">
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="启用/禁用">
<el-radio-group v-model="form.isStatus">
<el-radio
@ -221,7 +231,7 @@
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="重点工作项目" :column="2" border labelClassName="desLable" contentClassName="desContent">
<el-descriptions title="重点工作项目" :column="2" border labelClassName="desLable">
<!-- <el-descriptions-item label="区域">{{ selectDictLabel(dict.type.tc_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>

@ -283,6 +283,16 @@
<el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<!-- <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域">
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="启用/禁用">
<el-radio-group v-model="form.isStatus">
<el-radio
@ -360,11 +370,9 @@
<el-descriptions-item label="联系电话">{{ form.linkTel }}</el-descriptions-item>
<el-descriptions-item label="网址或平台名称" v-if="!isurl">{{ form.url }}</el-descriptions-item>
<el-descriptions-item label="网址或平台名称" v-else><a :href="form.url" target="blank">网址</a></el-descriptions-item>
<el-descriptions-item label="网址或平台名称">{{ form.url }}</el-descriptions-item>
<!-- <el-descriptions-item label="域名">{{ form.dns }}</el-descriptions-item> -->
<el-descriptions-item label="域名"><a :href="form.dns" target="blank">域名</a></el-descriptions-item>
<el-descriptions-item label="域名">{{ form.dns }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
@ -493,7 +501,6 @@
],
},
fileList:[],
isurl:true,
};
},
created() {
@ -613,12 +620,6 @@
const id = row.id || this.ids
getZdqyml(id).then(response => {
this.form = response.data;
let reg = new RegExp('http');
if(reg.test(this.form.url)){
this.isurl = true;
} else {
this.isurl = false;
}
this.infoOpen = true;
this.infoTitle = "查看重点企业名录详情"
});
@ -706,9 +707,3 @@
}
</script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -140,9 +140,6 @@
v-hasPermi="['tcZz/netWorkYq:cy:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -166,7 +163,7 @@
<!-- <el-table-column label="序号" align="center" type='index' /> -->
<el-table-column label="词云名称" align="center" prop="cyName" />
<el-table-column label="词云数量" align="center" prop="cyCount" />
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column
label="操作"
@ -283,47 +280,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -335,9 +291,7 @@ import {
addCy,
updateCy,
exportCy,
importCy,
} from "@/api/tcZz/netWorkYq/cy";
import { getToken } from "@/utils/auth";
export default {
name: "Cy",
//
@ -401,68 +355,12 @@ export default {
rules: {
areaId: [{ required: true, message: "请选择区域", trigger: "blur" }],
},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/netWorkYq/cy/importTemplate",
{},
`词云模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importCy(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询词云列表 */
getList() {
this.loading = true;

@ -287,7 +287,7 @@
</el-select>
</el-form-item>
<el-form-item label="上传文件">
<!-- <div class="updataFile">
<div class="updataFile">
<div class="fileHeader">
<div class="names">文件名称</div>
<div class="urls">文件路径(完整路径)</div>
@ -318,8 +318,7 @@
<div @click="removeFile(index)" class="fileIcon">
<i class="el-icon-remove-outline"></i>
</div>
</div> -->
<fileUpload v-model="fileNameS" :limit="1" />
</div>
</el-form-item>
<el-form-item label="标题名称" prop="title">
<el-input v-model="form.title" placeholder="请输入标题名称" />
@ -366,22 +365,22 @@
selectDictLabel(dict.type.bg_type, form.type)
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="标题名称">{{
<el-descriptions-item label="标题名称">{{
form.title
}}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">{{
<el-descriptions-item label="文件名称">{{
form.fileName
}}</el-descriptions-item> -->
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="文件">
<el-descriptions-item label="文件路径(完整路径)">
<a
style=" color: #0072c6;margin-right:10px;"
v-for="(item, index) in files(form)"
style="text-decoration: underline; color: rgb(24, 144, 255)"
v-for="(item, index) in files(form.fileUrl)"
target="_blank"
:key="index"
:href="item.fileUrl"
>{{ item.fileName }}</a
:href="item"
>{{ item }}&nbsp;,&nbsp;</a
>
</el-descriptions-item>
@ -535,19 +534,8 @@ export default {
},
methods: {
files(e) {
// console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
if (!e) return [];
return e.split(",");
},
//
importTemplate() {
@ -625,30 +613,30 @@ export default {
.catch(() => {});
},
//
// addFile() {
// if (this.fileNameS.length <= 0) {
// this.fileNameS.push({
// fileName: "",
// fileUrl: "",
// });
// } else {
// if (
// this.fileNameS[this.fileNameS.length - 1].fileUrl != "" &&
// this.fileNameS[this.fileNameS.length - 1].fileName != ""
// ) {
// this.fileNameS.push({
// fileName: "",
// fileUrl: "",
// });
// } else {
// this.$modal.msgError("");
// }
// }
// },
addFile() {
if (this.fileNameS.length <= 0) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
if (
this.fileNameS[this.fileNameS.length - 1].fileUrl != "" &&
this.fileNameS[this.fileNameS.length - 1].fileName != ""
) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
this.$modal.msgError("请完整填写上一条");
}
}
},
//
// removeFile(index) {
// this.fileNameS.splice(index, 1);
// },
removeFile(index) {
this.fileNameS.splice(index, 1);
},
/** 查询舆情报告列表 */
getList(e) {
this.loading = true;
@ -739,13 +727,12 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = []
// this.fileNameS = [
// {
// fileName: "",
// fileUrl: "",
// },
// ];
this.fileNameS = [
{
fileName: "",
fileUrl: "",
},
];
this.open = true;
this.title = "添加舆情报告";
},
@ -789,22 +776,12 @@ export default {
submitForm() {
let arr1 = [];
let arr2 = [];
let reg = new RegExp("http");
console.log(this.fileNameS);
if (this.fileNameS.length > 0) {
// this.fileNameS.forEach((value) => {
// if (value.fileName && value.fileUrl) {
// arr1.push(value.fileName);
// arr2.push(value.fileUrl);
// }
// });
// this.form.fileName = arr1.join(",");
// this.form.fileUrl = arr2.join(",");
this.fileNameS.forEach((value) => {
arr1.push(value.name);
if (reg.test(value.url)) {
arr2.push(value.url);
} else {
arr2.push(process.env.VUE_APP_BASE_API + value.url);
if (value.fileName && value.fileUrl) {
arr1.push(value.fileName);
arr2.push(value.fileUrl);
}
});
this.form.fileName = arr1.join(",");

@ -124,9 +124,6 @@
v-hasPermi="['tcZz/netWorkYq:mtlx:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -145,7 +142,7 @@
<!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="占比" align="center" prop="zb" />
<!-- <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column
label="操作"
align="center"
@ -245,47 +242,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -297,10 +253,7 @@ import {
addMtlx,
updateMtlx,
exportMtlx,
importMtlx,
} from "@/api/tcZz/netWorkYq/mtlx";
import { getToken } from "@/utils/auth";
export default {
name: "Mtlx",
//
@ -359,68 +312,12 @@ export default {
form: {},
//
rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/netWorkYq/mtlx/importTemplate",
{},
`媒体类型模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importMtlx(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询媒体类型列表 */
getList() {
this.loading = true;

@ -1,13 +1,7 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="auto">
<!-- <el-form-item label="${comment}" prop="id">
<el-input
v-model="queryParams.id"
@ -87,16 +81,8 @@
/>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</div>
@ -114,19 +100,14 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/netWorkYq:sslx:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/netWorkYq:sslx:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
>删除</el-button>
<el-button
type="warning"
size="mini"
@ -136,23 +117,13 @@
>导出</el-button
>
</div>
<el-table
v-loading="loading"
:data="sslxList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="sslxList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="名称" align="center" prop="name" />
<el-table-column label="占比" align="center" prop="zb" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
<template slot-scope="scope">
<el-button
size="mini"
@ -166,15 +137,13 @@
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netWorkYq:sslx:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netWorkYq:sslx:remove']"
>删除</el-button
>
>删除</el-button>
</template>
</el-table-column>
</el-table>
@ -188,20 +157,9 @@
/>
<!-- 添加或修改涉事类型对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="请输入名称" />
</el-form-item>
@ -226,81 +184,24 @@
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="涉事类型"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="名称">{{
form.name
}}</el-descriptions-item>
<el-descriptions title="涉事类型" :column="2" border labelClassName="desLable">
<el-descriptions-item label="名称">{{ form.name }}</el-descriptions-item>
<el-descriptions-item label="占比">{{ form.zb }}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listSslx,
getSslx,
delSslx,
addSslx,
updateSslx,
exportSslx,
importSslx
} from "@/api/tcZz/netWorkYq/sslx";
import { getToken } from "@/utils/auth";
import { listSslx, getSslx, delSslx, addSslx, updateSslx, exportSslx } from "@/api/tcZz/netWorkYq/sslx";
export default {
name: "Sslx",
//
@ -310,7 +211,7 @@ export default {
//
infoOpen:false,
//
infoTitle: "",
infoTitle:'',
//
loading: true,
//
@ -354,87 +255,34 @@ export default {
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {},
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
rules: {
}
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/netWorkYq/sslx/importTemplate",
{},
`涉事类型模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importSslx(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询涉事类型列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listSslx(this.queryParams).then((response) => {
listSslx(this.queryParams).then(response => {
this.sslxList = response.rows;
this.total = response.total;
this.loading = false;
@ -463,6 +311,7 @@ export default {
updateTime: null,
remark: null,
};
this.resetForm("form");
},
@ -480,18 +329,18 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/**查看按钮操作 */
handleInfo(row){
this.reset();
const id = row.id || this.ids;
getSslx(id).then((response) => {
const id = row.id || this.ids
getSslx(id).then(response => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看涉事类型详情";
this.infoTitle = "查看涉事类型详情"
});
},
/** 新增按钮操作 */
@ -503,8 +352,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getSslx(id).then((response) => {
const id = row.id || this.ids
getSslx(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改涉事类型";
@ -512,16 +361,16 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateSslx(this.form).then((response) => {
updateSslx(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSslx(this.form).then((response) => {
addSslx(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -536,37 +385,29 @@ export default {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
type: "warning"
}).then(function() {
return delSslx(ids);
})
.then(() => {
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有涉事类型数据项?", "警告", {
this.$confirm('是否确认导出所有涉事类型数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/netWorkYq/sslx/export",
{
...this.queryParams,
},
"涉事类型_" + new Date().getTime() + ".xlsx"
);
type: "warning"
}).then(() => {
this.download('/tcZz/netWorkYq/sslx/export', {
...this.queryParams
}, '涉事类型_'+ new Date().getTime() +'.xlsx')
this.exportLoading = false;
})
.catch(() => {});
},
},
};
}).catch(() => {});
}
}
}
</script>

@ -370,7 +370,7 @@
form.dateTime
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="内容">{{
<el-descriptions-item label="内容">{{
form.content
}}</el-descriptions-item>

@ -94,9 +94,10 @@
v-hasPermi="['tcZz/netWorkYq:yqzs:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
<!-- @click="handleImport" -->
<!-- <el-button type="info" size="mini" v-hasPermi="['system:user:import']"
>导入</el-button
>
> -->
<el-button
type="warning"
size="mini"
@ -244,6 +245,8 @@
form.dateTime
}}</el-descriptions-item>
<el-descriptions-item label="非敏感数量">{{
form.count1
}}</el-descriptions-item>
@ -256,47 +259,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -308,10 +270,7 @@ import {
addYqzs,
updateYqzs,
exportYqzs,
importYqzs
} from "@/api/tcZz/netWorkYq/yqzs";
import { getToken } from "@/utils/auth";
export default {
name: "Yqzs",
//
@ -353,7 +312,25 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
isOrthodox:2
id: null,
areaId: null,
dateTime: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
count1: null,
count2: null,
},
//
form: {},
@ -361,76 +338,15 @@ export default {
rules: {
areaId: [{ required: true, message: "请选择区域", trigger: "blur" }],
dateTime: [{ required: true, message: "请选择日期", trigger: "blur" }],
count1: [
{ required: true, message: "请输入非敏感数量", trigger: "blur" },
],
count2: [
{ required: true, message: "请输入敏感数量", trigger: "blur" },
],
count1: [{ required: true, message: "请输入非敏感数量", trigger: "blur" }],
count2: [{ required: true, message: "请输入敏感数量", trigger: "blur" }],
},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/netWorkYq/yqzs/importTemplate",
{},
`舆情走势图模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importYqzs(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询舆情走势图列表 */
getList() {
this.loading = true;

@ -172,9 +172,7 @@
>导出</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button type="primary" size="mini" @click="importFiles"></el-button>
<el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button
@ -302,40 +300,6 @@
<el-form-item label="舆情状态" prop="yqState">
<el-input v-model="form.yqState" placeholder="请输入舆情状态" />
</el-form-item>
<el-form-item label="上传文件">
<div class="updataFile">
<div class="fileHeader">
<!-- <div class="names">文件名称</div> -->
<div class="urls">文件路径(完整路径)</div>
</div>
<div @click="addFile" class="fileIcon">
<i class="el-icon-circle-plus-outline"></i>
</div>
</div>
<div
class="main-file"
v-for="(item, index) in fileNameS"
:key="index"
>
<div class="fileItems">
<!-- <div class="names">
<el-input
v-model="item.fileName"
placeholder="请输入文件名称"
/>
</div> -->
<div class="urls">
<el-input
v-model="item.fileUrl"
placeholder="请输入文件路径(完整路径)"
/>
</div>
</div>
<div @click="removeFile(index)" class="fileIcon">
<i class="el-icon-remove-outline"></i>
</div>
</div>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
@ -381,16 +345,7 @@
<el-descriptions-item label="舆情状态">{{
form.yqState
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="文件">
<a
style="margin-right:10px; color: #0072c6"
v-for="(item, index) in files(form)"
target="_blank"
:key="index"
:href="item.fileUrl"
>{{ item.yqTitle }}</a
>
</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
@ -518,62 +473,22 @@ export default {
//
rules: {
// areaId: [{ required: true, message: "", trigger: "blur" }],
isStatus: [
{ required: true, message: "请选择启动/禁用", trigger: "blur" },
],
yqTitle: [
{ required: true, message: "舆情标题不能为空", trigger: "blur" },
],
isStatus: [{ required: true, message: "请选择启动/禁用", trigger: "blur" }],
yqTitle: [{ required: true, message: "舆情标题不能为空", trigger: "blur" }],
depName: [{ required: true, message: "部门名称", trigger: "blur" }],
yqState: [
{ required: true, message: "请输入舆情状态", trigger: "blur" },
],
yqState: [{ required: true, message: "请输入舆情状态", trigger: "blur" }],
},
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
fileNameS: [],
};
},
created() {
this.getList();
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
yqTitle: e.yqTitle,
fileUrl: value,
});
});
return newC;
},
//
addFile() {
if (this.fileNameS.length <= 0) {
this.fileNameS.push({
fileUrl: "",
});
} else {
if (this.fileNameS[this.fileNameS.length - 1].fileUrl != "") {
this.fileNameS.push({
fileUrl: "",
});
} else {
this.$modal.msgError("请完整填写上一条");
}
}
},
//
removeFile(index) {
this.fileNameS.splice(index, 1);
},
//
importTemplate() {
this.download(
@ -737,29 +652,15 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = [
{
fileUrl: "",
},
];
this.open = true;
this.title = "添加 转办量、转办详情";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = [];
const id = row.id || this.ids;
getZbxq(id).then((response) => {
this.form = response.data;
if (response.data.fileUrl) {
let arr2 = response.data.fileUrl.split(",");
arr2.forEach((value, index) => {
this.fileNameS.push({
fileUrl: arr2[index],
});
});
}
this.open = true;
this.title = "修改 转办量、转办详情";
});
@ -781,17 +682,6 @@ export default {
},
/** 提交按钮 */
submitForm() {
let arr2 = [];
if (this.fileNameS.length > 0) {
this.fileNameS.forEach((value) => {
if (value.fileUrl) {
arr2.push(value.fileUrl);
}
});
this.form.fileUrl = arr2.join(",");
} else {
this.form.fileUrl = "";
}
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
@ -850,55 +740,3 @@ export default {
},
};
</script>
<style lang="scss" scoped>
.updataFile {
display: flex;
}
.fileIcon {
width: 10%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
}
.main-file {
display: flex;
}
.fileHeader {
border: 1px solid #dcdfe6;
color: #515a6e;
font-weight: bold;
height: 40px;
display: flex;
background: #f8f8f9;
width: 90%;
}
.fileItems {
border: 1px solid #dcdfe6;
border-top: none;
color: #606266;
height: 40px;
display: flex;
width: 90%;
}
.names {
width: 40%;
border-right: 1px solid #dcdfe6;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .names .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
.urls {
width: 100%;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .urls .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
</style>

@ -43,7 +43,6 @@
</el-form> -->
</div>
<div class="layui-table-tool" ref="tableTool">
<!--
<el-button
type="primary"
size="mini"
@ -52,7 +51,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:add']"
>新增</el-button
>
-->
<el-button
type="success"
size="mini"
@ -61,7 +59,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:edit']"
>修改</el-button
>
<!--
<el-button
type="danger"
size="mini"
@ -70,7 +67,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:remove']"
>删除</el-button
>
-->
<el-button
type="warning"
size="mini"
@ -110,7 +106,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:edit']"
>修改</el-button
>
<!--
<el-button
size="mini"
type="danger"
@ -118,7 +113,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:remove']"
>删除</el-button
>
-->
</template>
</el-table-column>
</el-table>

@ -310,11 +310,10 @@
}}</el-descriptions-item>
<el-descriptions-item label="发布时间">{{
parseTime(form.dateTime,'{y}-{m}-{d}')
form.dateTime
}}</el-descriptions-item>
<!-- <el-descriptions-item label="网址">{{ form.url }}</el-descriptions-item> -->
<el-descriptions-item label="网址"><a :href="form.url" target="blank">网址</a></el-descriptions-item>
<el-descriptions-item label="网址">{{ form.url }}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
@ -650,9 +649,3 @@ export default {
},
};
</script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -299,8 +299,7 @@
form.title
}}</el-descriptions-item>
<!-- <el-descriptions-item label="网址">{{ form.url }}</el-descriptions-item> -->
<el-descriptions-item label="网址"><a :href="form.url" target="blank">网址</a></el-descriptions-item>
<el-descriptions-item label="网址">{{ form.url }}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
@ -622,9 +621,3 @@ export default {
},
};
</script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -74,8 +74,6 @@
v-hasPermi="['tcZz/networkEcology:wpyrwwcl:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
<el-button
type="warning"
size="mini"
@ -153,21 +151,11 @@
<el-input v-model="form.unit" placeholder="请输入单位" />
</el-form-item>
<el-form-item label="数量" prop="count">
<el-input
v-model="form.count"
type="number"
placeholder="请输入数量"
/>
<el-input v-model="form.count" type="number" placeholder="请输入数量" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input
v-model="form.remark"
resize="none"
:rows="5"
type="textarea"
placeholder="请输入备注"
/>
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -205,13 +193,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/networkEcology/wpyrwwcl/common/importExcel"
importUrl="/tcZz/networkEcology/wpyrwwcl/importTemplate"
importName="网评员任务完成率(网评系统)"
:getList="getList"
></import-dialog>
</div>
</template>
@ -224,11 +205,8 @@ import {
updateWpyrwwcl,
exportWpyrwwcl,
} from "@/api/tcZz/networkEcology/wpyrwwcl";
import importDialog from "@/views/components/importDialog/index.vue";
export default {
name: "Wpyrwwcl",
components: { importDialog },
//
data() {
return {
@ -285,8 +263,12 @@ export default {
form: {},
//
rules: {
unit: [{ required: true, message: "请输入单位", trigger: "blur" }],
count: [{ required: true, message: "请输入数量", trigger: "blur" }],
unit:[
{ required: true, message: '请输入单位', trigger: 'blur' },
],
count:[
{ required: true, message: '请输入数量', trigger: 'blur' },
],
},
fileList:[],
};
@ -295,9 +277,6 @@ export default {
this.getList();
},
methods: {
exportFile() {
this.$refs.importdialog.open();
},
/** 查询网评员任务完成率(网评系统)列表 */
getList() {
this.loading = true;

@ -114,8 +114,9 @@
<el-table-column label="攻击源IP" align="center" prop="attackyIp" />
<el-table-column label="攻击类型" align="center" prop="attackType" />
<el-table-column label="攻击源IP国家" align="center" prop="attackIpArea" />
<el-table-column label="受攻击IP" align="center" prop="sattackIp" />
<el-table-column label="网站安全等级" align="center" prop="netLevel" />
<el-table-column label="联系人" align="center" prop="linkMan" />
<el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
@ -219,30 +220,35 @@
<el-form-item label="攻击类型" prop="attackyIp">
<el-input v-model="form.attackType" placeholder="请输入攻击类型" />
</el-form-item>
<el-form-item label="攻击源IP国家" prop="attackIpArea">
<el-form-item label="攻击源IP区域" prop="attackIpArea">
<el-input
v-model="form.attackIpArea"
placeholder="请输入攻击源IP国家"
placeholder="请输入攻击源IP区域"
/>
</el-form-item>
<el-form-item label="攻击源IP省份" prop="type">
<el-input v-model="form.type" placeholder="请输入攻击源IP省份" />
</el-form-item>
<el-form-item label="受攻击IP" prop="sattackIp">
<el-input v-model="form.sattackIp" placeholder="请输入受攻击IP" />
</el-form-item>
<el-form-item label="受攻击IP国家" prop="sattackIpArea">
<el-form-item label="受攻击IP区域" prop="sattackIpArea">
<el-input
v-model="form.sattackIpArea"
placeholder="请输入受攻击IP国家"
placeholder="请输入受攻击IP区域"
/>
</el-form-item>
<el-form-item label="攻击等级" prop="netLevel">
<el-input v-model="form.netLevel" placeholder="请输入攻击等级" />
<el-form-item label="受攻击目标类型" prop="type">
<el-input v-model="form.type" placeholder="请输入受攻击目标类型" />
</el-form-item>
<el-form-item label="网站安全等级" prop="netLevel">
<el-input v-model="form.netLevel" placeholder="请输入网站安全等级" />
</el-form-item>
<el-form-item label="所属单位" prop="affUnit">
<el-input v-model="form.affUnit" placeholder="请输入所属单位" />
</el-form-item>
<el-form-item label="联系电话" prop="linkTel">
<el-input v-model="form.linkTel" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="攻击状态" prop="affUnit">
<el-input v-model="form.affUnit" placeholder="请输入攻击状态" />
<el-form-item label="联系人" prop="linkMan">
<el-input v-model="form.linkMan" placeholder="请输入联系人" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@ -290,11 +296,11 @@
form.attackType
}}</el-descriptions-item>
<el-descriptions-item label="攻击源IP国家">{{
<el-descriptions-item label="攻击源IP区域">{{
form.attackIpArea
}}</el-descriptions-item>
<el-descriptions-item label="攻击源IP省份">{{
<el-descriptions-item label="受攻击目标类型">{{
form.type
}}</el-descriptions-item>
@ -302,17 +308,26 @@
form.sattackIp
}}</el-descriptions-item>
<el-descriptions-item label="受攻击IP国家">{{
<el-descriptions-item label="受攻击IP区域">{{
form.sattackIpArea
}}</el-descriptions-item>
<el-descriptions-item label="攻击等级">{{
<el-descriptions-item label="网站安全等级">{{
form.netLevel
}}</el-descriptions-item>
<el-descriptions-item label="攻击状态">{{
<el-descriptions-item label="所属单位">{{
form.affUnit
}}</el-descriptions-item>
<el-descriptions-item label="联系电话">{{
form.linkTel
}}</el-descriptions-item>
<el-descriptions-item label="联系人">{{
form.linkMan
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
@ -440,9 +455,9 @@ export default {
affUnit: null,
// linkTel: null,
linkTel: null,
// linkMan: null,
linkMan: null,
createBy: null,
@ -615,9 +630,9 @@ export default {
affUnit: null,
// linkTel: null,
linkTel: null,
// linkMan: null,
linkMan: null,
createBy: null,

@ -17,10 +17,10 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="挖矿软件" prop="rqAttack">
<el-form-item label="入侵攻击" prop="rqAttack">
<el-input
v-model="queryParams.rqAttack"
placeholder="请输入挖矿软件"
placeholder="请输入入侵攻击"
clearable
size="small"
@keyup.enter.native="handleQuery"
@ -81,9 +81,9 @@
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="网络攻击(万次)" align="center" prop="netAttack" />
<el-table-column label="挖矿软件" align="center" prop="rqAttack" />
<el-table-column label="其他Web攻击" align="center" prop="smAttack" />
<el-table-column label="其他可疑通信" align="center" prop="bdAttack" />
<el-table-column label="入侵攻击" align="center" prop="rqAttack" />
<el-table-column label="恶意扫描" align="center" prop="smAttack" />
<el-table-column label="僵木蠕病毒" align="center" prop="bdAttack" />
<el-table-column
label="操作"
align="center"
@ -146,14 +146,14 @@
placeholder="请输入网络攻击(万次)"
/>
</el-form-item>
<el-form-item label="挖矿软件" prop="rqAttack">
<el-input v-model="form.rqAttack" placeholder="请输入挖矿软件" />
<el-form-item label="入侵攻击" prop="rqAttack">
<el-input v-model="form.rqAttack" placeholder="请输入入侵攻击" />
</el-form-item>
<el-form-item label="其他Web攻击" prop="smAttack">
<el-input v-model="form.smAttack" placeholder="请输入其他Web攻击" />
<el-form-item label="恶意扫描" prop="smAttack">
<el-input v-model="form.smAttack" placeholder="请输入恶意扫描" />
</el-form-item>
<el-form-item label="其他可疑通信" prop="bdAttack">
<el-input v-model="form.bdAttack" placeholder="请输入其他可疑通信" />
<el-form-item label="僵木蠕病毒" prop="bdAttack">
<el-input v-model="form.bdAttack" placeholder="请输入僵木蠕病毒" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
@ -185,15 +185,15 @@
form.netAttack
}}</el-descriptions-item>
<el-descriptions-item label="挖矿软件">{{
<el-descriptions-item label="入侵攻击">{{
form.rqAttack
}}</el-descriptions-item>
<el-descriptions-item label="其他Web攻击">{{
<el-descriptions-item label="恶意扫描">{{
form.smAttack
}}</el-descriptions-item>
<el-descriptions-item label="其他可疑通信">{{
<el-descriptions-item label="僵木蠕病毒">{{
form.bdAttack
}}</el-descriptions-item>

@ -8,6 +8,7 @@
v-show="showSearch"
label-width="auto"
>
<el-form-item label="隐患名称" prop="yhName">
<el-input
v-model="queryParams.yhName"
@ -65,9 +66,6 @@
v-hasPermi="['tcZz/networkSecurity:aqyh:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -186,47 +184,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -238,9 +195,7 @@ import {
addAqyh,
updateAqyh,
exportAqyh,
importAqyh,
} from "@/api/tcZz/networkSecurity/aqyh";
import { getToken } from "@/utils/auth";
export default {
name: "Aqyh",
//
@ -299,68 +254,12 @@ export default {
form: {},
//
rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/aqyh/importTemplate",
{},
`安全隐患模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importAqyh(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询安全隐患 tc_aqyh列表 */
getList() {
this.loading = true;

@ -133,11 +133,11 @@
<el-table-column label="单位名称" align="center" prop="unitName" />
<el-table-column label="网站/系统名称" align="center" prop="systemName" />
<el-table-column label="是否关注重点" align="center" prop="isFocus" />
<!-- <el-table-column label="记录类型" align="center" prop="type">
<el-table-column label="记录类型" align="center" prop="type">
<template slot-scope="scope">
<dict-tag :options="dict.type.tc_jslx" :value="scope.row.type" />
</template>
</el-table-column> -->
</el-table-column>
<el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
@ -224,7 +224,7 @@
<el-radio :label="2">禁用</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="记录类型" prop="type">
<el-form-item label="记录类型" prop="type">
<el-select v-model="form.type" placeholder="请选择记录类型">
<el-option
v-for="dict in dict.type.tc_jslx"
@ -233,7 +233,7 @@
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item> -->
</el-form-item>
<el-form-item label="单位名称" prop="unitName">
<el-input v-model="form.unitName" placeholder="请输入单位名称" />
</el-form-item>
@ -298,11 +298,9 @@
form.systemName
}}</el-descriptions-item>
<el-descriptions-item label="网站地址">
<a style="color: #0072c6" target="_blank" :href="form.systemUrl">{{
<el-descriptions-item label="网站地址">{{
form.systemUrl
}}</a>
</el-descriptions-item>
}}</el-descriptions-item>
<el-descriptions-item label="IP地址">{{
form.sysyemIp
@ -316,9 +314,9 @@
form.level
}}</el-descriptions-item>
<!-- <el-descriptions-item label="记录类型">{{
<el-descriptions-item label="记录类型">{{
selectDictLabel(dict.type.tc_jslx, form.type)
}}</el-descriptions-item> -->
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
@ -438,7 +436,7 @@ export default {
level: null,
type: 1,
type: null,
createBy: null,
@ -455,10 +453,8 @@ export default {
//
rules: {
areaId: [{ required: true, message: "请选择区域", trigger: "blur" }],
// type: [{ required: true, message: "", trigger: "blur" }],
isStatus: [
{ required: true, message: "请选择启动/禁用", trigger: "blur" },
],
type: [{ required: true, message: "请选择记录类型", trigger: "blur" }],
isStatus: [{ required: true, message: "请选择启动/禁用", trigger: "blur" }],
},
//===========
fileList: [],
@ -483,7 +479,7 @@ export default {
this.download(
"/tcZz/networkSecurity/jgdw/importTemplate",
{},
`监管单位模板.xlsx`
`监管单位、网站监测模板.xlsx`
);
},
//
@ -604,7 +600,7 @@ export default {
level: null,
type: 1,
type: null,
createBy: null,
@ -628,7 +624,6 @@ export default {
this.daterangeCreateTime = [];
this.daterangeUpdateTime = [];
this.resetForm("queryForm");
this.queryParams.type = 1;
this.handleQuery();
},
//

@ -1,726 +0,0 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<el-form-item label="区域" prop="areaId">
<el-select
v-model="queryParams.areaId"
placeholder="请选择区域"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="启用/禁用" prop="isStatus">
<el-select
v-model="queryParams.isStatus"
placeholder="请选择启用/禁用"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.tc_start"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="单位名称" prop="unitName">
<el-input
v-model="queryParams.unitName"
placeholder="请输入单位名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="网站/系统名称" prop="systemName">
<el-input
v-model="queryParams.systemName"
placeholder="请输入网站/系统名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div class="layui-table-tool" ref="tableTool">
<el-button
type="primary"
size="mini"
@click="handleAdd()"
v-hasPermi="['tcZz/networkSecurity:jgdw:add']"
>新增</el-button
>
<el-button
type="success"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/networkSecurity:jgdw:edit']"
>修改</el-button
>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/networkSecurity:jgdw:remove']"
>删除</el-button
>
<el-button
type="warning"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['tcZz/networkSecurity:jgdw:export']"
>导出</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button
>
<el-button
type="danger"
size="mini"
@click="banned"
autofocus
:disabled="multiple"
>禁用</el-button
>
</div>
<el-table
v-loading="loading"
:data="jgdwList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="区域" align="center" prop="areaId">
<template slot-scope="scope">
<dict-tag :options="dict.type.tc_area" :value="scope.row.areaId" />
</template>
</el-table-column>
<el-table-column label="单位名称" align="center" prop="unitName" />
<el-table-column label="网站/系统名称" align="center" prop="systemName" />
<el-table-column label="是否关注重点" align="center" prop="isFocus" />
<!-- <el-table-column label="记录类型" align="center" prop="type">
<template slot-scope="scope">
<dict-tag :options="dict.type.tc_jslx" :value="scope.row.type" />
</template>
</el-table-column> -->
<el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isStatus"
active-color="#ff4949"
inactive-color="#13ce66"
:active-value="2"
:inactive-value="1"
@change="alter(scope.row)"
>
</el-switch>
<!-- <dict-tag :options="dict.type.tc_start" :value="scope.row.isStatus" /> -->
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleInfo(scope.row)"
v-hasPermi="['tcZz/networkSecurity:jgdw:list']"
>
查看
</el-button>
<el-button
type="success"
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/networkSecurity:jgdw:edit']"
>修改</el-button
>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/networkSecurity:jgdw:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改监管单位对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域">
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="启用/禁用" prop="isStatus">
<el-radio-group v-model="form.isStatus">
<el-radio :label="1">启用</el-radio>
<el-radio :label="2">禁用</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="记录类型" prop="type">
<el-select v-model="form.type" placeholder="请选择记录类型">
<el-option
v-for="dict in dict.type.tc_jslx"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item> -->
<el-form-item label="单位名称" prop="unitName">
<el-input v-model="form.unitName" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="网站/系统名称" prop="systemName">
<el-input
v-model="form.systemName"
placeholder="请输入网站/系统名称"
/>
</el-form-item>
<el-form-item label="网站地址" prop="systemUrl">
<el-input v-model="form.systemUrl" placeholder="请输入网站地址" />
</el-form-item>
<el-form-item label="IP地址" prop="sysyemIp">
<el-input v-model="form.sysyemIp" placeholder="请输入IP地址" />
</el-form-item>
<el-form-item label="是否关注重点" prop="isFocus">
<el-input v-model="form.isFocus" placeholder="请输入是否关注重点" />
</el-form-item>
<el-form-item label="等保级别" prop="level">
<el-input v-model="form.level" placeholder="请输入等保级别" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看监管单位详情页-->
<el-dialog
:visible.sync="infoOpen"
width="90%"
append-to-body
:close-on-click-modal="false"
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="监管单位"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="区域">{{
selectDictLabel(dict.type.tc_area, form.areaId)
}}</el-descriptions-item>
<el-descriptions-item label="启用/禁用">{{
selectDictLabel(dict.type.tc_start, form.isStatus)
}}</el-descriptions-item>
<el-descriptions-item label="单位名称">{{
form.unitName
}}</el-descriptions-item>
<el-descriptions-item label="网站/系统名称">{{
form.systemName
}}</el-descriptions-item>
<el-descriptions-item label="网站地址">
<a style="color: #0072c6" target="_blank" :href="form.systemUrl">{{
form.systemUrl
}}</a>
</el-descriptions-item>
<el-descriptions-item label="IP地址">{{
form.sysyemIp
}}</el-descriptions-item>
<el-descriptions-item label="是否关注重点">{{
form.isFocus
}}</el-descriptions-item>
<el-descriptions-item label="等保级别">{{
form.level
}}</el-descriptions-item>
<!-- <el-descriptions-item label="记录类型">{{
selectDictLabel(dict.type.tc_jslx, form.type)
}}</el-descriptions-item> -->
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listJgdw,
getJgdw,
delJgdw,
addJgdw,
updateJgdw,
exportJgdw,
isStatusJgdw,
importJgdw,
} from "@/api/tcZz/networkSecurity/jgdw";
import { getToken } from "@/utils/auth";
export default {
name: "Jgdw",
//
dicts: ["tc_area", "tc_start", "tc_jslx"],
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
jgdwList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
areaId: null,
isStatus: null,
unitName: null,
systemName: null,
systemUrl: null,
sysyemIp: null,
isFocus: null,
level: null,
type: 2,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
areaId: [{ required: true, message: "请选择区域", trigger: "blur" }],
// type: [{ required: true, message: "", trigger: "blur" }],
isStatus: [
{ required: true, message: "请选择启动/禁用", trigger: "blur" },
],
},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
alter(e) {
updateJgdw(e).then(() => {
this.getList();
this.$modal.msgSuccess("修改成功");
});
},
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/jgdw/importTemplate",
{},
`网站监测模板.xlsx`
);
},
//
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importJgdw(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
//
enable(row) {
this.isStatusFuc(row, 1);
},
//
banned(row) {
this.isStatusFuc(row, 2);
},
isStatusFuc(row, e) {
const ids = row.id || this.ids.join(",");
const src = e == 1 ? "启动" : "禁用";
this.$confirm("是否确认" + src + '编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return isStatusJgdw({ ids: ids, isStatus: e });
})
.then(() => {
this.getList(e);
})
.catch(() => {});
},
/** 查询监管单位列表 */
getList(e) {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listJgdw(this.queryParams).then((response) => {
this.jgdwList = response.rows;
this.total = response.total;
this.loading = false;
if (e == 1) {
this.$modal.msgSuccess("启动成功");
} else if (e == 2) {
this.$modal.msgSuccess("禁用成功");
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
areaId: null,
isStatus: 1,
unitName: null,
systemName: null,
systemUrl: null,
sysyemIp: null,
isFocus: null,
level: null,
type: 2,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.daterangeUpdateTime = [];
this.resetForm("queryForm");
this.queryParams.type = 2;
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/**查看按钮操作 */
handleInfo(row) {
this.reset();
const id = row.id || this.ids;
getJgdw(id).then((response) => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看网站监测详情";
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加网站监测";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getJgdw(id).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改网站监测";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateJgdw(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addJgdw(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delJgdw(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有网站监测数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/networkSecurity/jgdw/export",
{
...this.queryParams,
},
"网站监测_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>

@ -258,11 +258,9 @@
selectDictLabel(dict.type.tc_start, form.isStatus)
}}</el-descriptions-item>
<el-descriptions-item label="网站地址">
<a style="color: #0072c6" target="_blank" :href="form.webUrl">{{
<el-descriptions-item label="网站地址">{{
form.webUrl
}}</a>
</el-descriptions-item>
}}</el-descriptions-item>
<el-descriptions-item label="资产名称">{{
form.assetName
@ -399,9 +397,7 @@ export default {
//
rules: {
// areaId: [{ required: true, message: "", trigger: "blur" }],
isStatus: [
{ required: true, message: "请选择启动/禁用", trigger: "blur" },
],
isStatus: [{ required: true, message: "请选择启动/禁用", trigger: "blur" }],
},
//===========
fileList: [],

@ -80,9 +80,6 @@
v-hasPermi="['tcZz/networkSecurity:map:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -219,47 +216,6 @@
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -272,10 +228,7 @@ import {
addMap,
updateMap,
exportMap,
importMap
} from "@/api/tcZz/networkSecurity/map";
import { getToken } from "@/utils/auth";
export default {
name: "Map",
//
@ -337,68 +290,12 @@ export default {
form: {},
//
rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/map/importTemplate",
{},
`分布情况模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importMap(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询地图统计列表 */
getList() {
this.loading = true;

@ -65,9 +65,6 @@
v-hasPermi="['tcZz/networkSecurity:fbqk:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -184,47 +181,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -236,10 +192,7 @@ import {
addFbqk,
updateFbqk,
exportFbqk,
importFbqk,
} from "@/api/tcZz/networkSecurity/fbqk";
import { getToken } from "@/utils/auth";
export default {
name: "Fbqk",
//
@ -298,68 +251,12 @@ export default {
form: {},
//
rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/fbqk/importTemplate",
{},
`分布情况模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importFbqk(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询分布情况 tc_fbqk列表 */
getList() {
this.loading = true;

@ -66,9 +66,6 @@
v-hasPermi="['tcZz/networkSecurity:top5:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -190,47 +187,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -242,10 +198,7 @@ import {
addTop5,
updateTop5,
exportTop5,
importTop5,
} from "@/api/tcZz/networkSecurity/top5";
import { getToken } from "@/utils/auth";
export default {
name: "Top5",
//
@ -305,64 +258,12 @@ export default {
//
rules: {},
addShow: false,
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
//
importTemplate() {
this.download("/tcZz/networkSecurity/top5/importTemplate", {}, `top5模板.xlsx`);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importTop5(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询受攻击IPTOP5列表 */
getList() {
this.loading = true;

@ -263,18 +263,18 @@
form.depName
}}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">{{
<el-descriptions-item label="文件名称">{{
form.fileName
}}</el-descriptions-item> -->
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="文件">
<el-descriptions-item label="文件路径(完整路径)">
<a
style=" color: #0072c6;margin-right:10px;"
v-for="(item, index) in files(form)"
style="text-decoration: underline; color: rgb(24, 144, 255)"
v-for="(item, index) in files(form.fileUrl)"
target="_blank"
:key="index"
:href="item.fileUrl"
>{{ item.fileName }}</a
:href="item"
>{{ item }}&nbsp;,&nbsp;</a
>
</el-descriptions-item>
@ -426,19 +426,8 @@ export default {
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
if (!e) return [];
return e.split(",");
},
alter(e) {
updateBmtb(e).then(() => {

@ -283,18 +283,18 @@
selectDictLabel(dict.type.tc_start, form.isStatus)
}}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">
<el-descriptions-item label="文件名称">
{{ form.fileName }}</el-descriptions-item
> -->
>
<el-descriptions-item :span="2" label="文件">
<el-descriptions-item label="文件路径(完整路径)">
<a
style=" color: #0072c6;margin-right:10px;"
v-for="(item, index) in files(form)"
style="text-decoration: underline; color: rgb(24, 144, 255)"
v-for="(item, index) in files(form.fileUrl)"
target="_blank"
:key="index"
:href="item.fileUrl"
>{{ item.fileName }}</a
:href="item"
>{{ item }}&nbsp;,&nbsp;</a
>
</el-descriptions-item>
@ -444,19 +444,8 @@ export default {
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
if (!e) return [];
return e.split(",");
},
alter(e) {
updateSdtb(e).then(() => {

@ -77,9 +77,6 @@
v-hasPermi="['tcZz/networkSecurity:tbwc:remove']"
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button
type="warning"
size="mini"
@ -241,47 +238,6 @@
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -293,10 +249,7 @@ import {
addTbwc,
updateTbwc,
exportTbwc,
importTbwc,
} from "@/api/tcZz/networkSecurity/tbwc";
import { getToken } from "@/utils/auth";
export default {
name: "Tbwc",
//
@ -372,12 +325,6 @@ export default {
],
year: [{ required: true, message: "请选择年份", trigger: "blur" }],
},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
computed: {
@ -389,56 +336,6 @@ export default {
this.getList();
},
methods: {
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/tbwc/importTemplate",
{},
`通报完成情况模板.xlsx`
);
},
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importTbwc(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
/** 查询通报完成情况列表 */
getList() {
this.loading = true;
@ -522,7 +419,7 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.form.year = this.$moment(new Date()).format("yyyy");
this.form.year = this.$moment(new Date()).format('yyyy');
this.open = true;
this.title = "添加通报完成情况";
},

@ -308,19 +308,19 @@
<el-descriptions-item label="处置情况">{{
form.czState
}}</el-descriptions-item>
<!--
<el-descriptions-item label="文件名称">{{
form.fileName
}}</el-descriptions-item> -->
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="文件">
<el-descriptions-item label="文件路径(完整路径)">
<a
style=" color: #0072c6;margin-right:10px;"
v-for="(item, index) in files(form)"
style="text-decoration: underline; color: rgb(24, 144, 255)"
v-for="(item, index) in files(form.fileUrl)"
target="_blank"
:key="index"
:href="item.fileUrl"
>{{ item.fileName }}</a
:href="item"
>{{ item }}&nbsp;,&nbsp;</a
>
</el-descriptions-item
>
@ -483,19 +483,8 @@ export default {
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
if (!e) return [];
return e.split(",");
},
alter(e) {
updateTbcz(e).then(() => {

@ -312,22 +312,22 @@
form.level
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="隐患来源">{{
<el-descriptions-item label="隐患来源">{{
form.yhLy
}}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">{{
<el-descriptions-item label="文件名称">{{
form.fileName
}}</el-descriptions-item> -->
}}</el-descriptions-item>
<el-descriptions-item :span="2" label="文件">
<el-descriptions-item label="文件路径(完整路径)">
<a
style=" color: #0072c6;margin-right:10px;"
v-for="(item, index) in files(form)"
style="text-decoration: underline; color: rgb(24, 144, 255)"
v-for="(item, index) in files(form.fileUrl)"
target="_blank"
:key="index"
:href="item.fileUrl"
>{{ item.fileName }}</a
:href="item"
>{{ item }}&nbsp;,&nbsp;</a
>
</el-descriptions-item>
@ -489,19 +489,8 @@ export default {
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
if (!e) return [];
return e.split(",");
},
alter(e) {
updateZxyh(e).then(() => {

@ -1,749 +0,0 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<el-form-item label="涉及单位数" prop="unitNumber">
<el-input
v-model="queryParams.unitNumber"
placeholder="请输入涉及单位数"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="新增资产数" prop="addNumber">
<el-input
v-model="queryParams.addNumber"
placeholder="请输入新增资产数"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div class="layui-table-tool" ref="tableTool">
<el-button
type="primary"
size="mini"
@click="handleAdd()"
v-hasPermi="['tcZz/networkSecurity:zczccg:add']"
>新增</el-button
>
<el-button
type="success"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/networkSecurity:zczccg:edit']"
>修改</el-button
>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/networkSecurity:zczccg:remove']"
>删除</el-button
>
<el-button
type="warning"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['tcZz/networkSecurity:zczccg:export']"
>导出</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<!-- <el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button
>
<el-button
type="danger"
size="mini"
@click="banned"
autofocus
:disabled="multiple"
>禁用</el-button
> -->
</div>
<el-table
v-loading="loading"
:data="xzzcslList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="涉及单位数" align="center" prop="unitNumber" />
<el-table-column label="新增资产数" align="center" prop="addNumber" />
<!-- <el-table-column label="处置情况" align="center" prop="czState" />
<el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isStatus"
active-color="#ff4949"
inactive-color="#13ce66"
:active-value="2"
:inactive-value="1"
@change="alter(scope.row)"
>
</el-switch>
</template>
</el-table-column> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleInfo(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zczccg:list']"
>
查看
</el-button>
<el-button
type="success"
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zczccg:edit']"
>修改</el-button
>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zczccg:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改新增资产数量对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-radio-group v-model="form.isStatus">
<el-radio :label="1">启用</el-radio>
<el-radio :label="2">禁用</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="上传文件">
<div class="updataFile">
<div class="fileHeader">
<div class="names">文件名称</div>
<div class="urls">文件路径(完整路径)</div>
</div>
<div @click="addFile" class="fileIcon">
<i class="el-icon-circle-plus-outline"></i>
</div>
</div>
<div
class="main-file"
v-for="(item, index) in fileNameS"
:key="index"
>
<div class="fileItems">
<div class="names">
<el-input
v-model="item.fileName"
placeholder="请输入文件名称"
/>
</div>
<div class="urls">
<el-input
v-model="item.fileUrl"
placeholder="请输入文件路径(完整路径)"
/>
</div>
</div>
<div @click="removeFile(index)" class="fileIcon">
<i class="el-icon-remove-outline"></i>
</div>
</div>
</el-form-item> -->
<el-form-item label="涉及单位数" prop="unitNumber">
<el-input v-model="form.unitNumber" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="新增资产数" prop="addNumber">
<el-input v-model="form.addNumber" placeholder="请输入目标IP/域名" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看新增资产数量详情页-->
<el-dialog
:visible.sync="infoOpen"
width="90%"
append-to-body
:close-on-click-modal="false"
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="新增资产数量"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="涉及单位数">{{
form.unitNumber
}}</el-descriptions-item>
<el-descriptions-item label="新增资产数">{{
form.addNumber
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listZczccg,
getZczccg,
delZczccg,
addZczccg,
updateZczccg,
exportZczccg,
isStatusZczccg,
importZczccg,
} from "@/api/tcZz/networkSecurity/xzzcsl";
import { getToken } from "@/utils/auth";
export default {
name: "Zczccg",
//
dicts: ["tc_area", "tc_start"],
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
xzzcslList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
unitNumber: null,
addNumber: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
unitNumber: [
{ required: true, message: "涉及单位数不能为空", trigger: "blur" },
],
addNumber: [
{ required: true, message: "新增资产数不能为空", trigger: "blur" },
],
},
fileNameS: [],
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
},
alter(e) {
updateZczccg(e).then(() => {
this.getList();
this.$modal.msgSuccess("修改成功");
});
},
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/zczccg/importTemplate",
{},
`新增资产数量模板.xlsx`
);
},
//
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importZczccg(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
//
enable(row) {
this.isStatusFuc(row, 1);
},
//
banned(row) {
this.isStatusFuc(row, 2);
},
isStatusFuc(row, e) {
const ids = row.id || this.ids.join(",");
const src = e == 1 ? "启动" : "禁用";
this.$confirm("是否确认" + src + '编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return isStatusZczccg({ ids: ids, isStatus: e });
})
.then(() => {
this.getList(e);
})
.catch(() => {});
},
//
addFile() {
if (this.fileNameS.length <= 0) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
if (
this.fileNameS[this.fileNameS.length - 1].fileUrl != "" &&
this.fileNameS[this.fileNameS.length - 1].fileName != ""
) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
this.$modal.msgError("请完整填写上一条");
}
}
},
//
removeFile(index) {
this.fileNameS.splice(index, 1);
},
/** 查询新增资产数量列表 */
getList(e) {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listZczccg(this.queryParams).then((response) => {
this.xzzcslList = response.rows;
this.total = response.total;
this.loading = false;
if (e == 1) {
this.$modal.msgSuccess("启动成功");
} else if (e == 2) {
this.$modal.msgSuccess("禁用成功");
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
unitNumber: null,
addNumber: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.daterangeUpdateTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/**查看按钮操作 */
handleInfo(row) {
this.reset();
const id = row.id || this.ids;
getZczccg(id).then((response) => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看新增资产数量详情";
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = [
{
fileName: "",
fileUrl: "",
},
];
this.open = true;
this.title = "添加新增资产数量";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = [];
const id = row.id || this.ids;
getZczccg(id).then((response) => {
this.form = response.data;
if (response.data.fileName && response.data.fileUrl) {
let arr1 = response.data.fileName.split(",");
let arr2 = response.data.fileUrl.split(",");
arr1.forEach((value, index) => {
this.fileNameS.push({
fileName: value,
fileUrl: arr2[index],
});
});
}
this.open = true;
this.title = "修改新增资产数量";
});
},
/** 提交按钮 */
submitForm() {
let arr1 = [];
let arr2 = [];
if (this.fileNameS.length > 0) {
this.fileNameS.forEach((value) => {
if (value.fileName && value.fileUrl) {
arr1.push(value.fileName);
arr2.push(value.fileUrl);
}
});
this.form.fileName = arr1.join(",");
this.form.fileUrl = arr2.join(",");
} else {
this.form.fileName = "";
this.form.fileUrl = "";
}
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateZczccg(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addZczccg(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delZczccg(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有新增资产数量数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/networkSecurity/zczccg/export",
{
...this.queryParams,
},
"新增资产数量_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.updataFile {
display: flex;
}
.fileIcon {
width: 10%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
}
.main-file {
display: flex;
}
.fileHeader {
border: 1px solid #dcdfe6;
color: #515a6e;
font-weight: bold;
height: 40px;
display: flex;
background: #f8f8f9;
width: 90%;
}
.fileItems {
border: 1px solid #dcdfe6;
border-top: none;
color: #606266;
height: 40px;
display: flex;
width: 90%;
}
.names {
width: 40%;
border-right: 1px solid #dcdfe6;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .names .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
.urls {
width: 60%;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .urls .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
</style>

@ -1,776 +0,0 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<!-- <el-form-item label="区域" prop="areaId">
<el-select
v-model="queryParams.areaId"
placeholder="请选择区域"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-select
v-model="queryParams.isStatus"
placeholder="请选择启用/禁用"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.tc_start"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<el-form-item label="单位名称" prop="unitName">
<el-input
v-model="queryParams.unitName"
placeholder="请输入单位名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="积分" prop="integral">
<el-input
v-model="queryParams.integral"
placeholder="请输入积分"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div class="layui-table-tool" ref="tableTool">
<el-button
type="primary"
size="mini"
@click="handleAdd()"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:add']"
>新增</el-button
>
<el-button
type="success"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:edit']"
>修改</el-button
>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:remove']"
>删除</el-button
>
<el-button
type="warning"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:export']"
>导出</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<!-- <el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button
>
<el-button
type="danger"
size="mini"
@click="banned"
autofocus
:disabled="multiple"
>禁用</el-button
> -->
</div>
<el-table
v-loading="loading"
:data="zcdwpmList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="区域" align="center" prop="areaId">
<template slot-scope="scope">
<dict-tag :options="dict.type.tc_area" :value="scope.row.areaId" />
</template>
</el-table-column> -->
<el-table-column label="单位名称" align="center" prop="unitName" />
<el-table-column label="积分" align="center" prop="integral" />
<!-- <el-table-column label="处置情况" align="center" prop="czState" /> -->
<!-- <el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isStatus"
active-color="#ff4949"
inactive-color="#13ce66"
:active-value="2"
:inactive-value="1"
@change="alter(scope.row)"
>
</el-switch>
</template>
</el-table-column> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleInfo(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:list']"
>
查看
</el-button>
<el-button
type="success"
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:edit']"
>修改</el-button
>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zcdwpm:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改众测单位排名对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<!-- <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域">
<el-option
v-for="dict in dict.type.tc_area"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-radio-group v-model="form.isStatus">
<el-radio :label="1">启用</el-radio>
<el-radio :label="2">禁用</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="单位名称" prop="unitName">
<el-input v-model="form.unitName" placeholder="请输入单位名称" />
</el-form-item>
<el-form-item label="积分" prop="integral">
<el-input v-model="form.integral" placeholder="请输入积分" />
</el-form-item>
<!-- <el-form-item label="处置情况" prop="czState">
<el-input v-model="form.czState" placeholder="请输入处置情况" />
</el-form-item> -->
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看众测单位排名详情页-->
<el-dialog
:visible.sync="infoOpen"
width="90%"
append-to-body
:close-on-click-modal="false"
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="众测单位排名"
:column="2"
border
labelClassName="desLable"
>
<!-- <el-descriptions-item label="区域">{{
selectDictLabel(dict.type.tc_area, form.areaId)
}}</el-descriptions-item> -->
<!-- <el-descriptions-item label="启用/禁用">{{
selectDictLabel(dict.type.tc_start, form.isStatus)
}}</el-descriptions-item> -->
<el-descriptions-item label="单位名称">{{
form.unitName
}}</el-descriptions-item>
<el-descriptions-item label="积分">{{
form.integral
}}</el-descriptions-item>
<!-- <el-descriptions-item label="处置情况">{{
form.czState
}}</el-descriptions-item> -->
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listZcdwpm,
getZcdwpm,
delZcdwpm,
addZcdwpm,
updateZcdwpm,
exportZcdwpm,
isStatusZcdwpm,
importZcdwpm,
} from "@/api/tcZz/networkSecurity/zcdwpm";
import { getToken } from "@/utils/auth";
export default {
name: "Zcdwpm",
//
dicts: ["tc_area", "tc_start"],
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
zcdwpmList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
// areaId: null,
// isStatus: null,
unitName: null,
integral: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
// areaId: [{ required: true, message: "", trigger: "blur" }],
// isStatus: [
// { required: true, message: "/", trigger: "blur" },
// ],
unitName: [
{ required: true, message: "单位名称不能为空", trigger: "blur" },
],
integral: [
{ required: true, message: "积分不能为空", trigger: "blur" },
],
// czState: [
// { required: true, message: "", trigger: "blur" },
// ],
},
fileNameS: [],
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
},
alter(e) {
updateZcdwpm(e).then(() => {
this.getList();
this.$modal.msgSuccess("修改成功");
});
},
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/zcdwpm/importTemplate",
{},
`众测单位排名模板.xlsx`
);
},
//
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importZcdwpm(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
//
enable(row) {
this.isStatusFuc(row, 1);
},
//
banned(row) {
this.isStatusFuc(row, 2);
},
isStatusFuc(row, e) {
const ids = row.id || this.ids.join(",");
const src = e == 1 ? "启动" : "禁用";
this.$confirm("是否确认" + src + '编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return isStatusZcdwpm({ ids: ids, isStatus: e });
})
.then(() => {
this.getList(e);
})
.catch(() => {});
},
//
addFile() {
if (this.fileNameS.length <= 0) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
if (
this.fileNameS[this.fileNameS.length - 1].fileUrl != "" &&
this.fileNameS[this.fileNameS.length - 1].fileName != ""
) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
this.$modal.msgError("请完整填写上一条");
}
}
},
//
removeFile(index) {
this.fileNameS.splice(index, 1);
},
/** 查询众测单位排名列表 */
getList(e) {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listZcdwpm(this.queryParams).then((response) => {
this.zcdwpmList = response.rows;
this.total = response.total;
this.loading = false;
if (e == 1) {
this.$modal.msgSuccess("启动成功");
} else if (e == 2) {
this.$modal.msgSuccess("禁用成功");
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
// areaId: null,
// isStatus: 1,
unitName: null,
integral: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.daterangeUpdateTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/**查看按钮操作 */
handleInfo(row) {
this.reset();
const id = row.id || this.ids;
getZcdwpm(id).then((response) => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看众测单位排名";
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = [
{
fileName: "",
fileUrl: "",
},
];
this.open = true;
this.title = "添加众测单位排名";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = [];
const id = row.id || this.ids;
getZcdwpm(id).then((response) => {
this.form = response.data;
if (response.data.fileName && response.data.fileUrl) {
let arr1 = response.data.fileName.split(",");
let arr2 = response.data.fileUrl.split(",");
arr1.forEach((value, index) => {
this.fileNameS.push({
fileName: value,
fileUrl: arr2[index],
});
});
}
this.open = true;
this.title = "修改众测单位排名";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateZcdwpm(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addZcdwpm(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delZcdwpm(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有众测单位排名数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/networkSecurity/zcdwpm/export",
{
...this.queryParams,
},
"众测单位排名_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.updataFile {
display: flex;
}
.fileIcon {
width: 10%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
}
.main-file {
display: flex;
}
.fileHeader {
border: 1px solid #dcdfe6;
color: #515a6e;
font-weight: bold;
height: 40px;
display: flex;
background: #f8f8f9;
width: 90%;
}
.fileItems {
border: 1px solid #dcdfe6;
border-top: none;
color: #606266;
height: 40px;
display: flex;
width: 90%;
}
.names {
width: 40%;
border-right: 1px solid #dcdfe6;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .names .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
.urls {
width: 60%;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .urls .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
</style>

@ -1,738 +0,0 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<el-form-item label="漏洞等级" prop="ldLevel">
<el-select
v-model="queryParams.ldLevel"
placeholder="请选择漏洞等级"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.ld_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-select
v-model="queryParams.isStatus"
placeholder="请选择启用/禁用"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.tc_start"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div class="layui-table-tool" ref="tableTool">
<el-button
type="primary"
size="mini"
@click="handleAdd()"
v-hasPermi="['tcZz/networkSecurity:zclds:add']"
>新增</el-button
>
<el-button
type="success"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/networkSecurity:zclds:edit']"
>修改</el-button
>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/networkSecurity:zclds:remove']"
>删除</el-button
>
<el-button
type="warning"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['tcZz/networkSecurity:zclds:export']"
>导出</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<!-- <el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button
>
<el-button
type="danger"
size="mini"
@click="banned"
autofocus
:disabled="multiple"
>禁用</el-button
> -->
</div>
<el-table
v-loading="loading"
:data="zcldsList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="漏洞等级" align="center" prop="ldLevel">
<template slot-scope="scope">
<dict-tag :options="dict.type.ld_level" :value="scope.row.ldLevel" />
</template>
</el-table-column>
<el-table-column label="漏洞数量" align="center" prop="ldNumber" />
<!-- <el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isStatus"
active-color="#ff4949"
inactive-color="#13ce66"
:active-value="2"
:inactive-value="1"
@change="alter(scope.row)"
>
</el-switch>
</template>
</el-table-column> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleInfo(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zclds:list']"
>
查看
</el-button>
<el-button
type="success"
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zclds:edit']"
>修改</el-button
>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zclds:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改众测漏洞数对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<el-form-item label="漏洞等级" prop="ldLevel">
<el-select v-model="form.ldLevel" placeholder="请选择漏洞等级">
<el-option
v-for="dict in dict.type.ld_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-radio-group v-model="form.isStatus">
<el-radio :label="1">启用</el-radio>
<el-radio :label="2">禁用</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="漏洞数量" prop="ldNumber">
<el-input v-model="form.ldNumber" placeholder="请输入漏洞数量" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看众测漏洞数详情页-->
<el-dialog
:visible.sync="infoOpen"
width="90%"
append-to-body
:close-on-click-modal="false"
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="众测漏洞数"
:column="2"
border
labelClassName="desLable"
>
<el-descriptions-item label="漏洞等级">{{
selectDictLabel(dict.type.ld_level, form.ldLevel)
}}</el-descriptions-item>
<!-- <el-descriptions-item label="启用/禁用">{{
selectDictLabel(dict.type.tc_start, form.isStatus)
}}</el-descriptions-item> -->
<el-descriptions-item label="漏洞数量">{{
form.ldNumber
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listZclds,
getZclds,
delZclds,
addZclds,
updateZclds,
// exportZclds,
isStatusZclds,
importZclds,
} from "@/api/tcZz/networkSecurity/zclds";
import { getToken } from "@/utils/auth";
export default {
name: "Zclds",
//
dicts: ["ld_level"],
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
zcldsList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
ldLevel: null,
isStatus: null,
ldNumber: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
ldLevel: [{ required: true, message: "请选择漏洞等级", trigger: "blur" }],
isStatus: [
{ required: true, message: "请选择启动/禁用", trigger: "blur" },
],
ldNumber: [
{ required: true, message: "漏洞数量不能为空", trigger: "blur" },
],
ipAddress: [
{ required: true, message: "目标IP/域名不能为空", trigger: "blur" },
],
czState: [
{ required: true, message: "处置情况不能为空", trigger: "blur" },
],
},
fileNameS: [],
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
},
alter(e) {
updateZclds(e).then(() => {
this.getList();
this.$modal.msgSuccess("修改成功");
});
},
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/zclds/importTemplate",
{},
`众测漏洞数模板.xlsx`
);
},
//
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importZclds(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
//
enable(row) {
this.isStatusFuc(row, 1);
},
//
banned(row) {
this.isStatusFuc(row, 2);
},
isStatusFuc(row, e) {
const ids = row.id || this.ids.join(",");
const src = e == 1 ? "启动" : "禁用";
this.$confirm("是否确认" + src + '编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return isStatusZclds({ ids: ids, isStatus: e });
})
.then(() => {
this.getList(e);
})
.catch(() => {});
},
//
addFile() {
if (this.fileNameS.length <= 0) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
if (
this.fileNameS[this.fileNameS.length - 1].fileUrl != "" &&
this.fileNameS[this.fileNameS.length - 1].fileName != ""
) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
this.$modal.msgError("请完整填写上一条");
}
}
},
//
removeFile(index) {
this.fileNameS.splice(index, 1);
},
/** 查询众测漏洞数列表 */
getList(e) {
this.loading = true;
this.queryParams.params = {};
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] =
this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
}
if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] =
this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
}
listZclds(this.queryParams).then((response) => {
this.zcldsList = response.rows;
this.total = response.total;
this.loading = false;
if (e == 1) {
this.$modal.msgSuccess("启动成功");
} else if (e == 2) {
this.$modal.msgSuccess("禁用成功");
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
ldLevel: null,
// isStatus: 1,
ldNumber: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.daterangeUpdateTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/**查看按钮操作 */
handleInfo(row) {
this.reset();
const id = row.id || this.ids;
getZclds(id).then((response) => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看众测漏洞数详情";
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = [
{
fileName: "",
fileUrl: "",
},
];
this.open = true;
this.title = "添加众测漏洞数";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = [];
const id = row.id || this.ids;
getZclds(id).then((response) => {
this.form = response.data;
if (response.data.fileName && response.data.fileUrl) {
let arr1 = response.data.fileName.split(",");
let arr2 = response.data.fileUrl.split(",");
arr1.forEach((value, index) => {
this.fileNameS.push({
fileName: value,
fileUrl: arr2[index],
});
});
}
this.open = true;
this.title = "修改众测漏洞数";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateZclds(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addZclds(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delZclds(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有众测漏洞数数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/networkSecurity/zclds/export",
{
...this.queryParams,
},
"众测漏洞数_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.updataFile {
display: flex;
}
.fileIcon {
width: 10%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
}
.main-file {
display: flex;
}
.fileHeader {
border: 1px solid #dcdfe6;
color: #515a6e;
font-weight: bold;
height: 40px;
display: flex;
background: #f8f8f9;
width: 90%;
}
.fileItems {
border: 1px solid #dcdfe6;
border-top: none;
color: #606266;
height: 40px;
display: flex;
width: 90%;
}
.names {
width: 40%;
border-right: 1px solid #dcdfe6;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .names .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
.urls {
width: 60%;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .urls .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
</style>

@ -1,756 +0,0 @@
<template>
<div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch">
<el-form
:model="queryParams"
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<el-form-item label="所属单位" prop="unit">
<el-input
v-model="queryParams.unit"
placeholder="请输入所属单位"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="资产名称" prop="zcName">
<el-input
v-model="queryParams.zcName"
placeholder="请输入资产名称"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-select
v-model="queryParams.isStatus"
placeholder="请选择启用/禁用"
clearable
size="small"
>
<el-option
v-for="dict in dict.type.tc_start"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> -->
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div>
<div class="layui-table-tool" ref="tableTool">
<el-button
type="primary"
size="mini"
@click="handleAdd()"
v-hasPermi="['tcZz/networkSecurity:zclb:add']"
>新增</el-button
>
<el-button
type="success"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['tcZz/networkSecurity:zclb:edit']"
>修改</el-button
>
<el-button
type="danger"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['tcZz/networkSecurity:zclb:remove']"
>删除</el-button
>
<el-button
type="warning"
size="mini"
:loading="exportLoading"
@click="handleExport"
v-hasPermi="['tcZz/networkSecurity:zclb:export']"
>导出</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<!-- <el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button
>
<el-button
type="danger"
size="mini"
@click="banned"
autofocus
:disabled="multiple"
>禁用</el-button
> -->
</div>
<el-table
v-loading="loading"
:data="zclbList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="所属单位" align="center" prop="unit" />
<el-table-column label="资产名称" align="center" prop="zcName" />
<el-table-column label="资产地址" align="center" prop="zcAddress" />
<!-- <el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isStatus"
active-color="#ff4949"
inactive-color="#13ce66"
:active-value="2"
:inactive-value="1"
@change="alter(scope.row)"
>
</el-switch>
</template>
</el-table-column> -->
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope">
<el-button
size="mini"
@click="handleInfo(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zclb:list']"
>
查看
</el-button>
<el-button
type="success"
size="mini"
@click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zclb:edit']"
>修改</el-button
>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row)"
v-hasPermi="['tcZz/networkSecurity:zclb:remove']"
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改资产情况对话框 -->
<el-dialog
:visible.sync="open"
width="500px"
append-to-body
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ title }}</div>
<el-form
ref="form"
:model="form"
:rules="rules"
label-width="auto"
class="dialog-from"
>
<!-- <el-form-item label="漏洞等级" prop="ldLevel">
<el-select v-model="form.ldLevel" placeholder="请选择漏洞等级">
<el-option
v-for="dict in dict.type.ld_level"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item> -->
<!-- <el-form-item label="启用/禁用" prop="isStatus">
<el-radio-group v-model="form.isStatus">
<el-radio :label="1">启用</el-radio>
<el-radio :label="2">禁用</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item label="所属单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入所属单位" />
</el-form-item>
<el-form-item label="资产名称" prop="zcName">
<el-input v-model="form.zcName" placeholder="请输入资产名称" />
</el-form-item>
<el-form-item label="资产地址" prop="zcAddress">
<el-input v-model="form.zcAddress" placeholder="请输入资产地址" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!--查看资产情况详情页-->
<el-dialog
:visible.sync="infoOpen"
width="90%"
append-to-body
:close-on-click-modal="false"
:destroy-on-close="true"
custom-class="dialog-box"
>
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions
title="资产情况详情"
:column="2"
border
labelClassName="desLable"
>
<!-- <el-descriptions-item label="漏洞等级">{{
selectDictLabel(dict.type.ld_level, form.ldLevel)
}}</el-descriptions-item> -->
<!-- <el-descriptions-item label="启用/禁用">{{
selectDictLabel(dict.type.tc_start, form.isStatus)
}}</el-descriptions-item> -->
<el-descriptions-item label="所属单位">{{
form.unit
}}</el-descriptions-item>
<el-descriptions-item label="资产名称">{{
form.zcName
}}</el-descriptions-item>
<el-descriptions-item label="资产地址">{{
form.zcAddress
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog>
<!-- 导入 -->
<el-dialog
:visible.sync="fileOpen"
width="400px"
append-to-body
custom-class="dialog-box"
@close="cancelFile"
>
<div slot="title" class="dialog-title">导入</div>
<el-upload
ref="upload"
:limit="limit"
action="666"
:accept="accept"
:headers="headers"
:file-list="fileList"
:multiple="false"
:auto-upload="false"
drag
:before-upload="handleBeforeUpload"
:on-exceed="handleExceed"
:http-request="handleFile"
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
type="primary"
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFile"> </el-button>
<el-button @click="cancelFile"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listZclb,
getZclb,
delZclb,
addZclb,
updateZclb,
// exportZclb,
isStatusZclb,
importZclb,
} from "@/api/tcZz/networkSecurity/zcqk";
import { getToken } from "@/utils/auth";
export default {
name: "Zclb",
//
dicts: ["ld_level"],
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
zclbList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
ldLevel: null,
isStatus: null,
ldNumber: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
},
//
form: {},
//
rules: {
// ldLevel: [{ required: true, message: "", trigger: "blur" }],
// isStatus: [
// { required: true, message: "/", trigger: "blur" },
// ],
unit: [
{ required: true, message: "漏洞数量不能为空", trigger: "blur" },
],
zcName: [
{ required: true, message: "目标IP/域名不能为空", trigger: "blur" },
],
zcAddress: [
{ required: true, message: "处置情况不能为空", trigger: "blur" },
],
},
fileNameS: [],
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
created() {
this.getList();
},
methods: {
files(e) {
console.log(e);
if (!e.fileUrl) return [];
let newA = e.fileUrl.split(",");
let newB = e.fileName.split(",");
let newC = [];
newA.forEach((value, index) => {
newC.push({
fileName: newB[index],
fileUrl: value,
});
});
console.log(newC);
return newC;
},
alter(e) {
updateZclb(e).then(() => {
this.getList();
this.$modal.msgSuccess("修改成功");
});
},
//
importTemplate() {
this.download(
"/tcZz/networkSecurity/zclb/importTemplate",
{},
`资产情况详情模板.xlsx`
);
},
//
importFiles() {
this.fileOpen = true;
},
submitFile() {
this.$refs.upload.submit();
},
cancelFile() {
this.fileOpen = false;
},
//
handleBeforeUpload(file) {
//
const fileName = file.name.split(".");
const fileExt = fileName[fileName.length - 1];
const isTypeOk = this.accept.includes(fileExt);
if (!isTypeOk) {
this.$modal.msgError(`文件格式不正确, 请上传${this.accept}格式文件!`);
return false;
}
},
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
handleFile(data) {
this.$modal.loading();
let form = new FormData();
form.append("file", data.file);
importZclb(form)
.then((res) => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$modal.msgSuccess("导入成功");
this.$refs.upload.clearFiles();
this.getList();
})
.catch(() => {
this.fileOpen = false;
this.$modal.closeLoading();
this.$refs.upload.clearFiles();
this.getList();
});
},
//
enable(row) {
this.isStatusFuc(row, 1);
},
//
banned(row) {
this.isStatusFuc(row, 2);
},
isStatusFuc(row, e) {
const ids = row.id || this.ids.join(",");
const src = e == 1 ? "启动" : "禁用";
this.$confirm("是否确认" + src + '编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return isStatusZclb({ ids: ids, isStatus: e });
})
.then(() => {
this.getList(e);
})
.catch(() => {});
},
//
addFile() {
if (this.fileNameS.length <= 0) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
if (
this.fileNameS[this.fileNameS.length - 1].fileUrl != "" &&
this.fileNameS[this.fileNameS.length - 1].fileName != ""
) {
this.fileNameS.push({
fileName: "",
fileUrl: "",
});
} else {
this.$modal.msgError("请完整填写上一条");
}
}
},
//
removeFile(index) {
this.fileNameS.splice(index, 1);
},
/** 查询资产情况列表 */
getList(e) {
this.loading = true;
// this.queryParams.params = {};
// if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) {
// this.queryParams.params["beginCreateTime"] =
// this.daterangeCreateTime[0];
// this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
// }
// if (null != this.daterangeUpdateTime && "" != this.daterangeUpdateTime) {
// this.queryParams.params["beginUpdateTime"] =
// this.daterangeUpdateTime[0];
// this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
// }
listZclb(this.queryParams).then((response) => {
this.zclbList = response.rows;
this.total = response.total;
this.loading = false;
if (e == 1) {
this.$modal.msgSuccess("启动成功");
} else if (e == 2) {
this.$modal.msgSuccess("禁用成功");
}
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
unit: null,
// isStatus: 1,
zcName: null,
zcAddress: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
remark: null,
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.daterangeCreateTime = [];
this.daterangeUpdateTime = [];
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.id);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/**查看按钮操作 */
handleInfo(row) {
this.reset();
const id = row.id || this.ids;
getZclb(id).then((response) => {
this.form = response.data;
this.infoOpen = true;
this.infoTitle = "查看资产情况详情";
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.fileNameS = [
{
fileName: "",
fileUrl: "",
},
];
this.open = true;
this.title = "添加资产情况详情";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
this.fileNameS = [];
const id = row.id || this.ids;
getZclb(id).then((response) => {
this.form = response.data;
if (response.data.fileName && response.data.fileUrl) {
let arr1 = response.data.fileName.split(",");
let arr2 = response.data.fileUrl.split(",");
arr1.forEach((value, index) => {
this.fileNameS.push({
fileName: value,
fileUrl: arr2[index],
});
});
}
this.open = true;
this.title = "修改资产情况详情";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {
updateZclb(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addZclb(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(function () {
return delZclb(ids);
})
.then(() => {
this.getList();
this.msgSuccess("删除成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
const queryParams = this.queryParams;
this.$confirm("是否确认导出所有资产情况数据项?", "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.download(
"/tcZz/networkSecurity/zclb/export",
{
...this.queryParams,
},
"资产情况_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false;
})
.catch(() => {});
},
},
};
</script>
<style lang="scss" scoped>
.updataFile {
display: flex;
}
.fileIcon {
width: 10%;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
cursor: pointer;
}
.main-file {
display: flex;
}
.fileHeader {
border: 1px solid #dcdfe6;
color: #515a6e;
font-weight: bold;
height: 40px;
display: flex;
background: #f8f8f9;
width: 90%;
}
.fileItems {
border: 1px solid #dcdfe6;
border-top: none;
color: #606266;
height: 40px;
display: flex;
width: 90%;
}
.names {
width: 40%;
border-right: 1px solid #dcdfe6;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .names .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
.urls {
width: 60%;
box-sizing: border-box;
padding-left: 10px;
}
::v-deep .urls .el-input__inner {
border: none !important;
padding-left: 0 !important;
}
</style>

@ -24,9 +24,7 @@ module.exports = {
// 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。
publicPath: process.env.NODE_ENV === "production" ? "/tczzpc/" : "/",
// publicPath: process.env.NODE_ENV === "production" ? "/demo/tczzpc/" : "/",
publicPath: process.env.NODE_ENV === "production" ? "/demo/tczzpc" : "/",
// 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)

Loading…
Cancel
Save