From 72341a96a5e5b0efdb47fae9ce96fffaec80a4d2 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 13 Nov 2024 16:03:24 +0800 Subject: [PATCH 1/5] asc --- src/views/Clue/Order/Comp/AfterSales.vue | 18 ++++++++++++++++++ src/views/Clue/Order/Comp/Reback.vue | 17 +++++++++++++++++ src/views/Profile/components/UserSocial.vue | 4 ++-- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/views/Clue/Order/Comp/AfterSales.vue b/src/views/Clue/Order/Comp/AfterSales.vue index 0d9d3b4..a578f02 100644 --- a/src/views/Clue/Order/Comp/AfterSales.vue +++ b/src/views/Clue/Order/Comp/AfterSales.vue @@ -83,6 +83,18 @@ style="width: 240px" /> </el-form-item> + <template v-if="appStore.getAppInfo?.instanceType == 1"> + <el-form-item> + <el-select v-model="searchForm.area" placeholder="选择区域" clearable filterable> + <el-option + v-for="item in areaOptions" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </template> <el-form-item> <el-button @click="handleSearch" v-hasPermi="['clue:order:after-sale-search']"> 查询 @@ -189,6 +201,7 @@ <script setup name="AfterSales"> import * as AfterSaleApi from '@/api/clue/afterSale' import { getSimpleUserList as getUserOption } from '@/api/system/user' +import { getAreaSimpleList } from '@/api/school/setting/area' import { useUserStore } from '@/store/modules/user' import DialogAfterSaleAudit from './DialogAfterSaleAudit.vue' @@ -292,7 +305,12 @@ function handleAudit(row) { afterSaleAuditDialog.value.open(row) } +const areaOptions = ref([]) function getOptions() { + // 区域 + getAreaSimpleList().then((data) => { + areaOptions.value = data + }) getUserOption().then((data) => { userOptions.value = data }) diff --git a/src/views/Clue/Order/Comp/Reback.vue b/src/views/Clue/Order/Comp/Reback.vue index 3a3cec7..aa4d9b1 100644 --- a/src/views/Clue/Order/Comp/Reback.vue +++ b/src/views/Clue/Order/Comp/Reback.vue @@ -94,6 +94,16 @@ /> </el-select> </el-form-item> + <el-form-item> + <el-select v-model="searchForm.area" placeholder="选择区域" clearable filterable> + <el-option + v-for="item in areaOptions" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> </template> <el-form-item v-else-if="appStore.getAppInfo?.instanceType == 2"> <el-select @@ -404,6 +414,7 @@ import * as FeebackApi from '@/api/clue/payment' import { getSimpleUserList as getUserOption, getAllUserList } from '@/api/system/user' import { getPlaceList } from '@/api/school/place' import { getClassTypeList } from '@/api/school/class' +import { getAreaSimpleList } from '@/api/school/setting/area' import { DICT_TYPE, getDictOptions } from '@/utils/dict' import { useUserStore } from '@/store/modules/user' @@ -471,6 +482,7 @@ function handleReset() { signSchool: undefined, signPlace: undefined, signClass: undefined, + area: undefined, pageNo: 1, pageSize: 20 } @@ -541,12 +553,17 @@ function handleAudit(row) { feebackDialog.value.open(row) } +const areaOptions = ref([]) function getOptions() { // 驾校 getPlaceList({ placeStatus: 0, schoolStatus: 0, isSearchSchool: true }).then((data) => { schoolOptions.value = data.schoolList allPlaceOptions.value = data.placeList }) + // 区域 + getAreaSimpleList().then((data) => { + areaOptions.value = data + }) getUserOption().then((data) => { userOptions.value = data }) diff --git a/src/views/Profile/components/UserSocial.vue b/src/views/Profile/components/UserSocial.vue index 1af0392..907c762 100644 --- a/src/views/Profile/components/UserSocial.vue +++ b/src/views/Profile/components/UserSocial.vue @@ -61,8 +61,8 @@ const bindSocial = () => { }) } const bind = (row) => { - message.info('暂未开放,敬请期待') - return + // message.info('暂未开放,敬请期待') + // return const redirectUri = location.origin + '/user/profile?type=' + row.type // 进行跳转 socialAuthRedirect(row.type, encodeURIComponent(redirectUri)).then((res) => { From b09ba1547c60294c61e46a559533dce47edeb305 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 20 Nov 2024 15:11:16 +0800 Subject: [PATCH 2/5] sc --- src/api/system/user/index.ts | 5 ++-- src/views/Basic/User/UserForm.vue | 11 +++++++-- src/views/Basic/User/index.vue | 28 +++++++++++++++------- src/views/Profile/components/BasicInfo.vue | 5 ++++ 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 71f69f4..055b8f5 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -62,10 +62,11 @@ export const resetUserPwd = (id: number, password: string) => { } // 用户状态修改 -export const updateUserStatus = (id: number, status: number) => { +export const updateUserStatus = (id: number, status: number, retireDate: string) => { const data = { id, - status + status, + retireDate } return request.put({ url: '/admin-api/system/user/update-status', data: data }) } diff --git a/src/views/Basic/User/UserForm.vue b/src/views/Basic/User/UserForm.vue index 967652d..0da1b62 100644 --- a/src/views/Basic/User/UserForm.vue +++ b/src/views/Basic/User/UserForm.vue @@ -85,6 +85,11 @@ </el-col> </el-row> <el-row :gutter="20"> + <el-col :span="12" :offset="0"> + <el-form-item label="微信号" prop="wxAlias"> + <el-input v-model="formData.wxAlias" placeholder="请输入微信号" /> + </el-form-item> + </el-col> <el-col :span="12" :offset="0"> <el-form-item label="入职日期" prop="hireDate"> <el-date-picker @@ -140,7 +145,8 @@ const formData = ref({ status: CommonStatusEnum.ENABLE, roleIds: [], hireDate: '', - isNewUserConfirm: false + isNewUserConfirm: false, + wxAlias: '' }) const formRules = ref<any>({ username: [{ required: true, message: '登录账号不能为空', trigger: 'blur' }], @@ -228,7 +234,8 @@ const resetForm = () => { status: CommonStatusEnum.ENABLE, roleIds: [], hireDate: formatDate(new Date(), 'YYYY-MM-DD'), - isNewUserConfirm: false + isNewUserConfirm: false, + wxAlias: '' } formRef.value?.resetFields() } diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue index ad1753a..3ff35f9 100644 --- a/src/views/Basic/User/index.vue +++ b/src/views/Basic/User/index.vue @@ -50,6 +50,7 @@ <el-table-column label="用户姓名" prop="nickname" /> <el-table-column label="部门" key="deptName" prop="deptName" /> <el-table-column label="手机号码" prop="mobile" width="120" /> + <el-table-column label="微信号" prop="wxAlias" min-width="80" /> <el-table-column label="状态" key="status" width="180"> <template #default="scope"> <el-switch @@ -63,12 +64,8 @@ /> </template> </el-table-column> - <el-table-column - label="创建时间" - prop="createTime" - width="180" - :formatter="dateFormatter" - /> + <el-table-column label="入职日期" prop="hireDate" width="120" :formatter="dateFormatter" /> + <el-table-column label="离职日期" prop="" width="120" :formatter="dateFormatter" /> <el-table-column label="操作" width="200"> <template #default="scope"> <el-button @@ -183,9 +180,24 @@ const handleStatusChange = async (row: UserApi.UserVO) => { try { // 修改状态的二次确认 const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '停用' - await message.confirm('确认要"' + text + '""' + row.username + '"用户吗?') + let result = { value: '' } + if (text == '启用') { + await message.confirm('确认要"' + text + '""' + row.username + '"用户吗?') + } else { + result = await message.prompt( + '请输入年月日,如2024-01-01', + '确认要"' + text + '""' + row.username + '"用户吗?' + ) + const regex = /^\d{4}-\d{2}-\d{2}$/ + + if (!regex.test(result.value)) { + message.error('请输入离职日期') + throw new Error() + } + } // 发起修改状态 - await UserApi.updateUserStatus(row.id, row.status) + await UserApi.updateUserStatus(row.id, row.status, result.value) + message.success('修改成功') // 刷新列表 await getList() } catch { diff --git a/src/views/Profile/components/BasicInfo.vue b/src/views/Profile/components/BasicInfo.vue index f3cc81c..178c24b 100644 --- a/src/views/Profile/components/BasicInfo.vue +++ b/src/views/Profile/components/BasicInfo.vue @@ -59,6 +59,11 @@ const schema = reactive<FormSchema[]>([ label: t('profile.user.email'), component: 'Input' }, + { + field: 'wxAlias', + label: '微信号', + component: 'Input' + }, { field: 'sex', label: t('profile.user.sex'), From beb12193b3214805718e1ded5555751eb811e44b Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 20 Nov 2024 16:05:52 +0800 Subject: [PATCH 3/5] sc --- src/api/system/user/index.ts | 7 +++-- src/views/Basic/User/index.vue | 54 +++++++++++++++++++++++++++------- 2 files changed, 49 insertions(+), 12 deletions(-) diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index 055b8f5..a083baa 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -12,9 +12,11 @@ export interface UserVO { avatar: string loginIp: string status: number + inUse: number remark: string loginDate: Date createTime: Date + retireDate: string } // 查询用户管理列表 @@ -62,11 +64,12 @@ export const resetUserPwd = (id: number, password: string) => { } // 用户状态修改 -export const updateUserStatus = (id: number, status: number, retireDate: string) => { +export const updateUserStatus = (id: number, status: number, retireDate: string, inUse: number) => { const data = { id, status, - retireDate + retireDate, + inUse } return request.put({ url: '/admin-api/system/user/update-status', data: data }) } diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue index 3ff35f9..607ec08 100644 --- a/src/views/Basic/User/index.vue +++ b/src/views/Basic/User/index.vue @@ -45,13 +45,13 @@ </el-form-item> </el-form> <el-table v-loading="loading" :data="list"> - <el-table-column label="用户编号" key="id" prop="id" /> + <el-table-column label="用户编号" key="id" prop="id" width="100" /> <el-table-column label="登录账号" prop="username" /> <el-table-column label="用户姓名" prop="nickname" /> - <el-table-column label="部门" key="deptName" prop="deptName" /> + <el-table-column label="部门" key="deptName" prop="deptName" width="100" /> <el-table-column label="手机号码" prop="mobile" width="120" /> <el-table-column label="微信号" prop="wxAlias" min-width="80" /> - <el-table-column label="状态" key="status" width="180"> + <el-table-column label="在职状态" key="status" width="120"> <template #default="scope"> <el-switch v-model="scope.row.status" @@ -59,14 +59,30 @@ :inactive-value="1" active-text="在职" inactive-text="离职" + size="small" v-hasPermi="['basic:employee:update']" @change="handleStatusChange(scope.row)" /> </template> </el-table-column> + <el-table-column label="启用状态" key="inUse" width="120"> + <template #default="scope"> + <el-switch + v-model="scope.row.inUse" + :active-value="0" + :inactive-value="1" + active-text="启用" + inactive-text="禁用" + size="small" + :disabled="scope.row.status == 1" + v-hasPermi="['basic:employee:update']" + @change="handleUseChange(scope.row)" + /> + </template> + </el-table-column> <el-table-column label="入职日期" prop="hireDate" width="120" :formatter="dateFormatter" /> <el-table-column label="离职日期" prop="" width="120" :formatter="dateFormatter" /> - <el-table-column label="操作" width="200"> + <el-table-column label="操作" width="180"> <template #default="scope"> <el-button type="primary" @@ -175,18 +191,18 @@ const openForm = (type: string, id?: number) => { formRef.value.open(type, id) } -/** 修改用户状态 */ +/** 修改在职状态 */ const handleStatusChange = async (row: UserApi.UserVO) => { try { // 修改状态的二次确认 - const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '停用' + const text = row.status === CommonStatusEnum.ENABLE ? '入职' : '离职' let result = { value: '' } - if (text == '启用') { - await message.confirm('确认要"' + text + '""' + row.username + '"用户吗?') + if (text == '入职') { + await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?') } else { result = await message.prompt( '请输入年月日,如2024-01-01', - '确认要"' + text + '""' + row.username + '"用户吗?' + '确认要"' + text + '""' + row.nickname + '"用户吗?' ) const regex = /^\d{4}-\d{2}-\d{2}$/ @@ -196,7 +212,25 @@ const handleStatusChange = async (row: UserApi.UserVO) => { } } // 发起修改状态 - await UserApi.updateUserStatus(row.id, row.status, result.value) + await UserApi.updateUserStatus(row.id, row.status, result.value, row.inUse) + message.success('修改成功') + // 刷新列表 + await getList() + } catch { + // 取消后,进行恢复按钮 + row.status = + row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE + } +} + +// 修改启用状态 +const handleUseChange = async (row: UserApi.UserVO) => { + try { + // 修改状态的二次确认 + const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '禁用' + await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?') + // 发起修改状态 + await UserApi.updateUserStatus(row.id, row.status, row.retireDate, row.inUse) message.success('修改成功') // 刷新列表 await getList() From c01fea9c5b6dc3bcdaac17a288d9d924a4636341 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 20 Nov 2024 16:12:51 +0800 Subject: [PATCH 4/5] sc --- src/api/system/user/index.ts | 11 ++++++++--- src/views/Basic/User/index.vue | 22 ++++++++++++---------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index a083baa..a3135e2 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -12,7 +12,7 @@ export interface UserVO { avatar: string loginIp: string status: number - inUse: number + hireStatus: number remark: string loginDate: Date createTime: Date @@ -64,12 +64,17 @@ export const resetUserPwd = (id: number, password: string) => { } // 用户状态修改 -export const updateUserStatus = (id: number, status: number, retireDate: string, inUse: number) => { +export const updateUserStatus = ( + id: number, + status: number, + retireDate: string, + hireStatus: number +) => { const data = { id, status, retireDate, - inUse + hireStatus } return request.put({ url: '/admin-api/system/user/update-status', data: data }) } diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue index 607ec08..c340bf6 100644 --- a/src/views/Basic/User/index.vue +++ b/src/views/Basic/User/index.vue @@ -51,10 +51,10 @@ <el-table-column label="部门" key="deptName" prop="deptName" width="100" /> <el-table-column label="手机号码" prop="mobile" width="120" /> <el-table-column label="微信号" prop="wxAlias" min-width="80" /> - <el-table-column label="在职状态" key="status" width="120"> + <el-table-column label="在职状态" key="hireStatus" width="120"> <template #default="scope"> <el-switch - v-model="scope.row.status" + v-model="scope.row.hireStatus" :active-value="0" :inactive-value="1" active-text="在职" @@ -65,16 +65,16 @@ /> </template> </el-table-column> - <el-table-column label="启用状态" key="inUse" width="120"> + <el-table-column label="启用状态" key="status" width="120"> <template #default="scope"> <el-switch - v-model="scope.row.inUse" + v-model="scope.row.status" :active-value="0" :inactive-value="1" active-text="启用" inactive-text="禁用" size="small" - :disabled="scope.row.status == 1" + :disabled="scope.row.hireStatus == 1" v-hasPermi="['basic:employee:update']" @change="handleUseChange(scope.row)" /> @@ -195,7 +195,7 @@ const openForm = (type: string, id?: number) => { const handleStatusChange = async (row: UserApi.UserVO) => { try { // 修改状态的二次确认 - const text = row.status === CommonStatusEnum.ENABLE ? '入职' : '离职' + const text = row.hireStatus === CommonStatusEnum.ENABLE ? '入职' : '离职' let result = { value: '' } if (text == '入职') { await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?') @@ -212,14 +212,16 @@ const handleStatusChange = async (row: UserApi.UserVO) => { } } // 发起修改状态 - await UserApi.updateUserStatus(row.id, row.status, result.value, row.inUse) + await UserApi.updateUserStatus(row.id, row.status, result.value, row.hireStatus) message.success('修改成功') // 刷新列表 await getList() } catch { // 取消后,进行恢复按钮 - row.status = - row.status === CommonStatusEnum.ENABLE ? CommonStatusEnum.DISABLE : CommonStatusEnum.ENABLE + row.hireStatus = + row.hireStatus === CommonStatusEnum.ENABLE + ? CommonStatusEnum.DISABLE + : CommonStatusEnum.ENABLE } } @@ -230,7 +232,7 @@ const handleUseChange = async (row: UserApi.UserVO) => { const text = row.status === CommonStatusEnum.ENABLE ? '启用' : '禁用' await message.confirm('确认要"' + text + '""' + row.nickname + '"吗?') // 发起修改状态 - await UserApi.updateUserStatus(row.id, row.status, row.retireDate, row.inUse) + await UserApi.updateUserStatus(row.id, row.status, row.retireDate, row.hireStatus) message.success('修改成功') // 刷新列表 await getList() From ffc7691b474e72a0087e1bac286d021c23d12503 Mon Sep 17 00:00:00 2001 From: qsh <> Date: Wed, 20 Nov 2024 16:15:45 +0800 Subject: [PATCH 5/5] sc --- src/views/Basic/User/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/Basic/User/index.vue b/src/views/Basic/User/index.vue index c340bf6..f9d221a 100644 --- a/src/views/Basic/User/index.vue +++ b/src/views/Basic/User/index.vue @@ -27,8 +27,8 @@ </el-form-item> <el-form-item> <el-radio-group v-model="queryParams.status" @change="handleQuery"> - <el-radio :label="0"> 在职 </el-radio> - <el-radio :label="1"> 离职 </el-radio> + <el-radio :label="0"> 启用 </el-radio> + <el-radio :label="1"> 禁用 </el-radio> </el-radio-group> </el-form-item> <el-form-item>