commit:支持后台扩展类

This commit is contained in:
Jerry
2024-09-09 21:28:59 +08:00
parent b7362c6b79
commit 7fe3091e6e
16 changed files with 1145 additions and 68 deletions

View File

@@ -39,6 +39,7 @@ $table-row-height: 50px;
$--color-white: #FFF !default;
$--border-color-base: #DCDFE6;
$--color-primary: #F70 !default;
$--color-sidebar-title-text: #FFF;
$--color-menu-background: #2D3039;
$--color-text-secondary: #909399 !default;
@@ -57,71 +58,71 @@ $--color-primary-light-9: color-mix(in srgb, $--color-white 90%, $--color-primar
/**
* 弹窗样式封装的layer的弹窗
**/
.layui-layer-page .layui-layer-title{
body .layui-layer-page .layui-layer-title{
border:1px solid #01000000;
border-radius: 4px 4px 0 0;
background-color: #f8f8f8;
}
.layui-layer-page .slot-fragment {
body .layui-layer-page .slot-fragment {
height: 100%;
}
.layui-layer-page .layui-layer-setwin {color: #fff}
body .layui-layer-page .layui-layer-setwin {color: #fff}
.layui-layer-page {
body .layui-layer-page {
border:1px solid #01000000;
border-radius: 4px;
}
.layui-layer-page .layui-layer-content {
body .layui-layer-page .layui-layer-content {
padding: $box-padding-size;
}
.layui-layer-page.one_to_one_query .layui-layer-content {
body .layui-layer-page.one_to_one_query .layui-layer-content {
padding: 0;
}
.layui-layer-page.layui-layer-iframe .layui-layer-content {
body .layui-layer-page.layui-layer-iframe .layui-layer-content {
padding: 0!important;
}
/**
* 左树右表弹窗样式
*/
.layer-advance-dialog {
body .layer-advance-dialog {
background-color: #F8F8F8;
border:1px solid #01000000;
border-radius: 4px;
}
.layer-advance-dialog .layui-layer-title{
body .layer-advance-dialog .layui-layer-title{
border:1px solid #01000000;
border-radius: 4px 4px 0 0;
}
.layer-advance-dialog .layui-layer-content {
body .layer-advance-dialog .layui-layer-content {
padding: 5px 15px;
}
/**
* 全屏弹窗样式
*/
.fullscreen-dialog {
body .fullscreen-dialog {
background-color: #F8F8F8;
border: none;
border-radius: 0;
}
.fullscreen-dialog .layui-layer-title {
body .fullscreen-dialog .layui-layer-title {
display: none;
}
.fullscreen-dialog .layui-layer-setwin {
body .fullscreen-dialog .layui-layer-setwin {
display: none;
}
.fullscreen-dialog .layui-layer-content {
body .fullscreen-dialog .layui-layer-content {
height: 100vh!important;
padding: 0;
}
@@ -762,6 +763,10 @@ $--color-primary-light-9: color-mix(in srgb, $--color-white 90%, $--color-primar
}
}
.relation-select-popper {
display: none;
}
.vxe-table--render-default.border--full .vxe-body--column {
background-size: 1px 100%,100% 0!important;
border-bottom: 1px solid #e8eaec;

View File

@@ -245,7 +245,7 @@ export const download = async (
url: string,
params: ANY_OBJECT,
filename: string,
method?: RequestMethods,
method: RequestMethods = 'post',
options?: RequestOption,
) => {
return new Promise((resolve, reject) => {

View File

@@ -347,7 +347,7 @@ const handleCommand = (command: string) => {
Dialog.show('修改头像', FormModifyHeadImage, { area: '500px' }, {});
break;
default:
ElMessage.warning(`click on item ${command}`);
ElMessage.warning(`click on item `);
break;
}
};

View File

@@ -12,7 +12,10 @@
:change="onValueChange"
@widgetClick="onWidgetClick"
>
<template v-if="form().mode === 'pc' && widget.widgetType !== SysCustomWidgetType.Cascader" v-slot="scope">
<template
v-if="form().mode === 'pc' && widget.widgetType !== SysCustomWidgetType.Cascader"
v-slot="scope"
>
<template v-if="widget.widgetType === SysCustomWidgetType.Radio">
<el-radio v-for="item in getAllDropdownData" :key="item.id" :value="item.id">
{{ item.name }}

View File

@@ -88,15 +88,6 @@
<vxe-column title="工单状态" field="flowStatusShowName" :min-width="100" />
<vxe-column title="操作" :width="160" fixed="right" :show-overflow="false">
<template #default="{ row }">
<el-button
link
:size="layoutStore.defaultFormItemSize"
v-if="getPrintOperation != null"
:class="getPrintOperation.btnClass"
@click.stop="onPrint(getPrintOperation, row)"
>
{{ getPrintOperation.name || '打印' }}
</el-button>
<el-button
link
type="primary"
@@ -250,7 +241,7 @@ const remoteSort = computed(() => {
});
const getPrintOperation = computed(() => {
let operation = findItemFromList(
form().operationList,
props.widget.operationList,
SysCustomWidgetOperationType.PRINT,
'type',
);
@@ -398,36 +389,6 @@ const getPrintParamItem = (row: ANY_OBJECT, printParamList: ANY_OBJECT[]) => {
return param;
};
const onPrint = (operation: ANY_OBJECT, row: ANY_OBJECT) => {
if (operation == null || row == null || row.processDefinitionKey == null) return;
let printParam;
let temp = getPrintParamItem(row, operation.printParamList);
printParam = temp ? [temp] : [];
let params = {
printId: operation.printTemplateId,
printParams: printParam,
};
post<string>(
API_CONTEXT + '/flow/flowOnlineOperation/printWorkOrder/' + row.processDefinitionKey,
params,
)
.then(res => {
let downloadUrl = res.data;
downloadBlob(downloadUrl, {})
.then((blobData: Blob) => {
let pdfUrl = window.URL.createObjectURL(blobData);
window.open('./lib/pdfjs/web/viewer.html?file=' + pdfUrl);
})
.catch(e => {
console.log(e);
ElMessage.error(e);
});
})
.catch(e => {
console.warn(e);
});
};
const formatListData = (data: ANY_OBJECT) => {
Object.keys(data).forEach(key => {
let subData = data[key];

View File

@@ -34,6 +34,15 @@
<el-input v-model="formPageData.pageName" @change="dirty = true" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="后台扩展类">
<el-input
v-model="formPageData.extraJson.extendClass"
placeholder="请输入包含包名的完整类名称"
@change="dirty = true"
/>
</el-form-item>
</el-col>
</el-form>
</div>
</template>
@@ -85,6 +94,7 @@ const savePageInfo = (status: number) => {
let params = {
onlinePageDto: {
...formPageData.value,
extraJson: JSON.stringify(formPageData.value.extraJson || {}),
status: status,
published: false,
},

View File

@@ -1,6 +1,12 @@
<template>
<el-row>
<el-form label-position="left" label-width="115px" size="default" @submit.prevent>
<el-form
label-position="left"
label-width="115px"
size="default"
style="width: 100%"
@submit.prevent
>
<el-col :span="24">
<el-form-item label="弹窗表单选择">
<el-select

View File

@@ -156,7 +156,7 @@ export const useFormConfig = () => {
maskFieldList: [],
allowEventList: [OnlineFormEventType.AFTER_CREATE_FORM],
fullscreen: true,
supportOperation: true,
supportOperation: false,
width: 800,
};

View File

@@ -92,7 +92,7 @@ export const useWidgetToolkit = () => {
break;
case SysCustomWidgetType.Switch:
case SysCustomWidgetType.MobileSwitchFilter:
disabled = columnFieldType !== 'Boolean';
disabled = columnFieldType !== 'Boolean' && columnFieldType !== 'Number';
break;
case SysCustomWidgetType.Slider:
case SysCustomWidgetType.Stepper:
@@ -147,5 +147,6 @@ export const useWidgetToolkit = () => {
}
return {
columnIsValidByWidgetType,
getColumnDataType,
};
};

View File

@@ -249,12 +249,6 @@ const onSetOnlineFormAuth = () => {
{
formAuth: formData.value.formAuth || {},
formWidgetConfig: tempConfig,
path: 'thirdSetOnlineFormAuth',
},
{
width: '1000px',
height: '700px',
pathName: '/thirdParty/formSetOnlineFormAuth',
},
)
.then(res => {

View File

@@ -5,4 +5,7 @@ export interface FormPage {
pageType?: number;
published: boolean;
status: number;
extraJson: {
extendClass?: string;
};
}