浏览代码

土规部实收款认领

wucl 6 月之前
父节点
当前提交
804e52a55d

+ 13 - 0
src/components/MoreSearchBar/index.vue

@@ -39,6 +39,14 @@
                         <el-option :value="false" label="未收款">未收款</el-option>
                     </el-select>
                 </el-col>
+                <el-col :xs="24" :sm="12" :lg="3" :span="6" style="margin-right: 5px; margin-left: -15px;">
+                    <el-select v-if="productions" v-model="listQuery.productions" @change="searchList" placeholder="已出产品" clearable>
+                        <el-option value="价值意见书" label="价值意见书">价值意见书</el-option>
+                        <el-option value="技术报告" label="技术报告">技术报告</el-option>
+                        <el-option value="结果报告" label="结果报告">结果报告</el-option>
+                        <el-option value="复评函" label="复评函">复评函</el-option>
+                    </el-select>
+                </el-col>
                 <el-col :xs="24" :sm="12" :lg="8" :span="6">
                     <el-button class="filter-item" type="success" @click="searchList" v-loading.fullscreen.lock="loading"
                         round>搜索
@@ -284,6 +292,11 @@ export default {
             require: false,
             default: false
         },
+        productions: {
+            type: Boolean,
+            require: false,
+            default: false
+        },
     },
 
 

+ 6 - 1
src/utils/utils.js

@@ -200,7 +200,12 @@ const utils = {
     var m = date.getMinutes() + ":";
     var s = date.getSeconds();
     return Y + M + D + h + m + s;
-  }
+  },
+  // 四舍五入到指定的小数位数
+  roundToDecimalPlace(number, decimalPlaces) {
+      const factor = Math.pow(10, decimalPlaces);
+      return Math.round(number * factor) / factor;
+    }
 
 };
 

+ 0 - 1
src/views/finance/fundClaim.vue

@@ -1081,7 +1081,6 @@ export default {
           this.pageData = res.data;
         }
       })
