<template> 
 | 
  <div class="app-container borrow-view"> 
 | 
    <!-- 查询区域 --> 
 | 
    <div class="search-container"> 
 | 
      <el-form :model="searchForm" :inline="true" class="search-form"> 
 | 
                 <el-form-item label="借阅状态:"> 
 | 
           <el-select v-model="searchForm.borrowStatus" placeholder="请选择借阅状态" clearable style="width: 150px"> 
 | 
             <el-option label="借阅" value="借阅" /> 
 | 
             <el-option label="归还" value="归还" /> 
 | 
           </el-select> 
 | 
         </el-form-item> 
 | 
        <el-form-item label="借阅人:"> 
 | 
          <el-input 
 | 
            v-model="searchForm.borrower" 
 | 
            placeholder="请输入借阅人" 
 | 
            clearable 
 | 
            style="width: 200px" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
        <el-form-item label="借阅日期范围:"> 
 | 
          <el-date-picker 
 | 
            v-model="searchForm.dateRange" 
 | 
            type="daterange" 
 | 
            range-separator="至" 
 | 
            start-placeholder="开始日期" 
 | 
            end-placeholder="结束日期" 
 | 
            format="YYYY-MM-DD" 
 | 
            value-format="YYYY-MM-DD" 
 | 
            style="width: 300px" 
 | 
          /> 
 | 
        </el-form-item> 
 | 
        <el-form-item> 
 | 
          <el-button type="primary" @click="handleSearch"> 
 | 
            <el-icon><Search /></el-icon> 
 | 
            查询 
 | 
          </el-button> 
 | 
          <el-button @click="handleReset"> 
 | 
            <el-icon><Refresh /></el-icon> 
 | 
            重置 
 | 
          </el-button> 
 | 
        </el-form-item> 
 | 
        <el-form-item style="margin-left: auto;"> 
 | 
          <el-button type="primary" @click="openBorrowDia('add')"> 
 | 
            <el-icon><Plus /></el-icon> 
 | 
            新增借阅 
 | 
          </el-button> 
 | 
          <el-button @click="handleOut"> 
 | 
            导出 
 | 
          </el-button> 
 | 
          <el-button 
 | 
            type="danger" 
 | 
            @click="handleBatchDelete" 
 | 
            :disabled="selectedRows.length === 0" 
 | 
          > 
 | 
            <el-icon><Delete /></el-icon> 
 | 
            批量删除 ({{ selectedRows.length }}) 
 | 
          </el-button> 
 | 
        </el-form-item> 
 | 
      </el-form> 
 | 
    </div> 
 | 
  
 | 
    <!-- 表格区域 --> 
 | 
    <div class="table-container"> 
 | 
      <PIMTable 
 | 
        :table-data="borrowList" 
 | 
        :column="tableColumns" 
 | 
        :is-selection="true" 
 | 
        :border="true" 
 | 
        :table-loading="tableLoading" 
 | 
        :page="{ 
 | 
          current: pagination.currentPage, 
 | 
          size: pagination.pageSize, 
 | 
          total: pagination.total, 
 | 
          layout: 'total, sizes, prev, pager, next, jumper' 
 | 
        }" 
 | 
        @selection-change="handleSelectionChange" 
 | 
        @pagination="handlePagination" 
 | 
      /> 
 | 
    </div> 
 | 
  
 | 
    <!-- 借阅新增/编辑对话框 --> 
 | 
    <el-dialog 
 | 
      v-model="borrowDia" 
 | 
      :title="borrowOperationType === 'add' ? '新增借阅' : '编辑借阅'" 
 | 
      width="800px" 
 | 
      @close="closeBorrowDia" 
 | 
      @keydown.enter.prevent 
 | 
    > 
 | 
      <el-form 
 | 
        :model="borrowForm" 
 | 
        label-width="140px" 
 | 
        :rules="borrowRules" 
 | 
        ref="borrowFormRef" 
 | 
      > 
 | 
        <el-row :gutter="20"> 
 | 
           <el-col :span="12"> 
 | 
             <el-form-item label="借阅人:" prop="borrower"> 
 | 
               <el-input v-model="borrowForm.borrower" placeholder="请输入借阅人" /> 
 | 
             </el-form-item> 
 | 
           </el-col> 
 | 
           <el-col :span="12"> 
 | 
             <el-form-item label="借阅书籍:" prop="documentationId"> 
 | 
               <!-- <el-select v-model="borrowForm.documentationId" placeholder="请选择借阅书籍" style="width: 100%" @change="handleScanContent"> 
 | 
                 <el-option  
 | 
                   v-for="item in documentList"  
 | 
                   :key="item.id"  
 | 
                   :label="item.docName || item.name"  
 | 
                   :value="item.id" 
 | 
                 /> 
 | 
               </el-select> --> 
 | 
               <div style="display: flex; gap: 10px;"> 
 | 
                <el-select v-model="borrowForm.documentationId" placeholder="请选择借阅书籍" style="flex: 1;width: 100px;" @change="handleSelectChange"> 
 | 
                  <el-option  
 | 
                    v-for="item in documentList"  
 | 
                    :key="item.id"  
 | 
                    :label="item.docName || item.name"  
 | 
                    :value="item.id" 
 | 
                  /> 
 | 
                </el-select> 
 | 
                <el-input 
 | 
                  v-model="scanContent" 
 | 
                  placeholder="扫码输入" 
 | 
                  style="width: 100px;" 
 | 
                  @input="handleScanContent" 
 | 
                  clearable 
 | 
                /> 
 | 
              </div> 
 | 
             </el-form-item> 
 | 
           </el-col> 
 | 
         </el-row> 
 | 
         
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="借阅日期:" prop="borrowDate"> 
 | 
              <el-date-picker 
 | 
                v-model="borrowForm.borrowDate" 
 | 
                type="date" 
 | 
                placeholder="选择借阅日期" 
 | 
                style="width: 100%" 
 | 
                format="YYYY-MM-DD" 
 | 
                value-format="YYYY-MM-DD" 
 | 
              /> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
          <el-col :span="12"> 
 | 
            <el-form-item label="应归还日期:" prop="dueReturnDate"> 
 | 
              <el-date-picker 
 | 
                v-model="borrowForm.dueReturnDate" 
 | 
                type="date" 
 | 
                placeholder="选择应归还日期" 
 | 
                style="width: 100%" 
 | 
                format="YYYY-MM-DD" 
 | 
                value-format="YYYY-MM-DD" 
 | 
              /> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
        </el-row> 
 | 
         
 | 
                 <el-row :gutter="20"> 
 | 
           <el-col :span="24"> 
 | 
             <el-form-item label="借阅目的:" prop="borrowPurpose"> 
 | 
               <el-input v-model="borrowForm.borrowPurpose" placeholder="请输入借阅目的" /> 
 | 
             </el-form-item> 
 | 
           </el-col> 
 | 
         </el-row> 
 | 
         
 | 
        <el-row :gutter="20"> 
 | 
          <el-col :span="24"> 
 | 
            <el-form-item label="备注:" prop="remark"> 
 | 
              <el-input 
 | 
                v-model="borrowForm.remark" 
 | 
                type="textarea" 
 | 
                :rows="3" 
 | 
                placeholder="请输入备注信息" 
 | 
              /> 
 | 
            </el-form-item> 
 | 
          </el-col> 
 | 
        </el-row> 
 | 
      </el-form> 
 | 
       
 | 
      <template #footer> 
 | 
        <div class="dialog-footer"> 
 | 
          <el-button type="primary" @click="submitBorrowForm">确认</el-button> 
 | 
          <el-button @click="closeBorrowDia">取消</el-button> 
 | 
        </div> 
 | 
      </template> 
 | 
    </el-dialog> 
 | 
  </div> 
 | 
