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

lxm1993 发布系统代码 [TrainSys,网页端]

上级 169b0351
......@@ -252,7 +252,7 @@ export class AppDeLogicPrepareParamNode extends AppDeLogicNodeBase {
try {
switch (logicNodeParam.srcValueType) {
case "SRCDLPARAM": // 源逻辑参数
targetValue = srcParam.get(srcFieldName) ? srcParam.get(srcFieldName) : srcParam;
targetValue = srcParam.get(srcFieldName) ? srcParam.get(srcFieldName) : null;
break;
case 'APPLICATION': // 系统全局对象
case 'SESSION': // 用户全局对象
......
......@@ -259,7 +259,7 @@ export class AppUILogicPrepareParamNode extends AppUILogicNodeBase {
case "SRCDLPARAM": // 源逻辑参数
case 'WEBCONTEXT': // 网页请求上下文
case 'VIEWPARAM': // 当前视图参数
targetValue = srcParam.get(srcFieldName);
targetValue = srcParam.get(srcFieldName) ? srcParam.get(srcFieldName) : null;
break;
case 'APPLICATION': // 系统全局对象
case 'SESSION': // 用户全局对象
......
......@@ -94,10 +94,14 @@ export class CodeListTranslator {
* @param {*} value 传入的value值
* @param {*} codeList 代码表的模型对象
* @param {*} _this 上下文索引
* @param {*} context 上下文
* @param {*} viewparams 视图参数
* @param {*} isLoading 是否加载
* @param {*} translatorMode 翻译模式(true: 使用text获取选中代码表项, false: 使用value获取代码表项)
* @returns
* @memberof CodeListTranslator
*/
public async getSelectedCodeListItems(value: any, codeList: any, _this: any, context: any, viewparams?: any, isLoading: boolean = false){
public async getSelectedCodeListItems(value: any, codeList: any, _this: any, context: any, viewparams?: any, isLoading: boolean = false, translatorMode: boolean = false){
if(Util.isEmpty(value)){
return []
}
......@@ -108,7 +112,7 @@ export class CodeListTranslator {
}else{
codeListItems = await this.codeListService.getDataItems(this.getCodeListObj(codeList,context,viewparams,isLoading));
}
return this.getSelectedItems(value, codeListItems, codeList);
return this.getSelectedItems(value, codeListItems, codeList, translatorMode);
}
/**
......@@ -147,36 +151,49 @@ export class CodeListTranslator {
* @param {*} value 传入的value值
* @param {any[]} codeListItems 代码表项集合
* @param {*} codeList 代码表模型对象
* @param {*} translatorMode 翻译模式(true: 使用text获取选中代码表项, false: 使用value获取代码表项)
* @memberof CodeListTranslator
*/
private getSelectedItems(value: any, codeListItems: any[], codeList: any){
private getSelectedItems(value: any, codeListItems: any[], codeList: any, translatorMode: boolean){
if(codeListItems){
let valueSeparator = codeList.valueSeparator || this.valueSeparator;
// 值的集合
let values: any[] = [];
// 选中代码表项的集合
let selectedItems: any[] = [];
if(codeList.orMode == 'NUM'){
codeListItems.forEach((_item: any, index: number)=>{
const nValue = parseInt((value as any), 10);
if((parseInt(_item.value, 10) & nValue) > 0){
selectedItems.push(Util.deepCopy(_item));
}
});
}else{
if(Util.typeOf(value) == 'number'){
values = [value]
}else{
values = [...value.toString().split(valueSeparator)];
}
values.forEach((v: any)=>{
let selected = codeListItems.find((_item:any)=> _item.value == v);
if (translatorMode) {
const textValues = [...value.toString().split(valueSeparator)];
textValues.forEach((text: string) => {
let selected = codeListItems.find((_item:any)=> _item.text == text);
if(selected){
selectedItems.push(selected);
} else {
selectedItems.push({text: v});
selectedItems.push({text: text});
}
})
} else {
if(codeList.orMode == 'NUM'){
codeListItems.forEach((_item: any, index: number)=>{
const nValue = parseInt((value as any), 10);
if((parseInt(_item.value, 10) & nValue) > 0){
selectedItems.push(Util.deepCopy(_item));
}
});
}else{
if(Util.typeOf(value) == 'number'){
values = [value]
}else{
values = [...value.toString().split(valueSeparator)];
}
values.forEach((v: any)=>{
let selected = codeListItems.find((_item:any)=> _item.value == v);
if(selected){
selectedItems.push(selected);
} else {
selectedItems.push({text: v});
}
})
}
}
return selectedItems;
}
......
......@@ -22,7 +22,7 @@
<script lang="ts">
import { IPSAppDEUIAction } from '@ibiz/dynamic-model-api';
import { Vue, Component, Prop } from 'vue-property-decorator';
import { Vue, Component, Prop, Watch } from 'vue-property-decorator';
@Component({})
export default class AppModelButton extends Vue {
......@@ -84,6 +84,13 @@ export default class AppModelButton extends Vue {
*/
@Prop({ default: undefined }) public shape?: string | undefined;
/**
* 传入数据
*
* @memberof AppModelButton
*/
@Prop() data: any;
/**
* 按钮名称
*
......@@ -231,6 +238,14 @@ export default class AppModelButton extends Vue {
*/
public iconAlign: 'LEFT' | 'TOP' | 'RIGHT' | 'BOTTOM' = 'LEFT';
@Watch('data', { deep: true })
dataChange(newVal: any, oldVal: any) {
let { captionItemName } = this.modelJson;
if (captionItemName && newVal[captionItemName.toLowerCase()]) {
this.caption = newVal[captionItemName];
}
}
/**
* 初始化完成
*
......
<template>
<codelist
v-if="codeList && !showSourceMode"
v-if="codeList"
:codeList="codeList"
:value="value"
:data="data"
......@@ -8,6 +8,7 @@
:localContext="localContext"
:localParam="localParam"
:context="context"
:translatorMode="showSourceMode"
:viewparams="viewparams"
></codelist>
<app-upload-file-info
......@@ -196,8 +197,8 @@ export default class AppSpan extends Vue {
* @memberof AppSpan
*/
public load() {
if (this.codeList && !this.showSourceMode) {
return; //代码表走codelist组件
if (this.codeList) {
return;
} else if (this.editorType === 'ADDRESSPICKUP') {
if (this.$util.isEmpty(this.value)) {
this.text = '';
......
......@@ -97,6 +97,14 @@ export default class CodeList extends Vue {
*/
@Prop() public textOnly?: boolean;
/**
* 代码表翻译模式(true: 使用text获取选中代码表项, false: 使用value获取代码表项)
*
* @type {*}
* @memberof CodeList
*/
@Prop({default:false}) public translatorMode?: boolean;
/**
* 显示文本
*
......@@ -218,7 +226,7 @@ export default class CodeList extends Vue {
this.text = response;
})
}else{
this.codeListTranslator.getSelectedCodeListItems(this.value, this.codeList, this, _context,_param).then(async (response: any)=>{
this.codeListTranslator.getSelectedCodeListItems(this.value, this.codeList, this, _context, _param, false, this.translatorMode).then(async (response: any)=>{
this.items = await this.getImgURLOfBase64(response);
this.isEmpty = !(this.items?.length > 0);
})
......
......@@ -413,6 +413,7 @@ export class AppFormBase extends EditFormControlBase {
<div>
{badge}
<app-model-button
data={this.data}
modelJson={modelJson}
dynaStyle={dynaStyle}
dynaClass={dynaClass}
......
......@@ -400,6 +400,7 @@ export class AppPanelBase extends PanelControlBase {
const detailStyle = this.layoutDetailsModel[name].getBoxStyle();
return (
<app-model-button
data={this.data}
modelJson={modelJson}
dynaStyle={detailStyle}
dynaClass={detailClass}
......
......@@ -354,6 +354,7 @@ export class AppSearchFormBase extends SearchFormControlBase {
<div>
{badge}
<app-model-button
data={this.data}
modelJson={modelJson}
dynaStyle={dynaStyle}
dynaClass={dynaClass}
......
......@@ -201,15 +201,17 @@
line-height: 50px;
color: var(--app-font-color);
overflow: visible;
border-bottom: 0;
&:not(.is-disabled):hover, &:not(.is-disabled):focus, &.is-active {
color: var(--app-font-color);
background-color: var(--app-background-color-bright);
}
&.is-active {
border-bottom: 2px solid var(--app-font-color);
border-bottom: 0;
}
}
.el-submenu {
border-bottom: 0;
.el-submenu__title {
height: 50px;
line-height: 50px;
......@@ -221,7 +223,7 @@
}
&.is-active .el-submenu__title {
color: var(--app-font-color);
border-bottom: 2px solid var(--app-font-color);
border-bottom: 0;
}
}
}
......
......@@ -1168,6 +1168,7 @@ export class AppDefaultViewLayout extends ControlContainer {
return (
<app-model-button
id={name}
data={this.layoutData}
modelJson={modelJson}
dynaStyle={detailStyle}
dynaClass={detailClass}
......
......@@ -1458,7 +1458,7 @@ export class GridControlBase extends MDControlBase implements GridControlInterfa
public exportExcel(args: any = {}): void {
let _this: any = this;
const exportModel = this.controlInstance.getPSDEDataExport?.();
if (exportModel && exportModel.M.enableBackend && !exportModel.M.enableFront) {
if (exportModel && exportModel.M.enableBackend) {
this.exportExcelByBackend(args);
return;
}
......@@ -1714,7 +1714,7 @@ export class GridControlBase extends MDControlBase implements GridControlInterfa
const { codeList } = codelistColumn;
let items: any = await this.codeListService.getDataItems({ tag: codeList.codeName, type: codeList.codeListType, data: codeList, context: this.context, viewparams: this.viewparams });
jsonData.forEach((row: any) => {
row[codelistColumn.name] = ModelTool.getCodelistValue(items, row[codelistColumn.name], codelistColumn.codeList, this);
row[codelistColumn.name] = ModelTool.getCodelistValue(items, row[codelistColumn.name], codelistColumn.codeList, this) || row[codelistColumn.name];
})
}
// 值格式化
......
......@@ -50,7 +50,7 @@
</changeSet>
<!--输出实体[BOOK]数据结构 -->
<changeSet author="root" id="tab-book-215-3">
<changeSet author="root" id="tab-book-216-3">
<createTable tableName="T_BOOK">
<column name="BOOKNAME" remarks="" type="VARCHAR(200)">
</column>
......
......@@ -94,6 +94,14 @@
"id" : "srfsourcekey",
"hidden" : true,
"dataType" : 25
}, {
"id" : "hiddenitem",
"hidden" : true,
"dataType" : 25,
"getPSAppDEField" : {
"name" : "FIELD9",
"codeName" : "Field9"
}
}, {
"id" : "bookname",
"dataType" : 25,
......@@ -278,6 +286,33 @@
"detailType" : "GROUPPANEL",
"name" : "group1",
"getPSDEFormDetails" : [ {
"caption" : "属性9",
"codeName" : "hiddenitem",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"name" : "hiddenitem",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "FIELD9",
"codeName" : "Field9"
},
"getPSEditor" : {
"editorType" : "HIDDEN",
"name" : "hiddenitem"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"allowEmpty" : true,
"hidden" : true,
"showCaption" : true
}, {
"caption" : "标签",
"codeName" : "bookname",
"dataType" : 25,
......
......@@ -215,6 +215,14 @@
"id" : "srfsourcekey",
"hidden" : true,
"dataType" : 25
}, {
"id" : "hiddenitem",
"hidden" : true,
"dataType" : 25,
"getPSAppDEField" : {
"name" : "FIELD9",
"codeName" : "Field9"
}
}, {
"id" : "bookname",
"dataType" : 25,
......@@ -399,6 +407,33 @@
"detailType" : "GROUPPANEL",
"name" : "group1",
"getPSDEFormDetails" : [ {
"caption" : "属性9",
"codeName" : "hiddenitem",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"name" : "hiddenitem",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "FIELD9",
"codeName" : "Field9"
},
"getPSEditor" : {
"editorType" : "HIDDEN",
"name" : "hiddenitem"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"allowEmpty" : true,
"hidden" : true,
"showCaption" : true
}, {
"caption" : "标签",
"codeName" : "bookname",
"dataType" : 25,
......
......@@ -4186,6 +4186,14 @@
"id" : "srfsourcekey",
"hidden" : true,
"dataType" : 25
}, {
"id" : "hiddenitem",
"hidden" : true,
"dataType" : 25,
"getPSAppDEField" : {
"name" : "FIELD9",
"codeName" : "Field9"
}
}, {
"id" : "bookname",
"dataType" : 25,
......@@ -4370,6 +4378,33 @@
"detailType" : "GROUPPANEL",
"name" : "group1",
"getPSDEFormDetails" : [ {
"caption" : "属性9",
"codeName" : "hiddenitem",
"dataType" : 25,
"detailStyle" : "DEFAULT",
"detailType" : "FORMITEM",
"enableCond" : 3,
"ignoreInput" : 0,
"labelPos" : "LEFT",
"labelWidth" : 130,
"name" : "hiddenitem",
"noPrivDisplayMode" : 1,
"getPSAppDEField" : {
"name" : "FIELD9",
"codeName" : "Field9"
},
"getPSEditor" : {
"editorType" : "HIDDEN",
"name" : "hiddenitem"
},
"getPSLayoutPos" : {
"colMD" : 24,
"layout" : "TABLE_24COL"
},
"allowEmpty" : true,
"hidden" : true,
"showCaption" : true
}, {
"caption" : "标签",
"codeName" : "bookname",
"dataType" : 25,
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册