|
@@ -0,0 +1,110 @@
|
|
|
+<template>
|
|
|
+ <el-drawer class="local-launch_drawer-wrap" title="测试表单" :model-value="modelValue" @update:modelValue="$emit('update:modelValue', $event)">
|
|
|
+ <!-- <div v-loading="loading" class="local_loading" element-loading-text="加载中..." element-loading-background="rgba(0, 0, 0, 0.1)" />-->
|
|
|
+ <FormCreate :option="formOption" :rule="formRule" />
|
|
|
+ </el-drawer>
|
|
|
+</template>
|
|
|
+<script setup lang="ts">
|
|
|
+import model from '@/api/flow/process'
|
|
|
+import viewForm from '@/utils/form'
|
|
|
+import { ref, shallowRef, computed } from 'vue'
|
|
|
+import { ElMessage } from 'element-plus'
|
|
|
+type Props = {
|
|
|
+ modelValue: boolean
|
|
|
+ record: { processId: string; [key: string]: any }
|
|
|
+}
|
|
|
+const props = defineProps<Props>()
|
|
|
+/*const props = withDefaults(defineProps<Props>(), {
|
|
|
+ modelValue: false
|
|
|
+})*/
|
|
|
+const emit = defineEmits<{
|
|
|
+ 'update:modelValue': [id: number] // 具名元组语法
|
|
|
+ update: [value: string]
|
|
|
+}>()
|
|
|
+const FormCreate = viewForm.$form()
|
|
|
+const formOption = ref({
|
|
|
+ // resetBtn: { show: true },
|
|
|
+ onSubmit(formData) {
|
|
|
+ // console.error(formData, 'formData')
|
|
|
+ setTimeout(() => {
|
|
|
+ ElMessage.success('模拟 提交成功')
|
|
|
+ formOption.value.submitBtn.loading = false
|
|
|
+ }, 500)
|
|
|
+ },
|
|
|
+ submitBtn: { loading: false }
|
|
|
+ /*formData: {
|
|
|
+ local_workflow: {},
|
|
|
+ test_3: 'eeeee'
|
|
|
+ }*/
|
|
|
+})
|
|
|
+// setTimeout(() => {
|
|
|
+// formOption.value.submitBtn.loading = false
|
|
|
+// }, 500)
|
|
|
+/*const formData = ref({
|
|
|
+ local_workflow: {}
|
|
|
+})*/
|
|
|
+/*const workflowItem = computed(() => {
|
|
|
+ return {
|
|
|
+ type:'ScWorkflow',
|
|
|
+ field: 'local_workflow'
|
|
|
+ }
|
|
|
+})*/
|
|
|
+const workflowItem = {
|
|
|
+ type: 'ScWorkflow',
|
|
|
+ field: 'local_workflow'
|
|
|
+}
|
|
|
+const formRule = shallowRef([workflowItem])
|
|
|
+const loading = ref(true)
|
|
|
+model.processDetailApi(props.record.processId).then(res => {
|
|
|
+ console.error(res, '详情 process....', props.record)
|
|
|
+ // modelContent 审批流数据
|
|
|
+ let local_workflow = {}
|
|
|
+ try {
|
|
|
+ local_workflow = JSON.parse(res.modelContent || '{"processConfig":{}}').processConfig
|
|
|
+ } catch (e) {}
|
|
|
+ // formOption.value.formData = { local_workflow, test_3: 'eeeee' }
|
|
|
+ // processForm 动态表单
|
|
|
+ formRule.value = [...JSON.parse(res.processForm || '[]'), { ...workflowItem, value: local_workflow } /*, { type: 'input', field: 'test_3' }*/]
|
|
|
+ // loading.value = false
|
|
|
+ // console.error(formData.value, 'formData.value')
|
|
|
+})
|
|
|
+</script>
|
|
|
+<style lang="scss">
|
|
|
+.local-launch_drawer-wrap {
|
|
|
+ .el-drawer__header {
|
|
|
+ display: flex;
|
|
|
+ padding: 16px 24px;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ background-color: var(--el-color-info-light-9);
|
|
|
+ text-align: left;
|
|
|
+ /* margin-right: 0; */
|
|
|
+ margin-bottom: 0;
|
|
|
+ }
|
|
|
+ .el-drawer__close-btn {
|
|
|
+ padding: 0;
|
|
|
+ margin-right: -12px;
|
|
|
+ }
|
|
|
+ .el-drawer__body {
|
|
|
+ position: relative;
|
|
|
+ //display: flex;
|
|
|
+ //flex-direction: column;
|
|
|
+ }
|
|
|
+ .local_loading {
|
|
|
+ position: absolute;
|
|
|
+ left: 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ z-index: 999;
|
|
|
+ background: rgba(0, 0, 0, 0.05);
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+<!--<style scoped lang="scss">
|
|
|
+:deep(.local-launch_drawer-wrap) {
|
|
|
+ background: #f00;
|
|
|
+}
|
|
|
+</style>-->
|