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

lab_gzf 部署微服务应用

上级 f0306b40
......@@ -171,6 +171,16 @@ export default class AppRangeEditor extends Vue {
*/
public onValueChange(name: string, value: any) {
this.$emit('formitemvaluechange', { name: name, value: value });
let count = 0;
if(this.refFormItem) {
this.refFormItem.forEach((item: any) => {
if(this.activeData[item] != null && !Object.is(this.activeData[item], '')) {
count++;
}
})
}
this.$emit('formitemvaluechange', {name: this.name, value: count === this.refFormItem.length ? "not null" : null});
}
}
......
......@@ -175,7 +175,7 @@ export default class CodeList extends Vue {
this.isUseLangres = false;
let _this = this;
// 空值判断
if(Object.is(this.$util.typeOf(this.value), 'undefined') || Object.is(this.$util.typeOf(this.value), 'null')){
if(Object.is(this.$util.typeOf(this.value), 'undefined') || Object.is(this.$util.typeOf(this.value), 'null') || Object.is(this.value, '')) {
this.ifEmpty = true;
return;
}
......
.dropdown-list{
display: inline-block;
.dropdown-list-container {
.dropdown-list{
display: inline-block;
}
.icon-circle {
display: none;
position: absolute;
right: 24px;
padding-top: 10px;
}
}
.dropdown-list-container:hover {
.icon-circle {
display: unset;
}
}
<template>
<i-select
class='dropdown-list'
:transfer="true"
v-model="currentVal"
:disabled="disabled === true ? true : false"
:clearable="true"
: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-select>
<div class='dropdown-list-container'>
<i-select
:transfer="true"
class='dropdown-list'
v-model="currentVal"
:disabled="disabled === true ? true : false"
: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-select>
<icon v-if="currentVal == null || currentVal == '' ? false :true" @click="clear" type="md-close" class="icon-circle" />
</div>
</template>
<script lang="ts">
......@@ -173,6 +175,9 @@ export default class DropDownList extends Vue {
if (isExistAndNotEmpty(val)) {
this.$emit('change', val);
} else {
if(this.value && !this.items.find((item: any) => Object.is(this.value, item.value))) {
return;
}
this.$emit('change', undefined);
}
}
......@@ -337,6 +342,17 @@ export default class DropDownList extends Vue {
}
}
/**
* 清除事件
*
* @param {*} $event
* @memberof DropDownList
*/
public clear($event: any){
if(this.currentVal) {
this.currentVal = null;
}
}
}
</script>
<style lang='less'>
......
......@@ -83,6 +83,14 @@ export default {
caption: "Edit",
tip: "Edit {0}",
},
seperator1: {
caption: "",
tip: "",
},
deuiaction1: {
caption: "Save",
tip: "Save",
},
tbitem23: {
caption: "-",
tip: "",
......
......@@ -82,6 +82,14 @@ export default {
caption: "编辑",
tip: "编辑",
},
seperator1: {
caption: "",
tip: "",
},
deuiaction1: {
caption: "保存",
tip: "保存",
},
tbitem23: {
caption: "-",
tip: "",
......
<studio-view-style2 viewName="eamassetgridview" viewTitle="资产信息" class='degridview eamasset-grid-view'>
<template slot='title'>
<span class='caption-info'>{{$t(model.srfTitle)}}</span>
</template>
<i-input slot="quickSearch" v-show="!isExpandSearchForm" v-model="query" placeholder="资产名称" search @on-search="onSearch($event)"/>
<template slot="toolbar">
<view-toolbar mode="STYLE2" :model="toolBarModels" @item-click="toolbar_click($event)"/> </template>
......
......@@ -104,6 +104,9 @@ export class EAMLocationStateListExpViewBase extends ListExpViewBase {
tbitem15: { name: 'tbitem15', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem2: { name: 'tbitem2', caption: '编辑', 'isShowCaption': true, 'isShowIcon': true, tooltip: '编辑', iconcls: 'fa fa-edit', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Edit', target: 'SINGLEKEY', class: '' } },
seperator1: { name: 'seperator1', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
deuiaction1: { name: 'deuiaction1', caption: '保存', 'isShowCaption': true, 'isShowIcon': true, tooltip: '保存', iconcls: 'fa fa-save', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Save', target: '', class: '' } },
tbitem23: { name: 'tbitem23', type: 'SEPERATOR', visabled: true, dataaccaction: '', uiaction: { } },
tbitem8: { name: 'tbitem8', caption: '删除', 'isShowCaption': true, 'isShowIcon': true, tooltip: '删除', iconcls: 'fa fa-remove', icon: '', disabled: false, type: 'DEUIACTION', visabled: true,noprivdisplaymode:2,dataaccaction: '', uiaction: { tag: 'Remove', target: 'MULTIKEY', class: '' } },
......@@ -160,6 +163,9 @@ export class EAMLocationStateListExpViewBase extends ListExpViewBase {
if (Object.is($event.tag, 'tbitem2')) {
this.toolbar_tbitem2_click(null, '', $event2);
}
if (Object.is($event.tag, 'deuiaction1')) {
this.toolbar_deuiaction1_click(null, '', $event2);
}
if (Object.is($event.tag, 'tbitem8')) {
this.toolbar_tbitem8_click(null, '', $event2);
}
......@@ -255,6 +261,33 @@ export class EAMLocationStateListExpViewBase extends ListExpViewBase {
this.Edit(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
* @param {*} [params={}]
* @param {*} [tag]
* @param {*} [$event]
* @memberof
*/
public toolbar_deuiaction1_click(params: any = {}, tag?: any, $event?: any) {
// 参数
// 取数
let datas: any[] = [];
let xData: any = null;
// _this 指向容器对象
const _this: any = this;
let paramJO:any = {};
let contextJO:any = {};
if (_this.getDatas && _this.getDatas instanceof Function) {
datas = [..._this.getDatas()];
}
if(params){
datas = [params];
}
// 界面行为
this.Save(datas, contextJO,paramJO, $event, xData,this,"EAMLocationState");
}
/**
* 逻辑事件
*
......@@ -387,6 +420,32 @@ export class EAMLocationStateListExpViewBase extends ListExpViewBase {
_this.$Notice.error({ title: '错误', desc: 'opendata 视图处理逻辑不存在,请添加!' });
}
}
/**
* 保存
*
* @param {any[]} args 当前数据
* @param {any} contextJO 行为附加上下文
* @param {*} [params] 附加参数
* @param {*} [$event] 事件源
* @param {*} [xData] 执行行为所需当前部件
* @param {*} [actionContext] 执行行为上下文
* @memberof EAMLocationStateListExpViewBase
*/
public Save(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
// 界面行为容器对象 _this
const _this: any = this;
if (xData && xData.save instanceof Function) {
xData.save().then((response: any) => {
if (!response || response.status !== 200) {
return;
}
_this.$emit('viewdataschange', [{ ...response.data }]);
});
} else if (_this.save && _this.save instanceof Function) {
_this.save();
}
}
/**
* 删除
*
......
......@@ -560,7 +560,8 @@ export class ViewBase extends Vue {
this.$emit('viewdataschange', [args]);
this.$emit('close', [args]);
} else if (this.$tabPageExp) {
this.$tabPageExp.onClose(this.$route.fullPath);
const item = this.$appService.navHistory.findHistoryByTag(this.viewtag);
this.$tabPageExp.onClose(item);
} else {
this.$router.back();
this.$appService.navHistory.pop();
......
......@@ -751,6 +751,11 @@ div::-webkit-scrollbar-thumb {
.ivu-input-number:hover {
border-color: var(--form-editor-active-color);
}
.ivu-input-number-disabled {
.ivu-input-number-input {
background-color: var(--form-disable-editor-background-color);
}
}
}
}
}
......@@ -1262,4 +1267,15 @@ div::-webkit-scrollbar-thumb {
}
}
// 数据选择样式
.app-picker {
.el-select {
.el-select__caret {
color: var(--form-editor-font-color);
}
}
.el-icon-arrow-up,.el-icon-arrow-down {
color: var(--form-editor-font-color);
}
}
@import './user.less';
\ No newline at end of file
......@@ -180,7 +180,6 @@ export default class EAMAssetUIServiceBase extends UIService {
viewname: 'eamasset-edit-view',
height: 0,
width: 0,
title: actionContext.$t('entities.eamasset.views.editview.title'),
};
openPopupModal(view, data);
}
......@@ -368,7 +367,6 @@ export default class EAMAssetUIServiceBase extends UIService {
viewname: 'eamasset-quick-create-view',
height: 0,
width: 0,
title: actionContext.$t('entities.eamasset.views.quickcreateview.title'),
placement: 'DRAWER_RIGHT',
};
openDrawer(view, data);
......
......@@ -43,7 +43,7 @@ export class ViewTool {
// 视图常规参数
Object.assign(viewdata, data);
// 传入父视图的srfsessionid
Object.assign(viewdata, {srfsessionid:viewParam['srfsessionid']});
Object.assign(viewdata, { srfsessionid: viewParam['srfsessionid'] });
return viewdata;
}
......@@ -63,7 +63,7 @@ export class ViewTool {
public static buildUpRoutePath(route: Route, viewParam: any = {}, deResParameters: any[], parameters: any[], args: any[], data: any): string {
const indexRoutePath = this.getIndexRoutePath(route);
const deResRoutePath = this.getDeResRoutePath(viewParam, deResParameters, args);
const deRoutePath = this.getActiveRoutePath(parameters, args, data,viewParam);
const deRoutePath = this.getActiveRoutePath(parameters, args, data, viewParam);
return `${indexRoutePath}${deResRoutePath}${deRoutePath}`;
}
......@@ -79,10 +79,10 @@ export class ViewTool {
const { parameters: _parameters }: { parameters: any[] } = route.meta;
const { pathName: _pathName, parameterName: _parameterName }: { pathName: string, parameterName: string } = _parameters[0];
const param = route.params[_parameterName];
if (param && !Object.is(param, '')) {
if (isExistAndNotEmpty(param)) {
return `/${_pathName}/${param}`;
}
return `/${_pathName}/null`;
return `/${_pathName}`;
}
/**
......@@ -99,15 +99,15 @@ export class ViewTool {
let routePath: string = '';
let [arg] = args;
arg = arg ? arg : {};
if(deResParameters && deResParameters.length >0){
if (deResParameters && deResParameters.length > 0) {
deResParameters.forEach(({ pathName, parameterName }: { pathName: string, parameterName: string }) => {
let value:any = null;
let value: any = null;
if (viewParam[parameterName] && !Object.is(viewParam[parameterName], '') && !Object.is(viewParam[parameterName], 'null')) {
value = viewParam[parameterName];
} else if (arg[parameterName] && !Object.is(arg[parameterName], '') && !Object.is(arg[parameterName], 'null')) {
value = arg[parameterName];
}
routePath = `${routePath}/${pathName}/${value}`;
routePath = `${routePath}/${pathName}` + (isExistAndNotEmpty(value) ? `/${value}` : '');
});
}
return routePath;
......@@ -123,10 +123,10 @@ export class ViewTool {
* @returns {string}
* @memberof ViewTool
*/
public static getActiveRoutePath(parameters: any[], args: any[], data: any,viewParam: any = {}): string {
public static getActiveRoutePath(parameters: any[], args: any[], data: any, viewParam: any = {}): string {
let routePath: string = '';
// 不存在应用实体
if(parameters && parameters.length >0){
if (parameters && parameters.length > 0) {
if (parameters.length === 1) {
const [{ pathName, parameterName }] = parameters;
routePath = `/${pathName}`;
......@@ -138,7 +138,7 @@ export class ViewTool {
arg = arg ? arg : {};
const [{ pathName: _pathName, parameterName: _parameterName }, { pathName: _pathName2, parameterName: _parameterName2 }] = parameters;
const _value: any = arg[_parameterName] || viewParam[_parameterName] || null;
routePath = `/${_pathName}/${_value}/${_pathName2}`;
routePath = `/${_pathName}${isExistAndNotEmpty(_value) ? `/${_value}` : ''}/${_pathName2}`;
if (Object.keys(data).length > 0) {
routePath = `${routePath}?${qs.stringify(data, { delimiter: ';' })}`;
}
......@@ -155,8 +155,8 @@ export class ViewTool {
* @returns {*}
* @memberof ViewTool
*/
public static formatRouteParams(params: any,route:any,context:any,viewparams:any): void {
Object.keys(params).forEach((key: string,index:number) => {
public static formatRouteParams(params: any, route: any, context: any, viewparams: any): void {
Object.keys(params).forEach((key: string, index: number) => {
const param: string | null | undefined = params[key];
if (!param || Object.is(param, '') || Object.is(param, 'null')) {
return;
......@@ -168,11 +168,11 @@ export class ViewTool {
Object.assign(context, { [key]: param });
}
});
if(route && route.fullPath && route.fullPath.indexOf("?") > -1){
const _viewparams:any = route.fullPath.slice(route.fullPath.indexOf("?")+1);
const _viewparamArray:Array<string> = decodeURIComponent(_viewparams).split(";")
if(_viewparamArray.length > 0){
_viewparamArray.forEach((item:any) =>{
if (route && route.fullPath && route.fullPath.indexOf("?") > -1) {
const _viewparams: any = route.fullPath.slice(route.fullPath.indexOf("?") + 1);
const _viewparamArray: Array<string> = decodeURIComponent(_viewparams).split(";")
if (_viewparamArray.length > 0) {
_viewparamArray.forEach((item: any) => {
Object.assign(viewparams, qs.parse(item));
})
}
......@@ -251,31 +251,31 @@ export class ViewTool {
* @param {*} [UIService] 界面行为服务
* @memberof ViewTool
*/
public static calcActionItemAuthState(data:any,ActionModel:any,UIService:any){
public static calcActionItemAuthState(data: any, ActionModel: any, UIService: any) {
for (const key in ActionModel) {
if (!ActionModel.hasOwnProperty(key)) {
return;
}
const _item = ActionModel[key];
if(_item && _item['dataaccaction'] && UIService && data && Object.keys(data).length >0){
let dataActionResult:any = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
if (_item && _item['dataaccaction'] && UIService && data && Object.keys(data).length > 0) {
let dataActionResult: any = UIService.getAllOPPrivs(data)[_item['dataaccaction']];
// 无权限:0;有权限:1
if(dataActionResult === 0){
if (dataActionResult === 0) {
// 禁用:1;隐藏:2;隐藏且默认隐藏:6
if(_item.noprivdisplaymode === 1){
if (_item.noprivdisplaymode === 1) {
_item.disabled = true;
}
if((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)){
if ((_item.noprivdisplaymode === 2) || (_item.noprivdisplaymode === 6)) {
_item.visabled = false;
}else{
} else {
_item.visabled = true;
}
}
if(dataActionResult === 1){
if (dataActionResult === 1) {
_item.visabled = true;
_item.disabled = false;
}
}
}
}
}
}
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -7,5 +7,6 @@
:viewDefaultUsage="false"
:viewUsage="7"
:expActive="expActive"
@closeview="closeView($event)"
/>
</div>
\ No newline at end of file
......@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /assetmanagement-app-assetmanagement.jar
EXPOSE 8080
EXPOSE 10325
ADD assetmanagement-app-assetmanagement.jar /assetmanagement-app-assetmanagement.jar
......@@ -3,9 +3,25 @@ services:
assetmanagement-app-assetmanagement:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/assetmanagement-app-assetmanagement:latest
ports:
- "8080:8080"
- "10325:10325"
networks:
- agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.240.110
- SERVER_PORT=10325
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.240.110:8848
- SPRING_REDIS_HOST=172.16.240.110
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_DATABASE=0
- SPRING_DATASOURCE_USERNAME=a_LAB01_e85d8801c
- SPRING_DATASOURCE_PASSWORD=b1@@@772
- SPRING_DATASOURCE_URL=jdbc:mysql://172.16.186.185:3306/a_LAB01_e85d8801c?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&allowMultiQueries=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_LAB01_e85d8801c
- CAS=https://passport.ibizlab.cn
- NACOS=172.16.240.110:8848
- SEATA_REGISTRY_NACOS_SERVER-ADDR=172.16.240.110:8848
- SEATA_ENABLED=true
deploy:
resources:
limits:
......
......@@ -12,6 +12,6 @@ CMD echo "The application will start in ${IBIZ_SLEEP}s..." && \
sleep ${IBIZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /assetmanagement-provider-assetapi.jar
EXPOSE 10315
EXPOSE 8081
ADD assetmanagement-provider-assetapi.jar /assetmanagement-provider-assetapi.jar
......@@ -3,25 +3,9 @@ services:
assetmanagement-provider-assetapi:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/assetmanagement-provider-assetapi:latest
ports:
- "10315:10315"
- "8081:8081"
networks:
- agent_network
environment:
- SPRING_CLOUD_NACOS_DISCOVERY_IP=172.16.240.110
- SERVER_PORT=10315
- SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR=172.16.240.110:8848
- SPRING_REDIS_HOST=172.16.240.110
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_DATABASE=0
- SPRING_DATASOURCE_USERNAME=a_LAB01_e85d8801c
- SPRING_DATASOURCE_PASSWORD=b1@@@772
- SPRING_DATASOURCE_URL=jdbc:mysql://172.16.186.185:3306/a_LAB01_e85d8801c?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&useOldAliasMetadataBehavior=true&allowMultiQueries=true
- SPRING_DATASOURCE_DRIVER-CLASS-NAME=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_DEFAULTSCHEMA=a_LAB01_e85d8801c
- CAS=https://passport.ibizlab.cn
- NACOS=172.16.240.110:8848
- SEATA_REGISTRY_NACOS_SERVER-ADDR=172.16.240.110:8848
- SEATA_ENABLED=true
deploy:
resources:
limits:
......
......@@ -37,11 +37,11 @@
git clone -b master $para2 ibizassetmanagement/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibizassetmanagement/
mvn clean package -Passetapi
cd assetmanagement-provider/assetmanagement-provider-assetapi
mvn -Passetapi docker:build
mvn -Passetapi docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/assetmanagement-provider-assetapi.yaml iBizEE --with-registry-auth
mvn clean package -Passetmanagement
cd assetmanagement-app/assetmanagement-app-assetmanagement
mvn -Passetmanagement docker:build
mvn -Passetmanagement docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/assetmanagement-app-assetmanagement.yaml iBizEE --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册