gaosp
2024-01-19 5b9a1d6cb3a7d59c8f2de83c495bba1a069b2723
src/container/maintenance/dailyMAdd.vue
@@ -1,250 +1,239 @@
<!-- 日常保养 编辑 -->
<template>
    <!-- 新增弹框 -->
    <el-dialog
        :title="title"
        width="80%"
        :visible.sync="dialogVisibleAdd" class="role-select">
         <!-- 查询表单 -->
        <el-form :model="dataForm" ref="dataForm" label-width="150px" style="margin-top:10px;">
            <el-row :gutter="24">
                <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
                    <el-form-item label="设备名称" prop="machineName">
                        <el-select v-model="dataForm.machineId" placeholder="---请选择---">
                            <el-option
                            v-for="item in machineList"
                            :key="item.id"
                            :label="item.name"
                            :value="item.id">
                            </el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
                    <el-form-item label="使用部门" prop="department">
                        <el-select v-model="dataForm.department" placeholder="---请选择---" clearable >
                            <el-option
                            v-for="item in departmentlist"
                            :key="item.value"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
                    <el-form-item label="保养者" prop="maintainPerson">
                        <el-select v-model="dataForm.maintainPerson" placeholder="---请选择---" clearable >
                            <el-option
                            v-for="item in userList"
                            :key="item.id"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
                    <el-form-item label="是否合格" prop="isQualified">
                        <el-select v-model="dataForm.isQualified" placeholder="---请选择---" clearable >
                            <el-option
                            v-for="item in isQualified"
                            :key="item.id"
                            :label="item.label"
                            :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
                    <el-form-item label="保养内容与存在问题" prop="detail">
                        <el-input size="mini" type="text" v-model="dataForm.detail"></el-input>
                    </el-form-item>
                </el-col>
                <el-col :xs="24":sm="6":md="6":lg="6":xl="6">
                </el-col>
                <el-col :xs="24":sm="10":md="10":lg="10":xl="10">
                    <el-form-item label="计划开始日期" prop="planStartDate">
                        <el-date-picker
                        format="yyyy 年 MM 月 dd 日"
                        value-format="yyyy-MM-dd"
                        v-model="dataForm.planStartDate"
                        range-separator="至"
                        type="daterange"
                        start-placeholder="开始日期"
                        end-placeholder="结束日期">
                        </el-date-picker>
                    </el-form-item>
                </el-col>
                <el-col :xs="24":sm="10":md="10":lg="10":xl="10">
                    <el-form-item label="计划完成日期" prop="planFinishDate">
                        <el-date-picker
                        format="yyyy 年 MM 月 dd 日"
                        value-format="yyyy-MM-dd"
                        v-model="dataForm.planFinishDate"
                        range-separator="至"
                        type="daterange"
                        start-placeholder="开始日期"
                        end-placeholder="结束日期">
                        </el-date-picker>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <div style="display: flex;justify-content: center;align-items: center;margin-top:15px;">
            <el-button size="mini" type="primary" @click="savedata()" plain>保存</el-button>
            <el-button size="mini" type="warning" @click="resetForm()" plain>重置</el-button>
        </div>
   <!-- 新增弹框 -->
   <el-dialog :title="title" width="80%" :visible.sync="dialogVisibleAdd" class="role-select">
      <!-- 查询表单 -->
      <el-form :model="dataForm" ref="dataForm" label-width="150px" style="margin-top:10px;">
         <el-row :gutter="24">
            <el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
               <el-form-item label="设备名称" prop="machineName">
                  <el-select v-model="dataForm.machineId" placeholder="---请选择---" clearable>
                     <el-option v-for="item in machineList" :key="item.id" :label="item.machineName"
                        :value="item.id">
                     </el-option>
                  </el-select>
               </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
               <el-form-item label="使用部门" prop="department">
                  <el-select v-model="dataForm.department" placeholder="---请选择---" clearable>
                     <el-option v-for="item in departmentlist" :key="item.value" :label="item.label"
                        :value="item.value">
                     </el-option>
                  </el-select>
               </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
               <el-form-item label="保养者" prop="maintainPerson">
                  <el-select v-model="dataForm.userId" placeholder="---请选择---" clearable>
                     <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id">
                     </el-option>
                  </el-select>
               </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
               <el-form-item label="是否合格" prop="isQualified">
                  <el-select v-model="dataForm.isQualified" placeholder="---请选择---" clearable>
                     <el-option v-for="item in isQualified" :key="item.value" :label="item.label" :value="item.value">
                     </el-option>
                  </el-select>
               </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
               <el-form-item label="保养内容与存在问题" prop="detail">
                  <el-input size="mini" type="text" v-model="dataForm.detail" clearable></el-input>
               </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6">
            </el-col>
            <el-col :xs="24" :sm="10" :md="10" :lg="10" :xl="10">
               <el-form-item label="计划开始日期" prop="planStartDate">
                  <el-date-picker format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" v-model="dataForm.planStartDate"
                     range-separator="至" clearable type="daterange" start-placeholder="开始日期" end-placeholder="结束日期">
                  </el-date-picker>
               </el-form-item>
            </el-col>
            <el-col :xs="24" :sm="10" :md="10" :lg="10" :xl="10">
               <el-form-item label="计划完成日期" prop="planFinishDate">
                  <el-date-picker format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd"
                     v-model="dataForm.planFinishDate" range-separator="至" clearable type="daterange"
                     start-placeholder="开始日期" end-placeholder="结束日期">
                  </el-date-picker>
               </el-form-item>
            </el-col>
         </el-row>
      </el-form>
      <div style="display: flex;justify-content: center;align-items: center;margin-top:15px;">
         <el-button size="mini" type="primary" @click="savedata()" plain>保存</el-button>
         <el-button size="mini" type="warning" @click="resetForm()" plain>重置</el-button>
      </div>
    </el-dialog>
   </el-dialog>
