Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-risk-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-risk-admin
提交
2b40edcb
提交
2b40edcb
编写于
12月 10, 2020
作者:
huangwensu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
订单接口联调
上级
fcb087a4
变更
8
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
339 行增加
和
3595 行删除
+339
-3595
index.js
src/router/index.js
+9
-3
doctor-black.vue
src/views/black-list/doctor-black.vue
+11
-13
order-detail.vue
src/views/order-list/order-detail.vue
+113
-0
order-list.vue
src/views/order-list/order-list.vue
+206
-0
data-in.vue
src/views/sensitive-control/data-in.vue
+0
-531
data-statistic.vue
src/views/sensitive-control/data-statistic.vue
+0
-817
data-view-message.vue
src/views/sensitive-control/data-view-message.vue
+0
-1114
data-view.vue
src/views/sensitive-control/data-view.vue
+0
-1117
未找到文件。
src/router/index.js
浏览文件 @
2b40edcb
...
...
@@ -21,17 +21,23 @@ export default new Router({
redirect
:
'/doctor-black'
,
},{
path
:
'/doctor-black'
,
path
:
'/doctor-black'
,
// 医生黑名单
component
:
resolve
=>
require
([
'../views/black-list/doctor-black.vue'
],
resolve
),
},{
path
:
'/empty-phone'
,
path
:
'/empty-phone'
,
// 居民假空号
component
:
resolve
=>
require
([
'../views/black-list/empty-phone.vue'
],
resolve
),
},{
path
:
'/strategy-list'
,
path
:
'/strategy-list'
,
// 策略管理
component
:
resolve
=>
require
([
'../views/strategy-data/strategy-list.vue'
],
resolve
),
},{
path
:
'/strategy-edit'
,
component
:
resolve
=>
require
([
'../views/strategy-data/strategy-edit.vue'
],
resolve
),
},{
path
:
'/order-list'
,
component
:
resolve
=>
require
([
'../views/order-list/order-list.vue'
],
resolve
),
},{
path
:
'/order-detail'
,
component
:
resolve
=>
require
([
'../views/order-list/order-detail.vue'
],
resolve
),
},
]
},
...
...
src/views/black-list/doctor-black.vue
浏览文件 @
2b40edcb
...
...
@@ -120,7 +120,8 @@ export default {
removeId
:
''
,
removeTel
:
''
,
acceptValue
:
'*/*'
,
importFileName
:
''
importFileName
:
''
,
base64Str
:
''
}
},
mounted
()
{
...
...
@@ -161,11 +162,17 @@ export default {
this
.
importDialogVisible
=
true
;
},
confirmImport
()
{
this
.
getData
(
"post"
,
`/riskcontrol/blacklist/import`
,
{
base64Str
:
this
.
base64
.
file
},
data
=>
{
if
(
data
.
code
==
'000000'
)
{
}
}
);
},
// 上传文件
uploadImportFile
(
file
)
{
console
.
log
(
file
)
let
self
=
this
;
this
.
importFileName
=
file
.
name
;
let
arr
=
file
.
type
.
split
(
'/'
);
...
...
@@ -178,22 +185,13 @@ export default {
ext
:
ext
};
self
.
base64
=
fileJson
;
console
.
log
(
'fileJson'
,
self
.
base64
);
};
reader
.
readAsDataURL
(
file
);
this
.
getData
(
"post"
,
`/riskcontrol/blacklist/import`
,
{
base64Str
:
self
.
base64
.
file
},
data
=>
{
if
(
data
.
code
==
'000000'
)
{
}
}
);
},
// 下载导入模板
download
()
{
console
.
log
(
'下载模板'
);
setTimeout
(()
=>
{
setTimeout
(()
=>
{
window
.
open
(
''
);
// 后台给的导入Excel地址
},
500
);
},
...
...
src/views/order-list/order-detail.vue
0 → 100644
浏览文件 @
2b40edcb
<
template
>
<div
class=
"order-detail-container"
>
<el-breadcrumb
separator=
"/"
>
<el-breadcrumb-item
:to=
"
{ path: '/order-list' }">订单列表
</el-breadcrumb-item>
<el-breadcrumb-item>
订单详情
</el-breadcrumb-item>
</el-breadcrumb>
<div
class=
"order"
>
<p>
订单信息
</p>
<div>
<span
class=
"label"
>
订单ID:
</span><span>
{{
rowId
}}
</span>
<span
class=
"label"
>
下单时间:
</span><span>
{{
detailData
.
orderTime
}}
</span>
<span
class=
"label"
>
订单金额:
</span><span>
{{
detailData
.
totalPrice
}}
</span>
<span
class=
"label"
>
支付方式:
</span><span>
{{
payTypeText
}}
</span>
</div>
<div
class=
"info"
>
<span
v-for=
"(item, index) in detailData.goodsRespList"
:key=
"index"
>
<span
class=
"label"
>
商品
{{
index
+
1
}}
:
</span>
{{
item
.
goodsName
}}
*
{{
item
.
purchaseNum
}}
__
{{
item
.
purchasingPrice
}}
</span>
</div>
</div>
<div
class=
"order"
>
<p>
开单店铺信息
</p>
<span
class=
"label"
>
店铺名称:
</span><span>
{{
detailData
.
storeName
}}
</span>
<span
class=
"label"
>
店铺所在区:
</span><span>
{{
detailData
.
storeAddress
}}
</span>
</div>
<div
class=
"order"
>
<p>
下单人信息
</p>
<span
class=
"label"
>
下单人姓名:
</span><span>
{{
detailData
.
placeOrderName
}}
</span>
<span
class=
"label"
>
手机号:
</span><span>
{{
detailData
.
placeOrderMobile
}}
</span>
<span
class=
"label"
>
地区归属:
</span><span>
{{
detailData
.
placeOrderAddress
}}
</span>
</div>
<div
class=
"order"
>
<p>
处方信息
</p>
<span
class=
"label"
>
暂无处方信息/处方图片:
</span><span><img
:src=
"detailData.recipeUrl"
/></span>
</div>
<div
class=
"order"
>
<p>
收货人信息
</p>
<span
class=
"label"
>
姓名:
</span><span>
{{
detailData
.
receiverName
}}
</span>
<span
class=
"label"
>
手机号:
</span><span>
{{
detailData
.
receiverMobile
}}
</span>
<span
class=
"label"
>
详细地址:
</span><span>
{{
detailData
.
receiverAddress
}}
</span>
</div>
</div>
</
template
>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../common/utils"
;
export
default
{
data
()
{
return
{
rowId
:
''
,
detailData
:
{},
payTypeText
:
''
}
},
created
()
{
this
.
rowId
=
this
.
$route
.
query
.
id
;
},
mounted
()
{
this
.
getDetailData
();
},
methods
:
{
// 封装一下请求通用的方法
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
(
"网络出现点问题"
);
});
},
getDetailData
()
{
this
.
getData
(
"get"
,
`/riskcontrol/tradeOrder/info/
${
this
.
rowId
}
`
,
{},
data
=>
{
this
.
detailData
=
data
.
data
;
this
.
payTypeText
=
this
.
detailData
.
payType
==
1
?
"医生支付"
:
"医生代付"
}
);
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.order-detail-container {
.order {
border-bottom: 1px solid #efefef;
padding-bottom: 20px;
p {
padding: 20px 0px 20px;
font-size: 18px;
font-weight: 700;
}
span.label {
// padding-right: 50px;
display: inline-block;
width: 100px;
text-align: right;
}
.info {
margin-top: 20px;
}
}
}
</
style
>
\ No newline at end of file
src/views/order-list/order-list.vue
0 → 100644
浏览文件 @
2b40edcb
<
template
>
<div
class=
"order-container"
>
<el-row
:gutter=
"30"
class=
"row search"
type=
"flex"
style=
"margin-bottom:0;"
>
<el-form
ref=
"form"
:model=
"searchParam"
label-suffix=
":"
label-width=
"80px"
style=
"width: 100%;"
>
<el-col
:span=
"5"
>
<el-form-item
label=
"订单信息"
>
<el-input
v-model=
"searchParam.searchName"
placeholder=
"请输入订单信息"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"时间"
>
<el-date-picker
v-model=
"searchParam.date"
type=
"date"
placeholder=
"选择日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"11"
>
<el-form-item
label=
"风险定级"
>
<el-select
v-model=
"searchParam.riskLevel"
size=
"small"
placeholder=
"请选择风险等级"
>
<el-option
v-for=
"item in riskSelectData"
:key=
"item.level"
:label=
"item.level"
:value=
"item.level"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"3"
style=
"padding:0;text-align:right;padding-right:15px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"search(1)"
>
查询
</el-button>
</el-col>
</el-form>
</el-row>
<el-table
class=
"search-table"
:data=
"tableData"
style=
"width: 100%"
>
<el-table-column
prop=
"strOrderId"
label=
"订单ID"
min-width=
"140"
align=
"center"
></el-table-column>
<el-table-column
prop=
"storeName"
label=
"店铺名称"
min-width=
"140"
align=
"center"
></el-table-column>
<el-table-column
prop=
"prescriberName"
label=
"开单人"
min-width=
"150"
align=
"center"
></el-table-column>
<el-table-column
prop=
"placeOrderName"
label=
"下单人"
min-width=
"150"
align=
"center"
></el-table-column>
<el-table-column
prop=
"orderTime"
label=
"下单时间"
min-width=
"150"
align=
"center"
></el-table-column>
<el-table-column
prop=
"riskLevel"
label=
"风险定级"
min-width=
"150"
align=
"center"
></el-table-column>
<el-table-column
prop=
"riskStrategy"
label=
"命中策略"
min-width=
"150"
align=
"center"
></el-table-column>
<el-table-column
label=
"操作"
fixed=
"right"
align=
"center"
min-width=
"200"
>
<template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"reviewDetail(scope.row)"
>
查看详情
</el-button>
<el-button
:disabled=
"scope.row.orderTimetype != 1"
type=
"primary"
size=
"small"
@
click=
"changeRisk(scope.row)"
>
变更风险等级
</el-button>
</
template
>
</el-table-column>
</el-table>
<!-- 分页 -->
<div
class=
"pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"searchParam.pageNo"
:page-sizes=
"[15, 30, 50, 100, 200, 500, 700, 1000, 1500, 2000]"
:page-size=
"searchParam.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"totalRows"
>
</el-pagination>
</div>
<!-- 调整风险定级 -->
<el-dialog
title=
"提示"
:visible
.
sync=
"changeDialogVisible"
width=
"30%"
center
>
<el-form
ref=
"importForm"
:model=
"addParam"
label-suffix=
":"
label-width=
"80px"
>
<el-form-item
label=
"风险定级"
>
<el-select
v-model=
"addParam.riskLevel"
placeholder=
"请选择风险等级"
>
<el-option
v-for=
"item in riskSelectData"
:key=
"item.level"
:label=
"item.level"
:value=
"item.level"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"变更理由"
>
<el-input
v-model=
"addParam.riskLevelRemark"
style=
"width: 300px;"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"changeDialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirmChange"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
import
{
openLoading
,
closeLoading
}
from
"../../common/utils"
;
export
default
{
data
()
{
return
{
changeDialogVisible
:
false
,
searchParam
:
{
searchName
:
''
,
date
:
''
,
riskLevel
:
''
,
pageNo
:
1
,
pageSize
:
15
},
addParam
:
{
riskLevel
:
''
,
riskLevelRemark
:
''
},
riskSelectData
:
[],
tableData
:
[],
totalRows
:
0
,
base64
:
''
,
orderId
:
''
}
},
mounted
()
{
this
.
search
();
this
.
getRiskLeverData
();
},
methods
:
{
// 封装一下请求通用的方法
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
(
"网络出现点问题"
);
});
},
// 获取风险等级数据
getRiskLeverData
()
{
this
.
getData
(
"get"
,
`/riskcontrol/tradeOrder/riskLevel`
,
{},
data
=>
{
let
arr
=
data
.
data
;
arr
.
forEach
((
element
,
index
)
=>
{
this
.
riskSelectData
.
push
({
level
:
element
})
});
}
);
},
search
(
param
)
{
if
(
param
)
this
.
searchParam
.
pageNo
=
1
;
this
.
getData
(
"get"
,
`/riskcontrol/tradeOrder/list?searchName=
${
this
.
searchParam
.
searchName
}
&pageNo=
${
this
.
searchParam
.
pageNo
}
&pageSize=
${
this
.
searchParam
.
pageSize
}
&date=
${
this
.
searchParam
.
date
}
&riskLevel=
${
this
.
searchParam
.
riskLevel
}
`
,
{},
data
=>
{
this
.
tableData
=
data
.
data
.
tradeOrders
;
this
.
totalRows
=
data
.
data
.
total
;
}
);
},
// 查看详情
reviewDetail
(
row
)
{
this
.
$router
.
push
({
path
:
'order-detail'
,
query
:
{
id
:
row
.
strOrderId
}})
},
// 调整定级
changeRisk
(
row
)
{
this
.
changeDialogVisible
=
true
;
this
.
orderId
=
row
.
strOrderId
;
},
confirmChange
()
{
let
req
=
{
orderId
:
this
.
orderId
,
riskLevel
:
this
.
addParam
.
riskLevel
,
riskLevelRemark
:
this
.
addParam
.
riskLevelRemark
};
this
.
getData
(
"post"
,
`/riskcontrol/tradeOrder/changeRiskLevel`
,
req
,
data
=>
{
if
(
data
.
code
==
'000000'
)
{
this
.
changeDialogVisible
=
false
;
}
}
);
},
handleSizeChange
(
value
)
{
this
.
searchParam
.
pageSize
=
value
;
this
.
search
();
},
handleCurrentChange
(
value
)
{
this
.
searchParam
.
pageNo
=
value
;
this
.
search
();
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
</
style
>
\ No newline at end of file
src/views/sensitive-control/data-in.vue
已删除
100644 → 0
浏览文件 @
fcb087a4
<
template
>
<div
class=
"data-in-wrap"
>
<el-form
ref=
"form"
:model=
"queryParams"
label-width=
"100px"
:inline=
"true"
:rules=
"rules"
>
<el-form-item
label=
"审批编号"
prop=
"dingdingNumber"
>
<el-input
v-model=
"queryParams.dingdingNumber"
size=
"small"
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"
>
<el-button
@
click=
"createDataHandle"
>
数据导入
</el-button>
<el-button
@
click=
"queryDataListByClick"
>
数据查询
</el-button>
<el-button
@
click=
"addproject"
>
添加项目
</el-button>
</div>
<template>
<el-table
:data=
"dataList"
style=
"width: 100%"
>
<el-table-column
label=
"审批编号"
prop=
"dingdingNumber"
width=
"180"
></el-table-column>
<el-table-column
label=
"人员姓名"
prop=
"name"
width=
"120"
></el-table-column>
<el-table-column
label=
"申请日期"
prop=
"dingdingDate"
></el-table-column>
<el-table-column
label=
"sheet名称"
prop=
"dataSheetName"
></el-table-column>
<el-table-column
label=
"附件名称"
prop=
"fileName"
></el-table-column>
<el-table-column
label=
"状态"
prop=
"status"
:formatter=
"formatStatus"
></el-table-column>
<el-table-column
label=
"通知状态"
prop=
"sendType"
:formatter=
"formatSendType"
></el-table-column>
<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
v-if=
"scope.row.status==1"
>
<el-button
@
click=
"modifyDataHandle(scope.row.id)"
type=
"text"
size=
"small"
>
修改
</el-button>
<el-button
@
click=
"notifyDingHandle(scope.row)"
type=
"text"
size=
"small"
>
通知
</el-button>
<el-button
@
click=
"closeDingHandle(scope.row.userId)"
type=
"text"
size=
"small"
>
关闭
</el-button>
</
template
>
</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, 50, 100, 200, 300]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<!-- 数据导入 page -->
<createData
v-if=
"centerDialogVisible"
:form=
"form"
:rules=
"rules"
:handleType=
"handleType"
@
close=
"closeCreate"
@
saveSuccess=
"saveSuccess"
/>
<!-- 数据修改 page -->
<!-- <modifyData
v-if="reviseDialogVisible"
:form="form"
:rules="rules"
@close="closeModify"
/>-->
<el-dialog
:title=
"dialogTitle"
:visible
.
sync=
"addProjectVisible"
:close-on-click-modal=
"false"
style=
"text-align: center"
>
<el-row
style=
"margin-top: 20px;"
type=
"flex"
>
<el-col
:span=
"3"
style=
"margin-left: 70px;"
>
<label
style=
"font-size: 18px;"
>
项目名称
</label>
</el-col>
<el-col
:span=
"12"
style=
"margin-left: 20px;"
>
<el-input
v-model=
"projectName"
size=
"small"
/>
</el-col>
</el-row>
<div
slot=
"footer"
style=
"text-align: center"
>
<el-button
type=
"primary"
@
click=
"dialogSave"
>
确认
</el-button>
<el-button
@
click=
"addProjectVisible = false"
>
取消
</el-button>
</div>
</el-dialog>
</div>
</template>
<
script
>
import
createData
from
"../../components/page/createData"
;
// import modifyData from '../../components/page/modifyData';
import
{
baseUrl
}
from
"../../api/hostconfig"
;
import
{
openLoading
,
closeLoading
}
from
"../../common/utils"
;
export
default
{
components
:
{
createData
// modifyData
},
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
{
handleType
:
"1"
,
// 表单操作类型,1.新增 2.修改
currentPage
:
1
,
pageSize
:
15
,
total
:
50
,
// 默认分页总数
dataList
:
[],
// 初始化数据列表
centerDialogVisible
:
false
,
// 是否显示数据导入(新增)
reviseDialogVisible
:
false
,
// 是否显示数据导入(修改)
sheetList
:
[],
// 被搜索出来的sheet列表
dingdingDateList
:
[],
//申请日期列表
// 查询的字段
queryParams
:
{
dingdingNumber
:
""
,
// 审批编号
dingdingDate
:
""
,
// 申请日期
dataSheetName
:
""
// sheet名称
},
form
:
{
status
:
1
,
projectMainId
:
[],
//项目名称
dingdingNumber
:
""
,
// 审批编号
dingdingDate
:
""
,
// 申请日期
dataSheetName
:
""
,
//sheet名称
dataType
:
""
,
// 数据需求方类型 1.内部 2.外部
needIds
:
[],
// 数据需求方id集合 需求方类型选择为 dataType【内部】
mobilePhone
:
""
,
// 数据需求方类型为【外部】需要传递 dataType【外部】
name
:
""
,
// 数据需求方类型为【外部】需要传递 dataType【外部】
sensitiveDataType
:
""
,
// 敏感信息查看权限 1是,2否
dataRole
:
""
,
//数据需求角色 1管理员,2普通用户
ids
:
[],
// 数据分发人员数组
fileId
:
""
,
// 文件上传id
dataTermValidity
:
""
,
// 数据有效期 - 日期
dataCount
:
""
,
// 数据访问次数限制
sensitiveDataColumn
:
""
// 敏感信息列所在位置
},
rules
:
{
projectMainId
:
[
{
required
:
true
,
message
:
"请选择项目名称"
,
trigger
:
"blur"
}
],
dingdingNumber
:
[
{
required
:
true
,
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"
}
]
},
addProjectVisible
:
false
,
dialogTitle
:
"添加项目"
,
projectName
:
""
};
},
created
()
{
// 初始化获取数据列表
this
.
getDataList
(
this
.
currentPage
,
{});
},
methods
:
{
// 根据审批编号查询申请日期操作
handleIdChange
(
value
)
{
if
(
value
.
length
==
21
)
{
this
.
getData
(
"get"
,
`/sensitive/visit/date?dingdingNumber=
${
value
}
`
,
{},
data
=>
{
this
.
dingdingDateList
=
data
.
data
;
}
);
}
else
{
this
.
dingdingDateList
=
[];
this
.
sheetList
=
[];
this
.
queryParams
.
dingdingDate
=
""
;
this
.
queryParams
.
dataSheetName
=
""
;
}
},
// 根据审批编号和日期搜索sheet
handleDatechange
(
val
)
{
this
.
sheetList
=
[];
this
.
queryParams
.
dataSheetName
=
""
;
this
.
getData
(
"get"
,
`/sensitive/visit/sheet?dingdingNumber=
${
this
.
queryParams
.
dingdingNumber
}
&dingdingDate=
${
val
}
`
,
{},
data
=>
{
this
.
sheetList
=
data
.
data
;
}
);
},
// 选中sheet
handleSheetchange
(
val
)
{},
queryDataListByClick
()
{
this
.
currentPage
=
1
;
this
.
queryDataList
();
},
// 数据查询
queryDataList
()
{
this
.
getDataList
(
this
.
currentPage
,
this
.
queryParams
);
},
// 获取全部分页数据
getDataList
(
pageNum
,
queryData
)
{
this
.
getData
(
"post"
,
"/sensitive/visit"
,
{
pageNum
:
pageNum
,
pageSize
:
this
.
pageSize
,
...
queryData
},
data
=>
{
this
.
dataList
=
data
.
data
.
list
;
this
.
total
=
data
.
data
.
total
;
}
);
},
// 根据页码获取数据
handleSizeChange
(
size
)
{
this
.
pageSize
=
size
;
this
.
getDataList
(
this
.
currentPage
,
this
.
queryParams
);
},
// 根据分页获取数据
dataListChange
(
num
)
{
console
.
log
(
"dataListChange() : num = "
+
num
);
this
.
currentPage
=
num
;
this
.
getDataList
(
num
,
this
.
queryParams
);
},
// 过滤状态显示
formatStatus
(
row
,
column
)
{
let
value
;
if
(
row
.
status
==
1
)
{
value
=
"正常"
;
}
else
if
(
row
.
status
==
2
)
{
value
=
"关闭"
;
}
return
value
;
},
// 过滤同志状态显示
formatSendType
(
row
,
column
)
{
let
value
;
if
(
row
.
sendType
==
1
)
{
value
=
"已通知"
;
}
else
if
(
row
.
sendType
==
2
)
{
value
=
"未通知"
;
}
return
value
;
},
// 新增数据-数据导入
createDataHandle
()
{
this
.
centerDialogVisible
=
true
;
this
.
handleType
=
"1"
;
this
.
form
=
{
status
:
1
,
projectMainId
:
[],
//项目名称
dingdingNumber
:
""
,
// 审批编号
dingdingDate
:
""
,
// 申请日期
dataSheetName
:
""
,
//sheet名称
dataType
:
""
,
// 数据需求方类型 1.内部 2.外部
needIds
:
[],
// 数据需求方id集合 需求方类型选择为 dataType【内部】
mobilePhone
:
""
,
// 数据需求方类型为【外部】需要传递 dataType【外部】
name
:
""
,
// 数据需求方类型为【外部】需要传递 dataType【外部】
sensitiveDataType
:
""
,
// 敏感信息查看权限 1是,2否
dataRole
:
""
,
//数据需求角色 1管理员,2普通用户
ids
:
[],
// 数据分发人员数组
fileId
:
""
,
// 文件上传id
dataTermValidity
:
""
,
// 数据有效期 - 日期
dataCount
:
""
,
// 数据访问次数限制
sensitiveDataColumn
:
""
// 敏感信息列所在位置
};
},
//添加项目
addproject
()
{
this
.
addProjectVisible
=
true
;
},
dialogSave
()
{
this
.
getData
(
"get"
,
`/sensitive/projectMain/add?projectName=
${
this
.
projectName
}
`
,
{},
data
=>
{
this
.
$message
({
type
:
"success"
,
message
:
"项目添加成功"
});
this
.
addProjectVisible
=
false
;
}
);
},
// 修改数据
modifyDataHandle
(
id
)
{
console
.
log
(
"modifyDataHandle() : id = "
+
id
)
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// id = 60;
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
// 为了方便测试,这里写一个有效的dev环境的id值!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!切记删除
this
.
centerDialogVisible
=
true
;
this
.
handleType
=
"2"
;
this
.
getData
(
"get"
,
`/sensitive/import/data?id=
${
id
}
`
,
{},
data
=>
{
const
form
=
data
.
data
;
if
(
!
form
.
needIds
)
form
.
needIds
=
[];
if
(
!
form
.
ids
)
form
.
ids
=
[];
form
.
id
=
id
;
this
.
form
=
form
;
});
},
// 列表关闭操作
closeDingHandle
(
userId
)
{
this
.
$confirm
(
"确定关闭?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
center
:
true
,
customClass
:
"close-msg-box"
}).
then
(()
=>
{
this
.
getData
(
"put"
,
`/sensitive/visit/status?userId=
${
userId
}
`
,
{},
data
=>
{
this
.
$message
({
type
:
"success"
,
message
:
"关闭成功!"
});
this
.
getDataList
(
this
.
currentPage
,
this
.
queryParams
);
}
);
});
},
// 列表通知操作
notifyDingHandle
(
obj
)
{
const
{
dataSheetName
,
dingdingDate
,
dingdingNumber
,
mobilePhone
,
userId
}
=
obj
;
this
.
$confirm
(
"确定通知该用户?"
,
"提示"
,
{
confirmButtonText
:
"确定"
,
cancelButtonText
:
"取消"
,
center
:
true
,
customClass
:
"close-msg-box"
}).
then
(()
=>
{
this
.
getData
(
"put"
,
"/sensitive/visit/notice"
,
{
dataSheetName
,
dingdingDate
,
dingdingNumber
,
mobilePhone
,
userId
},
data
=>
{
this
.
$message
({
type
:
"success"
,
message
:
"通知成功!"
});
this
.
getDataList
(
this
.
currentPage
,
this
.
queryParams
);
}
);
});
},
// 查看个人审批编号页面
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
,
this
.
queryParams
);
},
// 封装一下请求通用的方法
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
(
"网络出现点问题"
);
});
}
}
};
</
script
>
<
style
lang=
"less"
>
.data-in-wrap {
.pagination-style {
margin-top: 30px;
float: right;
}
}
.close-msg-box {
width: 280px;
}
</
style
>
src/views/sensitive-control/data-statistic.vue
已删除
100644 → 0
浏览文件 @
fcb087a4
<
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, 50, 100, 200, 300]"
: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
.
sheetList
=
[];
this
.
queryParams
.
dataSheetName
=
""
;
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
src/views/sensitive-control/data-view-message.vue
已删除
100644 → 0
浏览文件 @
fcb087a4
<
template
>
<div
class=
"data-view-message-wrap"
>
<template
v-if=
"searchTableVisible"
>
<div
class=
"class-top-row"
>
<el-row
class=
"button-wrap"
>
<el-col
:span=
"1"
style=
"margin-left: 20px;width: 70px;margin-top: 4px"
>
<label
style=
"font-size: 16px;"
>
标记状态
</label>
</el-col>
<el-select
v-model=
"labelStatus"
size=
"small"
placeholder=
"请选择"
clearable
style=
"margin-left: 0px;width:180px"
>
<el-option
v-for=
"item in dataProjectStates"
:key=
"item.id"
:label=
"item.value"
:value=
"item.id"
></el-option>
</el-select>
<el-link
style=
"margin-left:40px"
>
备注
</el-link>
<el-input
v-model=
"remark"
size=
"small"
style=
"width:180px;"
class=
"input"
placeholder
clearable
></el-input>
</el-row>
<el-row
class=
"button-wrap"
>
<el-button
class=
"each-button"
type=
"primary"
@
click=
"labelVisible=true"
>
添加标签筛选
</el-button>
<el-button
class=
"each-button"
type=
"primary"
@
click=
"handleSearchByClick"
>
查询
</el-button>
<el-button
class=
"each-button"
type=
"primary"
@
click=
"showExportModal"
v-if=
"showExportBtn"
>
导出
</el-button>
<el-button
class=
"each-button"
type=
"primary"
@
click=
"showAddConditionModal(true)"
>
添加筛选条件
</el-button>
</el-row>
</div>
<template
v-if=
"tableDataList && tableDataList.outModels && tableDataList.outModels.length > 0"
>
<el-table
:data=
"tableDataList.outModels"
:row-style=
"getRowClass"
:header-row-style=
"getRowClass"
:header-cell-style=
"getRowClass"
border
style=
"width: 100%; flex:1; overflow: scroll;"
>
<template
v-if=
"tableDataList && tableDataList.columnList"
v-for=
"item in tableDataList.columnList"
>
<el-table-column
:prop=
"item.key"
align=
"center"
:label=
"item.value"
show-overflow-tooltip
></el-table-column>
</
template
>
<el-table-column
label=
"备注"
prop=
"remark"
align=
"center"
width=
"120"
></el-table-column>
<el-table-column
label=
"标记状态"
prop=
"statusValue"
align=
"center"
width=
"100"
></el-table-column>
<el-table-column
align=
"center"
label=
"操作"
width=
"220"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"showRemarkModal(scope.row)"
type=
"text"
size=
"small"
>
备注
</el-button>
<el-button
@
click=
"handleTagClick(scope.row)"
type=
"text"
size=
"small"
:disabled=
"scope.row.status == 1"
>
{{
scope
.
row
.
status
==
1
?
'已处理'
:
'标记处理'
}}
</el-button>
<el-button
@
click=
"handleSetLabelClick(scope.row)"
type=
"text"
size=
"small"
>
标签
</el-button>
<el-button
@
click=
"dialPhone(scope.row)"
type=
"text"
size=
"small"
>
拨号
</el-button>
</
template
>
<!-- <template slot-scope="scope">
<el-select
v-model="labelStatus"
size="small"
placeholder="请选择"
style="margin-left: 0px;"
@click.native="dealOperationClick(scope.row)"
@change="dealOperationChanged">
<el-option
v-for="item in operationList"
:key="item.id"
:label="item.value"
:value="item.id"
></el-option>
</el-select>
</template>-->
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
class=
"pagination-style"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:total=
"tableDataList.total"
:current-page=
"pageNo"
:page-sizes=
"[15, 50, 100, 200, 300]"
:page-size=
"pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<div
class=
"no-table-data"
v-else
>
暂无数据
</div>
</template>
<!-- 验证弹窗 -->
<el-dialog
title
:close-on-click-modal=
"false"
class=
"check-modal-box"
:visible
.
sync=
"centerDialogVisible"
width=
"300px"
center
>
<p
style=
"word-break: break-all"
>
该数据的审批单号为 {{dingdingNum}},短信将发送至 {{mobilePhone}} 的手机上,如果手机已停用,请联系管理员。
</p>
<div
class=
"captcha-wrap"
>
<el-input
v-model=
"captchaCode"
size=
"small"
placeholder=
"请输入图形验证码"
></el-input>
<img
:src=
"captchaImg"
alt
@
click=
"handleImgClick"
/>
</div>
<div
class=
"sms-wrap"
>
<el-input
v-model=
"smsCode"
size=
"small"
placeholder=
"请输入短信验证码"
></el-input>
<div
:class=
"getSMSClass"
@
click=
"getSMSCode"
>
{{SMSTips}}
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"centerDialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleCheckConfirm"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 添加筛选条件弹窗 -->
<el-dialog
:show-close=
"false"
@
close=
"showAddConditionModal(false)"
:close-on-click-modal=
"false"
title=
"添加筛选条件"
class=
"condition-dialog-wrap"
:visible=
"addConditioDialogVisible"
width=
"300px"
center
>
<el-form
ref=
"form"
:model=
"conditionForm"
label-width=
"80px"
>
<
template
v-if=
"tableDataList && tableDataList.columnList"
v-for=
"item in tableDataList.columnList"
>
<el-form-item
:label=
"item.value"
style=
"width:400px;"
>
<el-input
v-model=
"conditionForm[item.key]"
size=
"small"
style=
"width: 150px;"
></el-input>
</el-form-item>
</
template
>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleClearCondition"
>
清 空
</el-button>
<el-button
type=
"primary"
@
click=
"handleAddConditionConfirm"
>
确 定
</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=
"300px"
center
>
<div
style=
"display: flex;margin-top:10px;"
v-if=
"dataProjectLabels"
v-for=
"(item,i) in dataProjectLabels"
>
<div
class=
"same-line-class"
style=
"margin-right:10px;margin-top:10px;"
>
{{item.labelValue}}
</div>
<div
class=
"input-comp"
>
<el-input
v-model=
"dataProjectContents[i]"
size=
"small"
/>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleLabelClick"
>
确 定
</el-button>
<el-button
@
click=
"labelVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 添加设置标签弹窗 -->
<el-dialog
title=
"设置标签"
:visible
.
sync=
"setLabelVisible"
width=
"300px"
center
>
<div
style=
"display: flex;margin-top:10px;"
v-if=
"dataProjectLabels"
v-for=
"(item, i) in dataProjectLabels"
align=
"center"
>
<div
class=
"same-line-class"
style=
"margin-right:10px;margin-top:10px;"
>
{{item.labelValue}}
</div>
<div
class=
"input-comp"
>
<el-input
v-model=
"setLabelList[i]"
size=
"small"
/>
</div>
</div>
<el-table
v-if=
"historyLabelList && historyLabelList.menus && historyLabelList.menus.length > 0"
ref=
"multipleTable"
:data=
"historyLabelList.datas"
:row-style=
"getRowClass"
:header-row-style=
"getRowClass"
:header-cell-style=
"getRowClass"
border
tooltip-effect=
"dark"
style=
"width: 100%;margin-top: 20px"
>
<
template
v-if=
"historyLabelList && historyLabelList.menus"
v-for=
"item in historyLabelList.menus"
>
<el-table-column
:prop=
"item.key"
:label=
"item.value"
:value=
"item.value"
align=
"center"
></el-table-column>
</
template
>
</el-table>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"dealSetLabelClick"
>
确 定
</el-button>
<el-button
@
click=
"setLabelVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 备注 弹窗 -->
<el-dialog
title=
"备注"
@
close=
"handleRemarkClose"
:close-on-click-modal=
"false"
class=
"remark-modal"
:visible
.
sync=
"remarkDialogVisible"
width=
"300px"
center
>
<el-input
type=
"textarea"
:rows=
"3"
placeholder=
"请输入内容"
v-model=
"newRemark"
></el-input>
<el-button
type=
"primary"
class=
"remark-confirm-btn"
@
click=
"confirmSendRemark"
>
确 定
</el-button>
<ul
class=
"history-list"
>
<li
v-for=
"item in remarkHistory"
>
<p
class=
"date"
>
{{ item.createdTime }}
</p>
<p
class=
"text"
>
{{ item.remark }}
</p>
</li>
</ul>
</el-dialog>
<!-- 拨号弹窗 -->
<el-dialog
title=
"拨号"
:visible
.
sync=
"dialVisible"
width=
"300px"
center
>
<a
:href=
"'tel:' + dialPhoneNum"
>
拨打电话给: {{dialPhoneNum}}
</a>
<span
slot=
"footer"
class=
"dialog-footer"
>
<!-- <el-button type="primary" @click="gotoDialPhone">确 定</el-button> -->
<el-button
@
click=
"dialVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 导出弹窗 -->
<el-dialog
title=
"导出"
:visible
.
sync=
"exportModalVisible"
width=
"300px"
center
>
<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>
<!-- 浏览器检测弹窗 -->
<el-dialog
title=
"当前不是chome浏览器,去下载?"
:visible
.
sync=
"browserVisible"
width=
"300px"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"down"
>
确定
</el-button>
<el-button
@
click=
"browserVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 提醒去电脑弹窗 -->
<el-dialog
title=
"提示"
:visible
.
sync=
"phoneModalVisible"
width=
"300px"
center
>
<p>
请用电脑浏览器进行导出操作
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"phoneModalVisible = false"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
let
vm
=
null
;
import
{
openLoading
,
closeLoading
}
from
"../../common/utils"
;
export
default
{
computed
:
{
getSMSClass
()
{
if
(
vm
.
countDownNum
==
60
)
{
return
"button"
;
}
else
{
return
"button gray"
;
}
},
},
created
()
{
vm
=
this
;
// url的?后面有参数,则可调接口获取手机号及审批单号;
let
params
=
window
.
location
.
href
.
split
(
"?"
);
if
(
params
&&
params
.
length
>
1
)
{
vm
.
afterParam
=
params
[
1
];
// console.log('afterParam: ', vm.afterParam)
vm
.
getPhoneNum
();
vm
.
getLabelStatus
();
}
else
{
alert
(
"访问的网页地址无效!"
);
}
// 获取图片验证码
vm
.
getCaptcha
();
},
mounted
()
{
vm
.
handleForbid
();
// 禁止默认事件
},
data
()
{
return
{
waterMark
:
""
,
// 水印图片地址
searchTableVisible
:
true
,
// 弹窗下面的 搜索按钮及表格等 是否显示
remarkDialogVisible
:
false
,
// 备注弹窗
newRemark
:
""
,
remarkHistory
:
[],
// 历史备注列表
SMSTips
:
"获取短信验证码"
,
countDownNum
:
60
,
// 倒计时
timer
:
null
,
// 倒计时定时器
afterParam
:
""
,
dingdingNum
:
""
,
mobilePhone
:
""
,
captchaImg
:
""
,
// 图片验证码 url
captchaToken
:
""
,
// 图片验证码 token
addConditioDialogVisible
:
false
,
// 添加筛选条件
conditionForm
:
{},
tableDataList
:
{},
centerDialogVisible
:
true
,
// 验证弹窗
tableData
:
[],
captchaCode
:
""
,
// 图形验证码
smsCode
:
""
,
// 短信验证码
pageNo
:
1
,
pageSize
:
15
,
operationList
:
[
{
id
:
0
,
value
:
"备注"
},
{
id
:
1
,
value
:
"标记"
},
{
id
:
2
,
value
:
"标签"
},
{
id
:
3
,
value
:
"拨号"
},
],
dataProjectStates
:
[],
dataProjectLabels
:
[],
dataProjectContents
:
[],
labelStatus
:
""
,
remark
:
""
,
tagVisible
:
false
,
//标记处理弹窗
tagStatus
:
""
,
labelVisible
:
false
,
//添加标签筛选弹窗
setLabelVisible
:
false
,
//添加设置标签弹窗
setLabelList
:
[],
uploadLabelList
:
[],
historyLabelList
:
{},
dialVisible
:
false
,
//拨号弹窗
dialPhoneNum
:
""
,
showExportBtn
:
false
,
// 是否显示 导出按钮
exportModalVisible
:
false
,
// 导出弹窗
checkExportData
:
{
dataExportTotal
:
0
,
// 总的
dataExportCount
:
0
,
// 剩余的
},
phoneModalVisible
:
false
,
browserVisible
:
false
,
};
},
methods
:
{
handleForbid
()
{
document
.
oncontextmenu
=
function
()
{
return
false
;
};
document
.
oncopy
=
function
()
{
return
false
;
};
document
.
onpaste
=
function
()
{
return
false
;
};
document
.
onselectstart
=
function
()
{
return
false
;
};
},
handleRemarkClose
()
{
vm
.
newRemark
=
""
;
vm
.
remarkHistory
=
[];
},
getWaterMark
()
{
let
data
=
{
parame
:
vm
.
afterParam
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
// debugger;
if
(
res
.
data
)
{
vm
.
waterMark
=
res
.
data
;
vm
.
setWaterMark
();
// 设置水印背景
}
else
{
vm
.
$message
.
error
(
"网络出现点问题"
);
}
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/image`
,
data
,
callback
);
},
setWaterMark
()
{
let
bg
=
document
.
getElementsByClassName
(
"data-view-message-wrap"
)[
0
];
// bg.style.background = `url(${vm.waterMark}) repeat`;
bg
.
style
.
background
=
"url('"
+
vm
.
waterMark
+
"') repeat"
;
bg
.
style
.
backgroundSize
=
"300px auto"
;
},
getRowClass
({
row
,
column
,
rowIndex
,
columnIndex
})
{
return
"background: rgba(255,255,255,0.2)"
;
},
confirmSendRemark
()
{
// 添加备注信息
if
(
vm
.
newRemark
.
trim
()
==
""
)
{
vm
.
$message
.
error
(
"请先输入备注信息!"
);
return
;
}
let
data
=
{
dataContentId
:
vm
.
currentRow
.
contentId
,
dataUserContentId
:
vm
.
currentRow
.
dataUserContentId
,
remark
:
vm
.
newRemark
.
trim
(),
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
remarkDialogVisible
=
false
;
vm
.
handleSearch
();
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataRemark`
,
data
,
callback
);
},
handleSizeChange
(
val
)
{
console
.
log
(
"size change ......."
);
vm
.
pageSize
=
val
;
vm
.
handleSearch
();
},
handleCurrentChange
(
val
)
{
console
.
log
(
"currentPage change ......."
);
vm
.
pageNo
=
val
;
vm
.
handleSearch
();
},
// 获取编号和手机号
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
);
},
// 获取图形验证码
getCaptcha
()
{
let
callback
=
(
res
)
=>
{
if
(
res
.
code
===
"000000"
)
{
vm
.
captchaImg
=
`data:image/png;base64,
${
res
.
data
.
content
}
`
;
vm
.
captchaToken
=
res
.
data
.
token
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/account/account/captcha`
,
{},
callback
);
},
// 图片验证码点击
handleImgClick
()
{
vm
.
getCaptcha
();
},
// 获取短信验证码
getSMSCode
()
{
if
(
vm
.
captchaCode
==
""
)
{
vm
.
$message
.
error
(
"请输入图形验证码"
);
return
;
}
// 倒计时过程中不可点
if
(
vm
.
countDownNum
!=
60
)
{
// console.log('现在倒计时过程中...不可点击')
return
;
}
// 获取短信验证码
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
();
}
};
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
;
}
},
1000
);
},
handleCheckConfirm
()
{
if
(
vm
.
captchaCode
==
""
)
{
vm
.
$message
.
error
(
"请输入图形验证码"
);
return
;
}
if
(
vm
.
smsCode
==
""
)
{
vm
.
$message
.
error
(
"请输入短信验证码"
);
return
;
}
// 调用 /mobileCheck/check/mobilecode 接口
// 校验 短信验证码
let
data
=
{
parame
:
vm
.
afterParam
,
mobileCode
:
vm
.
smsCode
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
searchTableVisible
=
true
;
// 短信验证码校验成功,显示背后的内容
vm
.
getTableList
();
}
else
{
vm
.
$message
.
error
(
res
.
message
);
vm
.
getCaptcha
();
vm
.
captchaCode
=
""
;
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/mobileCheck/check/mobilecode`
,
data
,
callback
);
},
getTableList
(
isManualClick
)
{
// debugger;
let
data
=
{
columnMap
:
{},
labelMap
:
{},
parame
:
vm
.
afterParam
,
pageNo
:
vm
.
pageNo
,
pageSize
:
vm
.
pageSize
,
projectStateId
:
vm
.
labelStatus
,
remark
:
vm
.
remark
,
};
if
(
isManualClick
)
{
// 如果添加了筛选条件,则将其合并到 查询接口的传参中
let
stringData
=
JSON
.
stringify
(
vm
.
conditionForm
);
if
(
stringData
!=
"{}"
)
{
let
condition
=
JSON
.
parse
(
stringData
);
for
(
let
key
in
condition
)
{
data
.
columnMap
[
key
]
=
condition
[
key
];
}
}
if
(
vm
.
dataProjectLabels
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
vm
.
dataProjectLabels
.
length
;
i
++
)
{
console
.
log
(
"getTableList() : key = "
+
vm
.
dataProjectLabels
[
i
].
labelCode
+
", value = "
+
vm
.
dataProjectContents
[
i
]
);
data
.
labelMap
[
vm
.
dataProjectLabels
[
i
].
labelCode
]
=
vm
.
dataProjectContents
[
i
];
}
}
}
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
centerDialogVisible
=
false
;
vm
.
captchaCode
=
""
;
vm
.
smsCode
=
""
;
vm
.
tableDataList
=
res
.
data
;
if
(
typeof
res
.
data
.
dataExportCount
!=
"undefined"
&&
res
.
data
.
dataExportCount
>
0
)
{
vm
.
showExportBtn
=
true
;
}
vm
.
$nextTick
(()
=>
{
if
(
vm
.
afterParam
)
{
vm
.
getWaterMark
();
// 获取水印
}
});
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/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
();
},
//下拉操作列表点击
dealOperationClick
(
row
)
{
// console.log("dealOperationClick() : row.remark = " + row.remark);
vm
.
currentRow
=
row
;
},
dealOperationChanged
(
item
)
{
console
.
log
(
"dealOperationChanged() : item = "
+
item
.
value
);
},
showRemarkModal
(
row
)
{
vm
.
remarkDialogVisible
=
true
;
vm
.
currentRow
=
row
;
// 获取备注信息
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
remarkHistory
=
res
.
data
.
remarks
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/sensitive/dataRemark?dataContentId=
${
row
.
contentId
}
`
,
{},
callback
);
},
// 标记处理点击
handleTagClick
(
row
)
{
vm
.
currentRow
=
row
;
this
.
tagVisible
=
true
;
},
dealTagClick
()
{
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
$message
({
type
:
"success"
,
message
:
"标记状态设置成功"
,
});
vm
.
handleSearch
();
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
vm
.
tagVisible
=
false
;
};
vm
.
sendRequest
(
"get"
,
`/sensitive/dataSearch/changeStatus?dataUserContentId=
${
vm
.
currentRow
.
dataUserContentId
}
&dataContentId=
${
vm
.
currentRow
.
contentId
}
&projectStateId=
${
vm
.
tagStatus
}
`
,
{},
callback
);
},
//每一项的标签点击
handleSetLabelClick
(
row
)
{
vm
.
currentRow
=
row
;
vm
.
setLabelVisible
=
true
;
// 获取历史标签信息
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
historyLabelList
=
res
.
data
;
// console.log(
// "handleSetLabelClick() : vm.historyLabelList = " +
// vm.historyLabelList.menus.length
// );
if
(
vm
.
dataProjectLabels
==
null
||
vm
.
dataProjectLabels
==
""
)
{
vm
.
$message
.
info
(
"未设置过标签"
);
}
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
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
;
}
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
);
},
//拨号
dialPhone
(
row
)
{
console
.
log
(
"tableDataList.columnList() : "
+
row
.
column1
);
vm
.
dialPhoneNum
=
row
.
column1
;
vm
.
dialVisible
=
true
;
},
handleAddConditionConfirm
()
{
vm
.
addConditioDialogVisible
=
false
;
vm
.
pageNo
=
1
;
},
showExportModal
()
{
if
(
vm
.
checkChrome
())
{
console
.
log
(
"导出检测,是chome"
);
vm
.
browserVisible
=
false
;
}
else
{
console
.
log
(
"导出检测,是其它浏览器"
);
vm
.
browserVisible
=
true
;
return
;
}
let
phoneStatus
=
vm
.
isCellphone
();
if
(
phoneStatus
)
{
vm
.
phoneModalVisible
=
true
;
vm
.
exportModalVisible
=
false
;
return
;
}
// 待接口提供后 请求接口获取excel, 再出发下载
vm
.
checkExport
();
},
// 导出前的check
checkExport
()
{
let
data
=
{
parame
:
vm
.
afterParam
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
"导出前校验》》》》 "
,
res
);
vm
.
checkExportData
.
dataExportTotal
=
res
.
data
.
dataExportTotal
;
vm
.
checkExportData
.
dataExportCount
=
res
.
data
.
dataExportCount
;
vm
.
exportModalVisible
=
true
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/check/exportWeb`
,
data
,
callback
);
},
// 确定导出
handleExport
()
{
let
data
=
{
parame
:
vm
.
afterParam
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
"正式导出》》》》 "
,
res
);
// 执行下载excel
vm
.
downloadFile
(
res
.
data
.
path
,
res
.
data
.
fileName
);
vm
.
exportModalVisible
=
false
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/exportWeb`
,
data
,
callback
);
},
isCellphone
()
{
let
ua
=
window
.
navigator
.
userAgent
.
toLowerCase
();
let
ios
=
/
(
iphone|ipad|ipod|ios
)
/i
.
test
(
ua
);
let
android
=
/
(
android
)
/i
.
test
(
ua
);
return
ios
||
android
;
},
downloadFile
(
base64
,
fileName
)
{
let
a
=
document
.
createElement
(
"a"
);
let
uploadHref
=
"data:application/xls;base64,"
+
base64
;
a
.
setAttribute
(
"href"
,
uploadHref
);
let
exportFileName
=
fileName
;
a
.
setAttribute
(
"download"
,
exportFileName
);
a
.
click
();
},
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/"
;
},
sendRequest
(
type
,
url
,
params
,
callback
)
{
openLoading
(
vm
);
url
=
localStorage
.
getItem
(
"lectureUrl"
)
+
url
;
vm
.
$axios
[
type
](
url
,
params
)
.
then
((
res
)
=>
{
closeLoading
(
vm
);
res
=
res
.
data
;
callback
(
res
);
})
.
catch
((
error
)
=>
{
vm
.
$message
.
error
(
"网络出现点问题"
);
});
},
getLabelStatus
()
{
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
dataProjectStates
=
res
.
data
.
dataProjectStates
;
vm
.
dataProjectLabels
=
res
.
data
.
dataProjectLabels
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/sensitive/visit/statusWeb?patame=
${
vm
.
afterParam
}
`
,
{},
callback
);
},
handleLabelClick
()
{
this
.
labelVisible
=
false
;
},
},
};
</
script
>
<
style
lang=
"less"
>
.header {
height: 0 !important;
overflow: hidden;
left: 0 !important;
}
.sidebar {
width: 0;
overflow: hidden;
}
.content {
left: 0 !important;
top: 0 !important;
}
.el-message {
min-width: 310px !important;
width: 310px !important;
max-width: 310px !important;
}
.data-view-message-wrap {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
user-select: none;
.no-table-data {
width: 100%;
height: 400px;
line-height: 400px;
text-align: center;
color: #606266;
font-size: 14px;
}
.class-top-row {
overflow-x: scroll;
.button-wrap {
margin: 20px 0;
width: 600px;
.each-button {
// float: right;
margin: 0px 0px 0 20px;
}
}
}
.el-table {
-webkit-overflow-scrolling: touch;
}
.check-modal-box {
.el-dialog__header {
display: none;
}
.el-dialog__body {
padding: 15px 15px 30px !important;
}
.captcha-wrap {
margin-top: 24px;
overflow: hidden;
.el-input {
width: 150px;
float: left;
}
img {
float: left;
cursor: pointer;
display: block;
border: none;
width: 100px;
height: 32px;
margin-left: 10px;
background: #fff;
}
}
.sms-wrap {
margin-top: 14px;
overflow: hidden;
.el-input {
width: 150px;
float: left;
}
.button {
float: left;
cursor: default;
width: 100px;
height: 32px;
margin-left: 10px;
font-size: 13px;
text-align: center;
line-height: 32px;
color: #409eff;
&.gray {
color: #606266;
}
}
}
}
ul,
li {
list-style: none;
}
.remark-modal {
.el-dialog__body {
overflow: hidden;
padding: 0 10px 30px !important;
.remark-confirm-btn {
float: right;
margin-top: 10px;
}
.history-list {
margin-top: 60px;
li {
margin-bottom: 5px;
line-height: 20px;
.text {
word-break: break-all;
text-indent: 12px;
line-height: 22px;
}
}
}
}
}
.pagination-style {
margin: 20px 0;
float: right;
width: 100%;
text-align: right;
overflow: hidden;
overflow-x: scroll;
-webkit-overflow-scrolling: touch;
.el-pagination__total {
margin-left: 25px;
}
.el-pagination__jump {
padding-right: 25px;
}
}
.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
>
src/views/sensitive-control/data-view.vue
已删除
100644 → 0
浏览文件 @
fcb087a4
<
template
>
<div
class=
"data-view-wrap"
>
<h2
class=
"top-title"
>
数据查看
</h2>
<el-form
:inline=
"true"
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
class=
"search-ruleForm"
>
<el-form-item
label=
"钉钉流程审批单号"
prop=
"dingdingNumber"
>
<el-input
v-model=
"ruleForm.dingdingNumber"
size=
"small"
class=
"input"
clearable
@
input=
"handleDingNumChange"
@
clear=
"handleDingNumClear"
@
keydown
.
native=
"numInputLimit"
maxlength=
"21"
></el-input>
</el-form-item>
<el-form-item
label=
"数据申请日期"
prop=
"dingdingDate"
>
<el-select
v-model=
"ruleForm.dingdingDate"
size=
"small"
placeholder=
"请选择"
clearable
@
change=
"handleApplyDateChange"
@
clear=
"handleApplyDateClear"
>
<el-option
v-for=
"item in applyDateList"
:key=
"item"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"sheet名"
prop=
"sheet"
>
<el-select
v-model=
"ruleForm.sheet"
size=
"small"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"item in sheetsList"
:key=
"item"
:label=
"item"
:value=
"item"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"标记状态"
>
<el-select
v-model=
"ruleForm.labelStatus"
size=
"small"
placeholder=
"请选择"
clearable
>
<el-option
v-for=
"item in dataProjectStates"
:key=
"item.id"
:label=
"item.value"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"remark"
>
<el-input
v-model=
"ruleForm.remark"
size=
"small"
style=
"width:220px"
class=
"input"
placeholder
clearable
></el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"margin-left: 50px;"
@
click=
"showAddConditionModal"
>
添加筛选条件
</el-button>
<el-button
type=
"primary"
@
click=
"labelVisible=true"
>
添加标签筛选
</el-button>
<el-button
type=
"primary"
@
click=
"handleSend"
v-if=
"showSendBtn"
>
分发
</el-button>
<el-button
type=
"primary"
@
click=
"checkExport"
v-if=
"showExportBtn"
>
导出
</el-button>
<el-button
type=
"primary"
@
click=
"exportNormalModalVisible=true"
v-if=
"showNormalExportBtn"
>
常规导出
</el-button>
<el-button
type=
"primary"
@
click=
"ruleForm.pageNo=1;submitForm('ruleForm')"
>
查询
</el-button>
</el-form-item>
</el-form>
<template
v-if=
"isSearchSend"
>
<el-table
v-if=
"tableDataList && tableDataList.outModels && tableDataList.outModels.length > 0"
ref=
"multipleTable"
:data=
"tableDataList.outModels"
:row-style=
"getRowClass"
:header-row-style=
"getRowClass"
:header-cell-style=
"getRowClass"
border
tooltip-effect=
"dark"
style=
"width: 100%"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
align=
"center"
width=
"55"
></el-table-column>
<template
v-if=
"tableDataList && tableDataList.columnList"
v-for=
"item in tableDataList.columnList"
>
<el-table-column
:prop=
"item.key"
align=
"center"
:label=
"item.value"
show-overflow-tooltip
></el-table-column>
</
template
>
<el-table-column
v-if=
"tableDataList && tableDataList.columnList"
prop=
"userName"
align=
"center"
label=
"数据查看人员"
show-overflow-tooltip
></el-table-column>
<el-table-column
label=
"备注"
prop=
"remark"
align=
"center"
></el-table-column>
<el-table-column
label=
"标记状态"
prop=
"statusValue"
align=
"center"
></el-table-column>
<el-table-column
fixed=
"right"
align=
"center"
label=
"操作"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<el-button
@
click=
"handleRemarkClick(scope.row)"
type=
"text"
size=
"small"
>
备注
</el-button>
<el-button
@
click=
"handleTagClick(scope.row)"
type=
"text"
size=
"small"
:disabled=
"scope.row.status == 1"
>
{{
scope
.
row
.
status
==
1
?
'已处理'
:
'标记处理'
}}
</el-button>
<el-button
@
click=
"handleSetLabelClick(scope.row)"
type=
"text"
size=
"small"
>
标签
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"no-table-data"
v-else
>
暂无数据
</div>
<!-- 分页 -->
<el-pagination
v-if=
"tableDataList && tableDataList.outModels && tableDataList.outModels.length > 0"
class=
"pagination-style"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:total=
"tableDataList.total"
:current-page=
"ruleForm.pageNo"
:page-sizes=
"[15, 30, 50, 100]"
:page-size=
"ruleForm.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
></el-pagination>
</template>
<!-- 添加筛选条件 弹窗 -->
<el-dialog
title=
"添加筛选条件"
class=
"condition-dialog-wrap"
:visible
.
sync=
"addConditioDialogVisible"
:show-close=
"false"
width=
"500px"
center
>
<el-form
ref=
"form"
:model=
"conditionForm"
label-width=
"100px"
>
<
template
v-if=
"tableDataList && tableDataList.columnList"
v-for=
"item in tableDataList.columnList"
>
<el-form-item
:label=
"item.value"
style=
"width:400px;"
>
<el-input
v-model=
"conditionForm[item.key]"
size=
"small"
></el-input>
</el-form-item>
</
template
>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"handleClearCondition"
>
清 空
</el-button>
<el-button
type=
"primary"
@
click=
"handleAddConditionConfirm"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 分发 弹窗 -->
<el-dialog
title=
"分发"
:close-on-click-modal=
"false"
class=
"send-modal-box"
:visible
.
sync=
"sendDialogVisible"
width=
"500px"
center
>
<div
class=
"name-list"
>
<p
class=
"name"
>
{{selectedNameList}}
</p>
<p
class=
"after-text"
>
{{ "共" + multipleSelection.length + '人' }}
</p>
</div>
<div
class=
"people-choose"
>
<p
class=
"title"
>
人员选择
</p>
<el-select
v-model=
"dataUserDiss"
multiple
collapse-tags
placeholder=
"请选择"
class=
"people-select-comp"
>
<el-option
v-for=
"item in peopleList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"sendDialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirmSend"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 备注 弹窗 -->
<el-dialog
title=
"备注"
@
close=
"handleRemarkClose"
:close-on-click-modal=
"false"
class=
"remark-modal"
:visible
.
sync=
"remarkDialogVisible"
width=
"500px"
center
>
<el-input
type=
"textarea"
:rows=
"3"
placeholder=
"请输入内容"
v-model=
"newRemark"
></el-input>
<el-button
type=
"primary"
class=
"remark-confirm-btn"
@
click=
"confirmSendRemark"
>
确 定
</el-button>
<ul
class=
"history-list"
>
<li
v-for=
"item in remarkHistory"
>
<p
class=
"date"
>
{{ item.createdTime }}
</p>
<p
class=
"text"
>
{{ item.name + "-" + item.remark }}
</p>
</li>
</ul>
</el-dialog>
<!-- 导出弹窗 -->
<el-dialog
title=
"导出"
:visible
.
sync=
"exportModalVisible"
width=
"300px"
center
>
<p>
您当前数据总导出次数为:{{checkExportData.dataExportTotal}}次
</p>
<p>
剩余导出次数为:{{checkExportData.dataExportCount}}次
</p>
<p
style=
"margin-top: 10px;margin-bottom: 5px"
>
备注:请使用谷歌浏览器导出
</p>
<a
:href =
"'http://www.google.cn/chrome/'"
class=
"href-link"
>
点击下载
</a>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"exportModalVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleExport"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 常规导出弹窗 -->
<el-dialog
title=
"导出"
:visible
.
sync=
"exportNormalModalVisible"
width=
"300px"
center
>
<p>
只能导出已修改过标记状态的数据,
</p>
<p>
其它数据不可导出
</p>
<p
style=
"margin-top: 10px;margin-bottom: 5px"
>
备注:请使用谷歌浏览器导出
</p>
<a
:href =
"'http://www.google.cn/chrome/'"
class=
"href-link"
>
点击下载
</a>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"exportNormalModalVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleNormalExport"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 浏览器检测弹窗 -->
<el-dialog
title=
"当前不是chome浏览器,去下载?"
:visible
.
sync=
"browserVisible"
width=
"300px"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"down"
>
确定
</el-button>
<el-button
@
click=
"browserVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 标记处理弹窗 -->
<el-dialog
title=
"标记状态"
:visible
.
sync=
"tagVisible"
width=
"300px"
center
>
<el-select
v-model=
"tagStatus"
size=
"small"
placeholder=
"请选择"
clearable
style=
"margin-left: 20px"
>
<el-option
v-for=
"item in dataProjectStates"
:key=
"item.id"
:label=
"item.value"
:value=
"item.id"
></el-option>
</el-select>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"dealTagClick"
>
确 定
</el-button>
<el-button
@
click=
"tagVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 添加标签筛选条件弹窗 -->
<el-dialog
title=
"标签筛选条件"
:visible
.
sync=
"labelVisible"
width=
"400px"
center
>
<div
v-if=
"dataProjectLabels"
v-for=
"(item,i) in dataProjectLabels"
align=
"center"
>
<div
class=
"same-line-class"
style=
"margin-right:20px;"
>
{{item.labelValue}}
</div>
<div
class=
"same-line-class"
>
<el-input
v-model=
"dataProjectContents[i]"
size=
"small"
/>
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleLabelClick"
>
确 定
</el-button>
<el-button
@
click=
"labelVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
<!-- 添加设置标签弹窗 -->
<el-dialog
title=
"设置标签"
:visible
.
sync=
"setLabelVisible"
min-width=
"500px"
center
>
<div
v-if=
"dataProjectLabels"
v-for=
"(item, i) in dataProjectLabels"
align=
"center"
>
<div
class=
"same-line-class"
style=
"margin-right:20px;"
>
{{item.labelValue}}
</div>
<div
class=
"same-line-class"
>
<el-input
v-model=
"setLabelList[i]"
size=
"small"
/>
</div>
</div>
<el-table
v-if=
"historyLabelList && historyLabelList.menus && historyLabelList.menus.length > 0"
ref=
"multipleTable"
:data=
"historyLabelList.datas"
:row-style=
"getRowClass"
:header-row-style=
"getRowClass"
:header-cell-style=
"getRowClass"
border
tooltip-effect=
"dark"
style=
"width: 100%;margin-top: 20px"
>
<
template
v-if=
"historyLabelList && historyLabelList.menus"
v-for=
"item in historyLabelList.menus"
>
<el-table-column
:prop=
"item.key"
:label=
"item.value"
:value=
"item.value"
align=
"center"
></el-table-column>
</
template
>
</el-table>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"dealSetLabelClick"
>
确 定
</el-button>
<el-button
@
click=
"setLabelVisible = false"
>
取 消
</el-button>
</span>
</el-dialog>
</div>
</template>
<
script
>
let
vm
=
null
;
import
{
openLoading
,
closeLoading
}
from
"../../common/utils"
;
export
default
{
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
{
selectedNameList
:
""
,
waterMark
:
""
,
// 水印图片地址
isSearchSend
:
false
,
// 是否有效查询过
showSendBtn
:
false
,
// 是否显示 分发按钮
showExportBtn
:
false
,
// 是否显示 导出按钮
showNormalExportBtn
:
false
,
// 是否显示 常规导出按钮
remarkHistory
:
[],
// 历史备注列表
ruleForm
:
{
columnMap
:
{},
dingdingNumber
:
""
,
dingdingDate
:
""
,
sheet
:
""
,
labelStatus
:
""
,
labelMap
:
{},
remark
:
""
,
pageNo
:
1
,
pageSize
:
15
,
},
rules
:
{
dingdingNumber
:
[
{
required
:
true
,
message
:
"请输入审批单号"
,
trigger
:
"blur"
},
{
validator
:
checkNumLength
,
trigger
:
[
"blur"
,
"change"
]
},
],
dingdingDate
:
[
{
required
:
true
,
message
:
"请选择数据申请日期"
,
trigger
:
"change"
},
],
sheet
:
[
{
required
:
true
,
message
:
"请选择sheet名"
,
trigger
:
"change"
},
],
},
tableDataList
:
{},
addConditioDialogVisible
:
false
,
// 添加筛选条件
conditionForm
:
{},
applyDateList
:
[],
sheetsList
:
[],
dataProjectStates
:
[],
dataProjectLabels
:
[],
dataProjectContents
:
[],
sendDialogVisible
:
false
,
//分发弹窗
dataUserDiss
:
[],
peopleList
:
[],
remarkDialogVisible
:
false
,
//备注弹窗
newRemark
:
""
,
multipleSelection
:
[],
exportModalVisible
:
false
,
// 导出弹窗
checkExportData
:
{
dataExportTotal
:
0
,
// 总的
dataExportCount
:
0
,
// 剩余的
},
exportNormalModalVisible
:
false
,
// 常规导出弹窗
tagVisible
:
false
,
//标记处理弹窗
tagStatus
:
""
,
labelVisible
:
false
,
//添加标签筛选弹窗
setLabelVisible
:
false
,
//添加设置标签弹窗
setLabelList
:
[],
uploadLabelList
:
[],
historyLabelList
:
{},
browserVisible
:
false
,
};
},
created
()
{
vm
=
this
;
if
(
vm
.
$route
.
query
.
dingdingNumber
)
{
// data-in 页面点击查看进来时,页面地址不变
// console.log('do nothing')
}
else
{
vm
.
$router
.
replace
(
"/data-view"
);
}
},
mounted
()
{
vm
.
getUrlQuery
();
vm
.
getWaterMark
();
// 获取水印
vm
.
handleForbid
();
// 禁止默认事件
},
methods
:
{
handleForbid
()
{
document
.
oncontextmenu
=
function
()
{
return
false
;
};
document
.
oncopy
=
function
()
{
return
false
;
};
// document.onpaste = function(){
// return false;
// }
document
.
onselectstart
=
function
()
{
return
false
;
};
},
getLabelStatus
()
{
console
.
log
(
"vm.ruleForm.dingdingNumber = "
+
vm
.
ruleForm
.
dingdingNumber
);
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
dataProjectStates
=
res
.
data
.
dataProjectStates
;
vm
.
dataProjectLabels
=
res
.
data
.
dataProjectLabels
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/sensitive/visit/status?dingdingNumber=
${
vm
.
ruleForm
.
dingdingNumber
}
&dingdingDate=
${
vm
.
ruleForm
.
dingdingDate
}
&dingdingSheet=
${
encodeURI
(
vm
.
ruleForm
.
sheet
)}
`
,
//${vm.ruleForm.sheet}
{},
callback
);
},
getUrlQuery
()
{
let
query
=
vm
.
$route
.
query
;
if
(
query
&&
query
.
dingdingNumber
)
{
vm
.
ruleForm
.
dingdingNumber
=
query
.
dingdingNumber
||
""
;
vm
.
ruleForm
.
dingdingDate
=
query
.
dingdingDate
||
""
;
vm
.
ruleForm
.
sheet
=
query
.
sheet
||
""
;
vm
.
submitForm
(
"ruleForm"
);
}
},
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
(
"网络出现点问题"
);
});
},
getRowClass
({
row
,
column
,
rowIndex
,
columnIndex
})
{
return
"background: rgba(255,255,255,0.2)"
;
},
getWaterMark
()
{
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
data
)
{
vm
.
waterMark
=
res
.
data
;
vm
.
setWaterMark
();
// 设置水印背景
}
else
{
vm
.
$message
.
error
(
"网络出现点问题"
);
}
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
'post'
,
`/sensitive/image`
,
{},
callback
);
},
setWaterMark
()
{
let
bg
=
document
.
getElementById
(
"bodyContent"
);
// bg.style.background = `url(${vm.waterMark}) repeat`;
bg
.
style
.
background
=
"url('"
+
vm
.
waterMark
+
"') repeat"
;
bg
.
style
.
backgroundSize
=
"300px auto"
;
},
handleClearCondition
()
{
// debugger;
vm
.
conditionForm
=
{};
vm
.
addConditioDialogVisible
=
false
;
},
handleDingNumChange
(
val
)
{
vm
.
ruleForm
.
dingdingDate
=
""
;
vm
.
ruleForm
.
sheet
=
""
;
vm
.
applyDateList
=
[];
vm
.
sheetsList
=
[];
if
(
val
&&
val
.
length
==
21
)
{
vm
.
getApplyDateList
();
}
else
if
(
val
&&
val
.
length
>
21
)
{
val
=
val
.
slice
(
0
,
21
);
vm
.
ruleForm
.
dingdingNumber
=
val
;
}
},
numInputLimit
(
e
)
{
let
key
=
e
.
key
;
// 不允许输入'e'和'.'
if
(
key
===
"e"
||
key
===
"."
)
{
e
.
returnValue
=
false
;
return
false
;
}
return
true
;
},
getApplyDateList
()
{
//获取 数据申请日期
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
)
{
vm
.
applyDateList
=
res
.
data
;
}
else
{
vm
.
applyDateList
=
[];
}
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/sensitive/visit/date?dingdingNumber=
${
vm
.
ruleForm
.
dingdingNumber
}
`
,
{},
callback
);
},
handleApplyDateChange
(
val
)
{
vm
.
ruleForm
.
sheet
=
""
;
vm
.
sheetsList
=
[];
if
(
val
)
{
vm
.
getSheets
();
}
},
handleDingNumClear
()
{
vm
.
ruleForm
.
dingdingDate
=
""
;
vm
.
applyDateList
=
[];
vm
.
handleApplyDateClear
();
},
handleApplyDateClear
()
{
vm
.
ruleForm
.
sheet
=
""
;
vm
.
sheetsList
=
[];
},
getSheets
()
{
// 获取 Sheets名
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
data
&&
res
.
data
.
length
>
0
)
{
vm
.
sheetsList
=
res
.
data
;
}
else
{
vm
.
sheetsList
=
[];
}
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/sensitive/visit/sheet?dingdingNumber=
${
vm
.
ruleForm
.
dingdingNumber
}
&dingdingDate=
${
vm
.
ruleForm
.
dingdingDate
}
`
,
{},
callback
);
},
confirmSendRemark
()
{
// 添加备注信息
if
(
vm
.
newRemark
.
trim
()
==
""
)
{
vm
.
$message
.
error
(
"请先输入备注信息!"
);
return
;
}
// vm.currentRow
let
data
=
{
dataContentId
:
vm
.
currentRow
.
contentId
,
dataUserContentId
:
vm
.
currentRow
.
dataUserContentId
,
remark
:
vm
.
newRemark
.
trim
(),
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
remarkDialogVisible
=
false
;
vm
.
submitForm
(
"ruleForm"
);
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataRemark`
,
data
,
callback
);
},
showAddConditionModal
()
{
vm
.
addConditioDialogVisible
=
true
;
},
handleSend
()
{
if
(
vm
.
multipleSelection
&&
vm
.
multipleSelection
.
length
==
0
)
{
vm
.
$message
.
error
(
"请先勾选表格!"
);
return
;
}
vm
.
dataUserDiss
=
[];
vm
.
sendDialogVisible
=
true
;
vm
.
getUserList
();
},
showExportModal
()
{
if
(
vm
.
checkChrome
())
{
console
.
log
(
"导出检测,是chome"
);
vm
.
browserVisible
=
false
;
}
else
{
console
.
log
(
"导出检测,是其它浏览器"
);
vm
.
browserVisible
=
true
;
return
;
}
// 待接口提供后 请求接口获取excel, 再出发下载
vm
.
checkExport
();
},
checkExport
()
{
vm
.
exportModalVisible
=
true
;
// /dataSearch/searchUserDis
// 查询分发人员列表
let
data
=
{
dingdingNum
:
vm
.
ruleForm
.
dingdingNumber
,
dingdingDate
:
vm
.
ruleForm
.
dingdingDate
,
dataSheetName
:
vm
.
ruleForm
.
sheet
,
};
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/export`
,
data
,
callback
);
},
handleExport
()
{
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
.
exportModalVisible
=
false
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/export`
,
data
,
callback
);
},
downloadFile
(
base64
,
fileName
)
{
let
a
=
document
.
createElement
(
"a"
);
let
uploadHref
=
"data:application/xls;base64,"
+
base64
;
a
.
setAttribute
(
"href"
,
uploadHref
);
let
exportFileName
=
fileName
;
a
.
setAttribute
(
"download"
,
exportFileName
);
a
.
click
();
},
handleNormalExport
()
{
let
data
=
{
dingdingNum
:
vm
.
ruleForm
.
dingdingNumber
,
dingdingDate
:
vm
.
ruleForm
.
dingdingDate
,
dataSheetName
:
vm
.
ruleForm
.
sheet
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
"常规导出》》》》 "
,
res
);
// 执行下载excel
vm
.
downloadFile
(
res
.
data
.
path
,
res
.
data
.
fileName
);
vm
.
exportNormalModalVisible
=
false
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/export/common`
,
data
,
callback
);
},
checkChrome
()
{
// return (navigator.appVersion.indexOf('Chrome') || navigator.appVersion.indexOf('chrome')) != -1;
return
this
.
getBroswer
().
broswer
==
'Chrome'
},
getBroswer
()
{
let
sys
=
{};
let
ua
=
navigator
.
userAgent
.
toLowerCase
();
let
s
;
(
s
=
ua
.
match
(
/edge
\/([\d
.
]
+
)
/
))
?
sys
.
edge
=
s
[
1
]
:
(
s
=
ua
.
match
(
/rv:
([\d
.
]
+
)\)
like gecko/
))
?
sys
.
ie
=
s
[
1
]
:
(
s
=
ua
.
match
(
/msie
([\d
.
]
+
)
/
))
?
sys
.
ie
=
s
[
1
]
:
(
s
=
ua
.
match
(
/firefox
\/([\d
.
]
+
)
/
))
?
sys
.
firefox
=
s
[
1
]
:
(
s
=
ua
.
match
(
/chrome
\/([\d
.
]
+
)
/
))
?
sys
.
chrome
=
s
[
1
]
:
(
s
=
ua
.
match
(
/opera.
([\d
.
]
+
)
/
))
?
sys
.
opera
=
s
[
1
]
:
(
s
=
ua
.
match
(
/version
\/([\d
.
]
+
)
.*safari/
))
?
sys
.
safari
=
s
[
1
]
:
0
;
if
(
sys
.
edge
)
return
{
broswer
:
"Edge"
,
version
:
sys
.
edge
};
if
(
sys
.
ie
)
return
{
broswer
:
"IE"
,
version
:
sys
.
ie
};
if
(
sys
.
firefox
)
return
{
broswer
:
"Firefox"
,
version
:
sys
.
firefox
};
if
(
sys
.
chrome
)
return
{
broswer
:
"Chrome"
,
version
:
sys
.
chrome
};
if
(
sys
.
opera
)
return
{
broswer
:
"Opera"
,
version
:
sys
.
opera
};
if
(
sys
.
safari
)
return
{
broswer
:
"Safari"
,
version
:
sys
.
safari
};
return
{
broswer
:
""
,
version
:
"0"
};
},
down
()
{
window
.
location
.
href
=
'http://www.google.cn/chrome/'
;
},
getUserList
()
{
// /dataSearch/searchUserDis
// 查询分发人员列表
let
data
=
{
dingdingNum
:
vm
.
ruleForm
.
dingdingNumber
,
dingdingDate
:
vm
.
ruleForm
.
dingdingDate
,
dataSheetName
:
vm
.
ruleForm
.
sheet
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
peopleList
=
res
.
data
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/searchUserDis`
,
data
,
callback
);
},
submitForm
(
formName
)
{
vm
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
let
data
=
{
columnMap
:
{},
labelMap
:
{},
dingdingNum
:
vm
.
ruleForm
.
dingdingNumber
,
dingdingDate
:
vm
.
ruleForm
.
dingdingDate
,
dataSheetName
:
vm
.
ruleForm
.
sheet
,
projectStateId
:
vm
.
ruleForm
.
labelStatus
,
remark
:
vm
.
ruleForm
.
remark
,
pageNo
:
vm
.
ruleForm
.
pageNo
,
pageSize
:
vm
.
ruleForm
.
pageSize
,
};
// 如果添加了筛选条件,则将其合并到 查询接口的传参中
let
stringData
=
JSON
.
stringify
(
vm
.
conditionForm
);
if
(
stringData
!=
"{}"
)
{
let
condition
=
JSON
.
parse
(
stringData
);
console
.
log
(
"submitForm() : condition = "
+
condition
);
for
(
let
key
in
condition
)
{
console
.
log
(
"submitForm() : key = "
+
key
);
data
.
columnMap
[
key
]
=
condition
[
key
];
}
}
if
(
vm
.
dataProjectLabels
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
vm
.
dataProjectLabels
.
length
;
i
++
)
{
console
.
log
(
"dataProjectLabels() : key = "
+
vm
.
dataProjectLabels
[
i
].
labelCode
+
", value = "
+
vm
.
dataProjectContents
[
i
]
);
data
.
labelMap
[
vm
.
dataProjectLabels
[
i
].
labelCode
]
=
vm
.
dataProjectContents
[
i
];
}
}
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
isSearchSend
=
true
;
vm
.
tableDataList
=
res
.
data
;
if
(
typeof
res
.
data
.
dataRole
!=
"undefined"
&&
res
.
data
.
dataRole
==
1
)
{
vm
.
showSendBtn
=
true
;
}
if
(
typeof
res
.
data
.
dataExportCount
!=
"undefined"
&&
res
.
data
.
dataExportCount
>
0
)
{
vm
.
showExportBtn
=
true
;
}
if
(
res
.
data
.
distributeRole
==
2
)
{
vm
.
showNormalExportBtn
=
true
;
}
vm
.
getLabelStatus
();
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/search`
,
data
,
callback
);
}
else
{
console
.
log
(
"error submit!!"
);
return
false
;
}
});
},
handleSizeChange
(
val
)
{
console
.
log
(
"size change ......."
);
vm
.
ruleForm
.
pageSize
=
val
;
vm
.
submitForm
(
"ruleForm"
);
},
handleCurrentChange
(
val
)
{
console
.
log
(
"currentPage change ......."
);
vm
.
ruleForm
.
pageNo
=
val
;
vm
.
submitForm
(
"ruleForm"
);
},
handleSelectionChange
(
val
)
{
vm
.
multipleSelection
=
val
;
// debugger;
let
firstColumn
=
vm
.
tableDataList
.
columnList
[
0
].
key
||
"column1"
;
let
str
=
""
;
let
tempNameList
=
[];
vm
.
multipleSelection
.
map
(
function
(
value
,
index
,
arr
)
{
tempNameList
.
push
(
value
[
firstColumn
]);
});
str
=
tempNameList
.
join
(
","
);
vm
.
selectedNameList
=
str
;
},
handleRemarkClick
(
row
)
{
vm
.
remarkDialogVisible
=
true
;
vm
.
currentRow
=
row
;
// 获取备注信息
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
remarkHistory
=
res
.
data
.
remarks
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"get"
,
`/sensitive/dataRemark?dataContentId=
${
row
.
contentId
}
`
,
{},
callback
);
},
handleSetLabelClick
(
row
)
{
vm
.
currentRow
=
row
;
vm
.
setLabelVisible
=
true
;
// 获取历史标签信息
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
historyLabelList
=
res
.
data
;
// console.log(
// "handleSetLabelClick() : vm.historyLabelList = " +
// vm.historyLabelList.menus.length
// );
if
(
vm
.
dataProjectLabels
==
null
||
vm
.
dataProjectLabels
==
""
)
{
vm
.
$message
.
info
(
"未设置过标签"
)
}
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
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
;
}
let
data
=
{
contentId
:
vm
.
currentRow
.
contentId
,
dataUserContentId
:
vm
.
currentRow
.
dataUserContentId
,
list
:
tmpList
,
projectMainId
:
0
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
// vm.peopleList = res.data;
this
.
$message
({
type
:
"success"
,
message
:
"设置标签成功"
,
});
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
vm
.
setLabelVisible
=
false
;
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/labels`
,
data
,
callback
);
},
handleTagClick
(
row
)
{
vm
.
currentRow
=
row
;
this
.
tagVisible
=
true
;
},
dealTagClick
()
{
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
$message
({
type
:
"success"
,
message
:
"标记状态设置成功"
,
});
vm
.
submitForm
(
"ruleForm"
);
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
vm
.
tagVisible
=
false
;
};
vm
.
sendRequest
(
"get"
,
`/sensitive/dataSearch/changeStatus?dataUserContentId=
${
vm
.
currentRow
.
dataUserContentId
}
&dataContentId=
${
vm
.
currentRow
.
contentId
}
&projectStateId=
${
vm
.
tagStatus
}
`
,
{},
callback
);
},
handleLabelClick
()
{
this
.
labelVisible
=
false
;
},
handleRemarkClose
()
{
vm
.
newRemark
=
""
;
vm
.
remarkHistory
=
[];
},
handleConfirmSend
()
{
if
(
vm
.
dataUserDiss
&&
vm
.
dataUserDiss
.
length
==
0
)
{
vm
.
$message
.
error
(
"请先勾选人员!"
);
return
;
}
let
selectListIds
=
[];
vm
.
multipleSelection
.
map
(
function
(
value
,
index
,
arr
)
{
selectListIds
.
push
(
value
.
contentId
);
});
let
data
=
{
dataUserDiss
:
vm
.
dataUserDiss
,
dataCountIds
:
selectListIds
,
dataInfoId
:
vm
.
tableDataList
.
dataInfoId
,
};
let
callback
=
(
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
sendDialogVisible
=
false
;
}
else
{
vm
.
$message
.
error
(
res
.
message
);
}
};
vm
.
sendRequest
(
"post"
,
`/sensitive/dataSearch/postUser`
,
data
,
callback
);
},
handleAddConditionConfirm
()
{
vm
.
addConditioDialogVisible
=
false
;
vm
.
ruleForm
.
pageNo
=
1
;
},
},
};
</
script
>
<
style
lang=
"less"
>
.data-view-wrap {
// 处理input type = number的上下箭头
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
user-select: none;
ul,
li {
list-style: none;
}
.top-title {
color: #333333;
}
.search-ruleForm {
margin-top: 20px;
.input {
width: 215px;
}
.add-icon {
font-size: 40px;
font-weight: 700;
color: #606266;
vertical-align: middle;
margin-left: 10px;
&:hover {
cursor: pointer;
}
}
}
.condition-dialog-wrap {
.el-form-item__label {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.remark-modal {
.el-dialog__body {
overflow: hidden;
.remark-confirm-btn {
float: right;
margin-top: 10px;
}
.history-list {
margin-top: 60px;
li {
margin-bottom: 5px;
line-height: 20px;
.text {
line-height: 22px;
text-indent: 12px;
word-break: break-all;
}
}
}
}
}
.send-modal-box {
.people-choose {
margin-top: 30px;
.title {
display: inline-block;
}
.people-select-comp {
margin-left: 20px;
}
}
.name-list {
width: 450px;
height: 24px;
line-height: 24px;
.name {
max-width: 385px;
float: left;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.after-text {
float: left;
display: block;
width: 55px;
margin-left: 5px;
}
}
}
.no-table-data {
width: 100%;
height: 400px;
line-height: 400px;
text-align: center;
color: #606266;
font-size: 14px;
}
.pagination-style {
margin-top: 30px;
float: right;
}
.tebale_card {
background: rgba(255, 255, 255, 0.2);
}
.el-table,
.el-table__expanded-cell {
background: rgba(255, 255, 255, 0.2);
}
.el-table {
.el-table__fixed-right {
background: #fff;
}
}
.same-line-class {
margin-top: 20px;
display: inline-block;
}
.href-link {
color: red;
}
}
</
style
>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录