Compare commits

..

2 Commits

Author SHA1 Message Date
ChenQiuYu 0fa3bf802e Merge branch 'main' of ssh://git.jizhiweb.cn:2222/clinic-v2/web 2025-04-27 12:39:55 +08:00
ChenQiuYu 4d83e2d0f8 dev 2025-04-27 12:39:41 +08:00
10 changed files with 97 additions and 53 deletions

View File

@ -4,7 +4,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<link rel="icon" href="/favicon.ico"> <link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title> <title>药慧精灵智慧诊所</title>
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 239 KiB

View File

@ -3,7 +3,8 @@ export enum apiConfig{
* *
*/ */
"ManagerLogin"="manager/user/login",//登录 "ManagerLogin"="manager/user/login",//登录
"signUp"="signUp/signUp",//签到 "signIn"="sign/in",//签到
"signOut"="sign/out",//签退
/** /**
* *
*/ */

View File

@ -11,7 +11,9 @@
<router-link to="/social" class="menu-item" active-class="active active7">医保</router-link> <router-link to="/social" class="menu-item" active-class="active active7">医保</router-link>
<router-link to="/statistics" class="menu-item" active-class="active active8">统计</router-link> <router-link to="/statistics" class="menu-item" active-class="active active8">统计</router-link>
<router-link to="/settings" class="menu-item" active-class="active active9">设置</router-link> <router-link to="/settings" class="menu-item" active-class="active active9">设置</router-link>
<el-button style="float: right;color: #fff" @click="logout" type="text">退出登录</el-button> <div style="float: right;color: #fff">
<el-button style="float: right;color: #fff" @click="logout" type="text">退出登录</el-button>
</div>
</div> </div>
</div> </div>
@ -51,7 +53,7 @@
border-radius: 12px; border-radius: 12px;
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100%; background-size: 100%;
background-position:0 10px; background-position: 0 10px;
} }
&:nth-child(1)::before { &:nth-child(1)::before {
@ -145,15 +147,24 @@ header {
} }
</style> </style>
<script setup lang="ts"> <script setup lang="ts">
import { useRouter } from 'vue-router' import {useRouter} from 'vue-router'
import { ElMessage } from 'element-plus' import {ElMessage} from 'element-plus'
import {apiConfig} from "@/assets/config/apiConfig.ts";
import {post} from "@/utils/request";
import {singStatus} from "@/stores/counter.ts";
let logout = function () { let logout = function () {
localStorage.removeItem('token') localStorage.removeItem('token')
useRouter().push("/manager/login") ElMessage({
ElMessage({ message: "退出成功并退出签到,即将为您跳转到登录页面",
message: "退出成功,即将为您跳转到登录页面", type: 'success',
type: 'success', duration: 1000,
duration: 1000, onClose: () => {
post(apiConfig.signOut).then((res: any) => {
useRouter().push("/manager/login")
})
}
}) })
} }
const status = singStatus()
</script> </script>

View File

@ -73,6 +73,7 @@ const closeBtn = () => {
position: relative; position: relative;
height: 72px; height: 72px;
padding: 0 4px; padding: 0 4px;
border-bottom: 1px solid #EAEAEC;
.title { .title {
position: absolute; position: absolute;

View File

@ -1,38 +1,46 @@
<template> <template>
<div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......"> <div class="edit-panel" v-loading="isLoading" element-loading-text="正在保存......">
<div class="top"> <div class="top">
<el-form :model="inventory_order_data" :rules="formRules" ref="orderForm"> <el-form :model="inventory_order_data" label-position="top" :rules="formRules" ref="orderForm">
<el-descriptions title="采购订单" border> <el-row>
<el-descriptions-item label="订单编号"> <el-col :span="6">
{{ inventory_order_data.code != null ? inventory_order_data.code : "创建后自动生成" }} <el-form-item label="订单编号">
</el-descriptions-item> <div style="width: 234px;">
<el-descriptions-item label="采购人"> {{ inventory_order_data.code != null ? inventory_order_data.code : "创建后自动生成" }}
<el-input disabled v-model="userInfo.name"></el-input> </div>
</el-descriptions-item> </el-form-item>
<el-descriptions-item label="采购日期"> </el-col>
<el-form-item prop="purchaseDate" :label="''" :rules="formRules.purchaseDate"> <el-col :span="6">
<el-form-item label="采购人">
<el-input style="width: 234px;" disabled v-model="userInfo.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="purchaseDate" label="采购日期" :rules="formRules.purchaseDate">
<el-date-picker <el-date-picker
v-model="inventory_order_data.purchaseDate" v-model="inventory_order_data.purchaseDate"
type="date" type="date"
placeholder="选择一个创建日期" placeholder="选择一个创建日期"
size="default" size="default"
style="width: 234px;"
/> />
</el-form-item> </el-form-item>
</el-descriptions-item> </el-col>
<el-descriptions-item label="货单号"> <el-col :span="6">
<el-form-item prop="shippingCode" :label="''" :rules="formRules.shippingCode"> <el-form-item prop="shippingCode" label="货单号" :rules="formRules.shippingCode">
<el-input v-model="inventory_order_data.shippingCode"></el-input> <el-input v-model="inventory_order_data.shippingCode"></el-input>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-col>
<el-descriptions-item label="发票号"> </el-row>
<el-form-item prop="invoiceCode"> <el-row>
<el-input v-model="inventory_order_data.invoiceCode"></el-input> <el-col :span="6">
<el-form-item prop="invoiceCode" label="发票号">
<el-input style="width: 234px;" v-model="inventory_order_data.invoiceCode"></el-input>
</el-form-item> </el-form-item>
</el-col>
</el-descriptions-item> <el-col :span="6">
<el-descriptions-item label="供应商"> <el-form-item prop="supplierId" label="供应商" :rules="formRules.supplierId">
<el-form-item prop="supplierId" :label="''" :rules="formRules.supplierId"> <el-select style="width: 234px;" v-model="inventory_order_data.supplierId" placeholder="请选择供应商">
<el-select v-model="inventory_order_data.supplierId" placeholder="请选择供应商" style="width:300px">
<el-option <el-option
v-for="item in supplier_list" v-for="item in supplier_list"
:key="item.id" :key="item.id"
@ -41,15 +49,23 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-descriptions-item> </el-col>
<el-descriptions-item label="备注"> <el-col :span="12">
<el-input v-model="inventory_order_data.remark"/> <el-form-item label="备注" :rules="formRules.purchaseDate">
</el-descriptions-item> <el-input v-model="inventory_order_data.remark"/>
</el-descriptions> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</div> </div>
<GoodsSearch @selectCallBack="goodsSelectCallBack"></GoodsSearch>
<div class="table_content"> <div class="table_content">
<div class="add_goods">
<span>添加商品</span>
<div class="search">
<GoodsSearch @selectCallBack="goodsSelectCallBack"></GoodsSearch>
<el-button :icon="Search" type="primary">搜索</el-button>
</div>
</div>
<el-table :data="table_list" style="width: 100%" height="300" max-height="550"> <el-table :data="table_list" style="width: 100%" height="300" max-height="550">
<el-table-column prop="name" label="药品名称" width="180" show-overflow-tooltip/> <el-table-column prop="name" label="药品名称" width="180" show-overflow-tooltip/>
<el-table-column label="售价" prop="unitPrice" width="80"> <el-table-column label="售价" prop="unitPrice" width="80">
@ -147,7 +163,7 @@ import Edit from "@/components/inventory/goods/Edit.vue";
import Mask from "@/components/common/Mask.vue"; import Mask from "@/components/common/Mask.vue";
import {ElMessage} from "element-plus"; import {ElMessage} from "element-plus";
import GoodsSearch from "@/components/inventory/GoodsSearch.vue"; import GoodsSearch from "@/components/inventory/GoodsSearch.vue";
import CloseBtn from "@/components/CloseBtn.vue"; import {Search} from "@element-plus/icons-vue";
const orderForm = ref() const orderForm = ref()
const formRules = ref({ const formRules = ref({
@ -387,4 +403,24 @@ onMounted(() => {
.error { .error {
background-color: #F00; background-color: #F00;
} }
.edit-panel{
margin-top: 24px;
}
.table_content{
margin-top: 24px;
background: #F9FAFC;
.add_goods{
display: flex;
justify-content: space-between;
align-items: center;
font-weight: 800;
font-size: 18px;
color: #333333;
font-style: normal;
.search{
display: flex;
align-items: center;
}
}
}
</style> </style>

View File

@ -1,7 +1,6 @@
<template> <template>
<el-form :model="form" label-width="auto"> <el-form :model="form" label-width="auto">
<el-descriptions <el-descriptions
:title="props.id?'编辑' : '新增'"
:column="4" :column="4"
direction="vertical" direction="vertical"
border border

View File

@ -1,12 +1,10 @@
import { ref, computed } from 'vue' import { ref, computed } from 'vue'
import { defineStore } from 'pinia' import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', () => { export const singStatus = defineStore('counter', () => {
const count = ref(0) const singShow = ref<any>(null)
const doubleCount = computed(() => count.value * 2) function setSingShow(val:any){
function increment() { singShow.value = val
count.value++
} }
return { singShow,setSingShow}
return { count, doubleCount, increment }
}) })

View File

@ -31,8 +31,6 @@ const handleLogin = () => {
message: "获取本地IP地址失败将使用默认IP地址", message: "获取本地IP地址失败将使用默认IP地址",
type: 'warning', type: 'warning',
duration: 1000, duration: 1000,
onClose: () => {
}
}) })
} }
@ -40,7 +38,7 @@ const handleLogin = () => {
post(apiConfig.ManagerLogin, {username: username.value, password: password.value}).then((token: any) => { post(apiConfig.ManagerLogin, {username: username.value, password: password.value}).then((token: any) => {
localStorage.setItem('token', token) localStorage.setItem('token', token)
// success,error // success,error
post('signUp/signUp', {mac: netWork.value.mac, ip: netWork.value.ip}, {catch_error: true}).then((res: any) => { post(apiConfig.signIn, {mac: netWork.value.mac, ip: netWork.value.ip}, {catch_error: true}).then((res: any) => {
success() success()
}).catch(() => { }).catch(() => {
error() error()

View File

@ -62,7 +62,7 @@
</div> </div>
</div> </div>
</div> </div>
<Mask :is-show="isShow" @close="init()" :height="570"> <Mask :is-show="isShow" @close="init()" :height="570" :title="id?'编辑':'新增'">
<SectionEdit :id="id" ref="sectionRef" @onSubmit="init()"></SectionEdit> <SectionEdit :id="id" ref="sectionRef" @onSubmit="init()"></SectionEdit>
</Mask> </Mask>
</template> </template>