pengjun 4 weeks ago
parent
commit
35f3ab375c
  1. BIN
      public/pic/BG.png
  2. 132
      src/components/report/StatisticsOCX.vue
  3. 1
      src/store/index.js
  4. 16
      src/views/Home.vue
  5. 203
      src/views/fee-settings/DiagnosisTemplate.vue

BIN
public/pic/BG.png

After

Width: 1440  |  Height: 816  |  Size: 845 KiB

132
src/components/report/StatisticsOCX.vue

@ -49,9 +49,9 @@
</div>
<div style="width:100px;margin-top: 70px;">
<!-- <div class="btnList">
<el-button type="primary" @click="medicalPackageVisble = true" style="width:90px;">复制模板</el-button>
</div> -->
<div class="btnList">
<el-button type="primary" @click="diagnosisTemplateVisble = true" style="width:90px;">复制模板</el-button>
</div>
<div class="btnList">
<el-button type="primary" @click="btnOk('close')" style="width:90px;">确定 <i class="el-icon-check"></i>
</el-button>
@ -65,57 +65,37 @@
</div> -->
</div>
<!--复制套餐-->
<el-dialog title="诊断模板" :visible.sync="medicalPackageVisble" width="600px" height="400"
:show-close="false" :close-on-click-modal="false" :append-to-body="true">
<el-table :data="dict.medicalPackage" border height="350" row-key="id" size="small"
highlight-current-row @row-click="rowClick" @row-dblclick="rowDblclick" ref="patientList" style="margin-top: -30px;">
<!-- "displayName": "健康体检套餐",
"price": 20.00,
"forSexId": "0",
"isActive": "Y",
"remark": "2",
"displayOrder": 1,
"simpleCode": "JKTJTC",
"creatorName": "admin",
"lastModifierName": "users",
"lastModificationTime": "2023-08-04T16:34:02.94408",
"lastModifierId": "3a0ca83b-3116-da05-3916-dfd4c0c548cb",
"creationTime": "2023-07-10T19:53:30.210553",
"creatorId": "3a0c4180-107c-0c89-b25b-0bd34666dcec",
"id": "3a0c51d3-2345-38df-ba0b-1862a3c3606f" -->
<el-table-column type="index" width="50" />
<el-table-column prop="displayName" label="套餐名称" width="180"/>
<el-table-column prop="price" label="价格" width="80"/>
<el-table-column prop="forSexId" label="适用性别" width="80">
<template slot-scope="scope">
<div>
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}
</div>
</template>
<!--诊断模板-->
<el-dialog title="诊断模板" :visible.sync="diagnosisTemplateVisble" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<el-table :data="dict.diagnosisTemplates" border height="350" row-key="id" size="small" highlight-current-row
@row-click="rowClick" @row-dblclick="rowDblclick" ref="patientList" style="margin-top: -10px;">
<el-table-column type="index" width="50" label="序号" align="center" />
<!--
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="remark" label="备注" width="100"/>
<el-table-column prop="creatorName" label="创建人员" width="80"/>
<el-table-column prop="creationTime" label="创建日期" width="100">
-->
<el-table-column prop="displayName" width="150" label="诊断模板名称" align="center">
</el-table-column>
<el-table-column prop="creatorName" width="70" label="创建者" align="center">
</el-table-column>
<el-table-column prop="creationTime" label="创建时间" width="160" align="center">
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}
</div>
{{ moment(scope.row.creationTime).format("yyyy-MM-DD HH:mm:ss") }}
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人员" width="80"/>
<el-table-column prop="lastModificationTime" label="修改日期" width="100">
<el-table-column prop="lastModifierName" width="70" label="修改者" align="center">
</el-table-column>
<el-table-column prop="lastModificationTime" label="修改时间" width="160" align="center">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{ moment(scope.row.lastModificationTime).format("yyyy-MM-DD") }}
</div>
{{ moment(scope.row.lastModificationTime).format("yyyy-MM-DD HH:mm:ss") }}
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
<el-button type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button>
<el-button @click="diagnosisTemplateVisble = false" style="width:90px;">取消</el-button>
<el-button type="primary" @click="copyDiagnosisTemplate" style="width:90px;">确定</el-button>
</span>
</el-dialog>
@ -147,8 +127,8 @@ export default {
quickAsb: [], //
asbItemId: '', //ID
medicalPackageVisble:false,
curPackageId:'', //ID
diagnosisTemplateVisble: false,
diagnosisTemplateId: '', //ID
packageAsbitems: [], //
};
@ -171,7 +151,17 @@ export default {
moment, dddw,
dictInit() {
getapi('/api/app/diagnosis-template/in-filter')
.then(res => {
if (res.code > -1) this.dict.diagnosisTemplates = res.data
})
//
this.parseAsbitem();
},
//
@ -206,7 +196,12 @@ export default {
}
arrayReduce(this.asbItems, asbItemChoosed, 'id')
arrayReduce(this.asbItemQuick, asbItemChoosed, 'id')
this.diagnosis.dataAsbitemOCX = this.diagnosis.dataAsbitemOCX.concat(asbItemChoosed)
//
let tempArr = []
asbItemChoosed.forEach(e => {
if(arrayExistObj(this.diagnosis.dataAsbitemOCX,'id',e.id) < 0) tempArr.push(e)
});
this.diagnosis.dataAsbitemOCX = this.diagnosis.dataAsbitemOCX.concat(tempArr)
this.btnOk();
},
@ -270,33 +265,31 @@ export default {
}
},
//
async rowClick(row){
this.curPackageId = row.id
this.packageAsbitems = []
try {
let res = await postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem',{medicalPackageId:row.id})
this.packageAsbitems = res.data
} catch (error) {
console.log(error)
}
//
rowClick(row) {
this.diagnosisTemplateId = row.id
},
//
async rowDblclick(row){
await this.rowClick(row)
this.copyMedicalPackage()
//
rowDblclick(row) {
this.copyDiagnosisTemplate()
},
//()
copyMedicalPackage(){
if(!this.curPackageId){
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!"})
//()
copyDiagnosisTemplate() {
if (!this.diagnosisTemplateId) {
this.$message.warning({ showClose: true, message: "请先选择诊断模板!" })
return
}
console.log('this.packageAsbitems',this.packageAsbitems)
this.addAbs(this.packageAsbitems)
this.medicalPackageVisble = false
//
postapi('/api/app/diagnosistemplatedetail/getdiagnosistemplateindiagnosis', { diagnosisTemplateId: this.diagnosisTemplateId })
.then(res => {
if (res.code > -1) {
this.addAbs(res.data)
this.diagnosisTemplateVisble = false
}
})
},
btnOk(closed) {
@ -344,7 +337,6 @@ export default {
.disTotal {
margin-left: 10px;
}
</style>
<style>
.example .el-cascader-panel .el-radio {

1
src/store/index.js

@ -389,6 +389,7 @@ export default new Vuex.Store({
asbItemAll: [], //所有组合项目
asbItem: [], //显示的 未选组合项目
asbItemQuick: [], //显示的 未选组合项目(供快速选择)
diagnosisTemplates:[], //诊断模板
diagnosisLevel: [], //诊断级别
medicalCenter: [], // 体检中心
roomType: [

16
src/views/Home.vue

@ -140,6 +140,7 @@
</el-container>
</el-container>
</div>
<div class="homeBG" v-if="false"></div>
<!-- 修改密码弹框 -->
<el-dialog title="修改密码" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px">
@ -220,6 +221,9 @@ export default {
},
computed: {
...mapState(["window", "dialogWin", "sysConfig"]),
BGHeight(){
return String(this.window.pageHeight - 60) + 'px'
},
},
created() {
@ -300,8 +304,8 @@ export default {
// routeUrl tabsList
const ts = Date.now();
const base = node.routeUrl || targetPath;
const sep = base.indexOf('?') > -1 ? '&' : '?';
const full = base + sep + 't=' + ts;
//const sep = base.indexOf('?') > -1 ? '&' : '?';
const full = base //+ sep + 't=' + ts;
const tabToAdd = Object.assign({}, node, { routeUrl: full });
this.$store.commit('selectMenu', tabToAdd);
try {
@ -493,6 +497,14 @@ export default {
<style scoped>
@import "../assets/css/global_card.css";
.homeBG {
background-color: white;
background-image: url('/public/pic/BG.png');
background-size: cover;
height: v-bind("BGHeight");
width: 100%;
}
:deep .el-dropdown-menu__item {
color: #52555f;
font-size: 14px;

203
src/views/fee-settings/DiagnosisTemplate.vue

@ -2,32 +2,18 @@
<div class="box">
<div style="position: relative;">
<div class="middlebox">
<div class="contenttitle"
>
<div class="contenttitle">
基础资料 /
<span class="contenttitleBold"
>诊断模板</span
>
<span class="contenttitleBold">诊断模板</span>
</div>
</div>
<div style="display: block; margin-top: 7px;margin-right: 110px;">
<div style="margin-bottom: 15px;background-color: #fff;padding: 15px;border-radius: 8px;">
<el-table
:data="tableData"
row-key="id"
width="100%"
:height="
window.pageHeight < 600
<el-table :data="tableData" row-key="id" width="100%" :height="window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 220) / 2)
"
class="el-table__body-wrapper tbody"
border:stripe="true"
@row-click="rowick"
@row-dblclick="dblClick"
ref="info"
highlight-current-row
>
" class="el-table__body-wrapper tbody" border:stripe="true" @row-click="rowick"
@row-dblclick="dblClick" ref="info" highlight-current-row>
<el-table-column prop="id" label="编号" width="300">
</el-table-column>
<el-table-column prop="displayName" label="名称">
@ -41,34 +27,23 @@
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者">
</el-table-column>
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="180"
>
<el-table-column prop="lastModificationTime" label="修改时间" width="180">
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column label="操作" width="" align="center">
<template>
<el-tag
class="move"
style="
<el-tag class="move" style="
cursor: move;
background-color: rgb(245, 245, 245);
border: none;
"
draggable="true"
>
<i
class="el-icon-d-caret"
style="
" draggable="true">
<i class="el-icon-d-caret" style="
width: 1rem;
height: 1rem;
color: rgb(113, 113, 113);
"
></i>
"></i>
</el-tag>
</template>
</el-table-column>
@ -78,118 +53,59 @@
<div class="mainbox" style="margin-top: 0px">
<div class="mainleftbox">
<div>
<span style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">项目类别</span>
<el-cascader
:options="dict.itemTypeTree"
v-model="itemTypeIds"
:props="{
<span
style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" :props="{
checkStrictly: true,
expandTrigger: 'hover',
...customerOrg.treeprops,
}"
popper-class="example"
@change="getAsbItemByItemType"
size="small"
ref="itemTypeIds"
>
}" popper-class="example" @change="getAsbItemByItemType" size="small" ref="itemTypeIds">
</el-cascader>
</div>
<div :style="'width:' + Math.floor((window.pageWidth - 300) / 2) + 'px;'">
<el-table
:data="dict.asbItem"
:height="
window.pageHeight < 600
<el-table :data="dict.asbItem" :height="window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 200) / 2)"
highlight-current-row
@row-dblclick="dbClickChoosedAsb"
@selection-change="handleSelectionChange"
:row-class-name="handleRowClassName"
@row-click="chooseAsbItem"
>
<el-table-column
type="index"
align="center"
label="序号"
/>
: Math.floor((window.pageHeight - 200) / 2)" highlight-current-row
@row-dblclick="dbClickChoosedAsb" @selection-change="handleSelectionChange"
:row-class-name="handleRowClassName" @row-click="chooseAsbItem">
<el-table-column type="index" align="center" label="序号" />
<el-table-column prop="displayName" label="未选诊断" />
</el-table>
</div>
</div>
<div class="Selectbutton">
<div>
<el-button
class="commonbutton"
@click="addAbs(asbItemChoosed, 'choosed')"
>添加 <i class="el-icon-arrow-right"></i
></el-button>
<el-button class="commonbutton" @click="addAbs(asbItemChoosed, 'choosed')">添加 <i
class="el-icon-arrow-right"></i></el-button>
</div>
<div style="margin-top: 18px">
<el-button
class="difference"
@click="addAbs(asbItemChoosed, 'all')"
>全部添加</el-button
>
<el-button class="difference" @click="addAbs(asbItemChoosed, 'all')">全部添加</el-button>
</div>
<div style="margin-top: 18px">
<el-button
class="commonbutton"
@click="delAbs(patientRegisterAbsChoosed, 'choosed')"
>移除 <i class="el-icon-arrow-left"></i
></el-button>
<el-button class="commonbutton" @click="delAbs(patientRegisterAbsChoosed, 'choosed')">移除 <i
class="el-icon-arrow-left"></i></el-button>
</div>
<div style="margin-top: 18px">
<el-button
class="difference"
@click="delAbs(patientRegisterAbsChoosed, 'all')"
>全部移除</el-button
>
<el-button class="difference" @click="delAbs(patientRegisterAbsChoosed, 'all')">全部移除</el-button>
</div>
</div>
<div class="mainleftbox">
<div>
<span style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">快速选择</span>
<el-select
v-model="asbItemId"
placeholder="快速选择诊断"
size="small"
filterable
default-first-option
:filter-method="filterMethod"
clearable
@clear="quickAsb = deepCopy(dict.asbItemQuick)"
@change="quickChoosedAsb"
ref="quickAsbOCX"
>
<el-option
v-for="item in quickAsb"
:key="item.id"
:value="item.id"
:label="item.displayName"
/>
<span
style="padding: 5px;font-size: 14px;font-weight: 400;color: #232748;font-family: NotoSansSC-Regular;margin-bottom: 10px;">快速选择</span>
<el-select v-model="asbItemId" placeholder="快速选择诊断" size="small" filterable default-first-option
:filter-method="filterMethod" clearable @clear="quickAsb = deepCopy(dict.asbItemQuick)"
@change="quickChoosedAsb" ref="quickAsbOCX">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select>
</div>
<div :style="'width:' + Math.floor((window.pageWidth - 300) / 2) + 'px;'">
<el-table
:data="sampleGroupAsbitems"
:height="
window.pageHeight < 600
<el-table :data="sampleGroupAsbitems" :height="window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 200) / 2)"
@selection-change="selecteditems"
highlight-current-row
:row-class-name="handleRowClassName"
@row-dblclick="removeAbs"
@row-click="removeAsbItem"
:summary-method="getSummaries"
show-summary
ref="table"
>
<el-table-column
type="index"
align="center"
label="序号"
/>
: Math.floor((window.pageHeight - 200) / 2)" @selection-change="selecteditems"
highlight-current-row :row-class-name="handleRowClassName" @row-dblclick="removeAbs"
@row-click="removeAsbItem" :summary-method="getSummaries" show-summary ref="table">
<el-table-column type="index" align="center" label="序号" />
<el-table-column prop="displayName" label="已选诊断" />
</el-table>
</div>
@ -214,9 +130,7 @@
<el-button @click="btnSetButtom" class="commonbutton">置底</el-button>
</div>
<div style="margin-top: 10px">
<el-button :disabled="isshow" @click="btnSaveSort" class="commonbutton"
>排序</el-button
>
<el-button :disabled="isshow" @click="btnSaveSort" class="commonbutton">排序</el-button>
</div>
<div style="margin-top: 10px">
<el-button @click="saveAsb" class="commonbutton">确定项目</el-button>
@ -224,24 +138,14 @@
</div>
</div>
<!-- 新增弹框 -->
<el-dialog
:title="title == 1 ? '新增' : '修改'"
:visible.sync="dialogVisible"
width="520px"
:close-on-click-modal="false"
@close="closeDialog"
>
<el-dialog :title="title == 1 ? '新增' : '修改'" :visible.sync="dialogVisible" width="520px"
:close-on-click-modal="false" @close="closeDialog">
<el-form ref="form" :model="form" label-width="80px" :rules="rules">
<el-row>
<el-col :span="24">
<el-form-item label="名称" prop="displayName">
<el-input
ref="refinput"
v-model="form.displayName"
style="width: 100%"
size="small"
></el-input> </el-form-item
></el-col>
<el-input ref="refinput" v-model="form.displayName" style="width: 100%" size="small"></el-input>
</el-form-item></el-col>
</el-row>
<el-row>
<el-col :span="12">
@ -826,8 +730,7 @@ export default {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/diagnosistemplate/updatemanysort?id=${
this.form.id
`/api/app/diagnosistemplate/updatemanysort?id=${this.form.id
}&SortType=${2}`
).then((res) => {
if (res.code != -1) {
@ -844,8 +747,7 @@ export default {
this.$message.warning("请选择操作的数据");
} else {
putapi(
`/api/app/diagnosistemplate/updatemanysort?id=${
this.form.id
`/api/app/diagnosistemplate/updatemanysort?id=${this.form.id
}&SortType=${1}`
).then((res) => {
if (res.code != -1) {
@ -1070,6 +972,7 @@ export default {
.mainleftbox {
flex: 1;
}
.Selectbutton {
margin: 0 20px;
display: flex;
@ -1077,74 +980,92 @@ export default {
justify-content: center;
align-items: center;
}
.mainbox {
display: flex;
justify-content: center;
margin-top: 5px;
}
.box {
display: flex;
flex-direction: column;
}
/* form表单每一项的下边距 */
:deep .el-form-item {
margin-bottom: 14px;
}
/* 去掉input textarea的手动扩张样式 */
:deep(.el-textarea__inner) {
resize: none;
}
/* el-dialog的头部样式 */
:deep .el-dialog__header {
padding: 11px 20px 11px;
}
/* el-dialog的主体样式 */
:deep .el-dialog__body {
padding: 0px 20px 0px;
}
/* el-divider样式 */
:deep .el-divider--horizontal {
margin: 0px 0 12px;
}
/* el-dialog的底部样式 */
:deep .el-dialog__footer {
padding: 0px 20px 14px;
}
/* 默认结果后面下拉框样式 */
:deep .downText .el-input--suffix .el-input__inner {
width: 0;
height: 100%;
padding: 0 19px;
}
/* 默认结果后面下拉框图标样式 */
:deep .downText .el-input--suffix .el-input__suffix {
right: 12px;
}
/* 默认结果后面下拉框 */
:deep .downText {
display: flex !important;
}
/* 诊断函数后面按钮样式 */
:deep .el-input-group__append {
padding: 0 11px;
}
/* 默认结果整体样式 */
.my-el-form-item :deep .el-form-item__content {
line-height: 0 !important;
}
.my-el-form-item :deep .el-input__icon {
line-height: 0 !important;
}
/* 指引信息 */
.guidelines :deep .el-form-item {
margin-bottom: 0;
}
.seachinput {
width: 250px;
}
:deep .seachinput .el-select {
width: 100%;
}
.layeredleftright {
display: flex;
flex-direction: column;

Loading…
Cancel
Save