检验申请
This commit is contained in:
parent
bb14919cbc
commit
db210ef85c
@ -1,8 +1,8 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VITE_APP_TITLE = 若依管理系统
|
VITE_APP_TITLE = 检验平台流转系统
|
||||||
|
|
||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
VITE_APP_ENV = 'development'
|
VITE_APP_ENV = 'development'
|
||||||
|
|
||||||
# 若依管理系统/开发环境
|
# 检验平台流转系统/开发环境
|
||||||
VITE_APP_BASE_API = '/dev-api'
|
VITE_APP_BASE_API = '/dev-api'
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VITE_APP_TITLE = 若依管理系统
|
VITE_APP_TITLE = 检验平台流转系统
|
||||||
|
|
||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
VITE_APP_ENV = 'production'
|
VITE_APP_ENV = 'production'
|
||||||
|
|
||||||
# 若依管理系统/生产环境
|
# 检验平台流转系统/生产环境
|
||||||
VITE_APP_BASE_API = '/prod-api'
|
VITE_APP_BASE_API = '/prod-api'
|
||||||
|
|
||||||
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
# 页面标题
|
# 页面标题
|
||||||
VITE_APP_TITLE = 若依管理系统
|
VITE_APP_TITLE = 检验平台流转系统
|
||||||
|
|
||||||
# 生产环境配置
|
# 生产环境配置
|
||||||
VITE_APP_ENV = 'staging'
|
VITE_APP_ENV = 'staging'
|
||||||
|
|
||||||
# 若依管理系统/生产环境
|
# 检验平台流转系统/生产环境
|
||||||
VITE_APP_BASE_API = '/stage-api'
|
VITE_APP_BASE_API = '/stage-api'
|
||||||
|
|
||||||
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
# 是否在打包时开启压缩,支持 gzip 和 brotli
|
||||||
|
|||||||
@ -102,7 +102,7 @@ export function reportFsresult(query?: Object) {
|
|||||||
// 打印机插件检查
|
// 打印机插件检查
|
||||||
export function printcheck(query?: Object) {
|
export function printcheck(query?: Object) {
|
||||||
return request({
|
return request({
|
||||||
url: '/zyreq/printcheck',
|
url: '/regRequestInfo/printcheck',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query,
|
params: query,
|
||||||
});
|
});
|
||||||
@ -110,7 +110,7 @@ export function printcheck(query?: Object) {
|
|||||||
// 打印机插件设置
|
// 打印机插件设置
|
||||||
export function printsetup(query?: Object) {
|
export function printsetup(query?: Object) {
|
||||||
return request({
|
return request({
|
||||||
url: '/zyreq/printsetup',
|
url: '/regRequestInfo/printsetup',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params: query,
|
params: query,
|
||||||
});
|
});
|
||||||
|
|||||||
@ -12,7 +12,7 @@ export function queryRegRequestInfo(query: Object) {
|
|||||||
//保存病人信息
|
//保存病人信息
|
||||||
export function saveReqInfo(query: Object) {
|
export function saveReqInfo(query: Object) {
|
||||||
return request({
|
return request({
|
||||||
url: '/reqInput/saveReqInfo',
|
url: '/regRequestInfo/saveReqInfo',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: query
|
data: query
|
||||||
})
|
})
|
||||||
@ -35,4 +35,20 @@ export function queryReqDetail(query: Object) {
|
|||||||
method: 'get',
|
method: 'get',
|
||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
//打印条码
|
||||||
|
export function reqPrint(query: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/regRequestInfo/print',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//作废申请单
|
||||||
|
export function cancelReq(query: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/regRequestInfo/cancelReq',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
}
|
}
|
||||||
@ -14,7 +14,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="common-table-container">
|
<div class="common-table-container">
|
||||||
<vxe-table :data="tableData" :loading="loading" border :checkbox-config="config.checkboxConfig"
|
<vxe-table :data="tableData" :loading="loading" border :checkbox-config="config.checkboxConfig"
|
||||||
:height="scrollYConfig.height" @checkbox-change="handleCheckboxChange" :row-config="rowConfig"
|
:height="scrollYConfig.height" @checkbox-change="handleCheckboxChange"
|
||||||
|
:row-config="{ isHover: true, height: 30, isCurrent: true, keyField: keyField ? keyField : '_index' }"
|
||||||
:show-overflow="showOverflow" @current-change="handleRowClick" ref="tableRef" :size="size"
|
:show-overflow="showOverflow" @current-change="handleRowClick" ref="tableRef" :size="size"
|
||||||
:current-row="currentRow" :scroll-y="scrollYConfig" :tooltip-config="{ appendToBody: true, zIndex: 3000 }"
|
:current-row="currentRow" :scroll-y="scrollYConfig" :tooltip-config="{ appendToBody: true, zIndex: 3000 }"
|
||||||
:header-cell-class-name="enableColumnDrag ? 'el-table-header-cell' : ''" v-bind="$attrs">
|
:header-cell-class-name="enableColumnDrag ? 'el-table-header-cell' : ''" v-bind="$attrs">
|
||||||
@ -84,11 +85,9 @@ const props = defineProps({
|
|||||||
required: true
|
required: true
|
||||||
},
|
},
|
||||||
// 行配置
|
// 行配置
|
||||||
rowConfig: {
|
keyField: {
|
||||||
type: Object,
|
type: String,
|
||||||
default: () => ({
|
default: 'id'
|
||||||
isHover: true, height: 30, isCurrent: true, keyField: '_index'
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
// 表格配置
|
// 表格配置
|
||||||
config: {
|
config: {
|
||||||
|
|||||||
@ -10,7 +10,7 @@ export interface UserQueryParams extends PageDomain {
|
|||||||
/** 手机号码 */
|
/** 手机号码 */
|
||||||
phonenumber?: string;
|
phonenumber?: string;
|
||||||
/** 状态(0正常 1停用) */
|
/** 状态(0正常 1停用) */
|
||||||
status?: '0' | '1';
|
status?: string;
|
||||||
/** 部门编号 */
|
/** 部门编号 */
|
||||||
deptId?: number;
|
deptId?: number;
|
||||||
/** 创建时间 */
|
/** 创建时间 */
|
||||||
|
|||||||
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
import { ElMessageBox, ElMessage } from 'element-plus'
|
import { ElMessageBox, ElMessage } from 'element-plus'
|
||||||
import { printcheck } from '@/api/checkCode/index'
|
import { printcheck } from '@/api/checkCode/index'
|
||||||
// @ts-ignore
|
|
||||||
import Download from '@/plugins/download'
|
import Download from '@/plugins/download'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
|
|
||||||
import FingerprintJS from '@fingerprintjs/fingerprintjs';
|
import FingerprintJS from '@fingerprintjs/fingerprintjs';
|
||||||
|
import { useCommonStore } from '@/store/modules/commonStore'
|
||||||
|
const mbStore = useCommonStore();
|
||||||
export function useFingerprint() {
|
export function useFingerprint() {
|
||||||
const fingerprint = ref('');
|
const fingerprint = ref('');
|
||||||
const loading = ref(true);
|
const loading = ref(true);
|
||||||
@ -23,7 +24,9 @@ export function useFingerprint() {
|
|||||||
|
|
||||||
// 指纹标识符
|
// 指纹标识符
|
||||||
fingerprint.value = result.visitorId;
|
fingerprint.value = result.visitorId;
|
||||||
|
if (!mbStore.fingerprint) {
|
||||||
|
mbStore.setFingerprint(result.visitorId)
|
||||||
|
}
|
||||||
// 可以获取更多详细信息
|
// 可以获取更多详细信息
|
||||||
console.log('指纹详细信息:', result);
|
console.log('指纹详细信息:', result);
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -1,86 +1,76 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="labpat_box">
|
<div class="labpat_box">
|
||||||
<el-form :model="labPat" label-width="4.3rem" class="compact-form" label-position="right">
|
<el-form :model="labPat" label-width="5rem" label-position="right" class="left-form ">
|
||||||
<div :class="['sh_box', getColor(lastJgbz)]" v-if="lastJgbz != null && lastJgbz != 0 && lastJgbz != 'C'">
|
<!-- <div :class="['sh_box', getColor(lastJgbz)]" v-if="lastJgbz != null && lastJgbz != 0 && lastJgbz != 'C'">
|
||||||
<div class="text">{{ getLableType(lastJgbz) }}</div>
|
<div class="text">{{ getLableType(lastJgbz) }}</div>
|
||||||
</div>
|
</div> -->
|
||||||
<el-form-item label="病人来源">
|
<el-form-item label="病人来源">
|
||||||
<el-col :span="16">
|
<!-- <el-col :span="16"> -->
|
||||||
<SelectTable v-model:data="labPat.brly" :fields="brlyFields" :table-data="dictData.PT" size="small"
|
<SelectTable v-model:data="labPat.patType" :fields="brlyFields" :table-data="dictData.PT" placeholder=""
|
||||||
placeholder="" @getDataValue="handleFieldChange" />
|
@getDataValue="handleFieldChange" />
|
||||||
</el-col>
|
<!-- </el-col> -->
|
||||||
<el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-checkbox v-model="labPat.jzbz" true-value="1" class="check_box"> 急诊 </el-checkbox>
|
<el-checkbox v-model="labPat.jzbz" true-value="1" class="check_box"> 急诊 </el-checkbox>
|
||||||
</el-col>
|
</el-col> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="病人代号" required>
|
<el-form-item label="病人代号" required>
|
||||||
<el-input v-model="labPat.brdh" @keyup.enter="brdhHandle" size="small" />
|
<el-input v-model="labPat.patId" @keyup.enter="brdhHandle" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="姓 名">
|
<el-form-item label="姓 名" required>
|
||||||
<el-input v-model="labPat.brxm" @change="handleFieldChange" size="small" />
|
<el-input v-model="labPat.patName" @change="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="性 别">
|
<el-form-item label="性 别" required>
|
||||||
<SelectTable v-model:data="labPat.brxb" :table-data="dictData.SX" size="small" placeholder=""
|
<SelectTable v-model:data="labPat.patSex" :table-data="dictData.SX" placeholder=""
|
||||||
@getDataValue="handleFieldChange" />
|
@getDataValue="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="年龄">
|
<el-form-item label="年龄" required>
|
||||||
<el-col :span="14">
|
<el-col :span="14">
|
||||||
<el-input v-model="labPat.nl" @change="handleFieldChange" size="small" />
|
<el-input v-model="labPat.patAge" @change="handleFieldChange" />
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="10">
|
<el-col :span="10">
|
||||||
<SelectTable v-model:data="labPat.nldw" :table-data="dictData.AU" size="small" placeholder=""
|
<SelectTable v-model:data="labPat.ageUnit" :table-data="dictData.AU" placeholder=""
|
||||||
@getDataValue="handleFieldChange" />
|
@getDataValue="handleFieldChange" />
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="样本类型" required>
|
|
||||||
<SelectTable v-model:data="labPat.yblx" :table-data="dictData.BT" size="small" placeholder=""
|
|
||||||
@getDataValue="handleFieldChange" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="送检医生">
|
<el-form-item label="送检医生">
|
||||||
<SelectTable v-model:data="labPat.yhdh" :fields="ysFields" :tableData="userList || []" label="nickName"
|
<SelectTable v-model:data="labPat.yhdh" :fields="ysFields" :tableData="userList || []" label="nickName"
|
||||||
value="userName" objKey="userName" :border="true" size="small" placeholder=""
|
value="userName" objKey="userName" :border="true" placeholder="" @getDataValue="handleFieldChange" />
|
||||||
@getDataValue="handleFieldChange" />
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="送检科室">
|
<el-form-item label="送检科室">
|
||||||
<SelectTable v-model:data="labPat.ksdh" :table-data="dictData.DP" size="small" placeholder=""
|
<SelectTable v-model:data="labPat.execDeptCode" :table-data="dictData.DP" placeholder=""
|
||||||
@getDataValue="handleFieldChange" />
|
@getDataValue="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="床 号">
|
<el-form-item label="床 号">
|
||||||
<el-input v-model="labPat.ch" @change="handleFieldChange" size="small" />
|
<el-input v-model="labPat.patBed" @change="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="临床诊断">
|
<el-form-item label="临床诊断">
|
||||||
<el-input v-model="labPat.zd" @change="handleFieldChange" size="small" />
|
<el-input v-model="labPat.diagnosisName" @change="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备 注">
|
<el-form-item label="备 注">
|
||||||
<el-input v-model="labPat.bz" @change="handleFieldChange" size="small" />
|
<el-input v-model="labPat.bz" @change="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="登记人员">
|
<el-form-item label="登记人员">
|
||||||
<SelectTable v-model:data="labPat.sjys" :table-data="dictData.SRD" size="small" placeholder=""
|
<!-- <SelectTable v-model:data="labPat.userName" :table-data="dictData.SRD" placeholder="" :disabled="true" /> -->
|
||||||
:disabled="true" />
|
<el-input v-model="labPat.userName" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="登记时间">
|
<el-form-item label="登记时间">
|
||||||
<el-date-picker v-model="labPat.djry" type="datetime" format="YYYY-MM-DD HH:mm:ss" :disabled="true"
|
<el-date-picker v-model="labPat.orderTime" type="datetime" format="YYYY-MM-DD HH:mm:ss" :disabled="true"
|
||||||
value-format="YYYY-MM-DD HH:mm:ss" size="small" style="width: 100%;" />
|
value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%;" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="条 码 号">
|
<el-form-item label="医疗机构">
|
||||||
<el-input v-model="labPat.sqh" :disabled="true" size="small" />
|
<el-input v-model="labPat.srcHospName" disabled />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="申请状态">
|
|
||||||
<SelectTable v-model:data="labPat.zt" size="small" :table-data="lisReqs" placeholder="" :disabled="true" />
|
|
||||||
</el-form-item>
|
|
||||||
|
|
||||||
<el-form-item label="证件类型">
|
<el-form-item label="证件类型">
|
||||||
<SelectTable v-model:data="labPat.zjlx" size="small" :table-data="dictData.ZJLX" placeholder=""
|
<SelectTable v-model:data="labPat.zjlx" :table-data="dictData.ZJLX" placeholder=""
|
||||||
@getDataValue="handleFieldChange" />
|
@getDataValue="handleFieldChange" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="证件号码">
|
<el-form-item label="证件号码">
|
||||||
<el-input v-model="labPat.sfzh" size="small" />
|
<el-input v-model="labPat.patIdentity" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="联系电话">
|
<el-form-item label="联系电话">
|
||||||
<el-input v-model="labPat.phone" size="small" />
|
<el-input v-model="labPat.phone" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
@ -106,10 +96,9 @@ const props = defineProps({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
const lastJgbz = ref();
|
const lastJgbz = ref();
|
||||||
watch(() => props.labPat, (newVal) => {
|
// watch(() => props.labPat, (newVal) => {
|
||||||
lastValue.value = JSON.stringify(newVal);
|
// lastValue.value = JSON.stringify(newVal);
|
||||||
lastJgbz.value = newVal.zt;
|
// })
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
const emit = defineEmits(['update:labPat']);
|
const emit = defineEmits(['update:labPat']);
|
||||||
@ -276,7 +265,7 @@ onMounted(() => {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
.compact-form {
|
.left-form {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
position: relative;
|
position: relative;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
@ -285,16 +274,20 @@ onMounted(() => {
|
|||||||
|
|
||||||
|
|
||||||
.el-form-item {
|
.el-form-item {
|
||||||
margin-bottom: 0px;
|
margin-bottom: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-form-item__label {
|
:deep(.el-form-item__label) {
|
||||||
padding-bottom: 0px;
|
padding-bottom: 0px;
|
||||||
color: #08355E;
|
color: #08355E;
|
||||||
font-size: 12px;
|
font-size: .875rem !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.el-form-item__label:before) {
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
:deep(.el-form-item--default .el-form-item__label) {
|
:deep(.el-form-item--default .el-form-item__label) {
|
||||||
height: 27px !important;
|
height: 27px !important;
|
||||||
line-height: 27px !important;
|
line-height: 27px !important;
|
||||||
|
|||||||
@ -11,9 +11,8 @@
|
|||||||
<div class="box-shadow">
|
<div class="box-shadow">
|
||||||
<el-row class="top-box">
|
<el-row class="top-box">
|
||||||
<el-col :span="7">
|
<el-col :span="7">
|
||||||
<el-button type="primary" size="small" @click="saveHandle">保存</el-button>
|
<el-button type="primary" size="small" :loading="saveLoading" @click="saveHandle">保存</el-button>
|
||||||
<el-button type="primary" size="small" @click="addHandle">新增</el-button>
|
<el-button type="primary" size="small" @click="addHandle">新增</el-button>
|
||||||
<el-button type="danger" size="small" @click="deleteHandle">删除</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="17">
|
<el-col :span="17">
|
||||||
<div class="tips">
|
<div class="tips">
|
||||||
@ -33,21 +32,22 @@
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
<div style="height: calc(60% - 1.875rem)" class="mb5">
|
<div style="height: calc(60% - 1.875rem)" class="mb5">
|
||||||
<CustomVxeTable :table-data="filterData" :columns="xmColumns" @cell-dblclick="dbRowclick"
|
<CustomVxeTable :table-data="filterData" :columns="xmColumns" @cell-dblclick="dbRowclick"
|
||||||
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" class="mytable-style">
|
keyField='applyid' :scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }"
|
||||||
|
class="mytable-style">
|
||||||
|
|
||||||
</CustomVxeTable>
|
</CustomVxeTable>
|
||||||
</div>
|
</div>
|
||||||
<div style="height: calc(40% - 30px)">
|
<div style="height: calc(40% - 30px)">
|
||||||
<CustomVxeTable :table-data="sqXmList" :columns="sqXmColumns"
|
<CustomVxeTable :table-data="sqXmList" :columns="sqXmColumns" keyField='applyid'
|
||||||
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" class="mytable-style">
|
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" class="mytable-style">
|
||||||
<template #classid="{ row }">
|
<template #classid="{ row }">
|
||||||
{{xmdlList.find((item) => item.dictCode == row.classid)?.dictName}}
|
{{xmdlList.find((item) => item.dictCode == row.classid)?.dictName}}
|
||||||
</template>
|
</template>
|
||||||
<template #zt="{ row }">
|
<template #zt="{ row }">
|
||||||
申请
|
{{ formatDict(labpat.status, 'ZT') }}
|
||||||
</template>
|
</template>
|
||||||
<template #action="{ row }">
|
<template #action="{ row }">
|
||||||
<el-button type="danger" text='danger' size="small" @click="delItem(row)">删除</el-button>
|
<el-button type="danger" :text='true' size="small" @click="delItem(row)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</CustomVxeTable>
|
</CustomVxeTable>
|
||||||
</div>
|
</div>
|
||||||
@ -58,16 +58,19 @@
|
|||||||
<el-col :span="8" style="height: 100%;">
|
<el-col :span="8" style="height: 100%;">
|
||||||
<div class="box-shadow">
|
<div class="box-shadow">
|
||||||
<el-form :model="searchForm" inline size="small">
|
<el-form :model="searchForm" inline size="small">
|
||||||
<el-form-item label="姓名:" prop="brxm">
|
<el-form-item label="" prop="brxm">
|
||||||
<el-input v-model="searchForm.brxm" clearable style="width: 9rem;" @change="handleQuery" />
|
<el-input v-model="searchForm.brxm" clearable style="width: 9.5rem;" @change="handleQuery"
|
||||||
|
placeholder="请输入姓名" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态:" prop="zt">
|
<el-form-item label="" prop="status">
|
||||||
<SelectTable v-model:data="searchForm.zt" :tableData="lis_req_type" clearable style="width: 9rem;"
|
<SelectTable v-model:data="searchForm.status" :tableData="dictData.ZT" clearable style="width: 9.5rem;"
|
||||||
size="small" @getDataValue="handleQuery" />
|
placeholder="请选择状态" size="small" @getDataValue="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-button type="primary" size="small" @click="printHandle">打印</el-button>
|
||||||
|
<el-button type="danger" size="small" @click="deleteHandle">作废</el-button>
|
||||||
<el-form-item label="" prop="begdate">
|
<el-form-item label="" prop="begdate">
|
||||||
<div class="radio_box">
|
<div class="radio_box">
|
||||||
<el-radio-group v-model="searchForm.days" @change="handleQuery">
|
<el-radio-group v-model="searchForm.days" @change="changeDays">
|
||||||
<el-radio :value="3">近3天</el-radio>
|
<el-radio :value="3">近3天</el-radio>
|
||||||
<el-radio :value="7">近7天</el-radio>
|
<el-radio :value="7">近7天</el-radio>
|
||||||
<el-radio :value="0">此日
|
<el-radio :value="0">此日
|
||||||
@ -76,21 +79,24 @@
|
|||||||
</el-icon>
|
</el-icon>
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<el-date-picker v-model="searchForm.begdate" type="date" value-format="YYYY-MM-DD" style="width: 9rem;"
|
<el-date-picker v-model="today" type="date" value-format="YYYY-MM-DD" style="width: 9rem;"
|
||||||
@change="handleQuery" />
|
@change="dateHandle" />
|
||||||
|
<!-- <el-tooltip class="box-item" effect="dark" content="打印" placement="top">
|
||||||
|
<el-button type="primary" circle size="small" icon="Memo" @click="printHandle"></el-button>
|
||||||
|
</el-tooltip>
|
||||||
|
<el-tooltip class="box-item" effect="dark" content="作废" placement="top">
|
||||||
|
<el-button type="danger" circle size="small" icon="Delete" @click="deleteHandle"></el-button>
|
||||||
|
</el-tooltip> -->
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div class="table-box">
|
<div class="table-box">
|
||||||
<CustomVxeTable :table-data="labPatList" :loading="loading" :columns="tableColumns"
|
<CustomVxeTable :table-data="labPatList" :loading="loading" :columns="tableColumns"
|
||||||
@current-change="handleRowClick" size="small"
|
@current-change="handleRowClick" size="small" keyField='applyid'
|
||||||
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" :row-style="rowStyle"
|
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" :row-style="rowStyle"
|
||||||
:cell-style="cellStyle" class="mytable-style" ref="tableRef">
|
:cell-style="cellStyle" class="mytable-style" ref="tableRef">
|
||||||
<template #sqys="{ row }">
|
<template #status="{ row }">
|
||||||
{{ row.sqys }}
|
{{ formatDict(row.status, 'ZT') }}
|
||||||
</template>
|
|
||||||
<template #zt="{ row }">
|
|
||||||
{{ formatDictzt(row.zt) }}
|
|
||||||
</template>
|
</template>
|
||||||
</CustomVxeTable>
|
</CustomVxeTable>
|
||||||
</div>
|
</div>
|
||||||
@ -104,18 +110,17 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import Info from './components/info.vue'
|
import Info from './components/info.vue'
|
||||||
import { getDictData, formatDict, dictData } from '@/hooks'
|
import { getDictData, formatDict, dictData } from '@/hooks'
|
||||||
import { getXmItemInfo, saveReqInfo, queryRegRequestInfo, queryReqDetail } from '@/api/liswork/order'
|
import { getXmItemInfo, saveReqInfo, queryRegRequestInfo, queryReqDetail, reqPrint, cancelReq } from '@/api/liswork/order'
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
import { ElMessage } from 'element-plus'
|
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||||
import { getFirstLetter } from '@/utils/pinyin';
|
import { getFirstLetter } from '@/utils/pinyin';
|
||||||
import { listregdict } from "@/api/regional/dict/regdict.ts";
|
import { listregdict } from "@/api/regional/dict/regdict.ts";
|
||||||
const { proxy } = getCurrentInstance();
|
import { checkPrintService } from '@/utils/printHelper.ts';
|
||||||
const { lis_req_type } = proxy.useDict("lis_req_type");
|
|
||||||
const labpat = ref({
|
|
||||||
zt: '1'
|
|
||||||
})
|
|
||||||
|
|
||||||
const checkboxs = ref([])
|
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const labpat = ref({})
|
||||||
|
const saveLoading = ref(false)
|
||||||
const searchKey = ref('')
|
const searchKey = ref('')
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const tableRef = useTemplateRef('tableRef')
|
const tableRef = useTemplateRef('tableRef')
|
||||||
@ -123,19 +128,22 @@ const labPatList = ref([])
|
|||||||
const xmdlList = ref([])
|
const xmdlList = ref([])
|
||||||
const activeName = ref('')
|
const activeName = ref('')
|
||||||
|
|
||||||
|
const today = ref(dayjs().format('YYYY-MM-DD'))
|
||||||
|
|
||||||
const searchForm = ref({
|
const searchForm = ref({
|
||||||
brxm: '',
|
brxm: '',
|
||||||
zt: '',
|
status: '',
|
||||||
days: 0,
|
days: 0,
|
||||||
begdate: dayjs().format('YYYY-MM-DD'),
|
begdate: '',
|
||||||
|
enddate: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
const tableColumns = ref([
|
const tableColumns = ref([
|
||||||
{ field: 'brxm', title: '姓名', width: 40, align: 'center', resizable: true, },
|
{ field: 'patName', title: '姓名', width: 80, align: 'center', resizable: true, },
|
||||||
{ field: 'zt', title: '状态', width: 40, align: 'center', slotName: 'zt', resizable: true, },
|
{ field: 'status', title: '状态', width: 80, align: 'center', slotName: 'status', resizable: true, },
|
||||||
{ field: 'sqsj', title: '登记时间', width: 80, align: 'center', resizable: true },
|
{ field: 'orderTime', title: '登记时间', width: 80, align: 'center', resizable: true },
|
||||||
{ field: 'sqys', title: '登记人', width: 80, align: 'center', slotName: 'sqys', resizable: true },
|
{ field: 'userName', title: '登记人', width: 80, align: 'center', resizable: true },
|
||||||
{ field: 'jymd', title: '项目', align: 'center', resizable: true },
|
{ field: 'reqDetailName', title: '项目', align: 'center', resizable: true },
|
||||||
])
|
])
|
||||||
|
|
||||||
const rowStyle = ({ row }) => {
|
const rowStyle = ({ row }) => {
|
||||||
@ -144,51 +152,117 @@ const rowStyle = ({ row }) => {
|
|||||||
const cellStyle = ({ row, column }) => {
|
const cellStyle = ({ row, column }) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const rowInfo = ref({})
|
||||||
|
|
||||||
const handleRowClick = (row) => {
|
const handleRowClick = (row) => {
|
||||||
queryReqDetail({ applyId: row.applyId }).then(res => {
|
rowInfo.value = row
|
||||||
labpat.value = res.data.labReqmain
|
queryReqDetail({ applyId: row.applyid }).then(res => {
|
||||||
labpat.value.zt = labpat.value.zt?.trim()
|
labpat.value = res.data.regApply
|
||||||
sqXmList.value = res.data.reqInputLisWorkVOList
|
sqXmList.value = res.data.regApplyDetailList.map(item => ({
|
||||||
checkboxs.value = res.data.reqInputLisWorkVOList.map(item => item.sfxmdh)
|
itemcode: item.orderItemCode,
|
||||||
|
itemname: item.orderItemName,
|
||||||
|
itemclass_yblx: item.sampleTypeName,
|
||||||
|
dj: item.amount,
|
||||||
|
applyid: item.applyid,
|
||||||
|
uid: item.uid,
|
||||||
|
classid: item.classid,
|
||||||
|
barcode: item.barcode,
|
||||||
|
}))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const changeDays = (val) => {
|
||||||
|
if (val == 3) {
|
||||||
|
searchForm.value.begdate = dayjs().subtract(3, 'day').format('YYYY-MM-DD') + ' 00:00:00'
|
||||||
|
searchForm.value.enddate = dayjs().format('YYYY-MM-DD') + ' 23:59:59'
|
||||||
|
} else if (val == 7) {
|
||||||
|
searchForm.value.begdate = dayjs().subtract(7, 'day').format('YYYY-MM-DD') + ' 00:00:00'
|
||||||
|
searchForm.value.enddate = dayjs().format('YYYY-MM-DD') + ' 23:59:59'
|
||||||
|
} else {
|
||||||
|
searchForm.value.begdate = dayjs(today.value).format('YYYY-MM-DD') + ' 00:00:00'
|
||||||
|
searchForm.value.enddate = dayjs(searchForm.value.begdate).format('YYYY-MM-DD') + ' 23:59:59'
|
||||||
|
}
|
||||||
|
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
|
||||||
|
const dateHandle = (val) => {
|
||||||
|
searchForm.value.begdate = dayjs(val).format('YYYY-MM-DD') + ' 00:00:00'
|
||||||
|
searchForm.value.enddate = dayjs(searchForm.value.begdate).format('YYYY-MM-DD') + ' 23:59:59'
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
searchForm.value.begdate = dayjs(searchForm.value.begdate).format('YYYY-MM-DD') + ' 00:00:00'
|
rowInfo.value = {}
|
||||||
searchForm.value.enddate = dayjs(searchForm.value.begdate).format('YYYY-MM-DD') + ' 23:59:59'
|
|
||||||
queryRegRequestInfo(searchForm.value).then(res => {
|
queryRegRequestInfo(searchForm.value).then(res => {
|
||||||
labPatList.value = res.data
|
labPatList.value = res.data
|
||||||
if (!res.data.length) {
|
|
||||||
labpat.value = {
|
|
||||||
zt: '1'
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
handleRowClick(res.data[0])
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const saveHandle = () => {
|
const saveHandle = () => {
|
||||||
if (!labpat.value.brdh) return ElMessage.warning('病人代号不能为空!')
|
if (!labpat.value.patId) return ElMessage.warning('病人代号不能为空!')
|
||||||
if (!labpat.value.yblx) return ElMessage.warning('样本类型不能为空!')
|
if (!labpat.value.patName) return ElMessage.warning('病人姓名不能为空!')
|
||||||
|
if (!labpat.value.patSex) return ElMessage.warning('病人性别不能为空!')
|
||||||
|
if (!labpat.value.patAge && !labpat.value.ageUnit) return ElMessage.warning('病人年龄不能为空!')
|
||||||
if (!sqXmList.value.length) return ElMessage.warning('请选择项目!')
|
if (!sqXmList.value.length) return ElMessage.warning('请选择项目!')
|
||||||
|
labpat.value.status = labpat.value.status ? labpat.value.status : ''
|
||||||
const data = {
|
const data = {
|
||||||
labReqmain: labpat.value,
|
regApply: labpat.value,
|
||||||
reqInputLisWorkVOList: sqXmList.value
|
regApplyDetailList: sqXmList.value.map(item => ({
|
||||||
|
orderItemCode: item.itemcode,
|
||||||
|
orderItemName: item.itemname,
|
||||||
|
sampleTypeCode: item.itemclass_yblx,
|
||||||
|
sampleTypeName: item.itemclass_yblx,
|
||||||
|
amount: item.dj,
|
||||||
|
applyid: labpat.value.applyid,
|
||||||
|
uid: item.uid
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
|
saveLoading.value = true
|
||||||
saveReqInfo(data).then(res => {
|
saveReqInfo(data).then(res => {
|
||||||
handleQuery()
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('保存成功!')
|
||||||
|
labpat.value = {}
|
||||||
|
sqXmList.value = []
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
saveLoading.value = false
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const addHandle = () => {
|
const addHandle = () => {
|
||||||
labpat.value = {
|
labpat.value = {}
|
||||||
zt: '1'
|
sqXmList.value = []
|
||||||
}
|
|
||||||
}
|
}
|
||||||
const deleteHandle = () => {
|
const deleteHandle = () => {
|
||||||
|
if (!rowInfo.value.applyid) return ElMessage.warning('请选择要作废的申请单!')
|
||||||
|
ElMessageBox.confirm('确定要作废此申请单吗?', '提示', {
|
||||||
|
confirmButtonText: '确定',
|
||||||
|
cancelButtonText: '取消',
|
||||||
|
type: 'warning',
|
||||||
|
}).then(() => {
|
||||||
|
cancelReq({ applyId: rowInfo.value.applyid }).then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success(res.msg)
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => { })
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const printHandle = () => {
|
||||||
|
if (!labpat.value.applyid) return ElMessage.warning('请选择要打印的申请单!')
|
||||||
|
checkPrintService().then((isConnected) => {
|
||||||
|
if (!isConnected) return
|
||||||
|
reqPrint({ applyId: labpat.value.applyid }).then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
ElMessage.success('正在打印中...')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -198,7 +272,7 @@ const xmColumns = ref([
|
|||||||
{ field: 'itemname', title: '简称', align: 'center', width: 250, resizable: true },
|
{ field: 'itemname', title: '简称', align: 'center', width: 250, resizable: true },
|
||||||
{ field: 'dj', title: '单价', align: 'center', resizable: true },
|
{ field: 'dj', title: '单价', align: 'center', resizable: true },
|
||||||
{ field: 'spec', title: '规格', align: 'center', resizable: true },
|
{ field: 'spec', title: '规格', align: 'center', resizable: true },
|
||||||
{ field: 'yblx', title: '样本', align: 'center', resizable: true },
|
{ field: 'itemclass_yblx', title: '样本', align: 'center', resizable: true },
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
@ -241,13 +315,13 @@ const processTableData = (data) => {
|
|||||||
const sqXmList = ref([])
|
const sqXmList = ref([])
|
||||||
|
|
||||||
const sqXmColumns = ref([
|
const sqXmColumns = ref([
|
||||||
{ field: 'classid', title: '类别', align: 'center', slotName: 'classid', resizable: true },
|
{ field: 'classid', title: '类别', align: 'center', width: 100, slotName: 'classid', resizable: true },
|
||||||
{ field: 'itemcode', title: '代号', align: 'center', resizable: true },
|
{ field: 'itemcode', title: '代号', align: 'center', resizable: true },
|
||||||
{ field: 'itemname', title: '简称', align: 'center', width: 150, resizable: true },
|
{ field: 'itemname', title: '简称', align: 'center', width: 150, resizable: true },
|
||||||
{ field: 'sqh', title: '申请号', align: 'center', width: 150, resizable: true },
|
{ field: 'barcode', title: '条码号', align: 'center', width: 150, resizable: true },
|
||||||
{ field: 'dj', title: '单价', align: 'center', resizable: true },
|
{ field: 'dj', title: '单价', align: 'center', resizable: true },
|
||||||
{ field: 'spec', title: '规格', align: 'center', resizable: true },
|
{ field: 'spec', title: '规格', align: 'center', resizable: true },
|
||||||
{ field: 'yblx', title: '样本', align: 'center', resizable: true },
|
{ field: 'itemclass_yblx', title: '样本', align: 'center', resizable: true },
|
||||||
{ field: 'zt', title: '状态', align: 'center', resizable: true, slotName: 'zt' },
|
{ field: 'zt', title: '状态', align: 'center', resizable: true, slotName: 'zt' },
|
||||||
])
|
])
|
||||||
|
|
||||||
@ -258,17 +332,12 @@ const delItem = (row) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleChecksChange = (val) => {
|
|
||||||
console.log('val==>', val);
|
|
||||||
sqXmList.value = []
|
|
||||||
val.forEach(item => {
|
|
||||||
const existingItem = processedTableData.value.find((row) => row.sfxmdh == item)
|
|
||||||
if (existingItem) {
|
|
||||||
sqXmList.value.push(existingItem)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
const dbRowclick = ({ row }) => {
|
const dbRowclick = ({ row }) => {
|
||||||
|
const index = sqXmList.value.findIndex(item => item.itemcode == row.itemcode)
|
||||||
|
if (index > -1) {
|
||||||
|
ElMessage.warning('已存在该项目')
|
||||||
|
return
|
||||||
|
}
|
||||||
sqXmList.value.push(row)
|
sqXmList.value.push(row)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -280,15 +349,10 @@ const getXmList = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const formatDictzt = (value) => {
|
|
||||||
const item = lis_req_type.value.find(i => i.value === value.trim());
|
|
||||||
return item ? item.label : value;
|
|
||||||
}
|
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
changeDays(0)
|
||||||
getXmList()
|
getXmList()
|
||||||
getDictData('PT', 'SX', 'AU', 'BT', 'DP', 'SRD', 'ZJLX')
|
getDictData('PT', 'SX', 'AU', 'BT', 'DP', 'ZT', 'ZJLX')
|
||||||
listregdict({ dictType: 'CLASS' }).then(response => {
|
listregdict({ dictType: 'CLASS' }).then(response => {
|
||||||
xmdlList.value = response.rows;
|
xmdlList.value = response.rows;
|
||||||
activeName.value = xmdlList.value.length > 0 ? xmdlList.value[0].dictCode : '';
|
activeName.value = xmdlList.value.length > 0 ? xmdlList.value[0].dictCode : '';
|
||||||
|
|||||||
@ -1,16 +1,17 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { computed, reactive, ref, onMounted, nextTick } from "vue";
|
import { computed, reactive, ref, onMounted, nextTick } from "vue";
|
||||||
import { getToken } from "@/utils/auth";
|
import { getToken } from "@/utils/auth";
|
||||||
import { queryComDictListService, addComDictService, updateComDictService, delComDictService } from "@/api/liswork/dict/ComDict";
|
import { listregdict, addregdict, delregdict, getregdict, updateregdict } from "@/api/regional/dict/regdict.ts";
|
||||||
import { getComDicts } from "@/api/liswork/dict/ComDict";
|
import { getComDicts } from "@/api/liswork/dict/ComDict";
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
||||||
|
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 10,
|
pageSize: 9999,
|
||||||
dictName: undefined,
|
dictName: undefined,
|
||||||
dictType: '00',
|
dictType: '00',
|
||||||
dictCode: undefined,
|
dictCode: undefined,
|
||||||
@ -22,7 +23,6 @@ const data = reactive({
|
|||||||
dictType: [{ required: true, message: "字典类型不能为空", trigger: "blur" }]
|
dictType: [{ required: true, message: "字典类型不能为空", trigger: "blur" }]
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const dictCode = ref('')
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
const single = ref(true);
|
const single = ref(true);
|
||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
@ -73,13 +73,13 @@ const filterNode = (value, data) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const nodeHandle = (data) => {
|
const nodeHandle = (data) => {
|
||||||
dictCode.value = data.dictCode
|
queryParams.value.dictType = data.dictCode
|
||||||
getList()
|
getList()
|
||||||
}
|
}
|
||||||
function resetData(dictType) {
|
function resetData(dictType) {
|
||||||
queryParams.value = {
|
queryParams.value = {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
pageSize: 15,
|
pageSize: 9999,
|
||||||
dictName: undefined,
|
dictName: undefined,
|
||||||
dictType: dictType,
|
dictType: dictType,
|
||||||
dictCode: undefined,
|
dictCode: undefined,
|
||||||
@ -89,8 +89,8 @@ function resetData(dictType) {
|
|||||||
function getTypeList() {
|
function getTypeList() {
|
||||||
getComDicts({ dict_type: 'DTYPE' }).then(response => {
|
getComDicts({ dict_type: 'DTYPE' }).then(response => {
|
||||||
typeList.value = response.data;
|
typeList.value = response.data;
|
||||||
dictCode.value = response.data[0].dictCode
|
queryParams.value.dictType = response.data[0].dictCode
|
||||||
resetData()
|
treeRef.value.setCurrentKey(response.data[0].dictCode)
|
||||||
getList()
|
getList()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -100,11 +100,10 @@ function getTypeList() {
|
|||||||
/** 查询字典明细列表 */
|
/** 查询字典明细列表 */
|
||||||
function getList() {
|
function getList() {
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
getComDicts({ dict_type: dictCode.value }).then(response => {
|
listregdict(queryParams.value).then(response => {
|
||||||
typeDetail.value = response.data;
|
typeDetail.value = response.rows;
|
||||||
loading.value = false;
|
loading.value = false;
|
||||||
});
|
});
|
||||||
//resetData()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询
|
//查询
|
||||||
@ -119,7 +118,9 @@ function reset() {
|
|||||||
dictType: '',
|
dictType: '',
|
||||||
dictName: '',
|
dictName: '',
|
||||||
dictCode: '',
|
dictCode: '',
|
||||||
bz: ''
|
dictSort: 1,
|
||||||
|
status: "0",
|
||||||
|
remark: undefined
|
||||||
};
|
};
|
||||||
proxy.resetForm("dictRef");
|
proxy.resetForm("dictRef");
|
||||||
}
|
}
|
||||||
@ -133,12 +134,12 @@ function resetQuery() {
|
|||||||
|
|
||||||
//新增
|
//新增
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
if (!dictCode.value) {
|
if (!queryParams.value.dictType) {
|
||||||
proxy.$modal.msgWarning("请先选择字典大类");
|
proxy.$modal.msgWarning("请先选择字典大类");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
reset();
|
reset();
|
||||||
form.value.dictType = dictCode.value;
|
form.value.dictType = queryParams.value.dictType;
|
||||||
open.value = true;
|
open.value = true;
|
||||||
title.value = '新增字典';
|
title.value = '新增字典';
|
||||||
}
|
}
|
||||||
@ -153,7 +154,7 @@ function handleUpdate(row) {
|
|||||||
//删除
|
//删除
|
||||||
function handleDelete(row) {
|
function handleDelete(row) {
|
||||||
proxy.$modal.confirm('是否确认删除字典名称为"' + row.dictName + '"的数据项?').then(function () {
|
proxy.$modal.confirm('是否确认删除字典名称为"' + row.dictName + '"的数据项?').then(function () {
|
||||||
return delComDictService(row);
|
return delregdict(row.dictId);
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
getList();
|
getList();
|
||||||
proxy.$modal.msgSuccess("删除成功");
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
@ -199,37 +200,27 @@ function handleSelectionChange(selection) {
|
|||||||
single.value = selection.length != 1;
|
single.value = selection.length != 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询字典大类
|
|
||||||
function handleQueryDetail() {
|
|
||||||
queryParams.value.dictName = dictTypemc.value
|
|
||||||
getTypeList()
|
|
||||||
resetData()
|
|
||||||
}
|
|
||||||
|
|
||||||
function submitForm() {
|
function submitForm() {
|
||||||
proxy.$refs["dictRef"].validate(valid => {
|
proxy.$refs["dictRef"].validate(valid => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
if (form.value.dictType != undefined && form.value.dictType != '') {
|
|
||||||
updateComDictService(form.value).then(response => {
|
if (form.value.dictId != undefined) {
|
||||||
if (response.code == 0) {
|
updateregdict(form.value).then(response => {
|
||||||
proxy.$modal.msgSuccess("修改成功");
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
open.value = false;
|
open.value = false;
|
||||||
getList();
|
getList();
|
||||||
}
|
});
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
form.value.dictType = queryParams.value.dictType;
|
addregdict(form.value).then(response => {
|
||||||
form.value.yljg = 1;
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
addComDictService(form.value).then(response => {
|
open.value = false;
|
||||||
if (response.code == 0) {
|
getList();
|
||||||
proxy.$modal.msgSuccess("新增成功");
|
});
|
||||||
open.value = false;
|
|
||||||
getList();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function cancel() {
|
function cancel() {
|
||||||
@ -257,7 +248,7 @@ onMounted(() => {
|
|||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<el-tree ref="treeRef" class="filter-tree" :data="typeList" :props="defaultProps" default-expand-all
|
<el-tree ref="treeRef" class="filter-tree" :data="typeList" :props="defaultProps" default-expand-all
|
||||||
:filter-node-method="filterNode" @node-click="nodeHandle" highlight-current />
|
node-key="dictCode" :filter-node-method="filterNode" @node-click="nodeHandle" highlight-current />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -302,7 +293,8 @@ onMounted(() => {
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<!-- 表格区域-->
|
<!-- 表格区域-->
|
||||||
<el-table v-loading="loading" :data="typeDetail" @selection-change="handleSelectionChange" height="65vh">
|
<el-table v-loading="loading" :data="typeDetail" @selection-change="handleSelectionChange"
|
||||||
|
height="calc(100vh - 250px)">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column label='字典类型' align="center" prop="dictType" :show-overflow-tooltip="true" />
|
<el-table-column label='字典类型' align="center" prop="dictType" :show-overflow-tooltip="true" />
|
||||||
<el-table-column label="明细代号" align="center" prop="dictCode" />
|
<el-table-column label="明细代号" align="center" prop="dictCode" />
|
||||||
@ -336,8 +328,17 @@ onMounted(() => {
|
|||||||
<el-form-item label="字典名称" prop="dictName">
|
<el-form-item label="字典名称" prop="dictName">
|
||||||
<el-input v-model="form.dictName" placeholder="请输入字典名称" />
|
<el-input v-model="form.dictName" placeholder="请输入字典名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="备注" prop="bz">
|
<el-form-item label="顺序" prop="dictSort">
|
||||||
<el-input v-model="form.bz" placeholder="请输入内容"></el-input>
|
<el-input-number v-model="form.dictSort" controls-position="right" :min="0" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
|
||||||
|
}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
|||||||
@ -18,11 +18,13 @@
|
|||||||
<!-- 工号登录 Tab -->
|
<!-- 工号登录 Tab -->
|
||||||
<el-tab-pane label="账号密码登录" name="first">
|
<el-tab-pane label="账号密码登录" name="first">
|
||||||
<el-form-item label="医疗机构:" prop="loginYLJG" class="custom-select">
|
<el-form-item label="医疗机构:" prop="loginYLJG" class="custom-select">
|
||||||
<el-select v-model="loginForm.loginParam.loginYLJG" placeholder="请选择医疗机构" style="width: 100%">
|
<el-select v-model="loginForm.loginParam.loginYLJG" placeholder="请选择医疗机构" style="width: 100%"
|
||||||
|
@change="handleChange">
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
<svg-icon icon-class="international" class="el-input__icon input-icon" />
|
<svg-icon icon-class="international" class="el-input__icon input-icon" />
|
||||||
</template>
|
</template>
|
||||||
<el-option v-for="item in selectOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
<el-option v-for="item in selectOptions" :key="item.id" :label="item.name"
|
||||||
|
:value="item.id.toString()"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
@ -75,7 +77,7 @@
|
|||||||
<el-tab-pane label="扫码登录" name="second">
|
<el-tab-pane label="扫码登录" name="second">
|
||||||
<div class="tab-placeholder">
|
<div class="tab-placeholder">
|
||||||
<el-icon class="placeholder-icon">
|
<el-icon class="placeholder-icon">
|
||||||
<Sms />
|
<!-- <Sms /> -->
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<p>正在加载二维码...</p>
|
<p>正在加载二维码...</p>
|
||||||
<el-button type="success" icon="wechat" class="wechat-login-btn">刷新二维码</el-button>
|
<el-button type="success" icon="wechat" class="wechat-login-btn">刷新二维码</el-button>
|
||||||
@ -85,7 +87,7 @@
|
|||||||
<el-tab-pane label="UKEY登录" name="third">
|
<el-tab-pane label="UKEY登录" name="third">
|
||||||
<div class="tab-placeholder">
|
<div class="tab-placeholder">
|
||||||
<el-icon class="placeholder-icon">
|
<el-icon class="placeholder-icon">
|
||||||
<Wechat />
|
<!-- <Wechat /> -->
|
||||||
</el-icon>
|
</el-icon>
|
||||||
<p>UKEY登录功能开发中...</p>
|
<p>UKEY登录功能开发中...</p>
|
||||||
</div>
|
</div>
|
||||||
@ -129,9 +131,9 @@ const loginForm = ref({
|
|||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: "",
|
code: "",
|
||||||
uuid: "",
|
uuid: "",
|
||||||
loginParam: { loginYLJG: "", localid: "" }
|
loginParam: { loginYLJG: undefined, localid: undefined, loginYLJGName: undefined }
|
||||||
});
|
});
|
||||||
const selectOptions = ref([{ id: '1', name: '总院' }]);
|
const selectOptions = ref([]);
|
||||||
const loginRules = ref({ // 修复:改为ref响应式,方便动态修改
|
const loginRules = ref({ // 修复:改为ref响应式,方便动态修改
|
||||||
username: [{ required: true, trigger: "blur", message: "请输入您的账号" }],
|
username: [{ required: true, trigger: "blur", message: "请输入您的账号" }],
|
||||||
// password: [{ required: true, trigger: "blur", message: "请输入您的密码" }],
|
// password: [{ required: true, trigger: "blur", message: "请输入您的密码" }],
|
||||||
@ -155,12 +157,19 @@ watch(
|
|||||||
{ immediate: true, deep: false }
|
{ immediate: true, deep: false }
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleChange = (value) => {
|
||||||
|
const item = selectOptions.value.find(item => item.id === value);
|
||||||
|
loginForm.value.loginParam.loginYLJG = value;
|
||||||
|
loginForm.value.loginParam.loginYLJGName = item?.name || '';
|
||||||
|
}
|
||||||
|
|
||||||
// 登录方法(修复proxy.$refs问题)
|
// 登录方法(修复proxy.$refs问题)
|
||||||
const handleLogin = async () => {
|
const handleLogin = async () => {
|
||||||
loginForm.value.loginParam.loginYLJG
|
loginForm.value.loginParam.loginYLJG
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
Cookies.set("czlis_username", loginForm.value.username, { expires: 30 });
|
Cookies.set("czlis_username", loginForm.value.username, { expires: 30 });
|
||||||
Cookies.set("czlis_loginYLJG", loginForm.value.loginParam.loginYLJG, { expires: 30 });
|
Cookies.set("czlis_loginYLJG", loginForm.value.loginParam.loginYLJG, { expires: 30 });
|
||||||
|
Cookies.set("czlis_loginYLJGName", loginForm.value.loginParam.loginYLJGName, { expires: 30 });
|
||||||
// 调用action的登录方法
|
// 调用action的登录方法
|
||||||
userStore.login(loginForm.value).then(() => {
|
userStore.login(loginForm.value).then(() => {
|
||||||
const query = route.query;
|
const query = route.query;
|
||||||
@ -204,14 +213,16 @@ const getCode = () => {
|
|||||||
const getCookie = () => {
|
const getCookie = () => {
|
||||||
const cookieUsername = Cookies.get("czlis_username");
|
const cookieUsername = Cookies.get("czlis_username");
|
||||||
const cookieloginYLJG = Cookies.get("czlis_loginYLJG");
|
const cookieloginYLJG = Cookies.get("czlis_loginYLJG");
|
||||||
//console.log('cookieloginYLJG', cookieloginYLJG);
|
|
||||||
if (cookieUsername !== undefined && cookieUsername !== null && cookieUsername !== "") {
|
if (cookieUsername !== undefined && cookieUsername !== null && cookieUsername !== "") {
|
||||||
loginForm.value.username = cookieUsername;
|
loginForm.value.username = cookieUsername;
|
||||||
}
|
}
|
||||||
if (cookieloginYLJG !== undefined && cookieloginYLJG !== null && cookieloginYLJG !== "") {
|
if (cookieloginYLJG !== undefined && cookieloginYLJG !== null && cookieloginYLJG !== "") {
|
||||||
loginForm.value.loginParam.loginYLJG = cookieloginYLJG;
|
loginForm.value.loginParam.loginYLJG = cookieloginYLJG;
|
||||||
}
|
}
|
||||||
//console.log('loginForm', loginForm);
|
const cookieloginYLJGName = Cookies.get("czlis_loginYLJGName");
|
||||||
|
if (cookieloginYLJGName !== undefined && cookieloginYLJGName !== null && cookieloginYLJGName !== "") {
|
||||||
|
loginForm.value.loginParam.loginYLJGName = cookieloginYLJGName;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 获取本地配置
|
// 获取本地配置
|
||||||
@ -220,21 +231,17 @@ const Localconfig = (localid) => {
|
|||||||
if (res) {
|
if (res) {
|
||||||
const { localconfig, hosplist, oem: oemData } = res;
|
const { localconfig, hosplist, oem: oemData } = res;
|
||||||
mbStore.setDefaultConfig(localconfig)
|
mbStore.setDefaultConfig(localconfig)
|
||||||
// 修复:赋值oem数据,显示动态标题
|
|
||||||
if (oemData) oem.value = oemData;
|
if (oemData) oem.value = oemData;
|
||||||
// console.log('oemData', oemData);
|
|
||||||
// console.log('oem', oem.value);
|
|
||||||
// 修复:判重后更新下拉选项,避免递归
|
|
||||||
if (JSON.stringify(selectOptions.value) !== JSON.stringify(hosplist)) {
|
if (JSON.stringify(selectOptions.value) !== JSON.stringify(hosplist)) {
|
||||||
selectOptions.value = hosplist || [{ id: '1', name: '总院' }];
|
selectOptions.value = hosplist || [];
|
||||||
// 判重后赋值,避免重复修改触发更新
|
// 判重后赋值,避免重复修改触发更新
|
||||||
if (!selectOptions.value.some(item => item.id === loginForm.value.hospid)) {
|
if (!selectOptions.value.some(item => item.id === loginForm.value.hospid)) {
|
||||||
loginForm.value.loginParam.loginYLJG = selectOptions.value[0]?.id || '1';
|
loginForm.value.loginParam.loginYLJG = selectOptions.value[0]?.id || 1;
|
||||||
|
loginForm.value.loginParam.loginYLJGName = selectOptions.value[0]?.name || '';
|
||||||
}
|
}
|
||||||
getCookie();
|
getCookie();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
console.error("获取本地配置失败:", err);
|
console.error("获取本地配置失败:", err);
|
||||||
@ -256,7 +263,7 @@ const refreshFingerprint = async () => {
|
|||||||
|
|
||||||
// Tab切换事件(移除activeName手动赋值,避免递归)
|
// Tab切换事件(移除activeName手动赋值,避免递归)
|
||||||
const handleClick = (tab) => {
|
const handleClick = (tab) => {
|
||||||
console.log('当前Tab:', tab.name);
|
// console.log('当前Tab:', tab.name);
|
||||||
// 仅在切回账号密码登录时刷新验证码
|
// 仅在切回账号密码登录时刷新验证码
|
||||||
if (tab.name === 'first' && captchaEnabled.value) {
|
if (tab.name === 'first' && captchaEnabled.value) {
|
||||||
getCode();
|
getCode();
|
||||||
|
|||||||
238
src/views/regional/dict/department/index.vue
Normal file
238
src/views/regional/dict/department/index.vue
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
/**
|
||||||
|
* @file index.vue 科室列表
|
||||||
|
* @author: w
|
||||||
|
* @since: 2026-03-12
|
||||||
|
*/
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
|
||||||
|
<el-form-item label="科室编码" prop="hospitalCode">
|
||||||
|
<el-input v-model="queryParams.hospitalCode" placeholder="请输入科室编码" clearable style="width: 200px"
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="科室名称" prop="hospitalName">
|
||||||
|
<el-input v-model="queryParams.hospitalName" placeholder="请输入科室名称" clearable style="width: 200px"
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-select v-model="queryParams.status" placeholder="有效状态" clearable style="width: 200px">
|
||||||
|
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate">修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
|
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||||
|
</el-col> -->
|
||||||
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"
|
||||||
|
height="calc(100vh - 250px)">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="序号" align="center" prop="hospitalId" />
|
||||||
|
<el-table-column label="科室编码" align="center" prop="hospitalCode" />
|
||||||
|
<el-table-column label="科室名称" align="center" prop="hospitalName" />
|
||||||
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
|
||||||
|
<!-- 添加或修改科室对话框 -->
|
||||||
|
<el-dialog :title="title" v-model="open" width="35vw" append-to-body>
|
||||||
|
<el-form ref="postRef" :model="form" :rules="rules" label-width="150px">
|
||||||
|
<el-form-item label="科室名称" prop="hospitalName">
|
||||||
|
<el-input v-model="form.hospitalName" placeholder="请输入科室名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="科室编码" prop="hospitalCode">
|
||||||
|
<el-input v-model="form.hospitalCode" placeholder="请输入编码名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="科室状态" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
|
||||||
|
}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="hospital">
|
||||||
|
import { listhospital, addhospital, delhospital, gethospital, updatehospital } from "@/api/regional/dict/hospital.ts";
|
||||||
|
import { getComDicts } from "@/api/liswork/dict/ComDict";
|
||||||
|
import { fa } from "element-plus/es/locales.mjs";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
||||||
|
|
||||||
|
const postList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(false);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const ids = ref([]);
|
||||||
|
const single = ref(true);
|
||||||
|
const multiple = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
const yljbList = ref([]);
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
hospitalCode: undefined,
|
||||||
|
hospitalName: undefined,
|
||||||
|
status: undefined
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
hospitalName: [{ required: true, message: "科室名称不能为空", trigger: "blur" }],
|
||||||
|
hospitalCode: [{ required: true, message: "科室编码不能为空", trigger: "blur" }],
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询科室列表 */
|
||||||
|
function getList() {
|
||||||
|
// loading.value = true;
|
||||||
|
// listhospital(queryParams.value).then(response => {
|
||||||
|
// postList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
function cancel() {
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
/** 表单重置 */
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
hospitalId: undefined,
|
||||||
|
hospitalCode: undefined,
|
||||||
|
hospitalName: undefined,
|
||||||
|
hospitalUserinfo: undefined,
|
||||||
|
status: "0",
|
||||||
|
remark: undefined
|
||||||
|
};
|
||||||
|
proxy.resetForm("postRef");
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 多选框选中数据 */
|
||||||
|
function handleSelectionChange(selection) {
|
||||||
|
ids.value = selection.map(item => item.hospitalId);
|
||||||
|
single.value = selection.length != 1;
|
||||||
|
multiple.value = !selection.length;
|
||||||
|
}
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = "添加科室";
|
||||||
|
}
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
const hospitalId = row.hospitalId || ids.value;
|
||||||
|
gethospital(hospitalId).then(response => {
|
||||||
|
form.value = response.data;
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改科室";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 提交按钮 */
|
||||||
|
function submitForm() {
|
||||||
|
return
|
||||||
|
proxy.$refs["postRef"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (form.value.hospitalId != undefined) {
|
||||||
|
updatehospital(form.value).then(response => {
|
||||||
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addhospital(form.value).then(response => {
|
||||||
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
const hospitalIds = row.hospitalId || ids.value;
|
||||||
|
proxy.$modal.confirm('是否确认删除科室编号为"' + hospitalIds + '"的数据项?').then(function () {
|
||||||
|
return delhospital(hospitalIds);
|
||||||
|
}).then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => { });
|
||||||
|
}
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
function handleExport() {
|
||||||
|
proxy.download("transitdict/hospital/export", {
|
||||||
|
...queryParams.value
|
||||||
|
}, `hospital_${new Date().getTime()}.xlsx`);
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getComDicts({ dict_type: 'HTYPE' }).then(response => {
|
||||||
|
yljbList.value = response.data;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
</script>
|
||||||
238
src/views/regional/dict/doctor/index.vue
Normal file
238
src/views/regional/dict/doctor/index.vue
Normal file
@ -0,0 +1,238 @@
|
|||||||
|
/**
|
||||||
|
* @file index.vue 医生列表
|
||||||
|
* @author: w
|
||||||
|
* @since: 2026-03-12
|
||||||
|
*/
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch">
|
||||||
|
<el-form-item label="医生编码" prop="hospitalCode">
|
||||||
|
<el-input v-model="queryParams.hospitalCode" placeholder="请输入医生编码" clearable style="width: 200px"
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="医生名称" prop="hospitalName">
|
||||||
|
<el-input v-model="queryParams.hospitalName" placeholder="请输入医生名称" clearable style="width: 200px"
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="状态" prop="status">
|
||||||
|
<el-select v-model="queryParams.status" placeholder="有效状态" clearable style="width: 200px">
|
||||||
|
<el-option v-for="dict in sys_normal_disable" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate">修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete">删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="1.5">
|
||||||
|
<el-button type="warning" plain icon="Download" @click="handleExport">导出</el-button>
|
||||||
|
</el-col> -->
|
||||||
|
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"
|
||||||
|
height="calc(100vh - 250px)">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="序号" align="center" prop="hospitalId" />
|
||||||
|
<el-table-column label="医生编码" align="center" prop="hospitalCode" />
|
||||||
|
<el-table-column label="医生名称" align="center" prop="hospitalName" />
|
||||||
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180">
|
||||||
|
<template #default="scope">
|
||||||
|
<span>{{ parseTime(scope.row.createTime) }}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
|
||||||
|
<el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
|
||||||
|
<!-- 添加或修改医生对话框 -->
|
||||||
|
<el-dialog :title="title" v-model="open" width="35vw" append-to-body>
|
||||||
|
<el-form ref="postRef" :model="form" :rules="rules" label-width="150px">
|
||||||
|
<el-form-item label="医生名称" prop="hospitalName">
|
||||||
|
<el-input v-model="form.hospitalName" placeholder="请输入医生名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="医生编码" prop="hospitalCode">
|
||||||
|
<el-input v-model="form.hospitalCode" placeholder="请输入编码名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="医生状态" prop="status">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
|
||||||
|
}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup name="hospital">
|
||||||
|
import { listhospital, addhospital, delhospital, gethospital, updatehospital } from "@/api/regional/dict/hospital.ts";
|
||||||
|
import { getComDicts } from "@/api/liswork/dict/ComDict";
|
||||||
|
import { fa } from "element-plus/es/locales.mjs";
|
||||||
|
const { proxy } = getCurrentInstance();
|
||||||
|
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
||||||
|
|
||||||
|
const postList = ref([]);
|
||||||
|
const open = ref(false);
|
||||||
|
const loading = ref(false);
|
||||||
|
const showSearch = ref(true);
|
||||||
|
const ids = ref([]);
|
||||||
|
const single = ref(true);
|
||||||
|
const multiple = ref(true);
|
||||||
|
const total = ref(0);
|
||||||
|
const title = ref("");
|
||||||
|
const yljbList = ref([]);
|
||||||
|
const data = reactive({
|
||||||
|
form: {},
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
hospitalCode: undefined,
|
||||||
|
hospitalName: undefined,
|
||||||
|
status: undefined
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
hospitalName: [{ required: true, message: "医生名称不能为空", trigger: "blur" }],
|
||||||
|
hospitalCode: [{ required: true, message: "医生编码不能为空", trigger: "blur" }],
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const { queryParams, form, rules } = toRefs(data);
|
||||||
|
|
||||||
|
/** 查询医生列表 */
|
||||||
|
function getList() {
|
||||||
|
// loading.value = true;
|
||||||
|
// listhospital(queryParams.value).then(response => {
|
||||||
|
// postList.value = response.rows;
|
||||||
|
// total.value = response.total;
|
||||||
|
// loading.value = false;
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
/** 取消按钮 */
|
||||||
|
function cancel() {
|
||||||
|
open.value = false;
|
||||||
|
reset();
|
||||||
|
}
|
||||||
|
/** 表单重置 */
|
||||||
|
function reset() {
|
||||||
|
form.value = {
|
||||||
|
hospitalId: undefined,
|
||||||
|
hospitalCode: undefined,
|
||||||
|
hospitalName: undefined,
|
||||||
|
hospitalUserinfo: undefined,
|
||||||
|
status: "0",
|
||||||
|
remark: undefined
|
||||||
|
};
|
||||||
|
proxy.resetForm("postRef");
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
function handleQuery() {
|
||||||
|
queryParams.value.pageNum = 1;
|
||||||
|
getList();
|
||||||
|
}
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
function resetQuery() {
|
||||||
|
proxy.resetForm("queryRef");
|
||||||
|
handleQuery();
|
||||||
|
}
|
||||||
|
/** 多选框选中数据 */
|
||||||
|
function handleSelectionChange(selection) {
|
||||||
|
ids.value = selection.map(item => item.hospitalId);
|
||||||
|
single.value = selection.length != 1;
|
||||||
|
multiple.value = !selection.length;
|
||||||
|
}
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
function handleAdd() {
|
||||||
|
reset();
|
||||||
|
open.value = true;
|
||||||
|
title.value = "添加医生";
|
||||||
|
}
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
function handleUpdate(row) {
|
||||||
|
reset();
|
||||||
|
const hospitalId = row.hospitalId || ids.value;
|
||||||
|
gethospital(hospitalId).then(response => {
|
||||||
|
form.value = response.data;
|
||||||
|
open.value = true;
|
||||||
|
title.value = "修改医生";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 提交按钮 */
|
||||||
|
function submitForm() {
|
||||||
|
return
|
||||||
|
proxy.$refs["postRef"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (form.value.hospitalId != undefined) {
|
||||||
|
updatehospital(form.value).then(response => {
|
||||||
|
proxy.$modal.msgSuccess("修改成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addhospital(form.value).then(response => {
|
||||||
|
proxy.$modal.msgSuccess("新增成功");
|
||||||
|
open.value = false;
|
||||||
|
getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
function handleDelete(row) {
|
||||||
|
const hospitalIds = row.hospitalId || ids.value;
|
||||||
|
proxy.$modal.confirm('是否确认删除医生编号为"' + hospitalIds + '"的数据项?').then(function () {
|
||||||
|
return delhospital(hospitalIds);
|
||||||
|
}).then(() => {
|
||||||
|
getList();
|
||||||
|
proxy.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => { });
|
||||||
|
}
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
function handleExport() {
|
||||||
|
proxy.download("transitdict/hospital/export", {
|
||||||
|
...queryParams.value
|
||||||
|
}, `hospital_${new Date().getTime()}.xlsx`);
|
||||||
|
}
|
||||||
|
|
||||||
|
getList();
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getComDicts({ dict_type: 'HTYPE' }).then(response => {
|
||||||
|
yljbList.value = response.data;
|
||||||
|
});
|
||||||
|
})
|
||||||
|
</script>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
<el-table-column label="序号" align="center" prop="hospitalId" />
|
<el-table-column label="序号" align="center" prop="hospitalId" />
|
||||||
<el-table-column label="医疗机构编码" align="center" prop="hospitalCode" />
|
<el-table-column label="医疗机构编码" align="center" prop="hospitalCode" />
|
||||||
<el-table-column label="医疗机构名称" align="center" prop="hospitalName" />
|
<el-table-column label="医疗机构名称" align="center" prop="hospitalName" />
|
||||||
<el-table-column label="接口平台密钥" align="center" prop="hospitalUserinfo" />
|
<el-table-column label="级别" align="center" prop="hospital_type" />
|
||||||
<el-table-column label="状态" align="center" prop="status">
|
<el-table-column label="状态" align="center" prop="status">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
|
<dict-tag :options="sys_normal_disable" :value="scope.row.status" />
|
||||||
@ -65,8 +65,8 @@
|
|||||||
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
|
|
||||||
<!-- 添加或修改医疗机构对话框 -->
|
<!-- 添加或修改医疗机构对话框 -->
|
||||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
<el-dialog :title="title" v-model="open" width="35vw" append-to-body>
|
||||||
<el-form ref="postRef" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="postRef" :model="form" :rules="rules" label-width="150px">
|
||||||
<el-form-item label="医疗机构名称" prop="hospitalName">
|
<el-form-item label="医疗机构名称" prop="hospitalName">
|
||||||
<el-input v-model="form.hospitalName" placeholder="请输入医疗机构名称" />
|
<el-input v-model="form.hospitalName" placeholder="请输入医疗机构名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -76,6 +76,11 @@
|
|||||||
<el-form-item label="医疗机构密钥" prop="hospitalUserinfo">
|
<el-form-item label="医疗机构密钥" prop="hospitalUserinfo">
|
||||||
<el-input v-model="form.hospitalUserinfo" placeholder="请输入编码密钥" />
|
<el-input v-model="form.hospitalUserinfo" placeholder="请输入编码密钥" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="医疗机构级别" prop="hospital_type">
|
||||||
|
<el-select v-model="form.hospital_type" placeholder="请选择医疗机构级别" clearable style="width: 100%">
|
||||||
|
<el-option v-for="item in yljbList" :key="item.dictCode" :label="item.dictName" :value="item.dictCode" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="医疗机构状态" prop="status">
|
<el-form-item label="医疗机构状态" prop="status">
|
||||||
<el-radio-group v-model="form.status">
|
<el-radio-group v-model="form.status">
|
||||||
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
|
<el-radio v-for="dict in sys_normal_disable" :key="dict.value" :value="dict.value">{{ dict.label
|
||||||
@ -98,7 +103,7 @@
|
|||||||
|
|
||||||
<script setup name="hospital">
|
<script setup name="hospital">
|
||||||
import { listhospital, addhospital, delhospital, gethospital, updatehospital } from "@/api/regional/dict/hospital.ts";
|
import { listhospital, addhospital, delhospital, gethospital, updatehospital } from "@/api/regional/dict/hospital.ts";
|
||||||
|
import { getComDicts } from "@/api/liswork/dict/ComDict";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
const { sys_normal_disable } = proxy.useDict("sys_normal_disable");
|
||||||
|
|
||||||
@ -111,7 +116,7 @@ const single = ref(true);
|
|||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
const title = ref("");
|
const title = ref("");
|
||||||
|
const yljbList = ref([]);
|
||||||
const data = reactive({
|
const data = reactive({
|
||||||
form: {},
|
form: {},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
@ -225,4 +230,11 @@ function handleExport() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getList();
|
getList();
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getComDicts({ dict_type: 'HTYPE' }).then(response => {
|
||||||
|
yljbList.value = response.data;
|
||||||
|
});
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -1,65 +1,70 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-row :gutter="20">
|
<el-row :gutter="20">
|
||||||
<el-col :span="6" :xs="24">
|
<el-col :span="6" :xs="24">
|
||||||
<el-card class="box-card">
|
<el-card class="box-card">
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<span>个人信息</span>
|
<span>个人信息</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div>
|
<div>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<userAvatar />
|
<userAvatar />
|
||||||
</div>
|
</div>
|
||||||
<ul class="list-group list-group-striped">
|
<ul class="list-group list-group-striped">
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="user" />用户名称
|
<svg-icon icon-class="user" />用户名称
|
||||||
<div class="pull-right">{{ state.user.userName }}</div>
|
<div class="pull-right">{{ state.user.userName }}</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="phone" />手机号码
|
<svg-icon icon-class="phone" />手机号码
|
||||||
<div class="pull-right">{{ state.user.phonenumber }}</div>
|
<div class="pull-right">{{ state.user.phonenumber }}</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="email" />用户邮箱
|
<svg-icon icon-class="email" />用户邮箱
|
||||||
<div class="pull-right">{{ state.user.email }}</div>
|
<div class="pull-right">{{ state.user.email }}</div>
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<svg-icon icon-class="tree" />所属部门
|
<svg-icon icon-class="tree" />所属部门
|
||||||
<div class="pull-right" v-if="state.user.dept">{{ state.user.dept.deptName }} / {{ state.postGroup }}</div>
|
<div class="pull-right" v-if="state.user.dept">{{ state.user.dept.deptName }} / {{ state.postGroup }}
|
||||||
</li>
|
</div>
|
||||||
<li class="list-group-item">
|
</li>
|
||||||
<svg-icon icon-class="peoples" />所属角色
|
<li class="list-group-item">
|
||||||
<div class="pull-right">{{ state.roleGroup }}</div>
|
<svg-icon icon-class="peoples" />所属角色
|
||||||
</li>
|
<div class="pull-right">{{ state.roleGroup }}</div>
|
||||||
<li class="list-group-item">
|
</li>
|
||||||
<svg-icon icon-class="date" />创建日期
|
<li class="list-group-item">
|
||||||
<div class="pull-right">{{ state.user.createTime }}</div>
|
<svg-icon icon-class="date" />创建日期
|
||||||
</li>
|
<div class="pull-right">{{ state.user.createTime }}</div>
|
||||||
</ul>
|
</li>
|
||||||
</div>
|
<li class="list-group-item">
|
||||||
</el-card>
|
<svg-icon icon-class="system" />浏览器ID
|
||||||
</el-col>
|
<div class="pull-right">{{ mbStore.fingerprint }}</div>
|
||||||
<el-col :span="18" :xs="24">
|
</li>
|
||||||
<el-card>
|
</ul>
|
||||||
<template v-slot:header>
|
</div>
|
||||||
<div class="clearfix">
|
</el-card>
|
||||||
<span>基本资料</span>
|
</el-col>
|
||||||
</div>
|
<el-col :span="18" :xs="24">
|
||||||
</template>
|
<el-card>
|
||||||
<el-tabs v-model="selectedTab">
|
<template v-slot:header>
|
||||||
<el-tab-pane label="基本资料" name="userinfo">
|
<div class="clearfix">
|
||||||
<userInfo :user="state.user" />
|
<span>基本资料</span>
|
||||||
</el-tab-pane>
|
</div>
|
||||||
<el-tab-pane label="修改密码" name="resetPwd">
|
</template>
|
||||||
<resetPwd />
|
<el-tabs v-model="selectedTab">
|
||||||
</el-tab-pane>
|
<el-tab-pane label="基本资料" name="userinfo">
|
||||||
</el-tabs>
|
<userInfo :user="state.user" />
|
||||||
</el-card>
|
</el-tab-pane>
|
||||||
</el-col>
|
<el-tab-pane label="修改密码" name="resetPwd">
|
||||||
</el-row>
|
<resetPwd />
|
||||||
</div>
|
</el-tab-pane>
|
||||||
|
</el-tabs>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts" name="Profile">
|
<script setup lang="ts" name="Profile">
|
||||||
@ -68,7 +73,9 @@ import userInfo from "./userInfo.vue"
|
|||||||
import resetPwd from "./resetPwd.vue"
|
import resetPwd from "./resetPwd.vue"
|
||||||
import { getUserProfile } from "@/api/system/user"
|
import { getUserProfile } from "@/api/system/user"
|
||||||
import type { SysUser } from '@/types/api/system/user'
|
import type { SysUser } from '@/types/api/system/user'
|
||||||
|
import { useCommonStore } from '@/store/modules/commonStore'
|
||||||
|
|
||||||
|
const mbStore = useCommonStore();
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
const selectedTab = ref<string>("userinfo")
|
const selectedTab = ref<string>("userinfo")
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user