saas第一期

dev.saas
面包骑士 2024-09-26 20:45:35 +08:00
parent f701ae8256
commit 28a8170785
26 changed files with 1217 additions and 216 deletions

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询企业详细信息列表
export function listFirmDetails(query) {
return request({
url: '/firm/firmDetails/list',
method: 'get',
params: query
})
}
// 查询企业详细信息详细
export function getFirmDetails(id) {
return request({
url: '/firm/firmDetails/' + id,
method: 'get'
})
}
// 新增企业详细信息
export function addFirmDetails(data) {
return request({
url: '/firm/firmDetails',
method: 'post',
data: data
})
}
// 修改企业详细信息
export function updateFirmDetails(data) {
return request({
url: '/firm/firmDetails',
method: 'put',
data: data
})
}
// 删除企业详细信息
export function delFirmDetails(id) {
return request({
url: '/firm/firmDetails/' + id,
method: 'delete'
})
}

View File

@ -3,7 +3,7 @@ import request from '@/utils/request'
// 查询企业基础信息列表
export function listFirmInfo(query) {
return request({
url: '/system/firmInfo/list',
url: '/firm/firmInfo/list',
method: 'get',
params: query
})
@ -12,7 +12,7 @@ export function listFirmInfo(query) {
// 查询企业基础信息详细
export function getFirmInfo(id) {
return request({
url: '/system/firmInfo/' + id,
url: '/firm/firmInfo/' + id,
method: 'get'
})
}
@ -20,7 +20,7 @@ export function getFirmInfo(id) {
// 新增企业基础信息
export function addFirmInfo(data) {
return request({
url: '/system/firmInfo',
url: '/firm/firmInfo',
method: 'post',
data: data
})
@ -29,7 +29,7 @@ export function addFirmInfo(data) {
// 修改企业基础信息
export function updateFirmInfo(data) {
return request({
url: '/system/firmInfo',
url: '/firm/firmInfo',
method: 'put',
data: data
})
@ -38,7 +38,7 @@ export function updateFirmInfo(data) {
// 删除企业基础信息
export function delFirmInfo(id) {
return request({
url: '/system/firmInfo/' + id,
url: '/firm/firmInfo/' + id,
method: 'delete'
})
}

View File

@ -1,7 +1,7 @@
import request from '@/utils/request'
// 登录方法
export function login(firmCode, username, password, code, uuid) {
export function login(username, password, code, uuid) {
return request({
url: '/auth/login',
headers: {
@ -9,11 +9,10 @@ export function login(firmCode, username, password, code, uuid) {
repeatSubmit: false
},
method: 'post',
data: {firmCode, username, password, code, uuid}
data: {username, password, code, uuid}
})
}
// 注册方法
export function register(data) {
return request({

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询车辆报文记录列表
export function listMessage(query) {
return request({
url: '/message/messageInfo/list',
method: 'get',
params: query
})
}
// 查询车辆报文记录详细
export function getMessage(id) {
return request({
url: '/message/messageInfo/' + id,
method: 'get'
})
}
// 新增车辆报文记录
export function addMessage(data) {
return request({
url: '/message/messageInfo',
method: 'post',
data: data
})
}
// 修改车辆报文记录
export function updateMessage(data) {
return request({
url: '/message/messageInfo',
method: 'put',
data: data
})
}
// 删除车辆报文记录
export function delMessage(id) {
return request({
url: '/message/messageInfo/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询车辆报文类型列表
export function listMessageType(query) {
return request({
url: '/message/messageType/list',
method: 'get',
params: query
})
}
// 查询车辆报文类型详细
export function getMessageType(id) {
return request({
url: '/message/messageType/' + id,
method: 'get'
})
}
// 新增车辆报文类型
export function addMessageType(data) {
return request({
url: '/message/messageType',
method: 'post',
data: data
})
}
// 修改车辆报文类型
export function updateMessageType(data) {
return request({
url: '/message/messageType',
method: 'put',
data: data
})
}
// 删除车辆报文类型
export function delMessageType(id) {
return request({
url: '/message/messageType/' + id,
method: 'delete'
})
}

View File

@ -68,4 +68,4 @@ export function runJob(jobId, jobGroup) {
method: 'put',
data: data
})
}
}

View File

@ -21,7 +21,7 @@ export function getUser(userId) {
// 新增用户
export function addUser(data) {
return request({
url: '/saas/user',
url: '/system/user',
method: 'post',
data: data
})

View File

@ -18,6 +18,14 @@ export function listDbTable(query) {
})
}
// 查询db所有数据库列表
export function listDbTableAll() {
return request({
url: '/code/gen/db/listAll',
method: 'get'
})
}
// 查询表详细信息
export function getGenTable(tableId) {
return request({
@ -36,11 +44,14 @@ export function updateGenTable(data) {
}
// 导入表
export function importTable(data) {
export function importTable(tables, dbName) {
return request({
url: '/code/gen/importTable',
method: 'post',
params: data
params: {
tables: tables,
dbName: dbName
}
})
}
@ -69,9 +80,29 @@ export function genCode(tableName) {
}
// 同步数据库
export function synchDb(tableName) {
export function synchDb(tableName,dbName) {
return request({
url: '/code/gen/synchDb/' + tableName,
url: '/code/gen/synchDb/' + tableName+'/'+dbName,
method: 'get'
})
}
// 查询所有数据库名称
export function selDbNameAll() {
return request({
url: '/code/gen/db/selDbNameAll',
method: 'get'
})
}
// 根据数据库名称与表名称查询表字段
export function selectDbTableColumnsByName(dbName,table) {
return request({
url: '/code/gen/selectDbTableColumnsByName',
method: 'get',
params: {
dbName: dbName,
table: table
}
})
}

View File

@ -63,41 +63,6 @@ Vue.use(plugins)
Vue.use(VueMeta)
DictData.install()
//skywalking监控系统
import ClientMonitor from 'skywalking-client-js';
//注册skywalking
ClientMonitor.register({
service: 'muyu::cloud-ui',//应用名称
serviceVersion:'2.0.1',//应用版本号
traceSDKInternal:true,//追踪sdk
pagePath: location.href,//当前路由地址
useFmp: true,
vue:Vue,//vue实例
});
// Vue 报错上报到skywalking。
Vue.config.errorHandler = (error) => {
console.error(error);
reportFrameErrors(error);
}
//监听ajax报错
window.addEventListener('error', error=>{
console.log("error--->",error)
reportFrameErrors(error);
}, true);
//上报错误信息方法
function reportFrameErrors(error){
ClientMonitor.reportFrameErrors({
service: 'muyu::cloud-ui',//应用名称
serviceVersion:'2.0.1',//应用版本号
pagePath: location.href,
vue:Vue,
}, error);
}
/**
* If you don't want to use mock-server
* you want to use MockJs for mock api

View File

@ -5,20 +5,12 @@ import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import {getToken} from '@/utils/auth'
import {isRelogin} from '@/utils/request'
import Vue from 'vue'
NProgress.configure({showSpinner: false})
const whiteList = ['/login','/platform/login', '/register']
const whiteList = ['/login', '/register']
router.beforeEach((to, from, next) => {
//路由上报到skywalking
//因为有些参数已经在ClientMonitor.register中注册过了所以不用填加了。
ClientMonitor.setPerformance({
pagePath: location.href,//当前路由地址。
useFmp: true,
vue:Vue,
});
NProgress.start()
if (getToken()) {
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)

View File

@ -44,10 +44,6 @@ export const constantRoutes = [
path: '/login',
component: () => import('@/views/login'),
hidden: true
},{
path: '/platform/login',
component: () => import('@/views/login'),
hidden: true
},
{
path: '/register',

View File

@ -1,10 +1,9 @@
import {getInfo, login, logout, firmLogin, refreshToken} from '@/api/login'
import {getEntCode, getToken, removeEntCode, removeToken, setEntCode, setExpiresIn, setToken} from '@/utils/auth'
import {getInfo, login, logout, refreshToken} from '@/api/login'
import {getToken, removeToken, setExpiresIn, setToken} from '@/utils/auth'
const user = {
state: {
token: getToken(),
ent_code: getEntCode(),
id: '',
name: '',
avatar: '',
@ -16,9 +15,6 @@ const user = {
SET_TOKEN: (state, token) => {
state.token = token
},
SET_ENT_CODE: (state, ent_code) => {
state.ent_code = ent_code
},
SET_EXPIRES_IN: (state, time) => {
state.expires_in = time
},
@ -59,29 +55,6 @@ const user = {
})
})
},
// 企业登录
firmLogin({commit}, userInfo) {
const firmCode = userInfo.firmCode.trim()
const firmUser = userInfo.firmUser.trim()
const firmPassword = userInfo.firmPassword.trim()
const rememberMe = userInfo.rememberMe
const code = userInfo.code
const uuid = userInfo.uuid
return new Promise((resolve, reject) => {
login(firmCode,firmUser,firmPassword, rememberMe, code, uuid).then(res => {
let data = res.data
setToken(data.access_token)
setEntCode(data.ent_code)
commit('SET_TOKEN', data.access_token)
commit('SET_ENT_CODE', data.ent_code)
commit('SET_EXPIRES_IN', data.expires_in)
setExpiresIn(data.expires_in)
resolve()
}).catch(error => {
reject(error)
})
})
},
// 获取用户信息
GetInfo({commit, state}) {
@ -123,11 +96,9 @@ const user = {
return new Promise((resolve, reject) => {
logout(state.token).then(() => {
commit('SET_TOKEN', '')
commit('SET_ENT_CODE', '')
commit('SET_ROLES', [])
commit('SET_PERMISSIONS', [])
removeToken()
removeEntCode()
resolve()
}).catch(error => {
reject(error)
@ -139,9 +110,7 @@ const user = {
FedLogOut({commit}) {
return new Promise(resolve => {
commit('SET_TOKEN', '')
commit('SET_ENT_CODE', '')
removeToken()
removeEntCode()
resolve()
})
}

View File

@ -2,8 +2,6 @@ import Cookies from 'js-cookie'
const TokenKey = 'Admin-Token'
const EntCode = 'ent-code'
const ExpiresInKey = 'Admin-Expires-In'
export function getToken() {
@ -18,18 +16,6 @@ export function removeToken() {
return Cookies.remove(TokenKey)
}
export function getEntCode() {
return Cookies.get(EntCode)
}
export function setEntCode(entCode) {
return Cookies.set(EntCode, entCode)
}
export function removeEntCode() {
return Cookies.remove(EntCode)
}
export function getExpiresIn() {
return Cookies.get(ExpiresInKey) || -1
}

View File

@ -1,7 +1,7 @@
import axios from 'axios'
import {Loading, Message, MessageBox, Notification} from 'element-ui'
import store from '@/store'
import {getEntCode, getToken} from '@/utils/auth'
import {getToken} from '@/utils/auth'
import errorCode from '@/utils/errorCode'
import {blobValidate, tansParams} from "@/utils/muyu";
import cache from '@/plugins/cache'
@ -17,7 +17,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 20000
timeout: 10000
})
// request拦截器
@ -29,9 +29,6 @@ service.interceptors.request.use(config => {
if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
}
if (getEntCode() && !isToken) {
config.headers['ent-code'] = getEntCode() // 让每个请求携带自定义token 请根据实际情况自行修改
}
// get请求映射params参数
if (config.method === 'get' && config.params) {
let url = config.url + '?' + tansParams(config.params);
@ -76,6 +73,7 @@ service.interceptors.request.use(config => {
// 响应拦截器
service.interceptors.response.use(res => {
debugger
// 未设置状态码则默认成功状态
const code = res.data.code || 200;
// 获取错误信息

View File

@ -0,0 +1,449 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="统一社会信用代码" prop="firmCreditCode">
<el-input
v-model="queryParams.firmCreditCode"
placeholder="请输入统一社会信用代码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业法人" prop="firmLegalPerson">
<el-input
v-model="queryParams.firmLegalPerson"
placeholder="请输入企业法人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系电话" prop="firmPhone">
<el-input
v-model="queryParams.firmPhone"
placeholder="请输入联系电话"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系邮箱" prop="firmEmail">
<el-input
v-model="queryParams.firmEmail"
placeholder="请输入联系邮箱"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系网址" prop="firmWebsite">
<el-input
v-model="queryParams.firmWebsite"
placeholder="请输入联系网址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业地址" prop="firmAddress">
<el-input
v-model="queryParams.firmAddress"
placeholder="请输入企业地址"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业注册资本" prop="firmRegisteredCapital">
<el-input
v-model="queryParams.firmRegisteredCapital"
placeholder="请输入企业注册资本"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业成立日期" prop="firmEstablishTime">
<el-date-picker clearable
v-model="queryParams.firmEstablishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业成立日期">
</el-date-picker>
</el-form-item>
<el-form-item label="国标行业" prop="firmProfession">
<el-input
v-model="queryParams.firmProfession"
placeholder="请输入国标行业"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业规模大小" prop="firmScale">
<el-input
v-model="queryParams.firmScale"
placeholder="请输入企业规模大小"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业人数" prop="firmStaffNumber">
<el-input
v-model="queryParams.firmStaffNumber"
placeholder="请输入企业人数"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="企业营业期限开始时间" prop="firmBusinessStart">
<el-date-picker clearable
v-model="queryParams.firmBusinessStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业营业期限开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="企业营业期限结束时间" prop="firmBusinessEnd">
<el-date-picker clearable
v-model="queryParams.firmBusinessEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业营业期限结束时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['firm:firmDetails:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['firm:firmDetails:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['firm:firmDetails:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['firm:firmDetails:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="firmDetailsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="企业id" align="center" prop="id" />
<el-table-column label="统一社会信用代码" align="center" prop="firmCreditCode" />
<el-table-column label="企业法人" align="center" prop="firmLegalPerson" />
<el-table-column label="联系电话" align="center" prop="firmPhone" />
<el-table-column label="联系邮箱" align="center" prop="firmEmail" />
<el-table-column label="联系网址" align="center" prop="firmWebsite" />
<el-table-column label="企业地址" align="center" prop="firmAddress" />
<el-table-column label="企业描述" align="center" prop="firmDesc" />
<el-table-column label="企业注册资本" align="center" prop="firmRegisteredCapital" />
<el-table-column label="企业成立日期" align="center" prop="firmEstablishTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.firmEstablishTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="国标行业" align="center" prop="firmProfession" />
<el-table-column label="企业规模大小" align="center" prop="firmScale" />
<el-table-column label="企业人数" align="center" prop="firmStaffNumber" />
<el-table-column label="企业营业期限开始时间" align="center" prop="firmBusinessStart" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.firmBusinessStart, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="企业营业期限结束时间" align="center" prop="firmBusinessEnd" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.firmBusinessEnd, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['firm:firmDetails:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['firm:firmDetails:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改企业详细信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="统一社会信用代码" prop="firmCreditCode">
<el-input v-model="form.firmCreditCode" placeholder="请输入统一社会信用代码" />
</el-form-item>
<el-form-item label="企业法人" prop="firmLegalPerson">
<el-input v-model="form.firmLegalPerson" placeholder="请输入企业法人" />
</el-form-item>
<el-form-item label="联系电话" prop="firmPhone">
<el-input v-model="form.firmPhone" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="联系邮箱" prop="firmEmail">
<el-input v-model="form.firmEmail" placeholder="请输入联系邮箱" />
</el-form-item>
<el-form-item label="联系网址" prop="firmWebsite">
<el-input v-model="form.firmWebsite" placeholder="请输入联系网址" />
</el-form-item>
<el-form-item label="企业地址" prop="firmAddress">
<el-input v-model="form.firmAddress" placeholder="请输入企业地址" />
</el-form-item>
<el-form-item label="企业描述" prop="firmDesc">
<el-input v-model="form.firmDesc" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="企业注册资本" prop="firmRegisteredCapital">
<el-input v-model="form.firmRegisteredCapital" placeholder="请输入企业注册资本" />
</el-form-item>
<el-form-item label="企业成立日期" prop="firmEstablishTime">
<el-date-picker clearable
v-model="form.firmEstablishTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业成立日期">
</el-date-picker>
</el-form-item>
<el-form-item label="国标行业" prop="firmProfession">
<el-input v-model="form.firmProfession" placeholder="请输入国标行业" />
</el-form-item>
<el-form-item label="企业规模大小" prop="firmScale">
<el-input v-model="form.firmScale" placeholder="请输入企业规模大小" />
</el-form-item>
<el-form-item label="企业人数" prop="firmStaffNumber">
<el-input v-model="form.firmStaffNumber" placeholder="请输入企业人数" />
</el-form-item>
<el-form-item label="企业营业期限开始时间" prop="firmBusinessStart">
<el-date-picker clearable
v-model="form.firmBusinessStart"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业营业期限开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="企业营业期限结束时间" prop="firmBusinessEnd">
<el-date-picker clearable
v-model="form.firmBusinessEnd"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择企业营业期限结束时间">
</el-date-picker>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listFirmDetails, getFirmDetails, delFirmDetails, addFirmDetails, updateFirmDetails } from "/src/api/firm/firmDetails";
export default {
name: "FirmDetails",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
firmDetailsList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
firmCreditCode: null,
firmLegalPerson: null,
firmPhone: null,
firmEmail: null,
firmWebsite: null,
firmAddress: null,
firmDesc: null,
firmRegisteredCapital: null,
firmEstablishTime: null,
firmProfession: null,
firmScale: null,
firmStaffNumber: null,
firmBusinessStart: null,
firmBusinessEnd: null
},
//
form: {},
//
rules: {
firmCreditCode: [
{ required: true, message: "统一社会信用代码不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询企业详细信息列表 */
getList() {
this.loading = true;
listFirmDetails(this.queryParams).then(response => {
this.firmDetailsList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
firmCreditCode: null,
firmLegalPerson: null,
firmPhone: null,
firmEmail: null,
firmWebsite: null,
firmAddress: null,
firmDesc: null,
firmRegisteredCapital: null,
firmEstablishTime: null,
firmProfession: null,
firmScale: null,
firmStaffNumber: null,
firmBusinessStart: null,
firmBusinessEnd: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加企业详细信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getFirmDetails(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改企业详细信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateFirmDetails(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addFirmDetails(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除企业详细信息编号为"' + ids + '"的数据项?').then(function() {
return delFirmDetails(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('firm/firmDetails/export', {
...this.queryParams
}, `firmDetails_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -9,8 +9,8 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="启用状态" prop="state">
<el-select v-model="queryParams.state" placeholder="请选择启用状态" clearable>
<el-form-item label="启用状态(1.开业 2.停业 3.休业)" prop="state">
<el-select v-model="queryParams.state" placeholder="请选择启用状态(1.开业 2.停业 3.休业)" clearable>
<el-option
v-for="dict in dict.type.sys_firm_start"
:key="dict.value"
@ -84,7 +84,7 @@
</el-table-column>
<el-table-column label="企业登录名" align="center" prop="firmUser" />
<el-table-column label="企业登录密码" align="center" prop="firmPassword" />
<el-table-column label="启用状态" align="center" prop="state">
<el-table-column label="启用状态(1.开业 2.停业 3.休业)" align="center" prop="state">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_firm_start" :value="scope.row.state"/>
</template>
@ -138,8 +138,8 @@
<el-form-item label="企业登录密码" prop="firmPassword">
<el-input v-model="form.firmPassword" placeholder="请输入企业登录密码" />
</el-form-item>
<el-form-item label="启用状态" prop="state">
<el-select v-model="form.state" placeholder="请选择启用状态">
<el-form-item label="启用状态(1.开业 2.停业 3.休业)" prop="state">
<el-select v-model="form.state" placeholder="请选择启用状态(1.开业 2.停业 3.休业)">
<el-option
v-for="dict in dict.type.sys_firm_start"
:key="dict.value"

View File

@ -2,19 +2,9 @@
<div class="login">
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form">
<h3 class="title">若依后台管理系统</h3>
<el-form-item prop="firmCode">
<el-form-item prop="username">
<el-input
v-model="loginForm.firmCode"
auto-complete="off"
placeholder="企业编码"
type="text"
>
<svg-icon slot="prefix" class="el-input__icon input-icon" icon-class="tool"/>
</el-input>
</el-form-item>
<el-form-item prop="firmUser">
<el-input
v-model="loginForm.firmUser"
v-model="loginForm.username"
auto-complete="off"
placeholder="账号"
type="text"
@ -22,9 +12,9 @@
<svg-icon slot="prefix" class="el-input__icon input-icon" icon-class="user"/>
</el-input>
</el-form-item>
<el-form-item prop="firmPassword">
<el-form-item prop="password">
<el-input
v-model="loginForm.firmPassword"
v-model="loginForm.password"
auto-complete="off"
placeholder="密码"
type="password"
@ -82,21 +72,17 @@ export default {
return {
codeUrl: "",
loginForm: {
firmCode: "FIRM",
firmUser: "admin",
firmPassword: "admin123",
username: "admin",
password: "admin123",
rememberMe: false,
code: "",
uuid: ""
},
loginRules: {
firmCode: [
{required: true, trigger: "blur", message: "请输入您的企业编码"}
],
firmUser: [
username: [
{required: true, trigger: "blur", message: "请输入您的账号"}
],
firmPassword: [
password: [
{required: true, trigger: "blur", message: "请输入您的密码"}
],
code: [{required: true, trigger: "change", message: "请输入验证码"}]
@ -132,14 +118,12 @@ export default {
});
},
getCookie() {
const firmCode = Cookies.get("firmCode");
const firmUser = Cookies.get("firmUser");
const firmPassword = Cookies.get("firmPassword");
const username = Cookies.get("username");
const password = Cookies.get("password");
const rememberMe = Cookies.get('rememberMe')
this.loginForm = {
firmCode: firmCode === undefined ? this.loginForm.firmCode : firmCode,
firmUser: firmUser === undefined ? this.loginForm.firmUser : firmUser,
firmPassword: firmPassword === undefined ? this.loginForm.firmPassword : decrypt(firmPassword),
username: username === undefined ? this.loginForm.username : username,
password: password === undefined ? this.loginForm.password : decrypt(password),
rememberMe: rememberMe === undefined ? false : Boolean(rememberMe)
};
},
@ -148,17 +132,15 @@ export default {
if (valid) {
this.loading = true;
if (this.loginForm.rememberMe) {
Cookies.set("firmCode", this.loginForm.firmCode, {expires: 30});
Cookies.set("firmUser", this.loginForm.firmUser, {expires: 30});
Cookies.set("firmPassword", encrypt(this.loginForm.firmPassword), {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("firmCode");
Cookies.remove("firmUser");
Cookies.remove("firmPassword");
Cookies.remove("username");
Cookies.remove("password");
Cookies.remove('rememberMe');
}
this.$store.dispatch("firmLogin", this.loginForm).then(() => {
this.$store.dispatch("Login", this.loginForm).then(() => {
this.$router.push({path: this.redirect || "/"}).catch(() => {
});
}).catch(() => {

View File

@ -0,0 +1,260 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="车辆型号编码" prop="modelCode">
<el-input
v-model="queryParams.modelCode"
placeholder="请输入车辆型号编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['message:message:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['message:message:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['message:message:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['message:message:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="messageList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="自增主键" align="center" prop="id" />
<el-table-column label="车辆型号编码" align="center" prop="modelCode" />
<el-table-column label="车辆报文类型编码" align="center" prop="messageTypeCode" />
<el-table-column label="开始位下标" align="center" prop="messageStartIndex" />
<el-table-column label="结束位下标" align="center" prop="messageEndIndex" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['message:message:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['message:message:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改车辆报文记录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="车辆型号编码" prop="modelCode">
<el-input v-model="form.modelCode" placeholder="请输入车辆型号编码" />
</el-form-item>
<el-form-item label="车辆报文类型编码" prop="messageTypeCode">
<el-input v-model="form.messageTypeCode" placeholder="请输入车辆报文类型编码" />
</el-form-item>
<el-form-item label="开始位下标" prop="messageStartIndex">
<el-input v-model="form.messageStartIndex" placeholder="请输入开始位下标" />
</el-form-item>
<el-form-item label="结束位下标" prop="messageEndIndex">
<el-input v-model="form.messageEndIndex" placeholder="请输入结束位下标" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listMessage, getMessage, delMessage, addMessage, updateMessage } from "/src/api/message/message";
export default {
name: "Message",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
messageList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
modelCode: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询车辆报文记录列表 */
getList() {
this.loading = true;
listMessage(this.queryParams).then(response => {
this.messageList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
modelCode: null,
messageTypeCode: null,
messageStartIndex: null,
messageEndIndex: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加车辆报文记录";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getMessage(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改车辆报文记录";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateMessage(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMessage(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除车辆报文记录编号为"' + ids + '"的数据项?').then(function() {
return delMessage(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('message/message/export', {
...this.queryParams
}, `message_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,253 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="报文名称" prop="messageName">
<el-input
v-model="queryParams.messageName"
placeholder="请输入报文名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['message:messageType:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['message:messageType:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['message:messageType:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['message:messageType:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="messageTypeList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="自增主键" align="center" prop="id" />
<el-table-column label="报文编码" align="center" prop="messageCode" />
<el-table-column label="报文名称" align="center" prop="messageName" />
<el-table-column label="报文分类" align="center" prop="messageType" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['message:messageType:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['message:messageType:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改车辆报文类型对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="报文编码" prop="messageCode">
<el-input v-model="form.messageCode" placeholder="请输入报文编码" />
</el-form-item>
<el-form-item label="报文名称" prop="messageName">
<el-input v-model="form.messageName" placeholder="请输入报文名称" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listMessageType, getMessageType, delMessageType, addMessageType, updateMessageType } from "/src/api/message/messageType";
export default {
name: "MessageType",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
messageTypeList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
messageName: null,
messageType: null
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询车辆报文类型列表 */
getList() {
this.loading = true;
listMessageType(this.queryParams).then(response => {
this.messageTypeList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
messageCode: null,
messageName: null,
messageType: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加车辆报文类型";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getMessageType(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改车辆报文类型";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateMessageType(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addMessageType(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除车辆报文类型编号为"' + ids + '"的数据项?').then(function() {
return delMessageType(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('message/messageType/export', {
...this.queryParams
}, `messageType_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -105,7 +105,6 @@
<el-table-column align="center" type="selection" width="55"/>
<el-table-column label="角色编号" prop="roleId" width="120"/>
<el-table-column :show-overflow-tooltip="true" label="角色名称" prop="roleName" width="150"/>
<el-table-column v-show="getEntCode() === 'FIRM'" align="center" label="租户编码" prop="firmCode"/>
<el-table-column :show-overflow-tooltip="true" label="权限字符" prop="roleKey" width="150"/>
<el-table-column label="显示顺序" prop="roleSort" width="100"/>
<el-table-column align="center" label="状态" width="100">
@ -278,7 +277,6 @@ import {
updateRole
} from "@/api/system/role";
import {roleMenuTreeselect, treeselect as menuTreeselect} from "@/api/system/menu";
import {getEntCode} from "@/utils/auth";
export default {
name: "Role",
@ -370,7 +368,6 @@ export default {
this.getList();
},
methods: {
getEntCode,
/** 查询角色列表 */
getList() {
this.loading = true;

View File

@ -26,7 +26,6 @@
</el-table-column>
<el-table-column :reserve-selection="true" type="selection" width="55"></el-table-column>
<el-table-column align="center" label="角色编号" prop="roleId"/>
<el-table-column v-show="getEntCode() === 'FIRM'" align="center" label="租户编码" prop="firmCode"/>
<el-table-column align="center" label="角色名称" prop="roleName"/>
<el-table-column align="center" label="权限字符" prop="roleKey"/>
<el-table-column align="center" label="创建时间" prop="createTime" width="180">
@ -49,7 +48,6 @@
<script>
import {getAuthRole, updateAuthRole} from "@/api/system/user";
import {getEntCode} from "@/utils/auth";
export default {
name: "AuthRole",
@ -89,7 +87,6 @@ export default {
}
},
methods: {
getEntCode,
/** 单击选中行数据 */
clickRow(row) {
this.$refs.table.toggleRowSelection(row);

View File

@ -151,7 +151,6 @@
prop="nickName"/>
<el-table-column v-if="columns[3].visible" key="deptName" :show-overflow-tooltip="true" align="center" label="部门"
prop="dept.deptName"/>
<el-table-column v-show="getEntCode() === 'FIRM'" align="center" label="租户编码" prop="firmCode"/>
<el-table-column v-if="columns[4].visible" key="phonenumber" align="center" label="手机号码"
prop="phonenumber" width="120"/>
<el-table-column v-if="columns[5].visible" key="status" align="center" label="状态">
@ -229,10 +228,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions"
:show-count="true"
placeholder="请选择归属部门"
@input="checkRole"/>
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门"/>
</el-form-item>
</el-col>
</el-row>
@ -375,10 +371,9 @@ import {
resetUserPwd,
updateUser
} from "@/api/system/user";
import {getEntCode, getToken, setEntCode} from "@/utils/auth";
import {getToken} from "@/utils/auth";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {listDept} from "@/api/system/dept";
export default {
name: "User",
@ -414,11 +409,8 @@ export default {
dateRange: [],
//
postOptions: [],
//
deptListAll: [],
//
roleOptions: [],
roleListAll: [],
//
form: {},
defaultProps: {
@ -503,7 +495,6 @@ export default {
});
},
methods: {
getEntCode,
/** 查询用户列表 */
getList() {
this.loading = true;
@ -516,19 +507,8 @@ export default {
},
/** 查询部门下拉树结构 */
getDeptTree() {
listDept(this.queryParams).then(response => {
this.deptListAll = response.data
const deptList = response.data.map(dept => {
return {
id: dept.deptId,
label: dept.deptName,
firmCode: dept.firmCode,
parentId: dept.parentId,
children: null
}
})
this.deptOptions = this.handleTree(deptList)
console.log(this.deptOptions)
deptTreeSelect().then(response => {
this.deptOptions = response.data;
});
},
//
@ -575,18 +555,6 @@ export default {
};
this.resetForm("form");
},
//
checkRole(vuler) {
let firmCode = ''
this.deptListAll.forEach(item => {
if (item.deptId == vuler){
firmCode = item.firmCode
}
})
this.roleOptions = this.roleListAll.filter(item => item.firmCode === firmCode);
console.log(firmCode)
console.log(this.roleOptions)
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -624,8 +592,7 @@ export default {
this.reset();
getUser().then(response => {
this.postOptions = response.data.posts;
this.roleOptions = response.data.roles.filter(item => item.firmCode === getEntCode());
this.roleListAll = response.data.roles;
this.roleOptions = response.data.roles;
this.open = true;
this.title = "添加用户";
this.form.password = this.initPassword;

View File

@ -127,9 +127,9 @@
</template>
<script>
import {getGenTable, updateGenTable} from "@/api/tool/gen";
import {optionselect as getDictOptionselect} from "@/api/system/dict/type";
import {listMenu as getMenuTreeselect} from "@/api/system/menu";
import {getGenTable, updateGenTable} from "/src/api/tool/gen";
import {optionselect as getDictOptionselect} from "/src/api/system/dict/type";
import {listMenu as getMenuTreeselect} from "/src/api/system/menu";
import basicInfoForm from "./basicInfoForm";
import genInfoForm from "./genInfoForm";
import Sortable from 'sortablejs'
@ -183,7 +183,8 @@ export default {
const basicForm = this.$refs.basicInfo.$refs.basicInfoForm;
const genForm = this.$refs.genInfo.$refs.genInfoForm;
Promise.all([basicForm, genForm].map(this.getFormPromise)).then(res => {
const validateResult = res.data.every(item => !!item);
console.log(res)
const validateResult = res.every(item => !!item);
if (validateResult) {
const genTable = Object.assign({}, basicForm.model, genForm.model);
genTable.columns = this.columns;
@ -194,10 +195,8 @@ export default {
parentMenuId: genTable.parentMenuId
};
updateGenTable(genTable).then(res => {
this.$modal.msgSuccess(res.data.msg);
if (res.code === 200) {
this.close();
}
this.$modal.msgSuccess(res.msg);
this.close();
});
} else {
this.$modal.msgError("表单校验未通过,请重新检查提交内容");

View File

@ -27,7 +27,7 @@
<el-form-item prop="moduleName">
<span slot="label">
生成模块名
<el-tooltip content="可理解为子系统名,例如 system" placement="top">
<el-tooltip content="指的是项目在网关注册的路径名称(不推荐首字母大写),例: 一个项目在网关注册路径为'- Path=/system/**',其下有两个服务模块,它们的控制层路径是s1,s2,那么这里添system" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
</span>
@ -39,7 +39,7 @@
<el-form-item prop="businessName">
<span slot="label">
生成业务名
<el-tooltip content="可理解为功能英文名,例如 user" placement="top">
<el-tooltip content="指的是模块的控制层名称(不推荐首字母大写),例: 一个项目在网关注册路径为'- Path=/system/**',其下有两个服务模块,它们的控制层路径是auth和app,这次生成auth的模块,那么这里填控制层路径auth" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
</span>
@ -51,7 +51,7 @@
<el-form-item prop="functionName">
<span slot="label">
生成功能名
<el-tooltip content="用作类描述,例如 用户" placement="top">
<el-tooltip content="用作类描述,例如 用户管理" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
</span>

View File

@ -2,6 +2,11 @@
<!-- 导入表 -->
<el-dialog :visible.sync="visible" append-to-body title="导入表" top="5vh" width="800px">
<el-form ref="queryForm" :inline="true" :model="queryParams" size="small">
<el-form-item label="数据库名称" prop="dbName">
<el-select v-model="queryParams.dbName" placeholder="请选择数据库" clearable>
<el-option v-for="item in dbs" :key="item" :label="item" :value="item"/>
</el-select>
</el-form-item>
<el-form-item label="表名称" prop="tableName">
<el-input
v-model="queryParams.tableName"
@ -48,7 +53,7 @@
</template>
<script>
import {importTable, listDbTable} from "@/api/tool/gen";
import {importTable, listDbTable, selDbNameAll} from "@/api/tool/gen";
export default {
data() {
@ -61,6 +66,7 @@ export default {
total: 0,
//
dbTableList: [],
dbs: [],
//
queryParams: {
pageNum: 1,
@ -74,6 +80,7 @@ export default {
//
show() {
this.getList();
this.selDbNameList();
this.visible = true;
},
clickRow(row) {
@ -107,11 +114,23 @@ export default {
this.$modal.msgError("请选择要导入的表");
return;
}
importTable({tables: tableNames}).then(res => {
this.$modal.msgSuccess(res.data.msg);
this.visible = false;
this.$emit("ok");
const dbName = this.queryParams.dbName;
importTable(tableNames, dbName).then(res => {
console.log(res)
if (res.code === 200){
this.$modal.msgSuccess("成功");
this.visible = false;
this.$emit("ok");
}else{
this.$modal.msgSuccess(res.data.msg);
}
});
},
//
selDbNameList() {
selDbNameAll().then(res => {
this.dbs = res.data
})
}
}
};

View File

@ -91,6 +91,13 @@
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
label="数据库名称"
align="center"
prop="dbName"
:show-overflow-tooltip="true"
width="120"
/>
<el-table-column
:show-overflow-tooltip="true"
align="center"
@ -188,7 +195,7 @@
</template>
<script>
import {delTable, genCode, listTable, previewTable, synchDb} from "@/api/tool/gen";
import {delTable, genCode, listTable, previewTable, synchDb} from "/src/api/tool/gen";
import importTable from "./importTable";
import hljs from "highlight.js/lib/highlight";
import "highlight.js/styles/github-gist.css";
@ -256,7 +263,9 @@ export default {
/** 查询表集合 */
getList() {
this.loading = true;
console.log(this.loading)
listTable(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
console.log(response)
this.tableList = response.data.rows;
this.total = response.data.total;
this.loading = false;
@ -286,8 +295,9 @@ export default {
/** 同步数据库操作 */
handleSynchDb(row) {
const tableName = row.tableName;
const dbName = row.dbName;
this.$modal.confirm('确认要强制同步"' + tableName + '"表结构吗?').then(function () {
return synchDb(tableName);
return synchDb(tableName, dbName);
}).then(() => {
this.$modal.msgSuccess("同步成功");
}).catch(() => {