From c2447e7d63e22bea1a8b6119a210b470f8aa17d4 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期三, 03 十二月 2025 15:06:00 +0800
Subject: [PATCH] feat: 通知
---
apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue | 20 +
apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue | 6
apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue | 5
apps/bMiniApp/src/constants/app.ts | 3
apps/bMiniApp/src/subpackages/login/authorization/authorization.vue | 35 --
apps/bMiniApp/project.private.config.json | 7
packages/hooks/task.ts | 21 +
packages/components/src/Card/TaskCard.vue | 6
packages/services/apiV2/syncDatabase.ts | 15 -
apps/bMiniApp/src/hooks/user.ts | 5
apps/bMiniApp/src/stores/modules/user.ts | 1
packages/constants/apiEnum.ts | 60 ++---
apps/cMiniApp/src/pages/mine/index.vue | 6
apps/bMiniApp/.eslintrc-auto-import.json | 4
apps/bMiniApp/src/subpackages/mine/setting/setting.vue | 20 +
apps/bMiniApp/auto-imports.d.ts | 4
apps/cMiniApp/src/subpackages/mine/mineHired/InnerPage.vue | 4
apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue | 4
packages/services/apiV2/auth.ts | 15 +
apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue | 7
apps/underTakeMiniApp/src/subpackages/login/authorization/authorization.vue | 37 --
apps/underTakeMiniApp/src/hooks/user.ts | 5
apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue | 143 +++++++++++--
apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue | 7
packages/services/apiV2/task.ts | 18 +
packages/services/apiV2/typings.d.ts | 135 +++++++++----
apps/underTakeMiniApp/src/constants/app.ts | 3
27 files changed, 396 insertions(+), 200 deletions(-)
diff --git a/apps/bMiniApp/.eslintrc-auto-import.json b/apps/bMiniApp/.eslintrc-auto-import.json
index 28f1710..5036610 100644
--- a/apps/bMiniApp/.eslintrc-auto-import.json
+++ b/apps/bMiniApp/.eslintrc-auto-import.json
@@ -125,6 +125,8 @@
"DirectiveBinding": true,
"MaybeRef": true,
"MaybeRefOrGetter": true,
- "TabBarPageRouterList": true
+ "TabBarPageRouterList": true,
+ "APP_ENV": true,
+ "NODE_ENV": true
}
}
diff --git a/apps/bMiniApp/auto-imports.d.ts b/apps/bMiniApp/auto-imports.d.ts
index b393104..b925506 100644
--- a/apps/bMiniApp/auto-imports.d.ts
+++ b/apps/bMiniApp/auto-imports.d.ts
@@ -5,6 +5,7 @@
// Generated by unplugin-auto-import
export {}
declare global {
+ const APP_ENV: typeof import('./src/constants/app')['APP_ENV']
const AppLocalConfig: typeof import('./src/constants/app')['AppLocalConfig']
const BackType: typeof import('./src/constants/enum')['BackType']
const EffectScope: typeof import('vue')['EffectScope']
@@ -29,6 +30,7 @@
const EnumUserStatus: typeof import('./src/constants/apiEnum')['EnumUserStatus']
const EnumUserType: typeof import('./src/constants/apiEnum')['EnumUserType']
const HomeOrderType: typeof import('./src/hooks/task')['HomeOrderType']
+ const NODE_ENV: typeof import('./src/constants/app')['NODE_ENV']
const OssAssets: typeof import('./src/constants/img')['OssAssets']
const RouterPath: typeof import('./src/constants/router')['RouterPath']
const TabBarPageRouter: typeof import('./src/constants/tabBar')['TabBarPageRouter']
@@ -134,9 +136,11 @@
import { UnwrapRef } from 'vue'
declare module 'vue' {
interface ComponentCustomProperties {
+ readonly APP_ENV: UnwrapRef<typeof import('./src/constants/app')['APP_ENV']>
readonly AppLocalConfig: UnwrapRef<typeof import('./src/constants/app')['AppLocalConfig']>
readonly BackType: UnwrapRef<typeof import('./src/constants/enum')['BackType']>
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
+ readonly NODE_ENV: UnwrapRef<typeof import('./src/constants/app')['NODE_ENV']>
readonly OssAssets: UnwrapRef<typeof import('./src/constants/img')['OssAssets']>
readonly RouterPath: UnwrapRef<typeof import('./src/constants/router')['RouterPath']>
readonly TabBarPageRouter: UnwrapRef<typeof import('./src/constants/tabBar')['TabBarPageRouter']>
diff --git a/apps/bMiniApp/project.private.config.json b/apps/bMiniApp/project.private.config.json
index a630d9b..571984f 100644
--- a/apps/bMiniApp/project.private.config.json
+++ b/apps/bMiniApp/project.private.config.json
@@ -70,6 +70,13 @@
"query": "id=ed553142-801d-40b4-5582-08de0fa2a04b&operatorToken=627f56a2-d8a2-4606-b69f-36eadf770ecb",
"launchMode": "default",
"scene": null
+ },
+ {
+ "name": "",
+ "pathName": "subpackages/login/loginByForm/loginByForm",
+ "query": "redirect=%2Fpages%2Fmine%2Findex&%24taroTimestamp=1764663566375",
+ "launchMode": "default",
+ "scene": null
}
]
}
diff --git a/apps/bMiniApp/src/constants/app.ts b/apps/bMiniApp/src/constants/app.ts
index c7ddda3..1627c13 100644
--- a/apps/bMiniApp/src/constants/app.ts
+++ b/apps/bMiniApp/src/constants/app.ts
@@ -5,3 +5,6 @@
clientType: EnumClientType.Wxmp,
enterpriseType: EnumEnterpriseType.PartyA,
};
+
+export const APP_ENV = process.env.APP_ENV;
+export const NODE_ENV = process.env.NODE_ENV;
diff --git a/apps/bMiniApp/src/hooks/user.ts b/apps/bMiniApp/src/hooks/user.ts
index 100955b..61c3123 100644
--- a/apps/bMiniApp/src/hooks/user.ts
+++ b/apps/bMiniApp/src/hooks/user.ts
@@ -19,12 +19,17 @@
return userDetail.value?.enterpriseIsReal;
});
+ const isBindWechat = computed(() => {
+ return userDetail.value?.bindWxmpId;
+ });
+
return {
user: userInfo,
userDetail: userDetail,
updateUserInfo,
isCertified,
locationCity,
+ isBindWechat,
};
}
diff --git a/apps/bMiniApp/src/stores/modules/user.ts b/apps/bMiniApp/src/stores/modules/user.ts
index 5fc3404..1d8a70a 100644
--- a/apps/bMiniApp/src/stores/modules/user.ts
+++ b/apps/bMiniApp/src/stores/modules/user.ts
@@ -139,6 +139,7 @@
async loginByPassword(params: API.PasswordLoginCommand) {
let res = await authServices.passwordLogin(
{
+ code: params.code,
userName: params.userName,
password: params.password,
// password: md5Encrypt(params.password),
diff --git a/apps/bMiniApp/src/subpackages/login/authorization/authorization.vue b/apps/bMiniApp/src/subpackages/login/authorization/authorization.vue
index 3f1b760..748c81e 100644
--- a/apps/bMiniApp/src/subpackages/login/authorization/authorization.vue
+++ b/apps/bMiniApp/src/subpackages/login/authorization/authorization.vue
@@ -60,7 +60,6 @@
import IconCaptcha from '@/assets/login/icon-btn-captcha.png';
import IconPassword from '@/assets/login/icon-btn-password.png';
import { LoginFormTabs } from '../constants';
-import { subscribeMessageTemplateIdsForB } from '@12333/constants';
import * as authServices from '@12333/services/apiV2/auth';
defineOptions({
@@ -167,34 +166,12 @@
} catch (error) {}
}
-async function handleLoginSuccess() {
- try {
- if (!Taro.requestSubscribeMessage) {
- await Message.confirm({ message: '浣犵殑寰俊鐗堟湰杩囦綆锛屼笉鏀寔璁㈤槄娑堟伅锛屾槸鍚︾户缁姤鍚�' });
- }
- const res = await Taro.getSetting({
- withSubscriptions: true,
- });
- let setting: boolean[] = [];
- if (res.subscriptionsSetting && res.subscriptionsSetting.itemSettings) {
- setting = subscribeMessageTemplateIdsForB
- .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept')
- .filter(Boolean);
- }
- if (setting.length > 0) {
- Taro.requestSubscribeMessage({
- tmplIds: subscribeMessageTemplateIdsForB,
- success: function (res) {
- console.log('res: ', res);
- },
- });
- }
- Message.success('鎺堟潈鐧诲綍鎴愬姛', {
- onClosed: () => {
- jump();
- },
- });
- } catch (error) {}
+function handleLoginSuccess() {
+ Message.success('鎺堟潈鐧诲綍鎴愬姛', {
+ onClosed: () => {
+ jump();
+ },
+ });
}
function goLoginByForm(tab = LoginFormTabs.VerificationCodeLogin) {
diff --git a/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue b/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
index 61dc409..1095240 100644
--- a/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
+++ b/apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -1,32 +1,58 @@
<template>
<div class="verification-code-login-form-wrapper">
- <nut-form class="verification-code-login-form" ref="formRef" :model-value="form" :rules="rules">
- <nut-form-item label="" class="bole-form-item" prop="userName" required>
- <nut-input
- v-model.trim="form.userName"
- class="bole-input-text"
- placeholder="璇疯緭鍏ヨ处鍙�/鎵嬫満鍙�/閭"
- type="text"
- />
- </nut-form-item>
- <nut-form-item label="" class="bole-form-item" prop="userPassword" required>
- <nut-input
- v-model.trim="form.userPassword"
- class="bole-input-text"
- placeholder="璇疯緭鍏ュ瘑鐮�"
- :type="isShowPassword ? 'text' : 'password'"
- :key="isShowPassword ? 'text' : 'password'"
- >
- <template #right>
- <div class="password-icon-wrapper" @click="isShowPassword = !isShowPassword">
- <Eye v-if="isShowPassword"></Eye>
- <Marshalling v-else></Marshalling>
- </div>
- </template>
- </nut-input>
- </nut-form-item>
- </nut-form>
- <LargeButton class="login-btn" @click="handleLogin" :loading="form.loading">鐧诲綍</LargeButton>
+ <nut-button
+ v-if="isAccount"
+ type="primary"
+ class="authorization-page-wechat-wrapper"
+ @click="handleLoginByHasAccount"
+ >
+ <div class="authorization-page-wechat">鎵嬫満鍙峰揩閫熺櫥褰�</div></nut-button
+ >
+ <template v-else>
+ <nut-form
+ class="verification-code-login-form"
+ ref="formRef"
+ :model-value="form"
+ :rules="rules"
+ >
+ <nut-form-item label="" class="bole-form-item" prop="userName" required>
+ <nut-input
+ v-model.trim="form.userName"
+ class="bole-input-text"
+ placeholder="璇疯緭鍏ヨ处鍙�/鎵嬫満鍙�/閭"
+ type="text"
+ />
+ </nut-form-item>
+ <nut-form-item label="" class="bole-form-item" prop="userPassword" required>
+ <nut-input
+ v-model.trim="form.userPassword"
+ class="bole-input-text"
+ placeholder="璇疯緭鍏ュ瘑鐮�"
+ :type="isShowPassword ? 'text' : 'password'"
+ :key="isShowPassword ? 'text' : 'password'"
+ >
+ <template #right>
+ <div class="password-icon-wrapper" @click="isShowPassword = !isShowPassword">
+ <Eye v-if="isShowPassword"></Eye>
+ <Marshalling v-else></Marshalling>
+ </div>
+ </template>
+ </nut-input>
+ </nut-form-item>
+ </nut-form>
+ <LargeButton class="login-btn" @click="handleLogin" :loading="form.loading">鐧诲綍</LargeButton>
+ </template>
+
+ <!-- <AccessOpenTypeButton
+ type="primary"
+ class="authorization-page-wechat-wrapper"
+ open-type="getPhoneNumber"
+ :access="policyChecked"
+ @noAccess="noAccess"
+ @getphonenumber="handleLogin"
+ >
+ <div class="authorization-page-wechat">鐧诲綍</div>
+ </AccessOpenTypeButton> -->
<!-- <div class="go-register-btn" @click="goRegister">绔嬪嵆娉ㄥ唽</div> -->
</div>
</template>
@@ -39,6 +65,8 @@
import { useUserStore } from '@/stores/modules/user';
import { Eye, Marshalling } from '@nutui/icons-vue-taro';
import Taro from '@tarojs/taro';
+import { AccessOpenTypeButton } from '@12333/components';
+import * as authServices from '@12333/services/apiV2/auth';
defineOptions({
name: 'AccountLoginForm',
@@ -57,6 +85,8 @@
const isShowPassword = ref(false);
const formRef = ref(null);
+const isAccount = ref(false);
+const wxMiniAppUserLoginRes = ref<API.LoginCommandCallback>();
const form = reactive({
loading: false,
@@ -69,8 +99,24 @@
userPassword: [{ required: true, message: '璇疯緭鍏ュ瘑鐮�' }],
});
+async function handleLoginByHasAccount() {
+ try {
+ if (props.policyChecked) {
+ userStore.loginSuccess(wxMiniAppUserLoginRes.value);
+ Message.success('鐧诲綍鎴愬姛', {
+ onClosed: () => {
+ jump();
+ },
+ });
+ } else {
+ noAccess();
+ }
+ } catch (error) {}
+}
+
async function handleLogin() {
try {
+ let loginRes = await Taro.login();
if (props.policyChecked) {
const { valid } = await formRef.value.validate();
if (valid) {
@@ -78,6 +124,7 @@
await userStore.loginByPassword({
userName: form.userName,
password: form.userPassword,
+ code: loginRes.code,
});
jump();
}
@@ -100,6 +147,27 @@
url: RouterPath.registerForm,
});
}
+
+onMounted(async () => {
+ try {
+ let loginRes = await Taro.login();
+ const params: API.WxmpLoginCommand = {
+ code: loginRes.code,
+ type: AppLocalConfig.userType,
+ enterpriseType: AppLocalConfig.enterpriseType,
+ };
+ wxMiniAppUserLoginRes.value = await authServices.wxmpLogin(params, {
+ skipErrorHandler: true,
+ });
+ if (wxMiniAppUserLoginRes.value?.isBindPhoneNumber) {
+ isAccount.value = true;
+ }
+ } catch (error) {
+ if (error?.info?.errorCode == 's401') {
+ isAccount.value = false;
+ }
+ }
+});
</script>
<style lang="scss">
@@ -114,5 +182,26 @@
font-size: 28px;
}
}
+
+ .authorization-page-wechat-wrapper {
+ width: 100%;
+ height: 88px;
+ }
+
+ .authorization-page-wechat {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ font-weight: 400;
+ font-size: 32px;
+ color: #ffffff;
+ line-height: 44px;
+
+ .authorization-page-wechat-icon {
+ width: 44px;
+ height: 36px;
+ margin-right: 10px;
+ }
+ }
}
</style>
diff --git a/apps/bMiniApp/src/subpackages/mine/setting/setting.vue b/apps/bMiniApp/src/subpackages/mine/setting/setting.vue
index 11b99e2..91110b0 100644
--- a/apps/bMiniApp/src/subpackages/mine/setting/setting.vue
+++ b/apps/bMiniApp/src/subpackages/mine/setting/setting.vue
@@ -10,6 +10,7 @@
</ListItem> -->
<ListItem title="鐢ㄦ埛鍗忚" @click="goMineUserPolicy"></ListItem>
<ListItem title="闅愮鏀跨瓥" @click="goPrivacyPolicy"></ListItem>
+ <ListItem title="寰俊瑙g粦" @click="handleUnbindWechat"></ListItem>
<ListItem title="閫�鍑虹櫥褰�" @click="handleLoginout"></ListItem>
</List>
</PageLayout>
@@ -22,16 +23,18 @@
import { useUserStore } from '@/stores/modules/user';
import { useQueryClient } from '@tanstack/vue-query';
import Taro from '@tarojs/taro';
+import * as authServices from '@12333/services/apiV2/auth';
defineOptions({
name: 'setting',
});
const userStore = useUserStore();
+const { isBindWechat } = useUser();
const queryClient = useQueryClient();
const userAccount = computed(() => {
- return addStarForString(userStore?.userDetail?.userName, 4, 8);
+ return addStarForString(userStore?.userDetail?.name, 4, 8);
});
function goMineUserPolicy() {
@@ -54,6 +57,21 @@
queryClient.removeQueries();
} catch (error) {}
}
+
+async function handleUnbindWechat() {
+ try {
+ if (!isBindWechat) {
+ Message.error('鎮ㄨ繕娌℃湁缁戝畾寰俊');
+ return;
+ }
+ await Message.confirm({ message: '纭畾瑕佽В缁戝井淇″悧锛�' });
+ let params: API.UnBindUserWxmpIdCommand = {};
+ let res = await authServices.unBindUserWxmpId(params);
+ if (res) {
+ Message.success('瑙g粦鎴愬姛');
+ }
+ } catch (error) {}
+}
</script>
<style lang="scss">
diff --git a/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue
index cb1513b..b66d93b 100644
--- a/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue
@@ -23,9 +23,10 @@
:showFooterLeft="false"
>
<template #footerRight>
- <nut-button v-if="showQueryState" type="primary" @click.stop="handleArrange(item)"
- >瀹夋帓</nut-button
- >
+ <template v-if="showQueryState">
+ <nut-button type="primary" @click.stop="handleArrange(item)">瀹夋帓</nut-button>
+ <nut-button type="primary" @click.stop="handleArrange(item)">鍙栨秷褰曠敤</nut-button>
+ </template>
<div v-else class="batch-task-card-status">宸插畨鎺�</div>
</template>
</FlexJobCard>
diff --git a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
index 57dafbd..ca5ddd0 100644
--- a/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
+++ b/apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -40,6 +40,12 @@
>浜哄憳瀹夋帓</nut-button
>
<nut-button
+ type="primary"
+ class="dark-btn"
+ @click.stop="goBatchTaskList(item, EnumTaskUserArrangeStatus.Wait)"
+ >鍙栨秷褰曠敤</nut-button
+ >
+ <nut-button
v-if="item.status === EnumTaskStatus.Complete"
type="primary"
:color="Colors.Info"
diff --git a/apps/cMiniApp/src/pages/mine/index.vue b/apps/cMiniApp/src/pages/mine/index.vue
index fdc1db4..68cc1c8 100644
--- a/apps/cMiniApp/src/pages/mine/index.vue
+++ b/apps/cMiniApp/src/pages/mine/index.vue
@@ -91,7 +91,7 @@
<nut-badge
class="mine-order-list-item"
top="8"
- :value="userDetail?.taskCount ?? 0"
+ :dot="userDetail?.taskCount > 0"
@click="goMineSign"
>
<img :src="IconOrderSign" class="mine-order-list-icon" />
@@ -100,7 +100,7 @@
<nut-badge
class="mine-order-list-item"
top="8"
- :value="userDetail?.hirePassTaskCount ?? 0"
+ :dot="userDetail?.hirePassTaskCount > 0"
@click="goMineHired"
>
<img :src="IconOrderHire" class="mine-order-list-icon" />
@@ -109,7 +109,7 @@
<nut-badge
class="mine-order-list-item"
top="8"
- :value="userDetail?.arrangeCompleteTaskCount ?? 0"
+ :dot="userDetail?.arrangeCompleteTaskCount > 0"
@click="goMineHire"
>
<img :src="IconOrderHire" class="mine-order-list-icon" />
diff --git a/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
index 2605683..494c1a5 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineHire/InnerPage.vue
@@ -34,6 +34,7 @@
:service-fee="item.serviceFee"
:settlement-cycle="item.settlementCycle"
:address-name="item.addressName"
+ :unRead="item.unRead"
@click="goTaskDetail(item)"
>
<template #actions>
@@ -58,6 +59,7 @@
GetPersonalHireTaskInfosQueryStatusText,
GetPersonalHireTaskInfosQueryStatusColor,
EnumTaskUserArrangeStatus,
+ EnumReadScene,
} from '@12333/constants';
import * as taskServices from '@12333/services/apiV2/task';
import Taro from '@tarojs/taro';
@@ -95,7 +97,7 @@
function goTaskDetail(item: API.GetPersonalHireTaskInfosQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.taskDetail}?id=${item.id}&from=hire`,
+ url: `${RouterPath.taskDetail}?id=${item.id}&from=hire&readScene=${EnumReadScene.TaskUserArrangePassForPersonal}`,
});
}
</script>
diff --git a/apps/cMiniApp/src/subpackages/mine/mineHired/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineHired/InnerPage.vue
index 6bd3a03..c24d147 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineHired/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineHired/InnerPage.vue
@@ -34,6 +34,7 @@
:service-fee="item.serviceFee"
:settlement-cycle="item.settlementCycle"
:address-name="item.addressName"
+ :unRead="item.unRead"
@click="goTaskDetail(item)"
>
<template #actions>
@@ -58,6 +59,7 @@
GetPersonalHireTaskInfosQueryStatusText,
GetPersonalHireTaskInfosQueryStatusColor,
EnumTaskUserHireStatus,
+ EnumReadScene,
} from '@12333/constants';
import * as taskServices from '@12333/services/apiV2/task';
import Taro from '@tarojs/taro';
@@ -94,7 +96,7 @@
function goTaskDetail(item: API.GetPersonalHireTaskInfosQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.taskDetail}?id=${item.id}`,
+ url: `${RouterPath.taskDetail}?id=${item.id}&readScene=${EnumReadScene.TaskUserHirePassForPersonal}`,
});
}
</script>
diff --git a/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue b/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue
index 0c508cf..0115ec4 100644
--- a/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/mine/mineSign/InnerPage.vue
@@ -37,7 +37,7 @@
:service-fee="item.serviceFee"
:settlement-cycle="item.settlementCycle"
:address-name="item.addressName"
- :isRead="false"
+ :unRead="item.unRead"
@click="goTaskDetail(item)"
>
<template #actions>
@@ -62,6 +62,7 @@
GetPersonalApplyTaskInfosQueryStatus,
GetPersonalApplyTaskInfosQueryStatusText,
GetPersonalApplyTaskInfosQueryStatusColor,
+ EnumReadScene,
} from '@12333/constants';
import * as taskServices from '@12333/services/apiV2/task';
import Taro from '@tarojs/taro';
@@ -99,7 +100,7 @@
function goTaskDetail(item: API.GetPersonalApplyTaskInfosQueryResultItem) {
Taro.navigateTo({
- url: `${RouterPath.taskDetail}?id=${item.id}&from=sign`,
+ url: `${RouterPath.taskDetail}?id=${item.id}&from=sign&readScene=${EnumReadScene.TaskUserApplyForPersonal}`,
});
}
</script>
diff --git a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
index d7a1d9c..a174d88 100644
--- a/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
+++ b/apps/cMiniApp/src/subpackages/task/taskDetail/InnerPage.vue
@@ -126,6 +126,7 @@
GetTaskInfoQueryResultHireButton,
GetTaskInfoQueryResultApplyButton,
EnumTaskCheckReceiveMethod,
+ EnumReadScene,
} from '@12333/constants';
import { useAccessLogin } from '@/hooks';
import { useTaskInfo } from '@12333/hooks';
@@ -142,8 +143,12 @@
const router = Taro.useRouter();
const id = router.params?.id ?? '';
const from = router.params?.from ?? '';
+const readScene = router.params?.readScene ?? '';
-const { isLoading, isError, detail, refetch, isContainCheckIn } = useTaskInfo({ id });
+const { isLoading, isError, detail, refetch, isContainCheckIn } = useTaskInfo({
+ id,
+ readScene: readScene,
+});
const { isCollapse, setTrue } = useToggle();
diff --git a/apps/underTakeMiniApp/src/constants/app.ts b/apps/underTakeMiniApp/src/constants/app.ts
index c948dea..f361721 100644
--- a/apps/underTakeMiniApp/src/constants/app.ts
+++ b/apps/underTakeMiniApp/src/constants/app.ts
@@ -5,3 +5,6 @@
clientType: EnumClientType.Wxmp,
enterpriseType: EnumEnterpriseType.Supplier,
};
+
+export const APP_ENV = process.env.APP_ENV;
+export const NODE_ENV = process.env.NODE_ENV;
diff --git a/apps/underTakeMiniApp/src/hooks/user.ts b/apps/underTakeMiniApp/src/hooks/user.ts
index 100955b..61c3123 100644
--- a/apps/underTakeMiniApp/src/hooks/user.ts
+++ b/apps/underTakeMiniApp/src/hooks/user.ts
@@ -19,12 +19,17 @@
return userDetail.value?.enterpriseIsReal;
});
+ const isBindWechat = computed(() => {
+ return userDetail.value?.bindWxmpId;
+ });
+
return {
user: userInfo,
userDetail: userDetail,
updateUserInfo,
isCertified,
locationCity,
+ isBindWechat,
};
}
diff --git a/apps/underTakeMiniApp/src/subpackages/login/authorization/authorization.vue b/apps/underTakeMiniApp/src/subpackages/login/authorization/authorization.vue
index 56640a5..cd8af0c 100644
--- a/apps/underTakeMiniApp/src/subpackages/login/authorization/authorization.vue
+++ b/apps/underTakeMiniApp/src/subpackages/login/authorization/authorization.vue
@@ -25,7 +25,7 @@
v-model="state.policyChecked"
policyBtnText="鑻ユ墜鏈哄彿鏈敞鍐岋紝灏嗕负鎮ㄧ洿鎺ユ敞鍐岃处鍙凤紝娉ㄥ唽鍗充负鍚屾剰"
/>
- <div class="other-login-channel-wrapper" v-if="!isLoginByWeb">
+ <div class="other-login-channel-wrapper" v-if="NODE_ENV === 'development'">
<nut-divider>鍏朵粬鐧诲綍鏂瑰紡</nut-divider>
<div class="other-login-channel-list">
<div class="other-login-channel-list-item" @click="goLoginByForm()">
@@ -62,6 +62,7 @@
import { LoginFormTabs } from '../constants';
import * as authServices from '@12333/services/apiV2/auth';
import { subscribeMessageTemplateIdsForU } from '@12333/constants';
+import { NODE_ENV } from '@/constants';
defineOptions({
name: 'authorization',
@@ -167,34 +168,12 @@
} catch (error) {}
}
-async function handleLoginSuccess() {
- try {
- if (!Taro.requestSubscribeMessage) {
- await Message.confirm({ message: '浣犵殑寰俊鐗堟湰杩囦綆锛屼笉鏀寔璁㈤槄娑堟伅锛屾槸鍚︾户缁姤鍚�' });
- }
- const res = await Taro.getSetting({
- withSubscriptions: true,
- });
- let setting: boolean[] = [];
- if (res.subscriptionsSetting && res.subscriptionsSetting.itemSettings) {
- setting = subscribeMessageTemplateIdsForU
- .map((id) => res.subscriptionsSetting.itemSettings[id] !== 'accept')
- .filter(Boolean);
- }
- if (setting.length > 0) {
- Taro.requestSubscribeMessage({
- tmplIds: subscribeMessageTemplateIdsForU,
- success: function (res) {
- console.log('res: ', res);
- },
- });
- }
- Message.success('鎺堟潈鐧诲綍鎴愬姛', {
- onClosed: () => {
- jump();
- },
- });
- } catch (error) {}
+function handleLoginSuccess() {
+ Message.success('鎺堟潈鐧诲綍鎴愬姛', {
+ onClosed: () => {
+ jump();
+ },
+ });
}
function goLoginByForm(tab = LoginFormTabs.VerificationCodeLogin) {
diff --git a/apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue b/apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue
index 11b99e2..91110b0 100644
--- a/apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue
+++ b/apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue
@@ -10,6 +10,7 @@
</ListItem> -->
<ListItem title="鐢ㄦ埛鍗忚" @click="goMineUserPolicy"></ListItem>
<ListItem title="闅愮鏀跨瓥" @click="goPrivacyPolicy"></ListItem>
+ <ListItem title="寰俊瑙g粦" @click="handleUnbindWechat"></ListItem>
<ListItem title="閫�鍑虹櫥褰�" @click="handleLoginout"></ListItem>
</List>
</PageLayout>
@@ -22,16 +23,18 @@
import { useUserStore } from '@/stores/modules/user';
import { useQueryClient } from '@tanstack/vue-query';
import Taro from '@tarojs/taro';
+import * as authServices from '@12333/services/apiV2/auth';
defineOptions({
name: 'setting',
});
const userStore = useUserStore();
+const { isBindWechat } = useUser();
const queryClient = useQueryClient();
const userAccount = computed(() => {
- return addStarForString(userStore?.userDetail?.userName, 4, 8);
+ return addStarForString(userStore?.userDetail?.name, 4, 8);
});
function goMineUserPolicy() {
@@ -54,6 +57,21 @@
queryClient.removeQueries();
} catch (error) {}
}
+
+async function handleUnbindWechat() {
+ try {
+ if (!isBindWechat) {
+ Message.error('鎮ㄨ繕娌℃湁缁戝畾寰俊');
+ return;
+ }
+ await Message.confirm({ message: '纭畾瑕佽В缁戝井淇″悧锛�' });
+ let params: API.UnBindUserWxmpIdCommand = {};
+ let res = await authServices.unBindUserWxmpId(params);
+ if (res) {
+ Message.success('瑙g粦鎴愬姛');
+ }
+ } catch (error) {}
+}
</script>
<style lang="scss">
diff --git a/packages/components/src/Card/TaskCard.vue b/packages/components/src/Card/TaskCard.vue
index cf9cc09..d8f6899 100644
--- a/packages/components/src/Card/TaskCard.vue
+++ b/packages/components/src/Card/TaskCard.vue
@@ -1,5 +1,5 @@
<template>
- <div class="task-card-wrapper" :class="{ 'un-read': !isRead }">
+ <div class="task-card-wrapper" :class="{ 'un-read': unRead }">
<div class="task-card-title-wrapper">
<div class="task-card-title">{{ name }}</div>
<slot name="title-right">
@@ -123,13 +123,13 @@
createdTime?: string;
hireStatus?: EnumTaskUserHireStatus;
- isRead?: boolean;
+ unRead?: boolean;
};
const props = withDefaults(defineProps<Props>(), {
showActions: true,
- isRead: true,
+ unRead: false,
});
const emit = defineEmits<{
diff --git a/packages/constants/apiEnum.ts b/packages/constants/apiEnum.ts
index 586337d..d8f26f2 100644
--- a/packages/constants/apiEnum.ts
+++ b/packages/constants/apiEnum.ts
@@ -395,6 +395,16 @@
Real = 100,
}
+/** 宸茶鍦烘櫙 */
+export enum EnumReadScene {
+ /**C绔汉鍛� */
+ TaskUserApplyForPersonal = 0,
+ /**C绔汉鍛� */
+ TaskUserHirePassForPersonal = 1,
+ /**C绔汉鍛� */
+ TaskUserArrangePassForPersonal = 2,
+}
+
/** 瀹炲悕閫氶亾 */
export enum EnumRealAccess {
/**涓婁笂绛� */
@@ -429,36 +439,38 @@
CommonServerSmsUtils = 10,
/**閰嶇疆 */
CommonServerSettings = 11,
+ /**宸茶 */
+ CommonServerReadRecord = 12,
/**鐢ㄦ埛璁よ瘉 */
- UserServerAuth = 12,
+ UserServerAuth = 13,
/**鐢ㄦ埛鑿滃崟 */
- UserServerMenu = 13,
+ UserServerMenu = 14,
/**鐢ㄦ埛璧勬簮 */
- UserServerResource = 14,
+ UserServerResource = 15,
/**鐢ㄦ埛瑙掕壊 */
- UserServerRole = 15,
+ UserServerRole = 16,
/**鐢ㄦ埛淇℃伅 */
- UserServerUser = 16,
+ UserServerUser = 17,
/**鐢ㄦ埛閽卞寘 */
- UserServerUserWallet = 17,
+ UserServerUserWallet = 18,
/**鐢靛瓙绛� */
- UserServerElectronSign = 18,
+ UserServerElectronSign = 19,
/**鐢ㄦ埛绠�鍘� */
- UserServerUserResume = 19,
+ UserServerUserResume = 20,
/**浼佷笟淇℃伅 */
- UserServerEnterprise = 20,
+ UserServerEnterprise = 21,
/**浼佷笟閽卞寘 */
- UserServerEnterpriseWallet = 21,
+ UserServerEnterpriseWallet = 22,
/**浼佷笟鍚堜綔閽卞寘 */
- UserServerEnterpriseCooperationWallet = 22,
+ UserServerEnterpriseCooperationWallet = 23,
/**鐏靛伐淇℃伅 */
- UserServerEnterpriseEmployee = 23,
+ UserServerEnterpriseEmployee = 24,
/**鐢靛瓙绛� */
- ElectronSignServerElectronSign = 24,
+ ElectronSignServerElectronSign = 25,
/**鐭俊 */
- ToolServerSms = 25,
+ ToolServerSms = 26,
/**灏忕▼搴� */
- ToolServerWxmp = 26,
+ ToolServerWxmp = 27,
}
/** 璧勬簮璇锋眰鏂瑰紡 */
@@ -639,6 +651,8 @@
Pass = 20,
/**宸茶阿缁� */
Refuse = 30,
+ /**宸插彇娑� */
+ Cancel = 40,
}
/** 浠诲姟鐢ㄦ埛绛剧害鐘舵�� */
@@ -895,22 +909,6 @@
VERIFY_FAIL = 1,
/**楠岃瘉涓紝鍟嗘埛鍙彂璧锋彁鐜板皾璇� */
VERIFYING = 2,
-}
-
-/** 寰俊灏忕▼搴忚闃呮秷鎭ā鏉� */
-export enum EnumWxmpSubscribMessageTemplate {
- /**鏀粯鎴愬姛鎻愰啋 缁撶畻瀹屾垚鍚庡悜鎵挎徑绔鐞嗗憳鎺ㄩ�� */
- SettlementCompletedToSupplier = 0,
- /**鎶ラ叕缁撶畻瀹℃牳缁撴灉閫氱煡 鐢叉柟缁撶畻纭鍚庡悜鎵挎徑绔鐞嗗憳鎺ㄩ�� */
- SettlementAuditCompletedToSupplier = 1,
- /**宸ヨ祫鍙戞斁閫氱煡 缁撶畻瀹屾垚鍚庡悜C绔汉鍛橀�氱煡 */
- SettlementReceiveCompletedToUser = 2,
- /**鎶ュ悕褰曠敤缁撴灉閫氱煡 琚綍鐢ㄥ悗鍚慍绔汉鍛橀�氱煡 */
- HireCompletedToUser = 3,
- /**鎺掔彮鎴愬姛閫氱煡 鎺掔彮鍚庡悜C绔汉鍛橀�氱煡 */
- ArrangeCompletedToUser = 4,
- /**娴嬭瘯 */
- Test = 5,
}
/** 鎴戠殑鎶ュ悕鍒嗛〉鍒楄〃-鐘舵�� */
diff --git a/packages/hooks/task.ts b/packages/hooks/task.ts
index 58642d8..3e2af80 100644
--- a/packages/hooks/task.ts
+++ b/packages/hooks/task.ts
@@ -10,6 +10,7 @@
EnumTaskStatus,
EnumUserGender,
EnumTaskUserApplyStatus,
+ EnumReadScene,
} from '@12333/constants';
import _ from 'lodash';
import { OrderUtils, trim } from '@12333/utils';
@@ -228,24 +229,28 @@
type UseTaskInfoOptions = {
id: MaybeRef<string>;
+ readScene?: string | EnumReadScene;
onSuccess?: (data: API.GetTaskInfoQueryResult) => any;
};
-export function useTaskInfo({ id, onSuccess }: UseTaskInfoOptions) {
+export function useTaskInfo({ id, readScene, onSuccess }: UseTaskInfoOptions) {
const {
isLoading,
isError,
data: detail,
refetch,
} = useQuery({
- queryKey: ['taskServices/getTaskInfo', id],
+ queryKey: ['taskServices/getTaskInfo', id, readScene],
queryFn: async () => {
- return await taskServices.getTaskInfo(
- { id: unref(id) },
- {
- showLoading: false,
- }
- );
+ const params: API.APIgetTaskInfoParams = {
+ id: unref(id),
+ };
+ if (!!readScene) {
+ params.readScene = Number(readScene);
+ }
+ return await taskServices.getTaskInfo(params, {
+ showLoading: false,
+ });
},
placeholderData: () => ({} as API.GetTaskInfoQueryResult),
onSuccess(data) {
diff --git a/packages/services/apiV2/auth.ts b/packages/services/apiV2/auth.ts
index 29e4032..87bd6be 100644
--- a/packages/services/apiV2/auth.ts
+++ b/packages/services/apiV2/auth.ts
@@ -169,6 +169,21 @@
});
}
+/** 瑙g粦寰俊灏忕▼搴忓揩鎹风櫥褰� POST /api/user/auth/unBindUserWxmpId */
+export async function unBindUserWxmpId(
+ body: API.UnBindUserWxmpIdCommand,
+ options?: API.RequestConfig
+) {
+ return request<string>('/api/user/auth/unBindUserWxmpId', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ });
+}
+
/** 鍙戦�佹洿鎹㈡墜鏈哄彿鐭俊 POST /api/user/auth/updatePhoneNumberVerifyCode */
export async function updatePhoneNumberVerifyCode(
body: API.UpdatePhoneNumberVerifyCodeCommand,
diff --git a/packages/services/apiV2/syncDatabase.ts b/packages/services/apiV2/syncDatabase.ts
index 2d526e7..b40e50d 100644
--- a/packages/services/apiV2/syncDatabase.ts
+++ b/packages/services/apiV2/syncDatabase.ts
@@ -2,21 +2,6 @@
// @ts-ignore
import { request } from '@/utils/request';
-/** 鍚屾鏁版嵁搴� POST /api/common/syncDatabase/sendWxmpSubscribMessage */
-export async function sendWxmpSubscribMessage(
- body: API.SendWxmpSubscribMessageCommand,
- options?: API.RequestConfig
-) {
- return request<boolean>('/api/common/syncDatabase/sendWxmpSubscribMessage', {
- method: 'POST',
- headers: {
- 'Content-Type': 'application/json-patch+json',
- },
- data: body,
- ...(options || {}),
- });
-}
-
/** 鍚屾鏁版嵁搴� POST /api/common/syncDatabase/syncDatabase */
export async function syncDatabase(body: API.SyncDatabaseCommand, options?: API.RequestConfig) {
return request<number>('/api/common/syncDatabase/syncDatabase', {
diff --git a/packages/services/apiV2/task.ts b/packages/services/apiV2/task.ts
index 05569e2..5ec27db 100644
--- a/packages/services/apiV2/task.ts
+++ b/packages/services/apiV2/task.ts
@@ -281,6 +281,24 @@
});
}
+/** 鏌ヨ鍙戞斁鏄庣粏鎶ヨ〃鍒嗛〉鍒楄〃鏁版嵁 POST /api/flexjob/task/getTaskSettlementReleaseReports */
+export async function getTaskSettlementReleaseReports(
+ body: API.GetTaskSettlementReleaseReportsQuery,
+ options?: API.RequestConfig
+) {
+ return request<API.GetTaskSettlementReleaseReportsQueryResult>(
+ '/api/flexjob/task/getTaskSettlementReleaseReports',
+ {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json-patch+json',
+ },
+ data: body,
+ ...(options || {}),
+ }
+ );
+}
+
/** 瀵煎叆缁撶畻鍚嶅崟 POST /api/flexjob/task/importTaskSettlementOrderRosters */
export async function importTaskSettlementOrderRosters(
body: API.ImportTaskSettlementOrderRostersCommand,
diff --git a/packages/services/apiV2/typings.d.ts b/packages/services/apiV2/typings.d.ts
index d58f216..6ae7cfb 100644
--- a/packages/services/apiV2/typings.d.ts
+++ b/packages/services/apiV2/typings.d.ts
@@ -317,6 +317,8 @@
interface APIgetTaskInfoParams {
/** Id */
id?: string;
+ /** 鍦烘櫙 */
+ readScene?: EnumReadScene;
}
interface APIgetTaskSelectParams {
@@ -1140,6 +1142,15 @@
Real = 100,
}
+ enum EnumReadScene {
+ /**C绔汉鍛� */
+ TaskUserApplyForPersonal = 0,
+ /**C绔汉鍛� */
+ TaskUserHirePassForPersonal = 1,
+ /**C绔汉鍛� */
+ TaskUserArrangePassForPersonal = 2,
+ }
+
enum EnumRealAccess {
/**涓婁笂绛� */
BestSign = 10,
@@ -1172,36 +1183,38 @@
CommonServerSmsUtils = 10,
/**閰嶇疆 */
CommonServerSettings = 11,
+ /**宸茶 */
+ CommonServerReadRecord = 12,
/**鐢ㄦ埛璁よ瘉 */
- UserServerAuth = 12,
+ UserServerAuth = 13,
/**鐢ㄦ埛鑿滃崟 */
- UserServerMenu = 13,
+ UserServerMenu = 14,
/**鐢ㄦ埛璧勬簮 */
- UserServerResource = 14,
+ UserServerResource = 15,
/**鐢ㄦ埛瑙掕壊 */
- UserServerRole = 15,
+ UserServerRole = 16,
/**鐢ㄦ埛淇℃伅 */
- UserServerUser = 16,
+ UserServerUser = 17,
/**鐢ㄦ埛閽卞寘 */
- UserServerUserWallet = 17,
+ UserServerUserWallet = 18,
/**鐢靛瓙绛� */
- UserServerElectronSign = 18,
+ UserServerElectronSign = 19,
/**鐢ㄦ埛绠�鍘� */
- UserServerUserResume = 19,
+ UserServerUserResume = 20,
/**浼佷笟淇℃伅 */
- UserServerEnterprise = 20,
+ UserServerEnterprise = 21,
/**浼佷笟閽卞寘 */
- UserServerEnterpriseWallet = 21,
+ UserServerEnterpriseWallet = 22,
/**浼佷笟鍚堜綔閽卞寘 */
- UserServerEnterpriseCooperationWallet = 22,
+ UserServerEnterpriseCooperationWallet = 23,
/**鐏靛伐淇℃伅 */
- UserServerEnterpriseEmployee = 23,
+ UserServerEnterpriseEmployee = 24,
/**鐢靛瓙绛� */
- ElectronSignServerElectronSign = 24,
+ ElectronSignServerElectronSign = 25,
/**鐭俊 */
- ToolServerSms = 25,
+ ToolServerSms = 26,
/**灏忕▼搴� */
- ToolServerWxmp = 26,
+ ToolServerWxmp = 27,
}
enum EnumResourceMethod {
@@ -1364,6 +1377,8 @@
Pass = 20,
/**宸茶阿缁� */
Refuse = 30,
+ /**宸插彇娑� */
+ Cancel = 40,
}
enum EnumTaskUserSignContractStatus {
@@ -1599,21 +1614,6 @@
VERIFY_FAIL = 1,
/**楠岃瘉涓紝鍟嗘埛鍙彂璧锋彁鐜板皾璇� */
VERIFYING = 2,
- }
-
- enum EnumWxmpSubscribMessageTemplate {
- /**鏀粯鎴愬姛鎻愰啋 缁撶畻瀹屾垚鍚庡悜鎵挎徑绔鐞嗗憳鎺ㄩ�� */
- SettlementCompletedToSupplier = 0,
- /**鎶ラ叕缁撶畻瀹℃牳缁撴灉閫氱煡 鐢叉柟缁撶畻纭鍚庡悜鎵挎徑绔鐞嗗憳鎺ㄩ�� */
- SettlementAuditCompletedToSupplier = 1,
- /**宸ヨ祫鍙戞斁閫氱煡 缁撶畻瀹屾垚鍚庡悜C绔汉鍛橀�氱煡 */
- SettlementReceiveCompletedToUser = 2,
- /**鎶ュ悕褰曠敤缁撴灉閫氱煡 琚綍鐢ㄥ悗鍚慍绔汉鍛橀�氱煡 */
- HireCompletedToUser = 3,
- /**鎺掔彮鎴愬姛閫氱煡 鎺掔彮鍚庡悜C绔汉鍛橀�氱煡 */
- ArrangeCompletedToUser = 4,
- /**娴嬭瘯 */
- Test = 5,
}
interface ExportEnterpriseBalanceDetailsCommand {
@@ -2944,6 +2944,24 @@
timestamp?: number;
}
+ interface FriendlyResultGetTaskSettlementReleaseReportsQueryResult {
+ /** 璺熻釜Id */
+ traceId?: string;
+ /** 鐘舵�佺爜 */
+ code?: number;
+ /** 閿欒鐮� */
+ errorCode?: string;
+ data?: GetTaskSettlementReleaseReportsQueryResult;
+ /** 鎵ц鎴愬姛 */
+ success?: boolean;
+ /** 閿欒淇℃伅 */
+ msg?: any;
+ /** 闄勫姞鏁版嵁 */
+ extras?: any;
+ /** 鏃堕棿鎴� */
+ timestamp?: number;
+ }
+
interface FriendlyResultGetTaskUserHireStatusQueryResult {
/** 璺熻釜Id */
traceId?: string;
@@ -4183,6 +4201,8 @@
/** 鏈�杩戦獙鏀舵椂闂� */
lastCheckReceiveTime?: string;
checkedStatus?: EnumGetCheckReceiveTasksQueryResultItemCheckStatus;
+ /** 浜哄憳鏁伴噺 */
+ arrangeUserCount?: number;
}
interface GetCheckReceiveTaskUserSubmitCheckHistoriesQuery {
@@ -5028,6 +5048,8 @@
collectedUserCount?: number;
/** 鑱旂郴璁板綍 */
contactedRecordCount?: number;
+ /** 缁戝畾寰俊蹇嵎鐧诲綍 */
+ bindWxmpId?: boolean;
}
interface GetEnterpriseQueryResult {
@@ -5881,6 +5903,8 @@
/** 浠诲姟鍦扮偣鍚嶇О */
addressName?: string;
status?: GetPersonalApplyTaskInfosQueryStatus;
+ /** 鏈 */
+ unRead?: boolean;
}
enum GetPersonalApplyTaskInfosQueryStatus {
@@ -5992,6 +6016,8 @@
/** 浠诲姟鍦扮偣鍚嶇О */
addressName?: string;
status?: GetPersonalHireTaskInfosQueryStatus;
+ /** 鏈 */
+ unRead?: boolean;
}
enum GetPersonalHireTaskInfosQueryStatus {
@@ -6244,8 +6270,6 @@
code?: string;
/** 浠诲姟鍚嶇О */
taskName?: string;
- /** 浠诲姟鍗曞彿 */
- taskCode?: string;
/** 浼佷笟鍚嶇О */
enterpriseName?: string;
/** 缁撶畻鏃ユ湡 */
@@ -7060,6 +7084,8 @@
status?: EnumTaskStatus;
releaseStatus?: EnumTaskReleaseStatus;
hireStatus?: EnumTaskUserHireStatus;
+ /** 褰曠敤澶囨敞 */
+ hireRemark?: string;
/** 鐏靛伐Id */
enterpriseEmployeeId?: string;
applyButton?: GetTaskInfoQueryResultApplyButton;
@@ -7233,6 +7259,33 @@
code?: string;
/** 浠诲姟鍚嶇О */
name?: string;
+ }
+
+ interface GetTaskSettlementReleaseReportsQuery {
+ /** 寮�濮嬫棩鏈� */
+ startMonth?: string;
+ /** 缁撴潫鏃ユ湡 */
+ endMonth?: string;
+ pageModel?: PagedListQueryPageModel;
+ }
+
+ interface GetTaskSettlementReleaseReportsQueryResult {
+ pageModel?: PagedListQueryResultPageModel;
+ /** 鏁版嵁 */
+ data?: GetTaskSettlementReleaseReportsQueryResultItem[];
+ }
+
+ interface GetTaskSettlementReleaseReportsQueryResultItem {
+ /** 鏃ユ湡 */
+ month?: string;
+ /** 鍙戞斁閲戦 */
+ amount?: number;
+ /** 鍙戞斁浜烘暟 */
+ peopleCount?: number;
+ /** 鐢熸垚鏃ユ湡 */
+ createdTime?: string;
+ /** 姹囨�昏〃鏍� */
+ url?: string;
}
interface GetTaskUserHireStatusQueryResult {
@@ -7955,6 +8008,8 @@
}
interface PasswordLoginCommand {
+ /** 鐢ㄦ埛鐧诲綍鍑瘉 */
+ code?: string;
/** 璐﹀彿 */
userName: string;
/** 瀵嗙爜 */
@@ -8747,18 +8802,6 @@
phoneNumber: string;
}
- interface SendWxmpSubscribMessageCommand {
- /** 灏忕▼搴忕紪鍙� */
- wxmpCode: string;
- template: EnumWxmpSubscribMessageTemplate;
- /** 鐐瑰嚮妯℃澘鍗$墖鍚庣殑璺宠浆椤甸潰锛屼粎闄愭湰灏忕▼搴忓唴鐨勯〉闈€�傛敮鎸佸甫鍙傛暟,锛堢ず渚媔ndex?foo=bar锛夈�傝瀛楁涓嶅~鍒欐ā鏉挎棤璺宠浆 */
- page?: string;
- /** 鎺ユ敹鑰咃紙鐢ㄦ埛锛夌殑 openid */
- touser: string;
- /** 妯℃澘鍐呭锛屾牸寮忓舰濡倇 "phrase3": { "value": "瀹℃牳閫氳繃" }, "name1": { "value": "璁㈤槄" }, "date2": { "value": "2019-12-25 09:42" } } */
- data: any;
- }
-
interface SetDictionaryDataIsDisabledCommand {
ids?: string[];
/** 鏄惁宸茬鐢� */
@@ -8835,6 +8878,8 @@
/** 浠诲姟浜哄憳Id */
id?: string;
hireStatus?: EnumTaskUserHireStatus;
+ /** 褰曠敤澶囨敞 */
+ hireRemark?: string;
}
enum SettlementReceiveStatus {
@@ -9080,6 +9125,8 @@
type TestEventCommand = Record<string, any>;
+ type UnBindUserWxmpIdCommand = Record<string, any>;
+
interface UpdateEnterpriseWeChatPayWalletBankAccountInfoCommand {
/** 浼佷笟Id */
enterpriseId?: string;
--
Gitblit v1.9.1