Browse Source

perf: 优化整体推送代码,提高可维护性

master
wangxiang 2 years ago
parent
commit
f14adde730
  1. 6
      src/api/platform/system/controller/user.ts
  2. 3
      src/components/AMap/src/AMapDesigner/index.vue
  3. 3
      src/components/AMap/src/components/MapTaskPresetModal.vue
  4. 22
      src/enums/permissionEnum.ts
  5. 33
      src/enums/pushEnum.ts
  6. 2
      src/views/common/push/pushConcern/ConcernModal.vue
  7. 9
      src/views/common/push/pushConcern/index.vue
  8. 3
      src/views/common/push/pushEnterprise/index.vue
  9. 3
      src/views/common/push/pushEnterpriseAudit/index.vue
  10. 5
      src/views/common/push/pushFan/index.vue
  11. 15
      src/views/common/push/pushFriend/friend.data.ts
  12. 10
      src/views/common/push/pushFriend/index.vue
  13. 5
      src/views/common/push/pushFriendAudit/FriendAuditModal.vue
  14. 3
      src/views/common/push/pushFriendAudit/index.vue
  15. 3
      src/views/system/user/account/setting/data.ts
  16. 5
      src/views/system/user/account/setting/entCertification/Step1.vue
  17. 7
      src/views/system/user/account/setting/entCertification/Step2.vue
  18. 7
      src/views/system/user/account/setting/entCertification/index.vue
  19. 18
      src/views/system/user/user.data.ts

6
src/api/platform/system/controller/user.ts

@ -21,7 +21,8 @@ enum Api { @@ -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<KiccUser>({ url: @@ -59,3 +60,6 @@ export const synchronousAuthenticationUser = () => defHttp.get<KiccUser>({ url:
/** 获取全部快递员集合 */
export const getCourierUserList = () => defHttp.get<User[]>({ url: Api.getCourierUserList });
/** 获取用户类型集合 */
export const getUserTypeList = () => defHttp.get({ url: Api.getUserTypeList });

3
src/components/AMap/src/AMapDesigner/index.vue

@ -119,6 +119,7 @@ @@ -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 @@ @@ -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,

3
src/components/AMap/src/components/MapTaskPresetModal.vue

@ -62,6 +62,7 @@ @@ -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 @@ @@ -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,

22
src/enums/permissionEnum.ts

@ -0,0 +1,22 @@ @@ -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',
}

33
src/enums/pushEnum.ts

@ -0,0 +1,33 @@ @@ -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',
}

2
src/views/common/push/pushConcern/ConcernModal.vue

@ -31,7 +31,7 @@ @@ -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<ModalProps> = { confirmLoading: false };
props.title = '查看关注用户';
await setFieldsValue(await getPushConcernFan(refId, onType));

9
src/views/common/push/pushConcern/index.vue

@ -40,7 +40,7 @@ @@ -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 @@ @@ -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 @@ @@ -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 @@ @@ -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) {

3
src/views/common/push/pushEnterprise/index.vue

@ -50,6 +50,7 @@ @@ -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 @@ @@ -92,7 +93,7 @@
fixed: false
},
searchInfo: {
status: 2
status: PushAuditStatus.APPROVED
},
handleSearchInfoFn: () => clearSelectedRowKeys()
});

3
src/views/common/push/pushEnterpriseAudit/index.vue

@ -42,6 +42,7 @@ @@ -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 @@ @@ -88,7 +89,7 @@
fixed: false
},
searchInfo: {
status: 1
status: PushAuditStatus.UNDER_REVIEW
},
handleSearchInfoFn: () => clearSelectedRowKeys()
});

5
src/views/common/push/pushFan/index.vue

@ -30,7 +30,7 @@ @@ -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 @@ @@ -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 @@ @@ -93,7 +94,7 @@
fixed: false
},
searchInfo: {
status: '1',
status: PushAuditStatus.APPROVED,
concernUserId: userInfoStore.id
},
handleSearchInfoFn: () => clearSelectedRowKeys()

15
src/views/common/push/pushFriend/friend.data.ts

@ -2,6 +2,7 @@ import { BasicColumn } from '/@/components/Table'; @@ -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[] = [ @@ -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

10
src/views/common/push/pushFriend/index.vue

@ -14,14 +14,14 @@ @@ -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 @@ @@ -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 @@ @@ -113,7 +115,7 @@
await addPushConcernFan({
concernUserId: record?.id,
fanUserId: userInfoStore.id,
status: '1'
status: PushAuditStatus.APPROVED,
});
createMessage.success('关注成功!');
handleRefreshTable();

5
src/views/common/push/pushFriendAudit/FriendAuditModal.vue

@ -20,6 +20,7 @@ @@ -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<string>('');
@ -48,7 +49,7 @@ @@ -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 @@ @@ -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');

3
src/views/common/push/pushFriendAudit/index.vue

@ -43,6 +43,7 @@ @@ -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 @@ @@ -86,7 +87,7 @@
fixed: false
},
searchInfo: {
status: '0',
status: PushAuditStatus.UNDER_REVIEW,
fanUserId: userInfoStore.id
},
handleSearchInfoFn: () => clearSelectedRowKeys()

