From 4a9c70dde16036fd7e4e3c06bd8b9de98cc578e4 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 01 二月 2024 20:47:12 +0800
Subject: [PATCH] Mr.Shi
---
company/src/api/business/member.js | 7 +
company/src/views/business/member.vue | 121 ++++++++++++++++-------
company/src/components/business/OperaApplyChangeDetailWindow.vue | 22 ++--
company/src/components/enterprise/insuranceRecords.vue | 134 ++++++++++++++++++++++++++
company/src/components/business/OperaSettleClaimsWindow.vue | 4
5 files changed, 237 insertions(+), 51 deletions(-)
diff --git a/company/src/api/business/member.js b/company/src/api/business/member.js
index af5e1ba..c3b8581 100644
--- a/company/src/api/business/member.js
+++ b/company/src/api/business/member.js
@@ -26,3 +26,10 @@
export function findList (data) {
return request.post('/business/memberInsurance/findList', data)
}
+
+// 瀵煎嚭Excel
+export function exportExcel (data) {
+ return request.post('/business/memberInsurance/exportExcel', data, {
+ download: true
+ })
+}
diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
index 7b74b15..0d35a3a 100644
--- a/company/src/components/business/OperaApplyChangeDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -11,17 +11,14 @@
<div class="desc_item_label">
<div class="desc_item_label_left">
<span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
- <span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
-<<<<<<< HEAD
- <span v-if="model.status === 1">淇濆崟鐘舵�侊細寰呭鏍�</span>
- <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
-=======
- <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
- <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸茬敓鏁�</span>
->>>>>>> 35bd55ad951fe8c5fb997dfa7bd836ad53db96fe
- <span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
- <span v-if="model.status === 5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
- <span v-if="model.status === 7 || model.status === 6">淇濆崟鐘舵�侊細宸插叧闂�</span>
+ <span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
+ <span v-if="model.status === 1">淇濆崟鐘舵�侊細寰呭鏍�</span>
+ <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
+ <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+ <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸茬敓鏁�</span>
+ <span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
+ <span v-if="model.status === 5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
+ <span v-if="model.status === 7 || model.status === 6">淇濆崟鐘舵�侊細宸插叧闂�</span>
<span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
</div>
<div class="desc_item_label_right">
@@ -450,6 +447,9 @@
align-items: center;
justify-content: space-between;
margin-bottom: 10px;
+ .desc_item_label_left {
+ flex-shrink: 0;
+ }
span {
font-size: 14px;
color: black;
diff --git a/company/src/components/business/OperaSettleClaimsWindow.vue b/company/src/components/business/OperaSettleClaimsWindow.vue
index dfb5f0a..2dc87d3 100644
--- a/company/src/components/business/OperaSettleClaimsWindow.vue
+++ b/company/src/components/business/OperaSettleClaimsWindow.vue
@@ -27,8 +27,8 @@
<el-button type="danger" v-if="model.status !=1 && model.status !=4" @click="$refs.operaInsuranceApplyCheckWindow.open('鎾ら攢鐢宠',model,remarkLogList,3)">鎾ら攢鐢宠</el-button>
</template>
<template v-else>
- <el-button type="primary" @click="edit" v-if="model.status === 0">淇敼淇℃伅</el-button>
- <el-button type="primary" @click="$refs.supplementaryExplanation.open('琛ュ厖璇存槑', model.id)" v-if="model.status === 0">琛ュ厖璇存槑</el-button>
+ <el-button type="primary" @click="edit" v-if="model.status === 2">淇敼淇℃伅</el-button>
+ <el-button type="primary" @click="$refs.supplementaryExplanation.open('琛ュ厖璇存槑', model.id)" v-if="model.status === 2">琛ュ厖璇存槑</el-button>
</template>
</div>
</div>
diff --git a/company/src/components/enterprise/insuranceRecords.vue b/company/src/components/enterprise/insuranceRecords.vue
new file mode 100644
index 0000000..81016c5
--- /dev/null
+++ b/company/src/components/enterprise/insuranceRecords.vue
@@ -0,0 +1,134 @@
+<template>
+ <GlobalWindow
+ :title="title"
+ width="100%"
+ :visible.sync="visible"
+ :confirm-working="isWorking"
+ @confirm="confirm"
+ >
+ <div class="info">
+ <div class="info_left">
+ 濮撳悕锛歿{form.name}} 韬唤璇佸彿锛歿{form.idcardNo}} 鐘舵�侊細
+ <span style="color: green;" v-if="form.solutionsStatus === 1">淇濋殰涓�</span>
+ <span v-else>涓嶅湪淇�</span>
+ </div>
+ <el-button type="primary" @click="expr">瀵煎嚭璁板綍</el-button>
+ </div>
+ <el-table
+ :data="list"
+ border
+ style="width: 100%">
+ <el-table-column label="搴忓彿" width="80px">
+ <template slot-scope="scope">
+ <span>{{scope.$index + 1}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="solutionName"
+ label="淇濋櫓鏂规">
+ </el-table-column>
+ <el-table-column
+ prop="bdCode"
+ label="淇濆崟鍙�">
+ </el-table-column>
+ <el-table-column
+ prop="pdCode"
+ label="鎵瑰崟鍙�">
+ </el-table-column>
+ <el-table-column
+ prop="duName"
+ label="娲鹃仯鍗曚綅">
+ </el-table-column>
+ <el-table-column
+ prop="worktypeName"
+ label="鎵�灞炲伐绉�">
+ </el-table-column>
+ <el-table-column
+ prop="startTime"
+ label="淇濋櫓鐢熸晥璧锋湡">
+ </el-table-column>
+ <el-table-column
+ prop="endTime"
+ label="淇濋櫓鐢熸晥姝㈡湡">
+ </el-table-column>
+ </el-table>
+ </GlobalWindow>
+</template>
+
+<script>
+ import BaseOpera from '@/components/base/BaseOpera'
+ import GlobalWindow from '@/components/common/GlobalWindow'
+ import { findList, exportExcel } from '@/api/business/member'
+ export default {
+ name: 'insuranceRecords',
+ extends: BaseOpera,
+ components: { GlobalWindow },
+ data () {
+ return {
+ form: {
+ id: null,
+ name: '',
+ idcardNo: '',
+ solutionsStatus: ''
+ },
+ list: []
+ }
+ },
+ methods: {
+ open (title, target) {
+ this.title = title
+ this.list = []
+ 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]
+ }
+ })
+ this.getList()
+ },
+ expr() {
+ exportExcel({
+ capacity: 1000,
+ page: 1,
+ model: {
+ memberId: this.form.id
+ }
+ }).then(res => {
+ console.log(res)
+ this.download(res)
+ })
+ },
+ getList() {
+ findList({
+ memberId: this.form.id
+ }).then(res => {
+ console.log(res)
+ this.list = res
+ })
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ .info {
+ width: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+ .info_left {
+ font-size: 14px;
+ color: black;
+ }
+ }
+</style>
diff --git a/company/src/views/business/member.vue b/company/src/views/business/member.vue
index ee96024..cbd8f56 100644
--- a/company/src/views/business/member.vue
+++ b/company/src/views/business/member.vue
@@ -2,39 +2,35 @@
<TableLayout :permissions="['business:member:query']">
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
- <el-form-item label="鍛樺伐濮撳悕" prop="duId">
- <el-input v-model="searchForm.duId" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="鍛樺伐濮撳悕" prop="name">
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="韬唤璇佸彿" prop="duId">
- <el-input v-model="searchForm.duId" placeholder="璇疯緭鍏�" @keypress.enter.native="search"></el-input>
+ <el-form-item label="韬唤璇佸彿" prop="idcardNo">
+ <el-input v-model="searchForm.idcardNo" placeholder="璇疯緭鍏�" maxlength="18" @keypress.enter.native="search"></el-input>
</el-form-item>
- <el-form-item label="淇濋櫓鏂规" prop="duId">
- <el-select v-model="searchForm.duId" placeholder="璇烽�夋嫨">
+ <el-form-item label="淇濋櫓鏂规" prop="solutionId">
+ <el-select v-model="searchForm.solutionId" placeholder="璇烽�夋嫨" @change="search">
<el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ v-for="item in solutions"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id">
</el-option>
</el-select>
</el-form-item>
- <el-form-item label="淇濋櫓鐘舵��" prop="duId">
- <el-select v-model="searchForm.duId" placeholder="璇烽�夋嫨">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
+ <el-form-item label="淇濋櫓鐘舵��" prop="solutionsStatus">
+ <el-select v-model="searchForm.solutionsStatus" placeholder="璇烽�夋嫨" @change="search">
+ <el-option label="淇濋殰涓�" value="1"></el-option>
+ <el-option label="涓嶅湪淇�" value="2"></el-option>
</el-select>
</el-form-item>
<el-form-item label="娲鹃仯鍗曚綅" prop="duId">
- <el-select v-model="searchForm.duId" placeholder="璇烽�夋嫨">
+ <el-select v-model="searchForm.duId" placeholder="璇烽�夋嫨" @change="search">
<el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
+ v-for="(item, index) in options"
+ :key="index"
+ :label="item.name"
+ :value="item.id">
</el-option>
</el-select>
</el-form-item>
@@ -45,8 +41,8 @@
</el-form>
<!-- 琛ㄦ牸鍜屽垎椤� -->
<template v-slot:table-wrap>
- <ul class="toolbar" v-permissions="['business:member:create']">
- <li><el-button type="primary" @click="$refs.operaMemberWindow.open('鎶曚繚璁板綍')">瀵煎叆浜哄憳鍚嶅崟</el-button></li>
+ <ul class="toolbar">
+ <li><el-button type="primary" @click="expr">瀵煎嚭浜哄憳鍚嶅崟</el-button></li>
</ul>
<el-table
v-loading="isWorking.search"
@@ -58,24 +54,36 @@
<span>{{scope.$index + 1}}</span>
</template>
</el-table-column>
- <el-table-column prop="companyId" label="淇濋櫓鐘舵��" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="鎵�灞炰紒涓�" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="鍛樺伐濮撳悕" min-width="100px"></el-table-column>
+ <el-table-column label="淇濋櫓鐘舵��" min-width="100px">
+ <template slot-scope="{row}">
+ <span style="color: green;" v-if="row.solutionsStatus === 1">淇濋殰涓�</span>
+ <span v-else-if="row.solutionsStatus === 2">涓嶅湪淇�</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="companyName" label="鎵�灞炰紒涓�" min-width="100px" v-if="userInfo.type === 0"></el-table-column>
+ <el-table-column prop="name" label="鍛樺伐濮撳悕" min-width="100px"></el-table-column>
<el-table-column label="鎬у埆" min-width="100px">
<template slot-scope="{row}">
<span v-if="row.sex === 0">鐢�</span>
<span v-else>濂�</span>
</template>
</el-table-column>
- <el-table-column prop="companyId" label="骞撮緞" min-width="100px"></el-table-column>
- <el-table-column prop="companyId" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
- <el-table-column prop="duId" label="娲鹃仯鍗曚綅" min-width="100px"></el-table-column>
- <el-table-column prop="worktypeId" label="鎵�灞炲伐绉�" min-width="100px"></el-table-column>
+ <el-table-column prop="idcardNo" label="韬唤璇佸彿鐮�" min-width="100px"></el-table-column>
+ <el-table-column label="骞撮緞" min-width="100px">
+ <template slot-scope="{row}">
+ {{ calculateAge(row.idcardNo) }}
+ </template>
+ </el-table-column>
+ <el-table-column prop="solutionName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
+ <el-table-column prop="duName" label="娲鹃仯鍗曚綅" min-width="100px"></el-table-column>
+ <el-table-column prop="workTypeName" label="鎵�灞炲伐绉�" min-width="100px"></el-table-column>
<el-table-column prop="startTime" label="瀹為檯淇濋櫓鐢熸晥璧锋湡" min-width="100px"></el-table-column>
<el-table-column prop="endTime" label="瀹為檯淇濋櫓鐢熸晥姝㈡湡" min-width="100px"></el-table-column>
- <el-table-column label="鎿嶄綔" min-width="100px">
+ <el-table-column label="鎿嶄綔"
+ fixed="right"
+ min-width="120px">
<template slot-scope="{row}">
- <el-button type="text">鎶曚繚璁板綍</el-button>
+ <el-button type="text" @click="$refs.insuranceRecords.open('鎶曚繚璁板綍', row)">鎶曚繚璁板綍</el-button>
</template>
</el-table-column>
</el-table>
@@ -87,7 +95,9 @@
</pagination>
</template>
<!-- 鏂板缓/淇敼 -->
- <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange"/>
+ <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange" />
+ <!-- 鎶曚繚璁板綍 -->
+ <insuranceRecords ref="insuranceRecords" @success="handlePageChange" />
</TableLayout>
</template>
@@ -96,18 +106,30 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaMemberWindow from '@/components/business/OperaMemberWindow'
+ import insuranceRecords from '@/components/enterprise/insuranceRecords'
+ import { all } from '@/api/business/solutions'
+ import { findListByDTO } from '@/api/business/dispatchUnit'
+ import { mapState } from 'vuex'
export default {
name: 'Member',
extends: BaseTable,
- components: { TableLayout, Pagination, OperaMemberWindow },
+ components: { TableLayout, Pagination, OperaMemberWindow, insuranceRecords },
data () {
return {
// 鎼滅储
searchForm: {
- duId: ''
+ duId: '',
+ name: '',
+ idcardNo: '',
+ solutionsStatus: '',
+ solutionId: ''
},
- options: []
+ options: [],
+ solutions: []
}
+ },
+ computed: {
+ ...mapState(['userInfo'])
},
created () {
this.config({
@@ -117,6 +139,29 @@
'field.main': 'id'
})
this.search()
+ this.getSolutions()
+ },
+ methods: {
+ expr() {
+
+ },
+ getSolutions() {
+ all()
+ .then(res => {
+ this.solutions = res
+ })
+ findListByDTO({ dataType: 2 })
+ .then(res => {
+ this.options = res
+ })
+ },
+ calculateAge(idNumber) {
+ if (!idNumber) return
+ let birthYear = parseInt(idNumber.substr(6, 4)); // 鎻愬彇鐢熸棩骞翠唤閮ㄥ垎
+ let currentYear = new Date().getFullYear(); // 鑾峰彇褰撳墠骞翠唤
+
+ return currentYear - birthYear; // 杩斿洖骞撮緞
+ }
}
}
</script>
--
Gitblit v1.9.3