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

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

上级 b508711f
...@@ -76,6 +76,7 @@ import { ...@@ -76,6 +76,7 @@ import {
DataImport, DataImport,
DataExport, DataExport,
ImagePreview, ImagePreview,
CodeList,
} from './components/common'; } from './components/common';
// 编辑器组件 // 编辑器组件
import { import {
...@@ -180,6 +181,7 @@ export const AppRegister = { ...@@ -180,6 +181,7 @@ export const AppRegister = {
v.component('DataImport', DataImport); v.component('DataImport', DataImport);
v.component('DataExport', DataExport); v.component('DataExport', DataExport);
v.component('ImagePreview', ImagePreview); v.component('ImagePreview', ImagePreview);
v.component('CodeList', CodeList);
// 注册编辑器组件 // 注册编辑器组件
v.component('GridEditor', GridEditor); v.component('GridEditor', GridEditor);
v.component('IBizSpan', IBizSpan); v.component('IBizSpan', IBizSpan);
......
@include b(code-list) {
@include e(item){
color: getCssVar('code-list','item-color');
}
}
\ No newline at end of file
import { ref, watch, defineComponent } from 'vue';
import { useNamespace } from '@ibiz-template/vue-util';
import { isNil } from 'ramda';
import './code-list.scss';
export const CodeList = defineComponent({
props: {
codeListItems: {
type: Array<IData>,
},
codeList: {
type: Object,
required: true,
},
value: {
type: [String, Number],
},
},
setup(props) {
const ns = useNamespace('code-list');
const items = ref<IData[]>([]);
watch(
() => props.value,
(newVal, oldVal) => {
if (newVal !== oldVal) {
if (isNil(newVal) || newVal === '') {
// 空值置空
items.value = [];
} else {
// 非空值解析代码表
let values: string[] | number[];
if (typeof newVal === 'string') {
values = newVal.split(',');
} else {
values = [newVal];
}
items.value = values.map(val => {
const findItem = props.codeListItems?.find(
item => item.value === val,
);
return {
text: findItem?.text || val,
color: findItem?.color,
};
});
}
}
},
{ immediate: true },
);
return { items, ns };
},
render() {
if (this.items.length === 0) {
return this.codeList.emptyText;
}
return (
<span class={this.ns.b()}>
{this.items.map((item, index) => {
return [
index !== 0 ? this.codeList?.textSeparator : null,
<span
class={this.ns.e('item')}
style={this.ns.cssVarBlock({
'item-color': `${item.color}`,
})}
>
{item.text}
</span>,
];
})}
</span>
);
},
});
...@@ -17,6 +17,7 @@ export { ImagePreview } from './image-preview/image-preview'; ...@@ -17,6 +17,7 @@ export { ImagePreview } from './image-preview/image-preview';
export { DataImport } from './data-import/data-import'; export { DataImport } from './data-import/data-import';
export { DataExport } from './data-export/data-export'; export { DataExport } from './data-export/data-export';
export { AppSelectTree } from '../common/app-select-tree/app-select-tree'; export { AppSelectTree } from '../common/app-select-tree/app-select-tree';
export { CodeList } from '../common/code-list/code-list';
export { export {
AppIcon, AppIcon,
......
import { import {
formatToCodeListText,
GridFieldColumnController, GridFieldColumnController,
GridRowController, GridRowController,
} from '@ibiz-template/controller'; } from '@ibiz-template/controller';
...@@ -22,21 +21,7 @@ export const GridFieldColumn = defineComponent({ ...@@ -22,21 +21,7 @@ export const GridFieldColumn = defineComponent({
setup(props) { setup(props) {
const ns = useNamespace('grid-field-column'); const ns = useNamespace('grid-field-column');
// 代码表转换文本,如果不转换则为null const codeList = props.controller.model.source.getPSAppCodeList();
const codeListText = computed(() => {
// 非前台处理,不做值转换
if (props.controller.model.source.cLConvertMode !== 'FRONT') {
return null;
}
const fieldValue = props.row.data[props.controller.model.codeName];
if (props.controller.codeListItems?.length && fieldValue) {
return formatToCodeListText(
fieldValue,
props.controller.codeListItems!,
);
}
return null;
});
/** /**
* 单元格点击事件 * 单元格点击事件
...@@ -73,26 +58,30 @@ export const GridFieldColumn = defineComponent({ ...@@ -73,26 +58,30 @@ export const GridFieldColumn = defineComponent({
return ns.cssVarBlock({ 'justify-content': justContent }); return ns.cssVarBlock({ 'justify-content': justContent });
}); });
const showText = computed(() => { return { ns, alignStyle, codeList, onCellClick };
return (
codeListText.value || props.row.data[props.controller.model.codeName]
);
});
return { ns, alignStyle, showText, onCellClick };
}, },
render() { render() {
const c = this.controller; const c = this.controller;
const fieldValue = this.row.data[this.controller.model.codeName];
return ( return (
<div <div
class={[this.ns.b(), c.clickable && this.ns.m('clickable')]} class={[this.ns.b(), c.clickable && this.ns.m('clickable')]}
style={this.alignStyle} style={this.alignStyle}
onClick={this.onCellClick} onClick={this.onCellClick}
> >
<span class={this.ns.e('text')}> {this.codeList ? (
{this.showText} <code-list
{this.showText && c.model.unitName} class={this.ns.e('text')}
</span> codeListItems={c.codeListItems}
codeList={this.codeList}
value={fieldValue}
></code-list>
) : (
<span class={this.ns.e('text')}>
{fieldValue}
{fieldValue && c.model.unitName}
</span>
)}
</div> </div>
); );
}, },
......
...@@ -690,6 +690,13 @@ ...@@ -690,6 +690,13 @@
"name" : "预置处理1", "name" : "预置处理1",
"rTMOSFilePath" : "pssysdelogicnodes/preLogic1" "rTMOSFilePath" : "pssysdelogicnodes/preLogic1"
} ], } ],
"getAllPSSysModelGroups" : [ {
"codeName" : "load",
"dynaModelFilePath" : "PSSYSMODELGROUPS/load.json",
"mOSFilePath" : "pssysmodelgroups/load",
"name" : "入驻",
"rTMOSFilePath" : "pssysmodelgroups/load"
} ],
"getAllPSSysPDTViews" : [ { "getAllPSSysPDTViews" : [ {
"caption" : "流程回退操作视图", "caption" : "流程回退操作视图",
"codeName" : "Auto6", "codeName" : "Auto6",
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册