Browse Source

merge

master
pengjun 2 years ago
parent
commit
8a3054c6a8
  1. 4
      src/components/customerOrg/ContactPerson.vue
  2. 2
      src/components/customerOrg/customerOrgRegister.vue
  3. 54
      src/components/patientRegister/LisRequest.vue
  4. 238
      src/components/patientRegister/MergeAsbitem.vue
  5. 30
      src/components/patientRegister/PatientRegisterEdit.vue
  6. 4
      src/components/patientRegister/PatientRegisterItem.vue
  7. 4
      src/components/patientRegister/PatientRegisterList.vue
  8. 27
      src/components/patientRegister/patientRegisterAsbItem.vue
  9. 2
      src/components/patientRegister/patientRegisterQuery.vue
  10. 3
      src/store/index.js
  11. 48
      src/views/customerOrg/customerOrg.vue
  12. 51
      src/views/customerOrg/patientRegister.vue

4
src/components/customerOrg/ContactPerson.vue

@ -2,7 +2,7 @@
<div>
<div style="display: flex;">
<div :style="'width:' + (window.pageWidth - 200 - 120 - 90) + 'px;'">
<el-table :data="customerOrg.contactPersonList" border :height="(window.pageHeight < 600 ? 148:window.pageHeight - 452)/2"
<el-table :data="customerOrg.contactPersonList" border :height="(window.pageHeight < 600 ? 54:window.pageHeight - 492)/2"
size="small" highlight-current-row @row-click="rowClick" ref="customerOrg.contactPersonList">
<el-table-column prop="displayName" label="姓名" />
<el-table-column prop="title" label="职务" />
@ -21,7 +21,7 @@
</el-table-column>
</el-table>
<el-table :data="customerOrg.contactMethodList" border :height="(window.pageHeight < 600 ? 148:window.pageHeight - 452)/2"
<el-table :data="customerOrg.contactMethodList" border :height="(window.pageHeight < 600 ? 54:window.pageHeight - 492)/2"
size="small" highlight-current-row @row-click="rowClickMethod" ref="customerOrg.contactMethodList">
<el-table-column prop="contactMethodType" label="类型">
<template slot-scope="scope">

2
src/components/customerOrg/customerOrgRegister.vue

@ -1,7 +1,7 @@
<template>
<div style="display: flex;">
<div :style="'width:' + (window.pageWidth - 200 - 120 - 90) + 'px;'">
<el-table :data="customerOrg.customerOrgRegisterList" border :height="window.pageHeight < 600 ? 148:window.pageHeight - 452" size="small"
<el-table :data="customerOrg.customerOrgRegisterList" border :height="window.pageHeight < 600 ? 108:window.pageHeight - 492" size="small"
highlight-current-row @row-click="rowClick" ref="customerOrg.customerOrgRegisterList">
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="beginTime" label="开始日期">

54
src/components/patientRegister/LisRequest.vue