-      console.log(this.claimOrders)
     },
 
     getMyMajorOrder() {

+ 227 - 14
src/views/market/payment/list.vue

@@ -3,7 +3,87 @@
     <div class="title-container">
       <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
     </div>
-    <el-tabs v-model="activeName" type="border-card" style="margin-top: 30px;">
+    <el-tabs v-model="activeName" type="border-card" style="margin-top: 30px;" @tab-click="tabClick">
+      <el-tab-pane label="回款认领" name="retPayment">
+        <y-page-list-layout :page-list="pageRetData" :page-para="listQuery1" :get-page-list="getRetList">
+          <template slot="left">
+            <el-input v-model="listQuery1.keyword" placeholder="关键字搜索..." clearable
+              style="margin-left: 20px;width: 500px;float: left;">
+            </el-input>
+            <el-date-picker style="margin-left: 20px;float: left;" v-model="payDate" type="daterange" align="center"
+              unlink-panels range-separator="至" start-placeholder="到账时日(开始)" end-placeholder="到账时日(结束)"
+              :picker-options="pickerOptions" value-format="yyyy-MM-dd">
+            </el-date-picker>
+            <el-date-picker style="margin-left: 20px;float: left;" v-model="orderDate" 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="searchRetList"
+              round>搜索
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="success" @click="resetRetSearch()">重置
+            </el-button>
+          </template>
+          <parentTable :data="pageRetData.records" slot="table" style="width: 100%;">
+            <el-table-column label="付款方" align="center" width='200'>
+              <template slot-scope="{row}">
+                <span>{{ row.payer }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="付款银行" align="center" width='130'>
+              <template slot-scope="{row}">
+                <span>{{ row.payerBank }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="付款金额(元)" align="center">
+              <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">
+              <template slot-scope="{row}">
+                <span style="color:green">{{ row.claimAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="未认领(元)" align="center">
+              <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='160'>
+              <template slot-scope="{row}">
+                <span>{{ row.created }}</span>
+              </template>
+            </el-table-column>
+            <!-- <el-table-column label="全部认领" align="center">
+              <template slot-scope="{row}">
+                <i v-if="row.notClaimAmount <= 0" style="font-size:20px; color:green" class="el-icon-success"></i>
+                <i v-else style="font-size:20px; color:RGB(255,106,106)" class="el-icon-warning"></i>
+              </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="200">
+              <template slot-scope="{row}">
+                  <el-button type="success" round @click="openOrders(row.payer,row.amount,row.id)">选择订单</el-button>
+              </template>
+            </el-table-column>
+          </parentTable>
+        </y-page-list-layout>
+      </el-tab-pane>
       <el-tab-pane label="项目回款" name="first">
         <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
           <template slot="left">
@@ -71,14 +151,12 @@
               <template slot-scope="{row}">
                 <PermissionButton menu-code="_views_market_payment_detailList" class-name="filter-item" type="primary"
                   :page-jump="true" :page-query="{ id: row.id }" round size="mini" />
-                <PermissionButton menu-code="_views_market_payment_add" class-name="filter-item" type="success" round
-                  size="mini" @click="handleAdd(row.id, row.name)" />
               </template>
             </el-table-column>
           </parentTable>
         </y-page-list-layout>
       </el-tab-pane>
-      <el-tab-pane label="回款记录" name="sec">
+      <el-tab-pane label="认领记录" name="sec">
         <y-page-list-layout :page-list="pageXData" :page-para="listQuery" :get-page-list="getXList">
           <template slot="left">
             <el-input v-model="listQuery.itemName" placeholder="项目名称" clearable
@@ -111,12 +189,12 @@
                 <span>{{ row.name }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="回款金额" align="center" width="310">
+            <el-table-column label="认领金额" align="center" width="310">
               <template slot-scope="{row}">
                 <span>{{ row.amount }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="回款日期" align="center" width="310">
+            <el-table-column label="认领日期" align="center" width="310">
               <template slot-scope="{row}">
                 <span>{{ row.paymentDate }}</span>
               </template>
@@ -126,7 +204,7 @@
       </el-tab-pane>
     </el-tabs>
 
-    <el-dialog width="600px" title="新增回款" :visible.sync="dialogFormVisible" :close-on-click-modal="false"
+    <el-dialog width="600px" title="新增回款" :visible.sync="dialogFormVisible"
       custom-class="paymentDialog">
       <el-form ref="dataForm" v-loading="dialogLoading" :model="temp" label-position="right" label-width="110px"
         style="width: 400px; margin-left:50px;">
@@ -165,6 +243,70 @@
         </el-form-item>
       </el-form>
     </el-dialog>
+
+    <el-dialog width="95%" :visible.sync="dialogOrders" center >
+      <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getList">
+          <template slot="left">
+            <el-input v-model="listQuery.itemName" placeholder="项目名称" clearable
+              style="margin-left: 20px;width: 320px;float: left;">
+            </el-input>
+            <el-button class="filter-item" style="margin-left: 10px;float: left;" type="primary" @click="searchList"
+              round>搜索
+            </el-button>
+            <el-button class="filter-item" style="float: left;" round type="warning" @click="resetSearch()">重置
+            </el-button>
+            <el-button plain type="danger">付款方:{{ payer }} 付款金额:{{ paymentAmount }}元</el-button>
+          </template>
+          <parentTable v-loading="listLoading" :data="pageData.records" slot="table" style="width: 100%;">
+            <el-table-column label="事业部流水号" align="center" width="160">
+              <template slot-scope="{row}">
+                <span>{{ row.businessNo }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="项目编号" align="center" width="160">
+              <template slot-scope="{row}">
+                <span>{{ row.oaNo }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="项目名称" align="center">
+              <template slot-scope="{row}">
+                <span>{{ row.name }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="客户经理" align="center" width="100">
+              <template slot-scope="{row}">
+                <span>{{ row.clientManager }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="委托单位" align="center" width="160">
+              <template slot-scope="{row}">
+                <span>{{ row.clientUnit }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="合同签订时间" align="center" width="110">
+              <template slot-scope="{row}">
+                <span>{{ row.signDate }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="合同金额(元)" align="center" width="100">
+              <template slot-scope="{row}">
+                <span>{{ row.amount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="已收款金额(元)" align="center" width="100">
+              <template slot-scope="{row}">
+                <span style="color: green">{{ row.payedAmount }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column label="操作" align="center" width="120">
+              <template slot-scope="{row}">
+                <PermissionButton menu-code="_views_market_payment_add" class-name="filter-item" type="success" round
+                size="mini" @click="handleAdd(row.id, row.name,row.orderFundId)" />
+              </template>
+            </el-table-column>
+          </parentTable>
+        </y-page-list-layout>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -214,9 +356,11 @@ export default {
         name: '',
         amount: '',
         itemName: '',
-        itemId: ''
+        itemId: '',
+        realAmountId:null,
+        orderFundId:null
       },
-      activeName: 'first',
+      activeName: 'retPayment',
       pageXData: { records: [] },
       pickerOptions: {
         shortcuts: [{
@@ -245,7 +389,22 @@ export default {
           }
         }]
       },
-      selectDate: ''
+      selectDate: '',
+      listQuery1:{
+        page: 1,
+        size: 10,
+        descs: 'id',
+        keyword: null,
+        startDate: null,
+        endDate: null,
+        notFinished:true
+      },
+      pageRetData:{ records: [] },
+      orderDate: '',
+      payDate: '',
+      dialogOrders:false,
+      payer:null,
+      paymentAmount:null
     }
   },
   created() {
@@ -253,12 +412,11 @@ export default {
     if (that.$route.query.current && !isNaN(that.$route.query.current)) {
       that.listQuery.current = parseInt(that.$route.query.current);
     }
-    that.getList();
-    that.getXList();
+    that.getRetList();
   },
   methods: {
     save() {
-      if (this.temp.itemId) {
+      if (this.temp.itemId && this.temp.realAmountId) {
         this.$refs.dataForm.validate(valid => {
           if (valid) {
             this.$api.payment.add(Object.assign({}, this.temp, {
@@ -284,10 +442,13 @@ export default {
         })
       }
     },
-    handleAdd(itemId, itemName) {
+    handleAdd(itemId, itemName,orderFundId) {
       const that = this;
       that.temp.itemId = itemId;
       that.temp.itemName = itemName;
+      that.temp.amount = this.paymentAmount;
+      that.temp.realAmountId = this.realAmountId;
+      that.temp.orderFundId = orderFundId;
       that.dialogFormVisible = true;
       this.$nextTick(() => {
         this.$refs['dataForm'].clearValidate()
@@ -365,6 +526,58 @@ export default {
         "/paymentCollection/export", this.listQuery,
         "导出"
       );
+    },
+    getRetList() {
+      this.listQuery1.notFinished = true;
+      this.$api.financeRealFund.claimList(Object.assign({}, this.listQuery1)).then(res => {
+        if (res.code === 200) {
+          this.pageRetData = res.data;
+        }
+      })
+    },
+    searchRetList() {
+      // 重置分页
+      this.listQuery1.page = 1
+      this.listQuery1.size = 10
+      if (this.payDate) {
+        this.listQuery1.startDate = this.payDate[0];
+        this.listQuery1.endDate = this.payDate[1];
+      }
+      if (this.orderDate) {
+        this.listQuery1.xStartDate = this.orderDate[0] + ' 00:00:00';
+        this.listQuery1.xEndDate = this.orderDate[1] + ' 23:59:59';
+      }
+      this.getRetList()
+    },
+    resetRetSearch() {
+      this.$router.push({ query: {} });
+      this.orderDate = '';
+      this.payDate = '';
+      this.listQuery1 = {
+        current: 1,
+        size: 10,
+        descs: 'id',
+      }
+      this.getRetList()
+    },
+    openOrders(payer,paymentAmount,id){
+        this.dialogOrders = true;
+        this.payer = payer;
+        this.paymentAmount = paymentAmount;
+        this.realAmountId = id;
+        this.getList();
+    },
+    tabClick(tab){
+      if (tab.name ==  'retPayment'){
+          this.getRetList();
+      }
+      if (tab.name ==  'first'){
+          this.getList();
+      }
+      if (tab.name ==  'sec'){
+          this.getXList();
+      }
+
     }
   },
 }

+ 7 - 1
src/views/personal/allOrder.vue

@@ -5,7 +5,7 @@
     </div>
     <y-page-list-layout :page-list="pageData" :page-para="listQuery" :get-page-list="getPage">
       <template slot="left">
-        <MoreSearchBar business="PERSONAL_BUSINESS" :nodeCode="false" :personalRealAmount="true"
+        <MoreSearchBar business="PERSONAL_BUSINESS" :nodeCode="false" :personalRealAmount="true" :productions="true"
           @fliterSearch="fliterSearch" @resetParams="resetParams" :listQuery="listQuery">
           <template v-slot:otherButton>
             <el-button class="filter-item" round @click="showAllLabel()">显示全部列</el-button>
@@ -122,6 +122,12 @@
             <span>{{ row.pricingStaffName ? row.pricingStaffName : '-' }}</span>
           </template>
         </el-table-column>
+        <el-table-column label="已出产品" align="center" width="110" v-if="!hiddenLabels.includes('productions')"
+          prop="productions">
+          <template slot-scope="{row}">
+            {{ row.productions }}
+          </template>
+        </el-table-column>
         <el-table-column label="下单时间" align="center" width="110" v-if="!hiddenLabels.includes('created')"
           prop="created">
           <template slot-scope="{row}">

+ 12 - 3
src/views/personal/todoDetail.vue

@@ -858,6 +858,7 @@
                 <el-button type="text" class="button" @click="doStamp(statementProd.files)"
                   :disabled="!statementProd.isOnline">加盖公章</el-button>
                 <el-button type="text" class="button" @click="genProductionFile(1)" >系统生成</el-button>
+                <el-button type="text" class="button" @click="downloadDoc(statementProd.files)">下载</el-button>
               </div>
               <!-- <a href="#" @click.prevent="openPageoffice()">打开文件</a> -->
             </div>
@@ -867,7 +868,6 @@
               :before-remove="handleRemoveFile">
               <el-button type="text" style="position: relative; left: 10px;top: -4px;">手动上传</el-button>
             </el-upload>
-
           </el-card>
           <el-card :body-style="{ padding: '0px' }" shadow="always" style="margin-left: 5%; margin-right: 5%;width: 20%;"
             v-if="hasReport">
@@ -882,6 +882,7 @@
                   :disabled="!technicReportProd.isOnline">加盖公章</el-button>
                 <el-button type="text" class="button" @click="genProductionFile(2)"
                   >系统生成</el-button>
+                  <el-button type="text" class="button" @click="downloadDoc(technicReportProd.files)">下载</el-button>
               </div>
             </div>
             <el-upload style="position: relative; top: -10px; padding: 10px;"
@@ -905,6 +906,7 @@
                   :disabled="!finalReprotProd.isOnline">加盖公章</el-button>
                 <el-button type="text" class="button" @click="genProductionFile(3)"
                   >系统生成</el-button>
+                  <el-button type="text" class="button" @click="downloadDoc(finalReprotProd.files)">下载</el-button>
               </div>
             </div>
             <el-upload style="position: relative; top: -10px;padding: 10px;"
@@ -924,6 +926,7 @@
                   class="el-icon-circle-check"></i></span>
               <time class="time">{{ letterReprotProd.modified }}</time>
               <div class="control">
+                <el-button type="text" class="button" @click="downloadDoc(letterReprotProd.files)">下载</el-button>
               </div>
             </div>
             <el-upload style="position: relative; top: -10px;padding: 10px;"
@@ -1112,6 +1115,7 @@ import SellingAbilityInfo from '@/components/personalForms/sellingAbilityInfo'
 import existPNG from '@/assets/images/exist.png'
 import emptyPNG from '@/assets/images/empty.png'
 import { POBrowser } from 'js-pageoffice'
+import utils from '@/utils/utils'
 
 export default {
   name: 'personalTodoDetail',
@@ -1182,7 +1186,7 @@ export default {
     target: {
       handler(newVal, oldVal) {
         if (newVal.acreage != null && newVal.price != null && newVal.price !=null && newVal.price != 0) {
-          newVal.amount = (newVal.acreage * newVal.price/10000).toFixed(2)
+          newVal.amount = utils.roundToDecimalPlace((newVal.acreage * newVal.price/10000),2)
         }
         if (newVal.id) {
           this.getProductions();
@@ -2081,7 +2085,7 @@ export default {
           let target = new Object();
           target.id = this.target.id;
           target.personalId = this.target.personalId;
-          target.price = Math.round(this.target.amount*10000/this.target.acreage);
+          target.price = this.target.price
           target.amount = this.target.amount*10000;
           target.acreage = this.target.acreage;
           target.location = this.personal.location;
@@ -2740,6 +2744,11 @@ export default {
         })
       }
     },
+    downloadDoc(files){
+      if (files[0] && files[0].url){
+        window.open('http://mbs.scdayou.com'+files[0].url,'_blank');
+      }
+    },
     cleanCheckId(){
       this.checkerId = null;
     },

+ 6 - 6
src/views/profile/profile.vue

@@ -50,7 +50,7 @@
                       <el-form-item
                         label="身份证号:"
                         prop="idNo"
-                        :rules="[{required: true, message: '请选择身份证号', trigger: 'blur'},
+                        :rules="[{required: true, message: '请填写身份证号', trigger: 'blur'},
             {
               pattern:  /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
               message: '证件号码格式有误!',
@@ -58,13 +58,13 @@
                         label-width="120px"
                         class="postInfo-container-item"
                       >
-                        <el-input v-model="postForm.idNo" class="filter-item"/>
+                        <el-input value="******************" class="filter-item"/>
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
                       <el-form-item label="出生日期:" label-width="120px" class="postInfo-container-item">
                         <el-date-picker
-                          v-model="postForm.birthday"
+                          value="********"
                           type="date"
                           value-format="yyyy-MM-dd"
                           style="width: 100%"
@@ -95,7 +95,7 @@
               message: '联系电话格式有误!',
               trigger: 'blur'}]"
                                     label-width="120px" class="postInfo-container-item">
-                        <el-input v-model="postForm.mobile" class="filter-item"/>
+                        <el-input value="***********" class="filter-item"/>
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
@@ -119,7 +119,7 @@
                         label-width="120px"
                         class="postInfo-container-item"
                       >
-                        <el-input v-model="postForm.nativePlace" class="filter-item"/>
+                        <el-input value="****" class="filter-item"/>
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="12" :lg="6" :span="6">
@@ -129,7 +129,7 @@
                         label-width="120px"
                         class="postInfo-container-item"
                       >
-                        <el-input v-model="postForm.homeAddress" class="filter-item" style="width: 480px"/>
+                        <el-input value="***********************" class="filter-item" style="width: 480px"/>
                       </el-form-item>
                     </el-col>
                     <el-button type="primary" style="margin-left: 300px" @click="openDialog">修改密码</el-button>