From 076bb96b437258f0e8cdbe184040e1e302b60d4b Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 22 十二月 2025 14:10:12 +0800
Subject: [PATCH] 1.军泰伟业代码初始化

---
 src/views/personnelManagement/employeeRecord/components/formDia.vue |  166 +++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 135 insertions(+), 31 deletions(-)

diff --git a/src/views/personnelManagement/employeeRecord/components/formDia.vue b/src/views/personnelManagement/employeeRecord/components/formDia.vue
index 3c9674c..6f66f9b 100644
--- a/src/views/personnelManagement/employeeRecord/components/formDia.vue
+++ b/src/views/personnelManagement/employeeRecord/components/formDia.vue
@@ -6,16 +6,56 @@
         width="70%"
         @close="closeDia"
     >
-      <PIMTable
-          rowKey="id"
-          :column="tableColumn"
-          :tableData="tableData"
-          :tableLoading="tableLoading"
-          height="600"
-      ></PIMTable>
+      <el-descriptions class="detail-descriptions" :column="2" border size="small">
+        <el-descriptions-item label="鍛樺伐缂栧彿">{{ formData.staffNo || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="濮撳悕">{{ formData.staffName || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鎬у埆">{{ formData.sex || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="骞撮緞">{{ formData.age || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="韬唤璇佸彿">{{ formData.identityCard || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鎴风睄浣忓潃" :span="2">{{ formData.nativePlace || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鐜颁綇鍧�" :span="2">{{ formData.adress || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="宀椾綅">{{ formData.postJob || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="绗竴瀛﹀巻">{{ formData.firstStudy || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="涓撲笟">{{ formData.profession || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鑱旂郴鐢佃瘽">{{ formData.phone || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="绱ф�ヨ仈绯讳汉">{{ formData.emergencyContact || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="绱ф�ヨ仈绯讳汉鐢佃瘽">{{ formData.emergencyContactPhone || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍚堝悓绛捐鏃ユ湡">{{ formData.signDate || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="鍔冲姩鍚堝悓鏈熼檺閫夋嫨">
+          <span v-if="formData.dateSelect === 'A'">A銆佹湁鍥哄畾鏈熼檺</span>
+          <span v-else-if="formData.dateSelect === 'B'">B銆佹棤鍥哄畾鏈熼檺</span>
+          <span v-else-if="formData.dateSelect === 'C'">C銆佷互瀹屾垚涓�瀹氬伐浣滀换鍔′负鏈熼檺</span>
+          <span v-else>-</span>
+        </el-descriptions-item>
+        <el-descriptions-item label="鍚堝悓骞撮檺">{{ formattedContractTerm }}</el-descriptions-item>
+        <el-descriptions-item label="璇曠敤鏈熷紑濮嬫棩鏈�" v-if="formData.dateSelect === 'A' || formData.dateSelect === 'B'">
+          {{ formData.trialStartDate || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="璇曠敤鏈熺粨鏉熸棩鏈�" v-if="formData.dateSelect === 'A' || formData.dateSelect === 'B'">
+          {{ formData.trialEndDate || '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="璇曠敤鏈熷伐璧�" v-if="formData.dateSelect === 'A' || formData.dateSelect === 'B'">
+          {{ formData.proSalary ? formData.proSalary.toFixed(2) : '-' }}
+        </el-descriptions-item>
+        <el-descriptions-item label="鍚堝悓寮�濮嬫棩鏈�">{{ calculatedContractStart }}</el-descriptions-item>
+        <el-descriptions-item label="鍚堝悓缁撴潫鏃ユ湡">{{ formData.contractEndTime || '-' }}</el-descriptions-item>
+        <el-descriptions-item label="宸ヨ祫鎶ラ叕" :span="2">
+          <span v-if="formData.salarySelect === 'A'">
+            A銆佷箼鏂圭殑宸ヨ祫鎶ラ叕鎸夌収鐢叉柟渚濇硶鍒跺畾鐨勮绔犲埗搴︿腑鐨勫唴閮ㄥ伐璧勫垎閰嶅姙娉曠‘瀹氾紝鏍规嵁涔欐柟鐨勫伐浣滃矖浣嶇‘瀹氬叾姣忔湀宸ヨ祫銆�
+          </span>
+          <span v-else-if="formData.salarySelect === 'B'">
+            B銆佺敳鏂瑰涔欐柟瀹炶鍩烘湰宸ヨ祫鍜岀哗鏁堝伐璧勭浉缁撳悎鐨勫唴閮ㄥ伐璧勫垎閰嶅姙娉曪紝涔欐柟鐨勬敹鍏ュ寘鎷熀鏈伐璧勩�佽椁愩�佷氦閫氥�佺敓娲讳綇瀹跨瓑鍚勯」琛ュ姪锛屽鏈夊彉鍔ㄦ牴鎹唴閮ㄥ伐璧勫垎閰嶅姙娉曡皟鏁村叾宸ヨ祫锛涚哗鏁堝伐璧勬牴鎹箼鏂圭殑宸ヤ綔涓氱哗銆佸姵鍔ㄦ垚鏋滃拰瀹為檯璐$尞鎸夌収鍐呴儴鍒嗛厤鍔炴硶鑰冩牳纭畾銆�
+          </span>
+          <span v-else-if="formData.salarySelect === 'C'">
+            C銆佺敳鏂瑰疄琛岃浠跺伐璧勫埗锛屼互鐢叉柟鎺ュ埌璁㈠崟鍙婂叕鍙哥敓浜ц鍒掞紝鎸夌収瀹氶鍜岃浠跺崟浠凤紝鏍规嵁涔欐柟瀹屾垚鐨勪笟缁╋紝鎸夋椂瓒抽鏀粯涔欐柟鐨勫伐璧勬姤閰��
+          </span>
+          <span v-else>-</span>
+        </el-descriptions-item>
+        <el-descriptions-item label="绂忓埄寰呴亣" :span="2">{{ formData.remark || '-' }}</el-descriptions-item>
+      </el-descriptions>
       <template #footer>
         <div class="dialog-footer">
-          <el-button @click="closeDia">鍙栨秷</el-button>
+          <el-button @click="closeDia">鍏抽棴</el-button>
         </div>
       </template>
     </el-dialog>
@@ -23,38 +63,82 @@
 </template>
 
 <script setup>
-import {ref} from "vue";
-import {staffOnJobInfo} from "@/api/personnelManagement/employeeRecord.js";
-const { proxy } = getCurrentInstance()
+import {ref, reactive, computed} from "vue";
+import dayjs from "dayjs";
 const emit = defineEmits(['close'])
 
 const dialogFormVisible = ref(false);
 const operationType = ref('')
-const tableColumn = ref([
-  // {
-  //   label: "鍚堝悓骞撮檺",
-  //   prop: "contractTerm",
-  // },
-  {
-    label: "鍚堝悓寮�濮嬫棩鏈�",
-    prop: "contractStartTime",
-  },
-  {
-    label: "鍚堝悓缁撴潫鏃ユ湡",
-    prop: "contractEndTime",
-  },
-]);
-const tableData = ref([]);
-const tableLoading = ref(false);
+const formData = reactive({
+  staffNo: "",
+  staffName: "",
+  sex: "",
+  identityCard: "",
+  nativePlace: "",
+  postJob: "",
+  adress: "",
+  firstStudy: "",
+  profession: "",
+  age: 0,
+  phone: "",
+  emergencyContact: "",
+  emergencyContactPhone: "",
+  dateSelect: "",
+  trialStartDate: "",
+  trialEndDate: "",
+  proSalary: null,
+  signDate: "",
+  salarySelect: "",
+  contractStartTime: "",
+  contractEndTime: "",
+  contractTerm: null,
+  remark: "",
+});
+
+const formattedContractTerm = computed(() => {
+  const value = formData.contractTerm;
+  if (value === null || value === undefined || value === "") {
+    return "-";
+  }
+  const numberValue = Number(value);
+  if (!isNaN(numberValue)) {
+    return `${numberValue}骞碻;
+  }
+  return value;
+});
+
+const calculatedContractStart = computed(() => {
+  const endDate = formData.contractEndTime;
+  const termValue = formData.contractTerm;
+  const numberValue = Number(termValue);
+  if (!endDate || isNaN(numberValue)) {
+    return formData.contractStartTime || "-";
+  }
+  const start = dayjs(endDate).subtract(numberValue, "year");
+  if (!start.isValid()) {
+    return formData.contractStartTime || "-";
+  }
+  return start.format("YYYY-MM-DD");
+});
 
 // 鎵撳紑寮规
 const openDialog = (type, row) => {
   operationType.value = type;
   dialogFormVisible.value = true;
-  if (operationType.value === 'edit') {
-    staffOnJobInfo({staffNo: row.staffNo}).then(res => {
-      tableData.value = res.data
-    })
+  // 閲嶇疆琛ㄥ崟鏁版嵁
+  Object.keys(formData).forEach(key => {
+    if (key === 'age') {
+      formData[key] = 0;
+    } else if (["proSalary", "contractTerm"].includes(key)) {
+      formData[key] = null;
+    } else {
+      formData[key] = "";
+    }
+  });
+  
+  if (operationType.value === 'edit' && row) {
+    // 鐩存帴浣跨敤 row 鏁版嵁璧嬪��
+    Object.assign(formData, row);
   }
 }
 
@@ -69,5 +153,25 @@
 </script>
 
 <style scoped>
+.detail-descriptions {
+  margin-bottom: 16px;
+  border-radius: 6px;
+  overflow: hidden;
+}
 
+.detail-descriptions :deep(.el-descriptions__cell) {
+  padding: 12px 16px !important;
+}
+
+.detail-descriptions :deep(.el-descriptions__label) {
+  width: 140px;
+  color: #606266;
+  background-color: #f7f9fc;
+  font-weight: 500;
+}
+
+.detail-descriptions :deep(.el-descriptions__content) {
+  color: #303133;
+  line-height: 20px;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3