Compare commits

..

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

@ -5,12 +5,9 @@ VUE_APP_TITLE = 数据中台系统
ENV = 'development' 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://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 = '/prod-api'
# VUE_APP_BASE_API = 'http://39.101.188.84:9035' VUE_APP_BASE_API = 'http://39.101.188.84:9035'
VUE_APP_BASE_API = 'http://20.1.0.157:9035'
VUE_CLI_BABEL_TRANSPILE_MODULES = true

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

@ -42,11 +42,3 @@ export function delCy(id) {
method: 'delete' 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' 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' 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' 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' 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' 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) { export function listJgdw(query) {
return request({ return request({
url: '/tcZz/networkSecurity/jgdw/ListNoToken', url: '/tcZz/networkSecurity/jgdw/list',
method: 'get', method: 'get',
params: query params: query
}) })

@ -42,11 +42,3 @@ export function delMap(id) {
method: 'delete' 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' 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' 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"; @import "./element-variables.scss";
.container-main { .container-main {
height: calc(100vh - 84px); height: calc(100vh - 84px);
// overflow: hidden; overflow: hidden;
overflow-y:scroll ;
padding: 0 10px; padding: 0 10px;
// //
.search-hearder { .search-hearder {
@ -43,19 +42,19 @@
} }
// //
.el-table .el-table__header-wrapper th { // .el-table .el-table__header-wrapper th {
font-size: 12px; // font-size: 12px;
font-weight: 400; // font-weight: 400;
// height: 35px; // // height: 35px;
color: #666; // color: #666;
// background-color: #f2f2f2; // background-color: #f2f2f2;
} // }
.el-table--medium .el-table__cell { // .el-table--medium .el-table__cell {
padding: 3px 0; // padding: 3px 0;
// height: 35px; // // height: 35px;
font-size: 12px; // font-size: 12px;
color: #666; // color: #666;
} // }
.el-table .fixed-width .el-button--mini { .el-table .fixed-width .el-button--mini {
font-size: 12px; font-size: 12px;
@ -174,9 +173,6 @@ input[type="number"] {
.desLable { .desLable {
width: 180px !important; width: 180px !important;
} }
.desContent {
width: 400px;
}
.image-title { .image-title {
margin: 10px 0; 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"> <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"> <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> <span class="el-icon-document"> {{ file.name }} </span>
</el-link> </el-link>
<div class="ele-upload-list__item-content-action"> <div class="ele-upload-list__item-content-action">
@ -41,7 +41,7 @@
<script> <script>
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import { MessageBox } from 'element-ui'
export default { export default {
name: "FileUpload", name: "FileUpload",
props: { props: {
@ -150,25 +150,11 @@ export default {
this.uploadList.push({ name: res.originalFilename, url: res.fileName }); this.uploadList.push({ name: res.originalFilename, url: res.fileName });
this.uploadedSuccessfully(); this.uploadedSuccessfully();
} else { } else {
this.number--;
this.$modal.closeLoading(); this.$modal.closeLoading();
if(res.code == 401) { this.$modal.msgError(res.msg);
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$refs.fileUpload.handleRemove(file);
this.$store.dispatch('LogOut').then(() => { this.uploadedSuccessfully();
location.href = '/tczzpc';
})
}).catch(err=>{
this.number--;
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
})
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
} }
}, },
// //

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

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

@ -1,11 +1,11 @@
<template> <template>
<div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }"> <div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }">
<transition name="sidebarLogoFade"> <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" /> <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> <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link> </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" /> <img v-if="logo" :src="logo" class="sidebar-logo" />
<h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1>
</router-link> </router-link>

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

@ -16,7 +16,6 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
const service = axios.create({ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
// baseURL: location.origin + process.env.VUE_APP_URL,
// 超时 // 超时
timeout: 100000 timeout: 100000
}) })
@ -85,15 +84,15 @@ service.interceptors.response.use(res => {
if (code === 401) { if (code === 401) {
if (!isRelogin.show) { if (!isRelogin.show) {
isRelogin.show = true; isRelogin.show = true;
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => { MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => {
isRelogin.show = false;
store.dispatch('LogOut').then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false; isRelogin.show = false;
}); store.dispatch('LogOut').then(() => {
} location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
}
return Promise.reject('无效的会话,或者会话已过期,请重新登录。') return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
} else if (code === 500) { } else if (code === 500) {
Message({ message: msg, type: 'error' }) Message({ message: msg, type: 'error' })

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

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

@ -237,35 +237,45 @@
<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> <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-form-item label="区域" prop="areaId">
<el-select v-model="form.type" placeholder="请选择类型"> <el-select v-model="form.areaId" placeholder="请选择区域">
<el-option <el-option
v-for="dict in dict.type.tc_bztype" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="parseInt(dict.value)" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item> -->
<el-form-item label="启用/禁用"> <el-form-item label="类型" prop="type">
<el-radio-group v-model="form.isStatus"> <el-select v-model="form.type" placeholder="请选择类型">
<el-radio <el-option
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_bztype"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="dict.label"
>{{dict.label}}</el-radio> :value="parseInt(dict.value)"
</el-radio-group> ></el-option>
</el-form-item> </el-select>
<el-form-item label="账号ID" prop="zhId"> </el-form-item>
<el-input v-model="form.zhId" placeholder="请输入账号ID" /> <el-form-item label="启用/禁用">
</el-form-item> <el-radio-group v-model="form.isStatus">
<el-form-item label="网址" prop="url"> <el-radio
<el-input v-model="form.url" placeholder="请输入网址" /> v-for="dict in dict.type.tc_start"
</el-form-item> :key="dict.value"
<el-form-item label="备注" prop="remark"> :label="parseInt(dict.value)"
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> >{{dict.label}}</el-radio>
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" /> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="账号ID" prop="zhId">
<el-input v-model="form.zhId" placeholder="请输入账号ID" />
</el-form-item>
<el-form-item label="网址" prop="url">
<el-input v-model="form.url" 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-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -274,31 +284,30 @@
</el-dialog> </el-dialog>
<!--查看B站小红书详情页--> <!--查看B站小红书详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div> <div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="B站、小红书" :column="2" border labelClassName="desLable"> <el-descriptions title="B站、小红书" :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_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item> <el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
<el-descriptions-item label="账号ID">{{ form.zhId }}</el-descriptions-item> <el-descriptions-item label="账号ID">{{ form.zhId }}</el-descriptions-item>
<!-- <el-descriptions-item label="网址">{{ form.url }}</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="类型">{{ selectDictLabel(dict.type.tc_bztype,form.type) }}</el-descriptions-item> <el-descriptions-item label="类型">{{ selectDictLabel(dict.type.tc_bztype,form.type) }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<import-dialog ref="importdialog" <import-dialog ref="importdialog"
propsUrl='/tcZz/netManage/bzhan/common/importExcel' propsUrl='/tcZz/netManage/bzhan/common/importExcel'
@ -605,9 +614,3 @@
} }
</script> </script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -2,113 +2,113 @@
<div class="container-main" ref="main"> <div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch"> <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-form-item label="${comment}" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"
placeholder="请输入${comment}" placeholder="请输入${comment}"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item label="区域" prop="areaId"> <el-form-item label="区域" prop="areaId">
<el-select v-model="queryParams.areaId" placeholder="请选择区域" clearable size="small"> <el-select v-model="queryParams.areaId" placeholder="请选择区域" clearable size="small">
<el-option <el-option
v-for="dict in dict.type.tc_area" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="启用/禁用" prop="isStatus"> <el-form-item label="启用/禁用" prop="isStatus">
<el-select v-model="queryParams.isStatus" placeholder="请选择启用/禁用" clearable size="small"> <el-select v-model="queryParams.isStatus" placeholder="请选择启用/禁用" clearable size="small">
<el-option <el-option
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_start"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"
placeholder="请输入标题" placeholder="请输入标题"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-input <el-input
v-model="queryParams.type" v-model="queryParams.type"
placeholder="请输入类型" placeholder="请输入类型"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="文件名称" prop="fileName"> <!-- <el-form-item label="文件名称" prop="fileName">
<el-input <el-input
v-model="queryParams.fileName" v-model="queryParams.fileName"
placeholder="请输入文件名称" placeholder="请输入文件名称"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="创建者" prop="createBy"> <el-form-item label="创建者" prop="createBy">
<el-input <el-input
v-model="queryParams.createBy" v-model="queryParams.createBy"
placeholder="请输入创建者" placeholder="请输入创建者"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker
v-model="daterangeCreateTime" v-model="daterangeCreateTime"
size="small" size="small"
style="width: 240px" style="width: 240px"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
range-separator="-" range-separator="-"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="更新者" prop="updateBy"> <el-form-item label="更新者" prop="updateBy">
<el-input <el-input
v-model="queryParams.updateBy" v-model="queryParams.updateBy"
placeholder="请输入更新者" placeholder="请输入更新者"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="更新时间"> <el-form-item label="更新时间">
<el-date-picker <el-date-picker
v-model="daterangeUpdateTime" v-model="daterangeUpdateTime"
size="small" size="small"
style="width: 240px" style="width: 240px"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
type="daterange" type="daterange"
range-separator="-" range-separator="-"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input <el-input
v-model="queryParams.remark" v-model="queryParams.remark"
placeholder="请输入备注" placeholder="请输入备注"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></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-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -124,19 +124,19 @@
>新增</el-button >新增</el-button
> >
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['tcZz/netManage:gzdt:edit']" v-hasPermi="['tcZz/netManage:gzdt:edit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
type="danger" type="danger"
size="mini" size="mini"
:disabled="multiple" :disabled="multiple"
@click="handleDelete" @click="handleDelete"
v-hasPermi="['tcZz/netManage:gzdt:remove']" v-hasPermi="['tcZz/netManage:gzdt:remove']"
>删除</el-button> >删除</el-button>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -172,126 +172,126 @@
</div> </div>
<el-table v-loading="loading" :data="gzdtList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="gzdtList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="区域" align="center" prop="areaId"> <el-table-column label="区域" align="center" prop="areaId">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.tc_area" :value="scope.row.areaId"/> <dict-tag :options="dict.type.tc_area" :value="scope.row.areaId"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<el-table-column label="类型" align="center" prop="type" /> <el-table-column label="类型" align="center" prop="type" />
<!-- <el-table-column label="文件名称" align="center" prop="fileName" /> <!-- <el-table-column label="文件名称" align="center" prop="fileName" />
<el-table-column label="文件路径(完整路径)" align="center" prop="fileUrl" /> <el-table-column label="文件路径(完整路径)" align="center" prop="fileUrl" />
<el-table-column label="备注" align="center" prop="remark" /> --> <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column label="启用/禁用" align="center" prop="isStatus"> <el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <dict-tag :options="dict.type.tc_start" :value="scope.row.isStatus"/> --> <!-- <dict-tag :options="dict.type.tc_start" :value="scope.row.isStatus"/> -->
<el-switch <el-switch
v-model="scope.row.isStatus" v-model="scope.row.isStatus"
:active-value="2" :active-value="2"
:inactive-value="1" :inactive-value="1"
active-color="#ff4949" active-color="#ff4949"
inactive-color="#13ce66" inactive-color="#13ce66"
@change="handleStatusChange(scope.row)" @change="handleStatusChange(scope.row)"
></el-switch> ></el-switch>
</template> </template>
</el-table-column> </el-table-column>
<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"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@click="handleInfo(scope.row)" @click="handleInfo(scope.row)"
v-hasPermi="['tcZz/netManage:gzdt:list']" v-hasPermi="['tcZz/netManage:gzdt:list']"
> >
查看 查看
</el-button> </el-button>
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:gzdt:edit']" v-hasPermi="['tcZz/netManage:gzdt:edit']"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
type="danger" type="danger"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:gzdt:remove']" v-hasPermi="['tcZz/netManage:gzdt:remove']"
>删除</el-button> >删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改工作动态对话框 --> <!-- 添加或修改工作动态对话框 -->
<el-dialog :visible.sync="open" width="700px" append-to-body custom-class="dialog-box"> <el-dialog :visible.sync="open" width="700px" append-to-body custom-class="dialog-box">
<div slot="title" class="dialog-title">{{ title }}</div> <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="areaId"> <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域"> <el-select v-model="form.areaId" placeholder="请选择区域">
<el-option <el-option
v-for="dict in dict.type.tc_area" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="启用/禁用"> <el-form-item label="启用/禁用">
<el-radio-group v-model="form.isStatus"> <el-radio-group v-model="form.isStatus">
<el-radio <el-radio
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_start"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="parseInt(dict.value)"
>{{dict.label}}</el-radio> >{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
</el-form-item> </el-form-item>
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-input v-model="form.type" placeholder="请输入类型" /> <el-input v-model="form.type" placeholder="请输入类型" />
</el-form-item> </el-form-item>
<!-- <el-form-item label="文件名称" prop="fileName"> <!-- <el-form-item label="文件名称" prop="fileName">
<el-input v-model="form.fileName" placeholder="请输入文件名称" /> <el-input v-model="form.fileName" placeholder="请输入文件名称" />
</el-form-item> --> </el-form-item> -->
<!-- <el-form-item label="文件"> <el-form-item label="文件">
<el-button @click="addDomain" type="primary">添加文件</el-button> <el-button @click="addDomain" type="primary">添加文件</el-button>
</el-form-item> </el-form-item>
<div v-for="(domain, index) in form.domains" :key="index" class="file-item"> <div v-for="(domain, index) in form.domains" :key="index" class="file-item">
<el-form-item <el-form-item
label="文件名称" label="文件名称"
:prop="'domains.' + index + '.fileName'" :prop="'domains.' + index + '.fileName'"
:rules="{ :rules="{
required: true, message: '文件名称不能为空', trigger: 'blur' required: true, message: '文件名称不能为空', trigger: 'blur'
}" }"
> >
<el-input v-model="domain.fileName" placeholder="请输入文件名称"></el-input> <el-input v-model="domain.fileName" placeholder="请输入文件名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="文件路径" label="文件路径"
:prop="'domains.' + index + '.fileUrl'" :prop="'domains.' + index + '.fileUrl'"
:rules="{ :rules="{
required: true, message: '文件路径不能为空', trigger: 'blur' required: true, message: '文件路径不能为空', trigger: 'blur'
}" }"
> >
<el-input v-model="domain.fileUrl" placeholder="请输入文件路径"></el-input> <el-input v-model="domain.fileUrl" placeholder="请输入文件路径"></el-input>
</el-form-item> </el-form-item>
<el-button @click.prevent="removeDomain(domain)" type="danger" size="mini">删除</el-button> <el-button @click.prevent="removeDomain(domain)" type="danger" size="mini">删除</el-button>
</div> --> </div>
<el-form-item label="文件上传" prop='fileNameS'> <!-- <el-form-item label="文件路径(完整路径)">
<fileUpload v-model="fileNameS"/> <fileUpload v-model="fileNameS"/>
</el-form-item> </el-form-item> -->
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> <!-- <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-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -300,18 +300,17 @@
</el-dialog> </el-dialog>
<!--查看工作动态详情页--> <!--查看工作动态详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div> <div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="工作动态" :column="2" border labelClassName="desLable"> <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_area,form.areaId) }}</el-descriptions-item>
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item> <el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
@ -326,7 +325,7 @@
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<import-dialog ref="importdialog" <import-dialog ref="importdialog"
@ -369,15 +368,15 @@
// //
total: 0, total: 0,
// //
gzdtList: [], gzdtList: [],
// //
title: "", title: "",
// //
open: false, open: false,
// //
daterangeCreateTime: [], daterangeCreateTime: [],
// //
daterangeUpdateTime: [], daterangeUpdateTime: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -409,12 +408,12 @@
}, },
// //
form: { form: {
// domains: [ domains: [
// { {
// fileName: "", fileName: "",
// fileUrl: "" fileUrl: ""
// } }
// ], ],
}, },
// //
rules: { rules: {
@ -428,7 +427,7 @@
{ required: true, message: '请输入类型', trigger: 'blur' }, { required: true, message: '请输入类型', trigger: 'blur' },
], ],
}, },
fileNameS:[], // fileNameS:[],
fileList:[], fileList:[],
files:[], files:[],
}; };
@ -442,15 +441,15 @@
/** 查询工作动态列表 */ /** 查询工作动态列表 */
getList() { getList() {
this.loading = true; this.loading = true;
this.queryParams.params = {}; this.queryParams.params = {};
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0]; this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
} }
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) { if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0]; this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1]; this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
} }
listGzdt(this.queryParams).then(response => { listGzdt(this.queryParams).then(response => {
this.gzdtList = response.rows; this.gzdtList = response.rows;
this.total = response.total; this.total = response.total;
@ -488,12 +487,12 @@
updateTime: null, updateTime: null,
remark: null, remark: null,
// domains: [ domains: [
// { {
// fileName: "", fileName: "",
// fileUrl: "" fileUrl: ""
// } }
// ], ],
}; };
this.resetForm("form"); this.resetForm("form");
}, },
@ -548,7 +547,7 @@
this.form = response.data; this.form = response.data;
let arr1 = this.form.fileName.split(','); let arr1 = this.form.fileName.split(',');
let arr2 = this.form.fileUrl.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)=>{ arr1.forEach((item,index)=>{
let obj = {}; let obj = {};
obj.name = item; obj.name = item;
@ -565,61 +564,50 @@
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.fileNameS = []; // this.fileNameS = [];
this.open = true; this.open = true;
this.title = "添加工作动态"; this.title = "添加工作动态";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.fileNameS = [] // this.fileNameS = []
const id = row.id || this.ids const id = row.id || this.ids
getGzdt(id).then(response => { getGzdt(id).then(response => {
this.form = response.data; // this.form = response.data;
console.log(this.form) this.form.areaId = response.data.areaId;
// this.form.areaId = response.data.areaId; this.form.isStatus = response.data.isStatus;
// this.form.isStatus = response.data.isStatus; this.form.title = response.data.title;
// this.form.title = response.data.title; this.form.type = response.data.type;
// this.form.type = response.data.type; this.form.createTime = response.data.createTime;
// this.form.createTime = response.data.createTime; this.form.remark = response.data.remark;
// this.form.remark = response.data.remark; this.form.id = response.data.id;
// this.form.id = response.data.id; if (response.data.fileName && response.data.fileUrl) {
// 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: '',
// }
// ];
// }
if(response.data.fileName && response.data.fileUrl) {
let arr1 = response.data.fileName.split(","); let arr1 = response.data.fileName.split(",");
let arr2 = response.data.fileUrl.split(","); let arr2 = response.data.fileUrl.split(",");
arr1.forEach((name,index) =>{ if(arr1.length > 1) {
let obj = {}; this.form.domains = [];
obj.name = name; arr1.forEach((value, index) => {
obj.url = arr2[index] this.form.domains.push({
this.fileNameS.push(obj) 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.open = true;
this.title = "修改工作动态"; this.title = "修改工作动态";
@ -638,40 +626,31 @@
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
let reg = new RegExp('http')
let arr1 = []; let arr1 = [];
let arr2 = []; let arr2 = [];
this.fileNameS.forEach((value) => { this.form.domains.forEach((value) => {
arr1.push(value.name); arr1.push(value.fileName);
if(reg.test(value.url)){ arr2.push(value.fileUrl);
arr2.push(value.url);
} else {
arr2.push(process.env.VUE_APP_BASE_API + value.url);
}
}); });
this.form.fileName = arr1.join(","); this.form.fileName = arr1.join(",");
this.form.fileUrl = arr2.join(","); this.form.fileUrl = arr2.join(",");
if(this.form.fileName && this.form.fileUrl) { this.$refs["form"].validate(valid => {
this.$refs["form"].validate(valid => { if (valid) {
if (valid) { if (this.form.id != null) {
if (this.form.id != null) { updateGzdt(this.form).then(response => {
updateGzdt(this.form).then(response => { this.$modal.msgSuccess("修改成功");
this.$modal.msgSuccess("修改成功"); this.open = false;
this.open = false; this.getList();
this.getList(); });
}); } else {
} else { addGzdt(this.form).then(response => {
addGzdt(this.form).then(response => { this.$modal.msgSuccess("新增成功");
this.$modal.msgSuccess("新增成功"); this.open = false;
this.open = false; this.getList();
this.getList(); });
});
}
} }
}); }
} else { });
this.$modal.msgError('请上传文件')
}
}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
@ -723,19 +702,19 @@
// this.$model.msgError(""); // this.$model.msgError("");
// }); // });
}, },
// addDomain() { addDomain() {
// // console.log(this.form.domains,'domains') // console.log(this.form.domains,'domains')
// this.form.domains.push({ this.form.domains.push({
// fileUrl: '', fileUrl: '',
// fileName: '', fileName: '',
// }); });
// }, },
// removeDomain(item) { removeDomain(item) {
// var index = this.form.domains.indexOf(item) var index = this.form.domains.indexOf(item)
// if (index !== -1) { if (index !== -1) {
// this.form.domains.splice(index, 1) this.form.domains.splice(index, 1)
// } }
// }, },
} }
} }

@ -1,13 +1,8 @@
<template> <template>
<div class="container-main" ref="main"> <div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch"> <div class="search-hearder" ref="topSearch">
<el-form <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
:model="queryParams" <!-- <el-form-item label="${comment}" prop="id">
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<!-- <el-form-item label="${comment}" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"
placeholder="请输入${comment}" placeholder="请输入${comment}"
@ -16,15 +11,15 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item label="类型" prop="type"> <el-form-item label="类型" prop="type">
<el-input <el-input
v-model="queryParams.type" v-model="queryParams.type"
placeholder="请输入类型" placeholder="请输入类型"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
<!-- <el-select v-model="queryParams.type" placeholder="请选择类型" clearable size="small"> <!-- <el-select v-model="queryParams.type" placeholder="请选择类型" clearable size="small">
<el-option <el-option
v-for="dict in dict.type.tc_jbsjtype" v-for="dict in dict.type.tc_jbsjtype"
:key="dict.value" :key="dict.value"
@ -32,17 +27,17 @@
:value="dict.value" :value="dict.value"
/> />
</el-select> --> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="数量" prop="count"> <el-form-item label="数量" prop="count">
<el-input <el-input
v-model="queryParams.count" v-model="queryParams.count"
placeholder="请输入数量" placeholder="请输入数量"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="创建者" prop="createBy"> <!-- <el-form-item label="创建者" prop="createBy">
<el-input <el-input
v-model="queryParams.createBy" v-model="queryParams.createBy"
placeholder="请输入创建者" placeholder="请输入创建者"
@ -93,134 +88,99 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
icon="el-icon-search" </el-form-item>
size="mini" </el-form>
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div> </div>
<div class="layui-table-tool" ref="tableTool"> <div class="layui-table-tool" ref="tableTool">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@click="handleAdd()" @click="handleAdd()"
v-hasPermi="['tcZz/netManage:jbsjndfltj:add']" v-hasPermi="['tcZz/netManage:jbsjndfltj:add']"
>新增</el-button >新增</el-button
> >
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['tcZz/netManage:jbsjndfltj:edit']" v-hasPermi="['tcZz/netManage:jbsjndfltj:edit']"
>修改</el-button >修改</el-button>
> <el-button
<el-button type="danger"
type="danger" size="mini"
size="mini" :disabled="multiple"
:disabled="multiple" @click="handleDelete"
@click="handleDelete" v-hasPermi="['tcZz/netManage:jbsjndfltj:remove']"
v-hasPermi="['tcZz/netManage:jbsjndfltj:remove']" >删除</el-button>
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
:loading="exportLoading" :loading="exportLoading"
@click="handleExport" @click="handleExport"
v-hasPermi="['tcZz/netManage:jbsjndfltj:export']" v-hasPermi="['tcZz/netManage:jbsjndfltj:export']"
>导出</el-button >导出</el-button
> >
</div> </div>
<el-table <el-table v-loading="loading" :data="jbsjndfltjList" @selection-change="handleSelectionChange">
v-loading="loading"
:data="jbsjndfltjList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="类型" align="center" prop="type"> <el-table-column label="类型" align="center" prop="type">
<!-- <template slot-scope="scope"> <!-- <template slot-scope="scope">
<dict-tag :options="dict.type.tc_jbsjtype" :value="scope.row.type"/> <dict-tag :options="dict.type.tc_jbsjtype" :value="scope.row.type"/>
</template> --> </template> -->
</el-table-column> </el-table-column>
<el-table-column label="数量" align="center" prop="count" /> <el-table-column label="数量" align="center" prop="count" />
<!-- <el-table-column label="备注" align="center" prop="remark" /> --> <!-- <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@click="handleInfo(scope.row)" @click="handleInfo(scope.row)"
v-hasPermi="['tcZz/netManage:jbsjndfltj:list']" v-hasPermi="['tcZz/netManage:jbsjndfltj:list']"
> >
查看 查看
</el-button> </el-button>
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:jbsjndfltj:edit']" v-hasPermi="['tcZz/netManage:jbsjndfltj:edit']"
>修改</el-button >修改</el-button>
>
<el-button <el-button
size="mini" size="mini"
type="danger" type="danger"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:jbsjndfltj:remove']" v-hasPermi="['tcZz/netManage:jbsjndfltj:remove']"
>删除</el-button >删除</el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改举报事件年度分类统计对话框 --> <!-- 添加或修改举报事件年度分类统计对话框 -->
<el-dialog <el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
:visible.sync="open" <div slot="title" class="dialog-title">{{ title }}</div>
width="500px" <el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
append-to-body <el-form-item label="类型" prop="type">
custom-class="dialog-box" <el-input
> v-model="form.type"
<div slot="title" class="dialog-title">{{ title }}</div> placeholder="请输入类型"
<el-form clearable
ref="form" size="small"
:model="form" @keyup.enter.native="handleQuery"
:rules="rules" />
label-width="auto" <!-- <el-select v-model="form.type" placeholder="请选择类型">
class="dialog-from"
>
<el-form-item label="类型" prop="type">
<el-input
v-model="form.type"
placeholder="请输入类型"
clearable
size="small"
@keyup.enter.native="handleQuery"
/>
<!-- <el-select v-model="form.type" placeholder="请选择类型">
<el-option <el-option
v-for="dict in dict.type.tc_jbsjtype" v-for="dict in dict.type.tc_jbsjtype"
:key="dict.value" :key="dict.value"
@ -228,24 +188,14 @@
:value="parseInt(dict.value)" :value="parseInt(dict.value)"
></el-option> ></el-option>
</el-select> --> </el-select> -->
</el-form-item> </el-form-item>
<el-form-item label="数量" prop="count"> <el-form-item label="数量" prop="count">
<el-input <el-input v-model="form.count" type="number" placeholder="请输入数量" />
v-model="form.count" </el-form-item>
type="number" <el-form-item label="备注" prop="remark">
placeholder="请输入数量" <!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
/> <el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
</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="请输入备注"
/>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -254,276 +204,244 @@
</el-dialog> </el-dialog>
<!--查看举报事件年度分类统计详情页--> <!--查看举报事件年度分类统计详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions <div slot="title" class="dialog-title">{{ infoTitle }}</div>
title="举报事件年度分类统计"
:column="2" <el-descriptions title="举报事件年度分类统计" :column="2" border labelClassName="desLable">
border <el-descriptions-item label="类型">{{ form.type }}</el-descriptions-item>
labelClassName="desLable"
>
<el-descriptions-item label="类型">{{
form.type
}}</el-descriptions-item>
<el-descriptions-item label="数量">{{ <el-descriptions-item label="数量">{{ form.count }}</el-descriptions-item>
form.count
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
form.remark
}}</el-descriptions-item> </el-descriptions>
</el-descriptions>
</el-dialog> </el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/netManage/jbsjndfltj/common/importExcel"
importUrl="/tcZz/netManage/jbsjndfltj/importTemplate"
importName="举报年度事件分类统计"
:getList="getList"
></import-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import { listJbsjndfltj, getJbsjndfltj, delJbsjndfltj, addJbsjndfltj, updateJbsjndfltj, exportJbsjndfltj, importExcel } from "@/api/tcZz/netManage/jbsjndfltj";
listJbsjndfltj, export default {
getJbsjndfltj, name: "Jbsjndfltj",
delJbsjndfltj, //
addJbsjndfltj, data() {
updateJbsjndfltj, return {
exportJbsjndfltj, tableHeigth: 0,
importExcel, //
} from "@/api/tcZz/netManage/jbsjndfltj"; infoOpen:false,
import importDialog from "@/views/components/importDialog/index.vue"; //
infoTitle:'',
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
jbsjndfltjList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
export default { type: null,
name: "Jbsjndfltj",
components: { importDialog },
//
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
jbsjndfltjList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
type: null, count: null,
count: null, createBy: null,
createBy: null, createTime: null,
createTime: null, updateBy: null,
updateBy: null, updateTime: null,
updateTime: null, remark: null,
remark: null, },
}, //
// form: {},
form: {}, //
// rules: {
rules: { type:[
type: [{ required: true, message: "请输入类型", trigger: "blur" }], { required: true, message: '请输入类型', trigger: 'blur' },
count: [{ required: true, message: "请输入数量", trigger: "blur" }], ],
}, count:[
fileList: [], { required: true, message: '请输入数量', trigger: 'blur' },
}; ],
}, },
created() { fileList:[],
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];
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];
}
listJbsjndfltj(this.queryParams).then((response) => {
this.jbsjndfltjList = response.rows;
this.total = response.total;
this.loading = false;
});
}, },
// created() {
cancel() {
this.open = false; this.getList();
this.reset();
}, },
// methods: {
reset() { /** 查询举报事件年度分类统计列表 */
this.form = { getList() {
id: null, 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];
}
listJbsjndfltj(this.queryParams).then(response => {
this.jbsjndfltjList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
type: null, type: null,
count: null, count: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
remark: null, remark: null,
};
this.resetForm("form"); };
}, this.resetForm("form");
/** 搜索按钮操作 */ },
handleQuery() { /** 搜索按钮操作 */
this.queryParams.pageNum = 1; handleQuery() {
this.getList(); this.queryParams.pageNum = 1;
}, this.getList();
/** 重置按钮操作 */ },
resetQuery() { /** 重置按钮操作 */
this.daterangeCreateTime = []; resetQuery() {
this.daterangeUpdateTime = []; this.daterangeCreateTime = [];
this.resetForm("queryForm"); this.daterangeUpdateTime = [];
this.handleQuery(); this.resetForm("queryForm");
}, this.handleQuery();
// },
handleSelectionChange(selection) { //
this.ids = selection.map((item) => item.id); handleSelectionChange(selection) {
this.single = selection.length !== 1; this.ids = selection.map(item => item.id)
this.multiple = !selection.length; this.single = selection.length!==1
}, this.multiple = !selection.length
/**查看按钮操作 */ },
handleInfo(row) { /**查看按钮操作 */
this.reset(); handleInfo(row){
const id = row.id || this.ids; this.reset();
getJbsjndfltj(id).then((response) => { const id = row.id || this.ids
this.form = response.data; getJbsjndfltj(id).then(response => {
this.infoOpen = true; this.form = response.data;
this.infoTitle = "查看举报事件年度分类统计详情"; this.infoOpen = true;
}); this.infoTitle = "查看举报事件年度分类统计详情"
}, });
/** 新增按钮操作 */ },
handleAdd() { /** 新增按钮操作 */
this.reset(); handleAdd() {
this.open = true; this.reset();
this.title = "添加举报事件年度分类统计";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getJbsjndfltj(id).then((response) => {
this.form = response.data;
this.open = true; this.open = true;
this.title = "修改举报事件年度分类统计"; this.title = "添加举报事件年度分类统计";
}); },
}, /** 修改按钮操作 */
/** 提交按钮 */ handleUpdate(row) {
submitForm() { this.reset();
this.$refs["form"].validate((valid) => { const id = row.id || this.ids
if (valid) { getJbsjndfltj(id).then(response => {
if (this.form.id != null) { this.form = response.data;
updateJbsjndfltj(this.form).then((response) => { this.open = true;
this.$modal.msgSuccess("修改成功"); this.title = "修改举报事件年度分类统计";
this.open = false; });
this.getList(); },
}); /** 提交按钮 */
} else { submitForm() {
addJbsjndfltj(this.form).then((response) => { this.$refs["form"].validate(valid => {
this.$modal.msgSuccess("新增成功"); if (valid) {
this.open = false; if (this.form.id != null) {
this.getList(); updateJbsjndfltj(this.form).then(response => {
}); this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addJbsjndfltj(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} }
} });
}); },
}, /** 删除按钮操作 */
/** 删除按钮操作 */ handleDelete(row) {
handleDelete(row) { const ids = row.id || this.ids;
const ids = row.id || this.ids; this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(function() {
})
.then(function () {
return delJbsjndfltj(ids); return delJbsjndfltj(ids);
}) }).then(() => {
.then(() => {
this.getList(); this.getList();
this.msgSuccess("删除成功"); this.msgSuccess("删除成功");
}) }).catch(() => {});
.catch(() => {}); },
}, /** 导出按钮操作 */
/** 导出按钮操作 */ handleExport() {
handleExport() { const queryParams = this.queryParams;
const queryParams = this.queryParams; this.$confirm('是否确认导出所有举报事件年度分类统计数据项?', "警告", {
this.$confirm("是否确认导出所有举报事件年度分类统计数据项?", "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(() => {
}) this.download('/tcZz/netManage/jbsjndfltj/export', {
.then(() => { ...this.queryParams
this.download( }, '举报事件年度分类统计_'+ new Date().getTime() +'.xlsx')
"/tcZz/netManage/jbsjndfltj/export",
{
...this.queryParams,
},
"举报事件年度分类统计_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false; this.exportLoading = false;
}) }).catch(() => {});
.catch(() => {}); },
}, }
}, }
};
</script> </script>

