This commit is contained in:
jason
2025-07-29 09:25:53 +08:00
158 changed files with 21617 additions and 2787 deletions

View File

@ -510,10 +510,15 @@ const isManagerUser = (row: any) => {
/** 处理模型的排序 **/
const handleModelSort = () => {
// 保存初始数据
originalData.value = cloneDeep(props.categoryInfo.modelList)
isModelSorting.value = true
initSort()
if (isModelSorting.value) {
// 如果已经在排序状态,则取消排序
handleModelSortCancel()
} else {
// 保存初始数据
originalData.value = cloneDeep(props.categoryInfo.modelList)
isModelSorting.value = true
initSort()
}
}
/** 处理模型的排序提交 */

View File

@ -102,7 +102,7 @@
</div>
<div v-if="modelData.startUserType === 2" class="mt-2 flex flex-wrap gap-2">
<div
v-for="dept in selectedStartDepts"
v-for="dept in selectedStartDepts"
:key="dept.id"
class="bg-gray-100 h-35px rounded-3xl flex items-center pr-8px dark:color-gray-600 position-relative"
>
@ -186,7 +186,23 @@ const currentSelectType = ref<'start' | 'manager'>('start')
const rules = {
name: [{ required: true, message: '流程名称不能为空', trigger: 'blur' }],
key: [{ required: true, message: '流程标识不能为空', trigger: 'blur' }],
key: [
{ required: true, message: '流程标识不能为空', trigger: 'blur' },
{
validator: (_rule: any, value: string, callback: any) => {
if (!value) {
callback()
return
}
if (!/^[a-zA-Z_][\-_.0-9_a-zA-Z$]*$/.test(value)) {
callback(new Error('只能包含字母、数字、下划线、连字符和点号,且必须以字母或下划线开头'))
return
}
callback()
},
trigger: 'blur'
}
],
category: [{ required: true, message: '流程分类不能为空', trigger: 'blur' }],
type: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }],
visible: [{ required: true, message: '是否可见不能为空', trigger: 'blur' }],

View File

@ -219,6 +219,16 @@ const initData = async () => {
// 特殊:复制场景
if (route.params.type === 'copy') {
delete formData.value.id
if (formData.value.bpmnXml) {
formData.value.bpmnXml = formData.value.bpmnXml.replaceAll(
formData.value.name,
formData.value.name + '副本'
)
formData.value.bpmnXml = formData.value.bpmnXml.replaceAll(
formData.value.key,
formData.value.key + '_copy'
)
}
formData.value.name += '副本'
formData.value.key += '_copy'
tagsView.setTitle('复制流程')

View File

@ -685,6 +685,7 @@ watch(
/** 弹出气泡卡 */
const openPopover = async (type: string) => {
if (popOverVisible.value[type] === true) return
if (type === 'approve') {
// 校验流程表单
const valid = await validateNormalForm()

View File

@ -39,7 +39,13 @@
</div>
</div>
<div v-if="activity.nodeType === NodeType.CHILD_PROCESS_NODE">
<el-button type="primary" plain size="small" @click="handleChildProcess(activity)">
<el-button
type="primary"
plain
size="small"
@click="handleChildProcess(activity)"
:disabled="!activity.processInstanceId"
>
查看子流程
</el-button>
</div>
@ -324,7 +330,9 @@ const handleUserSelectConfirm = (activityId: string, userList: any[]) => {
/** 跳转子流程 */
const handleChildProcess = (activity: any) => {
// TODO @lesan貌似跳不过去
if (!activity.processInstanceId) {
return
}
push({
name: 'BpmProcessInstanceDetail',
query: {

View File

@ -131,7 +131,7 @@
:formatter="dateFormatter"
align="center"
label="发起时间"
prop="createTime"
prop="processInstance.createTime"
width="180"
/>
<el-table-column align="center" label="当前任务" prop="name" width="180" />