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