@ -154,29 +154,29 @@
</div> </div>
<el-table v-loading="loading" :data="qlzxxddtList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="qlzxxddtList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<!-- <el-table-column label="区域" align="center" prop="areaId"> <!-- <el-table-column label="区域" align="center" prop="areaId">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.tc_area" :value="scope.row.areaId"/> <dict-tag :options="dict.type.tc_area" :value="scope.row.areaId"/>
</template> </template>
</el-table-column> --> </el-table-column> -->
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<!-- <el-table-column label="内容" align="center" prop="content" /> <!-- <el-table-column label="内容" align="center" prop="content" />
<el-table-column label="图片路径(完整路径)" align="center" prop="imageUrl" /> <el-table-column label="图片路径(完整路径)" align="center" prop="imageUrl" />
<el-table-column label="备注" align="center" prop="remark" /> --> <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column label="启用/禁用" align="center" prop="isStatus"> <el-table-column label="启用/禁用" align="center" prop="isStatus">
<template slot-scope="scope"> <template slot-scope="scope">
<!-- <dict-tag :options="dict.type.tc_start" :value="scope.row.isStatus"/> --> <!-- <dict-tag :options="dict.type.tc_start" :value="scope.row.isStatus"/> -->
<el-switch <el-switch
v-model="scope.row.isStatus" v-model="scope.row.isStatus"
:active-value="2" :active-value="2"
:inactive-value="1" :inactive-value="1"
active-color="#ff4949" active-color="#ff4949"
inactive-color="#13ce66" inactive-color="#13ce66"
@change="handleStatusChange(scope.row)" @change="handleStatusChange(scope.row)"
></el-switch> ></el-switch>
</template> </template>
</el-table-column> </el-table-column>
<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"> <template slot-scope="scope">
<el-button <el-button
@ -214,54 +214,54 @@
<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> <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="areaId"> <!-- <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域"> <el-select v-model="form.areaId" placeholder="请选择区域">
<el-option <el-option
v-for="dict in dict.type.tc_area" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="启用/禁用"> <el-form-item label="启用/禁用">
<el-radio-group v-model="form.isStatus"> <el-radio-group v-model="form.isStatus">
<el-radio <el-radio
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_start"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="parseInt(dict.value)"
>{{dict.label}}</el-radio> >{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="form.title" placeholder="请输入标题" /> <el-input v-model="form.title" placeholder="请输入标题" />
</el-form-item> </el-form-item>
<el-form-item label="内容" prop="content"> <el-form-item label="内容" prop="content">
<!-- <editor v-model="form.content" :min-height="192"/> --> <!-- <editor v-model="form.content" :min-height="192"/> -->
<el-input v-model="form.content" resize="none" :rows="5" type="textarea" placeholder="请输入内容" /> <el-input v-model="form.content" resize="none" :rows="5" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
<el-form-item label="图片上传"> <!-- <el-form-item label="图片路径(完整路径)">
<imageUpload v-model="imageUrls"/> <imageUpload v-model="form.imageUrl"/>
</el-form-item> </el-form-item> -->
<!-- <el-form-item label="文件"> <el-form-item label="文件">
<el-button @click="addDomain" type="primary">添加图片</el-button> <el-button @click="addDomain" type="primary">添加图片</el-button>
</el-form-item> </el-form-item>
<div v-for="(domain, index) in form.domains" :key="index" class="file-item"> <div v-for="(domain, index) in form.domains" :key="index" class="file-item">
<el-form-item <el-form-item
label="图片路径" label="图片路径"
:prop="'domains.' + index + '.imageUrl'" :prop="'domains.' + index + '.imageUrl'"
:rules="{ :rules="{
required: true, message: '图片路径不能为空', trigger: 'blur' required: true, message: '图片路径不能为空', trigger: 'blur'
}" }"
> >
<el-input v-model="domain.imageUrl" placeholder="请输入图片路径"></el-input> <el-input v-model="domain.imageUrl" placeholder="请输入图片路径"></el-input>
</el-form-item> </el-form-item>
<el-button @click.prevent="removeDomain(domain)" type="danger" size="mini">删除</el-button> <el-button @click.prevent="removeDomain(domain)" type="danger" size="mini">删除</el-button>
</div> --> </div>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> <!-- <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-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -280,7 +280,7 @@
<div slot="title" class="dialog-title">{{ infoTitle }}</div> <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_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</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 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="图片路径(完整路径)"><a v-for="(url,index) in images" :key="index" :href="url" target="blank"></a></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="备注">{{ form.remark }}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
@ -383,11 +372,11 @@
}, },
// //
form: { form: {
// domains: [ domains: [
// { {
// imageUrl: "" imageUrl: ""
// } }
// ], ],
}, },
// //
rules: { rules: {
@ -400,14 +389,9 @@
content:[ content:[
{ required: true, message: '请输入内容', trigger: 'blur' }, { required: true, message: '请输入内容', trigger: 'blur' },
], ],
imageUrl:[
{ required: true, message: '请上传图片', trigger: 'blur' },
],
}, },
fileList:[], fileList:[],
images:[], images:[],
imageUrls:'',
srcList:[],
}; };
}, },
created() { created() {
@ -464,11 +448,11 @@
remark: null, remark: null,
// domains: [ domains: [
// { {
// imageUrl: "" imageUrl: ""
// } }
// ], ],
}; };
this.resetForm("form"); this.resetForm("form");
@ -519,12 +503,10 @@
handleInfo(row){ handleInfo(row){
this.reset(); this.reset();
this.images = []; this.images = [];
this.srcList = [];
const id = row.id || this.ids const id = row.id || this.ids
getQlzxxddt(id).then(response => { getQlzxxddt(id).then(response => {
this.form = response.data; this.form = response.data;
this.images = this.form.imageUrl.split(','); this.images = this.form.imageUrl.split(',');
this.srcList = this.form.imageUrl.split(',');
this.infoOpen = true; this.infoOpen = true;
this.infoTitle = "查看清朗专项行动动态详情" this.infoTitle = "查看清朗专项行动动态详情"
}); });
@ -540,38 +522,36 @@
this.reset(); this.reset();
const id = row.id || this.ids const id = row.id || this.ids
getQlzxxddt(id).then(response => { getQlzxxddt(id).then(response => {
this.form = response.data; // this.form = response.data;
this.imageUrls = this.form.imageUrl this.form.isStatus = response.data.isStatus;
this.form.title = response.data.title;
// this.form.isStatus = response.data.isStatus; this.form.content = response.data.content;
// this.form.title = response.data.title; this.form.createTime = response.data.createTime;
// this.form.content = response.data.content; this.form.remark = response.data.remark;
// this.form.createTime = response.data.createTime; this.form.id = response.data.id;
// this.form.remark = response.data.remark; if (response.data.imageUrl) {
// this.form.id = response.data.id; let arr1 = response.data.imageUrl.split(",");
// if (response.data.imageUrl) { if(arr1.length > 1) {
// let arr1 = response.data.imageUrl.split(","); this.form.domains = [];
// if(arr1.length > 1) { arr1.forEach((value, index) => {
// this.form.domains = []; this.form.domains.push({
// arr1.forEach((value, index) => { imageUrl: value,
// this.form.domains.push({ });
// imageUrl: value, });
// }); } else {
// }); this.form.domains = [
// } else { {
// this.form.domains = [ imageUrl: arr1[0],
// { }
// imageUrl: arr1[0], ];
// } }
// ]; } else {
// } this.form.domains = [
// } else { {
// this.form.domains = [ imageUrl: '',
// { }
// imageUrl: '', ];
// } }
// ];
// }
this.open = true; this.open = true;
this.title = "修改清朗专项行动动态"; this.title = "修改清朗专项行动动态";
}); });
@ -590,22 +570,10 @@
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
let arr1 = []; let arr1 = [];
// this.form.domains.forEach((value) => { this.form.domains.forEach((value) => {
// arr1.push(value.imageUrl); arr1.push(value.imageUrl);
// }); });
let images = this.imageUrls.split(',') this.form.imageUrl = arr1.join(",");
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.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
@ -704,14 +672,9 @@
} }
} }
} }
.images-box { a {
display: flex; color: #0072c6;
flex-wrap: wrap; margin: 0 5px;
width: 100%;
img {
// width: 150px;
margin: 5px;
}
} }
} }
} }

