修改文字名称

This commit is contained in:
yangjun 2026-02-11 16:32:20 +08:00
parent f685ca36eb
commit 7821f9658e
31 changed files with 94 additions and 94 deletions

View File

@ -1,4 +1,4 @@
JeecgBoot 企业级低代码开发平台 JeecgBoot 机构级低代码开发平台
=============== ===============
当前最新版本: 3.7.2发布时间2024-12-12 当前最新版本: 3.7.2发布时间2024-12-12

File diff suppressed because one or more lines are too long

View File

@ -28,7 +28,7 @@
const emit = defineEmits(['to-app', 'to-local']); const emit = defineEmits(['to-app', 'to-local']);
const getSyncToLocal = computed(() => { const getSyncToLocal = computed(() => {
// //
if (props.type === 'wechatEnterprise') { if (props.type === 'wechatEnterprise') {
return false; return false;
} }

View File

@ -4,7 +4,7 @@ import { cloneObject } from '/@/utils/index';
export const backEndUrl = { export const backEndUrl = {
// 获取启用的第三方App // 获取启用的第三方App
getEnabledType: '/sys/thirdApp/getEnabledType', getEnabledType: '/sys/thirdApp/getEnabledType',
// 企业微信 // 机构微信
wechatEnterprise: { wechatEnterprise: {
user: '/sys/thirdApp/sync/wechatEnterprise/user', user: '/sys/thirdApp/sync/wechatEnterprise/user',
depart: '/sys/thirdApp/sync/wechatEnterprise/depart', depart: '/sys/thirdApp/sync/wechatEnterprise/depart',

View File

@ -68,15 +68,15 @@ export function useThirdLogin() {
} else { } else {
createMessage.warning('不识别的信息传递'); createMessage.warning('不识别的信息传递');
} }
// update-begin--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器企业微信第三方登录成功后没有弹出绑定手机弹窗 // update-begin--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器机构微信第三方登录成功后没有弹出绑定手机弹窗
if (openWin?.closed) { if (openWin?.closed) {
window.removeEventListener('message', receiveMessage, false); window.removeEventListener('message', receiveMessage, false);
} }
// update-end--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器企业微信第三方登录成功后没有弹出绑定手机弹窗 // update-end--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器机构微信第三方登录成功后没有弹出绑定手机弹窗
}; };
// update-begin--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器企业微信第三方登录成功后没有弹出绑定手机弹窗 // update-begin--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器机构微信第三方登录成功后没有弹出绑定手机弹窗
window.removeEventListener('message', receiveMessage, false); window.removeEventListener('message', receiveMessage, false);
// update-end--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器企业微信第三方登录成功后没有弹出绑定手机弹窗 // update-end--author:liaozhiyang---date:20240717---for【TV360X-1827】mac系统谷歌浏览器机构微信第三方登录成功后没有弹出绑定手机弹窗
window.addEventListener('message', receiveMessage, false); window.addEventListener('message', receiveMessage, false);
} }
// 根据token执行登录 // 根据token执行登录

View File

@ -68,7 +68,7 @@ export default {
forgetFormTitle: '重置密码', forgetFormTitle: '重置密码',
signInTitle: 'Jeecg Boot', signInTitle: 'Jeecg Boot',
signInDesc: '是中国最具影响力的 企业级低代码平台在线开发可视化拖拽设计零代码实现80%的基础功能~', signInDesc: '是中国最具影响力的 机构级低代码平台在线开发可视化拖拽设计零代码实现80%的基础功能~',
policy: '我同意敲敲云隐私政策', policy: '我同意敲敲云隐私政策',
scanSign: `扫码后,即可完成登录`, scanSign: `扫码后,即可完成登录`,
scanSuccess: `扫码成功,登录中`, scanSuccess: `扫码成功,登录中`,

View File

@ -79,12 +79,12 @@ export function createPermissionGuard(router: Router) {
} else if (to.path === LOGIN_PATH && isOAuth2AppEnv() && !token) { } else if (to.path === LOGIN_PATH && isOAuth2AppEnv() && !token) {
//退出登录进入此逻辑 //退出登录进入此逻辑
//如果进入的页面是login页面并且当前是OAuth2app环境并且token为空就进入OAuth2登录页面 //如果进入的页面是login页面并且当前是OAuth2app环境并且token为空就进入OAuth2登录页面
//update-begin---author:wangshuai ---date:20230224 for[QQYUN-3440]新建企业微信和钉钉配置表,通过租户模式隔离------------ //update-begin---author:wangshuai ---date:20230224 for[QQYUN-3440]新建机构微信和钉钉配置表,通过租户模式隔离------------
if(to.query.tenantId){ if(to.query.tenantId){
setAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID,to.query.tenantId) setAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID,to.query.tenantId)
} }
next({ path: OAUTH2_LOGIN_PAGE_PATH }); next({ path: OAUTH2_LOGIN_PAGE_PATH });
//update-end---author:wangshuai ---date:20230224 for[QQYUN-3440]新建企业微信和钉钉配置表,通过租户模式隔离------------ //update-end---author:wangshuai ---date:20230224 for[QQYUN-3440]新建机构微信和钉钉配置表,通过租户模式隔离------------
return; return;
//update-end---author:wangshuai ---date:20220629 for[issues/I5BG1I]vue3不支持auth2登录------------ //update-end---author:wangshuai ---date:20220629 for[issues/I5BG1I]vue3不支持auth2登录------------
} }
@ -111,11 +111,11 @@ export function createPermissionGuard(router: Router) {
next(); next();
} }
} else { } else {
//update-begin---author:wangshuai ---date:20230302 for只有首次登陆并且是企业微信或者钉钉的情况下才会调用------------ //update-begin---author:wangshuai ---date:20230302 for只有首次登陆并且是机构微信或者钉钉的情况下才会调用------------
//----------【首次登陆并且是企业微信或者钉钉的情况下才会调用】----------------------------------------------- //----------【首次登陆并且是机构微信或者钉钉的情况下才会调用】-----------------------------------------------
//只有首次登陆并且是企业微信或者钉钉的情况下才会调用 //只有首次登陆并且是机构微信或者钉钉的情况下才会调用
let href = window.location.href; let href = window.location.href;
//判断当前是auth2页面并且是钉钉/企业微信并且包含tenantId参数 //判断当前是auth2页面并且是钉钉/机构微信并且包含tenantId参数
if(isOAuth2AppEnv() && href.indexOf("/tenantId/")!= -1){ if(isOAuth2AppEnv() && href.indexOf("/tenantId/")!= -1){
let params = to.params; let params = to.params;
if(params && params.path && params.path.length>0){ if(params && params.path && params.path.length>0){
@ -123,8 +123,8 @@ export function createPermissionGuard(router: Router) {
setAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID,params.path[params.path.length-1]) setAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID,params.path[params.path.length-1])
} }
} }
//---------【首次登陆并且是企业微信或者钉钉的情况下才会调用】------------------------------------------------ //---------【首次登陆并且是机构微信或者钉钉的情况下才会调用】------------------------------------------------
//update-end---author:wangshuai ---date:20230302 for只有首次登陆并且是企业微信或者钉钉的情况下才会调用------------ //update-end---author:wangshuai ---date:20230302 for只有首次登陆并且是机构微信或者钉钉的情况下才会调用------------
// 如果当前是在OAuth2APP环境就跳转到OAuth2登录页面否则跳转到登录页面 // 如果当前是在OAuth2APP环境就跳转到OAuth2登录页面否则跳转到登录页面
path = isOAuth2AppEnv() ? OAUTH2_LOGIN_PAGE_PATH : LOGIN_PATH; path = isOAuth2AppEnv() ? OAUTH2_LOGIN_PAGE_PATH : LOGIN_PATH;
} }
@ -160,7 +160,7 @@ export function createPermissionGuard(router: Router) {
return; return;
} }
//==============================【首次登录并且是企业微信或者钉钉的情况下才会调用】================== //==============================【首次登录并且是机构微信或者钉钉的情况下才会调用】==================
//判断是免登录页面,如果页面包含/tenantId/,那么就直接前往主页 //判断是免登录页面,如果页面包含/tenantId/,那么就直接前往主页
if(isOAuth2AppEnv() && to.path.indexOf("/tenantId/") != -1){ if(isOAuth2AppEnv() && to.path.indexOf("/tenantId/") != -1){
//update-begin---author:wangshuai---date:2024-11-08---for:【TV360X-2958】钉钉登录后打开了敲敲云换其他账号登录后再打开敲敲云显示的是原来账号的应用--- //update-begin---author:wangshuai---date:2024-11-08---for:【TV360X-2958】钉钉登录后打开了敲敲云换其他账号登录后再打开敲敲云显示的是原来账号的应用---
@ -172,7 +172,7 @@ export function createPermissionGuard(router: Router) {
//update-end---author:wangshuai---date:2024-11-08---for:【TV360X-2958】钉钉登录后打开了敲敲云换其他账号登录后再打开敲敲云显示的是原来账号的应用--- //update-end---author:wangshuai---date:2024-11-08---for:【TV360X-2958】钉钉登录后打开了敲敲云换其他账号登录后再打开敲敲云显示的是原来账号的应用---
return; return;
} }
//==============================【首次登录并且是企业微信或者钉钉的情况下才会调用】================== //==============================【首次登录并且是机构微信或者钉钉的情况下才会调用】==================
// update-begin--author:liaozhiyang---date:202401127---for【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去 // update-begin--author:liaozhiyang---date:202401127---for【issues/7500】vue-router4.5.0版本路由name:PageNotFound同名导致登录进不去
// Jump to the 404 page after processing the login // Jump to the 404 page after processing the login
if (from.path === LOGIN_PATH && to.name === PAGE_NOT_FOUND_NAME_404 && to.fullPath !== (userStore.getUserInfo.homePath || PageEnum.BASE_HOME)) { if (from.path === LOGIN_PATH && to.name === PAGE_NOT_FOUND_NAME_404 && to.fullPath !== (userStore.getUserInfo.homePath || PageEnum.BASE_HOME)) {

View File

@ -328,7 +328,7 @@ export const useUserStore = defineStore({
if (openSso == 'true') { if (openSso == 'true') {
await useSso().ssoLoginOut(); await useSso().ssoLoginOut();
} }
//update-begin---author:wangshuai ---date:20230224 for[QQYUN-3440]新建企业微信和钉钉配置表,通过租户模式隔离------------ //update-begin---author:wangshuai ---date:20230224 for[QQYUN-3440]新建机构微信和钉钉配置表,通过租户模式隔离------------
//退出登录的时候需要用的应用id //退出登录的时候需要用的应用id
if(isOAuth2AppEnv()){ if(isOAuth2AppEnv()){
let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID); let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID);
@ -346,7 +346,7 @@ export const useUserStore = defineStore({
// update-end-author:sunjianlei date:20230306 for: 修复登录成功后,没有正确重定向的问题 // update-end-author:sunjianlei date:20230306 for: 修复登录成功后,没有正确重定向的问题
} }
//update-end---author:wangshuai ---date:20230224 for[QQYUN-3440]新建企业微信和钉钉配置表,通过租户模式隔离------------ //update-end---author:wangshuai ---date:20230224 for[QQYUN-3440]新建机构微信和钉钉配置表,通过租户模式隔离------------
}, },
/** /**
* *

View File

@ -88,37 +88,37 @@ export const columns: BasicColumn[] = [
}, },
}, },
{ {
title: '身份证正面', title: '人像面',
align: "center", align: "center",
dataIndex: 'cardZmPath' dataIndex: 'cardZmPath'
}, },
{ {
title: '身份证反面', title: '国徽面',
align: "center", align: "center",
dataIndex: 'cardFmPath' dataIndex: 'cardFmPath'
}, },
{ {
title: '营业执照照片', title: '营业执照',
align: "center", align: "center",
dataIndex: 'comBusinessLicense' dataIndex: 'comBusinessLicense'
}, },
{ {
title: '企业名称', title: '机构名称',
align: "center", align: "center",
dataIndex: 'comName' dataIndex: 'comName'
}, },
{ {
title: '企业注册地址', title: '机构注册地址',
align: "center", align: "center",
dataIndex: 'comRegisterAddress' dataIndex: 'comRegisterAddress'
}, },
{ {
title: '企业信用代码', title: '机构信用代码',
align: "center", align: "center",
dataIndex: 'comCreditCode' dataIndex: 'comCreditCode'
}, },
{ {
title: '企业法人', title: '机构法人',
align: "center", align: "center",
dataIndex: 'comLegalPerson' dataIndex: 'comLegalPerson'
}, },
@ -205,13 +205,13 @@ export const superQuerySchema = {
issuingAuthority: {title: '签发机关',order: 11,view: 'text', type: 'string',}, issuingAuthority: {title: '签发机关',order: 11,view: 'text', type: 'string',},
startTime: {title: '有效开始日期',order: 12,view: 'date', type: 'string',}, startTime: {title: '有效开始日期',order: 12,view: 'date', type: 'string',},
endTime: {title: '有效结束日期',order: 13,view: 'date', type: 'string',}, endTime: {title: '有效结束日期',order: 13,view: 'date', type: 'string',},
cardZmPath: {title: '身份证正面',order: 14,view: 'text', type: 'string',}, cardZmPath: {title: '人像面',order: 14,view: 'text', type: 'string',},
cardFmPath: {title: '身份证反面',order: 15,view: 'text', type: 'string',}, cardFmPath: {title: '国徽面',order: 15,view: 'text', type: 'string',},
comBusinessLicense: {title: '营业执照照片',order: 16,view: 'text', type: 'string',}, comBusinessLicense: {title: '营业执照',order: 16,view: 'text', type: 'string',},
comName: {title: '企业名称',order: 17,view: 'text', type: 'string',}, comName: {title: '机构名称',order: 17,view: 'text', type: 'string',},
comRegisterAddress: {title: '企业注册地址',order: 18,view: 'text', type: 'string',}, comRegisterAddress: {title: '机构注册地址',order: 18,view: 'text', type: 'string',},
comCreditCode: {title: '企业信用代码',order: 19,view: 'text', type: 'string',}, comCreditCode: {title: '机构信用代码',order: 19,view: 'text', type: 'string',},
comLegalPerson: {title: '企业法人',order: 20,view: 'text', type: 'string',}, comLegalPerson: {title: '机构法人',order: 20,view: 'text', type: 'string',},
orgAddress: {title: '机构地址',order: 21,view: 'text', type: 'string',}, orgAddress: {title: '机构地址',order: 21,view: 'text', type: 'string',},
orgCoordinateLo: {title: '机构位置坐标:经度',order: 22,view: 'text', type: 'string',}, orgCoordinateLo: {title: '机构位置坐标:经度',order: 22,view: 'text', type: 'string',},
orgCoordinateLa: {title: '机构位置坐标:维度',order: 23,view: 'text', type: 'string',}, orgCoordinateLa: {title: '机构位置坐标:维度',order: 23,view: 'text', type: 'string',},

View File

@ -19,7 +19,7 @@
<template v-if="toggleSearchStatus"> <template v-if="toggleSearchStatus">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="comName"> <a-form-item name="comName">
<template #label><span title="企业名称">企业名称</span></template> <template #label><span title="机构名称">机构名称</span></template>
<JInput v-model:value="queryParam.comName"/> <JInput v-model:value="queryParam.comName"/>
</a-form-item> </a-form-item>
</a-col> </a-col>

View File

@ -70,13 +70,19 @@
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-col :span="12"> <a-col :span="12">
<a-form-item label="营业执照照片" v-bind="validateInfos.comBusinessLicense" <a-form-item label="营业执照" v-bind="validateInfos.comBusinessLicense"
id="OrgApplyInfoForm-comBusinessLicense" name="comBusinessLicense"> id="OrgApplyInfoForm-comBusinessLicense" name="comBusinessLicense">
<JImageUpload :fileMax="1" v-model:value="formData.comBusinessLicense" :disabled="true"> <JImageUpload :fileMax="1" v-model:value="formData.comBusinessLicense" :disabled="true">
</JImageUpload> </JImageUpload>
</a-form-item> </a-form-item>
</a-col> </a-col>
</a-col> </a-col>
<a-col :span="12">
<a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
<a-input v-model:value="formData.comName" disabled allow-clear></a-input>
<!-- {{ formData.comName }} -->
</a-form-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="信用代码" v-bind="validateInfos.comCreditCode" id="OrgApplyInfoForm-comCreditCode" <a-form-item label="信用代码" v-bind="validateInfos.comCreditCode" id="OrgApplyInfoForm-comCreditCode"
name="comCreditCode"> name="comCreditCode">
@ -85,13 +91,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="企业名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName"> <a-form-item label="机构法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
<a-input v-model:value="formData.comName" disabled allow-clear></a-input>
<!-- {{ formData.comName }} -->
</a-form-item>
</a-col>
<a-col :span="12">
<a-form-item label="企业法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
name="comLegalPerson"> name="comLegalPerson">
<a-input v-model:value="formData.comLegalPerson" disabled allow-clear></a-input> <a-input v-model:value="formData.comLegalPerson" disabled allow-clear></a-input>
<!-- {{ formData.comLegalPerson }} --> <!-- {{ formData.comLegalPerson }} -->
@ -122,7 +122,7 @@
<a-col :span="12"> <a-col :span="12">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="身份证正面" v-bind="validateInfos.cardZmPath" id="OrgApplyInfoForm-cardZmPath" <a-form-item label="人像面" v-bind="validateInfos.cardZmPath" id="OrgApplyInfoForm-cardZmPath"
name="cardZmPath"> name="cardZmPath">
<JImageUpload :fileMax="1" v-model:value="formData.cardZmPath" :disabled="true"></JImageUpload> <JImageUpload :fileMax="1" v-model:value="formData.cardZmPath" :disabled="true"></JImageUpload>
</a-form-item> </a-form-item>
@ -166,7 +166,7 @@
<a-col :span="12"> <a-col :span="12">
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="身份证反面" v-bind="validateInfos.cardFmPath" id="OrgApplyInfoForm-cardFmPath" <a-form-item label="国徽面" v-bind="validateInfos.cardFmPath" id="OrgApplyInfoForm-cardFmPath"
name="cardFmPath"> name="cardFmPath">
<JImageUpload :fileMax="1" v-model:value="formData.cardFmPath" :disabled="true"></JImageUpload> <JImageUpload :fileMax="1" v-model:value="formData.cardFmPath" :disabled="true"></JImageUpload>
</a-form-item> </a-form-item>

View File

@ -90,7 +90,7 @@ export const articleList = (() => {
result.push({ result.push({
title: 'Jeecg Admin', title: 'Jeecg Admin',
description: ['Jeecg', '设计语言', 'Typescript'], description: ['Jeecg', '设计语言', 'Typescript'],
content: '基于Vue Next, TypeScript, Ant Design实现的一套完整的企业级后台管理系统。', content: '基于Vue Next, TypeScript, Ant Design实现的一套完整的机构级后台管理系统。',
time: '2020-11-14 11:20', time: '2020-11-14 11:20',
}); });
} }
@ -117,7 +117,7 @@ export const projectList = (() => {
for (let i = 0; i < 8; i++) { for (let i = 0; i < 8; i++) {
result.push({ result.push({
title: 'Jeecg Admin', title: 'Jeecg Admin',
content: '基于Vue Next, TypeScript, Ant Design实现的一套完整的企业级后台管理系统。', content: '基于Vue Next, TypeScript, Ant Design实现的一套完整的机构级后台管理系统。',
}); });
} }
return result; return result;

View File

@ -4,7 +4,7 @@ export const cardList = (() => {
result.push({ result.push({
id: i, id: i,
title: 'Jeecg Admin', title: 'Jeecg Admin',
description: '基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的企业级后台管理系统', description: '基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的机构级后台管理系统',
datetime: '2020-11-26 17:39', datetime: '2020-11-26 17:39',
extra: '编辑', extra: '编辑',
icon: 'logos:vue', icon: 'logos:vue',

View File

@ -1,7 +1,7 @@
<template> <template>
<PageWrapper :class="prefixCls" title="卡片列表"> <PageWrapper :class="prefixCls" title="卡片列表">
<template #headerContent> <template #headerContent>
基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的企业级后台管理系统 基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的机构级后台管理系统
<div :class="`${prefixCls}__link`"> <div :class="`${prefixCls}__link`">
<a><Icon icon="bx:bx-paper-plane" color="#1890ff" /><span>开始</span></a> <a><Icon icon="bx:bx-paper-plane" color="#1890ff" /><span>开始</span></a>
<a><Icon icon="carbon:warning" color="#1890ff" /><span>简介</span></a> <a><Icon icon="carbon:warning" color="#1890ff" /><span>简介</span></a>
@ -20,7 +20,7 @@
<Icon class="icon" v-if="item.icon" :icon="item.icon" :color="item.color" /> <Icon class="icon" v-if="item.icon" :icon="item.icon" :color="item.color" />
{{ item.title }} {{ item.title }}
</div> </div>
<div :class="`${prefixCls}__card-detail`"> 基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的企业级后台管理系统 </div> <div :class="`${prefixCls}__card-detail`"> 基于Vue Next, TypeScript, Ant Design Vue实现的一套完整的机构级后台管理系统 </div>
</a-card> </a-card>
</a-list-item> </a-list-item>
</a-col> </a-col>

View File

@ -7,7 +7,7 @@ export const searchList = (() => {
id: i, id: i,
title: 'Jeecg Admin', title: 'Jeecg Admin',
description: ['Jeecg', '设计语言', 'Typescript'], description: ['Jeecg', '设计语言', 'Typescript'],
content: '基于Vue Next, TypeScript, Ant Design实现的一套完整的企业级后台管理系统。', content: '基于Vue Next, TypeScript, Ant Design实现的一套完整的机构级后台管理系统。',
time: '2020-11-14 11:20', time: '2020-11-14 11:20',
}); });
} }

View File

@ -46,7 +46,7 @@ export const columns: BasicColumn[] = [
}, },
}, },
{ {
title: '企业名称', title: '机构名称',
align: "center", align: "center",
dataIndex: 'comName', dataIndex: 'comName',
width: 240 width: 240

View File

@ -77,7 +77,7 @@
<div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`"> <div class="flex justify-evenly enter-x" :class="`${prefixCls}-sign-in-way`">
<a @click="onThirdLogin('github')" title="github"><GithubFilled /></a> <a @click="onThirdLogin('github')" title="github"><GithubFilled /></a>
<a @click="onThirdLogin('wechat_enterprise')" title="企业微信"> <icon-font class="item-icon" type="icon-qiyeweixin3" /></a> <a @click="onThirdLogin('wechat_enterprise')" title="机构微信"> <icon-font class="item-icon" type="icon-qiyeweixin3" /></a>
<a @click="onThirdLogin('dingtalk')" title="钉钉"><DingtalkCircleFilled /></a> <a @click="onThirdLogin('dingtalk')" title="钉钉"><DingtalkCircleFilled /></a>
<a @click="onThirdLogin('wechat_open')" title="微信"><WechatFilled /></a> <a @click="onThirdLogin('wechat_open')" title="微信"><WechatFilled /></a>
</div> </div>

View File

@ -32,7 +32,7 @@
* 检测当前的环境 * 检测当前的环境
*/ */
function checkEnv() { function checkEnv() {
// //
if (/wxwork/i.test(navigator.userAgent)) { if (/wxwork/i.test(navigator.userAgent)) {
env.value.thirdApp = true; env.value.thirdApp = true;
env.value.wxWork = true; env.value.wxWork = true;
@ -93,7 +93,7 @@
* 钉钉登录 * 钉钉登录
*/ */
function dingdingLogin() { function dingdingLogin() {
//id tokentoken //id tokentoken
let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID) || 0; let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID) || 0;
let url = `/sys/thirdLogin/get/corpId/clientId?tenantId=${tenantId}`; let url = `/sys/thirdLogin/get/corpId/clientId?tenantId=${tenantId}`;
//update-begin---author:wangshuai---date:2024-12-09---for:使getAction onlinedefHttp--- //update-begin---author:wangshuai---date:2024-12-09---for:使getAction onlinedefHttp---

View File

@ -5,7 +5,7 @@
<div class="app-loading-dots"> <div class="app-loading-dots">
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span> <span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
</div> </div>
<div class="app-loading-title">JeecgBoot 企业级低代码平台</div> <div class="app-loading-title">JeecgBoot 机构级低代码平台</div>
</div> </div>
</div> </div>
</template> </template>

View File

@ -189,12 +189,12 @@ export function isOAuth2DingAppEnv() {
export function sysOAuth2Login(source) { export function sysOAuth2Login(source) {
let url = `${window._CONFIG['domianURL']}/sys/thirdLogin/oauth2/${source}/login`; let url = `${window._CONFIG['domianURL']}/sys/thirdLogin/oauth2/${source}/login`;
url += `?state=${encodeURIComponent(window.location.origin)}`; url += `?state=${encodeURIComponent(window.location.origin)}`;
//update-begin---author:wangshuai ---date:20230224 for[QQYUN-3440]新建企业微信和钉钉配置表,通过租户模式隔离------------ //update-begin---author:wangshuai ---date:20230224 for[QQYUN-3440]新建机构微信和钉钉配置表,通过租户模式隔离------------
let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID); let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID);
if(tenantId){ if(tenantId){
url += `&tenantId=${tenantId}`; url += `&tenantId=${tenantId}`;
} }
//update-end---author:wangshuai ---date:20230224 for[QQYUN-3440]新建企业微信和钉钉配置表,通过租户模式隔离------------ //update-end---author:wangshuai ---date:20230224 for[QQYUN-3440]新建机构微信和钉钉配置表,通过租户模式隔离------------
window.location.href = url; window.location.href = url;
} }
//update-end---author:wangshuai ---date:20220629 for[issues/I5BG1I]vue3不支持auth2登录------------ //update-end---author:wangshuai ---date:20220629 for[issues/I5BG1I]vue3不支持auth2登录------------

View File

@ -37,7 +37,7 @@ export const syncDingTalkDepartUserToLocal = () => {
}; };
/** /**
* *
* @param params * @param params
*/ */
export const getThirdUserByWechat = () => { export const getThirdUserByWechat = () => {
@ -45,7 +45,7 @@ export const getThirdUserByWechat = () => {
}; };
/** /**
* *
* @param params * @param params
*/ */
export const wechatEnterpriseToLocal = (params) => { export const wechatEnterpriseToLocal = (params) => {
@ -53,7 +53,7 @@ export const wechatEnterpriseToLocal = (params) => {
}; };
/** /**
* *
* @param params * @param params
*/ */
export const getThirdUserBindByWechat = () => { export const getThirdUserBindByWechat = () => {

View File

@ -1,4 +1,4 @@
<!--弹窗绑定企业微信页面--> <!--弹窗绑定机构微信页面-->
<template> <template>
<BasicModal @register="registerModal" :width="800" :title="title" destroyOnClose> <BasicModal @register="registerModal" :width="800" :title="title" destroyOnClose>
<a-spin :spinning="loading"> <a-spin :spinning="loading">
@ -8,7 +8,7 @@
<span>组织用户</span> <span>组织用户</span>
</a-col> </a-col>
<a-col :span="12" class="padding-left"> <a-col :span="12" class="padding-left">
<span>企业微信用户</span> <span>机构微信用户</span>
</a-col> </a-col>
</a-row> </a-row>
<a-row :span="24"> <a-row :span="24">
@ -61,8 +61,8 @@
name: 'ThirdAppBindWeEnterpriseModal', name: 'ThirdAppBindWeEnterpriseModal',
components: { BasicModal }, components: { BasicModal },
setup(props, { emit }) { setup(props, { emit }) {
const title = ref<string>('企业微信绑定'); const title = ref<string>('机构微信绑定');
// //
const bindData = ref<any>({}); const bindData = ref<any>({});
const loading = ref<boolean>(false); const loading = ref<boolean>(false);
const btnLoading = ref<boolean>(false); const btnLoading = ref<boolean>(false);
@ -97,7 +97,7 @@
/* if (userLists && userLists.length > 0) { /* if (userLists && userLists.length > 0) {
syncText.value = ""; syncText.value = "";
} else { } else {
syncText.value = "企业微信用户均已同步"; syncText.value = "机构微信用户均已同步";
}*/ }*/
loading.value = false; loading.value = false;
} else { } else {
@ -128,9 +128,9 @@
async function handleSubmit() { async function handleSubmit() {
btnLoading.value = true; btnLoading.value = true;
let userList = bindData.value.userList; let userList = bindData.value.userList;
//idid, //idid,
let params: any = []; let params: any = [];
// //
for (const item of bindData.value.jwUserDepartVos) { for (const item of bindData.value.jwUserDepartVos) {
if (item.wechatUserId) { if (item.wechatUserId) {
userList = userList.filter((a) => a.wechatUserId != item.wechatUserId); userList = userList.filter((a) => a.wechatUserId != item.wechatUserId);
@ -148,7 +148,7 @@
for (const item of userList) { for (const item of userList) {
params.push({ wechatUserId: item.wechatUserId, wechatDepartId: item.wechatDepartId, wechatRealName: item.wechatRealName }); params.push({ wechatUserId: item.wechatUserId, wechatDepartId: item.wechatDepartId, wechatRealName: item.wechatRealName });
} }
text = '检测到未绑定的企业微信用户 ' + userList.length + ' 位,平台将会为这 ' + userList.length + ' 位用户创建新的账号'; text = '检测到未绑定的机构微信用户 ' + userList.length + ' 位,平台将会为这 ' + userList.length + ' 位用户创建新的账号';
} }
Modal.confirm({ Modal.confirm({

View File

@ -3,7 +3,7 @@
<div class="ding-header"> <div class="ding-header">
<ul class="ding-menu-tab"> <ul class="ding-menu-tab">
<li :class="activeKey === 'ding' ? 'active' : ''" @click="dingLiClick('ding')"><a>钉钉集成</a></li> <li :class="activeKey === 'ding' ? 'active' : ''" @click="dingLiClick('ding')"><a>钉钉集成</a></li>
<li :class="activeKey === 'wechat' ? 'active' : ''" @click="dingLiClick('wechat')"><a>企业微信集成</a></li> <li :class="activeKey === 'wechat' ? 'active' : ''" @click="dingLiClick('wechat')"><a>机构微信集成</a></li>
</ul> </ul>
</div> </div>
<div v-show="activeKey === 'ding'" class="base-collapse"> <div v-show="activeKey === 'ding'" class="base-collapse">

View File

@ -28,7 +28,7 @@
if (data.thirdType == 'dingtalk') { if (data.thirdType == 'dingtalk') {
title.value = '钉钉配置'; title.value = '钉钉配置';
} else { } else {
title.value = '企业微信配置'; title.value = '机构微信配置';
} }
// //
await resetFields(); await resetFields();

View File

@ -101,7 +101,7 @@
clientSecret: '', clientSecret: '',
}); });
//modal //modal
const [registerAppConfigModal, { openModal }] = useModal(); const [registerAppConfigModal, { openModal }] = useModal();
/** /**

View File

@ -1,12 +1,12 @@
<template> <template>
<div class="base-collapse"> <div class="base-collapse">
<div class="header"> 企业微信集成 </div> <div class="header"> 机构微信集成 </div>
<a-collapse expand-icon-position="right" :bordered="false"> <a-collapse expand-icon-position="right" :bordered="false">
<a-collapse-panel key="1"> <a-collapse-panel key="1">
<template #header> <template #header>
<div style="font-size: 16px"> 1.获取对接信息</div> <div style="font-size: 16px"> 1.获取对接信息</div>
</template> </template>
<div class="base-desc">企业微信平台获取对接信息即可开始集成以及同步通讯录</div> <div class="base-desc">机构微信平台获取对接信息即可开始集成以及同步通讯录</div>
<div style="margin-top: 5px"> <div style="margin-top: 5px">
<a href="https://help.qiaoqiaoyun.com/expand/dingding.html" target="_blank">如何获取对接信息?</a> <a href="https://help.qiaoqiaoyun.com/expand/dingding.html" target="_blank">如何获取对接信息?</a>
</div> </div>
@ -46,8 +46,8 @@
<div class="sync-padding"> <div class="sync-padding">
<div style="font-size: 16px; width: 100%"> 3.数据同步</div> <div style="font-size: 16px; width: 100%"> 3.数据同步</div>
<div style="margin-top: 20px" class="base-desc"> <div style="margin-top: 20px" class="base-desc">
企业微信同步到敲敲云 机构微信同步到敲敲云
<a style="margin-left: 10px" @click="seeBindWeChat">查看已绑定的企业微信用户</a> <a style="margin-left: 10px" @click="seeBindWeChat">查看已绑定的机构微信用户</a>
<div style="float: right"> <div style="float: right">
<a-button @loading="btnLoading" @click="thirdUserByWechat">同步</a-button> <a-button @loading="btnLoading" @click="thirdUserByWechat">同步</a-button>
</div> </div>
@ -83,7 +83,7 @@
clientId: '', clientId: '',
clientSecret: '', clientSecret: '',
}); });
//modal //modal
const [registerAppConfigModal, { openModal }] = useModal(); const [registerAppConfigModal, { openModal }] = useModal();
const [registerBindAppConfigModal, { openModal: openBindModal }] = useModal(); const [registerBindAppConfigModal, { openModal: openBindModal }] = useModal();
const { createMessage } = useMessage(); const { createMessage } = useMessage();
@ -101,7 +101,7 @@
} }
/** /**
* 企业微信编辑 * 机构微信编辑
*/ */
async function weEnterpriseEditClick() { async function weEnterpriseEditClick() {
let tenantId = getTenantId(); let tenantId = getTenantId();
@ -112,7 +112,7 @@
} }
/** /**
* 获取企业微信绑定的用户 * 获取机构微信绑定的用户
*/ */
async function thirdUserByWechat() { async function thirdUserByWechat() {
openBindModal(true, { izBind: false }); openBindModal(true, { izBind: false });
@ -146,7 +146,7 @@
Modal.warning(options); Modal.warning(options);
} else { } else {
createMessage.warning({ createMessage.warning({
content: '同步失败,请检查对接信息录入中是否填写正确,并确认是否已开启企业微信配置!', content: '同步失败,请检查对接信息录入中是否填写正确,并确认是否已开启机构微信配置!',
duration: 5, duration: 5,
}); });
} }
@ -154,7 +154,7 @@
} }
/** /**
* 查看已绑定的企业微信 * 查看已绑定的机构微信
*/ */
function seeBindWeChat() { function seeBindWeChat() {
openBindModal(true,{ izBind: true }) openBindModal(true,{ izBind: true })

View File

@ -38,7 +38,7 @@
</div> </div>
<div class="aui-flex-box"> <div class="aui-flex-box">
<div class="aui-third-login"> <div class="aui-third-login">
<a href="" title="企业微信" @click="onThirdLogin('wechat_enterprise')"><icon-font class="item-icon" type="icon-qiyeweixin3" /></a> <a href="" title="机构微信" @click="onThirdLogin('wechat_enterprise')"><icon-font class="item-icon" type="icon-qiyeweixin3" /></a>
</div> </div>
</div> </div>
<div class="aui-flex-box"> <div class="aui-flex-box">

View File

@ -32,7 +32,7 @@
* 检测当前的环境 * 检测当前的环境
*/ */
function checkEnv() { function checkEnv() {
// //
if (/wxwork/i.test(navigator.userAgent)) { if (/wxwork/i.test(navigator.userAgent)) {
env.value.thirdApp = true; env.value.thirdApp = true;
env.value.wxWork = true; env.value.wxWork = true;
@ -93,7 +93,7 @@
* 钉钉登录 * 钉钉登录
*/ */
function dingdingLogin() { function dingdingLogin() {
//id tokentoken //id tokentoken
let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID) || 0; let tenantId = getAuthCache(OAUTH2_THIRD_LOGIN_TENANT_ID) || 0;
let url = `/sys/thirdLogin/get/corpId/clientId?tenantId=${tenantId}`; let url = `/sys/thirdLogin/get/corpId/clientId?tenantId=${tenantId}`;
//update-begin---author:wangshuai---date:2024-12-09---for:使getAction onlinedefHttp--- //update-begin---author:wangshuai---date:2024-12-09---for:使getAction onlinedefHttp---

View File

@ -2,10 +2,10 @@
<div :class="[`${prefixCls}`]"> <div :class="[`${prefixCls}`]">
<div class="my-account">第三方APP</div> <div class="my-account">第三方APP</div>
<!-- <div class="account-row-item">--> <!-- <div class="account-row-item">-->
<!-- <div class="account-label gray-75">企业微信绑定</div>--> <!-- <div class="account-label gray-75">机构微信绑定</div>-->
<!-- <span>--> <!-- <span>-->
<!-- <icon-font :style="!bindEnterpriseData.sysUserId ? { color: '#9e9e9e' } : { color: '#0082EF' }" class="item-icon" type="icon-qiyeweixin3" />--> <!-- <icon-font :style="!bindEnterpriseData.sysUserId ? { color: '#9e9e9e' } : { color: '#0082EF' }" class="item-icon" type="icon-qiyeweixin3" />-->
<!-- <span class="gray-75" style="margin-left: 12px">企业微信</span>--> <!-- <span class="gray-75" style="margin-left: 12px">机构微信</span>-->
<!-- <span class="gray-75" style="margin-left: 8px" v-if="bindEnterpriseData.realname">{{ '已绑定' + bindEnterpriseData.realname }}</span>--> <!-- <span class="gray-75" style="margin-left: 8px" v-if="bindEnterpriseData.realname">{{ '已绑定' + bindEnterpriseData.realname }}</span>-->
<!-- <span class="blue-e5 pointer" style="margin-left: 24px" @click="wechatEnterpriseBind">{{--> <!-- <span class="blue-e5 pointer" style="margin-left: 24px" @click="wechatEnterpriseBind">{{-->
<!-- !bindEnterpriseData.sysUserId ? '绑定' : '解绑'--> <!-- !bindEnterpriseData.sysUserId ? '绑定' : '解绑'-->
@ -55,7 +55,7 @@
const bindWechatData = ref<any>({}); const bindWechatData = ref<any>({});
// //
const bindDingData = ref<any>({}); const bindDingData = ref<any>({});
// //
const bindEnterpriseData = ref<any>({}); const bindEnterpriseData = ref<any>({});
const glob = useGlobSetting(); const glob = useGlobSetting();
@ -72,7 +72,7 @@
const receiveMessage = ref<any>(''); const receiveMessage = ref<any>('');
/** /**
* 初始化钉钉和企业微信数据 * 初始化钉钉和机构微信数据
*/ */
async function initUserDetail() { async function initUserDetail() {
let values = await getThirdAccountByUserId({ thirdType: 'wechat_open,dingtalk,wechat_enterprise' }); let values = await getThirdAccountByUserId({ thirdType: 'wechat_open,dingtalk,wechat_enterprise' });
@ -88,15 +88,15 @@
} }
/** /**
* 企业微信绑定解绑事件 * 机构微信绑定解绑事件
*/ */
function wechatEnterpriseBind() { function wechatEnterpriseBind() {
console.log('企业微信绑定解绑事件'); console.log('机构微信绑定解绑事件');
let data = unref(bindEnterpriseData); let data = unref(bindEnterpriseData);
if (!data.sysUserId) { if (!data.sysUserId) {
onThirdLogin('wechat_enterprise'); onThirdLogin('wechat_enterprise');
}else{ }else{
deleteAccount({ sysUserId: data.sysUserId, id: data.id }, '企业微信'); deleteAccount({ sysUserId: data.sysUserId, id: data.id }, '机构微信');
} }
} }

View File

@ -52,7 +52,7 @@ export const superQuerySchema = {
address: {title: '地址',order: 16,view: 'text', type: 'string',}, address: {title: '地址',order: 16,view: 'text', type: 'string',},
memo: {title: '备注',order: 17,view: 'text', type: 'string',}, memo: {title: '备注',order: 17,view: 'text', type: 'string',},
status: {title: '状态1启用0不启用',order: 18,view: 'text', type: 'string',}, status: {title: '状态1启用0不启用',order: 18,view: 'text', type: 'string',},
qywxIdentifier: {title: '对接企业微信的ID',order: 20,view: 'text', type: 'string',}, qywxIdentifier: {title: '对接机构微信的ID',order: 20,view: 'text', type: 'string',},
dingIdentifier: {title: '对接钉钉部门的ID',order: 21,view: 'text', type: 'string',}, dingIdentifier: {title: '对接钉钉部门的ID',order: 21,view: 'text', type: 'string',},
tenantId: {title: '租户ID',order: 22,view: 'number', type: 'number',}, tenantId: {title: '租户ID',order: 22,view: 'number', type: 'number',},
izLeaf: {title: '是否有叶子节点: 1是0否',order: 23,view: 'number', type: 'number',}, izLeaf: {title: '是否有叶子节点: 1是0否',order: 23,view: 'number', type: 'number',},

View File

@ -45,7 +45,7 @@ export const superQuerySchema = {
address: {title: '地址',order: 16,view: 'text', type: 'string',}, address: {title: '地址',order: 16,view: 'text', type: 'string',},
memo: {title: '备注',order: 17,view: 'text', type: 'string',}, memo: {title: '备注',order: 17,view: 'text', type: 'string',},
status: {title: '状态1启用0不启用',order: 18,view: 'text', type: 'string',}, status: {title: '状态1启用0不启用',order: 18,view: 'text', type: 'string',},
qywxIdentifier: {title: '对接企业微信的ID',order: 20,view: 'text', type: 'string',}, qywxIdentifier: {title: '对接机构微信的ID',order: 20,view: 'text', type: 'string',},
dingIdentifier: {title: '对接钉钉部门的ID',order: 21,view: 'text', type: 'string',}, dingIdentifier: {title: '对接钉钉部门的ID',order: 21,view: 'text', type: 'string',},
tenantId: {title: '租户ID',order: 22,view: 'number', type: 'number',}, tenantId: {title: '租户ID',order: 22,view: 'number', type: 'number',},
izLeaf: {title: '是否有叶子节点: 1是0否',order: 23,view: 'number', type: 'number',}, izLeaf: {title: '是否有叶子节点: 1是0否',order: 23,view: 'number', type: 'number',},