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

ibizdev提交

上级 00a34fb1
......@@ -123,12 +123,12 @@ export default class AppMpicker extends Vue {
* @param newVal
* @param val
*/
@Watch('curvalue', { deep: true })
@Watch('curvalue', {immediate:true, deep: true })
oncurvalueChange(newVal: any, val: any) {
this.value = [];
this.selectItems = [];
if (newVal) {
this.selectItems = JSON.parse(newVal);
this.selectItems = this.parseValue(JSON.parse(newVal));
this.selectItems.forEach((item: any) => {
this.value.push(item[this.deKeyField]);
let index = this.items.findIndex((i) => Object.is(i[this.deKeyField], item[this.deKeyField]));
......@@ -187,7 +187,7 @@ export default class AppMpicker extends Vue {
let index = this.items.findIndex((item) => Object.is(item[this.deKeyField], select));
if (index >= 0) {
let item = this.items[index];
val.push({ [this.deKeyField]: item[this.deKeyField], [this.deMajorField]: item.text });
val.push({ [this.deKeyField]: item[this.deKeyField], [this.deMajorField]: item[this.deMajorField] });
} else {
index = this.selectItems.findIndex((item: any) => Object.is(item[this.deKeyField], select));
if (index >= 0) {
......@@ -196,7 +196,7 @@ export default class AppMpicker extends Vue {
}
}
});
let value = val.length > 0 ? JSON.stringify(val) : '';
let value = val.length > 0 ? JSON.stringify(this.formatValue(val)) : '';
this.$emit('formitemvaluechange', { name: this.name, value: value });
}
}
......@@ -211,7 +211,7 @@ export default class AppMpicker extends Vue {
let index = this.selectItems.findIndex((item: any) => Object.is(item[this.deKeyField], tag));
if (index >= 0) {
this.selectItems.splice(index, 1);
let value = this.selectItems.length > 0 ? JSON.stringify(this.selectItems) : '';
let value = this.selectItems.length > 0 ? JSON.stringify(this.formatValue(this.selectItems)) : '';
this.$emit('formitemvaluechange', { name: this.name, value: value });
}
}
......@@ -256,13 +256,50 @@ export default class AppMpicker extends Vue {
});
}
if (this.name && this.activeData) {
let value = selects.length > 0 ? JSON.stringify(selects) : '';
let value = selects.length > 0 ? JSON.stringify(this.formatValue(selects)) : '';
this.$emit('formitemvaluechange', { name: this.name, value: value });
}
})
}
}
/**
* 解析值,把srfkey和srfmajortext解析成实体属性名
*
* @param {any[]} value 需要转换的数组
* @memberof AppMpicker
*/
public parseValue(value: any[]){
let result = [];
if(this.deKeyField !== "srfkey" || this.deMajorField !== "srfmajortext"){
value.forEach((item: any) => {
result.push({[this.deMajorField]: item.srfmajortext, [this.deKeyField]: item.srfkey});
});
}else{
result = value;
}
return result;
}
/**
* 格式化值,把实体属性名格式化成srfkey和srfmajortext
*
* @param {any[]} value 需要转换的数组
* @memberof AppMpicker
*/
public formatValue(value: any[]){
let result = [];
if(this.deKeyField !== "srfkey" || this.deMajorField !== "srfmajortext"){
value.forEach((item: any) => {
result.push({srfmajortext : item[this.deMajorField], srfkey : item[this.deKeyField]});
});
}else{
result = value;
}
return result;
}
}
</script>
<style lang="less">
......
......@@ -108,6 +108,11 @@ export default class AppSpan extends Vue {
public load(){
if(!this.value || this.tag){
return; //代码表走codelist组件
}else if(this.editorType === "ADDRESSPICKUP"){
JSON.parse(this.value).forEach((item:any,index:number) => {
this.text += index === 0 ? item.srfmajortext : ","+item.srfmajortext;
});
}else{
this.text = this.value;
}
......
<template>
<div class="view-container depickupview wfgroup-pickup-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="wfgrouppickupview"></app-studioaction>
<card class='view-card' :dis-hover="true" :padding="0" :bordered="false">
<card class='view-card view-no-caption' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view">
<view_pickupviewpanel
:viewState="viewState"
......
......@@ -1076,61 +1076,11 @@ export default class WFMemberGridViewBase extends Vue {
this.Help(datas, contextJO,paramJO, $event, xData,this,"WFMember");
}
/**
* 打开新建数据视图
*
* @param {any[]} args
* @param {*} [params]
* @param {*} [fullargs]
* @param {*} [$event]
* @param {*} [xData]
* @memberof WFMemberGridView
*/
protected newdata(args: any[],fullargs?:any[], params?: any, $event?: any, xData?: any) {
const batchAddPSAppViews=[
{view:{viewname:'wfgroup-mpickup-view',height: 0,width: 0,title: '角色/用户组数据多项选择视图'},
res:['WFGroup'],'resAppKey':'groupid'},
{view:{viewname:'wfuser-mpickup-view',height: 0,width: 0,title: '用户数据多项选择视图'},
res:['WFUser'],'resAppKey':'userid'}
];
if(batchAddPSAppViews.length == 0 || !this.context.srfparentdename){
this.$Notice.warning({ title: '错误', desc: '批量添加需添加N:N关系' });
return;
}
let openViewModel:any = batchAddPSAppViews.find((item:any) =>{
return (item.res && (item.res[0] !== this.context.srfparentdename));
})
let otherViewModel:any = batchAddPSAppViews.find((item:any) =>{
return (item.res && (item.res[0] == this.context.srfparentdename));
})
let container: Subject<any> = this.$appmodal.openModal(openViewModel.view, JSON.parse(JSON.stringify(this.context)), args[0]);
container.subscribe((result: any) => {
if (!result || !Object.is(result.ret, 'OK')) {
return;
}
if(result.datas && result.datas.length == 0){
return;
}
let requestParam:Array<any> = [];
result.datas.forEach((record:any) => {
let tempParam:any = {};
tempParam[otherViewModel.resAppKey] = this.context['srfparentkey'];
tempParam[openViewModel.resAppKey] = record.srfkey;
requestParam.push(tempParam);
});
this.appEntityService.createBatch(JSON.parse(JSON.stringify(this.context)),requestParam,true).then((response:any) =>{
if (!response || response.status !== 200) {
this.$Notice.error({ title: '错误', desc: '批处理操作失败' });
return;
}
if (!xData || !(xData.refresh instanceof Function)) {
return;
}
xData.refresh(result.datas);
});
});
}
!!!!模版产生代码错误:----
FTL stack trace ("~" means nesting-related):
- Failed at: #if appDeRs.getMinorPSAppDataEntity()... [in template "TEMPLCODE_zh_CN" in macro "getreskey" at line 22, column 5]
- Reached through: @getreskey appEntity=appDataEntity cu... [in template "TEMPLCODE_zh_CN" at line 53, column 30]
----
/**
* 打开编辑数据视图
......
<template>
<div class="view-container depickupview wfuser-pickup-view">
<app-studioaction :viewTitle="$t(model.srfTitle)" viewName="wfuserpickupview"></app-studioaction>
<card class='view-card' :dis-hover="true" :padding="0" :bordered="false">
<card class='view-card view-no-caption' :dis-hover="true" :padding="0" :bordered="false">
<div class="content-container pickup-view">
<view_pickupviewpanel
:viewState="viewState"
......
......@@ -2,7 +2,7 @@
<i-form :model="this.data" class='app-search-form' ref='searchform' style="">
<input style="display:none;"/>
<row>
<i-col span="20">
<i-col span="20" class="form-content">
<row>
<i-col v-show="detailsModel.n_groupname_like.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='n_groupname_like' :itemRules="this.rules.n_groupname_like" class='' :caption="$t('entities.wfgroup.default_searchform.details.n_groupname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_groupname_like.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -12,7 +12,7 @@
</i-col>
</row>
</i-col>
<i-col span="4">
<i-col span="4" class="search-button">
<row v-show="Object.keys(data).length>0">
<i-button class='search_reset' size="default" type="primary" @click="onSearch">{{$t('app.searchButton.search')}}</i-button>
<i-button class='search_reset' size="default" @click="onReset">{{this.$t('app.searchButton.reset')}}</i-button>
......
......@@ -13,6 +13,9 @@
margin-right: 12px;
margin-bottom: 8px;
}
.search-button{
text-align: right;
}
}
.app-search-form-flex {
height: 100%;
......
......@@ -491,7 +491,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {number}
* @memberof AppIndex
*/
protected checkboxColWidth: number = 80;
protected checkboxColWidth: number = 50;
/**
* 是否允许拖动列宽
......
......@@ -2,7 +2,7 @@
<i-form :model="this.data" class='app-search-form' ref='searchform' style="">
<input style="display:none;"/>
<row>
<i-col span="20">
<i-col span="20" class="form-content">
<row>
<i-col v-show="detailsModel.n_personname_like.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='n_personname_like' :itemRules="this.rules.n_personname_like" class='' :caption="$t('entities.wfmember.default_searchform.details.n_personname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_personname_like.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -12,7 +12,7 @@
</i-col>
</row>
</i-col>
<i-col span="4">
<i-col span="4" class="search-button">
<row v-show="Object.keys(data).length>0">
<i-button class='search_reset' size="default" type="primary" @click="onSearch">{{$t('app.searchButton.search')}}</i-button>
<i-button class='search_reset' size="default" @click="onReset">{{this.$t('app.searchButton.reset')}}</i-button>
......
......@@ -13,6 +13,9 @@
margin-right: 12px;
margin-bottom: 8px;
}
.search-button{
text-align: right;
}
}
.app-search-form-flex {
height: 100%;
......
......@@ -484,7 +484,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {number}
* @memberof AppIndex
*/
protected checkboxColWidth: number = 80;
protected checkboxColWidth: number = 50;
/**
* 是否允许拖动列宽
......
......@@ -2,7 +2,7 @@
<i-form :model="this.data" class='app-search-form' ref='searchform' style="">
<input style="display:none;"/>
<row>
<i-col span="20">
<i-col span="20" class="form-content">
<row>
<i-col v-show="detailsModel.n_deploykey_like.visible" :style="{}" :sm="{ span: 12, offset: 0 }" :md="{ span: 12, offset: 0 }" :lg="{ span: 12, offset: 0 }" :xl="{ span: 12, offset: 0 }">
<app-form-item name='n_deploykey_like' :itemRules="this.rules.n_deploykey_like" class='' :caption="$t('entities.wfprocessdefinition.default_searchform.details.n_deploykey_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_deploykey_like.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -18,7 +18,7 @@
</i-col>
</row>
</i-col>
<i-col span="4">
<i-col span="4" class="search-button">
<row v-show="Object.keys(data).length>0">
<i-button class='search_reset' size="default" type="primary" @click="onSearch">{{$t('app.searchButton.search')}}</i-button>
<i-button class='search_reset' size="default" @click="onReset">{{this.$t('app.searchButton.reset')}}</i-button>
......
......@@ -13,6 +13,9 @@
margin-right: 12px;
margin-bottom: 8px;
}
.search-button{
text-align: right;
}
}
.app-search-form-flex {
height: 100%;
......
......@@ -507,7 +507,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {number}
* @memberof AppIndex
*/
protected checkboxColWidth: number = 80;
protected checkboxColWidth: number = 50;
/**
* 是否允许拖动列宽
......
......@@ -2,7 +2,7 @@
<i-form :model="this.data" class='app-search-form' ref='searchform' style="">
<input style="display:none;"/>
<row>
<i-col span="20">
<i-col span="20" class="form-content">
<row>
<i-col v-show="detailsModel.n_personname_like.visible" :style="{}" :lg="{ span: 24, offset: 0 }">
<app-form-item name='n_personname_like' :itemRules="this.rules.n_personname_like" class='' :caption="$t('entities.wfuser.default_searchform.details.n_personname_like')" uiStyle="DEFAULT" :labelWidth="130" :isShowCaption="true" :error="detailsModel.n_personname_like.error" :isEmptyCaption="false" labelPos="LEFT">
......@@ -12,7 +12,7 @@
</i-col>
</row>
</i-col>
<i-col span="4">
<i-col span="4" class="search-button">
<row v-show="Object.keys(data).length>0">
<i-button class='search_reset' size="default" type="primary" @click="onSearch">{{$t('app.searchButton.search')}}</i-button>
<i-button class='search_reset' size="default" @click="onReset">{{this.$t('app.searchButton.reset')}}</i-button>
......
......@@ -13,6 +13,9 @@
margin-right: 12px;
margin-bottom: 8px;
}
.search-button{
text-align: right;
}
}
.app-search-form-flex {
height: 100%;
......
......@@ -491,7 +491,7 @@ export default class MainBase extends Vue implements ControlInterface {
* @type {number}
* @memberof AppIndex
*/
protected checkboxColWidth: number = 80;
protected checkboxColWidth: number = 50;
/**
* 是否允许拖动列宽
......
......@@ -32,17 +32,11 @@
<hudson.tasks.Shell>
<command>
BUILD_ID=DONTKILLME
echo "registry.cn-shanghai.aliyuncs.com/ibizsys"
source /etc/profile
rm -rf ibzwf
git clone -b master $para2 ibzwf/
export NODE_OPTIONS=--max-old-space-size=4096
cd ibzwf/
mvn clean package -Pweb
cd ibzwf-app/ibzwf-app-web
mvn -Pweb docker:build
mvn -Pweb docker:push
docker -H $para1 stack deploy --compose-file=src/main/docker/ibzwf-app-web.yaml ibzlab-rt --with-registry-auth
</command>
</hudson.tasks.Shell>
</builders>
......
......@@ -9,6 +9,6 @@ CMD echo "The application will start in ${IBZ_SLEEP}s..." && \
sleep ${IBZ_SLEEP} && \
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /ibzwf-app-web.jar
EXPOSE 30003
EXPOSE 8080
ADD ibzwf-app-web.jar /ibzwf-app-web.jar
......@@ -3,11 +3,9 @@ services:
ibzwf-app-web:
image: registry.cn-shanghai.aliyuncs.com/ibizsys/ibzwf-app-web:latest
ports:
- "30003:30003"
- "8080:8080"
networks:
- agent_network
environment:
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.16.180.237
deploy:
mode: replicated
replicas: 1
......
server:
port: 30003
\ No newline at end of file
port: 8080
\ No newline at end of file
server:
port: 30003
port: 8080
#zuul网关路由设置
zuul:
......
......@@ -32,7 +32,7 @@ public class PermissionSyncJob implements ApplicationRunner {
@Value("${ibiz.enablePermissionValid:false}")
boolean enablePermissionValid; //是否开启权限校验
@Value("${ibiz.systemid:0A91C1B1-3B67-4EDA-9572-5DB491871FEE}")
@Value("${ibiz.systemid:2C40DFCD-0DF5-47BF-91A5-C45F810B0001}")
private String systemId;
@Override
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册