mirror of
https://gitee.com/orangeform/orange-admin.git
synced 2026-01-17 10:36:31 +08:00
commit:支持后台扩展类
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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,
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -156,7 +156,7 @@ export const useFormConfig = () => {
|
||||
maskFieldList: [],
|
||||
allowEventList: [OnlineFormEventType.AFTER_CREATE_FORM],
|
||||
fullscreen: true,
|
||||
supportOperation: true,
|
||||
supportOperation: false,
|
||||
width: 800,
|
||||
};
|
||||
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -249,12 +249,6 @@ const onSetOnlineFormAuth = () => {
|
||||
{
|
||||
formAuth: formData.value.formAuth || {},
|
||||
formWidgetConfig: tempConfig,
|
||||
path: 'thirdSetOnlineFormAuth',
|
||||
},
|
||||
{
|
||||
width: '1000px',
|
||||
height: '700px',
|
||||
pathName: '/thirdParty/formSetOnlineFormAuth',
|
||||
},
|
||||
)
|
||||
.then(res => {
|
||||
|
||||
@@ -5,4 +5,7 @@ export interface FormPage {
|
||||
pageType?: number;
|
||||
published: boolean;
|
||||
status: number;
|
||||
extraJson: {
|
||||
extendClass?: string;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user