|
@@ -2,6 +2,7 @@
|
|
|
import { SearchIcon } from 'tdesign-icons-vue-next';
|
|
|
import EditUser from './components/EditUser.vue'
|
|
|
import MoveUser from './components/MoveUser.vue'
|
|
|
+import ConfirmImportUser from './components/ConfirmImportUser.vue'
|
|
|
import {apiCustomerUser} from '@/api/customer'
|
|
|
|
|
|
const jobOpts = [
|
|
@@ -58,7 +59,8 @@ async function getUserList(){
|
|
|
CurrentIndex:tablePagination.current,
|
|
|
PositionStatus:filterState.jobStatus===''?-1:filterState.jobStatus,
|
|
|
Enabled:filterState.accountStatus===''?-1:filterState.accountStatus,
|
|
|
- Keyword:filterState.keyword
|
|
|
+ Keyword:filterState.keyword,
|
|
|
+ BusinessCode:filterState.customer
|
|
|
})
|
|
|
if(res.Ret!==200) return
|
|
|
const arr=res.Data.List||[]
|
|
@@ -101,6 +103,31 @@ async function handleDelUser(item){
|
|
|
handleRefreshList()
|
|
|
}
|
|
|
|
|
|
+// 启用禁用客户
|
|
|
+async function handleEnableUserChange(item,type){
|
|
|
+ const res=await apiCustomerUser.enableChange({
|
|
|
+ UserId:item.UserId,
|
|
|
+ Enabled:type
|
|
|
+ })
|
|
|
+ if(res.Ret!=200) return
|
|
|
+ MessagePlugin.success('操作成功')
|
|
|
+ item.Enabled=type
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// 导入用户
|
|
|
+const showConfirmImportUser=ref(false)
|
|
|
+const confirmImportUserData=ref([])
|
|
|
+async function handleImportUser(e){
|
|
|
+ confirmImportUserData.value=[]
|
|
|
+ const data=new FormData()
|
|
|
+ data.append("File", e.raw)
|
|
|
+ const res=await apiCustomerUser.getImportUserList(data)
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ showConfirmImportUser.value=true
|
|
|
+ confirmImportUserData.value=res.Data.ValidUser||[]
|
|
|
+}
|
|
|
+
|
|
|
|
|
|
</script>
|
|
|
|
|
@@ -108,7 +135,14 @@ async function handleDelUser(item){
|
|
|
<div class="customer-userlist-page">
|
|
|
<div class="bg-white flex top-wrap">
|
|
|
<t-button style="width: 120px" @click="showEditUser=true;editUserData=null">新增用户</t-button>
|
|
|
- <t-button style="width: 120px; margin-left: 10px">批量导入用户</t-button>
|
|
|
+ <t-upload
|
|
|
+ :request-method="handleImportUser"
|
|
|
+ theme="custom"
|
|
|
+ accept=".xls,.xlsx"
|
|
|
+ >
|
|
|
+ <t-button style="width: 120px; margin-left: 10px">批量导入用户</t-button>
|
|
|
+ </t-upload>
|
|
|
+
|
|
|
<t-button style="width: 120px; margin-left: 10px" theme="primary" variant="text">下载导入模板</t-button>
|
|
|
<t-input
|
|
|
style="width: 310px; margin-left: auto"
|
|
@@ -150,22 +184,17 @@ async function handleDelUser(item){
|
|
|
:value="item.value"
|
|
|
/>
|
|
|
</t-select>
|
|
|
- <t-select
|
|
|
- placeholder="客户名称"
|
|
|
- v-model:value="filterState.customer"
|
|
|
- clearable
|
|
|
+ <select-business
|
|
|
+ placeholder="客户名称"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ v-model="filterState.customer"
|
|
|
style="width: 240px"
|
|
|
- >
|
|
|
- <!-- <t-option
|
|
|
- v-for="item in jobOpts"
|
|
|
- :key="item.value"
|
|
|
- :label="item.value"
|
|
|
- :value="item.value"
|
|
|
- /> -->
|
|
|
- </t-select>
|
|
|
+ @change="handleRefreshList"
|
|
|
+ />
|
|
|
</div>
|
|
|
<t-table
|
|
|
- rowKey="id"
|
|
|
+ rowKey="UserId"
|
|
|
:data="tableData"
|
|
|
:columns="columns"
|
|
|
bordered
|
|
@@ -193,8 +222,8 @@ async function handleDelUser(item){
|
|
|
</template>
|
|
|
<template #opt="{ row }">
|
|
|
<t-button size="small" variant="text" theme="primary" @click="handleEditUser(row)">编辑</t-button>
|
|
|
- <t-button size="small" variant="text" theme="danger" v-if="row.Enabled">禁用</t-button>
|
|
|
- <t-button size="small" variant="text" theme="primary" v-else>启用</t-button>
|
|
|
+ <t-button size="small" variant="text" theme="danger" v-if="row.Enabled" @click="handleEnableUserChange(row,0)">禁用</t-button>
|
|
|
+ <t-button size="small" variant="text" theme="primary" v-else @click="handleEnableUserChange(row,1)">启用</t-button>
|
|
|
<t-button size="small" variant="text" theme="primary" @click="handleMoveUser(row)">移动</t-button>
|
|
|
<t-button size="small" variant="text" theme="danger" @click="handleDelUser(row)">删除</t-button>
|
|
|
</template>
|
|
@@ -205,6 +234,8 @@ async function handleDelUser(item){
|
|
|
<EditUser v-model:show="showEditUser" :data="editUserData" @change="handleRefreshList"/>
|
|
|
<!-- 移动用户 -->
|
|
|
<MoveUser v-model:show="showMoveUser" :data="editUserData" @change="handleRefreshList"/>
|
|
|
+ <!-- 确认批量导入的用户 -->
|
|
|
+ <ConfirmImportUser v-model:show="showConfirmImportUser" :data="confirmImportUserData"/>
|
|
|
</template>
|
|
|
|
|
|
<style lang="scss" scoped>
|