Selaa lähdekoodia

1.资产产品信息展示页面修改
2.资产流程归档审核与复审部归档审核去除绩效分配列表
3.产品撰写表单去除对评估面积与单价的校验
4.资产评估人员提成申报新增参与时长字段并调整相关页面

GouGengquan 1 vuosi sitten
vanhempi
commit
769fdce37e

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

@@ -3,6 +3,10 @@ import request from '@/utils/request'
 * 资产业务
 */
 export default {
+    // 资产业务订单基础信息编辑
+    update(params) {
+        return request.put(`assets/update`, params)
+    },
     // 资产业务订单新增
     add(params) {
         return request.post(`assets/add`, params)

+ 206 - 29
src/views/assets/orderDetail.vue

@@ -24,7 +24,7 @@
         选择产品
       </el-button>
       <el-button @click="openAssetsAchievementRatioDialog()"
-        v-if="currentNode.nodeCode === 'CHECK_ARCHIVING' || currentNode.nodeCode === 'RECHECK_ARCHIVING'" type="danger"
+        v-if="currentNode.nodeCode === 'CHECK_ARCHIVING'" type="danger"
         round>
         <span v-if="currentNode.nodeCode === 'RECHECK_ARCHIVING'">复审部</span>归档审核
       </el-button>
@@ -487,7 +487,7 @@
                 </span>
               </span>
             </div>
-            <el-table ref="multipleTable" :data="assetsProductionData" stripe :header-row-style="{ color: '#333333' }"
+            <!-- <el-table ref="multipleTable" :data="assetsProductionData" stripe :header-row-style="{ color: '#333333' }"
               border takeNumberItems style="width: 100%; margin-top:20px">
               <el-table-column prop="id" label="id" width="80" align="center">
               </el-table-column>
@@ -586,6 +586,168 @@
                     type="text" size="small" @click="openWareHouseDialog(scope.row);">产品出库</el-button>
                 </template>
               </el-table-column>
+            </el-table> -->
+            <el-table :data="assetsProductionData" stripe :header-row-style="{ color: '#333333' }" border takeNumberItems
+              style="width: 100%; margin-top:20px">
+              <el-table-column type="expand">
+                <template slot-scope="props">
+                  <el-form label-position="left">
+                    <el-tag style="margin-left: 20px;" effect="plain" size="medium" disable-transitions><span style="font-size:16px">基本信息</span></el-tag>
+                    <el-row class="row-style">
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="委托方名称:">
+                          <span>{{ props.row.clientName }}</span>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="委托方电话:">
+                          <span>{{ props.row.clientTel }}</span>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-row class="row-style">
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="评估基准日:">
+                          <span>{{ props.row.valuationBasisDate }}</span>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="评估面积:">
+                          <span>{{ props.row.evaluateAcreage }} m²</span>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="评估单价:">
+                          <span>{{ props.row.evaluatePrice }}(元)</span>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="评估总价:">
+                          <span>{{ props.row.evaluateAmount }}(万)</span>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="产权人:">
+                          <span>{{ props.row.owner }}</span>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-row class="row-style">
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="产品打印数量:">
+                          <span>{{ props.row.printCount }}(份)</span>
+                        </el-form-item>
+                      </el-col>
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="产品出具日期:">
+                          <span>{{ props.row.createProductionDate }}</span>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-row class="row-style">
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="资料附件:">
+                          <el-link type="primary" v-for="file in props.row.filePath" :key="file.name" :href="file.url">
+                            {{ file.name }}
+                          </el-link>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-row class="row-style">
+                      <el-col :xs="24" :sm="6" :lg="3" :span="3" class="postInfo-container-item">
+                        <el-form-item prop="qrCode" label-width="150px" label="产品二维码:">
+                          <img style="width:130px;height:120px; display:inline-block ;" :src="props.row.qrCode"
+                            alt="NULL" />
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-row class="row-style">
+                      <el-col :xs="24" :sm="12" :lg="6" :span="6" class="postInfo-container-item">
+                        <el-form-item label-width="150px" label="特殊情况说明:">
+                          <span>{{ props.row.comment }}</span>
+                        </el-form-item>
+                      </el-col>
+                    </el-row>
+                    <el-tag style="margin-left: 20px;" effect="plain" size="medium" disable-transitions><span style="font-size:16px">库存状态</span></el-tag>
+                    <el-steps :active="props.row.repertoryState == null ? 0 : (props.row.repertoryState ? 2 : 1)"
+                      process-status="success" finish-status="success" simple style="margin: 10px 1% 20px 40px">
+                      <el-step title="未入库"></el-step>
+                      <el-step title="已入库"></el-step>
+                      <el-step title="已出库"></el-step>
+                    </el-steps>
+                  </el-form>
+                </template>
+              </el-table-column>
+              <el-table-column prop="id" label="id" width="120" align="center">
+              </el-table-column>
+              <el-table-column prop="productionNo" label="产品号" align="center" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                  <el-tag type="success"><span>{{ row.productionNo }}</span></el-tag>
+                </template>
+              </el-table-column>
+              <el-table-column prop="productionType" label="产品类型" align="center" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                  <el-tag v-if="row.productionType === 'STATEMENT'">价值意见书</el-tag>
+                  <el-tag v-if="row.productionType == 'LETTER'">意见函</el-tag>
+                  <el-tag v-if="row.productionType == 'CONSULT'">咨询报告</el-tag>
+                  <el-tag v-if="row.productionType == 'REPORT'">评估报告</el-tag>
+                </template>
+              </el-table-column>
+              <el-table-column prop="repertoryState" label="库存状态" align="center" show-overflow-tooltip>
+                <template slot-scope="{row}">
+                  <el-tag type="danger" v-if="row.repertoryState === null">未入库</el-tag>
+                  <el-tag type="success" v-if="row.repertoryState === true">已出库</el-tag>
+                  <el-tag type="warning" v-if="row.repertoryState === false">已入库</el-tag>
+                </template>
+              </el-table-column>
+              <el-table-column prop="comment" label="特殊情况说明" align="center" show-overflow-tooltip>
+              </el-table-column>
+              <el-table-column label="操作" align="center" width="180" fixed="right">
+                <template slot-scope="scope">
+                  <el-button type="text" size="small"
+                    @click="openWriteProductionDialog(true, 'detail'), getAssetsProductionDetail(scope.row.id)">
+                    查看
+                  </el-button>
+                  <el-button v-if="currentNode.nodeCode === 'REVIEW_STATEMENT'" type="text" size="small"
+                    @click="openWriteProductionDialog(false, 'edit'), getAssetsProductionDetail(scope.row.id)">
+                    编辑
+                  </el-button>
+                  <el-button
+                    v-if="currentNode.nodeCode === 'REVIEW_STATEMENT' && scope.row.productionType === 'STATEMENT'"
+                    type="text" size="small"
+                    @click="productionPerformanceForm.productionId = scope.row.id, openProductionCheckDialog()">
+                    审核意见书
+                  </el-button>
+                  <el-button
+                    v-if="currentNode.nodeCode === 'REEXAMINE_STATEMENT' && scope.row.productionType === 'STATEMENT'"
+                    type="text" size="small"
+                    @click="productionPerformanceForm.productionId = scope.row.id, openProductionCheckDialog()">
+                    复审意见书
+                  </el-button>
+                  <el-button v-if="currentNode.nodeCode === 'CHECK_REPORT' && scope.row.productionType !== 'STATEMENT'"
+                    type="text" size="small"
+                    @click="productionPerformanceForm.productionId = scope.row.id, openProductionCheckDialog()">
+                    审核报告
+                  </el-button>
+                  <el-button v-if="currentNode.nodeCode === 'RECHECK_REPORT' && scope.row.productionType !== 'STATEMENT'"
+                    type="text" size="small"
+                    @click="productionPerformanceForm.productionId = scope.row.id, openProductionCheckDialog()">
+                    复审报告
+                  </el-button>
+                  <el-button
+                    v-if="currentNode.nodeCode === 'FOURTH_CHECK_REPORT' && scope.row.productionType !== 'STATEMENT'"
+                    type="text" size="small"
+                    @click="productionPerformanceForm.productionId = scope.row.id, openProductionCheckDialog()">
+                    四审报告
+                  </el-button>
+                  <el-button
+                    v-if="(currentNode.nodeCode === 'STATEMENT_IN' || currentNode.nodeCode === 'REPORT_IN') && scope.row.repertoryState === null"
+                    type="text" size="small" @click="openWareHouseDialog(scope.row);">产品入库</el-button>
+                  <el-button
+                    v-if="(currentNode.nodeCode === 'STATEMENT_OUT' || currentNode.nodeCode === 'REPORT_OUT') && scope.row.repertoryState === false"
+                    type="text" size="small" @click="openWareHouseDialog(scope.row);">产品出库</el-button>
+                </template>
+              </el-table-column>
             </el-table>
           </div>
         </div>
@@ -1159,7 +1321,7 @@
               </h3>
             </el-divider>
           </div>
-          <p style="margin-top: 50px; color: red;">绩效比例:</p>
+          <!-- <p style="margin-top: 50px; color: red;">绩效比例:</p>
           <el-row style="margin-top: 10px;" v-for="(member, index) in assetsBusinessMembers" :key="index"
             class="row-style">
             <el-col>
@@ -1185,7 +1347,7 @@
                 </span>
               </p>
             </el-col>
-          </el-row>
+          </el-row> -->
           <span v-if="currentNode.nodeCode === 'CHECK_ARCHIVING'">
             <el-row style="margin-top: 10px;" class="row-style">
               <el-col>
@@ -1639,12 +1801,12 @@ export default {
         valuationBasisDate: [
           { required: true, message: '请选择估价基准日', trigger: 'change' }
         ],
-        evaluateAcreage: [
-          { required: true, message: '请填写评估面积', trigger: 'blur' }
-        ],
-        evaluatePrice: [
-          { required: true, message: '请填写评估单价', trigger: 'blur' }
-        ],
+        // evaluateAcreage: [
+        //   { required: true, message: '请填写评估面积', trigger: 'blur' }
+        // ],
+        // evaluatePrice: [
+        //   { required: true, message: '请填写评估单价', trigger: 'blur' }
+        // ],
         owner: [
           { required: true, message: '请填写持有人', trigger: 'blur' }
         ],
@@ -1732,8 +1894,10 @@ export default {
     this.nodeBusinessInfo.businessMinId = this.pageParams.row.reportNo;
     this.getCurrentNodeInfo();
     this.getAllotDepartment();
-    this.getCustomerCompany(0);
-    this.getCustomerCompany(1);
+    // this.getCustomerCompany(0);
+    // this.getCustomerCompany(1);
+    // this.getCustomerContract(0);
+    // this.getCustomerContract(1);
     this.getAssetsDetailById(this.pageParams.row.assetsId);
     // this.getProductionByBusinessId(this.pageParams.row.assetsId);
     this.getAETargetListByAssetsId();
@@ -2091,19 +2255,19 @@ export default {
         if (res.code === 200 && res.data !== null) {
           this.assetsEvaluationTarget = res.data;
           this.writeProductionStatementNos = this.assetsEvaluationTarget
-          // 过滤
-          .filter(obj => obj.statementCreateProductionDate == null || obj.statementCreateProductionDate == '')
-          // 获取
-          .map(obj => obj.statementNo)
-          // 去重
-          .filter((value, index, self) => self.indexOf(value) === index);
+            // 过滤
+            .filter(obj => obj.statementCreateProductionDate == null || obj.statementCreateProductionDate == '')
+            // 获取
+            .map(obj => obj.statementNo)
+            // 去重
+            .filter((value, index, self) => self.indexOf(value) === index);
           this.writeProductionReportNos = this.assetsEvaluationTarget
-          // 过滤
-          .filter(obj => obj.reportCreateProductionDate == null || obj.reportCreateProductionDate == '')
-          // 获取
-          .map(obj => obj.reportNo)
-          // 去重
-          .filter((value, index, self) => self.indexOf(value) === index);
+            // 过滤
+            .filter(obj => obj.reportCreateProductionDate == null || obj.reportCreateProductionDate == '')
+            // 获取
+            .map(obj => obj.reportNo)
+            // 去重
+            .filter((value, index, self) => self.indexOf(value) === index);
           this.flowDoFourthCheck();
           // 获取资产产品列表
           this.getProductionList();
@@ -2252,7 +2416,7 @@ export default {
                 this.targetDialogVisible = false;
                 //获取评估对象列表
                 this.getAETargetListByAssetsId();
-              }, 2000);
+              }, 1000);
 
             }
           })
