From ab77cf83de3f6978909e6f1f3b6e0d28db456681 Mon Sep 17 00:00:00 2001
From: WXL (wul) <wl_5969728@163.com>
Date: 星期一, 10 十一月 2025 08:58:27 +0800
Subject: [PATCH] 测试完成
---
src/views/patient/patient/profile/index.vue | 669 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 493 insertions(+), 176 deletions(-)
diff --git a/src/views/patient/patient/profile/index.vue b/src/views/patient/patient/profile/index.vue
index 53838c1..df9c840 100644
--- a/src/views/patient/patient/profile/index.vue
+++ b/src/views/patient/patient/profile/index.vue
@@ -16,7 +16,11 @@
{{ userform.sex == 1 ? "鐢�" : "濂�" }}
</div>
<div style="margin-left: 10px" class="text-title">
- {{ userform.age }}宀�
+ <span v-if="userform.age"
+ >{{ userform.age }}{{ userform.ageUnit }}</span
+ ><span v-if="userform.age2"
+ >{{ userform.age2 }}{{ userform.ageUnit2 }}</span
+ >
</div>
<div style="margin-left: 10px" class="text-title">
{{ userform.birthdate }}
@@ -72,7 +76,7 @@
> -->
<el-tab-pane name="weight"
><span class="mulsz" slot="label"
- ><i class="el-icon-s-data"></i>韬珮澶村洿瓒嬪娍
+ ><i class="el-icon-s-data"></i>韬暱澶村洿瓒嬪娍
</span></el-tab-pane
>
<!-- <el-tab-pane name="heartrate"
@@ -123,11 +127,21 @@
disabled
></el-input> </el-form-item
></el-col>
+ </el-row>
+ <el-row :gutter="20">
<el-col :span="12"
><el-form-item label="鑱旂郴鏂瑰紡" prop="telcode">
<el-input
v-model="userform.telcode"
placeholder="璇疯緭鍏ヨ仈绯绘柟寮�"
+ maxlength="30"
+ /> </el-form-item
+ ></el-col>
+ <el-col :span="12"
+ ><el-form-item label="棰勭暀鐢佃瘽" prop="reservedPhone">
+ <el-input
+ v-model="userform.reservedPhone"
+ placeholder="璇疯緭鍏ラ鐣欑數璇�"
maxlength="30"
/> </el-form-item
></el-col>
@@ -309,9 +323,8 @@
<el-radio label="MCT濂�">MCT濂�</el-radio>
<el-radio label="鍏跺畠鐗规畩濂剁矇">鍏跺畠鐗规畩濂剁矇</el-radio>
</el-radio-group>
- </el-form-item> </el-col
- >
-
+ </el-form-item>
+ </el-col>
</el-row>
</el-form>
</div>
@@ -372,12 +385,12 @@
<el-table-column
label="灏辫瘖鏃堕棿"
align="center"
- key="admindate"
- prop="admindate"
+ key="admitdate"
+ prop="admitdate"
width="160"
>
<template slot-scope="scope">
- <span>{{ formatTime(scope.row.admindate) }}</span>
+ <span>{{ formatTime(scope.row.admitdate) }}</span>
</template>
</el-table-column>
@@ -737,18 +750,124 @@
class="sontwoactiveName"
style="width: 880px; height: 560px"
></div>
- <div style="width: 400px">
+ <div style="width: 600px">
<el-card class="box-card">
<el-button @click="borninfoVisible = true" type="success" round
>娣诲姞鏁版嵁</el-button
>
- <SFtable
- :currentList="borninfooptions"
- :tableLabel="tableLabeltz"
- :serialnumber="false"
- :center="false"
- :multiplechoice="false"
- />
+ <el-table :data="borninfooptions" style="width: 100%" border>
+ <el-table-column
+ prop="generatedTime"
+ label="璁板綍鏃ユ湡"
+ width="120"
+ >
+ <template slot-scope="scope">
+ <span v-if="!scope.row.editing">{{
+ scope.row.generatedTime
+ }}</span>
+ <!-- <el-date-picker
+ v-else
+ v-model="scope.row.generatedTime"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ value-format="yyyy-MM-dd"
+ size="small"
+ ></el-date-picker> -->
+ <el-date-picker
+ v-else
+ v-model="scope.row.generatedTime"
+ type="datetime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ size="small"
+ >
+ </el-date-picker>
+ </template>
+ </el-table-column>
+ <el-table-column prop="doctor" label="璐d换鍖荤敓" width="100">
+ <template slot-scope="scope">
+ <span v-if="!scope.row.editing">{{ scope.row.doctor }}</span>
+ <el-input
+ v-else
+ v-model="scope.row.doctor"
+ size="small"
+ placeholder="璇疯緭鍏ュ尰鐢熷鍚�"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="height" label="韬暱(cm)" width="100">
+ <template slot-scope="scope">
+ <span v-if="!scope.row.editing">{{ scope.row.height }}</span>
+ <el-input
+ v-else
+ v-model.number="scope.row.height"
+ size="small"
+ placeholder="韬暱"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="headCir" label="澶村洿(cm)" width="100">
+ <template slot-scope="scope">
+ <span v-if="!scope.row.editing">{{ scope.row.headCir }}</span>
+ <el-input
+ v-else
+ v-model.number="scope.row.headCir"
+ size="small"
+ placeholder="澶村洿"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="age" label="鑳庨緞(鍛�)" width="100">
+ <template slot-scope="scope">
+ <span v-if="!scope.row.editing">{{ scope.row.age }}</span>
+ <el-input
+ v-else
+ v-model.number="scope.row.age"
+ size="small"
+ placeholder="鑳庨緞"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="weight" label="浣撻噸(kg)" width="100">
+ <template slot-scope="scope">
+ <span v-if="!scope.row.editing">{{ scope.row.weight }}</span>
+ <el-input
+ v-else
+ v-model.number="scope.row.weight"
+ size="small"
+ placeholder="浣撻噸"
+ ></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="180" fixed="right">
+ <template slot-scope="scope">
+ <el-button
+ v-if="!scope.row.editing"
+ type="primary"
+ size="mini"
+ @click="handleEdit(scope.row)"
+ >缂栬緫</el-button
+ >
+ <el-button
+ v-else
+ type="success"
+ size="mini"
+ @click="handleSave(scope.row)"
+ >淇濆瓨</el-button
+ >
+ <el-button
+ v-if="!scope.row.editing"
+ type="danger"
+ size="mini"
+ @click="handleDelete(scope.$index, scope.row)"
+ >鍒犻櫎</el-button
+ >
+ <el-button v-else size="mini" @click="handleCancel(scope.row)"
+ >鍙栨秷</el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
</el-card>
</div>
</div>
@@ -829,12 +948,12 @@
:model="borninfoform"
label-width="120px"
>
- <!-- 韬珮 -->
- <el-form-item label="韬珮(cm)" prop="height">
+ <!-- 韬暱 -->
+ <el-form-item label="韬暱(cm)" prop="height">
<el-input
v-model.number="borninfoform.height"
autocomplete="off"
- placeholder="璇疯緭鍏ヨ韩楂橈紙30-120cm锛�"
+ placeholder="璇疯緭鍏ヨ韩闀匡紙30-120cm锛�"
>
</el-input>
</el-form-item>
@@ -848,11 +967,34 @@
>
</el-input>
</el-form-item>
+ <el-form-item label="浣撻噸锛坘g锛�" prop="weight">
+ <el-input
+ v-model.number="borninfoform.weight"
+ autocomplete="off"
+ placeholder="璇疯緭鍏ヤ綋閲�"
+ >
+ </el-input>
+ </el-form-item>
+ <el-form-item label="璁板綍鏃ユ湡" prop="generatedTime">
+ <!-- <el-date-picker
+ v-model="borninfoform.generatedTime"
+ type="date"
+ placeholder="閫夋嫨鏃ユ湡"
+ >
+ </el-date-picker> -->
+ <el-date-picker
+ v-model="borninfoform.generatedTime"
+ value-format="yyyy-MM-dd HH:mm:ss"
+ type="datetime"
+ placeholder="閫夋嫨鏃ユ湡鏃堕棿"
+ >
+ </el-date-picker>
+ </el-form-item>
<!-- 鑳庨緞 -->
<el-form-item label="鑳庨緞锛堝懆锛�" prop="age">
<el-input
- v-model.number="borninfoform.age"
+ v-model="borninfoform.age"
autocomplete="off"
placeholder="璇疯緭鍏ヨ儙榫�"
>
@@ -892,6 +1034,8 @@
import {
listPatouthosp,
newborninfoadd,
+ newborninfoedit,
+ newborninforemove,
newborninfolist,
} from "@/api/smartor/patouthosp";
import { listpatient } from "@/api/patient/record";
@@ -923,7 +1067,7 @@
dynamicTags: [],
borninforules: {
height: [
- { required: true, message: "韬珮涓嶈兘涓虹┖", trigger: "blur" },
+ { required: true, message: "韬暱涓嶈兘涓虹┖", trigger: "blur" },
{
type: "number",
message: "蹇呴』涓烘暟瀛楀��",
@@ -931,9 +1075,9 @@
},
{
validator: (rule, value, callback) => {
- // 鏂扮敓鍎胯韩楂樹竴鑸寖鍥达細30-120cm
+ // 鏂扮敓鍎胯韩闀夸竴鑸寖鍥达細30-120cm
if (value < 30 || value > 120) {
- callback(new Error("璇疯緭鍏�30-120cm涔嬮棿鐨勫悎鐞嗚韩楂樺��"));
+ callback(new Error("璇疯緭鍏�30-120cm涔嬮棿鐨勫悎鐞嗚韩闀垮��"));
} else if (!/^[0-9]+(\.[0-9]{1})?$/.test(value)) {
callback(new Error("鏈�澶氫繚鐣欎竴浣嶅皬鏁�"));
} else {
@@ -960,7 +1104,7 @@
],
age: [
{ required: true, message: "鑳庨緞涓嶈兘涓虹┖", trigger: "blur" },
- { type: "integer", message: "蹇呴』涓烘暣鏁板懆鏁�" },
+ // { type: "integer", message: "蹇呴』涓烘暣鏁板懆鏁�" },
{
validator: (rule, value, callback) => {
// 妫�鏌ユ槸鍚﹀凡瀛樺湪璇ュ懆鏁版暟鎹�
@@ -1075,9 +1219,12 @@
{ label: "鑸掑紶鍘�", width: "", prop: "age" },
],
tableLabeltz: [
+ { label: "鏃ユ湡", width: "", prop: "generatedTime" },
{ label: "璐d换鍖荤敓", width: "", prop: "doctor" },
- { label: "韬珮", width: "", prop: "height" },
- { label: "澶村洿", width: "", prop: "headCir" },
+ { label: "韬暱(cm)", width: "", prop: "height" },
+ { label: "澶村洿(cm)", width: "", prop: "headCir" },
+ { label: "鑳庨緞(鍛�)", width: "", prop: "age" },
+ { label: "浣撻噸(kg)", width: "", prop: "weight" },
],
tableLabelxl: [
{ label: "娴嬮噺鏃堕棿", width: "", prop: "name" },
@@ -1322,7 +1469,9 @@
if (tab.index == "1") {
this.getList(1);
} else if (tab.index == "2") {
- this.newbornList();
+ console.log(1111);
+
+ this.newcharts();
} else if (tab.index == "3") {
this.handleClickfw();
}
@@ -1380,15 +1529,17 @@
this.$refs["borninfoform"].validate((valid) => {
if (valid) {
this.borninfoform.patId = this.id;
-
+ this.borninfoform.sex = this.userform.sex;
newborninfoadd(this.borninfoform).then((res) => {
if (res.code == 200) {
this.$modal.msgSuccess("鏂板鎴愬姛");
- this.newbornList();
+ // this.newbornList();
+ this.tzechartsInit();
this.borninfoVisible = false;
} else {
this.$modal.msgError("鏂板澶辫触");
- this.newbornList();
+ // this.newbornList();
+ this.tzechartsInit();
this.borninfoVisible = false;
}
});
@@ -1625,177 +1776,275 @@
// 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
myxyChart.setOption(option);
},
- tzechartsInit() {
- // 鑾峰彇鏁版嵁闆嗗悎
- this.newbornList()
- .then(() => {
- // 妫�鏌ユ暟鎹湁鏁堟��
- if (!this.borninfooptions || this.borninfooptions.length === 0) {
- console.warn("娌℃湁鍙敤鐨勬柊鐢熷効鏁版嵁");
- return;
- }
- // 鎵惧嚭鏈�澶х殑age鍊硷紙纭畾X杞磋寖鍥达級
- const maxAge = Math.max(
- ...this.borninfooptions.map((item) => parseInt(item.age) || 0)
- );
- if (maxAge <= 0) {
- console.error("鏃犳晥鐨勫懆鏁版暟鎹�");
- return;
- }
+ // 鏂扮敓鍎垮浘琛�
+ // 鏂扮敓鍎垮浘琛� - 浣跨敤鏃堕棿杞�
+ async tzechartsInit() {
+ try {
+ // 绛夊緟鏁版嵁鍔犺浇瀹屾垚
+ await this.newbornList();
- // 鍔ㄦ�佺敓鎴恱Axis鏁版嵁锛堜粠1鍛ㄥ埌鏈�澶у懆锛�
- const xAxisData = Array.from(
- { length: maxAge },
- (_, i) => `${i + 1}鍛╜
+ if (!this.borninfooptions || this.borninfooptions.length === 0) {
+ console.warn("娌℃湁鍙敤鐨勬柊鐢熷効鏁版嵁");
+ return;
+ }
+
+ // 鍒濆鍖栧浘琛�
+ const myChart = echarts.init(this.tzechartdom);
+
+ // 澶勭悊鏁版嵁 - 鎸夋椂闂存帓搴�
+ const sortedData = this.borninfooptions
+ .filter((item) => item.generatedTime)
+ .sort(
+ (a, b) => new Date(a.generatedTime) - new Date(b.generatedTime)
);
- // 鍒濆鍖栨暟鎹暟缁�
- const heightData = Array(maxAge).fill(null);
- const headCirData = Array(maxAge).fill(null);
+ if (sortedData.length === 0) {
+ console.warn("娌℃湁鏈夋晥鐨勬椂闂存暟鎹�");
+ return;
+ }
- // 閬嶅巻鎵�鏈夋暟鎹偣锛屽~鍏呭埌瀵瑰簲浣嶇疆
- this.borninfooptions.forEach((item) => {
- try {
- const age = parseInt(item.age);
- const height = parseFloat(item.height);
- const headCir = parseFloat(item.headCir);
+ // 鍑嗗鍥捐〃鏁版嵁
+ const timeData = sortedData.map((item) => item.generatedTime);
+ const heightData = sortedData.map((item) => ({
+ name: item.generatedTime,
+ value: [item.generatedTime, item.height || null],
+ }));
+ const headCirData = sortedData.map((item) => ({
+ name: item.generatedTime,
+ value: [item.generatedTime, item.headCir || null],
+ }));
+ const weightData = sortedData.map((item) => ({
+ name: item.generatedTime,
+ value: [item.generatedTime, item.weight || null],
+ }));
- // 纭繚鏁版嵁鏈夋晥涓斿懆鏁板湪鑼冨洿鍐�
- if (age > 0 && age <= maxAge) {
- const weekIndex = age - 1;
- if (!isNaN(height)) heightData[weekIndex] = height;
- if (!isNaN(headCir)) headCirData[weekIndex] = headCir;
- }
- } catch (e) {
- console.error("鏁版嵁澶勭悊閿欒:", e);
- }
- });
-
- // 鑾峰彇鎮h�呭鍚嶏紙浣跨敤绗竴鏉℃湁鏁堟暟鎹級
- const patientName = this.borninfooptions[0]?.name || "鏈煡";
-
- // 鍒濆鍖栧浘琛�
- const myxyChart = echarts.init(this.tzechartdom);
- const option = {
- title: {
- text: `${patientName}鐢熼暱鍙戣偛鎸囨爣鍥綻,
- left: "center",
+ const option = {
+ title: {
+ text: "鏂扮敓鍎跨敓闀垮彂鑲茶秼鍔垮浘",
+ left: "center",
+ textStyle: {
+ fontSize: 16,
+ fontWeight: "bold",
},
- tooltip: {
- trigger: "axis",
- formatter: function (params) {
- let result = params[0].axisValue + "<br/>";
- params.forEach((item) => {
- const value = item.value !== null ? item.value : "鏆傛棤鏁版嵁";
- result += `${item.marker} ${item.seriesName}: ${value}<br/>`;
- });
- return result;
+ },
+ tooltip: {
+ trigger: "axis",
+ formatter: function (params) {
+ let result = `${params[0].name}<br/>`;
+ params.forEach((item) => {
+ if (item.value && item.value[1] !== null) {
+ const unit =
+ item.seriesName.includes("韬暱") ||
+ item.seriesName.includes("澶村洿")
+ ? "cm"
+ : item.seriesName.includes("浣撻噸")
+ ? "kg"
+ : "";
+ result += `${item.marker} ${item.seriesName}: ${item.value[1]} ${unit}<br/>`;
+ }
+ });
+ return result;
+ },
+ },
+ legend: {
+ data: ["韬暱", "澶村洿", "浣撻噸"],
+ bottom: 10,
+ },
+ grid: {
+ left: "3%",
+ right: "4%",
+ bottom: "15%",
+ top: "15%",
+ containLabel: true,
+ },
+ toolbox: {
+ feature: {
+ saveAsImage: {
+ title: "淇濆瓨鍥剧墖",
+ pixelRatio: 2,
},
- },
- legend: {
- data: ["韬珮(cm)", "澶村洿(cm)"],
- bottom: 10,
- },
- grid: {
- left: "3%",
- right: "4%",
- bottom: "15%", // 涓哄浘渚嬬暀鍑虹┖闂�
- containLabel: true,
- },
- toolbox: {
- feature: {
- saveAsImage: {
- title: "淇濆瓨鍥剧墖",
- pixelRatio: 2,
- },
- dataView: {
- title: "鏁版嵁瑙嗗浘",
- readOnly: true,
+ dataView: {
+ title: "鏁版嵁瑙嗗浘",
+ readOnly: true,
+ lang: ["鏁版嵁瑙嗗浘", "鍏抽棴", "鍒锋柊"],
+ },
+ dataZoom: {
+ yAxisIndex: "none",
+ title: {
+ zoom: "鍖哄煙缂╂斁",
+ back: "鍖哄煙缂╂斁杩樺師",
},
},
- right: 20,
},
- xAxis: {
- type: "category",
- boundaryGap: false,
- data: xAxisData,
- axisLabel: {
- interval: 0, // 鏄剧ず鎵�鏈夋爣绛�
- rotate: 30, // 鏍囩鏃嬭浆闃叉閲嶅彔
+ right: 20,
+ top: 10,
+ },
+ dataZoom: [
+ {
+ type: "inside",
+ xAxisIndex: [0],
+ start: 0,
+ end: 100,
+ },
+ {
+ type: "slider",
+ xAxisIndex: [0],
+ start: 0,
+ end: 100,
+ bottom: 0,
+ height: 20,
+ },
+ ],
+ xAxis: {
+ type: "time", // 浣跨敤鏃堕棿杞碵1,3](@ref)
+ name: "璁板綍鏃堕棿",
+ nameLocation: "middle",
+ nameGap: 30,
+ axisLabel: {
+ formatter: {
+ year: "{yyyy}",
+ month: "{MM}/{dd}",
+ day: "{MM}/{dd}",
+ hour: "{MM}/{dd}",
+ },
+ rotate: 45,
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ type: "dashed",
},
},
- yAxis: {
+ },
+ yAxis: [
+ {
type: "value",
+ name: "韬暱/澶村洿(cm)",
+ position: "left",
axisLabel: {
formatter: "{value} cm",
},
+ splitLine: {
+ show: true,
+ lineStyle: {
+ type: "dashed",
+ },
+ },
},
- series: [
- {
- name: "韬珮",
- type: "line",
- data: heightData,
- symbol: "circle",
- symbolSize: 8,
- itemStyle: {
- color: "#5470C6",
- },
- lineStyle: {
- width: 3,
- },
- connectNulls: true, // 杩炴帴绌哄��
+ {
+ type: "value",
+ name: "浣撻噸(kg)",
+ position: "right",
+ axisLabel: {
+ formatter: "{value} kg",
},
- {
- name: "澶村洿",
- type: "line",
- data: headCirData,
- symbol: "circle",
- symbolSize: 8,
- itemStyle: {
- color: "#91CC75",
- },
- lineStyle: {
- width: 3,
- },
- connectNulls: true, // 杩炴帴绌哄��
+ splitLine: {
+ show: false,
},
- ],
- animationDuration: 1000, // 鍔ㄧ敾鏃堕暱
- };
+ },
+ ],
+ series: [
+ {
+ name: "韬暱",
+ type: "line",
+ yAxisIndex: 0,
+ data: heightData,
+ smooth: true, // 骞虫粦鏇茬嚎[1](@ref)
+ symbol: "circle",
+ symbolSize: 6,
+ itemStyle: {
+ color: "#5470C6",
+ },
+ lineStyle: {
+ width: 3,
+ },
+ markPoint: {
+ data: [
+ { type: "max", name: "鏈�澶у��" },
+ { type: "min", name: "鏈�灏忓��" },
+ ],
+ },
+ connectNulls: true,
+ },
+ {
+ name: "澶村洿",
+ type: "line",
+ yAxisIndex: 0,
+ data: headCirData,
+ smooth: true,
+ symbol: "circle",
+ symbolSize: 6,
+ itemStyle: {
+ color: "#91CC75",
+ },
+ lineStyle: {
+ width: 3,
+ },
+ markPoint: {
+ data: [
+ { type: "max", name: "鏈�澶у��" },
+ { type: "min", name: "鏈�灏忓��" },
+ ],
+ },
+ connectNulls: true,
+ },
+ {
+ name: "浣撻噸",
+ type: "line",
+ yAxisIndex: 1,
+ data: weightData,
+ smooth: true,
+ symbol: "circle",
+ symbolSize: 6,
+ itemStyle: {
+ color: "#EE6666",
+ },
+ lineStyle: {
+ width: 3,
+ },
+ markPoint: {
+ data: [
+ { type: "max", name: "鏈�澶у��" },
+ { type: "min", name: "鏈�灏忓��" },
+ ],
+ },
+ connectNulls: true,
+ },
+ ],
+ animationDuration: 1000,
+ };
- // 浣跨敤閰嶇疆椤规樉绀哄浘琛�
- myxyChart.setOption(option);
+ // 浣跨敤閰嶇疆椤规樉绀哄浘琛�
+ myChart.setOption(option);
- // 绐楀彛澶у皬鍙樺寲鏃堕噸鏂拌皟鏁村浘琛ㄥぇ灏�
- const resizeHandler = () => myxyChart.resize();
- window.addEventListener("resize", resizeHandler);
+ // 绐楀彛澶у皬鍙樺寲鏃堕噸鏂拌皟鏁村浘琛ㄥぇ灏�
+ const resizeHandler = () => myChart.resize();
+ window.addEventListener("resize", resizeHandler);
- // 鍦ㄧ粍浠堕攢姣佹椂绉婚櫎浜嬩欢鐩戝惉锛堝鏋滄槸Vue/React缁勪欢锛�
- this.$once("hook:beforeDestroy", () => {
- window.removeEventListener("resize", resizeHandler);
- myxyChart.dispose();
- });
- })
- .catch((error) => {
- console.error("鍔犺浇鏁版嵁澶辫触:", error);
+ // 鍦ㄧ粍浠堕攢姣佹椂绉婚櫎浜嬩欢鐩戝惉
+ this.$once("hook:beforeDestroy", () => {
+ window.removeEventListener("resize", resizeHandler);
+ myChart.dispose();
});
+ } catch (error) {
+ console.error("鍔犺浇鍥捐〃澶辫触:", error);
+ }
},
- // 鑾峰彇鏂扮敓鍎挎暟鎹�
- newbornList() {
- return newborninfolist({ patId: this.id })
- .then((response) => {
- this.borninfooptions = response.rows || [];
-
- this.newcharts();
- console.log("鍔犺浇鐨勬柊鐢熷効鏁版嵁:", this.borninfooptions);
- return Promise.resolve();
- })
- .catch((error) => {
- console.error("璇锋眰鏁版嵁澶辫触:", error);
- this.borninfooptions = [];
- return Promise.reject(error);
- });
+ async newbornList() {
+ try {
+ const response = await newborninfolist({ patId: this.id });
+ this.borninfooptions = (response.rows || []).map((item) => ({
+ ...item,
+ // 纭繚鏃堕棿鏍煎紡姝g‘
+ generatedTime: item.generatedTime || item.createTime,
+ editing: false,
+ }));
+ console.log("鍔犺浇鐨勬柊鐢熷効鏁版嵁:", this.borninfooptions);
+ } catch (error) {
+ console.error("璇锋眰鏁版嵁澶辫触:", error);
+ this.borninfooptions = [];
+ }
},
// 蹇冪巼
xlechartsInit() {
@@ -2018,6 +2267,74 @@
// 浣跨敤鍒氭寚瀹氱殑閰嶇疆椤瑰拰鏁版嵁鏄剧ず鍥捐〃銆�
myxyChart.setOption(option);
},
+ // 鏂扮敓鍎挎暟鎹紪杈�
+ // 缂栬緫琛�
+ handleEdit(row) {
+ this.$set(row, "editing", true);
+ // 澶囦唤鍘熷鏁版嵁鐢ㄤ簬鍙栨秷鎿嶄綔
+ this.$set(row, "originalData", { ...row });
+ },
+
+ // 淇濆瓨琛�
+ handleSave(row) {
+ this.$set(row, "editing", false);
+ // 璋冪敤API淇濆瓨鏁版嵁
+ this.saveNewbornData(row);
+ },
+
+ // 鍙栨秷缂栬緫
+ handleCancel(row) {
+ this.$set(row, "editing", false);
+ // 鎭㈠鍘熷鏁版嵁
+ if (row.originalData) {
+ Object.assign(row, row.originalData);
+ delete row.originalData;
+ }
+ },
+
+ // 鍒犻櫎琛�
+ handleDelete(index, row) {
+ this.$confirm("纭畾瑕佸垹闄よ繖鏉¤褰曞悧锛�", "鎻愮ず", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ // 璋冪敤API鍒犻櫎鏁版嵁
+ newborninforemove(row.id).then(() => {
+ this.borninfooptions.splice(index, 1);
+ this.$message.success("鍒犻櫎鎴愬姛");
+ // 閲嶆柊娓叉煋鍥捐〃
+ this.tzechartsInit();
+ });
+ })
+ .catch(() => {});
+ },
+
+ // 淇濆瓨鏁版嵁鍒板悗绔�
+ async saveNewbornData(data) {
+ try {
+ const response = await newborninfoedit(data);
+ if (response.code === 200) {
+ this.$message.success("淇濆瓨鎴愬姛");
+ // 閲嶆柊鍔犺浇鏁版嵁骞跺埛鏂板浘琛�
+ await this.newbornList();
+ this.tzechartsInit();
+ } else {
+ this.$message.error("淇濆瓨澶辫触");
+ }
+ } catch (error) {
+ console.error("淇濆瓨鏁版嵁澶辫触:", error);
+ this.$message.error("淇濆瓨澶辫触");
+ }
+ },
+
+ // 鍒犻櫎鏁版嵁
+ async deleteNewbornData(id) {
+ // 瀹炵幇鍒犻櫎API璋冪敤
+ // 杩欓噷闇�瑕佹牴鎹綘鐨勫悗绔帴鍙e疄鐜�
+ return Promise.resolve();
+ },
},
};
</script>
--
Gitblit v1.9.3