wucl 6 mesi fa
parent
commit
8ee9008888

+ 2 - 2
src/views/finance/fundClaim.vue

@@ -110,7 +110,7 @@
           </parentTable>
         </y-page-list-layout>
       </el-tab-pane>
-      <el-tab-pane label="我的已认领" name="claimed">
+      <el-tab-pane label="我部门的已认领" name="claimed">
         <y-page-list-layout :page-list="pageData1" :page-para="listQuery1" :get-page-list="getList1" :pageSizes="pageSizes">
           <template slot="left">
             <el-input v-model="listQuery1.keyword" placeholder="关键字搜索..." clearable style="margin-left: 20px;width: 300px;float: left;"></el-input>
@@ -1596,7 +1596,7 @@ export default {
     },
     getList1() {
       this.loading = true
-      this.$api.financeClaim.claimPageSelf(Object.assign({}, this.listQuery1)).then((res) => {
+      this.$api.financeClaim.claimPage(Object.assign({}, this.listQuery1)).then((res) => {
         if (res.code === 200) {
           this.pageData1 = res.data
         }

+ 164 - 6
src/views/finance/fundList.vue

@@ -4,7 +4,7 @@
       <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
     </div> -->
     <el-tabs v-model="activeName" @tab-click="handleClick">
-      <el-tab-pane label="未认领" name="notClaim">
+      <el-tab-pane label="未认领的实收款" name="notClaim">
         <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList"
           :pageSizes="pageSizes">
           <template slot="left">
@@ -95,7 +95,84 @@
           </el-table>
         </y-page-list-layout>
       </el-tab-pane>
-      <el-tab-pane label="已认领" name="claimed">
+      <el-tab-pane label="已认领的实收款" name="realClaimed">
+        <y-page-list-layout :page-list="pageData2" :page-para="listQuery2" :get-page-list="getList2"
+          :pageSizes="pageSizes">
+          <template slot="left">
+            <el-input v-model="listQuery2.keyword" placeholder="关键字搜索..." clearable
+              style="margin-left: 20px;width: 300px;float: left;">
+            </el-input>
+            <el-date-picker style="margin-left: 20px;float: left;" v-model="payDate2" type="daterange" align="center"
+              unlink-panels range-separator="至" start-placeholder="到账时日(开始)" end-placeholder="到账时日(结束)"
+              :picker-options="pickerOptions" value-format="yyyy-MM-dd">
+            </el-date-picker>
+            <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList2"
+              v-loading.fullscreen.lock="loading" round>搜索
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="success" @click="resetSearch2()">重置
+            </el-button>
+            <el-button class="filter-item" style="margin-left: 10px;float: left;" type="info" @click="exportData2()"
+              round>导出
+            </el-button>
+          </template>
+          <el-table ref="table" size="medium" slot="table" :data="pageData2.records" show-summary border
+            :summary-method="getSummaries" fit stripe highlight-current-row :header-row-style="{ color: '#333333' }"
+            style="
+          border-left: 1px solid #ebeced;
+          border-right: 1px solid #ebeced;
+          color: #333333;">
+            <el-table-column label="付款方" align="center" width='250'>
+              <template slot-scope="{row}">
+                <span>{{ row.payer }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="付款金额(元)" align="center" prop="amount">
+              <template slot-scope="{row}">
+                <span>{{ row.amount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="到账时日" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.payDatetime }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="已认领(元)" align="center" prop="claimAmount">
+              <template slot-scope="{row}">
+                <span style="color:green">{{ row.claimAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="未认领(元)" align="center" prop="notClaimAmount">
+              <template slot-scope="{row}">
+                <span style="color:red">{{ row.notClaimAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="录入人" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.creator }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="录入时间" align="center" width='170'>
+              <template slot-scope="{row}">
+                <span>{{ row.created }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="备注" align="center" width='170'>
+              <template slot-scope="{row}">
+                <span>{{ row.remark }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" width="150">
+              <template slot-scope="{row}">
+                <PermissionButton menu-code="_views_real_fund_edit" class-name="filter-item" type="text"
+                  :page-jump="false" @click="detail(row.id)" />
+                <PermissionButton menu-code="_views_claim_list" class-name="filter-item" type="text"
+                  :page-jump="false" @click="clamiList(row.id,row.notClaimAmount,row.payer,row.amount)" />
+              </template>
+            </el-table-column>
+          </el-table>
+        </y-page-list-layout>
+      </el-tab-pane>
+      <el-tab-pane label="认领记录流水" name="claimed">
         <y-page-list-layout :page-list="pageData1" :page-para="listQuery1" :get-page-list="getList1"
           :pageSizes="pageSizes">
           <template slot="left">
@@ -127,7 +204,7 @@
             </el-button>
           </template>
           <el-table ref="table" size="medium" slot="table" :data="pageData1.records" show-summary border
-           fit stripe highlight-current-row :header-row-style="{ color: '#333333' }"
+          :summary-method="getSummaries" fit stripe highlight-current-row :header-row-style="{ color: '#333333' }"
             style="
           border-left: 1px solid #ebeced;
           border-right: 1px solid #ebeced;
@@ -311,6 +388,7 @@ export default {
       activeName: 'notClaim',
       pageData: { records: [] },
       pageData1: { records: [] },
+      pageData2: { records: [] },
       listQuery: {
         page: 1,
         size: 1000,
@@ -320,6 +398,15 @@ export default {
         endDate: null,
         notFinished: true
       },
+      listQuery2: {
+        page: 1,
+        size: 1000,
+        descs: 'id',
+        keyword: null,
+        startDate: null,
+        endDate: null,
+        notFinished: false
+      },
       listQuery1: {
         page: 1,
         size: 1000,
@@ -335,6 +422,7 @@ export default {
       claimListDialog: false,
       payDate: '',
       payDate1: '',
+      payDate2: '',
       claimListData: null,
       realFund: {
         id: null,
@@ -380,10 +468,12 @@ export default {
       },
       loading: false,
       pageSizes: [10, 20, 30, 50, 100, 200, 500, 1000],
-      claimDate:''
+      claimDate:[]
     }
   },
   created() {
+    this.claimDate.push(this.getDefaultStartDate());
+    this.claimDate.push(this.getDefaultEndDate());
     this.getList();
   },
   methods: {
@@ -395,6 +485,27 @@ export default {
         if (tab.name ==='claimed'){
           this.getList1();
         }
+        if (tab.name ==='realClaimed'){
+          this.getList2();
+        }
+    },
+
+    getDefaultStartDate() {
+      let currentDate = new Date();
+      let currentYear = currentDate.getFullYear();
+      var currentMonth = String(currentDate.getMonth()).padStart(2, "0");
+      if (currentMonth=='00'){
+        currentYear = currentYear-1;
+        currentMonth = 12
+      }
+      return currentYear + '-' + currentMonth + '-' + '23'
+    },
+
+    getDefaultEndDate() {
+      const currentDate = new Date();
+      const currentYear = currentDate.getFullYear();
+      var currentMonth = String(currentDate.getMonth() + 1).padStart(2, "0");
+      return currentYear + '-' + currentMonth + '-' + '22'
     },
     resetSearch() {
       this.$router.push({ query: {} });
@@ -407,6 +518,17 @@ export default {
       }
       this.getList()
     },
+    resetSearch2() {
+      this.$router.push({ query: {} });
+      this.payDate2 = '';
+      this.listQuery2 = {
+        current: 1,
+        size: 1000,
+        descs: 'id',
+        notFinished: false
+      }
+      this.getList2()
+    },
     searchList() {
       // 重置分页
 
@@ -420,6 +542,19 @@ export default {
       this.getList()
 
     },
+    searchList2() {
+      // 重置分页
+
+      this.listQuery2.page = 1
+      this.listQuery2.size = 1000
+      if (this.payDate2) {
+        this.listQuery2.startDate = this.payDate2[0];
+        this.listQuery2.endDate = this.payDate2[1];
+      }
+
+      this.getList2()
+
+    },
     getList() {
       let loadingInstance = this.$loading({ fullscreen: true });
 
@@ -433,6 +568,19 @@ export default {
         this.loading = false;
       }, 500);
     },
+    getList2() {
+      let loadingInstance = this.$loading({ fullscreen: true });
+
+      this.$api.financeRealFund.list(Object.assign({}, this.listQuery2)).then(res => {
+        if (res.code === 200) {
+          loadingInstance.close();
+          this.pageData2 = res.data;
+        }
+      })
+      setTimeout(() => {
+        this.loading = false;
+      }, 500);
+    },
     saveRealFund() {
       this.$refs.realFund.validate(valid => {
         if (valid) {
@@ -613,7 +761,10 @@ export default {
 
     getList1(){
       let loadingInstance = this.$loading({ fullscreen: true });
-
+      if (this.claimDate) {
+          this.listQuery1.xStartDate = this.claimDate[0] + ' 00:00:00';
+          this.listQuery1.xEndDate = this.claimDate[1] + ' 23:59:59';
+        }
       this.$api.financeClaim.claimPage(Object.assign({}, this.listQuery1)).then(res => {
         if (res.code === 200) {
           loadingInstance.close();
@@ -625,6 +776,7 @@ export default {
       // 重置分页
       this.listQuery1.page = 1
       this.listQuery1.size = 1000
+     
       if (this.payDate1) {
         this.listQuery1.startDate = this.payDate1[0];
         this.listQuery1.endDate = this.payDate1[1];
@@ -639,8 +791,8 @@ export default {
 
     resetSearch1() {
       this.$router.push({ query: {} });
+      this.claimDate = [this.getDefaultStartDate(), this.getDefaultEndDate()];
       this.payDate1 = '';
-      this.claimDate = '';
       this.listQuery1 = {
         current: 1,
         size: 500,
@@ -654,6 +806,12 @@ export default {
         "导出"
       );
     },
+    exportData2() {
+      this.$utils.exportUtil(
+        "/financeRealFund/export", this.listQuery2,
+        "导出"
+      );
+    },
 
   },
 

+ 130 - 67
src/views/major/detail.vue

@@ -22,7 +22,7 @@
      <el-tabs v-model="activeTagName" @tab-click="handleClick" type="border-card">
       <el-tab-pane name="order" class="pane-class" :lazy=true>
         <span slot="label"><i class="el-icon-document"></i> 市场订单</span>
-        <y-detail-page-layout ref="myPersonalOrder" @save="handleCreate"  :editStatus="couldEdit" :couldBack="couldBack">
+        <y-detail-page-layout ref="myPersonalOrder" @save="handleCreate"  :editStatus="couldEdit || pgLeader" :couldBack="couldBack">
           <div>
             <el-form ref="majorForm" :model="major" class="form-container" :rules="rules">
               <div class="createMajor-main-container">
@@ -98,8 +98,9 @@
                       >
                         <el-select v-model="major.principalId" 
                           placeholder="待定"  style="width: 100%"
-                          readonly
-                          disabled>
+                          :readonly = "!pgLeader"
+                          :disabled="!pgLeader"
+                          >
                               <el-option v-for="(p,id) in principals" :label="p.name" :value="p.id"></el-option> 
                         </el-select>
                       </el-form-item>
@@ -114,8 +115,8 @@
                         <el-select v-model="major.membersId" 
                         placeholder="待定" 
                           multiple
-                          readonly
-                          disabled
+                           :readonly = "!pgLeader"
+                          :disabled="!pgLeader"
                           style="width: 100%">
                               <el-option v-for="(u,id) in allUsers" :label="u.name" :value="u.id"></el-option> 
                         </el-select>
@@ -975,7 +976,7 @@
           style="width: 99%; margin-top:20px;font-size: 16px;">
           <el-table-column type="expand">
             <template slot-scope="props">
-              <el-form label-position="left" :model="props.row" class="form-container" ref="productionFrom">
+              <el-form label-position="left" :model="props.row" class="form-container" :ref="'productionFrom' + props.row.id" :rules="rules">
                 <div>
                   <el-row class="row-style">
                     <el-col :xs="24" :sm="12" :lg="12" :span="6">
@@ -984,7 +985,9 @@
                           :rules="{required: true, message: '项目不能为空', trigger: 'blur'}"
                           label-width="120px"
                           class="postInfo-container-item" label="项目名称:">
-                          <el-input v-model="props.row.name" class="filter-item"  disabled readonly/>
+                          <el-input v-model="props.row.name" class="filter-item"    
+                          :readonly = "!pgLeader"
+                          :disabled="!pgLeader"/>
                         </el-form-item>
                       </el-col>
                       <el-col :xs="24" :sm="12" :lg="12" :span="6">
@@ -992,7 +995,9 @@
                           :rules="{required: true, message: '委托方不能为空', trigger: 'blur'}"
                           label-width="120px"
                           class="postInfo-container-item" label="委托方:">
-                          <el-input v-model="props.row.clientName" class="filter-item"  disabled readonly />
+                          <el-input v-model="props.row.clientName" class="filter-item"    
+                          :readonly = "!pgLeader"
+                          :disabled="!pgLeader" />
                         </el-form-item>
                       </el-col>
                     </el-row><el-row class="row-style">
@@ -1001,7 +1006,9 @@
                           :rules="{required: true, message: '委托方地址不能为空', trigger: 'blur'}"
                           label-width="140px"
                           class="postInfo-container-item" label="委托方地址:">
-                          <el-input v-model="props.row.clientAddress" class="filter-item"   disabled readonly/>
+                          <el-input v-model="props.row.clientAddress" class="filter-item" 
+                          :readonly = "!pgLeader"
+                          :disabled="!pgLeader"/>
                         </el-form-item>
                       </el-col>
                       <el-col :xs="24" :sm="12" :lg="6" :span="6">
@@ -1009,7 +1016,9 @@
                           :rules="{required: true, message: '委托方电话不能为空', trigger: 'blur'}"
                           label-width="140px"
                           class="postInfo-container-item" label="委托方电话:">
-                          <el-input v-model="props.row.clientTel" class="filter-item"   disabled readonly/>
+                          <el-input v-model="props.row.clientTel" class="filter-item" 
+                          :readonly = "!pgLeader"
+                          :disabled="!pgLeader"/>
                         </el-form-item>
                       </el-col>
                       <el-col :xs="24" :sm="12" :lg="6" :span="6">
@@ -1028,7 +1037,9 @@
                           :rules="{required: true, message: '评估总价不能为空', trigger: 'blur'}"
                           label-width="120px"
                           class="postInfo-container-item" label="评估总价:">
-                            <el-input :precision="2" :min="0" v-model.number="props.row.evaluateAmount" type="number"   disabled readonly
+                            <el-input :precision="2" :min="0" v-model.number="props.row.evaluateAmount" type="number" 
+                              :readonly = "!pgLeader"
+                          :disabled="!pgLeader"
                                 style="width:100%"
                               class="filter-item">
                               <template slot="append">
@@ -1042,7 +1053,8 @@
                           :rules="{required: true, message: '评估面积不能为空', trigger: 'blur'}"
                           label-width="120px"
                           class="postInfo-container-item" label="评估面积:">
-                              <el-input :precision="2" :min="0"  v-model.number="props.row.evaluateAcreage" type="number"   disabled readonly
+                              <el-input :precision="2" :min="0"  v-model.number="props.row.evaluateAcreage" type="number"     :readonly = "!pgLeader"
+                          :disabled="!pgLeader"
                               style="width:100%"
                               class="filter-item" >
                               <template slot="append">
@@ -1056,7 +1068,8 @@
                               :rules="{required: true, message: '评估单价不能为空', trigger: 'blur'}"
                               label-width="120px"
                               class="postInfo-container-item" label="评估单价:">
-                              <el-input :precision="2" :min="0"  v-model.number="props.row.evaluatePrice" type="number"  disabled readonly
+                              <el-input :precision="2" :min="0"  v-model.number="props.row.evaluatePrice" type="number"    :readonly = "!pgLeader"
+                          :disabled="!pgLeader"
                                 style="width:100%"
                                 class="filter-item" >
                                 <template slot="append">
@@ -1072,7 +1085,8 @@
                           :rules="{required: true, message: '产权人不能为空', trigger: 'blur'}"
                           label-width="120px"
                           class="postInfo-container-item" label="产权人:">
-                          <el-input v-model="props.row.owner" class="filter-item"   disabled readonly/>
+                          <el-input v-model="props.row.owner" class="filter-item"     :readonly = "!pgLeader"
+                          :disabled="!pgLeader"/>
                         </el-form-item>
                       </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
@@ -1081,7 +1095,8 @@
                         label-width="120px"
                         class="postInfo-container-item" label="价值时点:">
                           <el-date-picker
-                          v-model="props.row.valueTiming" type="date" placeholder="选择日期" style="width:100%"  disabled readonly>
+                          v-model="props.row.valueTiming" type="date" placeholder="选择日期" style="width:100%"   :readonly = "!pgLeader"
+                          :disabled="!pgLeader">
                           </el-date-picker>
                         </el-form-item>
                     </el-col>
@@ -1089,7 +1104,8 @@
                       <el-form-item label="评估目的:" prop="workPurpose"
                         :rules="{ required: true, message: '估价目的不能为空', trigger: 'blur' }" label-width="120px"
                         class="postInfo-container-item">
-                        <el-select v-model="props.row.workPurpose" placeholder="请选择" style=" width: 100%" filterable default-first-option allow-create    disabled readonly                     >
+                        <el-select v-model="props.row.workPurpose" placeholder="请选择" style=" width: 100%" filterable default-first-option allow-create     :readonly = "!pgLeader"
+                        :disabled="!pgLeader"                    >
                           <el-option label="抵押" value="抵押"></el-option>
                           <el-option label="咨询" value="咨询"></el-option>
                           <el-option label="融资" value="融资"></el-option>
@@ -1101,56 +1117,37 @@
                         </el-select>
                       </el-form-item>
                     </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="props.row.production==='REPORT'">
-                        <el-form-item  prop="signatory"
-                        label-width="120px"
-                        class="postInfo-container-item" label="签字人:" >
-                          <el-select v-model="props.row.signatoryId" 
-                          placeholder="产品类型为报告,签字人必填" 
-                            multiple
-                            clearable  disabled readonly
-                            style=" width: 100%" >
-                                <el-option v-for="(u,id) in allUsers" :label="u.name" :value="u.id"></el-option> 
-                          </el-select>
-                        </el-form-item>
-                    </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6" v-else>
-                        <el-form-item  prop="signatory"
-                        label-width="120px"
-                        class="postInfo-container-item">
-                        </el-form-item>
-                    </el-col>
-                  
                   </el-row>
                   <el-row class="row-style" v-if="props.row.production==='REPORT'">
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
                       <el-form-item prop="workStartDate" :rules="{ required: true, message: '估价作业开始日期不能为空', trigger: 'blur' }"
                         label-width="180px" class="postInfo-container-item" label="估价作业开始日期:">
-                        <el-date-picker v-model="props.row.workStartDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%"  disabled readonly>
+                        <el-date-picker v-model="props.row.workStartDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%"    :readonly = "!pgLeader"
+                        :disabled="!pgLeader">
                         </el-date-picker>
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
                       <el-form-item prop="workEndDate" :rules="{ required: true, message: '估价作业结束日期不能为空', trigger: 'blur' }"
                         label-width="180px" class="postInfo-container-item" label="估价作业结束日期:">
-                        <el-date-picker v-model="props.row.workEndDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%"  disabled readonly>
+                        <el-date-picker v-model="props.row.workEndDate" type="date" value-format="yyyy-MM-dd" placeholder="选择日期" style="width:100%"    :readonly = "!pgLeader"
+                        :disabled="!pgLeader">
                         </el-date-picker>
                       </el-form-item>
                     </el-col>
-                    <el-col :xs="24" :sm="12" :lg="6" :span="6">
-                      <el-form-item label="评估目的:" prop="workPurpose"
-                        :rules="{ required: true, message: '估价目的不能为空', trigger: 'blur' }" label-width="120px"
-                        class="postInfo-container-item">
-                        <el-select v-model="props.row.workPurpose" placeholder="请选择" style=" width: 100%" filterable default-first-option allow-create  disabled readonly                    >
-                          <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-option label="可行性研究" value="可行性研究"></el-option>
-                          <el-option label="不良资产价值评估" value="不良资产价值评估"></el-option>
-                          <el-option label="其他" value="其他"></el-option>
-                        </el-select>
-                      </el-form-item>
+                    <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="props.row.production==='REPORT'">
+                        <el-form-item  prop="signatory"
+                        label-width="120px"
+                        class="postInfo-container-item" label="签字人:" >
+                          <el-select v-model="props.row.signatoryId" 
+                          placeholder="产品类型为报告,签字人必填" 
+                            multiple
+                            clearable    :readonly = "!pgLeader"
+                          :disabled="!pgLeader"
+                            style=" width: 100%" >
+                                <el-option v-for="(u,id) in allUsers" :label="u.name" :value="u.id"></el-option> 
+                          </el-select>
+                        </el-form-item>
                     </el-col>
                   </el-row>
                   <el-row class="row-style" v-if="props.row.production==='REPORT'">
@@ -1158,22 +1155,27 @@
                       <el-form-item label="是否上报协会:" prop="isSubmit"
                         :rules="{ required: true, message: '是否上报协会不能为空', trigger: 'blur' }" label-width="140px"
                         class="postInfo-container-item">
-                        <el-radio v-model="props.row.isSubmit" :label="true" size="medium"  disabled readonly>是</el-radio>
-                        <el-radio v-model="props.row.isSubmit" :label="false" size="medium"  disabled readonly>否</el-radio>
+                        <el-radio v-model="props.row.isSubmit" :label="true" size="medium"    :readonly = "!pgLeader"
+                        :disabled="!pgLeader">是</el-radio>
+                        <el-radio v-model="props.row.isSubmit" :label="false" size="medium"    :readonly = "!pgLeader"
+                        :disabled="!pgLeader">否</el-radio>
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6" v-if="major.businessObjectType === '土地'">
                       <el-form-item label="是否备案:" prop="isRecord"
                         :rules="{ required: true, message: '是否备案不能为空', trigger: 'blur' }" label-width="120px"
                         class="postInfo-container-item">
-                        <el-radio v-model="props.row.isRecord" :label="true" size="medium"  disabled readonly>是</el-radio>
-                        <el-radio v-model="props.row.isRecord" :label="false" size="medium"  disabled readonly>否</el-radio>
+                        <el-radio v-model="props.row.isRecord" :label="true" size="medium"    :readonly = "!pgLeader"
+                        :disabled="!pgLeader">是</el-radio>
+                        <el-radio v-model="props.row.isRecord" :label="false" size="medium"    :readonly = "!pgLeader"
+                        :disabled="!pgLeader">否</el-radio>
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
                       <el-form-item prop="mainWorker" label-width="120px" class="postInfo-container-item"
                         label="第一报告人:">
-                        <el-input :value="props.row.mainWorker" style="width:100%" class="filter-item" readonly disabled>
+                        <el-input :value="props.row.mainWorker" style="width:100%" class="filter-item"   :readonly = "!pgLeader"
+                        :disabled="!pgLeader">
                           <template slot="append">
                             <span>注册号:{{ props.row.mainWorkerNo }}</span>
                           </template>
@@ -1183,7 +1185,8 @@
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
                       <el-form-item prop="minorWorker" label-width="120px" class="postInfo-container-item"
                         label="第二报告人:">
-                        <el-input :value="props.row.minorWorker" style="width:100%" class="filter-item" readonly disabled>
+                        <el-input :value="props.row.minorWorker" style="width:100%" class="filter-item"   :readonly = "!pgLeader"
+                        :disabled="!pgLeader">
                           <template slot="append">
                             <span>注册号:{{ props.row.minorWorkerNo }}</span>
                           </template>
@@ -1193,7 +1196,8 @@
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
                       <el-form-item prop="smallWorker" label-width="120px" class="postInfo-container-item"
                         label="第三报告人:">
-                        <el-input :value="props.row.smallWorker" style="width:100%" class="filter-item" readonly disabled>
+                        <el-input :value="props.row.smallWorker" style="width:100%" class="filter-item"   :readonly = "!pgLeader"
+                        :disabled="!pgLeader">
                           <template slot="append">
                             <span>注册号:{{ props.row.smallWorkerNo }}</span>
                           </template>
@@ -1206,7 +1210,8 @@
                         <el-form-item  prop="comment"
                           label-width="120px"
                           class="postInfo-container-item" label="特殊情况说明:">
-                          <el-input v-model.trim="props.row.comment" class="filter-item"  disabled readonly/>
+                          <el-input v-model.trim="props.row.comment" class="filter-item"   :readonly = "!pgLeader"
+                          :disabled="!pgLeader"/>
                         </el-form-item>
                       </el-col>
                    
@@ -1256,13 +1261,11 @@
                <span style="font-size:16px">{{aliasProductionType(props.row.production)}}</span>
             </template>
           </el-table-column>
-          <el-table-column
-            label="产品状态"
-            prop="name"
-            align="center">
+          <el-table-column label="操作" align="center">
             <template slot-scope="props">
-                <i v-if="props.row.name" style="font-size:20px; color:green" class="el-icon-success"></i>
-                <i v-else style="font-size:20px; color:red" class="el-icon-error"></i>
+              <el-button round type="danger" @click="saveProduction(props.row)"
+                :disabled="!pgLeader">更新产品信息</el-button>
+              
             </template>
           </el-table-column>
         </el-table>
@@ -2406,6 +2409,7 @@
   import YDetailPageLayout from '@/components/YDetailPageLayout/index_detail'
   import WorkflowBoard from '@/components/workflowBoard'
   import {isNumber,phoneNumber,postiveInteger,isIdNumber} from '@/utils/validate'
+  import { mapGetters } from 'vuex'
 
   export default {
     name: 'majorDetail',
@@ -2414,10 +2418,33 @@
       YDetailPageLayout,
       WorkflowBoard
     },
+    computed: {
+    ...mapGetters([
+      'userInfo'
+    ]),
+  },
     watch:{
+      userInfo: {
+      immediate: true, // immediate选项可以开启首次赋值监听
+      deep: true,
+      handler(newv) {
+        if (newv) {
+          const postList = newv.postList.map(item => item.name)
+          console.log(postList)
+          const marketPosts = ['评估部经理']
+          postList.forEach(element => {
+            if (marketPosts.includes(element)) {
+                this.pgLeader = true;
+            }
+          });
+        }
+
+      }
+    },
       $route(to, from) {
         if (to.path === from.path){
           this.couldEdit = this.$route.query.couldEdit ==='true';
+          this.pgLeader = this.$route.query.pgLeader ==='true';
           this.showBtn = this.$route.query.showBtn ==='true';
           this.couldBack = this.$route.query.couldBack ==='true';
           this.reportNo = this.$route.query.reportNo;
@@ -2740,7 +2767,8 @@
           description:null
         },
         productionFinance: [],
-        showQR:true
+        showQR:true,
+        pgLeader:false
       }
     },
     created() {
@@ -3465,6 +3493,41 @@
           this.$router.push(back)
         }
       },
+      saveProduction(production) {
+      const prodFrom = eval('this.$refs.productionFrom' + production.id);
+      if (prodFrom) {
+        prodFrom.validate(valid => {
+          if (valid) {
+            production.evaluateAmount = production.evaluateAmount*10000;
+            if (production.id) {
+              this.$api.majorProduction.update(production).then(res => {
+                if (res.code === 200 && res.data) {
+                  this.$notify({
+                    title: '成功',
+                    message: '产品信息更新成功',
+                    type: 'success',
+                    duration: 1000,
+                    offset: 100
+                  });
+                  this.getProductions(this.majorId, (this.reportNo == null ? this.statementNo : this.reportNo));
+                  this.getPerformance(this.majorId, (this.reportNo == null ? this.statementNo : this.reportNo));
+                } else {
+                  this.$notify({
+                    title: '失败',
+                    message: '产品信息完善失败',
+                    type: 'error',
+                    duration: 1000,
+                    offset: 100
+                  });
+                }
+              })
+
+            }
+          }
+
+        })
+      }
+    },
     },
 
   }

+ 2 - 1
src/views/major/list.vue

@@ -158,7 +158,8 @@ export default {
       },
       majorNodes:[],
       hiddenLabels:[],
-      loading:false
+      loading:false,
+      pgLeader:false
     }
   },
   created() {

+ 8 - 2
src/views/major/productionIn.vue

@@ -71,7 +71,7 @@
       <ScanEntry ref="scanEntry" @scanEntryFun="handleScanEntry" label="请扫描二维码或输入产品号" :onFocus="warehouseDialog"/>
       <span slot="footer" class="dialog-footer">
         <el-button @click="warehouseDialog = false">取 消</el-button>
-        <el-button type="primary" @click="doWareHouse()">确 定</el-button>
+        <el-button type="primary" @click="doWareHouse()" :disabled="holdOn">确 定</el-button>
       </span>
     </el-dialog>
   </div>
@@ -129,7 +129,8 @@ export default {
           }]
       },
       warehouseDialog:false,
-      scanEntryData:null
+      scanEntryData:null,
+      holdOn:false
     }
   },
   created() {
@@ -183,6 +184,7 @@ export default {
       this.scanEntryData = scanData;
     },
     doWareHouse(){
+      this.holdOn = true;
       let productionNo = this.scanEntryData;
       if (!productionNo){
         productionNo = this.$refs.scanEntry.scanEntryData;
@@ -198,6 +200,10 @@ export default {
       }else{
         this.$message({type:'error',message:"未获取到报告号"});
       }
+      //解决在一秒内完成入库、出库的操作引起的bug
+      setTimeout(()=>{
+        this.holdOn = false;
+      },1000)
     }
   },
   

+ 5 - 1
src/views/major/todoDetail.vue

@@ -1783,6 +1783,7 @@ import YDetailPageLayout from '@/components/YDetailPageLayout/index_detail'
 import WorkflowBoard from '@/components/workflowBoard'
 import ScanEntry from '@/components/ScanEntry'
 import { isNumber, phoneNumber, postiveInteger, isIdNumber } from '@/utils/validate'
+import { parseTwoDigitYear } from 'moment'
 
 
 export default {
@@ -1936,6 +1937,9 @@ export default {
       const curNode = this.currentNode.nodeCode;
       let couldNodes = ['SPOT_RECONNAISSANCE','WRITE_STATEMENT','WRITE_REPORT','WRITE_LETTER']
       return couldNodes.includes(curNode);
+    },
+    year(){
+      new Date().getFullYear();
     }
 
   },
@@ -2103,7 +2107,7 @@ export default {
       },
       workflowLogs: [],
       takeNumberDialog: false,
-      year: '2024',
+      year: '2025',
       productions: [],
       waitingUpload: [],
       performance: {