From f0c249c2fcdb016b7313655e135c74620b5097a8 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 26 五月 2025 14:18:07 +0800
Subject: [PATCH] 提交

---
 company/src/api/business/settleRisk.js                      |   20 +
 company/src/components/business/adjustment.vue              |  108 ++++--
 company/src/components/business/compensationDetails.vue     |  227 ++++++++++++++
 company/.env.developmentCom                                 |    2 
 company/src/components/business/paymentInformation.vue      |   96 ++++++
 company/src/views/business/settleClaims.vue                 |    2 
 company/src/components/business/makePayment.vue             |  113 +++++++
 company/src/components/business/OperaSettleClaimsWindow.vue |  333 ++++++++++++++++++++
 company/.env.development                                    |    2 
 9 files changed, 848 insertions(+), 55 deletions(-)

diff --git a/company/.env.development b/company/.env.development
index 80d74d9..007b8c2 100644
--- a/company/.env.development
+++ b/company/.env.development
@@ -12,4 +12,4 @@
 # VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
 
 # 浠诲悍
-VUE_APP_API = 'http://192.168.0.143:10030/'
+VUE_APP_API = 'http://192.168.0.129:10030/'
diff --git a/company/.env.developmentCom b/company/.env.developmentCom
index a5a651b..98cdb4a 100644
--- a/company/.env.developmentCom
+++ b/company/.env.developmentCom
@@ -9,6 +9,6 @@
 
 # VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
 
-VUE_APP_API = 'http://192.168.0.143:10031/'
+VUE_APP_API = 'http://192.168.0.129:10031/'
 
 # VUE_APP_API = 'https://www.yyb.red/yyb_web_api/'
diff --git a/company/src/api/business/settleRisk.js b/company/src/api/business/settleRisk.js
index 233f884..0f908f4 100644
--- a/company/src/api/business/settleRisk.js
+++ b/company/src/api/business/settleRisk.js
@@ -90,3 +90,23 @@
 export function nuclearCompensation (data) {
     return request.post('/business/settleRisk/nuclearCompensation', data)
 }
+
+// 淇敼閲戦
+export function updFee (data) {
+    return request.post('/business/settleRisk/updFee', data)
+}
+
+// 纭閲戦
+export function confirmFee (id) {
+    return request.get(`/business/settleRisk/confirmFee?id=${id}`)
+}
+
+// 缁撴鎻愪氦
+export function payCash (data) {
+    return request.post('/business/settleRisk/payCash', data)
+}
+
+// 淇敼鏀舵淇℃伅
+export function updReceiveInfo (data) {
+    return request.post('/business/settleRisk/updReceiveInfo', data)
+}
diff --git a/company/src/components/business/OperaSettleClaimsWindow.vue b/company/src/components/business/OperaSettleClaimsWindow.vue
index 4d6201b..922b4f5 100644
--- a/company/src/components/business/OperaSettleClaimsWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsWindow.vue
@@ -19,7 +19,80 @@
                     </div>
                 </div>
             </div>