@ -1,48 +1,22 @@
<template>
<div>
<div>
<el-table
:data="tableData"
border
style="width: 100%"
row-key="id"
height="300"
highlight-current-row
size="small"
>
<el-table :data="tableData" border style="width: 100%" row-key="id" height="300" highlight-current-row size="small">
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column label="操作" width="130" prop="operate">
<template slot-scope="scope">
<el-select
v-model="scope.row.operate"
placeholder="请操作方式"
size="small"
:disabled="scope.row.disabled"
@change="changeOperate(scope.row)"
>
<el-option
v-for="(item, index) in options"
:key="index"
:label="item.label"
:value="item.value"
/>
<el-select v-model="scope.row.operate" placeholder="请操作方式" size="small" :disabled="scope.row.disabled"
@change="changeOperate(scope.row)">
<el-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column label="条码分组" width="120" prop="sampleGroupName" />
<el-table-column label="检验申请号" width="180" prop="lisRequestNo">
<template slot-scope="scope">
<el-select
v-model="scope.row.lisRequestNo"
size="small"
:disabled="scope.row.disabled"
>
<el-option
v-for="(item, index) in lisRequestNos"
:key="index"
:label="item.lisRequestNo"
:value="item.lisRequestId"
/>
<el-select v-model="scope.row.lisRequestNo" size="small" :disabled="scope.row.disabled">
<el-option v-for="(item, index) in lisRequestNos" :key="index" :label="item.lisRequestNo"
:value="item.lisRequestId" />
</el-select>
</template>
</el-table-column>
@ -51,19 +25,13 @@
<!-- 按钮区域 -->
<div style="display: flex; margin-top: 30px; margin-left: 280px">
<div style="margin-left: 10px">
<el-button type="primary" @click="submit">确定</el-button>
<el-button type="primary" @click="submit" style="width:80px;">确定</el-button>
</div>
<div style="margin-left: 10px">
<el-button type="success" @click="lisPrint('0002', false)"
>条码打印</el-button
>
<el-button type="success" @click="lisPrint('0002', false)" style="width:80px;">条码打印</el-button>
</div>
<div style="margin-left: 10px">
<el-button
type="danger"
@click="patientRegister.lisRequestVisble = false"
>关闭</el-button
>
<el-button type="danger" @click="patientRegister.lisRequestVisble = false" style="width:80px;">关闭</el-button>
</div>
</div>
</div>
@ -89,7 +57,7 @@ export default {
};
},
created() {},
created() { },
mounted() {
this.getAsbItemList(this.id);

238
src/components/patientRegister/MergeAsbitem.vue

@ -0,0 +1,238 @@
<template>
<div>
<div>
<el-table :data="tableData" border style="width: 100%" row-key="id" height="300" highlight-current-row size="small">
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column label="操作" width="130" prop="operate">
<template slot-scope="scope">
<el-select v-model="scope.row.operate" placeholder="请操作方式" size="small" :disabled="scope.row.disabled"
@change="changeOperate(scope.row)">
<el-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column label="条码分组" width="120" prop="sampleGroupName" />
<el-table-column label="检验申请号" width="180" prop="lisRequestNo">
<template slot-scope="scope">
<el-select v-model="scope.row.lisRequestNo" size="small" :disabled="scope.row.disabled">
<el-option v-for="(item, index) in lisRequestNos" :key="index" :label="item.lisRequestNo"
:value="item.lisRequestId" />
</el-select>
</template>
</el-table-column>
</el-table>
</div>
<!-- 按钮区域 -->
<div style="display: flex; margin-top: 30px; margin-left: 280px">
<div style="margin-left: 10px">
<el-button type="primary" @click="submit" style="width:80px;">合并项目</el-button>
</div>
<div style="margin-left: 10px">
<el-button type="info" @click="lisPrint('0002', false)" style="width:80px;">取消合并</el-button>
</div>
<div style="margin-left: 10px">
<el-button type="danger" @click="patientRegister.mergeAsbitemVisble = false" style="width:80px;">关闭</el-button>
</div>
</div>
</div>
</template>
<script>
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { examinationgender } from "@/request/systemapi";
import { dddw, arrayExistObj } from "../../utlis/proFunc";
// import
export default {
props: ["id", "brushTimes"],
data() {
return {
tableData: [], //
options: [
{ label: "无", value: "no" },
{ label: "追加到以前条码", value: "append" },
{ label: "申请新的条码", value: "new" },
], //
lisRequestNos: [], //
};
},
created() { },
mounted() {
this.getAsbItemList(this.id);
},
computed: {
...mapState(["patientRegister"]),
},
methods: {
parseData(asbItem) {
// "registerAsbitemId": "3a0d2e90-db36-09fe-4210-53fadb4f7d02",
// asbitemId": "3a0c5600-ae78-9ed4-e3c1-993ef41d3c51",
// "asbitemName": "",
// "isCharge": "N",
// "completeFlag": "0",
// "sampleGroupId": "3a0c55c2-0f26-71a1-1f1a-ebbcbd77105b",
// "sampleGroupName": "1",
// "lisRequestId": "3a0d2fa9-aaba-4837-0775-20d13937f357",
// "lisRequestNo": "T202308220016"
if (asbItem.length < 1) return;
let lfind = -1;
this.lisRequestNos = [];
asbItem.forEach((e) => {
if (e.lisRequestNo) {
e["operate"] = "no";
e["disabled"] = true;
lfind = arrayExistObj(
this.lisRequestNos,
"lisRequestNo",
e.lisRequestNo
);
if (lfind == -1) {
this.lisRequestNos.push({
sampleGroupId: e.sampleGroupId,
lisRequestNo: e.lisRequestNo,
lisRequestId: e.lisRequestId,
});
}
} else {
e["disabled"] = false;
}
return e;
});
},
getAsbItemList(id) {
this.tableData = [];
postapi(
`/api/app/lisrequest/getregisterasbitemlisrequest?PatientRegisterId=${id}`
).then((res) => {
this.tableData = res.data;
this.parseData(this.tableData);
});
},
//
changeOperate(row) {
let lfind = -1;
if (row.operate == "append") {
if (row.sampleGroupId) {
lfind = arrayExistObj(
this.lisRequestNos,
"sampleGroupId",
row.sampleGroupId
);
if (lfind > -1) {
row.lisRequestNo = this.lisRequestNos[lfind].lisRequestNo;
row.lisRequestId = this.lisRequestNos[lfind].lisRequestId;
}
}
} else {
row.lisRequestNo = "";
row.lisRequestId = "";
}
},
//
submit() {
let append = [],
news = [];
let validMsg = "",
lfind = -1;
this.tableData.forEach((item) => {
if (item.operate == "append") {
if (item.lisRequestId) {
lfind = arrayExistObj(append, "lisRequestId", item.lisRequestId);
if ((lfind = -1)) {
append.push({
lisRequestId: item.lisRequestId,
registerAsbitemIds: [item.registerAsbitemId],
});
} else {
append[lfind]["registerAsbitemIds"].push(item.registerAsbitemId);
}
} else {
validMsg = row.asbitemName + "项目,未选择追加到哪个检验申请单号!";
}
} else if (item.operate == "new") {
news.push(item.registerAsbitemId);
}
});
if (validMsg) {
this.$message.warning(validMsg);
return;
}
if (append.length > 0) {
postapi("/api/app/lisrequest/appendlisrequestmany", append).then(
(res) => {
if (res.code != -1) {
this.$message.success("项目追加到检验申请单成功!");
this.getAsbItemList(this.id);
}
}
);
}
if (news.length > 0) {
postapi("/api/app/lisrequest/addlisrequest", news).then((res) => {
if (res.code != -1) {
this.$message.success("项目创建检验申请单成功!");
this.getAsbItemList(this.id);
}
});
}
},
},
//
watch: {
//itemId','ReferenceRangeTypeFlag'
// "id"(newVal, oldVal) {
// if (newVal != oldVal && newVal != "") {
// this.getAsbItemList(newVal);
// }
// },
brushTimes(newVal, oldVal) {
if (newVal != oldVal && newVal != "") {
this.getAsbItemList(this.id);
}
},
},
};
</script>
<style scoped>
::v-deep .el-input__inner {
/*text-align: center;*/
padding-left: 1px;
padding-right: 1px;
}
::v-deep .el-table th.el-table__cell {
/*text-align: center;*/
padding-left: 1px;
padding-right: 1px;
}
::v-deep .el-table td.el-table__cell {
padding-left: 1px;
padding-right: 1px;
}
::v-deep .el-table .cell {
padding-left: 1px;
padding-right: 1px;
}
::v-deep input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
-webkit-appearance: none !important;
margin: 0 !important;
}
</style>

