Преглед изворни кода

feat: 业务创建 初始化

lanceJiang пре 1 година
родитељ
комит
0688998891

+ 9 - 2
src/views/flow/create/business.vue

@@ -27,7 +27,14 @@
 			</div>
 		</div>
 		<div class="create-approval-main">
-			<component :is="item.component" v-for="(item, idx) in componentsArr" v-show="item.value === activeTab" ref="compRefs" :key="idx" />
+			<component
+				:is="item.component"
+				v-for="(item, idx) in componentsArr"
+				v-show="item.value === activeTab"
+				ref="compRefs"
+				:key="idx"
+				from="business"
+			/>
 		</div>
 	</div>
 </template>
@@ -42,7 +49,7 @@ import { useRoute, useRouter } from 'vue-router'
 import process from '@/api/flow/process'
 import useStore from '@/store'
 import { ElMessage } from 'element-plus'
-import ExtendSetTab from "@/views/flow/create/components/ExtendSet.vue";
+import ExtendSetTab from '@/views/flow/create/components/ExtendSet.vue'
 const { tagsView } = useStore()
 const router = useRouter()
 const route = useRoute()

+ 19 - 0
src/views/flow/create/components/BasicInfo.vue

@@ -5,6 +5,13 @@ import UseSelect from '@/components/scWorkflow/select'
 import group from '@/api/flow/group'
 import { useRoute } from 'vue-router'
 import { flowIconPrefix, ImageArr } from '@/utils/index'
+import SelectProcessForm from './SelectProcessForm.vue'
+const props = defineProps({
+	from: {
+		type: String,
+		default: ''
+	}
+})
 const route = useRoute()
 const flowInfo = useFlowStore()
 const visiblePopover = ref(false)
@@ -37,6 +44,13 @@ const rules = {
 			trigger: 'blur'
 		}
 	],
+	processFormId: [
+		{
+			required: true,
+			message: '请输入名称',
+			trigger: 'change' // todo...
+		}
+	],
 	categoryId: [
 		{
 			required: true,
@@ -163,6 +177,11 @@ defineExpose({
 				<el-form-item label="名称" prop="processName">
 					<el-input v-model="flowInfo.processName" clearable maxlength="15"></el-input>
 				</el-form-item>
+				<el-form-item v-if="from === 'business'" prop="processFormId">
+					<SelectProcessForm v-model="flowInfo.processFormId" />
+					<!-- todo 如要做校验 进行改造 -->
+					<el-input class="hidden" v-model="flowInfo.processFormId" />
+				</el-form-item>
 				<el-form-item label="说明" prop="remark">
 					<el-input v-model="flowInfo.remark" type="textarea" clearable></el-input>
 				</el-form-item>

+ 80 - 0
src/views/flow/create/components/SelectProcessForm.vue

@@ -0,0 +1,80 @@
+<template>
+	<div>
+		<el-button type="primary" icon="plus" round @click="selectProcessForm">选择流程表单</el-button>
+		<el-tag v-for="(user, index) in [{ name: '测试', id: '1' }]" :key="user.id" closable @close="delProcessForm">{{ user.name }}</el-tag>
+		<!-- 查看流程表单 查看 -->
+		<el-dialog v-model="visible" class="le-dialog local-select-process-form-dialog" title="选择流程表单" width="800">
+			<div>dsdddd</div>
+			<template #footer>
+				<el-button @click="closeDialog">关 闭</el-button>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script setup lang="ts">
+import { computed, onMounted, type PropType, reactive, ref, watch } from 'vue'
+// import { processTaskApprovalInfo } from '@/api/flow/processTask'
+// import { ElMessage } from 'element-plus'
+// import { formatTimestamp } from '@/utils/datetime.ts'
+
+const props = defineProps({
+	modelValue: {
+		type: Boolean,
+		default: false
+	},
+	// value: {
+	// 	type: String,
+	// 	default: ''
+	// }
+})
+const visible = ref(false)
+const selectProcessForm = () => {
+	console.log('selectProcessForm')
+	visible.value = true
+}
+const delProcessForm = () => {
+	console.log('delProcessForm')
+}
+
+const validateForm = ref({
+	rule: [],
+	loading: false
+})
+const EReditorRef = ref()
+const modelContentConfig = ref({})
+const activeData = ref([])
+
+const $myEmit = defineEmits(['update:modelValue'/*, 'update:value'*/])
+
+const queryDetail = () => {}
+onMounted(queryDetail)
+const closeDialog = () => {
+	$myEmit('update:modelValue', false)
+}
+
+/*const visible = computed({
+	get() {
+		return props.modelValue
+	},
+	set(val) {
+		$myEmit('update:modelValue', val)
+	}
+})*/
+watch(() => props.value, (val) => {
+	console.error(val, 'props.value')
+})
+</script>
+
+<style scoped lang="scss">
+.flow-detail-content {}
+</style>
+<style lang="scss">
+// 全局样式
+.local-select-process-form-dialog {
+	.el-dialog__body {
+		height: calc(100vh - 160px);
+		padding: 12px 16px;
+	}
+}
+</style>