feat: 工程验收部分功能新增以及BUG修改
This commit is contained in:
parent
c726db1c01
commit
6be37ebd32
@ -94,3 +94,7 @@ export const noticeDetailMyPost = (params: { noticeId: string }) => {
|
||||
export const noticeReadMyPost = (params: { noticeId: string }) => {
|
||||
return http.post(BASEURL + `/xmgl/notice/read`, params);
|
||||
};
|
||||
// 查询工程的单体工程信息
|
||||
export const singleEngineer = (params: any) => {
|
||||
return http.post(BASEURL + `/project/engineering/querySingle`, params);
|
||||
};
|
||||
|
||||
@ -517,3 +517,26 @@ export const applyTimeAdd = (params: any) => {
|
||||
export const subItemDetailAdd = (params: any) => {
|
||||
return http.post(BASEURL + `/project/investmentPaymentDetail/add`, params);
|
||||
};
|
||||
|
||||
// 工程验收
|
||||
// 验收计划分页列表
|
||||
export const acceptancePlanPage = (params: any) => {
|
||||
return http.post(BASEURL + `/project/checkAcceptPlan/page`, params);
|
||||
};
|
||||
// 验收计划新增
|
||||
export const acceptancePlanAdd = (params: any) => {
|
||||
return http.post(BASEURL + `/project/checkAcceptPlan/add`, params);
|
||||
};
|
||||
// 验收计划编辑
|
||||
export const acceptancePlanEdit = (params: any) => {
|
||||
return http.post(BASEURL + `/project/checkAcceptPlan/edit`, params);
|
||||
};
|
||||
// 验收计划删除
|
||||
export const acceptancePlanDelete = (params: any) => {
|
||||
return http.post(BASEURL + `/project/checkAcceptPlan/delete`, params);
|
||||
};
|
||||
|
||||
// 验收申请分页列表
|
||||
export const acceptanceApplyPage = (params: any) => {
|
||||
return http.post(BASEURL + `/project/checkAcceptApply/page`, params);
|
||||
};
|
||||
|
||||
@ -29,6 +29,8 @@ export const GlobalStore = defineStore({
|
||||
// language
|
||||
language: "",
|
||||
path: null,
|
||||
// 工程Sn
|
||||
engineeringSn: "",
|
||||
// themeConfig
|
||||
themeConfig: {
|
||||
// 当前页面是否全屏
|
||||
|
||||
@ -15,6 +15,7 @@ export interface GlobalState {
|
||||
openDropdown: boolean | null;
|
||||
path: string | null;
|
||||
isManager: string | null;
|
||||
engineeringSn: string;
|
||||
}
|
||||
|
||||
/* themeConfigProp */
|
||||
|
||||
@ -406,6 +406,8 @@ const childrenConfirm = async (formEl: FormInstance | undefined, form: any) => {
|
||||
return;
|
||||
}
|
||||
}
|
||||
form.overdueIssueFile = JSON.stringify(form.overdueIssueFile);
|
||||
form.annexFile = JSON.stringify(form.annexFile);
|
||||
if (form.id) {
|
||||
if (newTitle.value == "编辑子项") {
|
||||
form.parentId = parentObj.value.parentId;
|
||||
@ -441,13 +443,13 @@ const uploadFileSuccess = (response: any) => {
|
||||
};
|
||||
const uploadSuccess1 = (response: any) => {
|
||||
ElMessage.success("上传成功");
|
||||
childrenFormData.value.overdueIssueFile = response.result.url;
|
||||
fileList1.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
childrenFormData.value.overdueIssueFile = { name: response.result.originalFilename, url: response.result.url };
|
||||
fileList1.value = [{ name: response.result.originalFilename, url: response.result.url }];
|
||||
};
|
||||
const uploadSuccess = (response: any) => {
|
||||
ElMessage.success("上传成功");
|
||||
childrenFormData.value.annexFile = response.result.url;
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
childrenFormData.value.annexFile = { name: response.result.originalFilename, url: response.result.url };
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.url }];
|
||||
};
|
||||
const onRemove1: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
childrenFormData.value.overdueIssueFile = "";
|
||||
@ -516,8 +518,8 @@ const handleEditItem = async (row: any) => {
|
||||
newTitle.value = "编辑";
|
||||
}
|
||||
childrenFormData.value = { ...row };
|
||||
fileList.value = row.annexFile ? [{ name: "文件", url: row.annexFile }] : [];
|
||||
fileList1.value = row.overdueIssueFile ? [{ name: "文件", url: row.overdueIssueFile }] : [];
|
||||
fileList.value = row.annexFile ? [{ ...JSON.parse(row.annexFile) }] : [];
|
||||
fileList1.value = row.overdueIssueFile ? [{ ...JSON.parse(row.overdueIssueFile) }] : [];
|
||||
childrenVisible.value = true;
|
||||
};
|
||||
onMounted(() => {
|
||||
|
||||
@ -297,9 +297,7 @@ const searchForm = ref({
|
||||
});
|
||||
const onDowmload = (key: string) => {
|
||||
if (childrenFormData.value[key]) {
|
||||
ElMessageBox.confirm("确认下载数据?", "温馨提示", { type: "warning" }).then(() =>
|
||||
useDownload(exportApp, "附件文件", { fileUrl: childrenFormData.value[key] })
|
||||
);
|
||||
window.open(baseUrl + "/xmgl/file/preview?fileUrl=" + JSON.parse(childrenFormData.value[key]).url);
|
||||
} else {
|
||||
ElMessage.error("暂无可下载文件");
|
||||
}
|
||||
@ -316,7 +314,7 @@ const handleCurrentChange = (val: any) => {
|
||||
const uploadSuccess = (response: any) => {
|
||||
ElMessage.success("上传成功");
|
||||
childrenFormData.value.annexFile = response.result.url;
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.url }];
|
||||
};
|
||||
const onRemove: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
childrenFormData.value.annexFile = "";
|
||||
@ -329,10 +327,10 @@ const handleEditItem = async (row: any) => {
|
||||
newTitle.value = "查看";
|
||||
childrenFormData.value = { ...row };
|
||||
if (row.annexFile) {
|
||||
fileList.value = [{ name: "文件", url: row.annexFile }];
|
||||
fileList.value = [{ ...JSON.parse(row.annexFile) }];
|
||||
}
|
||||
if (row.overdueIssueFile) {
|
||||
fileList1.value = [{ name: "文件", url: row.overdueIssueFile }];
|
||||
fileList1.value = [{ ...JSON.parse(row.overdueIssueFile) }];
|
||||
}
|
||||
childrenVisible.value = true;
|
||||
};
|
||||
|
||||
@ -9,27 +9,43 @@
|
||||
</el-icon>
|
||||
</div>
|
||||
</template>
|
||||
<div class="search-select">
|
||||
<span style="margin: 0 10px 2px 0px">验收阶段</span>
|
||||
<el-input style="width: 200px" v-model="allForm.stage" clearable placeholder="请输入" />
|
||||
<span style="margin: 0 10px 2px 10px">类型</span>
|
||||
<el-select style="width: 200px" v-model="allForm.type" clearable placeholder="请选择">
|
||||
<el-option v-for="item in typeList" :key="item.dictLabel" :label="item.dictValue" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
<span style="margin: 0 10px 2px 20px">备注</span>
|
||||
<el-input style="width: 200px" v-model="allForm.remark" clearable placeholder="请输入" />
|
||||
</div>
|
||||
<!-- 验收内容 -->
|
||||
<div class="detail-table">
|
||||
<div class="content-title">验收计划</div>
|
||||
<div class="content-title">验收内容</div>
|
||||
<div class="content-button"><el-button class="addButtonStyle" @click="addPlan">新增</el-button></div>
|
||||
<div class="table">
|
||||
<el-table
|
||||
:data="recordData"
|
||||
class="el-table"
|
||||
height="300"
|
||||
:row-style="{ height: '40px' }"
|
||||
:header-cell-style="{ backgroundColor: '#F5F7FA', textAlign: 'center', height: '40px' }"
|
||||
:cell-style="{ textAlign: 'center', height: '40px' }"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="100" />
|
||||
<el-table-column prop="type1" label="类型">
|
||||
<el-table-column prop="type1" label="类型" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<el-select style="width: 120px" v-model="row.type1" clearable placeholder="请选择" v-if="!row.id">
|
||||
<el-option v-for="item in typeList" :key="item.dictLabel" :label="item.dictValue" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type2" label="单体工程">
|
||||
<el-table-column prop="type2" label="单体工程" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<el-select v-if="!row.id" style="width: 100%" v-model="row.type1" clearable placeholder="请选择">
|
||||
<el-option v-for="item in singleEngineerList" :key="item.singleId" :label="item.name" :value="item.singleId" />
|
||||
</el-select>
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -47,42 +63,61 @@
|
||||
<span v-else>{{ row.type3 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type4" label="起始标识">
|
||||
<el-table-column prop="type4" label="起始标识" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type5" label="截止标识">
|
||||
<el-table-column prop="type5" label="截止标识" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type6" label="验收负责人">
|
||||
<el-table-column prop="type6" label="验收负责人" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type7" label="负责人电话">
|
||||
<el-table-column prop="type7" label="负责人电话" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type8" label="状态">
|
||||
<el-table-column prop="type8" label="状态" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type9" label="备注">
|
||||
<el-table-column prop="type9" label="备注" width="150">
|
||||
<template #default="{ row }">
|
||||
<el-input v-model="row.type1" v-if="!row.id" />
|
||||
<span v-else>{{ row.type1 }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" width="300" label="操作">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" v-if="scope.row.id" link @click="handleEditItem(scope.row)">
|
||||
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
|
||||
<span>编辑</span>
|
||||
</el-button>
|
||||
<el-button v-if="scope.row.id" type="danger" link :icon="Delete" @click="handleDeleteItem(scope.row)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #empty>
|
||||
<div class="table-empty">
|
||||
<slot name="empty">
|
||||
<img src="@/assets/images/notData.png" alt="notData" />
|
||||
<div>暂无数据</div>
|
||||
</slot>
|
||||
</div>
|
||||
</template>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <div class="operation-btn" v-if="basicData?.state != 4">
|
||||
@ -91,15 +126,140 @@
|
||||
<el-button type="primary" @click="allSubmit">全部整改完成,提交审核</el-button>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- 资料附件 -->
|
||||
<div class="detail-table">
|
||||
<div class="content-title">资料附件</div>
|
||||
<div class="table">
|
||||
<el-table
|
||||
:data="documentData"
|
||||
border
|
||||
height="300"
|
||||
class="el-table"
|
||||
:row-style="{ height: '40px', textAlign: 'center' }"
|
||||
:header-cell-style="{ height: '40px', backgroundColor: '#e1eeff', textAlign: 'center' }"
|
||||
:cell-style="{ height: '40px', textAlign: 'center' }"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="200" />
|
||||
<el-table-column prop="name" label="附件名称">
|
||||
<template #default="{ row, $index }">
|
||||
<el-input class="test" v-model="row.type1" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="floorNum" label="操作">
|
||||
<template #default="{ row, $index }">
|
||||
<el-upload
|
||||
accept=".mpp"
|
||||
:headers="headers"
|
||||
:action="`${baseUrl}` + '/project/projectSubItem/importMpp'"
|
||||
:on-success="uploadFileSuccess"
|
||||
multiple
|
||||
:limit="1"
|
||||
:show-file-list="false"
|
||||
>
|
||||
<el-button type="primary" link>上传附件</el-button>
|
||||
</el-upload>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column fixed="right">
|
||||
<template #header>
|
||||
<el-button type="primary" round @click="addEngineeringSingle"> 添加 </el-button>
|
||||
</template>
|
||||
|
||||
<template #default="{ row }">
|
||||
<el-button type="danger" link @click="removeEngineeringSingle(row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #empty>
|
||||
<div class="table-empty">
|
||||
<slot name="empty">
|
||||
<img src="@/assets/images/notData.png" alt="notData" />
|
||||
<div>暂无数据</div>
|
||||
</slot>
|
||||
</div>
|
||||
</template>
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <div class="operation-btn" v-if="basicData?.state != 4">
|
||||
<el-button type="info" style="margin-right: 98px">驳回,请尽快整改</el-button>
|
||||
<el-button type="primary">整改完成,全部合格</el-button>
|
||||
<el-button type="primary" @click="allSubmit">全部整改完成,提交审核</el-button>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- 驳回原因 -->
|
||||
<div class="back-reason" v-if="title == '驳回'">
|
||||
<div class="content-title">驳回原因</div>
|
||||
<div class="form-content">
|
||||
<el-input v-model="allForm.textValue" :rows="4" type="textarea" placeholder="请输入" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- 现场检查 -->
|
||||
<div class="detail-table" v-if="title == '检查'">
|
||||
<div class="content-title">现场检查</div>
|
||||
<div class="table">
|
||||
<el-table
|
||||
:data="checkData"
|
||||
class="el-table"
|
||||
height="300"
|
||||
:row-style="{ height: '40px' }"
|
||||
:header-cell-style="{ backgroundColor: '#F5F7FA', textAlign: 'center', height: '40px' }"
|
||||
:cell-style="{ textAlign: 'center', height: '40px' }"
|
||||
>
|
||||
<el-table-column type="index" label="序号" width="100" />
|
||||
<el-table-column prop="type1" label="监督员" width="150" />
|
||||
<el-table-column prop="type1" label="检查时间" width="150" />
|
||||
<el-table-column prop="type1" label="施工单位" width="150" />
|
||||
<el-table-column prop="type1" label="监理单位" width="150" />
|
||||
<el-table-column prop="type1" label="项目经理" width="150" />
|
||||
<el-table-column prop="type1" label="总监理工程师" width="150" />
|
||||
<el-table-column prop="type1" label="状态" width="150" />
|
||||
<el-table-column align="center" width="300" label="操作">
|
||||
<template #default="scope">
|
||||
<el-button type="primary" v-if="scope.row.id" link @click="handleEditItem(scope.row)">
|
||||
<img src="@/assets/images/tableIcon/look.png" alt="" class="configureIcon" />
|
||||
<span>编辑</span>
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #empty>
|
||||
<div class="table-empty">
|
||||
<slot name="empty">
|
||||
<img src="@/assets/images/notData.png" alt="notData" />
|
||||
<div>暂无数据</div>
|
||||
</slot>
|
||||
</div>
|
||||
</template>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div>
|
||||
<el-button type="primary" @click="visible1 = false" v-if="title != '新增'">关闭</el-button>
|
||||
<el-button type="primary" @click="confirm()">提交申请</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<transformInfo v-model:detailsDialog="detailsDialog" :relativeId="relativeId" @confirm="confirmReform"></transformInfo>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { onMounted, ref, watch, reactive } from "vue";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import type { FormInstance, UploadProps } from "element-plus";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { relativeInfo, timeLineData, submitReform, submitAll } from "@/api/modules/project";
|
||||
import { Delete } from "@element-plus/icons-vue";
|
||||
import { jxj_User } from "@/api/types";
|
||||
import { useHandleData } from "@/hooks/useHandleData";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import transformInfo from "../../../qualitySupervision/components/transformInfo.vue";
|
||||
import { getDicList } from "@/api/modules/jxjview";
|
||||
import { singleEngineer } from "@/api/modules/common";
|
||||
const singleEngineerList = ref([]);
|
||||
const typeList = ref([]);
|
||||
const detailsDialog = ref(false);
|
||||
const checkData = ref([]);
|
||||
const globalStore = GlobalStore();
|
||||
const headers = ref({ Authorization: "Bearer " + globalStore.token });
|
||||
const documentData = ref<any>([]);
|
||||
const baseUrl = import.meta.env.VITE_API_URL;
|
||||
const props = defineProps({
|
||||
dialogVisible: Boolean,
|
||||
@ -115,12 +275,44 @@ const basicData = ref(); // 基础信息
|
||||
const dialogStyle = ref({
|
||||
"min-width": "824px"
|
||||
});
|
||||
const reformInfo = ref({
|
||||
solveBy: "",
|
||||
solveTime: "",
|
||||
solveDesc: "",
|
||||
solveImage: []
|
||||
const allForm = ref({
|
||||
stage: "",
|
||||
type: null,
|
||||
remark: "",
|
||||
textValue: ""
|
||||
});
|
||||
// 整改完成,全部已提交审核
|
||||
const confirmReform = () => {};
|
||||
const confirm = async () => {};
|
||||
const getSingleEngineerData = async () => {
|
||||
const res = await singleEngineer({ engineeringSn: globalStore.engineeringSn });
|
||||
singleEngineerList.value = res.result;
|
||||
console.log(res);
|
||||
};
|
||||
const getDicMainList = async () => {
|
||||
// 获取学历字典
|
||||
const { result } = await getDicList({ dictType: "check_accept_type" });
|
||||
typeList.value.length = 0;
|
||||
typeList.value.push(...result);
|
||||
};
|
||||
// 导入文件
|
||||
const uploadFileSuccess = (response: any) => {
|
||||
console.log(response);
|
||||
};
|
||||
const removeEngineeringSingle = (row: any) => {
|
||||
// const i = form.value.engineeringSingles?.indexOf(row);
|
||||
// i != null && form.value.engineeringSingles?.splice(i, 1);
|
||||
};
|
||||
const addEngineeringSingle = () => {
|
||||
documentData.value.push({
|
||||
type1: "",
|
||||
type2: ""
|
||||
});
|
||||
};
|
||||
// 删除用户信息
|
||||
const handleDeleteItem = async (params: jxj_User.ResUserList) => {
|
||||
// await useHandleData(deleteBigItem, { id: params.id }, `删除【${params.name}】`);
|
||||
};
|
||||
const addPlan = () => {
|
||||
recordData.value.push({
|
||||
type1: "",
|
||||
@ -134,6 +326,10 @@ const addPlan = () => {
|
||||
type9: ""
|
||||
});
|
||||
};
|
||||
// 修改数据按钮
|
||||
const handleEditItem = async (row: any) => {
|
||||
console.log(row);
|
||||
};
|
||||
// 全部整改完成,提交
|
||||
const allSubmit = async () => {
|
||||
const res = await submitAll({ id: basicData.value.id });
|
||||
@ -160,15 +356,6 @@ const getInfo = async () => {
|
||||
console.log(recordData);
|
||||
};
|
||||
const timelineList = ref([{ name: 1 }]);
|
||||
// 获取整改情况时间轴列表
|
||||
const getTimeLineList = async () => {
|
||||
const res = await timeLineData({ inspectQuestionId: recordRowData.value.id });
|
||||
|
||||
res.result.map(item => {
|
||||
item.solveImage = eval(item.solveImage);
|
||||
});
|
||||
timelineList.value = res.result;
|
||||
};
|
||||
const auditVisible = ref(false);
|
||||
// 监听父组件的visible,用来简介控制el-dialog的弹框开关,一般是用于开
|
||||
watch(
|
||||
@ -176,7 +363,7 @@ watch(
|
||||
(n, o) => {
|
||||
visible1.value = n;
|
||||
if (n) {
|
||||
getInfo();
|
||||
// getInfo();
|
||||
} else {
|
||||
emits("confirm");
|
||||
}
|
||||
@ -186,7 +373,10 @@ watch(
|
||||
watch(visible1, (n, o) => {
|
||||
emits("update:dialogVisible", n);
|
||||
});
|
||||
onMounted(() => {});
|
||||
onMounted(() => {
|
||||
getDicMainList();
|
||||
getSingleEngineerData();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@ -230,8 +420,12 @@ onMounted(() => {});
|
||||
color: #a8abb2;
|
||||
}
|
||||
}
|
||||
.search-select {
|
||||
@include flex;
|
||||
box-shadow: none;
|
||||
}
|
||||
.detail-table {
|
||||
height: 391px;
|
||||
// height: 391px;
|
||||
margin-top: 18px;
|
||||
.content-title {
|
||||
@include title;
|
||||
@ -246,6 +440,14 @@ onMounted(() => {});
|
||||
:deep(.el-table) {
|
||||
height: 100%;
|
||||
}
|
||||
.table-empty {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
flex-direction: column;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
.operation-btn {
|
||||
display: flex;
|
||||
@ -254,5 +456,15 @@ onMounted(() => {});
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
.back-reason {
|
||||
// height: 391px;
|
||||
margin-top: 18px;
|
||||
.content-title {
|
||||
@include title;
|
||||
}
|
||||
.form-content {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
{{ row.examineState === 1 ? "待审核" : row.examineState === 2 ? "审核驳回" : "审核通过" }}
|
||||
</template>
|
||||
<template #state="{ row }">
|
||||
<span :class="row.state === 1 ? '' : 'redText'">{{ row.state == 1 ? "在线" : "离线" }}</span>
|
||||
<span>{{ row.state == 1 ? "已验收" : "未验收" }}</span>
|
||||
</template>
|
||||
</ProTable>
|
||||
</div>
|
||||
@ -54,11 +54,13 @@ import { ref, reactive, onMounted } from "vue";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { ColumnProps } from "@/components/ProTable/interface";
|
||||
import ProTable from "@/components/ProTable/index.vue";
|
||||
import { getDustManagementPage } from "@/api/modules/enterpriseApi";
|
||||
import { acceptanceApplyPage } from "@/api/modules/project";
|
||||
import { getRelevanceList } from "@/api/modules/common";
|
||||
import engineeringEngDrawer from "@/components/engineeringEngDrawer/index.vue";
|
||||
import allEngineering from "@/components/allEngineering/index.vue";
|
||||
import detailsDialog from "./components/detailsDialog.vue";
|
||||
import { GlobalStore } from "@/stores";
|
||||
const globalStore = GlobalStore();
|
||||
const newTitle = ref("新增");
|
||||
const relativeId = ref();
|
||||
const dialogVisible = ref(false);
|
||||
@ -73,13 +75,13 @@ const columns: ColumnProps[] = [
|
||||
{ type: "index", label: "序号", width: 80 },
|
||||
|
||||
// 多级 prop
|
||||
{ prop: "engineeringName", label: "验收阶段", search: { el: "input" } },
|
||||
{ prop: "stage", label: "验收阶段", search: { el: "input" } },
|
||||
|
||||
{ prop: "name", label: "工程名称" },
|
||||
{ prop: "state", label: "单体工程" },
|
||||
{ prop: "code", label: "单体工程" },
|
||||
{ prop: "code", label: "类型" },
|
||||
{ prop: "code", label: "备注" },
|
||||
{ prop: "code", label: "状态" },
|
||||
{ prop: "state", label: "状态" },
|
||||
{ prop: "operation", label: "操作", fixed: "right" }
|
||||
];
|
||||
|
||||
@ -112,7 +114,7 @@ const getTableList = (params: any) => {
|
||||
} else {
|
||||
return { result: { current: "1", pages: "1", records: [], size: "10", total: "0" } };
|
||||
}
|
||||
return getDustManagementPage(newParams);
|
||||
return acceptanceApplyPage(newParams);
|
||||
};
|
||||
// 新增按钮
|
||||
const handleAddItem = () => {
|
||||
@ -127,12 +129,14 @@ const getengineering = async () => {
|
||||
engList.value = res.result;
|
||||
if (res.result && res.result.length > 0) {
|
||||
initParam.engineeringSn = res.result[0].engineeringSn;
|
||||
globalStore.engineeringSn = res.result[0].engineeringSn;
|
||||
}
|
||||
console.log(res);
|
||||
};
|
||||
// 点击抽屉的工程名称更新页面
|
||||
const onUpdate = async row => {
|
||||
initParam.engineeringSn = row.engineeringSn;
|
||||
globalStore.engineeringSn = row.engineeringSn;
|
||||
ElMessage.success("页面已更新");
|
||||
};
|
||||
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<el-button class="addButtonStyle" @click="handleEditItem(1)">新增</el-button>
|
||||
</template>
|
||||
<template #operation="{ row }">
|
||||
<el-button type="primary" link @click="downloadTemp">
|
||||
<el-button type="primary" link @click="downloadTemp(row)">
|
||||
<img src="@/assets/images/tableIcon/下载附件.png" alt="" class="configureIcon" />
|
||||
<span>资料下载</span>
|
||||
</el-button>
|
||||
@ -32,65 +32,65 @@
|
||||
{{ row.examineState === 1 ? "待审核" : row.examineState === 2 ? "审核驳回" : "审核通过" }}
|
||||
</template>
|
||||
<template #state="{ row }">
|
||||
<span :class="row.state === 1 ? '' : 'redText'">{{ row.state == 1 ? "在线" : "离线" }}</span>
|
||||
<span>{{ row.state == 1 ? "已验收" : "未验收" }}</span>
|
||||
</template>
|
||||
</ProTable>
|
||||
</div>
|
||||
<!-- 新增验收计划 -->
|
||||
<el-dialog class="imgDialog" :title="newTitle" width="40%" v-model="planVisible" show-close>
|
||||
<el-form class="diaForm" :model="planFormData" ref="ruleFormRef" label-width="160px">
|
||||
<el-form-item label="验收阶段:" prop="name">
|
||||
<el-input v-model="planFormData.name" placeholder="请输入" />
|
||||
<el-form class="diaForm" :model="planFormData" :rules="rules" ref="ruleFormRef" label-width="160px">
|
||||
<el-form-item label="验收阶段:" prop="stage">
|
||||
<el-input v-model="planFormData.stage" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型:" prop="buildAddress">
|
||||
<el-input v-model="planFormData.buildAddress" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单体工程:" prop="unit">
|
||||
<el-select disabled style="width: 100%" v-model="planFormData.state" clearable placeholder="请选择">
|
||||
<el-option v-for="item in statusList" :key="item.value" :label="item.label" :value="item.value" />
|
||||
<el-form-item label="类型:" prop="type">
|
||||
<el-select style="width: 100%" v-model="planFormData.type" clearable placeholder="请选择">
|
||||
<el-option v-for="item in typeList" :key="item.dictLabel" :label="item.dictValue" :value="item.dictLabel" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划验收日期:" prop="planStartTime">
|
||||
<el-form-item label="单体工程:" prop="singleId">
|
||||
<el-select style="width: 100%" v-model="planFormData.singleId" clearable placeholder="请选择">
|
||||
<el-option v-for="item in singleEngineerList" :key="item.singleId" :label="item.name" :value="item.singleId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="计划验收日期:" prop="planCheckDate">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="planFormData.planStartTime"
|
||||
v-model="planFormData.planCheckDate"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
disabled
|
||||
type="date"
|
||||
placeholder="请选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="起始标识:" prop="buildAddress">
|
||||
<el-input v-model="planFormData.buildAddress" placeholder="请输入" />
|
||||
<el-form-item label="起始标识:" prop="startFlag">
|
||||
<el-input v-model="planFormData.startFlag" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="截止标识:" prop="buildAddress">
|
||||
<el-input v-model="planFormData.buildAddress" placeholder="请输入" />
|
||||
<el-form-item label="截止标识:" prop="endFlag">
|
||||
<el-input v-model="planFormData.endFlag" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="验收负责人:" prop="buildAddress">
|
||||
<el-input v-model="planFormData.buildAddress" placeholder="请输入" />
|
||||
<el-form-item label="验收负责人:" prop="headPerson">
|
||||
<el-input v-model="planFormData.headPerson" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="负责人电话:" prop="buildAddress">
|
||||
<el-input v-model="planFormData.buildAddress" placeholder="请输入" />
|
||||
<el-form-item label="负责人电话:" prop="headPersonPhone">
|
||||
<el-input v-model="planFormData.headPersonPhone" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
<el-form-item label="状态:" prop="buildAddress">
|
||||
<el-radio-group v-model="planFormData.buildAddress">
|
||||
<el-form-item label="状态:" prop="state">
|
||||
<el-radio-group v-model="planFormData.state">
|
||||
<el-radio label="1" size="large">已验收</el-radio>
|
||||
<el-radio label="2" size="large">未验收</el-radio>
|
||||
<el-radio label="0" size="large">未验收</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="实际验收完成日期:" prop="planEndTime">
|
||||
<el-form-item label="实际验收完成日期:" prop="completeDate">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="planFormData.planEndTime"
|
||||
v-model="planFormData.completeDate"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
type="datetime"
|
||||
disabled
|
||||
type="date"
|
||||
placeholder="请选择时间"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="验收资料:" prop="overdueIssueFile">
|
||||
<el-form-item label="验收资料:" prop="fileUrl">
|
||||
<el-upload
|
||||
ref="upload"
|
||||
:headers="headers"
|
||||
@ -98,17 +98,16 @@
|
||||
class="upload-demo"
|
||||
:action="`${baseUrl}` + '/xmgl/file/upload'"
|
||||
:on-remove="onRemove"
|
||||
disabled
|
||||
multiple
|
||||
:limit="1"
|
||||
:on-success="uploadSuccess"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-button class="uploadBtn" type="primary" @click="onDowmload('overdueIssueFile')">点击上传</el-button>
|
||||
<el-button class="uploadBtn" type="primary">点击上传</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注:" prop="buildAddress">
|
||||
<el-input v-model="planFormData.buildAddress" placeholder="请输入" />
|
||||
<el-form-item label="备注:" prop="remark">
|
||||
<el-input v-model="planFormData.remark" placeholder="请输入" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
@ -126,7 +125,7 @@
|
||||
|
||||
<script setup lang="tsx" name="acceptancePlan">
|
||||
import { ref, reactive, onMounted } from "vue";
|
||||
import { ElMessage, UploadProps } from "element-plus";
|
||||
import { ElMessage, ElMessageBox, UploadProps } from "element-plus";
|
||||
import type { FormInstance } from "element-plus";
|
||||
import { ColumnProps } from "@/components/ProTable/interface";
|
||||
import { Delete } from "@element-plus/icons-vue";
|
||||
@ -134,33 +133,41 @@ import { jxj_User } from "@/api/types";
|
||||
import { GlobalStore } from "@/stores";
|
||||
import { useHandleData } from "@/hooks/useHandleData";
|
||||
import ProTable from "@/components/ProTable/index.vue";
|
||||
import {
|
||||
getDustManagementPage,
|
||||
addDustManagement,
|
||||
editDustManagement,
|
||||
deleteDustManagement,
|
||||
getengineeringList
|
||||
} from "@/api/modules/enterpriseApi";
|
||||
import { getRelevanceList } from "@/api/modules/common";
|
||||
import DialogForm from "@/components/DialogForm/index.vue";
|
||||
import AMap from "@/components/AMap/AMap.vue";
|
||||
import { acceptancePlanPage, acceptancePlanAdd, acceptancePlanEdit, acceptancePlanDelete } from "@/api/modules/project";
|
||||
import { getRelevanceList, singleEngineer } from "@/api/modules/common";
|
||||
import engineeringEngDrawer from "@/components/engineeringEngDrawer/index.vue";
|
||||
import allEngineering from "@/components/allEngineering/index.vue";
|
||||
import { useDownload } from "@/hooks/useDownload";
|
||||
import { getDicList } from "@/api/modules/jxjview";
|
||||
const typeList = ref([]);
|
||||
const rules = ref({
|
||||
headPersonPhone: [
|
||||
{
|
||||
pattern: /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/,
|
||||
message: "请输入合法手机号",
|
||||
trigger: "blur"
|
||||
}
|
||||
]
|
||||
});
|
||||
const singleEngineerList = ref([]);
|
||||
const ruleFormRef = ref();
|
||||
const baseUrl = import.meta.env.VITE_API_URL;
|
||||
const fileList1 = ref([]);
|
||||
const globalStore = GlobalStore();
|
||||
const headers = ref({ Authorization: "Bearer " + globalStore.token });
|
||||
const statusList = ref([
|
||||
{ label: "未开始", value: 1 },
|
||||
{ label: "进行中", value: 2 },
|
||||
{ label: "已完成", value: 3 },
|
||||
{ label: "逾期未开始", value: 4 },
|
||||
{ label: "逾期进行中", value: 5 },
|
||||
{ label: "逾期已完成", value: 6 }
|
||||
]);
|
||||
const planFormData = ref({});
|
||||
const planFormData = ref({
|
||||
stage: "",
|
||||
type: "",
|
||||
singleId: "",
|
||||
planCheckDate: null,
|
||||
startFlag: "",
|
||||
endFlag: "",
|
||||
headPerson: "",
|
||||
headPersonPhone: "",
|
||||
state: "1",
|
||||
completeDate: null,
|
||||
fileUrl: "",
|
||||
remark: ""
|
||||
});
|
||||
const planVisible = ref(false);
|
||||
const newTitle = ref("新增验收计划");
|
||||
const visible = ref(false);
|
||||
@ -172,133 +179,52 @@ const title = ref("");
|
||||
const proTable = ref();
|
||||
const engDrawer = ref();
|
||||
|
||||
interface formData {
|
||||
name?: string;
|
||||
code?: string;
|
||||
hardwareId?: string;
|
||||
engineeringSn?: string;
|
||||
lat?: number | undefined;
|
||||
lng?: number | undefined;
|
||||
position?: string;
|
||||
priority: number;
|
||||
}
|
||||
|
||||
const records = ref({});
|
||||
|
||||
const formData = ref<formData>({
|
||||
name: "",
|
||||
code: "",
|
||||
hardwareId: "",
|
||||
priority: 1,
|
||||
engineeringSn: "",
|
||||
lat: undefined,
|
||||
lng: undefined,
|
||||
position: ""
|
||||
});
|
||||
|
||||
// 表格配置项
|
||||
const columns: ColumnProps[] = [
|
||||
{ type: "index", label: "序号", width: 80 },
|
||||
|
||||
// 多级 prop
|
||||
{ prop: "engineeringName", label: "验收阶段", search: { el: "input" } },
|
||||
{ prop: "stage", label: "验收阶段", search: { el: "input" } },
|
||||
|
||||
{ prop: "name", label: "类型" },
|
||||
{ prop: "state", label: "单体工程" },
|
||||
{ prop: "code", label: "计划验收日期" },
|
||||
{ prop: "code", label: "起始标识" },
|
||||
{ prop: "code", label: "截止标识" },
|
||||
{ prop: "code", label: "验收负责人" },
|
||||
{ prop: "code", label: "负责人电话" },
|
||||
{ prop: "code", label: "状态" },
|
||||
{ prop: "code", width: 150, label: "实际验收完成日期" },
|
||||
{ prop: "code", label: "备注" },
|
||||
{ prop: "type", label: "类型" },
|
||||
{ prop: "singleProject", label: "单体工程" },
|
||||
{ prop: "planCheckDate", label: "计划验收日期", width: 150 },
|
||||
{ prop: "startFlag", label: "起始标识" },
|
||||
{ prop: "endFlag", label: "截止标识" },
|
||||
{ prop: "headPerson", label: "验收负责人" },
|
||||
{ prop: "headPersonPhone", label: "负责人电话" },
|
||||
{ prop: "state", label: "状态" },
|
||||
{ prop: "completeDate", label: "实际验收完成日期", width: 150 },
|
||||
{ prop: "remark", label: "备注" },
|
||||
{ prop: "operation", width: 240, label: "操作", fixed: "right" }
|
||||
];
|
||||
|
||||
// 弹窗中的配置
|
||||
const formConfig = reactive({
|
||||
formItemConfig: [
|
||||
{
|
||||
label: "设备名称",
|
||||
prop: "name",
|
||||
type: "input"
|
||||
},
|
||||
{
|
||||
label: "设备编码",
|
||||
prop: "code",
|
||||
type: "input",
|
||||
disabled: true
|
||||
},
|
||||
{
|
||||
label: "显示排序",
|
||||
prop: "priority",
|
||||
type: "number"
|
||||
},
|
||||
{
|
||||
label: "所属工程",
|
||||
prop: "engineeringSn",
|
||||
type: "select",
|
||||
data: []
|
||||
},
|
||||
|
||||
{
|
||||
label: "经纬度",
|
||||
prop: "position",
|
||||
type: "input",
|
||||
mapIcon: true
|
||||
}
|
||||
],
|
||||
rules: {
|
||||
name: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入设备名称",
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
code: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入设备编码",
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
priority: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入排序",
|
||||
trigger: "blur"
|
||||
}
|
||||
],
|
||||
position: [
|
||||
{
|
||||
required: true,
|
||||
message: "请输入经纬度",
|
||||
trigger: "change"
|
||||
}
|
||||
],
|
||||
engineeringSn: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择所属工程",
|
||||
trigger: "blur"
|
||||
}
|
||||
]
|
||||
}
|
||||
});
|
||||
|
||||
// 如果表格需要初始化请求参数,直接定义传给 ProTable(之后每次请求都会自动带上该参数,此参数更改之后也会一直带上,改变此参数会自动刷新表格数据)
|
||||
const initParam = reactive({
|
||||
engineeringSn: ""
|
||||
});
|
||||
const getDicMainList = async () => {
|
||||
// 获取学历字典
|
||||
const { result } = await getDicList({ dictType: "check_accept_type" });
|
||||
typeList.value.length = 0;
|
||||
typeList.value.push(...result);
|
||||
};
|
||||
// 确定按钮触发
|
||||
const confirm = async (formEl: FormInstance | undefined) => {
|
||||
if (!formEl) return;
|
||||
await formEl.validate((valid, fields) => {
|
||||
await formEl.validate(async (valid, fields) => {
|
||||
if (valid) {
|
||||
planFormData.value.engineeringSn = initParam.engineeringSn;
|
||||
if (planFormData.value.id) {
|
||||
const res = await acceptancePlanEdit({ ...planFormData.value });
|
||||
ElMessage.success("编辑成功");
|
||||
} else {
|
||||
const res = await acceptancePlanAdd({ ...planFormData.value });
|
||||
ElMessage.success("新增成功");
|
||||
}
|
||||
proTable.value.getTableList();
|
||||
planVisible.value = false;
|
||||
} else {
|
||||
console.log("error submit!", fields);
|
||||
ElMessage({
|
||||
showClose: true,
|
||||
message: "请完善表单信息!",
|
||||
@ -308,26 +234,21 @@ const confirm = async (formEl: FormInstance | undefined) => {
|
||||
});
|
||||
};
|
||||
const onRemove: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
// childrenFormData.value.annexFile = "";
|
||||
// fileList.value = reactive([]);
|
||||
planFormData.value.fileUrl = "";
|
||||
fileList1.value = reactive([]);
|
||||
};
|
||||
const uploadSuccess = (response: any) => {
|
||||
// ElMessage.success("上传成功");
|
||||
// childrenFormData.value.annexFile = response.result.url;
|
||||
// fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
};
|
||||
const onDowmload = (key: string) => {
|
||||
// if (childrenFormData.value[key]) {
|
||||
// ElMessageBox.confirm("确认下载数据?", "温馨提示", { type: "warning" }).then(() =>
|
||||
// useDownload(exportApp, "附件文件", { fileUrl: childrenFormData.value[key] })
|
||||
// );
|
||||
// } else {
|
||||
// ElMessage.error("暂无可下载文件");
|
||||
// }
|
||||
planFormData.value.fileUrl = response.result.url;
|
||||
fileList1.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
};
|
||||
// 下载
|
||||
const downloadTemp = () => {
|
||||
// useDownload(parameter.value.tempApi, `${parameter.value.title}模板`);
|
||||
const downloadTemp = (row: any) => {
|
||||
if (row.fileUrl) {
|
||||
window.open(baseUrl + "/xmgl/file/preview?fileUrl=" + row.fileUrl);
|
||||
} else {
|
||||
ElMessage.error("暂无可下载文件");
|
||||
}
|
||||
};
|
||||
// dataCallback 是对于返回的表格数据做处理,如果你后台返回的数据不是 list && total && pageNum && pageSize 这些字段,那么你可以在这里进行处理成这些字段
|
||||
// 或者直接去 hooks/useTable.ts 文件中把字段改为你后端对应的就行
|
||||
@ -350,7 +271,7 @@ const getTableList = (params: any) => {
|
||||
} else {
|
||||
return { result: { current: "1", pages: "1", records: [], size: "10", total: "0" } };
|
||||
}
|
||||
return getDustManagementPage(newParams);
|
||||
return acceptancePlanPage(newParams);
|
||||
};
|
||||
|
||||
// 修改数据按钮
|
||||
@ -358,59 +279,39 @@ const handleEditItem = async (index: number, row: any) => {
|
||||
if (index === 1) {
|
||||
newTitle.value = "新增验收计划";
|
||||
planFormData.value = reactive({
|
||||
name: "",
|
||||
code: "",
|
||||
hardwareId: "",
|
||||
priority: 1,
|
||||
engineeringSn: "",
|
||||
lat: undefined,
|
||||
lng: undefined,
|
||||
position: ""
|
||||
stage: "",
|
||||
type: "",
|
||||
singleId: "",
|
||||
planCheckDate: null,
|
||||
startFlag: "",
|
||||
endFlag: "",
|
||||
headPerson: "",
|
||||
headPersonPhone: "",
|
||||
state: "1",
|
||||
completeDate: null,
|
||||
fileUrl: "",
|
||||
remark: ""
|
||||
});
|
||||
} else {
|
||||
newTitle.value = "编辑验收计划";
|
||||
planFormData.value = reactive({ ...row });
|
||||
if (row.fileUrl) {
|
||||
fileList1.value = [{ name: "文件", url: row.fileUrl }];
|
||||
}
|
||||
}
|
||||
planVisible.value = true;
|
||||
};
|
||||
|
||||
// 删除用户信息
|
||||
const handleDeleteItem = async (params: jxj_User.ResUserList) => {
|
||||
await useHandleData(deleteDustManagement, { id: params.id }, `删除【${params.name}】`);
|
||||
await useHandleData(acceptancePlanDelete, { id: params.id }, `删除【${params.stage}】`);
|
||||
proTable.value.getTableList();
|
||||
};
|
||||
|
||||
// 页面新增,编辑数据
|
||||
const saveItem = async (form: any) => {
|
||||
if (form.id) {
|
||||
const res = await editDustManagement(form);
|
||||
proTable.value.getTableList();
|
||||
ElMessage.success("编辑成功");
|
||||
} else {
|
||||
const res = await addDustManagement(form);
|
||||
ElMessage.success("新增成功");
|
||||
proTable.value.getTableList();
|
||||
}
|
||||
visible.value = false;
|
||||
const getSingleEngineerData = async () => {
|
||||
const res = await singleEngineer({ engineeringSn: initParam.engineeringSn });
|
||||
singleEngineerList.value = res.result;
|
||||
console.log(res);
|
||||
};
|
||||
|
||||
const getAddress = async (e: any) => {
|
||||
formData.value.lng = e.lng;
|
||||
formData.value.lat = e.lat;
|
||||
formData.value.position = "经度:" + e.lng + "," + "维度:" + e.lat;
|
||||
isOpen.value = false;
|
||||
ElMessage.success("获取经纬度成功");
|
||||
};
|
||||
const getNameList = async () => {
|
||||
const res = await getengineeringList({});
|
||||
formConfig.formItemConfig[3].data = res.result.map(item => {
|
||||
return {
|
||||
label: item.engineeringName,
|
||||
value: item.engineeringSn
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
const getengineering = async () => {
|
||||
// let newParams = JSON.parse(JSON.stringify(params));
|
||||
const res = await getRelevanceList();
|
||||
@ -418,6 +319,7 @@ const getengineering = async () => {
|
||||
if (res.result && res.result.length > 0) {
|
||||
initParam.engineeringSn = res.result[0].engineeringSn;
|
||||
}
|
||||
getSingleEngineerData();
|
||||
console.log(res);
|
||||
};
|
||||
// 点击抽屉的工程名称更新页面
|
||||
@ -428,7 +330,7 @@ const onUpdate = async row => {
|
||||
|
||||
onMounted(async () => {
|
||||
getengineering();
|
||||
getNameList();
|
||||
getDicMainList();
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -400,6 +400,8 @@ const childrenConfirm = async (formEl: FormInstance | undefined, form: any) => {
|
||||
return;
|
||||
}
|
||||
}
|
||||
form.overdueIssueFile = JSON.stringify(form.overdueIssueFile);
|
||||
form.annexFile = JSON.stringify(form.annexFile);
|
||||
if (form.id) {
|
||||
if (newTitle.value == "编辑子项") {
|
||||
form.parentId = parentObj.value.parentId;
|
||||
@ -434,14 +436,15 @@ const uploadFileSuccess = (response: any) => {
|
||||
}
|
||||
};
|
||||
const uploadSuccess1 = (response: any) => {
|
||||
console.log(response);
|
||||
ElMessage.success("上传成功");
|
||||
childrenFormData.value.overdueIssueFile = response.result.url;
|
||||
fileList1.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
childrenFormData.value.overdueIssueFile = { name: response.result.originalFilename, url: response.result.url };
|
||||
fileList1.value = [{ name: response.result.originalFilename, url: response.result.url }];
|
||||
};
|
||||
const uploadSuccess = (response: any) => {
|
||||
ElMessage.success("上传成功");
|
||||
childrenFormData.value.annexFile = response.result.url;
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.downloadPath }];
|
||||
childrenFormData.value.annexFile = { name: response.result.originalFilename, url: response.result.url };
|
||||
fileList.value = [{ name: response.result.originalFilename, url: response.result.url }];
|
||||
};
|
||||
const onRemove1: UploadProps["onRemove"] = (file, uploadFiles) => {
|
||||
childrenFormData.value.overdueIssueFile = "";
|
||||
@ -510,8 +513,8 @@ const handleEditItem = async (row: any) => {
|
||||
newTitle.value = "编辑";
|
||||
}
|
||||
childrenFormData.value = { ...row };
|
||||
fileList.value = row.annexFile ? [{ name: "文件", url: row.annexFile }] : [];
|
||||
fileList1.value = row.overdueIssueFile ? [{ name: "文件", url: row.overdueIssueFile }] : [];
|
||||
fileList.value = row.annexFile ? [{ ...JSON.parse(row.annexFile) }] : [];
|
||||
fileList1.value = row.overdueIssueFile ? [{ ...JSON.parse(row.overdueIssueFile) }] : [];
|
||||
childrenVisible.value = true;
|
||||
};
|
||||
onMounted(() => {
|
||||
|
||||
@ -294,6 +294,7 @@ const confirm = async (formEl: FormInstance | undefined, form: any) => {
|
||||
if (!formEl) return;
|
||||
await formEl.validate(async (valid, fields) => {
|
||||
if (valid) {
|
||||
formData.value.engineeringSn = searchSn.value;
|
||||
if (formData.value.id) {
|
||||
const res = await videoDataEdit(form);
|
||||
ElMessage.success("编辑成功");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user