!197 发布 5.3.1-BETA2_2.3.0-BETA2 公测版本
Merge pull request !197 from 疯狂的狮子Li/dev
This commit is contained in:
commit
f5d557fe80
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://json.schemastore.org/package",
|
"$schema": "https://json.schemastore.org/package",
|
||||||
"name": "ruoyi-vue-plus",
|
"name": "ruoyi-vue-plus",
|
||||||
"version": "5.3.1-BETA_2.3.0-BETA",
|
"version": "5.3.1-BETA2_2.3.0-BETA2",
|
||||||
"description": "RuoYi-Vue-Plus多租户管理系统",
|
"description": "RuoYi-Vue-Plus多租户管理系统",
|
||||||
"author": "LionLi",
|
"author": "LionLi",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@ -40,13 +40,8 @@ const getBreadcrumb = () => {
|
|||||||
levelList.value = matched.filter((item) => item.meta && item.meta.title && item.meta.breadcrumb !== false);
|
levelList.value = matched.filter((item) => item.meta && item.meta.title && item.meta.breadcrumb !== false);
|
||||||
};
|
};
|
||||||
const findPathNum = (str, char = '/') => {
|
const findPathNum = (str, char = '/') => {
|
||||||
let index = str.indexOf(char);
|
if (typeof str !== 'string' || str.length === 0) return 0;
|
||||||
let num = 0;
|
return str.split(char).length - 1;
|
||||||
while (index !== -1) {
|
|
||||||
num++;
|
|
||||||
index = str.indexOf(char, index + 1);
|
|
||||||
}
|
|
||||||
return num;
|
|
||||||
};
|
};
|
||||||
const getMatched = (pathList, routeList, matched) => {
|
const getMatched = (pathList, routeList, matched) => {
|
||||||
let data = routeList.find((item) => item.path == pathList[0] || (item.name += '').toLowerCase() == pathList[0]);
|
let data = routeList.find((item) => item.path == pathList[0] || (item.name += '').toLowerCase() == pathList[0]);
|
||||||
|
@ -1,61 +0,0 @@
|
|||||||
<template>
|
|
||||||
<!-- 代码构建 -->
|
|
||||||
<div>
|
|
||||||
<v-form-designer
|
|
||||||
ref="buildRef"
|
|
||||||
class="build"
|
|
||||||
:designer-config="{ importJsonButton: true, exportJsonButton: true, exportCodeButton: true, generateSFCButton: true, formTemplates: true }"
|
|
||||||
>
|
|
||||||
<template v-if="showBtn" #customToolButtons>
|
|
||||||
<el-button link type="primary" icon="Select" @click="getJson">保存</el-button>
|
|
||||||
</template>
|
|
||||||
</v-form-designer>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
interface Props {
|
|
||||||
showBtn: boolean;
|
|
||||||
formJson: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
|
||||||
showBtn: true,
|
|
||||||
formJson: ''
|
|
||||||
});
|
|
||||||
|
|
||||||
const buildRef = ref();
|
|
||||||
const emits = defineEmits(['reJson', 'saveDesign']);
|
|
||||||
|
|
||||||
//获取表单json
|
|
||||||
const getJson = () => {
|
|
||||||
const formJson = JSON.stringify(buildRef.value.getFormJson());
|
|
||||||
const fieldJson = JSON.stringify(buildRef.value.getFieldWidgets());
|
|
||||||
let data = {
|
|
||||||
formJson,
|
|
||||||
fieldJson
|
|
||||||
};
|
|
||||||
emits('saveDesign', data);
|
|
||||||
};
|
|
||||||
|
|
||||||
onMounted(() => {
|
|
||||||
if (props.formJson) {
|
|
||||||
buildRef.value.setFormJson(props.formJson);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="scss">
|
|
||||||
.build {
|
|
||||||
margin: 0 !important;
|
|
||||||
overflow-y: auto !important;
|
|
||||||
|
|
||||||
& header.main-header {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
& .right-toolbar-con {
|
|
||||||
text-align: right !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
@ -1,57 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="">
|
|
||||||
<v-form-render ref="vFormRef" :form-json="formJson" :form-data="formData" />
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<!-- 动态表单渲染 -->
|
|
||||||
<script setup name="Render" lang="ts">
|
|
||||||
interface Props {
|
|
||||||
formJson: string | object;
|
|
||||||
formData: string | object;
|
|
||||||
isView: boolean;
|
|
||||||
}
|
|
||||||
|
|
||||||
const props = withDefaults(defineProps<Props>(), {
|
|
||||||
formJson: '',
|
|
||||||
formData: '',
|
|
||||||
isView: false
|
|
||||||
});
|
|
||||||
|
|
||||||
const vFormRef = ref();
|
|
||||||
// 获取表单数据-异步
|
|
||||||
const getFormData = () => {
|
|
||||||
return vFormRef.value.getFormData();
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 设置表单内容
|
|
||||||
* @param {表单配置} formConf
|
|
||||||
* formConfig:{ formTemplate:表单模板,formData:表单数据,hiddenField:需要隐藏的字段字符串集合,disabledField:需要禁用的自读字符串集合}
|
|
||||||
*/
|
|
||||||
const initForm = (formConf: any) => {
|
|
||||||
const { formTemplate, formData, hiddenField, disabledField } = toRaw(formConf);
|
|
||||||
if (formTemplate) {
|
|
||||||
vFormRef.value.setFormJson(formTemplate);
|
|
||||||
if (formData) {
|
|
||||||
vFormRef.value.setFormData(formData);
|
|
||||||
}
|
|
||||||
if (disabledField && disabledField.length > 0) {
|
|
||||||
setTimeout(() => {
|
|
||||||
vFormRef.value.disableWidgets(disabledField);
|
|
||||||
}, 200);
|
|
||||||
}
|
|
||||||
if (hiddenField && hiddenField.length > 0) {
|
|
||||||
setTimeout(() => {
|
|
||||||
vFormRef.value.hideWidgets(hiddenField);
|
|
||||||
}, 200);
|
|
||||||
}
|
|
||||||
if (props.isView) {
|
|
||||||
setTimeout(() => {
|
|
||||||
vFormRef.value.disableForm();
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
defineExpose({ getFormData, initForm });
|
|
||||||
</script>
|
|
@ -85,9 +85,13 @@ const task = ref<FlowTaskVO>({
|
|||||||
nodeName: undefined,
|
nodeName: undefined,
|
||||||
flowCode: undefined,
|
flowCode: undefined,
|
||||||
flowStatus: undefined,
|
flowStatus: undefined,
|
||||||
|
formCustom: undefined,
|
||||||
|
formPath: undefined,
|
||||||
nodeType: undefined,
|
nodeType: undefined,
|
||||||
nodeRatio: undefined,
|
nodeRatio: undefined,
|
||||||
version: undefined
|
version: undefined,
|
||||||
|
applyNode: undefined,
|
||||||
|
buttonList: []
|
||||||
});
|
});
|
||||||
|
|
||||||
const open = (taskId: string) => {
|
const open = (taskId: string) => {
|
||||||
@ -171,7 +175,7 @@ const deleteMultiInstanceUser = async (row) => {
|
|||||||
};
|
};
|
||||||
//获取办理人
|
//获取办理人
|
||||||
const handleTaskUser = async () => {
|
const handleTaskUser = async () => {
|
||||||
let data = await currentTaskAllUser(task.value.id);
|
const data = await currentTaskAllUser(task.value.id);
|
||||||
deleteUserList.value = data.data;
|
deleteUserList.value = data.data;
|
||||||
if (deleteUserList.value && deleteUserList.value.length > 0) {
|
if (deleteUserList.value && deleteUserList.value.length > 0) {
|
||||||
deleteUserList.value.forEach((e) => {
|
deleteUserList.value.forEach((e) => {
|
||||||
@ -183,7 +187,7 @@ const handleTaskUser = async () => {
|
|||||||
|
|
||||||
//终止任务
|
//终止任务
|
||||||
const handleTerminationTask = async () => {
|
const handleTerminationTask = async () => {
|
||||||
let params = {
|
const params = {
|
||||||
taskId: task.value.id,
|
taskId: task.value.id,
|
||||||
comment: ''
|
comment: ''
|
||||||
};
|
};
|
||||||
|
@ -7,7 +7,7 @@ export const useDict = (...args: string[]): { [key: string]: DictDataOption[] }
|
|||||||
const res = ref<{
|
const res = ref<{
|
||||||
[key: string]: DictDataOption[];
|
[key: string]: DictDataOption[];
|
||||||
}>({});
|
}>({});
|
||||||
return (() => {
|
|
||||||
args.forEach(async (dictType) => {
|
args.forEach(async (dictType) => {
|
||||||
res.value[dictType] = [];
|
res.value[dictType] = [];
|
||||||
const dicts = useDictStore().getDict(dictType);
|
const dicts = useDictStore().getDict(dictType);
|
||||||
@ -23,5 +23,4 @@ export const useDict = (...args: string[]): { [key: string]: DictDataOption[] }
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
return res.value;
|
return res.value;
|
||||||
})();
|
|
||||||
};
|
};
|
||||||
|
@ -171,6 +171,9 @@ export const handleTree = <T>(data: any[], id?: string, parentId?: string, child
|
|||||||
for (const d of data) {
|
for (const d of data) {
|
||||||
const id = d[config.id];
|
const id = d[config.id];
|
||||||
childrenListMap[id] = d;
|
childrenListMap[id] = d;
|
||||||
|
if (!d[config.childrenList]) {
|
||||||
|
d[config.childrenList] = [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const d of data) {
|
for (const d of data) {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="login">
|
<div class="login">
|
||||||
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
|
<el-form ref="loginRef" :model="loginForm" :rules="loginRules" class="login-form">
|
||||||
<div class="title-box">
|
<div class="title-box">
|
||||||
<h3 class="title">RuoYi-Vue-Plus多租户管理系统</h3>
|
<h3 class="title">{{ title }}</h3>
|
||||||
<lang-select />
|
<lang-select />
|
||||||
</div>
|
</div>
|
||||||
<el-form-item v-if="tenantEnabled" prop="tenantId">
|
<el-form-item v-if="tenantEnabled" prop="tenantId">
|
||||||
@ -89,6 +89,7 @@ import { useI18n } from 'vue-i18n';
|
|||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
|
const title = import.meta.env.VITE_APP_TITLE;
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="register">
|
<div class="register">
|
||||||
<el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
|
<el-form ref="registerRef" :model="registerForm" :rules="registerRules" class="register-form">
|
||||||
<div class="title-box">
|
<div class="title-box">
|
||||||
<h3 class="title">RuoYi-Vue-Plus多租户管理系统</h3>
|
<h3 class="title">{{ title }}</h3>
|
||||||
<lang-select />
|
<lang-select />
|
||||||
</div>
|
</div>
|
||||||
<el-form-item v-if="tenantEnabled" prop="tenantId">
|
<el-form-item v-if="tenantEnabled" prop="tenantId">
|
||||||
@ -80,6 +80,7 @@ import { useI18n } from 'vue-i18n';
|
|||||||
|
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
|
|
||||||
|
const title = import.meta.env.VITE_APP_TITLE;
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
@ -27,8 +27,8 @@
|
|||||||
<el-form-item label="流程定义名称" prop="flowName">
|
<el-form-item label="流程定义名称" prop="flowName">
|
||||||
<el-input v-model="queryParams.flowName" placeholder="请输入流程定义名称" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.flowName" placeholder="请输入流程定义名称" clearable @keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="流程定义KEY" prop="flowCode">
|
<el-form-item label="流程定义编码" prop="flowCode">
|
||||||
<el-input v-model="queryParams.flowCode" placeholder="请输入流程定义KEY" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.flowCode" placeholder="请输入流程定义编码" clearable @keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
@ -67,6 +67,7 @@
|
|||||||
<el-table-column align="center" prop="id" label="主键" v-if="false"></el-table-column>
|
<el-table-column align="center" prop="id" label="主键" v-if="false"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowName" label="流程定义名称" :show-overflow-tooltip="true"></el-table-column>
|
<el-table-column align="center" prop="flowName" label="流程定义名称" :show-overflow-tooltip="true"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="标识KEY" :show-overflow-tooltip="true"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="标识KEY" :show-overflow-tooltip="true"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类" :show-overflow-tooltip="true"></el-table-column>
|
||||||
<el-table-column align="center" prop="version" label="版本号" width="80">
|
<el-table-column align="center" prop="version" label="版本号" width="80">
|
||||||
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -356,7 +357,7 @@ const getUnPublishList = async () => {
|
|||||||
const handleDelete = async (row?: FlowDefinitionVo) => {
|
const handleDelete = async (row?: FlowDefinitionVo) => {
|
||||||
const id = row?.id || ids.value;
|
const id = row?.id || ids.value;
|
||||||
const defList = processDefinitionList.value.filter((x) => id.indexOf(x.id) != -1).map((x) => x.flowCode);
|
const defList = processDefinitionList.value.filter((x) => id.indexOf(x.id) != -1).map((x) => x.flowCode);
|
||||||
await proxy?.$modal.confirm('是否确认删除流程定义KEY为【' + defList + '】的数据项?');
|
await proxy?.$modal.confirm('是否确认删除流程定义编码为【' + defList + '】的数据项?');
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
await deleteDefinition(id).finally(() => (loading.value = false));
|
await deleteDefinition(id).finally(() => (loading.value = false));
|
||||||
await handleQuery();
|
await handleQuery();
|
||||||
@ -366,7 +367,7 @@ const handleDelete = async (row?: FlowDefinitionVo) => {
|
|||||||
/** 发布流程定义 */
|
/** 发布流程定义 */
|
||||||
const handlePublish = async (row?: FlowDefinitionVo) => {
|
const handlePublish = async (row?: FlowDefinitionVo) => {
|
||||||
await proxy?.$modal.confirm(
|
await proxy?.$modal.confirm(
|
||||||
'是否确认发布流程定义KEY为【' + row.flowCode + '】版本为【' + row.version + '】的数据项?,发布后会将已发布流程定义改为失效!'
|
'是否确认发布流程定义编码为【' + row.flowCode + '】版本为【' + row.version + '】的数据项?,发布后会将已发布流程定义改为失效!'
|
||||||
);
|
);
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
await publish(row.id).finally(() => (loading.value = false));
|
await publish(row.id).finally(() => (loading.value = false));
|
||||||
|
@ -76,6 +76,7 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
|
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类"></el-table-column>
|
||||||
<el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
|
<el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
|
||||||
<el-table-column align="center" prop="version" label="版本号" width="90">
|
<el-table-column align="center" prop="version" label="版本号" width="90">
|
||||||
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
|
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类"></el-table-column>
|
||||||
<el-table-column align="center" prop="version" label="版本号" width="90">
|
<el-table-column align="center" prop="version" label="版本号" width="90">
|
||||||
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
<el-table-column v-if="false" align="center" prop="id" label="id"></el-table-column>
|
<el-table-column v-if="false" align="center" prop="id" label="id"></el-table-column>
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"> </el-table-column>
|
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"> </el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类"></el-table-column>
|
||||||
<el-table-column align="center" prop="version" label="版本号" width="90">
|
<el-table-column align="center" prop="version" label="版本号" width="90">
|
||||||
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -32,7 +32,8 @@
|
|||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
|
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="流程定义KEY"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类"></el-table-column>
|
||||||
<el-table-column align="center" prop="version" label="版本号" width="90">
|
<el-table-column align="center" prop="version" label="版本号" width="90">
|
||||||
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowName" label="流程定义名称"></el-table-column>
|
<el-table-column align="center" prop="flowName" label="流程定义名称"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类"></el-table-column>
|
||||||
<el-table-column align="center" prop="version" label="版本号" width="90">
|
<el-table-column align="center" prop="version" label="版本号" width="90">
|
||||||
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
<template #default="scope"> v{{ scope.row.version }}.0</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -38,6 +38,7 @@
|
|||||||
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
<el-table-column align="center" type="index" label="序号" width="60"></el-table-column>
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
|
<el-table-column :show-overflow-tooltip="true" prop="flowName" align="center" label="流程定义名称"></el-table-column>
|
||||||
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
<el-table-column align="center" prop="flowCode" label="流程定义编码"></el-table-column>
|
||||||
|
<el-table-column align="center" prop="categoryName" label="流程分类"></el-table-column>
|
||||||
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
|
<el-table-column align="center" prop="nodeName" label="任务名称"></el-table-column>
|
||||||
<el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
|
<el-table-column align="center" prop="createByName" label="申请人"></el-table-column>
|
||||||
<el-table-column align="center" label="办理人">
|
<el-table-column align="center" label="办理人">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user