feat : 个人中心和用户管理设置代理

This commit is contained in:
2024-09-22 15:26:45 +08:00
parent 2546db9b64
commit 4e325196c8
3 changed files with 328 additions and 45 deletions

View File

@@ -0,0 +1,142 @@
<template>
<div style="padding: 0 30px">
<baseTitle title="设置代理" ></baseTitle>
<el-form ref="userForm" :model="agentInfoForm" label-width="85px">
<el-row gutter="30">
<el-col :span="24">
<el-form-item label="被代理人" prop="nickName">
<span>{{ agentInfoForm.nickName }}</span>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="代理人" prop="" required >
<el-button style="margin-right: 10px" color="#DED0B2" @click="handleShowAgentDialog">
{{ agentUserList?.length !== 0 ? '更改' : '请选择' }}
</el-button>
<div v-for="item in agentUserList" :key="item.id" style="margin-right: 5px">
{{ item.name }}
</div>
<user-picker :multiple="false" ref="agentUserPickerRef" title="请选择代理人"
v-model:value="agentUserList" @ok="agentUserPickerOk"
@cancelOrClear="agentUserPickerOk"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="代理状态" prop="agentState">
<Tag dictType="agent_state" :value="agentInfoForm.agentState"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="开始时间" prop="agentStartTime">
<el-config-provider>
<el-date-picker
v-model="agentInfoForm.agentStartTime"
type="datetime"
placeholder="请选择开始时间"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</el-config-provider>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="结束时间" prop="agentEndTime" :title="!agentInfoForm.agentStartTime?'请先选择开始时间!':''">
<el-config-provider>
<el-date-picker
v-model="agentInfoForm.agentEndTime"
type="datetime"
placeholder="请选择结束时间"
value-format="YYYY-MM-DD HH:mm:ss"
:disabled="!agentInfoForm.agentStartTime"
:disabled-date="disabledAgentEndTime"
/>
</el-config-provider>
</el-form-item>
</el-col>
<el-form-item>
<el-button color="#DED0B2" @click="handleSubmitAgent" style="margin-left: 16px">提交</el-button>
</el-form-item>
</el-row>
</el-form>
</div>
</template>
<script setup>
import {ElNotification} from "element-plus";
import {editAgentInfo,getAgentInfo} from "@/api/auth/auth";
const agentUserList = ref([])
const agentInfoForm = ref({});
const agentUserPickerRef = ref()
const router = useRouter()
localStorage.removeItem('originallySelectedList')
const getUserAgentInfo = async () => {
await getAgentInfo().then(res => {
if(res.code===1000){
agentInfoForm.value=res.data
agentUserList.value=[
{
id:res.data.agentUserId,
name:res.data.agentNickName,
companyName:res.data.agentCompanyName,
}
]
}else {
ElNotification({
title: '提示',
message: res.msg,
type: 'error'
})
}
})
}
const disabledAgentEndTime = (time) => {
return time.getTime() <= new Date(agentInfoForm.value.agentStartTime)-1 * 24 * 3600 * 1000
}
const handleShowAgentDialog = () => {
agentUserPickerRef.value.showUserPicker()
}
const agentUserPickerOk = (userList) => {
agentUserList.value = userList
}
const handleSubmitAgent=()=>{
let agentUserId=''
if(agentUserList.value&&agentUserList.value.length>0){
agentUserId=agentUserList.value[0]?.id
}else {
ElNotification({
title: '提示',
message: '请选择代理人!',
type: 'error'
})
return;
}
let agentParams={
agentUserId:agentUserId,
agentStartTime:agentInfoForm.value.agentStartTime,
agentEndTime:agentInfoForm.value.agentEndTime
}
console.info("🚀 ~method:agentParams -----", agentParams)
editAgentInfo(agentParams).then(res => {
ElNotification({
title: '提示',
message: res.msg,
type: res.code === 1000 ? 'success' : 'error'
})
if (res.code === 1000) {
router.push({name: 'User'})
}
})
}
onMounted(() => {
getUserAgentInfo()
})
</script>
<style scoped>
</style>

View File

@@ -89,6 +89,7 @@ const auths = {
del: ['admin:user:del'],
add: ['admin:user:add'],
bindUser: ['admin:bind:account'],
agentSetting: ['admin:user:agentSetting'],
}
const tableConfig = reactive({
@@ -165,6 +166,7 @@ const tableConfig = reactive({
return (
<div>
<el-button type="primary" v-perm={auths.edit} link onClick={()=>handleEdit(row)}>编辑</el-button>
<el-button type="primary" v-perm={auths.agentSetting} link onClick={()=>handleAgentSetting(row)}>设置代理</el-button>
{
row.userType != 0 ?
<el-button type="danger" v-perm={auths.del} link onClick={()=>handleDel(row)}>删除</el-button> :
@@ -186,7 +188,11 @@ const tableConfig = reactive({
{name: '新增', color:"#DED0B2", auth: ['admin:user:add'], key: 'add'}
]
})
const handleAgentSetting=()=>{
router.push({
name: 'AgentSetting',
})
}
const init = async () => {
// console.log(authStore.roles,'userinfo');
if(!authStore.roles.includes('superAdmin')) {