|
@@ -56,7 +56,7 @@ const tableColOpt = computed( ()=>{
|
|
|
},
|
|
|
{
|
|
|
label: '手机号',
|
|
|
- key: 'MobileHidden'
|
|
|
+ key: 'Mobile'
|
|
|
},
|
|
|
{
|
|
|
label: '营业部',
|
|
@@ -320,166 +320,168 @@ function handleGoReadTimes(e){
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
- <div class="customer-user-list-page">
|
|
|
-
|
|
|
- <div class="select">
|
|
|
- <el-radio-group v-model="radio" fill="#0052D9" size="large" @change="getUserList()">
|
|
|
- <el-radio-button label="机构投资者" :value="1"></el-radio-button>
|
|
|
- <el-radio-button label="个人投资者" :value="2"></el-radio-button>
|
|
|
- </el-radio-group>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="search-box">
|
|
|
- <div class="flex filter-wrap">
|
|
|
- <el-input
|
|
|
- :placeholder="radio === 1 ? '请输入机构名称/联系人姓名/手机号' : '请输入投资者姓名/手机号'"
|
|
|
- v-model="filterState.keyword"
|
|
|
- :prefix-icon="Search"
|
|
|
- clearable
|
|
|
- size="large"
|
|
|
- style="max-width: 359px;float: right"
|
|
|
- @input="handleFilterList"
|
|
|
- />
|
|
|
- <div style="width: 235px">
|
|
|
- <all-user-for-depart
|
|
|
- style="width: 100%"
|
|
|
- :props="{
|
|
|
- emitPath: false,
|
|
|
- multiple: true,
|
|
|
- }"
|
|
|
- :filterable="true"
|
|
|
- onlySelectUser
|
|
|
- :size="'large'"
|
|
|
- v-model="filterState.sellerId"
|
|
|
- placeholder="请选择营业部"
|
|
|
- @change="handleFilterList"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div style="width: 235px">
|
|
|
- <el-date-picker
|
|
|
- style="width: 235px"
|
|
|
- v-model="filterState.createTime"
|
|
|
- type="daterange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="创建时间"
|
|
|
- end-placeholder="创建时间"
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
+ <el-card>
|
|
|
+ <div class="customer-user-list-page">
|
|
|
+ <div class="select">
|
|
|
+ <el-radio-group v-model="radio" fill="#0052D9" size="large" @change="getUserList()">
|
|
|
+ <el-radio-button label="机构投资者" :value="1"></el-radio-button>
|
|
|
+ <el-radio-button label="个人投资者" :value="2"></el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <div class="search-box">
|
|
|
+ <div class="flex filter-wrap">
|
|
|
+ <el-input
|
|
|
+ :placeholder="radio === 1 ? '请输入机构名称/联系人姓名/手机号' : '请输入投资者姓名/手机号'"
|
|
|
+ v-model="filterState.keyword"
|
|
|
+ :prefix-icon="Search"
|
|
|
clearable
|
|
|
size="large"
|
|
|
- @change="handleFilterList"
|
|
|
+ style="max-width: 359px;float: right"
|
|
|
+ @input="handleFilterList"
|
|
|
/>
|
|
|
+ <div style="width: 235px">
|
|
|
+ <all-user-for-depart
|
|
|
+ style="width: 100%"
|
|
|
+ :props="{
|
|
|
+ emitPath: false,
|
|
|
+ multiple: true,
|
|
|
+ }"
|
|
|
+ :filterable="true"
|
|
|
+ onlySelectUser
|
|
|
+ :size="'large'"
|
|
|
+ v-model="filterState.sellerId"
|
|
|
+ placeholder="请选择营业部"
|
|
|
+ @change="handleFilterList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div style="width: 235px">
|
|
|
+ <el-date-picker
|
|
|
+ style="width: 235px"
|
|
|
+ v-model="filterState.createTime"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="创建时间"
|
|
|
+ end-placeholder="创建时间"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ clearable
|
|
|
+ size="large"
|
|
|
+ @change="handleFilterList"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ :icon="Plus"
|
|
|
+ size="large"
|
|
|
+ @click="goAddUserPage"
|
|
|
+ v-permission="permissionBtn.customerManageBtn.customer_add"
|
|
|
+ >新增</el-button
|
|
|
+ >
|
|
|
</div>
|
|
|
-
|
|
|
</div>
|
|
|
- <div>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- :icon="Plus"
|
|
|
- size="large"
|
|
|
- @click="goAddUserPage"
|
|
|
- v-permission="permissionBtn.customerManageBtn.customer_add"
|
|
|
- >新增</el-button
|
|
|
+ <div class="userlist-wrap" style="margin-top: 30px">
|
|
|
+ <el-table
|
|
|
+ :data="userList"
|
|
|
+ border
|
|
|
+ element-loading-text="数据加载中..."
|
|
|
+ v-loading="tableLoading"
|
|
|
+ @sort-change="handleTableSort"
|
|
|
+ :header-cell-style="{ background: '#EBEEF5' }"
|
|
|
>
|
|
|
+ <el-table-column
|
|
|
+ v-for="column in tableColOpt"
|
|
|
+ :key="column.key"
|
|
|
+ :prop="column.key"
|
|
|
+ :label="column.label"
|
|
|
+ :sortable="column.sort ? 'custom' : false"
|
|
|
+ :width="column.width"
|
|
|
+ align="center"
|
|
|
+ >
|
|
|
+ <template v-if="column.headerTips" #header>
|
|
|
+ <span>{{ column.label }}</span>
|
|
|
+ <el-tooltip
|
|
|
+ class="box-item"
|
|
|
+ effect="dark"
|
|
|
+ :content="column.headerTips"
|
|
|
+ placement="top"
|
|
|
+ >
|
|
|
+ <el-icon style="position: relative; top: 2px"
|
|
|
+ ><i-ep-QuestionFilled
|
|
|
+ /></el-icon>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ <template #default="{ row }">
|
|
|
+ <span v-if="column.key === 'RealName' || column.key === 'CompanyName'" class="company-name" @click="handleGoDetail(row)">{{row.RealName || row.CompanyName}}</span>
|
|
|
+ <span v-else-if="column.key === 'ReadTimes'" :style="row.ReadTimes > 0 ?'color: #075EEE;' : ''" @click="handleGoReadTimes(row)">{{ row.ReadTimes}}</span>
|
|
|
+ <span v-else-if="column.key === 'IsRegistered'">{{
|
|
|
+ row.IsRegistered ? "是" : "否" || '-'
|
|
|
+ }}</span>
|
|
|
+ <span v-else-if="column.key === 'RegisterTime'">{{
|
|
|
+ formatTime(row.RegisterTime) || '-'
|
|
|
+ }}</span>
|
|
|
+ <span v-else-if="column.key === 'CreateTime'">{{
|
|
|
+ formatTime(row.CreateTime) || '-'
|
|
|
+ }}</span>
|
|
|
+ <span v-else>{{ row[column.key] || '-' }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" width="200" align="center">
|
|
|
+ <template #default="{ row }">
|
|
|
+ <el-button
|
|
|
+ v-permission="permissionBtn.customerManageBtn.customer_edit"
|
|
|
+ type="primary"
|
|
|
+ link
|
|
|
+ @click.stop="handleEditUser(row)"
|
|
|
+ >编辑</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-permission="permissionBtn.customerManageBtn.customer_permissionSettings"
|
|
|
+ type="danger"
|
|
|
+ link
|
|
|
+ v-if="row.AuthStatus === 1"
|
|
|
+ @click.stop="handleOpenAndClose(row,'close')"
|
|
|
+ >关闭权限</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-permission="permissionBtn.customerManageBtn.customer_permissionSettings"
|
|
|
+ type="primary"
|
|
|
+ link
|
|
|
+ v-else
|
|
|
+ @click.stop="handleOpenAndClose(row,'open')"
|
|
|
+ >开启权限</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-permission="permissionBtn.customerManageBtn.customer_delete"
|
|
|
+ type="danger"
|
|
|
+ link
|
|
|
+ @click.stop="handleDelUserAndCompany(row)"
|
|
|
+ >删除</el-button
|
|
|
+ >
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ layout="total,prev,pager,next,jumper"
|
|
|
+ :current-page="page"
|
|
|
+ :page-size="pageSize"
|
|
|
+ :total="totals"
|
|
|
+ @current-change="handlePageChange"
|
|
|
+ class="pagination"
|
|
|
+ />
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="userlist-wrap" style="margin-top: 30px">
|
|
|
- <el-table
|
|
|
- :data="userList"
|
|
|
- border
|
|
|
- element-loading-text="数据加载中..."
|
|
|
- v-loading="tableLoading"
|
|
|
- @sort-change="handleTableSort"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- v-for="column in tableColOpt"
|
|
|
- :key="column.key"
|
|
|
- :prop="column.key"
|
|
|
- :label="column.label"
|
|
|
- :sortable="column.sort ? 'custom' : false"
|
|
|
- :width="column.width"
|
|
|
- align="center"
|
|
|
- >
|
|
|
- <template v-if="column.headerTips" #header>
|
|
|
- <span>{{ column.label }}</span>
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- :content="column.headerTips"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <el-icon style="position: relative; top: 2px"
|
|
|
- ><i-ep-QuestionFilled
|
|
|
- /></el-icon>
|
|
|
- </el-tooltip>
|
|
|
- </template>
|
|
|
- <template #default="{ row }">
|
|
|
- <span v-if="column.key === 'RealName' || column.key === 'CompanyName'" style="color: #075EEE;" @click="handleGoDetail(row)">{{row.RealName || row.CompanyName}}</span>
|
|
|
- <span v-else-if="column.key === 'ReadTimes'" :style="row.ReadTimes > 0 ?'color: #075EEE;' : ''" @click="handleGoReadTimes(row)">{{ row.ReadTimes}}</span>
|
|
|
- <span v-else-if="column.key === 'IsRegistered'">{{
|
|
|
- row.IsRegistered ? "是" : "否" || '-'
|
|
|
- }}</span>
|
|
|
- <span v-else-if="column.key === 'RegisterTime'">{{
|
|
|
- formatTime(row.RegisterTime) || '-'
|
|
|
- }}</span>
|
|
|
- <span v-else-if="column.key === 'CreateTime'">{{
|
|
|
- formatTime(row.CreateTime) || '-'
|
|
|
- }}</span>
|
|
|
- <span v-else>{{ row[column.key] || '-' }}</span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column label="操作" width="200" align="center">
|
|
|
- <template #default="{ row }">
|
|
|
- <el-button
|
|
|
- v-permission="permissionBtn.customerManageBtn.customer_edit"
|
|
|
- type="primary"
|
|
|
- link
|
|
|
- @click.stop="handleEditUser(row)"
|
|
|
- >编辑</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- v-permission="permissionBtn.customerManageBtn.customer_permissionSettings"
|
|
|
- type="danger"
|
|
|
- link
|
|
|
- v-if="row.AuthStatus === 1"
|
|
|
- @click.stop="handleOpenAndClose(row,'close')"
|
|
|
- >关闭权限</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- v-permission="permissionBtn.customerManageBtn.customer_permissionSettings"
|
|
|
- type="primary"
|
|
|
- link
|
|
|
- v-else
|
|
|
- @click.stop="handleOpenAndClose(row,'open')"
|
|
|
- >开启权限</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- v-permission="permissionBtn.customerManageBtn.customer_delete"
|
|
|
- type="danger"
|
|
|
- link
|
|
|
- @click.stop="handleDelUserAndCompany(row)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- <el-pagination
|
|
|
- background
|
|
|
- layout="total,prev,pager,next,jumper"
|
|
|
- :current-page="page"
|
|
|
- :page-size="pageSize"
|
|
|
- :total="totals"
|
|
|
- @current-change="handlePageChange"
|
|
|
- style="margin-top: 30px; justify-content: flex-end"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </el-card>
|
|
|
<UserStatisticDetail v-model:show="showDetail" :userId="activeUserId" :userName="activeUserName"/>
|
|
|
</template>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.customer-user-list-page {
|
|
|
+ position: relative;
|
|
|
width: 100%;
|
|
|
+ min-height: calc(100vh - 180px);
|
|
|
overflow: hidden;
|
|
|
.search-box {
|
|
|
display: flex;
|
|
@@ -492,5 +494,17 @@ function handleGoReadTimes(e){
|
|
|
flex-wrap: wrap;
|
|
|
gap: 10px;
|
|
|
}
|
|
|
+ .pagination {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 30px;
|
|
|
+ right: 0;
|
|
|
+ justify-content: flex-end;
|
|
|
+ }
|
|
|
+}
|
|
|
+.company-name {
|
|
|
+ color: #075EEE;
|
|
|
+ white-space: nowrap; /* 禁止换行 */
|
|
|
+ overflow: hidden; /* 隐藏溢出内容 */
|
|
|
+ text-overflow: ellipsis;
|
|
|
}
|
|
|
</style>
|