|
@@ -278,7 +278,7 @@
|
|
</el-form>
|
|
</el-form>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
<el-tab-pane name="scene" class="pane-class" :lazy=true>
|
|
<el-tab-pane name="scene" class="pane-class" :lazy=true>
|
|
- <span slot="label"><i class="el-icon-pie-chart"></i> 外业实勘</span>
|
|
|
|
|
|
+ <span slot="label"><i class="el-icon-search"></i> 外业实勘</span>
|
|
<el-form ref="sceneForm" :model="sceneForm" class="form-container" :rules="rules">
|
|
<el-form ref="sceneForm" :model="sceneForm" class="form-container" :rules="rules">
|
|
<div class="createMajor-main-container">
|
|
<div class="createMajor-main-container">
|
|
<div class="postInfo-container">
|
|
<div class="postInfo-container">
|
|
@@ -291,7 +291,7 @@
|
|
</el-divider>
|
|
</el-divider>
|
|
</div>
|
|
</div>
|
|
<div >
|
|
<div >
|
|
- <el-row class="row-style">
|
|
|
|
|
|
+ <el-row class="row-style" v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE'">
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-button type="danger" round @click="saveScene()">保存</el-button>
|
|
<el-button type="danger" round @click="saveScene()">保存</el-button>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -322,39 +322,48 @@
|
|
<el-form-item prop="inRingDewlling" label-width="120px" class="postInfo-container-item"
|
|
<el-form-item prop="inRingDewlling" label-width="120px" class="postInfo-container-item"
|
|
:rules="{ required: true, message: '绕城内住宅不能为空', trigger: 'blur' }"
|
|
:rules="{ required: true, message: '绕城内住宅不能为空', trigger: 'blur' }"
|
|
label="绕城内住宅:">
|
|
label="绕城内住宅:">
|
|
- <el-input v-model="sceneForm.inRingDewlling"
|
|
|
|
- class="filter-item" />
|
|
|
|
|
|
+ <el-input-number style="width: 100%;" :min="0" v-model="sceneForm.inRingDewlling" :readonly="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ :disabled="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ class="filter-item">
|
|
|
|
+ </el-input-number>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-form-item prop="outRingDewlling" label-width="120px" class="postInfo-container-item"
|
|
<el-form-item prop="outRingDewlling" label-width="120px" class="postInfo-container-item"
|
|
:rules="{ required: true, message: '绕城外住宅不能为空', trigger: 'blur' }"
|
|
:rules="{ required: true, message: '绕城外住宅不能为空', trigger: 'blur' }"
|
|
label="绕城外住宅:">
|
|
label="绕城外住宅:">
|
|
- <el-input v-model="sceneForm.outRingDewlling"
|
|
|
|
- class="filter-item" />
|
|
|
|
|
|
+ <el-input-number style="width: 100%;" :min="0" v-model="sceneForm.outRingDewlling" :readonly="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ :disabled="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ class="filter-item">
|
|
|
|
+ </el-input-number>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-form-item prop="inRingBuilding" label-width="120px" class="postInfo-container-item"
|
|
<el-form-item prop="inRingBuilding" label-width="120px" class="postInfo-container-item"
|
|
:rules="{ required: true, message: '绕城内商业不能为空', trigger: 'blur' }"
|
|
:rules="{ required: true, message: '绕城内商业不能为空', trigger: 'blur' }"
|
|
label="绕城内商业:">
|
|
label="绕城内商业:">
|
|
- <el-input v-model="sceneForm.inRingBuilding"
|
|
|
|
- class="filter-item" />
|
|
|
|
|
|
+ <el-input-number style="width: 100%;" :min="0" v-model="sceneForm.inRingBuilding" :readonly="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ :disabled="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ class="filter-item">
|
|
|
|
+ </el-input-number>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-form-item prop="outRingBuilding" label-width="120px" class="postInfo-container-item"
|
|
<el-form-item prop="outRingBuilding" label-width="120px" class="postInfo-container-item"
|
|
:rules="{ required: true, message: '绕城外商业不能为空', trigger: 'blur' }"
|
|
:rules="{ required: true, message: '绕城外商业不能为空', trigger: 'blur' }"
|
|
label="绕城外商业:">
|
|
label="绕城外商业:">
|
|
- <el-input v-model="sceneForm.outRingBuilding"
|
|
|
|
- class="filter-item" />
|
|
|
|
|
|
+ <el-input-number style="width: 100%;" :min="0" v-model="sceneForm.outRingBuilding" :readonly="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ :disabled="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ class="filter-item">
|
|
|
|
+ </el-input-number>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
<el-row class="row-style">
|
|
<el-row class="row-style">
|
|
<el-col :xs="24" :sm="12" :lg="24" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="24" :span="6">
|
|
<el-form-item label="实勘备注:" prop="remark" label-width="120px" class="postInfo-container-item">
|
|
<el-form-item label="实勘备注:" prop="remark" label-width="120px" class="postInfo-container-item">
|
|
- <el-input v-model="sceneForm.remark" :autosize="{ minRows: 3, maxRows: 3 }" class="filter-item"
|
|
|
|
|
|
+ <el-input v-model="sceneForm.remark" :autosize="{ minRows: 3, maxRows: 3 }" class="filter-item" :readonly="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
|
|
+ :disabled="currentNode.nodeCode != 'SPOT_RECONNAISSANCE'"
|
|
type="textarea" />
|
|
type="textarea" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
@@ -383,8 +392,12 @@
|
|
<el-col :xs="24" :sm="12" :lg="2" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="2" :span="6">
|
|
<el-form-item label="线上计算:" prop="acreage" label-width="140px" class="postInfo-container-item">
|
|
<el-form-item label="线上计算:" prop="acreage" label-width="140px" class="postInfo-container-item">
|
|
<el-switch v-model="target.isOnline" active-color="#13ce66" inactive-color="#ff4949"
|
|
<el-switch v-model="target.isOnline" active-color="#13ce66" inactive-color="#ff4949"
|
|
- @change="calculateSwith()" :readonly="currentNode.nodeCode != 'DETERMINE_PRICE'"
|
|
|
|
- :disabled="currentNode.nodeCode != 'DETERMINE_PRICE'"></el-switch>
|
|
|
|
|
|
+ @change="calculateSwith()"
|
|
|
|
+ :readonly="!(currentNode.nodeCode === 'DETERMINE_PRICE' || currentNode.nodeCode === 'GENERATE_STATEMENT'|| currentNode.nodeCode === 'WRITE_REPORT' || currentNode.nodeCode === 'WRITE_LETTER')"
|
|
|
|
+ :disabled="!(currentNode.nodeCode === 'DETERMINE_PRICE' || currentNode.nodeCode === 'GENERATE_STATEMENT'|| currentNode.nodeCode === 'WRITE_REPORT' || currentNode.nodeCode === 'WRITE_LETTER')"
|
|
|
|
+
|
|
|
|
+ >
|
|
|
|
+ </el-switch>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="12" :sm="12" :lg="20" :span="6">
|
|
<el-col :xs="12" :sm="12" :lg="20" :span="6">
|
|
@@ -416,7 +429,7 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
- <el-button v-show="!target.isOnline" type="text" @click="savePrice()"
|
|
|
|
|
|
+ <el-button v-show="!target.isOnline" type="primary" round @click="savePrice()"
|
|
v-if="currentNode.nodeCode === 'DETERMINE_PRICE'">保存价格</el-button>
|
|
v-if="currentNode.nodeCode === 'DETERMINE_PRICE'">保存价格</el-button>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
@@ -434,371 +447,314 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
- <el-card class="box-card">
|
|
|
|
- <el-row class="row-style">
|
|
|
|
- <el-col :xs="24" :sm="12" :lg="5" :span="6">
|
|
|
|
- <el-form-item label="修正系数:" prop="fixValue" label-width="120px"
|
|
|
|
- :rules="{ required: true, message: '修正系数不能为空', trigger: 'blur' }" class="postInfo-container-item">
|
|
|
|
- <el-input-number v-model="compareList.fixValue" :step="0.1" :min="1" size="medium"
|
|
|
|
|
|
+ <el-row class="row-style">
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="4" :span="6">
|
|
|
|
+ <el-form-item label="修正系数:" prop="fixValue" label-width="120px"
|
|
|
|
+ :rules="{ required: true, message: '修正系数不能为空', trigger: 'blur' }" class="postInfo-container-item">
|
|
|
|
+ <el-input-number v-model="compareList.fixValue" :step="0.1" :min="1" size="medium" style="width: 100%;"
|
|
|
|
+ controls-position="right"></el-input-number>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="4" :span="6">
|
|
|
|
+ <el-form-item label="是否划拨:" prop="rightsType" label-width="120px"
|
|
|
|
+ :rules="{ required: true, message: '是否划拨不能为空', trigger: 'blur' }" class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="compareList.rightsType" placeholder="请选择" @change="selectRightsType()">
|
|
|
|
+ <el-option label="划拨" value="ALLOT">划拨</el-option>
|
|
|
|
+ <el-option label="出让" value="SELL">出让</el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="4" :span="6" v-show="compareList.rightsType === 'ALLOT'">
|
|
|
|
+ <el-form-item label="环线位置:" prop="rollingLevel" label-width="120px"
|
|
|
|
+ :rules="{ required: compareList.rightsType === 'ALLOT', message: '是否划拨不能为空', trigger: 'blur' }"
|
|
|
|
+ class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="compareList.rollingLevel" placeholder="请选择" @change="selectRoll()">
|
|
|
|
+ <el-option label="二环内" :value=1>二环内</el-option>
|
|
|
|
+ <el-option label="二至三环" :value=2>二至三环</el-option>
|
|
|
|
+ <el-option label="三环外" :value=3>三环外</el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="4" :span="6">
|
|
|
|
+ <el-form-item label="计算方式:" prop="calculateType" label-width="120px"
|
|
|
|
+ :rules="{ required: true, message: '计算方式不能为空', trigger: 'blur' }" class="postInfo-container-item">
|
|
|
|
+ <el-select v-model="compareList.calculateType" clearable placeholder="请选择"
|
|
|
|
+ @change="selectCalculateType()">
|
|
|
|
+ <el-option label="简单算术平均" value="SIMPLE">简单算术平均</el-option>
|
|
|
|
+ <el-option label="加权算术平均" value="WEIGHT">加权算术平均</el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="5" :span="6" style="margin-left: 20px;">
|
|
|
|
+ <el-button type="info" round @click="calulate()"
|
|
|
|
+ v-if="currentNode.nodeCode === 'DETERMINE_PRICE' || currentNode.nodeCode === 'GENERATE_STATEMENT'|| currentNode.nodeCode === 'WRITE_REPORT' || currentNode.nodeCode === 'WRITE_LETTER'">计算价格</el-button>
|
|
|
|
+ <el-button type="primary" round @click="saveCalulateResult()"
|
|
|
|
+ v-if="currentNode.nodeCode === 'DETERMINE_PRICE' || currentNode.nodeCode === 'GENERATE_STATEMENT'|| currentNode.nodeCode === 'WRITE_REPORT' || currentNode.nodeCode === 'WRITE_LETTER'">保存价格</el-button>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+ <el-table v-loading="calculating" element-loading-text="正在计算..." element-loading-spinner="el-icon-loading"
|
|
|
|
+ element-loading-background="rgba(144, 147, 153, 0.5)" :data="compareList.analysisData" border="border"
|
|
|
|
+ stripe :header-cell-style="{ color: '#333333' }" style="
|
|
|
|
+ border-left: 1px solid #ebeced;
|
|
|
|
+ border-right: 1px solid #ebeced;
|
|
|
|
+ color: #333333; font-size: 16px;">
|
|
|
|
+ <el-table-column prop="index" label="指标" width="180" align="center">
|
|
|
|
+ <template scope="scope">
|
|
|
|
+ <span v-if="requiredIndex.includes(scope.row.index)" style="color:red">* </span>
|
|
|
|
+ <span>{{ scope.row.index }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="compareA" label="实例A" align="center">
|
|
|
|
+ <template scope="scope" style="float:right">
|
|
|
|
+ <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
+ <el-input style="width:60%" v-model="scope.row.compareA.valueA" />
|
|
|
|
+ <el-input-number v-model="scope.row.compareA.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
+ <el-date-picker v-model="scope.row.compareA.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ <el-input-number v-model="scope.row.compareA.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.compareA.valueA" />
|
|
|
|
+ <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.compareA.valueB" />
|
|
|
|
+ <el-input-number v-model="scope.row.compareA.weight" :min="1" :max="150" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
+ <span v-if="scope.row.compareA.valueA"
|
|
|
|
+ style="color:RGB(144,147,153);font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.compareA.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '权重'">
|
|
|
|
+ <el-input-number v-if="compareList.calculateType === 'WEIGHT'" v-model="scope.row.compareA.valueA"
|
|
|
|
+ style="width:100%;" :min="0" :max="1" size="small" :step="0.1"
|
|
controls-position="right"></el-input-number>
|
|
controls-position="right"></el-input-number>
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :lg="5" :span="6">
|
|
|
|
- <el-form-item label="是否划拨:" prop="rightsType" label-width="120px"
|
|
|
|
- :rules="{ required: true, message: '是否划拨不能为空', trigger: 'blur' }" class="postInfo-container-item">
|
|
|
|
- <el-select v-model="compareList.rightsType" placeholder="请选择" @change="selectRightsType()">
|
|
|
|
- <el-option label="划拨" value="ALLOT">划拨</el-option>
|
|
|
|
- <el-option label="出让" value="SELL">出让</el-option>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '总价(元)'">
|
|
|
|
+ <span v-if="scope.row.compareA.valueA"
|
|
|
|
+ style="color:RGB(144,147,153);font-weight:bold;font-size:16px">¥{{ parseFloat(scope.row.compareA.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '单价(元)'">
|
|
|
|
+ <el-input-number v-model="scope.row.compareA.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
+ controls-position="right"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
+ <el-select v-model="scope.row.compareA.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
+ <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
+ <el-option label="中等装修" value="中等装修">中等装修</el-option>
|
|
|
|
+ <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
+ <el-option label="清水" value="清水">清水</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :lg="5" :span="6" v-if="compareList.rightsType === 'ALLOT'">
|
|
|
|
- <el-form-item label="环线位置:" prop="rollingLevel" label-width="120px"
|
|
|
|
- :rules="{ required: compareList.rightsType === 'ALLOT', message: '是否划拨不能为空', trigger: 'blur' }"
|
|
|
|
- class="postInfo-container-item">
|
|
|
|
- <el-select v-model="compareList.rollingLevel" placeholder="请选择" @change="selectRoll()">
|
|
|
|
- <el-option label="二环内" :value=1>二环内</el-option>
|
|
|
|
- <el-option label="二至三环" :value=2>二至三环</el-option>
|
|
|
|
- <el-option label="三环外" :value=3>三环外</el-option>
|
|
|
|
|
|
+ <el-input-number v-model="scope.row.compareA.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <el-input style="width:100%" v-model="scope.row.compareA.valueA" />
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="compareB" label="实例B" align="center">
|
|
|
|
+ <template scope="scope" style="float:right">
|
|
|
|
+ <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
+ <el-input style="width:60%" v-model="scope.row.compareB.valueA" />
|
|
|
|
+ <el-input-number v-model="scope.row.compareB.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
+ <el-date-picker v-model="scope.row.compareB.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ <el-input-number v-model="scope.row.compareB.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.compareB.valueA" />
|
|
|
|
+ <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.compareB.valueB" />
|
|
|
|
+ <el-input-number v-model="scope.row.compareB.weight" :min="1" :max="150" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
+ <span v-if="scope.row.compareB.valueA"
|
|
|
|
+ style="color:RGB(144,147,153);font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.compareB.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '权重'">
|
|
|
|
+ <el-input-number v-if="compareList.calculateType === 'WEIGHT'" v-model="scope.row.compareB.valueA"
|
|
|
|
+ style="width:100%;" :min="0" :max="1" size="small" :step="0.1"
|
|
|
|
+ controls-position="right"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '总价(元)'">
|
|
|
|
+ <span v-if="scope.row.compareB.valueA"
|
|
|
|
+ style="color:RGB(144,147,153);font-weight:bold;font-size:16px">¥{{ parseFloat(scope.row.compareB.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '单价(元)'">
|
|
|
|
+ <el-input-number v-model="scope.row.compareB.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
+ controls-position="right"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
+ <el-select v-model="scope.row.compareB.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
+ <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
+ <el-option label="中等装修" value="中等装修">中等装修</el-option>
|
|
|
|
+ <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
+ <el-option label="清水" value="清水">清水</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :lg="5" :span="6">
|
|
|
|
- <el-form-item label="计算方式:" prop="calculateType" label-width="120px"
|
|
|
|
- :rules="{ required: true, message: '计算方式不能为空', trigger: 'blur' }" class="postInfo-container-item">
|
|
|
|
- <el-select v-model="compareList.calculateType" clearable placeholder="请选择"
|
|
|
|
- @change="selectCalculateType()">
|
|
|
|
- <el-option label="简单算术平均" value="SIMPLE">简单算术平均</el-option>
|
|
|
|
- <el-option label="加权算术平均" value="WEIGHT">加权算术平均</el-option>
|
|
|
|
|
|
+ <el-input-number v-model="scope.row.compareB.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <el-input style="width:100%" v-model="scope.row.compareB.valueA" />
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="compareC" label="实例C" align="center">
|
|
|
|
+ <template scope="scope" style="float:right">
|
|
|
|
+ <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
+ <el-input style="width:60%" v-model="scope.row.compareC.valueA" />
|
|
|
|
+ <el-input-number v-model="scope.row.compareC.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
+ <el-date-picker v-model="scope.row.compareC.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ <el-input-number v-model="scope.row.compareC.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.compareC.valueA" />
|
|
|
|
+ <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.compareC.valueB" />
|
|
|
|
+ <el-input-number v-model="scope.row.compareC.weight" :min="1" :max="150" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
+ <span v-if="scope.row.compareC.valueA"
|
|
|
|
+ style="color:RGB(144,147,153);font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.compareC.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '权重'">
|
|
|
|
+ <el-input-number v-if="compareList.calculateType === 'WEIGHT'" v-model="scope.row.compareC.valueA"
|
|
|
|
+ style="width:100%;" :min="0" :max="1" size="small" :step="0.1"
|
|
|
|
+ controls-position="right"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '总价(元)'">
|
|
|
|
+ <span v-if="scope.row.compareC.valueA"
|
|
|
|
+ style="color:RGB(144,147,153);font-weight:bold;font-size:16px">¥{{ parseFloat(scope.row.compareC.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '单价(元)'">
|
|
|
|
+ <el-input-number v-model="scope.row.compareC.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
+ controls-position="right"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
+ <el-select v-model="scope.row.compareC.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
+ <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
+ <el-option label="中等装修" value="中等装修">中等装修</el-option>
|
|
|
|
+ <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
+ <el-option label="清水" value="清水">清水</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
- </el-form-item>
|
|
|
|
- </el-col>
|
|
|
|
- <el-col :xs="24" :sm="12" :lg="3" :span="6" style="float:right">
|
|
|
|
- <el-button type="text" @click="calulate()"
|
|
|
|
- v-if="currentNode.nodeCode === 'DETERMINE_PRICE'">计算价格</el-button>
|
|
|
|
- <el-button type="text" @click="saveCalulateResult()"
|
|
|
|
- v-if="currentNode.nodeCode === 'DETERMINE_PRICE'">保存价格</el-button>
|
|
|
|
- </el-col>
|
|
|
|
- </el-row>
|
|
|
|
- <el-table v-loading="calculating" element-loading-text="正在计算..." element-loading-spinner="el-icon-loading"
|
|
|
|
- element-loading-background="rgba(144, 147, 153, 0.5)" :data="compareList.analysisData" border="border"
|
|
|
|
- stripe :header-cell-style="{ color: '#606266' }">
|
|
|
|
- <el-table-column prop="index" label="指标" width="180" align="center">
|
|
|
|
- <template scope="scope">
|
|
|
|
- <span v-if="requiredIndex.includes(scope.row.index)" style="color:red">* </span>
|
|
|
|
- <span>{{ scope.row.index }}</span>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="compareA" label="实例A" align="center">
|
|
|
|
- <template scope="scope" style="float:right">
|
|
|
|
- <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
- <el-input style="width:60%" v-model="scope.row.compareA.valueA" />
|
|
|
|
- <el-input-number v-model="scope.row.compareA.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
- <el-date-picker v-model="scope.row.compareA.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
- </el-date-picker>
|
|
|
|
- <el-input-number v-model="scope.row.compareA.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.compareA.valueA" />
|
|
|
|
- <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.compareA.valueB" />
|
|
|
|
- <el-input-number v-model="scope.row.compareA.weight" :min="1" :max="150" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
- <span v-if="scope.row.compareA.valueA"
|
|
|
|
- style="color:RGB(144,147,153);font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.compareA.valueA).toLocaleString() }}</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '权重'">
|
|
|
|
- <el-input-number v-if="compareList.calculateType === 'WEIGHT'" v-model="scope.row.compareA.valueA"
|
|
|
|
- style="width:100%;" :min="0" :max="1" size="small" :step="0.1"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '总价(元)' || scope.row.index === '单价(元)'">
|
|
|
|
- <el-input-number v-model="scope.row.compareA.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '总价(元)' || scope.row.index === '单价(元)'">
|
|
|
|
- <el-input-number v-model="scope.row.compareA.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
- <el-select v-model="scope.row.compareA.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
- <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
- <el-option label="中等装修" value="中等装修">中等装修</el-option>
|
|
|
|
- <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
- <el-option label="清水" value="清水">清水</el-option>
|
|
|
|
- </el-select>
|
|
|
|
- <el-input-number v-model="scope.row.compareA.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input style="width:100%" v-model="scope.row.compareA.valueA" />
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="compareB" label="实例B" align="center">
|
|
|
|
- <template scope="scope" style="float:right">
|
|
|
|
- <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
- <el-input style="width:60%" v-model="scope.row.compareB.valueA" />
|
|
|
|
- <el-input-number v-model="scope.row.compareB.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
- <el-date-picker v-model="scope.row.compareB.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
- </el-date-picker>
|
|
|
|
- <el-input-number v-model="scope.row.compareB.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.compareB.valueA" />
|
|
|
|
- <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.compareB.valueB" />
|
|
|
|
- <el-input-number v-model="scope.row.compareB.weight" :min="1" :max="150" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
- <span v-if="scope.row.compareB.valueA"
|
|
|
|
- style="color:RGB(144,147,153);font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.compareB.valueA).toLocaleString() }}</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '权重'">
|
|
|
|
- <el-input-number v-if="compareList.calculateType === 'WEIGHT'" v-model="scope.row.compareB.valueA"
|
|
|
|
- style="width:100%;" :min="0" :max="1" size="small" :step="0.1"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '总价(元)' || scope.row.index === '单价(元)'">
|
|
|
|
- <el-input-number v-model="scope.row.compareB.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
- <el-select v-model="scope.row.compareB.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
- <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
- <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
- <el-option label="清水" value="清水">清水</el-option>
|
|
|
|
- </el-select>
|
|
|
|
- <el-input-number v-model="scope.row.compareB.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input style="width:100%" v-model="scope.row.compareB.valueA" />
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="compareC" label="实例C" align="center">
|
|
|
|
- <template scope="scope" style="float:right">
|
|
|
|
- <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
- <el-input style="width:60%" v-model="scope.row.compareC.valueA" />
|
|
|
|
- <el-input-number v-model="scope.row.compareC.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
- <el-date-picker v-model="scope.row.compareC.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
- </el-date-picker>
|
|
|
|
- <el-input-number v-model="scope.row.compareC.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.compareC.valueA" />
|
|
|
|
- <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.compareC.valueB" />
|
|
|
|
- <el-input-number v-model="scope.row.compareC.weight" :min="1" :max="150" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
- <span v-if="scope.row.compareC.valueA"
|
|
|
|
- style="color:RGB(144,147,153);font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.compareC.valueA).toLocaleString() }}</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '权重'">
|
|
|
|
- <el-input-number v-if="compareList.calculateType === 'WEIGHT'" v-model="scope.row.compareC.valueA"
|
|
|
|
- style="width:100%;" :min="0" :max="1" size="small" :step="0.1"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '总价(元)' || scope.row.index === '单价(元)'">
|
|
|
|
- <el-input-number v-model="scope.row.compareC.valueA" style="width:100%;" :min="0" size="small"
|
|
|
|
- controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
- <el-select v-model="scope.row.compareC.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
- <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
- <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
- <el-option label="清水" value="清水">清水</el-option>
|
|
|
|
- </el-select>
|
|
|
|
- <el-input-number v-model="scope.row.compareC.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input style="width:100%" v-model="scope.row.compareC.valueA" />
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- <el-table-column prop="target" label="评估对象" align="center">
|
|
|
|
- <template scope="scope" style="float:right">
|
|
|
|
- <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
- <el-input style="width:60%" v-model="scope.row.target.valueA" />
|
|
|
|
- <el-input-number v-model="scope.row.target.weight" :min="1" size="small" controls-position="right"
|
|
|
|
- style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
- <el-date-picker v-model="scope.row.target.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
- </el-date-picker>
|
|
|
|
- <el-input-number v-model="scope.row.target.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.target.valueA" />
|
|
|
|
- <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
- <el-input style="width:27%" v-model="scope.row.target.valueB" />
|
|
|
|
- <el-input-number v-model="scope.row.target.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
- <span v-if="scope.row.target.valueA"
|
|
|
|
- style="color:red;font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.target.valueA).toLocaleString() }}</span>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '权重'">
|
|
|
|
- <el-input-number v-if="false" v-model="scope.row.target.valueA" style="width:100%;" :min="0" :max="1"
|
|
|
|
- size="small" :step="0.1" controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '总价(元)' || scope.row.index === '单价(元)'">
|
|
|
|
- <el-input-number disabled readonly v-model="scope.row.target.valueA" style="width:100%;" :min="0"
|
|
|
|
- size="small" controls-position="right"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
- <el-select v-model="scope.row.target.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
- <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
- <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
- <el-option label="清水" value="清水">清水</el-option>
|
|
|
|
- </el-select>
|
|
|
|
- <el-input-number v-model="scope.row.target.weight" :max="150" :min="1" size="small"
|
|
|
|
- controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
- </div>
|
|
|
|
- <div v-else>
|
|
|
|
- <el-input style="width:100%" v-model="scope.row.target.valueA" />
|
|
|
|
- </div>
|
|
|
|
- </template>
|
|
|
|
- </el-table-column>
|
|
|
|
- </el-table>
|
|
|
|
- </el-card>
|
|
|
|
|
|
+ <el-input-number v-model="scope.row.compareC.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <el-input style="width:100%" v-model="scope.row.compareC.valueA" />
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column prop="target" label="评估对象" align="center">
|
|
|
|
+ <template scope="scope" style="float:right">
|
|
|
|
+ <div v-if="needWeight.includes(scope.row.index)">
|
|
|
|
+ <el-input style="width:60%" v-model="scope.row.target.valueA" />
|
|
|
|
+ <el-input-number v-model="scope.row.target.weight" :min="1" size="small" controls-position="right"
|
|
|
|
+ style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '市场状况'">
|
|
|
|
+ <el-date-picker v-model="scope.row.target.valueA" type="month" style="width:60%" placeholder="选择月">
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ <el-input-number v-model="scope.row.target.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '楼层/总楼层'">
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.target.valueA" />
|
|
|
|
+ <span style="margin-left:2%;margin-right:2%">/</span>
|
|
|
|
+ <el-input style="width:26%" v-model="scope.row.target.valueB" />
|
|
|
|
+ <el-input-number v-model="scope.row.target.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '修正后价格'">
|
|
|
|
+ <span v-if="scope.row.target.valueA"
|
|
|
|
+ style="color:red;font-weight:bold;font-size:20px">¥{{ parseFloat(scope.row.target.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '权重'">
|
|
|
|
+ <el-input-number v-if="false" v-model="scope.row.target.valueA" style="width:100%;" :min="0" :max="1"
|
|
|
|
+ size="small" :step="0.1" controls-position="right"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '总价(元)' || scope.row.index === '单价(元)'">
|
|
|
|
+ <span v-if="scope.row.target.valueA"
|
|
|
|
+ style="color:red;font-weight:bold;font-size:16px">¥{{ parseFloat(scope.row.target.valueA).toLocaleString() }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else-if="scope.row.index === '室内装饰'">
|
|
|
|
+ <el-select v-model="scope.row.target.valueA" placeholder="请选择" style="width:60%">
|
|
|
|
+ <el-option label="精装" value="精装">精装</el-option>
|
|
|
|
+ <el-option label="中等装修" value="中等装修">中等装修</el-option>
|
|
|
|
+ <el-option label="简装" value="简装">简装</el-option>
|
|
|
|
+ <el-option label="清水" value="清水">清水</el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ <el-input-number v-model="scope.row.target.weight" :max="150" :min="1" size="small"
|
|
|
|
+ controls-position="right" style="width:30%;margin-left:10%"></el-input-number>
|
|
|
|
+ </div>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <el-input style="width:100%" v-model="scope.row.target.valueA" />
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
</el-form>
|
|
</el-form>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
<el-tab-pane name="certificateInfo" class="pane-class" :lazy=true>
|
|
<el-tab-pane name="certificateInfo" class="pane-class" :lazy=true>
|
|
- <span slot="label"><i class="el-icon-office-building"></i> 证件信息</span>
|
|
|
|
- <div class="createMajor-main-container">
|
|
|
|
- <div class="postInfo-container">
|
|
|
|
- <div>
|
|
|
|
- <el-divider content-position="left">
|
|
|
|
- <h3 class="title">
|
|
|
|
- <div class="avatar-wrapper icon-title">证件</div>
|
|
|
|
- <div class="icon-info">换证</div>
|
|
|
|
- </h3>
|
|
|
|
- </el-divider>
|
|
|
|
- <div style="margin-left:40px;margin-bottom:50px;margin-top:30px">
|
|
|
|
- <el-checkbox-group v-model="personal.credentials">
|
|
|
|
- <el-checkbox-button label="HOUSE_CERTIFICATE" name="credentials">房产证</el-checkbox-button>
|
|
|
|
- <el-checkbox-button label="LAND_CERTIFICATE" name="credentials">国土证</el-checkbox-button>
|
|
|
|
- <el-checkbox-button label="IMMOVABLE_CERTIFICATE" name="credentials">不动产权证</el-checkbox-button>
|
|
|
|
- </el-checkbox-group>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div>
|
|
|
|
- <el-divider content-position="left">
|
|
|
|
- <div>
|
|
|
|
- <h3 class="title">
|
|
|
|
- <div class="avatar-wrapper icon-title">证件</div>
|
|
|
|
- <div class="icon-info">证件详情</div>
|
|
|
|
- </h3>
|
|
|
|
- </div>
|
|
|
|
- </el-divider>
|
|
|
|
- </div>
|
|
|
|
- <el-card class="box-card">
|
|
|
|
- <el-collapse v-model="certificateName" accordion>
|
|
|
|
- <el-collapse-item name="1" v-show="showCred.showHouseCer">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px" class="el-icon-document">房产证</span>
|
|
|
|
- </template>
|
|
|
|
- <HouseCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
|
|
|
|
|
|
+ <span slot="label"><i class="el-icon-postcard"></i> 证件信息</span>
|
|
|
|
+ <el-tabs v-model="certificateInfo">
|
|
|
|
+ <el-tab-pane name="houseCertificate" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-postcard"></i> 房产证</span>
|
|
|
|
+ <HouseCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
|
|
:houseCertificateObject="target.houseCertificate" :editStatus="certificateCouldEdit">
|
|
:houseCertificateObject="target.houseCertificate" :editStatus="certificateCouldEdit">
|
|
</HouseCertificate>
|
|
</HouseCertificate>
|
|
- </el-collapse-item>
|
|
|
|
- <el-collapse-item name="2" v-show="showCred.showLandCer">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px" class="el-icon-document">国土证</span>
|
|
|
|
- </template>
|
|
|
|
- <LandCertificate @custom-event="getPersonalTarget()" :id="target.id" :landCertificateObject="target.landCertificate"
|
|
|
|
- :editStatus="certificateCouldEdit"></LandCertificate>
|
|
|
|
- </el-collapse-item>
|
|
|
|
- <el-collapse-item name="3" v-show="showCred.showImmovableCer">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px"
|
|
|
|
- class="el-icon-document">不动产权证</span>
|
|
|
|
- </template>
|
|
|
|
- <ImmovableCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
|
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="landCertificate" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-postcard"></i> 国土证</span>
|
|
|
|
+ <LandCertificate @custom-event="getPersonalTarget()" :id="target.id" :landCertificateObject="target.landCertificate"
|
|
|
|
+ :editStatus="certificateCouldEdit"></LandCertificate>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="immovableCertificate" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-postcard"></i> 不动产权证</span>
|
|
|
|
+ <ImmovableCertificate @custom-event="getPersonalTarget()" :id="target.id" :linkAttributes="linkAttributes"
|
|
:immovableCertificateObject="target.immovableCertificate" :editStatus="certificateCouldEdit">
|
|
:immovableCertificateObject="target.immovableCertificate" :editStatus="certificateCouldEdit">
|
|
</ImmovableCertificate>
|
|
</ImmovableCertificate>
|
|
- </el-collapse-item>
|
|
|
|
- <el-collapse-item name="4" v-show="showCred.showleaseCer">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px" class="el-icon-document">租赁合同</span>
|
|
|
|
- </template>
|
|
|
|
- </el-collapse-item>
|
|
|
|
- <el-collapse-item name="5" v-show="showCred.showIdCer">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px" class="el-icon-document">身份证</span>
|
|
|
|
- </template>
|
|
|
|
- </el-collapse-item>
|
|
|
|
- </el-collapse>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
<el-tab-pane name="otherInfo" class="pane-class" :lazy=true>
|
|
<el-tab-pane name="otherInfo" class="pane-class" :lazy=true>
|
|
- <span slot="label"><i class="el-icon-office-building"></i> 附加信息</span>
|
|
|
|
- <div class="createMajor-main-container">
|
|
|
|
- <div class="postInfo-container">
|
|
|
|
- <div>
|
|
|
|
- <el-divider content-position="left">
|
|
|
|
- <h3 class="title">
|
|
|
|
- <div class="avatar-wrapper icon-title">附加</div>
|
|
|
|
- <div class="icon-info">附加信息</div>
|
|
|
|
- </h3>
|
|
|
|
- </el-divider>
|
|
|
|
- </div>
|
|
|
|
- <el-card class="box-card">
|
|
|
|
- <el-collapse v-model="otherInfo" accordion>
|
|
|
|
- <el-collapse-item name="4">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px" class="el-icon-document">实物状况</span>
|
|
|
|
- </template>
|
|
|
|
- <EntityInfo @custom-event="getPersonalTarget()" ref="entityCompent" :id="target.id" :linkAttributes="linkAttributes"
|
|
|
|
- :entityInfoObject="target.entityInfo" :editStatus="certificateCouldEdit"></EntityInfo>
|
|
|
|
- </el-collapse-item>
|
|
|
|
- <el-collapse-item name="5">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px" class="el-icon-document">区位状况</span>
|
|
|
|
- </template>
|
|
|
|
- <BackgroundInfo @custom-event="getPersonalTarget()" :id="target.id" :backgroundInfoObject="target.backgroundInfo"
|
|
|
|
|
|
+ <span slot="label"><i class="el-icon-chat-line-square"></i> 附加信息</span>
|
|
|
|
+ <el-tabs v-model="otherInfo">
|
|
|
|
+ <el-tab-pane name="entityInfo" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-paperclip"></i> 实物状况</span>
|
|
|
|
+ <EntityInfo @custom-event="getPersonalTarget()" ref="entityCompent" :id="target.id" :linkAttributes="linkAttributes"
|
|
|
|
+ :entityInfoObject="target.entityInfo" :editStatus="certificateCouldEdit"></EntityInfo>
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="backgroundInfo" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-paperclip"></i> 区位状况</span>
|
|
|
|
+ <BackgroundInfo @custom-event="getPersonalTarget()" :id="target.id" :backgroundInfoObject="target.backgroundInfo"
|
|
:editStatus="certificateCouldEdit"></BackgroundInfo>
|
|
:editStatus="certificateCouldEdit"></BackgroundInfo>
|
|
- </el-collapse-item>
|
|
|
|
- <el-collapse-item name="6">
|
|
|
|
- <template slot="title">
|
|
|
|
- <span style="font-weight:bold;margin-left:30px;margin-right:10px"
|
|
|
|
- class="el-icon-document">变现能力分析</span>
|
|
|
|
- </template>
|
|
|
|
- <SellingAbilityInfo @custom-event="getPersonalTarget()" :id="target.id" :sellingAbilityInfoObject="target.sellingAbility"
|
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ <el-tab-pane name="sellingAbilityInfo" class="pane-class" :lazy=true>
|
|
|
|
+ <span slot="label"><i class="el-icon-paperclip"></i> 变现能力</span>
|
|
|
|
+ <SellingAbilityInfo @custom-event="getPersonalTarget()" :id="target.id" :sellingAbilityInfoObject="target.sellingAbility"
|
|
:editStatus="certificateCouldEdit"></SellingAbilityInfo>
|
|
:editStatus="certificateCouldEdit"></SellingAbilityInfo>
|
|
- </el-collapse-item>
|
|
|
|
- </el-collapse>
|
|
|
|
- </el-card>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ </el-tab-pane>
|
|
|
|
+ </el-tabs>
|
|
</el-tab-pane>
|
|
</el-tab-pane>
|
|
<el-tab-pane name="producution" class="pane-class" :lazy=true>
|
|
<el-tab-pane name="producution" class="pane-class" :lazy=true>
|
|
<span slot="label"><i class="el-icon-document-checked"></i> 产品信息</span>
|
|
<span slot="label"><i class="el-icon-document-checked"></i> 产品信息</span>
|
|
- <div class="createMajor-main-container">
|
|
|
|
|
|
+ <div class="createMajor-main-container" v-if="currentNode.code==='QUOTATION_FEEDBACK' || currentNode.code ==='STATEMENT_FEEDBACK'">
|
|
<div class="postInfo-container">
|
|
<div class="postInfo-container">
|
|
<div>
|
|
<div>
|
|
<el-divider content-position="left">
|
|
<el-divider content-position="left">
|
|
@@ -810,9 +766,9 @@
|
|
</div>
|
|
</div>
|
|
<el-form ref="feedbackFrom" class="form-container" style="margin-top:30px" :rules="rules">
|
|
<el-form ref="feedbackFrom" class="form-container" style="margin-top:30px" :rules="rules">
|
|
<el-row>
|
|
<el-row>
|
|
- <el-col :xs="24" :sm="12" :lg="8" :span="6">
|
|
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="6" :span="6">
|
|
<el-form-item label="出具产品类型:" prop="production" label-width="160px" class="postInfo-container-item">
|
|
<el-form-item label="出具产品类型:" prop="production" label-width="160px" class="postInfo-container-item">
|
|
- <el-checkbox-group v-model="feedback" style="width:300px">
|
|
|
|
|
|
+ <el-checkbox-group v-model="feedback">
|
|
<el-checkbox-button label="STATEMENT" name="production">价值意见书</el-checkbox-button>
|
|
<el-checkbox-button label="STATEMENT" name="production">价值意见书</el-checkbox-button>
|
|
<el-checkbox-button label="REPORT" name="production">报告</el-checkbox-button>
|
|
<el-checkbox-button label="REPORT" name="production">报告</el-checkbox-button>
|
|
<el-checkbox-button label="LETTER" name="production">复评函</el-checkbox-button>
|
|
<el-checkbox-button label="LETTER" name="production">复评函</el-checkbox-button>
|
|
@@ -823,9 +779,9 @@
|
|
</el-checkbox-group>
|
|
</el-checkbox-group>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</el-col>
|
|
</el-col>
|
|
- <el-col :xs="24" :sm="12" :lg="6" :span="6"
|
|
|
|
|
|
+ <el-col :xs="24" :sm="12" :lg="4" :span="6"
|
|
v-if="currentNode.nodeCode === 'QUOTATION_FEEDBACK' || currentNode.nodeCode === 'STATEMENT_FEEDBACK'">
|
|
v-if="currentNode.nodeCode === 'QUOTATION_FEEDBACK' || currentNode.nodeCode === 'STATEMENT_FEEDBACK'">
|
|
- <el-button type="primary" round plain @click="saveFeedback()">保存反馈</el-button>
|
|
|
|
|
|
+ <el-button type="primary" round @click="saveFeedback()">保存反馈</el-button>
|
|
</el-col>
|
|
</el-col>
|
|
</el-row>
|
|
</el-row>
|
|
</el-form>
|
|
</el-form>
|
|
@@ -1134,10 +1090,10 @@ export default {
|
|
} else {
|
|
} else {
|
|
this.hasLetter = false;
|
|
this.hasLetter = false;
|
|
}
|
|
}
|
|
- if (this.feedback.includes("REPORT") && this.feedback.includes("LETTER")) {
|
|
|
|
- this.$message.error('报告和复评函只能选其一');
|
|
|
|
- this.feedback = oldVal;
|
|
|
|
- }
|
|
|
|
|
|
+ // if (this.feedback.includes("REPORT") && this.feedback.includes("LETTER")) {
|
|
|
|
+ // this.$message.error('报告和复评函只能选其一');
|
|
|
|
+ // this.feedback = oldVal;
|
|
|
|
+ // }
|
|
}
|
|
}
|
|
if (this.feedback.length > 0) {
|
|
if (this.feedback.length > 0) {
|
|
this.showProds = true
|
|
this.showProds = true
|
|
@@ -1146,6 +1102,20 @@ export default {
|
|
}
|
|
}
|
|
},
|
|
},
|
|
deep: true
|
|
deep: true
|
|
|
|
+ },
|
|
|
|
+ 'compareList.analysisData':{
|
|
|
|
+ handler(newVal, oldVal) {
|
|
|
|
+ if (newVal[2].compareA.valueA && newVal[5].compareA.valueA){
|
|
|
|
+ newVal[1].compareA.valueA = newVal[2].compareA.valueA * newVal[5].compareA.valueA;
|
|
|
|
+ }
|
|
|
|
+ if (newVal[2].compareB.valueA && newVal[5].compareB.valueA){
|
|
|
|
+ newVal[1].compareB.valueA = newVal[2].compareB.valueA * newVal[5].compareB.valueA;
|
|
|
|
+ }
|
|
|
|
+ if (newVal[2].compareC.valueA && newVal[5].compareC.valueA){
|
|
|
|
+ newVal[1].compareC.valueA = newVal[2].compareC.valueA * newVal[5].compareC.valueA;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ deep: true,
|
|
}
|
|
}
|
|
},
|
|
},
|
|
computed: {
|
|
computed: {
|
|
@@ -1244,7 +1214,8 @@ export default {
|
|
outwardStaffs: [],
|
|
outwardStaffs: [],
|
|
outwardStaffTip: true,
|
|
outwardStaffTip: true,
|
|
certificateName: null,
|
|
certificateName: null,
|
|
- otherInfo: null,
|
|
|
|
|
|
+ otherInfo: 'entityInfo',
|
|
|
|
+ certificateInfo: 'houseCertificate',
|
|
target: {
|
|
target: {
|
|
id: null,
|
|
id: null,
|
|
personalId: null,
|
|
personalId: null,
|
|
@@ -1455,7 +1426,7 @@ export default {
|
|
inRingBuilding:null,
|
|
inRingBuilding:null,
|
|
outRingBuilding:null,
|
|
outRingBuilding:null,
|
|
remark:null
|
|
remark:null
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -1809,13 +1780,15 @@ export default {
|
|
if (res.code === 200 && res.data) {
|
|
if (res.code === 200 && res.data) {
|
|
this.getCaluateTable(this.target.id);
|
|
this.getCaluateTable(this.target.id);
|
|
this.$notify({
|
|
this.$notify({
|
|
- title: '保存成功',
|
|
|
|
|
|
+ title: '成功',
|
|
|
|
+ message: '保存成功',
|
|
type: 'success',
|
|
type: 'success',
|
|
duration: 2000
|
|
duration: 2000
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
this.$notify({
|
|
this.$notify({
|
|
- title: '保存失败',
|
|
|
|
|
|
+ title: '失败',
|
|
|
|
+ message: '保存失败',
|
|
type: 'error',
|
|
type: 'error',
|
|
duration: 2000
|
|
duration: 2000
|
|
});
|
|
});
|
|
@@ -1829,13 +1802,15 @@ export default {
|
|
this.$api.personalTarget.price(taskRecord).then(res => {
|
|
this.$api.personalTarget.price(taskRecord).then(res => {
|
|
if (res.code === 200 && res.data) {
|
|
if (res.code === 200 && res.data) {
|
|
this.$notify({
|
|
this.$notify({
|
|
- title: '保存成功',
|
|
|
|
|
|
+ title: '成功',
|
|
|
|
+ message: '保存成功',
|
|
type: 'success',
|
|
type: 'success',
|
|
duration: 2000
|
|
duration: 2000
|
|
});
|
|
});
|
|
} else {
|
|
} else {
|
|
this.$notify({
|
|
this.$notify({
|
|
- title: '保存失败',
|
|
|
|
|
|
+ title: '失败',
|
|
|
|
+ message: '保存失败',
|
|
type: 'error',
|
|
type: 'error',
|
|
duration: 2000
|
|
duration: 2000
|
|
});
|
|
});
|
|
@@ -1862,13 +1837,13 @@ export default {
|
|
if (this.target.isOnline && !this.compareList.calculateId) {
|
|
if (this.target.isOnline && !this.compareList.calculateId) {
|
|
this.getCaluateTable(this.target.id);
|
|
this.getCaluateTable(this.target.id);
|
|
}
|
|
}
|
|
- if (this.target.isOnline) {
|
|
|
|
- setTimeout(() => {
|
|
|
|
- const element = document.getElementById("evaluteObject");
|
|
|
|
- element.scrollTop = element.scrollHeight;
|
|
|
|
- }, 500);
|
|
|
|
|
|
+ // if (this.target.isOnline) {
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
+ // const element = document.getElementById("evaluteObject");
|
|
|
|
+ // element.scrollTop = element.scrollHeight;
|
|
|
|
+ // }, 500);
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ // }
|
|
},
|
|
},
|
|
selectCalculateType() {
|
|
selectCalculateType() {
|
|
let data = this.compareList.analysisData
|
|
let data = this.compareList.analysisData
|
|
@@ -2313,11 +2288,11 @@ export default {
|
|
},
|
|
},
|
|
getScene(){
|
|
getScene(){
|
|
this.$api.personalScene.getScene(this.personalId).then(res => {
|
|
this.$api.personalScene.getScene(this.personalId).then(res => {
|
|
- if (res.code === 200) {
|
|
|
|
|
|
+ if (res.code === 200 && res.data) {
|
|
this.sceneForm = res.data;
|
|
this.sceneForm = res.data;
|
|
}
|
|
}
|
|
})
|
|
})
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -2344,7 +2319,6 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
.pane-class {
|
|
.pane-class {
|
|
- height: 800px;
|
|
|
|
width: 100%;
|
|
width: 100%;
|
|
overflow-y: scroll;
|
|
overflow-y: scroll;
|
|
}
|
|
}
|