</template> 
 | 
  
 | 
<script setup> 
 | 
import { ref, reactive, onMounted, getCurrentInstance } from "vue"; 
 | 
import { ElMessageBox, ElMessage } from "element-plus"; 
 | 
import { Search, Refresh, Plus, Delete } from '@element-plus/icons-vue'; 
 | 
import PIMTable from '@/components/PIMTable/PIMTable.vue'; 
 | 
import { getBorrowList, addBorrow, updateBorrow, deleteBorrow, getDocumentList } from '@/api/fileManagement/borrow'; 
 | 
  
 | 
const { proxy } = getCurrentInstance(); 
 | 
  
 | 
// 响应式数据 
 | 
const borrowDia = ref(false); 
 | 
const borrowOperationType = ref(""); 
 | 
const tableLoading = ref(false); 
 | 
const borrowList = ref([]); 
 | 
const selectedRows = ref([]); 
 | 
const documentList = ref([]); // 文档列表,用于借阅书籍选择 
 | 
const scanContent = ref() // 扫码内容 
 | 
// 分页相关 
 | 
const pagination = reactive({ 
 | 
  currentPage: 1, 
 | 
  pageSize: 10, 
 | 
  total: 0, 
 | 
}); 
 | 
  
 | 
// 查询表单 
 | 