-            <div class="box_desc">
+            <template v-if="userInfo.type === 1">
+                <div class="box_tui">
+                    <span class="box_tui_status">宸查��鍥�</span>
+                    <div class="box_tui_title">閫�鍥炶鏄�</div>
+                    <div class="box_tui_info">鏃堕棿锛�2025-03-11 12:23</div>
+                    <div class="box_tui_info">浜哄憳锛氬钩鍙扮悊璧斾汉鍛�-寮犱笁-18876784433</div>
+                    <div class="box_tui_row"><div class="yuan"></div>浣忛櫌鐥呭巻鏉愭枡涓嶅畬鏁达紝璇疯ˉ鍏�2025骞�1鏈�1鏃ヨ嚦2鏈�1鏃ユ棩鏈熼棿鐨勪綇闄㈣褰�</div>
+                </div>
+                <div class="box_dk" v-if="info.status === 13">
+                    <div class="box_dk_title">
+                        <i class="el-icon-success"></i>
+                        <span>宸叉墦娆�</span>
+                    </div>
+                    <div class="box_dk_list">
+                        <div class="box_dk_list_row">
+                            <div class="box_dk_list_row_label">鎵撴鏃堕棿锛�</div>
+                            <div class="box_dk_list_row_value">2025-06-08 09:52</div>
+                        </div>
+                        <div class="box_dk_list_row">
+                            <div class="box_dk_list_row_label">鎵撴璇存槑锛�</div>
+                            <div class="box_dk_list_row_value">杩欓噷鏄墦娆捐鏄�</div>
+                        </div>
+                        <div class="box_dk_list_row">
+                            <div class="box_dk_list_row_label">鎵撴鍑瘉锛�</div>
+                            <div class="box_dk_list_row_l">
+                                <div class="box_dk_list_row_l_img">
+                                    <img src="" alt="">
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+                <div class="box_comInfo" v-if="[10,11,12].includes(info.status)">
+                    <div class="box_comInfo_title">
+                        <i class="el-icon-info"></i>
+                        <span>閲嶈鎻愮ず</span>
+                    </div>
+                    <div class="box_comInfo_text">
+                        <span>鈥� 璧斾粯娆鹃」灏嗗湪纭鍚� 1-3 涓伐浣滄棩鍐呭埌璐�</span>
+                        <span>鈥� 璇风‘璁ゆ敹娆捐处鎴蜂俊鎭噯纭棤璇�</span>
+                        <span>鈥� 濡傛湁鐤戦棶璇峰強鏃惰仈绯诲鏈� 0551-77738493</span>
+                    </div>
+                </div>
+                <div class="box_price" v-if="[10,11,12].includes(info.status)">
+                    <span class="box_price_title">璧斾粯閲戦{{[11].includes(info.status) ? '寰呯‘璁�' : '宸茬‘璁�'}}</span>
+                    <span class="box_price_jine">楼{{info.hpAccount + info.hpOtherAccount}}</span>
+                    <el-button type="text" style="margin-bottom: 5px;" @click="$refs.compensationDetails.open('璧斾粯璇︽儏', info.hpAccountContent)">鏌ョ湅璧斾粯璇︽儏</el-button>
+                    <el-button type="primary" @click="confirmFeeInfo" v-if="[11].includes(info.status)">纭</el-button>
+                </div>
+                <div class="box_sinfo" v-if="[10,11,12].includes(info.status)">
+                    <div class="box_sinfo_title">
+                        <span>鏀舵淇℃伅</span>
+                        <span @click="$refs.paymentInformation.open('淇敼鏀舵淇℃伅', {
+                            id: info.id,
+                            receiveBank: info.receiveBank,
+                            receiveAccount: info.receiveAccount,
+                            receiveUserName: info.receiveUserName
+                        })">淇敼</span>
+                    </div>
+                    <div class="box_sinfo_row">
+                        <div class="box_sinfo_row_label">寮�鎴烽摱琛岋細</div>
+                        <div class="box_sinfo_row_val">{{info.receiveBank}}</div>
+                    </div>
+                    <div class="box_sinfo_row">
+                        <div class="box_sinfo_row_label">璐﹀彿锛�</div>
+                        <div class="box_sinfo_row_val">{{info.receiveAccount}}</div>
+                    </div>
+                    <div class="box_sinfo_row">
+                        <div class="box_sinfo_row_label">鎴峰悕锛�</div>
+                        <div class="box_sinfo_row_val">{{info.receiveUserName}}</div>
+                    </div>
+                </div>
+            </template>
+            <div class="box_desc" v-if="[9,10].includes(info.status)">
                 <div class="box_desc_head">
                     <div class="box_desc_title">
                         <i class="el-icon-success"></i>
@@ -50,30 +123,36 @@
                             <i class="el-icon-warning"></i>
                             <span>椋庨櫓妗堜欢</span>
                         </div>
-                        <el-select v-model="info.caseType" @change="setCaseType" style="width: 100px;" placeholder="妗堜欢绫诲瀷" v-if="[9,10,11].includes(info.status)">
-                            <el-option label="鍖荤枟" :value="1"></el-option>
-                            <el-option label="浼ゆ畫" :value="2"></el-option>
-                            <el-option label="姝讳骸" :value="3"></el-option>
-                        </el-select>
+                        <template v-if="userInfo.type === 0">
+                            <el-select v-model="info.caseType" @change="setCaseType" style="width: 100px;" placeholder="妗堜欢绫诲瀷" v-if="[9,10,11].includes(info.status)">
+                                <el-option label="鍖荤枟" :value="1"></el-option>
+                                <el-option label="浼ゆ畫" :value="2"></el-option>
+                                <el-option label="姝讳骸" :value="3"></el-option>
+                            </el-select>
+                        </template>
                     </div>
                     <div class="box_desc_btns">
                         <template v-if="userInfo.type === 1">