@@ -2291,7 +2455,7 @@ export default {
                 this.targetDialogVisible = false;
                 //获取评估对象列表
                 this.getAETargetListByAssetsId();
-              }, 2000);
+              }, 1000);
             }
           })
         }
@@ -2644,12 +2808,25 @@ export default {
       aProListSelectDTO.statementNo = this.pageParams.row.statementNo;
       // aProListSelectDTO.reportNo = this.pageParams.row.reportNo;
       // if (this.currentNode.nodeCode == 'WRITE_REPORT' && this.assetsEvaluationTarget[0].statementNo !== null) {
-        // aProListSelectDTO.reportNo = this.assetsEvaluationTarget[0].reportNo;
-        aProListSelectDTO.reportNos = this.assetsEvaluationTarget.filter(obj => obj.reportNo !== null && obj.reportNo !== '').map(obj => obj.reportNo);
+      // aProListSelectDTO.reportNo = this.assetsEvaluationTarget[0].reportNo;
+      aProListSelectDTO.reportNos = this.assetsEvaluationTarget.filter(obj => obj.reportNo !== null && obj.reportNo !== '').map(obj => obj.reportNo);
       // }
       this.$api.assets.getProductionList(aProListSelectDTO).then(res => {
         if (res.code == 200) {
           this.assetsProductionData = res.data;
+          this.assetsProductionData = this.assetsProductionData.map(item => {
+            // 检查 filePath 是否为字符串且不为空
+            if (typeof item.filePath === 'string' && item.filePath.trim() !== '') {
+              try {
+                // 使用 JSON.parse 解析 filePath 字符串
+                item.filePath = JSON.parse(item.filePath);
+              } catch (error) {
+                console.error('解析 filePath 时发生错误:', error);
+              }
+            }
+            // 返回更新后的对象
+            return item;
+          });
         }
       })
     },
