Commit 204710f2 by Moxun1639

以$options.cruds()方式实例化crud,避免多组件实例共享crud

parent e619f77d
...@@ -593,15 +593,24 @@ function lookupCrud(vm, tag) { ...@@ -593,15 +593,24 @@ function lookupCrud(vm, tag) {
* crud主页 * crud主页
*/ */
function presenter(crud) { function presenter(crud) {
if (crud) {
console.warn('[CRUD warn]: ' + 'please use $options.cruds() { return CRUD(...) or [CRUD(...), ...] }')
}
return { return {
beforeCreate() { beforeCreate() {
this.$crud = this.$crud || {} this.$crud = this.$crud || {}
if (this.$crud[crud.tag]) { let cruds = this.$options.cruds instanceof Function ? this.$options.cruds() : crud
console.error('[CRUD error]: ' + 'crud with tag [' + crud.tag + ' is already exist') if (!(cruds instanceof Array)) {
cruds = [cruds]
} }
this.$crud[crud.tag] = crud cruds.forEach(ele => {
this.crud = crud if (this.$crud[ele.tag]) {
crud.registerVM('presenter', this, 0) console.error('[CRUD error]: ' + 'crud with tag [' + ele.tag + ' is already exist')
}
this.$crud[ele.tag] = ele
ele.registerVM('presenter', this, 0)
})
this.crud = this.$crud['defalut'] || cruds.length > 0 ? cruds[0] : null
}, },
data() { data() {
return { return {
...@@ -612,12 +621,16 @@ function presenter(crud) { ...@@ -612,12 +621,16 @@ function presenter(crud) {
parseTime parseTime
}, },
created() { created() {
if (crud.queryOnPresenterCreated) { for (const k in this.$crud) {
crud.toQuery() if (this.$crud[k].queryOnPresenterCreated) {
this.$crud[k].toQuery()
}
} }
}, },
destroyed() { destroyed() {
crud.unregisterVM(this) for (const k in this.$crud) {
this.$crud[k].unregisterVM(this)
}
}, },
mounted() { mounted() {
const columns = [] const columns = []
......
...@@ -63,12 +63,13 @@ import rrOperation from '@crud/RR.operation' ...@@ -63,12 +63,13 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ url: 'api/generator/tables' })
export default { export default {
name: 'GeneratorIndex', name: 'GeneratorIndex',
components: { pagination, crudOperation, rrOperation }, components: { pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header()], cruds() {
return CRUD({ url: 'api/generator/tables' })
},
mixins: [presenter(), header()],
data() { data() {
return { return {
syncLoading: false syncLoading: false
......
...@@ -95,13 +95,15 @@ import rrOperation from '@crud/RR.operation' ...@@ -95,13 +95,15 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '应用', url: 'api/app', crudMethod: { ...crudApp }})
const defaultForm = { id: null, name: null, port: 8080, uploadPath: '/opt/upload', deployPath: '/opt/app', backupPath: '/opt/backup', startScript: null, deployScript: null } const defaultForm = { id: null, name: null, port: 8080, uploadPath: '/opt/upload', deployPath: '/opt/app', backupPath: '/opt/backup', startScript: null, deployScript: null }
export default { export default {
name: 'App', name: 'App',
components: { pagination, crudOperation, rrOperation, udOperation }, components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '应用', url: 'api/app', crudMethod: { ...crudApp }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
currentRow: null, currentRow: null,
......
...@@ -89,13 +89,15 @@ import rrOperation from '@crud/RR.operation' ...@@ -89,13 +89,15 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '数据库', url: 'api/database', crudMethod: { ...crudDatabase }})
const defaultForm = { id: null, name: null, jdbcUrl: 'jdbc:mysql://', userName: null, pwd: null } const defaultForm = { id: null, name: null, jdbcUrl: 'jdbc:mysql://', userName: null, pwd: null }
export default { export default {
name: 'DataBase', name: 'DataBase',
components: { eForm, pagination, crudOperation, rrOperation, udOperation }, components: { eForm, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '数据库', url: 'api/database', crudMethod: { ...crudDatabase }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
currentRow: {}, currentRow: {},
......
...@@ -128,12 +128,15 @@ import rrOperation from '@crud/RR.operation' ...@@ -128,12 +128,15 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '部署', url: 'api/deploy', crudMethod: { ...crudDeploy }})
const defaultForm = { id: null, app: { id: null }, deploys: [] } const defaultForm = { id: null, app: { id: null }, deploys: [] }
export default { export default {
name: 'Deploy',
components: { dForm, fForm, pagination, crudOperation, rrOperation, udOperation }, components: { dForm, fForm, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '部署', url: 'api/deploy', crudMethod: { ...crudDeploy }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
currentRow: {}, selectIndex: '', appName: '', urlHistory: '', currentRow: {}, selectIndex: '', appName: '', urlHistory: '',
......
...@@ -61,12 +61,14 @@ import CRUD, { presenter, header } from '@crud/crud' ...@@ -61,12 +61,14 @@ import CRUD, { presenter, header } from '@crud/crud'
import rrOperation from '@crud/RR.operation' import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '部署历史', url: 'api/deployHistory', crudMethod: { del }})
export default { export default {
name: 'DeployHistory', name: 'DeployHistory',
components: { pagination, crudOperation, rrOperation }, components: { pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header()], cruds() {
return CRUD({ title: '部署历史', url: 'api/deployHistory', crudMethod: { del }})
},
mixins: [presenter(), header()],
data() { data() {
return { return {
delLoading: false, delLoading: false,
......
...@@ -81,13 +81,15 @@ import rrOperation from '@crud/RR.operation' ...@@ -81,13 +81,15 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '服务器', url: 'api/serverDeploy', crudMethod: { ...crudServer }})
const defaultForm = { id: null, name: null, ip: null, port: 22, account: 'root', password: null } const defaultForm = { id: null, name: null, ip: null, port: 22, account: 'root', password: null }
export default { export default {
name: 'Server', name: 'Server',
components: { pagination, crudOperation, rrOperation, udOperation }, components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '服务器', url: 'api/serverDeploy', crudMethod: { ...crudServer }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
accountList: [], accountList: [],
......
...@@ -61,12 +61,13 @@ import CRUD, { presenter } from '@crud/crud' ...@@ -61,12 +61,13 @@ import CRUD, { presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '异常日志', url: 'api/logs/error' })
export default { export default {
name: 'ErrorLog', name: 'ErrorLog',
components: { Search, crudOperation, pagination }, components: { Search, crudOperation, pagination },
mixins: [presenter(defaultCrud)], cruds() {
return CRUD({ title: '异常日志', url: 'api/logs/error' })
},
mixins: [presenter()],
data() { data() {
return { return {
errorInfo: '', dialog: false errorInfo: '', dialog: false
......
...@@ -60,12 +60,13 @@ import CRUD, { presenter } from '@crud/crud' ...@@ -60,12 +60,13 @@ import CRUD, { presenter } from '@crud/crud'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '日志', url: 'api/logs' })
export default { export default {
name: 'Log', name: 'Log',
components: { Search, crudOperation, pagination }, components: { Search, crudOperation, pagination },
mixins: [presenter(defaultCrud)], cruds() {
return CRUD({ title: '日志', url: 'api/logs' })
},
mixins: [presenter()],
created() { created() {
this.crud.optShow = { this.crud.optShow = {
add: false, add: false,
......
...@@ -64,12 +64,13 @@ import rrOperation from '@crud/RR.operation' ...@@ -64,12 +64,13 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ url: 'auth/online', title: '在线用户' })
export default { export default {
name: 'OnlineUser', name: 'OnlineUser',
components: { pagination, crudOperation, rrOperation }, components: { pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header(), crud()], cruds() {
return CRUD({ url: 'auth/online', title: '在线用户' })
},
mixins: [presenter(), header(), crud()],
data() { data() {
return { return {
delLoading: false, delLoading: false,
......
...@@ -107,13 +107,14 @@ import crudOperation from '@crud/CRUD.operation' ...@@ -107,13 +107,14 @@ import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '监控', url: 'api/server', sort: 'sort,asc', crudMethod: { ...crudServer }})
const defaultForm = { id: null, address: 'localhost', name: null, ip: null, port: 8777, state: null, cpuRate: null, cpuCore: null, memTotal: null, memUsed: null, diskTotal: null, diskUsed: null, swapTotal: null, swapUsed: null, sort: 999 } const defaultForm = { id: null, address: 'localhost', name: null, ip: null, port: 8777, state: null, cpuRate: null, cpuCore: null, memTotal: null, memUsed: null, diskTotal: null, diskUsed: null, swapTotal: null, swapUsed: null, sort: 999 }
export default { export default {
name: 'ServerMonitor', name: 'ServerMonitor',
components: { pagination, crudOperation, rrOperation, udOperation }, components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '监控', url: 'api/server', sort: 'sort,asc', crudMethod: { ...crudServer }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
permission: { permission: {
......
...@@ -84,13 +84,14 @@ import rrOperation from '@crud/RR.operation' ...@@ -84,13 +84,14 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept }})
const defaultForm = { id: null, name: null, pid: 1, enabled: 'true' } const defaultForm = { id: null, name: null, pid: 1, enabled: 'true' }
export default { export default {
name: 'Dept', name: 'Dept',
components: { Treeselect, crudOperation, rrOperation, udOperation }, components: { Treeselect, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '部门', url: 'api/dept', crudMethod: { ...crudDept }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
// 设置数据字典 // 设置数据字典
dicts: ['dept_status'], dicts: ['dept_status'],
data() { data() {
......
...@@ -66,18 +66,18 @@ import crudOperation from '@crud/CRUD.operation' ...@@ -66,18 +66,18 @@ import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
// crud交由presenter持有
const crud = CRUD({
title: '岗位',
url: 'api/job',
sort: ['sort,asc', 'id,desc'],
crudMethod: { ...crudJob }
})
export default { export default {
name: 'Job', name: 'Job',
components: { eHeader, eForm, crudOperation, pagination, udOperation }, components: { eHeader, eForm, crudOperation, pagination, udOperation },
mixins: [presenter(crud)], cruds() {
return CRUD({
title: '岗位',
url: 'api/job',
sort: ['sort,asc', 'id,desc'],
crudMethod: { ...crudJob }
})
},
mixins: [presenter()],
// 数据字典 // 数据字典
dicts: ['job_status'], dicts: ['job_status'],
data() { data() {
......
...@@ -156,12 +156,14 @@ import crudOperation from '@crud/CRUD.operation' ...@@ -156,12 +156,14 @@ import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation' import udOperation from '@crud/UD.operation'
// crud交由presenter持有 // crud交由presenter持有
const defaultCrud = CRUD({ title: '菜单', url: 'api/menus', crudMethod: { ...crudMenu }})
const defaultForm = { id: null, name: null, sort: 999, path: null, component: null, componentName: null, iframe: false, roles: [], pid: 0, icon: null, cache: false, hidden: false, type: 0, permission: null } const defaultForm = { id: null, name: null, sort: 999, path: null, component: null, componentName: null, iframe: false, roles: [], pid: 0, icon: null, cache: false, hidden: false, type: 0, permission: null }
export default { export default {
name: 'Menu', name: 'Menu',
components: { Treeselect, IconSelect, crudOperation, rrOperation, udOperation }, components: { Treeselect, IconSelect, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '菜单', url: 'api/menus', crudMethod: { ...crudMenu }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
menus: [], menus: [],
......
...@@ -133,13 +133,14 @@ import pagination from '@crud/Pagination' ...@@ -133,13 +133,14 @@ import pagination from '@crud/Pagination'
import Treeselect from '@riophae/vue-treeselect' import Treeselect from '@riophae/vue-treeselect'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '角色', url: 'api/roles', sort: 'level,asc', crudMethod: { ...crudRoles }})
const defaultForm = { id: null, name: null, depts: [], remark: null, dataScope: '全部', level: 3, permission: null } const defaultForm = { id: null, name: null, depts: [], remark: null, dataScope: '全部', level: 3, permission: null }
export default { export default {
name: 'Role', name: 'Role',
components: { Treeselect, pagination, crudOperation, rrOperation, udOperation }, components: { Treeselect, pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '角色', url: 'api/roles', sort: 'level,asc', crudMethod: { ...crudRoles }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
defaultProps: { children: 'children', label: 'label' }, defaultProps: { children: 'children', label: 'label' },
......
...@@ -117,13 +117,14 @@ import rrOperation from '@crud/RR.operation' ...@@ -117,13 +117,14 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '定时任务', url: 'api/jobs', crudMethod: { ...crudJob }})
const defaultForm = { id: null, jobName: null, beanName: null, methodName: null, params: null, cronExpression: null, isPause: false, remark: null } const defaultForm = { id: null, jobName: null, beanName: null, methodName: null, params: null, cronExpression: null, isPause: false, remark: null }
export default { export default {
name: 'Timing', name: 'Timing',
components: { Log, pagination, crudOperation, rrOperation }, components: { Log, pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '定时任务', url: 'api/jobs', crudMethod: { ...crudJob }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
delLoading: false, delLoading: false,
......
...@@ -209,13 +209,14 @@ import { mapGetters } from 'vuex' ...@@ -209,13 +209,14 @@ import { mapGetters } from 'vuex'
import '@riophae/vue-treeselect/dist/vue-treeselect.css' import '@riophae/vue-treeselect/dist/vue-treeselect.css'
let userRoles = [] let userRoles = []
// crud交由presenter持有
const defaultCrud = CRUD({ title: '用户', url: 'api/users', crudMethod: { ...crudUser }})
const defaultForm = { id: null, username: null, nickName: null, sex: '男', email: null, enabled: 'false', roles: [], job: { id: null }, dept: { id: null }, phone: null } const defaultForm = { id: null, username: null, nickName: null, sex: '男', email: null, enabled: 'false', roles: [], job: { id: null }, dept: { id: null }, phone: null }
export default { export default {
name: 'User', name: 'User',
components: { Treeselect, crudOperation, rrOperation, udOperation, pagination }, components: { Treeselect, crudOperation, rrOperation, udOperation, pagination },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '用户', url: 'api/users', crudMethod: { ...crudUser }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
// 数据字典 // 数据字典
dicts: ['user_status'], dicts: ['user_status'],
data() { data() {
......
...@@ -102,12 +102,13 @@ import rrOperation from '@crud/RR.operation' ...@@ -102,12 +102,13 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '图片', url: 'api/pictures', crudMethod: { ...crudPic }})
export default { export default {
name: 'Pictures', name: 'Pictures',
components: { pagination, crudOperation, rrOperation }, components: { pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header(), crud()], cruds() {
return CRUD({ title: '图片', url: 'api/pictures', crudMethod: { ...crudPic }})
},
mixins: [presenter(), header(), crud()],
data() { data() {
return { return {
dialog: false, dialog: false,
......
...@@ -124,12 +124,13 @@ import rrOperation from '@crud/RR.operation' ...@@ -124,12 +124,13 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '文件', url: 'api/localStorage', crudMethod: { ...crudFile }})
const defaultForm = { id: null, name: '' } const defaultForm = { id: null, name: '' }
export default { export default {
components: { pagination, crudOperation, rrOperation }, components: { pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header(), form(defaultForm), crud()], cruds() {
return CRUD({ title: '文件', url: 'api/localStorage', crudMethod: { ...crudFile }})
},
mixins: [presenter(), header(), form(defaultForm), crud()],
data() { data() {
return { return {
delAllLoading: false, delAllLoading: false,
......
...@@ -89,11 +89,12 @@ import rrOperation from '@crud/RR.operation' ...@@ -89,11 +89,12 @@ import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation' import crudOperation from '@crud/CRUD.operation'
import pagination from '@crud/Pagination' import pagination from '@crud/Pagination'
// crud交由presenter持有
const defaultCrud = CRUD({ title: '七牛云文件', url: 'api/qiNiuContent', crudMethod: { ...crudQiNiu }})
export default { export default {
components: { eForm, pagination, crudOperation, rrOperation }, components: { eForm, pagination, crudOperation, rrOperation },
mixins: [presenter(defaultCrud), header(), crud()], cruds() {
return CRUD({ title: '七牛云文件', url: 'api/qiNiuContent', crudMethod: { ...crudQiNiu }})
},
mixins: [presenter(), header(), crud()],
data() { data() {
return { return {
permission: { permission: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment