@@ -9,29 +9,28 @@
 
		
	
		
			
				      < / template > 
 
		
	
		
			
				      <!--  操作  -- > 
 
		
	
		
			
				      < template  # actionbtns_default = "{ row }"  v-if = "modelId" > 
 
		
	
		
			
				        vxe -button 
 
		
	
		
			
				          type = "text"  
 
		
	
		
			
				          status = "primary "
 
		
	
		
			
				          content = "修改 "
 
		
	
		
			
				          icon = "vxe-icon-edit "
 
		
	
		
			
				        ! - -  操作 : 修改  - - > 
 
		
	
		
			
				        < XTextButton 
 
		
	
		
			
				          preIcon = "ep:edit "
 
		
	
		
			
				          :title = "t('action.edit') "
 
		
	
		
			
				          v-hasPermi = "['bpm:task-assign-rule:update'] "
 
		
	
		
			
				@click ="handleUpdate(row)"  
		
	
		
			
				/ >  
		
	
		
			
				      < / template > 
 
		
	
		
			
				    < / XTable > 
 
		
	
		
			
				 
		
	
		
			
				    <!--  添加 / 修改弹窗  -- > 
 
		
	
		
			
				    < XModal  v-model = "open Visible" title="修改任务规则" width="800" height="35%"   resize 
 
		
	
		
			
				    < XModal  v-model = "dialog Visible" title="修改任务规则" width="800" height="35%" > 
 
		
	
		
			
				      < el -form 
 
		
	
		
			
				        ref = "xF orm" 
 
		
	
		
			
				        ref = "f ormRef " 
 
		
	
		
			
				        :model = "formData" 
 
		
	
		
			
				        :rules = "formR ules" 
 
		
	
		
			
				        :rules = "r ules" 
 
		
	
		
			
				        label -width = " 120px " 
 
		
	
		
			
				        class = "demo-ruleForm" 
 
		
	
		
			
				        size = "default" 
 
		
	
		
			
				        status -icon 
 
		
	
		
			
				      > 
 
		
	
		
			
				        < el-form-item  label = "任务名称"  prop = "taskDefinitionName" > 
 
		
	
		
			
				          < el-input  -model " "  =   disabled  / > 
 
		
	
		
			
				          < el-input  v -model" formData.taskDefinitionName"  placeholder= "请输入流标标识"  disabled  / > 
 
		
	
		
			
				        < / el-form-item > 
 
		
	
		
			
				        < el-form-item  label = "任务标识"  prop = "taskDefinitionKey" > 
 
		
	
		
			
				          < el-input  v-model = "formData.taskDefinitionKey" placeholder="请输入任务标识"   disabled  / > 
 
		
	
	
		
			
				
					
					
						
					 
				
			
			@@ -39,7 +38,7 @@
 
		
	
		
			
				        < el-form-item  label = "规则类型"  prop = "type" > 
 
		
	
		
			
				          < el-select  v-model = "formData.type" clearable style="width: 100%" > 
 
		
	
		
			
				            < el -option 
 
		
	
		
			
				              v-for = "dict in taskAssignRuleTypeDictDatas " 
 
		
	
		
			
				              v-for = "dict in getDictOptions(DICT_TYPE.BPM_TASK_ASSIGN_RULE_TYPE) " 
 
		
	
		
			
				:key = "parseInt(dict.value)"  
		
	
		
			
				              :label = "dict.label" 
 
		
	
		
			
				              :value = "parseInt(dict.value)" 
 
		
	
	
		
			
				
					
					
						
					 
				
			
			@@ -118,9 +117,21 @@
 
		
	
		
			
				          < / el-select > 
 
		
	
		
			
				        < / el-form-item > 
 
		
	
		
			
				      < / el-form > 
 
		
	
		
			
				      <!--  操作按钮  -- > 
 
		
	
		
			
				      < template  # footer > 
 
		
	
		
			
				        < XButton  type = "primary"  title = " 保存" :loading = "loading"  @click ="submitEvent(xForm)"   / 
 
		
	
		
			
				        < XButton  title = "关闭"  @click ="resetEvent(xForm)"   / >  
 
		
	
		
			
				        <!--  按钮 : -- 
 
		
	
		
			
				        < XButton 
 
		
	
		
			
				          type = "primary" 
 
		
	
		
			
				          :title = "t('action.save')" 
 
		
	
		
			
				          :loading = "actionLoading" 
 
		
	
		
			
				          @click ="submitForm" 
 
		
	
		
			
				/ >  
		
	
		
			
				        <!--  按钮 : 关闭  -- > 
 
		
	
		
			
				        < XButton 
 
		
	
		
			
				          :loading = "actionLoading" 
 
		
	
		
			
				          :title = "t('dialog.close')" 
 
		
	
		
			
				          @click ="dialogVisible = false" 
 
		
	
		
			
				/ >  
		
	
		
			
				      < / template > 
 
		
	
		
			
				    < / XModal > 
 
		
	
		
			
				  < / ContentWrap > 
 
		
	
	
		
			
				
					
					
						
					 
				
			
			@@ -128,28 +139,31 @@
 
		
	
		
			
				< script  setup  lang = "ts"  name = "TaskAssignRule" >  
		
	
		
			
				// 全局相关的 import  
		
	
		
			
				import  type  {  FormInstance  }  from  'element-plus'  
		
	
		
			
				 
		
	
		
			
				// 业务相关的 import  
		
	
		
			
				import  {  allSchemas  }  from  './taskAssignRule.data'  
		
	
		
			
				import  *  as  TaskAssignRuleApi  from  '@/api/bpm/taskAssignRule'  
		
	
		
			
				import  {  listSimpleRolesApi  }  from  '@/api/system/role'  
		
	
		
			
				import  {  handleTree ,  defaultProps  }  from  '@/utils/tree'  
		
	
		
			
				import  {  listSimplePostsApi  }  from  '@/api/system/post'  
		
	
		
			
				import  {  getListSimpleUsersApi  }  from  '@/api/system/user'  
		
	
		
			
				import  {  listSimpleUserGroupsApi  }  from  '@/api/bpm/userGroup'  
		
	
		
			
				import  {  listSimpleDeptApi  }  from  '@/api/system/dept'  
		
	
		
			
				import  {  DICT _TYPE ,  getDictOptions  }  from  '@/utils/dict'  
		
	
		
			
				//  import {useI18n} from "@/hooks/web/useI18n";  
		
	
		
			
				// import {useMessage} from "@/hooks/web/useMessage";  
		
	
		
			
				import  {  useRoute  }  from  'vue-router'  
		
	
		
			
				{  handleTree ,  defaultProps  }  from  '@/utils/tree'  
		
	
		
			
				import  {  allSchemas ,  rules  }  from  './taskAssignRule.data'  
		
	
		
			
				 
		
	
		
			
				//  const { t } = useI18n()  // 国际化 
		
	
		
			
				//  const  message =  useMessage()  // 消息弹窗 
		
	
		
			
				// const router = useRouter() // 路由  
		
	
		
			
				{  t  }  =  useI18n ( )   
		
	
		
			
				=  ( )   
		
	
		
			
				const  {  query  }  =  useRoute ( )  
		
	
		
			
				 
		
	
		
			
				// ========== 列表相关 ==========  
		
	
		
			
				 
		
	
		
			
				const  roleOptions  =  ref ( )  // 角色列表  
		
	
		
			
				const  deptOptions  =  ref ( )  // 部门列表  
		
	
		
			
				const  deptTreeOptions  =  ref ( )  
		
	
		
			
				const  postOptions  =  ref ( )  // 岗位列表  
		
	
		
			
				const  userOptions  =  ref ( )  // 用户列表  
		
	
		
			
				const  userGroupOptions  =  ref ( )  // 用户组列表  
		
	
		
			
				const  taskAssignScriptDictDatas  =  getDictOptions ( DICT _TYPE . BPM _TASK _ASSIGN _SCRIPT )  
		
	
		
			
				 
		
	
		
			
				// 流程模型的编号。如果 modelId 非空,则用于流程模型的查看与配置  
		
	
		
			
				const  modelId  =  query . modelId  
		
	
		
			
				// 流程定义的编号。如果 processDefinitionId 非空,则用于流程定义的查看,不支持配置  
		
	
	
		
			
				
					
					
						
					 
				
			
			@@ -159,68 +173,14 @@ const queryParams = reactive({
 
		
	
		
			
				  modelId :  modelId , 
 
		
	
		
			
				  processDefinitionId :  processDefinitionId 
 
		
	
		
			
				} )  
		
	
		
			
				const  [ registerTable ]  =  useXTable ( {  
		
	
		
			
				const  [ registerTable ,  {  reload  } =  useXTable ( {  
		
	
		
			
				  allSchemas :  allSchemas , 
 
		
	
		
			
				  params :  queryParams , 
 
		
	
		
			
				  getListApi :  TaskAssignRuleApi . getTaskAssignRuleList , 
 
		
	
		
			
				  isList :  true 
 
		
	
		
			
				} )  
		
	
		
			
				// 修改任务责任表单  
		
	
		
			
				const  xForm  =  ref < FormInstance > ( )  
		
	
		
			
				const  formData  =  ref ( )  
		
	
		
			
				const  formRules  =  reactive ( {  
		
	
		
			
				  type :  [ {  required :  true ,  message :  '规则类型不能为空' ,  trigger :  'change'  } ] , 
 
		
	
		
			
				  roleIds :  [ {  required :  true ,  message :  '指定角色不能为空' ,  trigger :  'change'  } ] , 
 
		
	
		
			
				  deptIds :  [ {  required :  true ,  message :  '指定部门不能为空' ,  trigger :  'change'  } ] , 
 
		
	
		
			
				  postIds :  [ {  required :  true ,  message :  '指定岗位不能为空' ,  trigger :  'change'  } ] , 
 
		
	
		
			
				  userIds :  [ {  required :  true ,  message :  '指定用户不能为空' ,  trigger :  'change'  } ] , 
 
		
	
		
			
				  userGroupIds :  [ {  required :  true ,  message :  '指定用户组不能为空' ,  trigger :  'change'  } ] , 
 
		
	
		
			
				  scripts :  [ {  required :  true ,  message :  '指定脚本不能为空' ,  trigger :  'change'  } ] 
 
		
	
		
			
				} )  
		
	
		
			
				const  loading  =  ref ( false )  
		
	
		
			
				 
		
	
		
			
				const  roleOptions  =  ref ( )  // 角色列表  
		
	
		
			
				const  deptOptions  =  ref ( )  // 部门列表  
		
	
		
			
				const  deptTreeOptions  =  ref ( )  
		
	
		
			
				const  postOptions  =  ref ( )  // 岗位列表  
		
	
		
			
				const  userOptions  =  ref ( )  // 用户列表  
		
	
		
			
				const  userGroupOptions  =  ref ( )  // 用户组列表  
		
	
		
			
				const  taskAssignScriptDictDatas  =  getDictOptions ( DICT _TYPE . BPM _TASK _ASSIGN _SCRIPT )  
		
	
		
			
				const  taskAssignRuleTypeDictDatas  =  getDictOptions ( DICT _TYPE . BPM _TASK _ASSIGN _RULE _TYPE )  
		
	
		
			
				 
		
	
		
			
				// 修改任务分配规则  
		
	
		
			
				const  openVisible  =  ref ( false )  
		
	
		
			
				 
		
	
		
			
				// 添加修改弹窗提交修改  
		
	
		
			
				const  submitEvent  =  async  ( formEl :  FormInstance  |  undefined )  =>  {  
		
	
		
			
				  console . log ( '确认' ) 
 
		
	
		
			
				  if  ( ! formEl )  return 
 
		
	
		
			
				  loading . value  =  true 
 
		
	
		
			
				  await  formEl . validate ( ( valid ,  fields )  =>  { 
 
		
	
		
			
				    if  ( valid )  { 
 
		
	
		
			
				      console . log ( 'submit!' ) 
 
		
	
		
			
				      loading . value  =  false 
 
		
	
		
			
				      openVisible . value  =  false 
 
		
	
		
			
				    }  else  { 
 
		
	
		
			
				      console . log ( 'error submit!' ,  fields ) 
 
		
	
		
			
				      loading . value  =  false 
 
		
	
		
			
				    } 
 
		
	
		
			
				  } ) 
 
		
	
		
			
				}  
		
	
		
			
				 
		
	
		
			
				const  resetEvent  =  ( formEl :  FormInstance  |  undefined )  =>  {  
		
	
		
			
				  if  ( ! formEl )  return 
 
		
	
		
			
				  formEl . resetFields ( ) 
 
		
	
		
			
				  openVisible . value  =  false 
 
		
	
		
			
				}  
		
	
		
			
				 
		
	
		
			
				// 修改任务分配规则  
		
	
		
			
				const  handleUpdate  =  ( row )  =>  {  
		
	
		
			
				  console . log ( row ,  '修改i数据' ) 
 
		
	
		
			
				  openVisible . value  =  true 
 
		
	
		
			
				  formData . value  =  {  ... row  } 
 
		
	
		
			
				}  
		
	
		
			
				// 类型字典  
		
	
		
			
				// 翻译规则范围  
		
	
		
			
				const  getAssignRuleOptionName  =  ( type ,  option )  =>  {  
		
	
		
			
				  if  ( type  ===  10 )  { 
 
		
	
		
			
				    for  ( const  roleOption  of  roleOptions . value )  { 
 
		
	
	
		
			
				
					
					
						
					 
				
			
			@@ -263,6 +223,103 @@ const getAssignRuleOptionName = (type, option) => {
 
		
	
		
			
				  return  '未知('  +  option  +  ')' 
 
		
	
		
			
				}  
		
	
		
			
				 
		
	
		
			
				// ========== 修改相关 ==========  
		
	
		
			
				 
		
	
		
			
				// 修改任务责任表单  
		
	
		
			
				const  actionLoading  =  ref ( false )  // 遮罩层  
		
	
		
			
				const  dialogVisible  =  ref ( false )  // 是否显示弹出层  
		
	
		
			
				const  formRef  =  ref < FormInstance > ( )  
		
	
		
			
				const  formData  =  ref ( )  // 表单数据  
		
	
		
			
				 
		
	
		
			
				// 提交按钮  
		
	
		
			
				const  submitForm  =  async  ( )  =>  {  
		
	
		
			
				  const  elForm  =  unref ( formRef ) ? . getElFormRef ( ) 
 
		
	
		
			
				  if  ( ! elForm )  return 
 
		
	
		
			
				  elForm . validate ( async  ( valid )  =>  { 
 
		
	
		
			
				    if  ( valid )  { 
 
		
	
		
			
				      // 构建表单 
 
		
	
		
			
				let  form  =  {  
		
	
		
			
				        ... formData . value , 
 
		
	
		
			
				        taskDefinitionName :  undefined 
 
		
	
		
			
				      } 
 
		
	
		
			
				      // 将 roleIds 等选项赋值到 options 中 
 
		
	
		
			
				if  ( form . type  ===  10 )  {  
		
	
		
			
				        form . options  =  form . roleIds 
 
		
	
		
			
				      }  else  if  ( form . type  ===  20  ||  form . type  ===  21 )  { 
 
		
	
		
			
				        form . options  =  form . deptIds 
 
		
	
		
			
				      }  else  if  ( form . type  ===  22 )  { 
 
		
	
		
			
				        form . options  =  form . postIds 
 
		
	
		
			
				      }  else  if  ( form . type  ===  30  ||  form . type  ===  31  ||  form . type  ===  32 )  { 
 
		
	
		
			
				        form . options  =  form . userIds 
 
		
	
		
			
				      }  else  if  ( form . type  ===  40 )  { 
 
		
	
		
			
				        form . options  =  form . userGroupIds 
 
		
	
		
			
				      }  else  if  ( form . type  ===  50 )  { 
 
		
	
		
			
				        form . options  =  form . scripts 
 
		
	
		
			
				      } 
 
		
	
		
			
				      form . roleIds  =  undefined 
 
		
	
		
			
				      form . deptIds  =  undefined 
 
		
	
		
			
				      form . postIds  =  undefined 
 
		
	
		
			
				      form . userIds  =  undefined 
 
		
	
		
			
				      form . userGroupIds  =  undefined 
 
		
	
		
			
				      form . scripts  =  undefined 
 
		
	
		
			
				      // 设置提交中 
 
		
	
		
			
				actionLoading . value  =  true  
		
	
		
			
				      // 提交请求 
 
		
	
		
			
				try  {  
		
	
		
			
				        const  data  =  form  as  TaskAssignRuleApi . TaskAssignVO 
 
		
	
		
			
				        // 新增 
 
		
	
		
			
				if  ( ! data . id )  {  
		
	
		
			
				          await  TaskAssignRuleApi . createTaskAssignRule ( data ) 
 
		
	
		
			
				          message . success ( t ( 'common.createSuccess' ) ) 
 
		
	
		
			
				          // 修改 
 
		
	
		
			
				}  else  {  
		
	
		
			
				          await  TaskAssignRuleApi . updateTaskAssignRule ( data ) 
 
		
	
		
			
				          message . success ( t ( 'common.updateSuccess' ) ) 
 
		
	
		
			
				        } 
 
		
	
		
			
				        dialogVisible . value  =  false 
 
		
	
		
			
				      }  finally  { 
 
		
	
		
			
				        actionLoading . value  =  false 
 
		
	
		
			
				        // 刷新列表 
 
		
	
		
			
				await  reload ( )  
		
	
		
			
				      } 
 
		
	
		
			
				    } 
 
		
	
		
			
				  } ) 
 
		
	
		
			
				}  
		
	
		
			
				 
		
	
		
			
				// 修改任务分配规则  
		
	
		
			
				const  handleUpdate  =  ( row )  =>  {  
		
	
		
			
				  // 1. 先重置表单 
 
		
	
		
			
				formData . value  =  { }  
		
	
		
			
				  // 2. 再设置表单 
 
		
	
		
			
				formData . value  =  {  
		
	
		
			
				    ... row , 
 
		
	
		
			
				    options :  [ ] , 
 
		
	
		
			
				    roleIds :  [ ] , 
 
		
	
		
			
				    deptIds :  [ ] , 
 
		
	
		
			
				    postIds :  [ ] , 
 
		
	
		
			
				    userIds :  [ ] , 
 
		
	
		
			
				    userGroupIds :  [ ] , 
 
		
	
		
			
				    scripts :  [ ] 
 
		
	
		
			
				  } 
 
		
	
		
			
				  // 将 options 赋值到对应的 roleIds 等选项 
 
		
	
		
			
				if  ( row . type  ===  10 )  {  
		
	
		
			
				    formData . value . roleIds . push ( ... row . options ) 
 
		
	
		
			
				  }  else  if  ( row . type  ===  20  ||  row . type  ===  21 )  { 
 
		
	
		
			
				    formData . value . deptIds . push ( ... row . options ) 
 
		
	
		
			
				  }  else  if  ( row . type  ===  22 )  { 
 
		
	
		
			
				    formData . value . postIds . push ( ... row . options ) 
 
		
	
		
			
				  }  else  if  ( row . type  ===  30  ||  row . type  ===  31  ||  row . type  ===  32 )  { 
 
		
	
		
			
				    formData . value . userIds . push ( ... row . options ) 
 
		
	
		
			
				  }  else  if  ( row . type  ===  40 )  { 
 
		
	
		
			
				    formData . value . userGroupIds . push ( ... row . options ) 
 
		
	
		
			
				  }  else  if  ( row . type  ===  50 )  { 
 
		
	
		
			
				    formData . value . scripts . push ( ... row . options ) 
 
		
	
		
			
				  } 
 
		
	
		
			
				  // 打开弹窗 
 
		
	
		
			
				dialogVisible . value  =  true  
		
	
		
			
				  actionLoading . value  =  false 
 
		
	
		
			
				}  
		
	
		
			
				 
		
	
		
			
				// ========== 初始化 ==========  
		
	
		
			
				onMounted ( ( )  =>  {  
		
	
		
			
				  // 获得角色列表