From d83860d6839daaf7dccda5cbd68e865ba7e679ab Mon Sep 17 00:00:00 2001 From: maven <2163098428@qq.com> Date: 星期二, 08 七月 2025 17:48:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 106 insertions(+), 0 deletions(-) diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue new file mode 100644 index 0000000..57b5e38 --- /dev/null +++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue @@ -0,0 +1,106 @@ +<template> + <div> + <el-dialog + v-model="dialogFormVisible" + :title="operationType === 'add' ? '鏂板瀹℃壒娴佺▼' : '缂栬緫瀹℃壒娴佺▼'" + width="700px" + @close="closeDia" + > + <el-form :model="{ activities }" ref="formRef" label-position="top"> + <el-timeline style="max-width: 600px"> + <el-timeline-item + v-for="(activity, index) in activities" + :key="index" + :type="activity.current ? 'primary' : ''" + :hollow="activity.current" + :timestamp="activity.timestamp" + > + <el-card> + <span style="font-size: 18px;font-weight: 700">{{activity.content}}</span> + <div style="margin: 10px 0"> + <span style="font-size: 16px;font-weight: 600">瀹℃壒浜猴細{{activity.people}}</span> + </div> + <div> + <span style="margin-bottom: 8px;display: inline-block;font-size: 16px;font-weight: 600">瀹℃壒鎰忚锛�</span> + <el-form-item + v-if="activity.current" + :prop="'activities.' + index + '.value'" + :rules="[{ required: true, message: '瀹℃壒鎰忚涓嶈兘涓虹┖', trigger: 'blur' }]" + > + <el-input v-model="activity.value" clearable type="textarea" :disabled="operationType === 'view'"></el-input> + </el-form-item> + <el-form-item v-else> + <el-input v-model="activity.value" clearable type="textarea" disabled></el-input> + </el-form-item> + </div> + </el-card> + </el-timeline-item> + </el-timeline> + </el-form> + <template #footer v-if="operationType === 'approval'"> + <div class="dialog-footer"> + <el-button type="primary" @click="submitForm">纭</el-button> + <el-button @click="closeDia">鍙栨秷</el-button> + </div> + </template> + </el-dialog> + </div> +</template> + +<script setup> +import {getCurrentInstance, ref} from "vue"; +const emit = defineEmits(['close']) +const { proxy } = getCurrentInstance() + +const dialogFormVisible = ref(false); +const operationType = ref('') +const activities = ref([ + { + content: '鑺傜偣1', + timestamp: '', + type: 'primary', + hollow: true, + people: 'admin', + value: '' + }, + { + content: '鑺傜偣2', + timestamp: '', + type: '', + hollow: false, + current: true, + people: 'admin', + value: '' + }, +]) +const formRef = ref(null); + +// 鎵撳紑寮规 +const openDialog = (type, row) => { + operationType.value = type; + dialogFormVisible.value = true; +} +// 鎻愪氦瀹℃壒 +const submitForm = () => { + formRef.value.validate(valid => { + if (valid) { + // 鏍¢獙閫氳繃鍚庣殑閫昏緫 + } + }) +} +// 鍏抽棴寮规 +const closeDia = () => { + proxy.resetForm("formRef"); + dialogFormVisible.value = false; + emit('close') +}; +defineExpose({ + openDialog, +}); +</script> + +<style scoped> +.el-timeline { + padding-left: 10px; +} +</style> \ No newline at end of file -- Gitblit v1.9.3