Step F7:数据管理

This commit is contained in:
Cheng Zhou
2025-12-16 22:48:42 +08:00
parent b029be200c
commit 4f807803cc
30 changed files with 519 additions and 4 deletions
+28 -1
View File
@@ -8,13 +8,26 @@
</el-select>
<el-input v-model="filters.site_id" placeholder="中心ID" style="width: 180px" @change="load" />
<div class="spacer" />
<el-button v-if="canEdit" type="primary" @click="openCreate">新增进度</el-button>
</div>
</el-card>
<VerificationTable :verifications="verifications" :can-edit="canEdit" :loading="loading" @edit="openEdit" />
<el-dialog title="更新进度" v-model="showEdit" width="520px">
<el-dialog :title="editForm.id ? '更新进度' : '新增进度'" v-model="showEdit" width="520px">
<el-form :model="editForm" label-width="120px">
<el-form-item label="受试者ID">
<el-input v-model="editForm.subject_id" :disabled="!!editForm.id" />
</el-form-item>
<el-form-item label="中心ID">
<el-input v-model="editForm.site_id" />
</el-form-item>
<el-form-item label="类型">
<el-select v-model="editForm.level" placeholder="请选择">
<el-option label="SDV" value="SDV" />
<el-option label="SDR" value="SDR" />
</el-select>
</el-form-item>
<el-form-item label="完成度">
<el-input-number v-model="editForm.percent" :min="0" :max="100" />
</el-form-item>
@@ -82,8 +95,22 @@ const openEdit = (row: any) => {
showEdit.value = true;
};
const openCreate = () => {
if (!canEdit.value) return;
editForm.value = { subject_id: "", site_id: "", level: filters.value.level || "SDV", percent: 0, notes: "" };
showEdit.value = true;
};
const submitEdit = async () => {
if (!study.currentStudy) return;
if (!editForm.value.subject_id) {
ElMessage.warning("请输入受试者ID");
return;
}
if (!editForm.value.level) {
ElMessage.warning("请选择类型");
return;
}
submitting.value = true;
try {
await upsertVerification(study.currentStudy.id, {