ktg-mes 改造成 Saas 系统

发布于:2025-08-17 ⋅ 阅读:(18) ⋅ 点赞:(0)

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_name
        unique (company_name),
    constraint uk_tenant_key
        unique (tenant_key)
)
    comment '租户信息表';


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

...其他代码
	   <h3 class="title">苦糖果生产执行管理系统</h3>
      <el-form-item prop="companyName">
        <el-input
          v-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-input
          v-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-input
          v-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
  })
}

...其他代码

未完待续…


网站公告

今日签到

点亮在社区的每一天
去签到