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