0fd86012825aac8f0604b2fdc8c71e5aa68187c6..4da40604690325917d208e386e3add022f181147
2025-12-08 周宾
修改设备管理选择设备时可搜索
4da406 对比 | 目录
2025-12-08 周宾
修改设备模块
1e2659 对比 | 目录
已修改4个文件
128 ■■■■■ 文件已修改
src/views/equipmentManagement/ledger/Form.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/index.vue 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/repair/Modal/RepairModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/upkeep/Modal/PlanModal.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/Form.vue
@@ -104,12 +104,11 @@
const operationType = ref('');
const formRules = {
    deviceName: [{ required: true, trigger: "blur", message: "请输入" }],
    deviceModel: [{ required: true, trigger: "blur", message: "请输入" }],
    supplierName: [{ required: true, trigger: "blur", message: "请输入" }],
    unit: [{ required: true, trigger: "blur", message: "请输入" }],
    number: [{ required: true, trigger: "blur", message: "请输入" }],
    taxIncludingPriceUnit: [{ required: true, trigger: "blur", message: "请输入" }],
    planRuntimeTime: [{ required: true, trigger: "change", message: "请选择" }],
    deviceModel: [{ trigger: "blur", message: "请输入" }],
    supplierName: [{ trigger: "blur", message: "请输入" }],
    unit: [{ trigger: "blur", message: "请输入" }],
    taxIncludingPriceUnit: [{ trigger: "blur", message: "请输入" }],
    planRuntimeTime: [{ trigger: "change", message: "请选择" }],
}
const { form, resetForm } = useFormData({
src/views/equipmentManagement/ledger/index.vue
@@ -55,6 +55,7 @@
        <div></div>
        <div>
          <el-button type="primary" @click="add" icon="Plus"> 新增 </el-button>
          <el-button plain icon="Upload" @click="handleImport">导入</el-button>
          <el-button @click="handleOut" icon="download">导出</el-button>
          <el-button
            type="danger"
@@ -91,6 +92,50 @@
        </div>
      </div>
    </el-dialog>
    <!-- 用户导入对话框 -->
    <el-dialog
      :title="upload.title"
      v-model="upload.open"
      width="400px"
      append-to-body
    >
      <el-upload
        ref="uploadRef"
        :limit="1"
        accept=".xlsx, .xls"
        :headers="upload.headers"
        :action="upload.url + '?updateSupport=' + upload.updateSupport"
        :disabled="upload.isUploading"
        :before-upload="upload.beforeUpload"
        :on-progress="upload.onProgress"
        :on-success="upload.onSuccess"
        :on-error="upload.onError"
        :on-change="upload.onChange"
        :auto-upload="false"
        drag
      >
        <el-icon class="el-icon--upload"><upload-filled /></el-icon>
        <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        <template #tip>
          <div class="el-upload__tip text-center">
            <span>仅允许导入xls、xlsx格式文件。</span>
            <el-link
              type="primary"
              :underline="false"
              style="font-size: 12px; vertical-align: baseline"
              @click="importTemplate"
              >下载模板</el-link
            >
          </div>
        </template>
      </el-upload>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitFileForm">确 定</el-button>
          <el-button @click="upload.open = false">取 消</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>
@@ -104,6 +149,7 @@
import dayjs from "dayjs";
import QRCode from "qrcode";
import { ref } from "vue";
import { getToken } from "@/utils/auth.js";
defineOptions({
  name: "设备台账",
@@ -218,6 +264,69 @@
  ]
);
const upload = reactive({
  // 是否显示弹出层(客户导入)
  open: false,
  // 弹出层标题(客户导入)
  title: "",
  // 是否禁用上传
  isUploading: false,
  // 设置上传的请求头部
  headers: { Authorization: "Bearer " + getToken() },
  // 上传的地址
  url: import.meta.env.VITE_APP_BASE_API + "/device/ledger/import",
  // 文件上传前的回调
  beforeUpload: (file) => {
    console.log('文件即将上传', file);
    // 可以在此处做文件类型或大小校验
    const isValid = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.name.endsWith('.xlsx') || file.name.endsWith('.xls');
    if (!isValid) {
      proxy.$modal.msgError("只能上传 Excel 文件");
    }
    return isValid;
  },
  // 文件状态改变时的回调
  onChange: (file, fileList) => {
    console.log('文件状态改变', file, fileList);
  },
  // 文件上传成功时的回调
  onSuccess: (response, file, fileList) => {
    console.log('上传成功', response, file, fileList);
    upload.isUploading = false;
    if(response.code === 200){
      proxy.$modal.msgSuccess("文件上传成功");
      upload.open = false;
      proxy.$refs["uploadRef"].clearFiles();
      getTableData();
    }else if(response.code === 500){
      proxy.$modal.msgError(response.msg);
    }else{
      proxy.$modal.msgWarning(response.msg);
    }
  },
  // 文件上传失败时的回调
  onError: (error, file, fileList) => {
    console.error('上传失败', error, file, fileList);
    upload.isUploading = false;
    proxy.$modal.msgError("文件上传失败");
  },
  // 文件上传进度回调
  onProgress: (event, file, fileList) => {
    console.log('上传中...', event.percent);
  }
});
/** 提交上传文件 */
const submitFileForm = () => {
  upload.isUploading = true;
  proxy.$refs["uploadRef"].submit();
}
/** 下载模板 */
const importTemplate = () => {
  proxy.download("/device/ledger/downloadTemplate", {}, "设备台账模板.xlsx");
}
// 多选后做什么
const handleSelectionChange = (selectionList) => {
  multipleList.value = selectionList;
@@ -261,6 +370,11 @@
  }
  getTableData();
};
/** 导入按钮操作 */
const handleImport = () => {
  upload.title = "设备台账导入";
  upload.open = true;
}
const handleOut = () => {
  ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
src/views/equipmentManagement/repair/Modal/RepairModal.vue
@@ -4,7 +4,7 @@
      <el-row>
        <el-col :span="12">
          <el-form-item label="设备名称" prop="deviceLedgerId">
            <el-select v-model="form.deviceLedgerId" @change="setDeviceModel">
            <el-select v-model="form.deviceLedgerId" filterable allow-create default-first-option @change="setDeviceModel">
              <el-option
                v-for="(item, index) in deviceOptions"
                :key="index"
src/views/equipmentManagement/upkeep/Modal/PlanModal.vue
@@ -9,6 +9,7 @@
      <el-form-item label="设备名称" prop="deviceLedgerId">
        <el-select
          v-model="form.deviceLedgerId"
          filterable allow-create default-first-option
          @change="setDeviceModel"
          placeholder="请选择设备"
        >