-                            <el-button type="danger" @click="revoke()" v-if="[1,2,3,4,5,9,7,10,11].includes(info.status)">鎾ら攢鎶ユ</el-button>
+                            <el-button type="danger" @click="revoke()" v-if="[1,2,3,4,5,9,7,10].includes(info.status)">鎾ら攢鎶ユ</el-button>
+                            <el-button type="primary" @click="addReport(1)" v-if="[3].includes(info.status) && info.reportNumStatus === 0">娣诲姞鎶ユ鍙�</el-button>
+                            <el-button type="primary" @click="$refs.additionMaterial_ba.open('琛ュ厖鏉愭枡', info.id)" v-if="[3].includes(info.status)">琛ュ厖鏉愭枡</el-button>
                         </template>
                         <template v-if="userInfo.type === 0">
                             <el-button type="danger" @click="returnCase" v-if="[1,2].includes(info.status)">閫�鍥�</el-button>
                             <el-button type="primary" @click="register" v-if="[1,2].includes(info.status)">绔嬫</el-button>
                             <el-button type="primary" @click="$refs.acceptance.open('妗堜欢鍙楃悊', info.id)" v-if="[3,5].includes(info.status)">鍙楃悊</el-button>
-                            <el-button type="primary" @click="addRemark" v-if="![0,1,2,4,14].includes(info.status)">澶囨敞</el-button>
+                            <el-button type="primary" @click="addRemark" v-if="![0,1,2,4,13,14].includes(info.status)">澶囨敞</el-button>
                             <el-button type="primary" @click="addReport(1)" v-if="[3].includes(info.status) && info.reportNumStatus === 0">娣诲姞鎶ユ鍙�</el-button>
                             <el-button type="primary" @click="addReport(2)" v-if="[9].includes(info.status) && info.reportNumStatus === 1">缂栬緫鎶ユ鍙�</el-button>
                             <el-button type="primary" @click="$refs.adjustment.open('鐞嗙畻', info.id, 1)" v-if="[9].includes(info.status)">鐞嗙畻</el-button>
                             <el-button type="primary" @click="$refs.adjustment.open('閲嶆柊鐞嗙畻', info.id, 1)" v-if="[10].includes(info.status)">閲嶆柊鐞嗙畻</el-button>
                             <el-button type="primary" @click="$refs.adjustment.open('鏍歌禂', info.id, 2)" v-if="[10].includes(info.status)">鏍歌禂</el-button>
+                            <el-button type="primary" @click="$refs.adjustment.open('淇敼閲戦', info.id, 2)" v-if="[11,12].includes(info.status)">淇敼閲戦</el-button>
+                            <el-button type="primary" @click="$refs.makePayment.open('鎵撴', info.id)" v-if="[12].includes(info.status)">鎵撴</el-button>
                             <el-button type="primary" @click="supplementaryMaterials" v-if="[9].includes(info.status)">琛ュ厖鏉愭枡</el-button>
                             <el-button type="primary" @click="$refs.additionMaterial_ba.open('娣诲姞鏉愭枡', info.id)" v-if="[9,10].includes(info.status)">娣诲姞鏉愭枡</el-button>
                         </template>
-                        <el-button icon="el-icon-refresh-left" type="primary" circle @click="$refs.caseProgress.open('妗堜欢杩涘害', info.settleClaimsLogList)" v-if="![0,14].includes(info.status)"></el-button>
+                        <el-button icon="el-icon-refresh-left" type="primary" circle @click="$refs.caseProgress.open('妗堜欢杩涘害', info.settleClaimsLogList)" v-if="![0,13,14].includes(info.status)"></el-button>
                     </div>
                 </div>
                 <div class="box_desc_list">
@@ -278,6 +357,12 @@
         <AdditionMaterial_ba ref="additionMaterial_ba" @success="getDetail" />
         <!--    鐞嗙畻    -->
         <adjustment ref="adjustment" @success="getDetail" />
+        <!--  璧斾粯璇︽儏  -->
+        <CompensationDetails ref="compensationDetails" />
+        <!--    淇敼鏀舵淇℃伅    -->
+        <PaymentInformation ref="paymentInformation" @success="getDetail" />
+        <!--   鎵撴     -->
+        <MakePayment ref="makePayment" @success="getDetail" />
     </GlobalWindow>
 </template>
 
@@ -290,18 +375,23 @@
     addReportNum,
     addRemark,
     saveSupplementDescribe,
-    updCaseType } from '@/api/business/settleRisk'
+    updCaseType,
+    confirmFee,
+    payCash } from '@/api/business/settleRisk'
 import RiskCaseReminder from '@/components/business/riskCaseReminder'
 import CaseProgress from '@/components/business/caseProgress'
 import Acceptance from '@/components/business/acceptance'
 import AdditionMaterial_ba from '@/components/business/additionMaterial_ba'
 import adjustment from '@/components/business/adjustment'
