Browse Source

自定义应用V1开发完结

qin_v9_master
超级管理员 1 year ago
parent
commit
182247ccf2
  1. 9
      src/api/taskapi/management.ts
  2. 10
      src/components/DesignForm/app/formPage.vue
  3. 6
      src/components/DesignForm/app/index.vue
  4. 4
      src/components/DesignForm/public/form/childTable.vue
  5. 1
      src/components/DesignForm/public/form/formGroup.vue
  6. 25
      src/components/DesignForm/tableListPage/formPageCont.vue
  7. 23
      src/components/DesignForm/tableListPage/formPageContApp.vue
  8. 13
      src/views/sysworkflow/lowcodepage/runApp/regularPage/completedMattersPage.vue
  9. 1
      src/views/sysworkflow/lowcodepage/runApp/regularPage/myCreate.vue
  10. 31
      src/views/sysworkflow/lowcodepage/runApp/regularPage/myDrafts.vue
  11. 30
      src/views/sysworkflow/lowcodepage/runApp/regularPage/myToDoPage.vue
  12. 39
      src/views/sysworkflow/lowcodepage/runApp/regularPage/sendCopy.vue
  13. 218
      src/views/taskplatform/taskmanagement/lookFlowInfoApp.vue
  14. 18
      src/views/taskplatform/taskmanagement/runFlowStep.vue
  15. 249
      src/views/taskplatform/taskmanagement/runFlowStepApp.vue
  16. 4
      src/widget/number/index.vue

9
src/api/taskapi/management.ts