</template>
<script>
// import { getMachineList, maintainCreate, maintainUpdate, deviceManage, userList, departmentGet } from '@/api/MdcApi'
import { getMachineList, maintainCreate, maintainUpdate, userList, departmentGet } from '@/api/MdcApi'
import { getRequest } from '@/api/Api'
export default {
  props: ['styles', 'departmentlist','machineList','userList'],
  data() {
    return {
      dataForm: {
        machineId: '',
        department: '',
        maintainPerson: '',
        isQualified: '',
        detail: '',
      },
      dialogVisibleAdd: false,
      // 下拉框
      isQualified: [{ // 是否合格
        label: '合格',
        value: '合格'
      }, {
        label: '不合格',
        value: '不合格'
      }], // 设备名称
      title: '新增',
      data: null, // 编辑数据回填
      no: null
    }
  },
  methods: {
    // 初始化
    init(n, data) {
      this.data = data
      this.no = n
      if (n === 1) {
        this.title = '新增' + this.style
        Object.keys(this.dataForm).forEach(key => {
          this.dataForm[key] = ''
        })
      } else {
        this.title = '修改' + this.style
        Object.keys(this.dataForm).forEach(key => {
          this.dataForm[key] = data[key]
        })
      }
      this.dialogVisibleAdd = true
      this.machineName = []
      this.maintainPerson = []
      // this.initDevices() // 初始化数据
    },
    // 保存
    savedata() {
      // 新增保存
      // const style = 1
      const startDateFrom = this.dataForm.planStartDate[0]
      const startDateTo = this.dataForm.planStartDate[1]
      const completeDateFrom = this.dataForm.planFinishDate[0]
      const completeDateTo = this.dataForm.planFinishDate[1]
      const isQualified = this.dataForm.isQualified === '合格' ? 1 : 0
      if (this.no === 1) {
        console.log({
          ...this.dataForm,
          startDateFrom,
          startDateTo,
          completeDateFrom,
          completeDateTo,
          isQualified,
          styles: this.style
        })
        // return
        getRequest('maintainCreate',{
          ...this.dataForm,
          startDateFrom,
          startDateTo,
          completeDateFrom,
          completeDateTo,
          isQualified,
          styles: this.style
        }).then(res => {
          if (res.result === 'SUCCESS') {
            this.$message({
              type: 'success',
              message: '保存成功!'
            })
            this.$emit('reflash')
            // const that = this
            this.dialogVisibleAdd = false
          } else {
            this.$message({
              type: 'error',
              message: res.result
            })
          }
        })
      } else {
        getRequest('maintainUpdate',{
          ...this.dataForm,
          startDateFrom,
          startDateTo,
          completeDateFrom,
          completeDateTo,
          isQualified,
          styles: this.style
        }).then(res => {
          if (res.result === 'SUCCESS') {
            this.$message({
              type: 'success',
              message: '保存成功!'
            })
            this.$emit('reflash')
            // const that = this
            this.dialogVisibleAdd = false
          } else {
            this.$message({
              type: 'error',
              message: res.result
            })
          }
        })
      }
    },
    /**
         * 初始化已有机床
         */
    // 重置
    resetForm() {
      this.$refs.dataForm.resetFields()
    }
  },
  created() {
    // this.initDevices()
  }
   props: ['styleName', 'styles', 'styleValue', 'departmentlist', 'machineList', 'userList'],
   data() {
      return {
         dataForm: {
            id: '',
            machineId: '',
            department: '',
            userId: '',
            isQualified: '',
            detail: '',
            style: '',
            planStartDate: [],
            planFinishDate: []
         },
         dialogVisibleAdd: false,
         // 下拉框
         isQualified: [{ // 是否合格
            label: '合格',
            value: true
         }, {
            label: '不合格',
            value: false
         }], // 设备名称
         title: '新增',
         data: null, // 编辑数据回填
         no: null,
      }
   },
   methods: {
      // 初始化
      init(n, data) {
         this.data = data
         this.no = n
         if (n === 1) {
            this.title = '新增' + this.styleName
            Object.keys(this.dataForm).forEach(key => {
               this.dataForm[key] = ''
            })
            this.dataForm['style'] = ''
         } else {
            this.title = '修改' + this.styleName
            Object.keys(this.dataForm).forEach(key => {
               this.dataForm[key] = data[key]
            })
            try {
               this.dataForm.planStartDate = [(data.startDateFrom || ''),(data.startDateTo || '')]
               this.dataForm.planFinishDate = [(data.completeDateFrom || ''),(data.completeDateTo || '')]
            } catch (error) {
            }
         }
         this.dialogVisibleAdd = true
         // this.initDevices() // 初始化数据
      },
      // 保存
      savedata() {
         // 新增保存
         // const style = 1
         let startDateFrom
         let startDateTo
         let completeDateFrom
         let completeDateTo
         try {
            startDateFrom = this.dataForm.planStartDate[0]
            startDateTo = this.dataForm.planStartDate[1]
            completeDateFrom = this.dataForm.planFinishDate[0]
            completeDateTo = this.dataForm.planFinishDate[1]
            } catch (error) {
            }
         if (this.no === 1) {
            console.log({
               ...this.dataForm,
               startDateFrom,
               startDateTo,
               completeDateFrom,
               completeDateTo,
               styles: this.style
            })
            // return
            getRequest('maintainCreate', {
               ...this.dataForm,
               startDateFrom,
               startDateTo,
               completeDateFrom,
               completeDateTo,
               style: this.styleValue
            }).then(res => {
               if (res.result === 'SUCCESS') {
                  this.$message({
                     type: 'success',
                     message: '保存成功!'
                  })
                  this.$emit('reflash')
                  // const that = this
                  this.dialogVisibleAdd = false
               } else {
                  this.$message({
                     type: 'error',
                     message: res.result
                  })
               }
            })
         } else {
            getRequest('maintainUpdate', {
               ...this.dataForm,
               startDateFrom,
               startDateTo,
               completeDateFrom,
               completeDateTo,
               style: this.styleValue
            }).then(res => {
               if (res.result === 'SUCCESS') {
                  this.$message({
                     type: 'success',
                     message: '保存成功!'
                  })
                  this.$emit('reflash')
                  // const that = this
                  this.dialogVisibleAdd = false
               } else {
                  this.$message({
                     type: 'error',
                     message: res.result
                  })
               }
            })
         }
      },
      /**
          * 初始化已有机床
          */
      // 重置
      resetForm() {
         Object.keys(this.dataForm).forEach(key => {
            this.dataForm[key] = ''
         })
      }
   },
   created() {
   }
}
</script>
<style lang="scss">
.el-form-item__content {
    .el-select,.el-input {
      width: 100%;
    }
  }
  .el-dialog__body {
    overflow: hidden;
  }
   .el-select,
   .el-input {
      width: 100%;
   }
}
.el-dialog__body {
   overflow: hidden;
}
</style>
<style scoped>
    /* .el-table__body .cell{padding:3px;}
/* .el-table__body .cell{padding:3px;}
    .el-input__icon{line-height: 30px;}
    .el-input__inner{height:30px;line-height: 30px;}
    .el-form-item__content{line-height: 40px;}