+import CompensationDetails from '@/components/business/compensationDetails'
+import PaymentInformation from '@/components/business/paymentInformation'
+import MakePayment from '@/components/business/makePayment'
 import { mapState } from 'vuex'
 
 export default {
   name: 'OperaSettleClaimsWindow',
   extends: BaseOpera,
-  components: { GlobalWindow, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
+  components: { GlobalWindow, MakePayment, PaymentInformation, CompensationDetails, RiskCaseReminder, CaseProgress, Acceptance, AdditionMaterial_ba, adjustment },
   data () {
     return {
         show: false,
@@ -498,7 +588,21 @@
               case 3:
                   return '鎰忓鍙椾激'
           }
-      }
+      },
+      confirmFeeInfo() {
+          this.$confirm('鏄惁纭璧斾粯閲戦?', '鎻愮ず', {
+              confirmButtonText: '纭畾',
+              cancelButtonText: '鍙栨秷',
+              type: 'warning'
+          }).then(() => {
+              confirmFee(this.id)
+                  .then(res => {
+                      this.getDetail()
+                  })
+          }).catch(() => {
+
+          });
+      },
   }
 }
 </script>
@@ -506,6 +610,209 @@
 <style lang="scss" scoped>
     .box {
         width: 100%;
+        .box_tui {
+            width: 100%;
+            padding: 17px 0;
+            box-sizing: border-box;
+            margin-bottom: 30px;
+            .box_tui_status {
+                padding: 3px 8px;
+                border-radius: 15px;
+                background-color: rgba(254,226,225,1);
+                color: rgba(153,27,27,1);
+                font-size: 12px;
+            }
+            .box_tui_title {
+                color: rgba(16,16,16,1);
+                font-size: 16px;
+                margin-top: 15px;
+            }
+            .box_tui_info {
+                color: rgba(154,154,154,1);
+                font-size: 14px;
+                margin-top: 10px;
+            }
+            .box_tui_row {
+                color: rgba(16,16,16,1);
+                font-size: 14px;
+                margin-top: 10px;
+                display: flex;
+                align-items: center;
+                .yuan {
+                    width: 5px;
+                    height: 5px;
+                    border-radius: 50%;
+                    margin-right: 5px;
+                    background-color: rgba(153,27,27,1);
+                }
+            }
+        }
+        .box_dk {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            margin-bottom: 30px;
+            .box_dk_title {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                margin-bottom: 12px;
+                i {
+                    font-size: 20px;
+                    margin-right: 5px;
+                    color: #34C758;
+                }
+                span {
+                    color: rgba(52,199,88,1);
+                    font-size: 18px;
+                }
+            }
+            .box_dk_list {
+                width: 100%;
+                display: flex;
+                flex-direction: column;
+                .box_dk_list_row {
+                    width: 100%;
+                    display: flex;
+                    align-items: start;
+                    margin-bottom: 15px;
+                    &:last-child {
+                        margin: 0 !important;
+                    }
+                    .box_dk_list_row_label {
+                        flex-shrink: 0;
+                        color: rgba(16,16,16,1);
+                        font-size: 14px;
+                    }
+                    .box_dk_list_row_value {
+                        flex: 1;
+                        color: rgba(16,16,16,1);
+                        font-size: 14px;
+                    }
+                    .box_dk_list_row_l {
+                        flex: 1;
+                        display: flex;
+                        align-items: center;
+                        flex-wrap: wrap;
+                        .box_dk_list_row_l_img {
+                            width: 80px;
+                            height: 80px;
+                            display: flex;
+                            align-items: center;
+                            justify-content: center;
+                            overflow: hidden;
+                            margin-right: 15px;
+                            margin-bottom: 15px;
+                            img {
+                                width: 100%;
+                                height: 100%;
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        .box_sinfo {
+            width: 100%;
+            display: flex;
+            flex-direction: column;
+            margin-bottom: 30px;
+            .box_sinfo_title {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                margin-bottom: 26px;
+                span {
+                    &:nth-child(1) {
+                        color: rgba(16,16,16,1);
+                        font-size: 16px;
+                        margin-right: 10px;
+                    }
+                    &:nth-child(2) {
+                        color: rgba(22,93,255,1);
+                        font-size: 14px;
+                        cursor: pointer;
+                        text-decoration: underline;
+                    }
+                }
+            }
+            .box_sinfo_row {
+                width: 100%;
+                margin-bottom: 15px;
+                display: flex;
+                align-items: center;
+                .box_sinfo_row_label {
+                    flex-shrink: 0;
+                    color: rgba(154,154,154,1);
+                    font-size: 14px;
+                }
+                .box_sinfo_row_val {
+                    flex: 1;
+                    color: rgba(16,16,16,1);
+                    font-size: 14px;
+                }
+            }
+        }
+        .box_price {
+            width: 100%;
+            padding: 30px 0;
+            background-color: #ffffff;
+            display: flex;
+            flex-direction: column;
+            align-items: center;
+            justify-content: center;
+            margin-bottom: 30px;
+            border-bottom: 1px solid #ececec;
+            .box_price_title {
+                color: rgba(16,16,16,1);
+                font-size: 20px;
+                margin-bottom: 10px;
+            }
+            .box_price_jine {
+                color: rgba(255,162,63,1);
+                font-size: 29px;
+                margin-bottom: 10px;
+            }
+        }
+        .box_comInfo {
+            width: 100%;
+            padding: 11px 21px;
+            box-sizing: border-box;
+            background-color: rgba(240,246,254,1);
+            display: flex;
+            flex-direction: column;
+            margin-bottom: 30px;
+            .box_comInfo_title {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                margin-bottom: 12px;
+                i {
+                    color: #165DFF;
+                    font-size: 20px;
+                    margin-right: 5px;
+                }
+                span {
+                    color: rgba(16,16,16,1);
+                    font-size: 14px;
+                }
+            }
+            .box_comInfo_text {
+                width: 100%;
+                padding-left: 20px;
+                box-sizing: border-box;
+                display: flex;
+                flex-direction: column;
+                span {
+                    color: rgba(16,16,16,1);
+                    font-size: 14px;
+                    margin-bottom: 10px;
+                    &:last-child {
+                        margin: 0 !important;
+                    }
+                }
+            }
+        }
         .box_status {
             width: 100%;
             padding: 30px 0;
@@ -513,7 +820,7 @@
             display: flex;
             align-items: start;
             justify-content: center;
-            margin-bottom: 30px;
+            /*margin-bottom: 30px;*/
             .box_status_row {
                 width: 200px;
                 display: flex;
diff --git a/company/src/components/business/adjustment.vue b/company/src/components/business/adjustment.vue
index 3a87412..03fef14 100644
--- a/company/src/components/business/adjustment.vue
+++ b/company/src/components/business/adjustment.vue
@@ -2,13 +2,13 @@
     <GlobalWindow
         :title="title"
         width="100%"
-        :text="`${type === 1 ? '瀹屾垚鐞嗙畻' : '瀹屾垚鏍歌禂'}`"
+        :text="`${title === '淇敼閲戦' ? '鎻愪氦' : type === 1 ? '瀹屾垚鐞嗙畻' : '瀹屾垚鏍歌禂'}`"
         :visible.sync="visible"
         :confirm-working="isWorking"
         @confirm="confirm"
     >
         <div class="box">
-            <el-form :model="form" ref="ruleForm" label-width="150px" class="demo-ruleForm">
+            <el-form :model="form" ref="form" :rules="rules" label-width="150px" class="demo-ruleForm">
                 <div class="box_item">
                     <div class="box_item_desc">涓昏璧斾粯椤�</div>
                     <div class="box_item_list">
@@ -37,6 +37,9 @@
                         <span>楼{{totalPrice}}</span>
                     </div>
                 </div>
+                <el-form-item label="淇敼璇存槑" prop="describe" v-if="title === '淇敼閲戦'">
+                    <el-input v-model="form.describe" placeholder="璇疯緭鍏�" type="textarea" row="5"></el-input>
+                </el-form-item>
             </el-form>
         </div>
     </GlobalWindow>
@@ -45,7 +48,7 @@
 <script>
     import BaseOpera from '@/components/base/BaseOpera'
     import GlobalWindow from '@/components/common/GlobalWindow'
-    import { compensation, getCompensation, nuclearCompensation } from '@/api/business/settleRisk'
+    import { compensation, getCompensation, nuclearCompensation, updFee } from '@/api/business/settleRisk'
     export default {
         name: 'acceptance',
         extends: BaseOpera,
@@ -53,7 +56,13 @@
         data () {
             return {
                 form: {
-                    id: null
+                    id: null,
+                    describe: ''
+                },
+                rules: {
+                    describe: [
+                        { required: true, message: '淇敼璇存槑涓嶈兘涓虹┖', trigger: 'blur' }
+                    ]
                 },
                 type: '',
                 list1: [],
@@ -66,6 +75,9 @@
                 this.type = type
                 this.title = title
                 this.form.id = id
+                this.$nextTick(() => {
+                    this.$refs.form.resetFields();
+                })
                 getCompensation({ type, id: this.form.id })
                     .then(res => {
                         res.forEach(item => {
@@ -90,42 +102,60 @@
                 this.totalPrice = price
             },
             confirm() {
-                let arr = [...this.list1, ...this.list2]
-                for (let i = 0; i < arr.length; i++) {
-                    if (!arr[i].fee && arr[i].fee !== 0) {
-                        return this.$message.warning(`璇峰厛瀹屽杽${arr[i].name}閲戦`)
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        let arr = [...this.list1, ...this.list2]
+                        for (let i = 0; i < arr.length; i++) {
+                            if (!arr[i].fee && arr[i].fee !== 0) {
+                                return this.$message.warning(`璇峰厛瀹屽杽${arr[i].name}閲戦`)
+                            }
+                        }
+                        this.isWorking = true
+                        let compensationJson = JSON.stringify(arr)
+                        if (this.title === '淇敼閲戦') {
+                            updFee({ id: this.form.id, compensationJson, describe: this.form.describe })
+                                .then(() => {
+                                    this.visible = false
+                                    this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                                    this.$emit('success')
+                                })
+                                .catch(e => {
+                                    this.$tip.apiFailed(e)
+                                })
+                                .finally(() => {
+                                    this.isWorking = false
+                                })
+                            return
+                        }
+                        if (this.type === 1) {
+                            compensation({ id: this.form.id, compensationJson })
+                                .then(() => {
+                                    this.visible = false
+                                    this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                                    this.$emit('success')
+                                })
+                                .catch(e => {
+                                    this.$tip.apiFailed(e)
+                                })
+                                .finally(() => {
+                                    this.isWorking = false
+                                })
+                        } else if (this.type === 2) {
+                            nuclearCompensation({ id: this.form.id, compensationJson })
+                                .then(() => {
+                                    this.visible = false
+                                    this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                                    this.$emit('success')
+                                })
+                                .catch(e => {
+                                    this.$tip.apiFailed(e)
+                                })
+                                .finally(() => {
+                                    this.isWorking = false
+                                })
+                        }
                     }
-                }
-                this.isWorking = true
-                let compensationJson = JSON.stringify(arr)
-                if (this.type === 1) {
-                    compensation({ id: this.form.id, compensationJson })
-                        .then(() => {
-                            this.visible = false
-                            this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
-                            this.$emit('success')
-                        })
-                        .catch(e => {
-                            this.$tip.apiFailed(e)
-                        })
-                        .finally(() => {
-                            this.isWorking = false
-                        })
-                } else if (this.type === 2) {
-                    nuclearCompensation({ id: this.form.id, compensationJson })
-                        .then(() => {
-                            this.visible = false
-                            this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
-                            this.$emit('success')
-                        })
-                        .catch(e => {
-                            this.$tip.apiFailed(e)
-                        })
-                        .finally(() => {
-                            this.isWorking = false
-                        })
-                }
-
+                });
             }
         }
     }
diff --git a/company/src/components/business/compensationDetails.vue b/company/src/components/business/compensationDetails.vue
new file mode 100644
index 0000000..469a6d8
--- /dev/null
+++ b/company/src/components/business/compensationDetails.vue
@@ -0,0 +1,227 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <el-table
+            :data="list"
+            border
+            summary-method
+            style="width: 100%">
+            <el-table-column
+                prop="name"
+                label="璧斾粯椤圭洰"
+                width="180">
+            </el-table-column>
+            <el-table-column
+                prop="fee"
+                label="璧斾粯閲戦(鍏�)"
+                width="180">
+            </el-table-column>
+            <el-table-column
+                prop="describe"
+                label="璐圭敤璇存槑">
+            </el-table-column>
+        </el-table>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    export default {
+        name: 'compensationDetails',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                list: []
+            }
+        },
+        methods: {
+            open (title, data) {
+                this.title = title
+                let res = JSON.parse(data)
+                this.list = res.filter(item => [0,1].includes(item.type))
+                this.visible = true
+            }
+        }
+    }
+</script>
+
+<style scoped lang="scss">
+    .box {
+        width: 100%;
+        .box_item {
+            width: 100%;
+            margin-bottom: 30px;
+            .box_item_title {
+                width: 100%;
+                margin-bottom: 15px;
+                span {
+                    color: rgba(16,16,16,1);
+                    font-size: 16px;
+                    margin-right: 10px;
+                }
+            }
+            .box_item_desc {
+                width: 100%;
+                padding-left: 50px;
+                box-sizing: border-box;
+                color: rgba(16,16,16,1);
+                font-size: 14px;
+                margin-bottom: 15px;
+            }
+            .price {
+                width: 100%;
+                height: 62px;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                border-radius: 4px;
+                background-color: rgba(239,239,239,1);
+                margin-top: 50px;
+                padding: 0 20px;
+                box-sizing: border-box;
+                span {
+                    &:nth-child(1) {
+                        color: rgba(16,16,16,1);
+                        font-size: 18px;
+                    }
+                    &:nth-child(2) {
+                        color: rgba(255,149,2,1);
+                        font-size: 22px;
+                    }
+                }
+            }
+            .button {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                justify-content: end;
+                margin-top: 15px;
+                .button_submit {
+                    width: 108px;
+                    height: 38px;
+                    line-height: 38px;
+                    text-align: center;
+                    border-radius: 4px;
+                    color: rgba(255,255,255,1);
+                    font-size: 14px;
+                    background-color: rgba(31,99,255,1);
+                }
+            }
+            .box_item_list {
+                width: 100%;
+                display: flex;
+                align-items: center;
+                flex-wrap: wrap;
+                justify-content: space-between;
+                .box_item_list_rowx {
+                    width: 33.3%;
+                    height: 0;
+                }
+                .box_item_list_row {
+                    width: 33.3%;
+                    .box_item_list_row_l {
+                        width: 100%;
+                        display: flex;
+                        align-items: center;
+                        flex-wrap: wrap;
+                        .desc_data_list_item {
+                            width: 100px;
+                            height: 100px;
+                            padding: 10px;
+                            box-sizing: border-box;
+                            border: 1px solid #e2e2e2;
+                            display: flex;
+                            flex-direction: column;
+                            align-items: center;
+                            justify-content: center;
+                            position: relative;
+                            margin-bottom: 10px;
+                            margin-left: 10px;
+                            &:first-child {
+                                margin-left: 0 !important;
+                            }
+                            .desc_data_list_item_dele {
+                                position: absolute;
+                                top: 5px;
+                                right: 5px;
+                                font-size: 14px;
+                                cursor: pointer;
+                                color: rgba(249, 86, 1, 0.996078431372549);
+                            }
+                            .desc_data_list_item_upload {
+                                flex: 1;
+                                height: 80px;
+                                display: flex;
+                                align-items: center;
+                                justify-content: center;
+                            }
+                            .desc_data_list_item_img {
+                                flex-shrink: 0;
+                                width: 70px;
+                                height: 70px;
+                                display: flex;
+                                align-items: center;
+                                justify-content: center;
+                                overflow: hidden;
+                                margin-right: 10px;
+                                .el-icon-folder-opened {
+                                    font-size: 34px;
+                                    color: #666666;
+                                }
+                                .el-icon-plus {
+                                    font-size: 26px;
+                                    color: #ffffff;
+                                }
+                                img {
+                                    width: 100%;
+                                }
+                                video {
+                                    width: 100%;
+                                }
+                            }
+                            .desc_data_list_item_info {
+                                width: 100%;
+                                display: flex;
+                                flex-direction: column;
+                                justify-content: space-between;
+                                word-break: break-all;
+                                span {
+                                    width: 100%;
+                                    white-space: nowrap;
+                                    overflow: hidden;
+                                    text-overflow: ellipsis;
+                                    font-size: 14px;
+                                    color: black;
+                                }
+                            }
+                        }
+                    }
+                    .box_item_list_row_title {
+                        width: 100%;
+                        display: flex;
+                        align-items: center;
+                        margin-bottom: 20px;
+                        .x {
+                            width: 1px;
+                            height: 14px;
+                            background-color: rgba(255,255,255,1);
+                            border: 4px solid rgba(22,93,255,1);
+                            margin-right: 10px;
+                        }
+                        span {
+                            color: rgba(16,16,16,1);
+                            font-size: 14px;
+                        }
+                    }
+                }
+            }
+        }
+    }
+</style>
diff --git a/company/src/components/business/makePayment.vue b/company/src/components/business/makePayment.vue
new file mode 100644
index 0000000..ca29490
--- /dev/null
+++ b/company/src/components/business/makePayment.vue
@@ -0,0 +1,113 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="500px"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <div class="dakuan">
+            <el-form :model="form" :rules="rules" ref="form" label-width="100px" class="demo-ruleForm">
+                <el-form-item label="鎵撴璇存槑" prop="describe">
+                    <el-input v-model="form.describe" placeholder="璇疯緭鍏�"></el-input>
+                </el-form-item>
+                <el-form-item label="鎵撴鍑瘉" prop="multifileList">
+                    <div style="width: 100%; display: flex; align-items: center;">
+                        <el-upload
+                            :action="uploadImgUrl"
+                            list-type="picture-card"
+                            accept=".png,.jpg"
+                            :file-list="form.multifileList"
+                            :data="uploadData"
+                            :on-success="handleAvatarSuccess"
+                            :on-error="uploadError"
+                            :before-remove="removeRow">
+                            <i class="el-icon-plus"></i>
+                        </el-upload>
+<!--                        <upload width="100px" height="100px" :list="[]" accept=".png,.jpg,.jpeg" folder="settle" @success="claimsUploadFile" />-->
+                    </div>
+                </el-form-item>
+            </el-form>
+        </div>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import { payCash } from '@/api/business/settleRisk'
+    export default {
+        name: 'makePayment',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/public/upload',
+                uploadData: {
+                    folder: 'settle'
+                },
+                // 琛ㄥ崟鏁版嵁
+                form: {
+                    id: null,
+                    describe: '',
+                    multifileList: []
+                },
+                // 楠岃瘉瑙勫垯
+                rules: {
+                    describe: [
+                        { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
+                    ]
+                }
+            }
+        },
+        methods: {
+            open(title, id) {
+                this.title = title
+                this.form.id = id
+                this.form.describe = ''
+                this.form.multifileList = []
+                this.visible = true
+            },
+            // 涓婁紶鍥剧墖
+            handleAvatarSuccess(res) {
+                this.form.multifileList.push({...res.data, fileurl: res.data.imgaddr})
+            },
+            uploadError() {
+                this.$tip.apiFailed('涓婁紶澶辫触')
+            },
+            removeRow(e) {
+                this.form.multifileList.forEach((item, index) => {
+                    if (item.imgaddr === e.imgaddr) {
+                        this.form.multifileList.splice(index, 1)
+                    }
+                })
+            },
+            confirm() {
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        this.isWorking = true
+                        payCash(this.form)
+                            .then(() => {
+                                this.visible = false
+                                this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                                this.$emit('success')
+                            })
+                            .catch(e => {
+                                this.$tip.apiFailed(e)
+                            })
+                            .finally(() => {
+                                this.isWorking = false
+                            })
+                    }
+                });
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .dakuan {
+        width: 100%;
+
+    }
+</style>
diff --git a/company/src/components/business/paymentInformation.vue b/company/src/components/business/paymentInformation.vue
new file mode 100644
index 0000000..b6b9e19
--- /dev/null
+++ b/company/src/components/business/paymentInformation.vue
@@ -0,0 +1,96 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="500px"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <el-form ref="form" :model="form" :rules="rules" label-width="90px" inline>
+            <el-form-item label="寮�鎴烽摱琛�" prop="receiveBank">
+                <el-input v-model="form.receiveBank" style="width: 100%;" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+            <el-form-item label="璐﹀彿" prop="receiveAccount">
+                <el-input v-model="form.receiveAccount" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+            <el-form-item label="鎴峰悕" prop="receiveUserName">
+                <el-input v-model="form.receiveUserName" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+        </el-form>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import { updReceiveInfo } from '@/api/business/settleRisk'
+    export default {
+        name: 'paymentInformation',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                form: {
+                    id: null,
+                    receiveBank: '',
+                    receiveAccount: '',
+                    receiveUserName: ''
+                },
+                rules: {
+                    receiveBank: [
+                        { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
+                    ],
+                    receiveAccount: [
+                        { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
+                    ],
+                    receiveUserName: [
+                        { required: true, message: '涓嶈兘涓虹┖', trigger: 'blur' }
+                    ]
+                }
+            }
+        },
+        methods: {
+            open (title, target) {
+                this.title = title
+                this.visible = true
+                // 鏂板缓
+                if (target == null) {
+                    this.$nextTick(() => {
+                        this.$refs.form.resetFields()
+                        this.form[this.configData['field.id']] = null
+                    })
+                    return
+                }
+                // 缂栬緫
+                this.$nextTick(() => {
+                    for (const key in this.form) {
+                        this.form[key] = target[key]
+                    }
+                })
+            },
+            confirm() {
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        this.isWorking = true
+                        updReceiveInfo(this.form)
+                            .then(() => {
+                                this.visible = false
+                                this.$tip.apiSuccess('淇敼鎴愬姛')
+                                this.$emit('success')
+                            })
+                            .catch(e => {
+                                this.$tip.apiFailed(e)
+                            })
+                            .finally(() => {
+                                this.isWorking = false
+                            })
+                    }
+                });
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/company/src/views/business/settleClaims.vue b/company/src/views/business/settleClaims.vue
index 33c119d..7707daa 100644
--- a/company/src/views/business/settleClaims.vue
+++ b/company/src/views/business/settleClaims.vue
@@ -90,7 +90,7 @@
                         <el-button
                             type="text"
                             @click="revoke(row.id)"
-                            v-if="[1,2,3,4,5,9,7,10,11].includes(row.status) && userInfo.type === 1">
+                            v-if="[1,2,3,4,5,9,7,10].includes(row.status) && userInfo.type === 1">
                             鎾ら攢
                         </el-button>
                         <el-button type="text" @click="deleRow(row.id)" v-if="row.status === 0">鍒犻櫎</el-button>

--
Gitblit v1.9.3