@ -1,13 +1,8 @@
<template> <template>
<div class="container-main" ref="main"> <div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch"> <div class="search-hearder" ref="topSearch">
<el-form <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
:model="queryParams" <!-- <el-form-item label="${comment}" prop="id">
ref="queryForm"
:inline="true"
v-show="showSearch"
>
<!-- <el-form-item label="${comment}" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"
placeholder="请输入${comment}" placeholder="请输入${comment}"
@ -16,7 +11,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<!-- <el-form-item label="日期"> <!-- <el-form-item label="日期">
<el-date-picker <el-date-picker
v-model="daterangeDateTime" v-model="daterangeDateTime"
size="small" size="small"
@ -28,25 +23,25 @@
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> --> </el-form-item> -->
<el-form-item label="处理有害信息数量" prop="count1"> <el-form-item label="处理有害信息数量" prop="count1">
<el-input <el-input
v-model="queryParams.count1" v-model="queryParams.count1"
placeholder="请输入处理有害信息数量" placeholder="请输入处理有害信息数量"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="关闭直播平台违规账号(个)" prop="count2"> <el-form-item label="关闭直播平台违规账号(个)" prop="count2">
<el-input <el-input
v-model="queryParams.count2" v-model="queryParams.count2"
placeholder="请输入关闭直播平台违规账号(个)" placeholder="请输入关闭直播平台违规账号(个)"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="创建者" prop="createBy"> <!-- <el-form-item label="创建者" prop="createBy">
<el-input <el-input
v-model="queryParams.createBy" v-model="queryParams.createBy"
placeholder="请输入创建者" placeholder="请输入创建者"
@ -97,165 +92,109 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
icon="el-icon-search" </el-form-item>
size="mini" </el-form>
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div> </div>
<div class="layui-table-tool" ref="tableTool"> <div class="layui-table-tool" ref="tableTool">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@click="handleAdd()" @click="handleAdd()"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:add']" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:add']"
>新增</el-button >新增</el-button
> >
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:edit']" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:edit']"
>修改</el-button >修改</el-button>
> <el-button
<el-button type="danger"
type="danger" size="mini"
size="mini" :disabled="multiple"
:disabled="multiple" @click="handleDelete"
@click="handleDelete" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:remove']"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:remove']" >删除</el-button>
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
:loading="exportLoading" :loading="exportLoading"
@click="handleExport" @click="handleExport"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:export']" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:export']"
>导出</el-button >导出</el-button
> >
</div> </div>
<el-table <el-table v-loading="loading" :data="qlzxxdsjtjList" @selection-change="handleSelectionChange">
v-loading="loading"
:data="qlzxxdsjtjList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="日期" align="center" prop="dateTime" width="180"> <el-table-column label="日期" align="center" prop="dateTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.dateTime, "{y}-{m}-{d}") }}</span> <span>{{ parseTime(scope.row.dateTime, '{y}-{m}-{d}') }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="处理有害信息数量" align="center" prop="count1" /> <el-table-column label="处理有害信息数量" align="center" prop="count1" />
<el-table-column <el-table-column label="关闭直播平台违规账号(个)" align="center" prop="count2" />
label="关闭直播平台违规账号(个)" <!-- <el-table-column label="备注" align="center" prop="remark" /> -->
align="center" <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
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"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@click="handleInfo(scope.row)" @click="handleInfo(scope.row)"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:list']" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:list']"
> >
查看 查看
</el-button> </el-button>
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:edit']" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:edit']"
>修改</el-button >修改</el-button>
>
<el-button <el-button
size="mini" size="mini"
type="danger" type="danger"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:qlzxxdsjtj:remove']" v-hasPermi="['tcZz/netManage:qlzxxdsjtj:remove']"
>删除</el-button >删除</el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改清郎专项行动数据统计对话框 --> <!-- 添加或修改清郎专项行动数据统计对话框 -->
<el-dialog <el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
:visible.sync="open" <div slot="title" class="dialog-title">{{ title }}</div>
width="500px" <el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
append-to-body <el-form-item label="日期" prop="dateTime">
custom-class="dialog-box" <el-date-picker clearable size="small"
> v-model="form.dateTime"
<div slot="title" class="dialog-title">{{ title }}</div> type="date"
<el-form value-format="yyyy-MM-dd"
ref="form" placeholder="选择日期">
:model="form" </el-date-picker>
:rules="rules" </el-form-item>
label-width="auto" <el-form-item label="处理有害信息数量" prop="count1">
class="dialog-from" <el-input v-model="form.count1" type="number" placeholder="请输入处理有害信息数量" />
> </el-form-item>
<el-form-item label="日期" prop="dateTime"> <el-form-item label="关闭直播平台违规账号(个)" prop="count2">
<el-date-picker <el-input v-model="form.count2" type="number" placeholder="请输入关闭直播平台违规账号(个)" />
clearable </el-form-item>
size="small" <el-form-item label="备注" prop="remark">
v-model="form.dateTime" <!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
type="date" <el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
value-format="yyyy-MM-dd" </el-form-item>
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
<el-form-item label="处理有害信息数量" prop="count1">
<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-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-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -264,304 +203,260 @@
</el-dialog> </el-dialog>
<!--查看清郎专项行动数据统计详情页--> <!--查看清郎专项行动数据统计详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions <div slot="title" class="dialog-title">{{ infoTitle }}</div>
title="清郎专项行动数据统计"
:column="2" <el-descriptions title="清郎专项行动数据统计" :column="2" border labelClassName="desLable">
border <el-descriptions-item label="日期">{{ form.dateTime }}</el-descriptions-item>
labelClassName="desLable"
> <el-descriptions-item label="处理有害信息数量">{{ form.count1 }}</el-descriptions-item>
<el-descriptions-item label="日期">{{
form.dateTime
}}</el-descriptions-item>
<el-descriptions-item label="处理有害信息数量">{{ <el-descriptions-item label="关闭直播平台违规账号(个)">{{ form.count2 }}</el-descriptions-item>
form.count1
}}</el-descriptions-item>
<el-descriptions-item label="关闭直播平台违规账号(个)">{{ <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
form.count2
}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ </el-descriptions>
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog> </el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/netManage/qlzxxdsjtj/common/importExcel"
importUrl="/tcZz/netManage/qlzxxdsjtj/importTemplate"
importName="清朗专项行动数据统计"
:getList="getList"
></import-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import { listQlzxxdsjtj, getQlzxxdsjtj, delQlzxxdsjtj, addQlzxxdsjtj, updateQlzxxdsjtj, exportQlzxxdsjtj, importExcel } from "@/api/tcZz/netManage/qlzxxdsjtj";
listQlzxxdsjtj, export default {
getQlzxxdsjtj, name: "Qlzxxdsjtj",
delQlzxxdsjtj, //
addQlzxxdsjtj, data() {
updateQlzxxdsjtj, return {
exportQlzxxdsjtj, tableHeigth: 0,
importExcel, //
} from "@/api/tcZz/netManage/qlzxxdsjtj"; infoOpen:false,
import importDialog from "@/views/components/importDialog/index.vue"; //
infoTitle:'',
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
qlzxxdsjtjList: [],
//
title: "",
//
open: false,
//
daterangeDateTime: [],
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
export default { dateTime: null,
name: "Qlzxxdsjtj",
components: { importDialog },
// count1: null,
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
qlzxxdsjtjList: [],
//
title: "",
//
open: false,
//
daterangeDateTime: [],
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
dateTime: null, count2: null,
count1: null, createBy: null,
count2: null, createTime: null,
createBy: null, updateBy: null,
createTime: null, updateTime: null,
updateBy: null, remark: null,
},
//
form: {},
//
rules: {
dateTime:[
{ required: true, message: '请选择日期', trigger: 'blur' },
],
count1:[
{ required: true, message: '请输入处理有害信息数量', trigger: 'blur' },
],
count2:[
{ required: true, message: '请输入关闭直播平台违规账号(个)', trigger: 'blur' },
],
},
fileList:[],
};
},
created() {
updateTime: null, this.getList();
remark: null, },
methods: {
/** 查询清郎专项行动数据统计列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
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];
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];
}
listQlzxxdsjtj(this.queryParams).then(response => {
this.qlzxxdsjtjList = response.rows;
this.total = response.total;
this.loading = false;
});
}, },
// //
form: {}, cancel() {
// this.open = false;
rules: { this.reset();
dateTime: [{ required: true, message: "请选择日期", trigger: "blur" }],
count1: [
{
required: true,
message: "请输入处理有害信息数量",
trigger: "blur",
},
],
count2: [
{
required: true,
message: "请输入关闭直播平台违规账号(个)",
trigger: "blur",
},
],
}, },
fileList: [], //
}; reset() {
}, this.form = {
created() { id: null,
this.getList();
},
methods: {
exportFile() {
this.$refs.importdialog.open();
},
/** 查询清郎专项行动数据统计列表 */
getList() {
this.loading = true;
this.queryParams.params = {};
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];
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];
}
listQlzxxdsjtj(this.queryParams).then((response) => {
this.qlzxxdsjtjList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
dateTime: null, dateTime: null,
count1: null, count1: null,
count2: null, count2: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
remark: null, remark: null,
};
this.resetForm("form"); };
}, this.resetForm("form");
/** 搜索按钮操作 */ },
handleQuery() { /** 搜索按钮操作 */
this.queryParams.pageNum = 1; handleQuery() {
this.getList(); this.queryParams.pageNum = 1;
}, this.getList();
/** 重置按钮操作 */ },
resetQuery() { /** 重置按钮操作 */
this.daterangeDateTime = []; resetQuery() {
this.daterangeCreateTime = []; this.daterangeDateTime = [];
this.daterangeUpdateTime = []; this.daterangeCreateTime = [];
this.resetForm("queryForm"); this.daterangeUpdateTime = [];
this.handleQuery(); this.resetForm("queryForm");
}, this.handleQuery();
// },
handleSelectionChange(selection) { //
this.ids = selection.map((item) => item.id); handleSelectionChange(selection) {
this.single = selection.length !== 1; this.ids = selection.map(item => item.id)
this.multiple = !selection.length; this.single = selection.length!==1
}, this.multiple = !selection.length
/**查看按钮操作 */ },
handleInfo(row) { /**查看按钮操作 */
this.reset(); handleInfo(row){
const id = row.id || this.ids; this.reset();
getQlzxxdsjtj(id).then((response) => { const id = row.id || this.ids
this.form = response.data; getQlzxxdsjtj(id).then(response => {
this.infoOpen = true; this.form = response.data;
this.infoTitle = "查看清郎专项行动数据统计详情"; this.infoOpen = true;
}); this.infoTitle = "查看清郎专项行动数据统计详情"
}, });
/** 新增按钮操作 */ },
handleAdd() { /** 新增按钮操作 */
this.reset(); handleAdd() {
this.open = true; this.reset();
this.title = "添加清郎专项行动数据统计";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getQlzxxdsjtj(id).then((response) => {
this.form = response.data;
this.open = true; this.open = true;
this.title = "修改清郎专项行动数据统计"; this.title = "添加清郎专项行动数据统计";
}); },
}, /** 修改按钮操作 */
/** 提交按钮 */ handleUpdate(row) {
submitForm() { this.reset();
this.$refs["form"].validate((valid) => { const id = row.id || this.ids
if (valid) { getQlzxxdsjtj(id).then(response => {
if (this.form.id != null) { this.form = response.data;
updateQlzxxdsjtj(this.form).then((response) => { this.open = true;
this.$modal.msgSuccess("修改成功"); this.title = "修改清郎专项行动数据统计";
this.open = false; });
this.getList(); },
}); /** 提交按钮 */
} else { submitForm() {
addQlzxxdsjtj(this.form).then((response) => { this.$refs["form"].validate(valid => {
this.$modal.msgSuccess("新增成功"); if (valid) {
this.open = false; if (this.form.id != null) {
this.getList(); updateQlzxxdsjtj(this.form).then(response => {
}); this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addQlzxxdsjtj(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} }
} });
}); },
}, /** 删除按钮操作 */
/** 删除按钮操作 */ handleDelete(row) {
handleDelete(row) { const ids = row.id || this.ids;
const ids = row.id || this.ids; this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(function() {
})
.then(function () {
return delQlzxxdsjtj(ids); return delQlzxxdsjtj(ids);
}) }).then(() => {
.then(() => {
this.getList(); this.getList();
this.msgSuccess("删除成功"); this.msgSuccess("删除成功");
}) }).catch(() => {});
.catch(() => {}); },
}, /** 导出按钮操作 */
/** 导出按钮操作 */ handleExport() {
handleExport() { const queryParams = this.queryParams;
const queryParams = this.queryParams; this.$confirm('是否确认导出所有清郎专项行动数据统计数据项?', "警告", {
this.$confirm("是否确认导出所有清郎专项行动数据统计数据项?", "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(() => {
}) this.download('/tcZz/netManage/qlzxxdsjtj/export', {
.then(() => { ...this.queryParams
this.download( }, '清郎专项行动数据统计_'+ new Date().getTime() +'.xlsx')
"/tcZz/netManage/qlzxxdsjtj/export",
{
...this.queryParams,
},
"清郎专项行动数据统计_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false; this.exportLoading = false;
}) }).catch(() => {});
.catch(() => {}); },
}, }
}, }
};
</script> </script>

