lex-xin преди 3 години
родител
ревизия
f0e42b55a0
променени са 5 файла, в които са добавени 109 реда и са изтрити 9 реда
  1. 8 0
      src/api/appTenant.js
  2. 11 0
      src/api/orderManager.js
  3. 23 6
      src/views/HumanResources/form.vue
  4. 26 0
      src/views/HumanResources/index.vue
  5. 41 3
      src/views/teamDetail/teamDetailedList.vue

+ 8 - 0
src/api/appTenant.js

@@ -145,3 +145,11 @@ export function employeeQueryDetail(data) {
     params: data
   })
 }
+
+export function queryEmployeeByRole(data) {
+  return request({
+    method: 'get',
+    url: '/api-web/employee/queryEmployeeByRole',
+    params: data
+  })
+}

+ 11 - 0
src/api/orderManager.js

@@ -264,3 +264,14 @@ export function getCalenders(data) {
     params: data
   })
 }
+
+
+// 确认发货
+export function takeEffectOfinstrumentInsurance(data) {
+  return request2({
+    url: api + '/musicGroup/takeEffectOfinstrumentInsurance',
+    method: 'post',
+    requestType: 'form',
+    data
+  })
+}

+ 23 - 6
src/views/HumanResources/form.vue

@@ -207,7 +207,7 @@
                 </el-form-item>
               </td>
               <th class="description-label"><i class="requiredStar" v-if="form.jobType == 'ADVISER'">*</i>声部</th>
-              <td class="description-content">
+              <td class="description-content" colspan="3">
                 <el-form-item prop="subjectIdList"
                   :rules="[{ required: form.jobType == 'ADVISER', message: '请选择声部', trigger: 'blur' }]"
                 >
@@ -281,7 +281,20 @@
                 <el-form-item prop="hrbp"
                   :rules="[{ required: true, message: '请输入HRBP', trigger: 'blur' }]"
                 >
-                  <el-input size="mini" v-model.trim="form.hrbp" placeholder="请输入HRBP"/>
+                <el-select
+                  size="mini"
+                    v-model.trim="form.hrbp"
+                    clearable
+                    filterable
+                    placeholder='请输入HRBP'
+                  >
+                    <el-option v-for='(item,index) in roleList'
+                      :key="index"
+                      :value="String(item.userId)"
+                      :label="item.userName"
+                    >
+                    </el-option>
+                  </el-select>
                 </el-form-item>
               </td>
             </tr>
@@ -514,7 +527,7 @@
 </template>
 <script>
 // import Vue from 'vue'
-import { employeeCreate, employeeUpdate, employeeQueryDetail } from '@/api/appTenant'
+import { employeeCreate, employeeUpdate, employeeQueryDetail, queryEmployeeByRole } from '@/api/appTenant'
 import CreateRecord from './createRecord.vue'
 export default {
   name: 'hrform',
@@ -584,7 +597,8 @@ export default {
           { required: true, message: '请选择声部', trigger: 'change' },
         ],
       },
-      tableList: []
+      tableList: [],
+      roleList: [] // 角色列表
     }
   },
   watch: {
@@ -592,11 +606,14 @@ export default {
      this.updateData()
     },
   },
