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