需求优化

This commit is contained in:
BianLzhaoMin 2025-05-21 16:20:12 +08:00
parent 6d7d8efac4
commit 9c1be5ef3d
2 changed files with 433 additions and 220 deletions

View File

@ -280,6 +280,7 @@ export default {
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
this.$router.push('/project/projectManagements/outsourcingPro/editOutsourcingPro/' + row.proId) this.$router.push('/project/projectManagements/outsourcingPro/editOutsourcingPro/' + row.proId)
localStorage.setItem('proStatusUseInfo', row.proStatus)
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {

View File

@ -1,27 +1,38 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px"> <el-form ref="elForm" :model="formData" :rules="rules" size="medium" label-width="100px">
<h2 style="color: #409EFF;background: #e8e8e8;padding: 15px;border-radius: 10px">当前施工信息</h2> <h2 style="color: #409eff; background: #e8e8e8; padding: 15px; border-radius: 10px">当前施工信息</h2>
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="承包商数量"> <el-form-item label-width="120px" label="承包商数量">
<el-input v-model="formData.consNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.consNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="分包商数量"> <el-form-item label-width="120px" label="分包商数量">
<el-input v-model="formData.subNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.subNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="当前在场人数"> <el-form-item label-width="120px" label="当前在场人数">
<el-input v-model="formData.presentNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.presentNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -29,22 +40,34 @@
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="特殊工种人数"> <el-form-item label-width="120px" label="特殊工种人数">
<el-input v-model="formData.specialJobsNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.specialJobsNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="工器具总数"> <el-form-item label-width="120px" label="工器具总数">
<el-input v-model="formData.equipmentNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.equipmentNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="特殊设备数量"> <el-form-item label-width="120px" label="特殊设备数量">
<el-input v-model="formData.specialEquipmentNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.specialEquipmentNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -52,45 +75,66 @@
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="监理人数"> <el-form-item label-width="120px" label="监理人数">
<el-input v-model="formData.supervisorNum" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.supervisorNum"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="工程状态"> <el-form-item label-width="120px" label="工程状态">
<el-select v-model="formData.proStatus" placeholder="请选择工程状态" clearable :style="{width: '100%'}" <el-select
:disabled="true" v-model="formData.proStatus"
placeholder="请选择工程状态"
clearable
:style="{ width: '100%' }"
:disabled="true"
> >
<el-option v-for="dict in proStatusOptions" <el-option
:key="dict.value" v-for="dict in proStatusOptions"
:label="dict.label" :key="dict.value"
:value="dict.value" :label="dict.label"
:value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<h2 style="color: #409EFF;background: #e8e8e8;padding: 15px;border-radius: 10px">工程基本信息填写</h2> <h2 style="color: #409eff; background: #e8e8e8; padding: 15px; border-radius: 10px">工程基本信息填写</h2>
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="工程名称" style="width: 100%"> <el-form-item label-width="120px" label="工程名称" style="width: 100%">
<el-input v-model="formData.proName" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.proName"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="工程负责人" style="width: 100%"> <el-form-item label-width="120px" label="工程负责人" style="width: 100%">
<el-input v-model="formData.proLeader" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.proLeader"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="负责人联系方式" style="width: 100%"> <el-form-item label-width="120px" label="负责人联系方式" style="width: 100%">
<el-input v-model="formData.proLeaderPhone" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.proLeaderPhone"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -98,29 +142,45 @@
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="工程类型" style="width: 100%"> <el-form-item label-width="120px" label="工程类型" style="width: 100%">
<el-select v-model="formData.proType" placeholder="请选择工程类型" clearable :style="{width: '100%'}" <el-select
:disabled="true" v-model="formData.proType"
placeholder="请选择工程类型"
clearable
:style="{ width: '100%' }"
:disabled="true"
> >
<el-option v-for="dict in proTypeOptions" <el-option
:key="dict.value" v-for="dict in proTypeOptions"
:label="dict.label" :key="dict.value"
:value="dict.value" :label="dict.label"
:value="dict.value"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="计划开工日期" prop="startDate" style="width: 100%"> <el-form-item label-width="120px" label="计划开工日期" prop="startDate" style="width: 100%">
<el-date-picker v-model="formData.startDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" <el-date-picker
:style="{width: '100%'}" placeholder="请选择开工期日计划开工日期" v-model="formData.startDate"
:editable="false" clearable format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{ width: '100%' }"
placeholder="请选择开工期日计划开工日期"
:editable="false"
clearable
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="计划竣工日期" prop="endDate"> <el-form-item label-width="120px" label="计划竣工日期" prop="endDate">
<el-date-picker v-model="formData.endDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" <el-date-picker
:editable="false" :style="{width: '100%'}" placeholder="请选择计划竣工日期" clearable v-model="formData.endDate"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:editable="false"
:style="{ width: '100%' }"
placeholder="请选择计划竣工日期"
clearable
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -128,17 +188,25 @@
<el-row v-if="formData.proType == 2"> <el-row v-if="formData.proType == 2">
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="选择监理单位" prop="supervisorUnitId"> <el-form-item label-width="120px" label="选择监理单位" prop="supervisorUnitId">
<el-select v-model="formData.supervisorUnitId" placeholder="请选择监理单位" clearable :disabled="true" <el-select
:style="{width: '100%'}" v-model="formData.supervisorUnitId"
placeholder="请选择监理单位"
clearable
:disabled="true"
:style="{ width: '100%' }"
> >
<el-option v-for="(item,index) in supervisorUnitOptions" :key="index" :label="item.label" <el-option
:value="item.value" :disabled="item.disabled" v-for="(item, index) in supervisorUnitOptions"
:key="index"
:label="item.label"
:value="item.value"
:disabled="item.disabled"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<h2 style="color: #409EFF;background: #e8e8e8;padding: 15px;border-radius: 10px">工程地址配置</h2> <h2 style="color: #409eff; background: #e8e8e8; padding: 15px; border-radius: 10px">工程地址配置</h2>
<el-row> <el-row>
<el-form-item <el-form-item
v-for="(domain, index) in formData.proAddress" v-for="(domain, index) in formData.proAddress"
@ -147,144 +215,245 @@
:key="domain.key" :key="domain.key"
:prop="'proAddress.' + index + '.value'" :prop="'proAddress.' + index + '.value'"
:rules="{ :rules="{
required: true, message: '请选择工程地址', trigger: 'blur' required: true,
}" message: '请选择工程地址',
trigger: 'blur',
}"
> >
<el-select v-model="domain.value" placeholder="请选择工程地址" clearable @clear="clearAddress(index)" <el-select
:style="{width: '26%'}" v-model="domain.value"
@change="changeLonLat(domain.value,index)" placeholder="请选择工程地址"
clearable
@clear="clearAddress(index)"
:style="{ width: '26%' }"
@change="changeLonLat(domain.value, index)"
> >
<el-option v-for="(option, i) in proAddressOptions" :key="i" :label="option.label" :value="option.value" <el-option
:disabled="option.disabled" v-for="(option, i) in proAddressOptions"
:key="i"
:label="option.label"
:value="option.value"
:disabled="option.disabled"
></el-option> ></el-option>
</el-select> </el-select>
<el-input v-model="domain.lon" placeholder="经度" clearable :disabled="true" <el-input
:style="{width: '20%',marginLeft:'2%'}" v-no-whitespace v-model="domain.lon"
placeholder="经度"
clearable
:disabled="true"
:style="{ width: '20%', marginLeft: '2%' }"
v-no-whitespace
></el-input> ></el-input>
<el-input v-model="domain.lat" placeholder="经度" clearable :disabled="true" <el-input
:style="{width: '20%',marginLeft:'2%'}" v-no-whitespace v-model="domain.lat"
placeholder="经度"
clearable
:disabled="true"
:style="{ width: '20%', marginLeft: '2%' }"
v-no-whitespace
></el-input> ></el-input>
<el-button type="primary" plain size="medium" icon="el-icon-circle-plus" circle :style="{marginLeft:'2%'}" <el-button
@click="addAddressOption" type="primary"
plain
size="medium"
icon="el-icon-circle-plus"
circle
:style="{ marginLeft: '2%' }"
@click="addAddressOption"
></el-button> ></el-button>
<el-button v-if="index !== 0" v-show="true" type="danger" plain icon="el-icon-remove" circle <el-button
@click="removeAddressOption(domain)" v-if="index !== 0"
v-show="true"
type="danger"
plain
icon="el-icon-remove"
circle
@click="removeAddressOption(domain)"
></el-button> ></el-button>
<el-button v-if="index === 0" v-show="true" type="primary" @click="addAddress">新增地址</el-button> <el-button v-if="index === 0" v-show="true" type="primary" @click="addAddress">新增地址</el-button>
</el-form-item> </el-form-item>
</el-row> </el-row>
<h2 style="color: #409EFF;background: #e8e8e8;padding: 15px;border-radius: 10px">承包商配置</h2> <h2 style="color: #409eff; background: #e8e8e8; padding: 15px; border-radius: 10px">承包商配置</h2>
<el-row> <el-row>
<el-form-item <el-form-item v-for="(domain, index) in formData.consArr" :label="'选择承包商' + index" :key="domain.key">
v-for="(domain, index) in formData.consArr"
:label="'选择承包商' + index"
:key="domain.key"
>
<el-col :span="7"> <el-col :span="7">
<el-select v-model="domain.value" placeholder="请选择承包商" clearable <el-select
:style="{width: '100%'}" v-model="domain.value"
@change="changeCons(domain.value,index)" placeholder="请选择承包商"
clearable
:style="{ width: '100%' }"
@change="changeCons(domain.value, index)"
> >
<el-option v-for="(option, i) in consOptions" :key="i" :label="option.label" :value="option.value" <el-option
:disabled="option.disabled" v-for="(option, i) in consOptions"
:key="i"
:label="option.label"
:value="option.value"
:disabled="option.disabled"
></el-option> ></el-option>
</el-select> </el-select>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-checkbox-group v-model="domain.checkList" style="margin-left: 2%;"> <el-checkbox-group v-model="domain.checkList" style="margin-left: 2%">
<el-checkbox v-for="(option,index) in materialOptions" :label="option.value" :key="index" > <el-checkbox v-for="(option, index) in materialOptions" :label="option.value" :key="index">
{{ option.label }} {{ option.label }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-col> </el-col>
<el-col :span="4"> <el-col :span="4">
<el-button type="primary" plain size="medium" icon="el-icon-circle-plus" circle <el-button
@click="addConsOption" type="primary"
plain
size="medium"
icon="el-icon-circle-plus"
circle
@click="addConsOption"
></el-button> ></el-button>
<el-button v-if="index !== 0" v-show="true" type="danger" plain icon="el-icon-remove" circle <el-button
@click="removeConsOption(domain)" v-if="
index !== 0 &&
(proStatusUseInfo === '规划中' || proStatusUseInfo === '筹备中' || proStatusUseInfo === '在建中')
"
v-show="true"
type="danger"
plain
icon="el-icon-remove"
circle
@click="removeConsOption(domain)"
></el-button> ></el-button>
<el-button v-show="index === 0" type="primary" @click="addCons">新增承包商单位</el-button> <el-button
v-show="
index === 0 &&
(proStatusUseInfo === '规划中' || proStatusUseInfo === '筹备中' || proStatusUseInfo === '在建中')
"
type="primary"
@click="addCons"
>
新增承包商单位
</el-button>
</el-col> </el-col>
</el-form-item> </el-form-item>
</el-row> </el-row>
<h2 style="color: #409EFF;background: #e8e8e8;padding: 15px;border-radius: 10px">其他信息</h2> <h2 style="color: #409eff; background: #e8e8e8; padding: 15px; border-radius: 10px">其他信息</h2>
<el-row> <el-row>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="创建人"> <el-form-item label-width="120px" label="创建人">
<el-input v-model="formData.createPerson" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.createPerson"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="7"> <el-col :span="7">
<el-form-item label-width="120px" label="创建时间"> <el-form-item label-width="120px" label="创建时间">
<el-input v-model="formData.createTime" clearable :disabled="true" v-no-whitespace <el-input
:style="{width: '100%'}" v-model="formData.createTime"
clearable
:disabled="true"
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-dialog :title="'创建工程地址'" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false"> <el-dialog :title="'创建工程地址'" :visible.sync="open" width="500px" append-to-body :close-on-click-modal="false">
<bns-map <bns-map :items="mapItems" v-on:closeMain="closeMain"></bns-map>
:items="mapItems"
v-on:closeMain="closeMain"
>
</bns-map>
</el-dialog> </el-dialog>
<!-- 创建承包商单位 --> <!-- 创建承包商单位 -->
<el-dialog :title="'创建承包商单位'" :visible.sync="consFormOpen" width="30%" :close-on-click-modal="false"> <el-dialog :title="'创建承包商单位'" :visible.sync="consFormOpen" width="30%" :close-on-click-modal="false">
<el-form ref="consForm" :model="consForm" :rules="consRules" size="medium" label-width="100px"> <el-form ref="consForm" :model="consForm" :rules="consRules" size="medium" label-width="100px">
<el-form-item label="承包商单位名称" prop="consName" label-width="170px"> <el-form-item label="承包商单位名称" prop="consName" label-width="170px">
<el-input v-model="consForm.consName" placeholder="请输入承包商单位名称" show-word-limit :maxlength="60" <el-input
@blur="checkIsExistConsName" v-no-whitespace v-model="consForm.consName"
clearable placeholder="请输入承包商单位名称"
:style="{width: '100%'}" show-word-limit
:maxlength="60"
@blur="checkIsExistConsName"
v-no-whitespace
clearable
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="单位地址" prop="consAddress" label-width="170px"> <el-form-item label="单位地址" prop="consAddress" label-width="170px">
<el-input v-model="consForm.consAddress" placeholder="请输入单位地址" show-word-limit :maxlength="200" <el-input
clearable v-no-whitespace v-model="consForm.consAddress"
:style="{width: '100%'}" placeholder="请输入单位地址"
show-word-limit
:maxlength="200"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人姓名" prop="corporateName" label-width="170px"> <el-form-item label="法人姓名" prop="corporateName" label-width="170px">
<el-input v-model="consForm.corporateName" placeholder="请输入法人姓名" show-word-limit :maxlength="20" <el-input
clearable v-no-whitespace v-model="consForm.corporateName"
:style="{width: '100%'}" placeholder="请输入法人姓名"
show-word-limit
:maxlength="20"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="法人联系方式" prop="corporatePhone" label-width="170px"> <el-form-item label="法人联系方式" prop="corporatePhone" label-width="170px">
<el-input v-model="consForm.corporatePhone" placeholder="请输入法人联系方式" show-word-limit :maxlength="11" <el-input
clearable v-no-whitespace v-model="consForm.corporatePhone"
:style="{width: '100%'}" placeholder="请输入法人联系方式"
show-word-limit
:maxlength="11"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="社会统一征信代码" prop="socialUnifiedCreditCode" label-width="170px"> <el-form-item label="社会统一征信代码" prop="socialUnifiedCreditCode" label-width="170px">
<el-input v-model="consForm.socialUnifiedCreditCode" placeholder="请输入社会统一征信代码" show-word-limit <el-input
:maxlength="20" clearable v-no-whitespace v-model="consForm.socialUnifiedCreditCode"
:style="{width: '100%'}" placeholder="请输入社会统一征信代码"
show-word-limit
:maxlength="20"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="承包商负责人" prop="contractorPrincipal" label-width="170px"> <el-form-item label="承包商负责人" prop="contractorPrincipal" label-width="170px">
<el-input v-model="consForm.contractorPrincipal" placeholder="请输入承包商负责人" show-word-limit <el-input
:maxlength="20" clearable v-no-whitespace v-model="consForm.contractorPrincipal"
:style="{width: '100%'}" placeholder="请输入承包商负责人"
show-word-limit
:maxlength="20"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="承包商负责人联系方式" prop="contractorPrincipalPhone" label-width="170px"> <el-form-item label="承包商负责人联系方式" prop="contractorPrincipalPhone" label-width="170px">
<el-input v-model="consForm.contractorPrincipalPhone" placeholder="请输入承包商负责人联系方式" show-word-limit <el-input
:maxlength="11" clearable v-no-whitespace v-model="consForm.contractorPrincipalPhone"
:style="{width: '100%'}" placeholder="请输入承包商负责人联系方式"
show-word-limit
:maxlength="11"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item label="承包商负责人身份证" prop="contractorPrincipalIdCard" label-width="170px"> <el-form-item label="承包商负责人身份证" prop="contractorPrincipalIdCard" label-width="170px">
<el-input v-model="consForm.contractorPrincipalIdCard" placeholder="请输入承包商负责人身份证" show-word-limit <el-input
:maxlength="18" clearable v-no-whitespace v-model="consForm.contractorPrincipalIdCard"
:style="{width: '100%'}" placeholder="请输入承包商负责人身份证"
show-word-limit
:maxlength="18"
clearable
v-no-whitespace
:style="{ width: '100%' }"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -295,13 +464,17 @@
</el-dialog> </el-dialog>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" :style="{float:'right',marginLeft:'10px'}" v-preventReClick="5000"> <el-button
type="primary"
@click="submitForm"
:style="{ float: 'right', marginLeft: '10px' }"
v-preventReClick="5000"
>
</el-button> </el-button>
<el-button @click="resetForm" :style="{float:'right'}"> </el-button> <el-button @click="resetForm" :style="{ float: 'right' }"> </el-button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { dictTableOption, selectCons, selectMaterial, selectProAddress, selectSupervisionUnit } from '@/api/tool/select' import { dictTableOption, selectCons, selectMaterial, selectProAddress, selectSupervisionUnit } from '@/api/tool/select'
@ -324,21 +497,27 @@ export default {
proAddressForm: {}, proAddressForm: {},
//form //form
proAddressRules: { proAddressRules: {
proAddress: [{ proAddress: [
required: true, {
message: '请输入工程地址', required: true,
trigger: 'blur', message: '请输入工程地址',
}], trigger: 'blur',
lon: [{ },
required: true, ],
message: '请输入经度', lon: [
trigger: 'blur', {
}], required: true,
lat: [{ message: '请输入经度',
required: true, trigger: 'blur',
message: '请输入纬度', },
trigger: 'blur', ],
}], lat: [
{
required: true,
message: '请输入纬度',
trigger: 'blur',
},
],
}, },
// //
mapItems: {}, mapItems: {},
@ -346,53 +525,71 @@ export default {
consForm: {}, consForm: {},
//form //form
consRules: { consRules: {
consName: [{ consName: [
required: true, {
message: '请输入承包商单位名称', required: true,
trigger: 'blur', message: '请输入承包商单位名称',
}], trigger: 'blur',
consAddress: [{ },
required: true, ],
message: '请输入单位地址', consAddress: [
trigger: 'blur', {
}], required: true,
corporateName: [{ message: '请输入单位地址',
required: true, trigger: 'blur',
message: '请输入法人姓名', },
trigger: 'blur', ],
}], corporateName: [
corporatePhone: [{ {
required: true, required: true,
validator: numberUtils.checkPhone, message: '请输入法人姓名',
trigger: 'blur', trigger: 'blur',
}], },
socialUnifiedCreditCode: [{ ],
required: true, corporatePhone: [
message: '请输入社会统一征信代码', {
trigger: 'blur', required: true,
}, { validator: numberUtils.checkPhone,
pattern: /^[a-zA-Z0-9]+$/, trigger: 'blur',
message: '请输入数字或字母', },
trigger: 'blur', ],
}], socialUnifiedCreditCode: [
contractorPrincipal: [{ {
required: true, required: true,
message: '请输入承包商负责人', message: '请输入社会统一征信代码',
trigger: 'blur', trigger: 'blur',
}], },
contractorPrincipalPhone: [{ {
required: true, pattern: /^[a-zA-Z0-9]+$/,
validator: numberUtils.checkPhone, message: '请输入数字或字母',
trigger: 'blur', trigger: 'blur',
}], },
contractorPrincipalIdCard: [{ ],
required: true, contractorPrincipal: [
validator: numberUtils.checkIdCardNumber, {
trigger: 'blur', required: true,
}], message: '请输入承包商负责人',
trigger: 'blur',
},
],
contractorPrincipalPhone: [
{
required: true,
validator: numberUtils.checkPhone,
trigger: 'blur',
},
],
contractorPrincipalIdCard: [
{
required: true,
validator: numberUtils.checkIdCardNumber,
trigger: 'blur',
},
],
}, },
gutterValue: parseInt('24', 10), gutterValue: parseInt('24', 10),
mainFormFields: [ // mainFormFields: [
//
{ {
label: '工程地址', label: '工程地址',
prop: 'proAddress', prop: 'proAddress',
@ -454,41 +651,55 @@ export default {
}, },
// //
rules: { rules: {
proName: [{ proName: [
required: true, {
message: '请输入工程名称', required: true,
trigger: 'blur', message: '请输入工程名称',
}], trigger: 'blur',
proLeader: [{ },
required: true, ],
message: '请输入工程负责人', proLeader: [
trigger: 'blur', {
}], required: true,
proLeaderPhone: [{ message: '请输入工程负责人',
required: true, trigger: 'blur',
message: '请输入负责人联系方式', },
trigger: 'blur', ],
}], proLeaderPhone: [
supervisorUnit: [{ {
required: true, required: true,
message: '请选择监理单位', message: '请输入负责人联系方式',
trigger: 'change', trigger: 'blur',
}], },
startDate: [{ ],
required: true, supervisorUnit: [
message: '请选择开工期日计划开工日期', {
trigger: 'change', required: true,
}], message: '请选择监理单位',
endDate: [{ trigger: 'change',
required: true, },
message: '请选择计划竣工日期', ],
trigger: 'change', startDate: [
}], {
proType: [{ required: true,
required: true, message: '请选择开工期日计划开工日期',
message: '请选择工程类型', trigger: 'change',
trigger: 'change', },
}], ],
endDate: [
{
required: true,
message: '请选择计划竣工日期',
trigger: 'change',
},
],
proType: [
{
required: true,
message: '请选择工程类型',
trigger: 'change',
},
],
}, },
// //
proTypeOptions: [], proTypeOptions: [],
@ -503,6 +714,8 @@ export default {
proAddressOptions: [], proAddressOptions: [],
paramsData: {}, paramsData: {},
proId: '', proId: '',
proStatusUseInfo: '',
} }
}, },
created() { created() {
@ -514,9 +727,10 @@ export default {
this.getMaterial() this.getMaterial()
this.getSupervisionUnit() this.getSupervisionUnit()
this.getData(this.proId) this.getData(this.proId)
this.proStatusUseInfo = localStorage.getItem('proStatusUseInfo') || ''
}, },
mounted() { mounted() {},
},
watch: { watch: {
open: { open: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
@ -679,10 +893,10 @@ export default {
this.$tab.closePage() this.$tab.closePage()
} }
}) })
if (this.hasDuplicates(this.formData.consArr,'label')){ if (this.hasDuplicates(this.formData.consArr, 'label')) {
this.$message({ this.$message({
message: '承包商不能重复', message: '承包商不能重复',
type: 'error' type: 'error',
}) })
return false return false
} }
@ -821,7 +1035,5 @@ export default {
}, },
}, },
} }
</script> </script>
<style> <style></style>
</style>