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