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

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

上级 69ee7db8
......@@ -13,13 +13,13 @@
"dependencies": {
"@floating-ui/dom": "^1.0.11",
"@ibiz-template/command": "^0.0.1-beta.50",
"@ibiz-template/controller": "^0.0.1-beta.128",
"@ibiz-template/core": "^0.0.1-beta.128",
"@ibiz-template/model": "^0.0.1-beta.128",
"@ibiz-template/runtime": "^0.0.1-beta.128",
"@ibiz-template/service": "^0.0.1-beta.128",
"@ibiz-template/theme": "^0.0.1-beta.128",
"@ibiz-template/vue-util": "^0.0.1-beta.128",
"@ibiz-template/controller": "^0.0.1-beta.129",
"@ibiz-template/core": "^0.0.1-beta.129",
"@ibiz-template/model": "^0.0.1-beta.129",
"@ibiz-template/runtime": "^0.0.1-beta.129",
"@ibiz-template/service": "^0.0.1-beta.129",
"@ibiz-template/theme": "^0.0.1-beta.129",
"@ibiz-template/vue-util": "^0.0.1-beta.129",
"@ibiz/dynamic-model-api": "^2.1.28",
"@riophae/vue-treeselect": "^0.4.0",
"dayjs": "^1.11.7",
......
此差异已折叠。
......@@ -97,6 +97,7 @@ import {
IBizPickerLink,
IBizCheckbox,
IBizDatePicker,
IBizDateRange,
IBizDropdown,
IBizFileUpload,
IBizInput,
......@@ -213,6 +214,7 @@ export const AppRegister = {
v.component('IBizCheckbox', IBizCheckbox);
v.component('IBizRadio', IBizRadio);
v.component('IBizDatePicker', IBizDatePicker);
v.component('IBizDateRange', IBizDateRange);
v.component('IBizDropdown', IBizDropdown);
v.component('IBizPicker', IBizPicker);
v.component('IBizPickerDropDown', IBizPickerDropDown);
......
......@@ -250,9 +250,11 @@ export const ExtendActionTimeLine = defineComponent({
</div>
<div class={ns.be('task', 'bottom')}>
<div class={ns.be('task', 'full-message')}>
{task.fullMessage
? `审批意见: ${task.fullMessage}`
: task.fullMessage}
{task.fullMessage ? (
`审批意见: ${task.fullMessage}`
) : (
<div>&nbsp;</div>
)}
</div>
</div>
{task.tasks && task.tasks.length >= 1 && (
......
import { ref, watch, defineComponent, Ref, computed } from 'vue';
import {
getDatePickerProps,
getEditorEmits,
useNamespace,
} from '@ibiz-template/vue-util';
import '@ibiz-template/theme/style/components/editor/ibiz-date-range/ibiz-date-range.scss';
export const IBizDateRange = defineComponent({
name: 'IBizDateRange',
props: getDatePickerProps(),
emits: getEditorEmits(),
setup(props, { emit }) {
const ns = useNamespace('date-range');
const c = props.controller;
const editorModel = c!.model;
// 类型
const type = ref('daterange');
switch (editorModel.editorType) {
case 'DATERANGE':
type.value = 'datetimerange';
break;
case 'DATERANGE_NOTIME':
type.value = 'daterange';
break;
default:
type.value = 'datetimerange';
}
// 格式
const format = ref('yyyy-MM-dd');
// 值格式化
const valueFormat = c!.valueFormat;
if (valueFormat) {
// 根据值格式化改变type
if (valueFormat === 'YYYY-MM') {
type.value = 'month';
} else if (valueFormat === 'YYYY') {
type.value = 'year';
}
const tempFormat: string = valueFormat
.replace('YYYY', 'yyyy')
.replace('DD', 'dd');
format.value = tempFormat;
}
// 值分割符
let valueSeparator = ',';
// 在范围选择器里取消两个日期面板之间的联动
let unlinkPanels = false;
// 选择范围时的分隔符
let rangeSeparator = '至';
if (editorModel.editorParams) {
if (editorModel.editorParams.valueSeparator) {
valueSeparator = editorModel.editorParams.valueSeparator;
}
if (editorModel.editorParams.rangeSeparator) {
rangeSeparator = editorModel.editorParams.rangeSeparator;
}
if (editorModel.editorParams.unlinkPanels) {
unlinkPanels = Object.is('true', editorModel.editorParams.unlinkPanels);
}
}
// 关系表单项集合
const refFormItem: Ref<string[]> = ref([]);
const editorItems = editorModel.source.getPSEditorItems();
if (editorItems && editorItems.length > 0) {
const editorItemNames: string[] = editorItems.map(
(item: IData) => item.id,
);
refFormItem.value = editorItemNames;
}
const curValue = computed({
get() {
let value: string[] = [];
if (refFormItem.value.length > 0) {
refFormItem.value.forEach((name: string) => {
if (props.data[name]) {
value.push(props.data[name]);
}
});
} else if (props.value && typeof props.value === 'string') {
value = props.value.split(valueSeparator);
}
return value;
},
set(dates: string[]) {
if (dates && dates.length > 0) {
emit('change', dates.join(valueSeparator));
if (refFormItem.value.length > 0) {
dates.forEach((date: string, index: number) => {
emit('change', date, refFormItem.value[index]);
});
}
} else {
emit('change', null);
if (refFormItem.value.length > 0) {
refFormItem.value.forEach((date: string, index: number) => {
emit('change', null, refFormItem.value[index]);
});
}
}
},
});
// 处理值变更
const handleChange = (dates: string[], _dateType: IData) => {
curValue.value = dates;
};
const onOpenChange = (isOpen: boolean) => {
emit('operate', isOpen);
};
const inputRef = ref();
if (props.autoFocus) {
watch(inputRef, newVal => {
if (newVal) {
const input = newVal.$el.getElementsByTagName('input')[0];
input.click();
}
});
}
return {
ns,
c,
editorModel,
type,
format,
handleChange,
onOpenChange,
inputRef,
rangeSeparator,
curValue,
unlinkPanels,
};
},
render() {
return (
<div
class={[
this.ns.b(),
this.disabled ? this.ns.m('disabled') : '',
this.readonly ? this.ns.m('readonly') : '',
]}
>
<i-date-picker
ref='inputRef'
value={this.curValue}
transfer
type={this.type}
format={this.format}
placeholder={this.c!.placeHolder}
disabled={this.disabled}
readonly={this.readonly}
separator={this.rangeSeparator}
split-panels={this.unlinkPanels}
on-on-open-change={this.onOpenChange} // 弹出日历和关闭日历时触发
on-on-change={this.handleChange} // 日期发生变化时触发
></i-date-picker>
</div>
);
},
});
export { IBizDateRange } from './ibiz-date-range/ibiz-date-range';
......@@ -7,4 +7,5 @@ export * from './date-picker';
export * from './dropdown-list';
export * from './data-picker';
export * from './upload';
export * from './date-range';
export { NotSupportedEditor } from './not-supported-editor/not-supported-editor';
......@@ -113,5 +113,6 @@ export const IViewRegister = {
}
});
v.component('ITimePicker', TimePicker);
v.component('IDatePicker', DatePicker);
},
};
import { DatePickerEditorModel } from '@ibiz-template/model';
import {
DateRangeEditorController,
FormItemController,
GridEditItemController,
IEditorProvider,
} from '@ibiz-template/controller';
/**
* 日期范围选择器编辑器适配器
*
* @author lxm
* @date 2022-09-19 22:09:03
* @export
* @class DatePickerEditorProvider
* @implements {EditorProvider}
*/
export class DateRangeEditorProvider implements IEditorProvider {
formEditor: string = 'IBizDateRange';
gridEditor: string = 'IBizGridDateRange';
async createController(
editorModel: DatePickerEditorModel,
parentController: FormItemController | GridEditItemController,
): Promise<DateRangeEditorController> {
const c = new DateRangeEditorController(editorModel, parentController);
await c.init();
return c;
}
}
......@@ -6,6 +6,7 @@ import { DropDownListEditorProvider } from './drop-down-list-provider';
import { DatePickerEditorProvider } from './date-picker-provider';
import { FileUploaderEditorProvider } from './file-uploader-provider';
import { DataPickerEditorProvider } from './data-picker-provider';
import { DateRangeEditorProvider } from './date-range-provider';
/**
* 预置默认的编辑器适配器
......@@ -54,6 +55,10 @@ export function presetEditorProvider(): void {
editorRegister.register('DATEPICKEREX_NODAY', datePickerProvider);
editorRegister.register('DATEPICKEREX_NODAY_NOSECOND', datePickerProvider);
// 日期范围选择器
const dateRangeEditorProvider = new DateRangeEditorProvider();
editorRegister.register('DATERANGE', dateRangeEditorProvider);
// 文件上传
editorRegister.register(
'FILEUPLOADER',
......
......@@ -1432,16 +1432,16 @@
"codeName" : "VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
}, {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
} ]
}, {
......
......@@ -11189,16 +11189,16 @@
"codeName" : "VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
}, {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
} ]
}, {
......@@ -11259,6 +11259,12 @@
"codeName" : "VMGroup4",
"name" : "视图消息位置测试",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
}
}, {
"name" : "消息位置-视图上方",
"getPSAppViewMsg" : {
"modelref" : true,
......@@ -11276,34 +11282,21 @@
"modelref" : true,
"id" : "ViewMsg10"
}
}, {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
}
} ]
}, {
"codeName" : "VMGroup8",
"name" : "【静态测试】",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "消息类型-警告信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg5"
},
"position" : "POPUP"
}, {
"name" : "关闭模式-本次删除-上方-警告",
"name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg13"
"id" : "ViewMsg8"
}
}, {
"name" : "消息类型-错误信息",
"name" : "消息类型-常规信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg6"
"id" : "ViewMsg4"
},
"position" : "POPUP"
}, {
......@@ -11313,17 +11306,17 @@
"id" : "ViewMsg11"
}
}, {
"name" : "消息类型-常规信息",
"name" : "消息类型-警告信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg4"
"id" : "ViewMsg5"
},
"position" : "POPUP"
}, {
"name" : "消息位置-视图下方",
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg8"
"id" : "ViewMsg9"
}
}, {
"name" : "关闭模式-默认删除-上方-错误",
......@@ -11332,22 +11325,23 @@
"id" : "ViewMsg12"
}
}, {
"name" : "消息位置-视图内容区",
"name" : "关闭模式-本次删除-上方-警告",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
"id" : "ViewMsg13"
}
}, {
"name" : "消息类型-错误信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg6"
},
"position" : "POPUP"
} ]
}, {
"codeName" : "VMGroup5",
"name" : "视图消息关闭模式",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "关闭模式-无删除",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
}
}, {
"name" : "关闭模式-默认删除",
"getPSAppViewMsg" : {
"modelref" : true,
......@@ -11359,6 +11353,12 @@
"modelref" : true,
"id" : "ViewMsg13"
}
}, {
"name" : "关闭模式-无删除",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
}
} ]
}, {
"codeName" : "VMGroup6",
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册