# Conflicts:
#	src/views/admin/orgapplyinfo/OrgInfoAuditList.vue
This commit is contained in:
1378012178@qq.com 2026-02-11 16:05:44 +08:00
commit 7e34403df5
42 changed files with 147 additions and 138 deletions

View File

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

View File

@ -24,7 +24,7 @@
style="color: #909399; font-size: 12px; font-weight: bold; white-space: nowrap;"> style="color: #909399; font-size: 12px; font-weight: bold; white-space: nowrap;">
标准标签库 标准标签库
</span> --> </span> -->
<div style="min-width: 35px;margin-top:3px;">机构编码:{{ orgInfo.orgCode }} <div style="min-width: 35px;margin-top:3px;">机构编码<span style="font-weight: 700;">{{ orgInfo.orgCode }}</span>
</div> </div>
</div> </div>
</a-col> </a-col>
@ -48,11 +48,11 @@
</a-col> </a-col>
<a-col :span="12" style="text-align: right;"> <a-col :span="12" style="text-align: right;">
<a-button style="font-size: 12px;" v-show="showDetail" type="link" size="small" <a-button style="font-size: 12px;" v-show="showDetail" type="link" size="small"
@click.stop="handleDetail">查看详情</a-button> @click.stop="handleDetail">机构详情</a-button>
<a-button style="font-size: 12px;" v-show="showHldy" type="link" size="small" <a-button style="font-size: 12px;" v-show="showHldy" type="link" size="small"
@click.stop="handleHldy">护理单元</a-button> @click.stop="handleHldy">区域信息</a-button>
<a-button style="font-size: 12px;" v-show="showInfo" type="link" size="small" <a-button style="font-size: 12px;" v-show="showInfo" type="link" size="small"
@click.stop="handleInfo">查看详情</a-button> @click.stop="handleInfo">机构详情</a-button>
</a-col> </a-col>
</a-row> </a-row>

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

@ -7,11 +7,13 @@
<a-row style="padding:14px;"> <a-row style="padding:14px;">
<a-col :span="24" style="text-align: center;"> <a-col :span="24" style="text-align: center;">
<p> <p>
<span>发版类型</span> <span>机构名称</span>
<span>{{ formData.issueType_dictText }}</span> <span>{{ formData.orgName }}</span>
</p> </p>
<p> <p>
<span>发版日期</span> <span>发版类型</span>
<span>{{ formData.issueType_dictText }}</span>
<span style="margin-left: 40px;">发版日期</span>
<span>{{ formData.createTime }}</span> <span>{{ formData.createTime }}</span>
</p> </p>
</a-col> </a-col>
@ -48,6 +50,7 @@ const formData = reactive<Record<string, any>>({
id: '', id: '',
createTime:'', createTime:'',
issueType: '', issueType: '',
orgName:'',
issueType_dictText: '', issueType_dictText: '',
content: '', content: '',
}); });

View File

@ -15,7 +15,7 @@
import JModal from '/@/components/Modal/src/JModal/JModal.vue'; import JModal from '/@/components/Modal/src/JModal/JModal.vue';
const title = ref<string>(''); const title = ref<string>('');
const width = ref<string>('80%'); const width = ref<string>('1000');
const visible = ref<boolean>(false); const visible = ref<boolean>(false);
const disableSubmit = ref<boolean>(false); const disableSubmit = ref<boolean>(false);
const registerForm = ref(); const registerForm = ref();

View File

@ -7,7 +7,7 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="title"> <a-form-item name="title">
<template #label><span title="企业信息">企业信息</span></template> <template #label><span title="机构信息">机构信息</span></template>
<a-input placeholder="请输入机构名称/负责人/联系电话" v-model:value="queryParam.title" allow-clear></a-input> <a-input placeholder="请输入机构名称/负责人/联系电话" v-model:value="queryParam.title" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>

View File

