spring
2025-03-13 893efaff3c2523976993063543dfedf4a5b412f3
src/views/CNAS/resourceDemand/device/component/maintenance.vue
@@ -68,12 +68,14 @@
          <el-col :span="24">
            <el-form-item :rules="[{ required: true, message: '请输入维护内容', trigger: 'blur' }]" label="维护内容:"
                          prop="content">
              <el-input v-model="formData.content" placeholder="请输入" size="small" type="textarea"></el-input>
              <el-input v-model="formData.content" :disabled="!this.editMode" placeholder="请输入" size="small" type="textarea"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item :rules="[{ required: true, message: '请选择维护时间', trigger: 'blur' }]" label="维护时间:" prop="date">
              <el-date-picker v-model="formData.date" format="yyyy-MM-dd" placeholder="选择日期" size="small"
              <el-date-picker v-model="formData.date" format="yyyy-MM-dd" placeholder="选择日期"
                              size="small"
                              :disabled="!this.editMode"
                              style="width:100%" type="date" value-format="yyyy-MM-dd">
              </el-date-picker>
            </el-form-item>
@@ -92,6 +94,7 @@
                          prop="nextDate">
              <el-date-picker
                  v-model="formData.nextDate"
                  :disabled="!this.editMode"
                  :picker-options="{ disabledDate: this.disabledDate }"
                  format="yyyy-MM-dd"
                  placeholder="选择日期" size="small"
@@ -103,12 +106,12 @@
          </el-col>
          <el-col :span="12">
            <el-form-item :rules="[{ required: true, message: '请输入维护人', trigger: 'blur' }]" label="维护人:" prop="name">
              <el-input v-model="formData.name" clearable placeholder="请输入" size="small"></el-input>
              <el-input v-model="formData.name" clearable placeholder="请输入" :disabled="!this.editMode" size="small"></el-input>
            </el-form-item>
          </el-col>
          <el-col :span="24">
            <el-form-item label="备注:">
              <el-input v-model="formData.comments" placeholder="请输入" size="small" type="textarea"></el-input>
              <el-input v-model="formData.comments" placeholder="请输入" :disabled="!this.editMode" size="small" type="textarea"></el-input>
            </el-form-item>
          </el-col>
        </el-row>
@@ -123,12 +126,12 @@
<script>
import {
  exportMaintenanceRecord,
  deleteDeviceMaintenance,
  selectDeviceByCode,
  addDeviceMaintenance,
  getDeviceMaintenancePage, deviceMaintenanceExport,
} from '@/api/cnas/resourceDemand/device.js'
  addMaintain,
  deleteMaintain,
  deviceMaintenanceExport, getDeviceMaintenancePage,
  selectDeviceByCode
} from "@/api/cnas/resourceDemand/device";
export default {
  props: {
    clickNodeVal: {
@@ -160,13 +163,22 @@
  },
  methods: {
    //下次维护日期:禁用在维护日期前的日期
    disabledDate(time) {
    disabledDate(time){
      let selectDate = this.formData.date
      if (selectDate) {
      if(selectDate){
        let oldDate = new Date(selectDate)
        return time <= oldDate.getTime()
      }
      return false
    },
    //导出
    handleDown() {
      this.outLoading = true
      deviceMaintenanceExport({deviceId: this.clickNodeVal.value}).then(res => {
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备维护.xlsx')
      })
    },
    handleSizeChange(val) {
      this.search.size = val
@@ -182,15 +194,6 @@
      this.dialogVisible = true;
      this.formData = row;
    },
    // 导出
    handleDownOne() {
      this.outLoading = true
      deviceMaintenanceExport({ deviceId: this.clickNodeVal.value }).then(res => {
        this.outLoading = false
        const blob = new Blob([res], { type: 'application/octet-stream' });
        this.$download.saveAs(blob, '设备维护.xlsx')
      })
    },
    //操作详情删除
    handleDeleteClick(index, row) {
      this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
@@ -198,8 +201,8 @@
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteDeviceMaintenance({ id: row.id }).then(res => {
          this.getAllMessage(this.clickNodeVal.value)
        deleteMaintain({id: row.id}).then(res => {
          this.MaintainParam.splice(index, 1);
          this.$message({
            type: 'success',
            message: '删除成功!'
@@ -214,7 +217,7 @@
    },
    //点击后可编辑
    add() {
      selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => {
      selectDeviceByCode({id: this.clickNodeVal.value}).then(res => {
        this.formData.deviceName = res.data.deviceName
        this.formData.managementNumber = res.data.managementNumber
        this.$nextTick(() => {
@@ -228,15 +231,15 @@
      this.$refs['form'].validate((valid) => {
        if (valid) {
          this.formData.deviceId = this.clickNodeVal.value;
          addDeviceMaintenance(this.formData).then(res => {
          addMaintain(this.formData).then(res => {
            if (res.code == 200) {
              this.$message.success('添加成功');
              this.getAllMessage(this.clickNodeVal.value)
              // this.MaintainParam.push(this.formData)
              this.dialogVisible = false;
              this.formData = {}; //清空表单
              this.getAllMessage(this.clickNodeVal.value)
            }
          })
          // this.MaintainParam.push(this.formData)
        }
      })
    },
@@ -251,10 +254,13 @@
    },
    //获取表单设备维护信息
    getAllMessage(deviceId) {
      getDeviceMaintenancePage({
        deviceId,
        ...this.search
      }).then(res => {
      const params = {
        deviceId: deviceId,
        size: this.search.size,
        current: this.search.current,
        deviceNumber: this.search.deviceNumber,
      }
      getDeviceMaintenancePage(params).then(res => {
        if (res.code == 200) {
          this.MaintainParam = res.data.records
          this.search.total = res.data.total
@@ -303,10 +309,10 @@
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  position: relative;
  margin-top: 10px;
}
.search_thing {
@@ -339,7 +345,4 @@
  transform: translate(0, -50%);
}
.form .search_label {
  width: 120px;
}
</style>