Browse Source

1.撰写报告相关页面

GouGengquan 1 year ago
parent
commit
aabcff24d3
2 changed files with 206 additions and 7 deletions
  1. 4 0
      src/api/modules/assets.js
  2. 202 7
      src/views/assets/orderDetail.vue

+ 4 - 0
src/api/modules/assets.js

@@ -82,5 +82,9 @@ export default {
     // 资产产品取号
     takeAssetsProductionNo(params) {
         return request.post(`assets/takeAssetsProductionNo`, params)
+    },
+    // 根据业务id与产品号获取资产产品详细信息
+    getAssetsProductionDetail(params) {
+        return request.get(`assetsProduction/getAssetsProductionDetail`, { params: params })
     }
 }

+ 202 - 7
src/views/assets/orderDetail.vue

@@ -368,11 +368,17 @@
                   @click="openTargetDialog(), changeStatus('add')" round>添加评估对象</el-button>
               </el-col>
               <el-col :span="2"
-                v-if="currentNode.nodeCode === 'GENERATE_STATEMENT' || currentNode.nodeCode === 'WRITE_REPORT'">
+                v-if="currentNode.nodeCode === 'GENERATE_STATEMENT' || currentNode.nodeCode === 'RECHECK_REPORT'">
                 <el-tooltip class="item" effect="dark" content="全选取主号,多次取号(主号-子号)" placement="right">
                   <el-button type="success" @click="takeAssetsProductionNo" round>产品取号</el-button>
                 </el-tooltip>
               </el-col>
+              <el-col :span="2"
+                v-if="currentNode.nodeCode === 'GENERATE_STATEMENT' || currentNode.nodeCode === 'WRITE_REPORT'">
+                <el-tooltip class="item" effect="dark" content="请仔细确认产品内容" placement="right">
+                  <el-button type="success" @click="openWriteProductionDialog" round>撰写产品信息</el-button>
+                </el-tooltip>
+              </el-col>
             </el-row>
             <el-table ref="multipleTable" :data="assetsEvaluationTarget" stripe @selection-change="targetSelectionChange"
               :header-row-style="{ color: '#333333' }" border takeNumberItems style="width: 100%; margin-top:20px">
@@ -412,12 +418,12 @@
                     @click="getAssetsTargetDetail(scope.row.id), changeStatus('detail')">
                     查看
                   </el-button>
-                  <el-button v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE_DETERMINE_PRICE'" type="text" size="small"
-                    @click="getAssetsTargetDetail(scope.row.id), changeStatus('edit')">
+                  <el-button v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE_DETERMINE_PRICE'" type="text"
+                    size="small" @click="getAssetsTargetDetail(scope.row.id), changeStatus('edit')">
                     编辑
                   </el-button>
-                  <el-button v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE_DETERMINE_PRICE'" type="text" size="small"
-                    @click="assetsTargetDelete(scope.row.id)">删除</el-button>
+                  <el-button v-if="currentNode.nodeCode === 'SPOT_RECONNAISSANCE_DETERMINE_PRICE'" type="text"
+                    size="small" @click="assetsTargetDelete(scope.row.id)">删除</el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -709,6 +715,140 @@
         </div>
       </el-form>
     </el-dialog>
