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

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

上级 0884a14d
......@@ -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.118",
"@ibiz-template/core": "^0.0.1-beta.118",
"@ibiz-template/model": "^0.0.1-beta.118",
"@ibiz-template/runtime": "^0.0.1-beta.118",
"@ibiz-template/service": "^0.0.1-beta.118",
"@ibiz-template/theme": "^0.0.1-beta.118",
"@ibiz-template/vue-util": "^0.0.1-beta.118",
"@ibiz-template/controller": "^0.0.1-beta.121",
"@ibiz-template/core": "^0.0.1-beta.121",
"@ibiz-template/model": "^0.0.1-beta.121",
"@ibiz-template/runtime": "^0.0.1-beta.121",
"@ibiz-template/service": "^0.0.1-beta.121",
"@ibiz-template/theme": "^0.0.1-beta.121",
"@ibiz-template/vue-util": "^0.0.1-beta.121",
"@ibiz/dynamic-model-api": "^2.1.28",
"@riophae/vue-treeselect": "^0.4.0",
"dayjs": "^1.11.7",
......
此差异已折叠。
......@@ -46,7 +46,7 @@ export const ExtendActionTimeLine = defineComponent({
* @param {IData[]} handleTasks
* @return {*}
*/
const handleVal = (handleTasks: IData[]) => {
const handleVal = (handleTasks: IData[], isChild: boolean = false) => {
const commentsData: IData[] = [];
let tasks = clone(handleTasks);
if (tasks.length > 0) {
......@@ -55,8 +55,8 @@ export const ExtendActionTimeLine = defineComponent({
if (task.usertasks) {
// 有子流程没有comments 递归处理
const copyTasks = clone(task.usertasks);
Object.assign(task, { tasks: handleVal(copyTasks) });
task.isShow = false;
Object.assign(task, { tasks: handleVal(copyTasks, true) });
task.isShow = true;
}
if (task.identitylinks.length === 0 && task.comments.length === 0) {
Object.assign(task, { taskName: task.userTaskName });
......@@ -78,7 +78,12 @@ export const ExtendActionTimeLine = defineComponent({
Object.assign(comment, { taskName: task.userTaskName });
});
task.comments.sort(sortData);
commentsData.push(...task.comments);
task.comments.forEach((comment: IData) => {
if (isChild && comment.type === '启动流程') {
return;
}
commentsData.push(comment);
});
}
});
return commentsData;
......
......@@ -6,18 +6,11 @@ import '@ibiz-template/theme/style/components/layout/app-layout/app-layout.scss'
function renderLogo(ns: Namespace, model: IndexViewModel) {
return (
<div class={[ns.e('logo'), model.source?.mainMenuAlign?.toLowerCase()]}>
<div class={ns.e('logo')}>
{model.appIconPath ? (
<img class={ns.e('logo-img')} src={model.appIconPath}></img>
) : null}
<div
class={[
ns.e('logo-caption'),
model.source?.mainMenuAlign?.toLowerCase(),
]}
>
{model.caption}
</div>
<div class={ns.e('logo-caption')}>{model.caption}</div>
</div>
);
}
......@@ -56,74 +49,62 @@ export const AppLayout = defineComponent({
return { ns, collapseChange, isBlank, collapseMenus };
},
render() {
if (this.isComplete) {
let content = null;
if (this.model.source.mainMenuAlign === 'CENTER') {
content = this.$slots.menu;
} else {
content = [
<i-sider
hide-trigger
class={[
this.ns.b('nav'),
this.ns.is('collapse', this.collapseChange),
]}
value={this.collapseChange}
key='1'
>
{renderLogo(this.ns, this.model)}
{this.$slots.menu}
</i-sider>,
<i-layout class={[this.ns.b('content')]} key='2'>
<i-header class={this.ns.b('header')} key='3'>
<div class={this.ns.be('header', 'left')}>
{renderLogo(this.ns, this.model)}
<div class={this.ns.be('header', 'collapse-icon')}>
{!this.collapseChange ? (
<ion-icon
src={'./assets/img/menu-fold.svg'}
on-click={() => this.collapseMenus()}
/>
) : (
<ion-icon
src={'./assets/img/menu-unfold.svg'}
on-click={() => this.collapseMenus()}
/>
)}
</div>
{this.model.source.mainMenuAlign === 'TOP' ? (
<i-menu
class={this.ns.be('header', 'menu')}
mode='horizontal'
active-name='1'
></i-menu>
) : null}
</div>
<div class={this.ns.be('header', 'right')}>
<app-user />
</div>
</i-header>
<i-content class={this.ns.be('content', 'main')} key='4'>
{this.$slots.tabPageExp}
{this.$slots.default}
</i-content>
{/* <i-footer class={this.ns.b('footer')}>Footer</i-footer> */}
</i-layout>,
];
}
return (
<i-layout
return this.isComplete ? (
<i-layout
class={[
this.ns.b(),
this.isBlank ? this.ns.m('blank') : '',
this.ns.is('collapse', this.collapseChange),
this.ns.is('tab', this.isShowTabPageExp),
]}
>
<i-sider
hide-trigger
class={[
this.ns.b(),
this.isBlank ? this.ns.m('blank') : '',
this.ns.b('nav'),
this.ns.is('collapse', this.collapseChange),
this.ns.is('tab', this.isShowTabPageExp),
]}
value={this.collapseChange}
>
{content}
{renderLogo(this.ns, this.model)}
{this.$slots.menu}
</i-sider>
<i-layout class={[this.ns.b('content')]}>
<i-header class={this.ns.b('header')}>
<div class={this.ns.be('header', 'left')}>
{renderLogo(this.ns, this.model)}
<div class={this.ns.be('header', 'collapse-icon')}>
{!this.collapseChange ? (
<ion-icon
src={'./assets/img/menu-fold.svg'}
on-click={() => this.collapseMenus()}
/>
) : (
<ion-icon
src={'./assets/img/menu-unfold.svg'}
on-click={() => this.collapseMenus()}
/>
)}
</div>
{this.model.source.mainMenuAlign === 'TOP' ? (
<i-menu
class={this.ns.be('header', 'menu')}
mode='horizontal'
active-name='1'
></i-menu>
) : null}
</div>
<div class={this.ns.be('header', 'right')}>
<app-user />
</div>
</i-header>
<i-content class={this.ns.be('content', 'main')}>
{this.$slots.tabPageExp}
{this.$slots.default}
</i-content>
{/* <i-footer class={this.ns.b('footer')}>Footer</i-footer> */}
</i-layout>
);
}
return null;
</i-layout>
) : null;
},
});
......@@ -33,6 +33,7 @@ export const FormItem = defineComponent({
// 编辑器内容
let editor = null;
if (this.c.form.isLoaded) {
this.controller.editor?.calcPlaceHolder(this.controller.disabled);
if (this.controller.editorProvider) {
editor = h(this.controller.editorProvider.formEditor, {
props: {
......
......@@ -30,6 +30,7 @@ export function generateColumnData(column: GridColumnModel, c: GridController) {
resizable: true,
sortable: !c.noSort && column.source.enableSort ? 'custom' : false,
columnType: column.source.columnType,
userParams: column.source.userParams,
};
if (columnChildren.length > 0) {
Object.assign(columnData, { children: columnChildren });
......@@ -109,7 +110,10 @@ export function useITableColumns(c: GridController) {
// 如果是操作列,固定右边
const uaColumn = copy.find(column => column.columnType === 'UAGRIDCOLUMN');
if (uaColumn) {
uaColumn.fixed = 'right';
const userParams = uaColumn.userParams;
if (userParams && userParams.fixed === 'true') {
uaColumn.fixed = 'right';
}
}
return copy;
});
......
<script setup lang="ts">
import { ViewNeuron } from '@ibiz-template/controller';
import { useIndexViewController } from '@ibiz-template/vue-util';
import { useIndexViewController, useNamespace } from '@ibiz-template/vue-util';
import {
computed,
ComputedRef,
......@@ -12,6 +12,7 @@ import {
import { createUUID } from 'qx-util';
import { useIndexRouteManage } from './index-view-default';
import { useIndexExpRouteManage } from './index-view-exp';
import '@ibiz-template/theme/style/components/views/index-view/index-view.scss';
interface IndexViewProps {
context: IContext;
......@@ -155,7 +156,7 @@ onMounted(() => {
}
}, 300);
});
const ns = useNamespace('index-view');
// 菜单收缩变化
const collapseChange = (collapse: boolean) => {
c.collapseChange = collapse;
......@@ -163,17 +164,59 @@ const collapseChange = (collapse: boolean) => {
</script>
<template>
<AppLayout
:is-complete="c.complete"
:model="c.model"
:class="c.model?.source?.mainMenuAlign?.toLowerCase()"
:is-show-tab-page-exp="isShowTabPageExp"
@onCollapseChange="collapseChange"
>
<template v-if="c.complete">
<div :class="ns.b()">
<AppLayout
v-if="c.model?.source?.mainMenuAlign !== 'CENTER'"
:is-complete="c.complete"
:model="c.model"
:class="c.model?.source?.mainMenuAlign?.toLowerCase()"
:is-show-tab-page-exp="isShowTabPageExp"
@onCollapseChange="collapseChange"
>
<template v-if="c.complete">
<app-menu
v-if="c.complete"
slot="menu"
:current-path="currentPath"
:model-data="c.model.appMenu"
:context="c.context"
:collapse-change="c.collapseChange"
:menu-model="c.model?.source"
@menuRouteChange="onMenuRouteChange"
></app-menu>
<tab-page-exp
v-if="isShowTabPageExp"
slot="tabPageExp"
:route-msgs="routeMsgs"
:current-key="currentKey"
@tab-click="handleTabClick"
@tab-delete="handleTabDelete"
@close-all="handleCloseAll"
@close-other="handleCloseOther"
></tab-page-exp>
<AppKeepAlive
v-if="!isShowTabPageExp"
:key="appKeepAliveKey"
:key-list="keyHistory"
>
<router-view
:key="currentKey"
@neuronInit="onCreated"
@viewFound="onViewFound"
/>
</AppKeepAlive>
<AppKeepAlive v-else :key-list="keyHistory">
<router-view
:key="currentKey"
@neuronInit="onCreated"
@viewFound="onViewFound"
/>
</AppKeepAlive>
</template>
</AppLayout>
<div v-else>
<app-menu
v-if="c.complete"
slot="menu"
:current-path="currentPath"
:model-data="c.model.appMenu"
:context="c.context"
......@@ -181,34 +224,6 @@ const collapseChange = (collapse: boolean) => {
:menu-model="c.model?.source"
@menuRouteChange="onMenuRouteChange"
></app-menu>
<tab-page-exp
v-if="isShowTabPageExp"
slot="tabPageExp"
:route-msgs="routeMsgs"
:current-key="currentKey"
@tab-click="handleTabClick"
@tab-delete="handleTabDelete"
@close-all="handleCloseAll"
@close-other="handleCloseOther"
></tab-page-exp>
<AppKeepAlive
v-if="!isShowTabPageExp"
:key="appKeepAliveKey"
:key-list="keyHistory"
>
<router-view
:key="currentKey"
@neuronInit="onCreated"
@viewFound="onViewFound"
/>
</AppKeepAlive>
<AppKeepAlive v-else :key-list="keyHistory">
<router-view
:key="currentKey"
@neuronInit="onCreated"
@viewFound="onViewFound"
/>
</AppKeepAlive>
</template>
</AppLayout>
</div>
</div>
</template>
......@@ -1432,16 +1432,16 @@
"codeName" : "VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
}, {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
} ]
}, {
......
......@@ -9664,16 +9664,16 @@
"codeName" : "VMGroup2",
"name" : "视图消息组2",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "视图消息2",
"name" : "视图消息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg3"
"id" : "ViewMsg2"
}
}, {
"name" : "视图消息",
"name" : "视图消息2",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg2"
"id" : "ViewMsg3"
}
} ]
}, {
......@@ -9702,22 +9702,22 @@
"codeName" : "VMGroup3",
"name" : "视图消息类型测试",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "消息类型-警告信息",
"name" : "消息类型-常规信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg5"
"id" : "ViewMsg4"
}
}, {
"name" : "消息类型-错误信息",
"name" : "消息类型-警告信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg6"
"id" : "ViewMsg5"
}
}, {
"name" : "消息类型-常规信息",
"name" : "消息类型-错误信息",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg4"
"id" : "ViewMsg6"
}
} ]
}, {
......@@ -9762,18 +9762,6 @@
"codeName" : "VMGroup8",
"name" : "【静态测试】",
"getPSAppViewMsgGroupDetails" : [ {
"name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg8"
}
}, {
"name" : "关闭模式-本次删除-上方-警告",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg13"
}
}, {
"name" : "消息类型-警告信息",
"getPSAppViewMsg" : {
"modelref" : true,
......@@ -9787,12 +9775,6 @@
"id" : "ViewMsg6"
},
"position" : "POPUP"
}, {
"name" : "关闭模式-无删除-上方-常规",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
}
}, {
"name" : "消息类型-常规信息",
"getPSAppViewMsg" : {
......@@ -9800,6 +9782,12 @@
"id" : "ViewMsg4"
},
"position" : "POPUP"
}, {
"name" : "关闭模式-无删除-上方-常规",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg11"
}
}, {
"name" : "消息位置-视图内容区",
"getPSAppViewMsg" : {
......@@ -9812,6 +9800,18 @@
"modelref" : true,
"id" : "ViewMsg12"
}
}, {
"name" : "消息位置-视图下方",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg8"
}
}, {
"name" : "关闭模式-本次删除-上方-警告",
"getPSAppViewMsg" : {
"modelref" : true,
"id" : "ViewMsg13"
}
} ]
}, {
"codeName" : "VMGroup5",
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册