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