Browse Source

修改流程表单ID

qin_14
hreenshan112 9 months ago
parent
commit
bcea460930
  1. 2
      src/views/sysworkflow/lowcodepage/appCardPage.vue
  2. 768
      src/views/sysworkflow/lowcodepage/pageFlow/appTableFlow.vue
  3. 589
      src/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue

2
src/views/sysworkflow/lowcodepage/appCardPage.vue

@ -148,7 +148,7 @@ const openApp = (val: any) => {
emits("getRongQiAttr");
pickAppInfo.value = val;
appJwtPower({ id: val.signCodeStr, types: 1 }).then(({ data }) => {
// console.log("------>data:",data)
// console.log("------>data:", data);
if (data) {
runIsOpen.value = true;
} else {

768
src/views/sysworkflow/lowcodepage/pageFlow/appTableFlow.vue

File diff suppressed because it is too large

589
src/views/sysworkflow/lowcodepage/pageFlow/tableFlow.vue

@ -3,47 +3,60 @@
@ 时间: 2024-04-08 15:21:19
@ 备注: 表单有无流程处理
-->
<script lang='ts' setup>
import { nodeFlow,conditionInfo,nodelPeoples } from '@/api/taskapi/types'
import { haveCustomerFormVersion,generateFlow,echoTableFormPage,realTimeUpdateFlow } from '@/api/taskapi/management'
import { string2json,stringToObj } from '@/utils/DesignForm/form'
import { judgeSubmitCancel,startRunFlow } from '@/api/DesignForm/requestapi'
import { notAsA_BasisForJudgment,asAnApprovalActionControl,fixedValueControl,timeControl,timeEquation,submitButton, afreshSubmitButton } from '@/utils/workflow/const'
import FlowStep from '@/views/taskplatform/taskmanagement/flowStep.vue'
<script lang="ts" setup>
import { nodeFlow, conditionInfo, nodelPeoples } from "@/api/taskapi/types";
import {
haveCustomerFormVersion,
generateFlow,
echoTableFormPage,
realTimeUpdateFlow,
} from "@/api/taskapi/management";
import { string2json, stringToObj } from "@/utils/DesignForm/form";
import { judgeSubmitCancel, startRunFlow } from "@/api/DesignForm/requestapi";
import {
notAsA_BasisForJudgment,
asAnApprovalActionControl,
fixedValueControl,
timeControl,
timeEquation,
submitButton,
afreshSubmitButton,
} from "@/utils/workflow/const";
import FlowStep from "@/views/taskplatform/taskmanagement/flowStep.vue";
const props = defineProps({
isopen:{
type:Boolean,
default:true
isopen: {
type: Boolean,
default: true,
},
versionid:{
type:String,
default:""
versionid: {
type: String,
default: "",
},
versiontitle:{
type:String,
default:""
versiontitle: {
type: String,
default: "",
},
drawerwith:{
type:Number,
default:0
}
})
const formLoading = ref(false) //loading
const flowLoading = ref(false) //loading
drawerwith: {
type: Number,
default: 0,
},
});
const formLoading = ref(false); //loading
const flowLoading = ref(false); //loading
const flowFactor = reactive<conditionInfo[]>([]) //
const flowFactor = reactive<conditionInfo[]>([]); //
const flowMap = ref<any[]>(); //
const nextStep = ref<number>(0);
const currentProgress = ref<number>(1);
const nodeKey = ref<string>('');
const nodeKey = ref<string>("");
//
const gainFlowChart = reactive<nodeFlow>({
id:"0"
})
id: "0",
});
const nodelUserList = reactive<nodelPeoples[]>([])
const nodelUserList = reactive<nodelPeoples[]>([]);
/**
@ 作者: 秦东
@ 时间: 2024-04-08 15:35:54
@ -55,15 +68,15 @@ const state = reactive<any>({
list: [],
form: {},
config: {},
powerstr:{}
powerstr: {},
},
dict: {},
formId: props.versionid,
id: 0,
loading: true
})
loading: true,
});
const emits = defineEmits(["update:isopen","searchquery","optionsValue3Get4"]);
const emits = defineEmits(["update:isopen", "searchquery", "optionsValue3Get4"]);
const drawerOpenOrClose = computed({
get: () => props.isopen,
set: (val) => {
@ -73,83 +86,83 @@ const drawerOpenOrClose = computed({
const drawbox = computed({
get: () => {
// console.log("isFlowTable",isFlowTable.value)
if(isFlowTable.value){
return 1300
if (isFlowTable.value) {
return 1300;
}
return props.drawerwith
return props.drawerwith;
},
set: (val:number) => {
return val
set: (val: number) => {
return val;
},
});
const isFlowTable = ref(false) //
const isFlowTable = ref(false); //
//
const getTaskFormData = () =>{
formLoading.value = true
flowLoading.value = true
echoTableFormPage({id:props.versionid.toString()})
.then(({ data }) =>{
const getTaskFormData = () => {
formLoading.value = true;
flowLoading.value = true;
echoTableFormPage({ id: props.versionid.toString() })
.then(({ data }) => {
// console.log("",data)
if(data.tableFormPage.flowIsOpen == 1 && data.tableFormPage.flowkeystr != "0"){
if (data.tableFormPage.flowIsOpen == 1 && data.tableFormPage.flowkeystr != "0") {
isFlowTable.value = true;
}else{
} else {
isFlowTable.value = false;
}
gainFlowChart.id=data.tableFormPage.flowkeystr
gainFlowChart.id = data.tableFormPage.flowkeystr;
// console.log("--->1",data.flowPage.flowList)
flowMap.value = data.flowPage.flowList
state.id=props.versionid
state.formData = stringToObj(data.tableFormPage.mastesform)
state.formData.config.hideField = []//:confighideField,
flowMap.value = data.flowPage.flowList;
state.id = props.versionid;
state.formData = stringToObj(data.tableFormPage.mastesform);
state.formData.config.hideField = []; //:confighideField,
// console.log("tableFlow---echoTableFormPage---data.tableFormPage.mastesform",data.tableFormPage.mastesform)
state.dict = string2json(data.tableFormPage.dict)
state.dict = string2json(data.tableFormPage.dict);
state.formData.powerstr = string2json(data.tableFormPage.powerstr)
judgeSubmitCancel({"name":data.tableFormPage.mastesformjson})
.then((datajud:any) =>{
if(datajud.code == 0){
if (datajud.data == 3 || datajud.data == 4){
state.formData.list.push(submitButton)
state.formData.powerstr = string2json(data.tableFormPage.powerstr);
judgeSubmitCancel({ name: data.tableFormPage.mastesformjson }).then(
(datajud: any) => {
if (datajud.code == 0) {
if (datajud.data == 3 || datajud.data == 4) {
state.formData.list.push(submitButton);
}
}
}
);
})
})
.finally(()=>{
formLoading.value = false
flowLoading.value = false
})
}
.finally(() => {
formLoading.value = false;
flowLoading.value = false;
});
};
//
watch(()=>props.isopen,()=>{
if(props.isopen){
watch(
() => props.isopen,
() => {
if (props.isopen) {
getTaskFormData();
}else{
initData()
} else {
initData();
}
}
})
);
//
const initData = () => {
state.formData = {
list: [],
form: {},
config: {}
config: {},
};
state.dict = {};
state.formId = 0;
state.id = 0;
state.loading = true;
let aryLen = flowFactor.length
if(aryLen > 0) flowFactor.splice(0,aryLen);
}
let aryLen = flowFactor.length;
if (aryLen > 0) flowFactor.splice(0, aryLen);
};
//
const changeKeyVal = (key:any,val:any,type:any,attribute:any) => {
const changeKeyVal = (key: any, val: any, type: any, attribute: any) => {
// console.log("--key--->",key)
// console.log("--val--->",val,Array.isArray(val))
// console.log("--type--->",type)
@ -157,302 +170,310 @@ const changeKeyVal = (key:any,val:any,type:any,attribute:any) => {
// console.log("--type-1-true->",notAsA_BasisForJudgment.indexOf(type))
// console.log("--flowFactor--->",flowFactor)
// if(notAsA_BasisForJudgment.indexOf(type) != -1){
// console.log("--type--true->",notAsA_BasisForJudgment.indexOf(type))
// }
let unitsVal = val
let isUpdateFlowChart = false
let unitsVal = val;
let isUpdateFlowChart = false;
//
if(notAsA_BasisForJudgment.indexOf(type) === -1){
let isWrite = true
flowFactor.forEach((item:any)=>{
if(item.factorid == key){
isWrite = false
item.type=3
if(type == "checkbox"){
item.isCheckbox = true
item.answers = val.map(String)
}else{
item.isCheckbox = false
item.oneanswer = val.toString()
}
if(notAsA_BasisForJudgment.indexOf(type) === -1){
isUpdateFlowChart = true
}
}
})
if(isWrite){
if(type == "checkbox"){
if (notAsA_BasisForJudgment.indexOf(type) === -1) {
let isWrite = true;
flowFactor.forEach((item: any) => {
if (item.factorid == key) {
isWrite = false;
item.type = 3;
if (type == "checkbox") {
item.isCheckbox = true;
item.answers = val.map(String);
} else {
item.isCheckbox = false;
item.oneanswer = val.toString();
}
if (notAsA_BasisForJudgment.indexOf(type) === -1) {
isUpdateFlowChart = true;
}
}
});
if (isWrite) {
if (type == "checkbox") {
flowFactor.push({
factorid:key,
type:3,
isCheckbox:true,
answers:val.map(String)
})
}else{
factorid: key,
type: 3,
isCheckbox: true,
answers: val.map(String),
});
} else {
flowFactor.push({
factorid:key,
type:3,
isCheckbox:false,
oneanswer:val.toString()
})
factorid: key,
type: 3,
isCheckbox: false,
oneanswer: val.toString(),
});
}
isUpdateFlowChart = true
isUpdateFlowChart = true;
}
// console.log("--flowFactor--->",flowFactor)
}
// console.log("--flowFactor--1->",unitsVal,timeControl,type)
//
if(timeControl.indexOf(type) > -1 || fixedValueControl.indexOf(type) > -1 || type == "input"){
if (
timeControl.indexOf(type) > -1 ||
fixedValueControl.indexOf(type) > -1 ||
type == "input"
) {
// console.log("--flowFactor--3->",unitsVal)
let addNewTime = true //
flowFactor.forEach((item:any)=>{
let addNewTime = true; //
flowFactor.forEach((item: any) => {
// console.log("--flowFactor--5->",item.type)
if(item.type == 2){
addNewTime = false
if (item.type == 2) {
addNewTime = false;
// console.log("--flowFactor--5====1->",item.type)
// console.log("--flowFactor--5====3->",item.customFields,item.customFields.length)
if(item.customFields && item.customFields.length > 0){
if (item.customFields && item.customFields.length > 0) {
// console.log("--flowFactor--5====2->",item.customFields)
let sunNewAdd = true
item.customFields.forEach((sunItem:any)=>{
let sunNewAdd = true;
item.customFields.forEach((sunItem: any) => {
// console.log("--flowFactor-4->",sunItem.wordfield , key,sunItem.wordfield == key)
if(sunItem.wordfield == key){
sunNewAdd = false
isUpdateFlowChart = true
if(timeEquation.indexOf(attribute) === -1){ //
sunItem.leftval = val.toString()
}else{ //
if(Array.isArray(val)){
if(val.length >= 2){
sunItem.leftval = val[0].toString()
sunItem.rightval = val[val.length - 1].toString()
}
}
}
}
})
if(sunNewAdd){
isUpdateFlowChart = true
if(timeEquation.indexOf(attribute) === -1){//
if (sunItem.wordfield == key) {
sunNewAdd = false;
isUpdateFlowChart = true;
if (timeEquation.indexOf(attribute) === -1) {
//
sunItem.leftval = val.toString();
} else {
//
if (Array.isArray(val)) {
if (val.length >= 2) {
sunItem.leftval = val[0].toString();
sunItem.rightval = val[val.length - 1].toString();
}
}
}
}
});
if (sunNewAdd) {
isUpdateFlowChart = true;
if (timeEquation.indexOf(attribute) === -1) {
//
let customFieldInfo = {
wordfield: key,
optType: "1",
leftval: val.toString()
}
item.customFields.push(customFieldInfo)
}else{ //
if(Array.isArray(val)){
if(val.length >= 2){
leftval: val.toString(),
};
item.customFields.push(customFieldInfo);
} else {
//
if (Array.isArray(val)) {
if (val.length >= 2) {
let customFieldInfo = {
wordfield: key,
optType: "6",
leftval: val[0].toString(),
leftoptType:"3",
rightoptType:"3",
rightval:val[val.length - 1].toString()
}
item.customFields.push(customFieldInfo)
leftoptType: "3",
rightoptType: "3",
rightval: val[val.length - 1].toString(),
};
item.customFields.push(customFieldInfo);
}
}
}
}
}
}
})
});
if(addNewTime){ //
isUpdateFlowChart = true
if(timeEquation.indexOf(attribute) === -1){ //
if (addNewTime) {
//
isUpdateFlowChart = true;
if (timeEquation.indexOf(attribute) === -1) {
//
let customFieldInfo = {
wordfield: key,
optType: "1",
leftval: val.toString()
}
leftval: val.toString(),
};
let condInfo = {
factorid:"customFields",
type:2,
isCheckbox:false,
customFields:[customFieldInfo]
}
flowFactor.push(condInfo)
}else{ //
if(Array.isArray(val)){
if(val.length >= 2){
factorid: "customFields",
type: 2,
isCheckbox: false,
customFields: [customFieldInfo],
};
flowFactor.push(condInfo);
} else {
//
if (Array.isArray(val)) {
if (val.length >= 2) {
let customFieldInfo = {
wordfield: key,
optType: "6",
leftval: val[0].toString(),
leftoptType:"3",
rightoptType:"3",
rightval:val[val.length - 1].toString()
}
leftoptType: "3",
rightoptType: "3",
rightval: val[val.length - 1].toString(),
};
let condInfo = {
factorid:"customFields",
type:2,
isCheckbox:false,
customFields:[customFieldInfo]
}
flowFactor.push(condInfo)
factorid: "customFields",
type: 2,
isCheckbox: false,
customFields: [customFieldInfo],
};
flowFactor.push(condInfo);
}
}
}
}
}
//
if(asAnApprovalActionControl.indexOf(type) > -1){
isUpdateFlowChart = true
let isWriteUs = true
nodelUserList.forEach((item:any)=>{
if(item.factorid == key){
isWriteUs = false
item.userList = val
}
})
if(isWriteUs){
if (asAnApprovalActionControl.indexOf(type) > -1) {
isUpdateFlowChart = true;
let isWriteUs = true;
nodelUserList.forEach((item: any) => {
if (item.factorid == key) {
isWriteUs = false;
item.userList = val;
}
});
if (isWriteUs) {
nodelUserList.push({
factorid:key,
userList:val
})
factorid: key,
userList: val,
});
}
}
// console.log("--flowFactor--->",flowFactor)
//
if(isUpdateFlowChart){
flowLoading.value = true
if (isUpdateFlowChart) {
flowLoading.value = true;
//
gainFlowChart.conditionList=flowFactor
gainFlowChart.nodelPeople=nodelUserList
gainFlowChart.oldFlow = flowMap
gainFlowChart.conditionList = flowFactor;
gainFlowChart.nodelPeople = nodelUserList;
gainFlowChart.oldFlow = flowMap;
// console.log("--gainFlowChart--->",gainFlowChart)
realTimeUpdateFlow(gainFlowChart)
.then((data:any) =>{
realTimeUpdateFlow(gainFlowChart).then((data: any) => {
// console.log("-new-->",data)
flowMap.value = data.data.flowList
flowMap.value = data.data.flowList;
nextStep.value = data.data.nextStep;
currentProgress.value = data.data.Step;
nodeKey.value = data.data.nodeKey;
// // console.log("-1-->",flowMap.value)
flowLoading.value = false
})
flowLoading.value = false;
});
}
}
};
/**
@ 作者: 秦东
@ 时间: 2024-04-09 16:41:20
@ 功能: 提交成功回调
*/
const afterSubmit = (type: string,val?:any) => {
const afterSubmit = (type: string, val?: any) => {
// console.log("------------------>",type,val)
// console.log("------------------>",flowMap)
if (type === 'success') {
emits("searchquery")
if(isFlowTable.value){
if(val.code == 0){
if(val.data){
let sendInfo ={
id:val.data.uuid,
flowList:flowMap.value,
state:3
}
startRunFlow(sendInfo)
.then((data:any)=>{
if (type === "success") {
emits("searchquery");
if (isFlowTable.value) {
if (val.code == 0) {
if (val.data) {
let sendInfo = {
id: val.data.uuid,
flowList: flowMap.value,
state: 3,
};
startRunFlow(sendInfo).then((data: any) => {
// console.log("--------1---------->",data)
})
});
}
}
}
}
closeAppSubmit()
}
closeAppSubmit();
};
/**
@ 作者: 秦东
@ 时间: 2024-04-09 16:49:09
@ 功能: 表单前置数据
*/
const beforeSubmit = (params: any) => {
params.formId = props.versionid
params.id = ""
params.formId = props.versionid;
params.id = "";
// emits("update:isopen", false);
return params
}
return params;
};
/**
@ 作者: 秦东
@ 时间: 2024-04-09 16:50:01
@ 功能: 关闭操作
*/
const closeAppSubmit = () =>{
const closeAppSubmit = () => {
emits("update:isopen", false);
}
};
/**
@ 作者: 秦东
@ 时间: 2024-04-09 16:50:37
@ 功能: 保存草稿
*/
const saveDraftPage = (type: string,val?:any) => {
if (type === 'success') {
emits("searchquery")
if(isFlowTable.value){
if(val.code == 0){
let sendInfo ={
id:val.data.uuid,
flowList:flowMap.value,
state:1
}
startRunFlow(sendInfo)
.then((data:any)=>{
const saveDraftPage = (type: string, val?: any) => {
if (type === "success") {
emits("searchquery");
if (isFlowTable.value) {
if (val.code == 0) {
let sendInfo = {
id: val.data.uuid,
flowList: flowMap.value,
state: 1,
};
startRunFlow(sendInfo).then((data: any) => {
// console.log("--------1---------->",data)
})
});
}
}
}
closeAppSubmit()
}
closeAppSubmit();
};
function optionsValue3Get3(data: any,fieldName: string){
function optionsValue3Get3(data: any, fieldName: string) {
//console.log("tableFlow","optionsValue3Get3")
if(fieldName.startsWith("childTable---")){
let tableAndFieldNameArr = fieldName.split("---")
for(let i = 0; i < state.formData.list.length; i++){
if(state.formData.list[i].name==tableAndFieldNameArr[1]){
for(let u = 0; u < state.formData.list[i].list.length; u++){
if(state.formData.list[i].list[u].name==tableAndFieldNameArr[2]){
state.formData.list[i].list[u].options = []
for(let j = 0;j<data.length;j++){
state.formData.list[i].list[u].options.push(data[j])
if (fieldName.startsWith("childTable---")) {
let tableAndFieldNameArr = fieldName.split("---");
for (let i = 0; i < state.formData.list.length; i++) {
if (state.formData.list[i].name == tableAndFieldNameArr[1]) {
for (let u = 0; u < state.formData.list[i].list.length; u++) {
if (state.formData.list[i].list[u].name == tableAndFieldNameArr[2]) {
state.formData.list[i].list[u].options = [];
for (let j = 0; j < data.length; j++) {
state.formData.list[i].list[u].options.push(data[j]);
}
}
}
}
}
}else{
for(let i = 0; i < state.formData.list.length; i++){
if(state.formData.list[i].name==fieldName){
state.formData.list[i].options = []
for(let j = 0;j<data.length;j++){
state.formData.list[i].options.push(data[j])
} else {
for (let i = 0; i < state.formData.list.length; i++) {
if (state.formData.list[i].name == fieldName) {
state.formData.list[i].options = [];
for (let j = 0; j < data.length; j++) {
state.formData.list[i].options.push(data[j]);
}
}
}
}
}
</script>
<template>
<el-drawer v-model="drawerOpenOrClose" v-loading="loadingData" :title="versiontitle" :close-on-click-modal="false" :close-on-press-escape="false" :destroy-on-close="true" :size="drawbox" class="drawerClass" >
<el-drawer
v-model="drawerOpenOrClose"
v-loading="loadingData"
:title="versiontitle"
:close-on-click-modal="false"
:close-on-press-escape="false"
:destroy-on-close="true"
:size="drawbox"
class="drawerClass"
>
<div v-if="isFlowTable" class="common-layout">
<el-container>
<el-main v-loading="formLoading" element-loading-text="Loading...">
@ -472,18 +493,28 @@ function optionsValue3Get3(data: any,fieldName: string){
:save-draft-page="saveDraftPage"
/>
</el-main>
<el-aside v-loading="flowLoading" element-loading-text="Loading..." width="350px" class="flowBox">
<el-aside
v-loading="flowLoading"
element-loading-text="Loading..."
width="350px"
class="flowBox"
>
<el-text size="large">审批流程</el-text>
<FlowStep v-model:flow-map="flowMap" :next-step="nextStep" :current-progress="currentProgress" :node-key="nodeKey" />
<FlowStep
v-model:flow-map="flowMap"
:next-step="nextStep"
:current-progress="currentProgress"
:node-key="nodeKey"
/>
</el-aside>
</el-container>
</div>
<!--无流程表单-->
<div v-else class="common-layout">
<ak-form
ref="formEl"
v-loading="formLoading" element-loading-text="Loading..."
v-loading="formLoading"
element-loading-text="Loading..."
:form-data="state.formData"
:type="formType"
:numrun="formType"
@ -499,30 +530,28 @@ function optionsValue3Get3(data: any,fieldName: string){
/>
</div>
</el-drawer>
</template>
<style lang='scss' scoped>
.common-layout{
<style lang="scss" scoped>
.common-layout {
height: calc(100vh - 55px);
padding: 0 15px;
.el-main{
.el-main {
height: calc(100vh - 55px);
padding:0;
padding: 0;
}
.flowBox{
.flowBox {
height: calc(100vh - 55px);
border-left: 1px solid #ccc;
padding: 0 15px;
}
.el-header{
padding:0 10px;
line-height:30px;
text-align:right;
font-size:20px;
i{
cursor:pointer;
.el-header {
padding: 0 10px;
line-height: 30px;
text-align: right;
font-size: 20px;
i {
cursor: pointer;
}
}
}
</style>

Loading…
Cancel
Save