const searchForm = reactive({ 
 | 
  documentationId: "", 
 | 
  borrowStatus: "", 
 | 
  borrower: "", 
 | 
  returnerId: "", 
 | 
  dateRange: [] 
 | 
}); 
 | 
  
 | 
// 借阅表单 
 | 
const borrowForm = reactive({ 
 | 
  id: "", 
 | 
  documentationId: "", 
 | 
  borrower: "", 
 | 
  returnerId: "", 
 | 
  borrowPurpose: "", 
 | 
  borrowDate: "", 
 | 
  dueReturnDate: "", 
 | 
  returnDate: "", 
 | 
  borrowStatus: "", 
 | 
  remark: "" 
 | 
}); 
 | 
  
 | 
// 表单验证规则 
 | 
const borrowRules = reactive({ 
 | 
   
 | 
  borrower: [{ required: true, message: "请输入借阅人", trigger: "blur" }], 
 | 
  borrowPurpose: [{ required: true, message: "请输入借阅目的", trigger: "blur" }], 
 | 
  borrowDate: [{ required: true, message: "请选择借阅日期", trigger: "change" }], 
 | 
  dueReturnDate: [{ required: true, message: "请选择应归还日期", trigger: "change" }], 
 | 
  borrowStatus: [{ required: true, message: "请选择借阅状态", trigger: "change" }] 
 | 
}); 
 | 
  
 | 
// 表格列配置 
 | 
const tableColumns = ref([ 
 | 
  {  
 | 
    label: '文档名称',  
 | 
    prop: 'docName', 
 | 
    width: '200', 
 | 
  }, 
 | 
  { label: '借阅人', prop: 'borrower' }, 
 | 
  { label: '借阅目的', prop: 'borrowPurpose' }, 
 | 
  { label: '借阅日期', prop: 'borrowDate' }, 
 | 
  { label: '应归还日期', prop: 'dueReturnDate' }, 
 | 
  {  
 | 
    label: '借阅状态',  
 | 
    prop: 'borrowStatus',  
 | 
    width: '100', 
 | 
    dataType: 'tag', 
 | 
    formatData: (params) => { 
 | 
      if (params === null || params === undefined || params === '') return '-'; 
 | 
      return params; 
 | 
    }, 
 | 
         formatType: (params) => { 
 | 
       if (params === '归还') return 'success'; 
 | 
       if (params === '借阅') return 'warning'; 
 | 
       return 'info'; 
 | 
     } 
 | 
  }, 
 | 
  { label: '备注', prop: 'remark', width: '150' }, 
 | 
  {  
 | 
    dataType: "action", 
 | 
    label: "操作", 
 | 
    align: "center", 
 | 
    fixed: 'right', 
 | 
    width: '150', 
 | 
    operation: [ 
 | 
      { 
 | 
        name: "编辑", 
 | 
        type: "text", 
 | 
        clickFun: (row) => { 
 | 
          openBorrowDia('edit', row) 
 | 
        }, 
 | 
      }, 
 | 
      { 
 | 
        name: "删除", 
 | 
        type: "text", 
 | 
        clickFun: (row) => { 
 | 
          handleDelete(row) 
 | 
        }, 
 | 
      }, 
 | 
    ], 
 | 
  } 
 | 
]); 
 | 
  
 | 
// 初始化数据 
 | 
const initData = async () => { 
 | 
  await Promise.all([ 
 | 
    loadDocumentList(), 
 | 
    loadBorrowList() 
 | 
  ]); 
 | 
}; 
 | 
  
 | 
// 加载文档列表 
 | 
const loadDocumentList = async () => { 
 | 
  try { 
 | 
    const res = await getDocumentList(); 
 | 
    if (res.code === 200) { 
 | 
      documentList.value = res.data || []; 
 | 
      console.log("shuju",documentList.value) 
 | 
    } else { 
 | 
      ElMessage.error(res.msg || "获取文档列表失败"); 
 | 
      documentList.value = []; 
 | 
    } 
 | 
  } catch (error) { 
 | 
    ElMessage.error("获取文档列表失败,请重试"); 
 | 
    documentList.value = []; 
 | 
  } 
 | 
}; 
 | 
  
 | 
