fix: BUG修改

This commit is contained in:
kun 2023-07-26 11:28:47 +08:00
parent 0369d0dc6e
commit 6484b66727
7 changed files with 416 additions and 40 deletions

View File

@ -16,12 +16,12 @@
:data="recordData"
class="el-table"
:span-method="arraySpanMethod"
:row-style="{ height: '40px' }"
:header-cell-style="{ height: '40px' }"
:cell-style="{ height: '40px' }"
:row-style="{ textAlign: 'center', height: '40px' }"
:header-cell-style="{ textAlign: 'center', height: '40px' }"
:cell-style="{ textAlign: 'center', height: '40px' }"
>
<el-table-column type="index" label="序号" width="80"> </el-table-column>
<el-table-column prop="reportContent" label="汇报内容" align="left"> </el-table-column>
<el-table-column prop="reportContent" label="汇报内容"> </el-table-column>
<el-table-column prop="totalAmount" label="总工程造价(元)">
<template #default="scope">
<el-input
@ -32,9 +32,9 @@
></el-input>
</template>
</el-table-column>
<el-table-column prop="completeAmount" label="本期完成工程造价(元)" width="200"> </el-table-column>
<el-table-column prop="lastEndAmount" label="至上期末完成工程造价(元)" width="220"> </el-table-column>
<el-table-column prop="nowEndAmount" label="至本期末完成工程造价(元)" width="220"> </el-table-column>
<el-table-column prop="completeAmount" label="本期完成工程造价(元)" width="220"> </el-table-column>
<el-table-column prop="lastEndAmount" label="至上期末完成工程造价(元)" width="260"> </el-table-column>
<el-table-column prop="nowEndAmount" label="至本期末完成工程造价(元)" width="260"> </el-table-column>
<!-- <el-table-column prop="scheduleRatio" label="本期完成形象进度(%)" width="200"> </el-table-column>
<el-table-column prop="completeScheduleRatio" label="至本期末完成形象进度(%)" width="220"> </el-table-column> -->
<el-table-column align="left" label="操作">

View File

