当前位置: 首页 > news >正文

ktg-mes 改造成 Saas 系统

ktg-mes 改造成 Saas 系统

快速检验市场,采用最简单的方案,即添加表字段

截止2025年8月16日上传的ktg-mes搭建存在一些问题,搭建可看文章:
搭建ktg-mes

改造

1. 添加租户表

create table sys_tenant
(tenant_id    bigint auto_increment comment '租户ID'primary key,tenant_key   varchar(64)             not null comment '租户唯一标识',company_name varchar(100)            not null comment '公司名称',contact      varchar(50)             null comment '联系人',phone        varchar(20)             null comment '联系电话',status       char        default '0' null comment '状态(0正常 1停用)',create_by    varchar(64) default ''  null comment '创建者',create_time  datetime                null comment '创建时间',update_by    varchar(64) default ''  null comment '更新者',update_time  datetime                null comment '更新时间',remark       varchar(500)            null comment '备注',constraint uk_company_nameunique (company_name),constraint uk_tenant_keyunique (tenant_key)
)comment '租户信息表';

2. 登录页(login.vue) 添加公司输入框

...其他代码<h3 class="title">苦糖果生产执行管理系统</h3><el-form-item prop="companyName"><el-inputv-model="loginForm.companyName"type="text"auto-complete="off"placeholder="公司名称"><svg-icon slot="prefix" icon-class="tree" class="el-input__icon input-icon" /></el-input></el-form-item><el-form-item prop="username"><el-inputv-model="loginForm.username"type="text"auto-complete="off"placeholder="账号"><svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /></el-input></el-form-item><el-form-item prop="password"><el-inputv-model="loginForm.password"type="password"auto-complete="off"placeholder="密码"@keyup.enter.native="handleLogin"><svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /></el-input></el-form-item>
...其他代码

inde.vue js 部分


...其他代码
data() {return {codeUrl: "",loginForm: {companyName: "衡阳众德智能科技有限公司",username: "testuser",password: "123456",rememberMe: false,code: "",uuid: ""},clientList: [],client: null,loginRules: {companyName: [{ required: true, trigger: "blur", message: "请输入您的公司名称" }],username: [{ required: true, trigger: "blur", message: "请输入您的账号" }],password: [{ required: true, trigger: "blur", message: "请输入您的密码" }],code: [{ required: true, trigger: "change", message: "请输入验证码" }]},loading: false,// 验证码开关captchaOnOff: true,// 注册开关register: false,redirect: undefined};},
...其他代码getCookie() {const companyName = Cookies.get("companyName");const username = Cookies.get("username");const password = Cookies.get("password");const rememberMe = Cookies.get('rememberMe')this.loginForm = {companyName: companyName === undefined ? this.loginForm.companyName : companyName,username: username === undefined ? this.loginForm.username : username,password: password === undefined ? this.loginForm.password : decrypt(password),rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)};},....其他代码
this.$refs.loginForm.validate(valid => {if (valid) {this.loading = true;if (this.loginForm.rememberMe) {Cookies.set("companyName", this.loginForm.companyName, { expires: 30 });Cookies.set("username", this.loginForm.username, { expires: 30 });Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 });Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 });} else {Cookies.remove("companyName");Cookies.remove("username");Cookies.remove("password");Cookies.remove('rememberMe');}this.$store.dispatch("Login", this.loginForm).then(() => {this.$router.push({ path: this.redirect || "/" }).catch(()=>{});}).catch(() => {this.loading = false;if (this.captchaOnOff) {this.getCode();}});}....其他代码

login.js 代码

...其他代码
export function login(companyName, username, password, code, uuid) {const data = {companyName,username,password,code,uuid}return request({url: '/login',headers: {isToken: false},method: 'post',data: data})
}...其他代码

未完待续…

http://www.dtcms.com/a/334476.html

相关文章:

  • 后量子密码算法ML-DSA介绍及开源代码实现
  • 343整数拆分
  • 实例分割-动手学计算机视觉13
  • MQ积压如何处理
  • ABAP AMDP 是一项什么技术?
  • 深入理解Java虚拟机(JVM):架构、内存管理与性能调优
  • MongoDB 聚合提速 3 招:$lookup 管道、部分索引、时间序列集合(含可复现实验与 explain 统计)
  • 片料矫平机·第四篇
  • Element Plus 中 el-input 限制为数值输入的方法
  • 暴雨服务器:以定制化满足算力需求多样化
  • 深入剖析跳表:高效搜索的动态数据结构
  • 【测试工具】OnDo SIP Server--轻松搭建一个语音通话服务器
  • 社保、医保、个税、公积金纵向横向合并 python3
  • 深入理解 Vue Router
  • Centos7.9安装Dante
  • 04时间复杂度计算方法
  • Python 桌面应用形态后台管理系统的技术选型与方案报告
  • Linux系统之lslogins 命令详解
  • vector 手动实现 及遇到的各种细节问题
  • 深入剖析 TOTP 算法:基于时间的一次性密码生成机制
  • Golang分布式事务处理方案
  • 如何在win服务器中部署若依项目
  • JVM垃圾回收器
  • 深度解析Java synchronized关键字及其底层实现原理
  • python学习DAY43打卡
  • C++实战
  • 如果构建企业本地的ERP智能ai系统,让先进的大模型数据处理ERP的各类数据,更加轻松智能,准确?从企业资源计划ERP变成企业资源智能EPA的升级
  • CUDA 编程笔记:CUDA内存模型概述
  • 【数据库】Oracle学习笔记整理之五:ORACLE体系结构 - 参数文件与控制文件(Parameter Files Control Files)
  • 虚拟专用网技术