QuKatie 3 سال پیش
والد
کامیت
eb37d6dc5d

+ 15 - 1
src/api/wel.js

@@ -5,4 +5,18 @@ export const salaryStatistics = (query) => {
     method: 'get',
     params: query
   })
-}
+}
+export const salaryData = (query) => {
+  return request({
+    url: '/api/blade-school/salary/salaryData',
+    method: 'get',
+    params: query
+  })
+}
+export const salaryDataChain = (query) => {
+  return request({
+    url: '/api/blade-school/salary/salaryDataChain',
+    method: 'get',
+    params: query
+  })
+}

+ 4 - 0
src/components/fee-info/main.vue

@@ -422,6 +422,10 @@ export default {
     }).then(res => {
       this.corpList = res.data.data;
     });
+    if (localStorage.getItem("roleName") == "贸易") {
+      this.findObject(this.feeOption.column, "corpId").hide = true;
+      this.findObject(this.feeOption.column, "corpId").showColumn = false;
+    }
   },
   components: {
     cropDialog,

+ 1 - 1
src/router/views/index.js

@@ -898,7 +898,7 @@ export default [{
     hidden: true,
     children: [{
       path: '/statisticAnalysis/salesProfit/index',
-      name: "利润分析",
+      name: "销售利润",
       meta: {
         keepAlive: true,
       },

+ 14 - 11
src/views/basicData/facultyManagement/detailsPage.vue

@@ -14,7 +14,7 @@
         <div class="add-customer-btn">
           <el-button
             type="info"
-            :disabled="!form.id"
+            :disabled="loadingBtn || !form.id"
             size="small"
             @click="recalculate"
           >
@@ -22,13 +22,17 @@
           </el-button>
           <el-button
             type="success"
-            :disabled="!form.id"
+            :disabled="loadingBtn || !form.id"
             size="small"
             @click="copyDoc"
           >
             复制新单
           </el-button>
-          <el-button type="primary" size="small" @click="editCustomer"
+          <el-button
+            type="primary"
+            size="small"
+            @click="editCustomer"
+                      :disabled="loadingBtn || detailData.status == 1"
             >保存数据
           </el-button>
         </div>
@@ -37,7 +41,7 @@
         title="基础资料"
         style="margin-top: 60px"
       ></containerTitle>
-      <basic-container>
+      <basic-container v-loading="loadingBtn">
         <avue-form
           ref="form"
           class="trading-form"
@@ -52,7 +56,7 @@
         </div>
       </basic-container>
       <containerTitle title="事业编考试的记录"></containerTitle>
-      <basic-container>
+      <basic-container v-loading="loadingBtn">
         <avue-crud
           ref="crud"
           :option="optionList"
@@ -106,6 +110,7 @@ export default {
   name: "index",
   data() {
     return {
+      loadingBtn: false,
       form: {},
       dataList: [],
       option: {
@@ -781,18 +786,16 @@ export default {
             this.form.dailyAssessmentCriteria,
             this.form.termPerformanceSalary
           );
-          // if (num != num2) {
-          //   return this.$message.error(
-          //     "拨付金额" + num + "不等于标准金额" + num2
-          //   );
-          // }
+          this.loadingBtn = true;
           submit({ ...this.form, causeList: this.dataList })
             .then(res => {
               this.$message.success("保存成功");
               this.form = res.data.data;
               this.dataList = res.data.data.causeList;
             })
-            .finally(() => {});
+            .finally(() => {
+              this.loadingBtn = false;
+            });
         } else {
           return false;
         }

+ 9 - 5
src/views/basicData/salaryConfiguration/detailsPage.vue

@@ -14,13 +14,13 @@
         <div class="add-customer-btn">
           <el-button
             type="success"
-            :disabled="!form.id"
+            :disabled="loadingBtn||!form.id"
             size="small"
             @click="copyDoc"
           >
             复制新单
           </el-button>
-          <el-button type="primary" size="small" @click="editCustomer"
+          <el-button type="primary" size="small" @click="editCustomer"           :disabled="loadingBtn || detailData.status == 1"
             >保存数据
           </el-button>
         </div>
@@ -29,7 +29,7 @@
         title="基础资料"
         style="margin-top: 60px"
       ></containerTitle>
-      <basic-container>
+      <basic-container v-loading="loadingBtn">
         <avue-form
           ref="form"
           class="trading-form"
@@ -76,7 +76,7 @@
         </avue-form>
       </basic-container>
       <containerTitle title="基础明细"></containerTitle>
-      <basic-container>
+      <basic-container v-loading="loadingBtn">
         <avue-crud
           ref="crud"
           :option="optionList"
@@ -214,6 +214,7 @@ export default {
   name: "index",
   data() {
     return {
+      loadingBtn: false,
       form: {},
       dataList: [],
       option: {
@@ -486,13 +487,16 @@ export default {
               return this.$message.error(`请输入第${i + 1}行的工资标准`);
             }
           }
+          this.loadingBtn = true;
           submit({ ...this.form, schoolConfigItems: this.dataList })
             .then(res => {
               this.$message.success("保存成功");
               this.form = res.data.data;
               this.dataList = res.data.data.schoolConfigItems;
             })
-            .finally(() => {});
+            .finally(() => {
+              this.loadingBtn = false;
+            });
         } else {
           return false;
         }

+ 1 - 1
src/views/basicData/salaryConfiguration/js/optionList.js

@@ -52,7 +52,7 @@ export const option ={
       span: 8
     },
     {
-      label: "教师类别",
+      label: "类别",
       prop: "salaryWithdrawalStandardName",
       type: "select",
       dicData:[],

+ 44 - 41
src/views/exportTrade/customerInquiry/detailsPage.vue

@@ -1070,20 +1070,52 @@ export default {
     copyDoc() {
       this.$emit("copyOrder", this.form.id);
     },
-    getParities() {
+    getParities(status) {
       getParities({
         currency: this.form.currency,
         businesDate: this.form.businesDate
-      }).then(res => {
-        const data = res.data.data;
-        this.form.exchangeRate = data.receivableParities;
-        this.oldform.exchangeRate = data.receivableParities;
-        this.oldExchange =this.deepClone(data.receivableParities);
-      });
+      })
+        .then(res => {
+          const data = res.data.data;
+          this.form.exchangeRate = data.receivableParities;
+          this.oldform.exchangeRate = data.receivableParities;
+          this.oldExchange = this.deepClone(data.receivableParities);
+        })
+        .finally(() => {
+          if (this.data.length > 0&&status=='currency') {
+            this.data.forEach(e => {
+              e.freight = transformCal(
+                e.freight,
+                this.oldExchange,
+                this.form.exchangeRate
+              );
+              e.insurance = transformCal(
+                e.insurance,
+                this.oldExchange,
+                this.form.exchangeRate
+              );
+              e.price = sellingCal(e.productPrice, this.form.exchangeRate);
+              e.amount = amountCal(
+                e.price,
+                e.orderQuantity,
+                e.freight,
+                e.insurance,
+                e.discount
+              );
+              e.itemMargin = grossProfitCal(
+                e.purchaseAmount,
+                e.partsPrice,
+                e.price,
+                this.form.exchangeRate
+              );
+              e.exchangeRate = this.form.exchangeRate;
+            });
+          }
+        });
     },
-    businesDateChange(){
-      if(this.form.currency&&this.form.businesDate){
-        this.getParities()
+    businesDateChange() {
+      if (this.form.currency && this.form.businesDate) {
+        this.getParities();
       }
     },
     getCorpData(row) {
@@ -1381,37 +1413,8 @@ export default {
       );
     },
     currencyChange() {
-      if(this.form.currency&&this.form.businesDate){
-        this.getParities()
-      }
-      if (this.data.length > 0) {
-        this.data.forEach(e => {
-          e.freight = transformCal(
-            e.freight,
-            this.oldExchange,
-            this.form.exchangeRate
-          );
-          e.insurance = transformCal(
-            e.insurance,
-            this.oldExchange,
-            this.form.exchangeRate
-          );
-          e.price = sellingCal(e.productPrice, this.form.exchangeRate);
-          e.amount = amountCal(
-            e.price,
-            e.orderQuantity,
-            e.freight,
-            e.insurance,
-            e.discount
-          );
-          e.itemMargin = grossProfitCal(
-            e.purchaseAmount,
-            e.partsPrice,
-            e.price,
-            this.form.exchangeRate
-          );
-          e.exchangeRate = this.form.exchangeRate;
-        });
+      if (this.form.currency && this.form.businesDate) {
+        this.getParities("currency");
       }
     },
     exchangeRateChange(row) {

+ 42 - 39
src/views/exportTrade/salesContract/detailsPage.vue

@@ -1261,19 +1261,51 @@ export default {
         }
       });
     },
-    getParities() {
+    getParities(status) {
       getParities({
         currency: this.form.currency,
         businesDate: this.form.businesDate
-      }).then(res => {
-        const data = res.data.data;
-        this.form.exchangeRate = data.receivableParities;
-        this.oldform.exchangeRate = data.receivableParities;
-        this.oldExchange = this.deepClone(data.receivableParities);
-      });
+      })
+        .then(res => {
+          const data = res.data.data;
+          this.form.exchangeRate = data.receivableParities;
+          this.oldform.exchangeRate = data.receivableParities;
+          this.oldExchange = this.deepClone(data.receivableParities);
+        })
+        .finally(() => {
+          if (this.data.length > 0&&status=='currency') {
+            this.data.forEach(e => {
+              e.freight = transformCal(
+                e.freight,
+                this.oldExchange,
+                this.form.exchangeRate
+              );
+              e.insurance = transformCal(
+                e.insurance,
+                this.oldExchange,
+                this.form.exchangeRate
+              );
+              e.price = sellingCal(e.productPrice, this.form.exchangeRate);
+              e.amount = amountCal(
+                e.price,
+                e.orderQuantity,
+                e.freight,
+                e.insurance,
+                e.discount
+              );
+              e.itemMargin = grossProfitCal(
+                e.purchaseAmount,
+                e.partsPrice,
+                e.price,
+                this.form.exchangeRate
+              );
+              e.exchangeRate = this.form.exchangeRate;
+            });
+          }
+        });
     },
     businesDateChange() {
-      if (this.form.currency&&this.form.businesDate) {
+      if (this.form.currency && this.form.businesDate) {
         this.getParities();
       }
     },
@@ -1557,37 +1589,8 @@ export default {
       }
     },
     currencyChange() {
-      if (this.form.currency&&this.form.businesDate) {
-        this.getParities();
-      }
-      if (this.data.length > 0) {
-        this.data.forEach(e => {
-          e.freight = transformCal(
-            e.freight,
-            this.oldExchange,
-            this.form.exchangeRate
-          );
-          e.insurance = transformCal(
-            e.insurance,
-            this.oldExchange,
-            this.form.exchangeRate
-          );
-          e.price = sellingCal(e.productPrice, this.form.exchangeRate);
-          e.amount = amountCal(
-            e.price,
-            e.orderQuantity,
-            e.freight,
-            e.insurance,
-            e.discount
-          );
-          e.itemMargin = grossProfitCal(
-            e.purchaseAmount,
-            e.partsPrice,
-            e.price,
-            this.form.exchangeRate
-          );
-          e.exchangeRate = this.form.exchangeRate;
-        });
+      if (this.form.currency && this.form.businesDate) {
+        this.getParities('currency');
       }
     },
     exchangeRateChange(row) {

+ 41 - 5
src/views/salaryManagement/highSchool/detailsPage.vue

@@ -21,7 +21,7 @@
           >编辑
         </el-button>
         <el-dropdown style="margin-right: 8px;margin-left: 8px;">
-          <el-button type="primary" size="small">
+          <el-button type="primary" size="small" :disabled="loadingBtn">
             审核处理<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
@@ -36,7 +36,7 @@
         </el-dropdown>
         <el-button
           type="success"
-          :disabled="!form.id"
+          :disabled="loadingBtn || !form.id"
           size="small"
           @click="copyDoc"
         >
@@ -52,7 +52,7 @@
         </el-button>
       </div>
     </div>
-    <div class="customer-main">
+    <div class="customer-main" v-loading="loadingBtn">
       <containerTitle title="基础资料"></containerTitle>
       <basic-container>
         <avue-form
@@ -102,13 +102,13 @@
             <el-button type="primary" size="small" @click.stop="openExport()"
               >导出
             </el-button>
-            <el-button
+            <!-- <el-button
               type="primary"
               size="small"
               @click.stop="calculate()"
               :disabled="detailData.status == 1"
               >重新计算
-            </el-button>
+            </el-button> -->
             <el-button
               type="primary"
               size="small"
@@ -964,6 +964,7 @@
               @change="salaryAdd(crudForm)"
             />
           </template>
+          <!-- eslint-disable -->
           <template
             slot="enjoyOfficeTreatmentForm"
             slot-scope="{ column, disabled }"
@@ -975,6 +976,7 @@
               @change="salaryAdd(crudForm)"
             ></avue-radio>
           </template>
+          <!-- eslint-enable -->
           <template slot-scope="{ row, index }" slot="menu">
             <el-button
               type="text"
@@ -1363,6 +1365,10 @@ export default {
     if (this.detailData.status == 1) {
       this.$set(this.option, "disabled", true);
     }
+    this.getWorkDicts("marital_status").then(res => {
+      this.findObject(this.optionList.column, "code").dicData = res.data.data;
+      this.$refs.crud.init();
+    });
     this.optionList.height = 450;
     this.annexOption.height = 450;
     // this.auditOption.height = 600;
@@ -2364,6 +2370,36 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "33":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/teamLeaderAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/teamLeaderAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "34":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/prepareAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/prepareAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "35":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/leadAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/leadAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 1 - 1
src/views/salaryManagement/highSchool/js/optionList.js

@@ -312,7 +312,7 @@ export const optionList = {
       label: "学历",
       prop: "code",
       type: "select",
-      dicUrl: "/api/blade-system/dict-biz/dictionary?code=marital_status",
+      dicData:[],
       props: {
         label: "dictValue",
         value: "dictValue"

+ 43 - 7
src/views/salaryManagement/juniorhighSchool/detailsPage.vue

@@ -21,7 +21,7 @@
           >编辑
         </el-button>
         <el-dropdown style="margin-right: 8px;margin-left: 8px;">
-          <el-button type="primary" size="small">
+          <el-button type="primary" size="small" :disabled="loadingBtn">
             审核处理<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
@@ -36,7 +36,7 @@
         </el-dropdown>
         <el-button
           type="success"
-          :disabled="!form.id"
+          :disabled="loadingBtn || !form.id"
           size="small"
           @click="copyDoc"
         >
@@ -52,7 +52,7 @@
         </el-button>
       </div>
     </div>
-    <div class="customer-main">
+    <div class="customer-main" v-loading="loadingBtn">
       <containerTitle title="基础资料"></containerTitle>
       <basic-container>
         <avue-form
@@ -102,13 +102,13 @@
             <el-button type="primary" size="small" @click.stop="openExport()"
               >导出
             </el-button>
-            <el-button
+            <!-- <el-button
               type="primary"
               size="small"
               @click.stop="calculate()"
               :disabled="detailData.status == 1"
               >重新计算
-            </el-button>
+            </el-button> -->
             <el-button
               type="primary"
               size="small"
@@ -964,6 +964,7 @@
               @change="salaryAdd(crudForm)"
             />
           </template>
+          <!-- eslint-disable -->
           <template
             slot="enjoyOfficeTreatmentForm"
             slot-scope="{ column, disabled }"
@@ -975,6 +976,7 @@
               @change="salaryAdd(crudForm)"
             ></avue-radio>
           </template>
+          <!-- eslint-enable -->
           <template slot-scope="{ row, index }" slot="menu">
             <el-button
               type="text"
@@ -1190,7 +1192,7 @@ export default {
           value: "否"
         }
       ],
-       option: {
+      option: {
         menuBtn: false,
         labelWidth: 80,
         column: [
@@ -1363,6 +1365,10 @@ export default {
     if (this.detailData.status == 1) {
       this.$set(this.option, "disabled", true);
     }
+    this.getWorkDicts("marital_status").then(res => {
+      this.findObject(this.optionList.column, "code").dicData = res.data.data;
+      this.$refs.crud.init();
+    });
     this.optionList.height = 450;
     this.annexOption.height = 450;
     // this.auditOption.height = 600;
@@ -1958,7 +1964,7 @@ export default {
             if (res.data.code == 200) {
               this.detailData.status = 2;
               this.option = this.$options.data().option;
-                            this.findObject(
+              this.findObject(
                 this.option.column,
                 "studentNumber"
               ).disabled = false;
@@ -2364,6 +2370,36 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "33":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/teamLeaderAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/teamLeaderAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "34":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/prepareAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/prepareAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "35":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/leadAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/leadAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 1 - 1
src/views/salaryManagement/juniorhighSchool/js/optionList.js

@@ -312,7 +312,7 @@ export const optionList = {
       label: "学历",
       prop: "code",
       type: "select",
-      dicUrl: "/api/blade-system/dict-biz/dictionary?code=marital_status",
+      dicData:[],
       props: {
         label: "dictValue",
         value: "dictValue"

+ 43 - 7
src/views/salaryManagement/logisticsDepartment/detailsPage.vue

@@ -21,7 +21,7 @@
           >编辑
         </el-button>
         <el-dropdown style="margin-right: 8px;margin-left: 8px;">
-          <el-button type="primary" size="small">
+          <el-button type="primary" size="small" :disabled="loadingBtn">
             审核处理<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
@@ -36,7 +36,7 @@
         </el-dropdown>
         <el-button
           type="success"
-          :disabled="!form.id"
+          :disabled="loadingBtn || !form.id"
           size="small"
           @click="copyDoc"
         >
@@ -52,7 +52,7 @@
         </el-button>
       </div>
     </div>
-    <div class="customer-main">
+    <div class="customer-main" v-loading="loadingBtn">
       <containerTitle title="基础资料"></containerTitle>
       <basic-container>
         <avue-form
@@ -102,13 +102,13 @@
             <el-button type="primary" size="small" @click.stop="openExport()"
               >导出
             </el-button>
-            <el-button
+            <!-- <el-button
               type="primary"
               size="small"
               @click.stop="calculate()"
               :disabled="detailData.status == 1"
               >重新计算
-            </el-button>
+            </el-button> -->
             <el-button
               type="primary"
               size="small"
@@ -964,6 +964,7 @@
               @change="salaryAdd(crudForm)"
             />
           </template>
+          <!-- eslint-disable -->
           <template
             slot="enjoyOfficeTreatmentForm"
             slot-scope="{ column, disabled }"
@@ -975,6 +976,7 @@
               @change="salaryAdd(crudForm)"
             ></avue-radio>
           </template>
+          <!-- eslint-enable -->
           <template slot-scope="{ row, index }" slot="menu">
             <el-button
               type="text"
@@ -1190,7 +1192,7 @@ export default {
           value: "否"
         }
       ],
-     option: {
+      option: {
         menuBtn: false,
         labelWidth: 80,
         column: [
@@ -1363,6 +1365,10 @@ export default {
     if (this.detailData.status == 1) {
       this.$set(this.option, "disabled", true);
     }
+    this.getWorkDicts("marital_status").then(res => {
+      this.findObject(this.optionList.column, "code").dicData = res.data.data;
+      this.$refs.crud.init();
+    });
     this.optionList.height = 450;
     this.annexOption.height = 450;
     // this.auditOption.height = 600;
@@ -1958,7 +1964,7 @@ export default {
             if (res.data.code == 200) {
               this.detailData.status = 2;
               this.option = this.$options.data().option;
-                            this.findObject(
+              this.findObject(
                 this.option.column,
                 "studentNumber"
               ).disabled = false;
@@ -2364,6 +2370,36 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+                      case "33":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/teamLeaderAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/teamLeaderAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "34":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/prepareAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/prepareAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "35":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/leadAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/leadAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 1 - 1
src/views/salaryManagement/logisticsDepartment/js/optionList.js

@@ -312,7 +312,7 @@ export const optionList = {
       label: "学历",
       prop: "code",
       type: "select",
-      dicUrl: "/api/blade-system/dict-biz/dictionary?code=marital_status",
+      dicData:[],
       props: {
         label: "dictValue",
         value: "dictValue"

+ 41 - 5
src/views/salaryManagement/primarySchool/detailsPage.vue

@@ -21,7 +21,7 @@
           >编辑
         </el-button>
         <el-dropdown style="margin-right: 8px;margin-left: 8px;">
-          <el-button type="primary" size="small">
+          <el-button type="primary" size="small" :disabled="loadingBtn">
             审核处理<i class="el-icon-arrow-down el-icon--right"></i>
           </el-button>
           <el-dropdown-menu slot="dropdown">
@@ -36,7 +36,7 @@
         </el-dropdown>
         <el-button
           type="success"
-          :disabled="!form.id"
+          :disabled="loadingBtn || !form.id"
           size="small"
           @click="copyDoc"
         >
@@ -52,7 +52,7 @@
         </el-button>
       </div>
     </div>
-    <div class="customer-main">
+    <div class="customer-main" v-loading="loadingBtn">
       <containerTitle title="基础资料"></containerTitle>
       <basic-container>
         <avue-form
@@ -102,13 +102,13 @@
             <el-button type="primary" size="small" @click.stop="openExport()"
               >导出
             </el-button>
-            <el-button
+            <!-- <el-button
               type="primary"
               size="small"
               @click.stop="calculate()"
               :disabled="detailData.status == 1"
               >重新计算
-            </el-button>
+            </el-button> -->
             <el-button
               type="primary"
               size="small"
@@ -967,6 +967,7 @@
               @change="salaryAdd(crudForm)"
             />
           </template>
+          <!-- eslint-disable -->
           <template
             slot="enjoyOfficeTreatmentForm"
             slot-scope="{ column, disabled }"
@@ -978,6 +979,7 @@
               @change="salaryAdd(crudForm)"
             ></avue-radio>
           </template>
+          <!-- eslint-enable -->
           <template slot-scope="{ row, index }" slot="menu">
             <el-button
               type="text"
@@ -1366,6 +1368,10 @@ export default {
     if (this.detailData.status == 1) {
       this.$set(this.option, "disabled", true);
     }
+    this.getWorkDicts("marital_status").then(res => {
+      this.findObject(this.optionList.column, "code").dicData = res.data.data;
+      this.$refs.crud.init();
+    });
     this.optionList.height = 450;
     this.annexOption.height = 450;
   },
@@ -2366,6 +2372,36 @@ export default {
               "excelFile"
             ).disabled = false;
             break;
+          case "33":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/teamLeaderAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/teamLeaderAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "34":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/prepareAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/prepareAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
+          case "35":
+            this.exportUrl =
+              "/api/blade-school/salaryitem/export/leadAssessExcel";
+            this.findObject(this.excelOption.column, "excelFile").action =
+              "/api/blade-school/salaryitem/import/leadAssessExcel";
+            this.findObject(
+              this.excelOption.column,
+              "excelFile"
+            ).disabled = false;
+            break;
           default:
             this.findObject(
               this.excelOption.column,

+ 0 - 1
src/views/salaryManagement/primarySchool/index.vue

@@ -222,7 +222,6 @@ export default {
       if (inSave) {
         this.$nextTick(() => {
           this.$refs.crud.doLayout();
-          
         });
         this.$message.success("重置成功");
         this.$refs.crud.$refs.dialogColumn.columnBox = false;

+ 1 - 1
src/views/salaryManagement/primarySchool/js/optionList.js

@@ -312,7 +312,7 @@ export const optionList = {
       label: "学历",
       prop: "code",
       type: "select",
-      dicUrl: "/api/blade-system/dict-biz/dictionary?code=marital_status",
+      dicData:[],
       props: {
         label: "dictValue",
         value: "dictValue"

+ 8 - 2
src/views/statisticAnalysis/salesProfit/index.vue

@@ -104,11 +104,11 @@ export default {
       dataList: [],
       loading: false,
       detailData: {},
-        page: {
+      page: {
         pageSize: 20,
         currentPage: 1,
         total: 0,
-        pageSizes: [10,20,30,40,50, 100, 200, 300, 400, 500]
+        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
       },
       option: {
         searchShow: true,
@@ -293,6 +293,12 @@ export default {
             overHidden: true
           },
           {
+            label: "数量",
+            prop: "orderQuantity",
+            width: 100,
+            overHidden: true
+          },
+          {
             label: "汇率",
             prop: "exchangeRate",
             width: 100,

+ 275 - 52
src/views/wel/home/tongjiSchool.vue

@@ -11,7 +11,34 @@
           <but-card iconName="el-icon-edit-outline" name="添加后勤" />
         </div>
         <index-card title="教师工资总体数据" iconName="el-icon-view">
-          <div slot="content" style="height:330px">
+          <div slot="select">
+            <el-date-picker
+              v-model="annual2"
+              type="year"
+              size="mini"
+              placeholder="选择年"
+              value-format="yyyy"
+              style="margin-right:10px"
+              @change="getsalaryData"
+            >
+            </el-date-picker>
+            <el-select
+              slot="content"
+              size="mini"
+              v-model="salaryType2"
+              placeholder="请选择"
+              @change="getsalaryData"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </div>
+          <div slot="content" style="height:290px">
             <avue-data-icons :option="option"></avue-data-icons>
           </div>
         </index-card>
@@ -51,7 +78,63 @@
           </el-select>
         </div>
 
-        <div slot="content" style="height:500px" id="commoDity"></div>
+        <div slot="content" style="height:450px" id="commoDity"></div>
+      </index-card>
+      <br />
+    </basic-container>
+    <basic-container>
+      <index-card
+        title="工资环比走势图"
+        iconName="el-icon-s-fold"
+        style="height:500px;margin-bottom: 30px"
+      >
+        <div slot="select">
+          <el-date-picker
+            v-model="annual3"
+            type="year"
+            size="mini"
+            placeholder="选择年"
+            value-format="yyyy"
+            style="margin-right:10px"
+            @change="getsalaryDataChain"
+          >
+          </el-date-picker>
+          <el-select
+            slot="content"
+            size="mini"
+            v-model="moon"
+            placeholder="请选择月份"
+            @change="moonChange"
+            clearable
+            style="margin-right:10px"
+          >
+            <el-option
+              v-for="item in moonList"
+              :key="item.value"
+              :label="item.dictValue"
+              :value="item.dictKey"
+            >
+            </el-option>
+          </el-select>
+          <el-select
+            slot="content"
+            size="mini"
+            v-model="semester"
+            placeholder="请选择学期"
+            clearable
+            @change="semesterChange"
+          >
+            <el-option
+              v-for="item in options2"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </div>
+
+        <div slot="content" style="height:450px" id="commoDity2"></div>
       </index-card>
       <br />
     </basic-container>
@@ -59,7 +142,7 @@
 </template>
 
 <script>
-import { salaryStatistics } from "@/api/wel";
+import { salaryStatistics, salaryData, salaryDataChain } from "@/api/wel";
 import { mapGetters } from "vuex";
 import indexCard from "../components/card.vue";
 import butCard from "../components/butCard.vue";
@@ -67,11 +150,20 @@ export default {
   name: "wel",
   data() {
     return {
+      moon: null,
+      semester: null,
+      moonList: [],
+      fsalaryList2: [],
+      studentNumberList2: [],
       fsalaryList: [],
       studentNumberList: [],
       activeNames: ["1", "2", "3", "5"],
       logActiveNames: ["24"],
       annual: "2022",
+      annual2: "2022",
+      annual3: "2022",
+      salaryType: "",
+      salaryType2: "",
       isHeight: {},
       options: [
         {
@@ -95,90 +187,105 @@ export default {
           label: "后勤部"
         }
       ],
-      salaryType: "",
+      options2: [
+        {
+          value: "上学期",
+          label: "上学期"
+        },
+        {
+          value: "下学期",
+          label: "下学期"
+        }
+      ],
       option: {
         span: 6,
         data: [
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "工资总额",
-            count: 12678,
+            count: 0,
             decimals: 2,
-            icon: "el-icon-tickets",
+            icon: "el-icon-tickets"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "年工资额增长率(%)",
-            count: 29,
-            icon: "el-icon-s-marketing",
+            count: 0,
+            decimals: 2,
+            icon: "el-icon-s-marketing"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "人均工资",
-            count: 35623,
-            icon: "el-icon-s-finance",
+            count: 0,
+            decimals: 2,
+            icon: "el-icon-s-finance"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "年人均工资增长率(%)",
-            count: 19,
-            icon: "el-icon-s-claim",
+            count: 0,
+            decimals: 2,
+            icon: "el-icon-s-claim"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "保险总额",
-            count: 16826,
-            icon: "el-icon-s-cooperation",
+            count: 0,
+            decimals: 2,
+            icon: "el-icon-s-cooperation"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "保险总额同比(%)",
-            count: 69,
-            icon: "el-icon-notebook-1",
+            count: 0,
+            decimals: 2,
+            icon: "el-icon-notebook-1"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "人均保险",
-            count: 16826,
-            icon: "el-icon-s-custom",
+            count: 0,
+            decimals: 2,
+            icon: "el-icon-s-custom"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           },
           {
-            click: function(item) {
-              // alert(JSON.stringify(item));
-            },
+            // click: function(item) {
+            //   // alert(JSON.stringify(item));
+            // },
             title: "人均保险同比(%)",
-            count: 30,
-            icon: "el-icon-notebook-2",
+            count: 0,
+            icon: "el-icon-notebook-2"
             // href:'https://avuejs.com',
-            target: "_blank"
+            // target: "_blank"
           }
         ]
       }
@@ -186,9 +293,14 @@ export default {
   },
   created() {
     this.isHeight.height = window.innerHeight - 165 + "px";
+    this.getWorkDicts("month").then(res => {
+      this.moonList = res.data.data;
+    });
   },
   mounted() {
     this.getsalaryStatistics();
+    this.getsalaryData();
+    this.getsalaryDataChain();
   },
   components: {
     indexCard,
@@ -215,6 +327,72 @@ export default {
           this.commoDity();
         });
     },
+    moonChange() {
+      this.semester = null;
+      this.getsalaryDataChain();
+    },
+    semesterChange() {
+      this.moon = null;
+      this.getsalaryDataChain();
+    },
+    getsalaryDataChain() {
+      this.yearList = [];
+      this.fsalaryList2 = [];
+      this.studentNumberList2 = [];
+      salaryDataChain({
+        annual: this.annual3,
+        moon: this.moon,
+        semester: this.semester
+      })
+        .then(res => {
+          let data = res.data.data;
+          for (let i = 5; i >= 0; i--) {
+            this.yearList.push(Number(this.annual3) - i + "年");
+          }
+          this.fsalaryList2.push(Number(data.fsalary));
+          this.fsalaryList2.push(Number(data.fsalaryOne));
+          this.fsalaryList2.push(Number(data.fsalaryTwo));
+          this.fsalaryList2.push(Number(data.fsalaryThree));
+          this.fsalaryList2.push(Number(data.fsalaryFour));
+          this.fsalaryList2.push(Number(data.fsalaryFive));
+          this.studentNumberList2.push(Number(data.studentNumber));
+          this.studentNumberList2.push(Number(data.studentNumberOne));
+          this.studentNumberList2.push(Number(data.studentNumberTwo));
+          this.studentNumberList2.push(Number(data.studentNumberThree));
+          this.studentNumberList2.push(Number(data.studentNumberFour));
+          this.studentNumberList2.push(Number(data.studentNumberFive));
+        })
+        .finally(() => {
+          this.commoDity2();
+        });
+    },
+    getsalaryData() {
+      salaryData({
+        annual: this.annual2,
+        salaryType: this.salaryType2
+      }).then(res => {
+        let data = res.data.data;
+        this.option.data.forEach(e => {
+          if (e.title == "工资总额") {
+            e.count = data.salaryRental;
+          } else if (e.title == "年工资额增长率(%)") {
+            e.count = data.annualWageGrowth;
+          } else if (e.title == "人均工资") {
+            e.count = data.averageWage;
+          } else if (e.title == "年人均工资增长率(%)") {
+            e.count = data.averageWageGrowthRate;
+          } else if (e.title == "保险总额") {
+            e.count = data.insuredSum;
+          } else if (e.title == "保险总额同比(%)") {
+            e.count = data.insuredSumYear;
+          } else if (e.title == "人均保险") {
+            e.count = data.insuredMean;
+          } else if (e.title == "人均保险同比(%)") {
+            e.count = data.insuredMeanYear;
+          }
+        });
+      });
+    },
     handleChange(val) {
       window.console.log(val);
     },
@@ -275,6 +453,51 @@ export default {
           }
         ]
       });
+    },
+    commoDity2() {
+      // 基于准备好的dom,初始化echarts实例,所以只能在mounted中调用
+      let myChart = this.$echarts.init(document.getElementById("commoDity2"));
+
+      // 绘制图表
+      myChart.setOption({
+        tooltip: {
+          trigger: "axis",
+          axisPointer: {
+            type: "shadow"
+          }
+        },
+        legend: {
+          data: ["工资", "人数"]
+        },
+        xAxis: {
+          type: "category",
+          data: this.yearList,
+        },
+        grid: {
+          left: "3%",
+          right: "4%",
+          bottom: "3%",
+          containLabel: true
+        },
+        yAxis: {
+          type: "value",
+          axisLabel: {
+            formatter: "{value} 元"
+          }
+        },
+        series: [
+          {
+            data: this.fsalaryList2,
+            name: "工资",
+            type: "bar"
+          },
+          {
+            data: this.studentNumberList2,
+            name: "人数",
+            type: "bar"
+          }
+        ]
+      });
     }
   }
 };