3
src/views/system/user/account/setting/data.ts

@ -1,5 +1,6 @@ @@ -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[] = [ @@ -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
}
];

5
src/views/system/user/account/setting/entCertification/Step1.vue

@ -10,6 +10,7 @@ @@ -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 @@ @@ -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 @@ @@ -57,7 +58,7 @@
await editPushEnterprise(formData);
}
createMessage.success('提交成功!');
emit('next', 1);
emit('next', PushAuditStatus.UNDER_REVIEW);
} finally {
submitBtnLoading.value = false;
}

7
src/views/system/user/account/setting/entCertification/Step2.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="step2">
<AResult v-if="props.pushEnterprise?.status == -1"
<AResult v-if="props.pushEnterprise?.status == PushAuditStatus.REJECTED"
status="error"
title="审核位通过"
sub-title="请检查并修改以下信息,然后再重新提交。"
@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
import { useMessage } from '/@/hooks/web/useMessage';
import { SmileOutlined } from '@ant-design/icons-vue';
import type { PushEnterprise } from '/@/api/platform/common/entity/pushEnterprise';
import { PushAuditStatus } from '/@/enums/pushEnum';
const AResult = Result;
const { createConfirm } = useMessage();
@ -44,7 +45,7 @@ @@ -44,7 +45,7 @@
});
async function handleSubmit() {
const contentText = props.pushEnterprise?.status == 1
const contentText = props.pushEnterprise?.status == PushAuditStatus.UNDER_REVIEW
? '是否确认撤销审核?'
: '是否确认返回到填写企业信息?';
createConfirm({
@ -52,7 +53,7 @@ @@ -52,7 +53,7 @@
title: '温馨提醒',
content: contentText,
onOk: async () => {
await updatePushEnterpriseAuditStatus(0);
await updatePushEnterpriseAuditStatus(PushAuditStatus.NOT_APPLIED);
emit('previous');
}
});

7
src/views/system/user/account/setting/entCertification/index.vue

@ -34,6 +34,7 @@ @@ -34,6 +34,7 @@
import { useContentHeight } from '/@/hooks/web/useContentHeight';
import { getAuthData } from '/@/api/platform/common/controller/pushEnterprise';
import type { PushEnterprise } from '/@/api/platform/common/entity/pushEnterprise';
import { PushAuditStatus } from '/@/enums/pushEnum';
interface State {
current: number;
@ -67,11 +68,11 @@ @@ -67,11 +68,11 @@
const pushEnterprise = await getAuthData();
state.pushEnterprise = pushEnterprise;
switch (pushEnterprise?.status) {
case 1:
case -1:
case PushAuditStatus.UNDER_REVIEW:
case PushAuditStatus.REJECTED:
state.current = 1;
break;
case 2:
case PushAuditStatus.APPROVED:
state.current = 2;
break;
default:

18
src/views/system/user/user.data.ts

@ -12,6 +12,8 @@ import { Switch } from 'ant-design-vue'; @@ -12,6 +12,8 @@ import { Switch } from 'ant-design-vue';
import { listRole } from '/@/api/platform/system/controller/role';
import { changeStatus } from '/@/api/platform/system/controller/user';
import { useMessage } from '/@/hooks/web/useMessage';
import { getUserTypeList } from '/@/api/platform/system/controller/user';
import { SystemUserType } from '/@/enums/permissionEnum';
/** 通用变量统一声明区域 */
const { createConfirm } = useMessage();
@ -261,17 +263,11 @@ export const userFormSchema: FormSchema[] = [ @@ -261,17 +263,11 @@ export const userFormSchema: FormSchema[] = [
{
field: 'userType',
label: '用户类型',
component: 'Select',
component: 'ApiSelect',
required: true,
componentProps: {
options: [
{ label: '系统管理员', value: '0' },
{ label: '普通用户', value: '1' },
{ label: '企业用户', value: '2' },
{ label: '收样员', value: '3' },
{ label: '客服', value: '4' },
{ label: '企业内部用户', value: '5' },
]
api: getUserTypeList,
resultField: 'data'
},
colProps: {
span: 12
@ -285,7 +281,7 @@ export const userFormSchema: FormSchema[] = [ @@ -285,7 +281,7 @@ export const userFormSchema: FormSchema[] = [
colProps: {
span: 12
},
ifShow: ({values}) => values.userType == '4'
ifShow: ({values}) => values.userType == SystemUserType.CUSTOMER_SERVICE
},
{
field: 'mapOrientation',
@ -299,7 +295,7 @@ export const userFormSchema: FormSchema[] = [ @@ -299,7 +295,7 @@ export const userFormSchema: FormSchema[] = [
colProps: {
span: 12
},
ifShow: ({ values }) => values.userType == '3',
ifShow: ({ values }) => values.userType == SystemUserType.CUSTOMER_SERVICE,
required: true,
},
{

Loading…
Cancel
Save