-  mounted() {
+  async mounted() {
     this.updateData()
     if(this.formActionTitle == 'update') {
       this.getRecordList()
     }
+
+    let res = await queryEmployeeByRole({ roleId: 40})
+    this.roleList = res.data || []
   },
   computed: {
     propRequred() {
@@ -632,7 +649,6 @@ export default {
         this.form.educations = [{level: '', school: '', year: '', subject: ''}]
         this.form = {...this.form}
       }
-      
       this.$refs['ruleForm'].resetFields()
     },
     addEducation() {
@@ -800,6 +816,7 @@ export default {
       font-size: 14px;
       font-weight: 400;
       color: #14928a;
+      cursor: pointer;
     }
   }
 </style>

+ 26 - 0
src/views/HumanResources/index.vue

@@ -130,6 +130,11 @@
 
             >重置</el-button
           >
+          <el-button
+            type="primary"
+            v-if="$helpers.permission('export/employeeInfo')"
+            @click="employeeExport"
+            >导出</el-button>
           <!--  style="background-color: #409eff; border-color: #409eff" -->
         </el-form-item>
       </saveform>
@@ -454,6 +459,8 @@ import pagination from "@/components/Pagination/index";
 import saveform from "@/components/save-form";
 import dayjs from "dayjs";
 import hrform from "./form";
+import { Export } from "@/utils/downLoadFile";
+import cleanDeep from 'clean-deep'
 // import store from '@/store'
 import {
   helpCenterCatalogList,
@@ -567,6 +574,25 @@ export default {
     this.getSubjectList();
   },
   methods: {
+    employeeExport() {
+      const { dates, ...rest } = this.searchForm;
+      console.log(dates);
+      let params = {
+        ...rest,
+        ...getTimes(dates, ["startDate", "endDate"]),
+      };
+      Export(
+        this,
+        {
+          url: "/api-web/export/employeeInfo",
+          fileName:`人力资源导出.xls`,
+          params:cleanDeep( {
+            ...params
+          }),
+        },
+        "是否确认导出人力资源?"
+      );
+    },
     getSubjectList() {
       getSubject({
         delFlag: 0,

+ 41 - 3
src/views/teamDetail/teamDetailedList.vue

@@ -60,11 +60,16 @@
         >分发清单导出</el-button
       >
       <el-button
+        type="primary"
+        @click="onDelivery"
+        v-if="musicalStatus && $helpers.permission('musicGroup/takeEffectOfinstrumentInsurance')"
+        >确认发货</el-button>
+      <el-button
         type="warning okBtn"
         v-if="team_status == 'PREPARE'&&!hasVerifyMusicalList"
         v-permission="'order/verifyMusicalList'"
         @click="okDetailList"
-        >确认</el-button
+        >乐器清单确认</el-button
       >
       <!-- <div class="okBtn" v-permission="'order/verifyMusicalList'"
            @click="okDetailList">确认</div> -->
@@ -72,9 +77,9 @@
   </div>
 </template>
 <script>
-import { getTeamDetailList } from "@/api/buildTeam";
+import { getTeamDetailList, getTeamBaseInfo } from "@/api/buildTeam";
 import { getTeamList } from "@/api/teamServer";
-import { verifyMusicalList } from "@/api/orderManager";
+import { verifyMusicalList, takeEffectOfinstrumentInsurance } from "@/api/orderManager";
 import axios from "axios";
 import qs from "qs";
 import { getToken } from "@/utils/auth";
@@ -87,6 +92,7 @@ export default {
       Fsearch: null,
       Frules: null,
       team_status: "",
+      musicalInstrumentsProvideStatus: 0, // 是否确认发货  1已发货
       hasVerifyMusicalList:true
     };
   },
@@ -96,6 +102,15 @@ export default {
   activated() {
     this.init();
   },
+  computed: {
+    musicalStatus() {
+      const template = ['PREPARE', 'PROGRESS']
+      const teamStatus = this.$route.query.team_status
+      const status = template.includes(teamStatus)
+      console.log(this.musicalInstrumentsProvideStatus, status)
+      return !this.musicalInstrumentsProvideStatus && status ? true : false
+    }
+  },
   methods: {
     init() {
       this.team_status = this.$route.query.team_status;
@@ -111,12 +126,35 @@ export default {
             this.tableList = res.data ? res.data : [];
           }
         });
+        this.getMusicInfo()
       }
     },
+    async getMusicInfo() {
+        await getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
+          if (res.code == 200) {
+            this.musicalInstrumentsProvideStatus = res.data?.musicGroup?.musicalInstrumentsProvideStatus
+          }
+        });
+    },
     onCancel() {
       this.$store.dispatch("delVisitedViews", this.$route);
       this.$router.push({ path: "/teamList" });
     },
+    onDelivery() {
+      this.$confirm('是否确认发货', "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      }).then(async () => {
+        try {
+          await takeEffectOfinstrumentInsurance({ musicGroupId: this.teamid })
+          this.$message.success('确定发货成功')
+          this.getMusicInfo()
+        } catch {
+          //
+        }
+      })
+    },
     okDetailList() {
       this.$confirm(`是否确认发放清单?`, "提示", {
         confirmButtonText: "确定",