Browse Source

feat: ScWorkflow 配置调整

lanceJiang 6 months ago
parent
commit
438c4c1d65

+ 5 - 2
src/views/approve/components/ViewProcessDialog.vue

@@ -75,7 +75,7 @@
 					<el-tag style="margin-left: 4px" type="warning" size="small">执行中</el-tag>
 					<el-tag style="margin-left: 4px" type="info" size="small">未执行</el-tag>
 				</div>
-				<ScWorkflow style="overflow-x: auto" :model-value="modelContentConfig" disabled />
+				<ScWorkflow :process-form="localProcessForm" style="overflow-x: auto" :model-value="modelContentConfig" disabled />
 			</div>
 		</div>
 		<template #footer>
@@ -121,6 +121,7 @@ const validateForm = ref({
 })
 const EReditorRef = ref()
 const modelContentConfig = ref({})
+const localProcessForm = ref({})
 const activeData = ref([])
 
 const $myEmit = defineEmits(['update:modelValue'])
@@ -146,7 +147,9 @@ const queryDetail = () => {
 				modelContentConfig.value = modelContent_config || {}
 				// 当前form 表单数据字符串
 				const cur_processForm_str = data.formContent || '{}'
-				const { formStructure, formData } = JSON.parse(cur_processForm_str)
+				const processForm = JSON.parse(cur_processForm_str)
+				const { formStructure, formData } = processForm
+				localProcessForm.value = processForm
 				EReditorRef.value.setData(formStructure, formData)
 				validateForm.value.rule = formStructure.fields
 			} catch (e) {

+ 8 - 4
src/views/approve/components/approvedContent.vue

@@ -121,7 +121,7 @@
 							<el-tag style="margin-left: 4px" type="warning" size="small">执行中</el-tag>
 							<el-tag style="margin-left: 4px" type="info" size="small">未执行</el-tag>
 						</div>
-						<ScWorkflow style="overflow-x: auto" :model-value="modelContentConfig" disabled />
+						<ScWorkflow style="overflow-x: auto" :model-value="modelContentConfig" :process-form="localProcessForm" disabled />
 					</div>
 				</div>
 
@@ -236,8 +236,8 @@
 </template>
 
 <script setup>
-import path from 'path'
 import useTaskProcessStore from '@/store/modules/taskProcess'
+// import useFlowStore from '@/store/modules/flow'
 import { computed, ref, nextTick, watch, markRaw, defineAsyncComponent, provide } from 'vue'
 import FlowStatusStamp from '@/components/Flow/FlowStatusStamp.vue'
 import FlowStatusTag from '@/components/Flow/FlowStatusTag.vue'
@@ -295,6 +295,7 @@ const tabList = computed(() => {
 })
 // store值
 const taskProcessInfo = useTaskProcessStore()
+// const flowStore = useFlowStore()
 const { currentTaskRow } = storeToRefs(taskProcessInfo)
 
 // 各种操作弹窗显示隐藏 start
@@ -335,6 +336,7 @@ const validateForm = ref({
 	rule: [],
 	loading: false
 })
+const localProcessForm = ref({})
 // 允许转交
 const allowTransfer = ref(true)
 // 允许加减签
@@ -505,7 +507,8 @@ const getTaskDetail = () => {
 					formContent = data.formContent
 				}
 				cur_processForm_str = formContent
-				const { formStructure, formData } = JSON.parse(cur_processForm_str)
+				const processForm = JSON.parse(cur_processForm_str)
+				const { formStructure, formData } = processForm
 				const formConfig = data.formConfig || []
 				cur_formStructure = formStructure // 存储一份
 				let newFields = cur_formStructure.fields
@@ -545,7 +548,8 @@ const getTaskDetail = () => {
 				cur_formData = formData
 				console.log(cur_formStructure, '=/////====newFormStructure')
 				console.log(formData, '=/////====newFormStructure formData')
-
+				localProcessForm.value = processForm
+				// flowStore.setProcessForm(cur_processForm_str)
 				EReditorRef.value.setData(cur_formStructure, formData)
 				validateForm.value.rule = newFields
 				/* 这里主要是表单设计的逻辑 end */

+ 8 - 7
src/views/approve/detail/index.vue

@@ -8,7 +8,7 @@
 			</div>
 
 			<!-- 值不为空 -->
-			<div class="column-page-wrap" v-show="currentTaskRow.instanceId">
+			<div v-show="currentTaskRow.instanceId" class="column-page-wrap">
 				<!-- 1、头部信息 -->
 				<div class="flow-status-stamp">
 					<div class="flow-stamp-container">
@@ -122,13 +122,13 @@
 							<el-tag style="margin-left: 4px" type="warning" size="small">执行中</el-tag>
 							<el-tag style="margin-left: 4px" type="info" size="small">未执行</el-tag>
 						</div>
-						<ScWorkflow style="overflow-x: auto" :model-value="modelContentConfig" disabled />
+						<ScWorkflow style="overflow-x: auto" :process-form="localProcessForm" :model-value="modelContentConfig" disabled />
 					</div>
 				</div>
 			</div>
 		</div>
 		<!-- 打印审批流 -->
-		<printer-dialog v-if="printerVisible" v-model="printerVisible" :currentTaskRow="currentTaskRow" :opts="printOpts"></printer-dialog>
+		<printer-dialog v-if="printerVisible" v-model="printerVisible" :current-task-row="currentTaskRow" :opts="printOpts"></printer-dialog>
 	</div>
 </template>
 
@@ -241,6 +241,7 @@ const allowAppendNode = ref(true)
 // 允许回退
 const allowRollback = ref(true)
 const modelContentConfig = ref({})
+const localProcessForm = ref({})
 
 // 系统表单
 const dyVueComponent = ref(undefined)
@@ -249,7 +250,6 @@ const dyVueForm = ref({})
 const currentObj = ref()
 provide('dyVueForm', dyVueForm) // 这里主要是存放动态的form的属性值
 
-
 /**
  * 详情按钮各个操作弹窗
  * @param visibleType 评论 拒绝 同意等
@@ -315,7 +315,7 @@ const getTaskDetail = () => {
 		// taskId: cur.taskId,
 		// instanceId: cur.instanceId,
 		// instanceState: cur.instanceState
-		instanceId: id,
+		instanceId: id
 	})
 		.then(data => {
 			const activeList = data.processApprovals
@@ -378,7 +378,8 @@ const getTaskDetail = () => {
 					formContent = data.formContent
 				}
 				cur_processForm_str = formContent
-				const { formStructure, formData } = JSON.parse(cur_processForm_str)
+				const processForm = JSON.parse(cur_processForm_str)
+				const { formStructure, formData } = processForm
 				const formConfig = data.formConfig || []
 				cur_formStructure = formStructure // 存储一份
 				let newFields = cur_formStructure.fields
@@ -419,6 +420,7 @@ const getTaskDetail = () => {
 				console.log(cur_formStructure, '=/////====newFormStructure')
 				console.log(formData, '=/////====newFormStructure')
 				EReditorRef.value.setData(cur_formStructure, formData)
+				localProcessForm.value = processForm
 				validateForm.value.rule = newFields
 				/* 这里主要是表单设计的逻辑 end */
 			} catch (e) {
@@ -443,7 +445,6 @@ const lookSubProcess = item => {
 		visible: true
 	}
 }
-
 </script>
 
 <style scoped lang="scss">