提交 11f2cee9 编写于 作者: Mosher's avatar Mosher

update:新增表格值规则支持

上级 ab259cfb
{
{{#if item.condOp}}
"condOp": "{{item.condOp}}",
{{/if}}
"notMode": {{item.notMode}},
"condType": "{{item.condType}}",
"ruleInfo": "{{item.ruleInfo}}",
{{#if item.psDEFVRConditions}}
"conditions": [
{{#each item.psDEFVRConditions as | condition |}}
{{> @macro/front-end/common/derules.hbs item=condition}}
{{#unless @last}},{{/unless}}
{{/each}}
]
{{/if}}
}
<AppAutoComplete
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:data="state.data"
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
......@@ -51,7 +55,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppCheckboxList
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:data="state.data"
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
......@@ -25,7 +29,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppCheckbox
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -11,7 +15,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppCode
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -11,7 +15,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
:context="state.context"
......
<AppDataPickerView
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:data="state.data"
{{#if item.valueItemName}}
valueItem="{{item.valueItemName}}"
......@@ -29,7 +33,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppDataPicker
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:data="state.data"
{{#if item.valueItemName}}
valueItem="{{item.valueItemName}}"
......@@ -52,7 +56,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppDatePicker
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#if item.psEditor.placeHolder}}
placeholder="{{item.psEditor.placeHolder}}"
{{/if}}
......@@ -50,7 +54,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppDropdownList
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#if item.psEditor.psAppCodeList}}
codeListTag="{{item.psEditor.psAppCodeList.codeListTag}}"
codeListType="{{item.psEditor.psAppCodeList.codeListType}}"
......@@ -33,7 +37,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
:data="record"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
......
<AppInputIp
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -11,7 +15,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppInput
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -44,7 +48,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppListBox
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:data="state.data"
:server="state.controlService"
:deMajorField="state.appDeMajorFieldName"
......@@ -41,7 +45,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppRadioGroup
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:data="state.data"
{{#if item.psEditor.psAppCodeList}}
codeListTag="{{item.psEditor.psAppCodeList.codeListTag}}"
......@@ -25,7 +29,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppRating
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -17,7 +21,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppRaw
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:date="state.data"
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
......@@ -20,7 +24,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppRichText
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -23,7 +27,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
:data="record"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
......
<AppSlider
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
:date="state.data"
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
......@@ -21,7 +25,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppSpan
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -33,7 +37,7 @@
:value="state.data.{{item.psEditor.name}}"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
{{/eq}}
:context="state.context"
:viewParams="state.viewParams"/>
<AppStepper
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -23,7 +27,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppSwitch
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#eq ctrlType 'form'}}
:disabled="state.detailsModel.{{item.codeName}}.disabled"
{{/eq}}
......@@ -14,7 +18,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
<AppUpload
{{#if (and (eq ctrlType 'grid') dataItemName)}}
name="{{dataItemName}}"
{{else}}
name="{{item.codeName}}"
{{/if}}
{{#if item.psEditor.editorParams.method}}
method="{{item.psEditor.editorParams.method}}"
{{/if}}
......@@ -34,7 +38,7 @@
@editorEvent="onEditorEvent"
{{/if}}
{{#eq ctrlType 'grid'}}
:value="record.{{item.psEditor.name}}"
:value="record.{{#if dataItemName}}{{dataItemName}}{{else}}{{item.psEditor.name}}{{/if}}"
@editorEvent="onEditorEvent($event,index)"
{{/eq}}
/>
{{#*inline "COLUMNTEXT"}}
{{#if (and item.psAppCodeList (eq item.cLConvertMode 'FRONT'))}}
<AppCodelist
name="{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}"
codeListTag="{{item.psAppCodeList.codeListTag}}"
:context="state.context"
:data="record"
......@@ -20,7 +21,7 @@
{{else}}
{{#if item.valueFormat}}
<AppSpan
name="{{lowerCase item.codeName}}"
name="{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}"
:value="text"
{{#if item.psAppDEField}}
:dataType="{{item.psAppDEField.stdDataType}}"
......@@ -40,19 +41,19 @@
{{/each}}
{{else}}
{{#unless (or item.hideDefault item.hiddenDataItem)}}
<div v-if="Object.is(column.dataIndex, '{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}')" class="table-cell {{#if item.cellPSSysCss}} {{item.cellPSSysCss.cssName}}{{/if}}">
<div v-if="Object.is(column.dataIndex, '{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}')" class="table-cell{{#if item.cellPSSysCss}} {{item.cellPSSysCss.cssName}}{{/if}}">
{{#if (eq item.columnType 'DEFGRIDCOLUMN')}}
{{#if item.enableRowEdit}}
<div v-if="state.rowEditState" class="editor-cell">
<AppFormItem
name="{{item.codeName}}"
:error="state.gridEditState.{{item.codeName}}?.[index]?.message"
name="{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}"
:error="state.gridEditState.{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}?.[index]?.message"
:rules="state.rules.{{item.codeName}}"
:showLabel="false"
>
{{#each ctrl.psDEGridEditItems as | editColumn | }}
{{#if (eq editColumn.codeName item.codeName)}}
{{> @macro/front-end/editors/include-editor.hbs type=editColumn.psEditor.editorType item=editColumn ctrlType="grid"}}
{{> @macro/front-end/editors/include-editor.hbs type=editColumn.psEditor.editorType item=editColumn dataItemName=item.dataItemName ctrlType="grid"}}
{{/if}}
{{/each}}
</AppFormItem>
......@@ -80,8 +81,8 @@
{{else if (eq item.columnType 'UAGRIDCOLUMN')}}
<AppToolbar
mode="link"
name="{{lowerCase item.codeName}}"
:actionModel="record.{{lowerCase item.codeName}}"
name="{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}"
:actionModel="record.{{#if item.dataItemName}}{{lowerCase item.dataItemName}}{{else}}{{item.codeName}}{{/if}}"
@onToolbarEvent="onActionColEvent($event, record)"/>
{{/if}}
</div>
......
......@@ -65,4 +65,11 @@ export interface GridControlState extends MDControlState {
*/
totalColumnWidth: number;
/**
* @description 选择列宽度(默认50,存在聚合列时为100)
* @type {number}
* @memberof GridControlState
*/
selectColumnWidth: number;
}
......@@ -31,7 +31,7 @@ export class GridControl extends MDControl {
* @memberof GridControl
*/
public useCustom() {
const { controlName, selectFirstDefault, rowEditState, rowActiveMode, isSingleSelect, totalColumnWidth } = this.state;
const { selectFirstDefault, rowEditState, selectColumnWidth, isSingleSelect, totalColumnWidth } = this.state;
// 滚动条配置
const useScrollOption = computed(() => {
return {
......@@ -113,14 +113,14 @@ export class GridControl extends MDControl {
}
return {
type: isSingleSelect ? 'radio' : 'checkbox',
columnWidth: 50,
columnWidth: selectColumnWidth,
selectedRowKeys: this.state.selectedRowKeys,
checkStrictly: false,
onSelect: (record: IParam, selected: boolean, selectedRows: IParam[], $event: any) => {
if (selected) {
const { appDeKeyFieldName } = this.state;
const selectedRowKey: string = record[appDeKeyFieldName] || record.srfkey;
const index: number = useExpandedRowKeys.value.findIndex((key: string) => Object.is(key,selectedRowKey))
const index: number = useExpandedRowKeys.value.findIndex((key: string) => Object.is(key, selectedRowKey))
if (Object.is(index,-1) && record.children && record.children.length > 0) {
useExpandedRowKeys.value.push(selectedRowKey);
}
......
......@@ -3,3 +3,4 @@ export { UIUtil } from './ui-util';
export { UIActionUtil } from './uiaction-util';
export { ViewUtil } from './view-util';
export { DataTypes } from './data-types';
export { Verify } from './verify';
\ No newline at end of file
import { ControlVOBase, IParam, GridService } from '@core';
import { ControlVOBase, IParam, GridService, isEmpty, Verify } from '@core';
import { {{pascalCase ctrl.psAppDataEntity.codeName}}Service } from '@api/{{spinalCase ctrl.psAppDataEntity.codeName}}/{{spinalCase ctrl.psAppDataEntity.codeName}}-service';
export class ControlVO extends ControlVOBase {
......@@ -23,6 +23,7 @@ export const ctrlState = {
controlCodeName: '{{ctrl.codeName}}',
controlName: '{{ctrl.name}}',
totalColumnWidth: {{ctrl.totalColumnWidth}},
selectColumnWidth: {{#if (neq ctrl.aggMode 'NONE')}}100{{else}}50{{/if}},
appEntityCodeName: '{{ctrl.appEntity.codeName}}',
appDeCodeName:'{{ctrl.appEntity.codeName}}',
appDeKeyFieldName: '{{#if ctrl.appEntity.keyPSAppDEField}}{{ctrl.appEntity.keyPSAppDEField.codeName}}{{/if}}',
......@@ -180,16 +181,38 @@ export const ctrlState = {
{{/if}}
rules:{
{{#each ctrl.psDEGridEditItemVRs as | ruleItem |}}
{{#if (eq ruleItem.valueRuleType 'SYSVALUERULE')}}
{{ruleItem.psDEGridEditItemName}}: [
{{#if (eq ruleItem.valueRuleType 'SYSVALUERULE')}}
{
trigger: ['change', 'blur'],
{{#eq ruleItem.psSysValueRule.ruleType 'REG'}}
pattern: /{{ruleItem.psSysValueRule.regExCode}}/,
{{/eq}}
message:'{{ruleItem.psSysValueRule.ruleInfo}}'
}],
},
{{else if (eq ruleItem.valueRuleType 'DEFVALUERULE')}}
{{#each ctrl.psDEGridEditItems as | editItem |}}
{{#eq editItem.codeName ruleItem.psDEGridEditItemName}}
{
validator: (rule: any, value: any, callback: any, source: any) => {
if (isEmpty(source['{{#if editItem.valueItemName}}{{editItem.valueItemName}}{{else}}{{ruleItem.psDEGridEditItemName}}{{/if}}'])) {
return true;
}
const { isPast, infoMessage } = Verify.verifyDeRules(
'{{#if editItem.valueItemName}}{{editItem.valueItemName}}{{else}}{{ruleItem.psDEGridEditItemName}}{{/if}}',
source,
{{> @macro/front-end/common/derules.hbs item=ruleItem.psDEFValueRule.getPSDEFVRGroupCondition}}
);
if (!isPast) {
callback(new Error(infoMessage || '{{ruleItem.psDEFValueRule.ruleInfo}}'));
}
return true;
}
}
{{/eq}}
{{/each}}
{{/if}}
],
{{/each}}
}
};
\ No newline at end of file
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册