17 changed files with 522 additions and 668 deletions
@ -1,198 +0,0 @@ |
|||
{ |
|||
root: 'E:\\web\\xiangan_pc', |
|||
registry: 'https://registry.npmmirror.com', |
|||
pkgs: [ |
|||
{ |
|||
name: '', |
|||
version: 'E:\\web\\xiangan_pc\\vue-keyboard\\lib\\keyboard-map', |
|||
type: 'directory', |
|||
alias: undefined, |
|||
arg: [Result] |
|||
} |
|||
], |
|||
production: false, |
|||
cacheStrict: false, |
|||
cacheDir: null, |
|||
env: { |
|||
npm_config_registry: 'https://registry.npmmirror.com', |
|||
npm_config_argv: '{"remain":[],"cooked":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\Bian\\\\.cnpmrc","--disturl=https://npmmirror.com/mirrors/node","--registry=https://registry.npmmirror.com","--save","vue-keyboard/lib/keyboard-map"],"original":["--fix-bug-versions","--china","--userconfig=C:\\\\Users\\\\Bian\\\\.cnpmrc","--disturl=https://npmmirror.com/mirrors/node","--registry=https://registry.npmmirror.com","--save","vue-keyboard/lib/keyboard-map"]}', |
|||
npm_config_user_agent: 'npminstall/7.5.2 npm/? node/v16.18.0 win32 x64', |
|||
NODE: 'D:\\node.exe', |
|||
npm_node_execpath: 'D:\\node.exe', |
|||
npm_execpath: 'C:\\Users\\Bian\\AppData\\Roaming\\npm\\node_modules\\cnpm\\node_modules\\npminstall\\bin\\install.js', |
|||
npm_config_userconfig: 'C:\\Users\\Bian\\.cnpmrc', |
|||
npm_config_disturl: 'https://npmmirror.com/mirrors/node', |
|||
npm_config_r: 'https://registry.npmmirror.com', |
|||
COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com', |
|||
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', |
|||
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', |
|||
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs', |
|||
CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver', |
|||
OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver', |
|||
CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip', |
|||
ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/', |
|||
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/', |
|||
SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass', |
|||
SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc', |
|||
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v', |
|||
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', |
|||
PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', |
|||
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright', |
|||
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli', |
|||
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl', |
|||
RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2', |
|||
RE2_DOWNLOAD_SKIP_PATH: 'true', |
|||
npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3', |
|||
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar', |
|||
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp', |
|||
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips', |
|||
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs', |
|||
npm_rootpath: 'E:\\web\\xiangan_pc', |
|||
INIT_CWD: 'E:\\web\\xiangan_pc', |
|||
npm_config_cache: 'C:\\Users\\Bian\\.npminstall_tarball' |
|||
}, |
|||
binaryMirrors: { |
|||
ENVS: { |
|||
COREPACK_NPM_REGISTRY: 'https://registry.npmmirror.com', |
|||
NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', |
|||
NVM_NODEJS_ORG_MIRROR: 'https://cdn.npmmirror.com/binaries/node', |
|||
PHANTOMJS_CDNURL: 'https://cdn.npmmirror.com/binaries/phantomjs', |
|||
CHROMEDRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/chromedriver', |
|||
OPERADRIVER_CDNURL: 'https://cdn.npmmirror.com/binaries/operadriver', |
|||
CYPRESS_DOWNLOAD_PATH_TEMPLATE: 'https://cdn.npmmirror.com/binaries/cypress/${version}/${platform}-${arch}/cypress.zip', |
|||
ELECTRON_MIRROR: 'https://cdn.npmmirror.com/binaries/electron/', |
|||
ELECTRON_BUILDER_BINARIES_MIRROR: 'https://cdn.npmmirror.com/binaries/electron-builder-binaries/', |
|||
SASS_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-sass', |
|||
SWC_BINARY_SITE: 'https://cdn.npmmirror.com/binaries/node-swc', |
|||
NWJS_URLBASE: 'https://cdn.npmmirror.com/binaries/nwjs/v', |
|||
PUPPETEER_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', |
|||
PUPPETEER_DOWNLOAD_BASE_URL: 'https://cdn.npmmirror.com/binaries/chrome-for-testing', |
|||
PLAYWRIGHT_DOWNLOAD_HOST: 'https://cdn.npmmirror.com/binaries/playwright', |
|||
SENTRYCLI_CDNURL: 'https://cdn.npmmirror.com/binaries/sentry-cli', |
|||
SAUCECTL_INSTALL_BINARY_MIRROR: 'https://cdn.npmmirror.com/binaries/saucectl', |
|||
RE2_DOWNLOAD_MIRROR: 'https://cdn.npmmirror.com/binaries/node-re2', |
|||
RE2_DOWNLOAD_SKIP_PATH: 'true', |
|||
npm_config_better_sqlite3_binary_host: 'https://cdn.npmmirror.com/binaries/better-sqlite3', |
|||
npm_config_keytar_binary_host: 'https://cdn.npmmirror.com/binaries/keytar', |
|||
npm_config_sharp_binary_host: 'https://cdn.npmmirror.com/binaries/sharp', |
|||
npm_config_sharp_libvips_binary_host: 'https://cdn.npmmirror.com/binaries/sharp-libvips', |
|||
npm_config_robotjs_binary_host: 'https://cdn.npmmirror.com/binaries/robotjs' |
|||
}, |
|||
'@ali/s2': { host: 'https://cdn.npmmirror.com/binaries/looksgood-s2' }, |
|||
sharp: { replaceHostFiles: [Array], replaceHostMap: [Object] }, |
|||
'@tensorflow/tfjs-node': { |
|||
replaceHostFiles: [Array], |
|||
replaceHostRegExpMap: [Object], |
|||
replaceHostMap: [Object] |
|||
}, |
|||
cypress: { |
|||
host: 'https://cdn.npmmirror.com/binaries/cypress', |
|||
newPlatforms: [Object] |
|||
}, |
|||
'utf-8-validate': { |
|||
host: 'https://cdn.npmmirror.com/binaries/utf-8-validate/v{version}' |
|||
}, |
|||
xprofiler: { |
|||
remote_path: './xprofiler/v{version}/', |
|||
host: 'https://cdn.npmmirror.com/binaries' |
|||
}, |
|||
leveldown: { host: 'https://cdn.npmmirror.com/binaries/leveldown/v{version}' }, |
|||
couchbase: { host: 'https://cdn.npmmirror.com/binaries/couchbase/v{version}' }, |
|||
gl: { host: 'https://cdn.npmmirror.com/binaries/gl/v{version}' }, |
|||
sqlite3: { |
|||
host: 'https://cdn.npmmirror.com/binaries/sqlite3', |
|||
remote_path: 'v{version}' |
|||
}, |
|||
'@journeyapps/sqlcipher': { host: 'https://cdn.npmmirror.com/binaries' }, |
|||
grpc: { |
|||
host: 'https://cdn.npmmirror.com/binaries', |
|||
remote_path: '{name}/v{version}' |
|||
}, |
|||
'grpc-tools': { host: 'https://cdn.npmmirror.com/binaries' }, |
|||
wrtc: { |
|||
host: 'https://cdn.npmmirror.com/binaries', |
|||
remote_path: '{name}/v{version}' |
|||
}, |
|||
fsevents: { host: 'https://cdn.npmmirror.com/binaries/fsevents' }, |
|||
nodejieba: { host: 'https://cdn.npmmirror.com/binaries/nodejieba' }, |
|||
canvas: { host: 'https://cdn.npmmirror.com/binaries/canvas' }, |
|||
'skia-canvas': { host: 'https://cdn.npmmirror.com/binaries/skia-canvas' }, |
|||
'flow-bin': { |
|||
replaceHost: 'https://github.com/facebook/flow/releases/download/v', |
|||
host: 'https://cdn.npmmirror.com/binaries/flow/v' |
|||
}, |
|||
'jpegtran-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/jpegtran-bin' |
|||
}, |
|||
'cwebp-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/cwebp-bin' |
|||
}, |
|||
'zopflipng-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/zopflipng-bin' |
|||
}, |
|||
'optipng-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/optipng-bin' |
|||
}, |
|||
mozjpeg: { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/mozjpeg-bin' |
|||
}, |
|||
gifsicle: { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/gifsicle-bin' |
|||
}, |
|||
'pngquant-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/pngquant-bin', |
|||
replaceHostMap: [Object] |
|||
}, |
|||
'pngcrush-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/pngcrush-bin' |
|||
}, |
|||
'jpeg-recompress-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/jpeg-recompress-bin' |
|||
}, |
|||
'advpng-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/advpng-bin' |
|||
}, |
|||
'pngout-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/pngout-bin' |
|||
}, |
|||
'jpegoptim-bin': { |
|||
replaceHost: [Array], |
|||
host: 'https://cdn.npmmirror.com/binaries/jpegoptim-bin' |
|||
}, |
|||
argon2: { host: 'https://cdn.npmmirror.com/binaries/argon2' }, |
|||
'ali-zeromq': { host: 'https://cdn.npmmirror.com/binaries/ali-zeromq' }, |
|||
'ali-usb_ctl': { host: 'https://cdn.npmmirror.com/binaries/ali-usb_ctl' }, |
|||
'gdal-async': { host: 'https://cdn.npmmirror.com/binaries/node-gdal-async' } |
|||
}, |
|||
forbiddenLicenses: null, |
|||
flatten: false, |
|||
proxy: undefined, |
|||
prune: false, |
|||
disableFallbackStore: false, |
|||
workspacesMap: Map(0) {}, |
|||
enableWorkspace: false, |
|||
workspaceRoot: 'E:\\web\\xiangan_pc', |
|||
isWorkspaceRoot: true, |
|||
isWorkspacePackage: false, |
|||
strictSSL: true, |
|||
ignoreScripts: false, |
|||
ignoreOptionalDependencies: false, |
|||
detail: false, |
|||
forceLinkLatest: false, |
|||
trace: false, |
|||
engineStrict: false, |
|||
registryOnly: false, |
|||
client: false, |
|||
autoFixVersion: [Function: autoFixVersion] |
|||
} |
@ -1,150 +1,151 @@ |
|||
<template> |
|||
<el-dialog |
|||
class="HIS-dialog" |
|||
:visible.sync="visible" |
|||
width="60%" |
|||
title="HIS查询" |
|||
> |
|||
<el-form ref="dataFormHis" :inline="true" :model="dataFormHis" class="demo-form-inline" :rules="dataRule" @keyup.enter.native="findHandle(2)"> |
|||
<el-form-item prop="patientId"> |
|||
<el-input v-model="dataFormHis.patientId" placeholder="请输入登记号" clearable @clear="findHandle(1)" /> |
|||
</el-form-item> |
|||
<el-form-item prop="patientName"> |
|||
<el-input v-model="dataFormHis.patientName" placeholder="请输入姓名" clearable @clear="findHandle(1)" /> |
|||
</el-form-item> |
|||
<el-form-item prop="patientIdNumber"> |
|||
<el-input v-model="dataFormHis.patientIdNumber" placeholder="请输入身份证号" clearable @clear="findHandle(1)" /> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="findHandle(2)">查询</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-table v-loading="loading" :data="tableData"> |
|||
<template slot="empty"> |
|||
<span style="color: #969799;">{{ tableText }}</span> |
|||
</template> |
|||
<el-table-column property="patId" label="登记号" width="100" /> |
|||
<el-table-column property="patName" label="患者姓名" width="100" /> |
|||
<el-table-column property="patIdNumber" label="身份证号" /> |
|||
<el-table-column property="patPhone" label="联系电话" /> |
|||
<el-table-column property="patAddress" label="家庭地址" /> |
|||
<el-table-column label="操作" width="80"> |
|||
<template slot-scope="scope"> |
|||
<p class="introduce" @click="introduceHandle(scope.row)">引入</p> |
|||
</template></el-table-column> |
|||
</el-table> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
props: { |
|||
patientTypeList: { |
|||
type: Array, |
|||
default: () => [] |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
dataFormHis: { |
|||
patientId: '', |
|||
patientName: '', |
|||
patientIdNumber: '' |
|||
}, |
|||
dataForm: {}, |
|||
tableData: [], |
|||
tableText: '请查询所需数据', |
|||
loading: false |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
patientId: [ |
|||
{ message: '请输入登记号', trigger: 'blur' } |
|||
], |
|||
patientName: [ |
|||
{ message: '请输入姓名', trigger: 'blur' } |
|||
], |
|||
patientIdNumber: [ |
|||
{ message: '请输入身份证号', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.tableText = '请查询所需数据' |
|||
this.$refs.dataFormHis.resetFields() // 重置表单 |
|||
this.tableData = [] |
|||
}) |
|||
}, |
|||
// His查询按钮 |
|||
async findHandle(flag) { |
|||
this.loading = true |
|||
if (!this.dataFormHis.patientId && !this.dataFormHis.patientName && !this.dataFormHis.patientIdNumber) { |
|||
this.loading = false |
|||
return this.$message.error('搜索内容不能为空') |
|||
} |
|||
const { data: res } = await this.$http.get('/patient/getHisPatient', { |
|||
params: this.dataFormHis |
|||
}) |
|||
if (res.code === 0) { |
|||
this.loading = false |
|||
this.tableData = res.data |
|||
if (res.data.length <= 0 && flag === 2) { |
|||
this.tableText = '查询成功,未查询到相关数据' |
|||
} else if (res.data.length <= 0 && flag === 1) { |
|||
this.tableText = '请查询所需数据' |
|||
} |
|||
} else { |
|||
this.loading = false |
|||
this.tableText = res.msg |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 点击引入按钮 |
|||
introduceHandle(scopwRow) { |
|||
this.$parent.addOrUpdateHandle('', scopwRow, 'HIS引入') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.HIS-dialog { |
|||
.cycle-display { |
|||
.el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-input-number { |
|||
width: 100px; |
|||
margin-right: 16px; |
|||
} |
|||
} |
|||
.introduce { |
|||
color: #1F78FF; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
|
|||
</style> |
|||
<style lang="scss"> |
|||
.HIS-dialog { |
|||
.el-form { |
|||
display: flex; |
|||
} |
|||
.el-dialog__header { |
|||
margin-bottom:12px |
|||
} |
|||
.el-dialog__body { |
|||
padding-right: 30px; |
|||
} |
|||
.formItemOne .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
|
|||
} |
|||
</style> |
|||
<template> |
|||
<el-dialog |
|||
class="HIS-dialog" |
|||
:visible.sync="visible" |
|||
width="60%" |
|||
title="HIS查询" |
|||
> |
|||
<el-form ref="dataFormHis" :inline="true" :model="dataFormHis" class="demo-form-inline" :rules="dataRule" @keyup.enter.native="findHandle(2)"> |
|||
<el-form-item prop="patientId"> |
|||
<el-input v-model="dataFormHis.patientId" placeholder="请输入登记号" clearable /> |
|||
</el-form-item> |
|||
<el-form-item prop="patientName"> |
|||
<el-input v-model="dataFormHis.patientName" placeholder="请输入姓名" clearable /> |
|||
</el-form-item> |
|||
<el-form-item prop="patientIdNumber"> |
|||
<el-input v-model="dataFormHis.patientIdNumber" placeholder="请输入身份证号" clearable /> |
|||
</el-form-item> |
|||
<el-col :span="6"> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="findHandle(2)">查询</el-button> |
|||
<el-button @click="visible = !visible">取消</el-button> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-form> |
|||
<el-table v-loading="loading" :data="tableData" style="margin-bottom: 32px" height="500"> |
|||
<template slot="empty"> |
|||
<span style="color: #969799;">{{ tableText }}</span> |
|||
</template> |
|||
<el-table-column property="patientId" label="登记号" /> |
|||
<el-table-column property="patientName" label="患者姓名" /> |
|||
<el-table-column property="patientIdNumber" label="身份证号" /> |
|||
<el-table-column property="patientPhone" label="联系电话" /> |
|||
<el-table-column property="zlProject" label="医疗项目" width="140" /> |
|||
<el-table-column property="remark" label="备注" width="140" /> |
|||
<!-- <el-table-column property="patientAddress" label="家庭地址" />--> |
|||
<el-table-column label="操作" width="80"> |
|||
<template slot-scope="scope"> |
|||
<p class="introduce" @click="introduceHandle(scope.row)">引入</p> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
dataFormHis: { |
|||
patientId: '', |
|||
patientName: '', |
|||
patientIdNumber: '' |
|||
}, |
|||
dataForm: {}, |
|||
tableData: [], |
|||
tableText: '请查询所需数据', |
|||
loading: false |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
return { |
|||
patientId: [ |
|||
{ message: '请输入登记号', trigger: 'blur' } |
|||
], |
|||
patientName: [ |
|||
{ message: '请输入姓名', trigger: 'blur' } |
|||
], |
|||
patientIdNumber: [ |
|||
{ message: '请输入身份证号', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.tableText = '请查询所需数据' |
|||
this.$refs.dataFormHis.resetFields() // 重置表单 |
|||
this.tableData = [] |
|||
}) |
|||
}, |
|||
// His查询按钮 |
|||
async findHandle(flag) { |
|||
if (flag === 2 && !this.dataFormHis.patientId && !this.dataFormHis.patientName && !this.dataFormHis.patientIdNumber) { |
|||
return this.$message.error('搜索内容不能为空') |
|||
} |
|||
this.loading = true |
|||
const { data: res } = await this.$http.get('/patient/getHisPatient', { |
|||
params: this.dataFormHis |
|||
}) |
|||
if (res.code === 0) { |
|||
this.loading = false |
|||
this.tableData = res.data |
|||
if (res.data.length <= 0 && flag === 2) { |
|||
this.tableText = '查询成功,未查询到相关数据' |
|||
} else if (res.data.length <= 0 && flag === 1) { |
|||
this.tableText = '请查询所需数据' |
|||
} |
|||
} else { |
|||
this.loading = false |
|||
this.tableText = res.msg |
|||
this.$message.error(res.msg) |
|||
} |
|||
}, |
|||
// 点击引入按钮 |
|||
async introduceHandle(scopwRow) { |
|||
this.visible = false |
|||
this.$parent.addOrUpdateHandle('', scopwRow, 'HIS引入') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.HIS-dialog { |
|||
box-sizing: border-box; |
|||
.cycle-display { |
|||
.el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-input-number { |
|||
width: 100px; |
|||
margin-right: 16px; |
|||
} |
|||
} |
|||
.introduce { |
|||
color: #1F78FF; |
|||
cursor: pointer; |
|||
} |
|||
} |
|||
|
|||
</style> |
|||
<style lang="scss"> |
|||
.HIS-dialog { |
|||
.el-form { |
|||
display: flex; |
|||
} |
|||
.el-dialog__header { |
|||
margin-bottom:12px |
|||
} |
|||
.el-dialog__body { |
|||
padding-right: 30px; |
|||
} |
|||
.formItemOne .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
|
|||
} |
|||
</style> |
|||
|
@ -1,212 +1,296 @@ |
|||
<template> |
|||
<el-dialog |
|||
class="patientDialog" |
|||
:visible.sync="visible" |
|||
width="30%" |
|||
:title="dataForm.title" |
|||
> |
|||
<el-form ref="dataForm" :model="dataForm" :rules="dataRule"> |
|||
<el-form-item label="登记号:" label-width="120px" prop="patId" class="formItemOne"> |
|||
<el-input v-model="dataForm.patientId" placeholder="请输入登记号" /> |
|||
</el-form-item> |
|||
<el-form-item label="患者姓名:" label-width="120px" prop="patName"> |
|||
<el-input v-model="dataForm.patientName" placeholder="请输入姓名" /> |
|||
</el-form-item> |
|||
<el-form-item v-if="!dataForm.id" label="身份证号:" label-width="120px" prop="patIdNumber"> |
|||
<el-input v-model="dataForm.patIdNumber" placeholder="请输入身份证号 " /> |
|||
</el-form-item> |
|||
<el-form-item label="联系电话:" label-width="120px" prop="patPhone"> |
|||
<el-input v-model="dataForm.patPhone" placeholder="请输入手机号" /> |
|||
</el-form-item> |
|||
<el-form-item label="家庭地址:" label-width="120px" prop="patAddress"> |
|||
<el-input v-model="dataForm.patAddress" placeholder="请输入地址" /> |
|||
</el-form-item> |
|||
<!-- <el-form-item v-if="dataForm.drgsName == '眼视光'" label="患者类别:" label-width="90px" prop="patType"> |
|||
<el-select v-model="dataForm.patType" placeholder="请选择患者类别" clearable> |
|||
<el-option v-for="(item,index) in patientTypeList " :key="index" :label="item" :value="item" /> |
|||
</el-select> |
|||
</el-form-item> --> |
|||
<!-- <el-form-item v-if="dataForm.drgsName == '青光眼'" label="周期:" label-width="90px" prop="revisitCycles" class="cycle-display"> |
|||
<el-input-number |
|||
v-model="dataForm.revisitCycles" |
|||
controls-position="right" |
|||
:min="1" |
|||
/> |
|||
<el-radio-group v-model="dataForm.revisitCyclesUnit"> |
|||
<el-radio-button label="3">天</el-radio-button> |
|||
<el-radio-button label="4">周</el-radio-button> |
|||
<el-radio-button label="2">月</el-radio-button> |
|||
</el-radio-group> |
|||
</el-form-item> --> |
|||
<!-- <el-form-item v-if="dataForm.drgsName == '青光眼'" label="备注:" label-width="90px" prop="remarks">--> |
|||
<!-- <el-input v-model="dataForm.remarks" type="textarea" />--> |
|||
<!-- </el-form-item>--> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
import { isMobile, isIDNumber } from '@/utils/validate' |
|||
export default { |
|||
props: { |
|||
patientTypeList: { |
|||
type: Array, |
|||
default: () => [] |
|||
} |
|||
}, |
|||
data() { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
platform: 1, |
|||
patId: '', |
|||
patName: '', |
|||
patIdNumber: '', |
|||
patPhone: '', |
|||
patAddress: '', |
|||
revisitCycles: '1', // 周期数 |
|||
revisitCyclesUnit: '3', // 周期单位 1年2月3日4周 |
|||
remarks: '' |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
var validataMobile = (rule, value, callback) => { |
|||
if (value && !isMobile(value)) { |
|||
return callback(new Error('您输入的手机号格式不正确')) |
|||
} |
|||
callback() |
|||
} |
|||
// var validataIDNumber = (rule, value, callback) => { |
|||
// if (value && !isIDNumber(value)) { |
|||
// return callback(new Error('您输入的身份证格式不正确')) |
|||
// } else if (!value) { |
|||
// return callback(new Error('请输入身份证号')) |
|||
// } |
|||
// callback() |
|||
// } |
|||
return { |
|||
patId: [ |
|||
{ required: true, message: '请输入登记号', trigger: 'blur' } |
|||
], |
|||
patName: [ |
|||
{ required: true, message: '请输入患者姓名', trigger: 'blur' } |
|||
], |
|||
patIdNumber: [ |
|||
{ required: true, message: '请输入身份证号', trigger: 'blur' } |
|||
], |
|||
patPhone: [ |
|||
{ validator: validataMobile, trigger: 'blur' } |
|||
], |
|||
patAddress: [ |
|||
{ message: '请输入家庭地址', trigger: 'blur' } |
|||
] |
|||
// patType: [ |
|||
// { message: '请选择患者类型', trigger: 'change' } |
|||
// ] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.dataForm.resetFields() // 重置表单 |
|||
this.dataForm.patIdNumber = '' |
|||
this.dataForm.patName = '' |
|||
this.dataForm.patAddress = '' |
|||
this.dataForm.revisitCycles = '1' |
|||
this.dataForm.revisitCyclesUnit = '3' |
|||
if (this.dataForm.params.patIdNumber && this.dataForm.title !== 'HIS引入') { |
|||
this.getInfo() |
|||
} else if (this.dataForm.title === 'HIS引入') { |
|||
this.getHisInfo() |
|||
} |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo() { |
|||
this.$http.get('/pat/Manage', { |
|||
params: { |
|||
patIdNumber: this.dataForm.params.patIdNumber, |
|||
drgsName: this.dataForm.drgsName, |
|||
isSearch: '' |
|||
} |
|||
}).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
}).catch(() => {}) |
|||
}, |
|||
// 获取His信息 |
|||
getHisInfo() { |
|||
this.dataForm = { ...this.dataForm, ...this.dataForm.params, drgsName: window.localStorage.getItem('identity') } |
|||
this.dataForm.revisitCycles = this.dataForm.revisitCycles ? this.dataForm.revisitCycles : '1' |
|||
this.dataForm.revisitCyclesUnit = this.dataForm.revisitCyclesUnit ? this.dataForm.revisitCyclesUnit : '3' |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function() { |
|||
if (this.dataForm.title === 'HIS引入') { |
|||
// this.$parent.HisAddVisible = false |
|||
} |
|||
this.$refs.dataForm.validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('/pat/Manage', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => {}) |
|||
}) |
|||
}, 1000, { leading: true, trailing: false }) |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.patientDialog { |
|||
.cycle-display { |
|||
.el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-input-number { |
|||
width: 100px; |
|||
margin-right: 16px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |
|||
<style lang="scss"> |
|||
.patientDialog { |
|||
.el-dialog__header { |
|||
margin-bottom:12px |
|||
} |
|||
.el-dialog__body { |
|||
padding-right: 30px; |
|||
} |
|||
.formItemOne .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
|
|||
} |
|||
</style> |
|||
<template> |
|||
<el-dialog |
|||
class="patientDialog" |
|||
:visible.sync="visible" |
|||
width="40%" |
|||
:title="dataForm.title" |
|||
@close="closeDialog" |
|||
> |
|||
<el-form ref="dataForm" :model="dataForm" :rules="dataRule"> |
|||
<el-form-item label="登记号:" label-width="120px" prop="patientId" class="formItemOne"> |
|||
<el-input v-model="dataForm.patientId" placeholder="请输入登记号" /> |
|||
</el-form-item> |
|||
<el-form-item label="患者姓名:" label-width="120px" prop="patientName"> |
|||
<el-input v-model="dataForm.patientName" placeholder="请输入姓名" /> |
|||
</el-form-item> |
|||
<el-form-item label="身份证号:" label-width="120px" prop="patientIdNumber"> |
|||
<el-input v-model="dataForm.patientIdNumber" placeholder="请输入身份证号" @change="handleBirth" /> |
|||
</el-form-item> |
|||
<el-form-item label="出生日期:" label-width="120px" prop="patientBirthday"> |
|||
<el-date-picker |
|||
v-model="dataForm.patientBirthday" |
|||
align="right" |
|||
type="date" |
|||
placeholder="选择日期" |
|||
value-format="yyyy-MM-dd" |
|||
/> |
|||
</el-form-item> |
|||
<el-form-item label="性别:" label-width="120px" prop="gender"> |
|||
<el-radio-group v-model="dataForm.patientSex" size="medium"> |
|||
<el-radio-button label="男">男</el-radio-button> |
|||
<el-radio-button label="女">女</el-radio-button> |
|||
<el-radio-button label="保密">保密</el-radio-button> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
<el-form-item label="联系电话:" label-width="120px" prop="patientPhone"> |
|||
<el-input v-model="dataForm.patientPhone" placeholder="请输入手机号" /> |
|||
</el-form-item> |
|||
<el-form-item label="家庭地址:" label-width="120px" prop="patientAddress"> |
|||
<el-input v-model="dataForm.patientAddress" placeholder="请输入地址" /> |
|||
</el-form-item> |
|||
<div style="border-bottom: 1px solid #ccc;margin-bottom: 20px" /> |
|||
<el-form-item required label="患者来源:" prop="patientSource" label-width="120px"> |
|||
<el-select v-model="dataForm.patientSource" placeholder="请选择患者来源"> |
|||
<el-option |
|||
v-for="item in sourceList" |
|||
:key="item.value" |
|||
:label="item.name" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="门诊医师:" prop="mzDoctorId" label-width="120px"> |
|||
<el-select v-model="dataForm.mzDoctorId" placeholder="请选择门诊医师"> |
|||
<el-option |
|||
v-for="item in mzDoctorList" |
|||
:key="item.id" |
|||
:label="item.realName" |
|||
:value="item.employeeId |
|||
" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="视光医师" prop="sgDoctorId" label-width="120px"> |
|||
<el-select v-model="dataForm.sgDoctorId" placeholder="请选择视光医师"> |
|||
<el-option |
|||
v-for="item in sgDoctorList" |
|||
:key="item.id" |
|||
:label="item.realName" |
|||
:value="item.employeeId |
|||
" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="眼别:" prop="zlEye" label-width="120px"> |
|||
<el-select v-model="dataForm.zlEye" placeholder="请选择眼别"> |
|||
<el-option v-for="item in zlEyeList" :key="item.value" :label="item.name" :value="item.value" /> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="医疗项目:" label-width="120px" prop="zlProjectCode"> |
|||
<el-select v-model="dataForm.zlProjectCode" multiple placeholder="请选择医疗项目"> |
|||
<el-option |
|||
v-for="item in projectList" |
|||
:key="item.itemId" |
|||
:label="item.itemName" |
|||
:value="item.itemId |
|||
" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="备注:" label-width="120px" prop="remarks"> |
|||
<el-input v-model="dataForm.remark" type="textarea" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button :disabled="disabled" type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
import { isMobile, isIDNumber } from '@/utils/validate' |
|||
export default { |
|||
data() { |
|||
return { |
|||
disabled: false, |
|||
visible: false, |
|||
dataForm: { |
|||
registerType: 1, |
|||
platform: 3, |
|||
patientId: '', |
|||
patientName: '', |
|||
patientIdNumber: '', |
|||
patientSex: '男', |
|||
patientPhone: '', |
|||
patientAddress: '', |
|||
patientBirthday: '', |
|||
mzDoctorId: '', // 门诊医师 |
|||
sgDoctorId: '', // 视光医师 |
|||
patientSource: '', |
|||
zlEye: 'ou', |
|||
zlProjectCode: [], |
|||
visitId: '', |
|||
remark: '' |
|||
}, |
|||
zlEyeList: [ |
|||
{ name: '左眼', value: 'os' }, |
|||
{ name: '右眼', value: 'od' }, |
|||
{ name: '双眼', value: 'ou' } |
|||
], |
|||
sourceList: [{ |
|||
name: '门诊', |
|||
value: '门诊' |
|||
}, { |
|||
name: '住院', |
|||
value: '住院' |
|||
} |
|||
], |
|||
params: {}, |
|||
mzDoctorList: [], |
|||
sgDoctorList: [], |
|||
projectList: [] |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule() { |
|||
var validataMobile = (rule, value, callback) => { |
|||
if (value && !isMobile(value)) { |
|||
return callback(new Error('您输入的手机号格式不正确')) |
|||
} |
|||
callback() |
|||
} |
|||
var validataIDNumber = (rule, value, callback) => { |
|||
if (value && !isIDNumber(value)) { |
|||
return callback(new Error('您输入的身份证格式不正确')) |
|||
} else if (!value) { |
|||
return callback(new Error('请输入身份证号')) |
|||
} |
|||
callback() |
|||
} |
|||
return { |
|||
patientId: [ |
|||
{ required: true, message: '请输入登记号', trigger: 'blur' } |
|||
], |
|||
patientName: [ |
|||
{ required: true, message: '请输入患者姓名', trigger: 'blur' } |
|||
], |
|||
patientIdNumber: [ |
|||
{ validator: validataIDNumber, trigger: 'blur' } |
|||
], |
|||
sgDoctorId: [ |
|||
{ required: false, message: '请选择视光医师', trigger: 'blur' } |
|||
], |
|||
patientSource: [ |
|||
{ required: true, message: '请选择患者来源', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
this.visible = true |
|||
this.dataForm.registerType = 1 |
|||
this.getDoctorList('视光医师') |
|||
this.getDoctorList('门诊医师') |
|||
this.getProject() |
|||
this.$nextTick(() => { |
|||
this.$refs.dataForm.resetFields() // 重置表单 |
|||
if (this.params.patientId && this.dataForm.title !== 'HIS引入') { |
|||
this.dataForm = { |
|||
title: this.dataForm.title, |
|||
...this.params |
|||
} |
|||
} else if (this.dataForm.title === 'HIS引入') { |
|||
this.getHisInfo() |
|||
} |
|||
}) |
|||
}, |
|||
handleBirth(value) { |
|||
if (value) { |
|||
const year = value.substr(6, 4) |
|||
const month = value.substr(10, 2) |
|||
const day = value.substr(12, 2) |
|||
this.dataForm.patientBirthday = `${year}-${month}-${day}` |
|||
} |
|||
}, |
|||
// 获取医师列表 |
|||
getDoctorList(val) { |
|||
this.$http.get('/sys/user', { params: { position: val }}).then(data => { |
|||
if (val === '视光医师') { |
|||
this.sgDoctorList = data.data.data |
|||
} else { |
|||
this.mzDoctorList = data.data.data |
|||
} |
|||
// this.dataForm.sgDoctorId = JSON.parse(window.localStorage.getItem('qg-userData')).employeeId |
|||
}) |
|||
}, |
|||
// 获取项目列表 |
|||
getProject() { |
|||
this.$http.get('/patient/getZlItemDict', { params: { type: this.dataForm.platform }}).then(data => { |
|||
this.projectList = data.data.data |
|||
}) |
|||
}, |
|||
// 获取His信息 |
|||
getHisInfo() { |
|||
this.dataForm = { ...this.dataForm, ...this.params } |
|||
this.dataForm.revisitCycles = this.dataForm.revisitCycles ? this.dataForm.revisitCycles : '1' |
|||
this.dataForm.revisitCyclesUnit = this.dataForm.revisitCyclesUnit ? this.dataForm.revisitCyclesUnit : '3' |
|||
this.dataForm.registerType = 0 |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function() { |
|||
this.disabled = true |
|||
this.$refs.dataForm.validate((valid) => { |
|||
if (!valid) { |
|||
this.disabled = false |
|||
return false |
|||
} |
|||
this.dataForm.zlProjectCode = this.dataForm.zlProjectCode.length && this.dataForm.zlProjectCode.join(',') |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('/patient/savePatient', this.dataForm) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}) |
|||
.catch(() => {}) |
|||
.finally(() => { this.disabled = false }) |
|||
}) |
|||
}, 1000, { leading: true, trailing: false }), |
|||
// 关闭弹框 |
|||
closeDialog() { |
|||
this.$emit('closeDialog') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
.patientDialog { |
|||
.cycle-display { |
|||
.el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-input-number { |
|||
width: 100px; |
|||
margin-right: 16px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
</style> |
|||
<style lang="scss"> |
|||
.patientDialog { |
|||
.el-dialog__header { |
|||
margin-bottom:12px |
|||
} |
|||
.el-dialog__body { |
|||
padding-right: 30px; |
|||
} |
|||
.formItemOne .el-form-item__content { |
|||
display: flex; |
|||
} |
|||
.el-date-editor.el-input, .el-date-editor.el-input__inner { |
|||
width: 100%; |
|||
} |
|||
} |
|||
</style> |
|||
|
Loading…
Reference in new issue