30
src/components/patientRegister/PatientRegisterEdit.vue

@ -341,6 +341,9 @@
<div class="btn">
<el-button type="primary" class="btnClass" @click="guidePrint('0001', false)">指引单预览</el-button>
</div>
<div class="btn">
<el-button type="danger" class="btnClass" @click="reMergeAsbitem">手动合并项目</el-button>
</div>
<div style="margin-top: 30px;">
<el-button type="primary" class="btnClass" @click="payTypeFlag ='0'">全个人支付</el-button>
@ -430,8 +433,8 @@
<el-table-column prop="mobileTelephone" label="手机号" />
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="choosePatient"> </el-button>
<el-button @click="dialogVisible = false" style="width:90px;"></el-button>
<el-button type="primary" @click="choosePatient" style="width:90px;">确定</el-button>
</span>
</el-dialog>
<!-- 拍照 -->
@ -445,6 +448,12 @@
<LisRequest :id="form.id" :brushTimes="brushTimes" />
</el-dialog>
<!-- 手动合并项目 -->
<el-dialog title="手动合并项目" :visible.sync="patientRegister.mergeAsbitemVisble" width="600px" height="400"
:show-close="false" :close-on-click-modal="false" :append-to-body="true">
<MergeAsbitem :id="form.id" :brushTimes="brushTimes" />
</el-dialog>
</div>
</template>
@ -458,12 +467,13 @@ import { objCopy, setNull, dddw, parseID, birthdayToAge,deepCopy } from "../../u
import Camera from "./Camera.vue";
import PatientRegisterItem from "./PatientRegisterItem.vue";
import LisRequest from "./LisRequest.vue";
import MergeAsbitem from "./MergeAsbitem.vue";
export default {
components: {
Camera,
LisRequest,
MergeAsbitem,
PatientRegisterItem,
},
props: ['formInitData', 'editTimes'],
@ -982,6 +992,7 @@ export default {
}
},
//
reLisRequest() {
if (this.form.id.length < 1) {
this.$message.info("人员信息尚未保存,不可执行此操作!");
@ -991,6 +1002,16 @@ export default {
this.patientRegister.lisRequestVisble = true;
},
//
reMergeAsbitem() {
if (this.form.id.length < 1) {
this.$message.info("人员信息尚未保存,不可执行此操作!");
return;
}
this.brushTimes++;
this.patientRegister.mergeAsbitemVisble = true;
},
toCharge(patientRegisterNo){
this.patientRegister.patientRegisterRd.patientRegisterNo = patientRegisterNo;
this.$router.push({ path: "/charge" });
@ -1024,6 +1045,9 @@ export default {
};
</script>
<style scoped>
::v-deep .el-button{
padding: 10px 5px; /* 原值:12px 20px; */
}
::v-deep .el-form-item {
margin-bottom: 0px;
}

4
src/components/patientRegister/PatientRegisterItem.vue

@ -32,11 +32,11 @@
<div style="width:100px;margin-top: 70px;">
<div class="btnList">
<el-button type="primary" @click="addAbs(asbItemChoosed)">添加 <i class="el-icon-right"></i>
<el-button type="primary" @click="addAbs(asbItemChoosed)" style="width:90px;">添加 <i class="el-icon-right"></i>
</el-button>
</div>
<div class="btnList">
<el-button type="primary" @click="delAbs(patientRegisterAbsChoosed)">移除 <i class="el-icon-back"></i>
<el-button type="primary" @click="delAbs(patientRegisterAbsChoosed)" style="width:90px;">移除 <i class="el-icon-back"></i>
</el-button>
</div>
<!-- 不显示保存当已选组合有修改时失去焦点自动保存

4
src/components/patientRegister/PatientRegisterList.vue

@ -1,7 +1,7 @@
<template>
<div style="display: flex">
<div :style="'width:' + (window.pageWidth - 200 - 120 - 70) + 'px;'" @contextmenu.prevent="onContextmenu">
<el-table :data="patientRegister.prList" border :height="patientRegister.prListHeight" highlight-current-row
<div :style="'margin-left:5px;width:' + (window.pageWidth - 200 - 120 - 85) + 'px;'" @contextmenu.prevent="onContextmenu">
<el-table :data="patientRegister.prList" border :height="window.pageHeight < 600 ? 172:Math.floor((window.pageHeight - 342)*2/3)" highlight-current-row
@row-click="rowick" size="small" @selection-change="handleSelectionChange" @cell-contextmenu="onCellRightClick">
<el-table-column type="selection" width="40">
</el-table-column>

27
src/components/patientRegister/patientRegisterAsbItem.vue

@ -1,16 +1,10 @@
<template>
<div>
<div style="display: flex">
<el-table
:data="patientRegister.patientRegisterAbs"
border
:height="patientRegister.prAsbItemHeight"
size="small" :row-class-name="tableRowClassName"
highlight-current-row
:summary-method="getSummaries"
show-summary
ref="patientRegister.patientRegisterAbs"
>
<el-table :data="patientRegister.patientRegisterAbs" border
:height="window.pageHeight < 600 ? 86 : Math.floor((window.pageHeight - 342) / 3)" size="small"
:row-class-name="tableRowClassName" highlight-current-row :summary-method="getSummaries" show-summary
ref="patientRegister.patientRegisterAbs">
<el-table-column type="index" label="序号" width="50" />
<el-table-column prop="asbitemName" label="已选组合项目" width="120" />
<el-table-column prop="standardPrice" label="标准价" />
@ -70,13 +64,13 @@ export default {
return {};
},
created() {},
created() { },
//
mounted() {},
mounted() { },
computed: {
...mapState(["dict", "patientRegister"]),
...mapState(["window", "dict", "patientRegister"]),
},
methods: {
ldddw(arrayData, key, value, display) {
@ -87,14 +81,14 @@ export default {
return moment(new Date(date)).format(forMat);
},
tableRowClassName({row, rowIndex}){
tableRowClassName({ row, rowIndex }) {
//console.log(row)
if (row.groupPackageId) {
//console.log('row.groupPackageId',row.groupPackageId)
return 'purple-row'; //
}else{
} else {
return '';
}
}
},
//
@ -139,6 +133,7 @@ export default {
</script>
<style scoped>
@import "../../assets/css/global.css";
.box {
display: flex;
}

2
src/components/patientRegister/patientRegisterQuery.vue

@ -2,7 +2,7 @@
<div style="display: flex">
<div :style="'display: flex; flex-wrap: wrap; height:100px;width:' + (window.pageWidth - (orgEnable=='Y' ? 0:200) - 120 - 70) + 'px;'">
<div :style="'display: flex; flex-wrap: wrap; height:100px;width:' + (window.pageWidth - (orgEnable=='Y' ? 0:200) - 120 - 80) + 'px;'">
<div class="query">
<span>登记日期</span>
<el-date-picker v-model="patientRegister.query.dateRange" type="daterange" align="right" unlink-panels

3
src/store/index.js

@ -57,6 +57,7 @@ export default new Vuex.Store({
photo: "", //单独抽出,拍照时会更新
cameraVisble: false, //拍照控件显示
lisRequestVisble:false, //检验条码补打
mergeAsbitemVisble:false, //合并项目
patientRegisterRdInit: {
id: "", //id
patientId: "00000000-0000-0000-0000-000000000000", //档案号ID 选择了档案就传档案号,未选就传00000-0000...
@ -116,8 +117,6 @@ export default new Vuex.Store({
}, //查询条件
customerOrgGroup: [], //分组(针对单位)
patientRegisterAbs: [], //人员已选组合项目
prListHeight: 312, //人员列表高度
prAsbItemHeight: 156, //组合项目高度
prList: [], //体检登记记录
},

48
src/views/customerOrg/customerOrg.vue

@ -9,38 +9,28 @@
-->
<div style="display: flex;margin-top:20px">
<!-- 单位树组件 -->
<div
:style="
'overflow: scroll;border: 1px solid;width:200px; height:' +
(window.pageHeight < 600 ? 450 : window.pageHeight - 150) +
'px;'
"
>
<div :style="'overflow: scroll;border: 1px solid;width:200px; height:' +
(window.pageHeight < 600 ? 410 : window.pageHeight - 190) +
'px;'
">
<CustomerOrgTree />
</div>
<div
:style="
'display:block;width:' +
(window.pageWidth - 200 - 80) +
'px;height:' +
(window.pageHeight < 600 ? 450 : window.pageHeight - 150) +
'px;' +
(window.pageHeight < 600 ? 'overflow-y: scroll;' : '')
"
>
<div :style="'display:block;width:' +
(window.pageWidth - 200 - 80) +
'px;height:' +
(window.pageHeight < 600 ? 410 : window.pageHeight - 190) +
'px;' +
(window.pageHeight < 600 ? 'overflow-y: scroll;' : '')
">
<!-- 单位详情 录入与编辑 -->
<CustomerOrgEdit :id="customerOrg.customerOrgRd.id" />
<!-- 体检次数 联系人 -->
<el-tabs
:style="
'margin-left: 10px;width:' +
(window.pageWidth - 200 - 90) +
'px;height:' +
(window.pageHeight < 600 ? 204 : window.pageHeight - 396) +
'px;'
"
v-model="tabChoosed"
>
<el-tabs :style="'margin-left: 10px;width:' +
(window.pageWidth - 200 - 90) +
'px;height:' +
(window.pageHeight < 600 ? 164 : window.pageHeight - 436) +
'px;'
" v-model="tabChoosed">
<!-- 体检次数 -->
<el-tab-pane label="体检次数" name="1">
<CustomerOrgRegister />
@ -74,10 +64,10 @@ export default {
};
},
created() {},
created() { },
//
mounted() {},
mounted() { },
computed: {
...mapState(["customerOrg", "window"]),

51
src/views/customerOrg/patientRegister.vue

@ -1,13 +1,22 @@
<template>
<div>
<el-card>
<div class="publiccss">体检人员登记</div>
<div class="publiccss">体检人员登记</div>
<div style="display: flex;margin-top:20px">
<!-- 单位树组件 -->
<div :style="CustomerOrgTreeStyle">
<div :style="'overflow: scroll;border: 1px solid;width:200px; height:' +
(window.pageHeight < 600 ? 410 : window.pageHeight - 190) +
'px;'
">
<CustomerOrgTreeAll />
</div>
<div :style="CustomerOrgRightStyle">
<div :style="'display:block;width:' +
(window.pageWidth - 200 - 80) +
'px;height:' +
(window.pageHeight < 600 ? 410 : window.pageHeight - 190) +
'px;' +
(window.pageHeight < 600 ? 'overflow-y: scroll;' : '')
">
<!-- 查询条件 -->
<PatientRegisterQuery />
@ -44,7 +53,7 @@ export default {
//
created() {
this.resize();
},
//
@ -169,27 +178,6 @@ export default {
console.log("dict", this.dict);
},
resize() {
//console.log(this.window.pageHeight,this.window.pageWidth)
let headerHeight = Number(150);
let orgDetailHeight = Number(100);
let editHeight = Number(200);
this.CustomerOrgTreeStyle = "overflow: scroll;border: 1px solid;width:200px; height:" + (this.window.pageHeight - headerHeight) + "px;";
this.CustomerOrgRightStyle = "margin-left: 10px;width:" + (this.window.pageWidth - 200 - 60) + "px; height:" + (this.window.pageHeight - headerHeight) + "px;";
this.customerOrg.orgEditStyle = 'display: flex;';
this.customerOrg.orgDetailStyle = 'display: flex;';
if (this.window.pageHeight < 600) {
this.patientRegister.prListHeight = editHeight;
this.patientRegister.prAsbItemHeight = orgDetailHeight;
this.CustomerOrgTreeStyle = "overflow: scroll;border: 1px solid;width:200px; height:" + (600 - headerHeight) + "px;";
} else {
this.patientRegister.prListHeight = Math.floor((this.window.pageHeight - 300) * 2 / 3);
this.patientRegister.prAsbItemHeight = Math.floor((this.window.pageHeight - 300) * 1 / 3);
//console.log(this.patientRegister.prListHeight,this.patientRegister.prAsbItemHeight)
}
},
},
//()
@ -200,18 +188,7 @@ export default {
if (newVal != oldVal && newVal !== this.dict.personOrgId) {
this.getCustomerOrgGroup(newVal);
}
},
"window.pageHeight"(newVal, oldVal) {
if (newVal != oldVal) {
this.resize();
}
},
"window.pageWidth"(newVal, oldVal) {
if (newVal != oldVal) {
this.resize();
}
},
},
},
};

Loading…
Cancel
Save