@@ -3017,7 +3194,7 @@ export default {
       })
 
       this.assetsAchievementRatioDialogVisible = true;
-      this.getPerformanceDistributionList();
+      // this.getPerformanceDistributionList();
 
       // console.log(this.businessPerformanceDistributionForm.distributionList);
       // if (this.businessPerformanceDistributionForm.distributionList !== null && this.businessPerformanceDistributionForm.distributionList[0].id !== null) {

+ 5 - 0
src/views/income/assets/declareDetail.vue

@@ -100,6 +100,11 @@
                 <span style="color: red;">{{ row.rate }}%</span>
               </template>
             </el-table-column>
+            <el-table-column prop="rate" label="参与时长" align="center">
+              <template slot-scope="{row}">
+                <span style="color: red;">{{ row.participationDuration }}小时</span>
+              </template>
+            </el-table-column>
             <el-table-column prop="rate" label="成员类型" align="center">
               <template slot-scope="{row}">
                 <span>{{ row.memberType }}</span>

+ 12 - 5
src/views/income/assets/evaluate.vue

@@ -129,8 +129,8 @@
                     <div>
                         <el-divider content-position="left">
                             <h3 class="title">
-                                <div class="avatar-wrapper icon-title">归档</div>
-                                <div class="icon-info">归档审核</div>
+                                <div class="avatar-wrapper icon-title">申报</div>
+                                <div class="icon-info">评估人员提成申报</div>
                             </h3>
                         </el-divider>
                     </div>
