haoxuan
2024-04-29 caeb71b06d19a8ffd854c19e5e4b58f7180cdce8
src/views/employeeManage/employeeInfo/components/AddEmployee.vue
@@ -4,8 +4,8 @@
    <div slot="title" class="tac drawerHeader">{{ editRow.title }}人员</div>
    <div class="dialog-content-box">
      <el-form class="form-box" ref="form" :rules="rules" :model="form" label-width="120px" label-position="right">
        <el-form-item label="员工编码:" prop="id">
          <el-input v-model="form.id" placeholder="请输入"></el-input>
        <el-form-item label="员工编码:" prop="id" >
          <el-input v-model="form.id" placeholder="请输入" :disabled="editRow.title=='编辑'?true:false"></el-input>
        </el-form-item>
        <el-form-item label="人员姓名:" prop="name">
          <el-input v-model="form.name" placeholder="请输入"></el-input>
@@ -13,26 +13,32 @@
        <el-form-item label="手机号:" prop="phoneNum">
          <el-input v-model="form.phoneNum" placeholder="请输入" maxlength="11" show-word-limit></el-input>
        </el-form-item>
        <el-form-item label="入职时间:" prop="date">
          <el-date-picker v-model="form.date" style="width:100%;" type="date" placeholder="选择日期"
        <el-form-item label="入职时间:" prop="employmentTime">
          <el-date-picker v-model="form.employmentTime" style="width:100%;" type="date" placeholder="选择日期"
            value-format="yyyy-MM-dd">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="车间:" prop="phoneNum">
          <el-select v-model="form.phoneNum" filterable placeholder="请选择" style="width: 100%">
            <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id">
        <el-form-item label="车间:" prop="shopNameObj">
          <el-select v-model="form.shopNameObj" filterable placeholder="请选择" style="width: 100%" @change="getGroupNumber(false,'shopNameObj')">
            <el-option v-for="item in shopList" :key="item.number"
                  :label="item.name"
                  :value="{ value: item.number, label: item.name }">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="组别:" prop="phoneNum">
          <el-select v-model="form.phoneNum" filterable placeholder="请选择" style="width: 100%">
            <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id">
        <el-form-item label="组别:" prop="groupNumber">
          <el-select v-model="form.groupNumber" filterable
          placeholder="请先选择车间"
          no-data-text="请先选择车间"
          style="width: 100%">
            <el-option v-for="item in groupNumberList" :key="item" :label="item" :value="item">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="工种:" prop="phoneNum">
          <el-select v-model="form.phoneNum" filterable placeholder="请选择" style="width: 100%">
            <el-option v-for="item in DeviceList" :key="item.id" :label="item.name" :value="item.id">
        <el-form-item label="工种:" prop="workTypeObj">
          <el-select v-model="form.workTypeObj" filterable placeholder="请选择" style="width: 100%">
            <el-option v-for="item in workTypeList" :key="item.ID" :label="item.workName"
            :value="{ value: item.ID, label: item.workName }">
            </el-option>
          </el-select>
        </el-form-item>
@@ -46,7 +52,14 @@
</template>
<script>
import { getDeleteFollowRecord } from "@/api/employeeManage/employeeInfo.js"
import { createWorkerInfo,updateWorkerInfo,getWorkTypeList } from "@/api/employeeManage/employeeInfo.js"
import {
  getDictList,
} from "@/api/productManage/silkRegisterForm.js";
import {
  getWorkshopManageGroup,
} from "@/api/productManage/productRegisterForm.js";
export default {
  props: {
    editRow: {
@@ -60,7 +73,14 @@
        id: '',
        name: '',
        phoneNum: '',
        employmentTime:'',
        shopNameObj:{},
        groupNumber:'',
        workTypeObj:null,
      },
      shopList:[],//车间
      groupNumberList:[],//组别
      workTypeList:[], //工种
      rules: {
        id: [
          {
@@ -73,6 +93,13 @@
          {
            required: true,
            message: "请输入员工编码",
            trigger: ["blur", "change"],
          },
        ],
        workTypeObj: [
          {
            required: true,
            message: "请选择",
            trigger: ["blur", "change"],
          },
        ],
@@ -91,10 +118,10 @@
          },
        ],
      },
      DeviceList: [],
    };
  },
  created() {
    this.getSelectDataList()
  },
  watch: {
    islook(newVal) {
@@ -110,50 +137,104 @@
    formInfo() {
      if (this.islook) {
        this.form = {
          explain: "",
          prefixId: "",
          id: "",
          number: 0,
          remark: "",
          status: "",
          frockLife: "",
          frockName: "",
          vendor: "",
          id: '',
          name: '',
          phoneNum: '',
          employmentTime:'',
          shopNameObj:{},
          groupNumber:'',
          workTypeObj:null,
        };
        this.$nextTick(()=>{
          this.$refs["form"].resetFields();
          if (this.editRow.id) {
            this.form = JSON.parse(JSON.stringify(this.editRow));
            this.form.groupNumber=this.form.groupNumber?this.form.groupNumber:null
            this.getGroupNumber(true)
          }
        })
      }
    },
    cancelMethod() {
    getGroupNumber(val,name){
      if (name == "shopNameObj") {
        this.form.groupNumber=''
      }
      // shopName
      if(this.form.shopNameObj.value){
        //组别
        getWorkshopManageGroup({number:this.form.shopNameObj.value}).then((res) => {
           if (res.code == 200) {
              let groupNumberList = res.data || {};
              this.groupNumberList=[]
              if(Object.keys(groupNumberList).length>0){
                for(let i in groupNumberList){
                  this.groupNumberList.push(groupNumberList[i])
                }
              }
            }else{
              this.groupNumberList=[]
              this.form.groupNumber=''
            }
          });
      }else{
        this.groupNumberList =[]
      }
    },
    getSelectDataList() {
      //车间
      getDictList({
        dictType: 1,
      }).then((res) => {
        if (res.code == 200) {
          this.shopList = res.data || [];
        }
      });
      getWorkTypeList({
        page:0,
        pageSize:0,
        keyWord:''
      }).then((res) => {
        if (res.code == 200) {
          this.workTypeList = res.data || [];
        }
      });
    },
    cancelMethod(val) {
      this.$refs["form"].resetFields();
      this.islook = false;
      if(val){
        this.$emit('refresh')
      }
    },
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          let form = JSON.parse(JSON.stringify(this.form));
          form.shopId=form.shopNameObj.value
          form.shopName=form.shopNameObj.label
          form.workTypeId=form.workTypeObj.value
          form.workType=form.workTypeObj.label
          form.groupNumber=form.groupNumber?form.groupNumber:null
          if (this.editRow.type == "add") {
            getDeleteFollowRecord(form).then((res) => {
            createWorkerInfo(form).then((res) => {
              if (res.code == 200) {
                this.$message({
                  message: "添加成功!",
                  type: "success",
                });
                this.cancelMethod();
                this.cancelMethod(true);
              }
            });
          } else {
            getDeleteFollowRecord(form).then((res) => {
            updateWorkerInfo(form).then((res) => {
              if (res.code == 200) {
                this.$message({
                  message: "编辑成功!",
                  type: "success",
                });
                this.cancelMethod();
                this.cancelMethod(true);
              }
            });
          }