| | |
| | | 'flexJobManage/flexJobManage', |
| | | 'flexJobDetailFromManage/flexJobDetailFromManage', |
| | | 'flexJobSign/flexJobSign', |
| | | 'flexJobManageExtraPage/flexJobManageExtraPage', |
| | | ], |
| | | }, |
| | | ], |
| | |
| | | flexJobManage = '/subpackages/flexJobManage/flexJobManage/flexJobManage', |
| | | flexJobDetailFromManage = '/subpackages/flexJobManage/flexJobDetailFromManage/flexJobDetailFromManage', |
| | | flexJobSign = '/subpackages/flexJobManage/flexJobSign/flexJobSign', |
| | | flexJobManageExtraPage = '/subpackages/flexJobManage/flexJobManageExtraPage/flexJobManageExtraPage', |
| | | |
| | | // userInfo = '/subpackages/setting/userInfo/userInfo', |
| | | // setting = '/subpackages/setting/setting/setting', |
| | |
| | | try { |
| | | await Message.confirm({ message: '确定要解约吗?' }); |
| | | let params: API.StopElectronSignCommand = { |
| | | id: enterpriseEmployeeInfo.value?.id, |
| | | ids: [enterpriseEmployeeInfo.value?.id], |
| | | }; |
| | | let res = await enterpriseEmployeeServices.stopElectronSign(params); |
| | | if (res) { |
| | |
| | | @click.stop="handleUnsign(item)" |
| | | >解约</nut-button |
| | | > |
| | | <nut-button type="primary" @click.stop="checkContract">查看合约</nut-button> |
| | | <nut-button type="primary" @click.stop="checkContract(item)">查看合约</nut-button> |
| | | </template> |
| | | <nut-button |
| | | v-else-if=" |
| | |
| | | } from '@12333/constants'; |
| | | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; |
| | | import Taro from '@tarojs/taro'; |
| | | import { Message } from '@12333/utils'; |
| | | import { Message, setOSSLink } from '@12333/utils'; |
| | | |
| | | defineOptions({ |
| | | name: 'InnerPage', |
| | |
| | | } |
| | | ); |
| | | |
| | | function checkContract() {} |
| | | function checkContract(item: API.GetEnterpriseEmployeesQueryResultItem) { |
| | | const encodedUrl = encodeURIComponent(setOSSLink(item.contractUrl)); |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.flexJobManageExtraPage}?url=${encodedUrl}`, |
| | | }); |
| | | } |
| | | |
| | | function goDetail(item: API.GetEnterpriseEmployeesQueryResultItem) { |
| | | Taro.navigateTo({ |
| | |
| | | try { |
| | | await Message.confirm({ message: '确定要解约吗?' }); |
| | | let params: API.StopElectronSignCommand = { |
| | | id: item.id, |
| | | ids: [item.id], |
| | | }; |
| | | let res = await enterpriseEmployeeServices.stopElectronSign(params); |
| | | if (res) { |
New file |
| | |
| | | export default definePageConfig({ |
| | | disableScroll: true, |
| | | }); |
New file |
| | |
| | | <template> |
| | | <web-view :src="urlLink" /> |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | | name: 'flexJobManageExtraPage', |
| | | }); |
| | | |
| | | const router = Taro.useRouter(); |
| | | |
| | | const url = (router.params.url as string) ?? ''; |
| | | |
| | | const urlLink = computed(() => decodeURIComponent(url)); |
| | | </script> |
| | |
| | | async function handleInvite() { |
| | | try { |
| | | let params: API.InviteElectronSignCommand = { |
| | | id: enterpriseEmployeeId, |
| | | ids: [enterpriseEmployeeId], |
| | | contractTemplateId: checkedId.value, |
| | | }; |
| | | let res = await enterpriseEmployeeServices.inviteElectronSign(params); |
| | |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | }, |
| | | { |
| | | "name": "", |
| | | "pathName": "subpackages/mine/mineAgreementSign/mineAgreementSign", |
| | | "query": "", |
| | | "launchMode": "default", |
| | | "scene": null |
| | | } |
| | | ] |
| | | } |
| | |
| | | name: 'InnerPage', |
| | | }); |
| | | |
| | | const { userDetail } = useUser(); |
| | | const router = Taro.useRouter(); |
| | | const type = router.params?.type ?? ''; |
| | | |
| | |
| | | identityBackImg: [] as FileItem[], |
| | | name: '', |
| | | identity: '', |
| | | phoneNumber: '', |
| | | phoneNumber: userDetail.value?.contactPhoneNumber, |
| | | verifyCode: '', |
| | | }); |
| | | |
| | |
| | | import MineAgreementSignDetailItem from './MineAgreementSignDetailItem.vue'; |
| | | import * as enterpriseEmployeeServices from '@12333/services/apiV2/enterpriseEmployee'; |
| | | import { |
| | | EnumElectronSignAccess, |
| | | EnumTaskUserSignContractStatus, |
| | | EnumTaskUserSignContractStatusText, |
| | | } from '@12333/constants'; |
| | | import { format, Message } from '@12333/utils'; |
| | | import { format, hiddenPhone, Message, setOSSLink } from '@12333/utils'; |
| | | import Taro from '@tarojs/taro'; |
| | | |
| | | defineOptions({ |
| | |
| | | function checkAgreement() { |
| | | if (detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Wait) { |
| | | goToSign(); |
| | | } else { |
| | | const encodedUrl = encodeURIComponent(detail?.value?.contractUrl); |
| | | } |
| | | if ( |
| | | detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Stop || |
| | | detail?.value?.userSignContractStatus === EnumTaskUserSignContractStatus.Pass |
| | | ) { |
| | | const encodedUrl = encodeURIComponent(setOSSLink(detail?.value?.contractUrl)); |
| | | Taro.navigateTo({ |
| | | url: `${RouterPath.mineAgreementSignDetail}?url=${encodedUrl}`, |
| | | url: `${RouterPath.mineAgreementSignExtraPage}?url=${encodedUrl}`, |
| | | }); |
| | | } |
| | | } |
| | | |
| | | const goToSign = useAccessReal(async () => { |
| | | try { |
| | | // if (detail.value?.contractTemplateAccess === EnumElectronSignAccess.BestSign) { |
| | | let params: API.PersonalUserElectronSignCommand = { |
| | | id: id, |
| | | }; |
| | |
| | | const encodedUrl = encodeURIComponent(res.signContractLongUrl); |
| | | Taro.navigateTo({ url: `${RouterPath.mineAgreementSignExtraPage}?url=${encodedUrl}` }); |
| | | } |
| | | // } |
| | | // if (detail.value?.contractTemplateAccess === EnumElectronSignAccess.AlipaySign) { |
| | | // Message.confirm({ |
| | | // message: `签约短信已发送至您${hiddenPhone( |
| | | // detail.value?.contactPhoneNumber |
| | | // )}的手机,请及时查看并签约`, |
| | | // showCancelBtn: false, |
| | | // }); |
| | | // } |
| | | } catch (error) {} |
| | | }); |
| | | Taro.useDidShow(() => { |
| | |
| | | UserServerUserResume = 13, |
| | | /**企业信息 */ |
| | | UserServerEnterprise = 14, |
| | | /**企业钱包 */ |
| | | UserServerEnterpriseWallet = 15, |
| | | /**灵工信息 */ |
| | | UserServerEnterpriseEmployee = 15, |
| | | UserServerEnterpriseEmployee = 16, |
| | | /**电子签 */ |
| | | ElectronSignServerElectronSign = 16, |
| | | ElectronSignServerElectronSign = 17, |
| | | } |
| | | |
| | | /** 资源请求方式 */ |
| | |
| | | import { EnumTaskUserHireStatus, EnumTaskUserSignContractStatus } from './apiEnum'; |
| | | import { |
| | | EnumElectronSignAccess, |
| | | EnumTaskUserHireStatus, |
| | | EnumTaskUserSignContractStatus, |
| | | } from './apiEnum'; |
| | | import { Colors } from './enum'; |
| | | |
| | | export const EnumTaskUserHireStatusText = { |
| | |
| | | [EnumTaskUserSignContractStatus.Refuse]: '已拒签', |
| | | [EnumTaskUserSignContractStatus.Stop]: '已解约', |
| | | }; |
| | | |
| | | export const EnumElectronSignAccessText = { |
| | | [EnumElectronSignAccess.BestSign]: '上上签', |
| | | [EnumElectronSignAccess.AlipaySign]: '支付宝信任签', |
| | | }; |
| | |
| | | body: API.InviteElectronSignCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/user/enterpriseEmployee/inviteElectronSign', { |
| | | return request<number>('/api/user/enterpriseEmployee/inviteElectronSign', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | |
| | | body: API.StopElectronSignCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<string>('/api/user/enterpriseEmployee/stopElectronSign', { |
| | | return request<number>('/api/user/enterpriseEmployee/stopElectronSign', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
New file |
| | |
| | | /* eslint-disable */ |
| | | // @ts-ignore |
| | | import { request } from '@/utils/request'; |
| | | |
| | | /** 支付宝资金二级商户KYB代进件 POST /api/user/enterpriseWallet/alipayFundExpandindirectCreate */ |
| | | export async function alipayFundExpandindirectCreate( |
| | | body: API.AlipayFundExpandindirectCreateCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<boolean>('/api/user/enterpriseWallet/alipayFundExpandindirectCreate', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 资金二级商户KYB代进件状态通知接口 POST /api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify */ |
| | | export async function alipayFundExpandindirectCreateNotify( |
| | | body: API.AlipayFundExpandindirectCreateNotifyCommand, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<boolean>('/api/user/enterpriseWallet/alipayFundExpandindirectCreateNotify', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | | |
| | | /** 支付宝用户授权协议签约通知 POST /api/user/enterpriseWallet/alipayUserAgreementPageSignNotify */ |
| | | export async function alipayUserAgreementPageSignNotify( |
| | | body: API.AlipayUserAgreementPageSignNotifyQuery, |
| | | options?: API.RequestConfig |
| | | ) { |
| | | return request<boolean>('/api/user/enterpriseWallet/alipayUserAgreementPageSignNotify', { |
| | | method: 'POST', |
| | | headers: { |
| | | 'Content-Type': 'application/json-patch+json', |
| | | }, |
| | | data: body, |
| | | ...(options || {}), |
| | | }); |
| | | } |
| | |
| | | import * as task from './task'; |
| | | import * as dictionary from './dictionary'; |
| | | import * as electronSign from './electronSign'; |
| | | import * as enterpriseWallet from './enterpriseWallet'; |
| | | import * as userResume from './userResume'; |
| | | import * as auth from './auth'; |
| | | import * as taskCheckReceive from './taskCheckReceive'; |
| | |
| | | task, |
| | | dictionary, |
| | | electronSign, |
| | | enterpriseWallet, |
| | | userResume, |
| | | auth, |
| | | taskCheckReceive, |
| | |
| | | [key: string]: any; |
| | | } |
| | | |
| | | interface AlipayFundExpandindirectCreateCommand { |
| | | /** 产品码 */ |
| | | productCode?: string; |
| | | /** 场景码 */ |
| | | bizScene?: string; |
| | | /** 外部单号 */ |
| | | outBizNo?: string; |
| | | /** 二级商户信息-标识 */ |
| | | identity?: string; |
| | | /** 二级商户信息-标识类型 */ |
| | | identityType?: string; |
| | | /** 二级商户信息-姓名 */ |
| | | name?: string; |
| | | /** 业务类型 */ |
| | | bizType?: string; |
| | | /** 原进件单id */ |
| | | originalOrderId?: string; |
| | | /** 资金记账本的业务场景 */ |
| | | sceneCode?: string; |
| | | /** 转账场景说明 */ |
| | | sceneDirections?: string; |
| | | /** 转账场景截图 */ |
| | | sceneImage?: string; |
| | | /** 商户行业资质图片或协议文本 */ |
| | | sceneQualificationImage?: string; |
| | | sitesInfo?: AlipayFundExpandindirectCreateCommandSites; |
| | | } |
| | | |
| | | interface AlipayFundExpandindirectCreateCommandSites { |
| | | website?: string; |
| | | app?: string; |
| | | gongzh?: string; |
| | | qita?: string; |
| | | xchengxU_ZHI?: string; |
| | | } |
| | | |
| | | interface AlipayFundExpandindirectCreateNotifyCommand { |
| | | /** 通知ID */ |
| | | notify_id?: string; |
| | | /** 消息发送时的服务端时间 */ |
| | | utc_timestamp?: string; |
| | | /** 消息接口名称 */ |
| | | msg_method?: string; |
| | | /** 消息接受方的应用id */ |
| | | app_id?: string; |
| | | /** 版本号(1.1版本为标准消息) */ |
| | | version?: string; |
| | | /** 消息报文 */ |
| | | biz_content?: string; |
| | | /** 签名 */ |
| | | sign?: string; |
| | | /** 签名类型 */ |
| | | sign_type?: string; |
| | | /** 编码集,该字符集为验签和解密所需要的字符集 */ |
| | | charset?: string; |
| | | } |
| | | |
| | | interface AlipayUserAgreementPageSignNotifyQuery { |
| | | /** 协议产品码,商户和支付宝签约时确定,不同业务场景对应不同的签约产品码。 */ |
| | | personal_product_code?: string; |
| | | /** 当前签约的协议场景。 */ |
| | | sign_scene?: string; |
| | | /** NORMAL 协议当前状态 1. TEMP:暂存,协议未生效过; 2. NORMAL:正常; 3. STOP:暂停 */ |
| | | status?: string; |
| | | /** 用户签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。 */ |
| | | alipay_user_id?: string; |
| | | /** 支付宝系统中用以唯一标识用户签约记录的编号。 */ |
| | | agreement_no?: string; |
| | | /** 支付宝代扣协议的实际签约时间,格式为yyyy-MM-dd HH:mm:ss。 */ |
| | | sign_time?: string; |
| | | /** 用户在商户网站的登录账号,如果商户接口中未传,则不会返回 */ |
| | | external_logon_id?: string; |
| | | /** 支付宝分配给开发者的应用Id */ |
| | | app_id?: string; |
| | | /** 支付宝分配给商户的应用Id */ |
| | | auth_app_id?: string; |
| | | /** 代扣协议中标示用户的唯一签约号(确保在商户系统中唯一)。 */ |
| | | external_agreement_no?: string; |
| | | /** 用户代扣协议的实际生效时间,格式为yyyy-MM-dd HH:mm:ss。 */ |
| | | valid_time?: string; |
| | | /** 返回脱敏的支付宝账号。 */ |
| | | alipay_logon_id?: string; |
| | | /** 用户签约成功通知类型 */ |
| | | notify_type?: string; |
| | | } |
| | | |
| | | interface APIcheckHealthParams { |
| | | /** 健康校验 */ |
| | | request?: CheckHealthQuery; |
| | |
| | | UserServerUserResume = 13, |
| | | /**企业信息 */ |
| | | UserServerEnterprise = 14, |
| | | /**企业钱包 */ |
| | | UserServerEnterpriseWallet = 15, |
| | | /**灵工信息 */ |
| | | UserServerEnterpriseEmployee = 15, |
| | | UserServerEnterpriseEmployee = 16, |
| | | /**电子签 */ |
| | | ElectronSignServerElectronSign = 16, |
| | | ElectronSignServerElectronSign = 17, |
| | | } |
| | | |
| | | enum EnumResourceMethod { |
| | |
| | | enterpriseSignContractStatus?: EnumTaskUserSignContractStatus; |
| | | /** 企业签约时间 */ |
| | | enterpriseSignContractTime?: string; |
| | | /** 电子合同 */ |
| | | contractUrl?: string; |
| | | } |
| | | |
| | | type GetEnterpriseLoginInfoQuery = Record<string, any>; |
| | |
| | | avatar?: string; |
| | | /** 姓名 */ |
| | | name?: string; |
| | | /** 手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 是否实名 */ |
| | | isReal?: boolean; |
| | | realMethod?: EnumUserRealMethod; |
| | |
| | | interface GetPersonalUserElectronSignQueryResult { |
| | | /** 合同编号 */ |
| | | contractCode?: string; |
| | | contractTemplateAccess?: EnumElectronSignAccess; |
| | | userSignContractStatus?: EnumTaskUserSignContractStatus; |
| | | /** 签约方信息-员工-姓名 */ |
| | | name?: string; |
| | |
| | | identityType?: string; |
| | | /** 签约方信息-员工-证件号码 */ |
| | | identity?: string; |
| | | /** 签约方信息-员工-手机号 */ |
| | | contactPhoneNumber?: string; |
| | | /** 签约方信息-员工-签约时间 */ |
| | | userSignContractTime?: string; |
| | | /** 签约方信息-公司主体-主体类型 */ |
| | |
| | | |
| | | interface InviteElectronSignCommand { |
| | | /** 灵工Id */ |
| | | id?: string; |
| | | ids?: string[]; |
| | | /** 合同模板Id */ |
| | | contractTemplateId?: string; |
| | | } |
| | |
| | | |
| | | interface StopElectronSignCommand { |
| | | /** 灵工Id */ |
| | | id?: string; |
| | | ids?: string[]; |
| | | } |
| | | |
| | | interface SubmitCheckReceiveTaskCommand { |
| | |
| | | if (!realIDNumber) return ''; |
| | | return realIDNumber.replace(/^(\d+)(.{6})$/, '$1******'); |
| | | }; |
| | | |
| | | export const hiddenPhone = (phone: string) => { |
| | | if (!phone) return ''; |
| | | return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); |
| | | }; |
| | |
| | | title?: string; |
| | | message?: string | VNode; |
| | | confirmText?: string; |
| | | showCancelBtn?: boolean; |
| | | }; |
| | | |
| | | export class Message { |
| | | static confirm(options: ConfirmOptions = {}) { |
| | | const { title = '提示', message = '确定要删除该数据吗?', confirmText = '确认' } = options; |
| | | const { |
| | | title = '提示', |
| | | message = '确定要删除该数据吗?', |
| | | confirmText = '确认', |
| | | showCancelBtn = true, |
| | | } = options; |
| | | return new Promise((resolve, reject) => { |
| | | Portal.add((key) => { |
| | | return ( |
| | |
| | | title={title} |
| | | visible={open.value} |
| | | content={message} |
| | | showCancelBtn={showCancelBtn} |
| | | onCancel={() => { |
| | | onClose(); |
| | | reject(); |