Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web

This commit is contained in:
LiJianZhao 2025-05-15 11:29:34 +08:00
commit 5ccb88f4fc
16 changed files with 276 additions and 213 deletions

View File

@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<link rel="stylesheet" href="@/assets/iconfont/iconfont.css">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>药慧精灵智慧诊所</title>
</head>

View File

@ -0,0 +1,22 @@
@font-face {
font-family: "iconfont"; /* Project id 4921806 */
src: url('iconfont.woff?t=1747274949107') format('woff'),
url('iconfont.ttf?t=1747274949107') format('truetype');
}
.iconfont {
font-family: "iconfont", serif !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-RectangleCopy:before {
content: "\e6a2";
}
.icon-RectangleCopy1:before {
content: "\e6a4";
}

Binary file not shown.

Binary file not shown.

View File

@ -17,7 +17,7 @@ $border-color-lighter: #EBEEF5;
$border-color-extra-light: #F2F6FC;
// 背景颜色
$background-color-base: #eee;
$background-color-base: #F1F5FB;
$background-color-main: #4D6DE4;
// 边框圆角

View File

@ -35,7 +35,7 @@ html {
}
body {
background-color: #EEEEEEFF;
background-color: base.$background-color-base;
}
.center-wrapper {
@ -96,8 +96,8 @@ body {
padding: 0 !important;
//border: 1px solid #4D6DE4 !important;
}
$btn-color: #4d99e4;
$lighter-color: #6eaeed;
$btn-color: #4D6DE4;
$lighter-color: #7c91e3;
.default-btn{
cursor: pointer;
width: 120px;
@ -106,7 +106,7 @@ $lighter-color: #6eaeed;
background: $btn-color;
border-radius: 6px;
color: #FFF;
font-size: 15px;
font-size: 16px;
text-align: center;
&:hover{
background: $lighter-color;

View File

@ -3,6 +3,7 @@ import './assets/scss/main.scss'
import {createApp} from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import '../src/assets/iconfont/iconfont.css'
import {createPinia} from 'pinia'
import App from './App.vue'

View File

@ -1,7 +1,8 @@
<template>
<div class="layout-container">
<Header class="header"/>
<header>
<div class="body">
<header style="height: 50px">
<div class="center-wrapper">
<div class="childMenu">
<router-link :to="item.path" class="child-item" v-for="(item,index) in childMenuList" :key="index">
@ -10,47 +11,73 @@
</div>
</div>
</header>
<div class="space"></div>
<main class="layout-main">
<main class="layout-main" style="margin-top: 24px">
<router-view/>
</main>
<div class="space"></div>
</div>
<Footer class="footer"/>
</div>
</template>
<style scoped lang="scss">
.body{
height: 100%;
padding: 24px;
display: flex;
flex-direction: column;
}
.childMenu {
width: 100%;
height: 60px;
height: 50px;
background: #fff;
display: flex;
align-items: center;
border-radius: 8px;
.child-item {
width: 136px;
display: inline-block;
color: #151515;
outline: none;
text-decoration: none;
font-size: 18px;
margin-left: 10px;
margin-right: 10px;
height: 35px;
height: 50px;
position: relative;
line-height: 50px;
text-align: center;
&::before{
content: '';
position: absolute;
right: 0;
top:50%;
display: block;
width: 2px;
height: 16px;
background: #D8D8D8;
border-radius: 1px;
transform: translate(0 ,-50%);
}
&:last-child::before{
display: none;
}
}
.router-link-active:after {
content: '';
display: block;
width: 100%;
height: 2px;
background-color: #151515; // 线
width: 80px;
height: 4px;
background-color: #4D6DE4; // 线
position: absolute;
bottom: -5px; // 线
left: 0;
bottom: 0; // 线
left: 50%;
transform: translateX(-50%);
border-radius: 2px;
}
}
a.router-link-active.router-link-exact-active.child-item{
color: #4D6DE4;
}
</style>

View File

@ -1,7 +1,8 @@
<template>
<div class="layout-container">
<Header class="header"/>
<header>
<div class="body">
<header style="height: 50px">
<div class="center-wrapper">
<div class="childMenu">
<router-link :to="item.path" class="child-item" v-for="(item,index) in childMenuList" :key="index">
@ -10,47 +11,74 @@
</div>
</div>
</header>
<div class="space"></div>
<main class="layout-main">
<main class="layout-main" style="margin-top: 24px">
<router-view/>
</main>
<div class="space"></div>
</div>
<Footer class="footer"/>
</div>
</template>
<style scoped lang="scss">
.body{
height: 100%;
padding: 24px;
display: flex;
flex-direction: column;
}
.childMenu {
height: 60px;
width: 100%;
height: 50px;
background: #fff;
display: flex;
align-items: center;
border-radius: 8px;
.child-item {
width: 136px;
display: inline-block;
color: #151515;
outline: none;
text-decoration: none;
font-size: 18px;
margin-left: 10px;
margin-right: 10px;
height: 35px;
height: 50px;
position: relative;
line-height: 50px;
text-align: center;
&::before{
content: '';
position: absolute;
right: 0;
top:50%;
display: block;
width: 2px;
height: 16px;
background: #D8D8D8;
border-radius: 1px;
transform: translate(0 ,-50%);
}
&:last-child::before{
display: none;
}
}
.router-link-active:after {
content: '';
display: block;
width: 100%;
height: 2px;
background-color: #151515; // 线
width: 80px;
height: 4px;
background-color: #4D6DE4; // 线
position: absolute;
bottom: -5px; // 线
left: 0;
bottom: 0; // 线
left: 50%;
transform: translateX(-50%);
border-radius: 2px;
}
}
a.router-link-active.router-link-exact-active.child-item{
color: #4D6DE4;
}
</style>

View File

@ -17,16 +17,12 @@
</el-form>
</div>
<div class="right">
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
<div class="default-btn" @click="resetSearch">
<span class="iconfont icon-RectangleCopy1"></span>
重置
</div>
<div class="btn" @click="getList">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
<div class="default-btn" @click="getList" style="margin-left: 24px">
<span class="iconfont icon-RectangleCopy"></span>
搜索
</div>
</div>
@ -36,7 +32,7 @@
</div>
</div>
<div class="content">
<el-table :data="dataList" style="width: 100%" @row-click="rowClick">
<el-table :data="dataList" style="width: 100%;height: 100%" @row-click="rowClick">
<el-table-column prop="useCode" label="单号" width="180"></el-table-column>
<el-table-column prop="status" label="状态" width="180"></el-table-column>
<el-table-column prop="useUserId" label="领用人" width="180"></el-table-column>

View File

@ -17,16 +17,12 @@
</el-form>
</div>
<div class="right">
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
<div class="default-btn" @click="resetSearch">
<span class="iconfont icon-RectangleCopy1"></span>
重置
</div>
<div class="btn" @click="getCheck">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
<div class="default-btn" @click="getCheck" style="margin-left: 24px">
<span class="iconfont icon-RectangleCopy"></span>
搜索
</div>
</div>
@ -37,7 +33,7 @@
</div>
<div class="content_list">
<el-scrollbar>
<el-table :data="tableData" @cell-click="editCheck">
<el-table :data="tableData" @cell-click="editCheck" style="height: 100%">
<el-table-column label="订单号" prop="code" width="250">
</el-table-column>
<el-table-column label="状态" prop="state" width="250"></el-table-column>

View File

@ -65,16 +65,12 @@
<el-checkbox v-model="inventoryNumber" label="不看0库存" size="large" @change="searchGoods"/>
<el-checkbox v-model="status" label="不看已停用" size="large" @change="searchGoods"/>
</div>
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
<div class="default-btn" @click="resetSearch">
<span class="iconfont icon-RectangleCopy1"></span>
重置
</div>
<div class="btn" @click="searchGoods">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
<div class="default-btn" @click="searchGoods" style="margin-left: 24px">
<span class="iconfont icon-RectangleCopy"></span>
搜索
</div>
</div>

View File

@ -66,16 +66,12 @@
</el-form>
</div>
<div class="right">
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
<div class="default-btn" @click="resetSearch">
<span class="iconfont icon-RectangleCopy1"></span>
重置
</div>
<div class="btn" @click="init">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
<div class="default-btn" @click="init" style="margin-left: 24px">
<span class="iconfont icon-RectangleCopy"></span>
搜索
</div>
</div>
@ -86,7 +82,7 @@
</div>
<div class="content_list">
<el-scrollbar>
<el-table :data="tableData" style="width: 100%" @row-click="open_edit"
<el-table :data="tableData" style="width: 100%;height: 100%" @row-click="open_edit"
:header-cell-style="{ backgroundColor: '#F1F5FB' }">
<el-table-column fixed label="采购单号" show-overflow-tooltip>
<template #default="scope">

View File

@ -13,16 +13,12 @@
</el-form>
</div>
<div class="right">
<div class="btn" @click="resetSearch">
<el-icon style="margin-right: 10px">
<Refresh/>
</el-icon>
<div class="default-btn" @click="resetSearch">
<span class="iconfont icon-RectangleCopy1"></span>
重置
</div>
<div class="btn" @click="getSupplier">
<el-icon style="margin-right: 10px">
<Search/>
</el-icon>
<div class="default-btn" @click="getSupplier" style="margin-left: 24px">
<span class="iconfont icon-RectangleCopy"></span>
搜索
</div>
</div>

View File

@ -73,11 +73,16 @@
formatListTime(listItem.lastVisitTime) || "-"
}}
</el-descriptions-item>
<el-descriptions-item label="证件类型">{{certTypeList.find((item:any)=>item.id==listItem.certType)?.name}}</el-descriptions-item>>
<el-descriptions-item label="证件类型">
{{ certTypeList.find((item: any) => item.id == listItem.certType)?.name }}
</el-descriptions-item>
>
<el-descriptions-item label="证件号码">{{ listItem.certNo || "-" }}</el-descriptions-item>
<el-descriptions-item label="积分"><span>{{ listItem.integralBalance }}</span>
</el-descriptions-item>
<el-descriptions-item label="地址">{{ areaName}}{{areaName?'/'+listItem.address : listItem.address || "-" }}</el-descriptions-item>
<el-descriptions-item label="地址">
{{ areaName }}{{ areaName ? '/' + listItem.address : listItem.address || "-" }}
</el-descriptions-item>
<el-descriptions-item label="既往史">{{ listItem.beforeMedicalHistory || "-" }}</el-descriptions-item>
<el-descriptions-item label="过敏史">{{ listItem.allergyHistory || "-" }}</el-descriptions-item>
<el-descriptions-item label="备注">{{ listItem.remark || "-" }}</el-descriptions-item>
@ -86,10 +91,12 @@
</div>
</div>
</Panel>
<Panel title="消费记录" class="right-list">
<div class="list-content">
<div class="right-list">
<Panel title="消费记录">
<div class="panel-content" style="display: flex;flex-direction: column;height: 100%;padding: 0 24px;">
<div class="list">
<el-table :data="tableData" :header-cell-style="{ backgroundColor: '#F1F5FB' }" style="width: 100%"
<el-table :data="tableData" :header-cell-style="{ backgroundColor: '#F1F5FB' }"
style="width: 100%;height: 100%"
@cell-click="openDetail">
<el-table-column label="单号" prop="code" show-overflow-tooltip>
</el-table-column>
@ -142,6 +149,7 @@
</Panel>
</div>
</div>
</div>
<VipEdit ref="refEdit" @close="init"></VipEdit>
<VipLevelEdit ref="levelEditRef" @close="init"></VipLevelEdit>
<Mask :width="600" :height="400" :is-show="isGrant" @close="isGrant=false" :title="'发放积分'">
@ -596,34 +604,19 @@ const certTypeList=ref<any>(Object.entries(psnCertTypes).map(([id,name])=>({id,n
display: flex;
flex-direction: column;
min-height: 0;
.list-content {
display: flex;
flex-direction: column;
padding: 0 24px;
height: 100%;
.list {
flex: 1;
display: flex;
flex-direction: column;
min-height: 0;
}
.bottom {
width: 100%;
height: 60px;
background-color: #FFF;
box-sizing: border-box;
padding: 10px;
position: relative;
border-top: 1px solid #EEE;
.page_btn_list {
position: absolute;
left: 0;
top: 10px;
}
}
display: flex;
justify-content: flex-end;
}
}
}

View File

@ -13,12 +13,17 @@
</div>
<div class="tip">
<div class="search_input">
<el-input v-model="search_keyword" placeholder="名称/编号" :suffix-icon="Search" size="large" clearable @change="change_search"/>
<el-input v-model="search_keyword" placeholder="名称/编号" :suffix-icon="Search" size="large" clearable
@change="change_search"/>
</div>
<div class="search_btn"><div class="default-btn" @click="change_search">搜索</div></div>
<div class="search_btn">
<div class="default-btn" @click="change_search">
<span class="iconfont icon-RectangleCopy"></span>
搜索
</div>
</div>
<div class="middel">
</div>
<div class="op_btn">
<el-dropdown placement="bottom">
@ -77,6 +82,7 @@ import {ElNotification, type TabsPaneContext} from 'element-plus'
import {post} from '@/utils/request.ts'
import {Search} from '@element-plus/icons-vue'
import Mask from "@/components/common/Mask.vue";
let isUpdate1312 = ref(false)
let isUpdate1318 = ref(false)
let isUpdate1319 = ref(false)
@ -253,6 +259,7 @@ let download = (ver: any, type: any) => {
height: 100%;
padding: 20px;
}
.container-wrapper {
box-sizing: border-box;
padding: 20px;
@ -273,17 +280,21 @@ let download = (ver: any, type: any) => {
.tip {
display: flex;
.search_input {
flex: 1;
}
.search_btn {
width: 140px;
padding-left: 10px;
padding-right: 10px;
}
.middel {
width: 200px;
}
.op_btn {
width: 120px;
}