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

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

上级 69ee7db8
...@@ -13,13 +13,13 @@ ...@@ -13,13 +13,13 @@
"dependencies": { "dependencies": {
"@floating-ui/dom": "^1.0.11", "@floating-ui/dom": "^1.0.11",
"@ibiz-template/command": "^0.0.1-beta.50", "@ibiz-template/command": "^0.0.1-beta.50",
"@ibiz-template/controller": "^0.0.1-beta.128", "@ibiz-template/controller": "^0.0.1-beta.129",
"@ibiz-template/core": "^0.0.1-beta.128", "@ibiz-template/core": "^0.0.1-beta.129",
"@ibiz-template/model": "^0.0.1-beta.128", "@ibiz-template/model": "^0.0.1-beta.129",
"@ibiz-template/runtime": "^0.0.1-beta.128", "@ibiz-template/runtime": "^0.0.1-beta.129",
"@ibiz-template/service": "^0.0.1-beta.128", "@ibiz-template/service": "^0.0.1-beta.129",
"@ibiz-template/theme": "^0.0.1-beta.128", "@ibiz-template/theme": "^0.0.1-beta.129",
"@ibiz-template/vue-util": "^0.0.1-beta.128", "@ibiz-template/vue-util": "^0.0.1-beta.129",
"@ibiz/dynamic-model-api": "^2.1.28", "@ibiz/dynamic-model-api": "^2.1.28",
"@riophae/vue-treeselect": "^0.4.0", "@riophae/vue-treeselect": "^0.4.0",
"dayjs": "^1.11.7", "dayjs": "^1.11.7",
......
此差异已折叠。
...@@ -97,6 +97,7 @@ import { ...@@ -97,6 +97,7 @@ import {
IBizPickerLink, IBizPickerLink,
IBizCheckbox, IBizCheckbox,
IBizDatePicker, IBizDatePicker,
IBizDateRange,
IBizDropdown, IBizDropdown,
IBizFileUpload, IBizFileUpload,
IBizInput, IBizInput,
...@@ -213,6 +214,7 @@ export const AppRegister = { ...@@ -213,6 +214,7 @@ export const AppRegister = {
v.component('IBizCheckbox', IBizCheckbox); v.component('IBizCheckbox', IBizCheckbox);
v.component('IBizRadio', IBizRadio); v.component('IBizRadio', IBizRadio);
v.component('IBizDatePicker', IBizDatePicker); v.component('IBizDatePicker', IBizDatePicker);
v.component('IBizDateRange', IBizDateRange);
v.component('IBizDropdown', IBizDropdown); v.component('IBizDropdown', IBizDropdown);
v.component('IBizPicker', IBizPicker); v.component('IBizPicker', IBizPicker);
v.component('IBizPickerDropDown', IBizPickerDropDown); v.component('IBizPickerDropDown', IBizPickerDropDown);
......
...@@ -250,9 +250,11 @@ export const ExtendActionTimeLine = defineComponent({ ...@@ -250,9 +250,11 @@ export const ExtendActionTimeLine = defineComponent({
</div> </div>
<div class={ns.be('task', 'bottom')}> <div class={ns.be('task', 'bottom')}>
<div class={ns.be('task', 'full-message')}> <div class={ns.be('task', 'full-message')}>
{task.fullMessage {task.fullMessage ? (
? `审批意见: ${task.fullMessage}` `审批意见: ${task.fullMessage}`
: task.fullMessage} ) : (
<div>&nbsp;</div>
)}
</div> </div>
</div> </div>
{task.tasks && task.tasks.length >= 1 && ( {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'; ...@@ -7,4 +7,5 @@ export * from './date-picker';
export * from './dropdown-list'; export * from './dropdown-list';
export * from './data-picker'; export * from './data-picker';
export * from './upload'; export * from './upload';
export * from './date-range';
export { NotSupportedEditor } from './not-supported-editor/not-supported-editor'; export { NotSupportedEditor } from './not-supported-editor/not-supported-editor';
...@@ -113,5 +113,6 @@ export const IViewRegister = { ...@@ -113,5 +113,6 @@ export const IViewRegister = {
} }
}); });
v.component('ITimePicker', TimePicker); 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'; ...@@ -6,6 +6,7 @@ import { DropDownListEditorProvider } from './drop-down-list-provider';
import { DatePickerEditorProvider } from './date-picker-provider'; import { DatePickerEditorProvider } from './date-picker-provider';
import { FileUploaderEditorProvider } from './file-uploader-provider'; import { FileUploaderEditorProvider } from './file-uploader-provider';
import { DataPickerEditorProvider } from './data-picker-provider'; import { DataPickerEditorProvider } from './data-picker-provider';
import { DateRangeEditorProvider } from './date-range-provider';
/** /**
* 预置默认的编辑器适配器 * 预置默认的编辑器适配器
...@@ -54,6 +55,10 @@ export function presetEditorProvider(): void { ...@@ -54,6 +55,10 @@ export function presetEditorProvider(): void {
editorRegister.register('DATEPICKEREX_NODAY', datePickerProvider); editorRegister.register('DATEPICKEREX_NODAY', datePickerProvider);
editorRegister.register('DATEPICKEREX_NODAY_NOSECOND', datePickerProvider); editorRegister.register('DATEPICKEREX_NODAY_NOSECOND', datePickerProvider);
// 日期范围选择器
const dateRangeEditorProvider = new DateRangeEditorProvider();
editorRegister.register('DATERANGE', dateRangeEditorProvider);
// 文件上传 // 文件上传
editorRegister.register( editorRegister.register(
'FILEUPLOADER', 'FILEUPLOADER',
......
...@@ -1432,16 +1432,16 @@ ...@@ -1432,16 +1432,16 @@
"codeName" : "VMGroup2", "codeName" : "VMGroup2",
"name" : "视图消息组2", "name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息", "name" : "视图消息2",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg2" "id" : "ViewMsg3"
} }
}, { }, {
"name" : "视图消息2", "name" : "视图消息",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg3" "id" : "ViewMsg2"
} }
} ] } ]
}, { }, {
......
...@@ -11189,16 +11189,16 @@ ...@@ -11189,16 +11189,16 @@
"codeName" : "VMGroup2", "codeName" : "VMGroup2",
"name" : "视图消息组2", "name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息", "name" : "视图消息2",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg2" "id" : "ViewMsg3"
} }
}, { }, {
"name" : "视图消息2", "name" : "视图消息",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg3" "id" : "ViewMsg2"
} }
} ] } ]
}, { }, {
...@@ -11259,6 +11259,12 @@ ...@@ -11259,6 +11259,12 @@
"codeName" : "VMGroup4", "codeName" : "VMGroup4",
"name" : "视图消息位置测试", "name" : "视图消息位置测试",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
}
}, {
"name" : "消息位置-视图上方", "name" : "消息位置-视图上方",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
...@@ -11276,34 +11282,21 @@ ...@@ -11276,34 +11282,21 @@
"modelref" : true, "modelref" : true,
"id" : "ViewMsg10" "id" : "ViewMsg10"
} }
}, {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg9"
}
} ] } ]
}, { }, {
"codeName" : "VMGroup8", "codeName" : "VMGroup8",
"name" : "【静态测试】", "name" : "【静态测试】",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "消息类型-警告信息", "name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg5"
},
"position" : "POPUP"
}, {
"name" : "关闭模式-本次删除-上方-警告",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg13" "id" : "ViewMsg8"
} }
}, { }, {
"name" : "消息类型-错误信息", "name" : "消息类型-常规信息",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg6" "id" : "ViewMsg4"
}, },
"position" : "POPUP" "position" : "POPUP"
}, { }, {
...@@ -11313,17 +11306,17 @@ ...@@ -11313,17 +11306,17 @@
"id" : "ViewMsg11" "id" : "ViewMsg11"
} }
}, { }, {
"name" : "消息类型-常规信息", "name" : "消息类型-警告信息",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg4" "id" : "ViewMsg5"
}, },
"position" : "POPUP" "position" : "POPUP"
}, { }, {
"name" : "消息位置-视图下方", "name" : "消息位置-视图内容区",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg8" "id" : "ViewMsg9"
} }
}, { }, {
"name" : "关闭模式-默认删除-上方-错误", "name" : "关闭模式-默认删除-上方-错误",
...@@ -11332,22 +11325,23 @@ ...@@ -11332,22 +11325,23 @@
"id" : "ViewMsg12" "id" : "ViewMsg12"
} }
}, { }, {
"name" : "消息位置-视图内容区", "name" : "关闭模式-本次删除-上方-警告",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
"id" : "ViewMsg9" "id" : "ViewMsg13"
} }
}, {
"name" : "消息类型-错误信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg6"
},
"position" : "POPUP"
} ] } ]
}, { }, {
"codeName" : "VMGroup5", "codeName" : "VMGroup5",
"name" : "视图消息关闭模式", "name" : "视图消息关闭模式",
"getPSAppViewMsgGroupDetails" : [ { "getPSAppViewMsgGroupDetails" : [ {
"name" : "关闭模式-无删除",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
}
}, {
"name" : "关闭模式-默认删除", "name" : "关闭模式-默认删除",
"getPSAppViewMsg" : { "getPSAppViewMsg" : {
"modelref" : true, "modelref" : true,
...@@ -11359,6 +11353,12 @@ ...@@ -11359,6 +11353,12 @@
"modelref" : true, "modelref" : true,
"id" : "ViewMsg13" "id" : "ViewMsg13"
} }
}, {
"name" : "关闭模式-无删除",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
}
} ] } ]
}, { }, {
"codeName" : "VMGroup6", "codeName" : "VMGroup6",
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册