1、移除相关页面文档链接跳转
2、关闭多租户功能
This commit is contained in:
		
							parent
							
								
									9ba3b104f4
								
							
						
					
					
						commit
						9952cabc8f
					
				
							
								
								
									
										4
									
								
								.env
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								.env
									
									
									
									
									
								
							| @ -1,5 +1,5 @@ | ||||
| # 标题 | ||||
| VITE_APP_TITLE=芋道管理系统 | ||||
| VITE_APP_TITLE=自贸区管理系统 | ||||
| 
 | ||||
| # 项目本地运行端口号 | ||||
| VITE_PORT=80 | ||||
| @ -8,7 +8,7 @@ VITE_PORT=80 | ||||
| VITE_OPEN=true | ||||
| 
 | ||||
| # 租户开关 | ||||
| VITE_APP_TENANT_ENABLE=true | ||||
| VITE_APP_TENANT_ENABLE=false | ||||
| 
 | ||||
| # 验证码的开关 | ||||
| VITE_APP_CAPTCHA_ENABLE=true | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 128 KiB | 
| @ -114,7 +114,7 @@ export default { | ||||
|   }, | ||||
|   login: { | ||||
|     welcome: '欢迎使用本系统', | ||||
|     message: '开箱即用的中后台管理系统', | ||||
|     message: '江苏新元素数字科技有限公司', | ||||
|     tenantname: '租户名称', | ||||
|     username: '用户名', | ||||
|     password: '密码', | ||||
|  | ||||
| @ -58,9 +58,6 @@ | ||||
|                 {{ t('login.remember') }} | ||||
|               </el-checkbox> | ||||
|             </el-col> | ||||
|             <el-col :offset="6" :span="12"> | ||||
|               <el-link style="float: right" type="primary">{{ t('login.forgetPassword') }}</el-link> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
| @ -82,64 +79,6 @@ | ||||
|         mode="pop" | ||||
|         @success="handleLogin" | ||||
|       /> | ||||
|       <el-col :span="24" style="padding-right: 10px; padding-left: 10px"> | ||||
|         <el-form-item> | ||||
|           <el-row :gutter="5" justify="space-between" style="width: 100%"> | ||||
|             <el-col :span="8"> | ||||
|               <XButton | ||||
|                 :title="t('login.btnMobile')" | ||||
|                 class="w-[100%]" | ||||
|                 @click="setLoginState(LoginStateEnum.MOBILE)" | ||||
|               /> | ||||
|             </el-col> | ||||
|             <el-col :span="8"> | ||||
|               <XButton | ||||
|                 :title="t('login.btnQRCode')" | ||||
|                 class="w-[100%]" | ||||
|                 @click="setLoginState(LoginStateEnum.QR_CODE)" | ||||
|               /> | ||||
|             </el-col> | ||||
|             <el-col :span="8"> | ||||
|               <XButton | ||||
|                 :title="t('login.btnRegister')" | ||||
|                 class="w-[100%]" | ||||
|                 @click="setLoginState(LoginStateEnum.REGISTER)" | ||||
|               /> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-divider content-position="center">{{ t('login.otherLogin') }}</el-divider> | ||||
|       <el-col :span="24" style="padding-right: 10px; padding-left: 10px"> | ||||
|         <el-form-item> | ||||
|           <div class="w-[100%] flex justify-between"> | ||||
|             <Icon | ||||
|               v-for="(item, key) in socialList" | ||||
|               :key="key" | ||||
|               :icon="item.icon" | ||||
|               :size="30" | ||||
|               class="anticon cursor-pointer" | ||||
|               color="#999" | ||||
|               @click="doSocialLogin(item.type)" | ||||
|             /> | ||||
|           </div> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|       <el-divider content-position="center">萌新必读</el-divider> | ||||
|       <el-col :span="24" style="padding-right: 10px; padding-left: 10px"> | ||||
|         <el-form-item> | ||||
|           <div class="w-[100%] flex justify-between"> | ||||
|             <el-link href="https://doc.iocoder.cn/" target="_blank">📚开发指南</el-link> | ||||
|             <el-link href="https://doc.iocoder.cn/video/" target="_blank">🔥视频教程</el-link> | ||||
|             <el-link href="https://www.iocoder.cn/Interview/good-collection/" target="_blank"> | ||||
|               ⚡面试手册 | ||||
|             </el-link> | ||||
|             <el-link href="http://static.yudao.iocoder.cn/mp/Aix9975.jpeg" target="_blank"> | ||||
|               🤝外包咨询 | ||||
|             </el-link> | ||||
|           </div> | ||||
|         </el-form-item> | ||||
|       </el-col> | ||||
|     </el-row> | ||||
|   </el-form> | ||||
| </template> | ||||
| @ -158,13 +97,12 @@ import { LoginStateEnum, useFormValid, useLoginState } from './useLogin' | ||||
| defineOptions({ name: 'LoginForm' }) | ||||
| 
 | ||||
| const { t } = useI18n() | ||||
| const message = useMessage() | ||||
| const iconHouse = useIcon({ icon: 'ep:house' }) | ||||
| const iconAvatar = useIcon({ icon: 'ep:avatar' }) | ||||
| const iconLock = useIcon({ icon: 'ep:lock' }) | ||||
| const formLogin = ref() | ||||
| const { validForm } = useFormValid(formLogin) | ||||
| const { setLoginState, getLoginState } = useLoginState() | ||||
| const { getLoginState } = useLoginState() | ||||
| const { currentRoute, push } = useRouter() | ||||
| const permissionStore = usePermissionStore() | ||||
| const redirect = ref<string>('') | ||||
| @ -192,13 +130,6 @@ const loginData = reactive({ | ||||
|   } | ||||
| }) | ||||
| 
 | ||||
