MrShi
2024-02-02 d66eccc722b46fbb4b57bf28736b6f63a5ed0504
Mr.Shi
已修改6个文件
485 ■■■■ 文件已修改
company/package-lock.json 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/member.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/OperaInsuranceApplyWindow.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/member.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/index.vue 416 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/package-lock.json
@@ -4859,6 +4859,22 @@
        "safer-buffer": "^2.1.0"
      }
    },
    "echarts": {
      "version": "5.4.3",
      "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.3.tgz",
      "integrity": "sha512-mYKxLxhzy6zyTi/FaEbJMOZU1ULGEQHaeIeuMR5L+JnJTpz+YR03mnnpBhbR4+UYJAgiXgpyTVLffPAjOTLkZA==",
      "requires": {
        "tslib": "2.3.0",
        "zrender": "5.4.4"
      },
      "dependencies": {
        "tslib": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
        }
      }
    },
    "ee-first": {
      "version": "1.1.1",
      "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz",
@@ -14275,6 +14291,21 @@
          "dev": true
        }
      }
    },
    "zrender": {
      "version": "5.4.4",
      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.4.tgz",
      "integrity": "sha512-0VxCNJ7AGOMCWeHVyTrGzUgrK4asT4ml9PEkeGirAkKNYXYzoPJCLvmyfdoOXcjTHPs10OZVMfD1Rwg16AZyYw==",
      "requires": {
        "tslib": "2.3.0"
      },
      "dependencies": {
        "tslib": {
          "version": "2.3.0",
          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz",
          "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
        }
      }
    }
  }
}
company/package.json
@@ -14,6 +14,7 @@
    "@riophae/vue-treeselect": "^0.4.0",
    "axios": "^0.21.1",
    "core-js": "^3.6.5",
    "echarts": "^5.4.3",
    "element-ui": "^2.3.6",
    "js-cookie": "^2.2.1",
    "js-file-download": "^0.4.12",
company/src/api/business/member.js
@@ -33,3 +33,10 @@
        download: true
    })
}
// 导出Excel
export function memberExportExcel (data) {
    return request.post('/business/member/exportExcel', data, {
        download: true
    })
}
company/src/components/enterprise/OperaInsuranceApplyWindow.vue
@@ -24,11 +24,13 @@
                        <el-date-picker
                            @change="getTimeVal"
                            v-model="form.applyStartTime"
                            type="date"
                            type="datetime"
                            class="date_picker"
                            default-time="00:00:00"
                            :disabled="!form.solutionId"
                            :picker-options="pickerOptions"
                            value-format="yyyy-MM-dd"
                            format="yyyy 年 MM 月 dd 日"
                            value-format="yyyy-MM-dd hh:mm:ss"
                            format="yyyy-MM-dd hh:mm:ss"
                            placeholder="选择日期">
                        </el-date-picker>
                        <span style="color: #F95601; font-size: 14px;">(次日生效投保请于17:30前提交,超时提交以保险单为准)</span>
@@ -38,9 +40,10 @@
                    <el-date-picker
                        disabled
                        v-model="form.applyEndTime"
                        type="date"
                        value-format="yyyy-MM-dd"
                        format="yyyy 年 MM 月 dd 日"
                        type="datetime"
                        default-time="00:00:00"
                        value-format="yyyy-MM-dd hh:mm:ss"
                        format="yyyy-MM-dd hh:mm:ss"
                        placeholder="选择日期">
                    </el-date-picker>
                </el-form-item>
@@ -468,6 +471,12 @@
}
</script>
<style>
    .el-picker-panel__footer .el-button--text.el-picker-panel__link-btn {
        display: none;
    }
