| apps/bMiniApp/project.private.config.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/bMiniApp/src/subpackages/mine/setting/setting.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/underTakeMiniApp/src/stores/modules/user.ts | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/underTakeMiniApp/src/subpackages/login/authorization/authorization.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
apps/bMiniApp/project.private.config.json
@@ -26,8 +26,8 @@ "name": "灵工详情", "pathName": "subpackages/flexJob/flexJobDetailFromTask/flexJobDetailFromTask", "query": "enterpriseEmployeeId=304f7e38-b973-478c-88aa-08ddf02e3176&id=ddecb887-8273-449b-6bcd-08de20009bf4&taskInfoId=ec3f301e-fa95-47a1-b8ee-08de1da3c153", "scene": null, "launchMode": "default" "launchMode": "default", "scene": null }, { "name": "待验收-验收详情", @@ -75,13 +75,6 @@ "name": "发薪详情", "pathName": "subpackages/payrollManage/payrollManageDetail/payrollManageDetail", "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 } apps/bMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -65,7 +65,6 @@ 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({ apps/bMiniApp/src/subpackages/mine/setting/setting.vue
@@ -30,7 +30,7 @@ }); const userStore = useUserStore(); const { isBindWechat } = useUser(); const { isBindWechat, updateUserInfo } = useUser(); const queryClient = useQueryClient(); const userAccount = computed(() => { @@ -69,6 +69,7 @@ let res = await authServices.unBindUserWxmpId(params); if (res) { Message.success('解绑成功'); updateUserInfo(); } } catch (error) {} } apps/bMiniApp/src/subpackages/task/batchTaskList/InnerPage.vue
@@ -25,8 +25,9 @@ <template #footerRight> <template v-if="showQueryState"> <nut-button type="primary" @click.stop="handleArrange(item)">安排</nut-button> <nut-button type="primary" @click.stop="handleArrange(item)">取消录用</nut-button> <nut-button type="primary" @click.stop="setTaskUserHire(item)">取消录用</nut-button> </template> <div v-else class="batch-task-card-status">已安排</div> </template> </FlexJobCard> @@ -41,6 +42,7 @@ EnumTaskUserArrangeStatus, EnumPagedListOrder, EnumGetArrangeTaskUsersQueryApplyStatus, EnumTaskUserHireStatus, } from '@12333/constants'; import * as taskUserServices from '@12333/services/apiV2/taskUser'; import _ from 'lodash'; @@ -104,6 +106,20 @@ } } catch (error) {} } async function setTaskUserHire(row: API.GetArrangeTaskUsersQueryResultItem) { try { let params: API.SetTaskUserHireCommand = { id: row.id, hireStatus: EnumTaskUserHireStatus.Cancel, }; let res = await taskUserServices.setTaskUserHire(params); if (res) { Message.success('已取消录用'); invalidateQueries(); } } catch (error) {} } </script> <style lang="scss"> apps/bMiniApp/src/subpackages/task/taskManage/InnerPage.vue
@@ -40,8 +40,10 @@ >人员安排</nut-button > <nut-button v-if="item.status === EnumTaskStatus.Wait" type="primary" class="dark-btn" :color="Colors.Info" @click.stop="goBatchTaskList(item, EnumTaskUserArrangeStatus.Wait)" >取消录用</nut-button > apps/underTakeMiniApp/src/stores/modules/user.ts
@@ -141,6 +141,7 @@ { userName: params.userName, password: params.password, code: params.code, // password: md5Encrypt(params.password), type: AppLocalConfig.userType, clientType: AppLocalConfig.clientType, 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="NODE_ENV === 'development'"> <div class="other-login-channel-wrapper" v-if="!isLoginByWeb"> <nut-divider>其他登录方式</nut-divider> <div class="other-login-channel-list"> <div class="other-login-channel-list-item" @click="goLoginByForm()"> @@ -62,7 +62,6 @@ 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', apps/underTakeMiniApp/src/subpackages/login/loginByForm/accountLoginForm.vue
@@ -1,32 +1,47 @@ <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> <!-- <div class="go-register-btn" @click="goRegister">立即注册</div> --> </div> </template> @@ -39,6 +54,7 @@ import { useUserStore } from '@/stores/modules/user'; import { Eye, Marshalling } from '@nutui/icons-vue-taro'; import Taro from '@tarojs/taro'; import * as authServices from '@12333/services/apiV2/auth'; defineOptions({ name: 'AccountLoginForm', @@ -57,6 +73,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 +87,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 +112,7 @@ await userStore.loginByPassword({ userName: form.userName, password: form.userPassword, code: loginRes.code, }); jump(); } @@ -100,6 +135,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"> apps/underTakeMiniApp/src/subpackages/mine/setting/setting.vue
@@ -30,7 +30,7 @@ }); const userStore = useUserStore(); const { isBindWechat } = useUser(); const { isBindWechat, updateUserInfo } = useUser(); const queryClient = useQueryClient(); const userAccount = computed(() => { @@ -69,6 +69,7 @@ let res = await authServices.unBindUserWxmpId(params); if (res) { Message.success('解绑成功'); updateUserInfo(); } } catch (error) {} }