@ -6,13 +6,13 @@
name="OrgApplyInfoForm"> name="OrgApplyInfoForm">
<a-row class="card-class"> <a-row class="card-class">
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'机构信息'" />
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-row> <a-row>
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'营业执照'" />
</a-col>
<a-col :span="24"> <a-col :span="24">
<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>
@ -27,15 +27,15 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="企业名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName"> <a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
<a-input v-model:value="formData.comName" placeholder="请输入企业名称" disabled allow-clear></a-input> <a-input v-model:value="formData.comName" placeholder="请输入机构名称" disabled allow-clear></a-input>
<!-- {{ formData.comName }} --> <!-- {{ formData.comName }} -->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="企业法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson" <a-form-item label="机构法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
name="comLegalPerson"> name="comLegalPerson">
<a-input v-model:value="formData.comLegalPerson" placeholder="请输入企业法人" disabled <a-input v-model:value="formData.comLegalPerson" placeholder="请输入机构法人" disabled
allow-clear></a-input> allow-clear></a-input>
<!-- {{ formData.comLegalPerson }} --> <!-- {{ formData.comLegalPerson }} -->
</a-form-item> </a-form-item>
@ -53,6 +53,9 @@
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-row> <a-row>
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'机构信息'" />
</a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="机构所在地" v-bind="validateInfos.cityViewValue" id="OrgApplyInfoForm-cityViewValue" <a-form-item label="机构所在地" v-bind="validateInfos.cityViewValue" id="OrgApplyInfoForm-cityViewValue"
name="cityViewValue"> name="cityViewValue">
@ -105,12 +108,12 @@
<a-row class="card-class"> <a-row class="card-class">
<a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;"> <a-col :span="24" style="border-bottom: 2px solid #f7f7f7; margin-bottom: 14px;">
<SectionDivider :title="'申请人身份证'" /> <SectionDivider :title="'申请人'" />
</a-col> </a-col>
<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>
@ -138,7 +141,9 @@
<a-form-item label="出生日期" v-bind="validateInfos.birthDate" id="OrgApplyInfoForm-birthDate" <a-form-item label="出生日期" v-bind="validateInfos.birthDate" id="OrgApplyInfoForm-birthDate"
name="birthDate"> name="birthDate">
<a-date-picker placeholder="请选择出生日期" v-model:value="formData.birthDate" disabled <a-date-picker placeholder="请选择出生日期" v-model:value="formData.birthDate" disabled
value-format="YYYY-MM-DD" style="width: 100%" allow-clear /> value-format="YYYY-MM-DD" style="width: 100%" suffix-icon="" />
<!-- <a-input placeholder="请选择出生日期" v-model:value="formData.birthDate" disabled
style="width: 100%"></a-input> -->
<!-- {{ formData.birthDate ? formData.birthDate.substring(0, 10) : "" }} --> <!-- {{ formData.birthDate ? formData.birthDate.substring(0, 10) : "" }} -->
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -161,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>
@ -170,7 +175,7 @@
<a-form-item label="有效开始日期" v-bind="validateInfos.startTime" id="OrgApplyInfoForm-startTime" <a-form-item label="有效开始日期" v-bind="validateInfos.startTime" id="OrgApplyInfoForm-startTime"
name="startTime"> name="startTime">
<a-date-picker placeholder="请选择有效开始日期" v-model:value="formData.startTime" disabled <a-date-picker placeholder="请选择有效开始日期" v-model:value="formData.startTime" disabled
value-format="YYYY-MM-DD" style="width: 100%" allow-clear /> value-format="YYYY-MM-DD" style="width: 100%" suffix-icon="" />
<!-- {{ formData.startTime ? formData.startTime.substring(0, 10) : "" }} --> <!-- {{ formData.startTime ? formData.startTime.substring(0, 10) : "" }} -->
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -178,9 +183,9 @@
<a-form-item label="有效结束日期" v-bind="validateInfos.endTime" id="OrgApplyInfoForm-endTime" <a-form-item label="有效结束日期" v-bind="validateInfos.endTime" id="OrgApplyInfoForm-endTime"
name="endTime"> name="endTime">
<a-input v-if="formData.endTime == '9999-12-31' || formData.endTime == '9999-12-31 00:00:00'" <a-input v-if="formData.endTime == '9999-12-31' || formData.endTime == '9999-12-31 00:00:00'"
:value="'长期'" allow-clear></a-input> :value="'长期'" suffix-icon="" ></a-input>
<a-date-picker v-else v-model:value="formData.endTime" value-format="YYYY-MM-DD" style="width: 100%" <a-date-picker v-else v-model:value="formData.endTime" value-format="YYYY-MM-DD" style="width: 100%"
allow-clear /> suffix-icon="" />
<!-- {{ formData.endTime <!-- {{ formData.endTime
? (formData.endTime.substring(0, 10) == '9999-12-31' ? '长期' : formData.endTime.substring(0, 10)) ? (formData.endTime.substring(0, 10) == '9999-12-31' ? '长期' : formData.endTime.substring(0, 10))
: "" }} --> : "" }} -->

