Gqingci 20 小時之前
父節點
當前提交
2e9246557f

+ 4 - 4
src/api/system/backRecord/types.ts

@@ -3,9 +3,9 @@
  */
 
 export interface BackRecordVO {
-  id: number;
-  orderId: number;
-  candidateId: number;
+  id: string | number;
+  orderId: string | number;
+  candidateId: string | number;
   status: string;
   reportUrl?: string;
   finishTime?: string;
@@ -20,7 +20,7 @@ export interface BackRecordVO {
 }
 
 export interface BackRecordQuery {
-  orderId: number;
+  orderId: string | number;
   status?: string;
   pageNum: number;
   pageSize: number;

+ 27 - 4
src/views/balanceReview.vue

@@ -1,7 +1,7 @@
 <template>
-  <div class="app-container">
-    <el-card shadow="never">
-      <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="90px">
+  <div class="app-container balance-review-page">
+    <el-card shadow="never" class="flex flex-col h-full">
+      <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="90px" class="shrink-0">
         <el-form-item label="提现单号" prop="withdrawNo">
           <el-input
             v-model="queryParams.withdrawNo"
@@ -38,7 +38,7 @@
         </el-form-item>
       </el-form>
 
-      <el-table v-loading="loading" :data="withdrawList">
+      <el-table v-loading="loading" :data="withdrawList" class="flex-1">
         <el-table-column label="提现单号" prop="withdrawNo" min-width="180" show-overflow-tooltip />
         <el-table-column label="企业ID" prop="companyId" width="120" />
         <el-table-column label="企业名称" prop="companyName" min-width="160" show-overflow-tooltip />
@@ -103,6 +103,7 @@
         v-model:page="queryParams.pageNum"
         v-model:limit="queryParams.pageSize"
         @pagination="getList"
+        class="shrink-0 pt-4"
       />
     </el-card>
 
@@ -253,3 +254,25 @@ const getAccountTypeLabel = (type?: number) => {
 
 getList();
 </script>
+
+<style scoped lang="scss">
+.balance-review-page {
+  height: calc(100vh - 84px);
+  display: flex;
+  flex-direction: column;
+
+  :deep(.el-card__body) {
+    flex: 1;
+    display: flex;
+    flex-direction: column;
+    overflow: hidden;
+  }
+
+  :deep(.el-table) {
+    flex: 1;
+    .el-table__inner-wrapper {
+      height: 100% !important;
+    }
+  }
+}
+</style>

+ 595 - 0
src/views/system/backcheck/BackgroundCheckForm.vue

@@ -0,0 +1,595 @@
+<template>
+  <div class="bg-check-container">
+    <!-- 加载中 -->
+    <div v-if="loading" class="success-wrapper">
+      <el-icon class="is-loading" :size="48" color="#3b82f6"><Loading /></el-icon>
+      <p style="margin-top:16px;color:#666;">加载中...</p>
+    </div>
+    <!-- 提交成功提示 -->
+    <div v-else-if="submitted" class="success-wrapper">
+      <el-icon class="success-icon" :size="64" color="#67c23a"><CircleCheckFilled /></el-icon>
+      <h2 class="success-title">提交成功</h2>
+      <p class="success-desc">感谢您的真实填写与支持,背调反馈已成功提交!</p>
+      <p class="success-hint">您可以安全关闭此页面</p>
+    </div>
+
+    <template v-else>
+    <div class="bg-header">
+      <h1 class="header-title">背景调查报告</h1>
+    </div>
+    
+    <div class="form-wrapper">
+      <el-form ref="formRef" :model="form" :rules="rules" class="word-style-form">
+        <table class="report-table" border="1" cellspacing="0" cellpadding="0">
+          <thead>
+            <tr>
+              <th width="15%">调查项目</th>
+              <th width="35%">调查内容</th>
+              <th width="20%">核实结果</th>
+              <th width="30%">备注/信息来源</th>
+            </tr>
+          </thead>
+          <tbody>
+            <!-- 候选人基本信息 -->
+            <tr>
+              <td><strong>候选人基本信息</strong></td>
+              <td class="content-cell">
+                <div class="form-row"><span class="label">姓名:</span><el-input v-model="form.candidateName" disabled class="noline-input" /></div>
+                <div class="form-row"><span class="label">应聘职位:</span><el-input v-model="form.applyPosition" class="noline-input" /></div>
+                <div class="form-row"><span class="label">调查时间:</span><el-date-picker v-model="form.checkTime" type="date" class="noline-input" /></div>
+              </td>
+              <td></td>
+              <td></td>
+            </tr>
+            <!-- 学历核实 -->
+            <tr>
+              <td><strong>学历核实</strong></td>
+              <td class="content-cell">
+                <div class="form-row"><span class="label">毕业院校:</span><el-input v-model="form.gradSchool" class="noline-input" /></div>
+                <div class="form-row"><span class="label">学历证书编号:</span><el-input v-model="form.eduCertNo" class="noline-input" /></div>
+                <div class="form-row"><span class="label">学信网核实:</span><el-input v-model="form.eduVerifyStatus" class="noline-input" /></div>
+              </td>
+              <td class="center-cell">
+                 <el-radio-group v-model="form.eduVerifyResult" class="vertical-radio">
+                  <el-radio label="属实">属实</el-radio>
+                  <el-radio label="不属实">不属实</el-radio>
+                  <el-radio label="无法核实">无法核实</el-radio>
+                </el-radio-group>
+              </td>
+              <td></td>
+            </tr>
+            <!-- 最近工作单位 -->
+            <tr>
+              <td><strong>最近工作单位(上家公司)</strong></td>
+              <td class="content-cell">
+                <div class="form-row"><span class="label">公司名称:</span><el-input v-model="form.companyName" class="noline-input" /></div>
+                <div class="form-row"><span class="label">任职时间:</span><el-date-picker v-model="form.workPeriod" type="daterange" class="noline-input" /></div>
+                <div class="form-row"><span class="label">担任职务:</span><el-input v-model="form.position" class="noline-input" /></div>
+                <div class="form-row"><span class="label">最后薪酬:</span><el-input v-model="form.lastSalary" class="noline-input" /></div>
+                <div class="form-row"><span class="label">离职原因:</span><el-input v-model="form.leaveReasonVerify" type="textarea" autosize class="noline-input flex-1" /></div>
+              </td>
+              <td class="center-cell">
+                 <!-- No specific property mapped originally, keep it for completeness of visual or bind if exist. -->
+                 <el-radio-group v-model="form.companyVerifyResult" class="vertical-radio">
+                  <el-radio label="属实">属实</el-radio>
+                  <el-radio label="部分属实">部分属实</el-radio>
+                  <el-radio label="不属实">不属实</el-radio>
+                </el-radio-group>
+              </td>
+              <td class="content-cell">
+                <div></div>
+                <el-input v-model="form.attachment1Remark" type="textarea" :rows="4" class="noline-input" placeholder="请输入备注" />
+              </td>
+            </tr>
+            <!-- 工作表现评估 -->
+            <tr>
+              <td><strong>工作表现评估</strong></td>
+              <td class="content-cell">
+                <div class="eval-section"><strong>上级评价:</strong></div>
+                <div class="form-row"><span class="label">总体优势:</span><el-input v-model="form.leaderEvalAdvantage" class="noline-input" /></div>
+                <div class="form-row"><span class="label">待改进方面:</span><el-input v-model="form.leaderEvalImprove" class="noline-input" /></div>
+                <div class="form-row"><span class="label">专业能力:</span><el-input v-model="form.leaderEvalProf" class="noline-input" /></div>
+                <div class="form-row"><span class="label">工作态度:</span><el-input v-model="form.leaderEvalAttitude" class="noline-input" /></div>
+                <div class="form-row"><span class="label">团队协作:</span><el-input v-model="form.leaderEvalTeam" class="noline-input" /></div>
+                <div class="form-row"><span class="label">职业操守:</span><el-input v-model="form.leaderEvalMorals" class="noline-input" /></div>
+                <div class="eval-section"><strong>同事评价:</strong></div>
+                <div class="form-row"><span class="label">合作顺畅度:</span><el-input v-model="form.colleagueEvalTeamwork" class="noline-input" /></div>
+                <div class="form-row"><span class="label">专业能力评价:</span><el-input v-model="form.colleagueEvalProf" class="noline-input" /></div>
+                <div class="eval-section"><strong>HR评价:</strong></div>
+                <div class="form-row"><span class="label">是否有违纪/纠纷:</span><el-input v-model="form.hrEvalDispute" class="noline-input" /></div>
+                <div class="form-row"><span class="label">离职交接情况:</span><el-input v-model="form.hrEvalTransfer" class="noline-input" /></div>
+              </td>
+              <td class="center-cell">
+                 <el-radio-group v-model="form.evalResult" class="vertical-radio">
+                  <el-radio label="良好">良好</el-radio>
+                  <el-radio label="一般">一般</el-radio>
+                  <el-radio label="需关注">需关注</el-radio>
+                </el-radio-group>
+              </td>
+              <td class="content-cell">
+                <div></div>
+                <el-input v-model="form.attachment2Remark" type="textarea" :rows="8" class="noline-input" placeholder="请输入备注" />
+              </td>
+            </tr>
+            <!-- 是否存在限制性协议 -->
+            <tr>
+              <td><strong>是否存在限制性协议</strong></td>
+              <td class="content-cell">
+                <div class="form-row">
+                  <span class="label">竞业禁止协议:</span>
+                  <el-radio-group v-model="form.hasNonCompete">
+                    <el-radio :value="true">是</el-radio>
+                    <el-radio :value="false">否</el-radio>
+                  </el-radio-group>
+                </div>
+                <div class="form-row">
+                  <span class="label">保密协议:</span>
+                  <el-radio-group v-model="form.hasNda">
+                    <el-radio :value="true">是</el-radio>
+                    <el-radio :value="false">否</el-radio>
+                  </el-radio-group>
+                </div>
+              </td>
+              <td></td>
+              <td class="content-cell">
+                <div></div>
+                <el-input v-model="form.agreementRemark" type="textarea" :rows="2" class="noline-input" placeholder="请输入备注"/>
+              </td>
+            </tr>
+            <!-- 是否存在劳动争议/失信记录 -->
+            <tr>
+              <td><strong>是否存在劳动争议/失信记录</strong></td>
+              <td class="content-cell">
+                <div class="form-row">
+                  <el-radio-group v-model="form.hasDisputeStatus">
+                    <el-radio :value="true">是</el-radio>
+                    <el-radio :value="false">否</el-radio>
+                  </el-radio-group>
+                </div>
+              </td>
+              <td></td>
+              <td class="content-cell">
+                <div></div>
+                <el-input v-model="form.disputeRemark" type="textarea" :rows="2" class="noline-input" placeholder="请输入备注"/>
+              </td>
+            </tr>
+            <!-- 调查结论 -->
+            <tr>
+              <td><strong>调查结论</strong></td>
+              <td class="content-cell">
+                <el-form-item prop="conclusion" style="margin-bottom:0">
+                  <el-radio-group v-model="form.conclusion" class="vertical-radio">
+                    <el-radio :value="'推荐入职'">推荐入职</el-radio>
+                    <el-radio :value="'有条件推荐'">有条件推荐</el-radio>
+                    <el-radio :value="'不推荐'">不推荐</el-radio>
+                  </el-radio-group>
+                </el-form-item>
+              </td>
+              <td colspan="2" class="content-cell">
+                <div class="form-row align-top">
+                  <span class="label">理由简述:</span>
+                  <el-input v-model="form.conclusionReason" type="textarea" :rows="3" class="noline-input flex-1" />
+                </div>
+              </td>
+            </tr>
+            <!-- 调查人 & 日期 -->
+            <tr>
+              <td><strong>调查人</strong></td>
+              <td class="content-cell">
+                 <el-form-item prop="investigatorName" style="margin-bottom:0">
+                    <el-input v-model="form.investigatorName" class="noline-input" />
+                 </el-form-item>
+              </td>
+              <td class="center-cell"><strong>日期</strong></td>
+              <td class="content-cell">
+                 <el-form-item prop="investigatorDate" style="margin-bottom:0">
+                    <el-date-picker v-model="form.investigatorDate" type="date" class="noline-input" />
+                 </el-form-item>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+
+        <div class="interview-header">
+          附件2:访谈记录摘要
+        </div>
+
+        <!-- 调查表(一) -->
+        <div class="interview-table-wrapper">
+          <div class="interview-meta">
+            <span>调查表(一)</span>
+            <span class="meta-item">姓名:<el-input v-model="form.interviewSupervisor.name" class="inline-input" /></span>
+            <span class="meta-item">关系:<el-input v-model="form.interviewSupervisor.relationship" class="inline-input" placeholder="输入关系或不填则为上级" /></span>
+            <span class="meta-item">联系方式:<el-input v-model="form.interviewSupervisor.contact" class="inline-input" /></span>
+          </div>
+          <table class="report-table" border="1" cellspacing="0" cellpadding="0">
+            <tbody>
+              <tr class="q-row"><td><strong>问:请问你和*****是什么时候认识的?他的职务是什么?具体工作职责有哪些方面?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewSupervisor.q1" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:你觉得他在工作方面有哪些优势?比较擅长哪方面的工作?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewSupervisor.q2" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:他在职业道德方面的表现怎么样?你有没有看到或听到关于他不太好的现象和评价?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewSupervisor.q3" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:请问他人际关系怎么样?和其他同事相处有没有问题?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewSupervisor.q4" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:你对他的总体评价如何?你觉得他哪些方面需要提高和改进呢?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewSupervisor.q5" class="noline-input form-q-input" /></td></tr>
+            </tbody>
+          </table>
+        </div>
+
+        <!-- 调查表(二) -->
+        <div class="interview-table-wrapper">
+          <div class="interview-meta">
+            <span>调查表(二)</span>
+            <span class="meta-item">姓名:<el-input v-model="form.interviewHR.name" class="inline-input" /></span>
+            <span class="meta-item">关系:<el-input v-model="form.interviewHR.relationship" class="inline-input" placeholder="输入关系或不填则为HR" /></span>
+            <span class="meta-item">联系方式:<el-input v-model="form.interviewHR.contact" class="inline-input" /></span>
+          </div>
+          <table class="report-table" border="1" cellspacing="0" cellpadding="0">
+            <tbody>
+              <tr class="q-row"><td><strong>问:请问你和*****是什么时候认识的?他的职务是什么?具体工作职责有哪些方面?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewHR.q1" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:你觉得他在工作方面有哪些优势?比较擅长哪方面的工作?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewHR.q2" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:他在职业道德方面的表现怎么样?你有没有看到或听到关于他不太好的现象和评价?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewHR.q3" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:请问他人际关系怎么样?和其他同事相处有没有问题?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewHR.q4" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:你对他的总体评价如何?你觉得他哪些方面需要提高和改进呢?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewHR.q5" class="noline-input form-q-input" /></td></tr>
+            </tbody>
+          </table>
+        </div>
+
+        <!-- 调查表(三) -->
+        <div class="interview-table-wrapper">
+          <div class="interview-meta">
+            <span>调查表(三)</span>
+            <span class="meta-item">姓名:<el-input v-model="form.interviewColleague.name" class="inline-input" /></span>
+            <span class="meta-item">关系:<el-input v-model="form.interviewColleague.relationship" class="inline-input" placeholder="输入关系或不填则为同事" /></span>
+            <span class="meta-item">联系方式:<el-input v-model="form.interviewColleague.contact" class="inline-input" /></span>
+          </div>
+          <table class="report-table" border="1" cellspacing="0" cellpadding="0">
+            <tbody>
+              <tr class="q-row"><td><strong>问:请问你和*****是什么时候认识的?他的职务是什么?具体工作职责有哪些方面?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewColleague.q1" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:你觉得他在工作方面有哪些优势?比较擅长哪方面的工作?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewColleague.q2" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:他在职业道德方面的表现怎么样?你有没有看到或听到关于他不太好的现象和评价?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewColleague.q3" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:请问他人际关系怎么样?和其他同事相处有没有问题?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewColleague.q4" class="noline-input form-q-input" /></td></tr>
+              
+              <tr class="q-row"><td><strong>问:你对他的总体评价如何?你觉得他哪些方面需要提高和改进呢?</strong></td></tr>
+              <tr class="a-row"><td><span class="a-label">答:</span><el-input type="textarea" autosize v-model="form.interviewColleague.q5" class="noline-input form-q-input" /></td></tr>
+            </tbody>
+          </table>
+        </div>
+
+        <div class="form-actions">
+          <el-button type="primary" size="large" class="submit-btn" :loading="submitting" @click="handleSubmit">
+            确认并提交背调反馈
+          </el-button>
+        </div>
+      </el-form>
+    </div>
+    </template>
+  </div>
+</template>
+
+<script setup lang="ts">
+
+import { ref, onMounted } from 'vue';
+import { useRoute } from 'vue-router';
+import { ElMessage } from 'element-plus';
+import { User, Collection, OfficeBuilding, TrendCharts, Warning, Stamp, ChatDotRound, CircleCheckFilled, Loading } from '@element-plus/icons-vue';
+import request from '../api/request';
+
+const route = useRoute();
+const formRef = ref();
+const submitting = ref(false);
+const submitted = ref(false);
+const loading = ref(true);
+
+const form = ref({
+  candidateName: '',
+  applyPosition: '',
+  checkTime: new Date(),
+  gradSchool: '',
+  eduCertNo: '',
+  eduVerifyStatus: '',
+  eduVerifyResult: '',
+  companyVerifyResult: '',
+  evalResult: '',
+  companyName: '',
+  workPeriod: [],
+  position: '',
+  lastSalary: '',
+  leaveReasonVerify: '',
+  attachment1Remark: '',
+  leaderEvalAdvantage: '',
+  leaderEvalImprove: '',
+  leaderEvalProf: '',
+  leaderEvalAttitude: '',
+  leaderEvalTeam: '',
+  leaderEvalMorals: '',
+  colleagueEvalTeamwork: '',
+  colleagueEvalProf: '',
+  hrEvalDispute: '',
+  hrEvalTransfer: '',
+  attachment2Remark: '',
+  hasNonCompete: false,
+  hasNda: false,
+  agreementRemark: '',
+  hasDisputeStatus: false,
+  disputeRemark: '',
+  interviewSupervisor: { name: '', relationship: '', contact: '', q1: '', q2: '', q3: '', q4: '', q5: '' },
+  interviewHR: { name: '', relationship: '', contact: '', q1: '', q2: '', q3: '', q4: '', q5: '' },
+  interviewColleague: { name: '', relationship: '', contact: '', q1: '', q2: '', q3: '', q4: '', q5: '' },
+  conclusion: '',
+  conclusionReason: '',
+  investigatorName: '',
+  investigatorDate: new Date()
+});
+
+const rules = {
+  candidateName: [{ required: true, message: '无法获取候选人信息', trigger: 'blur' }],
+  investigatorName: [{ required: true, message: '请输入调查人姓名', trigger: 'blur' }],
+  investigatorDate: [{ required: true, message: '请选择调查日期', trigger: 'change' }],
+  conclusion: [{ required: true, message: '请选择最终推荐结论', trigger: 'change' }]
+};
+
+onMounted(async () => {
+  const recordId = route.query.recordId;
+  if (recordId) {
+    try {
+      const res = await request.get('/portal/check/bgform/status', {
+        params: { recordId },
+        skipAuth: true
+      } as any);
+      if (res?.submitted) {
+        submitted.value = true;
+        loading.value = false;
+        return;
+      }
+      if (res?.candidateName) {
+        form.value.candidateName = res.candidateName;
+      }
+    } catch (e) {
+      // 查询失败不影响表单填写
+    }
+  }
+  if (route.query.candidateName) {
+    form.value.candidateName = route.query.candidateName as string;
+  }
+  loading.value = false;
+});
+
+const handleSubmit = () => {
+  formRef.value?.validate(async (valid: boolean) => {
+    if (!valid) {
+      ElMessage.error('请完善必填信息!');
+      return;
+    }
+
+    const recordId = route.query.recordId;
+    if (!recordId) {
+      ElMessage.error('缺少背调记录ID,无法提交');
+      return;
+    }
+
+    submitting.value = true;
+    try {
+      await request.post('/portal/check/bgform/submit', {
+        recordId: recordId,
+        ...form.value
+      }, { skipAuth: true } as any);
+      submitted.value = true;
+      ElMessage.success('提交成功!感谢您的真实填写与支持。');
+      // 先尝试关闭窗口(仅对 window.open 打开的窗口有效)
+      setTimeout(() => {
+        window.close();
+      }, 1500);
+    } catch (e: any) {
+      // error already handled by request interceptor
+    } finally {
+      submitting.value = false;
+    }
+  });
+};
+
+</script>
+<style scoped>
+.bg-check-container {
+  min-height: 100vh;
+  background-color: #fff;
+  padding: 40px 20px;
+  font-family: SimSun, "宋体", serif;
+}
+
+.bg-header {
+  text-align: center;
+  margin-bottom: 20px;
+}
+
+.header-title {
+  font-size: 24px;
+  font-weight: bold;
+  letter-spacing: 2px;
+  margin: 0;
+}
+
+.form-wrapper {
+  max-width: 900px;
+  margin: 0 auto;
+}
+
+.report-table {
+  width: 100%;
+  border-collapse: collapse;
+  border: 1.5px solid #000;
+  margin-bottom: 30px;
+}
+
+.report-table th, .report-table td {
+  border: 1px solid #000;
+  padding: 8px 12px;
+  font-size: 14px;
+  vertical-align: middle;
+  text-align: left;
+}
+
+.report-table th {
+  text-align: center;
+  font-weight: bold;
+}
+
+.center-cell {
+  text-align: center !important;
+}
+
+.content-cell {
+  padding: 8px !important;
+}
+
+.form-row {
+  display: flex;
+  align-items: center;
+  margin-bottom: 4px;
+}
+
+.form-row.align-top {
+  align-items: flex-start;
+}
+
+.label {
+  white-space: nowrap;
+}
+
+.flex-1 {
+  flex: 1;
+}
+
+.eval-section {
+  margin-top: 10px;
+  margin-bottom: 4px;
+}
+.eval-section:first-child {
+  margin-top: 0;
+}
+
+.vertical-radio {
+  display: flex;
+  flex-direction: column;
+  align-items: flex-start;
+  gap: 8px;
+}
+
+.interview-header {
+  margin-top: 20px;
+  margin-bottom: 10px;
+  font-size: 14px;
+  font-weight: bold;
+}
+
+.interview-table-wrapper {
+  margin-bottom: 25px;
+}
+
+.interview-meta {
+  display: flex;
+  align-items: center;
+  margin-bottom: 8px;
+  font-weight: bold;
+  font-size: 14px;
+}
+
+.meta-item {
+  margin-left: 20px;
+  display: flex;
+  align-items: center;
+}
+
+.q-row td {
+  background-color: #f9f9f9;
+}
+
+.a-row td {
+  display: flex;
+  align-items: flex-start;
+}
+
+.a-label {
+  white-space: nowrap;
+  margin-top: 4px;
+  color: #666;
+}
+
+.form-q-input {
+  flex: 1;
+}
+
+:deep(.noline-input .el-input__wrapper),
+:deep(.noline-input .el-textarea__inner) {
+  box-shadow: none !important;
+  background-color: transparent;
+  padding: 0 4px;
+  border-radius: 0;
+}
+
+:deep(.noline-input.el-input), :deep(.noline-input .el-textarea__inner) {
+  --el-input-border-color: transparent;
+  --el-input-hover-border-color: transparent;
+  --el-input-focus-border-color: transparent;
+}
+
+:deep(.inline-input) {
+  width: 120px;
+  margin-left: 5px;
+}
+
+:deep(.inline-input .el-input__wrapper) {
+  box-shadow: none !important;
+  border-bottom: 1px solid #000;
+  border-radius: 0;
+  padding: 0;
+  height: 24px;
+}
+
+.form-actions {
+  text-align: center;
+  margin-top: 40px;
+}
+
+.submit-btn {
+  width: 200px;
+}
+
+:deep(.el-radio__label) {
+  font-size: 14px;
+}
+
+:deep(.el-form-item) {
+  margin-bottom: 0;
+}
+
+.success-wrapper {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  height: 50vh;
+}
+</style>

+ 1 - 1
src/views/system/backcheck/candidateList.vue

@@ -205,7 +205,7 @@ const queryParams = reactive({
   pageNum: 1,
   pageSize: 10,
   keyword: '',
-  orderId: Number(route.query.id) || 0,
+  orderId: (route.query.id as string) || '',
   status: ''
 });