@ -233,41 +233,41 @@
<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> <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="areaId"> <!-- <el-form-item label="区域" prop="areaId">
<el-select v-model="form.areaId" placeholder="请选择区域"> <el-select v-model="form.areaId" placeholder="请选择区域">
<el-option <el-option
v-for="dict in dict.type.tc_area" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="启用/禁用"> <el-form-item label="启用/禁用">
<el-radio-group v-model="form.isStatus"> <el-radio-group v-model="form.isStatus">
<el-radio <el-radio
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_start"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="parseInt(dict.value)"
>{{dict.label}}</el-radio> >{{dict.label}}</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="网站名称" prop="webName"> <el-form-item label="网站名称" prop="webName">
<el-input v-model="form.webName" placeholder="请输入网站名称" /> <el-input v-model="form.webName" placeholder="请输入网站名称" />
</el-form-item> </el-form-item>
<el-form-item label="真实IP" prop="trueIp"> <el-form-item label="真实IP" prop="trueIp">
<el-input v-model="form.trueIp" placeholder="请输入真实IP" /> <el-input v-model="form.trueIp" placeholder="请输入真实IP" />
</el-form-item> </el-form-item>
<el-form-item label="网站域名" prop="webDns"> <el-form-item label="网站域名" prop="webDns">
<el-input v-model="form.webDns" placeholder="请输入网站域名" /> <el-input v-model="form.webDns" placeholder="请输入网站域名" />
</el-form-item> </el-form-item>
<el-form-item label="备案许可证号" prop="icp"> <el-form-item label="备案许可证号" prop="icp">
<el-input v-model="form.icp" placeholder="请输入备案许可证号" /> <el-input v-model="form.icp" placeholder="请输入备案许可证号" />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> <!-- <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-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -276,33 +276,32 @@
</el-dialog> </el-dialog>
<!--查看网站详情页--> <!--查看网站详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div> <div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="网站" :column="2" border labelClassName="desLable"> <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_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item> <el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
<el-descriptions-item label="网站名称">{{ form.webName }}</el-descriptions-item> <el-descriptions-item label="网站名称">{{ form.webName }}</el-descriptions-item>
<el-descriptions-item label="真实IP">{{ form.trueIp }}</el-descriptions-item> <el-descriptions-item label="真实IP">{{ form.trueIp }}</el-descriptions-item>
<!-- <el-descriptions-item label="网站域名">{{ form.webDns }}</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.icp }}</el-descriptions-item> <el-descriptions-item label="备案许可证号">{{ form.icp }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<import-dialog ref="importdialog" <import-dialog ref="importdialog"
propsUrl='/tcZz/netManage/wz/common/importExcel' propsUrl='/tcZz/netManage/wz/common/importExcel'
@ -343,15 +342,15 @@
// //
total: 0, total: 0,
// //
wzList: [], wzList: [],
// //
title: "", title: "",
// //
open: false, open: false,
// //
daterangeCreateTime: [], daterangeCreateTime: [],
// //
daterangeUpdateTime: [], daterangeUpdateTime: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -413,15 +412,15 @@
/** 查询网站列表 */ /** 查询网站列表 */
getList() { getList() {
this.loading = true; this.loading = true;
this.queryParams.params = {}; this.queryParams.params = {};
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0]; this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
} }
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) { if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0]; this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1]; this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
} }
listWz(this.queryParams).then(response => { listWz(this.queryParams).then(response => {
this.wzList = response.rows; this.wzList = response.rows;
this.total = response.total; this.total = response.total;
@ -470,8 +469,8 @@
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.daterangeCreateTime = []; this.daterangeCreateTime = [];
this.daterangeUpdateTime = []; this.daterangeUpdateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
@ -616,9 +615,3 @@
} }
</script> </script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -1,144 +1,104 @@
<template> <template>
<div class="container-main" ref="main"> <div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch"> <div class="search-hearder" ref="topSearch">
<el-form <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
:model="queryParams" <el-form-item label="名称" prop="name">
ref="queryForm" <el-input
:inline="true" v-model="queryParams.name"
v-show="showSearch" placeholder="请输入名称"
> clearable
<el-form-item label="名称" prop="name"> size="small"
<el-input @keyup.enter.native="handleQuery"
v-model="queryParams.name" />
placeholder="请输入名称" </el-form-item>
clearable <el-form-item>
size="small" <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
@keyup.enter.native="handleQuery" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
/> </el-form-item>
</el-form-item> </el-form>
<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>
<div class="layui-table-tool" ref="tableTool"> <div class="layui-table-tool" ref="tableTool">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@click="handleAdd()" @click="handleAdd()"
v-hasPermi="['tcZz/netManage:ytlc:add']" v-hasPermi="['tcZz/netManage:ytlc:add']"
>新增</el-button >新增</el-button
> >
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['tcZz/netManage:ytlc:edit']" v-hasPermi="['tcZz/netManage:ytlc:edit']"
>修改</el-button >修改</el-button>
> <el-button
<el-button type="danger"
type="danger" size="mini"
size="mini" :disabled="multiple"
:disabled="multiple" @click="handleDelete"
@click="handleDelete" v-hasPermi="['tcZz/netManage:ytlc:remove']"
v-hasPermi="['tcZz/netManage:ytlc:remove']" >删除</el-button>
>删除</el-button
>
<el-button type="primary" size="mini" @click="exportFile"></el-button>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
:loading="exportLoading" :loading="exportLoading"
@click="handleExport" @click="handleExport"
v-hasPermi="['tcZz/netManage:ytlc:export']" v-hasPermi="['tcZz/netManage:ytlc:export']"
>导出</el-button >导出</el-button
> >
</div> </div>
<el-table <el-table v-loading="loading" :data="ytlcList" @selection-change="handleSelectionChange">
v-loading="loading"
:data="ytlcList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="名称" align="center" prop="name" /> <el-table-column label="名称" align="center" prop="name" />
<el-table-column label="文件名称" align="center" prop="fileName" /> <el-table-column label="文件名称" align="center" prop="fileName" />
<!-- <el-table-column label="文件路径(完整路径)" align="center" prop="fileUrl" /> <!-- <el-table-column label="文件路径(完整路径)" align="center" prop="fileUrl" />
<el-table-column label="备注" align="center" prop="remark" /> --> <el-table-column label="备注" align="center" prop="remark" /> -->
<el-table-column <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@click="handleInfo(scope.row)" @click="handleInfo(scope.row)"
v-hasPermi="['tcZz/netManage:ytlc:list']" v-hasPermi="['tcZz/netManage:ytlc:list']"
> >
查看 查看
</el-button> </el-button>
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netManage:ytlc:edit']" v-hasPermi="['tcZz/netManage:ytlc:edit']"
>修改</el-button >修改</el-button>
>
<el-button <el-button
size="mini" size="mini"
type="danger" type="danger"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netManage:ytlc:remove']" v-hasPermi="['tcZz/netManage:ytlc:remove']"
>删除</el-button >删除</el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改约谈流程对话框 --> <!-- 添加或修改约谈流程对话框 -->
<el-dialog <el-dialog :visible.sync="open" width="600px" append-to-body custom-class="dialog-box">
:visible.sync="open" <div slot="title" class="dialog-title">{{ title }}</div>
width="600px" <el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
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="name"> <el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="请输入名称" /> <el-input v-model="form.name" placeholder="请输入名称" />
</el-form-item> </el-form-item>
<el-form-item label="上传文件"> <el-form-item label="上传文件">
<!-- <el-button @click="addDomain" type="primary">添加文件</el-button> --> <!-- <el-button @click="addDomain" type="primary">添加文件</el-button> -->
<!-- <el-form-item label="文件路径(完整路径)"> --> <!-- <el-form-item label="文件路径(完整路径)"> -->
<fileUpload v-model="fileNameS" :limit="1" /> <fileUpload v-model="fileNameS" :limit="1"/>
<!-- </el-form-item> --> <!-- </el-form-item> -->
</el-form-item> </el-form-item>
<!-- <div v-for="(domain, index) in form.domains" :key="index" class="file-item"> <!-- <div v-for="(domain, index) in form.domains" :key="index" class="file-item">
@ -164,13 +124,7 @@
</div> --> </div> -->
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> <!-- <el-input v-model="form.remark" placeholder="请输入备注" /> -->
<el-input <el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" />
v-model="form.remark"
resize="none"
:rows="5"
type="textarea"
placeholder="请输入备注"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@ -180,372 +134,311 @@
</el-dialog> </el-dialog>
<!--查看约谈流程详情页--> <!--查看约谈流程详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions <div slot="title" class="dialog-title">{{ infoTitle }}</div>
title="约谈流程"
:column="2" <el-descriptions title="约谈流程" :column="2" border labelClassName="desLable">
border <el-descriptions-item label="名称">{{ form.name }}</el-descriptions-item>
labelClassName="desLable"
>
<el-descriptions-item label="名称">{{
form.name
}}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">{{ form.fileName }}</el-descriptions-item> --> <el-descriptions-item label="文件名称">{{ form.fileName }}</el-descriptions-item>
<el-descriptions-item label="文件" <el-descriptions-item label="文件路径(完整路径)">{{ form.fileUrl }}</el-descriptions-item>
><a
v-for="(item, index) in files"
:key="index"
:href="item.url"
target="blank"
>{{ item.name }}</a
></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="备注">{{ </el-descriptions>
form.remark
}}</el-descriptions-item>
</el-descriptions>
</el-dialog> </el-dialog>
<import-dialog
ref="importdialog"
propsUrl="/tcZz/netManage/ytlc/common/importExcel"
importUrl="/tcZz/netManage/ytlc/importTemplate"
importName="约谈流程"
:getList="getList"
></import-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import { listYtlc, getYtlc, delYtlc, addYtlc, updateYtlc, exportYtlc } from "@/api/tcZz/netManage/ytlc";
listYtlc, export default {
getYtlc, name: "Ytlc",
delYtlc, //
addYtlc, data() {
updateYtlc, return {
exportYtlc, tableHeigth: 0,
} from "@/api/tcZz/netManage/ytlc"; //
import importDialog from "@/views/components/importDialog/index.vue" infoOpen:false,
//
infoTitle:'',
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
ytlcList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
export default { name: null,
name: "Ytlc",
components: { importDialog },
//
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
ytlcList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
name: null, fileName: null,
fileName: null, fileUrl: null,
fileUrl: null, createBy: null,
createBy: null, createTime: null,
createTime: null, updateBy: null,
updateBy: null, updateTime: null,
updateTime: null, remark: null,
remark: null, },
}, //
// form: {
form: { // domains: [
// domains: [ // {
// { // fileName: "",
// fileName: "", // fileUrl: "",
// fileUrl: "", // }
// } // ],
// ], },
}, //
// rules: {
rules: { name: [
name: [{ required: true, message: "请输入名称", trigger: "blur" }], { required: true, message: '请输入名称', trigger: 'blur' },
}, ],
fileList: [], },
fileNameS: [], fileList:[],
files: [], fileNameS:[],
}; };
},
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];
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];
}
listYtlc(this.queryParams).then((response) => {
this.ytlcList = response.rows;
this.total = response.total;
this.loading = false;
});
}, },
// created() {
cancel() {
this.open = false; this.getList();
this.reset();
}, },
// methods: {
reset() { /** 查询约谈流程列表 */
this.form = { getList() {
id: null, 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];
}
listYtlc(this.queryParams).then(response => {
this.ytlcList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
name: null, name: null,
fileName: null, fileName: null,
fileUrl: null, fileUrl: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
remark: null, remark: null,
// domains: [ // domains: [
// { // {
// fileName: "", // fileName: "",
// fileUrl: "", // fileUrl: "",
// } // }
// ], // ],
};
this.resetForm("form"); };
}, this.resetForm("form");
/** 搜索按钮操作 */ },
handleQuery() { /** 搜索按钮操作 */
this.queryParams.pageNum = 1; handleQuery() {
this.getList(); this.queryParams.pageNum = 1;
}, this.getList();
/** 重置按钮操作 */ },
resetQuery() { /** 重置按钮操作 */
this.daterangeCreateTime = []; resetQuery() {
this.daterangeUpdateTime = []; this.daterangeCreateTime = [];
this.resetForm("queryForm"); this.daterangeUpdateTime = [];
this.handleQuery(); this.resetForm("queryForm");
}, this.handleQuery();
// },
handleSelectionChange(selection) { //
this.ids = selection.map((item) => item.id); handleSelectionChange(selection) {
this.single = selection.length !== 1; this.ids = selection.map(item => item.id)
this.multiple = !selection.length; this.single = selection.length!==1
}, this.multiple = !selection.length
/**查看按钮操作 */ },
handleInfo(row) { /**查看按钮操作 */
this.reset(); handleInfo(row){
this.files = []; this.reset();
const id = row.id || this.ids; const id = row.id || this.ids
getYtlc(id).then((response) => { getYtlc(id).then(response => {
this.form = response.data; this.form = response.data;
let arr1 = this.form.fileName.split(","); this.infoOpen = true;
let arr2 = this.form.fileUrl.split(","); this.infoTitle = "查看约谈流程详情"
if (arr1[0] !== "" && arr1.length > 0 && arr2.length > 0) { });
arr1.forEach((item, index) => { },
let obj = {}; /** 新增按钮操作 */
obj.name = item; handleAdd() {
obj.url = arr2[index]; this.reset();
this.files.push(obj); this.fileNameS = [];
}); this.open = true;
} else { this.title = "添加约谈流程";
this.files = []; },
} /** 修改按钮操作 */
this.infoOpen = true; handleUpdate(row) {
this.infoTitle = "查看约谈流程详情"; this.reset();
}); this.fileNameS = []
}, const id = row.id || this.ids
/** 新增按钮操作 */ getYtlc(id).then(response => {
handleAdd() { console.log(response.data,'response.data')
this.reset(); this.form = response.data;
this.fileNameS = []; // this.form.name = response.data.name;
this.open = true; // this.form.createTime = response.data.createTime;
this.title = "添加约谈流程"; // this.form.remark = response.data.remark;
}, // this.form.id = response.data.id;
/** 修改按钮操作 */ // console.log(this.form,'this.form')
handleUpdate(row) { if (response.data.fileName && response.data.fileUrl) {
this.reset(); let arr1 = response.data.fileName.split(",");
this.fileNameS = []; let arr2 = response.data.fileUrl.split(",");
const id = row.id || this.ids; arr1.forEach((value, index) => {
getYtlc(id).then((response) => { this.fileNameS.push({
// console.log(response.data,'response.data') name: value,
this.form = response.data; url: arr2[index],
// this.form.name = response.data.name; });
// this.form.createTime = response.data.createTime;
// this.form.remark = response.data.remark;
// this.form.id = response.data.id;
// console.log(this.form,'this.form')
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({
name: value,
url: arr2[index],
}); });
}
this.open = true;
this.title = "修改约谈流程";
});
},
/** 提交按钮 */
submitForm() {
let arr1 = [];
let arr2 = [];
console.log(this.fileNameS)
if (this.fileNameS.length > 0) {
this.fileNameS.forEach((value) => {
arr1.push(value.name);
arr2.push(value.url);
}); });
this.form.fileName = arr1.join(",");
this.form.fileUrl = arr2.join(",");
} else {
this.form.fileName = "";
this.form.fileUrl = "";
} }
// console.log(this.fileNameS,'this.fileNameS') this.$refs["form"].validate(valid => {
this.open = true; if (valid) {
this.title = "修改约谈流程"; if (this.form.id != null) {
}); console.log(this.form)
}, updateYtlc(this.form).then(response => {
/** 提交按钮 */ this.$modal.msgSuccess("修改成功");
submitForm() { this.open = false;
let arr1 = []; this.getList();
let arr2 = []; });
let reg = new RegExp("http"); } else {
if (this.fileNameS.length > 0) { addYtlc(this.form).then(response => {
this.fileNameS.forEach((value) => { this.$modal.msgSuccess("新增成功");
arr1.push(value.name); this.open = false;
if (reg.test(value.url)) { this.getList();
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(","); /** 删除按钮操作 */
} else { handleDelete(row) {
this.form.fileName = ""; const ids = row.id || this.ids;
this.form.fileUrl = ""; this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
} confirmButtonText: "确定",
// console.log(this.form, "this.form"); cancelButtonText: "取消",
this.$refs["form"].validate((valid) => { type: "warning"
if (valid) { }).then(function() {
if (this.form.id != null) {
console.log(this.form);
updateYtlc(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addYtlc(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 delYtlc(ids); return delYtlc(ids);
}) }).then(() => {
.then(() => {
this.getList(); this.getList();
this.msgSuccess("删除成功"); this.msgSuccess("删除成功");
}) }).catch(() => {});
.catch(() => {}); },
}, /** 导出按钮操作 */
/** 导出按钮操作 */ handleExport() {
handleExport() { const queryParams = this.queryParams;
const queryParams = this.queryParams; this.$confirm('是否确认导出所有约谈流程数据项?', "警告", {
this.$confirm("是否确认导出所有约谈流程数据项?", "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(() => {
}) this.download('/tcZz/netManage/ytlc/export', {
.then(() => { ...this.queryParams
this.download( }, '约谈流程_'+ new Date().getTime() +'.xlsx')
"/tcZz/netManage/ytlc/export",
{
...this.queryParams,
},
"约谈流程_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false; this.exportLoading = false;
}) }).catch(() => {});
.catch(() => {}); },
}, addDomain() {
addDomain() { this.form.domains.push({
this.form.domains.push({ fileUrl: '',
fileUrl: "", fileName: '',
fileName: "", });
}); console.log(this.form.domains,'domains')
console.log(this.form.domains, "domains"); },
}, removeDomain(item) {
removeDomain(item) { var index = this.form.domains.indexOf(item)
var index = this.form.domains.indexOf(item); // console.log(index,'index')
// console.log(index,'index') if (index !== -1) {
if (index !== -1) { this.form.domains.splice(index, 1)
this.form.domains.splice(index, 1); }
} },
}, }
}, }
};
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
// ::v-deep .el-dialog { // ::v-deep .el-dialog {
@ -565,9 +458,5 @@ export default {
// } // }
// } // }
// } // }
// } // }
a {
color: #0072c6;
margin: 0 5px;
}
</style> </style>

@ -174,35 +174,45 @@
<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> <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="启用/禁用"> <!-- <el-form-item label="区域" prop="areaId">
<el-radio-group v-model="form.isStatus"> <el-select v-model="form.areaId" placeholder="请选择区域">
<el-radio <el-option
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="dict.label"
>{{dict.label}}</el-radio> :value="dict.value"
</el-radio-group> ></el-option>
</el-form-item> </el-select>
<el-form-item label="推进单位" prop="tjUnit"> </el-form-item> -->
<el-input v-model="form.tjUnit" placeholder="请输入推进单位" /> <el-form-item label="启用/禁用">
</el-form-item> <el-radio-group v-model="form.isStatus">
<el-form-item label="项目名称" prop="itemName"> <el-radio
<el-input v-model="form.itemName" placeholder="请输入项目名称" /> v-for="dict in dict.type.tc_start"
</el-form-item> :key="dict.value"
<el-form-item label="项目内容" prop="itemContent"> :label="parseInt(dict.value)"
<!-- <editor v-model="form.itemContent" :min-height="192"/> --> >{{dict.label}}</el-radio>
<el-input v-model="form.itemContent" resize="none" :rows="5" type="textarea" placeholder="请输入内容" /> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="项目类型" prop="itemType"> <el-form-item label="推进单位" prop="tjUnit">
<el-input v-model="form.itemType" placeholder="请输入项目类型" /> <el-input v-model="form.tjUnit" placeholder="请输入推进单位" />
</el-form-item> </el-form-item>
<el-form-item label="项目联系人" prop="itemLinkMan"> <el-form-item label="项目名称" prop="itemName">
<el-input v-model="form.itemLinkMan" placeholder="请输入项目联系人" /> <el-input v-model="form.itemName" placeholder="请输入项目名称" />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="项目内容" prop="itemContent">
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> <!-- <editor v-model="form.itemContent" :min-height="192"/> -->
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" /> <el-input v-model="form.itemContent" resize="none" :rows="5" type="textarea" placeholder="请输入内容" />
</el-form-item> </el-form-item>
<el-form-item label="项目类型" prop="itemType">
<el-input v-model="form.itemType" placeholder="请输入项目类型" />
</el-form-item>
<el-form-item label="项目联系人" prop="itemLinkMan">
<el-input v-model="form.itemLinkMan" 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-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -211,34 +221,34 @@
</el-dialog> </el-dialog>
<!--查看重点工作项目详情页--> <!--查看重点工作项目详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div> <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_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item> <el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
<el-descriptions-item label="推进单位">{{ form.tjUnit }}</el-descriptions-item> <el-descriptions-item label="推进单位">{{ form.tjUnit }}</el-descriptions-item>
<el-descriptions-item label="项目名称">{{ form.itemName }}</el-descriptions-item> <el-descriptions-item label="项目名称">{{ form.itemName }}</el-descriptions-item>
<el-descriptions-item label="项目内容">{{ form.itemContent }}</el-descriptions-item> <el-descriptions-item label="项目内容">{{ form.itemContent }}</el-descriptions-item>
<el-descriptions-item label="项目类型"><div v-html="form.itemType"></div></el-descriptions-item> <el-descriptions-item label="项目类型"><div v-html="form.itemType"></div></el-descriptions-item>
<el-descriptions-item label="项目联系人">{{ form.itemLinkMan }}</el-descriptions-item> <el-descriptions-item label="项目联系人">{{ form.itemLinkMan }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<import-dialog ref="importdialog" <import-dialog ref="importdialog"
propsUrl='/tcZz/netManage/zdgzxm/common/importExcel' propsUrl='/tcZz/netManage/zdgzxm/common/importExcel'

@ -283,46 +283,56 @@
<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> <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="启用/禁用"> <!-- <el-form-item label="区域" prop="areaId">
<el-radio-group v-model="form.isStatus"> <el-select v-model="form.areaId" placeholder="请选择区域">
<el-radio <el-option
v-for="dict in dict.type.tc_start" v-for="dict in dict.type.tc_area"
:key="dict.value" :key="dict.value"
:label="parseInt(dict.value)" :label="dict.label"
>{{dict.label}}</el-radio> :value="dict.value"
</el-radio-group> ></el-option>
</el-form-item> </el-select>
<el-form-item label="企业名称" prop="enterpriseName"> </el-form-item> -->
<el-input v-model="form.enterpriseName" placeholder="请输入企业名称" /> <el-form-item label="启用/禁用">
</el-form-item> <el-radio-group v-model="form.isStatus">
<el-form-item label="企业类型" prop="enterpriseType"> <el-radio
<el-input v-model="form.enterpriseType" placeholder="请输入企业类型" /> v-for="dict in dict.type.tc_start"
</el-form-item> :key="dict.value"
<el-form-item label="互联网业务" prop="netYw"> :label="parseInt(dict.value)"
<el-input v-model="form.netYw" placeholder="请输入互联网业务" /> >{{dict.label}}</el-radio>
</el-form-item> </el-radio-group>
<el-form-item label="监管部门" prop="depJg"> </el-form-item>
<el-input v-model="form.depJg" placeholder="请输入监管部门" /> <el-form-item label="企业名称" prop="enterpriseName">
</el-form-item> <el-input v-model="form.enterpriseName" placeholder="请输入企业名称" />
<el-form-item label="单位地址" prop="unitAddress"> </el-form-item>
<el-input v-model="form.unitAddress" placeholder="请输入单位地址" /> <el-form-item label="企业类型" prop="enterpriseType">
</el-form-item> <el-input v-model="form.enterpriseType" placeholder="请输入企业类型" />
<el-form-item label="联系人" prop="linkMan"> </el-form-item>
<el-input v-model="form.linkMan" placeholder="请输入联系人" /> <el-form-item label="互联网业务" prop="netYw">
</el-form-item> <el-input v-model="form.netYw" placeholder="请输入互联网业务" />
<el-form-item label="联系电话" prop="linkTel"> </el-form-item>
<el-input v-model="form.linkTel" placeholder="请输入联系电话" /> <el-form-item label="监管部门" prop="depJg">
</el-form-item> <el-input v-model="form.depJg" placeholder="请输入监管部门" />
<el-form-item label="网址或平台名称" prop="url"> </el-form-item>
<el-input v-model="form.url" placeholder="请输入网址或平台名称" /> <el-form-item label="单位地址" prop="unitAddress">
</el-form-item> <el-input v-model="form.unitAddress" placeholder="请输入单位地址" />
<el-form-item label="域名" prop="dns"> </el-form-item>
<el-input v-model="form.dns" placeholder="请输入域名" /> <el-form-item label="联系人" prop="linkMan">
</el-form-item> <el-input v-model="form.linkMan" placeholder="请输入联系人" />
<el-form-item label="备注" prop="remark"> </el-form-item>
<!-- <el-input v-model="form.remark" placeholder="请输入备注" /> --> <el-form-item label="联系电话" prop="linkTel">
<el-input v-model="form.remark" resize="none" :rows="5" type="textarea" placeholder="请输入备注" /> <el-input v-model="form.linkTel" placeholder="请输入联系电话" />
</el-form-item> </el-form-item>
<el-form-item label="网址或平台名称" prop="url">
<el-input v-model="form.url" placeholder="请输入网址或平台名称" />
</el-form-item>
<el-form-item label="域名" prop="dns">
<el-input v-model="form.dns" 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-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -341,34 +351,32 @@
<div slot="title" class="dialog-title">{{ infoTitle }}</div> <div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions title="重点企业名录" :column="2" border labelClassName="desLable"> <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_area,form.areaId) }}</el-descriptions-item> -->
<el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item> <el-descriptions-item label="启用/禁用">{{ selectDictLabel(dict.type.tc_start,form.isStatus) }}</el-descriptions-item>
<el-descriptions-item label="企业名称">{{ form.enterpriseName }}</el-descriptions-item> <el-descriptions-item label="企业名称">{{ form.enterpriseName }}</el-descriptions-item>
<el-descriptions-item label="企业类型">{{ form.enterpriseType }}</el-descriptions-item> <el-descriptions-item label="企业类型">{{ form.enterpriseType }}</el-descriptions-item>
<el-descriptions-item label="互联网业务">{{ form.netYw }}</el-descriptions-item> <el-descriptions-item label="互联网业务">{{ form.netYw }}</el-descriptions-item>
<el-descriptions-item label="监管部门">{{ form.depJg }}</el-descriptions-item> <el-descriptions-item label="监管部门">{{ form.depJg }}</el-descriptions-item>
<el-descriptions-item label="单位地址">{{ form.unitAddress }}</el-descriptions-item> <el-descriptions-item label="单位地址">{{ form.unitAddress }}</el-descriptions-item>
<el-descriptions-item label="联系人">{{ form.linkMan }}</el-descriptions-item> <el-descriptions-item label="联系人">{{ form.linkMan }}</el-descriptions-item>
<el-descriptions-item label="联系电话">{{ form.linkTel }}</el-descriptions-item> <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="网址或平台名称">{{ 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.dns }}</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.remark }}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<import-dialog ref="importdialog" <import-dialog ref="importdialog"
propsUrl='/tcZz/netManage/zdqyml/common/importExcel' propsUrl='/tcZz/netManage/zdqyml/common/importExcel'
@ -409,15 +417,15 @@
// //
total: 0, total: 0,
// //
zdqymlList: [], zdqymlList: [],
// //
title: "", title: "",
// //
open: false, open: false,
// //
daterangeCreateTime: [], daterangeCreateTime: [],
// //
daterangeUpdateTime: [], daterangeUpdateTime: [],
// //
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
@ -493,7 +501,6 @@
], ],
}, },
fileList:[], fileList:[],
isurl:true,
}; };
}, },
created() { created() {
@ -505,15 +512,15 @@
/** 查询重点企业名录列表 */ /** 查询重点企业名录列表 */
getList() { getList() {
this.loading = true; this.loading = true;
this.queryParams.params = {}; this.queryParams.params = {};
if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) { if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0]; this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
} }
if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) { if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0]; this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1]; this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
} }
listZdqyml(this.queryParams).then(response => { listZdqyml(this.queryParams).then(response => {
this.zdqymlList = response.rows; this.zdqymlList = response.rows;
this.total = response.total; this.total = response.total;
@ -572,8 +579,8 @@
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.daterangeCreateTime = []; this.daterangeCreateTime = [];
this.daterangeUpdateTime = []; this.daterangeUpdateTime = [];
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.handleQuery();
}, },
@ -613,12 +620,6 @@
const id = row.id || this.ids const id = row.id || this.ids
getZdqyml(id).then(response => { getZdqyml(id).then(response => {
this.form = response.data; 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.infoOpen = true;
this.infoTitle = "查看重点企业名录详情" this.infoTitle = "查看重点企业名录详情"
}); });
@ -706,9 +707,3 @@
} }
</script> </script>
<style lang="scss" scoped>
a {
color: #0072c6;
margin: 0 5px;
}
</style>

