mch 3 years ago
parent
commit
ba057af439
  1. 11
      src/assets/css/global.css
  2. 54
      src/components/doctorCheck/CheckItemList.vue
  3. 22
      src/components/patientRegister/PatientRegisterItem.vue
  4. 240
      src/components/patientRegister/PatientRegisterList.vue
  5. 13
      src/components/patientRegister/patientRegisterAsbItem.vue

11
src/assets/css/global.css

@ -0,0 +1,11 @@
.el-table .warning-row {
background: rgb(240, 125, 125);
}
.el-table .refuse-row {
background: rgb(192, 192, 192);
}
.el-table .purple-row {
background: rgb(255, 0, 255);
}

54
src/components/doctorCheck/CheckItemList.vue

@ -1,42 +1,21 @@
<template> <template>
<div> <div>
<el-table
:data="doctorCheck.checkItemList"
style="width: 100%"
:height="
window.pageHeight < 600
? Math.floor(((380 - 40) * 3) / 5)
: Math.floor(((window.pageHeight - 220 - 40) * 3) / 5)
"
:row-style="{ height: '30px' }"
border
@row-click="rowClick"
>
<el-table :data="doctorCheck.checkItemList" style="width: 100%" :height="window.pageHeight < 600
? Math.floor(((380 - 40) * 3) / 5)
: Math.floor(((window.pageHeight - 220 - 40) * 3) / 5)
" :row-style="{ height: '30px' }" border @row-click="rowClick">
<el-table-column prop="itemName" label="项目" width="180" /> <el-table-column prop="itemName" label="项目" width="180" />
<el-table-column prop="result" label="结果" width="500"> <el-table-column prop="result" label="结果" width="500">
<template slot-scope="scope"> <template slot-scope="scope">
<el-autocomplete
style="width: 480px"
class="inline-input"
type="textarea"
v-model="doctorCheck.checkItemList[scope.$index].result"
:fetch-suggestions="querySearch"
placeholder="请输入结果值"
@select="handleSelect"
:disabled="
doctorCheck.RegisterCheckEdit.completeFlag == '1' ||
<el-autocomplete style="width: 480px" class="inline-input" type="textarea"
v-model="doctorCheck.checkItemList[scope.$index].result" :fetch-suggestions="querySearch" placeholder="请输入结果值"
@select="handleSelect" :disabled="doctorCheck.RegisterCheckEdit.completeFlag == '1' ||
doctorCheck.RegisterCheckEdit.completeFlag == '2' doctorCheck.RegisterCheckEdit.completeFlag == '2'
"
:autosize="{ minRows: 1, maxRows: 100 }"
/>
" :autosize="{ minRows: 1, maxRows: 100 }" />
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="unit" label="单位" width="80" /> <el-table-column prop="unit" label="单位" width="80" />
<el-table-column
prop="referenceRangeValue"
label="参考范围"
width="120"
/>
<el-table-column prop="referenceRangeValue" label="参考范围" width="120" />
</el-table> </el-table>
</div> </div>
</template> </template>
@ -56,10 +35,10 @@ export default {
}; };
}, },
created() {},
created() { },
// //
mounted() {},
mounted() { },
computed: { computed: {
...mapState(["window", "dict", "doctorCheck"]), ...mapState(["window", "dict", "doctorCheck"]),
@ -134,16 +113,13 @@ export default {
}, },
}; };
</script> </script>
<style scoped>
<style lang="scss" scoped>
@import "../../assets/css/global.css";
::v-deep .el-table td.el-table__cell, ::v-deep .el-table td.el-table__cell,
.el-table th.el-table__cell.is-leaf { .el-table th.el-table__cell.is-leaf {
padding: 0; padding: 0;
} }
.el-table .warning-row {
background: rgb(240, 125, 125);
}
.el-table .refuse-row {
background: rgb(192, 192, 192);
}
</style> </style>

22
src/components/patientRegister/PatientRegisterItem.vue