// 加载借阅列表 
 | 
const loadBorrowList = async () => { 
 | 
  try { 
 | 
    tableLoading.value = true; 
 | 
     
 | 
    // 构建查询参数 
 | 
    const query = { 
 | 
      page: pagination.currentPage, 
 | 
      size: pagination.pageSize, 
 | 
      documentationId: searchForm.documentationId || undefined, 
 | 
      borrowStatus: searchForm.borrowStatus || undefined, 
 | 
      borrower: searchForm.borrower || undefined, 
 | 
      returnerId: searchForm.returnerId || undefined, 
 | 
      entryDateStart: searchForm.dateRange && searchForm.dateRange.length > 0 ? searchForm.dateRange[0] : undefined, 
 | 
      entryDateEnd: searchForm.dateRange && searchForm.dateRange.length > 1 ? searchForm.dateRange[1] : undefined 
 | 
    }; 
 | 
     
 | 
    // 移除undefined的参数 
 | 
    Object.keys(query).forEach(key => { 
 | 
      if (query[key] === undefined) { 
 | 
        delete query[key]; 
 | 
      } 
 | 
    }); 
 | 
     
 | 
    const res = await getBorrowList(query); 
 | 
    if (res.code === 200) { 
 | 
      borrowList.value = res.data.records || []; 
 | 
      pagination.total = res.data.total || 0; 
 | 
    } else { 
 | 
      ElMessage.error(res.msg || "获取借阅列表失败"); 
 | 
      borrowList.value = []; 
 | 
      pagination.total = 0; 
 | 
    } 
 | 
     
 | 
    // 重置选择状态 
 | 
    selectedRows.value = []; 
 | 
  } catch (error) { 
 | 
    ElMessage.error("获取借阅列表失败,请重试"); 
 | 
    borrowList.value = []; 
 | 
    pagination.total = 0; 
 | 
  } finally { 
 | 
    tableLoading.value = false; 
 | 
  } 
 | 
}; 
 | 
  
 | 
// 查询 
 | 
const handleSearch = () => { 
 | 
  pagination.currentPage = 1; 
 | 
  loadBorrowList(); 
 | 
}; 
 | 
  
 | 
// 重置查询 
 | 
const handleReset = () => { 
 | 
  searchForm.documentationId = ""; 
 | 
  searchForm.borrowStatus = ""; 
 | 
  searchForm.borrower = ""; 
 | 
  searchForm.returnerId = ""; 
 | 
  searchForm.dateRange = []; 
 | 
  pagination.currentPage = 1; 
 | 
  loadBorrowList(); 
 | 
  ElMessage.success("查询条件已重置"); 
 | 
}; 
 | 
  
 | 
// 处理下拉选择变化 
 | 
const handleSelectChange = (value) => { 
 | 
  // 当下拉框选择时,清空扫码输入框 
 | 
  scanContent.value = ''; 
 | 
}; 
 | 
  
 | 
// 处理扫码内容 
 | 
const handleScanContent = async (value) => { 
 | 
  if (!value) return; 
 | 
  try { 
 | 
    // 查找扫描内容对应的文档 
 | 
    const matchedDoc = documentList.value.find(item =>  
 | 
      item.id == value  
 | 
    ); 
 | 
    console.log("matchedDoc", matchedDoc); 
 | 
  
 | 
     
 | 
    if (matchedDoc) { 
 | 
       
 | 
      // 找到匹配的文档,设置表单值 
 | 
      borrowForm.documentationId = matchedDoc.id; 
 | 
      ElMessage.success(`已选择: ${matchedDoc.docName || matchedDoc.name}`); 
 | 
    } else { 
 | 
      // 未找到匹配的文档,提示用户 
 | 
      ElMessage.warning('未找到对应的书籍,请检查扫码内容或手动选择'); 
 | 
    } 
 | 
  } catch (error) { 
 | 
    ElMessage.error('扫码处理失败,请重试'); 
 | 
    console.error('扫码处理错误:', error); 
 | 
  } 
 | 
} 
 | 
// 打开借阅弹框 
 | 
