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

ibiz4j 发布系统代码

上级 677388da
# 系统概览 iBiz4j Spring R7 dev
## 前言
### 1. 简介
该web应用是基于iBiz平台提供的一套PC端前端解决方案Vue_R7【**一套基于Vue全家桶(Vue + Vue-router + Vuex)的前端框架**】生产而成,Vue_R7不仅适用于管理后台或管理系统开发,且广泛适用于B/S架构的项目开发。本文档主要介绍项目如何快速上手,成果物代码结构做一阐述,旨在能够为开发人员提供一定开发指导支持。而今框架开源,希望能有更多志同道合的伙伴参与Vue_R7的迭代 ^_^
### 2. 开发环境要求
- Node.js
- Yarn
- Vue Cli
### 3. 开发技术要求
掌握`Vue``TypeScript``less``html`等技术。
### 4. 技术栈
- 前端MVVM框架:vue.js 2.6.10
- 路由:vue-router 3.1.3
- 状态管理:vue-router 3.1.3
- 国际化:vue-i18n 8.15.3
- 数据交互:axios 0.19.1
- UI框架:element-ui 2.13.0, view-design 4.1.0
- 工具库:qs, path-to-regexp, rxjs
- 图标库:font-awesome 4.7.0
- 引入组件: tinymce 4.8.5
- 代码风格检测:eslint
## 快速上手
### 1. 开发环境
> 在安装使用 `Yarn` 和 `Vue Cli (3.0)` 前,务必确认 [Node.js](https://nodejs.org) 已经升级到 v4.8.0 或以上,强烈建议升级至最新版本。
> 如果你想了解更多 `Yarn` 工具链的功能和命令,建议访问 [Yarn](https://yarnpkg.com) 了解更多。
> 如果你想了解更多 `Vue Cli (3.0)` 工具链的功能和命令,建议访问 [Vue Cli (3.0)](https://cli.vuejs.org/) 了解更多。
- 访问 [Node.js](https://nodejs.org) ,根据文档安装 `Node.js`
- 访问 [Yarn](https://yarnpkg.com) ,根据文档安装 `Yarn`
- 访问 [Vue Cli (3.0)](https://cli.vuejs.org/) ,根据文档安装 `Vue Cli (3.0)`
<blockquote style="border-color: red;"><p>在安装 Vue Cli (3.0) ,请使用 Yarn 模式全局安装。</p></blockquote>
```bash
$ yarn global add @vue/cli
```
以下为 Windows 环境开发正常配置
<br>
<br>
![开发环境信息](./imgs/getting-started/development.png)
### 2. 安装依赖
打开前端项目,进入工作空间下,执行安装依赖命令
```bash
$ yarn install
```
### 3. 启动
在工作空间下,执行启动命令
```bash
$ yarn dev-serve
```
启动后,通过 vue.config.js 开发服务 devServer 下配置的本地启动端口号访问开发项目。<br>
示例:
```bash
$ http://localhost:8111
```
这儿需要注意一点,此时启动的项目访问的数据是我们前端的mock数据,如需与后台直接交互,请看第4点。
### 4. 远程代理
在工作空间下,执行启动命令
```bash
$ yarn serve
```
修改远程代理文件 vue.config.js 代理地址
![远程代理地址](./imgs/getting-started/proxy.png)
### 5. 打包
在工作空间下,执行打包命令
```bash
$ yarn build
```
打包完成,生成最终交付产物。
## 成果物结构
```
|─ ─ app_web
​ |─ ─ public public文件夹
​ |─ ─ assets 静态文件夹
|─ ─ favicon.ico 图标
​ |─ ─ src 工程文件夹
|─ ─ assets 静态资源
|─ ─ codelist 动态代码表服务
|─ ─ components 基础组件,主要包含编辑器组件和其他全局使用的组件
|─ ─ counter 计数器服务
|─ ─ engine 引擎文件,主要封装了内置视图的内置逻辑
|─ ─ environments 环境文件
​ |─ ─ interface 接口文件
​ |─ ─ locale 多语言文件
|─ ─ mock 模拟数据
|─ ─ pages 视图文件夹
|─ ─ module 模块名称
​ |─ ─ XXX-view 视图文件夹
|─ ─ XXX-view-base.vue 视图基类
|─ ─ XXX-view.vue 自定义视图文件
|─ ─ XXX-view.less 自定义视图样式文件
​ |─ ─ main.ts 应用主函数入口
​ |─ ─ page-register.ts 全局视图注册
​ |─ ─ router.ts 路由配置文件
|─ ─ service 应用实体数据服务文件夹
|─ ─ XXX 应用实体名称
|─ ─ XXX-service-base.ts 应用实体数据服务文件
|─ ─ XXX-service.ts 自定义应用实体数据服务文件
|─ ─ YYY-logic-base.ts 应用实体数据处理逻辑文件
|─ ─ YYY-logic.ts 自定义应用实体数据处理逻辑文件
|─ ─ store 全局状态管理
|─ ─ styles 样式文件夹
|─ ─ default.less 默认样式
|─ ─ user.less 用户自定义样式
|─ ─ theme 主题文件夹
|─ ─ uiservice 界面服务文件
|─ ─ XXX 应用实体名称
|─ ─ XXX-ui-service-base.ts 应用实体界面服务文件
|─ ─ XXX-ui-service.ts 自定义应用实体界面服务文件
|─ ─ YYY-ui-logic-base.ts 应用实体界面处理逻辑文件
|─ ─ YYY-ui-logic.ts 自定义应用实体界面处理逻辑文件
|─ ─ utils 工具类文件
|─ ─ utilservice 应用功能服务
|─ ─ widgets 部件文件夹
|─ ─ appde 应用实体名称
​ |─ ─ XXX 部件名称
|─ ─ XXX-base.vue 视图基类
|─ ─ XXX.vue 自定义部件文件
|─ ─ XXX.less 部件样式文件
​ |─ ─ XXX.model.ts 部件model文件
​ |─ ─ XXX.service.ts 部件服务文件
|─ ─ app-register.ts 公共组件全局注册
​ |─ ─ App.vue 入口组件
​ |─ ─ user-register.ts 自定义组件全局注册
​|─ ─ package.json 依赖管理文件
​ |─ ─ vue.config.js vue cli 配置
```
## 如何贡献
如果你希望参与贡献,欢迎 [Pull Request](<http://demo.ibizlab.cn/ibiz_r7/vue_r7/issues/new>),或通过自助服务群给我们报告 Bug。
强烈推荐阅读 [《提问的智慧》](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way)(本指南不提供此项目的实际支持服务!)[《如何向开源社区提问题》](https://github.com/seajs/seajs/issues/545)[《如何有效地报告 Bug》](https://www.chiark.greenend.org.uk/~sgtatham/bugs-cn.html)[《如何向开源项目提交无法解答的问题》](https://zhuanlan.zhihu.com/p/25795393),更好的问题更容易获得帮助。
## 社区互助
1.[iBizLab论坛](https://bbs.ibizlab.cn/)
2.加入钉钉 Vue_R7自助服务群(中文)
<img src="./imgs/getting-started/vue-r7-group.png" height="400" width="400">
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>ibzlite</artifactId>
<groupId>cn.ibizlab</groupId>
<version>1.0.0.0</version>
</parent>
<artifactId>ibzlite-web</artifactId>
<name>Ibzlite web</name>
<description>Ibzlite web</description>
<dependencies>
</dependencies>
</project>
[
{
"srfkey": "YesNo",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
"id": "1",
"label": "是",
"text": "是",
"class":"",
"data":"",
"codename":"Item_1",
"value": "1",
"disabled": false
}
, {
"id": "0",
"label": "否",
"text": "否",
"class":"",
"data":"",
"codename":"Item_0",
"value": "0",
"disabled": false
}
]
},
{
"srfkey": "ComponentType",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
"id": "DynamicForm",
"label": "动态表单",
"text": "动态表单",
"class":"",
"data":"",
"codename":"Dynamicform",
"value": "DynamicForm",
"disabled": false
}
, {
"id": "DynamicSubForm",
"label": "动态子表单",
"text": "动态子表单",
"class":"",
"data":"",
"codename":"Dynamicsubform",
"value": "DynamicSubForm",
"disabled": false
}
, {
"id": "DynamicGrid",
"label": "动态表格",
"text": "动态表格",
"class":"",
"data":"",
"codename":"Dynamicgrid",
"value": "DynamicGrid",
"disabled": false
}
]
},
{
"srfkey": "DstAppList",
"emptytext": "未定义",
"codelisttype":"dynamic",
"appdataentity":"DstApp",
"appdedataset":"FetchDefault",
"items": []
},
{
"srfkey": "AppType",
"emptytext": "未定义",
"codelisttype":"static",
"items": [
{
"id": "INNER",
"label": "内置应用",
"text": "内置应用",
"class":"",
"data":"",
"codename":"Inner",
"value": "INNER",
"disabled": false
}
, {
"id": "THIRD-PARTY",
"label": "第三方应用",
"text": "第三方应用",
"class":"",
"data":"",
"codename":"Third_SUB_party",
"value": "THIRD-PARTY",
"disabled": false
}
]
},
{
"srfkey": "DstSystemList",
"emptytext": "未定义",
"codelisttype":"dynamic",
"appdataentity":"DstSystem",
"appdedataset":"FetchDefault",
"items": []
}
]
\ No newline at end of file
此差异已折叠。
/**
* 实体权限服务注册中心
*
* @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('dstmicroservice', () => import('@/authservice/dst-microservice/dst-microservice-auth-service'));
this.allAuthService.set('metafield', () => import('@/authservice/meta-field/meta-field-auth-service'));
this.allAuthService.set('dstapp', () => import('@/authservice/dst-app/dst-app-auth-service'));
this.allAuthService.set('dstcomponent', () => import('@/authservice/dst-component/dst-component-auth-service'));
this.allAuthService.set('metadataset', () => import('@/authservice/meta-data-set/meta-data-set-auth-service'));
this.allAuthService.set('dstview', () => import('@/authservice/dst-view/dst-view-auth-service'));
this.allAuthService.set('dstapi', () => import('@/authservice/dst-api/dst-api-auth-service'));
this.allAuthService.set('dstrouter', () => import('@/authservice/dst-router/dst-router-auth-service'));
this.allAuthService.set('dstconfig', () => import('@/authservice/dst-config/dst-config-auth-service'));
this.allAuthService.set('metamodel', () => import('@/authservice/meta-model/meta-model-auth-service'));
this.allAuthService.set('metamodule', () => import('@/authservice/meta-module/meta-module-auth-service'));
this.allAuthService.set('dstdatasource', () => import('@/authservice/dst-data-source/dst-data-source-auth-service'));
this.allAuthService.set('dstsystem', () => import('@/authservice/dst-system/dst-system-auth-service'));
this.allAuthService.set('metarelationship', () => import('@/authservice/meta-relationship/meta-relationship-auth-service'));
this.allAuthService.set('metaentity', () => import('@/authservice/meta-entity/meta-entity-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 '@/store';
/**
* 实体权限服务
*
* @export
* @class AuthService
*/
export default class AuthService {
/**
* Vue 状态管理器
*
* @public
* @type {(any | null)}
* @memberof AuthService
*/
public $store: any;
/**
* 系统操作标识映射统一资源Map
*
* @public
* @type {Map<string,any>}
* @memberof AuthService
*/
public sysOPPrivsMap:Map<string,any> = new Map();
/**
* 默认操作标识
*
* @public
* @type {(any)}
* @memberof AuthService
*/
public defaultOPPrivs: any = {CREATE: 1,DELETE: 1,DENY: 1,NONE: 1,READ: 1,UPDATE: 1,WFSTART: 1};
/**
* Creates an instance of AuthService.
*
* @param {*} [opts={}]
* @memberof AuthService
*/
constructor(opts: any = {}) {
this.$store = store;
this.registerSysOPPrivs();
}
/**
* 获取状态管理器
*
* @returns {(any | null)}
* @memberof AuthService
*/
public getStore(): any {
return this.$store;
}
/**
* 获取计算统一资源之后的系统操作标识
*
* @returns {}
* @memberof AuthService
*/
public getSysOPPrivs(){
let copySysOPPrivs:any = JSON.parse(JSON.stringify(this.defaultOPPrivs));
if(Object.keys(copySysOPPrivs).length === 0) return {};
Object.keys(copySysOPPrivs).forEach((name:any) =>{
if(this.sysOPPrivsMap.get(name)){
copySysOPPrivs[name] = this.getResourcePermission(this.sysOPPrivsMap.get(name))?1:0;
}
})
return copySysOPPrivs;
}
/**
* 获取实体权限服务
*
* @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 registerSysOPPrivs(){
}
/**
* 根据当前数据获取实体操作标识
*
* @param {string} name 实体名称
* @returns {any}
* @memberof AuthService
*/
public getOPPrivs(data: any): any {
return null;
}
/**
* 根据菜单项获取菜单权限
*
* @param {*} item 菜单标识
* @returns {boolean}
* @memberof AuthService
*/
public getMenusPermission(item: any): boolean {
if(!this.$store.getters['authresource/getEnablePermissionValid']) {
return true;
}
return this.$store.getters['authresource/getAuthMenu'](item);
}
/**
* 根据统一资源标识获取统一资源权限
*
* @param {*} tag 统一资源标识
* @returns {boolean}
* @memberof AuthService
*/
public getResourcePermission(tag: any): boolean {
if(!this.$store.getters['authresource/getEnablePermissionValid']) {
return true;
}
return this.$store.getters['authresource/getResourceData'](tag);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 接口权限服务对象基类
*
* @export
* @class DstAPIAuthServiceBase
* @extends {AuthService}
*/
export default class DstAPIAuthServiceBase extends AuthService {
/**
* Creates an instance of DstAPIAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstAPIAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstAPIAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstAPIAuthServiceBase from './dst-api-auth-service-base';
/**
* 接口权限服务对象
*
* @export
* @class DstAPIAuthService
* @extends {DstAPIAuthServiceBase}
*/
export default class DstAPIAuthService extends DstAPIAuthServiceBase {
/**
* Creates an instance of DstAPIAuthService.
*
* @param {*} [opts={}]
* @memberof DstAPIAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 应用权限服务对象基类
*
* @export
* @class DstAppAuthServiceBase
* @extends {AuthService}
*/
export default class DstAppAuthServiceBase extends AuthService {
/**
* Creates an instance of DstAppAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstAppAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstAppAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstAppAuthServiceBase from './dst-app-auth-service-base';
/**
* 应用权限服务对象
*
* @export
* @class DstAppAuthService
* @extends {DstAppAuthServiceBase}
*/
export default class DstAppAuthService extends DstAppAuthServiceBase {
/**
* Creates an instance of DstAppAuthService.
*
* @param {*} [opts={}]
* @memberof DstAppAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 组件权限服务对象基类
*
* @export
* @class DstComponentAuthServiceBase
* @extends {AuthService}
*/
export default class DstComponentAuthServiceBase extends AuthService {
/**
* Creates an instance of DstComponentAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstComponentAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstComponentAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstComponentAuthServiceBase from './dst-component-auth-service-base';
/**
* 组件权限服务对象
*
* @export
* @class DstComponentAuthService
* @extends {DstComponentAuthServiceBase}
*/
export default class DstComponentAuthService extends DstComponentAuthServiceBase {
/**
* Creates an instance of DstComponentAuthService.
*
* @param {*} [opts={}]
* @memberof DstComponentAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 配置权限服务对象基类
*
* @export
* @class DstConfigAuthServiceBase
* @extends {AuthService}
*/
export default class DstConfigAuthServiceBase extends AuthService {
/**
* Creates an instance of DstConfigAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstConfigAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstConfigAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstConfigAuthServiceBase from './dst-config-auth-service-base';
/**
* 配置权限服务对象
*
* @export
* @class DstConfigAuthService
* @extends {DstConfigAuthServiceBase}
*/
export default class DstConfigAuthService extends DstConfigAuthServiceBase {
/**
* Creates an instance of DstConfigAuthService.
*
* @param {*} [opts={}]
* @memberof DstConfigAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 数据源权限服务对象基类
*
* @export
* @class DstDataSourceAuthServiceBase
* @extends {AuthService}
*/
export default class DstDataSourceAuthServiceBase extends AuthService {
/**
* Creates an instance of DstDataSourceAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstDataSourceAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstDataSourceAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstDataSourceAuthServiceBase from './dst-data-source-auth-service-base';
/**
* 数据源权限服务对象
*
* @export
* @class DstDataSourceAuthService
* @extends {DstDataSourceAuthServiceBase}
*/
export default class DstDataSourceAuthService extends DstDataSourceAuthServiceBase {
/**
* Creates an instance of DstDataSourceAuthService.
*
* @param {*} [opts={}]
* @memberof DstDataSourceAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 微服务权限服务对象基类
*
* @export
* @class DstMicroserviceAuthServiceBase
* @extends {AuthService}
*/
export default class DstMicroserviceAuthServiceBase extends AuthService {
/**
* Creates an instance of DstMicroserviceAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstMicroserviceAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstMicroserviceAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstMicroserviceAuthServiceBase from './dst-microservice-auth-service-base';
/**
* 微服务权限服务对象
*
* @export
* @class DstMicroserviceAuthService
* @extends {DstMicroserviceAuthServiceBase}
*/
export default class DstMicroserviceAuthService extends DstMicroserviceAuthServiceBase {
/**
* Creates an instance of DstMicroserviceAuthService.
*
* @param {*} [opts={}]
* @memberof DstMicroserviceAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 路由权限服务对象基类
*
* @export
* @class DstRouterAuthServiceBase
* @extends {AuthService}
*/
export default class DstRouterAuthServiceBase extends AuthService {
/**
* Creates an instance of DstRouterAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstRouterAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstRouterAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstRouterAuthServiceBase from './dst-router-auth-service-base';
/**
* 路由权限服务对象
*
* @export
* @class DstRouterAuthService
* @extends {DstRouterAuthServiceBase}
*/
export default class DstRouterAuthService extends DstRouterAuthServiceBase {
/**
* Creates an instance of DstRouterAuthService.
*
* @param {*} [opts={}]
* @memberof DstRouterAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 系统权限服务对象基类
*
* @export
* @class DstSystemAuthServiceBase
* @extends {AuthService}
*/
export default class DstSystemAuthServiceBase extends AuthService {
/**
* Creates an instance of DstSystemAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstSystemAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstSystemAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstSystemAuthServiceBase from './dst-system-auth-service-base';
/**
* 系统权限服务对象
*
* @export
* @class DstSystemAuthService
* @extends {DstSystemAuthServiceBase}
*/
export default class DstSystemAuthService extends DstSystemAuthServiceBase {
/**
* Creates an instance of DstSystemAuthService.
*
* @param {*} [opts={}]
* @memberof DstSystemAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 页面权限服务对象基类
*
* @export
* @class DstViewAuthServiceBase
* @extends {AuthService}
*/
export default class DstViewAuthServiceBase extends AuthService {
/**
* Creates an instance of DstViewAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof DstViewAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof DstViewAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import DstViewAuthServiceBase from './dst-view-auth-service-base';
/**
* 页面权限服务对象
*
* @export
* @class DstViewAuthService
* @extends {DstViewAuthServiceBase}
*/
export default class DstViewAuthService extends DstViewAuthServiceBase {
/**
* Creates an instance of DstViewAuthService.
*
* @param {*} [opts={}]
* @memberof DstViewAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 数据集权限服务对象基类
*
* @export
* @class MetaDataSetAuthServiceBase
* @extends {AuthService}
*/
export default class MetaDataSetAuthServiceBase extends AuthService {
/**
* Creates an instance of MetaDataSetAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof MetaDataSetAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof MetaDataSetAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import MetaDataSetAuthServiceBase from './meta-data-set-auth-service-base';
/**
* 数据集权限服务对象
*
* @export
* @class MetaDataSetAuthService
* @extends {MetaDataSetAuthServiceBase}
*/
export default class MetaDataSetAuthService extends MetaDataSetAuthServiceBase {
/**
* Creates an instance of MetaDataSetAuthService.
*
* @param {*} [opts={}]
* @memberof MetaDataSetAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 实体权限服务对象基类
*
* @export
* @class MetaEntityAuthServiceBase
* @extends {AuthService}
*/
export default class MetaEntityAuthServiceBase extends AuthService {
/**
* Creates an instance of MetaEntityAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof MetaEntityAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof MetaEntityAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import MetaEntityAuthServiceBase from './meta-entity-auth-service-base';
/**
* 实体权限服务对象
*
* @export
* @class MetaEntityAuthService
* @extends {MetaEntityAuthServiceBase}
*/
export default class MetaEntityAuthService extends MetaEntityAuthServiceBase {
/**
* Creates an instance of MetaEntityAuthService.
*
* @param {*} [opts={}]
* @memberof MetaEntityAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 属性权限服务对象基类
*
* @export
* @class MetaFieldAuthServiceBase
* @extends {AuthService}
*/
export default class MetaFieldAuthServiceBase extends AuthService {
/**
* Creates an instance of MetaFieldAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof MetaFieldAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof MetaFieldAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import MetaFieldAuthServiceBase from './meta-field-auth-service-base';
/**
* 属性权限服务对象
*
* @export
* @class MetaFieldAuthService
* @extends {MetaFieldAuthServiceBase}
*/
export default class MetaFieldAuthService extends MetaFieldAuthServiceBase {
/**
* Creates an instance of MetaFieldAuthService.
*
* @param {*} [opts={}]
* @memberof MetaFieldAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 模型权限服务对象基类
*
* @export
* @class MetaModelAuthServiceBase
* @extends {AuthService}
*/
export default class MetaModelAuthServiceBase extends AuthService {
/**
* Creates an instance of MetaModelAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof MetaModelAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof MetaModelAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import MetaModelAuthServiceBase from './meta-model-auth-service-base';
/**
* 模型权限服务对象
*
* @export
* @class MetaModelAuthService
* @extends {MetaModelAuthServiceBase}
*/
export default class MetaModelAuthService extends MetaModelAuthServiceBase {
/**
* Creates an instance of MetaModelAuthService.
*
* @param {*} [opts={}]
* @memberof MetaModelAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 模块权限服务对象基类
*
* @export
* @class MetaModuleAuthServiceBase
* @extends {AuthService}
*/
export default class MetaModuleAuthServiceBase extends AuthService {
/**
* Creates an instance of MetaModuleAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof MetaModuleAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof MetaModuleAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import MetaModuleAuthServiceBase from './meta-module-auth-service-base';
/**
* 模块权限服务对象
*
* @export
* @class MetaModuleAuthService
* @extends {MetaModuleAuthServiceBase}
*/
export default class MetaModuleAuthService extends MetaModuleAuthServiceBase {
/**
* Creates an instance of MetaModuleAuthService.
*
* @param {*} [opts={}]
* @memberof MetaModuleAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
import AuthService from '../auth-service';
/**
* 实体关系权限服务对象基类
*
* @export
* @class MetaRelationshipAuthServiceBase
* @extends {AuthService}
*/
export default class MetaRelationshipAuthServiceBase extends AuthService {
/**
* Creates an instance of MetaRelationshipAuthServiceBase.
*
* @param {*} [opts={}]
* @memberof MetaRelationshipAuthServiceBase
*/
constructor(opts: any = {}) {
super(opts);
}
/**
* 根据当前数据获取实体操作标识
*
* @param {*} mainSateOPPrivs 传入数据操作标识
* @returns {any}
* @memberof MetaRelationshipAuthServiceBase
*/
public getOPPrivs(mainSateOPPrivs:any):any{
let curDefaultOPPrivs:any = this.getSysOPPrivs();
let copyDefaultOPPrivs:any = JSON.parse(JSON.stringify(curDefaultOPPrivs));
if(mainSateOPPrivs){
Object.assign(curDefaultOPPrivs,mainSateOPPrivs);
}
// 统一资源优先
Object.keys(curDefaultOPPrivs).forEach((name:string) => {
if(this.sysOPPrivsMap.get(name) && copyDefaultOPPrivs[name] === 0){
curDefaultOPPrivs[name] = copyDefaultOPPrivs[name];
}
});
return curDefaultOPPrivs;
}
}
\ No newline at end of file
import MetaRelationshipAuthServiceBase from './meta-relationship-auth-service-base';
/**
* 实体关系权限服务对象
*
* @export
* @class MetaRelationshipAuthService
* @extends {MetaRelationshipAuthServiceBase}
*/
export default class MetaRelationshipAuthService extends MetaRelationshipAuthServiceBase {
/**
* Creates an instance of MetaRelationshipAuthService.
*
* @param {*} [opts={}]
* @memberof MetaRelationshipAuthService
*/
constructor(opts: any = {}) {
super(opts);
}
}
\ No newline at end of file
/**
* 代码表服务注册中心
*
* @export
* @class CodeListRegister
*/
export class CodeListRegister {
/**
* 所有实体数据服务Map
*
* @protected
* @type {*}
* @memberof CodeListRegister
*/
protected allCodeList: Map<string, () => Promise<any>> = new Map();
/**
* 已加载实体数据服务Map缓存
*
* @protected
* @type {Map<string, any>}
* @memberof CodeListRegister
*/
protected serviceCache: Map<string, any> = new Map();
/**
* Creates an instance of CodeListRegister.
* @memberof CodeListRegister
*/
constructor() {
this.init();
}
/**
* 初始化
*
* @protected
* @memberof CodeListRegister
*/
protected init(): void {
this.allCodeList.set('DstAppList', () => import('@/codelist/dst-app-list'));
this.allCodeList.set('DstSystemList', () => import('@/codelist/dst-system-list'));
}
/**
* 加载实体数据服务
*
* @protected
* @param {string} serviceName
* @returns {Promise<any>}
* @memberof CodeListRegister
*/
protected async loadService(serviceName: string): Promise<any> {
const service = this.allCodeList.get(serviceName);
if (service) {
return service();
}
}
/**
* 获取应用实体数据服务
*
* @param {string} name
* @returns {Promise<any>}
* @memberof CodeListRegister
*/
public async getService(name: string): Promise<any> {
if (this.serviceCache.has(name)) {
return this.serviceCache.get(name);
}
const CodeList: any = await this.loadService(name);
if (CodeList && CodeList.default) {
const instance: any = new CodeList.default();
this.serviceCache.set(name, instance);
return instance;
}
}
}
export const codeListRegister: CodeListRegister = new CodeListRegister();
\ No newline at end of file
import DstAppService from '@service/dst-app/dst-app-service';
/**
* 代码表--DstAppList
*
* @export
* @class DstAppList
*/
export default class DstAppList {
/**
* 是否启用缓存
*
* @type boolean
* @memberof DstAppList
*/
public isEnableCache:boolean = true;
/**
* 过期时间
*
* @type any
* @memberof DstAppList
*/
public static expirationTime:any;
/**
* 预定义类型
*
* @type string
* @memberof DstAppList
*/
public predefinedType:string ='';
/**
* 缓存超长时长
*
* @type any
* @memberof DstAppList
*/
public cacheTimeout:any = -1;
/**
* 代码表模型对象
*
* @type any
* @memberof DstAppList
*/
public codelistModel:any = {
codelistid:"DstAppList"
};
/**
* 获取过期时间
*
* @type any
* @memberof DstAppList
*/
public getExpirationTime(){
return DstAppList.expirationTime;
}
/**
* 设置过期时间
*
* @type any
* @memberof DstAppList
*/
public setExpirationTime(value:any){
DstAppList.expirationTime = value;
}
/**
* 自定义参数集合
*
* @type any
* @memberof DstAppList
*/
public userParamNames:any ={
}
/**
* 查询参数集合
*
* @type any
* @memberof DstAppList
*/
public queryParamNames:any ={
}
/**
* 应用应用实体服务对象
*
* @type {DstAppService}
* @memberof DstAppList
*/
public dstappService: DstAppService = new DstAppService();
/**
* 处理数据
*
* @public
* @param {any[]} items
* @returns {any[]}
* @memberof DstAppList
*/
public doItems(items: any[]): any[] {
let _items: any[] = [];
if(items && items instanceof Array && items.length >0){
items.forEach((item: any) => {
let itemdata:any = {};
Object.assign(itemdata,{id:item.id});
Object.assign(itemdata,{value:item.id});
Object.assign(itemdata,{text:item.id});
Object.assign(itemdata,{label:item.id});
_items.push(itemdata);
});
}
return _items;
}
/**
* 获取数据项
*
* @param {*} context
* @param {*} data
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof DstAppList
*/
public getItems(context: any={}, data: any={}, isloading?: boolean): Promise<any> {
return new Promise((resolve, reject) => {
data = this.handleQueryParam(data);
const promise: Promise<any> = this.dstappService.FetchDefault(context, data, isloading);
promise.then((response: any) => {
if (response && response.status === 200) {
const data = response.data;
resolve(this.doItems(data));
} else {
resolve([]);
}
}).catch((response: any) => {
console.error(response);
reject(response);
});
});
}
/**
* 处理查询参数
* @param data 传入data
* @memberof DstAppList
*/
public handleQueryParam(data:any){
let tempData:any = data?JSON.parse(JSON.stringify(data)):{};
if(this.userParamNames && Object.keys(this.userParamNames).length >0){
Object.keys(this.userParamNames).forEach((name: string) => {
if (!name) {
return;
}
let value: string | null = this.userParamNames[name];
if (value && value.startsWith('%') && value.endsWith('%')) {
const key = value.substring(1, value.length - 1);
if (this.codelistModel && this.codelistModel.hasOwnProperty(key)) {
value = (this.codelistModel[key] !== null && this.codelistModel[key] !== undefined) ? this.codelistModel[key] : null;
} else {
value = null;
}
}
Object.assign(tempData, { [name]: value });
});
}
Object.assign(tempData,{page: 0, size: 1000});
if(this.queryParamNames && Object.keys(this.queryParamNames).length > 0){
Object.assign(tempData,this.queryParamNames);
}
return tempData;
}
}
import DstSystemService from '@service/dst-system/dst-system-service';
/**
* 代码表--DstSystemList
*
* @export
* @class DstSystemList
*/
export default class DstSystemList {
/**
* 是否启用缓存
*
* @type boolean
* @memberof DstSystemList
*/
public isEnableCache:boolean = true;
/**
* 过期时间
*
* @type any
* @memberof DstSystemList
*/
public static expirationTime:any;
/**
* 预定义类型
*
* @type string
* @memberof DstSystemList
*/
public predefinedType:string ='';
/**
* 缓存超长时长
*
* @type any
* @memberof DstSystemList
*/
public cacheTimeout:any = -1;
/**
* 代码表模型对象
*
* @type any
* @memberof DstSystemList
*/
public codelistModel:any = {
codelistid:"DstSystemList"
};
/**
* 获取过期时间
*
* @type any
* @memberof DstSystemList
*/
public getExpirationTime(){
return DstSystemList.expirationTime;
}
/**
* 设置过期时间
*
* @type any
* @memberof DstSystemList
*/
public setExpirationTime(value:any){
DstSystemList.expirationTime = value;
}
/**
* 自定义参数集合
*
* @type any
* @memberof DstSystemList
*/
public userParamNames:any ={
}
/**
* 查询参数集合
*
* @type any
* @memberof DstSystemList
*/
public queryParamNames:any ={
}
/**
* 系统应用实体服务对象
*
* @type {DstSystemService}
* @memberof DstSystemList
*/
public dstsystemService: DstSystemService = new DstSystemService();
/**
* 处理数据
*
* @public
* @param {any[]} items
* @returns {any[]}
* @memberof DstSystemList
*/
public doItems(items: any[]): any[] {
let _items: any[] = [];
if(items && items instanceof Array && items.length >0){
items.forEach((item: any) => {
let itemdata:any = {};
Object.assign(itemdata,{id:item.pssystemid});
Object.assign(itemdata,{value:item.pssystemid});
Object.assign(itemdata,{text:item.pssystemname});
Object.assign(itemdata,{label:item.pssystemname});
_items.push(itemdata);
});
}
return _items;
}
/**
* 获取数据项
*
* @param {*} context
* @param {*} data
* @param {boolean} [isloading]
* @returns {Promise<any>}
* @memberof DstSystemList
*/
public getItems(context: any={}, data: any={}, isloading?: boolean): Promise<any> {
return new Promise((resolve, reject) => {
data = this.handleQueryParam(data);
const promise: Promise<any> = this.dstsystemService.FetchDefault(context, data, isloading);
promise.then((response: any) => {
if (response && response.status === 200) {
const data = response.data;
resolve(this.doItems(data));
} else {
resolve([]);
}
}).catch((response: any) => {
console.error(response);
reject(response);
});
});
}
/**
* 处理查询参数
* @param data 传入data
* @memberof DstSystemList
*/
public handleQueryParam(data:any){
let tempData:any = data?JSON.parse(JSON.stringify(data)):{};
if(this.userParamNames && Object.keys(this.userParamNames).length >0){
Object.keys(this.userParamNames).forEach((name: string) => {
if (!name) {
return;
}
let value: string | null = this.userParamNames[name];
if (value && value.startsWith('%') && value.endsWith('%')) {
const key = value.substring(1, value.length - 1);
if (this.codelistModel && this.codelistModel.hasOwnProperty(key)) {
value = (this.codelistModel[key] !== null && this.codelistModel[key] !== undefined) ? this.codelistModel[key] : null;
} else {
value = null;
}
}
Object.assign(tempData, { [name]: value });
});
}
Object.assign(tempData,{page: 0, size: 1000});
if(this.queryParamNames && Object.keys(this.queryParamNames).length > 0){
Object.assign(tempData,this.queryParamNames);
}
return tempData;
}
}
/**
* 计数器服务注册中心
*
* @export
* @class CounterServiceRegister
*/
export class CounterServiceRegister {
/**
* 所有计数器服务Map
*
* @protected
* @type {*}
* @memberof CounterServiceRegister
*/
protected allCounterService: Map<string, () => Promise<any>> = new Map();
/**
* 已加载计数器服务Map缓存
*
* @protected
* @type {Map<string, any>}
* @memberof CounterServiceRegister
*/
protected serviceCache: Map<string, any> = new Map();
/**
* Creates an instance of CounterServiceRegister.
* @memberof CounterServiceRegister
*/
constructor() {
this.init();
}
/**
* 初始化
*
* @protected
* @memberof CounterServiceRegister
*/
protected init(): void {
}
/**
* 加载计数器服务
*
* @protected
* @param {string} serviceName
* @returns {Promise<any>}
* @memberof CounterServiceRegister
*/
protected async loadService(serviceName: string): Promise<any> {
const service = this.allCounterService.get(serviceName);
if (service) {
return service();
}
}
/**
* 获取计数器服务
*
* @param {string} name
* @returns {Promise<any>}
* @memberof CounterServiceRegister
*/
public async getService(name: string): Promise<any> {
if (this.serviceCache.has(name)) {
return this.serviceCache.get(name);
}
const entityService: any = await this.loadService(name);
if (entityService && entityService.default) {
const instance: any = new entityService.default();
this.serviceCache.set(name, instance);
return instance;
}
}
}
export const counterServiceRegister: CounterServiceRegister = new CounterServiceRegister();
\ No newline at end of file
export const Environment = {
// 原型示例数模式
SampleMode: false,
// 应用名称
AppName: 'web',
// 应用 title
AppTitle: '应用',
// 应用基础路径
BaseUrl: '',
// 系统名称
SysName: 'ibzlite',
// 远程登录地址,本地开发调试使用
RemoteLogin: '/ibizutil/login',
// 文件导出
ExportFile: '/ibizutil/download',
// 文件上传
UploadFile: '/ibizutil/upload',
// 数据导入单次上传最大数量
sliceUploadCnt: 100,
// 是否为pc端应用
isAppMode:true,
//统一地址
uniteAddress:"http://172.16.100.202:8114",
// 是否为开发模式
devMode: true,
// 是否开启权限认证
enablePermissionValid:false,
// 项目模板地址
ProjectUrl: "http://demo.ibizlab.cn/ibizr7pfstdtempl/ibizvuer7",
// 打开目标工具,可选参数:sln、mos
debugOpenMode:'mos',
// 配置平台地址
StudioUrl: "http://172.16.170.145/mos/",
// 中心标识
SlnId: "B4BF5C84-D020-4D9A-A986-8FA4FD72816C",
// 系统标识
SysId: "B428B5BE-EA90-4101-A493-BA7085D89F0A",
// 前端应用标识
AppId: "6e0b7357169ef4eba84e1347ed94bd84",
// 项目发布文件地址
PublishProjectUrl: 'http://oauth2:cTux_e7Aoz1PrasP5dDq@demo.ibizlab.cn/ibiz4jteam/ibzlite.git',
// ibiz开放平台地址
ibizlabtUrl: 'https://www.ibizlab.cn',
// ibiz论坛地址
ibizbbstUrl: 'https://bbs.ibizlab.cn',
};
// 挂载外部配置文件
if ((window as any).Environment) {
Object.assign(Environment, (window as any).Environment);
}
\ No newline at end of file
import Vue from 'vue'
import VueI18n from 'vue-i18n'
const vueApp: any = Vue;
vueApp.use(VueI18n);
import zhCn from './lang/zh-CN';
import iviewZhCnLocale from 'view-design/dist/locale/zh-CN';
import elementZhLocale from 'element-ui/lib/locale/lang/zh-CN';
const messages = {
'zh-CN': Object.assign(iviewZhCnLocale, elementZhLocale, zhCn),
};
// 自动根据浏览器系统语言设置语言
const navLang = localStorage.getItem('local') || navigator.language;
const localLang = (navLang === 'zh-CN' || (navLang === 'en-US' && messages.hasOwnProperty('en-US'))) ? navLang : false;
let lang: string = localLang || 'zh-CN';
vueApp.config.lang = lang
// // vue-i18n 6.x+写法
vueApp.locale = () => { };
const i18n = new VueI18n({
locale: lang,
messages,
silentTranslationWarn:true
});
export default i18n;
此差异已折叠。
import dstmicroservice_zh_CN from '@locale/lanres/entities/dst-microservice/dst-microservice_zh_CN';
import metafield_zh_CN from '@locale/lanres/entities/meta-field/meta-field_zh_CN';
import dstapp_zh_CN from '@locale/lanres/entities/dst-app/dst-app_zh_CN';
import dstcomponent_zh_CN from '@locale/lanres/entities/dst-component/dst-component_zh_CN';
import metadataset_zh_CN from '@locale/lanres/entities/meta-data-set/meta-data-set_zh_CN';
import dstview_zh_CN from '@locale/lanres/entities/dst-view/dst-view_zh_CN';
import dstapi_zh_CN from '@locale/lanres/entities/dst-api/dst-api_zh_CN';
import dstrouter_zh_CN from '@locale/lanres/entities/dst-router/dst-router_zh_CN';
import dstconfig_zh_CN from '@locale/lanres/entities/dst-config/dst-config_zh_CN';
import metamodel_zh_CN from '@locale/lanres/entities/meta-model/meta-model_zh_CN';
import metamodule_zh_CN from '@locale/lanres/entities/meta-module/meta-module_zh_CN';
import dstdatasource_zh_CN from '@locale/lanres/entities/dst-data-source/dst-data-source_zh_CN';
import dstsystem_zh_CN from '@locale/lanres/entities/dst-system/dst-system_zh_CN';
import metarelationship_zh_CN from '@locale/lanres/entities/meta-relationship/meta-relationship_zh_CN';
import metaentity_zh_CN from '@locale/lanres/entities/meta-entity/meta-entity_zh_CN';
import components_zh_CN from '@locale/lanres/components/components_zh_CN';
import codelist_zh_CN from '@locale/lanres/codelist/codelist_zh_CN';
import userCustom_zh_CN from '@locale/lanres/userCustom/userCustom_zh_CN';
export default {
app: {
commonWords:{
error: "失败",
success: "成功",
ok: "确认",
cancel: "取消",
save: "保存",
codeNotExist: "代码表不存在",
reqException: "请求异常",
sysException: "系统异常",
warning: "警告",
wrong: "错误",
rulesException: "值规则校验异常",
saveSuccess: "保存成功",
saveFailed: "保存失败",
deleteSuccess: "删除成功",
deleteError: "删除失败",
delDataFail: "删除数据失败",
noData: "暂无数据",
startsuccess:"启动成功",
loadmore:"加载更多",
nomore:"没有更多了",
other:"其他"
},
local:{
new: "新建",
add: "增加",
},
gridpage: {
choicecolumns: "选择列",
refresh: "刷新",
show: "显示",
records: "条",
totle: "共",
noData: "无数据",
valueVail: "值不能为空",
group:"分组",
other:"其他",
notConfig: {
fetchAction: "视图表格fetchAction参数未配置",
removeAction: "视图表格removeAction参数未配置",
createAction: "视图表格createAction参数未配置",
updateAction: "视图表格updateAction参数未配置",
loaddraftAction: "视图表格loaddraftAction参数未配置",
},
data: "数据",
delDataFail: "删除数据失败",
delSuccess: "删除成功!",
confirmDel: "确认要删除",
notRecoverable: "删除操作将不可恢复?",
notBatch: "批量添加未实现",
grid: "表",
exportFail: "数据导出失败",
sum: "合计",
formitemFailed: "表单项更新失败",
},
list: {
notConfig: {
fetchAction: "视图列表fetchAction参数未配置",
removeAction: "视图表格removeAction参数未配置",
createAction: "视图列表createAction参数未配置",
updateAction: "视图列表updateAction参数未配置",
},
confirmDel: "确认要删除",
notRecoverable: "删除操作将不可恢复?",
},
listExpBar: {
title: "列表导航栏",
},
wfExpBar: {
title: "流程导航栏",
},
calendarExpBar:{
title: "日历导航栏",
},
treeExpBar: {
title: "树视图导航栏",
},
portlet: {
noExtensions: "无扩展插件",
},
tabpage: {
sureclosetip: {
title: "关闭提醒",
content: "表单数据已经修改,确定要关闭?",
},
closeall: "关闭所有",
closeother: "关闭其他",
},
fileUpload: {
caption: "上传",
},
searchButton: {
search: "搜索",
reset: "重置",
},
calendar:{
today: "今天",
month: "月",
week: "周",
day: "天",
list: "列",
dateSelectModalTitle: "选择要跳转的时间",
gotoDate: "跳转",
from: "从",
to: "至",
},
// 非实体视图
views: {
liteindex: {
caption: "ibizlab",
title: "Lite",
},
},
utilview:{
importview:"导入数据",
warning:"警告",
info:"请配置数据导入项"
},
menus: {
liteindex: {
menuitem2: "数据源",
menuitem1: "实体",
menuitem9: "模型",
menuitem6: "微服务",
menuitem8: "接口",
menuitem5: "应用",
menuitem7: "路由",
menuitem3: "视图",
menuitem4: "组件",
},
},
formpage:{
desc1: "操作失败,未能找到当前表单项",
desc2: "无法继续操作",
notconfig: {
loadaction: "视图表单loadAction参数未配置",
loaddraftaction: "视图表单loaddraftAction参数未配置",
actionname: "视图表单'+actionName+'参数未配置",
removeaction: "视图表单removeAction参数未配置",
},
saveerror: "保存数据发生错误",
savecontent: "数据不一致,可能后台数据已经被修改,是否要重新加载数据?",
valuecheckex: "值规则校验异常",
savesuccess: "保存成功!",
deletesuccess: "删除成功!",
workflow: {
starterror: "工作流启动失败",
startsuccess: "工作流启动成功",
submiterror: "工作流提交失败",
submitsuccess: "工作流提交成功",
},
updateerror: "表单项更新失败",
},
gridBar: {
title: "表格导航栏",
},
multiEditView: {
notConfig: {
fetchAction: "视图多编辑视图面板fetchAction参数未配置",
loaddraftAction: "视图多编辑视图面板loaddraftAction参数未配置",
},
},
dataViewExpBar: {
title: "卡片视图导航栏",
},
kanban: {
notConfig: {
fetchAction: "视图列表fetchAction参数未配置",
removeAction: "视图表格removeAction参数未配置",
},
delete1: "确认要删除 ",
delete2: "删除操作将不可恢复?",
},
dashBoard: {
handleClick: {
title: "面板设计",
},
},
dataView: {
sum: "共",
data: "条数据",
},
chart: {
undefined: "未定义",
quarter: "季度",
year: "年",
},
searchForm: {
notConfig: {
loadAction: "视图搜索表单loadAction参数未配置",
loaddraftAction: "视图搜索表单loaddraftAction参数未配置",
},
custom: "存储自定义查询",
title: "名称",
},
wizardPanel: {
back: "上一步",
next: "下一步",
complete: "完成",
preactionmessage:"未配置计算上一步行为"
},
viewLayoutPanel: {
appLogoutView: {
prompt1: "尊敬的客户您好,您已成功退出系统,将在",
prompt2: "秒后跳转至",
logingPage: "登录页",
},
appWfstepTraceView: {
title: "应用流程处理记录视图",
},
appWfstepDataView: {
title: "应用流程跟踪视图",
},
appLoginView: {
username: "用户名",
password: "密码",
login: "登录",
},
},
},
entities: {
dstmicroservice: dstmicroservice_zh_CN,
metafield: metafield_zh_CN,
dstapp: dstapp_zh_CN,
dstcomponent: dstcomponent_zh_CN,
metadataset: metadataset_zh_CN,
dstview: dstview_zh_CN,
dstapi: dstapi_zh_CN,
dstrouter: dstrouter_zh_CN,
dstconfig: dstconfig_zh_CN,
metamodel: metamodel_zh_CN,
metamodule: metamodule_zh_CN,
dstdatasource: dstdatasource_zh_CN,
dstsystem: dstsystem_zh_CN,
metarelationship: metarelationship_zh_CN,
metaentity: metaentity_zh_CN,
},
components: components_zh_CN,
codelist: codelist_zh_CN,
userCustom: userCustom_zh_CN,
};
\ No newline at end of file
export default {
YesNo: {
"1": "是",
"0": "否",
"empty": ""
},
ComponentType: {
"DynamicForm": "动态表单",
"DynamicSubForm": "动态子表单",
"DynamicGrid": "动态表格",
"empty": ""
},
DstAppList: {
"empty": "",
},
AppType: {
"INNER": "内置应用",
"THIRD-PARTY": "第三方应用",
"empty": ""
},
DstSystemList: {
"empty": "",
},
};
\ No newline at end of file
export default {
YesNo: {
"1": "是",
"0": "否",
"empty": "",
},
ComponentType: {
"DynamicForm": "动态表单",
"DynamicSubForm": "动态子表单",
"DynamicGrid": "动态表格",
"empty": "",
},
DstAppList: {
"empty": "",
},
AppType: {
"INNER": "内置应用",
"THIRD-PARTY": "第三方应用",
"empty": "",
},
DstSystemList: {
"empty": "",
},
};
\ No newline at end of file
export default {
fields: {
id: "标识",
name: "名称",
path: "路径",
system_id: "系统标识",
ms_id: "微服务标识",
ms_name: "微服务名称",
service_name: "服务名",
},
views: {
gridview: {
caption: "接口",
title: "接口表格视图",
},
editview: {
caption: "接口",
title: "接口编辑视图",
},
},
main_form: {
details: {
group1: "接口基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "标识",
srfmajortext: "名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
apiid: "标识",
apiname: "名称",
servicename: "服务名",
apipath: "路径",
msid: "微服务标识",
msname: "微服务名称",
systemid: "系统标识",
},
uiactions: {
},
},
main_grid: {
columns: {
apiname: "名称",
apipath: "路径",
msname: "微服务名称",
servicename: "服务名",
systemid: "系统标识",
msid: "微服务标识",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_apiname_like: "名称(文本包含(%))",
n_msname_like: "微服务标识(文本包含(%))",
n_servicename_like: "微服务标识(文本包含(%))",
n_apipath_like: "路径(文本包含(%))",
n_systemid_eq: "系统标识(等于(=))",
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "Export Data Model",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
tbitem18: {
caption: "Help",
tip: "Help",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "Help",
tip: "Help",
},
},
};
\ No newline at end of file
export default {
fields: {
id: "标识",
name: "名称",
path: "路径",
system_id: "系统标识",
ms_id: "微服务标识",
ms_name: "微服务名称",
service_name: "服务名",
},
views: {
gridview: {
caption: "接口",
title: "接口表格视图",
},
editview: {
caption: "接口",
title: "接口编辑视图",
},
},
main_form: {
details: {
group1: "接口基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "标识",
srfmajortext: "名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
apiid: "标识",
apiname: "名称",
servicename: "服务名",
apipath: "路径",
msid: "微服务标识",
msname: "微服务名称",
systemid: "系统标识",
},
uiactions: {
},
},
main_grid: {
columns: {
apiname: "名称",
apipath: "路径",
msname: "微服务名称",
servicename: "服务名",
systemid: "系统标识",
msid: "微服务标识",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_apiname_like: "名称(文本包含(%))",
n_msname_like: "微服务标识(文本包含(%))",
n_servicename_like: "微服务标识(文本包含(%))",
n_apipath_like: "路径(文本包含(%))",
n_systemid_eq: "系统标识(等于(=))",
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
tip: "新建",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem6: {
caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "导出数据模型",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
tbitem18: {
caption: "帮助",
tip: "帮助",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "帮助",
tip: "帮助",
},
},
};
\ No newline at end of file
export default {
fields: {
id: "应用标识",
label: "应用名",
systemid: "系统标识",
fullname: "全称",
type: "类型",
group: "分组",
icon: "图标",
visabled: "可见",
addr: "地址",
},
views: {
gridview: {
caption: "应用",
title: "应用表格视图",
},
editview: {
caption: "应用",
title: "应用编辑视图",
},
pickupgridview: {
caption: "应用",
title: "应用选择表格视图",
},
pickupview: {
caption: "应用",
title: "应用数据选择视图",
},
},
main_form: {
details: {
group1: "应用基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "应用标识",
srfmajortext: "应用名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
appid: "应用标识",
appname: "应用名",
fullname: "全称",
apptype: "类型",
appgroup: "分组",
pssystemid: "系统标识",
visabled: "可见",
icon: "图标",
addr: "地址",
},
uiactions: {
},
},
main_grid: {
columns: {
appid: "应用标识",
appname: "应用名",
fullname: "全称",
apptype: "类型",
appgroup: "分组",
icon: "图标",
addr: "地址",
visabled: "可见",
pssystemid: "系统标识",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_appname_like: "应用名(文本包含(%))",
n_apptype_eq: "类型(等于(=))",
n_pssystemid_eq: "系统标识(等于(=))",
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "Export Data Model",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
tbitem18: {
caption: "Help",
tip: "Help",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "Help",
tip: "Help",
},
},
};
\ No newline at end of file
export default {
fields: {
id: "应用标识",
label: "应用名",
systemid: "系统标识",
fullname: "全称",
type: "类型",
group: "分组",
icon: "图标",
visabled: "可见",
addr: "地址",
},
views: {
gridview: {
caption: "应用",
title: "应用表格视图",
},
editview: {
caption: "应用",
title: "应用编辑视图",
},
pickupgridview: {
caption: "应用",
title: "应用选择表格视图",
},
pickupview: {
caption: "应用",
title: "应用数据选择视图",
},
},
main_form: {
details: {
group1: "应用基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "应用标识",
srfmajortext: "应用名",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
appid: "应用标识",
appname: "应用名",
fullname: "全称",
apptype: "类型",
appgroup: "分组",
pssystemid: "系统标识",
visabled: "可见",
icon: "图标",
addr: "地址",
},
uiactions: {
},
},
main_grid: {
columns: {
appid: "应用标识",
appname: "应用名",
fullname: "全称",
apptype: "类型",
appgroup: "分组",
icon: "图标",
addr: "地址",
visabled: "可见",
pssystemid: "系统标识",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_appname_like: "应用名(文本包含(%))",
n_apptype_eq: "类型(等于(=))",
n_pssystemid_eq: "系统标识(等于(=))",
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
tip: "新建",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem6: {
caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "导出数据模型",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
tbitem18: {
caption: "帮助",
tip: "帮助",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "帮助",
tip: "帮助",
},
},
};
\ No newline at end of file
export default {
fields: {
id: "部件标识",
name: "名称",
code_name: "代码名称",
system_id: "系统标识",
app_id: "应用标识",
type: "类型",
entity_id: "实体标识",
entity_name: "主实体",
config: "配置",
},
views: {
gridview: {
caption: "组件",
title: "组件表格视图",
},
pickupgridview: {
caption: "组件",
title: "组件选择表格视图",
},
editview: {
caption: "组件",
title: "组件编辑视图",
},
},
main_form: {
details: {
group1: "组件基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "部件标识",
srfmajortext: "名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
cname: "名称",
codename: "代码名称",
ctype: "类型",
entityname: "主实体",
cfg: "配置",
systemid: "系统标识",
appid: "应用标识",
entityid: "实体标识",
cid: "部件标识",
},
uiactions: {
},
},
main_grid: {
columns: {
cname: "名称",
codename: "代码名称",
ctype: "类型",
entityname: "主实体",
systemid: "系统标识",
appid: "应用标识",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_cname_like: "名称(文本包含(%))",
n_codename_eq: "代码名称(等于(=))",
n_entityname_like: "实体(文本包含(%))",
n_ctype_eq: "类型(等于(=))",
n_systemid_eq: "系统标识(等于(=))",
n_appid_eq: "应用标识(等于(=))",
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "Export Data Model",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
tbitem18: {
caption: "Help",
tip: "Help",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "Help",
tip: "Help",
},
},
};
\ No newline at end of file
export default {
fields: {
id: "部件标识",
name: "名称",
code_name: "代码名称",
system_id: "系统标识",
app_id: "应用标识",
type: "类型",
entity_id: "实体标识",
entity_name: "主实体",
config: "配置",
},
views: {
gridview: {
caption: "组件",
title: "组件表格视图",
},
pickupgridview: {
caption: "组件",
title: "组件选择表格视图",
},
editview: {
caption: "组件",
title: "组件编辑视图",
},
},
main_form: {
details: {
group1: "组件基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "部件标识",
srfmajortext: "名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
cname: "名称",
codename: "代码名称",
ctype: "类型",
entityname: "主实体",
cfg: "配置",
systemid: "系统标识",
appid: "应用标识",
entityid: "实体标识",
cid: "部件标识",
},
uiactions: {
},
},
main_grid: {
columns: {
cname: "名称",
codename: "代码名称",
ctype: "类型",
entityname: "主实体",
systemid: "系统标识",
appid: "应用标识",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_cname_like: "名称(文本包含(%))",
n_codename_eq: "代码名称(等于(=))",
n_entityname_like: "实体(文本包含(%))",
n_ctype_eq: "类型(等于(=))",
n_systemid_eq: "系统标识(等于(=))",
n_appid_eq: "应用标识(等于(=))",
},
uiactions: {
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
tip: "新建",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem6: {
caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "导出数据模型",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
tbitem18: {
caption: "帮助",
tip: "帮助",
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "帮助",
tip: "帮助",
},
},
};
\ No newline at end of file
export default {
fields: {
cfg_id: "标识",
system_id: "系统标识",
cfg_type: "配置类型",
target_type: "引用类型",
user_id: "用户标识",
cfg: "配置内容",
update_date: "更新时间",
},
views: {
editview: {
caption: "配置",
title: "配置编辑视图",
},
gridview: {
caption: "配置",
title: "配置表格视图",
},
},
main_form: {
details: {
group1: "配置基本信息",
formpage1: "基本信息",
group2: "操作信息",
formpage2: "其它",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "标识",
srfmajortext: "配置类型",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
cfgid: "标识",
},
uiactions: {
},
},
main_grid: {
columns: {
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
},
uiactions: {
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "Help",
tip: "Help",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "Export Data Model",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
tbitem18: {
caption: "Help",
tip: "Help",
},
},
};
\ No newline at end of file
export default {
fields: {
cfg_id: "标识",
system_id: "系统标识",
cfg_type: "配置类型",
target_type: "引用类型",
user_id: "用户标识",
cfg: "配置内容",
update_date: "更新时间",
},
views: {
editview: {
caption: "配置",
title: "配置编辑视图",
},
gridview: {
caption: "配置",
title: "配置表格视图",
},
},
main_form: {
details: {
group1: "配置基本信息",
formpage1: "基本信息",
group2: "操作信息",
formpage2: "其它",
srfupdatedate: "更新时间",
srforikey: "",
srfkey: "标识",
srfmajortext: "配置类型",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
cfgid: "标识",
},
uiactions: {
},
},
main_grid: {
columns: {
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
},
uiactions: {
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "保存",
tip: "保存",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "删除并关闭",
tip: "删除并关闭",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "新建",
tip: "新建",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "拷贝",
tip: "拷贝",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "保存并关闭",
tip: "保存并关闭",
},
tbitem4: {
caption: "保存并新建",
tip: "保存并新建",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "帮助",
tip: "帮助",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "新建",
tip: "新建",
},
tbitem4: {
caption: "编辑",
tip: "编辑",
},
tbitem6: {
caption: "拷贝",
tip: "拷贝",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "删除",
tip: "删除",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "导出",
tip: "导出",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "导出数据模型",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "过滤",
tip: "过滤",
},
tbitem18: {
caption: "帮助",
tip: "帮助",
},
},
};
\ No newline at end of file
export default {
fields: {
ds_id: "标识",
ds_name: "数据源名称",
ds_type: "类型",
ds_cfg: "配置",
},
views: {
editview: {
caption: "数据源",
title: "数据源编辑视图",
},
pickupview: {
caption: "数据源",
title: "数据源数据选择视图",
},
pickupgridview: {
caption: "数据源",
title: "数据源选择表格视图",
},
gridview: {
caption: "数据源",
title: "数据源表格视图",
},
},
main_form: {
details: {
group1: "数据源基本信息",
formpage1: "基本信息",
srforikey: "",
srfkey: "标识",
srfmajortext: "数据源名称",
srftempmode: "",
srfuf: "",
srfdeid: "",
srfsourcekey: "",
dsname: "数据源名称",
dstype: "类型",
dscfg: "配置",
formitem: "说明",
dsid: "标识",
},
uiactions: {
},
},
main_grid: {
columns: {
dsname: "数据源名称",
dstype: "类型",
},
uiactions: {
},
},
default_searchform: {
details: {
formpage1: "常规条件",
n_dsname_like: "数据源名称(%)",
n_dstype_eq: "类型(=)",
},
uiactions: {
},
},
editviewtoolbar_toolbar: {
tbitem3: {
caption: "Save",
tip: "Save",
},
tbitem6: {
caption: "-",
tip: "",
},
tbitem7: {
caption: "Remove And Close",
tip: "Remove And Close Window",
},
tbitem8: {
caption: "-",
tip: "",
},
tbitem12: {
caption: "New",
tip: "New",
},
tbitem13: {
caption: "-",
tip: "",
},
tbitem14: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem16: {
caption: "-",
tip: "",
},
tbitem18: {
caption: "其它",
tip: "其它",
},
tbitem5: {
caption: "Save And Close",
tip: "Save And Close Window",
},
tbitem4: {
caption: "Save And New",
tip: "Save And New",
},
tbitem23: {
caption: "第一个记录",
tip: "第一个记录",
},
tbitem24: {
caption: "上一个记录",
tip: "上一个记录",
},
tbitem25: {
caption: "下一个记录",
tip: "下一个记录",
},
tbitem26: {
caption: "最后一个记录",
tip: "最后一个记录",
},
tbitem22: {
caption: "Help",
tip: "Help",
},
},
gridviewtoolbar_toolbar: {
tbitem3: {
caption: "New",
tip: "New",
},
tbitem4: {
caption: "Edit",
tip: "Edit {0}",
},
tbitem6: {
caption: "Copy",
tip: "Copy {0}",
},
tbitem7: {
caption: "-",
tip: "",
},
tbitem8: {
caption: "Remove",
tip: "Remove {0}",
},
tbitem9: {
caption: "-",
tip: "",
},
tbitem13: {
caption: "Export",
tip: "Export {0} Data To Excel",
},
tbitem10: {
caption: "-",
tip: "",
},
tbitem16: {
caption: "其它",
tip: "其它",
},
tbitem21: {
caption: "Export Data Model",
tip: "导出数据模型",
},
tbitem23: {
caption: "数据导入",
tip: "数据导入",
},
tbitem17: {
caption: "-",
tip: "",
},
tbitem19: {
caption: "Filter",
tip: "Filter",
},
tbitem18: {
caption: "Help",
tip: "Help",
},
},
};
\ No newline at end of file
export const localList: any[] = [
{
type: 'zh-CN',
name: '中文简体',
},
];
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
// 预置 api 接口对象
import './appdata/appdata';
import './codelist/codelist';
import './viewconfig/viewconfig';
import './portlet/portlet';
import './login/login';
import './upload/upload';
// 实体级接口对象
import './entity/dst-microservices/dst-microservices';
import './entity/meta-fields/meta-fields';
import './entity/dst-apps/dst-apps';
import './entity/dst-components/dst-components';
import './entity/meta-data-sets/meta-data-sets';
import './entity/dst-views/dst-views';
import './entity/dst-apis/dst-apis';
import './entity/dst-routers/dst-routers';
import './entity/dst-configs/dst-configs';
import './entity/meta-models/meta-models';
import './entity/meta-modules/meta-modules';
import './entity/dst-data-sources/dst-data-sources';
import './entity/dst-systems/dst-systems';
import './entity/meta-relationships/meta-relationships';
import './entity/meta-entitys/meta-entitys';
import { MockAdapter } from '../mock-adapter';
const mock = MockAdapter.getInstance();
import Mock from 'mockjs'
const Random = Mock.Random;
// 获取全部数组
mock.onGet('./assets/json/portlet-data.json').reply((config: any) => {
let status = MockAdapter.mockStatus(config);
return [status,
[
]];
});
\ No newline at end of file
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册