</style>
<style lang="scss" scoped>
    .list {
        width: 100%;
company/src/views/business/member.vue
@@ -109,6 +109,7 @@
    import insuranceRecords from '@/components/enterprise/insuranceRecords'
    import { all } from '@/api/business/solutions'
    import { findListByDTO } from '@/api/business/dispatchUnit'
    import { memberExportExcel } from '@/api/business/member'
    import { mapState } from 'vuex'
    export default {
        name: 'Member',
@@ -143,7 +144,13 @@
        },
        methods: {
            expr() {
                memberExportExcel({
                    capacity: 1000,
                    page: 1,
                    model: this.searchForm
                }).then(res => {
                    this.download(res)
                })
            },
            getSolutions() {
                all()
company/src/views/index.vue
@@ -1,33 +1,226 @@
<template>
  <div class="home">
    <!-- <div class="wrap">
      <h2>欢迎使用伊娃极速开发框架</h2>
      <p>您使用的此套开源框架没有任何版权问题,可学习可商用,请放心使用!</p>
      <p>伊娃致力于打造简洁、合理、高效的开发体验,为此我们将不断升级,感谢您的支持!</p>
      <p style="margin-top: 12px;">
        <a href="https://gitee.com/coderd-repos/eva" target="_blank">GITEE</a>
        <a href="https://github.com/coderd-repos/eva" target="_blank">GITHUB</a>
      </p>
      <div class="guide">
        <a href="http://eva.adjustrd.com" target="_blank">前往官网</a>
        <a href="http://coderd.adjustrd.com/template/308/default" target="_blank">前往CodeRd</a>
    <div class="home_inlet">
      <div class="home_inlet_label">快捷入口</div>
      <div class="home_inlet_list">
        <div class="home_inlet_item" v-for="(item, index) in cate" :key="index" @click="jump(item.url)">
          <img :src="item.icon" />
          <span>{{item.name}}</span>
        </div>
      </div>
      <img src="@/assets/images/qq.png">
      <p>你可以扫码加入群聊以获得技术支持</p>
      <div class="award">
        <h4>激励作者做得更好</h4>
        <img src="@/assets/images/alipay.jpeg">
        <img src="@/assets/images/wxpay.jpeg">
    </div>
    <div class="home_content">
      <div class="home_content_left">
        <div class="home_content_left_item" ref="picture1"></div>
        <div class="home_content_left_item" ref="picture2"></div>
        <div class="home_content_left_item" ref="picture3"></div>
      </div>
    </div> -->
      <div class="home_content_right">
        <div class="home_content_right_label">代办事项</div>
        <el-tabs v-model="activeName" @tab-click="handleClick">
          <el-tab-pane label="保单代办" name="first"></el-tab-pane>
          <el-tab-pane label="理赔提醒" name="second"></el-tab-pane>
        </el-tabs>
        <div class="home_content_right_list">
          <div class="list_item" v-for="(item, index) in 1" :key="index">
            <div class="list_item_left">
              <span>投保申请(待签署)</span>
              <span>保险方案(雇主责任险A)</span>
            </div>
            <div class="list_item_center">
              <span>安徽平安人力资源有限公司</span>
              <span>提交时间  2023-09-11 00:00:00</span>
            </div>
            <div class="list_item_right">
              <span>查看详情</span>
            </div>
          </div>
        </div>
        <div class="home_content_right_page">
          <el-pagination
            @current-change="handleCurrentChange"
            :current-page="page"
            :page-size="5"
            layout="total, prev, pager, next, jumper"
            :total="0">
          </el-pagination>
        </div>
      </div>
    </div>
  </div>
</template>
<script>
import * as echarts from 'echarts';
export default {
  name: 'Index',
  data () {
    return {}
    return {
      activeName: 'first',
      page: 1,
      cate: [
        {
          name: '投保申请',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '加保申请',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '减保申请',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '合同管理',
          url: '',
          icon: require('../assets/logo.png')
        },
        {
          name: '提交报案',
          url: '',
          icon: require('../assets/logo.png')
        }
      ]
    }
  },
  mounted() {
    this.setPicture1()
    this.setPicture2()
    this.setPicture3()
  },
  methods: {
    handleClick(e) {
      this.activeName = e.name
    },
    handleCurrentChange(page) {
      this.page = page
    },
    jump(url) {
      if (!url) return;
      this.$router.push({ path: url });
    },
    setPicture1 () {
      let chartDom = this.$refs.picture1;
      let myChart = echarts.init(chartDom);
      let option
      option = {
        title: {
          text: '当月保险金额',
          left: '5%',
          top: '5%'
        },
        tooltip: {
          trigger: 'item'
        },
        series: [
          {
            type: 'pie',
            radius: '50%',
            data: [
              { value: 1048, name: '保障中' },
              { value: 735, name: '不在保' },
            ],
            emphasis: {
              itemStyle: {
                shadowBlur: 10,
                shadowOffsetX: 0,
                shadowColor: 'rgba(0, 0, 0, 0.5)'
              }
            }
          }
        ]
      };
      option && myChart.setOption(option);
    },
    setPicture2 () {
      let chartDom = this.$refs.picture2;
      let myChart = echarts.init(chartDom);
      let option
      option = {
        title: {
          text: '当月在保人数',
          left: '5%',
          top: '5%'
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '13%',
          containLabel: true
        },
        tooltip: {
          trigger: 'axis'
        },
        xAxis: {
          type: 'category',
          data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
        },
        yAxis: {
          type: 'value'
        },
        series: [
          {
            data: [10, 30, 25, 16, 21, 18, 5, 30, 30, 30, 30, 30],
            type: 'line'
          }
        ]
      };
      option && myChart.setOption(option);
    },
    setPicture3 () {
      let chartDom = this.$refs.picture3;
      let myChart = echarts.init(chartDom);
      let option
      option = {
        title: {
          text: '总赔付率 78%',
          left: '5%',
          top: '5%'
        },
        tooltip: {
          trigger: 'axis',
          axisPointer: {
            type: 'shadow'
          }
        },
        grid: {
          left: '3%',
          right: '4%',
          bottom: '25%',
          containLabel: true
        },
        xAxis: {
          type: 'value',
          // boundaryGap: [0, 0.01]
        },
        yAxis: {
          type: 'category',
          data: ['保险A赔付率', '保险B赔付率', '总赔付率']
        },
        series: [
          {
            type: 'bar',
            stack: 'total',
            barWidth: '60%',
            data: [10, 20, 30]
          },
          {
            type: 'bar',
            stack: 'total',
            barWidth: '60%',
            data: [15, 16, 24]
          }
        ]
      };
      option && myChart.setOption(option);
    }
  }
}
</script>
@@ -35,63 +228,142 @@
<style scoped lang="scss">
@import "@/assets/style/variables.scss";
.home {
  text-align: center;
  color: #777;
  .wrap {
    margin-top: 80px;
    img {
      width: 240px;
    }
  }
  h2 {
    font-size: 32px;
    color: #555;
    margin-bottom: 20px;
  }
  p {
    line-height: 24px;
    margin: 0;
  }
  .start-up {
    margin-top: 8px;
  }
  .guide {
    margin: 30px 0 40px 0;
    display: flex;
    justify-content: center;
    a {
      margin-right: 12px;
      padding: 12px 40px;
      border-radius: 30px;
      background: $primary-color;
      color: #fff;
      text-decoration: none;
    }
  }
  em,a {
    font-style: normal;
    font-weight: bold;
    margin: 0 3px;
    color: $primary-color;
  }
  .award {
    position: absolute;
    right: 20px;
    bottom: 60px;
  width: 100%;
  height: 100%;
  .home_inlet {
    width: 100%;
    height: 160px;
    display: flex;
    flex-direction: column;
    text-align: left;
    padding: 12px;
    border: 1px solid #eee;
    box-shadow: -1px 1px 10px #ccc;
    h4 {
    padding: 20px;
    box-sizing: border-box;
    background: #ffffff;
    .home_inlet_label {
      width: 100%;
      font-size: 18px;
      font-weight: bold;
      margin-bottom: 8px;
    }
    img {
      width: 160px;
      color: black;
      margin-bottom: 20px;
      transition: opacity ease .3s;
    }
    .home_inlet_list {
      width: 100%;
      display: flex;
      align-items: center;
      .home_inlet_item {
        flex: 1;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        img {
          width: 40px;
          height: 40px;
        }
        span {
          font-size: 14px;
          color: black;
          margin-top: 5px;
        }
      }
    }
  }
  .home_content {
    width: 100%;
    height: calc(100% - 170px);
    margin-top: 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    .home_content_left {
      width: 350px;
      height: 100%;
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      .home_content_left_item {
        width: 100%;
        height: 32%;
        background: #ffffff;
      }
    }
    .home_content_right {
      flex: 1;
      height: 100%;
      background: #ffffff;
      margin-left: 10px;
      padding: 20px;
      box-sizing: border-box;
      position: relative;
      .home_content_right_label {
        font-size: 18px;
        color: black;
        font-weight: bold;
      }
      .home_content_right_list {
        width: 100%;
        display: flex;
        flex-direction: column;
        .list_item {
          padding: 10px;
          box-sizing: border-box;
          width: 100%;
          display: flex;
          justify-content: space-between;
          border: 1px solid #ececec;
          margin-bottom: 15px;
          &:last-child {
            margin-bottom: 0 !important;
          }
          .list_item_left {
            display: flex;
            flex-direction: column;
            span {
              &:nth-child(1) {
                font-size: 14px;
                color: black;
                font-weight: bold;
              }
              &:nth-child(2) {
                font-size: 14px;
                color: black;
                margin-top: 5px;
              }
            }
          }
          .list_item_center {
            display: flex;
            flex-direction: column;
            span {
              font-size: 14px;
              color: black;
              &:nth-child(2) {
                margin-top: 5px;
              }
            }
          }
          .list_item_right {
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            span {
              font-size: 14px;
              color: #1890FF;
              margin-top: 10px;
              cursor: pointer;
            }
          }
        }
      }
      .home_content_right_page {
        margin-top: 20px;
        position: absolute;
        bottom: 20px;
        left: 20px;
        box-sizing: border-box;
      }
    }
  }
}