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

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

上级 740f2fbe
......@@ -12,14 +12,14 @@
},
"dependencies": {
"@floating-ui/dom": "^1.0.11",
"@ibiz-template/command": "^0.0.1-beta.44",
"@ibiz-template/controller": "^0.0.1-beta.44",
"@ibiz-template/core": "^0.0.1-beta.44",
"@ibiz-template/model": "^0.0.1-beta.44",
"@ibiz-template/runtime": "^0.0.1-beta.44",
"@ibiz-template/service": "^0.0.1-beta.44",
"@ibiz-template/theme": "^0.0.1-beta.44",
"@ibiz-template/vue-util": "^0.0.1-beta.44",
"@ibiz-template/command": "^0.0.1-beta.45",
"@ibiz-template/controller": "^0.0.1-beta.45",
"@ibiz-template/core": "^0.0.1-beta.45",
"@ibiz-template/model": "^0.0.1-beta.45",
"@ibiz-template/runtime": "^0.0.1-beta.45",
"@ibiz-template/service": "^0.0.1-beta.45",
"@ibiz-template/theme": "^0.0.1-beta.45",
"@ibiz-template/vue-util": "^0.0.1-beta.45",
"@ibiz/dynamic-model-api": "^2.1.11",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
......
......@@ -4,14 +4,14 @@ specifiers:
'@commitlint/cli': ^17.3.0
'@commitlint/config-conventional': ^17.3.0
'@floating-ui/dom': ^1.0.11
'@ibiz-template/command': ^0.0.1-beta.44
'@ibiz-template/controller': ^0.0.1-beta.44
'@ibiz-template/core': ^0.0.1-beta.44
'@ibiz-template/model': ^0.0.1-beta.44
'@ibiz-template/runtime': ^0.0.1-beta.44
'@ibiz-template/service': ^0.0.1-beta.44
'@ibiz-template/theme': ^0.0.1-beta.44
'@ibiz-template/vue-util': ^0.0.1-beta.44
'@ibiz-template/command': ^0.0.1-beta.45
'@ibiz-template/controller': ^0.0.1-beta.45
'@ibiz-template/core': ^0.0.1-beta.45
'@ibiz-template/model': ^0.0.1-beta.45
'@ibiz-template/runtime': ^0.0.1-beta.45
'@ibiz-template/service': ^0.0.1-beta.45
'@ibiz-template/theme': ^0.0.1-beta.45
'@ibiz-template/vue-util': ^0.0.1-beta.45
'@ibiz/dynamic-model-api': ^2.1.11
'@types/lodash-es': ^4.17.6
'@types/node': ^18.11.15
......@@ -63,14 +63,14 @@ specifiers:
dependencies:
'@floating-ui/dom': 1.0.11
'@ibiz-template/command': 0.0.1-beta.44
'@ibiz-template/controller': 0.0.1-beta.44_oxjbnusdps4lblyxtte2ypoxhm
'@ibiz-template/core': 0.0.1-beta.44_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.44_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/runtime': 0.0.1-beta.44_jknvc3m3pbv7cj7kghad7zxdne
'@ibiz-template/service': 0.0.1-beta.44_kcrltozjoki7oueymgwgiwiulq
'@ibiz-template/theme': 0.0.1-beta.44
'@ibiz-template/vue-util': 0.0.1-beta.44_tzwjhizx3xe4lnwqrqkmwkieae
'@ibiz-template/command': 0.0.1-beta.45
'@ibiz-template/controller': 0.0.1-beta.45_ascd52r4b2mz7q73re4ekobrom
'@ibiz-template/core': 0.0.1-beta.45_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.45_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/runtime': 0.0.1-beta.45_vb3m65ek2qqwieoxowjqlpfbfm
'@ibiz-template/service': 0.0.1-beta.45_rti225zbzf663o3ut5kaezgz7i
'@ibiz-template/theme': 0.0.1-beta.45
'@ibiz-template/vue-util': 0.0.1-beta.45_y2pdy62rrm3ctb4esspfmsho5a
'@ibiz/dynamic-model-api': 2.1.11_qx-util@0.4.4
dayjs: 1.11.7
lodash-es: 4.17.21
......@@ -891,14 +891,14 @@ packages:
resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
dev: true
/@ibiz-template/command/0.0.1-beta.44:
resolution: {integrity: sha512-KEzd0WO1YlaW28ptLbELeZ88f8Hm4DQYxqCjamRFnlUAvInIaae8Zl55VNqfN/PWWbyHAGfmzcaQxeAyG4mbkw==}
/@ibiz-template/command/0.0.1-beta.45:
resolution: {integrity: sha512-o/LTY7RiU/pn+vClhoSJLMdaO+l8lECT9UEyPCdrqwYdLo0/xbBiIPhYqHiCrmNpABIbsOEUlRo2i+aZb2R42Q==}
dependencies:
qx-util: 0.4.4
dev: false
/@ibiz-template/controller/0.0.1-beta.44_oxjbnusdps4lblyxtte2ypoxhm:
resolution: {integrity: sha512-OWoibmIx0YyB+Bd7YlZQkWDr2qeaZr910p85N/i0QKWjzanImv7xk2e3DupIWRbtXid6IukCzMw/K5nK7kLN+w==}
/@ibiz-template/controller/0.0.1-beta.45_ascd52r4b2mz7q73re4ekobrom:
resolution: {integrity: sha512-Bc0oJgvH2QoAM3b/BLkxeVea1yZv5+oFIQAnkuDfFGoJ/4P52cYGXJhHjOGJB40w1zlPJOM32Wj2mLNVc8C2bA==}
peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30
......@@ -908,10 +908,10 @@ packages:
qs: ^6.11.0
qx-util: ^0.4.4
dependencies:
'@ibiz-template/core': 0.0.1-beta.44_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.44_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/runtime': 0.0.1-beta.44_jknvc3m3pbv7cj7kghad7zxdne
'@ibiz-template/service': 0.0.1-beta.44_kcrltozjoki7oueymgwgiwiulq
'@ibiz-template/core': 0.0.1-beta.45_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.45_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/runtime': 0.0.1-beta.45_vb3m65ek2qqwieoxowjqlpfbfm
'@ibiz-template/service': 0.0.1-beta.45_rti225zbzf663o3ut5kaezgz7i
async-validator: 4.2.5
dayjs: 1.11.7
lodash-es: 4.17.21
......@@ -919,8 +919,8 @@ packages:
qx-util: 0.4.4
dev: false
/@ibiz-template/core/0.0.1-beta.44_qzytosuu5eg3bvoa74ldx6evva:
resolution: {integrity: sha512-A0jyXwGnzUszBBlA2ifk+i+FKWRl/SicYBSELnSzsprUp6uYhyRM8UxymgQJ2hvjOu6TLwcnuwZitY7a7SO5hg==}
/@ibiz-template/core/0.0.1-beta.45_qzytosuu5eg3bvoa74ldx6evva:
resolution: {integrity: sha512-unVWmpQPuA0hUuweZjS0+vOkErtRYAt4fV8DSLVTESIyHFBKvA56fYLA2Qa750vV1dDELwntvijRYEhRGcPuCA==}
peerDependencies:
lodash-es: ^4.17.21
qx-util: ^0.4.4
......@@ -935,8 +935,8 @@ packages:
- debug
dev: false
/@ibiz-template/model/0.0.1-beta.44_nngk5znuztmoeynqrwf7jk7xse:
resolution: {integrity: sha512-1aTEvgMNdPAv6pvAyt3f5WoQFTE1qJrbEL0XX269eXVVQz1zQeUEOVPdMPFkS/I9JSPjX1InWeJk/lpNEfIpOA==}
/@ibiz-template/model/0.0.1-beta.45_nngk5znuztmoeynqrwf7jk7xse:
resolution: {integrity: sha512-OQXFSeCLCAxNeaLGeFuoTGYIRhxnv4dLMGmjwL6c0vJTY8SPWU537ILSsCHsaTyEWNBm5BajpnRzYJYZQUKj2Q==}
peerDependencies:
'@ibiz/dynamic-model-api': ^2.1.11
lodash-es: ^4.17.21
......@@ -948,42 +948,42 @@ packages:
qx-util: 0.4.4
dev: false
/@ibiz-template/runtime/0.0.1-beta.44_jknvc3m3pbv7cj7kghad7zxdne:
resolution: {integrity: sha512-4AOwlRM2oWtlYzoOIJtS1i/9M3EhPxRORdVOnCg3PM89hC6Vs8VWK8sW+xPfqX8FHhjMSQFXRoNzkFGeFl4/cQ==}
/@ibiz-template/runtime/0.0.1-beta.45_vb3m65ek2qqwieoxowjqlpfbfm:
resolution: {integrity: sha512-zke/3sHy4E2ikC3x5yrq13zZac9BzmRr0tOjPckLmcmZhNqkURXu+ob2E1r8T0pwouXh3RLsMe7R4ilDDm7kOw==}
peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30
'@ibiz-template/service': ^0.0.1-beta.30
qx-util: ^0.4.4
dependencies:
'@ibiz-template/command': 0.0.1-beta.44
'@ibiz-template/core': 0.0.1-beta.44_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.44_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/service': 0.0.1-beta.44_kcrltozjoki7oueymgwgiwiulq
'@ibiz-template/command': 0.0.1-beta.45
'@ibiz-template/core': 0.0.1-beta.45_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.45_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/service': 0.0.1-beta.45_rti225zbzf663o3ut5kaezgz7i
qs: 6.11.0
qx-util: 0.4.4
dev: false
/@ibiz-template/service/0.0.1-beta.44_kcrltozjoki7oueymgwgiwiulq:
resolution: {integrity: sha512-kCZ7nj8Ul0T84cbO5+ugjvasXnD/gc2P2svyYflrLLWtLne7qhiW6qk51s3gvwQeNsj/yI5hkiZ74MhaC9+mNg==}
/@ibiz-template/service/0.0.1-beta.45_rti225zbzf663o3ut5kaezgz7i:
resolution: {integrity: sha512-xFYABBbrJJMInwQvDTTX8tlDGVbJiB/Fj5pa9JPWIwy97NcODObeoJkFk1BQy2HnTwJiOATbRL+s4E2adRSdnw==}
peerDependencies:
'@ibiz-template/core': ^0.0.1-beta.30
'@ibiz-template/model': ^0.0.1-beta.30
qx-util: ^0.4.4
ramda: ^0.28.0
dependencies:
'@ibiz-template/core': 0.0.1-beta.44_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.44_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/core': 0.0.1-beta.45_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.45_nngk5znuztmoeynqrwf7jk7xse
qx-util: 0.4.4
ramda: 0.28.0
dev: false
/@ibiz-template/theme/0.0.1-beta.44:
resolution: {integrity: sha512-sYdE5XuKglrRSWWxdMVvLNURzLkhHaxNRAVXWS5ThyPsk9v529/ZnN4Am/y/t58y9riqodx+DkL+HQwSsbhGzw==}
/@ibiz-template/theme/0.0.1-beta.45:
resolution: {integrity: sha512-lsgfyUqFUOIZWd34qKd2pubpzmfeaSRe81IQEkcdOBWhd5UdBzDfY4ChQhs9AQohMZXct1l+OBk2pDGi7TJNTQ==}
dev: false
/@ibiz-template/vue-util/0.0.1-beta.44_tzwjhizx3xe4lnwqrqkmwkieae:
resolution: {integrity: sha512-qHHAGg8grboFWHH46KI+UrFHJGjVLqevjmo3EASUKH2iNgD4yANMTU+sRTgIT0Bp4CqxcHllpMY4959rFfqsBA==}
/@ibiz-template/vue-util/0.0.1-beta.45_y2pdy62rrm3ctb4esspfmsho5a:
resolution: {integrity: sha512-rvmLnQxLQJQBxXV3KwAy7w39RgN3wm1rE9B1R6csGWB8hyou0z9OwJygIz9afAPd1rVmK3LHMi7OVKVPOVfBkA==}
peerDependencies:
'@ibiz-template/controller': ^0.0.1-beta.30
'@ibiz-template/core': ^0.0.1-beta.30
......@@ -994,9 +994,9 @@ packages:
vue: ^2.7.14
vue-router: ^3.6.5
dependencies:
'@ibiz-template/controller': 0.0.1-beta.44_oxjbnusdps4lblyxtte2ypoxhm
'@ibiz-template/core': 0.0.1-beta.44_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.44_nngk5znuztmoeynqrwf7jk7xse
'@ibiz-template/controller': 0.0.1-beta.45_ascd52r4b2mz7q73re4ekobrom
'@ibiz-template/core': 0.0.1-beta.45_qzytosuu5eg3bvoa74ldx6evva
'@ibiz-template/model': 0.0.1-beta.45_nngk5znuztmoeynqrwf7jk7xse
qs: 6.11.0
qx-util: 0.4.4
ramda: 0.28.0
......
......@@ -4,6 +4,6 @@ git commit -m "build: 升级底包"
git push
git checkout publish
git pull
git merge master
git merge vue2
git push
git checkout master
\ No newline at end of file
git checkout vue2
\ No newline at end of file
import { defineComponent } from 'vue';
import {
getGridEditorEmits,
getGridInputProps,
useGridCellEditor,
useNamespace,
......@@ -8,13 +9,11 @@ import {
export const IBizGridCheckbox = defineComponent({
name: 'IBizGridCheckbox',
props: getGridInputProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-checkbox');
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(props.rowDataChange, props.rowSave, {
isDelaySave: true,
});
useGridCellEditor(props, { emit });
return {
ns,
......@@ -35,7 +34,7 @@ export const IBizGridCheckbox = defineComponent({
{h('IBizCheckbox', {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
},
on: {
......
import { defineComponent, ref } from 'vue';
import {
getGridDataPickerProps,
getGridEditorEmits,
useGridCellEditor,
useNamespace,
} from '@ibiz-template/vue-util';
......@@ -8,31 +9,28 @@ import {
export const IBizGridPicker = defineComponent({
name: 'IBizGridPicker',
props: getGridDataPickerProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-picker');
const multiple = ['ADDRESSPICKUP_AC', 'ADDRESSPICKUP'].includes(
props.controller.model.editorType,
);
const provider = ref();
ibiz.register.editor.get(props.controller.model).then(value => {
provider.value = value;
});
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(
async (val: unknown, name?: string) => {
await props.rowDataChange(val, name);
// 最后一次值变更是自身的值变更,name为空,此时执行保存
if (!multiple && !name) {
await props.rowSave();
isInfoMode.value = true;
}
},
props.rowSave,
{
isDelaySave: true,
},
);
const multiple = ['ADDRESSPICKUP_AC', 'ADDRESSPICKUP'].includes(
props.controller.model.editorType,
);
const { isInfoMode, componentRef, onOperateChange, onChange, onBlur } =
useGridCellEditor(props, { emit });
const onPickerChange = async (val: unknown, name?: string) => {
// 最后一次值变更是自身的值变更,name为空,此时执行保存
await onChange(val, name);
if (!multiple && !name) {
onBlur();
}
};
return {
ns,
......@@ -40,7 +38,7 @@ export const IBizGridPicker = defineComponent({
componentRef,
provider,
onOperateChange,
onChange,
onPickerChange,
};
},
render(h) {
......@@ -55,11 +53,11 @@ export const IBizGridPicker = defineComponent({
h(this.provider.formEditor, {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
},
on: {
change: this.onChange,
change: this.onPickerChange,
operate: this.onOperateChange,
},
})}
......
......@@ -84,6 +84,7 @@ export const IBizPicker = defineComponent({
const onACSelect = async (item: IData) => {
await handleDataSelect(item);
isShowAll.value = true;
emit('operate', false);
};
// 搜索
......@@ -113,10 +114,16 @@ export const IBizPicker = defineComponent({
// 聚焦
const onFocus = (e: IData) => {
emit('operate', true);
const query = isShowAll.value ? '' : e.target.value;
onSearch(query);
};
// 失焦
const onBlur = () => {
emit('operate', false);
};
const closeCircle = (c.linkView ? 1 : 0) + (c.pickupView ? 1 : 0);
return {
......@@ -131,6 +138,7 @@ export const IBizPicker = defineComponent({
onClear,
onFocus,
closeCircle,
onBlur,
};
},
render() {
......@@ -177,10 +185,12 @@ export const IBizPicker = defineComponent({
placeholder={this.c.placeHolder}
placement='bottom'
clearable
transfer
transfer-class-name={this.ns.e('transfer')}
on-on-focus={this.onFocus}
on-on-search={this.onSearch}
on-on-clear={this.onClear}
on-on-blur={this.onBlur}
disabled={this.disabled}
>
{this.items.map(item => {
......
import { defineComponent } from 'vue';
import {
getGridDatePickerProps,
getGridEditorEmits,
useGridCellEditor,
useNamespace,
} from '@ibiz-template/vue-util';
......@@ -8,16 +9,16 @@ import {
export const IBizGridDatePicker = defineComponent({
name: 'IBizGridDatePicker',
props: getGridDatePickerProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-date-picker');
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(props.rowDataChange, props.rowSave, {
isDelaySave: true,
});
const { isInfoMode, componentRef, autoFocus, onOperateChange, onChange } =
useGridCellEditor(props, { emit });
return {
ns,
isInfoMode,
autoFocus,
componentRef,
onOperateChange,
onChange,
......@@ -34,9 +35,9 @@ export const IBizGridDatePicker = defineComponent({
{h('IBizDatePicker', {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
autoFocus: true,
autoFocus: this.autoFocus,
},
on: {
change: this.onChange,
......
import { defineComponent } from 'vue';
import {
getGridDropdownProps,
getGridEditorEmits,
useGridCellEditor,
useNamespace,
} from '@ibiz-template/vue-util';
......@@ -8,19 +9,35 @@ import {
export const IBizGridDropdown = defineComponent({
name: 'IBizGridDropdown',
props: getGridDropdownProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-dropdown');
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(props.rowDataChange, props.rowSave, {
isDelaySave: props.controller.multiple,
});
const {
isInfoMode,
autoFocus,
componentRef,
onOperateChange,
onChange,
onBlur,
} = useGridCellEditor(props, {
emit,
});
const onDropDownChange = async (val: unknown, name?: string) => {
await onChange(val, name);
// 单选时失焦触发行编辑失焦
if (!props.controller.multiple) {
onBlur();
}
};
return {
ns,
isInfoMode,
autoFocus,
componentRef,
onOperateChange,
onChange,
onDropDownChange,
};
},
render(h) {
......@@ -34,12 +51,12 @@ export const IBizGridDropdown = defineComponent({
{h('IBizDropdown', {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
autoFocus: true,
autoFocus: this.autoFocus,
},
on: {
change: this.onChange,
change: this.onDropDownChange,
operate: this.onOperateChange,
},
})}
......
......@@ -15,7 +15,12 @@ export const GridEditor = defineComponent({
setup(props) {
const ns = useNamespace('grid-editor');
const editable = computed(() => {
return !props.disabled && !props.readonly;
return (
!props.disabled &&
!props.readonly &&
// 单元格模式下才会显示悬浮编辑状态
ibiz.config.gridEditShowMode === 'cell'
);
});
return { ns, editable };
},
......
import { defineComponent } from 'vue';
import {
getGridEditorEmits,
getGridRadioProps,
useGridCellEditor,
useNamespace,
......@@ -8,19 +9,26 @@ import {
export const IBizGridRadio = defineComponent({
name: 'IBizGridRadio',
props: getGridRadioProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-radio');
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(props.rowDataChange, props.rowSave, {
isDelaySave: false,
const { isInfoMode, componentRef, onOperateChange, onChange, onBlur } =
useGridCellEditor(props, {
emit,
});
const onRadioChange = async (val: unknown, name?: string) => {
await onChange(val, name);
// 选中后就失焦
onBlur();
};
return {
ns,
isInfoMode,
componentRef,
onOperateChange,
onChange,
onRadioChange,
};
},
render(h) {
......@@ -34,11 +42,11 @@ export const IBizGridRadio = defineComponent({
{h('IBizRadio', {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
},
on: {
change: this.onChange,
change: this.onRadioChange,
operate: this.onOperateChange,
},
})}
......
import { defineComponent } from 'vue';
import {
getGridEditorEmits,
getGridInputNumberProps,
useGridCellEditor,
useNamespace,
......@@ -8,16 +9,16 @@ import {
export const IBizGridInputNumber = defineComponent({
name: 'IBizGridInputNumber',
props: getGridInputNumberProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-input-number');
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(props.rowDataChange, props.rowSave, {
isDelaySave: true,
});
const { isInfoMode, autoFocus, componentRef, onOperateChange, onChange } =
useGridCellEditor(props, { emit });
return {
ns,
isInfoMode,
autoFocus,
componentRef,
onOperateChange,
onChange,
......@@ -34,9 +35,9 @@ export const IBizGridInputNumber = defineComponent({
{h('IBizInputNumber', {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
autoFocus: true,
autoFocus: this.autoFocus,
},
on: {
change: this.onChange,
......
import { defineComponent } from 'vue';
import {
getGridEditorEmits,
getGridInputProps,
useGridCellEditor,
useNamespace,
......@@ -8,16 +9,16 @@ import {
export const IBizGridInput = defineComponent({
name: 'IBizGridInput',
props: getGridInputProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-input');
const { isInfoMode, componentRef, onOperateChange, onChange } =
useGridCellEditor(props.rowDataChange, props.rowSave, {
isDelaySave: true,
});
const { isInfoMode, autoFocus, componentRef, onOperateChange, onChange } =
useGridCellEditor(props, { emit });
return {
ns,
isInfoMode,
autoFocus,
componentRef,
onOperateChange,
onChange,
......@@ -34,9 +35,9 @@ export const IBizGridInput = defineComponent({
{h('IBizInput', {
props: {
...this.$props,
readonly: this.readonly || this.isInfoMode,
readonly: this.isInfoMode,
disabled: this.disabled,
autoFocus: true,
autoFocus: this.autoFocus,
},
on: {
change: this.onChange,
......
......@@ -56,10 +56,15 @@ export const IBizInput = defineComponent({
let isDebounce = false;
let awaitSearch: () => void;
let blurCacheValue: string | undefined;
// 防抖值变更回调
const debounceChange = debounce(
(e: IData) => {
emit('change', e.target.value);
// 拦截掉blur触发后change
if (blurCacheValue !== e.target.value) {
emit('change', e.target.value);
}
blurCacheValue = undefined;
isDebounce = false;
if (awaitSearch) {
awaitSearch();
......@@ -84,6 +89,16 @@ export const IBizInput = defineComponent({
}
};
/**
* blur时马上抛值变更
* @author lxm
* @date 2023-03-06 06:36:23
*/
const handleBlur = () => {
blurCacheValue = inputRef.value.currentValue;
emit('change', blurCacheValue);
};
// 自动聚焦
if (props.autoFocus) {
watch(inputRef, newVal => {
......@@ -101,6 +116,7 @@ export const IBizInput = defineComponent({
currentVal,
handleChange,
handleKeyUp,
handleBlur,
inputRef,
};
},
......@@ -124,6 +140,7 @@ export const IBizInput = defineComponent({
type={this.type}
rows={this.rows}
on-on-change={this.handleChange}
on-on-blur={this.handleBlur}
nativeOnkeyup={this.handleKeyUp}
class={this.ns.b('input')}
disabled={this.disabled}
......
/* eslint-disable no-param-reassign */
import { RuntimeError } from '@ibiz-template/core';
import {
getGridEditorEmits,
getGridUploadProps,
useEventListener,
useNamespace,
......@@ -17,7 +18,8 @@ import '@ibiz-template/theme/style/components/editor/ibiz-grid-file-upload/ibiz-
export const IBizGridFileUpload = defineComponent({
name: 'IBizGridFileUpload',
props: getGridUploadProps(),
setup(props) {
emits: getGridEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('grid-file-upload');
// 初始化文件上传编辑器的数据解析
......@@ -80,14 +82,14 @@ export const IBizGridFileUpload = defineComponent({
resultFiles.map(file => ({ name: file.name, id: file.id })),
)
: null;
await props.rowDataChange(valueStr);
await props.rowSave();
emit('change', valueStr);
emit('rowSave');
}
};
// 非禁用的时候点击打开飘窗
// 非禁用和只读的时候点击打开飘窗
useEventListener(componentRef, 'click', _evt => {
if (!props.disabled) {
if (!props.disabled && !props.readonly) {
openPopover();
}
});
......
......@@ -87,7 +87,10 @@ export const GridFieldEditColumn = defineComponent({
// 单元格行编辑下,单个出禁用无意义,所以禁用走的还是只读
disabled: false,
readonly: this.isReadonly,
rowDataChange: this.rowDataChange.bind(this),
hasError: !!this.row.errors[codeName],
},
on: {
change: this.rowDataChange.bind(this),
rowSave: this.rowSave.bind(this),
},
})}
......
......@@ -26,6 +26,7 @@ export class DataPickerEditorProvider implements IEditorProvider {
componentName = 'IBizPickerDropDown';
break;
case 'PICKEREX_LINK':
case 'PICKEREX_LINKONLY':
componentName = 'IBizPickerLink';
break;
case 'ADDRESSPICKUP':
......
......@@ -83,6 +83,10 @@ export function presetEditorProvider(): void {
'PICKEREX_LINK',
new DataPickerEditorProvider('PICKEREX_LINK'),
);
editorRegister.register(
'PICKEREX_LINKONLY',
new DataPickerEditorProvider('PICKEREX_LINKONLY'),
);
editorRegister.register(
'ADDRESSPICKUP',
new DataPickerEditorProvider('ADDRESSPICKUP'),
......
......@@ -637,61 +637,61 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@ibiz-template/command@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fcommand/-/command-0.0.1-beta.44.tgz#a1e491fb3c0871ac67f082ee239f73b99c9fe324"
integrity sha512-KEzd0WO1YlaW28ptLbELeZ88f8Hm4DQYxqCjamRFnlUAvInIaae8Zl55VNqfN/PWWbyHAGfmzcaQxeAyG4mbkw==
"@ibiz-template/command@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fcommand/-/command-0.0.1-beta.45.tgz#3fcdf95f60416d9398cffacef9abbf50540f8a2d"
integrity sha512-o/LTY7RiU/pn+vClhoSJLMdaO+l8lECT9UEyPCdrqwYdLo0/xbBiIPhYqHiCrmNpABIbsOEUlRo2i+aZb2R42Q==
dependencies:
qx-util "^0.4.4"
"@ibiz-template/controller@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fcontroller/-/controller-0.0.1-beta.44.tgz#7e7bb85f8fb87fc44bb388c144da5d75dee23ac8"
integrity sha512-OWoibmIx0YyB+Bd7YlZQkWDr2qeaZr910p85N/i0QKWjzanImv7xk2e3DupIWRbtXid6IukCzMw/K5nK7kLN+w==
"@ibiz-template/controller@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fcontroller/-/controller-0.0.1-beta.45.tgz#499ab4325b0632ee83d48a6b3e7351641ff427f1"
integrity sha512-Bc0oJgvH2QoAM3b/BLkxeVea1yZv5+oFIQAnkuDfFGoJ/4P52cYGXJhHjOGJB40w1zlPJOM32Wj2mLNVc8C2bA==
dependencies:
async-validator "^4.2.5"
dayjs "^1.11.5"
"@ibiz-template/core@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fcore/-/core-0.0.1-beta.44.tgz#ff2be50ff8216895159555e528b02fcca0638c77"
integrity sha512-A0jyXwGnzUszBBlA2ifk+i+FKWRl/SicYBSELnSzsprUp6uYhyRM8UxymgQJ2hvjOu6TLwcnuwZitY7a7SO5hg==
"@ibiz-template/core@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fcore/-/core-0.0.1-beta.45.tgz#a7886e2b27cfdee14cdc6814e444357091a344bf"
integrity sha512-unVWmpQPuA0hUuweZjS0+vOkErtRYAt4fV8DSLVTESIyHFBKvA56fYLA2Qa750vV1dDELwntvijRYEhRGcPuCA==
dependencies:
axios "^1.2.1"
loglevel "^1.8.0"
pluralize "^8.0.0"
qs "^6.11.0"
"@ibiz-template/model@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fmodel/-/model-0.0.1-beta.44.tgz#ead6c4139e355b79323d367cd0922c802b2227fc"
integrity sha512-1aTEvgMNdPAv6pvAyt3f5WoQFTE1qJrbEL0XX269eXVVQz1zQeUEOVPdMPFkS/I9JSPjX1InWeJk/lpNEfIpOA==
"@ibiz-template/model@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fmodel/-/model-0.0.1-beta.45.tgz#4dd27c4c4dfdd9ae3c9cbaa4a20dace8ff79f882"
integrity sha512-OQXFSeCLCAxNeaLGeFuoTGYIRhxnv4dLMGmjwL6c0vJTY8SPWU537ILSsCHsaTyEWNBm5BajpnRzYJYZQUKj2Q==
dependencies:
"@ibiz/dynamic-model-api" "^2.1.11"
pluralize "^8.0.0"
"@ibiz-template/runtime@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fruntime/-/runtime-0.0.1-beta.44.tgz#2fa355071e9ef718fd739395f5c50760a232754c"
integrity sha512-4AOwlRM2oWtlYzoOIJtS1i/9M3EhPxRORdVOnCg3PM89hC6Vs8VWK8sW+xPfqX8FHhjMSQFXRoNzkFGeFl4/cQ==
"@ibiz-template/runtime@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fruntime/-/runtime-0.0.1-beta.45.tgz#340c85ef916c70274b87c7ed0378fc42799a651f"
integrity sha512-zke/3sHy4E2ikC3x5yrq13zZac9BzmRr0tOjPckLmcmZhNqkURXu+ob2E1r8T0pwouXh3RLsMe7R4ilDDm7kOw==
dependencies:
"@ibiz-template/command" "^0.0.1-beta.44"
"@ibiz-template/command" "^0.0.1-beta.45"
qs "^6.11.0"
"@ibiz-template/service@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fservice/-/service-0.0.1-beta.44.tgz#974a92bafa7e4bbe4c7834c6ed156e8f148155c7"
integrity sha512-kCZ7nj8Ul0T84cbO5+ugjvasXnD/gc2P2svyYflrLLWtLne7qhiW6qk51s3gvwQeNsj/yI5hkiZ74MhaC9+mNg==
"@ibiz-template/service@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fservice/-/service-0.0.1-beta.45.tgz#a973a0def6fdb1d1abc52cb2137d6e018cb4a94d"
integrity sha512-xFYABBbrJJMInwQvDTTX8tlDGVbJiB/Fj5pa9JPWIwy97NcODObeoJkFk1BQy2HnTwJiOATbRL+s4E2adRSdnw==
"@ibiz-template/theme@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2ftheme/-/theme-0.0.1-beta.44.tgz#ab155378c41b710e4c2d48eea0e1c1993b644fdb"
integrity sha512-sYdE5XuKglrRSWWxdMVvLNURzLkhHaxNRAVXWS5ThyPsk9v529/ZnN4Am/y/t58y9riqodx+DkL+HQwSsbhGzw==
"@ibiz-template/theme@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2ftheme/-/theme-0.0.1-beta.45.tgz#a4998f93d01e5c6e93daf3f8d4103a373630ea97"
integrity sha512-lsgfyUqFUOIZWd34qKd2pubpzmfeaSRe81IQEkcdOBWhd5UdBzDfY4ChQhs9AQohMZXct1l+OBk2pDGi7TJNTQ==
"@ibiz-template/vue-util@^0.0.1-beta.44":
version "0.0.1-beta.44"
resolved "http://npm.zhr.icu/@ibiz-template%2fvue-util/-/vue-util-0.0.1-beta.44.tgz#47eb74e7990e50dbd2465ff691c37aa7addca854"
integrity sha512-qHHAGg8grboFWHH46KI+UrFHJGjVLqevjmo3EASUKH2iNgD4yANMTU+sRTgIT0Bp4CqxcHllpMY4959rFfqsBA==
"@ibiz-template/vue-util@^0.0.1-beta.45":
version "0.0.1-beta.45"
resolved "http://npm.zhr.icu/@ibiz-template%2fvue-util/-/vue-util-0.0.1-beta.45.tgz#f4bb6b6abc1e5bb9af4740ce69a0fbefbc697108"
integrity sha512-rvmLnQxLQJQBxXV3KwAy7w39RgN3wm1rE9B1R6csGWB8hyou0z9OwJygIz9afAPd1rVmK3LHMi7OVKVPOVfBkA==
"@ibiz/dynamic-model-api@^2.1.11":
version "2.1.11"
......
......@@ -1209,16 +1209,16 @@
"mOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
}, {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
} ],
"rTMOSFilePath" : "pssysapps/TemplatePublish/psappviewmsggroups/VMGroup2"
......
......@@ -37,125 +37,6 @@
}
} ],
"getPSDEFormItemVRs" : [ {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule7",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD6/psdefvaluerules/ValueRule7",
"name" : "field6值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "[条件组]AND",
"getPSDEFVRConditions" : [ {
"condOp" : "NOTEQ",
"condType" : "SIMPLE",
"dEFName" : "FIELD6",
"name" : "[常规条件] 不等于(<>) (20)",
"paramValue" : "20"
}, {
"condOp" : "GT",
"condType" : "SIMPLE",
"dEFName" : "FIELD6",
"name" : "[常规条件] 大于(>) (5)",
"paramValue" : "5"
} ],
"ruleInfo" : ">5并且不等于20"
} ],
"ruleInfo" : ">5并且不等于20"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD6/psdefvaluerules/ValueRule7",
"ruleInfo" : ">5并且不等于20",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field6",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule8",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"name" : "field7值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "OR",
"condType" : "GROUP",
"name" : "[条件组]OR",
"getPSDEFVRConditions" : [ {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 20.0,
"minValue" : 10.0,
"name" : "[数值范围] 大于等于 10.0 且 小于等于 20.0",
"ruleInfo" : "数值必须大于等于[10.0]且小于等于[20.0]",
"includeMaxValue" : true,
"includeMinValue" : true
}, {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 40.0,
"minValue" : 30.0,
"name" : "[数值范围] 大于等于 30.0 且 小于等于 40.0",
"ruleInfo" : "数值必须大于等于[30.0]且小于等于[40.0]",
"includeMaxValue" : true,
"includeMinValue" : true
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
......@@ -328,6 +209,37 @@
},
"getPSDEFormItemName" : "field4",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"name" : "amount值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "EQ",
"condType" : "SIMPLE",
"dEFName" : "AMOUNT",
"name" : "[常规条件] 等于(=) (100)",
"paramType" : "SRCENTITYFIELD",
"paramValue" : "100",
"ruleInfo" : "amount等于100"
} ],
"ruleInfo" : "amount等于100"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/AMOUNT/psdefvaluerules/ValueRule",
"ruleInfo" : "amount等于100",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "amount",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
......@@ -391,6 +303,94 @@
},
"getPSDEFormItemName" : "field8",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule7",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD6/psdefvaluerules/ValueRule7",
"name" : "field6值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "[条件组]AND",
"getPSDEFVRConditions" : [ {
"condOp" : "NOTEQ",
"condType" : "SIMPLE",
"dEFName" : "FIELD6",
"name" : "[常规条件] 不等于(<>) (20)",
"paramValue" : "20"
}, {
"condOp" : "GT",
"condType" : "SIMPLE",
"dEFName" : "FIELD6",
"name" : "[常规条件] 大于(>) (5)",
"paramValue" : "5"
} ],
"ruleInfo" : ">5并且不等于20"
} ],
"ruleInfo" : ">5并且不等于20"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD6/psdefvaluerules/ValueRule7",
"ruleInfo" : ">5并且不等于20",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field6",
"valueRuleType" : "DEFVALUERULE"
}, {
"checkMode" : 3,
"name" : "表单项值规则",
"getPSDEFValueRule" : {
"codeName" : "ValueRule8",
"mOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"name" : "field7值规则",
"getPSDEFVRGroupCondition" : {
"condOp" : "AND",
"condType" : "GROUP",
"name" : "默认组",
"getPSDEFVRConditions" : [ {
"condOp" : "OR",
"condType" : "GROUP",
"name" : "[条件组]OR",
"getPSDEFVRConditions" : [ {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 20.0,
"minValue" : 10.0,
"name" : "[数值范围] 大于等于 10.0 且 小于等于 20.0",
"ruleInfo" : "数值必须大于等于[10.0]且小于等于[20.0]",
"includeMaxValue" : true,
"includeMinValue" : true
}, {
"condType" : "VALUERANGE2",
"dEFName" : "FIELD7",
"maxValue" : 40.0,
"minValue" : 30.0,
"name" : "[数值范围] 大于等于 30.0 且 小于等于 40.0",
"ruleInfo" : "数值必须大于等于[30.0]且小于等于[40.0]",
"includeMaxValue" : true,
"includeMinValue" : true
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
} ],
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])"
},
"rTMOSFilePath" : "psmodules/Test/psdataentities/TEST/psdefields/FIELD7/psdefvaluerules/ValueRule8",
"ruleInfo" : "(数值必须大于等于[10.0]且小于等于[20.0] 或者 数值必须大于等于[30.0]且小于等于[40.0])",
"checkDefault" : false,
"defaultMode" : false,
"enableBackend" : true,
"enableFront" : true
},
"getPSDEFormItemName" : "field7",
"valueRuleType" : "DEFVALUERULE"
} ],
"getPSDEFormItems" : [ {
"id" : "srfupdatedate",
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册