|
|
|
@ -4,62 +4,80 @@ |
|
|
|
<!-- 搜索区域 --> |
|
|
|
<div class="search-container" @keyup.enter="searchDM"> |
|
|
|
<div class="search-form"> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">账号</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDM.dccode" |
|
|
|
placeholder="请输入账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">姓名</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDM.dcname" |
|
|
|
placeholder="请输入姓名" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">归属</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDM.inviter" |
|
|
|
placeholder="请输入归属账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">客户类型</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDM.user_role" |
|
|
|
placeholder="请选择客户类型" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
> |
|
|
|
<el-option label="非网" value="2" /> |
|
|
|
<el-option label="会员" value="1" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">地区</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDM.market" |
|
|
|
placeholder="请选择地区" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
:loading="isRegionLoading" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="region in regionList" |
|
|
|
:key="region.ID" |
|
|
|
:label="region.Name" |
|
|
|
:value="region.ID" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
<div class="search-group"> |
|
|
|
<div class="search-group1"> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">账号</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDM.dccode" |
|
|
|
placeholder="请输入账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">姓名</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDM.dcname" |
|
|
|
placeholder="请输入姓名" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">归属</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDM.inviter" |
|
|
|
placeholder="请输入归属账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="search-group2"> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">是否登录过</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDM.is_login" |
|
|
|
placeholder="请选择是否登录过" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
> |
|
|
|
<el-option label="登录过" value="1" /> |
|
|
|
<el-option label="未登录过" value="0" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">客户类型</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDM.user_role" |
|
|
|
placeholder="请选择客户类型" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
> |
|
|
|
<el-option label="非网" value="2" /> |
|
|
|
<el-option label="会员" value="1" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="search-item"> |
|
|
|
<span class="form-label">地区</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDM.market" |
|
|
|
placeholder="请选择地区" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
:loading="isRegionLoading" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="region in regionList" |
|
|
|
:key="region.ID" |
|
|
|
:label="region.Name" |
|
|
|
:value="region.ID" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="button-group"> |
|
|
|
<el-button type="primary" @click="searchDM">搜索</el-button> |
|
|
|
@ -107,6 +125,26 @@ |
|
|
|
<el-table-column prop="dccode" label="账号" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="dcname" label="姓名" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="inviter" label="归属" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="is_login" label="是否登录" align="center" header-align="center"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tag |
|
|
|
v-if="scope.row.is_login === 1" |
|
|
|
:key="1" |
|
|
|
type="success" |
|
|
|
effect="light" |
|
|
|
> |
|
|
|
登录过 |
|
|
|
</el-tag> |
|
|
|
<el-tag |
|
|
|
v-else |
|
|
|
:key="2" |
|
|
|
type="error" |
|
|
|
effect="light" |
|
|
|
> |
|
|
|
没登录过 |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="module_name" label="模块名称" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="token_num" label="token数量" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="updated_at" label="操作时间" align="center" header-align="center" sortable="custom"/> |
|
|
|
@ -186,87 +224,106 @@ |
|
|
|
<div class="search-containerDE" @keyup.enter="searchDE"> |
|
|
|
<!-- 输入项区域 --> |
|
|
|
<div class="search-formDE"> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">账号</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDE.dccode" |
|
|
|
placeholder="请输入账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">姓名</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDE.dcname" |
|
|
|
placeholder="请输入姓名" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">归属</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDE.inviter" |
|
|
|
placeholder="请输入归属账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">客户类型</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.user_role" |
|
|
|
placeholder="请选择客户类型" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
> |
|
|
|
<el-option label="非网" value="2" /> |
|
|
|
<el-option label="会员" value="1" /> |
|
|
|
</el-select> |
|
|
|
<div class="search-groupDE"> |
|
|
|
<div class="search-groupDE1"> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">账号</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDE.dccode" |
|
|
|
placeholder="请输入账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">姓名</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDE.dcname" |
|
|
|
placeholder="请输入姓名" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">归属</span> |
|
|
|
<el-input |
|
|
|
v-model="searchFormDE.inviter" |
|
|
|
placeholder="请输入归属账号" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 180px;" |
|
|
|
/> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="search-groupDE2"> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">是否登录过</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.is_login" |
|
|
|
placeholder="请选择是否登录过" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 140px;" |
|
|
|
> |
|
|
|
<el-option label="登录过" value="1" /> |
|
|
|
<el-option label="未登录过" value="0" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">客户类型</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.user_role" |
|
|
|
placeholder="请选择客户类型" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
> |
|
|
|
<el-option label="非网" value="2" /> |
|
|
|
<el-option label="会员" value="1" /> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">地区</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.market" |
|
|
|
placeholder="请选择地区" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
:loading="isRegionLoading" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="region in regionList" |
|
|
|
:key="region.ID" |
|
|
|
:label="region.Name" |
|
|
|
:value="region.ID" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">指标名称</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.indicator_id" |
|
|
|
placeholder="请选择指标名称" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in indicatorOptions" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">地区</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.market" |
|
|
|
placeholder="请选择地区" |
|
|
|
clearable |
|
|
|
filterable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
:loading="isRegionLoading" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="region in regionList" |
|
|
|
:key="region.ID" |
|
|
|
:label="region.Name" |
|
|
|
:value="region.ID" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
|
|
|
|
<!-- 按钮组 --> |
|
|
|
<div class="button-groupDE"> |
|
|
|
<el-button type="primary" @click="searchDE">搜索</el-button> |
|
|
|
<el-button type="danger" @click="enableAccessDE">开通权限</el-button> |
|
|
|
<el-button type="success" @click="exportExcelDE">导出Excel列表</el-button> |
|
|
|
<el-button color="#626aef" @click="exportListDE">查看导出列表</el-button> |
|
|
|
<el-button type="primary" @click="resetBnDE">重置</el-button> |
|
|
|
</div> |
|
|
|
<div class="search-itemDE"> |
|
|
|
<span class="form-labelDE">指标名称</span> |
|
|
|
<el-select |
|
|
|
v-model="searchFormDE.indicator_id" |
|
|
|
placeholder="请选择指标名称" |
|
|
|
clearable |
|
|
|
style="height: 36px; width: 160px;" |
|
|
|
> |
|
|
|
<el-option |
|
|
|
v-for="item in indicatorOptions" |
|
|
|
:key="item.id" |
|
|
|
:label="item.name" |
|
|
|
:value="item.id" |
|
|
|
/> |
|
|
|
</el-select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- 按钮组 --> |
|
|
|
<div class="button-groupDE"> |
|
|
|
<el-button type="primary" @click="searchDE">搜索</el-button> |
|
|
|
<el-button type="danger" @click="enableAccessDE">开通权限</el-button> |
|
|
|
<el-button type="success" @click="exportExcelDE">导出Excel列表</el-button> |
|
|
|
<el-button color="#626aef" @click="exportListDE">查看导出列表</el-button> |
|
|
|
<el-button type="primary" @click="resetBnDE">重置</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
@ -306,6 +363,26 @@ |
|
|
|
<el-table-column prop="dccode" label="账号" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="dcname" label="姓名" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="inviter" label="归属" align="center" header-align="center"/> |
|
|
|
<el-table-column prop="is_login" label="是否登录" align="center" header-align="center"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tag |
|
|
|
v-if="scope.row.is_login === 1" |
|
|
|
:key="1" |
|
|
|
type="success" |
|
|
|
effect="light" |
|
|
|
> |
|
|
|
登录过 |
|
|
|
</el-tag> |
|
|
|
<el-tag |
|
|
|
v-else |
|
|
|
:key="2" |
|
|
|
type="error" |
|
|
|
effect="light" |
|
|
|
> |
|
|
|
没登录过 |
|
|
|
</el-tag> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="name" label="指标名称" align="center" header-align="center" width="200"> |
|
|
|
<template #default="scope"> |
|
|
|
<el-tooltip |
|
|
|
@ -530,6 +607,7 @@ const fetchRegionList = async () => { |
|
|
|
const searchFormDM = reactive({ |
|
|
|
dccode: '', |
|
|
|
dcname: '', |
|
|
|
is_login:'', |
|
|
|
inviter:'', |
|
|
|
market: '', |
|
|
|
user_role: '' |
|
|
|
@ -555,6 +633,7 @@ const DMTableData = async () => { |
|
|
|
token: token, |
|
|
|
dccode: searchFormDM.dccode, |
|
|
|
dcname: searchFormDM.dcname, |
|
|
|
is_login: searchFormDM.is_login, |
|
|
|
inviter: searchFormDM.inviter, |
|
|
|
market: searchFormDM.market, |
|
|
|
user_role: searchFormDM.user_role, |
|
|
|
@ -604,6 +683,7 @@ const searchDM = () => { |
|
|
|
const resetBnDM = () => { |
|
|
|
searchFormDM.dccode = ''; |
|
|
|
searchFormDM.dcname = ''; |
|
|
|
searchFormDM.is_login = ''; |
|
|
|
searchFormDM.inviter = ''; |
|
|
|
searchFormDM.market = ''; |
|
|
|
searchFormDM.user_role = ''; |
|
|
|
@ -625,6 +705,7 @@ const exportExcelDM = async () => { |
|
|
|
token: token, |
|
|
|
dccode: searchFormDM.dccode, |
|
|
|
dcname: searchFormDM.dcname, |
|
|
|
is_login: searchFormDM.is_login, |
|
|
|
inviter: searchFormDM.inviter, |
|
|
|
market: searchFormDM.market, |
|
|
|
user_role: searchFormDM.user_role, |
|
|
|
@ -808,6 +889,7 @@ const indicatorList = async () => { |
|
|
|
const searchFormDE = reactive({ |
|
|
|
dccode: '', |
|
|
|
dcname: '', |
|
|
|
is_login:'', |
|
|
|
inviter: '', |
|
|
|
market: '', |
|
|
|
user_role: '', |
|
|
|
@ -859,6 +941,7 @@ const DETableData = async () => { |
|
|
|
token: token, |
|
|
|
dccode: searchFormDE.dccode, |
|
|
|
dcname: searchFormDE.dcname, |
|
|
|
is_login: searchFormDE.is_login, |
|
|
|
inviter: searchFormDE.inviter, |
|
|
|
market: searchFormDE.market, |
|
|
|
user_role: searchFormDE.user_role, |
|
|
|
@ -890,6 +973,7 @@ const searchDE = () => { |
|
|
|
const resetBnDE = () => { |
|
|
|
searchFormDE.dccode = ''; |
|
|
|
searchFormDE.dcname = ''; |
|
|
|
searchFormDE.is_login = ''; |
|
|
|
searchFormDE.inviter = ''; |
|
|
|
searchFormDE.market = ''; |
|
|
|
searchFormDE.user_role = ''; |
|
|
|
@ -907,6 +991,7 @@ const exportExcelDE = async () => { |
|
|
|
token: token, |
|
|
|
dccode: searchFormDE.dccode, |
|
|
|
dcname: searchFormDE.dcname, |
|
|
|
is_login: searchFormDE.is_login, |
|
|
|
inviter: searchFormDE.inviter, |
|
|
|
market: searchFormDE.market, |
|
|
|
user_role: searchFormDE.user_role, |
|
|
|
@ -1207,6 +1292,22 @@ const openDetail = async(dccode) => { |
|
|
|
row-gap: 8px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 搜索组 */ |
|
|
|
.search-group { |
|
|
|
} |
|
|
|
|
|
|
|
.search-group1{ |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
gap: 15px; |
|
|
|
} |
|
|
|
.search-group2{ |
|
|
|
display: flex; |
|
|
|
margin-top: 15px; |
|
|
|
align-items: center; |
|
|
|
gap: 15px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 单个搜索项 */ |
|
|
|
.search-item { |
|
|
|
display: flex; |
|
|
|
@ -1228,7 +1329,8 @@ const openDetail = async(dccode) => { |
|
|
|
.button-group { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
gap: 10px !important; |
|
|
|
gap: 0px !important; |
|
|
|
margin-left: auto; |
|
|
|
} |
|
|
|
|
|
|
|
/* 按钮样式 */ |
|
|
|
@ -1423,6 +1525,22 @@ const openDetail = async(dccode) => { |
|
|
|
row-gap: 8px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 搜索组 */ |
|
|
|
.search-groupDE { |
|
|
|
} |
|
|
|
|
|
|
|
.search-groupDE1{ |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
gap: 15px; |
|
|
|
} |
|
|
|
.search-groupDE2{ |
|
|
|
display: flex; |
|
|
|
margin-top: 15px; |
|
|
|
align-items: center; |
|
|
|
gap: 15px; |
|
|
|
} |
|
|
|
|
|
|
|
/* 单个搜索项(深度探索) */ |
|
|
|
.search-itemDE { |
|
|
|
display: flex; |
|
|
|
@ -1436,15 +1554,22 @@ const openDetail = async(dccode) => { |
|
|
|
font-size: 15px; |
|
|
|
text-align: left; |
|
|
|
color: #333; |
|
|
|
margin-top: 0; |
|
|
|
margin-top: 13px; |
|
|
|
font-family: "SimHei", "Heiti SC", "Microsoft YaHei", sans-serif !important; |
|
|
|
} |
|
|
|
|
|
|
|
.form-labelDE { |
|
|
|
display: block; |
|
|
|
margin-bottom: 8px; |
|
|
|
font-weight: 500; |
|
|
|
} |
|
|
|
|
|
|
|
/* 按钮组(深度探索) */ |
|
|
|
.button-groupDE { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
gap: 10px !important; |
|
|
|
gap: 0px !important; |
|
|
|
margin-left: auto; |
|
|
|
} |
|
|
|
|
|
|
|
/* 按钮样式(深度探索) */ |
|
|
|
|