吉安感知网项目-前端
shuishen
2026-01-20 fd10c98949580d7ae337cfb91fb80eb728e268d9
Merge branch 'master' of http://139.196.74.78:10010/r/jagzwxm/ja_web
2 files modified
1 files added
130 ■■■■■ changed files
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue 33 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue 6 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/reasonForRejectionDialog.vue 91 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
@@ -138,7 +138,7 @@
            <el-button
                class="save-btn"
                color="#4C34FF"
                
                @click="rejectTheApplication"
            >
@@ -148,6 +148,13 @@
        </template>
    </el-dialog>
    <!-- 拒绝申请弹框 -->
    <reasonForRejectionDialog
        v-if="rejectionDialogVisible"
        v-model="rejectionDialogVisible"
        @confirm="handleRejectionConfirm"
    />
</template>
<script setup>
@@ -155,10 +162,11 @@
import { getDictLabel } from '@ztzf/utils'
import { gdSupplyDemandDetailApi, putFileAttachApi,gdSupplyDemandAuditPassApi,gdSupplyDemandAuditRejectApi } from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi'
import { ElMessage, ElMessageBox } from 'element-plus'
import reasonForRejectionDialog from './reasonForRejectionDialog.vue'
const dictObj = inject('dictObj')
const deptTree = inject('deptTree')
const demandId = ref('')
const visible = defineModel() // 弹框显隐
const formData = ref({}) // 表单数据
const uploadRef = ref() // 上传组件引用
@@ -167,6 +175,8 @@
const uploadedFiles = ref([]) // 已上传文件列表
const uploadLoading = ref(false) // 上传加载状态
const responseData = ref([])
// 拒绝申请弹框控制
const rejectionDialogVisible = ref(false) // 拒绝申请弹框显隐
// 步骤条数据
const steps = ref([
    { title: '需求申请', person: '张三', time: '2025-03-31 12:23:30' },
@@ -317,8 +327,9 @@
async function open({ row }) {
    if (row?.id) {
        await loadDetail(row.id)
        // 可以在这里加载已上传的文件列表
        // loadUploadedFiles(row.id)
        demandId.value = row.id
        console.log('row.id',demandId.value);
    }
    visible.value = true
}
@@ -351,11 +362,21 @@
    if(responseData.value.length === 0){
        return ElMessage.warning('请上传数据')
    }
    // 打开拒绝申请弹框
    rejectionDialogVisible.value = true
}
// 处理拒绝申请确认
const handleRejectionConfirm = (reason) => {
    const id = [responseData.value.attachId]
    console.log('responseData.value',responseData.value)
    gdSupplyDemandAuditRejectApi({ attachIds:id }).then(() => {
    console.log('demandId.value',demandId.value);
    gdSupplyDemandAuditRejectApi({ attachIds: id, auditOpinion: reason ,demandId:'2013137230848598018'}).then(() => {
        ElMessage.success('拒绝申请成功')
        visible.value = false
    }).catch(error => {
        console.error('拒绝申请失败:', error)
        ElMessage.error('拒绝申请失败,请重试')
    })
}
// 审核通过
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue
@@ -66,7 +66,7 @@
            :model="formData"
            :rules="rules"
            :disabled="dialogReadonly"
            label-width="120px"
            label-width="130px"
        >
            <el-row>
                <el-col :span="12">
@@ -172,13 +172,11 @@
                        <el-input class="gd-input" v-model="formData.dataSource" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <el-form-item label="需求信息项" prop="demandInfo">
                        <el-input
                            class="gd-input"
                            v-model="formData.demandInfo"
                            type="textarea"
                            :rows="4"
                            placeholder="请输入"
                            clearable
                        />
applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/reasonForRejectionDialog.vue
New file
@@ -0,0 +1,91 @@
<template>
    <el-dialog
        class="gd-dialog"
        v-model="visible"
        :title="'拒绝申请'"
        @closed="visible = false"
        destroy-on-close
        width="550px"
        align-center
    >
        <div class="detail-container">
            <div class="detail-cell">
                <span class="cell-label">拒绝原因:</span>
                <el-input v-model="reasonForRejection" style="width: 380px" type="textarea" placeholder="请输入" />
            </div>
        </div>
        <template #footer>
            <!-- <el-button @click="handleCancel">取消</el-button> -->
            <el-button class="save-btn" color="#4C34FF" @click="handleConfirm">确认</el-button>
        </template>
    </el-dialog>
</template>
<script setup>
import { ref, watch } from 'vue'
import { ElMessage } from 'element-plus'
const props = defineProps({
    modelValue: {
        type: Boolean,
        default: false,
    },
})
const emit = defineEmits(['update:modelValue', 'confirm'])
const visible = ref(props.modelValue)
const reasonForRejection = ref('')
// 监听visible变化,同步到父组件
watch(
    () => visible.value,
    newVal => {
        emit('update:modelValue', newVal)
    }
)
// 监听父组件modelValue变化
watch(
    () => props.modelValue,
    newVal => {
        visible.value = newVal
    }
)
// 取消按钮点击事件
const handleCancel = () => {
    visible.value = false
    reasonForRejection.value = ''
}
// 确认按钮点击事件
const handleConfirm = () => {
    if (!reasonForRejection.value.trim()) {
        return ElMessage.warning('请输入拒绝原因')
    }
    emit('confirm', reasonForRejection.value)
    visible.value = false
    reasonForRejection.value = ''
}
</script>
<style scoped lang="scss">
.detail-container {
    padding: 20px;
    display: flex;
    align-items: flex-start;
    gap: 30px;
    .detail-cell {
        display: flex;
        justify-content: center;
        .cell-label {
            min-width: 80px;
            flex-shrink: 0;
        }
        :deep(.el-textarea__inner) {
            height: 100px !important;
        }
    }
}
</style>