浏览代码

修改bug

QuKatie 3 年之前
父节点
当前提交
705f2ecee2

+ 8 - 0
src/api/wel.js

@@ -0,0 +1,8 @@
+import request from '@/router/axios';
+export const salaryStatistics = (query) => {
+  return request({
+    url: '/api/blade-school/salary/salaryStatistics',
+    method: 'get',
+    params: query
+  })
+}

+ 10 - 0
src/views/salaryManagement/highSchool/detailsPage.vue

@@ -2359,6 +2359,16 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "32":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/salaryMessage";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/salaryMessage";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 10 - 0
src/views/salaryManagement/juniorhighSchool/detailsPage.vue

@@ -2359,6 +2359,16 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "32":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/salaryMessage";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/salaryMessage";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 10 - 0
src/views/salaryManagement/logisticsDepartment/detailsPage.vue

@@ -2344,6 +2344,16 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "32":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/salaryMessage";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/salaryMessage";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 120 - 98
src/views/salaryManagement/primarySchool/detailsPage.vue

@@ -1735,129 +1735,141 @@ export default {
     },
     salaryAdd(row) {
       // 1. 基础工资 = +M153(校龄工资)+N153(增资)+O153(学历工资)+Q153(职级工资)+L153(履约奖)+R153(工资基数)
-      row.basicsSalary =Number(
+      row.basicsSalary = Number(
         numCal(row.schoolAgeSalary) +
-        numCal(row.capitalIncrease) +
-        numCal(row.educationSalary) +
-        numCal(row.rankSalary) +
-        numCal(row.salaryBase) +
-        numCal(row.performanceAward)).toFixed(2);
+          numCal(row.capitalIncrease) +
+          numCal(row.educationSalary) +
+          numCal(row.rankSalary) +
+          numCal(row.salaryBase) +
+          numCal(row.performanceAward)
+      ).toFixed(2);
       //2. 工作量工资 = 月份工作量工资+代课工作量工资+双休日工作量工资+工作量工资1+…+工作量工资5-虚拟工作量工资标准-虚拟双休日工作量工资标准
-      row.workloadSalary =Number(
+      row.workloadSalary = Number(
         numCal(row.momthWorkloadSalary) +
-        numCal(row.customTwo) +
-        numCal(row.doubleMoney) +
-        numCal(row.customThree) +
-        numCal(row.customFour) +
-        numCal(row.customFive) +
-        numCal(row.customSix) +
-        numCal(row.customSeven) -
-        numCal(row.virtualDailyAssessmentCriteria) -
-        numCal(row.virtualDoubleCease)).toFixed(2);
+          numCal(row.customTwo) +
+          numCal(row.doubleMoney) +
+          numCal(row.customThree) +
+          numCal(row.customFour) +
+          numCal(row.customFive) +
+          numCal(row.customSix) +
+          numCal(row.customSeven) -
+          numCal(row.virtualDailyAssessmentCriteria) -
+          numCal(row.virtualDoubleCease)
+      ).toFixed(2);
       //3.日常考核工资 =日常考核工资-虚拟日常考核标准
-      row.dailyAssessmentSalary =Number(
+      row.dailyAssessmentSalary = Number(
         numCal(row.dailyAssessmentSalary) -
-        numCal(row.virtualDailyAssessmentCriteria)).toFixed(2);
+          numCal(row.virtualDailyAssessmentCriteria)
+      ).toFixed(2);
       // 4.绩效工资=学期绩效工资+学期绩效工资1+..+学期绩效工资5
-      row.customizeFour =Number(
+      row.customizeFour = Number(
         numCal(row.termPerformanceSalary) +
-        numCal(row.customNine) +
-        numCal(row.customize) +
-        numCal(row.customizeOne) +
-        numCal(row.customizeTwo) +
-        numCal(row.customizeThree)).toFixed(2);
+          numCal(row.customNine) +
+          numCal(row.customize) +
+          numCal(row.customizeOne) +
+          numCal(row.customizeTwo) +
+          numCal(row.customizeThree)
+      ).toFixed(2);
       // 5.奖励工资=奖励1+…+奖励10
-      row.awardSalary =Number(
+      row.awardSalary = Number(
         numCal(row.customAward) +
-        numCal(row.customAwardOne) +
-        numCal(row.customAwardTwo) +
-        numCal(row.customAwardThree) +
-        numCal(row.customAwardFour) +
-        numCal(row.customAwardFive) +
-        numCal(row.customAwardSix) +
-        numCal(row.customAwardSeven) +
-        numCal(row.customAwardEight) +
-        numCal(row.customAwardNine)).toFixed(2);
+          numCal(row.customAwardOne) +
+          numCal(row.customAwardTwo) +
+          numCal(row.customAwardThree) +
+          numCal(row.customAwardFour) +
+          numCal(row.customAwardFive) +
+          numCal(row.customAwardSix) +
+          numCal(row.customAwardSeven) +
+          numCal(row.customAwardEight) +
+          numCal(row.customAwardNine)
+      ).toFixed(2);
       // 6.职务津贴=领导干部补贴+领导干部考核补贴+备课组长+备课组长考核补贴+教研组长+教研组长考核补贴
-      row.dutyAllowances =Number(
+      row.dutyAllowances = Number(
         numCal(row.leadingCadreSubsidy) +
-        numCal(row.customizeFive) +
-        numCal(row.prepareLessons) +
-        numCal(row.customizeSix) +
-        numCal(row.teachingResearch) +
-        numCal(row.customizeSeven)).toFixed(2);
+          numCal(row.customizeFive) +
+          numCal(row.prepareLessons) +
+          numCal(row.customizeSix) +
+          numCal(row.teachingResearch) +
+          numCal(row.customizeSeven)
+      ).toFixed(2);
       // 7.班主任津贴=班主任补贴+班额津贴-校车考核-班级微信群考核-财务考核+班主任考核津贴
-      row.classTeacherSubsidy =Number(
+      row.classTeacherSubsidy = Number(
         numCal(row.classTeacherFee) +
-        numCal(row.classes) -
-        numCal(row.adjustTheBalance) -
-        numCal(row.payrollCredit) -
-        numCal(row.paid) +
-        numCal(row.customizeEight)).toFixed(2);
+          numCal(row.classes) -
+          numCal(row.adjustTheBalance) -
+          numCal(row.payrollCredit) -
+          numCal(row.paid) +
+          numCal(row.customizeEight)
+      ).toFixed(2);
       // 8.补贴项=微信+产假工资+周末工作量工资+补贴1+…+补贴10
-      row.subsidy =Number(
+      row.subsidy = Number(
         numCal(row.wx) +
-        numCal(row.maternityLeaveSalary) +
-        numCal(row.overtimeAtWeekend) +
-        numCal(row.yearUpPerformance) +
-        numCal(row.yearDownPerformance) +
-        numCal(row.cadreAllowanceReservation) +
-        numCal(row.vacationOvertimePay) +
-        numCal(row.newPostTrain) +
-        numCal(row.winningPrize) +
-        numCal(row.classMinister) +
-        numCal(row.monthViceClassFee) +
-        numCal(row.safetyFees) +
-        numCal(row.reserveReplacement)).toFixed(2);
+          numCal(row.maternityLeaveSalary) +
+          numCal(row.overtimeAtWeekend) +
+          numCal(row.yearUpPerformance) +
+          numCal(row.yearDownPerformance) +
+          numCal(row.cadreAllowanceReservation) +
+          numCal(row.vacationOvertimePay) +
+          numCal(row.newPostTrain) +
+          numCal(row.winningPrize) +
+          numCal(row.classMinister) +
+          numCal(row.monthViceClassFee) +
+          numCal(row.safetyFees) +
+          numCal(row.reserveReplacement)
+      ).toFixed(2);
       // 9.扣除项=出勤+督查+超额电话费+学习强国+宿舍管理费+生育津贴+扣除1+…+扣除10
-      row.deductions =Number(
+      row.deductions = Number(
         numCal(row.attendance) +
-        numCal(row.inspectorFines) +
-        numCal(row.telephoneBill) +
-        numCal(row.learningPower) +
-        numCal(row.dormitoryManagementFee) +
-        numCal(row.childbirthAllowance) +
-        numCal(row.ribbonOne) +
-        numCal(row.ribbonTwo) +
-        numCal(row.ribbonThree) +
-        numCal(row.ribbonFour) +
-        numCal(row.ribbonFive) +
-        numCal(row.ribbonSix) +
-        numCal(row.ribbonSeven) +
-        numCal(row.ribbonEight) +
-        numCal(row.ribbonNine) +
-        numCal(row.pauseNoPay)).toFixed(2);
+          numCal(row.inspectorFines) +
+          numCal(row.telephoneBill) +
+          numCal(row.learningPower) +
+          numCal(row.dormitoryManagementFee) +
+          numCal(row.childbirthAllowance) +
+          numCal(row.ribbonOne) +
+          numCal(row.ribbonTwo) +
+          numCal(row.ribbonThree) +
+          numCal(row.ribbonFour) +
+          numCal(row.ribbonFive) +
+          numCal(row.ribbonSix) +
+          numCal(row.ribbonSeven) +
+          numCal(row.ribbonEight) +
+          numCal(row.ribbonNine) +
+          numCal(row.pauseNoPay)
+      ).toFixed(2);
       // 10.应发工资=基本工资+工作量工资+日常考核工资+奖励工资+职务津贴+班主任津贴+补贴项-扣除项+保险(个人部分)+公积金(个人部分).. 大于800 保险(个人部分) 不加
       if (row.enjoyOfficeTreatment == "是") {
-        row.salary =Number(
+        row.salary = Number(
           numCal(row.basicsSalary) +
-          numCal(row.workloadSalary) +
-          numCal(row.dailyAssessmentSalary) +
-          numCal(row.awardSalary) +
-          numCal(row.dutyAllowances) +
-          numCal(row.classTeacherSubsidy) +
-          numCal(row.subsidy) -
-          numCal(row.deductions) +
-          numCal(row.reservedFundsPersonage)).toFixed(2);
+            numCal(row.workloadSalary) +
+            numCal(row.dailyAssessmentSalary) +
+            numCal(row.awardSalary) +
+            numCal(row.dutyAllowances) +
+            numCal(row.classTeacherSubsidy) +
+            numCal(row.subsidy) -
+            numCal(row.deductions) +
+            numCal(row.reservedFundsPersonage)
+        ).toFixed(2);
       } else {
-        row.salary =Number(
+        row.salary = Number(
           numCal(row.basicsSalary) +
-          numCal(row.workloadSalary) +
-          numCal(row.dailyAssessmentSalary) +
-          numCal(row.awardSalary) +
-          numCal(row.dutyAllowances) +
-          numCal(row.classTeacherSubsidy) +
-          numCal(row.subsidy) -
-          numCal(row.deductions) +
-          numCal(row.insurancePersonage) +
-          numCal(row.reservedFundsPersonage)).toFixed(2);
+            numCal(row.workloadSalary) +
+            numCal(row.dailyAssessmentSalary) +
+            numCal(row.awardSalary) +
+            numCal(row.dutyAllowances) +
+            numCal(row.classTeacherSubsidy) +
+            numCal(row.subsidy) -
+            numCal(row.deductions) +
+            numCal(row.insurancePersonage) +
+            numCal(row.reservedFundsPersonage)
+        ).toFixed(2);
       }
       // 11.实发工资=应发工资-个人所得税-个人保险-公积金个人
-      row.fSalary =Number(
+      row.fSalary = Number(
         numCal(row.salary) -
-        numCal(row.personageTaxes) -
-        numCal(row.insurancePersonage) -
-        numCal(row.reservedFundsPersonage)).toFixed(2);
+          numCal(row.personageTaxes) -
+          numCal(row.insurancePersonage) -
+          numCal(row.reservedFundsPersonage)
+      ).toFixed(2);
     },
     //导出工资条
     exportSalary() {
@@ -2334,6 +2346,16 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "32":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/salaryMessage";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/salaryMessage";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 17 - 7
src/views/wel/components/card.vue

@@ -2,10 +2,13 @@
   <div style="width: 100%;">
     <div class="card">
       <div class="card-head">
-        <span> <i :class="iconName" class="index-icon"></i>{{title}}</span>
+        <span> <i :class="iconName" class="index-icon"></i>{{ title }}</span>
+      </div>
+      <div class="card-select">
+        <slot name="select"></slot>
       </div>
       <div class="card-content">
-        <slot name='content'></slot>
+        <slot name="content"></slot>
       </div>
     </div>
   </div>
@@ -16,12 +19,12 @@ export default {
   data() {
     return {};
   },
-  props:{
-    title:{
-      type:String
+  props: {
+    title: {
+      type: String
     },
-    iconName:{
-      type:String
+    iconName: {
+      type: String
     }
   },
   methods: {}
@@ -39,6 +42,13 @@ export default {
     display: flex;
     align-items: center;
   }
+  .card-select {
+    padding: 10px;
+    display: flex;
+    justify-content: right;
+    border-left: 1px solid #d6d6d6;
+    border-right: 1px solid #d6d6d6;
+  }
   .card-content {
     border-left: 1px solid #d6d6d6;
     border-right: 1px solid #d6d6d6;

+ 147 - 73
src/views/wel/home/tongjiSchool.vue

@@ -18,23 +18,48 @@
       </div>
     </basic-container>
     <basic-container>
-      <index-card title="工资走势图" iconName="el-icon-s-fold" style="height:500px;margin-bottom: 30px">
-        <el-select slot="content" size="mini" v-model="value" style="float: right;z-index: 999;width: 100px" placeholder="请选择">
-          <el-option
+      <index-card
+        title="工资走势图"
+        iconName="el-icon-s-fold"
+        style="height:500px;margin-bottom: 30px"
+      >
+        <div slot="select">
+          <el-date-picker
+            v-model="annual"
+            type="year"
+            size="mini"
+            placeholder="选择年"
+            value-format="yyyy"
+            style="margin-right:10px"
+            @change="getsalaryStatistics"
+          >
+          </el-date-picker>
+          <el-select
+            slot="content"
+            size="mini"
+            v-model="salaryType"
+            placeholder="请选择"
+            @change="getsalaryStatistics"
+          >
+            <el-option
               v-for="item in options"
               :key="item.value"
               :label="item.label"
-              :value="item.value">
-          </el-option>
-        </el-select>
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </div>
+
         <div slot="content" style="height:500px" id="commoDity"></div>
       </index-card>
-      <br>
+      <br />
     </basic-container>
   </div>
 </template>
 
 <script>
+import { salaryStatistics } from "@/api/wel";
 import { mapGetters } from "vuex";
 import indexCard from "../components/card.vue";
 import butCard from "../components/butCard.vue";
@@ -42,119 +67,128 @@ export default {
   name: "wel",
   data() {
     return {
+      fsalaryList: [],
+      studentNumberList: [],
       activeNames: ["1", "2", "3", "5"],
       logActiveNames: ["24"],
+      annual: "2022",
       isHeight: {},
-      options: [{
-        value: '0',
-        label: '全部'
-      }, {
-        value: '1',
-        label: '小学'
-      }, {
-        value: '2',
-        label: '初中'
-      }, {
-        value: '3',
-        label: '高中'
-      }, {
-        value: '4',
-        label: '后勤'
-      }],
-      value:'0',
+      options: [
+        {
+          value: "",
+          label: "全部"
+        },
+        {
+          value: "小学部",
+          label: "小学部"
+        },
+        {
+          value: "初中部",
+          label: "初中部"
+        },
+        {
+          value: "高中部",
+          label: "高中部"
+        },
+        {
+          value: "后勤部",
+          label: "后勤部"
+        }
+      ],
+      salaryType: "",
       option: {
-        span:6,
+        span: 6,
         data: [
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '工资总额',
+            title: "工资总额",
             count: 12678,
-            decimals:2,
-            icon: 'el-icon-tickets',
+            decimals: 2,
+            icon: "el-icon-tickets",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '年工资额增长率(%)',
+            title: "年工资额增长率(%)",
             count: 29,
-            icon: 'el-icon-s-marketing',
+            icon: "el-icon-s-marketing",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '人均工资',
+            title: "人均工资",
             count: 35623,
-            icon: 'el-icon-s-finance',
+            icon: "el-icon-s-finance",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '年人均工资增长率(%)',
+            title: "年人均工资增长率(%)",
             count: 19,
-            icon: 'el-icon-s-claim',
+            icon: "el-icon-s-claim",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '保险总额',
+            title: "保险总额",
             count: 16826,
-            icon: 'el-icon-s-cooperation',
+            icon: "el-icon-s-cooperation",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '保险总额同比(%)',
+            title: "保险总额同比(%)",
             count: 69,
-            icon: 'el-icon-notebook-1',
+            icon: "el-icon-notebook-1",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '人均保险',
+            title: "人均保险",
             count: 16826,
-            icon: 'el-icon-s-custom',
+            icon: "el-icon-s-custom",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           },
           {
-            click: function (item) {
+            click: function(item) {
               // alert(JSON.stringify(item));
             },
-            title: '人均保险同比(%)',
+            title: "人均保险同比(%)",
             count: 30,
-            icon: 'el-icon-notebook-2',
+            icon: "el-icon-notebook-2",
             // href:'https://avuejs.com',
-            target:'_blank'
+            target: "_blank"
           }
         ]
       }
     };
   },
-  created(){
-    this.isHeight.height=window.innerHeight-165+'px'
+  created() {
+    this.isHeight.height = window.innerHeight - 165 + "px";
   },
   mounted() {
-    this.commoDity()
+    this.getsalaryStatistics();
   },
   components: {
     indexCard,
@@ -164,44 +198,84 @@ export default {
     ...mapGetters(["userInfo"])
   },
   methods: {
+    getsalaryStatistics() {
+      this.fsalaryList = [];
+      this.studentNumberList = [];
+      salaryStatistics({
+        annual: this.annual,
+        salaryType: this.salaryType
+      })
+        .then(res => {
+          res.data.data.forEach(e => {
+            this.fsalaryList.push(Number(e.fsalary));
+            this.studentNumberList.push(Number(e.studentNumber));
+          });
+        })
+        .finally(() => {
+          this.commoDity();
+        });
+    },
     handleChange(val) {
       window.console.log(val);
     },
     commoDity() {
       // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
       let myChart = this.$echarts.init(document.getElementById("commoDity"));
+
       // 绘制图表
       myChart.setOption({
         tooltip: {
-          trigger: 'axis',
+          trigger: "axis",
           axisPointer: {
-            type: 'shadow'
+            type: "shadow"
           }
         },
+        legend: {
+          data: ["工资", "人数"]
+        },
         xAxis: {
-          type: 'category',
-          data: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
+          type: "category",
+          data: [
+            "一月",
+            "二月",
+            "三月",
+            "四月",
+            "五月",
+            "六月",
+            "七月",
+            "八月",
+            "九月",
+            "十月",
+            "十一月",
+            "十二月"
+          ]
         },
         grid: {
-          left: '3%',
-          right: '4%',
-          bottom: '3%',
+          left: "3%",
+          right: "4%",
+          bottom: "3%",
           containLabel: true
         },
         yAxis: {
-          type: 'value',
+          type: "value",
           axisLabel: {
-            formatter: '{value} 元'
+            formatter: "{value} 元"
           }
         },
         series: [
           {
-            data: [125340, 200345, 145350, 84530, 70345, 153450, 133450, 44530, 143534, 245345, 123055, 135454],
-            type: 'bar'
+            data: this.fsalaryList,
+            name: "工资",
+            type: "bar"
+          },
+          {
+            data: this.studentNumberList,
+            name: "人数",
+            type: "bar"
           }
         ]
       });
-    },
+    }
   }
 };
 </script>