@@ -143,7 +143,7 @@
                             </el-select>
                         </el-form-item>
                     </el-form>
-                    <p style="color: red;">绩效比例:</p>
+                    <p style="color: red;">绩效比例&参与时长:</p>
                     <el-row style="margin-top: 10px;margin-left: 40px;" v-for="(member, index) in assetsBusinessMembers"
                         :key="index" class="row-style">
                         <el-col>
@@ -154,10 +154,17 @@
                                 v-model="businessPerformanceDistributionForm.distributionList[index].performanceDistribution"
                                 :precision="2" :step="0.1" :max="100">
                             </el-input-number>
-                            <p style="margin-left: 5px; display: inline-block;">
+                            <p style="margin-left: 5px; margin-right: 15px; display: inline-block;">
                                 %
                             </p>
+                            <el-input-number
+                                v-model="businessPerformanceDistributionForm.distributionList[index].participationDuration"
+                                :step="1">
+                            </el-input-number>
                             <p style="margin-left: 5px; display: inline-block;">
+                                小时
+                            </p>
+                            <p style="margin-left: 15px; display: inline-block;">
                                 <span v-if="member.memberType === '项目负责人'" style="color: blueviolet;">
                                     * {{ member.memberType }}
                                 </span>
@@ -312,7 +319,7 @@ export default {
                     if (state) {
                         this.businessPerformanceDistributionForm.distributionList = [];
                         for (let i = 0; i < this.assetsBusinessMembers.length; i++) {
-                            let memberInfo = { memberId: this.assetsBusinessMembers[i].memberId, performanceDistribution: 0, memberType: this.assetsBusinessMembers[i].memberType }
+                            let memberInfo = { memberId: this.assetsBusinessMembers[i].memberId, performanceDistribution: 0, participationDuration: 0,memberType: this.assetsBusinessMembers[i].memberType }
                             this.businessPerformanceDistributionForm.distributionList.push(memberInfo)
                         }
                     }