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}}&nbsp;&nbsp;韬唤璇佸彿锛歿{form.idcardNo}}&nbsp;&nbsp;鐘舵�侊細
+                <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