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})
}...其他代码
未完待续…