From c4599aa279fd2f90b741608392e056fbae2282d5 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期四, 20 八月 2026 17:16:54 +0800
Subject: [PATCH] 各表单布局调整
---
src/components/assessInfoComponents/OrganAssessmentForm.vue | 166 +++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 136 insertions(+), 30 deletions(-)
diff --git a/src/components/assessInfoComponents/OrganAssessmentForm.vue b/src/components/assessInfoComponents/OrganAssessmentForm.vue
index a3be60e..aa91fb8 100644
--- a/src/components/assessInfoComponents/OrganAssessmentForm.vue
+++ b/src/components/assessInfoComponents/OrganAssessmentForm.vue
@@ -1,22 +1,41 @@
<template>
<div class="organ-assessment-form">
<el-form :model="formData" label-width="120px">
+ <!-- 娣诲姞璇勪及鏃堕棿瀛楁 -->
+ <el-form-item label="璇勪及鏃堕棿">
+ <el-date-picker
+ v-if="!readonly"
+ v-model="formData.assessmentTime"
+ type="datetime"
+ placeholder="閫夋嫨璇勪及鏃堕棿"
+ format="yyyy-MM-dd HH:mm:ss"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ :default-value="new Date()"
+ style="width: 100%"
+ />
+ <span v-else>{{ formData.assessmentTime || '-' }}</span>
+ </el-form-item>
+
+ <!-- 鍙妯″紡涓嬫樉绀鸿瘎浼版椂闂� -->
<el-form-item label="鍔熻兘鐘舵��">
- <el-select v-model="formData.functionStatus">
+ <el-select v-if="!readonly" v-model="formData.functionStatus">
<el-option label="姝e父" value="1" />
<el-option label="杞诲害寮傚父" value="2" />
<el-option label="閲嶅害寮傚父" value="3" />
<el-option label="鏃犳硶璇勪及" value="4" />
</el-select>
+ <span v-else>{{ getFunctionStatusLabel(formData.functionStatus) }}</span>
</el-form-item>
<el-form-item label="璇勪及鎰忚">
<el-input
+ v-if="!readonly"
type="textarea"
v-model="formData.assessmentOpinion"
:rows="4"
placeholder="璇疯緭鍏ヨ瘎浼版剰瑙�"
/>
+ <span v-else class="ro-text">{{ formData.assessmentOpinion || '-' }}</span>
</el-form-item>
<!-- 闄勪欢涓婁紶鍖哄煙 -->
@@ -30,8 +49,9 @@
>
</div>
- <!-- 浣跨敤 UploadAttachment 缁勪欢 -->
+ <!-- 浣跨敤 UploadAttachment 缁勪欢锛堝彧璇绘�侀殣钘忎笂浼犲叆鍙o紝浠呭睍绀哄凡涓婁紶闄勪欢锛� -->
<UploadAttachment
+ v-if="!readonly"
ref="uploadAttachment"
:file-list="attachmentFileList"
:limit="attachmentLimit"
@@ -77,7 +97,7 @@
</el-table-column>
<el-table-column label="涓婁紶鏃堕棿" width="160">
<template slot-scope="scope">
- <span>{{ formatDateTime(scope.row.uploadTime) }}</span>
+ <span>{{ scope.row.uploadTime }}</span>
</template>
</el-table-column>
<el-table-column label="鏂囦欢澶у皬" width="100">
@@ -179,6 +199,7 @@
formData: {
functionStatus: "",
assessmentOpinion: "",
+ assessmentTime: "", // 鏂板璇勪及鏃堕棿瀛楁
attachments: []
},
// 棰勮鐩稿叧
@@ -215,6 +236,14 @@
},
created() {
this.initData();
+ // 濡傛灉璇勪及鏃堕棿涓虹┖锛岃缃粯璁ゅ��
+ if (!this.formData.assessmentTime) {
+ this.$set(
+ this.formData,
+ "assessmentTime",
+ this.getDefaultAssessmentTime()
+ );
+ }
},
methods: {
// 鍒濆鍖栨暟鎹�
@@ -223,6 +252,7 @@
this.formData = {
functionStatus: "",
assessmentOpinion: "",
+ assessmentTime: this.getDefaultAssessmentTime(),
attachments: []
};
this.attachmentFileList = [];
@@ -241,14 +271,26 @@
) {
this.currentAssessment = assessData[this.assessmentIndex];
- // 娣辨嫹璐濇暟鎹紝閬垮厤淇敼鍘熷鏁版嵁
+ // 娣辨嫹璐濇暟鎹�
const assessmentCopy = JSON.parse(
JSON.stringify(this.currentAssessment)
);
+ // 澶勭悊璇勪及鏃堕棿
+ let assessmentTime = assessmentCopy.assessmentTime;
+
+ // 濡傛灉鏃堕棿涓嶆槸鏈夋晥鐨勬棩鏈熷瓧绗︿覆锛屼娇鐢ㄩ粯璁ゅ��
+ if (!this.isValidDate(assessmentTime)) {
+ assessmentTime = this.getDefaultAssessmentTime();
+ } else {
+ // 纭繚鏃堕棿鏍煎紡姝g‘
+ assessmentTime = this.formatDateForPicker(assessmentTime);
+ }
+
this.formData = {
functionStatus: assessmentCopy.functionStatus || "",
assessmentOpinion: assessmentCopy.assessmentOpinion || "",
+ assessmentTime: assessmentTime, // 澶勭悊鍚庣殑鏃堕棿
attachments: Array.isArray(assessmentCopy.attachments)
? [...assessmentCopy.attachments]
: []
@@ -272,17 +314,74 @@
this.resetForm();
}
},
+ // 楠岃瘉鏃ユ湡鏄惁鏈夋晥
+ isValidDate(dateString) {
+ if (!dateString) return false;
+ try {
+ const date = new Date(dateString);
+ return !isNaN(date.getTime()) && dateString.trim() !== "";
+ } catch (error) {
+ return false;
+ }
+ },
+
+ // 涓烘棩鏈熼�夋嫨鍣ㄦ牸寮忓寲鏃ユ湡
+ formatDateForPicker(dateString) {
+ if (!dateString) return "";
+
+ try {
+ const date = new Date(dateString);
+ if (isNaN(date.getTime())) {
+ return this.getDefaultAssessmentTime();
+ }
+
+ // 鏍煎紡鍖栦负 yyyy-MM-dd HH:mm:ss
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, "0");
+ const day = String(date.getDate()).padStart(2, "0");
+ const hours = String(date.getHours()).padStart(2, "0");
+ const minutes = String(date.getMinutes()).padStart(2, "0");
+ const seconds = String(date.getSeconds()).padStart(2, "0");
+
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ } catch (error) {
+ console.error("鏃ユ湡鏍煎紡鍖栭敊璇�:", error);
+ return this.getDefaultAssessmentTime();
+ }
+ },
// 閲嶇疆琛ㄥ崟
resetForm() {
this.formData = {
functionStatus: "",
assessmentOpinion: "",
+ assessmentTime: this.getDefaultAssessmentTime(), // 璁剧疆榛樿鏃堕棿
attachments: []
};
this.attachmentFileList = [];
},
+ // 鑾峰彇榛樿璇勪及鏃堕棿
+ getDefaultAssessmentTime() {
+ const now = new Date();
+ const year = now.getFullYear();
+ const month = String(now.getMonth() + 1).padStart(2, "0");
+ const day = String(now.getDate()).padStart(2, "0");
+ const hours = String(now.getHours()).padStart(2, "0");
+ const minutes = String(now.getMinutes()).padStart(2, "0");
+ const seconds = String(now.getSeconds()).padStart(2, "0");
+ return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ },
+ // 鍔熻兘鐘舵�� label 鏄犲皠锛堝彧璇绘�佸睍绀猴級
+ getFunctionStatusLabel(value) {
+ const map = {
+ "1": "姝e父",
+ "2": "杞诲害寮傚父",
+ "3": "閲嶅害寮傚父",
+ "4": "鏃犳硶璇勪及"
+ };
+ return map[value] || "-";
+ },
// 淇濆瓨璇勪及
handleSave() {
// 楠岃瘉蹇呰瀛楁
@@ -296,20 +395,31 @@
return;
}
+ if (!this.formData.assessmentTime) {
+ this.$message.warning("璇烽�夋嫨璇勪及鏃堕棿");
+ return;
+ }
+
+ // 楠岃瘉鏃堕棿鏍煎紡
+ if (!this.isValidDate(this.formData.assessmentTime)) {
+ this.$message.warning("璇勪及鏃堕棿鏍煎紡涓嶆纭紝璇烽噸鏂伴�夋嫨");
+ return;
+ }
+
// 鍑嗗淇濆瓨鐨勬暟鎹�
const saveData = {
functionStatus: this.formData.functionStatus,
assessmentOpinion: this.formData.assessmentOpinion,
+ assessmentTime: this.formData.assessmentTime,
attachments: Array.isArray(this.formData.attachments)
? [...this.formData.attachments]
: []
};
- // 娣诲姞璇勪及鑰呭拰璇勪及鏃堕棿
+ // 娣诲姞璇勪及鑰�
const assessmentData = {
...saveData,
- assessor: this.currentUser.name,
- assessmentTime: new Date().toISOString()
+ assessor: this.currentUser.name
};
console.log("鍙戦�佷繚瀛樿姹�:", assessmentData);
@@ -320,7 +430,6 @@
assessmentIndex: this.assessmentIndex
});
},
-
handleCancel() {
this.$emit("cancel");
},
@@ -369,7 +478,7 @@
/** 涓婁紶鎴愬姛澶勭悊 */
handleUploadSuccess({ file, fileList, response }) {
- console.log(response,'response');
+ console.log(response, "response");
if (response.code === 200) {
console.log(response, "涓婁紶鏁版嵁");
@@ -509,26 +618,6 @@
const sizes = ["B", "KB", "MB", "GB"];
const i = Math.floor(Math.log(bytes) / Math.log(k));
return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + " " + sizes[i];
- },
-
- /** 鏃ユ湡鏃堕棿鏍煎紡鍖� */
- formatDateTime(dateTime) {
- if (!dateTime) return "";
-
- try {
- const date = new Date(dateTime);
- if (isNaN(date.getTime())) return dateTime;
-
- const year = date.getFullYear();
- const month = String(date.getMonth() + 1).padStart(2, "0");
- const day = String(date.getDate()).padStart(2, "0");
- const hours = String(date.getHours()).padStart(2, "0");
- const minutes = String(date.getMinutes()).padStart(2, "0");
-
- return `${year}-${month}-${day} ${hours}:${minutes}`;
- } catch (error) {
- return dateTime;
- }
}
}
};
@@ -581,7 +670,24 @@
font-size: 13px;
margin-left: 8px;
}
-
+.readonly-time {
+ font-size: 14px;
+ color: #606266;
+ font-weight: 500;
+ padding: 8px 15px;
+ background: #f5f7fa;
+ border-radius: 4px;
+ display: inline-block;
+ min-width: 200px;
+}
+.ro-text {
+ display: inline-block;
+ color: #303133;
+ font-size: 14px;
+ line-height: 32px;
+ white-space: pre-wrap;
+ word-break: break-word;
+}
::v-deep .el-upload__tip {
font-size: 12px;
color: #909399;
--
Gitblit v1.9.3