当前位置: 首页 > 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.xdnf.cn/news/1309177.html

相关文章:

  • Golang分布式事务处理方案
  • ROS move_base 混合功能导航 RealSense D435i + 3D 点云地图 + 楼层切换 + 路径录制 + 路径规划
  • 适合2D而非3D的游戏
  • Rust学习笔记(四)|结构体与枚举(面向对象、模式匹配)
  • 从舒适度提升到能耗降低再到安全保障,楼宇自控作用关键
  • 奈飞工厂 —— 算法优化实战推荐
  • JavaScript手录17-原型
  • 2025年生成式引擎优化(GEO)服务商技术能力评估报告
  • 【Docker】Ubuntu上安装Docker(网络版)
  • [创业之路-550]:公司半年度经营分析会 - 常见差距与根因分析示例
  • linux网络基础
  • 022 基础 IO —— 文件
  • Redis-plus-plus 安装指南
  • 161. Java Lambda 表达式 - 使用工厂方法创建 Predicates
  • 力扣(LeetCode) ——142. 环形链表 II(C语言)
  • OpenShift 4.19安装中的变化
  • Vue 3与React内置组件全对比
  • Hadoop面试题及详细答案 110题 (16-35)-- HDFS核心原理与操作
  • 音视频学习(五十四):基于ffmpeg实现音频重采样
  • 基于单片机的防酒驾系统设计
  • 我的世界Java版1.21.4的Fabric模组开发教程(十八)自定义传送门
  • 《C++进阶之继承多态》【多态:概念 + 实现 + 拓展 + 原理】
  • 超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
  • 嵌入式硬件篇---电感本质
  • VScode 使用遇到的问题
  • Git Revert 特定文件/路径的方法
  • 设计模式之【快速通道模式】,享受VIP的待遇
  • leetcode_ 739 每日温度
  • AI杀死的第一个仪式:“hello world”
  • C++设计模式:面向对象设计原则