@ -45,6 +45,9 @@
<template #investmentPaymentId="scope">
<span>{{ scope.row.investmentPaymentId ? "已支付" : "未支付" }}</span>
</template>
<template #applyStartTime="{ row }">
<span v-if="row.applyStartTime">{{ row.applyStartTime + "-" + row.applyEndTime }}</span>
</template>
<template #operation="{ row }">
<el-button type="primary" link @click="handleItemDetail(2, row)">
<img src="@/assets/images/tableIcon/updateIcon.png" alt="" class="configureIcon" />
@ -98,7 +101,7 @@ const formConfig = {
type: "input"
},
{
label: "申报时段",
label: "申报日期",
prop: "applyTime",
type: "date",
format: "YYYY-MM-DD",
@ -152,7 +155,11 @@ const columns: ColumnProps[] = [
// prop
{ prop: "projectName", label: "项目名称" },
{ prop: "name", label: "申报时段名称", search: { el: "input" } },
{ prop: "applyTime", label: "申报时段" },
{ prop: "applyTime", label: "申报日期" },
{
label: "申报时段",
prop: "applyStartTime"
},
{ prop: "investmentPaymentId", label: "支付状态" },
// {
// prop: "contractTime",

View File

@ -3,9 +3,9 @@
<el-dialog class="report" :title="title" style="min-width: 1680px" v-model="visible1" @close="closeMain">
<Steps class="steps" :datas="datas" :active="active" />
<keep-alive>
<component :is="Components[active]" @next="next" @prev="active--"></component>
</keep-alive>
<!-- <keep-alive> -->
<component v-if="visible1" :is="Components[active]" @next="next" @prev="active--"></component>
<!-- </keep-alive> -->
</el-dialog>
<!-- </div> -->
</template>

View File

@ -247,7 +247,7 @@
</template>
<script lang="ts" setup>
import { ref, onMounted, onUnmounted } from "vue";
import { ref, onMounted, onUnmounted, nextTick, onActivated, onDeactivated } from "vue";
import { form, reset, rules } from "./overview";
import { getDicList } from "@/api/modules/jxjview";
import { getEngineeringName } from "@/api/modules/project";
@ -347,14 +347,15 @@ onMounted(async () => {
engineeringPurpose.value = res.result;
const res1 = await getDicList({ dictType: "structural_style" });
structuralStyle.value = res1.result;
if (store.Message) {
form.value = store.Message;
addressList.value = store.Message;
}
});
onUnmounted(() => reset());
onUnmounted(() => {
ruleFormRef.value?.clearValidate();
reset();
});
</script>
<style lang="scss" scoped>

View File

@ -0,0 +1,351 @@
<template>
<el-dialog title="编辑工程信息" width="60%" v-model="visible1" show-close>
<div class="overview">
<div class="littleTitle">概况信息</div>
<el-form ref="formRef" :model="editFormData" label-width="150px" class="form" size="default">
<!-- <el-form-item label="项目名称:">
<el-input v-model="editProjectName" disabled />
</el-form-item> -->
<el-form-item label="工程名称:">
<el-input v-model="editFormData.engineeringName" />
</el-form-item>
<div class="row">
<el-form-item label="工程编码:">
<el-input v-model="editFormData.engineeringCode" />
</el-form-item>
<el-form-item label="工程造价(万元):">
<el-input v-model="editFormData.engineeringCost" />
</el-form-item>
</div>
<div class="row">
<el-form-item label="工程总面积(㎡):">
<el-input v-model="editFormData.engineeringArea" />
</el-form-item>
<el-form-item label="工程总长度m:">
<el-input v-model="editFormData.engineeringLength" />
</el-form-item>
</div>
<el-form-item label="所属管辖区域:">
<el-form-item prop="adress">
<area-selected v-if="visible1" v-model="addressList" @get-address="handleGetAdress"></area-selected>
</el-form-item>
</el-form-item>
<el-form-item label="建设地址:">
<el-input v-model="editFormData.address" />
</el-form-item>
<div class="row">
<el-form-item label="安全监督站:">
<el-input v-model="editFormData.safetySupervision" />
</el-form-item>
<el-form-item label="质量监督站:">
<el-input v-model="editFormData.qualitySupervision" />
</el-form-item>
</div>
<div class="row">
<el-form-item label="监督编号(安全):">
<el-input v-model="editFormData.safetySupervisionCode" />
</el-form-item>
<el-form-item label="监督编号(质量):">
<el-input v-model="editFormData.qualitySupervisionCode" />
</el-form-item>
</div>
<div class="row">
<el-form-item label="安全监督员:">
<el-input v-model="editFormData.safetySupervisionPerson" />
</el-form-item>
<el-form-item label="质量监督员:">
<el-input v-model="editFormData.qualitySupervisionPerson" />
</el-form-item>
</div>
<div class="littleTitle" style="margin-left: -10%">补录信息</div>
<div class="row">
<el-form-item label="是否重点工程:">
<el-radio-group v-model="editFormData.isImportant">
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</div>
<div class="row">
<el-form-item label="工程类别:">
<el-select class="select" v-model="editFormData.engineeringType">
<el-option
v-for="item in engineeringTypeOptions"
:key="item.dictCode"
:label="item.dictValue"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
<el-form-item label="工程用途:">
<el-select class="select" v-model="editFormData.engineeringUse">
<el-option
v-for="item in engineeringPurpose"
:key="item.dictCode"
:label="item.dictValue"
:value="item.dictLabel"
/>
</el-select>
</el-form-item>
</div>
<div class="row">
<el-form-item label="施工许可证号:">
<el-input v-model="editFormData.licenseKey" />
</el-form-item>
<el-form-item label="施工许可发放时间:">
<el-date-picker
ref="licenseCreateTimeRef"
class="date"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
v-model="editFormData.licenseCreateTime"
type="date"
placeholder="选择日期"
/>
<div class="calendar" @click="licenseCreateTimeRef?.focus()">
<el-icon class="icon"><Calendar /></el-icon>
</div>
</el-form-item>
</div>
<div class="row">
<el-form-item label="安全监督工程状态:">
<el-input v-model="editFormData.safetySupervisionState"> </el-input>
</el-form-item>
<el-form-item label="质量监督工程状态:">
<el-input v-model="editFormData.qualitySupervisionState"> </el-input>
</el-form-item>
</div>
<div class="row">
<el-form-item label="安全监督形象进度:">
<el-input v-model="editFormData.safetySupervisionPlan"> </el-input>
</el-form-item>
<el-form-item label="质量监督形象进度:">
<el-input v-model="editFormData.qualitySupervisionPlan"> </el-input>
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button class="hzCancelStyle" @click="visible1 = false">取消</el-button>
<el-button type="primary" @click="confirm"> 保存 </el-button>
</template>
</el-dialog>
</template>
<script setup lang="tsx" name="editDialog">
import { ref, watch, reactive } from "vue";
import AreaSelected from "@/components/ChinaAreaData/index.vue";
import type { ReqQueryDictData } from "@/api/types";
import { ElMessage } from "element-plus";
import { getEditEngApprove, getIdEngApprovettable } from "@/api/modules/goverment";
import { getDicList } from "@/api/modules/jxjview";
const props = defineProps(["editennMEssageVisible", "relativeId"]);
const emits = defineEmits(["update:editennMEssageVisible", "confirm"]);
type DictDataList = Array<ReqQueryDictData>;
const visible1 = ref(false);
const editFormData = ref({});
const addressList = ref({});
const engineeringTypeOptions = ref<DictDataList>([]);
const engineeringPurpose = ref<DictDataList>([]);
const confirm = async () => {
await getEditEngApprove(editFormData.value);
ElMessage.success("保存成功");
visible1.value = false;
emits("confirm");
};
const handleGetAdress = (data: any) => {
// form.value.address = data;
editFormData.value.province = data.name[0];
editFormData.value.city = data.name[1];
editFormData.value.district = data.name[2];
};
const getDataDetail = async () => {
//
const data1 = await getIdEngApprovettable({ id: props.relativeId });
console.log(data1, "-----777");
editFormData.value = reactive({ ...data1.result });
addressList.value = {
province: data1.result.province,
city: data1.result.city,
district: data1.result.district
};
const data = await getDicList({ dictType: "engineering_type" });
engineeringTypeOptions.value = data.result;
const res = await getDicList({ dictType: "engineering_purpose" }); //
engineeringPurpose.value = res.result;
};
watch(
() => props.editennMEssageVisible,
(n, o) => {
if (n) {
getDataDetail();
}
visible1.value = n;
}
);
watch(
() => visible1.value,
(n, o) => {
emits("update:editennMEssageVisible", n);
}
);
</script>
<style scoped lang="scss">
@mixin fullwidth {
width: -webkit-fill-available;
width: -moz-available;
width: stretch;
}
.overview {
// background-color: #fff;
flex: 1;
.form {
padding: 40px 12% 0 8%;
.row {
display: flex;
justify-content: space-between;
> :first-child,
> :last-child {
width: 45%;
}
}
:deep(.el-input--default) {
width: 100%;
}
.select {
width: 100%;
}
.continuous {
@include fullwidth;
box-sizing: border-box;
display: flex;
gap: 5px;
align-items: center;
justify-content: space-around;
width: 90%;
min-height: 40px;
padding-inline: 10px;
border: 1px solid #dddddd;
border-radius: 5px;
.label {
display: flex;
flex: 1;
align-items: center;
span {
flex-shrink: 0;
margin-right: 4px;
font-size: 12px;
}
}
}
.calendar {
position: absolute;
inset-block: 1px;
right: 1px;
display: flex;
align-items: center;
justify-content: center;
width: 41px;
height: 31px;
cursor: pointer;
background-color: #008aff;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
.icon {
font-size: 20px;
color: #ffffff;
}
}
v-deep {
.date {
@include fullwidth;
}
.el-input__prefix {
display: none;
}
}
}
.table {
display: flex;
flex-direction: column;
padding: 2% 8% 0 6%;
h4 {
position: relative;
padding-left: 6px;
font-size: 20px;
font-weight: 500;
color: #333333;
border-left: 3px solid #008bff;
}
.el-table {
width: calc(100% - 20px);
margin-left: 20px;
}
}
.footer {
display: flex;
justify-content: center;
margin: 40px;
}
}
.littleTitle {
border-left: 3px solid #008bff;
padding-left: 6px;
color: var(--el-menu-text-color);
font-size: 20px;
}
.form {
padding: 2% 14% 0 8%;
}
.el-table_main {
padding: 2% 4% 0 4%;
}
:deep(.el-tabs--card > .el-tabs__header) {
border-bottom: none;
}
:deep(.el-tabs--card > .el-tabs__header .el-tabs__nav) {
width: 600px;
border: none;
}
:deep(.el-tabs__nav-scroll) {
display: flex;
justify-content: center;
.el-tabs__item {
width: 33.33%;
text-align: center;
// background: #fff;
color: var(--el-menu-text-color);
font-size: 16px;
border: 1px solid #aeaeae;
// border-radius: 8px;
}
.el-tabs__item.is-active {
background-color: #008bff;
color: var(--el-menu-text-color);
font-size: 16px;
}
}
:deep(#tab-first) {
border-radius: 4px 0 0 4px;
border-left: 1px solid #aeaeae;
}
:deep(#tab-third) {
border-radius: 0 4px 4px 0;
}
:deep(.el-input--suffix) {
width: 100%;
}
.test :deep(.el-input__wrapper) {
box-shadow: 0 0 0 0;
}
.test :deep(.el-input__inner) {
text-align: center;
}
</style>

View File

@ -145,7 +145,8 @@
<!-- max-height="340" -->
<el-table
:data="form.engineeringSingles"
:header-cell-style="{ backgroundColor: '#D6E7FF', textAlign: 'center' }"
height="200"
:header-cell-style="{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column prop="name" label="单体工程名称"> </el-table-column>
@ -159,6 +160,14 @@
<el-table-column prop="floorNum" label="地面层数"> </el-table-column>
<el-table-column prop="underNum" label="地下层数"> </el-table-column>
<el-table-column prop="remark" label="备注"> </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>
@ -203,9 +212,10 @@
<div class="el-table_main">
<el-table
:data="item.engineeringMainPersonList"
height="200"
max-height="240"
style="margin-bottom: 30px"
:header-cell-style="{ backgroundColor: '#e1eeff', textAlign: 'center' }"
:header-cell-style="{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column prop="name" label="姓名">
@ -224,6 +234,15 @@
<el-table-column prop="stationCode" label="职称证号/岗位证号"> </el-table-column>
<el-table-column prop="idCard" label="身份证号"> </el-table-column>
<el-table-column prop="phone" label="联系电话"> </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>
@ -234,7 +253,7 @@
<el-table
:data="annexFiles"
class="el-table"
:header-cell-style="{ backgroundColor: '#f5f7fa', textAlign: 'center' }"
:header-cell-style="{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column type="index" label="序号" width="200" />
@ -261,7 +280,7 @@
<el-table
:data="current"
class="el-table"
:header-cell-style="{ backgroundColor: '#f5f7fa', textAlign: 'center' }"
:header-cell-style="{ textAlign: 'center' }"
:cell-style="{ textAlign: 'center' }"
>
<el-table-column prop="fileName" label="文件名称" />
@ -350,7 +369,6 @@ onMounted(async () => {
// background-color: #fff;
flex: 1;
.form {
background-color: #fff;
padding: 40px 12% 0 8%;
.row {
display: flex;
@ -421,7 +439,6 @@ onMounted(async () => {
display: flex;
flex-direction: column;
padding: 2% 8% 0 6%;
background-color: #fff;
h4 {
position: relative;
padding-left: 6px;
@ -445,6 +462,8 @@ onMounted(async () => {
.littleTitle {
border-left: 3px solid #008bff;
padding-left: 6px;
color: var(--el-menu-text-color);
font-size: 20px;
}
.form {
padding: 2% 14% 0 8%;
@ -467,7 +486,7 @@ onMounted(async () => {
width: 33.33%;
text-align: center;
// background: #fff;
color: #333;
color: var(--el-menu-text-color);
font-size: 16px;
border: 1px solid #aeaeae;
@ -475,7 +494,7 @@ onMounted(async () => {
}
.el-tabs__item.is-active {
background-color: #008bff;
color: #fff;
color: var(--el-menu-text-color);
font-size: 16px;
}
}

View File

@ -40,6 +40,12 @@
></ProjectSupervision>
<!-- 查看 -->
<readonlyDialog v-model:ennMEssageVisible="ennMEssageVisible" :relativeId="relativeId"></readonlyDialog>
<!-- 编辑 -->
<editDialog
v-model:editennMEssageVisible="editennMEssageVisible"
:relativeId="relativeId"
@confirm="childrenDataUpdate"
></editDialog>
</div>
</div>
</div>
@ -52,6 +58,7 @@ import { ColumnProps } from "@/components/ProTable/interface";
import ProTable from "@/components/ProTable/index.vue";
import ProjectSupervision from "./components/ProjectSupervision/index.vue";
import readonlyDialog from "./components/readonlyDialog/index.vue";
import editDialog from "./components/editDialog/index.vue";
import {
getEngineeringApproveList,
getEngineeringApproveArea,
@ -126,29 +133,20 @@ const columns: ColumnProps[] = [
const relativeId = ref("");
const detailsDialog = ref(false);
const approvalTitle = ref("");
const childrenDataUpdate = () => {
console.log(666);
proTable.value.getTableList();
};
// ProTable 便
const proTable = ref();
const onSee = async row => {
const onSee = row => {
relativeId.value = row.id;
ennMEssageVisible.value = true;
};
const onEdit = async row => {
//
const data1 = await getIdEngApprovettable({ id: row.id });
editProjectName.value = data1.result.projectName;
const data = await getDicList({ dictType: "engineering_type" });
engineeringTypeOptions.value = data.result;
const res = await getDicList({ dictType: "engineering_purpose" }); //
engineeringPurpose.value = res.result;
addressList.value = {
province: row.province,
city: row.city,
district: row.district
};
const onEdit = row => {
relativeId.value = row.id;
editennMEssageVisible.value = true;
editFormData.value = reactive({ ...row });
};
const getDicStatusList = async () => {
const { result } = await getDicList({ dictType: "engineering_state" });