提交 364d0b68 编写于 作者: alex.zhang's avatar alex.zhang

Merge branch 'dev-sen-20200717' into 'release'

Dev sen 20200717



See merge request !2
......@@ -505,7 +505,8 @@
"version": "1.0.0",
"resolved": "http://192.168.110.93:4873/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"dev": true
"dev": true,
"optional": true
},
"assign-symbols": {
"version": "1.0.0",
......@@ -2113,6 +2114,7 @@
"resolved": "http://192.168.110.93:4873/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=",
"dev": true,
"optional": true,
"requires": {
"delayed-stream": "~1.0.0"
}
......@@ -2637,7 +2639,8 @@
"version": "1.0.0",
"resolved": "http://192.168.110.93:4873/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
"dev": true
"dev": true,
"optional": true
},
"depd": {
"version": "1.1.2",
......@@ -3081,7 +3084,8 @@
"version": "1.3.0",
"resolved": "http://192.168.110.93:4873/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
"dev": true
"dev": true,
"optional": true
},
"fast-deep-equal": {
"version": "1.1.0",
......@@ -3313,7 +3317,8 @@
"ansi-regex": {
"version": "2.1.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"aproba": {
"version": "1.2.0",
......@@ -3334,12 +3339,14 @@
"balanced-match": {
"version": "1.0.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
......@@ -3354,17 +3361,20 @@
"code-point-at": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"concat-map": {
"version": "0.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"console-control-strings": {
"version": "1.1.0",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"core-util-is": {
"version": "1.0.2",
......@@ -3481,7 +3491,8 @@
"inherits": {
"version": "2.0.3",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"ini": {
"version": "1.3.5",
......@@ -3493,6 +3504,7 @@
"version": "1.0.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
......@@ -3507,6 +3519,7 @@
"version": "3.0.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
......@@ -3514,12 +3527,14 @@
"minimist": {
"version": "0.0.8",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
......@@ -3538,6 +3553,7 @@
"version": "0.5.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"minimist": "0.0.8"
}
......@@ -3618,7 +3634,8 @@
"number-is-nan": {
"version": "1.0.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"object-assign": {
"version": "4.1.1",
......@@ -3630,6 +3647,7 @@
"version": "1.4.0",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"wrappy": "1"
}
......@@ -3715,7 +3733,8 @@
"safe-buffer": {
"version": "5.1.1",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"safer-buffer": {
"version": "2.1.2",
......@@ -3751,6 +3770,7 @@
"version": "1.0.2",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
......@@ -3770,6 +3790,7 @@
"version": "3.0.1",
"bundled": true,
"dev": true,
"optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
......@@ -3813,12 +3834,14 @@
"wrappy": {
"version": "1.0.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
},
"yallist": {
"version": "3.0.2",
"bundled": true,
"dev": true
"dev": true,
"optional": true
}
}
},
......@@ -4723,7 +4746,8 @@
"version": "0.1.1",
"resolved": "http://192.168.110.93:4873/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
"dev": true
"dev": true,
"optional": true
},
"jsesc": {
"version": "1.3.0",
......@@ -7096,7 +7120,8 @@
"version": "2.1.2",
"resolved": "http://192.168.110.93:4873/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true
"dev": true,
"optional": true
},
"sax": {
"version": "1.2.4",
......@@ -7905,7 +7930,8 @@
"version": "0.14.5",
"resolved": "http://192.168.110.93:4873/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
"dev": true
"dev": true,
"optional": true
},
"type-is": {
"version": "1.6.16",
......
......@@ -11,6 +11,7 @@ const menu = {
let headers = {
headers: {
'token': localStorage.getItem('token') || null
// 'token': '9606E40DDB704396AB532B2AE771048E',
// header('Access-Control-Allow-Origin:*')
}
};
......
......@@ -39,7 +39,7 @@ export const getAddress = () => {
let qiniuResourceUrl = "";//qiniu存储域名
//本地
if (ipAddress.indexOf("localhost") > -1 || ipAddress.indexOf("127.0.0.1") > -1 || ipAddress.indexOf("test-kf") > -1) {
if (ipAddress.indexOf("localhost") > -1 || ipAddress.indexOf("10.177.10.118") > -1 || ipAddress.indexOf("test-kf") > -1) {
ipAddress = "http://localhost:7070";
preViewUrl = "http://localhost:9090/#/template";
qiniuImgUrl = "https://test1-file.yunqueyi.com";
......
......@@ -32,8 +32,9 @@ export default async(url = '', data = {}, type = 'POST', method = 'fetch',server
// 'Access-Control-Allow-Origin': '*',
'Accept': '*',
'Content-Type': 'application/json',
// 'token': localStorage.getItem('token') || null, //固定传header:
// 'system_code': 'todo' //固定传header:系统编号
'token': localStorage.getItem('token') || null, //固定传header:
// 'system_code': 'todo' //固定传header:系统编号
// 'token': '9606E40DDB704396AB532B2AE771048E',
},
}
......
......@@ -66,6 +66,7 @@
let headers = {
headers: {
'token': localStorage.getItem('token') || null
// 'token': '9606E40DDB704396AB532B2AE771048E',
}
};
// let headData = menuApi.headList(req,self);
......
......@@ -58,12 +58,6 @@
ssoLogin(href, paramMap);
}
}
// else if (localStorage.getItem("token")) {
// debugger
// Vue.prototype.$axios = self.$axios.create({
// headers: {'token': localStorage.getItem("token")}
// });
// }
}
},
components: {
......
......@@ -48,6 +48,7 @@
let headers = {
headers: {
'token': localStorage.getItem('token') || null
// 'token': '9606E40DDB704396AB532B2AE771048E',
}
};
self.$axios.post(localStorage.getItem("msUrl") + 'login/menu/list', req, headers).then(function (res) {
......
<template>
<el-dialog :title="title" :visible.sync="showModal" width="700px" @close="close" center>
<el-form ref="form" :model="form" label-width="150px" size="medium " :rules="rules">
<el-form-item label="项目名称" prop="projectMainId">
<el-select v-model="form.projectMainId" placeholder="请选择项目名称">
<el-option v-for="item in pNameList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="审批编号" prop="dingdingNumber">
<el-input style="width:220px" :disabled="handleType=='2'" :maxlength="21" v-model="form.dingdingNumber" placeholder="请输入内容"></el-input>
<el-input
style="width:220px"
:disabled="handleType=='2'"
:maxlength="21"
v-model="form.dingdingNumber"
placeholder="请输入内容"
></el-input>
</el-form-item>
<el-form-item label="申请日期" prop="dingdingDate">
<el-date-picker v-model="form.dingdingDate" :disabled="handleType=='2'" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
<el-date-picker
v-model="form.dingdingDate"
:disabled="handleType=='2'"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
<el-form-item label="sheet名称" prop="dataSheetName">
<el-input style="width:220px" :disabled="handleType=='2'" v-model="form.dataSheetName" placeholder="请输入sheet名称"></el-input>
<el-input
style="width:220px"
:disabled="handleType=='2'"
v-model="form.dataSheetName"
placeholder="请输入sheet名称"
></el-input>
</el-form-item>
<el-form-item label="数据需求方类型" prop="dataType">
<el-radio-group v-model="form.dataType" :disabled="handleType=='2'" @change="changeinout">
<el-radio :label="1" style="margin-right:50px">内部</el-radio>
......@@ -32,7 +55,6 @@
></el-option>
</el-select>
</el-form-item>
</template>
<template v-if="form.dataType == 2">
......@@ -70,25 +92,24 @@
<template v-if="form.dataRole==1">
<el-form-item label="数据分发人员" prop="ids">
<el-select v-model="form.ids" multiple filterable placeholder="请选择">
<el-option
v-for="item in idsList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-option v-for="item in idsList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<!-- 新增 分发人员导出次数 -->
<el-form-item label="分发人员导出次数" prop="distributeExportCount">
<div>
<el-input style="width:200px" v-model="form.distributeExportCount" placeholder="请输入分发人员导出次数"></el-input>
<el-input
style="width:200px"
v-model="form.distributeExportCount"
placeholder="请输入分发人员导出次数"
></el-input>
</div>
<div>备注:0代表没有导出权限</div>
</el-form-item>
</template>
</div>
<template v-if="handleType=='1'">
<el-form-item label="文件上传" prop="fileId">
<el-upload
......@@ -114,11 +135,13 @@
</el-form-item>
</template>
<p class="txt-center">请确保第一列为手机号</p>
<el-form-item label="数据有效期" prop="dataTermValidity">
<el-date-picker
v-model="form.dataTermValidity"
value-format="yyyy-MM-dd"
type="date"
<el-date-picker
v-model="form.dataTermValidity"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
></el-date-picker>
</el-form-item>
......@@ -146,127 +169,147 @@
</template>
<script>
import { baseUrl } from '../../api/hostconfig';
import { openLoading, closeLoading } from '../../common/utils';
export default{
props: {
form: Object,
rules: Object,
handleType: String
import { baseUrl } from "../../api/hostconfig";
import { openLoading, closeLoading } from "../../common/utils";
export default {
props: {
form: Object,
rules: Object,
handleType: String,
},
data() {
return {
title: "", // 表单title
baseUrl,
pNameList: [],
disableAdmintype: false,
needIdsList: [],
idsList: [],
showModal: true,
uploadHeaders: {
token: window.localStorage.getItem('token')
// token: "587657450F884CAAA62B3B39106B64E7",
},
};
},
created() {
// 获取数据需求方类型为内部时的需求方姓名列表
this.getData("get", `/sensitive/info/employee`, {}, (data) => {
this.needIdsList = data.data;
this.idsList = data.data;
});
// 数据导入时,获取项目名称列表
this.getData("get", `/sensitive/projectMain/getAll`, {}, (data) => {
this.pNameList = data.data;
});
this.title = this.handleType == "1" ? "数据导入" : "数据修改";
},
watch: {
"form.dataType"(val) {
if (val == 2) {
this.form.dataRole = 2;
this.disableAdmintype = true;
} else if (val == 1) {
}
},
data(){
return {
title: '',// 表单title
baseUrl,
disableAdmintype: false,
needIdsList: [],
idsList: [],
showModal: true,
uploadHeaders: {
token: window.localStorage.getItem('token')
"form.dataRole"(val) {
this.form.dataRole = val;
if (val == 1) {
this.disableAdmintype = false;
// 获取数据分发人员
this.getData("get", `/sensitive/info/employee`, {}, (data) => {
this.idsList = data.data;
});
} else {
if (this.form.dataType == 2) {
this.disableAdmintype = true;
}
}
},
created(){
// 获取数据需求方类型为内部时的需求方姓名列表
this.getData('get', `/sensitive/info/employee`, {
},(data)=>{
this.needIdsList = data.data
this.idsList = data.data
});
this.title = (this.handleType=='1') ? '数据导入' : '数据修改';
},
methods: {
// 切换数据需求方类型为【内部】【外部】
changeinout(value) {
console.log("handle value: ", value);
},
watch: {
'form.dataType'(val){
if(val==2){
this.form.dataRole = 2;
this.disableAdmintype = true;
}else if(val==1){
}
},
'form.dataRole'(val){
this.form.dataRole = val;
if(val==1){
this.disableAdmintype = false;
// 获取数据分发人员
this.getData('get', `/sensitive/info/employee`, {
},(data)=>{
this.idsList = data.data
});
}else{
if(this.form.dataType==2){
this.disableAdmintype = true;
}
}
},
returnActionUrl() {
return localStorage.getItem("lectureUrl") + "/sensitive/import/file";
},
methods: {
// 切换数据需求方类型为【内部】【外部】
changeinout(value) {
console.log("handle value: ", value);
},
returnActionUrl() {
return localStorage.getItem('lectureUrl') + '/sensitive/import/file';
},
// 上传成功
uploadSuccess(res, file, fileList){
this.form.fileId = res.data;
this.$refs.form.validateField('fileId');
},
beforeUpload(file) {
var FileExt = file.name.replace(/.+\./, "");
if (["xls", "xlsx"].indexOf(FileExt.toLowerCase()) === -1) {
this.$message({
type: "warning",
message: "请上传后缀名为xls,xlsx的原文件!"
});
// 上传成功
uploadSuccess(res, file, fileList) {
this.form.fileId = res.data;
this.$refs.form.validateField("fileId");
},
beforeUpload(file) {
var FileExt = file.name.replace(/.+\./, "");
if (["xls", "xlsx"].indexOf(FileExt.toLowerCase()) === -1) {
this.$message({
type: "warning",
message: "请上传后缀名为xls,xlsx的原文件!",
});
return false;
}
},
close() {
this.$emit("close");
},
submitForm(formName) {
console.log("createData.submitForm() : formName = " + formName);
this.$refs[formName].validate((valid) => {
if (valid) {
if (this.handleType == "1") {
this.getData(
"post",
"/sensitive/import/data",
this.form,
(data) => {
setTimeout(() => {
this.$emit("saveSuccess");
this.$emit("close");
}, 300);
}
);
} else {
console.log("createData.submitForm() : this.form = " + this.form);
this.getData("put", "/sensitive/import/data", this.form, (data) => {
setTimeout(() => {
this.$emit("saveSuccess");
this.$emit("close");
}, 300);
});
}
} else {
this.$message.error("请正确填写信息");
return false;
}
},
close(){
this.$emit('close');
},
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
if(this.handleType=='1'){
this.getData('post', '/sensitive/import/data', this.form, (data)=>{
setTimeout(()=>{
this.$emit('saveSuccess');
this.$emit('close');
},300);
});
}else{
this.getData('put', '/sensitive/import/data', this.form, (data)=>{
setTimeout(()=>{
this.$emit('saveSuccess');
this.$emit('close');
},300);
});
}
});
},
// 封装一下请求通用的方法
getData(type, url, req, callback) {
openLoading(this);
this.$axios[type](localStorage.getItem("lectureUrl") + url, req)
.then((res) => {
closeLoading(this);
let data = res.data;
if (data.code == "000000") {
if (callback) callback(data);
} else {
this.$message.error('请正确填写信息');
return false;
this.$message.error(data.message);
}
});
},
// 封装一下请求通用的方法
getData(type, url, req, callback) {
openLoading(this);
this.$axios[type](localStorage.getItem("lectureUrl")+url, req)
.then((res) => {
closeLoading(this);
let data = res.data;
if(data.code == "000000") {
if(callback) callback(data);
}else {
this.$message.error(data.message);
}
}).catch((error) => {
closeLoading(this);
this.$message.error('网络出现点问题')
})
}
}
.catch((error) => {
closeLoading(this);
this.$message.error("网络出现点问题");
});
},
},
};
</script>
<style scoped>
.txt-center {
/* text-align: center; */
margin-left: 170px;
margin-bottom: 20px;
color: red;
}
</script>
\ No newline at end of file
</style>
\ No newline at end of file
......@@ -23,7 +23,10 @@ export default new Router({
},{ // 数据导入
path: '/data-in',
component: resolve => require(['../views/sensitive-control/data-in.vue'], resolve),
}, { // 数据统计
path: '/data-statistic',
component: resolve => require(['../views/sensitive-control/data-statistic.vue'], resolve),
},{ // 数据查看
path: '/data-view',
component: resolve => require(['../views/sensitive-control/data-view.vue'], resolve)
......
......@@ -3,49 +3,47 @@
<el-form ref="form" :model="queryParams" label-width="100px" :inline="true" :rules="rules">
<el-form-item label="审批编号" prop="dingdingNumber">
<el-input
v-model="queryParams.dingdingNumber"
size="small"
v-model="queryParams.dingdingNumber"
size="small"
style="width:220px"
class="input"
placeholder="审批编号查询"
clearable
@input="handleIdChange"
@keydown.native="numInputLimit"
clearable
@input="handleIdChange"
@keydown.native="numInputLimit"
maxlength="21"
></el-input>
</el-form-item>
<el-form-item label="申请日期" prop="dingdingDate">
<el-select v-model="queryParams.dingdingDate" placeholder="请选择" @change="handleDatechange">
<el-option
v-for="item in dingdingDateList"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select v-model="queryParams.dingdingDate" placeholder="请选择" @change="handleDatechange" clearable>
<el-option v-for="item in dingdingDateList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="sheet名称" prop="dataSheetName">
<el-select v-model="queryParams.dataSheetName" placeholder="请选择" @change="handleSheetchange">
<el-option
v-for="item in sheetList"
:key="item"
:label="item"
:value="item"
></el-option>
<el-select
v-model="queryParams.dataSheetName"
placeholder="请选择"
@change="handleSheetchange"
clearable
>
<el-option v-for="item in sheetList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="block" style="margin-bottom:20px">
<el-button @click="createDataHandle">数据导入</el-button>
<el-button @click="queryDataList">数据查询</el-button>
<el-button @click="queryDataListByClick">数据查询</el-button>
<el-button @click="addproject">添加项目</el-button>
</div>
<template>
<el-table :data="dataList" style="width: 100%">
<el-table-column label="审批编号" prop="dingdingNumber" width="180"></el-table-column>
<el-table-column label="人员姓名" prop="name" width="180"></el-table-column>
<el-table-column label="人员姓名" prop="name" width="120"></el-table-column>
<el-table-column label="申请日期" prop="dingdingDate"></el-table-column>
<el-table-column label="sheet名称" prop="dataSheetName"></el-table-column>
<el-table-column label="附件名称" prop="fileName"></el-table-column>
<el-table-column label="状态" prop="status" :formatter="formatStatus"></el-table-column>
<el-table-column label="通知状态" prop="sendType" :formatter="formatSendType"></el-table-column>
......@@ -70,14 +68,14 @@
:current-page="currentPage"
:page-sizes="[15, 30, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<!-- 数据导入 page -->
<createData
<createData
v-if="centerDialogVisible"
:form="form"
:form="form"
:rules="rules"
:handleType="handleType"
@close="closeCreate"
......@@ -89,33 +87,52 @@
:form="form"
:rules="rules"
@close="closeModify"
/> -->
/>-->
<el-dialog
:title="dialogTitle"
:visible.sync="addProjectVisible"
:close-on-click-modal="false"
style="text-align: center"
>
<el-row style="margin-top: 20px;" type="flex">
<el-col :span="3" style="margin-left: 70px;">
<label style="font-size: 18px;">项目名称</label>
</el-col>
<el-col :span="12" style="margin-left: 20px;">
<el-input v-model="projectName" size="small" />
</el-col>
</el-row>
<div slot="footer" style="text-align: center">
<el-button type="primary" @click="dialogSave">确认</el-button>
<el-button @click="addProjectVisible = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import createData from '../../components/page/createData';
import createData from "../../components/page/createData";
// import modifyData from '../../components/page/modifyData';
import { baseUrl } from '../../api/hostconfig';
import { openLoading, closeLoading } from '../../common/utils';
import { baseUrl } from "../../api/hostconfig";
import { openLoading, closeLoading } from "../../common/utils";
export default {
components: {
createData,
createData
// modifyData
},
data() {
var checkNumLength = (rule, value, callback) => {
if (!value) {
return callback(new Error('请输入审批单号'));
}else if (value && (value+'').length != 21) {
callback(new Error('审批单号必须为21位数字值'));
return callback(new Error("请输入审批单号"));
} else if (value && (value + "").length != 21) {
callback(new Error("审批单号必须为21位数字值"));
} else {
callback();
}
};
return {
handleType: '1',// 表单操作类型,1.新增 2.修改
handleType: "1", // 表单操作类型,1.新增 2.修改
currentPage: 1,
pageSize: 15,
total: 50, // 默认分页总数
......@@ -126,39 +143,43 @@ export default {
dingdingDateList: [], //申请日期列表
// 查询的字段
queryParams: {
dingdingNumber: '', // 审批编号
dingdingDate: '', // 申请日期
dataSheetName: '', // sheet名称
dingdingNumber: "", // 审批编号
dingdingDate: "", // 申请日期
dataSheetName: "" // sheet名称
},
form: {
status: 1,
projectMainId: [], //项目名称
dingdingNumber: "", // 审批编号
dingdingDate: "", // 申请日期
dataSheetName: "",//sheet名称
dataType: "",// 数据需求方类型 1.内部 2.外部
needIds: [],// 数据需求方id集合 需求方类型选择为 dataType【内部】
mobilePhone: '', // 数据需求方类型为【外部】需要传递 dataType【外部】
name: '', // 数据需求方类型为【外部】需要传递 dataType【外部】
dataSheetName: "", //sheet名称
dataType: "", // 数据需求方类型 1.内部 2.外部
needIds: [], // 数据需求方id集合 需求方类型选择为 dataType【内部】
mobilePhone: "", // 数据需求方类型为【外部】需要传递 dataType【外部】
name: "", // 数据需求方类型为【外部】需要传递 dataType【外部】
sensitiveDataType: "", // 敏感信息查看权限 1是,2否
dataRole: '',//数据需求角色 1管理员,2普通用户
ids: [], // 数据分发人员数组
fileId: '', // 文件上传id
dataRole: "", //数据需求角色 1管理员,2普通用户
ids: [], // 数据分发人员数组
fileId: "", // 文件上传id
dataTermValidity: "", // 数据有效期 - 日期
dataCount: "",// 数据访问次数限制
sensitiveDataColumn: "", // 敏感信息列所在位置
dataCount: "", // 数据访问次数限制
sensitiveDataColumn: "" // 敏感信息列所在位置
},
rules: {
projectMainId: [
{ required: true, message: "请选择项目名称", trigger: "blur" }
],
dingdingNumber: [
{
required: true,
validator: checkNumLength,
validator: checkNumLength,
message: "请输入正确格式的审批编号",
trigger: ['blur', 'change']
trigger: ["blur", "change"]
},
{
pattern: /^[5A-Za-z0-9-\_]+$/,
message: "只能输入英文,数字,下划线,横线"
},
}
],
dingdingDate: [
{ required: true, message: "请选择日期", trigger: "change" }
......@@ -216,9 +237,7 @@ export default {
{ required: true, message: "请确定导出次数", trigger: "blur" },
{ pattern: /^\+?[0-9][0-9]*$/, message: "导出次数只能是正整数" }
],
fileId: [
{ required: true, message: "请上传文件", trigger: "change" }
],
fileId: [{ required: true, message: "请上传文件", trigger: "change" }],
dataTermValidity: [
{ required: true, message: "请填写数据有效期", trigger: "blur" }
],
......@@ -228,11 +247,14 @@ export default {
],
sensitiveDataColumn: [
{ required: true, message: "请填写敏感信息所在位置", trigger: "blur" }
],
}
]
},
addProjectVisible: false,
dialogTitle: "添加项目",
projectName: ""
};
},
created(){
created() {
// 初始化获取数据列表
this.getDataList(this.currentPage, {});
},
......@@ -240,198 +262,255 @@ export default {
// 根据审批编号查询申请日期操作
handleIdChange(value) {
if (value.length == 21) {
this.getData('get', `/sensitive/visit/date?dingdingNumber=${value}`, {
},(data)=>{
this.dingdingDateList = data.data;
});
}else{
this.getData(
"get",
`/sensitive/visit/date?dingdingNumber=${value}`,
{},
data => {
this.dingdingDateList = data.data;
}
);
} else {
this.dingdingDateList = [];
this.sheetList = [];
this.queryParams.dingdingDate = '';
this.queryParams.dataSheetName = '';
this.queryParams.dingdingDate = "";
this.queryParams.dataSheetName = "";
}
},
// 根据审批编号和日期搜索sheet
handleDatechange(val) {
this.getData('get', `/sensitive/visit/sheet?dingdingNumber=${this.queryParams.dingdingNumber}&dingdingDate=${val}`, {
},(data)=>{
this.sheetList = data.data;
});
this.getData(
"get",
`/sensitive/visit/sheet?dingdingNumber=${this.queryParams.dingdingNumber}&dingdingDate=${val}`,
{},
data => {
this.sheetList = data.data;
}
);
},
// 选中sheet
handleSheetchange(val){
handleSheetchange(val) {},
queryDataListByClick() {
this.currentPage = 1;
this.queryDataList();
},
// 数据查询
queryDataList(){
queryDataList() {
this.getDataList(this.currentPage, this.queryParams);
},
// 获取全部分页数据
getDataList(pageNum, queryData) {
this.getData('post', '/sensitive/visit', {
"pageNum": pageNum,
"pageSize": this.pageSize,
...queryData
},(data)=>{
this.dataList = data.data.list;
this.total = data.data.total;
});
this.getData(
"post",
"/sensitive/visit",
{
pageNum: pageNum,
pageSize: this.pageSize,
...queryData
},
data => {
this.dataList = data.data.list;
this.total = data.data.total;
}
);
},
// 根据页码获取数据
handleSizeChange(size){
handleSizeChange(size) {
this.pageSize = size;
this.getDataList(this.currentPage, {});
this.getDataList(this.currentPage, this.queryParams);
},
// 根据分页获取数据
dataListChange(num){
dataListChange(num) {
console.log("dataListChange() : num = " + num);
this.currentPage = num;
this.getDataList(num, {});
this.getDataList(num, this.queryParams);
},
// 过滤状态显示
formatStatus(row, column){
formatStatus(row, column) {
let value;
if(row.status == 1){
value = '正常';
}else if(row.status == 2){
value = '关闭';
if (row.status == 1) {
value = "正常";
} else if (row.status == 2) {
value = "关闭";
}
return value;
},
// 过滤同志状态显示
formatSendType(row, column){
formatSendType(row, column) {
let value;
if(row.sendType == 1){
value = '已通知';
}else if(row.sendType == 2){
value = '未通知';
if (row.sendType == 1) {
value = "已通知";
} else if (row.sendType == 2) {
value = "未通知";
}
return value;
},
// 新增数据-数据导入
createDataHandle(){
this.centerDialogVisible=true;
this.handleType='1';
createDataHandle() {
this.centerDialogVisible = true;
this.handleType = "1";
this.form = {
status: 1,
projectMainId: [], //项目名称
dingdingNumber: "", // 审批编号
dingdingDate: "", // 申请日期
dataSheetName: "",//sheet名称
dataType: "",// 数据需求方类型 1.内部 2.外部
needIds: [],// 数据需求方id集合 需求方类型选择为 dataType【内部】
mobilePhone: '', // 数据需求方类型为【外部】需要传递 dataType【外部】
name: '', // 数据需求方类型为【外部】需要传递 dataType【外部】
dataSheetName: "", //sheet名称
dataType: "", // 数据需求方类型 1.内部 2.外部
needIds: [], // 数据需求方id集合 需求方类型选择为 dataType【内部】
mobilePhone: "", // 数据需求方类型为【外部】需要传递 dataType【外部】
name: "", // 数据需求方类型为【外部】需要传递 dataType【外部】
sensitiveDataType: "", // 敏感信息查看权限 1是,2否
dataRole: '',//数据需求角色 1管理员,2普通用户
ids: [], // 数据分发人员数组
fileId: '', // 文件上传id
dataRole: "", //数据需求角色 1管理员,2普通用户
ids: [], // 数据分发人员数组
fileId: "", // 文件上传id
dataTermValidity: "", // 数据有效期 - 日期
dataCount: "",// 数据访问次数限制
sensitiveDataColumn: "", // 敏感信息列所在位置
dataCount: "", // 数据访问次数限制
sensitiveDataColumn: "" // 敏感信息列所在位置
};
},
//添加项目
addproject() {
this.addProjectVisible = true;
},
dialogSave() {
this.getData(
"get", `/sensitive/projectMain/add?projectName=${this.projectName}`, {},
data => {
this.$message({
type: "success",
message: "项目添加成功"
});
this.addProjectVisible = false;
}
);
},
// 修改数据
modifyDataHandle(id){
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
modifyDataHandle(id) {
console.log("modifyDataHandle() : id = " + id)
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// id = 60;
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
this.centerDialogVisible = true;
this.handleType = '2';
this.getData('get', `/sensitive/import/data?id=${id}`, {},(data)=>{
this.handleType = "2";
this.getData("get", `/sensitive/import/data?id=${id}`, {}, data => {
const form = data.data;
if(!form.needIds) form.needIds = [];
if(!form.ids) form.ids = [];
if (!form.needIds) form.needIds = [];
if (!form.ids) form.ids = [];
form.id = id;
this.form = form;
});
},
// 列表关闭操作
closeDingHandle(userId){
this.$confirm('确定关闭?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
closeDingHandle(userId) {
this.$confirm("确定关闭?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
center: true,
customClass: 'close-msg-box'
customClass: "close-msg-box"
}).then(() => {
this.getData('put', `/sensitive/visit/status?userId=${userId}`, {},(data)=>{
this.$message({
type: 'success',
message: '关闭成功!'
});
this.getDataList(this.currentPage, {});
});
})
this.getData(
"put",
`/sensitive/visit/status?userId=${userId}`,
{},
data => {
this.$message({
type: "success",
message: "关闭成功!"
});
this.getDataList(this.currentPage, this.queryParams);
}
);
});
},
// 列表通知操作
notifyDingHandle(obj){
const { dataSheetName, dingdingDate, dingdingNumber, mobilePhone, userId } = obj;
this.$confirm('确定通知该用户?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
notifyDingHandle(obj) {
const {
dataSheetName,
dingdingDate,
dingdingNumber,
mobilePhone,
userId
} = obj;
this.$confirm("确定通知该用户?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
center: true,
customClass: 'close-msg-box'
customClass: "close-msg-box"
}).then(() => {
this.getData('put', '/sensitive/visit/notice', {
dataSheetName, dingdingDate, dingdingNumber, mobilePhone, userId
},(data)=>{
this.$message({
type: 'success',
message: '通知成功!'
});
this.getDataList(this.currentPage, {});
});
})
this.getData(
"put",
"/sensitive/visit/notice",
{
dataSheetName,
dingdingDate,
dingdingNumber,
mobilePhone,
userId
},
data => {
this.$message({
type: "success",
message: "通知成功!"
});
this.getDataList(this.currentPage, this.queryParams);
}
);
});
},
// 查看个人审批编号页面
dataview(row) {
this.$router.push("/data-view");
this.$router.push({
path: '/data-view',
path: "/data-view",
query: {
dingdingNumber: row.dingdingNumber,
dingdingDate: row.dingdingDate,
sheet: row.dataSheetName,
sheet: row.dataSheetName
}
})
});
},
numInputLimit (e) {
let key = e.key
numInputLimit(e) {
let key = e.key;
// 不允许输入'e'和'.'
if (key === 'e' || key === '.') {
e.returnValue = false
return false
if (key === "e" || key === ".") {
e.returnValue = false;
return false;
}
return true
return true;
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
closeCreate(){
closeCreate() {
this.centerDialogVisible = false;
},
closeModify(){
closeModify() {
this.reviseDialogVisible = false;
},
// 数据导入成功之后的通知方法
saveSuccess(){
this.getDataList(this.currentPage, {});
saveSuccess() {
this.getDataList(this.currentPage, this.queryParams);
},
// 封装一下请求通用的方法
getData(type, url, req, callback) {
openLoading(this);
this.$axios[type](localStorage.getItem("lectureUrl")+url, req)
.then((res) => {
this.$axios[type](localStorage.getItem("lectureUrl") + url, req)
.then(res => {
closeLoading(this);
let data = res.data;
if(data.code == "000000") {
if(callback) callback(data);
}else {
if (data.code == "000000") {
if (callback) callback(data);
} else {
this.$message.error(data.message);
}
}).catch((error) => {
})
.catch(error => {
closeLoading(this);
this.$message.error('网络出现点问题')
})
this.$message.error("网络出现点问题");
});
}
}
};
......@@ -439,12 +518,12 @@ export default {
<style lang="less">
.data-in-wrap {
.pagination-style{
.pagination-style {
margin-top: 30px;
float: right;
}
}
.close-msg-box{
.close-msg-box {
width: 280px;
}
</style>
<template>
<div class="data-in-wrap">
<el-form ref="form" :model="queryParams" label-width="100px" :inline="true" :rules="rules">
<el-form-item label="项目名称" prop="projectMainId">
<el-select v-model="queryParams.projectMainId" placeholder="请选择项目" clearable>
<el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="审批编号" prop="dingdingNumber">
<el-input
v-model="queryParams.dingdingNumber"
size="small"
style="width:220px"
class="input"
placeholder="审批编号查询"
clearable
@input="handleIdChange"
@keydown.native="numInputLimit"
maxlength="21"
></el-input>
</el-form-item>
<el-form-item label="申请日期" prop="dingdingDate">
<el-select
v-model="queryParams.dingdingDate"
placeholder="请选择"
@change="handleDatechange"
clearable
>
<el-option v-for="item in dingdingDateList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="sheet名称" prop="dataSheetName">
<el-select
v-model="queryParams.dataSheetName"
placeholder="请选择"
@change="handleSheetchange"
clearable
>
<el-option v-for="item in sheetList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
</el-form>
<div class="block" style="margin-bottom:20px;display: flex;">
<el-button @click="showProjectTag">项目标签设置</el-button>
<el-button @click="showProjectStatus">项目标记状态设置</el-button>
<el-button @click="queryDataListByClick">数据查询</el-button>
<el-button @click="showExportModal">导出</el-button>
<div style="margin-left:20px;margin-top:5px">备注:请使用谷歌浏览器导出</div>
<a :href="'http://www.google.cn/chrome/'" class="href-link">点击下载</a>
</div>
<template>
<el-table :data="dataList" style="width: 100%">
<el-table-column label="项目名称" prop="projectMainName"></el-table-column>
<el-table-column label="钉钉编号" prop="dingdingNumber" width="180"></el-table-column>
<el-table-column label="申请日期" prop="dingdingDate"></el-table-column>
<el-table-column label="文件sheet名" prop="dataSheetName"></el-table-column>
<el-table-column label="总数据量" prop="dataSum"></el-table-column>
<el-table-column label="已处理数据量" prop="processedSum"></el-table-column>
<el-table-column label="操作" fixed="right" width="200">
<template slot-scope="scope">
<el-button @click="dataview(scope.row)" type="text" size="small">查看</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
v-if="dataList && dataList.length > 0"
class="pagination-style"
@size-change="handleSizeChange"
@current-change="dataListChange"
:total="total"
:current-page="currentPage"
:page-sizes="[15, 30, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<el-dialog :visible.sync="setTagVisible" :close-on-click-modal="false" width="500px">
<p class="dialog-title">项目标签设置</p>
<el-select
v-model="labelProjectMainId"
@change="handleLabelchange"
placeholder="请选择项目"
style="margin-left: 110px"
>
<el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
<div>
<div v-for="(u,i) in labelList" style="margin-top: 20px; margin-left: 110px">
<el-select v-model="labelList[i]" placeholder="请选择标签">
<el-option
v-for="item in allLabelList"
:key="item.code"
:label="item.value"
:value="item.code"
></el-option>
</el-select>
<el-button v-if="i==labelList.length-1 && i<19" @click="addTagNew">+</el-button>
<el-button v-if="labelList.length>1" @click="deleteTag(i)">-</el-button>
</div>
</div>
<div slot="footer" style="text-align: center">
<el-button type="primary" @click="setTagSave">确认</el-button>
<el-button @click="setTagVisible = false;clearLabelData();">取消</el-button>
</div>
</el-dialog>
<el-dialog :visible.sync="setStatusVisible" :close-on-click-modal="false" width="500px">
<p class="dialog-title">项目标记状态设置</p>
<el-select
v-model="statusProjectMainId"
placeholder="请选择项目"
@change="handleStatuschange"
style="margin-left: 110px"
>
<el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
<div style="margin-top: 20px; margin-left: 110px">
<el-input
v-model="status01.value"
style="width:180px;"
class="input"
placeholder="标记状态"
clearable
maxlength="10"
></el-input>
<el-button v-if="statusCount==1" @click="addStatusNew">+</el-button>
<el-button v-if="statusCount>1" @click="deleteStatus(1)">-</el-button>
</div>
<div v-if="statusCount>1" style="margin-top: 20px; margin-left: 110px">
<el-input
v-model="status02.value"
style="width:180px;"
class="input"
placeholder="标记状态"
clearable
maxlength="10"
></el-input>
<el-button v-if="statusCount==2" @click="addStatusNew">+</el-button>
<el-button @click="deleteStatus(2)">-</el-button>
</div>
<div v-if="statusCount>2" style="margin-top: 20px; margin-left: 110px">
<el-input
v-model="status03.value"
style="width:180px;"
class="input"
placeholder="标记状态"
clearable
maxlength="10"
></el-input>
<el-button v-if="statusCount==3" @click="addStatusNew">+</el-button>
<el-button @click="deleteStatus(3)">-</el-button>
</div>
<div v-if="statusCount>3" style="margin-top: 20px; margin-left: 110px">
<el-input
v-model="status04.value"
style="width:180px;"
class="input"
placeholder="标记状态"
clearable
maxlength="10"
></el-input>
<el-button v-if="statusCount==4" @click="addStatusNew">+</el-button>
<el-button @click="deleteStatus(4)">-</el-button>
</div>
<div v-if="statusCount>4" style="margin-top: 20px; margin-left: 110px">
<el-input
v-model="status05.value"
style="width:180px;"
class="input"
placeholder="标记状态"
clearable
maxlength="10"
></el-input>
<el-button @click="deleteStatus(5)">-</el-button>
</div>
<div slot="footer" style="text-align: center">
<el-button type="primary" @click="setStatusSave">确认</el-button>
<el-button @click="setStatusVisible = false; clearStatusData();">取消</el-button>
</div>
</el-dialog>
<!-- 导出弹窗 -->
<el-dialog title="导出" :visible.sync="exportModalVisible" width="300px" center>
<p>您当前数据总导出次数为:{{checkExportData.dataExportTotal}}次</p>
<p>剩余导出次数为:{{checkExportData.dataExportCount}}次</p>
<span slot="footer" class="dialog-footer">
<el-button @click="exportModalVisible = false">取 消</el-button>
<el-button type="primary" @click="handleExport">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { baseUrl } from "../../api/hostconfig";
import { openLoading, closeLoading } from "../../common/utils";
export default {
components: {},
data() {
var checkNumLength = (rule, value, callback) => {
if (!value) {
return callback(new Error("请输入审批单号"));
} else if (value && (value + "").length != 21) {
callback(new Error("审批单号必须为21位数字值"));
} else {
callback();
}
};
return {
setTagVisible: false,
setStatusVisible: false,
labelProjectMainId: "",
// tag01: "",
// tag02: "",
// tag03: "",
// tag04: "",
// tag05: "",
labelCount: 1,
labelList: [],
allLabelList: [],
statusProjectMainId: "",
status01: {},
status02: {},
status03: {},
status04: {},
status05: {},
statusCount: 1,
statusList: [],
handleType: "1", // 表单操作类型,1.新增 2.修改
currentPage: 1,
pageSize: 15,
total: 50, // 默认分页总数
dataList: [], // 初始化数据列表
centerDialogVisible: false, // 是否显示数据导入(新增)
reviseDialogVisible: false, // 是否显示数据导入(修改)
projectList: [],
sheetList: [], // 被搜索出来的sheet列表
dingdingDateList: [], //申请日期列表
// 查询的字段
queryParams: {
projectMainId: "", //项目id
dingdingNumber: "", // 审批编号
dingdingDate: "", // 申请日期
dataSheetName: "", // sheet名称
},
exportModalVisible: false, // 导出弹窗
//导出数据量
checkExportData: {
dataExportTotal: 0, // 总的
dataExportCount: 0, // 剩余的
},
rules: {
pName: [{ required: true, message: "请选择项目名称", trigger: "blur" }],
labelProjectMainId: [
{ required: true, message: "请选择项目名称", trigger: "blur" },
],
dingdingNumber: [
{
required: false,
validator: checkNumLength,
message: "请输入正确格式的审批编号",
trigger: ["blur", "change"],
},
{
pattern: /^[5A-Za-z0-9-\_]+$/,
message: "只能输入英文,数字,下划线,横线",
},
],
// dingdingDate: [
// { required: true, message: "请选择日期", trigger: "change" },
// ],
// dataSheetName: [
// { required: true, message: "请输入sheet名称", trigger: "change" },
// ],
dataType: [
{
required: true,
message: "请至少选择一个数据方类型",
trigger: "change",
},
],
needIds: [
{
required: true,
message: "请输入内部数据需求方姓名",
trigger: "blur",
},
],
mobilePhone: [
{
required: true,
message: "请输入内部数据需求方手机号",
trigger: "blur",
},
{ pattern: /^1[345789]\d{9}$/, message: "输入正确格式的手机号" },
],
name: [
{
required: true,
message: "请输入外部数据需求方姓名",
trigger: "blur",
},
],
sensitiveDataType: [
{ required: true, message: "请确定敏感信息", trigger: "change" },
],
exportCount: [
{ required: true, message: "请确定导出次数", trigger: "blur" },
{ pattern: /^\+?[0-9][0-9]*$/, message: "导出次数只能是正整数" },
],
dataRole: [
{
required: true,
message: "请选择一个数据需求角色",
trigger: "change",
},
],
ids: [
{ required: true, message: "请选择数据分发人员", trigger: "blur" },
],
distributeExportCount: [
{ required: true, message: "请确定导出次数", trigger: "blur" },
{ pattern: /^\+?[0-9][0-9]*$/, message: "导出次数只能是正整数" },
],
fileId: [{ required: true, message: "请上传文件", trigger: "change" }],
dataTermValidity: [
{ required: true, message: "请填写数据有效期", trigger: "blur" },
],
dataCount: [
{ required: true, message: "请填写数据访问次数", trigger: "blur" },
{ pattern: /^\+?[0-9][0-9]*$/, message: "访问次数只能是正整数" },
],
sensitiveDataColumn: [
{
required: true,
message: "请填写敏感信息所在位置",
trigger: "blur",
},
],
},
};
},
created() {
//获取项目名称列表
console.log("created() : enter");
this.getProjectNameList();
// 初始化获取数据列表
// this.getDataList(this.currentPage, {});
},
methods: {
//获取项目名称列表
getProjectNameList() {
this.getData(
"get",
`/sensitive/dataStatistics/getProject`,
{},
(data) => {
this.projectList = data.data;
}
);
},
//项目标签设置
showProjectTag() {
this.setTagVisible = true;
this.getHistoryLabel();
this.getAllLabel();
},
getAllLabel() {
this.getData(
"post",
"/sensitive/dataStatistics/getAllLabel",
{},
(data) => {
this.allLabelList = data.data;
}
);
},
getHistoryLabel() {
this.getData(
"get",
`/sensitive/dataStatistics/getLabel?projectMainId=${this.labelProjectMainId}`,
{},
(data) => {
this.labelList = data.data;
if (this.labelList.length <= 0) {
this.labelList = [""];
}
}
);
},
handleLabelchange() {
this.clearLabelData();
this.getHistoryLabel();
},
addTagNew() {
this.labelList.push("");
},
deleteTag(index) {
this.labelList.splice(index, 1);
},
setTagSave() {
if (this.labelProjectMainId == null || this.labelProjectMainId == "") {
this.$message.error("请选择项目名称");
return;
}
let checkTagValid = false;
for (let item = 0; item < this.labelList.length; item++) {
if (this.labelList[item] != null && this.labelList[item] != "") {
checkTagValid = true;
break;
}
}
console.log("setTagSave() : checkTagValid = " + checkTagValid);
if (!checkTagValid) {
this.$message.error("标签不可为空");
return;
}
for (let item = 0; item < this.labelList.length; item++) {
console.log("setTagSave() : item = " + item);
if (this.labelList[item] == "") {
this.deleteTag(item);
if (item != 0) {
item--;
}
}
}
let req = {
codes: this.labelList,
projectMainId: this.labelProjectMainId,
};
this.getData(
"post",
`/sensitive/dataStatistics/setLabel`,
req,
(data) => {
this.$message({
type: "success",
message: "项目标签设置成功",
});
this.clearLabelData();
this.setTagVisible = false;
}
);
},
clearLabelData() {
// this.tag01 = "";
// this.tag02 = "";
// this.tag03 = "";
// this.tag04 = "";
// this.tag05 = "";
this.labelList = [];
},
//项目标记状态设置
showProjectStatus() {
this.setStatusVisible = true;
this.getHistoryStatus();
},
addStatusNew() {
this.statusCount++;
},
deleteStatus(index) {
this.recodeStatus(index);
this.statusCount--;
},
recodeStatus(index) {
if (index == 1) {
this.status01 = this.status02;
this.status02 = this.status03;
this.status03 = this.status04;
this.status04 = this.status05;
} else if (index == 2) {
this.status02 = this.status03;
this.status03 = this.status04;
this.status04 = this.status05;
} else if (index == 3) {
this.status03 = this.status04;
this.status04 = this.status05;
} else if (index == 4) {
this.status04 = this.status05;
} else if (index == 5) {
this.status05 = "";
}
},
getHistoryStatus() {
this.getData(
"get",
`/sensitive/dataStatistics/getState?projectMainId=${this.statusProjectMainId}`,
{},
(data) => {
this.statusList = data.data;
if (this.statusList && this.statusList.length > 0) {
this.statusCount = this.statusList.length;
console.log(
"getHistoryStatus() : this.statusCount = " + this.statusCount
);
if (this.statusCount > 0) {
for (let item in this.statusList) {
if (item == 0) {
this.status01 = this.statusList[item];
} else if (item == 1) {
this.status02 = this.statusList[item];
} else if (item == 2) {
this.status03 = this.statusList[item];
} else if (item == 3) {
this.status04 = this.statusList[item];
} else if (item == 4) {
this.status05 = this.statusList[item];
}
}
}
} else {
this.statusCount = 1;
}
}
);
},
handleStatuschange() {
this.clearStatusData();
this.getHistoryStatus();
},
clearStatusData() {
this.status01 = {};
this.status02 = {};
this.status03 = {};
this.status04 = {};
this.status05 = {};
this.statusList = [];
},
setStatusSave() {
if (this.statusProjectMainId == null || this.statusProjectMainId == "") {
this.$message.error("请选择项目名称");
return;
}
this.statusList = [
// { id: 0, value: this.status01 },
// { id: 1, value: this.status02 },
// { id: 2, value: this.status03 },
// { id: 3, value: this.status04 },
// { id: 4, value: this.status05 },
{ id: this.status01.id, value: this.status01.value },
{ id: this.status02.id, value: this.status02.value },
{ id: this.status03.id, value: this.status03.value },
{ id: this.status04.id, value: this.status04.value },
{ id: this.status05.id, value: this.status05.value },
];
let checkStatusValid = false;
for (let item = 0; item < this.statusList.length; item++) {
console.log(
"setStatusSave() : this.statusList[item].value = " +
this.statusList[item].value
);
if (
this.statusList[item].value != null &&
this.statusList[item].value != "" &&
this.statusList[item].value != undefined
) {
checkStatusValid = true;
break;
}
}
console.log("setStatusSave() : checkStatusValid = " + checkStatusValid);
if (!checkStatusValid) {
this.$message.error("标记状态不可为空");
return;
}
let req = {
list: this.statusList,
projectMainId: this.statusProjectMainId,
};
this.getData(
"post",
`/sensitive/dataStatistics/setState`,
req,
(data) => {
this.$message({
type: "success",
message: "项目标记状态设置成功",
});
this.clearStatusData();
this.setStatusVisible = false;
}
);
},
queryDataListByClick() {
this.currentPage = 1;
this.queryDataList();
},
// 数据查询
queryDataList() {
this.getDataList(this.currentPage, this.queryParams);
},
//导出
showExportModal() {
console.log("导出。。。。。");
// 待接口提供后 请求接口获取excel, 再出发下载
// this.checkExport();
this.handleExport();
},
checkExport() {
let data = {
dingdingNum: this.queryParams.dingdingNumber,
dingdingDate: this.queryParams.dingdingDate,
dataSheetName: this.queryParams.dataSheetName,
};
let callback = (res) => {
if (res.code == "000000") {
console.log("导出前校验》》》》 ", res);
this.checkExportData.dataExportTotal = res.data.dataExportTotal;
this.checkExportData.dataExportCount = res.data.dataExportCount;
this.exportModalVisible = true;
} else {
vm.$message.error(res.message);
}
};
this.getData(
"post",
`/sensitive/dataSearch/check/export`,
// this.queryParams,
data,
callback
);
},
handleExport() {
let callback = (res) => {
if (res.code == "000000") {
console.log("正式导出》》》》 ", res);
// 执行下载excel
this.downloadFile(res.data.path, res.data.fileName);
this.exportModalVisible = false;
} else {
this.$message.error(res.message);
}
};
this.getData(
"post",
`/sensitive/dataStatistics/exportDataStatistic`,
this.queryParams,
callback
);
},
downloadFile(base64, fileName) {
let a = document.createElement("a");
let uploadHref = "data:application/xls;base64," + base64;
a.setAttribute("href", uploadHref);
let exportFileName = fileName;
a.setAttribute("download", exportFileName);
a.click();
},
// 根据审批编号查询申请日期操作
handleIdChange(value) {
if (value.length == 21) {
this.getData(
"get",
`/sensitive/visit/date?dingdingNumber=${value}`,
{},
(data) => {
this.dingdingDateList = data.data;
}
);
} else {
this.dingdingDateList = [];
// this.projectList = [];
this.sheetList = [];
this.queryParams.dingdingDate = "";
this.queryParams.dataSheetName = "";
}
},
// 根据审批编号和日期搜索sheet
handleDatechange(val) {
this.getData(
"get",
`/sensitive/visit/sheet?dingdingNumber=${this.queryParams.dingdingNumber}&dingdingDate=${val}`,
{},
(data) => {
this.sheetList = data.data;
}
);
},
// 选中sheet
handleSheetchange(val) {},
// 获取全部分页数据
getDataList(pageNum, queryData) {
this.getData(
"post",
"/sensitive/dataStatistics/queryData",
{
pageNum: pageNum,
pageSize: this.pageSize,
...queryData,
},
(data) => {
this.dataList = data.data.list;
this.total = data.data.total;
}
);
},
// 根据页码获取数据
handleSizeChange(size) {
this.pageSize = size;
this.getDataList(this.currentPage, {});
},
// 根据分页获取数据
dataListChange(num) {
this.currentPage = num;
this.getDataList(num, {});
},
// 查看个人审批编号页面
dataview(row) {
// this.$router.push("/data-view");
this.$router.push({
path: "/data-view",
query: {
dingdingNumber: row.dingdingNumber,
dingdingDate: row.dingdingDate,
sheet: row.dataSheetName,
},
});
},
numInputLimit(e) {
let key = e.key;
// 不允许输入'e'和'.'
if (key === "e" || key === ".") {
e.returnValue = false;
return false;
}
return true;
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
closeCreate() {
this.centerDialogVisible = false;
},
closeModify() {
this.reviseDialogVisible = false;
},
// 数据导入成功之后的通知方法
saveSuccess() {
this.getDataList(this.currentPage, {});
},
// 封装一下请求通用的方法
getData(type, url, req, callback) {
openLoading(this);
this.$axios[type](localStorage.getItem("lectureUrl") + url, req)
.then((res) => {
closeLoading(this);
let data = res.data;
if (data.code == "000000") {
if (callback) callback(data);
} else {
this.$message.error(data.message);
}
})
.catch((error) => {
console.log("getData() : error = " + error);
closeLoading(this);
this.$message.error("网络出现点问题");
});
},
},
};
</script>
<style lang="less">
.data-in-wrap {
.pagination-style {
margin-top: 30px;
float: right;
}
}
.close-msg-box {
width: 280px;
}
.tag-select {
width: 100px;
}
.dialog-title {
margin-bottom: 25px;
font-weight: bold;
text-align: center;
font-size: 18px;
}
.href-link {
color: red;
margin-top:5px;
margin-left:10px;
}
</style>
\ No newline at end of file
<template>
<div class="data-view-message-wrap" >
<div class="data-view-message-wrap">
<template v-if="searchTableVisible">
<el-row class="button-wrap">
<el-button class="each-button" type="primary" @click="hadnleSearch">查询</el-button>
<el-button class="each-button" type="primary" @click="showExportModal" v-if="showExportBtn">导出</el-button>
<el-button class="each-button" type="primary" @click="showAddConditionModal(true)">添加筛选条件</el-button>
<div class="class-top-row">
<el-row class="button-wrap">
<el-col :span="1" style="margin-left: 20px;width: 70px;margin-top: 4px">
<label style="font-size: 16px;">标记状态</label>
</el-col>
<el-select
v-model="labelStatus"
size="small"
placeholder="请选择"
clearable
style="margin-left: 0px;width:180px"
>
<el-option
v-for="item in dataProjectStates"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
<el-link style="margin-left:40px">备注</el-link>
<el-input
v-model="remark"
size="small"
style="width:180px;"
class="input"
placeholder
clearable
></el-input>
</el-row>
<el-row class="button-wrap">
<el-button class="each-button" type="primary" @click="labelVisible=true">添加标签筛选</el-button>
<el-button class="each-button" type="primary" @click="handleSearchByClick">查询</el-button>
<el-button
class="each-button"
type="primary"
@click="showExportModal"
v-if="showExportBtn"
>导出</el-button>
<el-button class="each-button" type="primary" @click="showAddConditionModal(true)">添加筛选条件</el-button>
</el-row>
</div>
</el-row>
<template v-if="tableDataList && tableDataList.outModels && tableDataList.outModels.length > 0">
<template
v-if="tableDataList && tableDataList.outModels && tableDataList.outModels.length > 0"
>
<el-table
:data="tableDataList.outModels"
:row-style="getRowClass" :header-row-style="getRowClass" :header-cell-style="getRowClass"
:row-style="getRowClass"
:header-row-style="getRowClass"
:header-cell-style="getRowClass"
border
style="width: 100%; flex:1; overflow: scroll;">
style="width: 100%; flex:1; overflow: scroll;"
>
<template
v-if="tableDataList && tableDataList.columnList"
v-for="item in tableDataList.columnList"
>
<el-table-column :prop="item.key" align="center" :label="item.value" show-overflow-tooltip></el-table-column>
<el-table-column
:prop="item.key"
align="center"
:label="item.value"
show-overflow-tooltip
></el-table-column>
</template>
<el-table-column
align="center"
label="操作"
width="120">
<el-table-column label="备注" prop="remark" align="center" width="120"></el-table-column>
<el-table-column label="标记状态" prop="statusValue" align="center" width="100"></el-table-column>
<el-table-column align="center" label="操作" width="220">
<template slot-scope="scope">
<el-button @click="showRemarkModal(scope.row)" type="text" size="small">备注</el-button>
<!-- <el-button type="text">标记处理</el-button> -->
<el-button @click="handleTagClick(scope.row)" type="text" size="small" :disabled="scope.row.status == 1">{{ scope.row.status == 1 ? '已处理' : '标记处理' }}</el-button>
<el-button
@click="handleTagClick(scope.row)"
type="text"
size="small"
:disabled="scope.row.status == 1"
>{{ scope.row.status == 1 ? '已处理' : '标记处理' }}</el-button>
<el-button @click="handleSetLabelClick(scope.row)" type="text" size="small">标签</el-button>
<el-button @click="dialPhone(scope.row)" type="text" size="small">拨号</el-button>
</template>
<!-- <template slot-scope="scope">
<el-select
v-model="labelStatus"
size="small"
placeholder="请选择"
style="margin-left: 0px;"
@click.native="dealOperationClick(scope.row)"
@change="dealOperationChanged">
<el-option
v-for="item in operationList"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
</template>-->
</el-table-column>
</el-table>
<!-- 分页 -->
......@@ -40,26 +111,27 @@
:current-page="pageNo"
:page-sizes="[15, 30, 50, 100]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<div class="no-table-data" v-else>
暂无数据
</div>
<div class="no-table-data" v-else>暂无数据</div>
</template>
<!-- 验证弹窗 -->
<el-dialog
title=""
title
:close-on-click-modal="false"
class="check-modal-box"
:visible.sync="centerDialogVisible"
width="300px"
center>
<p style="word-break: break-all">该数据的审批单号为 {{dingdingNum}},短信将发送至 {{mobilePhone}} 的手机上,如果手机已停用,请联系管理员。</p>
center
>
<p
style="word-break: break-all"
>该数据的审批单号为 {{dingdingNum}},短信将发送至 {{mobilePhone}} 的手机上,如果手机已停用,请联系管理员。</p>
<div class="captcha-wrap">
<el-input v-model="captchaCode" size="small" placeholder="请输入图形验证码"></el-input>
<img :src="captchaImg" alt="" @click="handleImgClick">
<img :src="captchaImg" alt @click="handleImgClick" />
</div>
<div class="sms-wrap">
<el-input v-model="smsCode" size="small" placeholder="请输入短信验证码"></el-input>
......@@ -71,7 +143,7 @@
</span>
</el-dialog>
<!-- 添加筛选条件 弹窗 -->
<!-- 添加筛选条件弹窗 -->
<el-dialog
:show-close="false"
@close="showAddConditionModal(false)"
......@@ -80,9 +152,13 @@
class="condition-dialog-wrap"
:visible="addConditioDialogVisible"
width="300px"
center>
center
>
<el-form ref="form" :model="conditionForm" label-width="80px">
<template v-if="tableDataList && tableDataList.columnList" v-for="item in tableDataList.columnList">
<template
v-if="tableDataList && tableDataList.columnList"
v-for="item in tableDataList.columnList"
>
<el-form-item :label="item.value" style="width:400px;">
<el-input v-model="conditionForm[item.key]" size="small" style="width: 150px;"></el-input>
</el-form-item>
......@@ -94,6 +170,76 @@
</span>
</el-dialog>
<!-- 标记处理弹窗 -->
<el-dialog title="标记状态" :visible.sync="tagVisible" width="300px" center>
<el-select
v-model="tagStatus"
size="small"
placeholder="请选择"
clearable
style="margin-left: 20px"
>
<el-option
v-for="item in dataProjectStates"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dealTagClick">确 定</el-button>
<el-button @click="tagVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 添加标签筛选条件弹窗 -->
<el-dialog title="标签筛选条件" :visible.sync="labelVisible" width="300px" center>
<div style="display: flex;margin-top:10px;" v-if="dataProjectLabels" v-for="(item,i) in dataProjectLabels">
<div class="same-line-class" style="margin-right:10px;margin-top:10px;">{{item.labelValue}}</div>
<div class="input-comp">
<el-input v-model="dataProjectContents[i]" size="small" />
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleLabelClick">确 定</el-button>
<el-button @click="labelVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 添加设置标签弹窗 -->
<el-dialog title="设置标签" :visible.sync="setLabelVisible" width="300px" center>
<div style="display: flex;margin-top:10px;" v-if="dataProjectLabels" v-for="(item, i) in dataProjectLabels" align="center">
<div class="same-line-class" style="margin-right:10px;margin-top:10px;">{{item.labelValue}}</div>
<div class="input-comp">
<el-input v-model="setLabelList[i]" size="small" />
</div>
</div>
<el-table
v-if="historyLabelList && historyLabelList.menus && historyLabelList.menus.length > 0"
ref="multipleTable"
:data="historyLabelList.datas"
:row-style="getRowClass"
:header-row-style="getRowClass"
:header-cell-style="getRowClass"
border
tooltip-effect="dark"
style="width: 100%;margin-top: 20px"
>
<template
v-if="historyLabelList && historyLabelList.menus"
v-for="item in historyLabelList.menus"
>
<el-table-column :prop="item.key" :label="item.value" :value="item.value" align="center"></el-table-column>
</template>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dealSetLabelClick">确 定</el-button>
<el-button @click="setLabelVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 备注 弹窗 -->
<el-dialog
title="备注"
......@@ -114,12 +260,17 @@
</ul>
</el-dialog>
<!-- 拨号弹窗 -->
<el-dialog title="拨号" :visible.sync="dialVisible" width="300px" center>
<a :href="'tel:' + dialPhoneNum">拨打电话给: {{dialPhoneNum}}</a>
<span slot="footer" class="dialog-footer">
<!-- <el-button type="primary" @click="gotoDialPhone">确 定</el-button> -->
<el-button @click="dialVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 导出弹窗 -->
<el-dialog
title="导出"
:visible.sync="exportModalVisible"
width="300px"
center>
<el-dialog title="导出" :visible.sync="exportModalVisible" width="300px" center>
<p>您当前数据总导出次数为:{{checkExportData.dataExportTotal}}次</p>
<p>剩余导出次数为:{{checkExportData.dataExportCount}}次</p>
<span slot="footer" class="dialog-footer">
......@@ -128,572 +279,836 @@
</span>
</el-dialog>
<!-- 浏览器检测弹窗 -->
<el-dialog title="当前不是chome浏览器,去下载?" :visible.sync="browserVisible" width="300px">
<span slot="footer" class="dialog-footer">
<el-button @click="down">确定</el-button>
<el-button @click="browserVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 提醒去电脑弹窗 -->
<el-dialog
title="提示"
:visible.sync="phoneModalVisible"
width="300px"
center>
<el-dialog title="提示" :visible.sync="phoneModalVisible" width="300px" center>
<p>请用电脑浏览器进行导出操作</p>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="phoneModalVisible = false">确 定</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
let vm = null;
import { openLoading, closeLoading } from "../../common/utils";
export default {
computed: {
getSMSClass() {
if( vm.countDownNum == 60 ){
return 'button';
}else{
return 'button gray';
}
let vm = null;
import { openLoading, closeLoading } from "../../common/utils";
export default {
computed: {
getSMSClass() {
if (vm.countDownNum == 60) {
return "button";
} else {
return "button gray";
}
},
created() {
vm = this;
// url的?后面有参数,则可调接口获取手机号及审批单号;
let params = window.location.href.split('?');
if(params && params.length > 1){
vm.afterParam = params[1];
// console.log('afterParam: ', vm.afterParam)
vm.getPhoneNum();
}else{
alert('访问的网页地址无效!')
},
created() {
vm = this;
// url的?后面有参数,则可调接口获取手机号及审批单号;
let params = window.location.href.split("?");
if (params && params.length > 1) {
vm.afterParam = params[1];
// console.log('afterParam: ', vm.afterParam)
vm.getPhoneNum();
vm.getLabelStatus();
} else {
alert("访问的网页地址无效!");
}
// 获取图片验证码
vm.getCaptcha();
},
mounted() {
vm.handleForbid(); // 禁止默认事件
},
data() {
return {
waterMark: "", // 水印图片地址
searchTableVisible: true, // 弹窗下面的 搜索按钮及表格等 是否显示
remarkDialogVisible: false, // 备注弹窗
newRemark: "",
remarkHistory: [], // 历史备注列表
SMSTips: "获取短信验证码",
countDownNum: 60, // 倒计时
timer: null, // 倒计时定时器
afterParam: "",
dingdingNum: "",
mobilePhone: "",
captchaImg: "", // 图片验证码 url
captchaToken: "", // 图片验证码 token
addConditioDialogVisible: false, // 添加筛选条件
conditionForm: {},
tableDataList: {},
centerDialogVisible: true, // 验证弹窗
tableData: [],
captchaCode: "", // 图形验证码
smsCode: "", // 短信验证码
pageNo: 1,
pageSize: 15,
operationList: [
{ id: 0, value: "备注" },
{ id: 1, value: "标记" },
{ id: 2, value: "标签" },
{ id: 3, value: "拨号" },
],
dataProjectStates: [],
dataProjectLabels: [],
dataProjectContents: [],
labelStatus: "",
remark: "",
tagVisible: false, //标记处理弹窗
tagStatus: "",
labelVisible: false, //添加标签筛选弹窗
setLabelVisible: false, //添加设置标签弹窗
setLabelList: [],
uploadLabelList: [],
historyLabelList: {},
dialVisible: false, //拨号弹窗
dialPhoneNum: "",
showExportBtn: false, // 是否显示 导出按钮
exportModalVisible: false, // 导出弹窗
checkExportData: {
dataExportTotal: 0, // 总的
dataExportCount: 0, // 剩余的
},
phoneModalVisible: false,
browserVisible: false,
};
},
methods: {
handleForbid() {
document.oncontextmenu = function () {
return false;
};
document.oncopy = function () {
return false;
};
document.onpaste = function () {
return false;
};
document.onselectstart = function () {
return false;
};
},
handleRemarkClose() {
vm.newRemark = "";
vm.remarkHistory = [];
},
getWaterMark() {
let data = {
parame: vm.afterParam,
};
let callback = (res) => {
if (res.code == "000000") {
// debugger;
if (res.data) {
vm.waterMark = res.data;
vm.setWaterMark(); // 设置水印背景
} else {
vm.$message.error("网络出现点问题");
}
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest("post", `/sensitive/image`, data, callback);
},
setWaterMark() {
let bg = document.getElementsByClassName("data-view-message-wrap")[0];
// bg.style.background = `url(${vm.waterMark}) repeat`;
bg.style.background = "url('" + vm.waterMark + "') repeat";
bg.style.backgroundSize = "300px auto";
},
getRowClass({ row, column, rowIndex, columnIndex }) {
return "background: rgba(255,255,255,0.2)";
},
confirmSendRemark() {
// 添加备注信息
if (vm.newRemark.trim() == "") {
vm.$message.error("请先输入备注信息!");
return;
}
// 获取图片验证码
vm.getCaptcha();
let data = {
dataContentId: vm.currentRow.contentId,
dataUserContentId: vm.currentRow.dataUserContentId,
remark: vm.newRemark.trim(),
};
let callback = (res) => {
if (res.code == "000000") {
vm.remarkDialogVisible = false;
vm.handleSearch();
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest("post", `/sensitive/dataRemark`, data, callback);
},
handleSizeChange(val) {
console.log("size change .......");
vm.pageSize = val;
vm.handleSearch();
},
handleCurrentChange(val) {
console.log("currentPage change .......");
vm.pageNo = val;
vm.handleSearch();
},
mounted() {
vm.handleForbid(); // 禁止默认事件
},
data() {
return {
waterMark: '', // 水印图片地址
searchTableVisible: false, // 弹窗下面的 搜索按钮及表格等 是否显示
remarkDialogVisible: false, // 备注弹窗
newRemark: "",
remarkHistory: [], // 历史备注列表
SMSTips: '获取短信验证码',
countDownNum: 60, // 倒计时
timer: null, // 倒计时定时器
afterParam: '',
dingdingNum: '',
mobilePhone: '',
captchaImg: '', // 图片验证码 url
captchaToken: '', // 图片验证码 token
addConditioDialogVisible: false, // 添加筛选条件
conditionForm : {},
tableDataList: {},
centerDialogVisible: true, // 验证弹窗
tableData: [],
captchaCode: '', // 图形验证码
smsCode: '', // 短信验证码
pageNo: 1,
pageSize: 15,
showExportBtn: false,// 是否显示 导出按钮
exportModalVisible: false, // 导出弹窗
checkExportData: {
dataExportTotal: 0, // 总的
dataExportCount: 0, // 剩余的
},
phoneModalVisible: false,
}
// 获取编号和手机号
getPhoneNum() {
// 请求查询接口
let data = {
parame: vm.afterParam,
};
let callback = (res) => {
if (res.code == "000000") {
vm.dingdingNum = res.data.dingdingNum;
vm.mobilePhone = res.data.mobilePhone;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest(
"post",
`/sensitive/mobileCheck/num/mobile`,
data,
callback
);
},
methods: {
handleForbid() {
document.oncontextmenu = function(){
return false;
// 获取图形验证码
getCaptcha() {
let callback = (res) => {
if (res.code === "000000") {
vm.captchaImg = `data:image/png;base64,${res.data.content}`;
vm.captchaToken = res.data.token;
} else {
vm.$message.error(res.message);
}
document.oncopy = function(){
return false;
};
vm.sendRequest("get", `/account/account/captcha`, {}, callback);
},
// 图片验证码点击
handleImgClick() {
vm.getCaptcha();
},
// 获取短信验证码
getSMSCode() {
if (vm.captchaCode == "") {
vm.$message.error("请输入图形验证码");
return;
}
// 倒计时过程中不可点
if (vm.countDownNum != 60) {
// console.log('现在倒计时过程中...不可点击')
return;
}
// 获取短信验证码
let data = {
parame: vm.afterParam,
pictureCode: vm.captchaCode,
captchaToken: vm.captchaToken,
};
let callback = (res) => {
if (res.code == "000000") {
vm.timeCount();
} else {
vm.$message.error(res.message);
vm.getCaptcha();
}
document.onpaste = function(){
return false;
};
vm.sendRequest(
"post",
`/sensitive/mobileCheck/check/picturecode`,
data,
callback
);
},
timeCount() {
clearInterval(vm.timer);
vm.countDownNum -= 1;
vm.SMSTips = `${vm.countDownNum}秒后重试`;
vm.timer = setInterval(function () {
vm.countDownNum -= 1;
vm.SMSTips = `${vm.countDownNum}秒后重试`;
if (vm.countDownNum == 0) {
vm.SMSTips = "获取短信验证码";
clearInterval(vm.timer);
vm.countDownNum = 60;
}
document.onselectstart = function(){
return false;
}, 1000);
},
handleCheckConfirm() {
if (vm.captchaCode == "") {
vm.$message.error("请输入图形验证码");
return;
}
if (vm.smsCode == "") {
vm.$message.error("请输入短信验证码");
return;
}
// 调用 /mobileCheck/check/mobilecode 接口
// 校验 短信验证码
let data = {
parame: vm.afterParam,
mobileCode: vm.smsCode,
};
let callback = (res) => {
if (res.code == "000000") {
vm.searchTableVisible = true; // 短信验证码校验成功,显示背后的内容
vm.getTableList();
} else {
vm.$message.error(res.message);
vm.getCaptcha();
vm.captchaCode = "";
}
},
handleRemarkClose() {
vm.newRemark = '';
vm.remarkHistory = [];
},
getWaterMark() {
let data = {
parame: vm.afterParam
};
let callback = (res) => {
if(res.code == '000000'){
// debugger;
if(res.data){
vm.waterMark = res.data;
vm.setWaterMark(); // 设置水印背景
}else{
vm.$message.error('网络出现点问题');
}
}else{
vm.$message.error(res.message);
};
vm.sendRequest(
"post",
`/sensitive/mobileCheck/check/mobilecode`,
data,
callback
);
},
getTableList(isManualClick) {
// debugger;
let data = {
columnMap: {},
labelMap: {},
parame: vm.afterParam,
pageNo: vm.pageNo,
pageSize: vm.pageSize,
projectStateId: vm.labelStatus,
remark: vm.remark,
};
if (isManualClick) {
// 如果添加了筛选条件,则将其合并到 查询接口的传参中
let stringData = JSON.stringify(vm.conditionForm);
if (stringData != "{}") {
let condition = JSON.parse(stringData);
for (let key in condition) {
data.columnMap[key] = condition[key];
}
}
vm.sendRequest( 'post', `/sensitive/image`, data, callback );
},
setWaterMark() {
let bg = document.getElementsByClassName('data-view-message-wrap')[0];
// bg.style.background = `url(${vm.waterMark}) repeat`;
bg.style.background = "url('" + vm.waterMark + "') repeat";
bg.style.backgroundSize = '300px auto';
},
getRowClass({ row, column, rowIndex, columnIndex }) {
return "background: rgba(255,255,255,0.2)"
},
confirmSendRemark() { // 添加备注信息
if( vm.newRemark.trim() == '' ){
vm.$message.error('请先输入备注信息!');
return;
}
let data = {
dataUserContentId: vm.currentRow.dataUserContentId,
remark: vm.newRemark.trim(),
};
let callback = (res) => {
if(res.code == '000000'){
vm.remarkDialogVisible = false;
}else{
vm.$message.error(res.message);
if (vm.dataProjectLabels.length > 0) {
for (let i = 0; i < vm.dataProjectLabels.length; i++) {
console.log(
"getTableList() : key = " +
vm.dataProjectLabels[i].labelCode +
", value = " +
vm.dataProjectContents[i]
);
data.labelMap[vm.dataProjectLabels[i].labelCode] =
vm.dataProjectContents[i];
}
}
vm.sendRequest( 'post', `/sensitive/dataRemark`, data, callback );
},
}
// handleMaskTouch() {
// console.log('>>>> mask .....')
// let grayMask = document.getElementsByClassName('v-modal')[0];
// grayMask.ontouchmove = function(event){
// console.log(123)
// let ev = event || window.event;
// ev.preventDefault();
// ev.stopPropagation();
// }
// },
handleSizeChange(val) {
console.log('size change .......')
vm.pageSize = val;
vm.hadnleSearch();
},
handleCurrentChange(val) {
console.log('currentPage change .......')
vm.pageNo = val;
vm.hadnleSearch();
},
let callback = (res) => {
if (res.code == "000000") {
vm.centerDialogVisible = false;
vm.captchaCode = "";
vm.smsCode = "";
vm.tableDataList = res.data;
// 获取编号和手机号
getPhoneNum() {
// 请求查询接口
let data = {
parame: vm.afterParam,
};
let callback = (res) => {
if(res.code == '000000'){
vm.dingdingNum = res.data.dingdingNum;
vm.mobilePhone = res.data.mobilePhone;
}else{
vm.$message.error(res.message);
if (
typeof res.data.dataExportCount != "undefined" &&
res.data.dataExportCount > 0
) {
vm.showExportBtn = true;
}
vm.$nextTick(() => {
if (vm.afterParam) {
vm.getWaterMark(); // 获取水印
}
});
} else {
vm.$message.error(res.message);
}
vm.sendRequest( 'post', `/sensitive/mobileCheck/num/mobile`, data, callback );
},
};
vm.sendRequest("post", `/sensitive/dataSearch/searchWeb`, data, callback);
},
showAddConditionModal(status) {
vm.addConditioDialogVisible = status ? true : false;
},
handleClearCondition() {
vm.conditionForm = {};
vm.addConditioDialogVisible = false;
},
handleSearch() {
vm.getTableList(true);
},
handleSearchByClick() {
vm.pageNo = 1;
vm.handleSearch();
},
// 获取图形验证码
getCaptcha() {
let callback = (res) => {
if(res.code==='000000'){
vm.captchaImg = `data:image/png;base64,${res.data.content}`
vm.captchaToken = res.data.token
}else{
vm.$message.error(res.message);
}
};
vm.sendRequest( 'get', `/account/account/captcha`, {}, callback );
},
// 图片验证码点击
handleImgClick() {
vm.getCaptcha();
},
// 获取短信验证码
getSMSCode() {
if( vm.captchaCode == '' ){
vm.$message.error('请输入图形验证码');
return;
}
// 倒计时过程中不可点
if( vm.countDownNum != 60){
// console.log('现在倒计时过程中...不可点击')
return;
//下拉操作列表点击
dealOperationClick(row) {
// console.log("dealOperationClick() : row.remark = " + row.remark);
vm.currentRow = row;
},
dealOperationChanged(item) {
console.log("dealOperationChanged() : item = " + item.value);
},
showRemarkModal(row) {
vm.remarkDialogVisible = true;
vm.currentRow = row;
// 获取备注信息
let callback = (res) => {
if (res.code == "000000") {
vm.remarkHistory = res.data.remarks;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest(
"get",
`/sensitive/dataRemark?dataContentId=${row.contentId}`,
{},
callback
);
},
// 标记处理点击
handleTagClick(row) {
vm.currentRow = row;
// 获取短信验证码
let data = {
parame: vm.afterParam,
pictureCode: vm.captchaCode,
captchaToken: vm.captchaToken,
};
let callback = (res) => {
if(res.code == '000000'){
vm.timeCount();
}else{
vm.$message.error(res.message);
vm.getCaptcha();
}
this.tagVisible = true;
},
dealTagClick() {
let callback = (res) => {
if (res.code == "000000") {
this.$message({
type: "success",
message: "标记状态设置成功",
});
vm.handleSearch();
} else {
vm.$message.error(res.message);
}
vm.sendRequest( 'post', `/sensitive/mobileCheck/check/picturecode`, data, callback );
},
vm.tagVisible = false;
};
vm.sendRequest(
"get",
`/sensitive/dataSearch/changeStatus?dataUserContentId=${vm.currentRow.dataUserContentId}
&dataContentId=${vm.currentRow.contentId}&projectStateId=${vm.tagStatus}`,
{},
callback
);
},
timeCount() {
clearInterval(vm.timer);
vm.countDownNum -= 1;
vm.SMSTips = `${vm.countDownNum}秒后重试`;
vm.timer = setInterval(function(){
vm.countDownNum -= 1;
vm.SMSTips = `${vm.countDownNum}秒后重试`;
if(vm.countDownNum == 0){
vm.SMSTips = '获取短信验证码';
clearInterval(vm.timer);
vm.countDownNum = 60;
}
}, 1000)
},
//每一项的标签点击
handleSetLabelClick(row) {
vm.currentRow = row;
vm.setLabelVisible = true;
handleCheckConfirm() {
if( vm.captchaCode == '' ){
vm.$message.error('请输入图形验证码');
return;
// 获取历史标签信息
let callback = (res) => {
if (res.code == "000000") {
vm.historyLabelList = res.data;
// console.log(
// "handleSetLabelClick() : vm.historyLabelList = " +
// vm.historyLabelList.menus.length
// );
if (vm.dataProjectLabels == null || vm.dataProjectLabels == "") {
vm.$message.info("未设置过标签");
}
} else {
vm.$message.error(res.message);
}
if( vm.smsCode == '' ){
vm.$message.error('请输入短信验证码');
return;
};
vm.sendRequest(
"get",
`/sensitive/dataSearch/labels?dataContentId=${row.contentId}`,
{},
callback
);
},
dealSetLabelClick() {
let tmpList = [];
if (vm.dataProjectLabels && vm.dataProjectLabels.length > 0) {
for (let i = 0; i < vm.dataProjectLabels.length; i++) {
let obj = {
labelCode: vm.dataProjectLabels[i].labelCode,
labelValue: vm.setLabelList[i],
};
tmpList.push(obj);
}
} else {
vm.setLabelVisible = false;
return;
}
// 调用 /mobileCheck/check/mobilecode 接口
// 校验 短信验证码
let data = {
parame: vm.afterParam,
mobileCode: vm.smsCode,
};
let callback = (res) => {
if(res.code == '000000'){
vm.searchTableVisible = true; // 短信验证码校验成功,显示背后的内容
vm.getTableList();
}else{
vm.$message.error(res.message);
vm.getCaptcha();
vm.captchaCode = '';
}
};
vm.sendRequest( 'post', `/sensitive/mobileCheck/check/mobilecode`, data, callback );
},
getTableList(isManualClick) {
// debugger;
let data = {
columnMap: {},
parame: vm.afterParam,
pageNo: vm.pageNo,
pageSize: vm.pageSize,
};
if( isManualClick ){
// 如果添加了筛选条件,则将其合并到 查询接口的传参中
let stringData = JSON.stringify(vm.conditionForm);
if (stringData != "{}") {
let condition = JSON.parse(stringData);
for (let key in condition) {
data.columnMap[key] = condition[key];
};
}
let data = {
contentId: vm.currentRow.contentId,
dataUserContentId: vm.currentRow.dataUserContentId,
list: tmpList,
projectMainId: 0,
};
let callback = (res) => {
if (res.code == "000000") {
// vm.peopleList = res.data;
this.$message({
type: "success",
message: "设置标签成功",
});
} else {
vm.$message.error(res.message);
}
vm.setLabelVisible = false;
};
vm.sendRequest("post", `/sensitive/dataSearch/labels`, data, callback);
},
let callback = (res) => {
if(res.code == '000000'){
vm.centerDialogVisible = false;
vm.captchaCode = '';
vm.smsCode = '';
vm.tableDataList = res.data;
//拨号
dialPhone(row) {
console.log("tableDataList.columnList() : " + row.column1);
vm.dialPhoneNum = row.column1;
vm.dialVisible = true;
},
if(typeof res.data.dataExportCount != 'undefined' && res.data.dataExportCount > 0) {
vm.showExportBtn = true;
}
handleAddConditionConfirm() {
vm.addConditioDialogVisible = false;
vm.pageNo = 1;
},
showExportModal() {
if (vm.checkChrome()) {
console.log("导出检测,是chome");
vm.browserVisible = false;
} else {
console.log("导出检测,是其它浏览器");
vm.browserVisible = true;
return;
}
vm.$nextTick(() => {
if(vm.afterParam){
vm.getWaterMark(); // 获取水印
}
})
}else{
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/searchWeb`, data, callback );
},
showAddConditionModal(status){
vm.addConditioDialogVisible = status ? true : false;
},
handleClearCondition() {
vm.conditionForm = {};
vm.addConditioDialogVisible = false;
},
hadnleSearch() {
vm.getTableList(true);
},
showRemarkModal(row) {
vm.remarkDialogVisible = true;
vm.currentRow = row;
// 获取备注信息
let callback = (res) => {
if(res.code == "000000") {
vm.remarkHistory = res.data.remarks;
}else {
vm.$message.error(res.message);
}
};
vm.sendRequest( 'get', `/sensitive/dataRemark?dataUserContentId=${row.dataUserContentId}`, {}, callback );
},
// 标记处理点击
handleTagClick(row) {
vm.currentRow = row;
let callback = (res) => {
if(res.code == "000000") {
vm.hadnleSearch();
}else {
vm.$message.error(res.message);
}
let phoneStatus = vm.isCellphone();
if (phoneStatus) {
vm.phoneModalVisible = true;
vm.exportModalVisible = false;
return;
}
// 待接口提供后 请求接口获取excel, 再出发下载
vm.checkExport();
},
// 导出前的check
checkExport() {
let data = {
parame: vm.afterParam,
};
let callback = (res) => {
if (res.code == "000000") {
console.log("导出前校验》》》》 ", res);
vm.checkExportData.dataExportTotal = res.data.dataExportTotal;
vm.checkExportData.dataExportCount = res.data.dataExportCount;
vm.exportModalVisible = true;
} else {
vm.$message.error(res.message);
}
vm.sendRequest( 'get', `/sensitive/dataSearch/changeStatus?dataUserContentId=${row.dataUserContentId}`, {}, callback );
},
handleAddConditionConfirm(){
vm.addConditioDialogVisible = false;
vm.pageNo = 1;
},
showExportModal(){
console.log('导出。。。。。')
};
vm.sendRequest(
"post",
`/sensitive/dataSearch/check/exportWeb`,
data,
callback
);
},
// 确定导出
handleExport() {
let data = {
parame: vm.afterParam,
};
let phoneStatus = vm.isCellphone();
if( phoneStatus ) {
vm.phoneModalVisible = true;
let callback = (res) => {
if (res.code == "000000") {
console.log("正式导出》》》》 ", res);
// 执行下载excel
vm.downloadFile(res.data.path, res.data.fileName);
vm.exportModalVisible = false;
return;
};
// 待接口提供后 请求接口获取excel, 再出发下载
vm.checkExport();
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest("post", `/sensitive/dataSearch/exportWeb`, data, callback);
},
isCellphone() {
let ua = window.navigator.userAgent.toLowerCase();
let ios = /(iphone|ipad|ipod|ios)/i.test(ua);
let android = /(android)/i.test(ua);
return ios || android;
},
},
// 导出前的check
checkExport() {
let data = {
parame: vm.afterParam,
};
let callback = (res) => {
if(res.code == '000000'){
console.log('导出前校验》》》》 ', res)
vm.checkExportData.dataExportTotal = res.data.dataExportTotal;
vm.checkExportData.dataExportCount = res.data.dataExportCount;
vm.exportModalVisible = true;
}else{
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/check/exportWeb`, data, callback );
},
// 确定导出
handleExport() {
let data = {
parame: vm.afterParam,
};
let callback = (res) => {
if(res.code == '000000'){
console.log('正式导出》》》》 ', res)
// 执行下载excel
vm.downloadFile(res.data.path, res.data.fileName)
vm.exportModalVisible = false;
}else{
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/exportWeb`, data, callback );
},
isCellphone() {
let ua = window.navigator.userAgent.toLowerCase();
let ios = /(iphone|ipad|ipod|ios)/i.test(ua);
let android = /(android)/i.test(ua);
return ios || android;
},
downloadFile(base64, fileName) {
let a = document.createElement("a");
let uploadHref = "data:application/xls;base64," + base64;
a.setAttribute("href", uploadHref);
let exportFileName = fileName;
a.setAttribute("download", exportFileName);
a.click();
},
downloadFile(base64, fileName) {
let a = document.createElement('a');
let uploadHref = 'data:application/xls;base64,' + base64;
a.setAttribute('href', uploadHref);
let exportFileName = fileName;
a.setAttribute('download', exportFileName);
a.click();
},
checkChrome() {
// return (navigator.appVersion.indexOf('Chrome') || navigator.appVersion.indexOf('chrome')) != -1;
return this.getBroswer().broswer == "Chrome";
},
getBroswer() {
let sys = {};
let ua = navigator.userAgent.toLowerCase();
let s;
(s = ua.match(/edge\/([\d.]+)/))
? (sys.edge = s[1])
: (s = ua.match(/rv:([\d.]+)\) like gecko/))
? (sys.ie = s[1])
: (s = ua.match(/msie ([\d.]+)/))
? (sys.ie = s[1])
: (s = ua.match(/firefox\/([\d.]+)/))
? (sys.firefox = s[1])
: (s = ua.match(/chrome\/([\d.]+)/))
? (sys.chrome = s[1])
: (s = ua.match(/opera.([\d.]+)/))
? (sys.opera = s[1])
: (s = ua.match(/version\/([\d.]+).*safari/))
? (sys.safari = s[1])
: 0;
sendRequest( type, url, params, callback ){
openLoading(vm);
url = localStorage.getItem("lectureUrl") + url;
vm.$axios[type](url, params )
.then((res) => {
closeLoading(vm);
res = res.data;
callback(res);
}).catch((error) => {
vm.$message.error('网络出现点问题')
if (sys.edge) return { broswer: "Edge", version: sys.edge };
if (sys.ie) return { broswer: "IE", version: sys.ie };
if (sys.firefox) return { broswer: "Firefox", version: sys.firefox };
if (sys.chrome) return { broswer: "Chrome", version: sys.chrome };
if (sys.opera) return { broswer: "Opera", version: sys.opera };
if (sys.safari) return { broswer: "Safari", version: sys.safari };
return { broswer: "", version: "0" };
},
down() {
window.location.href = "http://www.google.cn/chrome/";
},
sendRequest(type, url, params, callback) {
openLoading(vm);
url = localStorage.getItem("lectureUrl") + url;
vm.$axios[type](url, params)
.then((res) => {
closeLoading(vm);
res = res.data;
callback(res);
})
},
.catch((error) => {
vm.$message.error("网络出现点问题");
});
},
getLabelStatus() {
let callback = (res) => {
if (res.code == "000000") {
vm.dataProjectStates = res.data.dataProjectStates;
vm.dataProjectLabels = res.data.dataProjectLabels;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest(
"get",
`/sensitive/visit/statusWeb?patame=${vm.afterParam}`,
{},
callback
);
},
}
handleLabelClick() {
this.labelVisible = false;
},
},
};
</script>
<style lang="less">
.header{ height: 0 !important; overflow: hidden; left:0 !important;}
.sidebar{ width: 0; overflow: hidden; }
.content{ left: 0 !important; top: 0 !important; }
.el-message{
min-width: 310px !important;
width: 310px !important;
max-width: 310px !important;
}
.data-view-message-wrap {
.header {
height: 0 !important;
overflow: hidden;
left: 0 !important;
}
.sidebar {
width: 0;
overflow: hidden;
}
.content {
left: 0 !important;
top: 0 !important;
}
.el-message {
min-width: 310px !important;
width: 310px !important;
max-width: 310px !important;
}
.data-view-message-wrap {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
user-select: none;
.no-table-data {
width: 100%;
height: 100%;
display: flex; flex-direction: column; user-select: none;
.no-table-data{
width: 100%;
height: 400px;
line-height: 400px;
text-align: center;
color: #606266;
font-size: 14px;
}
.button-wrap{
height: 400px;
line-height: 400px;
text-align: center;
color: #606266;
font-size: 14px;
}
.class-top-row {
overflow-x: scroll;
.button-wrap {
margin: 20px 0;
.each-button{
float: right;
margin: 0 15px 0 5px;
width: 600px;
.each-button {
// float: right;
margin: 0px 0px 0 20px;
}
}
.el-table{
-webkit-overflow-scrolling:touch;
}
.el-table {
-webkit-overflow-scrolling: touch;
}
.check-modal-box {
.el-dialog__header {
display: none;
}
.el-dialog__body {
padding: 15px 15px 30px !important;
}
.check-modal-box{
.el-dialog__header{
display: none;
.captcha-wrap {
margin-top: 24px;
overflow: hidden;
.el-input {
width: 150px;
float: left;
}
.el-dialog__body{
padding: 15px 15px 30px !important;
img {
float: left;
cursor: pointer;
display: block;
border: none;
width: 100px;
height: 32px;
margin-left: 10px;
background: #fff;
}
.captcha-wrap{
margin-top: 24px;
overflow: hidden;
.el-input{
width: 150px;
float: left;
}
img{
float: left; cursor: pointer;
display: block; border: none;
width: 100px; height: 32px; margin-left: 10px;
background: #fff;
}
}
.sms-wrap {
margin-top: 14px;
overflow: hidden;
.el-input {
width: 150px;
float: left;
}
.sms-wrap{
margin-top: 14px; overflow: hidden;
.el-input{
width: 150px;
float: left;
}
.button{
float: left; cursor: default;
width: 100px; height: 32px; margin-left: 10px;
font-size: 13px;
text-align: center; line-height: 32px;
color: #409EFF;
&.gray{
color: #606266;
}
.button {
float: left;
cursor: default;
width: 100px;
height: 32px;
margin-left: 10px;
font-size: 13px;
text-align: center;
line-height: 32px;
color: #409eff;
&.gray {
color: #606266;
}
}
}
ul, li {
list-style: none;
}
.remark-modal{
.el-dialog__body {
overflow: hidden;
padding: 0 10px 30px !important;
.remark-confirm-btn {
float: right;
margin-top: 10px;
}
.history-list {
margin-top: 60px;
li {
margin-bottom: 5px;
line-height: 20px;
.text {
word-break: break-all;
text-indent: 12px;
line-height: 22px;
}
}
ul,
li {
list-style: none;
}
.remark-modal {
.el-dialog__body {
overflow: hidden;
padding: 0 10px 30px !important;
.remark-confirm-btn {
float: right;
margin-top: 10px;
}
.history-list {
margin-top: 60px;
li {
margin-bottom: 5px;
line-height: 20px;
.text {
word-break: break-all;
text-indent: 12px;
line-height: 22px;
}
}
}
}
.pagination-style{
margin: 20px 0;
float: right;
width: 100%;
text-align: right;
overflow: hidden;
overflow-x: scroll;
-webkit-overflow-scrolling:touch;
}
.pagination-style {
margin: 20px 0;
float: right;
width: 100%;
text-align: right;
overflow: hidden;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
.el-pagination__total{
margin-left: 25px;
}
.el-pagination__jump{
padding-right: 25px;
}
.el-pagination__total {
margin-left: 25px;
}
.tebale_card {
background: rgba(255,255,255,0.2);
.el-pagination__jump {
padding-right: 25px;
}
.el-table, .el-table__expanded-cell {
background: rgba(255,255,255,0.2);
}
.tebale_card {
background: rgba(255, 255, 255, 0.2);
}
.el-table,
.el-table__expanded-cell {
background: rgba(255, 255, 255, 0.2);
}
.same-line-class {
// margin-top: 10px;
display: inline-block;
.input-comp {
width: 100px;
}
}
}
</style>
......@@ -24,29 +24,41 @@
@change="handleApplyDateChange"
@clear="handleApplyDateClear"
>
<el-option
v-for="item in applyDateList"
:key="item"
:label="item"
:value="item"
></el-option>
<el-option v-for="item in applyDateList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="sheet名" prop="sheet">
<el-select v-model="ruleForm.sheet" size="small" placeholder="请选择" clearable>
<el-option v-for="item in sheetsList" :key="item" :label="item" :value="item"></el-option>
</el-select>
</el-form-item>
<el-form-item label="标记状态">
<el-select v-model="ruleForm.labelStatus" size="small" placeholder="请选择" clearable>
<el-option
v-for="item in sheetsList"
:key="item"
:label="item"
:value="item"
v-for="item in dataProjectStates"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item style="margin-left: 100px;">
<el-button type="primary" @click="showAddConditionModal">添加筛选条件</el-button>
<el-form-item label="备注" prop="remark">
<el-input
v-model="ruleForm.remark"
size="small"
style="width:220px"
class="input"
placeholder
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" style="margin-left: 50px;" @click="showAddConditionModal">添加筛选条件</el-button>
<el-button type="primary" @click="labelVisible=true">添加标签筛选</el-button>
<el-button type="primary" @click="handleSend" v-if="showSendBtn">分发</el-button>
<el-button type="primary" @click="showExportModal" v-if="showExportBtn">导出</el-button>
<el-button type="primary" @click="submitForm('ruleForm')">查询</el-button>
<el-button type="primary" @click="checkExport" v-if="showExportBtn">导出</el-button>
<el-button type="primary" @click="exportNormalModalVisible=true" v-if="showNormalExportBtn">常规导出</el-button>
<el-button type="primary" @click="ruleForm.pageNo=1;submitForm('ruleForm')">查询</el-button>
</el-form-item>
</el-form>
<template v-if="isSearchSend">
......@@ -54,7 +66,9 @@
v-if="tableDataList && tableDataList.outModels && tableDataList.outModels.length > 0"
ref="multipleTable"
:data="tableDataList.outModels"
:row-style="getRowClass" :header-row-style="getRowClass" :header-cell-style="getRowClass"
:row-style="getRowClass"
:header-row-style="getRowClass"
:header-cell-style="getRowClass"
border
tooltip-effect="dark"
style="width: 100%"
......@@ -65,20 +79,38 @@
v-if="tableDataList && tableDataList.columnList"
v-for="item in tableDataList.columnList"
>
<el-table-column :prop="item.key" align="center" :label="item.value" show-overflow-tooltip></el-table-column>
<el-table-column
:prop="item.key"
align="center"
:label="item.value"
show-overflow-tooltip
></el-table-column>
</template>
<el-table-column v-if="tableDataList && tableDataList.columnList" prop="userName" align="center" label="数据查看人员" show-overflow-tooltip></el-table-column>
<el-table-column
v-if="tableDataList && tableDataList.columnList"
prop="userName"
align="center"
label="数据查看人员"
show-overflow-tooltip
></el-table-column>
<el-table-column label="备注" prop="remark" align="center"></el-table-column>
<el-table-column label="标记状态" prop="statusValue" align="center"></el-table-column>
<el-table-column fixed="right" align="center" label="操作" width="200">
<template slot-scope="scope">
<el-button @click="handleRemarkClick(scope.row)" type="text" size="small">备注</el-button>
<el-button @click="handleTagClick(scope.row)" type="text" size="small" :disabled="scope.row.status == 1">{{ scope.row.status == 1 ? '已处理' : '标记处理' }}</el-button>
<el-button
@click="handleTagClick(scope.row)"
type="text"
size="small"
:disabled="scope.row.status == 1"
>{{ scope.row.status == 1 ? '已处理' : '标记处理' }}</el-button>
<el-button @click="handleSetLabelClick(scope.row)" type="text" size="small">标签</el-button>
</template>
</el-table-column>
</el-table>
<div class="no-table-data" v-else>
暂无数据
</div>
<div class="no-table-data" v-else>暂无数据</div>
<!-- 分页 -->
<el-pagination
......@@ -90,8 +122,8 @@
:current-page="ruleForm.pageNo"
:page-sizes="[15, 30, 50, 100]"
:page-size="ruleForm.pageSize"
layout="total, sizes, prev, pager, next, jumper">
</el-pagination>
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<!-- 添加筛选条件 弹窗 -->
......@@ -134,13 +166,14 @@
</div>
<div class="people-choose">
<p class="title">人员选择</p>
<el-select v-model="dataUserDiss" multiple collapse-tags placeholder="请选择" class="people-select-comp">
<el-option
v-for="item in peopleList"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
<el-select
v-model="dataUserDiss"
multiple
collapse-tags
placeholder="请选择"
class="people-select-comp"
>
<el-option v-for="item in peopleList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</div>
<span slot="footer" class="dialog-footer">
......@@ -164,24 +197,116 @@
<ul class="history-list">
<li v-for="item in remarkHistory">
<p class="date">{{ item.createdTime }}</p>
<p class="text">{{ item.remark }}</p>
<p class="text">{{ item.name + "-" + item.remark }}</p>
</li>
</ul>
</el-dialog>
<!-- 导出弹窗 -->
<el-dialog
title="导出"
:visible.sync="exportModalVisible"
width="300px"
center>
<el-dialog title="导出" :visible.sync="exportModalVisible" width="300px" center>
<p>您当前数据总导出次数为:{{checkExportData.dataExportTotal}}次</p>
<p>剩余导出次数为:{{checkExportData.dataExportCount}}次</p>
<p style="margin-top: 10px;margin-bottom: 5px">备注:请使用谷歌浏览器导出</p>
<a :href ="'http://www.google.cn/chrome/'" class="href-link">点击下载</a>
<span slot="footer" class="dialog-footer">
<el-button @click="exportModalVisible = false">取 消</el-button>
<el-button type="primary" @click="handleExport">确 定</el-button>
</span>
</el-dialog>
<!-- 常规导出弹窗 -->
<el-dialog title="导出" :visible.sync="exportNormalModalVisible" width="300px" center>
<p>只能导出已修改过标记状态的数据,</p>
<p>其它数据不可导出</p>
<p style="margin-top: 10px;margin-bottom: 5px">备注:请使用谷歌浏览器导出</p>
<a :href ="'http://www.google.cn/chrome/'" class="href-link">点击下载</a>
<span slot="footer" class="dialog-footer">
<el-button @click="exportNormalModalVisible = false">取 消</el-button>
<el-button type="primary" @click="handleNormalExport">确 定</el-button>
</span>
</el-dialog>
<!-- 浏览器检测弹窗 -->
<el-dialog
title="当前不是chome浏览器,去下载?"
:visible.sync="browserVisible"
width="300px"
>
<span slot="footer" class="dialog-footer">
<el-button @click="down">确定</el-button>
<el-button @click="browserVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 标记处理弹窗 -->
<el-dialog title="标记状态" :visible.sync="tagVisible" width="300px" center>
<el-select
v-model="tagStatus"
size="small"
placeholder="请选择"
clearable
style="margin-left: 20px"
>
<el-option
v-for="item in dataProjectStates"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dealTagClick">确 定</el-button>
<el-button @click="tagVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 添加标签筛选条件弹窗 -->
<el-dialog title="标签筛选条件" :visible.sync="labelVisible" width="400px" center>
<div v-if="dataProjectLabels" v-for="(item,i) in dataProjectLabels" align="center">
<div class="same-line-class" style="margin-right:20px;">{{item.labelValue}}</div>
<div class="same-line-class">
<el-input v-model="dataProjectContents[i]" size="small" />
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleLabelClick">确 定</el-button>
<el-button @click="labelVisible = false">取 消</el-button>
</span>
</el-dialog>
<!-- 添加设置标签弹窗 -->
<el-dialog title="设置标签" :visible.sync="setLabelVisible" min-width="500px" center>
<div v-if="dataProjectLabels" v-for="(item, i) in dataProjectLabels" align="center">
<div class="same-line-class" style="margin-right:20px;">{{item.labelValue}}</div>
<div class="same-line-class">
<el-input v-model="setLabelList[i]" size="small" />
</div>
</div>
<el-table
v-if="historyLabelList && historyLabelList.menus && historyLabelList.menus.length > 0"
ref="multipleTable"
:data="historyLabelList.datas"
:row-style="getRowClass"
:header-row-style="getRowClass"
:header-cell-style="getRowClass"
border
tooltip-effect="dark"
style="width: 100%;margin-top: 20px"
>
<template
v-if="historyLabelList && historyLabelList.menus"
v-for="item in historyLabelList.menus"
>
<el-table-column :prop="item.key" :label="item.value" :value="item.value" align="center"></el-table-column>
</template>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="dealSetLabelClick">确 定</el-button>
<el-button @click="setLabelVisible = false">取 消</el-button>
</span>
</el-dialog>
</div>
</template>
......@@ -200,27 +325,35 @@ export default {
}
};
return {
selectedNameList: '',
waterMark: '', // 水印图片地址
selectedNameList: "",
waterMark: "", // 水印图片地址
isSearchSend: false, // 是否有效查询过
showSendBtn: false, // 是否显示 分发按钮
showExportBtn: false,// 是否显示 导出按钮
remarkHistory: [], // 历史备注列表
showSendBtn: false, // 是否显示 分发按钮
showExportBtn: false, // 是否显示 导出按钮
showNormalExportBtn: false, // 是否显示 常规导出按钮
remarkHistory: [], // 历史备注列表
ruleForm: {
columnMap: {},
dingdingNumber: "",
dingdingDate: "",
sheet: "",
labelStatus: "",
labelMap: {},
remark: "",
pageNo: 1,
pageSize: 15,
},
rules: {
dingdingNumber: [
{ required: true, message: "请输入审批单号", trigger: "blur" },
{ validator: checkNumLength, trigger: ["blur", "change"]}
{ validator: checkNumLength, trigger: ["blur", "change"] },
],
dingdingDate: [
{ required: true, message: "请选择数据申请日期", trigger: "change" },
],
sheet: [
{ required: true, message: "请选择sheet名", trigger: "change" },
],
dingdingDate: [{ required: true, message: "请选择数据申请日期", trigger: "change" }],
sheet: [{ required: true, message: "请选择sheet名", trigger: "change" }]
},
tableDataList: {},
......@@ -230,6 +363,9 @@ export default {
applyDateList: [],
sheetsList: [],
dataProjectStates: [],
dataProjectLabels: [],
dataProjectContents: [],
sendDialogVisible: false, //分发弹窗
dataUserDiss: [],
peopleList: [],
......@@ -239,86 +375,119 @@ export default {
exportModalVisible: false, // 导出弹窗
checkExportData: {
dataExportTotal: 0, // 总的
dataExportCount: 0, // 剩余的
}
dataExportTotal: 0, // 总的
dataExportCount: 0, // 剩余的
},
exportNormalModalVisible: false, // 常规导出弹窗
tagVisible: false, //标记处理弹窗
tagStatus: "",
labelVisible: false, //添加标签筛选弹窗
setLabelVisible: false, //添加设置标签弹窗
setLabelList: [],
uploadLabelList: [],
historyLabelList: {},
browserVisible: false,
};
},
created() {
vm = this;
if(vm.$route.query.dingdingNumber){ // data-in 页面点击查看进来时,页面地址不变
if (vm.$route.query.dingdingNumber) {
// data-in 页面点击查看进来时,页面地址不变
// console.log('do nothing')
}else{
} else {
vm.$router.replace("/data-view");
}
},
mounted() {
vm.getUrlQuery();
vm.getWaterMark(); // 获取水印
vm.handleForbid(); // 禁止默认事件
vm.getWaterMark(); // 获取水印
vm.handleForbid(); // 禁止默认事件
},
methods: {
handleForbid() {
document.oncontextmenu = function(){
document.oncontextmenu = function () {
return false;
}
document.oncopy = function(){
};
document.oncopy = function () {
return false;
}
};
// document.onpaste = function(){
// return false;
// }
document.onselectstart = function(){
document.onselectstart = function () {
return false;
}
};
},
getLabelStatus() {
console.log("vm.ruleForm.dingdingNumber = " + vm.ruleForm.dingdingNumber);
let callback = (res) => {
if (res.code == "000000") {
vm.dataProjectStates = res.data.dataProjectStates;
vm.dataProjectLabels = res.data.dataProjectLabels;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest(
"get",
`/sensitive/visit/status?dingdingNumber=${vm.ruleForm.dingdingNumber}&dingdingDate=${vm.ruleForm.dingdingDate}&dingdingSheet=${encodeURI(vm.ruleForm.sheet)}`,//${vm.ruleForm.sheet}
{},
callback
);
},
getUrlQuery() {
let query = vm.$route.query;
if( query && query.dingdingNumber ){
vm.ruleForm.dingdingNumber = query.dingdingNumber || '';
vm.ruleForm.dingdingDate = query.dingdingDate || '';
vm.ruleForm.sheet = query.sheet || '';
vm.submitForm('ruleForm');
if (query && query.dingdingNumber) {
vm.ruleForm.dingdingNumber = query.dingdingNumber || "";
vm.ruleForm.dingdingDate = query.dingdingDate || "";
vm.ruleForm.sheet = query.sheet || "";
vm.submitForm("ruleForm");
}
},
sendRequest( type, url, params, callback ){
sendRequest(type, url, params, callback) {
openLoading(vm);
url = localStorage.getItem("lectureUrl") + url;
vm.$axios[type](url, params )
vm.$axios[type](url, params)
.then((res) => {
closeLoading(vm);
res = res.data;
callback(res);
}).catch((error) => {
vm.$message.error('网络出现点问题')
})
})
.catch((error) => {
vm.$message.error("网络出现点问题");
});
},
getRowClass({ row, column, rowIndex, columnIndex }) {
return "background: rgba(255,255,255,0.2)"
return "background: rgba(255,255,255,0.2)";
},
getWaterMark() {
let callback = (res) => {
if(res.code == '000000'){
if(res.data){
if (res.code == "000000") {
if (res.data) {
vm.waterMark = res.data;
vm.setWaterMark(); // 设置水印背景
}else{
vm.$message.error('网络出现点问题');
vm.setWaterMark(); // 设置水印背景
} else {
vm.$message.error("网络出现点问题");
}
}else{
} else {
vm.$message.error(res.message);
}
}
vm.sendRequest( 'post', `/sensitive/image`, {}, callback );
};
// vm.sendRequest( 'post', `/sensitive/image`, {}, callback );
},
setWaterMark() {
let bg = document.getElementById('bodyContent');
let bg = document.getElementById("bodyContent");
// bg.style.background = `url(${vm.waterMark}) repeat`;
bg.style.background = "url('" + vm.waterMark + "') repeat";
bg.style.backgroundSize = '300px auto';
bg.style.background = "url('" + vm.waterMark + "') repeat";
bg.style.backgroundSize = "300px auto";
},
handleClearCondition() {
// debugger;
// debugger;
vm.conditionForm = {};
vm.addConditioDialogVisible = false;
},
......@@ -342,17 +511,22 @@ export default {
getApplyDateList() {
//获取 数据申请日期
let callback = (res) => {
if(res.code == "000000") {
if(res.data && res.data.length > 0){
vm.applyDateList = res.data;
}else{
vm.applyDateList = [];
}
}else {
vm.$message.error(res.message);
if (res.code == "000000") {
if (res.data && res.data.length > 0) {
vm.applyDateList = res.data;
} else {
vm.applyDateList = [];
}
} else {
vm.$message.error(res.message);
}
}
vm.sendRequest( 'get', `/sensitive/visit/date?dingdingNumber=${vm.ruleForm.dingdingNumber}`, {}, callback );
};
vm.sendRequest(
"get",
`/sensitive/visit/date?dingdingNumber=${vm.ruleForm.dingdingNumber}`,
{},
callback
);
},
handleApplyDateChange(val) {
if (val) {
......@@ -371,58 +545,73 @@ export default {
getSheets() {
// 获取 Sheets名
let callback = (res) => {
if(res.code == "000000") {
if(res.data && res.data.length > 0){
vm.sheetsList = res.data;
}else{
vm.sheetsList = [];
}
}else {
vm.$message.error(res.message);
if (res.code == "000000") {
if (res.data && res.data.length > 0) {
vm.sheetsList = res.data;
} else {
vm.sheetsList = [];
}
} else {
vm.$message.error(res.message);
}
}
vm.sendRequest( 'get', `/sensitive/visit/sheet?dingdingNumber=${vm.ruleForm.dingdingNumber}&dingdingDate=${vm.ruleForm.dingdingDate}`, {}, callback );
};
vm.sendRequest(
"get",
`/sensitive/visit/sheet?dingdingNumber=${vm.ruleForm.dingdingNumber}&dingdingDate=${vm.ruleForm.dingdingDate}`,
{},
callback
);
},
confirmSendRemark() { // 添加备注信息
if( vm.newRemark.trim() == '' ){
vm.$message.error('请先输入备注信息!');
return;
confirmSendRemark() {
// 添加备注信息
if (vm.newRemark.trim() == "") {
vm.$message.error("请先输入备注信息!");
return;
}
// vm.currentRow
let data = {
dataContentId: vm.currentRow.contentId,
dataUserContentId: vm.currentRow.dataUserContentId,
remark: vm.newRemark.trim(),
};
let callback = (res) => {
if(res.code == '000000'){
if (res.code == "000000") {
vm.remarkDialogVisible = false;
}else{
vm.submitForm("ruleForm");
} else {
vm.$message.error(res.message);
}
}
vm.sendRequest( 'post', `/sensitive/dataRemark`, data, callback );
};
vm.sendRequest("post", `/sensitive/dataRemark`, data, callback);
},
showAddConditionModal() {
vm.addConditioDialogVisible = true;
},
handleSend() {
if( vm.multipleSelection && vm.multipleSelection.length == 0 ){
vm.$message.error('请先勾选表格!');
if (vm.multipleSelection && vm.multipleSelection.length == 0) {
vm.$message.error("请先勾选表格!");
return;
}
vm.dataUserDiss = [];
vm.sendDialogVisible = true;
vm.getUserList();
},
showExportModal(){
console.log('导出。。。。。')
showExportModal() {
if (vm.checkChrome()) {
console.log("导出检测,是chome");
vm.browserVisible = false;
} else {
console.log("导出检测,是其它浏览器");
vm.browserVisible = true;
return;
}
// 待接口提供后 请求接口获取excel, 再出发下载
vm.checkExport();
},
checkExport() {
vm.exportModalVisible = true;
// /dataSearch/searchUserDis
// 查询分发人员列表
let data = {
......@@ -432,16 +621,21 @@ export default {
};
let callback = (res) => {
if(res.code == '000000'){
console.log('导出前校验》》》》 ', res)
if (res.code == "000000") {
console.log("导出前校验》》》》 ", res);
vm.checkExportData.dataExportTotal = res.data.dataExportTotal;
vm.checkExportData.dataExportCount = res.data.dataExportCount;
vm.exportModalVisible = true;
}else{
// vm.exportModalVisible = true;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/check/export`, data, callback );
vm.sendRequest(
"post",
`/sensitive/dataSearch/check/export`,
data,
callback
);
},
handleExport() {
let data = {
......@@ -451,25 +645,72 @@ export default {
};
let callback = (res) => {
if(res.code == '000000'){
console.log('正式导出》》》》 ', res)
if (res.code == "000000") {
console.log("正式导出》》》》 ", res);
// 执行下载excel
vm.downloadFile(res.data.path, res.data.fileName)
vm.downloadFile(res.data.path, res.data.fileName);
vm.exportModalVisible = false;
}else{
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/export`, data, callback );
vm.sendRequest("post", `/sensitive/dataSearch/export`, data, callback);
},
downloadFile(base64, fileName) {
let a = document.createElement('a');
let uploadHref = 'data:application/xls;base64,' + base64;
a.setAttribute('href', uploadHref);
let a = document.createElement("a");
let uploadHref = "data:application/xls;base64," + base64;
a.setAttribute("href", uploadHref);
let exportFileName = fileName;
a.setAttribute('download', exportFileName);
a.setAttribute("download", exportFileName);
a.click();
},
handleNormalExport() {
let data = {
dingdingNum: vm.ruleForm.dingdingNumber,
dingdingDate: vm.ruleForm.dingdingDate,
dataSheetName: vm.ruleForm.sheet,
};
let callback = (res) => {
if (res.code == "000000") {
console.log("常规导出》》》》 ", res);
// 执行下载excel
vm.downloadFile(res.data.path, res.data.fileName);
vm.exportNormalModalVisible = false;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest("post", `/sensitive/dataSearch/export/common`, data, callback);
},
checkChrome() {
// return (navigator.appVersion.indexOf('Chrome') || navigator.appVersion.indexOf('chrome')) != -1;
return this.getBroswer().broswer=='Chrome'
},
getBroswer() {
let sys = {};
let ua = navigator.userAgent.toLowerCase();
let s;
(s = ua.match(/edge\/([\d.]+)/)) ? sys.edge = s[1] :
(s = ua.match(/rv:([\d.]+)\) like gecko/)) ? sys.ie = s[1] :
(s = ua.match(/msie ([\d.]+)/)) ? sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? sys.safari = s[1] : 0;
if (sys.edge) return { broswer : "Edge", version : sys.edge };
if (sys.ie) return { broswer : "IE", version : sys.ie };
if (sys.firefox) return { broswer : "Firefox", version : sys.firefox };
if (sys.chrome) return { broswer : "Chrome", version : sys.chrome };
if (sys.opera) return { broswer : "Opera", version : sys.opera };
if (sys.safari) return { broswer : "Safari", version : sys.safari };
return { broswer : "", version : "0" };
},
down() {
window.location.href = 'http://www.google.cn/chrome/';
},
getUserList() {
// /dataSearch/searchUserDis
// 查询分发人员列表
......@@ -480,22 +721,30 @@ export default {
};
let callback = (res) => {
if(res.code == '000000'){
if (res.code == "000000") {
vm.peopleList = res.data;
}else{
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/searchUserDis`, data, callback );
vm.sendRequest(
"post",
`/sensitive/dataSearch/searchUserDis`,
data,
callback
);
},
submitForm(formName) {
vm.$refs[formName].validate(valid => {
vm.$refs[formName].validate((valid) => {
if (valid) {
let data = {
columnMap: {},
labelMap: {},
dingdingNum: vm.ruleForm.dingdingNumber,
dingdingDate: vm.ruleForm.dingdingDate,
dataSheetName: vm.ruleForm.sheet,
projectStateId: vm.ruleForm.labelStatus,
remark: vm.ruleForm.remark,
pageNo: vm.ruleForm.pageNo,
pageSize: vm.ruleForm.pageSize,
};
......@@ -503,26 +752,58 @@ export default {
let stringData = JSON.stringify(vm.conditionForm);
if (stringData != "{}") {
let condition = JSON.parse(stringData);
console.log("submitForm() : condition = " + condition);
for (let key in condition) {
console.log("submitForm() : key = " + key);
data.columnMap[key] = condition[key];
};
}
}
if (vm.dataProjectLabels.length > 0) {
for (let i = 0; i < vm.dataProjectLabels.length; i++) {
console.log(
"dataProjectLabels() : key = " +
vm.dataProjectLabels[i].labelCode +
", value = " +
vm.dataProjectContents[i]
);
data.labelMap[vm.dataProjectLabels[i].labelCode] =
vm.dataProjectContents[i];
}
}
let callback = (res) => {
if(res.code == '000000'){
if (res.code == "000000") {
vm.isSearchSend = true;
vm.tableDataList = res.data;
if(typeof res.data.dataRole != 'undefined' && res.data.dataRole == 1){
vm.showSendBtn = true;
};
if(typeof res.data.dataExportCount != 'undefined' && res.data.dataExportCount > 0) {
if (
typeof res.data.dataRole != "undefined" &&
res.data.dataRole == 1
) {
vm.showSendBtn = true;
}
if (
typeof res.data.dataExportCount != "undefined" &&
res.data.dataExportCount > 0
) {
vm.showExportBtn = true;
}
}else{
if (res.data.distributeRole == 2) {
vm.showNormalExportBtn = true;
}
vm.getLabelStatus();
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest( 'post', `/sensitive/dataSearch/search`, data, callback );
vm.sendRequest(
"post",
`/sensitive/dataSearch/search`,
data,
callback
);
} else {
console.log("error submit!!");
return false;
......@@ -531,69 +812,152 @@ export default {
},
handleSizeChange(val) {
console.log('size change .......')
console.log("size change .......");
vm.ruleForm.pageSize = val;
vm.submitForm('ruleForm');
vm.submitForm("ruleForm");
},
handleCurrentChange(val) {
console.log('currentPage change .......')
console.log("currentPage change .......");
vm.ruleForm.pageNo = val;
vm.submitForm('ruleForm');
vm.submitForm("ruleForm");
},
handleSelectionChange(val) {
vm.multipleSelection = val;
// debugger;
let firstColumn = vm.tableDataList.columnList[0].key || 'column1';
let str = '';
let firstColumn = vm.tableDataList.columnList[0].key || "column1";
let str = "";
let tempNameList = [];
vm.multipleSelection.map(function(value, index, arr){
vm.multipleSelection.map(function (value, index, arr) {
tempNameList.push(value[firstColumn]);
})
str = tempNameList.join(',');
});
str = tempNameList.join(",");
vm.selectedNameList = str;
},
handleRemarkClick(row) {
// console.log("handleRemarkClick: ", row);
vm.remarkDialogVisible = true;
vm.currentRow = row;
// 获取备注信息
let callback = (res) => {
if(res.code == "000000") {
vm.remarkHistory = res.data.remarks;
}else {
vm.$message.error(res.message);
if (res.code == "000000") {
vm.remarkHistory = res.data.remarks;
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest( 'get', `/sensitive/dataRemark?dataUserContentId=${row.dataUserContentId}`, {}, callback );
vm.sendRequest(
"get",
`/sensitive/dataRemark?dataContentId=${row.contentId}`,
{},
callback
);
},
handleTagClick(row) {
handleSetLabelClick(row) {
vm.currentRow = row;
vm.setLabelVisible = true;
// 获取历史标签信息
let callback = (res) => {
if(res.code == "000000") {
vm.submitForm('ruleForm');
}else {
vm.$message.error(res.message);
if (res.code == "000000") {
vm.historyLabelList = res.data;
// console.log(
// "handleSetLabelClick() : vm.historyLabelList = " +
// vm.historyLabelList.menus.length
// );
if (vm.dataProjectLabels == null || vm.dataProjectLabels == "") {
vm.$message.info("未设置过标签")
}
} else {
vm.$message.error(res.message);
}
};
vm.sendRequest(
"get",
`/sensitive/dataSearch/labels?dataContentId=${row.contentId}`,
{},
callback
);
},
dealSetLabelClick() {
let tmpList = [];
if (vm.dataProjectLabels && vm.dataProjectLabels.length > 0) {
for (let i = 0; i < vm.dataProjectLabels.length; i++) {
let obj = {
labelCode: vm.dataProjectLabels[i].labelCode,
labelValue: vm.setLabelList[i]
};
tmpList.push(obj);
}
} else {
vm.setLabelVisible = false;
return;
}
vm.sendRequest( 'get', `/sensitive/dataSearch/changeStatus?dataUserContentId=${row.dataUserContentId}`, {}, callback );
let data = {
contentId: vm.currentRow.contentId,
dataUserContentId: vm.currentRow.dataUserContentId,
list: tmpList,
projectMainId: 0,
};
let callback = (res) => {
if (res.code == "000000") {
// vm.peopleList = res.data;
this.$message({
type: "success",
message: "设置标签成功",
});
} else {
vm.$message.error(res.message);
}
vm.setLabelVisible = false;
};
vm.sendRequest("post", `/sensitive/dataSearch/labels`, data, callback);
},
handleTagClick(row) {
vm.currentRow = row;
this.tagVisible = true;
},
dealTagClick() {
let callback = (res) => {
if (res.code == "000000") {
this.$message({
type: "success",
message: "标记状态设置成功",
});
vm.submitForm("ruleForm");
} else {
vm.$message.error(res.message);
}
vm.tagVisible = false;
};
vm.sendRequest(
"get",
`/sensitive/dataSearch/changeStatus?dataUserContentId=${vm.currentRow.dataUserContentId}
&dataContentId=${vm.currentRow.contentId}&projectStateId=${vm.tagStatus}`,
{},
callback
);
},
handleLabelClick() {
this.labelVisible = false;
},
handleRemarkClose() {
vm.newRemark = '';
vm.newRemark = "";
vm.remarkHistory = [];
},
handleConfirmSend() {
if( vm.dataUserDiss && vm.dataUserDiss.length == 0 ){
vm.$message.error('请先勾选人员!');
if (vm.dataUserDiss && vm.dataUserDiss.length == 0) {
vm.$message.error("请先勾选人员!");
return;
}
let selectListIds = [];
vm.multipleSelection.map(function(value, index, arr){
selectListIds.push(value.contentId)
})
let selectListIds = [];
vm.multipleSelection.map(function (value, index, arr) {
selectListIds.push(value.contentId);
});
let data = {
dataUserDiss: vm.dataUserDiss,
dataCountIds: selectListIds,
......@@ -601,19 +965,19 @@ export default {
};
let callback = (res) => {
if(res.code == '000000'){
if (res.code == "000000") {
vm.sendDialogVisible = false;
}else{
} else {
vm.$message.error(res.message);
}
}
vm.sendRequest( 'post', `/sensitive/dataSearch/postUser`, data, callback );
};
vm.sendRequest("post", `/sensitive/dataSearch/postUser`, data, callback);
},
handleAddConditionConfirm(){
handleAddConditionConfirm() {
vm.addConditioDialogVisible = false;
vm.ruleForm.pageNo = 1;
},
}
},
};
</script>
......@@ -690,9 +1054,11 @@ export default {
margin-left: 20px;
}
}
.name-list{
width: 450px; height: 24px; line-height: 24px;
.name{
.name-list {
width: 450px;
height: 24px;
line-height: 24px;
.name {
max-width: 385px;
float: left;
display: block;
......@@ -700,7 +1066,7 @@ export default {
text-overflow: ellipsis;
white-space: nowrap;
}
.after-text{
.after-text {
float: left;
display: block;
width: 55px;
......@@ -709,7 +1075,7 @@ export default {
}
}
.no-table-data{
.no-table-data {
width: 100%;
height: 400px;
line-height: 400px;
......@@ -718,21 +1084,28 @@ export default {
font-size: 14px;
}
.pagination-style{
.pagination-style {
margin-top: 30px;
float: right;
}
.tebale_card {
background: rgba(255,255,255,0.2);
background: rgba(255, 255, 255, 0.2);
}
.el-table, .el-table__expanded-cell {
background: rgba(255,255,255,0.2);
.el-table,
.el-table__expanded-cell {
background: rgba(255, 255, 255, 0.2);
}
.el-table{
.el-table__fixed-right{
background: #FFF;
.el-table {
.el-table__fixed-right {
background: #fff;
}
}
.same-line-class {
margin-top: 20px;
display: inline-block;
}
.href-link {
color: red;
}
}
</style>
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册