Bläddra i källkod

添加课酬管理

lex-xin 4 år sedan
förälder
incheckning
7dd4e26775

+ 9 - 0
src/api/generalSettings.js

@@ -19,6 +19,15 @@ export function sysConfigUpdate(data) {
     })
 }
 
+// 修改参数
+export function queryByParamName(data) {
+    return request({
+        url: api + '/sysConfig/queryByParamName',
+        method: 'get',
+        params: data
+    })
+}
+
 
 // 报表中心导出课酬
 export function exportTeacherSalary(data) {

+ 288 - 0
src/views/categroyManager/generalSettings/earlyWarning.vue

@@ -0,0 +1,288 @@
+<template>
+  <div class='m-container'>
+    <!-- <h2>错误类型管理</h2> -->
+    <div class="m-core">
+      <auth auths="sysConfig/update" style="margin-bottom: 20px">
+        <el-button type="primary" @click="openTypes('create')">添加</el-button>
+      </auth>
+
+      <!-- 搜索标题 -->
+      <save-form
+        :inline="true"
+        ref="searchForm"
+        class="searchForm"
+        :model.sync="searchForm"
+      >
+        <el-form-item prop="organId">
+          <el-select
+            v-model.trim="searchForm.organId"
+            placeholder="请选择分部"
+            clearable
+            filterable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :value="item.id"
+              :label="item.name"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button @click="search" type="danger">搜索</el-button>
+        </el-form-item>
+      </save-form>
+      <!-- 列表 -->
+      <div class="tableWrap">
+        <el-table :data='tableList'
+                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+          <el-table-column align='center'
+                           prop="branchName"
+                           label="分部">
+          </el-table-column>
+          <el-table-column align='center'
+                           prop="money"
+                           label="预警课酬">
+            <template slot-scope="scope">
+              {{ scope.row.money | moneyFormat }}元
+            </template>
+          </el-table-column>
+          <!-- <el-table-column align='center'
+                           prop="name"
+                           label="修改日期">
+          </el-table-column> -->
+          <el-table-column align='center'
+                           label="操作">
+            <template slot-scope="scope">
+              <auth auths="sysConfig/update">
+                <el-button @click="openTypes('update', scope.row)"
+                         type="text">修改</el-button>
+                <el-button @click="onTypesDel(scope.row)"
+                         type="text">删除</el-button>
+              </auth>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+    </div>
+    <el-dialog :title="formTitle[formActionTitle]"
+               :visible.sync="typeStatus"
+               @close="onFormClose('ruleForm')"
+               width="600px">
+      <el-form :model="form"
+               :rules="rules"
+               ref="ruleForm">
+        <el-form-item label="预警课酬(元)"
+                      prop="money"
+                      :label-width="formLabelWidth">
+          <el-input v-model.trim="form.money"
+                    type="number"
+                    placeholder="请输入预警课酬"
+                    autocomplete="off"></el-input>
+        </el-form-item>
+        <el-form-item label="适用分部"
+                      prop="branchId"
+                      :label-width="formLabelWidth">
+          <el-select v-model="form.branchId" clearable filterable placeholder="请选择适用分部">
+            <el-option v-for="item in selects.branchs" :value="item.id" :label="item.name" :key="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <span slot="footer"
+            class="dialog-footer">
+        <el-button @click="typeStatus = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="onTypesSubmit('ruleForm')">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<script>
+import { sysConfigUpdate, queryByParamName } from '@/api/generalSettings'
+export default {
+  name: 'earlyWarning',
+  data () {
+    return {
+      searchForm: {
+        organId: null,
+      },
+      tableList: [],
+      tempTableList: [],
+      formActionTitle: 'create',
+      formTitle: {
+        create: '添加预警课酬设置',
+        update: '修改预警课酬设置'
+      },
+      typeStatus: false,
+      formLabelWidth: '120px',
+      form: {
+        id: null,
+        money: null,
+        branchId: null,
+      },
+      formRow: null,
+      rules: {
+        money: [{ required: true, message: '请输入预警课酬', trigger: 'blur' }],
+        branchId: [{ required: true, message: '请选择适用分部', trigger: 'blur' }],
+      }
+    }
+  },
+  async mounted () {
+    await this.$store.dispatch('setBranchs')
+
+    this.getList()
+  },
+  methods: {
+    onTypesSubmit (formName) { // 添加数据
+      this.$refs[formName].validate(async (valid) => {
+        if (valid) {
+          const form = this.form
+          let status = false
+          let statusName = null
+          let object = {}
+          this.tempTableList.forEach(branch => {
+            if(this.formActionTitle == 'update') {
+              if(branch.branchId == form.branchId && this.formRow.branchId != form.branchId) {
+                status = true
+                statusName = branch.branchName
+              }
+            } else {
+              if(branch.branchId == form.branchId) {
+                status = true
+                statusName = branch.branchName
+              }
+            }
+            object[branch.branchId] = branch.money
+          })
+          if(status) {
+            this.$message.error(`[${statusName}]分部已设置预警课酬`)
+            return
+          }
+          object[form.branchId] = form.money
+          let params = {
+            id: form.id,
+            paranValue: JSON.stringify(object),
+            paramName: 'warning_min_course_salary'
+          }
+          await sysConfigUpdate(params).then(res => {
+            let title = this.formActionTitle == 'create' ? '添加' : '修改'
+            this.messageTips(title, res)
+          })
+
+        } else {
+          return false;
+        }
+      })
+    },
+    search() {
+      // this.getList()
+      let organId = this.searchForm.organId
+      let tempList = []
+      this.tempTableList.forEach(item => {
+        if(item.branchId == organId || !organId) {
+          tempList.push(item)
+        }
+      })
+      this.tableList = tempList
+    },
+    async onTypesDel (row) {
+      let object = {}
+      this.tempTableList.forEach(item => {
+        if(row.branchId != item.branchId) {
+          object[item.branchId] = item.money
+        }
+      })
+      let params = {
+        id: this.form.id,
+        paranValue: JSON.stringify(object),
+        paramName: 'warning_min_course_salary'
+      }
+      this.$confirm("是否删除预警课酬", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(async () => {
+        await sysConfigUpdate(params).then(res => {
+          this.messageTips('删除', res)
+        })
+      })
+      .catch(() => {});
+    },
+    async messageTips (title, res) {
+      if (res.code == 200) {
+        this.$message.success(title + '成功')
+        this.typeStatus = false
+        await this.getList()
+        await this.search()
+      } else {
+        this.$message.error(res.msg)
+      }
+    },
+    async getList () {
+      await queryByParamName({
+        paramName: 'warning_min_course_salary'
+      }).then(res => {
+        let result = res.data
+        if (res.code == 200) {
+          const paranValue = result.paranValue ? JSON.parse(result.paranValue) : {}
+          this.form.id = result.id
+          const branchs = this.selects.branchs
+          const tempValue = []
+          for(let i in paranValue) {
+            let branchName = []
+            branchs.forEach(branch => {
+              if(i == branch.id) {
+                branchName = branch.name
+              }
+            })
+            tempValue.push({
+              branchId: i,
+              branchName: branchName,
+              money: paranValue[i]
+            })
+          }
+          this.tableList = tempValue
+          this.tempTableList = tempValue
+        }
+      })
+    },
+    openTypes (type, row) {
+      this.typeStatus = true
+      this.formActionTitle = type
+      // 修改的时候赋值
+      if (type == 'update') {
+        this.formRow = row
+        this.$nextTick(() => {
+          this.form.money = row.money,
+          this.form.branchId = parseInt(row.branchId)
+        })
+      }
+    },
+    onFormClose (formName) { // 关闭弹窗重置验证
+      this.$refs[formName].resetFields()
+    },
+
+  }
+}
+</script>
+<style lang="scss" scoped>
+.el-button--primary {
+  background: #14928a;
+  border-color: #14928a;
+  color: #fff;
+  &:hover,
+  &:active,
+  &:focus {
+    background: #14928a;
+    border-color: #14928a;
+    color: #fff;
+  }
+}
+/deep/.el-date-editor.el-input {
+  width: 100% !important;
+}
+/deep/.el-select {
+  width: 100% !important;
+}
+</style>

+ 12 - 1
src/views/categroyManager/globalMusicGroup.vue

@@ -67,6 +67,14 @@
           >
             <errorManager v-if="activeIndex == 5" />
           </el-tab-pane>
+          <el-tab-pane
+            label="预警课酬设置"
+            lazy
+            name="12"
+            v-if="permissionList.earlyWarning"
+          >
+            <earlyWarning v-if="activeIndex == 12" />
+          </el-tab-pane>
         </tab-router>
     </div>
   </div>
@@ -79,6 +87,7 @@ import chargesList from "./specialSetup/chargesList";
 import musicCourseFee from "./specialSetup/musicCourseFee";
 import jobTemplateSetting from "./specialSetup/jobTemplateSetting";
 import errorManager from "./generalSettings/errorManager";
+import earlyWarning from "./generalSettings/earlyWarning";
 import { permission } from "@/utils/directivePage";
 export default {
   components: {
@@ -88,7 +97,8 @@ export default {
     errorManager,
     chargesList,
     musicCourseFee,
-    courseTimerSetting
+    courseTimerSetting,
+    earlyWarning
   },
   name: "globalConfig",
   data() {
@@ -99,6 +109,7 @@ export default {
         chargesList: permission("/globalConfig/chargesList"),
         jobTemplateSetting: permission("/globalConfig/jobTemplateSetting"),
         errorManager: permission("/globalConfig/errorManager"),
+        earlyWarning: permission("/globalConfig/earlyWarning"),
         musicCourseFee: permission("/globalConfig/musicCourseFee"),
         discountManage: permission("/globalConfig/discountManage"),
         courseTimerSetting: permission("/globalConfig/courseTimerSetting")