From 7539353c67d10555003ce889915def52a37ed6db Mon Sep 17 00:00:00 2001
From: zhouwenxuan <1175765986@qq.com>
Date: Mon, 29 Jan 2024 14:04:03 +0800
Subject: [PATCH] 接口对接
---
src/views/safetyReview/projectManage/components/confirmEnd.vue | 210 ++++++++++++++++++++++++++++++----------------------
1 files changed, 121 insertions(+), 89 deletions(-)
diff --git a/src/views/safetyReview/projectManage/components/confirmEnd.vue b/src/views/safetyReview/projectManage/components/confirmEnd.vue
index f265876..fe50704 100644
--- a/src/views/safetyReview/projectManage/components/confirmEnd.vue
+++ b/src/views/safetyReview/projectManage/components/confirmEnd.vue
@@ -3,76 +3,67 @@
<el-form ref="formRef" :model="state.formData" :rules="state.rules" class="register-form" label-position="top">
<el-row :gutter="30">
<el-col :span="6">
- <el-button type="primary" @click="addRectify">新增整改</el-button>
+ <el-button type="primary" @click="addRectify('add',{})">新增整改</el-button>
</el-col>
</el-row>
- <el-table :data="state.rectifyList" :border="true" style="margin: 20px 0">
+ <el-table :data="state.recitificationList" :border="true" style="margin: 20px 0">
<el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
- <el-table-column label="整改时间" header-align="center" class-name="small-padding fixed-width">
+ <el-table-column label="整改时间" prop="rectifyTime" align="center"></el-table-column>
+ <el-table-column label="提交时间" prop="updateTime" align="center"></el-table-column>
+ <el-table-column label="整改说明" prop="reason" align="center"></el-table-column>
+ <el-table-column label="整改人" prop="rectifyPerson" align="center"></el-table-column>
+ <el-table-column label="附件" prop="" align="center">
<template #default="scope">
- <el-date-picker
- style="width: 100%"
- v-model="scope.row.startDate"
- type="date"
- value-format="YYYY-MM-DD 00:00:00"
- placeholder="选择日期"
- size="large"
- />
+ <span @click="handlePreview(scope.row.accessoryFile)" style="color: #3b82f6;cursor:pointer">{{scope.row.accessoryFile.originName}}</span>
</template>
</el-table-column>
- <el-table-column label="整改人" header-align="center" class-name="small-padding fixed-width">
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
- <el-input v-model="scope.row.deviceName" maxlength="50" show-word-limit type="text" size="large"/>
- </template>
- </el-table-column>
- <el-table-column label="附件" header-align="center" class-name="small-padding fixed-width">
- <template #default="scope">
- <el-upload accept=".pdf" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="handleAvatarSuccess" :on-exceed="showTip" :limit='1' v-model:file-list="state.fileList[scope.$index]" :before-upload="picSize" :on-remove="handleRemove" :before-remove="beforeRemove">
- <el-button type="primary">附件上传</el-button>
- <template #tip>
- <div class="el-upload__tip">上传pdf尺寸小于5M,最多可上传1张</div>
- </template>
- </el-upload>
- </template>
- </el-table-column>
- <el-table-column label="操作" header-align="center" class-name="small-padding fixed-width">
- <template #default="scope">
- <el-button link type="danger" @click="delRectify(scope.$index)">删除</el-button>
+ <el-button link type="primary" @click="addRectify('edit',scope.row)">编辑</el-button>
+ <el-button link type="danger" @click="del(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-form>
+ <div class="pag-container">
+ <el-pagination
+ v-model:current-page="state.queryParams.pageNum"
+ v-model:page-size="state.queryParams.pageSize"
+ :page-sizes="[10,15,20,25]"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="total"
+ @size-change="handleSizeChange"
+ @current-change="handleCurrentChange"
+ />
+ </div>
+ <confirm-end-dialog ref="confirmRef" @getList="getList"></confirm-end-dialog>
</div>
</template>
<script setup>
import {defineEmits, onMounted, reactive, ref} from "vue";
-import {ElMessage} from "element-plus";
+import {ElMessage, ElMessageBox} from "element-plus";
import {addRecord, editRecord, getDetail} from "@/api/projectManage/contractMng";
import Cookies from "js-cookie";
import { getToken } from "@/utils/auth";
+import confirmEndDialog from './confirmEndDialog.vue'
+import {delProject, getAccessoryFile} from "@/api/projectManage/project";
+import {delRecitification, doConfirm, getRecognitionList} from "@/api/projectManage/riskAnalysis";
+import axios from "axios";
+const confirmRef = ref(null);
const emit = defineEmits(["getNextStatus"]);
const state = reactive({
- formData: {
- id: '',
- contractSignDate: '',
- contractMoney: '',
- contractIntroduction: ''
+ formData: {},
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
},
- rectifyList: [],
- rules: {
- contractSignDate: [{required: true, message: '请选择合同签订日期', trigger: 'blur'}],
- contractMoney: [{required: true, message: '请输入项目合同额', trigger: 'blur'}]
- },
- fileList: [],
- uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
- header: {
- Authorization: 'Bearer ' + getToken()
- }
+ recitificationList: [],
})
+const total = ref(0);
const isAmin = ref(false)
const formRef = ref();
onMounted(() => {
@@ -80,62 +71,55 @@
if(userInfo.identity === 0){
isAmin.value = true;
}
+ if(Cookies.get('projectId')){
+ state.formData.projectId = Cookies.get('projectId');
+ getList(state.formData.projectId);
+ }
+ // getList();
});
-const riskOpen = async (type,val) => {
- state.formData.projectId = val;
- if(type === 'detail' || type === 'edit' ){
- const res = await getDetail({projectId: val});
- if(res.code == 200){
- state.formData = res.data;
- }else {
- ElMessage.warning(res.message)
- }
+
+const getList = async (val) => {
+ const res = await getRecognitionList({projectId: val});
+ if(res.code == 200){
+ state.recitificationList = res.data.list;
+ total.value = res.data.total;
+ }else {
+ ElMessage.warning(res.message)
}
- if(type === 'add' || type === 'clickEdit') {
- const valid = await formRef.value.validate();
- if(valid){
- if (isAmin.value) {
- ElMessage.warning("当前用户暂无权限");
- return;
- }
- if(type === 'add'){
- const {id, ...data} = JSON.parse(JSON.stringify(state.formData))
- const res = await addRecord(data);
- if (res.code == 200) {
- ElMessage.success('保存成功')
- formRef.value.clearValidate();
- emit('getNextStatus', state.formData.projectId);
- } else {
- ElMessage.warning(res.message)
- }
- }else if(type === 'clickEdit'){
- const { ...data} = JSON.parse(JSON.stringify(state.formData))
- const res = await editRecord(data);
- if (res.code == 200) {
- ElMessage.success('变更成功')
- formRef.value.clearValidate();
- // emit('getNextStatus', data.project.id);
- } else {
- ElMessage.warning(res.message)
- }
- }
+}
+
+const riskOpen = async (type,val) => {
+ await getList(val);
+ state.formData.projectId = val;
+ if(type === 'confirm') {
+ const res = await doConfirm({projectId: val});
+ if (res.code == 200) {
+ ElMessage.success('保存成功')
+ formRef.value.clearValidate();
+ emit('getNextStatus', state.formData.projectId);
+ } else {
+ ElMessage.warning(res.message)
}
}
}
-const addRectify = ()=>{
- let file = {
- fileName: '',
- deviceName: '',
- startDate: '',
- endDate: ''
- }
- state.rectifyList.push(file)
+const addRectify = (type,val)=>{
+ val.projectId = state.formData.projectId;
+ confirmRef.value.openDialog(type,val)
}
const delRectify = (index)=>{
state.rectifyList.splice(index,1)
+}
+const handleSizeChange = (val) => {
+ state.queryParams.pageNum = 1;
+ state.queryParams.pageSize = val
+ getList()
+}
+const handleCurrentChange = (val) => {
+ state.queryParams.pageNum = val
+ getList()
}
// 图片上传
@@ -181,6 +165,50 @@
})
}
}
+const handlePreview = (file) => {
+ const url = import.meta.env.VITE_APP_BASE_API + '/' + file.path
+ axios.get( url,{
+ headers:
+ {
+ 'Content-Type': 'application/json',
+ 'Authorization':getToken(),
+ },
+ responseType: 'blob'
+ }
+ ).then(res=>{
+ if (res) {
+ const link = document.createElement('a')
+ let blob = new Blob([res.data],{type: res.data.type})
+ link.style.display = "none";
+ link.href = URL.createObjectURL(blob); // 创建URL
+ link.setAttribute("download", file.originName);
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ } else {
+ this.$message.error('获取文件失败')
+ }
+ })
+}
+const del = (val) => {
+ ElMessageBox.confirm(
+ '确定删除此条数据?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await delRecitification(val)
+ if(res.code == 200){
+ ElMessage.success('数据删除成功')
+ getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+}
defineExpose({
riskOpen
@@ -194,5 +222,9 @@
font-size: 15px;
}
}
+.pag-container{
+ float: right;
+ margin-top: 20px;
+}
</style>
--
Gitblit v1.9.2