From 78a173f85f8a4666d83cf8d900f04dd9f8e3e127 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 17 六月 2025 08:53:12 +0800
Subject: [PATCH] 提交一把订单
---
company/src/views/business/insuranceApply.vue | 279 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 206 insertions(+), 73 deletions(-)
diff --git a/company/src/views/business/insuranceApply.vue b/company/src/views/business/insuranceApply.vue
index 0b613b9..f7e8fe6 100644
--- a/company/src/views/business/insuranceApply.vue
+++ b/company/src/views/business/insuranceApply.vue
@@ -2,79 +2,132 @@
<TableLayout :permissions="['business:insuranceapply:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="淇濆崟鐘舵��" prop="status">
- <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @keypress.enter.native="search">
- <el-option label="寰呭鎵�" value="0"></el-option>
- <el-option label="寰呭嚭鍗�" value="3"></el-option>
- <el-option label="淇濋殰涓�" value="5"></el-option>
- <el-option label="宸茶繃鏈�" value="8"></el-option>
- <el-option label="宸查��鍥�" value="7"></el-option>
+ <el-form-item label="淇濆崟鐘舵��" prop="statusCollect">
+ <el-select v-model="statusCollect" placeholder="璇烽�夋嫨" @change="changeStatus">
+ <el-option
+ v-for="(item, index) in status"
+ :key="index"
+ :label="item.label"
+ :value="item.id" />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎶曚繚绫诲瀷" prop="solutionType">
+ <el-select v-model="searchForm.solutionType" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="鐩翠繚鎶曚繚" :value="0"></el-option>
+ <el-option label="濮旀墭鎶曚繚" :value="1"></el-option>
</el-select>
</el-form-item>
<el-form-item label="鎶曚繚浼佷笟" prop="companyId">
- <el-select v-model="searchForm.companyId" placeholder="璇烽�夋嫨" @change="search">
+ <el-select v-model="searchForm.companyId" filterable placeholder="璇烽�夋嫨" @change="search">
<el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ v-for="item in companyList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="淇濋櫓鏂规" prop="solutionId">
- <el-select v-model="searchForm.solutionId" placeholder="璇烽�夋嫨" @change="search">
+ <el-form-item label="淇濋櫓鏂规" prop="baseSolutionId">
+ <el-select v-model="searchForm.baseSolutionId" filterable placeholder="璇烽�夋嫨" @change="search">
<el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ v-for="item in solutionList"
+ :key="item.baseId"
+ :label="item.name"
+ :value="item.baseId">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="鎻愪氦鏃ユ湡" prop="createDate">
+ <el-form-item label="鎻愪氦鏃ユ湡" prop="time">
<el-date-picker
- v-model="searchForm.createDate"
- @change="search"
+ v-model="searchForm.time"
+ @change="changeTime"
type="daterange"
range-separator="鑷�"
value-format="yyyy-MM-dd"
start-placeholder="寮�濮嬫棩鏈�"
end-placeholder="缁撴潫鏃ユ湡">
</el-date-picker>
-<!-- <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="璇疯緭鍏ュ垱寤烘椂闂�"/>-->
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
<el-button @click="reset">閲嶇疆</el-button>
- <el-button @click="$refs.operaInsuranceApplyWindow.open('鎶曚繚璇︽儏')">鎶曚繚璇︽儏</el-button>
</section>
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <el-table
- v-loading="isWorking.search"
- :data="tableData.list"
- stripe
- >
- <el-table-column label="搴忓彿" width="80px">
- <template slot-scope="scope">
- <span>{{scope.$index + 1}}</span>
- </template>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="$refs.chooseCompany.open('閫夋嫨闇�瑕佹姇淇濈殑浼佷笟')">鏂板</el-button></li>
+ </ul>
+ <el-table
+ v-loading="isWorking.search"
+ :data="tableData.list"
+ stripe
+ >
+ <el-table-column label="搴忓彿" align="center" width="80px" fixed>
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
</el-table-column>
- <el-table-column prop="status" label="鎶曚繚鐘舵��" min-width="100px">
- <template slot-scope="{row}">
- <span v-if="row.status === 0">寰呭鏍�</span>
- <span v-if="row.status === 3">寰呭嚭鍗�</span>
- <span v-if="row.status === 5">淇濋殰涓�</span>
- <span v-if="row.status === 8">宸茶繃鏈�</span>
- <span v-if="row.status === 7">宸查��鍥�</span>
- </template>
+ <el-table-column prop="statusInfo" align="center" fixed label="鐘舵��">
+ <template slot-scope="{row}">
+ <span style="color: #666;" v-if="[9,25,27,5].includes(row.status) && ['宸插叧闂�','宸茶繃鏈�'].includes(row.statusInfo)">{{row.statusInfo}}</span>
+ <span style="color: red;" v-else-if="row.status === 4 && row.statusInfo === '宸查��鍥�'">{{ row.statusInfo}}</span>
+ <span style="color: #f95601;" v-else-if="[5,27].includes(row.status) && row.statusInfo === '寰呯敓鏁�'">{{ row.statusInfo}}</span>
+ <span style="color: #216EEE;" v-else-if="[12].includes(row.status) && row.statusInfo === '寰呭鏍�'">{{ row.statusInfo}}</span>
+ <span :class="'apply-status'+row.status" v-else>{{row.statusInfo}}</span>
+ </template>
</el-table-column>
- <el-table-column prop="companyId" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
- <el-table-column prop="solutionId" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鎶曚繚浜烘暟" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鎬昏垂鐢紙鍏冿級" min-width="100px"></el-table-column>
- <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
+ <el-table-column prop="companyName" v-if="userInfo.type === 0" fixed label="浼佷笟鍚嶇О" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="solutionsName" fixed label="淇濋櫓鏂规" align="center" min-width="150"></el-table-column>
+ <el-table-column label="绫诲瀷" fixed align="center">
+ <template slot-scope="{row}">
+ <span style="color: #00BA92" v-if="row.solutionType == 1">濮旀墭鎶曚繚</span>
+ <span style="color: #F95601;" v-else>鐩存帴鎶曚繚</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="淇濆崟鍙�" fixed>
+ <template slot-scope="{row}">
+ <span>{{row.code ? row.code : '-'}}</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="insureNum" align="center" label="鎶曚繚浜烘暟" >-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{(row.insureNum||0)}} 浜�</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column prop="guaranteeNum" align="center" label="褰撳墠鍦ㄤ繚浜烘暟" width="120">
+ <template slot-scope="{row}">
+ <span>{{(row.guaranteeNum||0)}} 浜�</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="guaranteeNum" align="center" label="鍦ㄤ繚浜烘暟" >-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{(row.guaranteeNum||0)}} 浜�</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column label="鎶曚繚鏃堕暱">
+ <template slot-scope="{row}">
+ <span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : (row.serviceDays - row.loseEfficacyDays+'澶�')}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="fee" label="鎵规敼璐圭敤鍚堣" align="center" width="120">
+ <template slot-scope="{row}">
+ <span>{{row.changeMoney+' 鍏�'}}</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="currentFee" label="宸蹭骇鐢熻垂鐢�" align="center">-->
+<!-- <template slot-scope="{row}">-->
+<!-- <span>{{row.currentFee!=null?row.currentFee+' 鍏�': '-'}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column prop="fee" label="鎬昏垂鐢�" align="center">
+ <template slot-scope="{row}">
+ <span>{{row.fee!=null?row.fee+' 鍏�': '-'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="createDate" label="鎻愪氦鏃ユ湡" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="startTime" label="鎶曚繚鐢熸晥鏃ユ湡" align="center" min-width="150"></el-table-column>
+ <el-table-column prop="endTime" label="鎶曚繚澶辨晥鏃ユ湡" align="center" min-width="150"></el-table-column>
<el-table-column
v-if="containPermissions(['business:insuranceapply:update', 'business:insuranceapply:delete'])"
label="鎿嶄綔"
@@ -82,7 +135,7 @@
fixed="right"
>
<template slot-scope="{row}">
- <el-button type="text" @click="$refs.operaInsuranceApplyWindow.open('缂栬緫鎶曚繚鐢宠淇℃伅琛�', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
+ <el-button type="text" @click="$refs.operaInsuranceApplyWindow.open('鎶曚繚璇︽儏', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">鏌ョ湅璇︽儏</el-button>
</template>
</el-table-column>
</el-table>
@@ -95,37 +148,117 @@
</template>
<!-- 鏂板缓/淇敼 -->
<OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handlePageChange"/>
+ <!-- 閫夋嫨浼佷笟 -->
+ <chooseCompany ref="chooseCompany" @submit="getVal" />
+ <!-- 鏂板鎶曚繚 -->
+ <OperaInsuranceApplyAddWindow ref="OperaInsuranceApplyAddWindow" @success="handlePageChange" />
</TableLayout>
</template>
<script>
- import BaseTable from '@/components/base/BaseTable'
- import TableLayout from '@/layouts/TableLayout'
- import Pagination from '@/components/common/Pagination'
- import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
- export default {
- name: 'InsuranceApply',
- extends: BaseTable,
- components: { TableLayout, Pagination, OperaInsuranceApplyWindow },
- data () {
- return {
- // 鎼滅储
- searchForm: {
- createDate: '',
- solutionId: '',
- companyId: '',
- status: ''
- }
- }
- },
- created () {
- this.config({
- module: '鎶曚繚鐢宠淇℃伅琛�',
- api: '/business/insuranceApply',
- 'field.id': 'id',
- 'field.main': 'id'
- })
- this.search()
+import BaseTable from '@/components/base/BaseTable'
+import TableLayout from '@/layouts/TableLayout'
+import Pagination from '@/components/common/Pagination'
+import { all as solutionAll} from '@/api/business/solutions'
+import { pageAll as companyAll} from '@/api/business/company'
+import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
+import OperaInsuranceApplyAddWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow'
+import chooseCompany from '@/components/common/chooseCompany'
+import { mapState } from 'vuex'
+export default {
+ name: 'InsuranceApply',
+ extends: BaseTable,
+ components: { TableLayout, Pagination, OperaInsuranceApplyWindow, chooseCompany, OperaInsuranceApplyAddWindow },
+ data () {
+ return {
+ // 鎼滅储
+ searchForm: {
+ createTimeS: '',
+ createTimeE: '',
+ time: [],
+ baseSolutionId: '',
+ solutionType: '',
+ companyId: '',
+ statusCollect: '',
+ },
+ statusCollect: '',
+ solutionList:[],
+ companyList:[],
+ status: [
+ { label: '寰呭鏍�', id: '0' },
+ { label: '寰呭嚭鍗�', id: '1' },
+ { label: '鎶曚繚涓�', id: '26' },
+ { label: '寰呯缃�', id: '7' },
+ { label: '寰呯敓鏁�', id: '2,0' },
+ { label: '淇濋殰涓�', id: '2,1' },
+ { label: '宸茶繃鏈�', id: '2,2' },
+ { label: '宸查��鍥�', id: '4' },
+ { label: '閫�鍥炵敵璇蜂腑', id: '5' },
+ { label: '宸插叧闂�', id: '6' },
+ ]
}
+ },
+ computed: {
+ ...mapState(['userInfo'])
+ },
+ created () {
+ this.config({
+ module: '鎶曚繚鐢宠淇℃伅琛�',
+ api: '/business/insuranceApply',
+ 'field.id': 'id',
+ 'field.main': 'id'
+ })
+ this.search()
+ this.loadSelectList()
+ },
+ methods:{
+ changeStatus(e) {
+ if (e.indexOf(',') !== -1) {
+ this.searchForm.timeOut = e.split(',')[1]
+ this.searchForm.statusCollect = e.split(',')[0]
+ } else {
+ this.searchForm.timeOut = ''
+ this.searchForm.statusCollect = e
+ }
+ this.search()
+ },
+ getVal(company) {
+ this.$refs.OperaInsuranceApplyAddWindow.open('鎶曚繚鐢宠', { type: '', companyName: company.companyName, companyId: company.companyId })
+ },
+ // 鎼滅储妗嗛噸缃�
+ reset () {
+ this.$refs.searchForm.resetFields()
+ this.statusCollect = ''
+ this.searchForm.timeOut = ''
+ this.searchForm.statusCollect = ''
+ this.searchForm.createTimeS = ''
+ this.searchForm.createTimeE = ''
+ this.search()
+ },
+ changeTime(e) {
+ if (e.length > 0) {
+ this.searchForm.createTimeS = e[0]
+ this.searchForm.createTimeE = e[1]
+ } else {
+ this.searchForm.createTimeS = ''
+ this.searchForm.createTimeE = ''
+ }
+ this.search()
+ },
+ // handlePageChange() {
+ // this.search()
+ // },
+ loadSelectList() {
+ solutionAll({dataType:2,type:0}).then(res => {
+ this.solutionList = res
+ }).catch(err => {
+ })
+ companyAll({}).then(res => {
+ this.companyList = res
+ }).catch(err => {
+ })
+ }
+
}
+}
</script>
--
Gitblit v1.9.3