提交 89585a19 编写于 作者: ibizdev's avatar ibizdev

labxiekai 发布系统代码

上级 5138cde9
{
"sysauthloggridview": {
"title": "认证日志表格视图",
"title": "认证日志",
"caption": "认证日志",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
......@@ -215,12 +215,12 @@
"viewname": "SYS_PERMISSIONPickupGridView",
"viewtag": "9c0b351150648f7661be53c10eaabd67"
},
"sys_rolegridview": {
"title": "角色表格视图",
"caption": "系统角色",
"sysrolegridview": {
"title": "角色",
"caption": "角色",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
"viewname": "SYS_ROLEGridView",
"viewname": "SysRoleGridView",
"viewtag": "9e9a67908b3c85516085fe19e3dd4113"
},
"sys_user_rolempickupview": {
......@@ -240,8 +240,8 @@
"viewtag": "b8a97c1797a1b91fbb37f8c2d14b1fb6"
},
"sysappgridview": {
"title": "应用表格视图",
"caption": "应用",
"title": "接入应用",
"caption": "接入应用",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
"viewname": "SysAppGridView",
......@@ -255,12 +255,12 @@
"viewname": "SYS_PERMISSIONRedirectView",
"viewtag": "c1c2bc63580de24bac60af103a3fcc0f"
},
"sys_usergridview": {
"title": "用户表格视图",
"caption": "系统用户",
"sysusergridview": {
"title": "用户",
"caption": "用户",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
"viewname": "SYS_USERGridView",
"viewname": "SysUserGridView",
"viewtag": "cb64b5009e70f225a91046314f40977a"
},
"sys_rolempickupview": {
......
......@@ -8,6 +8,7 @@ import { AppPopover } from './utils/app-popover/app-popover';
import { AppModal } from './utils/app-modal/app-modal';
import { AppDrawer } from './utils/app-drawer/app-drawer';
import { uiServiceRegister } from '@/uiservice/ui-service-register';
import { authServiceRegister } from '@/authservice/auth-service-register';
import { utilServiceRegister } from '@/utilservice/util-service-register';
import { entityServiceRegister } from '@/service/entity-service-register';
import { counterServiceRegister } from '@/counter/counter-service-register';
......@@ -79,6 +80,8 @@ import AppGroupSelect from './components/app-group-select/app-group-select.vue'
import UpdatePwd from './components/app-update-password/app-update-password.vue'
// 全局挂载UI实体服务注册中心
window['uiServiceRegister'] = uiServiceRegister;
// 全局挂载实体权限服务注册中心
window['authServiceRegister'] = authServiceRegister;
// 全局挂载功能服务注册中心
window['utilServiceRegister'] = utilServiceRegister;
// 全局挂载数据服务注册中心
......
/**
* 实体权限服务注册中心
*
* @export
* @class AuthServiceRegister
*/
export class AuthServiceRegister {
/**
* 所有实体权限服务Map
*
* @protected
* @type {*}
* @memberof AuthServiceRegister
*/
protected allAuthService: Map<string, () => Promise<any>> = new Map();
/**
* 已加载实体权限服务Map缓存
*
* @protected
* @type {Map<string, any>}
* @memberof AuthServiceRegister
*/
protected serviceCache: Map<string, any> = new Map();
/**
* Creates an instance of AuthServiceRegister.
* @memberof AuthServiceRegister
*/
constructor() {
this.init();
}
/**
* 初始化
*
* @protected
* @memberof AuthServiceRegister
*/
protected init(): void {
this.allAuthService.set('sysauthlog', () => import('@/authservice/sys-auth-log/sys-auth-log-auth-service'));
this.allAuthService.set('sysapp', () => import('@/authservice/sys-app/sys-app-auth-service'));
this.allAuthService.set('sysrolepermission', () => import('@/authservice/sys-role-permission/sys-role-permission-auth-service'));
this.allAuthService.set('syspermission', () => import('@/authservice/sys-permission/sys-permission-auth-service'));
this.allAuthService.set('sysuserrole', () => import('@/authservice/sys-user-role/sys-user-role-auth-service'));
this.allAuthService.set('sysuser', () => import('@/authservice/sys-user/sys-user-auth-service'));
this.allAuthService.set('sysrole', () => import('@/authservice/sys-role/sys-role-auth-service'));
}
/**
* 加载实体权限服务
*
* @protected
* @param {string} serviceName
* @returns {Promise<any>}
* @memberof AuthServiceRegister
*/
protected async loadService(serviceName: string): Promise<any> {
const service = this.allAuthService.get(serviceName);
if (service) {
return service();
}
}
/**
* 获取应用实体权限服务
*
* @param {string} name
* @returns {Promise<any>}
* @memberof AuthServiceRegister
*/
public async getService(name: string): Promise<any> {
if (this.serviceCache.has(name)) {
return this.serviceCache.get(name);
}
const authService: any = await this.loadService(name);
if (authService && authService.default) {
const instance: any = new authService.default();
this.serviceCache.set(name, instance);
return instance;
}
}
}
export const authServiceRegister: AuthServiceRegister = new AuthServiceRegister();
\ No newline at end of file
import { Store } from 'vuex';
/**
* 实体权限服务
*
* @export
* @class AuthService
*/
export default class AuthService {
/**
* Vue 状态管理器
*
* @private
* @type {(any | null)}
* @memberof AuthService
*/
private $store: Store<any> | null = null;
/**
* Creates an instance of AuthService.
*
* @param {*} [opts={}]
* @memberof AuthService
*/
constructor(opts: any = {}) {
this.$store = opts.$store;
}
/**
* 获取状态管理器
*
* @returns {(any | null)}
* @memberof AuthService
*/
public getStore(): Store<any> | null {
return this.$store;
}
/**
* 获取实体权限服务
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof AuthService
*/
public getService(name: string): Promise<any> {
return (window as any)['authServiceRegister'].getService(name);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof AuthService
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
/**
* 根据菜单项获取菜单权限
*
* @param {*} item 菜单标识
* @returns {boolean}
* @memberof AuthService
*/
public getMenusPermission(item:any):boolean{
return true;
}
/**
* 根据统一资源标识获取统一资源权限
*
* @param {*} tag 统一资源标识
* @returns {boolean}
* @memberof AuthService
*/
public getResourcePermission(tag:any):boolean{
return true;
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 应用权限服务对象基类
*
* @export
* @class SysAppAuthServiceBase
* @extends {AuthService}
*/
export default class SysAppAuthServiceBase extends AuthService {
/**
* Creates an instance of SysAppAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysAppAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysAppAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysAppAuthServiceBase from './sys-app-auth-service-base';
/**
* 应用权限服务对象
*
* @export
* @class SysAppAuthService
* @extends {SysAppAuthServiceBase}
*/
export default class SysAppAuthService extends SysAppAuthServiceBase {
/**
* Creates an instance of SysAppAuthService.
*
* @param {*} [opts={}]
* @memberof SysAppAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 认证日志权限服务对象基类
*
* @export
* @class SysAuthLogAuthServiceBase
* @extends {AuthService}
*/
export default class SysAuthLogAuthServiceBase extends AuthService {
/**
* Creates an instance of SysAuthLogAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysAuthLogAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysAuthLogAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysAuthLogAuthServiceBase from './sys-auth-log-auth-service-base';
/**
* 认证日志权限服务对象
*
* @export
* @class SysAuthLogAuthService
* @extends {SysAuthLogAuthServiceBase}
*/
export default class SysAuthLogAuthService extends SysAuthLogAuthServiceBase {
/**
* Creates an instance of SysAuthLogAuthService.
*
* @param {*} [opts={}]
* @memberof SysAuthLogAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 权限/资源权限服务对象基类
*
* @export
* @class SysPermissionAuthServiceBase
* @extends {AuthService}
*/
export default class SysPermissionAuthServiceBase extends AuthService {
/**
* Creates an instance of SysPermissionAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysPermissionAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysPermissionAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysPermissionAuthServiceBase from './sys-permission-auth-service-base';
/**
* 权限/资源权限服务对象
*
* @export
* @class SysPermissionAuthService
* @extends {SysPermissionAuthServiceBase}
*/
export default class SysPermissionAuthService extends SysPermissionAuthServiceBase {
/**
* Creates an instance of SysPermissionAuthService.
*
* @param {*} [opts={}]
* @memberof SysPermissionAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 角色权限关系权限服务对象基类
*
* @export
* @class SysRolePermissionAuthServiceBase
* @extends {AuthService}
*/
export default class SysRolePermissionAuthServiceBase extends AuthService {
/**
* Creates an instance of SysRolePermissionAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysRolePermissionAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysRolePermissionAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysRolePermissionAuthServiceBase from './sys-role-permission-auth-service-base';
/**
* 角色权限关系权限服务对象
*
* @export
* @class SysRolePermissionAuthService
* @extends {SysRolePermissionAuthServiceBase}
*/
export default class SysRolePermissionAuthService extends SysRolePermissionAuthServiceBase {
/**
* Creates an instance of SysRolePermissionAuthService.
*
* @param {*} [opts={}]
* @memberof SysRolePermissionAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 系统角色权限服务对象基类
*
* @export
* @class SysRoleAuthServiceBase
* @extends {AuthService}
*/
export default class SysRoleAuthServiceBase extends AuthService {
/**
* Creates an instance of SysRoleAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysRoleAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysRoleAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysRoleAuthServiceBase from './sys-role-auth-service-base';
/**
* 系统角色权限服务对象
*
* @export
* @class SysRoleAuthService
* @extends {SysRoleAuthServiceBase}
*/
export default class SysRoleAuthService extends SysRoleAuthServiceBase {
/**
* Creates an instance of SysRoleAuthService.
*
* @param {*} [opts={}]
* @memberof SysRoleAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 用户角色关系权限服务对象基类
*
* @export
* @class SysUserRoleAuthServiceBase
* @extends {AuthService}
*/
export default class SysUserRoleAuthServiceBase extends AuthService {
/**
* Creates an instance of SysUserRoleAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysUserRoleAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysUserRoleAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysUserRoleAuthServiceBase from './sys-user-role-auth-service-base';
/**
* 用户角色关系权限服务对象
*
* @export
* @class SysUserRoleAuthService
* @extends {SysUserRoleAuthServiceBase}
*/
export default class SysUserRoleAuthService extends SysUserRoleAuthServiceBase {
/**
* Creates an instance of SysUserRoleAuthService.
*
* @param {*} [opts={}]
* @memberof SysUserRoleAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 系统用户权限服务对象基类
*
* @export
* @class SysUserAuthServiceBase
* @extends {AuthService}
*/
export default class SysUserAuthServiceBase extends AuthService {
/**
* Creates an instance of SysUserAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof SysUserAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {Promise<any>}
* @memberof SysUserAuthServiceBase
*/
public async getOPPrivs(data:any):Promise<any>{
return null;
}
}
\ No newline at end of file
import SysUserAuthServiceBase from './sys-user-auth-service-base';
/**
* 系统用户权限服务对象
*
* @export
* @class SysUserAuthService
* @extends {SysUserAuthServiceBase}
*/
export default class SysUserAuthService extends SysUserAuthServiceBase {
/**
* Creates an instance of SysUserAuthService.
*
* @param {*} [opts={}]
* @memberof SysUserAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
......@@ -136,7 +136,8 @@ export default class AppFileUpload extends Vue {
if (this.ignorefieldvaluechange) {
return;
}
this.setFiles(newval)
this.getParams();
this.setFiles(newval);
this.dataProcess();
}
......@@ -288,6 +289,7 @@ export default class AppFileUpload extends Vue {
this.formStateEvent = this.formState.subscribe(($event: any) => {
// 表单加载完成
if (Object.is($event.type, 'load')) {
this.getParams();
this.setFiles(this.value);
this.dataProcess();
}
......@@ -303,27 +305,36 @@ export default class AppFileUpload extends Vue {
*/
public mounted() {
this.appData = this.$store.getters.getAppData();
this.getParams();
this.setFiles(this.value);
this.dataProcess();
}
let uploadparams: any = {};
let exportparams: any = {};
/**
*获取上传,导出参数
*
*@memberof AppFileUpload
*/
public getParams(){
let uploadparams: any = JSON.parse(JSON.stringify(this.uploadparams));
let exportparams: any = JSON.parse(JSON.stringify(this.exportparams));
let upload_params: Array<string> = [];
let export_params: Array<string> = [];
let custom_arr: Array<string> = [];
let param:any = this.viewparams;
let context:any = this.context;
let _data:any = JSON.parse(this.data);
if (this.uploadparams && !Object.is(this.uploadparams, '')) {
uploadparams = this.uploadparams;
upload_params = this.$util.computedNavData(_data,param,context,uploadparams);
}
if (this.exportparams && !Object.is(this.exportparams, '')) {
exportparams = this.exportparams;
export_params = this.$util.computedNavData(_data,param,context,exportparams);
}
this.upload_params = [];
this.export_params = [];
for (const item in upload_params) {
this.upload_params.push({
......@@ -335,9 +346,6 @@ export default class AppFileUpload extends Vue {
[item]:export_params[item]
})
}
this.setFiles(this.value);
this.dataProcess();
}
/**
......
......@@ -135,6 +135,7 @@ export default class AppImageUpload extends Vue {
if (this.ignorefieldvaluechange) {
return;
}
this.getParams();
this.setFiles(newval)
this.dataProcess();
}
......@@ -294,6 +295,7 @@ export default class AppImageUpload extends Vue {
this.formStateEvent = this.formState.subscribe(($event: any) => {
// 表单加载完成
if (Object.is($event.type, 'load')) {
this.getParams();
this.setFiles(this.value);
this.dataProcess();
}
......@@ -308,26 +310,37 @@ export default class AppImageUpload extends Vue {
*/
public mounted() {
this.appData = this.$store.getters.getAppData();
this.getParams();
this.setFiles(this.value);
this.dataProcess();
}
let uploadparams: any = {};
let exportparams: any = {};
/**
*获取上传,导出参数
*
*@memberof AppImageUpload
*/
public getParams(){
let uploadparams: any = JSON.parse(JSON.stringify(this.uploadparams));
let exportparams: any = JSON.parse(JSON.stringify(this.exportparams));
let upload_params: Array<string> = [];
let export_params: Array<string> = [];
let custom_arr: Array<string> = [];
let param:any = this.viewparams;
let context:any = this.context;
let _data:any = JSON.parse(this.data);
if (this.uploadparams && !Object.is(this.uploadparams, '')) {
uploadparams = this.uploadparams;
upload_params = this.$util.computedNavData(_data,param,context,uploadparams);
upload_params = this.$util.computedNavData(_data,param,context,uploadparams);
}
if (this.exportparams && !Object.is(this.exportparams, '')) {
exportparams = this.exportparams;
export_params = this.$util.computedNavData(_data,param,context,exportparams);
}
this.upload_params = [];
this.export_params = [];
for (const item in upload_params) {
this.upload_params.push({
[item]:upload_params[item]
......@@ -338,9 +351,6 @@ export default class AppImageUpload extends Vue {
[item]:export_params[item]
})
}
this.setFiles(this.value);
this.dataProcess();
}
/**
......
......@@ -3,14 +3,15 @@
class='dropdown-list-mpicker'
multiple
:transfer="true"
transfer-class-name="dropdown-list-mpicker-transfer"
v-model="currentVal"
:disabled="disabled === true ? true : false"
:clearable="true"
:filterable="filterable === true ? true : false"
@on-open-change="onClick"
:placeholder="$t('components.dropDownListMpicker.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :value="item.value" :label="item.text">
<Checkbox :value = "(currentVal.indexOf(item.value))==-1?false:true">
<i-option v-for="(item, index) in items" :key="index" :value="item.value.toString()" :label="item.text">
<Checkbox :value = "(currentVal.indexOf(item.value.toString()))==-1?false:true">
{{Object.is(codelistType,'STATIC') ? $t('codelist.'+tag+'.'+item.value) : item.text}}
</Checkbox>
</i-option>
......
......@@ -8,7 +8,7 @@
:filterable="filterable === true ? true : false"
@on-open-change="onClick"
:placeholder="$t('components.dropDownList.placeholder')">
<i-option v-for="(item, index) in items" :key="index" :value="item.value">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option>
<i-option v-for="(item, index) in items" :key="index" :value="item.value.toString()">{{($t('codelist.'+tag+'.'+item.value)!== ('codelist.'+tag+'.'+item.value))?$t('codelist.'+tag+'.'+item.value) : item.text}}</i-option>
</i-select>
</template>
......@@ -157,7 +157,7 @@ export default class DropDownList extends Vue {
* @memberof DropDownList
*/
get currentVal() {
return this.itemValue;
return this.itemValue ? this.itemValue.toString() : undefined;
}
/**
......
......@@ -17,8 +17,8 @@ export default {
title: "应用编辑视图",
},
gridview: {
caption: "应用",
title: "应用表格视图",
caption: "接入应用",
title: "接入应用",
},
},
main_form: {
......
......@@ -16,8 +16,8 @@ export default {
title: "应用编辑视图",
},
gridview: {
caption: "应用",
title: "应用表格视图",
caption: "接入应用",
title: "接入应用",
},
},
main_form: {
......
......@@ -14,7 +14,7 @@ export default {
views: {
gridview: {
caption: "认证日志",
title: "认证日志表格视图",
title: "认证日志",
},
},
main_grid: {
......
......@@ -13,7 +13,7 @@ export default {
views: {
gridview: {
caption: "认证日志",
title: "认证日志表格视图",
title: "认证日志",
},
},
main_grid: {
......
......@@ -29,8 +29,8 @@ export default {
title: "角色数据重定向视图",
},
gridview: {
caption: "系统角色",
title: "角色表格视图",
caption: "角色",
title: "角色",
},
mpickupview: {
caption: "系统角色",
......
......@@ -28,8 +28,8 @@ export default {
title: "角色数据重定向视图",
},
gridview: {
caption: "系统角色",
title: "角色表格视图",
caption: "角色",
title: "角色",
},
mpickupview: {
caption: "系统角色",
......
......@@ -56,8 +56,8 @@ export default {
title: "用户表编辑视图",
},
gridview: {
caption: "系统用户",
title: "用户表格视图",
caption: "用户",
title: "用户",
},
pickupview: {
caption: "系统用户",
......
......@@ -55,8 +55,8 @@ export default {
title: "用户表编辑视图",
},
gridview: {
caption: "系统用户",
title: "用户表格视图",
caption: "用户",
title: "用户",
},
pickupview: {
caption: "系统用户",
......
......@@ -8,7 +8,7 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
let status = MockAdapter.mockStatus(config);
return [status,{
"sysauthloggridview": {
"title": "认证日志表格视图",
"title": "认证日志",
"caption": "认证日志",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
......@@ -223,12 +223,12 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "SYS_PERMISSIONPickupGridView",
"viewtag": "9c0b351150648f7661be53c10eaabd67"
},
"sys_rolegridview": {
"title": "角色表格视图",
"caption": "系统角色",
"sysrolegridview": {
"title": "角色",
"caption": "角色",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
"viewname": "SYS_ROLEGridView",
"viewname": "SysRoleGridView",
"viewtag": "9e9a67908b3c85516085fe19e3dd4113"
},
"sys_user_rolempickupview": {
......@@ -248,8 +248,8 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewtag": "b8a97c1797a1b91fbb37f8c2d14b1fb6"
},
"sysappgridview": {
"title": "应用表格视图",
"caption": "应用",
"title": "接入应用",
"caption": "接入应用",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
"viewname": "SysAppGridView",
......@@ -263,12 +263,12 @@ mock.onGet('./assets/json/view-config.json').reply((config: any) => {
"viewname": "SYS_PERMISSIONRedirectView",
"viewtag": "c1c2bc63580de24bac60af103a3fcc0f"
},
"sys_usergridview": {
"title": "用户表格视图",
"caption": "系统用户",
"sysusergridview": {
"title": "用户",
"caption": "用户",
"viewtype": "DEGRIDVIEW",
"viewmodule": "uaa",
"viewname": "SYS_USERGridView",
"viewname": "SysUserGridView",
"viewtag": "cb64b5009e70f225a91046314f40977a"
},
"sys_rolempickupview": {
......
......@@ -11,10 +11,10 @@ export const PageComponents = {
Vue.component('sys-rolempickup-view', () => import('@pages/uaa/sys-rolempickup-view/sys-rolempickup-view.vue'));
Vue.component('sys-auth-log-grid-view', () => import('@pages/uaa/sys-auth-log-grid-view/sys-auth-log-grid-view.vue'));
Vue.component('sys-userpickup-view', () => import('@pages/uaa/sys-userpickup-view/sys-userpickup-view.vue'));
Vue.component('sys-rolegrid-view', () => import('@pages/uaa/sys-rolegrid-view/sys-rolegrid-view.vue'));
Vue.component('sys-role-grid-view', () => import('@pages/uaa/sys-role-grid-view/sys-role-grid-view.vue'));
Vue.component('sys-useredit-view', () => import('@pages/uaa/sys-useredit-view/sys-useredit-view.vue'));
Vue.component('sys-user-rolegrid-view', () => import('@pages/uaa/sys-user-rolegrid-view/sys-user-rolegrid-view.vue'));
Vue.component('sys-rolepickup-grid-view', () => import('@pages/uaa/sys-rolepickup-grid-view/sys-rolepickup-grid-view.vue'));
Vue.component('sys-usergrid-view', () => import('@pages/uaa/sys-usergrid-view/sys-usergrid-view.vue'));
Vue.component('sys-user-grid-view', () => import('@pages/uaa/sys-user-grid-view/sys-user-grid-view.vue'));
}
};
\ No newline at end of file
......@@ -261,7 +261,7 @@ const router = new Router({
],
requireAuth: true,
},
component: () => import('@pages/uaa/sys-rolegrid-view/sys-rolegrid-view.vue'),
component: () => import('@pages/uaa/sys-role-grid-view/sys-role-grid-view.vue'),
},
{
path: 'sysusers/:sysuser?/editview/:editview?',
......@@ -347,7 +347,7 @@ const router = new Router({
],
requireAuth: true,
},
component: () => import('@pages/uaa/sys-usergrid-view/sys-usergrid-view.vue'),
component: () => import('@pages/uaa/sys-user-grid-view/sys-user-grid-view.vue'),
},
{
path: 'sys_user_roleredirectview/:sys_user_roleredirectview?',
......@@ -568,7 +568,7 @@ const router = new Router({
],
requireAuth: true,
},
component: () => import('@pages/uaa/sys-rolegrid-view/sys-rolegrid-view.vue'),
component: () => import('@pages/uaa/sys-role-grid-view/sys-role-grid-view.vue'),
},
{
path: '/sysapps/:sysapp?/gridview/:gridview?',
......@@ -594,7 +594,7 @@ const router = new Router({
],
requireAuth: true,
},
component: () => import('@pages/uaa/sys-usergrid-view/sys-usergrid-view.vue'),
component: () => import('@pages/uaa/sys-user-grid-view/sys-user-grid-view.vue'),
},
{
path: '/sysroles/:sysrole?/mpickupview/:mpickupview?',
......
.sys-role-grid-view{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import SysRoleGridViewBase from './sys-role-grid-view-base.vue';
import view_grid from '@widgets/sys-role/main-grid/main-grid.vue';
import view_searchform from '@widgets/sys-role/default-searchform/default-searchform.vue';
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
if(!Object.is(vm.navModel,"route")){
vm.initNavDataWithTab(vm.viewCacheData);
}
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
})
export default class SysRoleGridView extends SysRoleGridViewBase {
}
</script>
\ No newline at end of file
.sys-user-grid-view{
position: relative;
}
.toolbar-container {
button {
margin: 6px 0px 4px 4px;
.caption {
margin-left: 4px;
}
}
.seperator {
color: #dcdee2;
margin: 0 0px 0 4px;
}
}
// this is less
<script lang='tsx'>
import { Component } from 'vue-property-decorator';
import SysUserGridViewBase from './sys-user-grid-view-base.vue';
import view_grid from '@widgets/sys-user/main-grid/main-grid.vue';
import view_searchform from '@widgets/sys-user/default-searchform/default-searchform.vue';
@Component({
components: {
view_grid,
view_searchform,
},
beforeRouteEnter: (to: any, from: any, next: any) => {
next((vm: any) => {
if(!Object.is(vm.navModel,"route")){
vm.initNavDataWithTab(vm.viewCacheData);
}
vm.$store.commit('addCurPageViewtag', { fullPath: to.fullPath, viewtag: vm.viewtag });
});
},
})
export default class SysUserGridView extends SysUserGridViewBase {
}
</script>
\ No newline at end of file
......@@ -278,7 +278,7 @@ export const viewstate: any = {
{
viewtag: '9e9a67908b3c85516085fe19e3dd4113',
viewmodule: 'uaa',
viewname: 'SYS_ROLEGridView',
viewname: 'SysRoleGridView',
viewaction: '',
viewdatachange: false,
refviews: [
......@@ -328,7 +328,7 @@ export const viewstate: any = {
{
viewtag: 'cb64b5009e70f225a91046314f40977a',
viewmodule: 'uaa',
viewname: 'SYS_USERGridView',
viewname: 'SysUserGridView',
viewaction: '',
viewdatachange: false,
refviews: [
......
......@@ -104,7 +104,7 @@ export default class MainModel {
appfunctag: 'Auto10',
appfuncyype: 'APPVIEW',
openmode: '',
codename: 'sys_rolegridview',
codename: 'sysrolegridview',
deResParameters: [],
routepath: '/index/:index?/sysroles/:sysrole?/gridview/:gridview?',
parameters: [
......@@ -116,7 +116,7 @@ export default class MainModel {
appfunctag: 'Auto5',
appfuncyype: 'APPVIEW',
openmode: '',
codename: 'sys_usergridview',
codename: 'sysusergridview',
deResParameters: [],
routepath: '/index/:index?/sysusers/:sysuser?/gridview/:gridview?',
parameters: [
......
......@@ -181,7 +181,7 @@ export default class ControlService {
let dataItems: any[] = model.getDataItems();
dataItems.forEach(dataitem => {
let val = data.hasOwnProperty(dataitem.prop) ? data[dataitem.prop] : null;
if (!val) {
if (val === null) {
val = data.hasOwnProperty(dataitem.name) ? data[dataitem.name] : null;
}
if((isCreate === undefined || isCreate === null ) && Object.is(dataitem.dataType, 'GUID') && Object.is(dataitem.name, 'srfkey') && (val && !Object.is(val, ''))){
......
......@@ -591,7 +591,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图搜索表单loadAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图搜索表单loadAction参数未配置' });
return;
}
const arg: any = { ...opt };
......@@ -628,7 +628,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图搜索表单loaddraftAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图搜索表单loaddraftAction参数未配置' });
return;
}
const arg: any = { ...opt } ;
......
......@@ -675,7 +675,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}, pageReset: boolean = false): void {
if(!this.fetchAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图表格fetchAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图表格fetchAction参数未配置' });
return;
}
if(pageReset){
......@@ -752,7 +752,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图表格removeAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图表格removeAction参数未配置' });
return;
}
let _datas:any[] = [];
......@@ -858,7 +858,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public addBatch(arg: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图表格fetchAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图表格fetchAction参数未配置' });
return;
}
if(!arg){
......@@ -1407,7 +1407,7 @@ export default class MainBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图表格createAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图表格createAction参数未配置' });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -1415,7 +1415,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图表格updateAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图表格updateAction参数未配置' });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.sysrole){
......@@ -1452,7 +1452,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'SYS_ROLEGridView视图表格loaddraftAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysRoleGridView视图表格loaddraftAction参数未配置' });
return;
}
let _this = this;
......
......@@ -675,7 +675,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}): void {
if(!this.loadAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图搜索表单loadAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图搜索表单loadAction参数未配置' });
return;
}
const arg: any = { ...opt };
......@@ -712,7 +712,7 @@ export default class DefaultBase extends Vue implements ControlInterface {
*/
public loadDraft(opt: any = {},mode?:string): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图搜索表单loaddraftAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图搜索表单loaddraftAction参数未配置' });
return;
}
const arg: any = { ...opt } ;
......
......@@ -715,7 +715,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public load(opt: any = {}, pageReset: boolean = false): void {
if(!this.fetchAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图表格fetchAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图表格fetchAction参数未配置' });
return;
}
if(pageReset){
......@@ -792,7 +792,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public async remove(datas: any[]): Promise<any> {
if(!this.removeAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图表格removeAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图表格removeAction参数未配置' });
return;
}
let _datas:any[] = [];
......@@ -898,7 +898,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public addBatch(arg: any = {}): void {
if(!this.fetchAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图表格fetchAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图表格fetchAction参数未配置' });
return;
}
if(!arg){
......@@ -1447,7 +1447,7 @@ export default class MainBase extends Vue implements ControlInterface {
try {
if(Object.is(item.rowDataState, 'create')){
if(!this.createAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图表格createAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图表格createAction参数未配置' });
}else{
Object.assign(item,{viewparams:this.viewparams});
let response = await this.service.add(this.createAction, JSON.parse(JSON.stringify(this.context)),item, this.showBusyIndicator);
......@@ -1455,7 +1455,7 @@ export default class MainBase extends Vue implements ControlInterface {
}
}else if(Object.is(item.rowDataState, 'update')){
if(!this.updateAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图表格updateAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图表格updateAction参数未配置' });
}else{
Object.assign(item,{viewparams:this.viewparams});
if(item.sysuser){
......@@ -1492,7 +1492,7 @@ export default class MainBase extends Vue implements ControlInterface {
*/
public newRow(args: any[], params?: any, $event?: any, xData?: any): void {
if(!this.loaddraftAction){
this.$Notice.error({ title: '错误', desc: 'SYS_USERGridView视图表格loaddraftAction参数未配置' });
this.$Notice.error({ title: '错误', desc: 'SysUserGridView视图表格loaddraftAction参数未配置' });
return;
}
let _this = this;
......
<?xml version="1.1" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd">
<!--输出实体[SYS_AUTHLOG]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_authlog-38-1">
<createTable tableName="IBZAUTHLOG">
<column name="LOGID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_AUTHLOG_LOGID"/>
</column>
<column name="USERNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="PERSONNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="DOMAIN" remarks="" type="VARCHAR(100)">
</column>
<column name="AUTHTIME" remarks="" type="DATETIME">
</column>
<column name="IPADDR" remarks="" type="VARCHAR(100)">
</column>
<column name="MACADDR" remarks="" type="VARCHAR(100)">
</column>
<column name="USERAGENT" remarks="" type="VARCHAR(100)">
</column>
<column name="AUTHCODE" remarks="" type="VARCHAR(15)">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_ROLE_PERMISSION]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_role_permission-93-2">
<createTable tableName="IBZROLE_PERMISSION">
<column name="SYS_ROLE_PERMISSIONID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_ROLE_PERMISSION_SYS_ROL"/>
</column>
<column name="SYS_ROLEID" remarks="" type="VARCHAR(100)">
</column>
<column name="SYS_PERMISSIONID" remarks="" type="VARCHAR(200)">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_USER_ROLE]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_user_role-70-3">
<createTable tableName="IBZUSER_ROLE">
<column name="SYS_USER_ROLEID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_USER_ROLE_SYS_USER_ROLE"/>
</column>
<column name="SYS_ROLEID" remarks="" type="VARCHAR(100)">
</column>
<column name="SYS_USERID" remarks="" type="VARCHAR(100)">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_ROLE]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_role-89-4">
<createTable tableName="IBZROLE">
<column name="SYS_ROLEID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_ROLE_SYS_ROLEID"/>
</column>
<column name="SYS_ROLENAME" remarks="" type="VARCHAR(200)">
</column>
<column name="MEMO" remarks="" type="VARCHAR(100)">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_PSSYSTEM]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_pssystem-39-5">
<createTable tableName="IBZPSSYSTEM">
<column name="PSSYSTEMID" remarks="" type="VARCHAR(100)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_PSSYSTEM_PSSYSTEMID"/>
</column>
<column name="PSSYSTEMNAME" remarks="" type="VARCHAR(100)">
</column>
<column name="SYSSTRUCTURE" remarks="" type="TEXT(1048576)">
</column>
<column name="APPS" remarks="" type="TEXT(1048576)">
</column>
<column name="MD5CHECK" remarks="" type="VARCHAR(100)">
</column>
<column name="SHOWORDER" remarks="" type="INT">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_PERMISSION]数据结构 -->
<changeSet author="a_A_5d9d78509" id="tab-sys_permission-219-6">
<createTable tableName="IBZPERMISSION">
<column name="SYS_PERMISSIONID" remarks="" type="VARCHAR(200)">
<constraints primaryKey="true" primaryKeyName="PK_SYS_PERMISSION_SYS_PERMISSI"/>
</column>
<column name="SYS_PERMISSIONNAME" remarks="" type="VARCHAR(200)">
</column>
<column name="PERMISSIONTYPE" remarks="" type="VARCHAR(60)">
</column>
<column name="PSSYSTEMID" remarks="" type="VARCHAR(100)">
</column>
<column name="ENABLE" remarks="" type="INT">
</column>
<column name="CREATEDATE" remarks="" type="DATETIME">
</column>
<column name="UPDATEDATE" remarks="" type="DATETIME">
</column>
</createTable>
</changeSet>
<!--输出实体[SYS_AUTHLOG]外键关系 -->
<!--输出实体[SYS_ROLE_PERMISSION]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-sys_role_permission-93-7">
<addForeignKeyConstraint baseColumnNames="SYS_PERMISSIONID" baseTableName="IBZROLE_PERMISSION" constraintName="DER1N_SYS_ROLE_PERMISSION_SYS_" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SYS_PERMISSIONID" referencedTableName="IBZPERMISSION" validate="true"/>
</changeSet>
<!--输出实体[SYS_USER_ROLE]外键关系 -->
<changeSet author="a_A_5d9d78509" id="fk-sys_user_role-70-9">
<addForeignKeyConstraint baseColumnNames="SYS_ROLEID" baseTableName="IBZUSER_ROLE" constraintName="DER1N_SYS_USER_ROLE_SYS_ROLE_S" deferrable="false" initiallyDeferred="false" onDelete="RESTRICT" onUpdate="RESTRICT" referencedColumnNames="SYS_ROLEID" referencedTableName="IBZROLE" validate="true"/>
</changeSet>
<!--输出实体[SYS_ROLE]外键关系 -->
<!--输出实体[SYS_PSSYSTEM]外键关系 -->
<!--输出实体[SYS_PERMISSION]外键关系 -->
</databaseChangeLog>
!!!!模版产生代码错误:----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: ${dbinst.getUserName()} [in template "CODETEMPL_zh_CN" at line 28, column 24]
----
\ No newline at end of file
......@@ -29,7 +29,7 @@
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.PASSWORD, t1.PERSONNAME, t1.USERID, t1.USERNAME FROM IBZUSER t1
<![CDATA[ SELECT t1.ADDR, t1.AVATAR, t1.BCODE, t1.BIRTHDAY, t1.CERTCODE, t1.DOMAINS, t1.EMAIL, t1.FONTSIZE, t1.LANG, t1.LOGINNAME, t1.MDEPTCODE, t1.MDEPTID, t1.MDEPTNAME, t1.MEMO, t1.NICKNAME, t1.ORGCODE, t1.ORGID, t1.ORGNAME, t1.PASSWORD, t1.PERSONNAME, t1.PHONE, t1.POSTCODE, t1.POSTID, t1.POSTNAME, t1.RESERVER, t1.SEX, t1.SUPERUSER, t1.THEME, t1.USERCODE, t1.USERICON, t1.USERID, t1.USERNAME FROM IBZUSER t1
]]>
</sql>
<!--数据查询[Default]-->
......
......@@ -51,7 +51,7 @@
</sql>
<!--数据查询[Default]-->
<sql id="Default" databaseId="oracle">
<![CDATA[ SELECT t1.CREATEDATE, t1.SYS_ROLEID, t11.SYS_ROLENAME, t1.SYS_USERID, t21.PERSONNAME AS SYS_USERNAME, t1.SYS_USER_ROLEID, t1.UPDATEDATE FROM IBZUSER_ROLE t1 LEFT JOIN IBZROLE t11 ON t1.SYS_ROLEID = t11.SYS_ROLEID LEFT JOIN IBZUSER t21 ON t1.SYS_USERID = t21.USERID
<![CDATA[ SELECT t1.CREATEDATE, t21.LOGINNAME, t21.MDEPTNAME, t21.ORGNAME, t1.SYS_ROLEID, t11.SYS_ROLENAME, t1.SYS_USERID, t21.PERSONNAME AS SYS_USERNAME, t1.SYS_USER_ROLEID, t1.UPDATEDATE FROM IBZUSER_ROLE t1 LEFT JOIN IBZROLE t11 ON t1.SYS_ROLEID = t11.SYS_ROLEID LEFT JOIN IBZUSER t21 ON t1.SYS_USERID = t21.USERID
]]>
</sql>
<!--数据查询[Default]-->
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册