| const socialList = [ | ||||
|   { icon: 'ant-design:wechat-filled', type: 30 }, | ||||
|   { icon: 'ant-design:dingtalk-circle-filled', type: 20 }, | ||||
|   { icon: 'ant-design:github-filled', type: 0 }, | ||||
|   { icon: 'ant-design:alipay-circle-filled', type: 0 } | ||||
| ] | ||||
| 
 | ||||
| // 获取验证码 | ||||
| const getCode = async () => { | ||||
|   // 情况一,未开启:则直接登录 | ||||
| @ -280,42 +211,6 @@ const handleLogin = async (params) => { | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| // 社交登录 | ||||
| const doSocialLogin = async (type: number) => { | ||||
|   if (type === 0) { | ||||
|     message.error('此方式未配置') | ||||
|   } else { | ||||
|     loginLoading.value = true | ||||
|     if (loginData.tenantEnable === 'true') { | ||||
|       // 尝试先通过 tenantName 获取租户 | ||||
|       await getTenantId() | ||||
|       // 如果获取不到,则需要弹出提示,进行处理 | ||||
|       if (!authUtil.getTenantId()) { | ||||
|         try { | ||||
|           const data = await message.prompt('请输入租户名称', t('common.reminder')) | ||||
|           if (data?.action !== 'confirm') throw 'cancel' | ||||
|           const res = await LoginApi.getTenantIdByName(data.value) | ||||
|           authUtil.setTenantId(res) | ||||
|         } catch (error) { | ||||
|           if (error === 'cancel') return | ||||
|         } finally { | ||||
|           loginLoading.value = false | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|     // 计算 redirectUri | ||||
|     // tricky: type、redirect需要先encode一次,否则钉钉回调会丢失。 | ||||
|     // 配合 Login/SocialLogin.vue#getUrlValue() 使用 | ||||
|     const redirectUri = | ||||
|       location.origin + | ||||
|       '/social-login?' + | ||||
|       encodeURIComponent(`type=${type}&redirect=${redirect.value || '/'}`) | ||||
| 
 | ||||
|     // 进行跳转 | ||||
|     const res = await LoginApi.socialAuthRedirect(type, encodeURIComponent(redirectUri)) | ||||
|     window.location.href = res | ||||
|   } | ||||
| } | ||||
| watch( | ||||
|   () => currentRoute.value, | ||||
|   (route: RouteLocationNormalizedLoaded) => { | ||||
|  | ||||
| @ -22,9 +22,6 @@ | ||||
|           <el-tab-pane :label="t('profile.info.resetPwd')" name="resetPwd"> | ||||
|             <ResetPwd /> | ||||
|           </el-tab-pane> | ||||
|           <el-tab-pane :label="t('profile.info.userSocial')" name="userSocial"> | ||||
|             <UserSocial v-model:activeName="activeName" /> | ||||
|           </el-tab-pane> | ||||
|         </el-tabs> | ||||
|       </div> | ||||
|     </el-card> | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <el-table v-loading="loading" :data="list"> | ||||
|       <el-table-column label="定义编号" align="center" prop="id" width="400" /> | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="审批接入(流程表单)" url="https://doc.iocoder.cn/bpm/use-bpm-form/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,12 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="流程设计器(BPMN)" url="https://doc.iocoder.cn/bpm/model-designer-dingding/" /> | ||||
|   <doc-alert | ||||
|     title="流程设计器(钉钉、飞书)" | ||||
|     url="https://doc.iocoder.cn/bpm/model-designer-bpmn/" | ||||
|   /> | ||||
|   <doc-alert title="选择审批人、发起人自选" url="https://doc.iocoder.cn/bpm/assignee/" /> | ||||
|   <doc-alert title="会签、或签、依次审批" url="https://doc.iocoder.cn/bpm/multi-instance/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
| @ -150,7 +142,7 @@ | ||||
|           </template> | ||||
|         </el-table-column> | ||||
|       </el-table-column> | ||||
|       <el-table-column label="操作" align="center" width="240" fixed="right"> | ||||
|       <el-table-column label="操作" align="center" fixed="right"> | ||||
|         <template #default="scope"> | ||||
|           <el-button | ||||
|             link | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="审批接入(业务表单)" url="https://doc.iocoder.cn/bpm/use-business-form/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="流程表达式" url="https://doc.iocoder.cn/bpm/expression/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="流程发起、取消、重新发起" url="https://doc.iocoder.cn/bpm/process-instance/" /> | ||||
| 
 | ||||
|   <!-- 第一步,通过流程定义的列表,选择对应的流程 --> | ||||
|   <ContentWrap v-if="!selectProcessDefinition" v-loading="loading"> | ||||
|     <el-tabs tab-position="left" v-model="categoryActive"> | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="流程发起、取消、重新发起" url="https://doc.iocoder.cn/bpm/process-instance/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="工作流手册" url="https://doc.iocoder.cn/bpm/" /> | ||||
| 
 | ||||
|   <ContentWrap> | ||||
|     <!-- 搜索工作栏 --> | ||||
|     <el-form | ||||
|  | ||||
| @ -1,6 +1,4 @@ | ||||
| <template> | ||||
|   <doc-alert title="公众号粉丝" url="https://doc.iocoder.cn/mp/user/" /> | ||||
| 
 | ||||
|   <!-- 搜索工作栏 --> | ||||
|   <ContentWrap> | ||||
|     <el-form | ||||
|  | ||||
| @ -60,6 +60,7 @@ const formData = ref({ | ||||
| }) | ||||
| const formRules = reactive({ | ||||
|   name: [{ required: true, message: '岗位标题不能为空', trigger: 'blur' }], | ||||
|   sort: [{ required: true, message: '岗位顺序不能为空', trigger: 'blur' }], | ||||
|   code: [{ required: true, message: '岗位编码不能为空', trigger: 'change' }], | ||||
|   status: [{ required: true, message: '岗位状态不能为空', trigger: 'change' }], | ||||
|   remark: [{ required: false, message: '岗位内容不能为空', trigger: 'blur' }] | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user