View File

@ -7,7 +7,7 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="title"> <a-form-item name="title">
<template #label><span title="企业信息">企业信息</span></template> <template #label><span title="机构信息">机构信息</span></template>
<JInput v-model:value="queryParam.title" placeholder="请输入机构名称/负责人/联系电话" :type="'default'" /> <JInput v-model:value="queryParam.title" placeholder="请输入机构名称/负责人/联系电话" :type="'default'" />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -62,11 +62,11 @@
<!-- 表单区域 --> <!-- 表单区域 -->
<OrgApplyInfoModal ref="registerModal" @success="handleSuccess"></OrgApplyInfoModal> <OrgApplyInfoModal ref="registerModal" @success="handleSuccess"></OrgApplyInfoModal>
<a-modal v-model:visible="zhcshVisible" title="账号初始化"> <a-modal v-model:visible="zhcshVisible" title="账号初始化" style="overflow: hidden;">
<template #footer> <!-- 自定义底部内容 --> <template #footer> <!-- 自定义底部内容 -->
<a-button @click="handleCshCancel">关闭</a-button> <a-button @click="handleCshCancel">关闭</a-button>
</template> </template>
<div style="height: 100px;text-align: center;"> <div style="height: 180px;text-align: center;overflow: hidden;">
<p style="margin-top:50px;">账号初始化成功</p> <p style="margin-top:50px;">账号初始化成功</p>
<p>{{ zhcshMessage }}</p> <p>{{ zhcshMessage }}</p>
</div> </div>

View File