@ -140,9 +140,6 @@
v-hasPermi="['tcZz/netWorkYq:cy:remove']" v-hasPermi="['tcZz/netWorkYq:cy:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -166,7 +163,7 @@
<!-- <el-table-column label="序号" align="center" type='index' /> --> <!-- <el-table-column label="序号" align="center" type='index' /> -->
<el-table-column label="词云名称" align="center" prop="cyName" /> <el-table-column label="词云名称" align="center" prop="cyName" />
<el-table-column label="词云数量" align="center" prop="cyCount" /> <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 <el-table-column
label="操作" label="操作"
@ -283,47 +280,6 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -335,9 +291,7 @@ import {
addCy, addCy,
updateCy, updateCy,
exportCy, exportCy,
importCy,
} from "@/api/tcZz/netWorkYq/cy"; } from "@/api/tcZz/netWorkYq/cy";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Cy", name: "Cy",
// //
@ -401,68 +355,12 @@ export default {
rules: { rules: {
areaId: [{ required: true, message: "请选择区域", trigger: "blur" }], areaId: [{ required: true, message: "请选择区域", trigger: "blur" }],
}, },
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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() { getList() {
this.loading = true; this.loading = true;

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

@ -124,9 +124,6 @@
v-hasPermi="['tcZz/netWorkYq:mtlx:remove']" v-hasPermi="['tcZz/netWorkYq:mtlx:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -145,7 +142,7 @@
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="名称" align="center" prop="name" /> <el-table-column label="名称" align="center" prop="name" />
<el-table-column label="占比" align="center" prop="zb" /> <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 <el-table-column
label="操作" label="操作"
align="center" align="center"
@ -245,47 +242,6 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -297,10 +253,7 @@ import {
addMtlx, addMtlx,
updateMtlx, updateMtlx,
exportMtlx, exportMtlx,
importMtlx,
} from "@/api/tcZz/netWorkYq/mtlx"; } from "@/api/tcZz/netWorkYq/mtlx";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Mtlx", name: "Mtlx",
// //
@ -359,68 +312,12 @@ export default {
form: {}, form: {},
// //
rules: {}, rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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() { getList() {
this.loading = true; this.loading = true;

@ -1,14 +1,8 @@
<template> <template>
<div class="container-main" ref="main"> <div class="container-main" ref="main">
<div class="search-hearder" ref="topSearch"> <div class="search-hearder" ref="topSearch">
<el-form <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="auto">
:model="queryParams" <!-- <el-form-item label="${comment}" prop="id">
ref="queryForm"
:inline="true"
v-show="showSearch"
label-width="auto"
>
<!-- <el-form-item label="${comment}" prop="id">
<el-input <el-input
v-model="queryParams.id" v-model="queryParams.id"
placeholder="请输入${comment}" placeholder="请输入${comment}"
@ -17,25 +11,25 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
placeholder="请输入名称" placeholder="请输入名称"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="占比" prop="zb"> <el-form-item label="占比" prop="zb">
<el-input <el-input
v-model="queryParams.zb" v-model="queryParams.zb"
placeholder="请输入占比" placeholder="请输入占比"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="创建者" prop="createBy"> <!-- <el-form-item label="创建者" prop="createBy">
<el-input <el-input
v-model="queryParams.createBy" v-model="queryParams.createBy"
placeholder="请输入创建者" placeholder="请输入创建者"
@ -44,7 +38,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<!-- <el-form-item label="创建时间"> <!-- <el-form-item label="创建时间">
<el-date-picker <el-date-picker
v-model="daterangeCreateTime" v-model="daterangeCreateTime"
size="small" size="small"
@ -56,7 +50,7 @@
end-placeholder="结束日期" end-placeholder="结束日期"
></el-date-picker> ></el-date-picker>
</el-form-item> --> </el-form-item> -->
<!-- <el-form-item label="更新者" prop="updateBy"> <!-- <el-form-item label="更新者" prop="updateBy">
<el-input <el-input
v-model="queryParams.updateBy" v-model="queryParams.updateBy"
placeholder="请输入更新者" placeholder="请输入更新者"
@ -86,131 +80,95 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> --> </el-form-item> -->
<el-form-item> <el-form-item>
<el-button <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
type="primary" <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
icon="el-icon-search" </el-form-item>
size="mini" </el-form>
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
</el-form-item>
</el-form>
</div> </div>
<div class="layui-table-tool" ref="tableTool"> <div class="layui-table-tool" ref="tableTool">
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@click="handleAdd()" @click="handleAdd()"
v-hasPermi="['tcZz/netWorkYq:sslx:add']" v-hasPermi="['tcZz/netWorkYq:sslx:add']"
>新增</el-button >新增</el-button
> >
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
:disabled="single" :disabled="single"
@click="handleUpdate" @click="handleUpdate"
v-hasPermi="['tcZz/netWorkYq:sslx:edit']" v-hasPermi="['tcZz/netWorkYq:sslx:edit']"
>修改</el-button >修改</el-button>
> <el-button
<el-button type="danger"
type="danger" size="mini"
size="mini" :disabled="multiple"
:disabled="multiple" @click="handleDelete"
@click="handleDelete" v-hasPermi="['tcZz/netWorkYq:sslx:remove']"
v-hasPermi="['tcZz/netWorkYq:sslx:remove']" >删除</el-button>
>删除</el-button
>
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
:loading="exportLoading" :loading="exportLoading"
@click="handleExport" @click="handleExport"
v-hasPermi="['tcZz/netWorkYq:sslx:export']" v-hasPermi="['tcZz/netWorkYq:sslx:export']"
>导出</el-button >导出</el-button
> >
</div> </div>
<el-table <el-table v-loading="loading" :data="sslxList" @selection-change="handleSelectionChange">
v-loading="loading"
:data="sslxList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<!-- <el-table-column label="序号" align="center" prop="id" /> --> <!-- <el-table-column label="序号" align="center" prop="id" /> -->
<el-table-column label="名称" align="center" prop="name" /> <el-table-column label="名称" align="center" prop="name" />
<el-table-column label="占比" align="center" prop="zb" /> <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 <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" fixed="right">
label="操作"
align="center"
class-name="small-padding fixed-width"
width="200"
fixed="right"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@click="handleInfo(scope.row)" @click="handleInfo(scope.row)"
v-hasPermi="['tcZz/netWorkYq:sslx:list']" v-hasPermi="['tcZz/netWorkYq:sslx:list']"
> >
查看 查看
</el-button> </el-button>
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['tcZz/netWorkYq:sslx:edit']" v-hasPermi="['tcZz/netWorkYq:sslx:edit']"
>修改</el-button >修改</el-button>
>
<el-button <el-button
size="mini" size="mini"
type="danger" type="danger"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['tcZz/netWorkYq:sslx:remove']" v-hasPermi="['tcZz/netWorkYq:sslx:remove']"
>删除</el-button >删除</el-button>
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total > 0" v-show="total>0"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改涉事类型对话框 --> <!-- 添加或修改涉事类型对话框 -->
<el-dialog <el-dialog :visible.sync="open" width="500px" append-to-body custom-class="dialog-box">
:visible.sync="open" <div slot="title" class="dialog-title">{{ title }}</div>
width="500px" <el-form ref="form" :model="form" :rules="rules" label-width="auto" class="dialog-from">
append-to-body <el-form-item label="名称" prop="name">
custom-class="dialog-box" <el-input v-model="form.name" placeholder="请输入名称" />
> </el-form-item>
<div slot="title" class="dialog-title">{{ title }}</div> <el-form-item label="占比" prop="zb">
<el-form <el-input v-model="form.zb" placeholder="请输入占比" />
ref="form" </el-form-item>
:model="form" <el-form-item label="备注" prop="remark">
:rules="rules" <el-input v-model="form.remark" placeholder="请输入备注" />
label-width="auto" </el-form-item>
class="dialog-from"
>
<el-form-item label="名称" prop="name">
<el-input v-model="form.name" placeholder="请输入名称" />
</el-form-item>
<el-form-item label="占比" prop="zb">
<el-input v-model="form.zb" placeholder="请输入占比" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -219,354 +177,237 @@
</el-dialog> </el-dialog>
<!--查看涉事类型详情页--> <!--查看涉事类型详情页-->
<el-dialog <el-dialog
:visible.sync="infoOpen" :visible.sync="infoOpen"
width="90%" width="90%"
append-to-body append-to-body
:close-on-click-modal="false" :close-on-click-modal="false"
:destroy-on-close="true" :destroy-on-close="true"
custom-class="dialog-box" custom-class="dialog-box"
> >
<div slot="title" class="dialog-title">{{ infoTitle }}</div>
<el-descriptions <div slot="title" class="dialog-title">{{ infoTitle }}</div>
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 title="涉事类型" :column="2" border labelClassName="desLable">
<el-descriptions-item label="名称">{{ form.name }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ <el-descriptions-item label="占比">{{ form.zb }}</el-descriptions-item>
form.remark
}}</el-descriptions-item> <el-descriptions-item label="备注">{{ form.remark }}</el-descriptions-item>
</el-descriptions>
</el-dialog> </el-descriptions>
<!-- 导入 -->
<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> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { import { listSslx, getSslx, delSslx, addSslx, updateSslx, exportSslx } from "@/api/tcZz/netWorkYq/sslx";
listSslx, export default {
getSslx, name: "Sslx",
delSslx, //
addSslx, data() {
updateSslx, return {
exportSslx, tableHeigth: 0,
importSslx //
} from "@/api/tcZz/netWorkYq/sslx"; infoOpen:false,
import { getToken } from "@/utils/auth"; //
infoTitle:'',
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
sslxList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
export default { name: null,
name: "Sslx",
//
data() {
return {
tableHeigth: 0,
//
infoOpen: false,
//
infoTitle: "",
//
loading: true,
//
exportLoading: false,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
sslxList: [],
//
title: "",
//
open: false,
//
daterangeCreateTime: [],
//
daterangeUpdateTime: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: null,
name: null, zb: null,
zb: null, createBy: null,
createBy: null, createTime: null,
createTime: null, updateBy: null,
updateBy: null, updateTime: null,
updateTime: null, remark: null,
remark: null, },
}, //
// form: {},
form: {}, //
// rules: {
rules: {}, }
fileList: [], };
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
};
},
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() { created() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
this.getList();
}, },
handleFile(data) { methods: {
this.$modal.loading(); /** 查询涉事类型列表 */
let form = new FormData(); getList() {
form.append("file", data.file); this.loading = true;
importSslx(form) this.queryParams.params = {};
.then((res) => { if (null != this.daterangeCreateTime && '' != this.daterangeCreateTime) {
this.fileOpen = false; this.queryParams.params["beginCreateTime"] = this.daterangeCreateTime[0];
this.$modal.closeLoading(); this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1];
this.$modal.msgSuccess("导入成功"); }
this.$refs.upload.clearFiles(); if (null != this.daterangeUpdateTime && '' != this.daterangeUpdateTime) {
this.getList(); this.queryParams.params["beginUpdateTime"] = this.daterangeUpdateTime[0];
}) this.queryParams.params["endUpdateTime"] = this.daterangeUpdateTime[1];
.catch(() => { }
this.fileOpen = false; listSslx(this.queryParams).then(response => {
this.$modal.closeLoading(); this.sslxList = response.rows;
this.$refs.upload.clearFiles(); this.total = response.total;
this.getList(); this.loading = false;
}); });
}, },
/** 查询涉事类型列表 */ //
getList() { cancel() {
this.loading = true; this.open = false;
this.queryParams.params = {}; this.reset();
if (null != this.daterangeCreateTime && "" != this.daterangeCreateTime) { },
this.queryParams.params["beginCreateTime"] = //
this.daterangeCreateTime[0]; reset() {
this.queryParams.params["endCreateTime"] = this.daterangeCreateTime[1]; this.form = {
} id: null,
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) => {
this.sslxList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
name: null, name: null,
zb: null, zb: null,
createBy: null, createBy: null,
createTime: null, createTime: null,
updateBy: null, updateBy: null,
updateTime: null, updateTime: null,
remark: null, remark: null,
};
this.resetForm("form"); };
}, this.resetForm("form");
/** 搜索按钮操作 */ },
handleQuery() { /** 搜索按钮操作 */
this.queryParams.pageNum = 1; handleQuery() {
this.getList(); this.queryParams.pageNum = 1;
}, this.getList();
/** 重置按钮操作 */ },
resetQuery() { /** 重置按钮操作 */
this.daterangeCreateTime = []; resetQuery() {
this.daterangeUpdateTime = []; this.daterangeCreateTime = [];
this.resetForm("queryForm"); this.daterangeUpdateTime = [];
this.handleQuery(); this.resetForm("queryForm");
}, this.handleQuery();
// },
handleSelectionChange(selection) { //
this.ids = selection.map((item) => item.id); handleSelectionChange(selection) {
this.single = selection.length !== 1; this.ids = selection.map(item => item.id)
this.multiple = !selection.length; this.single = selection.length!==1
}, this.multiple = !selection.length
/**查看按钮操作 */ },
handleInfo(row) { /**查看按钮操作 */
this.reset(); handleInfo(row){
const id = row.id || this.ids; this.reset();
getSslx(id).then((response) => { const id = row.id || this.ids
this.form = response.data; getSslx(id).then(response => {
this.infoOpen = true; this.form = response.data;
this.infoTitle = "查看涉事类型详情"; this.infoOpen = true;
}); this.infoTitle = "查看涉事类型详情"
}, });
/** 新增按钮操作 */ },
handleAdd() { /** 新增按钮操作 */
this.reset(); handleAdd() {
this.open = true; this.reset();
this.title = "添加涉事类型";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids;
getSslx(id).then((response) => {
this.form = response.data;
this.open = true; this.open = true;
this.title = "修改涉事类型"; this.title = "添加涉事类型";
}); },
}, /** 修改按钮操作 */
/** 提交按钮 */ handleUpdate(row) {
submitForm() { this.reset();
this.$refs["form"].validate((valid) => { const id = row.id || this.ids
if (valid) { getSslx(id).then(response => {
if (this.form.id != null) { this.form = response.data;
updateSslx(this.form).then((response) => { this.open = true;
this.$modal.msgSuccess("修改成功"); this.title = "修改涉事类型";
this.open = false; });
this.getList(); },
}); /** 提交按钮 */
} else { submitForm() {
addSslx(this.form).then((response) => { this.$refs["form"].validate(valid => {
this.$modal.msgSuccess("新增成功"); if (valid) {
this.open = false; if (this.form.id != null) {
this.getList(); updateSslx(this.form).then(response => {
}); this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addSslx(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
} }
} });
}); },
}, /** 删除按钮操作 */
/** 删除按钮操作 */ handleDelete(row) {
handleDelete(row) { const ids = row.id || this.ids;
const ids = row.id || this.ids; this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", {
this.$confirm('是否确认删除编号为"' + ids + '"的数据项?', "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(function() {
})
.then(function () {
return delSslx(ids); return delSslx(ids);
}) }).then(() => {
.then(() => {
this.getList(); this.getList();
this.msgSuccess("删除成功"); this.msgSuccess("删除成功");
}) }).catch(() => {});
.catch(() => {}); },
}, /** 导出按钮操作 */
/** 导出按钮操作 */ handleExport() {
handleExport() { const queryParams = this.queryParams;
const queryParams = this.queryParams; this.$confirm('是否确认导出所有涉事类型数据项?', "警告", {
this.$confirm("是否确认导出所有涉事类型数据项?", "警告", { confirmButtonText: "确定",
confirmButtonText: "确定", cancelButtonText: "取消",
cancelButtonText: "取消", type: "warning"
type: "warning", }).then(() => {
}) this.download('/tcZz/netWorkYq/sslx/export', {
.then(() => { ...this.queryParams
this.download( }, '涉事类型_'+ new Date().getTime() +'.xlsx')
"/tcZz/netWorkYq/sslx/export",
{
...this.queryParams,
},
"涉事类型_" + new Date().getTime() + ".xlsx"
);
this.exportLoading = false; this.exportLoading = false;
}) }).catch(() => {});
.catch(() => {}); }
}, }
}, }
};
</script> </script>

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