const openBorrowDia = async (type, data) => { 
 | 
  // 先刷新文档列表 
 | 
  await loadDocumentList(); 
 | 
   
 | 
  borrowOperationType.value = type; 
 | 
  borrowDia.value = true; 
 | 
  scanContent.value = ''; // 清空扫码内容 
 | 
  
 | 
  if (type === "edit") { 
 | 
    // 编辑模式,加载现有数据 
 | 
    Object.assign(borrowForm, data); 
 | 
  } else { 
 | 
    // 新增模式,清空表单 
 | 
    Object.keys(borrowForm).forEach(key => { 
 | 
      borrowForm[key] = ""; 
 | 
    }); 
 | 
         // 设置默认状态 
 | 
     borrowForm.borrowStatus = "借阅"; 
 | 
    // 设置当前日期为借阅日期 
 | 
    borrowForm.borrowDate = new Date().toISOString().split('T')[0]; 
 | 
  } 
 | 
}; 
 | 
  
 | 
// 关闭借阅弹框 
 | 
const closeBorrowDia = () => { 
 | 
  proxy.$refs.borrowFormRef.resetFields(); 
 | 
  borrowDia.value = false; 
 | 
  scanContent.value = ''; // 清空扫码内容 
 | 
}; 
 | 
  
 | 
// 提交借阅表单 
 | 
const submitBorrowForm = () => { 
 | 
  proxy.$refs.borrowFormRef.validate(async (valid) => { 
 | 
    if (valid) { 
 | 
      try { 
 | 
        if (borrowOperationType.value === "edit") { 
 | 
          // 编辑模式,更新现有数据 
 | 
          const res = await updateBorrow({ 
 | 
            borrower:borrowForm.borrower, 
 | 
            id: borrowForm.id, 
 | 
            borrowPurpose: borrowForm.borrowPurpose, 
 | 
            borrowDate: borrowForm.borrowDate, 
 | 
            dueReturnDate: borrowForm.dueReturnDate, 
 | 
            returnDate: borrowForm.returnDate, 
 | 
            remark: borrowForm.remark 
 | 
          }); 
 | 
           
 | 
          if (res.code === 200) { 
 | 
            ElMessage.success("编辑成功"); 
 | 
            await loadBorrowList(); 
 | 
            closeBorrowDia(); 
 | 
          } else { 
 | 
            ElMessage.error(res.msg || "编辑失败"); 
 | 
          } 
 | 
        } else { 
 | 
          // 新增模式,添加新数据 
 | 
          const res = await addBorrow({ 
 | 
            documentationId: borrowForm.documentationId, 
 | 
            borrower: borrowForm.borrower, 
 | 
            returnerId: borrowForm.returnerId, 
 | 
            borrowPurpose: borrowForm.borrowPurpose, 
 | 
            borrowDate: borrowForm.borrowDate, 
 | 
            dueReturnDate: borrowForm.dueReturnDate, 
 | 
            returnDate: borrowForm.returnDate, 
 | 
            borrowStatus: borrowForm.borrowStatus, 
 | 
            remark: borrowForm.remark 
 | 
          }); 
 | 
           
 | 
          if (res.code === 200) { 
 | 
            ElMessage.success("新增成功"); 
 | 
            await loadBorrowList(); 
 | 
            closeBorrowDia(); 
 | 
          } else { 
 | 
            ElMessage.error(res.msg || "新增失败"); 
 | 
          } 
 | 
        } 
 | 
      } catch (error) { 
 | 
        ElMessage.error("操作失败,请重试"); 
 | 
      } 
 | 
    } 
 | 
  }); 
 | 
}; 
 | 
  
 | 
// 删除借阅记录 
 | 
const handleDelete = (row) => { 
 | 
  ElMessageBox.confirm( 
 | 
    `确定要删除这条借阅记录吗?`, 
 | 
    "删除提示", 
 | 
    { 
 | 
      confirmButtonText: "确认", 
 | 
      cancelButtonText: "取消", 
 | 
      type: "warning", 
 | 
    } 
 | 
  ).then(async () => { 
 | 
    try { 
 | 
      const res = await deleteBorrow([row.id]); 
 | 
      if (res.code === 200) { 
 | 
        ElMessage.success("删除成功"); 
 | 
        await loadBorrowList(); 
 | 
      } else { 
 | 
        ElMessage.error(res.msg || "删除失败"); 
 | 
      } 
 | 
    } catch (error) { 
 | 
      ElMessage.error("删除失败,请重试"); 
 | 
    } 
 | 
  }).catch(() => { 
 | 
    ElMessage.info("已取消删除"); 
 | 
  }); 
 | 
}; 
 | 
  
 | 