@ -84,6 +84,7 @@ export function gainTaskFormInfo(data: customerFormLogo):AxiosPromise<customerFo
data: data
});
}
//获取工作流步进节点
export function softDeletion(data: any):any{
return request({
@ -149,6 +150,14 @@ export function authorizeWorkflow(data?:any){
data: data
});
}
export function runTaskFlow(data?:any){
return request({
url: '/systemapi/task_management/runTaskFlow',
method: 'post',
data: data
});
}
//获取流程可见范围
export function gainFlowLookSee(data?:any){
return request({

10
src/components/DesignForm/app/formPage.vue

@ -159,7 +159,7 @@ const model = ref<any>({})
//
watch(()=>props.isWorkFlow,(val:number)=>{
console.log("获取流程----->",val)
console.log("监听是否为流程表单----->",val,formProps)
if(val == 1){
getFlowInitSwps()
}
@ -734,9 +734,12 @@ const appFormSubmit = (params = {}) => {
.then((data:any)=>{
console.log("流程提交成功--------1---------->",data)
})
.finally(() =>{
afterSubmit('success', data)
})
})
}
afterSubmit('success', data)
})
.catch(res => {
afterSubmit('fail', res)
@ -986,8 +989,9 @@ const changeKeyVal = (key:any,val:any,type:any,attribute:any) => {
})
}
}
console.log("isUpdateFlowChart",isUpdateFlowChart)
//
if(isUpdateFlowChart){
if(isUpdateFlowChart && gainFlowChart.id !=0){
flowLoading.value = true
//
gainFlowChart.conditionList=flowFactor

6
src/components/DesignForm/app/index.vue

@ -16,6 +16,8 @@ import { Picture,InfoFilled,QuestionFilled } from '@element-plus/icons-vue'
import { softDeletion,retractRunWorkFlow } from '@/api/taskapi/management'
//
import FormPageCont from '@/components/DesignForm/tableListPage/formPageCont.vue'
import TableFlow from '@/views/sysworkflow/lowcodepage/pageFlow/appTableFlow.vue'
@ -63,6 +65,9 @@ const props = withDefaults(
versionid:() =>{
return ""
},
signCode:() =>{
return ""
},
versiontitle:() =>{
return ""
},
@ -581,6 +586,7 @@ const editFormSendFlow = (val:any) => {
</el-table-column>
<el-table-column v-else-if="item.fieldClass=='__control'" :prop="item.field" :label="item.label" config="" width="160">
<template #default="scope">
<el-button-group>
<el-tooltip
v-if="scope.row.flowIsOpen==1&&scope.row.taskStatus==1"

4
src/components/DesignForm/public/form/childTable.vue

@ -22,6 +22,9 @@ const props = withDefaults(
const formProps = inject(constFormProps, {}) as any
const tableDataNew = computed(() => {
console.log("如果编辑页禁用时-----1123---->",props.data.name)
console.log("如果编辑页禁用时-----1123---->",formProps.value.model[props.data.name])
console.log("如果编辑页禁用时-----1123---->",formProps.value.model)
console.log("如果编辑页禁用时-----1123---->",formProps.value)
return formProps.value.model[props.data.name]
})
const type = computed(() => {
@ -55,6 +58,7 @@ const delColumn = (index: number) => {
}
</script>
<template>
<div class="form-table form-table-add">
<el-table
v-bind="data.control"

1
src/components/DesignForm/public/form/formGroup.vue

@ -385,6 +385,7 @@ const getFormItemLableStyle = (ele: any) => {
<!-- <form-group :data="element.list" data-type="not-nested" /> -->
<form-group :data="element.list" data-type="not-table" />
</div>
<child-table v-else :data="element" />
</template>
<!--格栅布局-->

25
src/components/DesignForm/tableListPage/formPageCont.vue

@ -10,6 +10,10 @@ import { gainTaskFormInfo,generateFlow,gainEditDataLog,draftsInitiateApproval,af
import { Close } from '@element-plus/icons-vue'
import { judgeSubmitCancel,startRunFlow } from '@/api/DesignForm/requestapi'
import { submitButtonEs } from '@/api/DesignForm/tableButton'
import {
constFormBtnEvent,
constFormProps
} from '@/api/DesignForm/utils'
import RunFlowStep from '@/views/taskplatform/taskmanagement/runFlowStep.vue'
@ -53,6 +57,7 @@ const openOfClose = computed({
emits('update:isShow', val)
}
});
const formProps = inject(constFormProps, {}) as any
/**
@ 作者: 秦东
@ 时间: 2024-04-03 14:09:24
@ -161,12 +166,12 @@ const drawerBeforeClose = () => {
}
//
const sendDraftSubmit = (type: string,val?:any) => {
// console.log("",type,val)
console.log("提交审批",type,val)
// emits("getmytodolist")
if (type === 'success') {
if(props.pageInfo.flowIsOpen == 1){
let sendInfo ={
id:val.data.masterKey,
id:val.data.runFlowId,
flowList:flowAry.value,
state:3
}
@ -198,9 +203,9 @@ const saveEditFormInfo = (type: string,val?:any) => {
//
const anewSubmit = (type: string,val?:any) => {
console.log("重新提交数据-11--<",type,val)
if(type == "success"){
afreshRunWorkflow({id:val.data.flowkeys})
afreshRunWorkflow({id:val.data.runFlowId})
.then((data:any) => {
console.log("重新提交数据---<",data,runstep.value)
runstep.value.gainRunFlowTask()
@ -276,6 +281,12 @@ const submitEdit = (type: string,val?:any) => {
</el-descriptions>
</el-tab-pane>
</el-tabs>
<table style="margin-top:20px;">
<tr>
<td class="biankuang" width="100">修改说明</td>
<td class="biankuang">{{item.explicate}}</td>
</tr>
</table>
</el-card>
</el-timeline-item>
</el-timeline>
@ -288,6 +299,7 @@ const submitEdit = (type: string,val?:any) => {
</div>
</el-header>
<el-scrollbar class="scorllbarBox">
<RunFlowStep ref="runstep" v-model:flowary="flowAry" :flow-key="props.pageInfo.runFlowId" :current-progress="currentProgress" @updatelist="drawerBeforeClose" />
</el-scrollbar>
</el-aside>
@ -370,5 +382,8 @@ const submitEdit = (type: string,val?:any) => {
}
}
.biankuang{
border: 1px solid #D4D7DE;
padding:10px 10px;
}
</style>

23
src/components/DesignForm/tableListPage/formPageContApp.vue

@ -198,9 +198,9 @@ const saveEditFormInfo = (type: string,val?:any) => {
//
const anewSubmit = (type: string,val?:any) => {
console.log("重新提交数据-22--<",type,val)
if(type == "success"){
afreshRunWorkflow({id:val.data.flowkeys})
afreshRunWorkflow({id:val.data.runFlowId})
.then((data:any) => {
console.log("重新提交数据---<",data,runstep.value)
runstep.value.gainRunFlowTask()
@ -220,7 +220,7 @@ const anewSubmit = (type: string,val?:any) => {
const submitEdit = (type: string,val?:any) => {
// console("----->",type,val)
if(type == "success"){
runstep.value.gainRunFlowTask()
runstep.value.anewSubmit()
emits("getPageData");
closeDrawer()
}
@ -276,6 +276,12 @@ const submitEdit = (type: string,val?:any) => {
</el-descriptions>
</el-tab-pane>
</el-tabs>
<table v-if="item.explicate!=''" style="margin-top:20px;">
<tr>
<td class="biankuang" width="100">修改说明</td>
<td class="biankuang">{{item.explicate}}</td>
</tr>
</table>
</el-card>
</el-timeline-item>
</el-timeline>
@ -333,6 +339,12 @@ const submitEdit = (type: string,val?:any) => {
</el-descriptions>
</el-tab-pane>
</el-tabs>
<table style="margin-top:20px;">
<tr>
<td class="biankuang" width="100">修改说明</td>
<td class="biankuang">{{item.explicate}}</td>
</tr>
</table>
</el-card>
</el-timeline-item>
</el-timeline>
@ -370,5 +382,8 @@ const submitEdit = (type: string,val?:any) => {
}
}
.biankuang{
border: 1px solid #D4D7DE;
padding:10px 10px;
}
</style>

13
src/views/sysworkflow/lowcodepage/runApp/regularPage/completedMattersPage.vue

@ -5,6 +5,7 @@
-->
<script lang='ts' setup>
import { gainAppTaskList } from "@/api/DesignForm/requestapi"
import LookAndOperateLogInfo from '@/views/taskplatform/taskmanagement/lookFlowInfoApp.vue'
const props = defineProps({
pickAppMenu:{
type:Object,
@ -52,9 +53,21 @@ const getToDoList = () =>{
onMounted(() =>{
getToDoList()
})
const flowLogInfo = ref<any>()
const darwOpenOrClose = ref(false)
/**
@ 作者: 秦东
@ 时间: 2024-06-17 14:46:51
@ 功能: 查看表单详情
*/
const lookFlowInfo = (val:any,types:number) =>{
flowLogInfo.value = val
darwOpenOrClose.value = true
}
</script>
<template>
<div ref="myappbox" class="app_box">
<LookAndOperateLogInfo v-if="darwOpenOrClose" v-model:isshow="darwOpenOrClose" :flow-log-info="flowLogInfo" :drawer-with="drawerMyWith" @getmytodolist="getToDoListTd" />
<div class="app-container">
<div class="search">
<div class="titleBox">

1
src/views/sysworkflow/lowcodepage/runApp/regularPage/myCreate.vue

@ -214,6 +214,7 @@ const confirmEvent = (val:any) => {
<el-table-column label="状态" prop="status" align="center" width="220" >
<template #default="scope">
{{scope.row.status}}---->{{scope.row.types}}
<el-tag
v-if="scope.row.status==1"
class="mx-1"

31
src/views/sysworkflow/lowcodepage/runApp/regularPage/myDrafts.vue

@ -4,7 +4,7 @@
@ 备注: 草稿箱
-->
<script lang='ts' setup>
import FormPageCont from '@/components/DesignForm/tableListPage/formPageContApp.vue'
import { gainAppAllTaskList } from "@/api/DesignForm/requestapi"
//
@ -25,6 +25,8 @@ const selectInfo = reactive<taskflowquery>({
class:2,
id:props.pickAppMenu.appkey
})
const tablePageClass = ref(1)
const operState = ref<number>(1) // 1234;5:
const myappbox = ref();
const loading = ref(false)
const searckFormRef = ref(ElForm);
@ -34,6 +36,8 @@ const drawerMyWith = ref<number>(0); //页面宽度
const editPageShow = ref(false)
const sendPageShow = ref(false)
const taskInfo = ref<any>("")
const lookPageInfoIsShow = ref(false)
const pageInfoCont = ref<any>()
//
const resetQuery = () =>{
searckFormRef.value.resetFields();
@ -69,9 +73,16 @@ onMounted(() =>{
@ 功能: 提交审批
*/
const submitApproval = (val:any) =>{
taskInfo.value = val
drawerMyWith.value = myappbox.value?.clientWidth;
sendPageShow.value = true
// taskInfo.value = val
// drawerMyWith.value = myappbox.value?.clientWidth;
// sendPageShow.value = true
console.log("提交审批--->",val)
operState.value = 4
tablePageClass.value = 2;
pageInfoCont.value = val
drawerMyWith.value = myappbox.value?.clientWidth
lookPageInfoIsShow.value = true;
}
/**
@ 作者: 秦东
@ -79,13 +90,19 @@ const submitApproval = (val:any) =>{
@ 功能: 编辑草稿内容
*/
const editFlow = (val:any) =>{
taskInfo.value = val
drawerMyWith.value = myappbox.value?.clientWidth;
editPageShow.value = true
// taskInfo.value = val
// drawerMyWith.value = myappbox.value?.clientWidth;
// editPageShow.value = true
operState.value = 5;
tablePageClass.value = 2;
pageInfoCont.value = val
drawerMyWith.value = myappbox.value?.clientWidth
lookPageInfoIsShow.value = true;
}
</script>
<template>
<div ref="myappbox" class="app_box">
<FormPageCont v-model:is-show="lookPageInfoIsShow" :drawer-with="drawerMyWith" :page-info="pageInfoCont" :table-page-class="tablePageClass" :oper-state="operState" @getPageData="getToDoList" />
<AppEditPage v-model:is-open="editPageShow" :task-info="taskInfo" :drawer-width="drawerMyWith" @refreshFunction="getToDoList" />
<div class="app-container">
<div class="search">

30
src/views/sysworkflow/lowcodepage/runApp/regularPage/myToDoPage.vue

@ -6,6 +6,10 @@
<script lang='ts' setup>
import { gainAppTaskList } from "@/api/DesignForm/requestapi"
import { taskflowquery } from '@/api/DesignForm/type'
import LookAndOperateLogInfo from '@/views/taskplatform/taskmanagement/lookFlowInfoApp.vue'
const props = defineProps({
pickAppMenu:{
type:Object,
@ -19,9 +23,9 @@ const searckFormRefTd = ref(ElForm); //表单
const taskFlowAryTd = ref<any>([]) //
//
const selectInfoTd = reactive<taskflowquery>({
page: 2,
page: 1,
pagesize: 20,
class: 1,
class: 2,
id:props.pickAppMenu.appkey
})
const totalstd = ref<number>(0) //
@ -55,9 +59,31 @@ const getToDoList = () =>{
onMounted(() =>{
getToDoList()
})
/**
@ 作者: 秦东
@ 时间: 2024-06-17 08:13:56
@ 功能: 搜索
*/
const getToDoListTd = () =>{
getToDoList()
}
const flowLogInfo = ref<any>()
const darwOpenOrClose = ref(false)
/**
@ 作者: 秦东
@ 时间: 2024-06-17 14:46:51
@ 功能: 查看表单详情
*/
const lookFlowInfo = (val:any,types:number) =>{
flowLogInfo.value = val
darwOpenOrClose.value = true
}
</script>
<template>
<div ref="myappbox" class="app_box">
<LookAndOperateLogInfo v-if="darwOpenOrClose" v-model:isshow="darwOpenOrClose" :flow-log-info="flowLogInfo" :drawer-with="drawerMyWith" @getmytodolist="getToDoListTd" />
<div class="app-container">
<div class="search">

39
src/views/sysworkflow/lowcodepage/runApp/regularPage/sendCopy.vue

@ -5,11 +5,20 @@
-->
<script lang='ts' setup>
import { gainAppTaskList } from "@/api/DesignForm/requestapi"
import LookAndOperateLogInfo from '@/views/taskplatform/taskmanagement/lookFlowInfoApp.vue'
const props = defineProps({
pickAppMenu:{
type:Object,
default(){
return {}
}
}
});
const selectInfo = reactive<taskflowquery>({
page: 1,
pagesize: 20,
class:3
class:5,
id:props.pickAppMenu.appkey
})
const loading = ref(false)
const searckFormRef = ref(ElForm);
@ -25,12 +34,36 @@ const initData = () =>{
selectInfo.page = 1;
selectInfo.pagesize = 15;
selectInfo.title = ""
selectInfo.class = 3;
selectInfo.class = 5;
selectInfo.state = 0;
}
const getToDoList = () =>{
gainAppTaskList(selectInfo)
.then((data) =>{
console.log("加载数据--->",data)
totals.value = data.data.total
taskFlowAry.value = data.data.list
})
}
onMounted(() =>{
getToDoList()
})
const flowLogInfo = ref<any>()
const darwOpenOrClose = ref(false)
/**
@ 作者: 秦东
@ 时间: 2024-06-17 14:46:51
@ 功能: 查看表单详情
*/
const lookFlowInfo = (val:any,types:number) =>{
flowLogInfo.value = val
darwOpenOrClose.value = true
}
</script>
<template>
<div ref="myappbox" class="app_box">
<LookAndOperateLogInfo v-if="darwOpenOrClose" v-model:isshow="darwOpenOrClose" :flow-log-info="flowLogInfo" :drawer-with="drawerMyWith" @getmytodolist="getToDoListTd" />
<div class="app-container">
<div class="search">
<div class="titleBox">

218
src/views/taskplatform/taskmanagement/lookFlowInfoApp.vue

@ -0,0 +1,218 @@
<!--
@ 作者: 秦东
@ 时间: 2024-06-17 15:30:36
@ 备注: App执行任务
-->
<script lang='ts' setup>
import { submitButton, afreshSubmitButton,editFormCont,draftSubmitButton,editLookFormCont } from "@/utils/workflow/const";
import {
json2string,
objToStringify,
string2json,
stringToObj
} from '@/utils/DesignForm/form'
import { haveCustomerFormVersion,generateFlow,gainTaskFormInfo,gainEditDataLog } from '@/api/taskapi/management'
import RunFlowStepApp from '@/views/taskplatform/taskmanagement/runFlowStepApp.vue'
import { judgeSubmitCancel,startRunFlow,afreshRunFlow,onlyPublishFlow,gainEditFormFlowInfo } from '@/api/DesignForm/requestapi'
import FlowStep from '@/views/taskplatform/taskmanagement/flowStep.vue'
const props = defineProps({
isshow:{
type:Boolean,
default:true
},
drawerWith:{
type:Number,
default:0
},
flowLogInfo:{
type:Object,
default(){
return {}
}
},
operState:{
type:Number,
default:1
}
})
const flowAry = ref<any[]>();
const emits = defineEmits(["update:isshow","getmytodolist"]);
const isOpen = computed({
get: () => props.isshow,
set: (val) => {
emits("update:isshow", val);
},
});
const logistrue = ref(false)
const formLoading = ref(false)
const loadingData = ref(false) //
const flowLoading = ref(false) //
const versiontitle = ref<any>("")
const flowMap = ref<any>()
const nextStep = ref(0)
const nodeKey = ref<string>('');
const currentProgress = ref<number>(1);
const newLogAry = ref<any>("")
const oldLogAry = ref<any>("")
const newDataLen = ref<number>(0);
//
const formState = reactive({
formData: {
list: [],
form: {},
config: {}
},
dict: {},
formId: 25,
id: 1,
loading: true
})
const formEl = ref<any>()
const drawerBeforeClose = () => {
console.log("监听打开关闭",false)
emits("getmytodolist")
emits("update:isshow", false);
}
onMounted(()=>{
versiontitle.value = props.flowLogInfo.title
flowMap.value = JSON.parse(props.flowLogInfo.flowcont)
console.log("监听打开关闭",props.flowLogInfo)
gainFormData()
})
const pageLog = ref<any[]>([])
//
const gainFormData = () =>{
formLoading.value = true;
console.log("获取表单内容--->",props.flowLogInfo)
nextStep.value = props.flowLogInfo.nextStep
nodeKey.value = props.flowLogInfo.nodeKey;
currentProgress.value = props.flowLogInfo.currentStep
console.log("props.flowLogInfo--5-------->",props.flowLogInfo.mastesform)
formState.formData = stringToObj(props.flowLogInfo.mastesform)
gainTaskFormInfo({ id: props.flowLogInfo.mastersKeyStr})
.then((data:any)=>{
if(data.data.logistrue){
formState.formData.list.push(editLookFormCont)
}
console.log("res----获得数据回显------->",data)
formEl.value.setValue(data.data.masterDataInfo)
newLogAry.value = data.data.newData
oldLogAry.value = data.data.oldData
logistrue.value = data.data.logistrue
newDataLen.value = data.data.newDataLen
formLoading.value = false;
nextTick(()=>{
console.log("获取自定义表单内容-1111-->",data.data.tableData)
formEl.value.setValue(data.data.tableData)
})
})
.finally(()=>{
formLoading.value = false;
gainEditDataLog({id:props.flowLogInfo.mastersKeyStr})
.then(({data})=>{
console.log("获取修改记录-1111-->",data)
pageLog.value = data.logAry
});
})
// haveCustomerFormVersion({id:props.flowLogInfo.version_id.toString()})
// .then(({ data }) =>{
// formState.dict = string2json(data.dict)
// judgeSubmitCancel({"name":data.mastesformjson})
// .then((dataBut:any) =>{
// if(dataBut.code == 0){
// formState.formData.list.push(afreshSubmitButton)
// // console.log("res----------->",dataBut,props.operState)
// // if (dataBut.data == 3 || dataBut.data == 4){
// // formInfo.formData.list.push(editFormCont)
// // }
// }
// })
// })
// .finally(() => {
// formLoading.value = false;
// formEl
// })
}
</script>
<template>
<el-drawer v-model="isOpen" v-loading="loadingData" element-loading-my-text="Loading..." :title="versiontitle" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true" :size="props.drawerWith" class="drawerClass" :before-close="drawerBeforeClose">
<table border="0" class="tableFlowBox">
<tr>
<td valign="top">
<div class="drawerFormBox boxLeft">
<ak-form
ref="formEl"
v-loading="formLoading" element-loading-text="Loading..."
:form-data="formState.formData"
:type="formType"
:dict="formState.dict"
request-url="getFormContent"
add-url="saveFormContent"
edit-url="editFormContent"
:before-submit="beforeSubmit"
:close-app-submit="closeAppSubmit"
:change-key-val="changeKeyVal"
:anew-submit = "anewSubmit"
:save-edit-form-info="saveEditFormInfo"
:send-draft-submit= "sendDraftSubmit"
/>
<el-divider v-if="pageLog&&pageLog.length > 0" content-position="left">历史记录</el-divider>
<el-timeline>
<el-timeline-item v-for="(item,index) in pageLog" :key="index" :timestamp="item.time+' 操作人:'+item.creater" placement="top">
<el-card>
<el-descriptions border>
<el-descriptions-item v-for="(mastItem,mastIndex) in item.masterdata" :key="mastIndex" :label="mastIndex">
{{mastItem}}
</el-descriptions-item>
</el-descriptions>
<el-tabs v-if="item.sunList" type="border-card" style="margin-top:20px;">
<el-tab-pane v-for="(sonItem,sonIndex) in item.sunList" :label="sonIndex" :key="sonIndex">
<el-descriptions v-for="(sonVal,sonIndex) in sonItem" :key="sonIndex" border>
<el-descriptions-item v-for="(sonCentor,sonKey) in sonVal" :key="sonKey" :label="sonKey"> {{sonCentor}}
</el-descriptions-item>
</el-descriptions>
</el-tab-pane>
</el-tabs>
<table style="margin-top:20px;">
<tr>
<td class="biankuang" width="100">修改说明</td>
<td class="biankuang">{{item.explicate}}</td>
</tr>
</table>
</el-card>
</el-timeline-item>
</el-timeline>
</div>
</td>
<td valign="top" width="350">
<RunFlowStepApp ref="runstep" v-model:flowary="flowAry" :flow-key="props.flowLogInfo.idStr" :current-progress="currentProgress" @updatelist="drawerBeforeClose" />
</td>
</tr>
</table>
</el-drawer>
</template>
<style lang='scss' scoped>
.biankuang{
border: 1px solid #D4D7DE;
padding:10px 10px;
}
</style>

18
src/views/taskplatform/taskmanagement/runFlowStep.vue

@ -7,7 +7,7 @@
import SvgIcon from "@/components/SvgIcon/index.vue";
import OrgUserPage from "@/views/public/orguser/orguser.vue"
import OrgAllUserPage from "@/views/public/orguser/orgalluser.vue"
import { authorizeWorkflow } from '@/api/taskapi/management'
import { authorizeWorkflow,afreshRunWorkflow } from '@/api/taskapi/management'
// import { nodeFlow,conditionInfo,nodelPeoples } from '@/api/taskapi/types'
import { gainRunTaskFlow,submitApprovalResults } from '@/api/DesignForm/requestapi'
@ -53,7 +53,7 @@ const gainRunFlowTask = () =>{
}
gainRunTaskFlow(sendInfo)
.then((data:any) =>{
console.log("获取流程----->",data)
console.log("获取流程--werwerwerwer--->",data)
flowMaps.value = data.data.flowList
flowOpinion.value = data.data.operational
currentStep.value = data.data.current_step
@ -129,7 +129,19 @@ const yesOrNo = (val:string,agreeOrRefuse:number) =>{
})
}
defineExpose({gainRunFlowTask})
//
const anewSubmit = (type: string,val?:any) => {
afreshRunWorkflow({id:props.flowKey})
.then((data:any) => {
})
.finally(() => {
gainRunFlowTask()
})
}
defineExpose({gainRunFlowTask,anewSubmit})
</script>
<template>
<div class="drawerFormBox boxRight">

249
src/views/taskplatform/taskmanagement/runFlowStepApp.vue

@ -0,0 +1,249 @@
<!--
@ 作者: 秦东
@ 时间: 2024-06-17 15:39:17
@ 备注: 审批设置
-->
<script lang='ts' setup>
import SvgIcon from "@/components/SvgIcon/index.vue";
import OrgUserPage from "@/views/public/orguser/orguser.vue"
import OrgAllUserPage from "@/views/public/orguser/orgalluser.vue"
import { authorizeWorkflow,runTaskFlow } from '@/api/taskapi/management'
// import { nodeFlow,conditionInfo,nodelPeoples } from '@/api/taskapi/types'
import { gainRunTaskFlow,submitApprovalResults } from '@/api/DesignForm/requestapi'
//
import squareUrlOne from "@/assets/images/1.png"
import squareUrlTwo from "@/assets/images/2.png"
const state = reactive({
circleUrl:squareUrlTwo,
squareUrl: squareUrlOne,
sizeList: ['small', '', 'large'] as const,
})
const { circleUrl, squareUrl, sizeList } = toRefs(state)
const props = defineProps({
flowKey:{
type:String,
default:""
},
currentProgress:{
type:Number,
default:0
}
})
const emits = defineEmits(["update:flowary","updatelist"]);
const flowLoading = ref(false)
const openOrClose = ref(false) //
const openclosebox = ref(false) //
const presetPersonnel = ref<any>([]); //
const selectedPeople = ref<any>([]); //
const flowOpinion = ref(false) //
const currentStep = ref<number>(props.currentProgress)
const flowMaps = ref<any[]>();
//
const gainRunFlowTask = () =>{
flowLoading.value = true
let sendInfo = {
id:props.flowKey
}
gainRunTaskFlow(sendInfo)
.then((data:any) =>{
console.log("获取流程--获取任务流程--->",data)
flowMaps.value = data.data.flowList
flowOpinion.value = data.data.operational
currentStep.value = data.data.current_step
emits("update:flowary", data.data.flowList);
})
.finally(()=>{
flowLoading.value = false
})
}
//
onBeforeMount(()=>{
gainRunFlowTask();
})
//
onMounted(()=>{
})
//
const judgeAddUser = (val:any):boolean =>{
console.log("获取流程----1111->",val.judgelist)
if(val.judgelist){
return true
}
return false
}
let zhiXingStep = 1;
//
const addPeople = (val:any) =>{
zhiXingStep = val.step
presetPersonnel.value = val.pendpers
selectedPeople.value = val.operator
if(val.runscope == 1){
openclosebox.value = true
}else{
openOrClose.value = true
}
}
//
const updateNode = (val:any) =>{
if(flowMaps.value&& flowMaps.value.length > 0){
flowMaps.value.forEach((item:any) =>{
if(item.step == zhiXingStep){
item.operator = val
}
})
}
}
const sendFlowInfo = ref<string>() //
//
const yesOrNo = (val:string,agreeOrRefuse:number) =>{
console.log("提交审批----1111->",val,agreeOrRefuse,sendFlowInfo.value)
let sendInfo = {
id:props.flowKey,
agreeOrRefuse:agreeOrRefuse,
suggest:sendFlowInfo.value,
flowlist:flowMaps.value
}
runTaskFlow(sendInfo)
.then((data:any)=>{
// console.log("----22222->",data)
ElMessage({
message: '处理完成!',
type: 'success'
})
})
.finally(()=>{
gainRunFlowTask();
emits("updatelist");
})
}
defineExpose({gainRunFlowTask})
</script>
<template>
<div class="drawerFormBox boxRight">
<div class="flowBox">
<!-- <el-affix :offset="20" style="width:100%">
<el-text size="large">审批流程</el-text>
</el-affix> -->
<el-steps v-loading="flowLoading" element-loading-text="Loading..." direction="vertical" :active="currentStep">
<el-step v-for="item in flowMaps" :key="item.step">
<template #title>
{{ item.nodeName }}<span v-if="item.examinemode==1"> 依次审批</span><span v-if="item.examinemode==2"> 会签</span><span v-if="item.examinemode==3"> 或签</span>
</template>
<template #description>
<table>
<tr v-for="items in item.operator" :key="items.id">
<td valign="top" align="center" width="50">
<el-avatar v-if="items.iconbase64==''&&items.icon!=''" shape="square" fit="cover" :src="items.icon" />
<el-avatar v-else-if="items.iconbase64!=''" shape="square" fit="cover" :src="items.iconbase64" />
<el-avatar v-else shape="square" fit="cover" :src="squareUrl" />
</td>
<td valign="top" align="left">
<el-row>
<el-col :span="24">
<el-text>{{ items.departmentname }}</el-text>
<el-text><span v-if="items.departmentname"> - </span>{{ items.postname }}</el-text>
<el-text><span v-if="items.departmentname||items.postname"> - </span>{{ items.name }}</el-text>
</el-col>
<el-col :span="24">
<ul>
<li v-for="(logItem,logIndex) in items.log" :key="logIndex" class="logLi">
<el-text v-if="logItem.state==2" type="success">
<span v-if="logItem.cause">{{logItem.cause}}</span><span v-else>已同意</span>
</el-text>
<el-text v-else-if="logItem.state==3" type="danger">
<span v-if="logItem.cause">{{logItem.cause}}</span><span v-else>已驳回</span>
</el-text>
<el-text v-else-if="logItem.state==4" type="primary">
<span v-if="logItem.cause">{{logItem.cause}}</span><span v-else>已查看</span>
</el-text>
<el-text v-else>
<span v-if="logItem.cause">{{logItem.cause}}</span><span v-else>未操作</span>
</el-text> · {{ logItem.time }}
</li>
</ul>
</el-col>
</el-row>
</td>
</tr>
<tr>
<td>
<div v-if="item.judgelist" class="addUser" @click="addPeople(item)">
<svg-icon icon-class="addxuxian" size="50" />
</div>
</td>
<td></td>
</tr>
</table>
</template>
</el-step>
</el-steps>
</div>
<el-affix v-if="flowOpinion" position="bottom" :offset="0">
<div class="approvalBoard">
<el-text size="large" class="appBoardTitle">审批意见</el-text>
<el-row :gutter="20">
<el-col :span="24">
<el-input
v-model="sendFlowInfo"
:autosize="{ minRows: 2, maxRows: 6 }"
type="textarea"
placeholder="请输入审批意见"
/>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4"></el-col>
<el-col :span="8" class="juzhong"><el-button type="primary" style="width:100%" @click="yesOrNo(props.flowKey,1)">同意</el-button></el-col>
<el-col :span="8" class="juzhong"><el-button type="danger" style="width:100%" @click="yesOrNo(props.flowKey,2)">驳回</el-button></el-col>
<el-col :span="4"></el-col>
</el-row>
</div>
</el-affix>
<OrgUserPage v-if="openOrClose" v-model:openclose="openOrClose" :preset-personnel="presetPersonnel" :selected-people="selectedPeople" @update-node="updateNode" />
<OrgAllUserPage v-if="openclosebox" v-model:openclosebox="openclosebox" :selected-people="selectedPeople" @update-node="updateNode" />
</div>
</template>
<style lang='scss' scoped>
.drawerFormBox{
width: 100%;
height: 100%;
}
.boxRight{
overflow: hidden;
overflow-y: auto;
border-left: 1px solid #EEEEEE;
}
.flowBox{
width: 100%;
padding: 0 5px 0 10px;
}
.approvalBoard{
padding: 5px 10px;
background-color: #FFFFFF;
border-top: 1px solid #EEEEEE;
.juzhong{
padding: 10px 0;
text-align: center;
}
.appBoardTitle{
padding: 5px 0 10px 0;
display: block;
}
}
</style>

4
src/widget/number/index.vue

@ -83,8 +83,8 @@ const updateModel = (val: any) => {
})
}
onMounted(() => {
console.log("编码组件---》",props.data,props.data.control.config)
if(props.numrun == 1){
console.log("编码组件---》",props.numrun,props.data,props.data.control.config)
if(props.numrun == 2){
getNumber()
}
})

Loading…
Cancel
Save