2023-04-07 17:06:54 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="overview">
|
2023-05-23 17:49:14 +08:00
|
|
|
|
<el-form ref="ruleFormRef" :model="form" label-width="150px" :rules="rules" class="form" size="default">
|
|
|
|
|
|
<!-- <el-form ref="ruleFormRef" :model="form" label-width="150px" class="form" size="default"> -->
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="项目名称:" prop="projectName">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.projectName" disabled />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程名称:" prop="engineeringName">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.engineeringName" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程编码:" prop="engineeringCode">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.engineeringCode" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程类别:" prop="engineeringType">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-select class="select" placeholder="请选择" v-model="form.engineeringType">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in engineeringTypeOptions"
|
|
|
|
|
|
:key="item.dictCode"
|
|
|
|
|
|
:label="item.dictValue"
|
|
|
|
|
|
:value="item.dictLabel"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程用途:" prop="engineeringUse">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-select class="select" placeholder="请选择" v-model="form.engineeringUse">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-option v-for="item in engineeringPurpose" :key="item.dictCode" :label="item.dictValue" :value="item.dictLabel" />
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程造价(万元):" prop="engineeringCost">
|
2023-08-15 19:28:55 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.engineeringCost" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程总面积(㎡):" prop="engineeringArea">
|
2023-08-15 19:28:55 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.engineeringArea" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程总长度(m):" prop="engineeringLength">
|
2023-08-15 19:28:55 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.engineeringLength" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="是否重点工程:" prop="isImportant">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-radio-group placeholder="请选择" v-model="form.isImportant">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-radio :label="1">是</el-radio>
|
|
|
|
|
|
<el-radio :label="0">否</el-radio>
|
|
|
|
|
|
</el-radio-group>
|
|
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="工程位置:" prop="position">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<!-- <label class="label"><span>经度</span> <el-input disabled v-model="form.longitude" size="small" /></label>
|
|
|
|
|
|
<label class="label"><span>纬度</span> <el-input disabled v-model="form.latitude" size="small" /></label> -->
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请选择" v-model="form.position">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<template #append>
|
|
|
|
|
|
<el-icon size="22" @click="openMap"><Location /></el-icon>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-input>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- <el-icon style="background-color: #008bff; color: #fff; height: 42px; width: 36px" size="22" @click="openMap"
|
|
|
|
|
|
><Location
|
|
|
|
|
|
/></el-icon> -->
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<!-- 标记校验 -->
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-form-item label="所属管辖区域:">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<area-selected v-model="addressList" @get-address="handleGetAdress"></area-selected>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="建设地址:" prop="address">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.address" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="施工许可证号:" prop="licenseKey">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.licenseKey" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="施工许可发放时间:" prop="licenseCreateTime">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-date-picker
|
|
|
|
|
|
ref="licenseCreateTimeRef"
|
|
|
|
|
|
class="date"
|
|
|
|
|
|
format="YYYY-MM-DD"
|
|
|
|
|
|
value-format="YYYY-MM-DD"
|
|
|
|
|
|
v-model="form.licenseCreateTime"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
style="wdith: 100%"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="calendar" @click="licenseCreateTimeRef?.focus()">
|
|
|
|
|
|
<el-icon class="icon"><Calendar /></el-icon>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="安全监督站:" prop="safetySupervision">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.safetySupervision" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="质量监督站:" prop="qualitySupervision">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.qualitySupervision" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="监督编号(安全):" prop="safetySupervisionCode">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.safetySupervisionCode" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="监督编号(质量):" prop="qualitySupervisionCode">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.qualitySupervisionCode" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="安全监督员:" prop="safetySupervisionPerson">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.safetySupervisionPerson" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="质量监督员:" prop="qualitySupervisionPerson">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.qualitySupervisionPerson" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="安全监督工程状态:" prop="safetySupervisionState">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.safetySupervisionState"> </el-input>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<!-- <el-select class="select" v-model="form.safetySupervisionState">
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in engineeringUseOptions"
|
|
|
|
|
|
:key="item.dictCode"
|
|
|
|
|
|
:label="item.dictValue"
|
|
|
|
|
|
:value="item.dictLabel"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-select> -->
|
|
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="质量监督工程状态:" prop="qualitySupervisionState">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.qualitySupervisionState"> </el-input>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="安全监督形象进度:" prop="safetySupervisionPlan">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.safetySupervisionPlan"> </el-input>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="质量监督形象进度:" prop="qualitySupervisionPlan">
|
2023-05-19 17:02:08 +08:00
|
|
|
|
<el-input placeholder="请输入" v-model="form.qualitySupervisionPlan"> </el-input>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<!-- <el-select class="select" v-model="form.qualitySupervisionPlan">
|
|
|
|
|
|
<el-option
|
|
|
|
|
|
v-for="item in engineeringUseOptions"
|
|
|
|
|
|
:key="item.dictCode"
|
|
|
|
|
|
:label="item.dictValue"
|
|
|
|
|
|
:value="item.dictLabel"
|
|
|
|
|
|
/>
|
|
|
|
|
|
</el-select> -->
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="row">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="合同开工日期:" prop="startTime">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-date-picker
|
|
|
|
|
|
ref="startTimeRef"
|
|
|
|
|
|
class="date"
|
|
|
|
|
|
format="YYYY-MM-DD"
|
|
|
|
|
|
value-format="YYYY-MM-DD"
|
|
|
|
|
|
v-model="form.startTime"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="calendar" @click="startTimeRef?.focus()">
|
|
|
|
|
|
<el-icon class="icon"><Calendar /></el-icon>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-form-item>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-form-item label="合同竣工日期:" prop="endTime">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<el-date-picker
|
|
|
|
|
|
format="YYYY-MM-DD"
|
|
|
|
|
|
value-format="YYYY-MM-DD"
|
|
|
|
|
|
ref="endTimeRef"
|
|
|
|
|
|
class="date"
|
|
|
|
|
|
v-model="form.endTime"
|
|
|
|
|
|
type="date"
|
|
|
|
|
|
placeholder="选择日期"
|
|
|
|
|
|
/>
|
|
|
|
|
|
<div class="calendar" @click="endTimeRef?.focus()">
|
|
|
|
|
|
<el-icon class="icon"><Calendar /></el-icon>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-form>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="table">
|
|
|
|
|
|
<h4>单体工程</h4>
|
|
|
|
|
|
<el-table
|
|
|
|
|
|
:data="form.engineeringSingles"
|
|
|
|
|
|
border
|
|
|
|
|
|
max-height="340"
|
|
|
|
|
|
class="el-table"
|
2023-05-04 09:25:35 +08:00
|
|
|
|
:header-cell-style="{ backgroundColor: '#e1eeff', textAlign: 'center' }"
|
2023-04-07 17:06:54 +08:00
|
|
|
|
:cell-style="{ textAlign: 'center' }"
|
|
|
|
|
|
>
|
2023-08-09 16:56:27 +08:00
|
|
|
|
<el-table-column prop="name" label="*单体工程名称">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<template #default="{ row }">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-input class="test" v-model="row.name" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2023-05-04 09:25:35 +08:00
|
|
|
|
<el-table-column prop="shape" label="结构形式">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
|
<el-select class="select" v-model="row.shape" size="small">
|
|
|
|
|
|
<el-option v-for="item in structuralStyle" :key="item.dictCode" :label="item.dictValue" :value="item.dictLabel" />
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2023-05-04 09:25:35 +08:00
|
|
|
|
<el-table-column prop="area" label="工程面积(㎡)">
|
2023-08-09 16:56:27 +08:00
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
|
<el-input class="test" v-model="row.area" @blur="e => validatorNumber(e, $index, 'area')" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2023-05-04 09:25:35 +08:00
|
|
|
|
<el-table-column prop="floorNum" label="地面层数">
|
2023-08-09 16:56:27 +08:00
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
|
<el-input class="test" v-model="row.floorNum" @blur="e => validatorNumber(e, $index, 'floorNum')" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2023-05-04 09:25:35 +08:00
|
|
|
|
<el-table-column prop="underNum" label="地下层数">
|
2023-08-09 16:56:27 +08:00
|
|
|
|
<template #default="{ row, $index }">
|
|
|
|
|
|
<el-input class="test" v-model="row.underNum" @blur="e => validatorNumber(e, $index, 'underNum')" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2023-05-04 09:25:35 +08:00
|
|
|
|
<el-table-column prop="remark" label="备注">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<template #default="{ row }">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-input class="test" v-model="row.remark" />
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-table-column fixed="right">
|
2023-04-07 17:06:54 +08:00
|
|
|
|
<template #header>
|
2023-05-04 09:25:35 +08:00
|
|
|
|
<el-button type="primary" round @click="addEngineeringSingle"> 新增 </el-button>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
|
<el-button type="danger" link @click="removeEngineeringSingle(row)">删除</el-button>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
</el-table>
|
|
|
|
|
|
|
|
|
|
|
|
<footer class="footer">
|
2023-04-25 10:48:27 +08:00
|
|
|
|
<el-button type="primary" @click="next(ruleFormRef)">下一步</el-button>
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</footer>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<AMap v-model="isOpen" @get-address="getAddress" />
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
|
|
|
|
import { ref, onMounted, onUnmounted } from "vue";
|
2023-04-25 10:48:27 +08:00
|
|
|
|
import { form, reset, rules } from "./overview";
|
2023-04-07 17:06:54 +08:00
|
|
|
|
import { getDicList } from "@/api/modules/jxjview";
|
|
|
|
|
|
import { getEngineeringName } from "@/api/modules/project";
|
|
|
|
|
|
import { ElDatePicker } from "element-plus";
|
|
|
|
|
|
import type { ReqQueryDictData, EngineeringSingle } from "@/api/types";
|
|
|
|
|
|
import { ElMessage, FormInstance, ElForm } from "element-plus";
|
|
|
|
|
|
import type { OverviewForm } from "./overview";
|
|
|
|
|
|
import AreaSelected from "@/components/ChinaAreaData/index.vue";
|
|
|
|
|
|
import AMap from "@/components/AMap/AMap.vue";
|
|
|
|
|
|
import { GlobalStore } from "@/stores";
|
2023-08-09 16:56:27 +08:00
|
|
|
|
import { DatetimeFormat } from "vue-i18n";
|
2023-04-25 10:48:27 +08:00
|
|
|
|
|
|
|
|
|
|
const ruleFormRef = ref<FormInstance>();
|
|
|
|
|
|
|
2023-04-07 17:06:54 +08:00
|
|
|
|
const store = GlobalStore();
|
|
|
|
|
|
const isOpen = ref(false);
|
2023-04-25 10:48:27 +08:00
|
|
|
|
const addressList = ref({
|
|
|
|
|
|
province: "",
|
|
|
|
|
|
city: "",
|
|
|
|
|
|
area: "",
|
|
|
|
|
|
district: ""
|
|
|
|
|
|
});
|
2023-04-07 17:06:54 +08:00
|
|
|
|
const emit = defineEmits<{
|
|
|
|
|
|
(e: "next", data: OverviewForm): void;
|
|
|
|
|
|
}>();
|
|
|
|
|
|
|
|
|
|
|
|
type DictDataList = Array<ReqQueryDictData>;
|
|
|
|
|
|
type ElDatePickerType = typeof ElDatePicker;
|
|
|
|
|
|
|
|
|
|
|
|
const licenseCreateTimeRef = ref<ElDatePickerType>(),
|
|
|
|
|
|
startTimeRef = ref<ElDatePickerType>(),
|
|
|
|
|
|
endTimeRef = ref<ElDatePickerType>();
|
|
|
|
|
|
|
|
|
|
|
|
const engineeringTypeOptions = ref<DictDataList>([]),
|
|
|
|
|
|
engineeringUseOptions = ref<DictDataList>([]);
|
|
|
|
|
|
|
|
|
|
|
|
const engineeringPurpose = ref<DictDataList>([]);
|
|
|
|
|
|
const structuralStyle = ref<DictDataList>([]);
|
2023-08-09 16:56:27 +08:00
|
|
|
|
const validatorNumber = (e: any, index: any, key: string) => {
|
|
|
|
|
|
// 校验数字
|
2023-08-28 16:31:56 +08:00
|
|
|
|
let pattern = /^[0-9][0-9]*$/;
|
2023-08-09 16:56:27 +08:00
|
|
|
|
let dataValue = form.value.engineeringSingles[index][key];
|
|
|
|
|
|
if (!pattern.test(dataValue)) {
|
|
|
|
|
|
ElMessage.error("请输入纯数字");
|
|
|
|
|
|
form.value.engineeringSingles[index][key] = "";
|
|
|
|
|
|
}
|
|
|
|
|
|
console.log(e, index);
|
|
|
|
|
|
};
|
2023-04-07 17:06:54 +08:00
|
|
|
|
const addEngineeringSingle = () => {
|
|
|
|
|
|
form.value.engineeringSingles?.push({
|
|
|
|
|
|
area: "",
|
|
|
|
|
|
engineeringSn: "",
|
|
|
|
|
|
floorNum: "",
|
|
|
|
|
|
name: "",
|
|
|
|
|
|
remark: "",
|
|
|
|
|
|
shape: undefined,
|
|
|
|
|
|
underNum: ""
|
|
|
|
|
|
});
|
|
|
|
|
|
};
|
|
|
|
|
|
const projectName = ref("");
|
|
|
|
|
|
|
|
|
|
|
|
const handleGetAdress = (data: any) => {
|
|
|
|
|
|
// form.value.address = data;
|
|
|
|
|
|
form.value.province = data.name[0];
|
|
|
|
|
|
form.value.city = data.name[1];
|
|
|
|
|
|
form.value.district = data.name[2];
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const openMap = () => {
|
|
|
|
|
|
isOpen.value = true;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const getAddress = (e: any) => {
|
|
|
|
|
|
isOpen.value = false;
|
2023-04-25 10:48:27 +08:00
|
|
|
|
form.value.position = "经度:" + e.lng + " 纬度:" + e.lat;
|
2023-04-07 17:06:54 +08:00
|
|
|
|
form.value.latitude = e.lat;
|
|
|
|
|
|
form.value.longitude = e.lng;
|
|
|
|
|
|
ElMessage.success("已获取地址");
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
const removeEngineeringSingle = (row: EngineeringSingle) => {
|
|
|
|
|
|
const i = form.value.engineeringSingles?.indexOf(row);
|
|
|
|
|
|
i != null && form.value.engineeringSingles?.splice(i, 1);
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2023-04-25 10:48:27 +08:00
|
|
|
|
const next = async (formEl: FormInstance | undefined, params: any) => {
|
2023-08-09 16:56:27 +08:00
|
|
|
|
let validatorBool = true;
|
2023-04-25 10:48:27 +08:00
|
|
|
|
if (!formEl) return;
|
2023-08-09 16:56:27 +08:00
|
|
|
|
console.log(form.value);
|
2023-04-25 10:48:27 +08:00
|
|
|
|
await formEl.validate(async (valid, fields) => {
|
|
|
|
|
|
if (valid) {
|
2023-08-09 16:56:27 +08:00
|
|
|
|
if (new Date(form.value.endTime).getTime() < new Date(form.value.startTime).getTime()) {
|
|
|
|
|
|
ElMessage({
|
|
|
|
|
|
message: "竣工日期需大于等于开工日期",
|
|
|
|
|
|
type: "error"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2023-08-28 16:31:56 +08:00
|
|
|
|
if (form.value.engineeringSingles?.length == 0) {
|
|
|
|
|
|
ElMessage({
|
|
|
|
|
|
message: "请添加单体工程",
|
|
|
|
|
|
type: "error"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2023-08-09 16:56:27 +08:00
|
|
|
|
form.value.engineeringSingles?.map(item => {
|
|
|
|
|
|
if (!item.name) {
|
|
|
|
|
|
validatorBool = false;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
if (!validatorBool) {
|
|
|
|
|
|
ElMessage({
|
|
|
|
|
|
message: "请填写单体工程列表的工程名称",
|
|
|
|
|
|
type: "error"
|
|
|
|
|
|
});
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2023-04-25 10:48:27 +08:00
|
|
|
|
emit("next", form.value);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
console.log("error submit!", fields);
|
|
|
|
|
|
ElMessage({
|
|
|
|
|
|
showClose: true,
|
|
|
|
|
|
message: "请完善表单信息!",
|
|
|
|
|
|
type: "error"
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
2023-04-07 17:06:54 +08:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
|
const res2 = await getEngineeringName();
|
|
|
|
|
|
form.value.projectName = res2.result.projectName; //获取项目名称
|
|
|
|
|
|
const data = await getDicList({ dictType: "engineering_type" });
|
|
|
|
|
|
engineeringTypeOptions.value = data.result;
|
|
|
|
|
|
const res = await getDicList({ dictType: "engineering_purpose" }); //工程用途
|
|
|
|
|
|
engineeringPurpose.value = res.result;
|
|
|
|
|
|
const res1 = await getDicList({ dictType: "structural_style" });
|
|
|
|
|
|
structuralStyle.value = res1.result;
|
|
|
|
|
|
|
|
|
|
|
|
if (store.Message) {
|
|
|
|
|
|
form.value = store.Message;
|
2023-08-09 16:56:27 +08:00
|
|
|
|
form.value.position = "经度:" + store.Message.longitude + " 纬度:" + store.Message.latitude;
|
2023-04-07 17:06:54 +08:00
|
|
|
|
addressList.value = store.Message;
|
|
|
|
|
|
}
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
onUnmounted(() => reset());
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
|
@import "./overview.scss";
|
2023-04-25 10:48:27 +08:00
|
|
|
|
.test :deep(.el-input__wrapper) {
|
|
|
|
|
|
box-shadow: 0 0 0 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
.test :deep(.el-input__inner) {
|
|
|
|
|
|
text-align: center;
|
|
|
|
|
|
}
|
2023-05-13 18:42:57 +08:00
|
|
|
|
:deep(.el-table__empty-text) {
|
|
|
|
|
|
min-height: 200px;
|
|
|
|
|
|
display: flex;
|
|
|
|
|
|
justify-content: center;
|
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
2023-04-07 17:06:54 +08:00
|
|
|
|
</style>
|