|
@@ -0,0 +1,860 @@
|
|
|
+<template xmlns:v-slot="http://www.w3.org/1999/XSL/Transform">
|
|
|
+ <div>
|
|
|
+ <el-dialog
|
|
|
+ :title="title"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ v-dialogDrag
|
|
|
+ width="1300px"
|
|
|
+ @close="close"
|
|
|
+ @keyup.enter.native="doSubmit"
|
|
|
+ :visible.sync="visible">
|
|
|
+ <el-form size="middle" :model="inputForm" ref="inputForm" v-loading="loading" :class="method==='view'?'readonly':''" :disabled="method==='view'"
|
|
|
+ label-width="200px" @submit.native.prevent>
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i> 选择合同</el-divider>
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="选择合同" prop="contractDTO.name"
|
|
|
+ :rules="[
|
|
|
+ {required: true, message:'合同不能为空', trigger:'blur'},
|
|
|
+ {required: true, message:'合同不能为空', trigger:'change'}
|
|
|
+ ]">
|
|
|
+ <el-input size="medium" :readonly="true" @focus="openContractForm()" v-model="inputForm.contractDTO.name" placeholder="请选择合同">
|
|
|
+ <el-button slot="append" icon="el-icon-search" @click="openContractForm()"></el-button>
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="合同名称" prop="contractDTO.name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input :disabled="true" v-model="inputForm.contractDTO.name" placeholder="请填写合同名称"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="合同金额(元)" prop="contractDTO.name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input :disabled="true" v-model="inputForm.contractDTO.name" placeholder="请填写合同金额"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="委托方" prop="contractDTO.name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input :disabled="true" v-model="inputForm.contractDTO.name" placeholder="请填写委托方"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="合同类型" prop="contractDTO.name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input :disabled="true" v-model="inputForm.contractDTO.name" placeholder="请填写合同类型"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i> 项目立项</el-divider>
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目名称" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name33" placeholder="请输入项目名称" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目编号" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name34" placeholder="请输入项目编号" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目类别" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-radio v-model="inputForm.name35" label="1" size="small" style="margin-right: 0px;width: 48%" border>资评报字</el-radio>
|
|
|
+ <el-radio v-model="inputForm.name35" label="2" size="small" style="margin-right: 0px;width: 48%" border>资评咨字</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目类型" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-select v-model="inputForm.name37" placeholder="请选择项目类型" clearable style="width: 100%;">
|
|
|
+ <el-option
|
|
|
+ v-for="item in $dictUtils.getDictList('program_registered_type')"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="执业机构" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name36" placeholder="请输入执业机构" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="产权持有人" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.propertyHolderName" @focus="openWorkClientForm('2')" placeholder="请输入产权持有人" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目所在地" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name2" placeholder="请输入项目所在地"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="是否首次承做" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-radio v-model="inputForm.name3" v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" size="small" style="margin-right: 0px;width: 48%" border>
|
|
|
+ {{item.label}}</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12" v-if="inputForm.name3 === '0'">
|
|
|
+ <el-form-item label="已连续承做几年" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input-number
|
|
|
+ v-model="inputForm.name4"
|
|
|
+ controls-position="right"
|
|
|
+ style="width:100%"
|
|
|
+ :precision="1"
|
|
|
+ :step="0.1"
|
|
|
+ :min="0"
|
|
|
+ placeholder="请输入已连续承做几年"
|
|
|
+ :controls="false"
|
|
|
+ clearable>
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="评估费用核算年度" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="inputForm.name5"
|
|
|
+ type="year"
|
|
|
+ value-format="yyyy"
|
|
|
+ placeholder="选择评估费用核算年度"
|
|
|
+ style="width:100%"
|
|
|
+ placement="bottom-start"
|
|
|
+ clearable>
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目经理" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+<!-- <el-input v-model="inputForm.name6" placeholder="请输入项目经理"clearable></el-input>-->
|
|
|
+ <SelectUserTree
|
|
|
+ ref="companyTree"
|
|
|
+ size="medium"
|
|
|
+ :props="{
|
|
|
+ value: 'id', // ID字段名
|
|
|
+ label: 'name', // 显示名称
|
|
|
+ children: 'children' // 子级字段名
|
|
|
+ }"
|
|
|
+ :url="`/sys/user/treeUserDataAllOffice?type=2`"
|
|
|
+ :value="inputForm.name6"
|
|
|
+ :clearable="true"
|
|
|
+ :accordion="true"
|
|
|
+ @getValue="(value) => {inputForm.name6=value}"/>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="报告类型" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-select v-model="inputForm.name7" placeholder="请选择报告类型" clearable style="width: 100%;">
|
|
|
+ <el-option
|
|
|
+ v-for="item in $dictUtils.getDictList('program_registered_report_type')"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="所属行业" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name8" placeholder="请输入所属行业"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="企业类型" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name9" placeholder="请输入企业类型"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="风险等级" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-radio v-model="inputForm.name10" v-for="item in $dictUtils.getDictList('program_registered_risk_level')" :label="item.value" size="small" style="margin-right: 0px;width: 31%" border>
|
|
|
+ {{item.label}}</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目来源" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-select v-model="inputForm.name11" placeholder="请选择项目来源" clearable style="width: 100%;">
|
|
|
+ <el-option
|
|
|
+ v-for="item in $dictUtils.getDictList('program_registered_source')"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="预估收入(元)" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input-number
|
|
|
+ v-model="inputForm.name12"
|
|
|
+ controls-position="right"
|
|
|
+ style="width:100%;"
|
|
|
+ :precision="2"
|
|
|
+ placeholder="请输入预估收入(元)"
|
|
|
+ :controls="false"
|
|
|
+ :step="0.01"
|
|
|
+ :min="0"
|
|
|
+ clearable>
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="计划完成时间" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="inputForm.name13"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择计划完成时间"
|
|
|
+ style="width:100%"
|
|
|
+ placement="bottom-start"
|
|
|
+ clearable>
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="计划使用人数" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input-number
|
|
|
+ v-model="inputForm.name14"
|
|
|
+ controls-position="right"
|
|
|
+ style="width:100%"
|
|
|
+ :precision="0"
|
|
|
+ :min="0"
|
|
|
+ placeholder="请输入计划使用人数"
|
|
|
+ :controls="false"
|
|
|
+ clearable>
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="约定书(份)" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input-number
|
|
|
+ v-model="inputForm.name15"
|
|
|
+ controls-position="right"
|
|
|
+ style="width:100%"
|
|
|
+ :precision="0"
|
|
|
+ :min="0"
|
|
|
+ placeholder="请输入约定书(份)"
|
|
|
+ :controls="false"
|
|
|
+ clearable>
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="预算工时" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input-number
|
|
|
+ v-model="inputForm.name16"
|
|
|
+ controls-position="right"
|
|
|
+ style="width:100%"
|
|
|
+ :precision="1"
|
|
|
+ :step="0.1"
|
|
|
+ :min="0"
|
|
|
+ placeholder="请输入预算工时"
|
|
|
+ :controls="false"
|
|
|
+ clearable>
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="备注" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input type="textarea" v-model="inputForm.name17" maxlength="500" placeholder="请输入备注" show-word-limit></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i> 委派单</el-divider>
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="被评估企业" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.assessmentEnterpriseName" @focus="openWorkClientForm('3')" placeholder="请输入被评估企业"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="联系人及电话" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name19" placeholder="请输入联系人及电话"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="委托人与被评估单位关系" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name20" placeholder="请输入委托人与被评估单位关系"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="评估方法" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name21" placeholder="请输入评估方法"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="评估目的" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name22" placeholder="请输入评估目的"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="评估基准日" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="inputForm.name23"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择评估基准日"
|
|
|
+ style="width:100%"
|
|
|
+ placement="bottom-start"
|
|
|
+ clearable>
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="评估服务收费总额" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input-number
|
|
|
+ v-model="inputForm.name24"
|
|
|
+ controls-position="right"
|
|
|
+ style="width:100%;"
|
|
|
+ :precision="2"
|
|
|
+ placeholder="请输入评估服务收费总额"
|
|
|
+ :controls="false"
|
|
|
+ :step="0.01"
|
|
|
+ :min="0"
|
|
|
+ clearable>
|
|
|
+ </el-input-number>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目开发人" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name25" placeholder="请输入项目开发人"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目类型" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-select v-model="inputForm.name26" placeholder="请选择项目类型" clearable style="width: 100%">
|
|
|
+ <el-option-group
|
|
|
+ v-for="(type,index) in typeDictList"
|
|
|
+ :key="type.id"
|
|
|
+ :label="type.type">
|
|
|
+ <el-option
|
|
|
+ v-for="item in typeDictList[index].childrenList"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.type"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-option-group>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="评估对象" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name27" placeholder="请输入评估对象"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="预计现场工作起止日期" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-date-picker
|
|
|
+ size="medium"
|
|
|
+ v-model="inputForm.name28"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ style="width: 100% "
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ placement="bottom-start"
|
|
|
+ clearabl>
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="预计出报告时间" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="inputForm.name29"
|
|
|
+ type="date"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择预计出报告时间"
|
|
|
+ style="width:100%"
|
|
|
+ placement="bottom-start"
|
|
|
+ clearable>
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="本所是否具备承接胜任能力" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-radio v-model="inputForm.name30" v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" size="small" style="margin-right: 0px;width: 48%" border>
|
|
|
+ {{item.label}}</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="是否影响本所承做人员独立性" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-radio v-model="inputForm.name31" v-for="item in $dictUtils.getDictList('yes_no')" :label="item.value" size="small" style="margin-right: 0px;width: 48%" border>
|
|
|
+ {{item.label}}</el-radio>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="项目承做方式" prop="name"
|
|
|
+ :rules="[
|
|
|
+ ]">
|
|
|
+ <el-input v-model="inputForm.name32" placeholder="请输入项目承做方式"clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ </el-row>
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i>
|
|
|
+ 产权持有人联系人
|
|
|
+ <vxe-button style="margin-left: 20px"status="primary" :disabled="method==='view'" size="mini" @click="openContactForm('2')">
|
|
|
+ 新增
|
|
|
+ </vxe-button>
|
|
|
+ </el-divider>
|
|
|
+ <el-row :gutter="15" >
|
|
|
+ <vxe-table
|
|
|
+ border
|
|
|
+ show-overflow
|
|
|
+ ref="equityTable"
|
|
|
+ class="vxe-table-element"
|
|
|
+ :data="inputForm.equityList"
|
|
|
+ style="margin-left: 5em"
|
|
|
+ @cell-click=""
|
|
|
+ @edit-closed=""
|
|
|
+ highlight-current-row
|
|
|
+ :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
|
|
|
+ >
|
|
|
+ <vxe-table-column field="name" title="联系人" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input :disabled="true" v-model="scope.row.name" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="linkPhone" title="联系方式1" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input :disabled="true" v-model="scope.row.linkPhone" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="linkMobile" title="联系方式2" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input :disabled="true" v-model="scope.row.linkMobile" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="rank" title="职位" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input v-model="scope.row.rank" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="remarks" title="备注" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input v-model="scope.row.remarks" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column title="操作" width="100">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'equity')">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ </vxe-table>
|
|
|
+ </el-row>
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i>
|
|
|
+ 项目直接对接人
|
|
|
+ <vxe-button style="margin-left: 20px"status="primary" :disabled="method==='view'" size="mini" @click="openContactForm('3')">
|
|
|
+ 新增
|
|
|
+ </vxe-button>
|
|
|
+ </el-divider>
|
|
|
+ <el-row :gutter="15" >
|
|
|
+ <vxe-table
|
|
|
+ border
|
|
|
+ show-overflow
|
|
|
+ ref="contactTable"
|
|
|
+ class="vxe-table-element"
|
|
|
+ :data="inputForm.contactList"
|
|
|
+ style="margin-left: 5em"
|
|
|
+ @cell-click=""
|
|
|
+ @edit-closed=""
|
|
|
+ highlight-current-row
|
|
|
+ :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
|
|
|
+ >
|
|
|
+ <vxe-table-column field="name" title="联系人" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input :disabled="true" v-model="scope.row.name" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="linkPhone" title="联系方式1" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input :disabled="true" v-model="scope.row.linkPhone" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="linkMobile" title="联系方式2" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input :disabled="true" v-model="scope.row.linkMobile" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="rank" title="职位" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input v-model="scope.row.rank" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="remarks" title="备注" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input v-model="scope.row.remarks" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column title="操作" width="100">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'contact')">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ </vxe-table>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left"><i class="el-icon-document"></i>
|
|
|
+ 项目组成员
|
|
|
+ <vxe-button style="margin-left: 20px"status="primary" :disabled="method==='view'" size="mini" @click="insertEvent('member')">
|
|
|
+ 新增
|
|
|
+ </vxe-button>
|
|
|
+ </el-divider>
|
|
|
+ <el-row :gutter="15">
|
|
|
+ <vxe-table
|
|
|
+ border
|
|
|
+ show-overflow
|
|
|
+ ref="memberTable"
|
|
|
+ class="vxe-table-element"
|
|
|
+ :data="inputForm.memberList"
|
|
|
+ style="margin-left: 5em"
|
|
|
+ @cell-click=""
|
|
|
+ @edit-closed=""
|
|
|
+ highlight-current-row
|
|
|
+ :edit-config="{trigger: 'click', mode: 'cell', showStatus: true, autoClear: true}"
|
|
|
+ >
|
|
|
+ <vxe-table-column field="name" title="姓名" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input maxlength="10" v-model="scope.row.name" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="hour" title="预计工时(时)" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input maxlength="10" v-model="scope.row.hour" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="type" title="人员类型" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input maxlength="10" v-model="scope.row.type" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column field="position" title="项目职务" :edit-render="{}">
|
|
|
+ <template v-slot:edit="scope">
|
|
|
+ <el-input maxlength="10" v-model="scope.row.position" ></el-input>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ <vxe-table-column title="操作" width="100">
|
|
|
+ <template v-slot="scope">
|
|
|
+ <el-button size="mini" type="danger" @click="removeEvent(scope.row,scope.$rowIndex,'member')">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ </vxe-table>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <!-- 附件-->
|
|
|
+ <UpLoadComponent ref="uploadComponent"></UpLoadComponent>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="small" @click="close()" icon="el-icon-circle-close">关闭</el-button>
|
|
|
+ <el-button size="small" type="primary" v-if="method != 'view'" @click="doSubmit()" icon="el-icon-circle-check" v-noMoreClick>确定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <ContractForm ref="contractForm" @getContract="getContract"></ContractForm>
|
|
|
+ <WorkClientForm ref="workClientForm" @getWorkClient="getWorkClient"></WorkClientForm>
|
|
|
+ <ContactForm ref="contactForm" @getContact="getContact"></ContactForm>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import ProgramTypeDictService from '@/api/program/ProgramTypeDictService'
|
|
|
+ import ContractForm from './ContractForm'
|
|
|
+ import WorkClientForm from './WorkClientForm'
|
|
|
+ import ContactForm from './ContactForm'
|
|
|
+ import UpLoadComponent from '@/views/common/UpLoadComponent'
|
|
|
+ import SelectUserTree from '@/views/modules/utils/treeUserSelect'
|
|
|
+ export default {
|
|
|
+ data () {
|
|
|
+ return {
|
|
|
+ title: '',
|
|
|
+ method: '',
|
|
|
+ visible: false,
|
|
|
+ loading: false,
|
|
|
+ typeDictList: [],
|
|
|
+ inputForm: {
|
|
|
+ contractDTO: {
|
|
|
+ name: ''
|
|
|
+ },
|
|
|
+ programTypeDTO: {
|
|
|
+ id: '',
|
|
|
+ name: ''
|
|
|
+ },
|
|
|
+ name: '',
|
|
|
+ memberList: [],
|
|
|
+ contactList: [],
|
|
|
+ equityList: [],
|
|
|
+ fileList: []
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ programTypeDictService: null,
|
|
|
+ created () {
|
|
|
+ this.programTypeDictService = new ProgramTypeDictService()
|
|
|
+ },
|
|
|
+ components: {
|
|
|
+ ContractForm,
|
|
|
+ SelectUserTree,
|
|
|
+ UpLoadComponent,
|
|
|
+ WorkClientForm,
|
|
|
+ ContactForm
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ init (method, id) {
|
|
|
+ this.method = method
|
|
|
+ this.inputForm = {
|
|
|
+ propertyHolder: '',
|
|
|
+ propertyHolderName: '',
|
|
|
+ assessmentEnterprise: '',
|
|
|
+ assessmentEnterpriseName: '',
|
|
|
+ contractDTO: {
|
|
|
+ name: ''
|
|
|
+ },
|
|
|
+ programTypeDTO: {
|
|
|
+ id: '',
|
|
|
+ name: ''
|
|
|
+ },
|
|
|
+ name: '',
|
|
|
+ name36: '江苏兴光资产评估有限公司',
|
|
|
+ memberList: [],
|
|
|
+ contactList: [],
|
|
|
+ equityList: [],
|
|
|
+ fileList: []
|
|
|
+ }
|
|
|
+ this.getTypeList()
|
|
|
+ if (method === 'add') {
|
|
|
+ this.title = `项目登记`
|
|
|
+ this.inputForm.parentId = '0'
|
|
|
+ } else if (method === 'edit') {
|
|
|
+ this.inputForm.id = id
|
|
|
+ this.title = '修改项目类型'
|
|
|
+ } else if (method === 'view') {
|
|
|
+ this.inputForm.id = id
|
|
|
+ this.title = '查看项目类型'
|
|
|
+ } else if (method === 'addChild') {
|
|
|
+ this.title = '新建子项目类型'
|
|
|
+ this.inputForm.parentId = id
|
|
|
+ }
|
|
|
+ this.visible = true
|
|
|
+ this.loading = false
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.inputForm.resetFields()
|
|
|
+ if (method === 'edit' || method === 'view') { // 修改或者查看
|
|
|
+ this.loading = true
|
|
|
+ this.programTypeDictService.queryById(this.inputForm.id).then(({data}) => {
|
|
|
+ this.inputForm = this.recover(this.inputForm, data)
|
|
|
+ this.inputForm = JSON.parse(JSON.stringify(this.inputForm))
|
|
|
+ this.$refs.uploadComponent.newUpload(method, this.inputForm.fileList, 'program')
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (method !== 'edit' && method !== 'view') {
|
|
|
+ this.$refs.uploadComponent.newUpload(method, [], 'program')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 表单提交
|
|
|
+ doSubmit () {
|
|
|
+ this.$refs['inputForm'].validate((valid) => {
|
|
|
+ if (valid) {
|
|
|
+ this.loading = true
|
|
|
+ if (this.$refs.uploadComponent.checkProgress()) {
|
|
|
+ this.loading = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.inputForm.fileList = this.$refs.uploadComponent.getDataList()
|
|
|
+ this.programTypeDictService.save(this.inputForm).then(({data}) => {
|
|
|
+ this.close()
|
|
|
+ this.$message.success(data)
|
|
|
+ this.$emit('refreshDataList')
|
|
|
+ this.loading = false
|
|
|
+ }).catch(() => {
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ openContractForm () {
|
|
|
+ if (!this.commonJS.isEmpty(this.inputForm.contractDTO.id)) {
|
|
|
+ this.$refs.contractForm.init(this.inputForm.contractDTO.id)
|
|
|
+ } else {
|
|
|
+ this.$refs.contractForm.init()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getContract (row) {
|
|
|
+ this.inputForm.contractDTO = row
|
|
|
+ },
|
|
|
+ openWorkClientForm (deputy) {
|
|
|
+ if (!this.commonJS.isEmpty(this.inputForm.propertyHolder)) {
|
|
|
+ this.$refs.workClientForm.init(this.inputForm.propertyHolder, deputy)
|
|
|
+ } else {
|
|
|
+ this.$refs.workClientForm.init(null, deputy)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getWorkClient (row, deputy) {
|
|
|
+ if (deputy === '2') {
|
|
|
+ this.inputForm.propertyHolderName = row.name
|
|
|
+ this.inputForm.propertyHolder = row.id
|
|
|
+ }
|
|
|
+ if (deputy === '3') {
|
|
|
+ this.inputForm.assessmentEnterpriseName = row.name
|
|
|
+ this.inputForm.assessmentEnterprise = row.id
|
|
|
+ }
|
|
|
+ },
|
|
|
+ openContactForm (deputy) {
|
|
|
+ if (deputy === '2') {
|
|
|
+ if (this.commonJS.isEmpty(this.inputForm.propertyHolder)) {
|
|
|
+ this.$message.error('请先填写产权持有人')
|
|
|
+ } else {
|
|
|
+ this.$refs.contactForm.init(this.inputForm.propertyHolder, deputy)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (deputy === '3') {
|
|
|
+ if (this.commonJS.isEmpty(this.inputForm.assessmentEnterprise)) {
|
|
|
+ this.$message.error('请先填写被评估企业')
|
|
|
+ } else {
|
|
|
+ this.$refs.contactForm.init(this.inputForm.assessmentEnterprise, deputy)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getContact (rows, deputy) {
|
|
|
+ if (deputy === '2') {
|
|
|
+ console.log(rows)
|
|
|
+ this.inputForm.equityList = rows
|
|
|
+ }
|
|
|
+ if (deputy === '3') {
|
|
|
+ this.inputForm.contactList = rows
|
|
|
+ }
|
|
|
+ },
|
|
|
+ close () {
|
|
|
+ this.$refs.uploadComponent.clearUpload()
|
|
|
+ this.$refs.inputForm.resetFields()
|
|
|
+ this.visible = false
|
|
|
+ },
|
|
|
+ getTypeList () {
|
|
|
+ this.programTypeDictService.getList().then(({data}) => {
|
|
|
+ this.typeDictList = data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ removeEvent (row, rowIndex, type) {
|
|
|
+ if (type === 'member') {
|
|
|
+ this.$refs.memberTable.remove(row)
|
|
|
+ this.inputForm.memberList.splice(rowIndex, 1)
|
|
|
+ }
|
|
|
+ if (type === 'contact') {
|
|
|
+ this.$refs.contactTable.remove(row)
|
|
|
+ this.inputForm.contactList.splice(rowIndex, 1)
|
|
|
+ }
|
|
|
+ if (type === 'equity') {
|
|
|
+ this.$refs.equityTable.remove(row)
|
|
|
+ this.inputForm.equityList.splice(rowIndex, 1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 新增
|
|
|
+ // eslint-disable-next-line no-dupe-keys
|
|
|
+ async insertEvent (type) {
|
|
|
+ if (type === 'member') {
|
|
|
+ await this.$refs.memberTable.insert().then((data) => {
|
|
|
+ this.inputForm.memberList.push(data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (type === 'contact') {
|
|
|
+ await this.$refs.contactTable.insert().then((data) => {
|
|
|
+ this.inputForm.contactList.push(data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (type === 'equity') {
|
|
|
+ await this.$refs.equityTable.insert().then((data) => {
|
|
|
+ this.inputForm.equityList.push(data)
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+<style scoped>
|
|
|
+ /deep/ .el-input-number .el-input__inner {
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+</style>
|