// 批量删除 
 | 
const handleBatchDelete = () => { 
 | 
  if (selectedRows.value.length === 0) { 
 | 
    ElMessage.warning("请选择要删除的记录"); 
 | 
    return; 
 | 
  } 
 | 
   
 | 
  ElMessageBox.confirm( 
 | 
    `确定要删除选中的 ${selectedRows.value.length} 条借阅记录吗?`, 
 | 
    "批量删除提示", 
 | 
    { 
 | 
      confirmButtonText: "确认", 
 | 
      cancelButtonText: "取消", 
 | 
      type: "warning", 
 | 
    } 
 | 
  ).then(async () => { 
 | 
    try { 
 | 
      const selectedIds = selectedRows.value.map(row => row.id); 
 | 
      const res = await deleteBorrow(selectedIds); 
 | 
      if (res.code === 200) { 
 | 
        ElMessage.success("批量删除成功"); 
 | 
        await loadBorrowList(); 
 | 
      } else { 
 | 
        ElMessage.error(res.msg || "批量删除失败"); 
 | 
      } 
 | 
    } catch (error) { 
 | 
      ElMessage.error("批量删除失败,请重试"); 
 | 
    } 
 | 
  }).catch(() => { 
 | 
    ElMessage.info("已取消删除"); 
 | 
  }); 
 | 
}; 
 | 
  
 | 
// 导出 
 | 
const handleOut = () => { 
 | 
  ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", { 
 | 
    confirmButtonText: "确认", 
 | 
    cancelButtonText: "取消", 
 | 
    type: "warning", 
 | 
  }) 
 | 
    .then(() => { 
 | 
      proxy.download("/documentationBorrowManagement/export", {}, "借阅登记.xlsx"); 
 | 
    }) 
 | 
    .catch(() => { 
 | 
      ElMessage.info("已取消"); 
 | 
    }); 
 | 
}; 
 | 
  
 | 
// 选择变化事件 
 | 
const handleSelectionChange = (selection) => { 
 | 
  selectedRows.value = selection; 
 | 
}; 
 | 
  
 | 
// 处理分页变化 
 | 
const handlePagination = (current, size) => { 
 | 
  pagination.currentPage = current; 
 | 
  pagination.pageSize = size; 
 | 
  loadBorrowList(); 
 | 
}; 
 | 
  
 | 
// 生命周期 
 | 
onMounted(() => { 
 | 
  initData(); 
 | 
}); 
 | 
</script> 
 | 
  
 | 
<style scoped> 
 | 
.borrow-view { 
 | 
  padding: 20px; 
 | 
} 
 | 
  
 | 
.search-container { 
 | 
  background: #ffffff; 
 | 
  padding: 20px; 
 | 
  border-radius: 8px; 
 | 
  margin-bottom: 20px; 
 | 
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); 
 | 
} 
 | 
  
 | 
.search-form { 
 | 
  margin: 0; 
 | 
} 
 | 
  
 | 
.table-container { 
 | 
  background: #ffffff; 
 | 
  border-radius: 8px; 
 | 
  overflow: hidden; 
 | 
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); 
 | 
} 
 | 
  
 | 
.empty-data { 
 | 
  text-align: center; 
 | 
  color: #909399; 
 | 
  padding: 40px; 
 | 
  font-size: 14px; 
 | 
} 
 | 
  
 | 
.dialog-footer { 
 | 
  text-align: right; 
 | 
} 
 | 
  
 | 
:deep(.el-form-item__label) { 
 | 
  font-weight: 500; 
 | 
  color: #303133; 
 | 
} 
 | 
  
 | 
:deep(.el-input__wrapper) { 
 | 
  box-shadow: 0 0 0 1px #dcdfe6 inset; 
 | 
} 
 | 
  
 | 
:deep(.el-input__wrapper:hover) { 
 | 
  box-shadow: 0 0 0 1px #c0c4cc inset; 
 | 
} 
 | 
  
 | 
:deep(.el-input__wrapper.is-focus) { 
 | 
  box-shadow: 0 0 0 1px #409eff inset; 
 | 
} 
 | 
</style> 
 |