@ -94,9 +94,10 @@
v-hasPermi="['tcZz/netWorkYq:yqzs:remove']" v-hasPermi="['tcZz/netWorkYq:yqzs:remove']"
>删除</el-button >删除</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
> > -->
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -244,6 +245,8 @@
form.dateTime form.dateTime
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="非敏感数量">{{ <el-descriptions-item label="非敏感数量">{{
form.count1 form.count1
}}</el-descriptions-item> }}</el-descriptions-item>
@ -251,52 +254,11 @@
<el-descriptions-item label="敏感数量">{{ <el-descriptions-item label="敏感数量">{{
form.count2 form.count2
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ <el-descriptions-item label="备注">{{
form.remark form.remark
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -308,10 +270,7 @@ import {
addYqzs, addYqzs,
updateYqzs, updateYqzs,
exportYqzs, exportYqzs,
importYqzs
} from "@/api/tcZz/netWorkYq/yqzs"; } from "@/api/tcZz/netWorkYq/yqzs";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Yqzs", name: "Yqzs",
// //
@ -353,7 +312,25 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, 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: {}, form: {},
@ -361,76 +338,15 @@ export default {
rules: { rules: {
areaId: [{ required: true, message: "请选择区域", trigger: "blur" }], areaId: [{ required: true, message: "请选择区域", trigger: "blur" }],
dateTime: [{ required: true, message: "请选择日期", trigger: "blur" }], dateTime: [{ required: true, message: "请选择日期", trigger: "blur" }],
count1: [ count1: [{ required: true, message: "请输入非敏感数量", trigger: "blur" }],
{ required: true, message: "请输入非敏感数量", trigger: "blur" }, count2: [{ required: true, message: "请输入敏感数量", trigger: "blur" }],
],
count2: [
{ required: true, message: "请输入敏感数量", trigger: "blur" },
],
}, },
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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() { getList() {
this.loading = true; this.loading = true;

@ -172,9 +172,7 @@
>导出</el-button >导出</el-button
> >
<el-button type="primary" size="mini" @click="importFiles" <el-button type="primary" size="mini" @click="importFiles"></el-button>
>导入</el-button
>
<el-button type="success" size="mini" @click="enable" :disabled="multiple" <el-button type="success" size="mini" @click="enable" :disabled="multiple"
>启用</el-button >启用</el-button
@ -302,40 +300,6 @@
<el-form-item label="舆情状态" prop="yqState"> <el-form-item label="舆情状态" prop="yqState">
<el-input v-model="form.yqState" placeholder="请输入舆情状态" /> <el-input v-model="form.yqState" placeholder="请输入舆情状态" />
</el-form-item> </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-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
@ -381,23 +345,14 @@
<el-descriptions-item label="舆情状态">{{ <el-descriptions-item label="舆情状态">{{
form.yqState form.yqState
}}</el-descriptions-item> }}</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="备注">{{ <el-descriptions-item label="备注">{{
form.remark form.remark
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </el-dialog>
<!-- 导入 --> <!-- 导入 -->
<el-dialog <el-dialog
:visible.sync="fileOpen" :visible.sync="fileOpen"
width="400px" width="400px"
append-to-body append-to-body
@ -518,64 +473,24 @@ export default {
// //
rules: { rules: {
// areaId: [{ required: true, message: "", trigger: "blur" }], // areaId: [{ required: true, message: "", trigger: "blur" }],
isStatus: [ isStatus: [{ required: true, message: "请选择启动/禁用", trigger: "blur" }],
{ required: true, message: "请选择启动/禁用", trigger: "blur" }, yqTitle: [{ required: true, message: "舆情标题不能为空", trigger: "blur" }],
],
yqTitle: [
{ required: true, message: "舆情标题不能为空", trigger: "blur" },
],
depName: [{ required: true, message: "部门名称", trigger: "blur" }], depName: [{ required: true, message: "部门名称", trigger: "blur" }],
yqState: [ yqState: [{ required: true, message: "请输入舆情状态", trigger: "blur" }],
{ required: true, message: "请输入舆情状态", trigger: "blur" },
],
}, },
fileList: [], fileList: [],
limit: 1, limit: 1,
accept: ".xls,.xlsx", accept: ".xls,.xlsx",
fileOpen: false, fileOpen: false,
headers: { Authorization: "Bearer " + getToken() }, headers: { Authorization: "Bearer " + getToken() },
fileNameS: [],
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { methods: {
files(e) { //
console.log(e); importTemplate() {
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( this.download(
"/tcZz/netWorkYq/zbxq/importTemplate", "/tcZz/netWorkYq/zbxq/importTemplate",
{}, {},
@ -737,29 +652,15 @@ export default {
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.fileNameS = [
{
fileUrl: "",
},
];
this.open = true; this.open = true;
this.title = "添加 转办量、转办详情"; this.title = "添加 转办量、转办详情";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
this.fileNameS = [];
const id = row.id || this.ids; const id = row.id || this.ids;
getZbxq(id).then((response) => { getZbxq(id).then((response) => {
this.form = response.data; 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.open = true;
this.title = "修改 转办量、转办详情"; this.title = "修改 转办量、转办详情";
}); });
@ -781,17 +682,6 @@ export default {
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { 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) => { this.$refs["form"].validate((valid) => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
@ -850,55 +740,3 @@ export default {
}, },
}; };
</script> </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> --> </el-form> -->
</div> </div>
<div class="layui-table-tool" ref="tableTool"> <div class="layui-table-tool" ref="tableTool">
<!--
<el-button <el-button
type="primary" type="primary"
size="mini" size="mini"
@ -52,7 +51,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:add']" v-hasPermi="['tcZz/networkEcology:bjsjwp:add']"
>新增</el-button >新增</el-button
> >
-->
<el-button <el-button
type="success" type="success"
size="mini" size="mini"
@ -61,7 +59,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:edit']" v-hasPermi="['tcZz/networkEcology:bjsjwp:edit']"
>修改</el-button >修改</el-button
> >
<!--
<el-button <el-button
type="danger" type="danger"
size="mini" size="mini"
@ -70,7 +67,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:remove']" v-hasPermi="['tcZz/networkEcology:bjsjwp:remove']"
>删除</el-button >删除</el-button
> >
-->
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -110,7 +106,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:edit']" v-hasPermi="['tcZz/networkEcology:bjsjwp:edit']"
>修改</el-button >修改</el-button
> >
<!--
<el-button <el-button
size="mini" size="mini"
type="danger" type="danger"
@ -118,7 +113,6 @@
v-hasPermi="['tcZz/networkEcology:bjsjwp:remove']" v-hasPermi="['tcZz/networkEcology:bjsjwp:remove']"
>删除</el-button >删除</el-button
> >
-->
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

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

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

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

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

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

@ -8,6 +8,7 @@
v-show="showSearch" v-show="showSearch"
label-width="auto" label-width="auto"
> >
<el-form-item label="隐患名称" prop="yhName"> <el-form-item label="隐患名称" prop="yhName">
<el-input <el-input
v-model="queryParams.yhName" v-model="queryParams.yhName"
@ -26,7 +27,7 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button <el-button
type="primary" type="primary"
@ -65,9 +66,6 @@
v-hasPermi="['tcZz/networkSecurity:aqyh:remove']" v-hasPermi="['tcZz/networkSecurity:aqyh:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -186,47 +184,6 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -238,9 +195,7 @@ import {
addAqyh, addAqyh,
updateAqyh, updateAqyh,
exportAqyh, exportAqyh,
importAqyh,
} from "@/api/tcZz/networkSecurity/aqyh"; } from "@/api/tcZz/networkSecurity/aqyh";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Aqyh", name: "Aqyh",
// //
@ -299,68 +254,12 @@ export default {
form: {}, form: {},
// //
rules: {}, rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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列表 */ /** 查询安全隐患 tc_aqyh列表 */
getList() { getList() {
this.loading = true; this.loading = true;

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

@ -80,9 +80,6 @@
v-hasPermi="['tcZz/networkSecurity:map:remove']" v-hasPermi="['tcZz/networkSecurity:map:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -219,47 +216,6 @@
form.remark form.remark
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </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> </el-dialog>
</div> </div>
</template> </template>
@ -272,10 +228,7 @@ import {
addMap, addMap,
updateMap, updateMap,
exportMap, exportMap,
importMap
} from "@/api/tcZz/networkSecurity/map"; } from "@/api/tcZz/networkSecurity/map";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Map", name: "Map",
// //
@ -337,68 +290,12 @@ export default {
form: {}, form: {},
// //
rules: {}, rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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() { getList() {
this.loading = true; this.loading = true;

@ -65,9 +65,6 @@
v-hasPermi="['tcZz/networkSecurity:fbqk:remove']" v-hasPermi="['tcZz/networkSecurity:fbqk:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -184,47 +181,6 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -236,10 +192,7 @@ import {
addFbqk, addFbqk,
updateFbqk, updateFbqk,
exportFbqk, exportFbqk,
importFbqk,
} from "@/api/tcZz/networkSecurity/fbqk"; } from "@/api/tcZz/networkSecurity/fbqk";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Fbqk", name: "Fbqk",
// //
@ -298,68 +251,12 @@ export default {
form: {}, form: {},
// //
rules: {}, rules: {},
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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列表 */ /** 查询分布情况 tc_fbqk列表 */
getList() { getList() {
this.loading = true; this.loading = true;

@ -66,9 +66,6 @@
v-hasPermi="['tcZz/networkSecurity:top5:remove']" v-hasPermi="['tcZz/networkSecurity:top5:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -190,47 +187,6 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -242,10 +198,7 @@ import {
addTop5, addTop5,
updateTop5, updateTop5,
exportTop5, exportTop5,
importTop5,
} from "@/api/tcZz/networkSecurity/top5"; } from "@/api/tcZz/networkSecurity/top5";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Top5", name: "Top5",
// //
@ -305,64 +258,12 @@ export default {
// //
rules: {}, rules: {},
addShow: false, addShow: false,
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
created() { created() {
this.getList(); this.getList();
}, },
methods: { 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列表 */ /** 查询受攻击IPTOP5列表 */
getList() { getList() {
this.loading = true; this.loading = true;

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

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

@ -77,9 +77,6 @@
v-hasPermi="['tcZz/networkSecurity:tbwc:remove']" v-hasPermi="['tcZz/networkSecurity:tbwc:remove']"
>删除</el-button >删除</el-button
> >
<el-button type="primary" size="mini" @click="importFiles"
>导入</el-button
>
<el-button <el-button
type="warning" type="warning"
size="mini" size="mini"
@ -241,47 +238,6 @@
}}</el-descriptions-item> }}</el-descriptions-item>
</el-descriptions> </el-descriptions>
</el-dialog> </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> </div>
</template> </template>
@ -293,10 +249,7 @@ import {
addTbwc, addTbwc,
updateTbwc, updateTbwc,
exportTbwc, exportTbwc,
importTbwc,
} from "@/api/tcZz/networkSecurity/tbwc"; } from "@/api/tcZz/networkSecurity/tbwc";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Tbwc", name: "Tbwc",
// //
@ -372,12 +325,6 @@ export default {
], ],
year: [{ required: true, message: "请选择年份", trigger: "blur" }], year: [{ required: true, message: "请选择年份", trigger: "blur" }],
}, },
//===========
fileList: [],
limit: 1,
accept: ".xls,.xlsx",
fileOpen: false,
headers: { Authorization: "Bearer " + getToken() },
}; };
}, },
computed: { computed: {
@ -389,56 +336,6 @@ export default {
this.getList(); this.getList();
}, },
methods: { 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() { getList() {
this.loading = true; this.loading = true;
@ -522,7 +419,7 @@ export default {
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.form.year = this.$moment(new Date()).format("yyyy"); this.form.year = this.$moment(new Date()).format('yyyy');
this.open = true; this.open = true;
this.title = "添加通报完成情况"; this.title = "添加通报完成情况";
}, },

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

@ -312,22 +312,22 @@
form.level form.level
}}</el-descriptions-item> }}</el-descriptions-item>
<el-descriptions-item :span="2" label="隐患来源">{{ <el-descriptions-item label="隐患来源">{{
form.yhLy form.yhLy
}}</el-descriptions-item> }}</el-descriptions-item>
<!-- <el-descriptions-item label="文件名称">{{ <el-descriptions-item label="文件名称">{{
form.fileName form.fileName
}}</el-descriptions-item> --> }}</el-descriptions-item>
<el-descriptions-item :span="2" label="文件"> <el-descriptions-item label="文件路径(完整路径)">
<a <a
style=" color: #0072c6;margin-right:10px;" style="text-decoration: underline; color: rgb(24, 144, 255)"
v-for="(item, index) in files(form)" v-for="(item, index) in files(form.fileUrl)"
target="_blank" target="_blank"
:key="index" :key="index"
:href="item.fileUrl" :href="item"
>{{ item.fileName }}</a >{{ item }}&nbsp;,&nbsp;</a
> >
</el-descriptions-item> </el-descriptions-item>
@ -489,19 +489,8 @@ export default {
}, },
methods: { methods: {
files(e) { files(e) {
console.log(e); if (!e) return [];
if (!e.fileUrl) return []; return e.split(",");
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) { alter(e) {
updateZxyh(e).then(() => { 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。 // 部署生产环境和开发环境下的URL。
// 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上 // 默认情况下Vue CLI 会假设你的应用是被部署在一个域名的根路径上
// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上,你就需要用这个选项指定这个子路径。例如,如果你的应用被部署在 https://www.ruoyi.vip/admin/,则设置 baseUrl 为 /admin/。 // 例如 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 // 在npm run build 或 yarn build 时 生成文件的目录名称要和baseUrl的生产环境路径一致默认dist
outputDir: "dist", outputDir: "dist",
// 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下) // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)

Loading…
Cancel
Save