diff --git a/package.json b/package.json index aa6d78f..1bc6dc0 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "crypto-js": "^4.2.0", "echarts": "^5.4.1", "element-china-area-data": "^6.1.0", - "element-plus": "2.7.2", + "element-plus": "2.7.3", "js-cookie": "^3.0.5", "nprogress": "^0.2.0", "pinia": "^2.1.7", diff --git a/src/api/dict.ts b/src/api/dict.ts index cefa011..4c0b385 100644 --- a/src/api/dict.ts +++ b/src/api/dict.ts @@ -4,6 +4,7 @@ const dictUrl = "/admin/dict"; const dictPageUrl = "/admin/dict/tree"; const dictItemUrl = "/admin/dict/item"; const dictItemPageUrl = "/admin/dict/item/page"; +const dictListByTypeUrl = "/admin/dict/type"; export function dictPage(current: number, size: number, name?: string) { return new Promise(resolve => { @@ -96,4 +97,14 @@ export function deleteDictItem(id: string): Promise { resolve(err) }) }) +} + +export function getDictListByType(type: string): Promise { + return new Promise(resolve => { + request.get(dictListByTypeUrl + "/" + type).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) } \ No newline at end of file diff --git a/src/api/hospital.ts b/src/api/hospital.ts index 73329b1..5d9268f 100644 --- a/src/api/hospital.ts +++ b/src/api/hospital.ts @@ -10,6 +10,8 @@ const updateHospitalUrl = "/admin/hospital/updateHospital"; const getHospitalManagerUrl = "/admin/hospital/getHospitalManager"; const changeHospitalUrl = "/admin/hospital/changeHospital"; const getCurrentHospitalUrl = "/admin/hospital/getCurrentHospital"; +const getCountByCityUrl = "/admin/hospital/getCountByCity"; +const getCountByProvinceUrl = "/admin/hospital/getCountByProvince"; export const getHospitalList = () => { return new Promise(resolve => { @@ -45,7 +47,7 @@ export function saveHospital(hospital: any) { }) } -export function getHospitalPage(current: number, size: number, name?: string) { +export function getHospitalPage(current: number, size: number, name?: string): Promise { return new Promise(resolve => { request.postForm(getHospitalPageUrl, { offset: current, @@ -119,4 +121,24 @@ export function getCurrentHospital() { resolve(err) }) }) +} + +export function getCountByProvince(): Promise { + return new Promise(resolve => { + request.post(getCountByProvinceUrl).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + +export function getCountByCity(province: string): Promise { + return new Promise(resolve => { + request.postForm(getCountByCityUrl, {province}).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) } \ No newline at end of file diff --git a/src/api/medicine.ts b/src/api/medicine.ts index 15e33a4..44eb425 100644 --- a/src/api/medicine.ts +++ b/src/api/medicine.ts @@ -2,9 +2,14 @@ import request from "@/utils/request"; const getDatabaseListUrl = "/admin/medicine/getDatabaseList"; const getSurgeryCountUrl = "/admin/medicine/getSurgeryCount"; +const getSurgeryCountMUrl = "/admin/medicine/getSurgeryCountM" const getSurgeryDurationUrl = "/admin/medicine/getSurgeryDuration"; +const getSurgeryDurationMUrl = "/admin/medicine/getSurgeryDurationM" const getSurgeryTypeProportionUrl = "/admin/medicine/getSurgeryTypeProportion"; +const getSurgeryTypeProportionMUrl = "/admin/medicine/getSurgeryTypeProportionM" const getSurgeryOtherDurationUrl = "/admin/medicine/getSurgeryOtherDuration"; +const getSurgeryOtherDurationMUrl = "/admin/medicine/getSurgeryOtherDurationM" + export function getDatabaseList() { return new Promise(resolve => { @@ -26,6 +31,16 @@ export function getSurgeryCount(start: string, end: string): Promise { }) } +export function getSurgeryCountM(startTime: string, endTime: string): Promise { + return new Promise(resolve => { + request.postForm(getSurgeryCountMUrl, {startTime, endTime}).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + export function getSurgeryDuration(start: string, end: string): Promise { return new Promise(resolve => { request.postForm(getSurgeryDurationUrl, {start, end}).then(res => { @@ -36,6 +51,16 @@ export function getSurgeryDuration(start: string, end: string): Promise { }) } +export function getSurgeryDurationM(startTime: string, endTime: string): Promise { + return new Promise(resolve => { + request.postForm(getSurgeryDurationMUrl, {startTime, endTime}).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + export function getSurgeryTypeProportion(start: string, end: string): Promise { return new Promise(resolve => { request.postForm(getSurgeryTypeProportionUrl, {start, end}).then(res => { @@ -46,6 +71,16 @@ export function getSurgeryTypeProportion(start: string, end: string): Promise { + return new Promise(resolve => { + request.postForm(getSurgeryTypeProportionMUrl, {startTime, endTime}).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + export function getSurgeryOtherDuration(start: string, end: string): Promise { return new Promise(resolve => { request.postForm(getSurgeryOtherDurationUrl, {start, end}).then(res => { @@ -54,4 +89,14 @@ export function getSurgeryOtherDuration(start: string, end: string): Promise { + return new Promise(resolve => { + request.postForm(getSurgeryOtherDurationMUrl, {startTime, endTime}).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) } \ No newline at end of file diff --git a/src/api/patient.ts b/src/api/patient.ts index 2913f63..bca331d 100644 --- a/src/api/patient.ts +++ b/src/api/patient.ts @@ -1,8 +1,11 @@ import request from "@/utils/request"; const patientInfoUrl = "/admin/medicine/getPatientInfo"; +const getPatientPageUrl = "/admin/medicine/getPatientPage"; +const getPatientSurgeryListUrl = "/admin/medicine/getPatientSurgeryList"; +const getSurgeryTableDataUrl = "/admin/medicine/getSurgeryTableData"; -export function getPatientInfo(name: string, id: string, date: string) { +export function getPatientInfo(name: string, id: string, date: string): Promise { return new Promise((resolve, reject) => { request.postForm(patientInfoUrl, { patientName: name, @@ -14,4 +17,41 @@ export function getPatientInfo(name: string, id: string, date: string) { reject(error); }); }); +} + +export function getPatientPage(params: { + offset: number, + limit: number, + name?: string, + dept?: string + }): Promise { + return new Promise(resolve => { + request.postForm(getPatientPageUrl, params).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + +export function getPatientSurgeryList(name: string, code: string, surgery: string, type: string): Promise { + return new Promise(resolve => { + request.postForm(getPatientSurgeryListUrl, { name, code, surgery, type }).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + +export function getSurgeryTableData(name: string, code: string, date: string, table: string): Promise { + return new Promise(resolve => { + request.postForm(getSurgeryTableDataUrl, { + name, code, date, table + }).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) } \ No newline at end of file diff --git a/src/api/user.ts b/src/api/user.ts index db3b0a2..b83ec01 100644 --- a/src/api/user.ts +++ b/src/api/user.ts @@ -1,4 +1,4 @@ -import request, {CommonHeaderEnum, getData, postData} from "@/utils/request"; +import request, { CommonHeaderEnum, getData, postData } from "@/utils/request"; const userInfoUrl = '/admin/user/info' @@ -8,124 +8,163 @@ const editPasswordUrl = '/admin/user/password' const userPageUrl = '/admin/user/page' +const userListUrl = "/admin/user/list" + const userUrl = '/admin/user' const modifyPwUrl = "/admin/user/modifyPw" const getUserListByHospitalUrl = "/admin/user/getUserListByHospital"; +const getUserCountUrl = "/admin/user/getUserCount"; + +const getCountByDateUrl = "/admin/user/getCountByDate"; + export function getUserInfo() { - return new Promise(resolve => { - getData(userInfoUrl).then((data: any) => { - resolve(data.data) - }) - }) + return new Promise(resolve => { + getData(userInfoUrl).then((data: any) => { + resolve(data.data) + }) + }) } export function updateUserInfo(data: any) { - return new Promise(resolve => { - request.request({ - url: editUserUrl, - method: 'put', - data - }).then((res: any) => { - resolve(res.data) - }) - }) + return new Promise(resolve => { + request.request({ + url: editUserUrl, + method: 'put', + data + }).then((res: any) => { + resolve(res.data) + }) + }) } export function editPassword(data: any) { - return new Promise(resolve => { - request.request({ - url: editPasswordUrl, - method: "PUT", - data - }).then((res: any) => { - resolve(res.data) - }).catch(err => { - resolve(err) - }) - }) + return new Promise(resolve => { + request.request({ + url: editPasswordUrl, + method: "PUT", + data + }).then((res: any) => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) } export function userPage(data: any) { - return new Promise(resolve => { - request({ - url: userPageUrl, - method: "post", - headers: { - 'Content-Type': CommonHeaderEnum.FORM_CONTENT_TYPE - }, - data - }).then((res: any) => { - resolve(res.data) - }).catch(err => { - console.log(err) - }) - }) + return new Promise(resolve => { + request({ + url: userPageUrl, + method: "post", + headers: { + 'Content-Type': CommonHeaderEnum.FORM_CONTENT_TYPE + }, + data + }).then((res: any) => { + resolve(res.data) + }).catch(err => { + console.log(err) + }) + }) +} + +export function userList(data: any): Promise { + return new Promise(resolve => { + request.postForm(userListUrl, data) + .then((res: any) => { + resolve(res.data) + }).catch(err => { + console.log(err) + }) + }) } export function addUser(data: any) { - return new Promise((resolve, reject) => { - postData(userUrl, data).then((res: any) => { - resolve(res.data) - }).catch(error => { - reject(error) - }) - }) + return new Promise((resolve, reject) => { + postData(userUrl, data).then((res: any) => { + resolve(res.data) + }).catch(error => { + reject(error) + }) + }) } export function modifyPw(data: any) { - return new Promise((resolve, reject) => { - request({ - url: modifyPwUrl, - method: "post", - headers: { - 'Content-Type': CommonHeaderEnum.FORM_CONTENT_TYPE - }, - data - }).then((res: any) => { - resolve(res.data) - }).catch(error => { - reject(error) - }) - }) + return new Promise((resolve, reject) => { + request({ + url: modifyPwUrl, + method: "post", + headers: { + 'Content-Type': CommonHeaderEnum.FORM_CONTENT_TYPE + }, + data + }).then((res: any) => { + resolve(res.data) + }).catch(error => { + reject(error) + }) + }) } export function updateUI(data: any) { - return new Promise((resolve, reject) => { - request({ - url: userUrl, - method: "put", - data - }).then((res: any) => { - resolve(res.data) - }).catch(error => { - reject(error) - }) - }) + return new Promise((resolve, reject) => { + request({ + url: userUrl, + method: "put", + data + }).then((res: any) => { + resolve(res.data) + }).catch(error => { + reject(error) + }) + }) } export function deleteU(ids: any[]) { - return new Promise((resolve, reject) => { - request({ - url: userUrl, - method: "delete", - data: ids - }).then((res: any) => { - resolve(true) - }).catch(error => { - reject(error) - }) - }) + return new Promise((resolve, reject) => { + request({ + url: userUrl, + method: "delete", + data: ids + }).then((res: any) => { + resolve(true) + }).catch(error => { + reject(error) + }) + }) } export function getUserListByHospital(hospitalId: string) { - return new Promise(resolve => { - request.postForm(getUserListByHospitalUrl, {hospitalId}).then(res => { - resolve(res.data) - }).catch(err => { - resolve(err); - }) - }) + return new Promise(resolve => { + request.postForm(getUserListByHospitalUrl, { hospitalId }).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err); + }) + }) +} + +export function getUserCount(): Promise { + return new Promise(resolve => { + request.post(getUserCountUrl).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) +} + +export function getCountByDate(startTime: string, endTime: string): Promise { + return new Promise(resolve => { + request.postForm(getCountByDateUrl, { + startTime, endTime + }).then(res => { + resolve(res.data) + }).catch(err => { + resolve(err) + }) + }) } diff --git a/src/stores/user-info-store.ts b/src/stores/user-info-store.ts index a31ea67..9346810 100644 --- a/src/stores/user-info-store.ts +++ b/src/stores/user-info-store.ts @@ -48,7 +48,7 @@ export const useUserStore = defineStore('login', { return new Promise(resolve => { if (this.userInfo.menuPathList.paths.length == 0) { getUserMenu().then((res: any) => { - if (res.code == 0) { + if (res && res.code == 0) { const paths: any = []; const menus: any = []; res.data.forEach((item: any) => { diff --git a/src/views/home/number-chart.vue b/src/views/home/number-chart.vue index e15423b..4bf8eb3 100644 --- a/src/views/home/number-chart.vue +++ b/src/views/home/number-chart.vue @@ -119,17 +119,29 @@ const getData = (date: any) => { let num = 0 const start = new Date(currentMonth.value.getFullYear(), currentMonth.value.getMonth(), 1) const end = new Date(currentMonth.value.getFullYear(), currentMonth.value.getMonth() + 1, 0) - medicineApi.getSurgeryCount(dateFormater("yyyy-MM-dd", start), dateFormater("yyyy-MM-dd", end)).then(res => { + medicineApi.getSurgeryCountM(dateFormater("yyyy-MM-dd", start), dateFormater("yyyy-MM-dd", end)).then(res => { if (res.code == 0) { res.data.forEach((item: any) => { - xData.push(item.time) + const time = "" + new Date(item.date).getDate() + xData.push(time.padStart(2, "0")) data.push(item.count) - num += item.count + num += Number(item.count) }) total.value = num } initChart({xData, data}) }) + // medicineApi.getSurgeryCount(dateFormater("yyyy-MM-dd", start), dateFormater("yyyy-MM-dd", end)).then(res => { + // if (res.code == 0) { + // res.data.forEach((item: any) => { + // xData.push(item.time) + // data.push(item.count) + // num += item.count + // }) + // total.value = num + // } + // initChart({xData, data}) + // }) } diff --git a/src/views/home/number-pie-chart.vue b/src/views/home/number-pie-chart.vue index 4c86092..041bd14 100644 --- a/src/views/home/number-pie-chart.vue +++ b/src/views/home/number-pie-chart.vue @@ -3,12 +3,12 @@
- + + @change="getData" /> - +
@@ -20,11 +20,11 @@ @@ -137,7 +153,7 @@ const getData = (date: any) => { align-items: center; color: $text2-color; - & > :deep(.el-date-editor) { + &> :deep(.el-date-editor) { font-size: 14px; .el-input__wrapper { @@ -186,4 +202,5 @@ const getData = (date: any) => { padding: 5px 0; } } -} +} + diff --git a/src/views/home/time-bar-chart.vue b/src/views/home/time-bar-chart.vue index f781027..b706f10 100644 --- a/src/views/home/time-bar-chart.vue +++ b/src/views/home/time-bar-chart.vue @@ -139,16 +139,26 @@ const getData = (date: any) => { const weekDates = getWeekDates(currentMonth.value) const start = dateFormater("yyyy-MM-dd", weekDates.start) const end = dateFormater("yyyy-MM-dd", weekDates.end.setDate(weekDates.end.getDate() + 1)) - medicineApi.getSurgeryOtherDuration(start, end).then(res => { + medicineApi.getSurgeryOtherDurationM(start, end).then(res => { if (res.code == 0) { res.data.forEach((item: any) => { - xData.push(new Date(item._id)) - data[0].push(item.aicount) - data[1].push(item.doccount) + xData.push(new Date(item.date)) + data[0].push(Number(item.aicount)) + data[1].push(Number(item.doccount)) }) } initChart({dataName, xData, data}) }) + // medicineApi.getSurgeryOtherDuration(start, end).then(res => { + // if (res.code == 0) { + // res.data.forEach((item: any) => { + // xData.push(new Date(item._id)) + // data[0].push(item.aicount) + // data[1].push(item.doccount) + // }) + // } + // initChart({dataName, xData, data}) + // }) } diff --git a/src/views/home/time-chart.vue b/src/views/home/time-chart.vue index a6477f4..2661dd8 100644 --- a/src/views/home/time-chart.vue +++ b/src/views/home/time-chart.vue @@ -113,20 +113,37 @@ const getData = (date: any) => { const start = dateFormater("yyyy-MM-dd", new Date(currentMonth.value.getFullYear(), currentMonth.value.getMonth(), 1)) const end = dateFormater("yyyy-MM-dd", new Date(currentMonth.value.getFullYear(), currentMonth.value.getMonth() + 1, 0)) - medicineApi.getSurgeryDuration(start, end).then(res => { + + medicineApi.getSurgeryDurationM(start, end).then(res => { const xData: any = [] const data: any = [] let num = 0 if (res.code == 0) { res.data.forEach((item: any) => { - xData.push(item._id) + const time = new Date(item.date).getDate() + "" + xData.push(time.padStart(2, "0")) data.push(item.duration) - num += item.duration + num += Number(item.duration) }) } total.value = Number(num.toFixed(1)) initChart({xData, data}) }) + + // medicineApi.getSurgeryDuration(start, end).then(res => { + // const xData: any = [] + // const data: any = [] + // let num = 0 + // if (res.code == 0) { + // res.data.forEach((item: any) => { + // xData.push(item._id) + // data.push(item.duration) + // num += item.duration + // }) + // } + // total.value = Number(num.toFixed(1)) + // initChart({xData, data}) + // }) } diff --git a/src/views/home/week-calendar.vue b/src/views/home/week-calendar.vue index 1a5e8c1..efbdb71 100644 --- a/src/views/home/week-calendar.vue +++ b/src/views/home/week-calendar.vue @@ -2,19 +2,15 @@
- +
{{ getMonthTitle() }} - +
- +
@@ -23,14 +19,14 @@ {{ item }} - - {{ dateFormater('dd', item) }} + + {{ dateFormater('dd', item) }} @@ -38,35 +34,35 @@ 新建
+ style="padding: 0;" />

{{ - item.title - }}

+ item.title + }}

{{ item.date + " " + item.time }}

- +
+ @saveData="saveData" />
diff --git a/src/views/patients-manage/index.vue b/src/views/patients-manage/index.vue index c53c58f..a9f5772 100644 --- a/src/views/patients-manage/index.vue +++ b/src/views/patients-manage/index.vue @@ -17,8 +17,8 @@ diff --git a/src/views/patients-manage/surgery-info.vue b/src/views/patients-manage/surgery-info.vue index 2b11702..0de13b6 100644 --- a/src/views/patients-manage/surgery-info.vue +++ b/src/views/patients-manage/surgery-info.vue @@ -3,17 +3,24 @@

电子病史

- + +
+
+
-
{{ - item.name - }}
+
{{ + item.label + }} +
- {{ item.name || '+' }} - - + :class="{ 'active': item.value === queryParams.type }" + + @click="customFormTypeChange(item, index)"> + {{ item.label || '+' }} + +
- - + +
-
- - - + +
+ + + + +
@@ -82,90 +103,192 @@ - + diff --git a/src/views/system-manage/chart/user-chart.vue b/src/views/system-manage/chart/user-chart.vue index b541a4b..d444d95 100644 --- a/src/views/system-manage/chart/user-chart.vue +++ b/src/views/system-manage/chart/user-chart.vue @@ -4,19 +4,19 @@

本日

-

+ {{ total.day }}

+

+ {{ countMap.todayTotal }}

本周

-

+ {{ total.week }}

+

+ {{ countMap.weekTotal }}

本月

-

+ {{ total.month }}

+

+ {{ countMap.monthTotal }}

本年

-

+ {{ total.year }}

+

+ {{ countMap.yearTotal }}

@@ -37,23 +37,28 @@ @@ -138,9 +160,11 @@ const getData = (date: any) => { width: 100%; height: 100%; padding: 20px 40px; + h3.title { line-height: 30px; } + .total-box { width: 100%; height: 120px; @@ -150,18 +174,22 @@ const getData = (date: any) => { color: $text2-color; font-size: 18px; line-height: 2; + .total-item { text-align: center; + .value { font-size: 22px; font-weight: 600; color: #00aab7; } + &:nth-child(odd) .value { color: #f8b300; } } } + .date-btn { position: reactive; width: 100%; @@ -170,16 +198,18 @@ const getData = (date: any) => { justify-content: space-between; align-items: center; z-index: 1; + .title { font-size: 18px; } + .btn-box { height: 30px; display: flex; align-items: center; color: $text2-color; - &>:deep(.el-date-editor) { + &> :deep(.el-date-editor) { font-size: 14px; .el-input__wrapper { diff --git a/src/views/system-manage/form/hospital-form.vue b/src/views/system-manage/form/hospital-form.vue index e4350b9..19ae9dd 100644 --- a/src/views/system-manage/form/hospital-form.vue +++ b/src/views/system-manage/form/hospital-form.vue @@ -188,7 +188,6 @@ const selectNameChange = (e: any) => { manager.value.name = e.name; } const saveData = () => { - console.log(formData.value) ElMessageBox.confirm( "是否保存", { diff --git a/src/views/system-manage/hospitals-map.vue b/src/views/system-manage/hospitals-map.vue index b0300e1..2138993 100644 --- a/src/views/system-manage/hospitals-map.vue +++ b/src/views/system-manage/hospitals-map.vue @@ -10,39 +10,59 @@
  • {{ item.n }}:{{ item.t }}所
    • -
    • {{ item.n }}:{{ item.t }}所
    • +
    • {{ item.n }}:{{ item.t }}所 +