diff --git a/src/api/platform/system/controller/user.ts b/src/api/platform/system/controller/user.ts index dd03857..7e95661 100644 --- a/src/api/platform/system/controller/user.ts +++ b/src/api/platform/system/controller/user.ts @@ -21,7 +21,8 @@ enum Api { changeTenant='/system_proxy/system/user/changeTenant', resetTenant='/system_proxy/system/user/resetTenant', synchronousAuthenticationUser = '/system_proxy/system/user/synchronousAuthenticationUser', - getCourierUserList= '/system_proxy/system/user/getCourierUserList' + getCourierUserList= '/system_proxy/system/user/getCourierUserList', + getUserTypeList= '/system_proxy/system/user/getUserTypeList', } /** 查询用户列表 */ @@ -59,3 +60,6 @@ export const synchronousAuthenticationUser = () => defHttp.get({ url: /** 获取全部快递员集合 */ export const getCourierUserList = () => defHttp.get({ url: Api.getCourierUserList }); + +/** 获取用户类型集合 */ +export const getUserTypeList = () => defHttp.get({ url: Api.getUserTypeList }); diff --git a/src/components/AMap/src/AMapDesigner/index.vue b/src/components/AMap/src/AMapDesigner/index.vue index 0e941dd..2140f3e 100644 --- a/src/components/AMap/src/AMapDesigner/index.vue +++ b/src/components/AMap/src/AMapDesigner/index.vue @@ -119,6 +119,7 @@ import { EventSourcePolyfill } from 'event-source-polyfill/src/eventsource'; import { getAccessToken } from '/@/utils/auth'; import { useTimeoutFn } from '@vueuse/core'; + import { SystemUserType } from '/@/enums/permissionEnum'; /** 类型规范统一声明定义区域 */ interface MapState { @@ -585,7 +586,7 @@ nextTick(async ()=>{ // 修改时查询当前快递员,只需要渲染自己的收样图标 (mapProps.isEdit && mapState.mapData.courierUserId) ? - await listUser({ userType: '1', id: mapState.mapData.courierUserId }).then(res => { + await listUser({ userType: SystemUserType.SAMPLE_COLLECTOR, id: mapState.mapData.courierUserId }).then(res => { mapState.courierUserList = res.data?.map(item => ({ value: item.id, label: item.nickName, diff --git a/src/components/AMap/src/components/MapTaskPresetModal.vue b/src/components/AMap/src/components/MapTaskPresetModal.vue index 7466472..f25414b 100644 --- a/src/components/AMap/src/components/MapTaskPresetModal.vue +++ b/src/components/AMap/src/components/MapTaskPresetModal.vue @@ -62,6 +62,7 @@ import { MapTask } from '/@/api/platform/common/entity/mapTask'; import { MapTaskPreset } from '/@/api/platform/common/entity/mapTaskPreset'; import { useI18n } from '/@/hooks/web/useI18n'; + import { SystemUserType } from '/@/enums/permissionEnum'; /** 类型规范统一声明定义区域 */ type OptionsType = { @@ -122,7 +123,7 @@ } } ]; - await listUser({ size: 40, userType: '1' }).then(res => { + await listUser({ size: 40, userType: SystemUserType.SAMPLE_COLLECTOR }).then(res => { Object.assign(columns.find(item => item.dataIndex == 'courierUserId')?.editComponentProps || {}, { options: res.data?.map(item => ({ value: item.id, diff --git a/src/enums/permissionEnum.ts b/src/enums/permissionEnum.ts new file mode 100644 index 0000000..68f32f1 --- /dev/null +++ b/src/enums/permissionEnum.ts @@ -0,0 +1,22 @@ +/** + * @program: kicc-ui + * @description: 用户权限枚举 + * @author: entfrm开发团队-王翔 + * @create: 2023/4/21 + */ + +/** 系统用户类型 */ +export enum SystemUserType { + // 系统管理员 + ADMIN = '0', + // 普通用户 + NORMAL_USER = '1', + // 企业用户 + ENTERPRISE_USER = '2', + // 收样员 + SAMPLE_COLLECTOR = '3', + // 客服 + CUSTOMER_SERVICE = '4', + // 企业内部用户 + INTERNAL_USER = '5', +} diff --git a/src/enums/pushEnum.ts b/src/enums/pushEnum.ts new file mode 100644 index 0000000..bdd66a5 --- /dev/null +++ b/src/enums/pushEnum.ts @@ -0,0 +1,33 @@ +/** + * @program: kicc-ui + * @description: 推送消息枚举 + * @author: entfrm开发团队-王翔 + * @create: 2023/4/21 + */ + +export enum PushAuditStatus { + // 驳回 + REJECTED = -1, + // 未提交 + NOT_APPLIED = 0, + // 审核中 + UNDER_REVIEW = 1, + // 通过 + APPROVED = 2, +} + +/** 推送关注类型 */ +export enum PushConcernType { + // 默认类型 + DEFAULT = '0', + // 内部企业 + INTERNAL_COMPANY = '1', +} + +/** 关注粉丝连表查询切换类型 */ +export enum PushConcernJoinOnType { + // 粉丝表示 + FAN_TYPE = '0', + // 关注表 + CONCERN_TYPE = '1', +} diff --git a/src/views/common/push/pushConcern/ConcernModal.vue b/src/views/common/push/pushConcern/ConcernModal.vue index 8b66496..9839ab9 100644 --- a/src/views/common/push/pushConcern/ConcernModal.vue +++ b/src/views/common/push/pushConcern/ConcernModal.vue @@ -31,7 +31,7 @@ // 处理设置数据 tag.value = data._tag; const refId = data.record?.id; - const onType = data.onType || '0'; + const onType = data.onType; const props: Partial = { confirmLoading: false }; props.title = '查看关注用户'; await setFieldsValue(await getPushConcernFan(refId, onType)); diff --git a/src/views/common/push/pushConcern/index.vue b/src/views/common/push/pushConcern/index.vue index c259dae..b1b7ca4 100644 --- a/src/views/common/push/pushConcern/index.vue +++ b/src/views/common/push/pushConcern/index.vue @@ -40,7 +40,7 @@ label: '取消关注', icon: 'ant-design:delete-outlined', color: 'error', - disabled: record?.cfType == 1, + disabled: record?.cfType == PushConcernType.INTERNAL_COMPANY, onClick: handleDel.bind(null, record) }]" /> @@ -64,6 +64,7 @@ import { listPushConcernFanType } from '/@/api/platform/common/controller/pushConcernFanType'; import { searchFormSchema as pushTypeSearchFormSchema } from '/@/views/common/push/pushType/type.data'; import TypeModal from '../pushType/TypeModal.vue'; + import { PushConcernType, PushAuditStatus, PushConcernJoinOnType } from '/@/enums/pushEnum'; const userStore = useUserStore(); const userInfoStore = userStore.getUserInfo; @@ -108,8 +109,8 @@ fixed: false }, searchInfo: { - onType: '1', - status: '1', + onType: PushConcernJoinOnType.CONCERN_TYPE, + status: PushAuditStatus.APPROVED, fanUserId: userInfoStore.id }, handleSearchInfoFn: () => clearSelectedRowKeys() @@ -151,7 +152,7 @@ /** 查看按钮操作,行内查看 */ function handleViewEdit(record?: Recordable) { record = record || { id: getSelectRowKeys() }; - openModal(true, { _tag: 'view', record, onType: '1' }); + openModal(true, { _tag: 'view', record, onType: PushConcernJoinOnType.CONCERN_TYPE }); } function handlePushTypeEdit(record?: Recordable) { diff --git a/src/views/common/push/pushEnterprise/index.vue b/src/views/common/push/pushEnterprise/index.vue index 40349a7..1266bfe 100644 --- a/src/views/common/push/pushEnterprise/index.vue +++ b/src/views/common/push/pushEnterprise/index.vue @@ -50,6 +50,7 @@ import EnterpriseModal from './EnterpriseModal.vue'; import { columns, searchFormSchema } from './enterprise.data'; import { useMessage } from '/@/hooks/web/useMessage'; + import { PushAuditStatus } from '/@/enums/pushEnum'; /** 类型规范统一声明定义区域 */ interface TableState { @@ -92,7 +93,7 @@ fixed: false }, searchInfo: { - status: 2 + status: PushAuditStatus.APPROVED }, handleSearchInfoFn: () => clearSelectedRowKeys() }); diff --git a/src/views/common/push/pushEnterpriseAudit/index.vue b/src/views/common/push/pushEnterpriseAudit/index.vue index 584c8d4..6962339 100644 --- a/src/views/common/push/pushEnterpriseAudit/index.vue +++ b/src/views/common/push/pushEnterpriseAudit/index.vue @@ -42,6 +42,7 @@ import EnterpriseAuditModal from './EnterpriseAuditModal.vue'; import { columns, searchFormSchema } from '../pushEnterprise/enterprise.data'; import { useMessage } from '/@/hooks/web/useMessage'; + import { PushAuditStatus } from '/@/enums/pushEnum'; /** 类型规范统一声明定义区域 */ interface TableState { @@ -88,7 +89,7 @@ fixed: false }, searchInfo: { - status: 1 + status: PushAuditStatus.UNDER_REVIEW }, handleSearchInfoFn: () => clearSelectedRowKeys() }); diff --git a/src/views/common/push/pushFan/index.vue b/src/views/common/push/pushFan/index.vue index ab1e093..d47d19c 100644 --- a/src/views/common/push/pushFan/index.vue +++ b/src/views/common/push/pushFan/index.vue @@ -30,7 +30,7 @@ label: '移除粉丝', icon: 'ant-design:delete-outlined', color: 'error', - disabled: record?.cfType == 1, + disabled: record?.cfType == PushConcernType.INTERNAL_COMPANY, onClick: handleDel.bind(null, record) }]" /> @@ -50,6 +50,7 @@ import { columns, searchFormSchema } from '../pushConcern/concern.data'; import { useMessage } from '/@/hooks/web/useMessage'; import { useUserStore } from '/@/store/modules/user'; + import { PushConcernType, PushAuditStatus } from '/@/enums/pushEnum'; const userStore = useUserStore(); const userInfoStore = userStore.getUserInfo; @@ -93,7 +94,7 @@ fixed: false }, searchInfo: { - status: '1', + status: PushAuditStatus.APPROVED, concernUserId: userInfoStore.id }, handleSearchInfoFn: () => clearSelectedRowKeys() diff --git a/src/views/common/push/pushFriend/friend.data.ts b/src/views/common/push/pushFriend/friend.data.ts index d11b629..f94b20c 100644 --- a/src/views/common/push/pushFriend/friend.data.ts +++ b/src/views/common/push/pushFriend/friend.data.ts @@ -2,6 +2,7 @@ import { BasicColumn } from '/@/components/Table'; import { FormSchema } from '/@/components/Table'; import { h } from 'vue'; import { Tag } from 'ant-design-vue'; +import {listPushType} from '/@/api/platform/common/controller/pushType'; /** 表格列配置 */ export const columns: BasicColumn[] = [ @@ -127,17 +128,11 @@ export const userFormSchema: FormSchema[] = [ { field: 'userType', label: '用户类型', - component: 'Select', + component: 'ApiSelect', + required: true, componentProps: { - disabled: true, - options: [ - { label: '系统管理员', value: '0' }, - { label: '普通用户', value: '1' }, - { label: '企业用户', value: '2' }, - { label: '收样员', value: '3' }, - { label: '客服', value: '4' }, - { label: '企业内部用户', value: '5' }, - ] + api: listPushType, + resultField: 'data' }, colProps: { span: 12 diff --git a/src/views/common/push/pushFriend/index.vue b/src/views/common/push/pushFriend/index.vue index d21908b..54f0253 100644 --- a/src/views/common/push/pushFriend/index.vue +++ b/src/views/common/push/pushFriend/index.vue @@ -14,14 +14,14 @@ { label: '关注', icon: 'fa6-brands:battle-net', - ifShow: userInfoStore.userType != '2', - disabled: record?.cfStatus == 1 || !!record?.blId, + ifShow: userInfoStore.userType != SystemUserType.ENTERPRISE_USER, + disabled: record?.cfStatus == PushAuditStatus.APPROVED || !!record?.blId, onClick: handleConcernUser.bind(null, record) }, { label: '粉丝申请', icon: 'fa6-brands:battle-net', - ifShow: userInfoStore.userType == '2', + ifShow: userInfoStore.userType == SystemUserType.ENTERPRISE_USER, disabled: !!(String(record?.cfStatus)) || !!record?.blId, onClick: handleLaunchFanAudit.bind(null, record) }, @@ -49,6 +49,8 @@ import { useMessage } from '/@/hooks/web/useMessage'; import { useUserStore } from '/@/store/modules/user'; import { addPushBlacklist } from '/@/api/platform/common/controller/pushBlacklist'; + import { SystemUserType } from '/@/enums/permissionEnum'; + import { PushAuditStatus } from '/@/enums/pushEnum'; const userStore = useUserStore(); const userInfoStore = userStore.getUserInfo; @@ -113,7 +115,7 @@ await addPushConcernFan({ concernUserId: record?.id, fanUserId: userInfoStore.id, - status: '1' + status: PushAuditStatus.APPROVED, }); createMessage.success('关注成功!'); handleRefreshTable(); diff --git a/src/views/common/push/pushFriendAudit/FriendAuditModal.vue b/src/views/common/push/pushFriendAudit/FriendAuditModal.vue index a391be3..b0669bd 100644 --- a/src/views/common/push/pushFriendAudit/FriendAuditModal.vue +++ b/src/views/common/push/pushFriendAudit/FriendAuditModal.vue @@ -20,6 +20,7 @@ import { BasicModal, ModalProps, useModalInner } from '/@/components/Modal'; import { ref } from 'vue'; import { useMessage } from '/@/hooks/web/useMessage'; + import { PushAuditStatus } from '/@/enums/pushEnum'; const { createMessage } = useMessage(); const id = ref(''); @@ -48,7 +49,7 @@ async function handleReject() { try { setModalProps({ confirmLoading: true }); - await updateAuditStatus(id.value, -1); + await updateAuditStatus(id.value, PushAuditStatus.REJECTED); closeModal(); createMessage.info('审核驳回!'); emit('success'); @@ -60,7 +61,7 @@ async function handleSubmit() { try { setModalProps({ confirmLoading: true }); - await updateAuditStatus(id.value, 1); + await updateAuditStatus(id.value, PushAuditStatus.APPROVED); closeModal(); createMessage.success('审核通过!'); emit('success'); diff --git a/src/views/common/push/pushFriendAudit/index.vue b/src/views/common/push/pushFriendAudit/index.vue index 2a2ac6e..b98e318 100644 --- a/src/views/common/push/pushFriendAudit/index.vue +++ b/src/views/common/push/pushFriendAudit/index.vue @@ -43,6 +43,7 @@ import { columns, searchFormSchema } from '../pushConcern/concern.data'; import { useMessage } from '/@/hooks/web/useMessage'; import { useUserStore } from '/@/store/modules/user'; + import { PushAuditStatus } from '/@/enums/pushEnum'; const userStore = useUserStore(); const userInfoStore = userStore.getUserInfo; @@ -86,7 +87,7 @@ fixed: false }, searchInfo: { - status: '0', + status: PushAuditStatus.UNDER_REVIEW, fanUserId: userInfoStore.id }, handleSearchInfoFn: () => clearSelectedRowKeys() diff --git a/src/views/system/user/account/setting/data.ts b/src/views/system/user/account/setting/data.ts index 468243a..9a950d9 100644 --- a/src/views/system/user/account/setting/data.ts +++ b/src/views/system/user/account/setting/data.ts @@ -1,5 +1,6 @@ import { FormSchema } from '/@/components/Form/index'; import { useUserStore } from '/@/store/modules/user'; +import { SystemUserType } from '/@/enums/permissionEnum'; interface settingListType { key: string; @@ -22,7 +23,7 @@ export const settingList: settingListType[] = [ name: '企业认证', component: 'EntCertification', prefixIcon: 'fa6-solid:city', - isHide: userStore.getUserInfo?.userType != '2' + isHide: userStore.getUserInfo?.userType != SystemUserType.ENTERPRISE_USER } ]; diff --git a/src/views/system/user/account/setting/entCertification/Step1.vue b/src/views/system/user/account/setting/entCertification/Step1.vue index 8e1afb1..26c7fbf 100644 --- a/src/views/system/user/account/setting/entCertification/Step1.vue +++ b/src/views/system/user/account/setting/entCertification/Step1.vue @@ -10,6 +10,7 @@ import { addPushEnterprise, editPushEnterprise } from '/@/api/platform/common/controller/pushEnterprise'; import { useMessage } from '/@/hooks/web/useMessage'; import type { PushEnterprise } from '/@/api/platform/common/entity/pushEnterprise'; + import { PushAuditStatus } from '/@/enums/pushEnum'; export default defineComponent({ components: { @@ -48,7 +49,7 @@ async function handleSubmit() { try { const formData = await validate(); - formData.status = 1; + formData.status = PushAuditStatus.UNDER_REVIEW; formData.license = Array(formData.license).join(','); submitBtnLoading.value = true; if (!formData.id) { @@ -57,7 +58,7 @@ await editPushEnterprise(formData); } createMessage.success('提交成功!'); - emit('next', 1); + emit('next', PushAuditStatus.UNDER_REVIEW); } finally { submitBtnLoading.value = false; } diff --git a/src/views/system/user/account/setting/entCertification/Step2.vue b/src/views/system/user/account/setting/entCertification/Step2.vue index b0a4cd3..46f2fad 100644 --- a/src/views/system/user/account/setting/entCertification/Step2.vue +++ b/src/views/system/user/account/setting/entCertification/Step2.vue @@ -1,6 +1,6 @@