+
+    <el-dialog :visible.sync="productionWriteDialogVisible">
+      <el-form ref="assetsProductionFrom" :model="assetsProductionFrom" :rules="assetsProductionFromRules">
+        <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-row class="row-style">
+              <el-col>
+                <el-form-item label="项目名称:" prop="assetsName" label-width="120px" class="postInfo-container-item">
+                  <el-input v-model.number="assetsProductionFrom.assetsName" class="filter-item" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="签字人:" prop="signatory" label-width="120px" class="postInfo-container-item">
+                  <el-select v-model="assetsProductionFrom.signatory" placeholder="请选择" multiple>
+                    <el-option v-for="(u, id) in allUsers" :label="u.name" :value="u.id" :key="u.id"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="委托方名称:" prop="clientName" label-width="120px" class="postInfo-container-item">
+                  <el-input v-model.number="assetsProductionFrom.clientName" class="filter-item" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="委托方电话:" prop="clientTel" label-width="120px" class="postInfo-container-item">
+                  <el-input v-model.number="assetsProductionFrom.clientTel" class="filter-item" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="估价基准日:" prop="valuationBasisDate" label-width="120px"
+                  class="postInfo-container-item">
+                  <el-date-picker v-model="assetsProductionFrom.valuationBasisDate" type="date" placeholder="选择日期"
+                    style="width:100%">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="评估面积:" prop="evaluateAcreage" label-width="140px" class="postInfo-container-item">
+                  <el-input-number v-model="assetsProductionFrom.evaluateAcreage" controls-position="right" :precision="2"
+                    :step="0.1"></el-input-number>
+                  <span>(m²)</span>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="评估单价:" prop="evaluatePrice" label-width="140px" class="postInfo-container-item">
+                  <el-input-number v-model="assetsProductionFrom.evaluatePrice" controls-position="right" :precision="2"
+                    :step="0.1"></el-input-number>
+                  <span>(元)</span>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="评估总价:" prop="evaluateAmount" label-width="140px" class="postInfo-container-item">
+                  <el-input-number v-model="assetsProductionFrom.evaluateAmount" controls-position="right" :precision="2"
+                    :step="0.1"></el-input-number>
+                  <span>(万)</span>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="资产持有人:" prop="owner" label-width="120px" class="postInfo-container-item">
+                  <el-input v-model.number="assetsProductionFrom.owner" class="filter-item" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="产品打印份数:" prop="printCount" label-width="150px" class="postInfo-container-item">
+                  <el-input v-model.number="assetsProductionFrom.printCount" class="filter-item" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="出具产品日期:" prop="createProductionDate" label-width="150px"
+                  class="postInfo-container-item">
+                  <el-date-picker v-model="assetsProductionFrom.createProductionDate" type="date" placeholder="选择日期"
+                    style="width:100%">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item prop="filePath" label="资料附件:" label-width="120px" class="postInfo-container-item">
+                  <el-upload action="/api/upload" :limit="3" :on-success="changeres" :on-exceed="handleExceed"
+                    :on-preview="handleAttachmentPreview" :before-remove="beforeRemove" :file-list="fileList">
+                    <el-button plain type="info" round style="width: 100%">上传附件<i
+                        class="el-icon-upload el-icon--right"></i></el-button>
+                  </el-upload>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <el-row class="row-style">
+              <el-col>
+                <el-form-item label="特殊情况说明:" prop="comment" label-width="150px" class="postInfo-container-item">
+                  <el-input v-model="assetsProductionFrom.comment" :autosize="{ minRows: 4, maxRows: 4 }"
+                    class="filter-item" type="textarea" />
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row class="row-style">
+              <el-button v-if="productionChoiceStatus == 0" @click="assetsProductionSave"
+                style="width:100%;">提交</el-button>
+              <el-button v-if="productionChoiceStatus == 1" @click="assetsProductionUpdate"
+                style="width:100%;">提交</el-button>
+            </el-row>
+          </div>
+        </div>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -1070,6 +1210,8 @@ export default {
       pNode: null,
       // 产品选择表单可视状态
       productionChoiceDialogVisible: false,
+      // 产品信息撰写表单可视状态
+      productionWriteDialogVisible: false,
       // 0:新增,1:更新
       productionChoiceStatus: 0,
       // 产品表单
@@ -1077,16 +1219,19 @@ export default {
         businessId: null,
         productionNo: null,
         productionType: null,
-        signatory: null,
+        signatory: [],
         clientName: null,
+        clientTel: null,
         valuationBasisDate: null,
         evaluateAcreage: null,
+        evaluatePrice: null,
         evaluateAmount: null,
         owner: null,
         printCount: null,
         createProductionDate: null,
         comment: null,
-        filePath: []
+        filePath: [],
+        assetsName: null
       },
       // 产品选择表单校验规则
       assetsProductionFromRules: {
@@ -1096,6 +1241,36 @@ export default {
         printCount: [
           { required: true, message: '请填写打印份数', trigger: 'blur' },
           { type: 'number', message: '请填写数字' }
+        ],
+        signatory: [
+          { required: true, message: '请选择签字人', trigger: 'change' }
+        ],
+        clientName: [
+          { required: true, message: '请填写委托方名称', trigger: 'blur' }
+        ],
+        clientTel: [
+          { required: true, message: '请填写委托方电话', trigger: 'blur' }
+        ],
+        valuationBasisDate: [
+          { required: true, message: '请选择估价基准日', trigger: 'change' }
+        ],
+        evaluateAcreage: [
+          { required: true, message: '请填写评估面积', trigger: 'blur' }
+        ],
+        evaluatePrice: [
+          { required: true, message: '请填写评估单价', trigger: 'blur' }
+        ],
+        owner: [
+          { required: true, message: '请填写持有人', trigger: 'blur' }
+        ],
+        createProductionDate: [
+          { required: true, message: '请选择产品出具日期', trigger: 'change' }
+        ],
+        filePath: [
+          { required: true, message: '请上传附件资料', trigger: 'change' }
+        ],
+        assetsName: [
+          { required: true, message: '请填写项目名称', trigger: 'change' }
         ]
       },
       // 资产业务取号dto
@@ -1531,6 +1706,7 @@ export default {
       let aETargetListSelectDTO = { businessId: null, productionNo: null }
       aETargetListSelectDTO.businessId = this.assetsForm.id;
       aETargetListSelectDTO.productionNo = this.pageParams.row.productionNo;
+
       this.$api.assets.getAETargetListByAssetsId(aETargetListSelectDTO).then(res => {
         if (res.code === 200) {
           this.assetsEvaluationTarget = res.data;
@@ -1870,6 +2046,7 @@ export default {
               type: 'success',
               duration: 2000
             });
+            this.pageParams.row.productionNo = res.data;
             this.getAETargetListByAssetsId();
           }
         })
@@ -1895,6 +2072,24 @@ export default {
       } else {
         return true;
       }
+    },
+    openWriteProductionDialog() {
+      this.productionWriteDialogVisible = true;
+      this.getAssetsProductionDetail();
+    },
+    // 根据业务id与产品号获取资产产品详细信息
+    getAssetsProductionDetail() {
+      let assetsProductionDetailDTO = { businessId: null, productionNo: null };
+      assetsProductionDetailDTO.businessId = this.assetsForm.id;
+      assetsProductionDetailDTO.productionNo = this.pageParams.row.productionNo;
+      this.$api.assets.getAssetsProductionDetail(assetsProductionDetailDTO).then(res => {
+        if (res.code == 200 && res.data !== null) {
+          this.assetsProductionFrom = res.data;
+          this.assetsProductionFrom.assetsName = this.assetsForm.name;
+          this.assetsProductionFrom.owner = this.assetsEvaluationTarget[0].theHolder;
+          this.assetsProductionFrom.valuationBasisDate = this.assetsEvaluationTarget[0].valuationBasisDate;
+        }
+      })
     }
 
   }