@ -8,9 +8,8 @@
clearable filterable @change="getAsbItemByItemType" size="small"> clearable filterable @change="getAsbItemByItemType" size="small">
</el-cascader> </el-cascader>
</div> </div>
<div class="mainareaBox"> <div class="mainareaBox">
<el-table :header-cell-style="{ background: '#eef1f6' }" :data="dict.asbItem"
<el-table :data="dict.asbItem"
:height="(window.pageHeight > 735 ? (window.pageHeight - 537) : 198)" @row-dblclick="dbClickChoosedAsb" :height="(window.pageHeight > 735 ? (window.pageHeight - 537) : 198)" @row-dblclick="dbClickChoosedAsb"
@selection-change="handleSelectionChange" size="small"> @selection-change="handleSelectionChange" size="small">
<el-table-column type="selection" align="center" /> <el-table-column type="selection" align="center" />
@ -26,7 +25,7 @@
<div style="text-align: center;">{{ ldddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}</div> <div style="text-align: center;">{{ ldddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}</div>
</template> </template>
</el-table-column> </el-table-column>
-->
-->
</el-table> </el-table>
</div> </div>
</div> </div>
@ -189,11 +188,14 @@ export default {
return moment(new Date(date)).format(forMat); return moment(new Date(date)).format(forMat);
}, },
tableRowClassName(){
tableRowClassName({row, rowIndex}){
//console.log(row)
if (row.groupPackageId) { if (row.groupPackageId) {
return 'warning-row'; //
}
return '';
//console.log('row.groupPackageId',row.groupPackageId)
return 'purple-row'; //
}else{
return '';
}
}, },
// //
// [ // [
@ -768,7 +770,6 @@ export default {
if (!this.discountFoucs) this.discount = Number(this.total * 100 / this.totalStand).toFixed(2); if (!this.discountFoucs) this.discount = Number(this.total * 100 / this.totalStand).toFixed(2);
return sums; return sums;
}, },
}, },
// //
@ -802,6 +803,8 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "../../assets/css/global.css";
.mainareaBox { .mainareaBox {
border: 1px solid #000; border: 1px solid #000;
height: v-bind("(window.pageHeight > 735 ? (window.pageHeight - 535) : 200) + 'px'"); height: v-bind("(window.pageHeight > 735 ? (window.pageHeight - 535) : 200) + 'px'");
@ -846,8 +849,5 @@ input[type="number"]::-webkit-outer-spin-button {
margin: 0 !important; margin: 0 !important;
} }
.el-table .purple-row {
background: rgb(128, 0, 128);
}
</style> </style>

240
src/components/patientRegister/PatientRegisterList.vue

@ -165,10 +165,10 @@
<el-button type="primary" class="btnClass">健康档案</el-button> <el-button type="primary" class="btnClass">健康档案</el-button>
</div> </div>
<div class="listBtn"> <div class="listBtn">
<el-button type="primary" class="btnClass">调整分组</el-button>
<el-button type="primary" class="btnClass" @click="btnGroupBatch">调整分组</el-button>
</div> </div>
<div class="listBtn"> <div class="listBtn">
<el-button type="primary" class="btnClass">调整项目</el-button>
<el-button type="primary" class="btnClass" @click="asbBatch">调整项目</el-button>
</div> </div>
<div class="listBtn"> <div class="listBtn">
<el-button type="primary" class="btnClass" @click="guidePrint('0001', false)">指引单打印</el-button> <el-button type="primary" class="btnClass" @click="guidePrint('0001', false)">指引单打印</el-button>
@ -195,6 +195,90 @@
:close-on-click-modal="false"> :close-on-click-modal="false">
<div>{{ guideMsg }}</div> <div>{{ guideMsg }}</div>
</el-dialog> </el-dialog>
<!-- 批量调整分组 -->
<el-dialog title="批量调整分组" :visible.sync="dialogGroup" width="400" height="800" :append-to-body="true"
:close-on-click-modal="false">
<div>
<div>
批量调整分组只针对单位体检有效个人体检将忽略此操作不能调整已收费或已检的项目及已总检的体检人员
</div>
<div>
<br /><span>分组</span>
<el-select v-model="groupBatch.customerOrgGroupId" placeholder="请选择" filterable size="small">
<el-option v-for="item in patientRegister.customerOrgGroup" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</div>
<div>
<br /><el-radio v-model="groupBatch.payTypeFlag" label="0">个人支付</el-radio>
<br /><el-radio v-model="groupBatch.payTypeFlag" label="1">单位支付</el-radio>
<br /><el-radio v-model="groupBatch.payTypeFlag" label="2">免费</el-radio>
</div>
<div>
<br /><el-checkbox v-model="groupBatch.isReserveAddAsbitem">保留加做项目包括不属于原分组的没有设置分组的</el-checkbox>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="groupBatchHandle"> </el-button>
<el-button @click="dialogGroup = false"> </el-button>
</span>
</el-dialog>
<!-- 批量调整分组 -->
<el-dialog title="批量调整项目" :visible.sync="dialogAsbitem" width="400" height="800" :append-to-body="true"
:close-on-click-modal="false">
<div>
<div>
批量调整分组只针对单位体检有效个人体检将忽略此操作不能调整已收费或已检的项目及已总检的体检人员
</div>
<div>
<br /><el-radio v-model="asbitemBatch.operate" label="add">增加项目</el-radio>
<el-radio v-model="asbitemBatch.operate" label="del">删除项目</el-radio>
</div>
<div>
<br /><el-checkbox v-model="asbitemBatch.isDeleteGroup" :disabled="asbitemBatch.operate == 'add' ? true:false" >如果删除项目属于分组则删除体检记录信息的分组设置</el-checkbox>
</div>
<div>
<br /><span>直接录入</span>
<el-select v-model="asbitemBatch.asbItemId" placeholder="快速选择组合项目" size="small" filterable clearable remote
:remote-method="remoteMethod" @change="quickChoosedAsb" default-first-option
style="width:150px;text-align: left;padding-right: 15px;">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select>
</div>
<div>
<el-table :data="asbitemBatch.asbitemsTemp"
height="200" width="100%"
show-summary @row-dblclick="removeAbs" size="small" @row-click="rowClickaAbitemCurr">
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column v-if="asbitemBatch.operate == 'add' ? true:false" label="数量" prop="amount" width="50">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.amount" size="small" />
</template>
</el-table-column>
<el-table-column v-if="asbitemBatch.operate == 'add' ? true:false" label="实收价格" prop="chargePrice" width="70">
<template slot-scope="scope">
<el-input type="number" v-model="patientRegister.patientRegisterAbs[scope.$index].chargePrice" size="small" />
</template>
</el-table-column>
<el-table-column v-if="asbitemBatch.operate == 'add' ? true:false" label="支付方式" prop="payTypeFlag" width="100">
<template slot-scope="scope">
<el-select v-model="scope.row.payTypeFlag" size="small">
<el-option v-for="item in dict.payType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</template>
</el-table-column>
</el-table>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="asbitemBatchHandle"> </el-button>
<el-button @click="dialogAsbitem = false"> </el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
@ -227,13 +311,60 @@ export default {
rClickRow: null, // rClickRow: null, //
rClickColumn: null, // rClickColumn: null, //
dialogGroup: false,
groupBatch: {
patientRegisterId: null,
customerOrgGroupId: null,
payTypeFlag: "1", //01 2
isReserveAddAsbitem: true, //
},
dialogAsbitem:false,
asbitemBatch:{
operate:'add',
isDeleteGroup:false,
asbItemId:'',
asbitemsTemp:[], //
asbitemCurr:{}, //()
},
quickAsb:[], //
asbitemDelBatch:{
isDeleteGroup:'N',
patientRegisterId:null,
asbitemIds:[],
},
asbitemAddBatch:{
organizationUnitId: null,
createRegisterAsbitemDtos: [],
// [
// {
// asbitemId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "standardPrice": 0,
// "chargePrice": 0,
// "payTypeFlag": "string",
// "isCharge": "string",
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "amount": 0,
// "groupPackageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
// ]
},
}; };
}, },
created() { }, created() { },
// //
mounted() { },
mounted() {
this.quickAsb = this.dict.asbItemAll;
},
computed: { computed: {
...mapState(["window", "dict", "patientRegister", "customerOrg"]), ...mapState(["window", "dict", "patientRegister", "customerOrg"]),
}, },
@ -246,7 +377,7 @@ export default {
let user = localStorage.getItem('user'); let user = localStorage.getItem('user');
let toOutShell = { let toOutShell = {
ReportCode, token, ReportCode, token,
preViewCanPrint:'N',
preViewCanPrint: 'N',
Parameters: [ Parameters: [
{ Name: 'printer', Value: user }, { Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, { Name: 'hisLog', Value: 'pic/hisLog.jpg' },
@ -364,6 +495,7 @@ export default {
this.getPatientRegisterAbs(); this.getPatientRegisterAbs();
}, },
edit() { edit() {
if (!this.patientRegister.patientRegisterRd.id) { if (!this.patientRegister.patientRegisterRd.id) {
alert("请选择要操作的记录"); alert("请选择要操作的记录");
@ -570,6 +702,100 @@ export default {
return false; return false;
}, },
//
btnGroupBatch() {
let customerOrgId = this.patientRegister.query.customerOrgId;
if (!customerOrgId) {
alert("请选择单位或个人");
return;
}
if (this.multipleSelection.length < 1) {
this.$message.info("请勾选要操作的人员!");
return;
}
this.dialogGroup = true;
},
//
async groupBatchHandle() {
let groupBatch = { patientRegisterId: null, ...this.groupBatch };
if (groupBatch.isReserveAddAsbitem) {
groupBatch.isReserveAddAsbitem = 'Y';
} else {
groupBatch.isReserveAddAsbitem = 'N';
}
console.log('groupBatch', groupBatch);
if (!groupBatch.customerOrgGroupId) {
this.$message.warning("请选择分组");
return;
}
for (let i = 0; i < this.multipleSelection.length; i++) {
groupBatch.patientRegisterId = this.multipleSelection[i].id;
try {
await postapi('/api/app/patientregister/updatepatientregistercustomerorggroup', groupBatch);
} catch (error) {
console.log(error);
}
}
this.dialogGroup = false;
},
remoteMethod(){
},
//
quickChoosedAsb(){
},
//
removeAbs(row){
let lfind = arrayExistObj(this.asbitemBatch.asbitemsTemp,'asbitemId',row.asbitemId);
if(lfind > - 1){
this.asbitemBatch.asbitemsTemp.slice(lfind,1);
}
},
rowClickaAbitemCurr(row){
this.asbitemBatch.asbitemCurr = row;
},
btnRemoveAbs(){
if(!this.asbitemBatch.asbitemCurr.asbitemId){
this.$message.warning("请选择要删除的组合项目!");
return;
}
this.removeAbs(this.asbitemBatch.asbitemCurr);
this.asbitemBatch.asbitemCurr.asbitemId = null;
},
removeAllAbs(){
this.asbitemBatch.asbitemsTemp = [];
},
//
asbBatch() {
let customerOrgId = this.patientRegister.query.customerOrgId;
if (!customerOrgId) {
alert("请选择单位或个人");
return;
}
this.dialogAsbitem = true;
this.quickAsb = this.dict.asbItemAll;
},
asbitemBatchHandle(){
},
// //
async lisRequest(prId) { async lisRequest(prId) {
let isPrintLisRequest = false let isPrintLisRequest = false
@ -620,7 +846,7 @@ export default {
let user = localStorage.getItem('user'); let user = localStorage.getItem('user');
let toOutShell = { let toOutShell = {
ReportCode, token, ReportCode, token,
preViewCanPrint:'N',
preViewCanPrint: 'N',
Parameters: [ Parameters: [
{ Name: 'printer', Value: user }, { Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, { Name: 'hisLog', Value: 'pic/hisLog.jpg' },
@ -678,7 +904,7 @@ export default {
let user = localStorage.getItem('user'); let user = localStorage.getItem('user');
let toOutShell = { let toOutShell = {
ReportCode, token, ReportCode, token,
preViewCanPrint:'Y',
preViewCanPrint: 'Y',
Parameters: [ Parameters: [
{ Name: 'printer', Value: user }, { Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' }, { Name: 'hisLog', Value: 'pic/hisLog.jpg' },
@ -686,7 +912,7 @@ export default {
}; };
if (isPreview) {
if (isPreview) {
//http://140.143.162.39:9529/api/app/printreport/getpacsnoreport?PatientRegisterId=3a0c990e-5756-2dc0-19d5-69a617fe4048 //http://140.143.162.39:9529/api/app/printreport/getpacsnoreport?PatientRegisterId=3a0c990e-5756-2dc0-19d5-69a617fe4048
//this.multipleSelection.forEach((item,index) =>{ //this.multipleSelection.forEach((item,index) =>{
postapi(`/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`) postapi(`/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`)

13
src/components/patientRegister/patientRegisterAsbItem.vue

@ -5,7 +5,7 @@
:data="patientRegister.patientRegisterAbs" :data="patientRegister.patientRegisterAbs"
border border
:height="patientRegister.prAsbItemHeight" :height="patientRegister.prAsbItemHeight"
size="small"
size="small" :row-class-name="tableRowClassName"
highlight-current-row highlight-current-row
:summary-method="getSummaries" :summary-method="getSummaries"
show-summary show-summary
@ -87,6 +87,16 @@ export default {
return moment(new Date(date)).format(forMat); return moment(new Date(date)).format(forMat);
}, },
tableRowClassName({row, rowIndex}){
//console.log(row)
if (row.groupPackageId) {
//console.log('row.groupPackageId',row.groupPackageId)
return 'purple-row'; //
}else{
return '';
}
},
// //
getSummaries(param) { getSummaries(param) {
const { columns, data } = param; const { columns, data } = param;
@ -128,6 +138,7 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
@import "../../assets/css/global.css";
.box { .box {
display: flex; display: flex;
} }

Loading…
Cancel
Save