@ -7,7 +7,7 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="title"> <a-form-item name="title">
<template #label><span title="企业信息">企业信息</span></template> <template #label><span title="机构信息">机构信息</span></template>
<JInput v-model:value="queryParam.title" placeholder="请输入机构名称/负责人/联系电话" :type="'default'" /> <JInput v-model:value="queryParam.title" placeholder="请输入机构名称/负责人/联系电话" :type="'default'" />
</a-form-item> </a-form-item>
</a-col> </a-col>
@ -63,11 +63,11 @@
<!-- 信息变更表单 --> <!-- 信息变更表单 -->
<OrgModifyInfoModal ref="updateAuditModal" @success="handleSuccess"></OrgModifyInfoModal> <OrgModifyInfoModal ref="updateAuditModal" @success="handleSuccess"></OrgModifyInfoModal>
<a-modal v-model:visible="zhcshVisible" title="账号初始化"> <a-modal v-model:visible="zhcshVisible" title="账号初始化" style="overflow: hidden;">
<template #footer> <!-- 自定义底部内容 --> <template #footer> <!-- 自定义底部内容 -->
<a-button @click="handleCshCancel">关闭</a-button> <a-button @click="handleCshCancel">关闭</a-button>
</template> </template>
<div style="height: 100px;text-align: center;"> <div style="height: 180px;text-align: center;overflow: hidden;">
<p style="margin-top:50px;">账号初始化成功</p> <p style="margin-top:50px;">账号初始化成功</p>
<p>{{ zhcshMessage }}</p> <p>{{ zhcshMessage }}</p>
</div> </div>
@ -233,6 +233,7 @@ function handleBuildPlat(record) {
* @param record * @param record
*/ */
function handleInitAccount(record) { function handleInitAccount(record) {
var userInfo = { userName: record.tel, realname: record.name, orgCode: record.id, orgId: record.pkId } var userInfo = { userName: record.tel, realname: record.name, orgCode: record.id, orgId: record.pkId }
console.log("🚀 ~ handleInitAccount ~ userInfo:", userInfo) console.log("🚀 ~ handleInitAccount ~ userInfo:", userInfo)
defHttp.post({ url: '/sys/user/initialization', params: userInfo }).then(res => { defHttp.post({ url: '/sys/user/initialization', params: userInfo }).then(res => {

View File

@ -6,7 +6,7 @@ import { getWeekMonthQuarterYear } from '/@/utils';
//列表数据 //列表数据
export const columns: BasicColumn[] = [ export const columns: BasicColumn[] = [
{ {
title: '企业名称', title: '机构名称',
align: 'center', align: 'center',
dataIndex: 'comName', dataIndex: 'comName',
}, },
@ -78,13 +78,13 @@ export const applyObj = {
issuingAuthority: '签发机关', issuingAuthority: '签发机关',
startTime: '有效开始日期', startTime: '有效开始日期',
endTime: '有效结束日期', endTime: '有效结束日期',
cardZmPath: '身份证正面照片', cardZmPath: '人像面',
cardFmPath: '身份证反面照片', cardFmPath: '国徽面',
comBusinessLicense: '营业执照照片', comBusinessLicense: '营业执照',
comName: '企业名称', comName: '机构名称',
comRegisterAddress: '企业注册地址', comRegisterAddress: '机构注册地址',
comCreditCode: '企业信用代码', comCreditCode: '机构信用代码',
comLegalPerson: '企业法人', comLegalPerson: '机构法人',
orgAddress: '机构地址', orgAddress: '机构地址',
orgLeader: '机构负责人', orgLeader: '机构负责人',
orgLeaderPhone: '机构负责人电话', orgLeaderPhone: '机构负责人电话',

View File

@ -7,7 +7,7 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="title"> <a-form-item name="title">
<template #label><span title="企业信息">企业信息</span></template> <template #label><span title="机构信息">机构信息</span></template>
<JInput v-model:value="queryParam.title" placeholder="请输入机构名称/负责人/联系电话" :type="'default'" /> <JInput v-model:value="queryParam.title" placeholder="请输入机构名称/负责人/联系电话" :type="'default'" />
</a-form-item> </a-form-item>
</a-col> </a-col>

View File

@ -27,15 +27,15 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="企业名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName"> <a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgApplyInfoForm-comName" name="comName">
<a-input v-model:value="formData.comName" placeholder="请输入企业名称" disabled allow-clear></a-input> <a-input v-model:value="formData.comName" placeholder="请输入机构名称" disabled allow-clear></a-input>
<!-- {{ formData.comName }} --> <!-- {{ formData.comName }} -->
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<a-form-item label="企业法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson" <a-form-item label="机构法人" v-bind="validateInfos.comLegalPerson" id="OrgApplyInfoForm-comLegalPerson"
name="comLegalPerson"> name="comLegalPerson">
<a-input v-model:value="formData.comLegalPerson" placeholder="请输入企业法人" disabled <a-input v-model:value="formData.comLegalPerson" placeholder="请输入机构法人" disabled
allow-clear></a-input> allow-clear></a-input>
<!-- {{ formData.comLegalPerson }} --> <!-- {{ formData.comLegalPerson }} -->
</a-form-item> </a-form-item>
@ -111,7 +111,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>
@ -162,7 +162,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

@ -110,19 +110,19 @@
</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.cardZmPath" id="OrgModifyInfoForm-cardZmPath" <a-form-item label="人像面" v-bind="validateInfos.cardZmPath" id="OrgModifyInfoForm-cardZmPath"
name="cardZmPath"> name="cardZmPath">
<JImageUpload :fileMax="1" v-model:value="formData.cardZmPath"></JImageUpload> <JImageUpload :fileMax="1" v-model:value="formData.cardZmPath"></JImageUpload>
</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.cardFmPath" id="OrgModifyInfoForm-cardFmPath" <a-form-item label="国徽面" v-bind="validateInfos.cardFmPath" id="OrgModifyInfoForm-cardFmPath"
name="cardFmPath"> name="cardFmPath">
<JImageUpload :fileMax="1" v-model:value="formData.cardFmPath"></JImageUpload> <JImageUpload :fileMax="1" v-model:value="formData.cardFmPath"></JImageUpload>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">
<SectionDivider :title="'企业资质'" /> <SectionDivider :title="'机构资质'" />
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="营业执照照片" v-bind="validateInfos.comBusinessLicense" <a-form-item label="营业执照照片" v-bind="validateInfos.comBusinessLicense"
@ -131,27 +131,27 @@
</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="OrgModifyInfoForm-comName" name="comName"> <a-form-item label="机构名称" v-bind="validateInfos.comName" id="OrgModifyInfoForm-comName" name="comName">
<a-input v-model:value="formData.comName" placeholder="请输入企业名称" allow-clear></a-input> <a-input v-model:value="formData.comName" placeholder="请输入机构名称" allow-clear></a-input>
</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.comRegisterAddress" <a-form-item label="机构注册地址" v-bind="validateInfos.comRegisterAddress"
id="OrgModifyInfoForm-comRegisterAddress" name="comRegisterAddress"> id="OrgModifyInfoForm-comRegisterAddress" name="comRegisterAddress">
<a-textarea v-model:value="formData.comRegisterAddress" placeholder="请输入企业注册地址" <a-textarea v-model:value="formData.comRegisterAddress" placeholder="请输入机构注册地址"
allow-clear></a-textarea> allow-clear></a-textarea>
</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.comCreditCode" id="OrgModifyInfoForm-comCreditCode" <a-form-item label="机构信用代码" v-bind="validateInfos.comCreditCode" id="OrgModifyInfoForm-comCreditCode"
name="comCreditCode"> name="comCreditCode">
<a-input v-model:value="formData.comCreditCode" placeholder="请输入企业信用代码" allow-clear></a-input> <a-input v-model:value="formData.comCreditCode" placeholder="请输入机构信用代码" allow-clear></a-input>
</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.comLegalPerson" id="OrgModifyInfoForm-comLegalPerson" <a-form-item label="机构法人" v-bind="validateInfos.comLegalPerson" id="OrgModifyInfoForm-comLegalPerson"
name="comLegalPerson"> name="comLegalPerson">
<a-input v-model:value="formData.comLegalPerson" placeholder="请输入企业法人" allow-clear></a-input> <a-input v-model:value="formData.comLegalPerson" placeholder="请输入机构法人" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="24"> <a-col :span="24">

View File

@ -137,8 +137,8 @@ export const superQuerySchema = {
issuingAuthority: {title: '签发机关',order: 10,view: 'text', type: 'string',}, issuingAuthority: {title: '签发机关',order: 10,view: 'text', type: 'string',},
startTime: {title: '有效开始日期',order: 11,view: 'date', type: 'string',}, startTime: {title: '有效开始日期',order: 11,view: 'date', type: 'string',},
endTime: {title: '有效结束日期',order: 12,view: 'date', type: 'string',}, endTime: {title: '有效结束日期',order: 12,view: 'date', type: 'string',},
cardZmPath: {title: '身份证正面',order: 13,view: 'image', type: 'string',}, cardZmPath: {title: '人像面',order: 13,view: 'image', type: 'string',},
cardFmPath: {title: '身份证反面',order: 14,view: 'image', type: 'string',}, cardFmPath: {title: '国徽面',order: 14,view: 'image', type: 'string',},
maritalStatus: {title: '婚否',order: 15,view: 'text', type: 'string',}, maritalStatus: {title: '婚否',order: 15,view: 'text', type: 'string',},
height: {title: '身高',order: 16,view: 'text', type: 'string',}, height: {title: '身高',order: 16,view: 'text', type: 'string',},
weight: {title: '体重',order: 17,view: 'text', type: 'string',}, weight: {title: '体重',order: 17,view: 'text', type: 'string',},

View File

@ -147,7 +147,7 @@
<a-tab-pane key="1" tab="身份证"> <a-tab-pane key="1" tab="身份证">
<a-row> <a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-item label="身份证正面" v-bind="validateInfos.idCardPositive" <a-form-item label="人像面" v-bind="validateInfos.idCardPositive"
id="BizEmployeesInfoForm-idCardPositive" name="idCardPositive"> id="BizEmployeesInfoForm-idCardPositive" name="idCardPositive">
<j-image-upload v-if="!!formData.cardZmPath" :fileMax="1" :bizPath="`employeesZzxx`" <j-image-upload v-if="!!formData.cardZmPath" :fileMax="1" :bizPath="`employeesZzxx`"
v-model:value="formData.cardZmPath" disabled></j-image-upload> v-model:value="formData.cardZmPath" disabled></j-image-upload>
@ -155,7 +155,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.idCardNegative" <a-form-item label="国徽面" v-bind="validateInfos.idCardNegative"
id="BizEmployeesInfoForm-idCardNegative" name="idCardNegative"> id="BizEmployeesInfoForm-idCardNegative" name="idCardNegative">
<j-image-upload v-if="!!formData.cardFmPath" :fileMax="1" :bizPath="`employeesZzxx`" <j-image-upload v-if="!!formData.cardFmPath" :fileMax="1" :bizPath="`employeesZzxx`"
v-model:value="formData.cardFmPath" disabled></j-image-upload> v-model:value="formData.cardFmPath" disabled></j-image-upload>

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

@ -5,7 +5,7 @@
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" <a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol"
:wrapper-col="wrapperCol"> :wrapper-col="wrapperCol">
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :xl="8" :xxl="6"> <a-col :xl="8" :xxl="8">
<a-form-item name="instructionTagId"> <a-form-item name="instructionTagId">
<template #label><span title="分类标签">分类标签</span></template> <template #label><span title="分类标签">分类标签</span></template>
<j-dict-select-tag v-model:value="queryParam.instructionTagId" :orgCode="bkOrgCode" <j-dict-select-tag v-model:value="queryParam.instructionTagId" :orgCode="bkOrgCode"
@ -15,7 +15,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="8" :xxl="6"> <a-col :xl="8" :xxl="8">
<a-form-item name="categoryId"> <a-form-item name="categoryId">
<template #label><span title="服务类别">服务类别</span></template> <template #label><span title="服务类别">服务类别</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.categoryId" :orgCode="bkOrgCode" <j-dict-select-tag type="list" v-model:value="queryParam.categoryId" :orgCode="bkOrgCode"
@ -24,7 +24,7 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="8" :xxl="6"> <a-col :xl="8" :xxl="8">
<a-form-item name="typeId"> <a-form-item name="typeId">
<template #label><span title="服务类型">服务类型</span></template> <template #label><span title="服务类型">服务类型</span></template>
<j-dict-select-tag type="list" v-model:value="queryParam.typeId" :orgCode="bkOrgCode" <j-dict-select-tag type="list" v-model:value="queryParam.typeId" :orgCode="bkOrgCode"
@ -32,13 +32,13 @@
placeholder="请选择服务类型" allowClear :ignoreDisabled="true" /> placeholder="请选择服务类型" allowClear :ignoreDisabled="true" />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="8" :xxl="6"> <a-col :xl="8" :xxl="8">
<a-form-item name="directiveName"> <a-form-item name="directiveName">
<template #label><span title="服务指令">服务指令</span></template> <template #label><span title="服务指令">服务指令</span></template>
<JInput v-model:value="queryParam.directiveName" placeholder="请输入服务指令名称" allowClear /> <JInput v-model:value="queryParam.directiveName" placeholder="请输入服务指令名称" allowClear />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :xl="8" :xxl="6"> <a-col :xl="8" :xxl="8">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>

View File

@ -44,7 +44,7 @@
</template> </template>
</BasicTable> </BasicTable>
<!-- 详情 --> <!-- 详情 -->
<a-drawer v-model:visible="bkDetailListOpen" title="详情" width="85vw" :footer-style="{ textAlign: 'right' }" <a-drawer v-model:visible="bkDetailListOpen" title="详情" width="1200" :footer-style="{ textAlign: 'right' }"
:bodyStyle="{ padding: '14px', height: '80vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }" :bodyStyle="{ padding: '14px', height: '80vh', display: 'flex', flexDirection: 'column', overflow: 'auto' }"
wrapClassName="org-list-modal" @cancel="handleBkDetailListClose"> wrapClassName="org-list-modal" @cancel="handleBkDetailListClose">
<template #footer> <template #footer>

View File

@ -49,9 +49,9 @@
</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.serviceDuration" <a-form-item label="服务时长" v-bind="validateInfos.serviceDuration"
id="ConfigServiceDirectiveForm-serviceDuration" name="serviceDuration"> id="ConfigServiceDirectiveForm-serviceDuration" name="serviceDuration">
<a-input v-model:value="formData.serviceDuration" placeholder="服务时长(分钟)" disabled></a-input> <a-input v-model:value="formData.serviceDuration" placeholder="服务时长(分钟)" addon-after="分钟" disabled></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
@ -61,9 +61,9 @@
</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.timeoutDuration" <a-form-item label="超时时长" v-bind="validateInfos.timeoutDuration"
id="ConfigServiceDirectiveForm-timeoutDuration" name="timeoutDuration"> id="ConfigServiceDirectiveForm-timeoutDuration" name="timeoutDuration">
<a-input v-model:value="formData.timeoutDuration" placeholder="超时时长(分钟)" disabled></a-input> <a-input v-model:value="formData.timeoutDuration" placeholder="超时时长(分钟)" addon-after="分钟" disabled></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">

View File

@ -7,8 +7,8 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :lg="6"> <a-col :lg="6">
<a-form-item name="title"> <a-form-item name="title">
<template #label><span title="机构名称">机构名称</span></template> <template #label><span title="机构信息">机构信息</span></template>
<a-input placeholder="请输入机构名称" v-model:value="queryParam.title" allow-clear></a-input> <a-input placeholder="请输入机构名称/负责人/联系电话" v-model:value="queryParam.title" allow-clear></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="6"> <a-col :lg="6">

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',},