pengjun 1 month ago
parent
commit
77d1abb2fb
  1. 19
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  2. 442
      src/components/patientRegister/PatientRegisterEdit.vue
  3. 58
      src/components/patientRegister/PatientRegisterItem.vue
  4. 42
      src/components/patientRegister/PatientRegisterList.vue
  5. 59
      src/components/patientRegister/patientRegisterAsbItem.vue
  6. 7
      src/store/index.js
  7. 3
      src/views/customerOrg/patientRegister.vue

19
src/components/customerOrg/customerOrgGroupAsbitem.vue

@ -106,7 +106,7 @@
</div> </div>
<!--复制套餐--> <!--复制套餐-->
<el-dialog title="体检套餐" :visible.sync="medicalPackageVisble" width="600px" height="400" :show-close="false"
<el-dialog title="复制体检套餐" :visible.sync="medicalPackageVisble" width="800px" height="500" :show-close="false"
:close-on-click-modal="false" :append-to-body="true"> :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 <el-table :data="dict.medicalPackage" border height="350" row-key="id" size="small" highlight-current-row
@row-click="packageRowClick" @row-dblclick="rowDblclick" ref="patientList"> @row-click="packageRowClick" @row-dblclick="rowDblclick" ref="patientList">
@ -154,13 +154,13 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
<el-button class="commonbutton" type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button> <el-button class="commonbutton" type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
</span> </span>
</el-dialog> </el-dialog>
<!--复制分组--> <!--复制分组-->
<el-dialog title="单位分组" :visible.sync="groupVisble" width="800px" height="500" :show-close="false"
<el-dialog title="复制单位分组" :visible.sync="groupVisble" width="800px" height="500" :show-close="false"
:close-on-click-modal="false" :append-to-body="true"> :close-on-click-modal="false" :append-to-body="true">
<div> <div>
<div style="display: flex"> <div style="display: flex">
@ -217,19 +217,12 @@
}} }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作">
<template>
<el-tag class="move" style="cursor: move; margin-left: 15px" draggable="true">
<i class="el-icon-d-caret" style="width: 1rem; height: 1rem"></i>
</el-tag>
</template>
</el-table-column>
</el-table> </el-table>
<div style="display: flex;justify-content: space-between;margin-top: 10px;"> <div style="display: flex;justify-content: space-between;margin-top: 10px;">
<div></div> <div></div>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="groupVisble = false" style="width:90px;">取消</el-button>
<el-button class="commonbutton" type="primary" @click="copyGroup" style="width:90px;">确定</el-button> <el-button class="commonbutton" type="primary" @click="copyGroup" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="groupVisble = false" style="width:90px;">取消</el-button>
</span> </span>
</div> </div>
</div> </div>
@ -272,7 +265,7 @@ export default {
customerOrgId:'', // ID customerOrgId:'', // ID
customerOrgDisp:[], // customerOrgDisp:[], //
customerOrgRegisterList:[], // customerOrgRegisterList:[], //
customerOrgRegister:'', //
customerOrgRegister:{}, //
dialogVisible: false, dialogVisible: false,
@ -881,8 +874,6 @@ export default {
} }
}, },
// //
async groupRowDblclick(row) { async groupRowDblclick(row) {
await this.groupRowClick(row) await this.groupRowClick(row)

442
src/components/patientRegister/PatientRegisterEdit.vue

@ -525,11 +525,12 @@
<el-button type="success" class="commonbutton" @click="chargeRequest(form)" <el-button type="success" class="commonbutton" @click="chargeRequest(form)"
:disabled="!form.id">收费申请</el-button> :disabled="!form.id">收费申请</el-button>
</div> </div>
<!--
<div class="btn">
<el-button type="success" class="commonbutton" @click="btnTest">test</el-button>
<div v-show="checkPagePriv(pagePriv.privs, '复制分组')" class="btn">
<el-button class="commonbutton" @click="btnCopyGroup" :disabled="form.isLock == 'Y' || form.completeFlag == '3' ? true:false">复制分组</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '复制套餐')" class="btn">
<el-button class="commonbutton" @click="btnCopyMedicalPackage" :disabled="form.isLock == 'Y' || form.completeFlag == '3' ? true:false">复制套餐</el-button>
</div> </div>
-->
</div> </div>
</div> </div>
@ -672,6 +673,129 @@
:close-on-click-modal="false"> :close-on-click-modal="false">
<Queue :refParams="queueParams" /> <Queue :refParams="queueParams" />
</el-dialog> </el-dialog>
<!--复制套餐-->
<el-dialog title="复制体检套餐" :visible.sync="medicalPackageVisble" width="800px" height="500" :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="packageRowClick" @row-dblclick="rowDblclick" ref="patientList">
<!-- "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-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">
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format("yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改人员" width="80" />
<el-table-column prop="lastModificationTime" label="修改日期" width="100">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{ moment(scope.row.lastModificationTime).format("yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" type="primary" @click="copyMedicalPackage" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="medicalPackageVisble = false" style="width:90px;">取消</el-button>
</span>
</el-dialog>
<!--复制分组-->
<el-dialog title="复制单位分组" :visible.sync="groupVisble" width="800px" height="500" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<div>
<div style="display: flex">
<div>
<span>体检单位</span>
<el-select v-model="customerOrgId" placeholder="请选择体检单位" :filter-method="filterMethodOrg"
default-first-option clearable filterable @clear="customerOrgDisp = deepCopy(customerOrgAll)"
style="margin-left: 10px" @change="changeCustomerOrg" size="small">
<el-option v-for="item in customerOrgDisp" :key="item.id" :label="item.displayName" :value="item.id">
{{ item.displayName }}
</el-option>
</el-select>
</div>
<div style="margin-left: 20px">
<span>单位体检次数</span>
<el-select v-model="customerOrgRegister" placeholder="次数" style="width: 60px; margin-left: 10px"
size="small" @change="changeTimes" value-key="id">
<el-option v-for="item in customerOrgRegisterList" :key="item.id" :label="item.medicalTimes"
:value="item" />
</el-select>
</div>
</div>
<el-table :data="customerOrgGroups" ref="customerOrgGroups" style="margin-top: 2px" row-key="id" border
height="450px" size="small" highlight-current-row :row-class-name="handleRowClassName"
@row-click="groupRowClick" @row-dblclick="groupRowDblclick">
>
<el-table-column type="index" label="序号" min-width="50" align="center" />
<el-table-column prop="displayName" label="名称" min-width="150" />
<el-table-column prop="price" label="价格" min-width="60" align="center" />
<el-table-column prop="forSexId" label="适用性别" min-width="60" align="center">
<template slot-scope="scope">
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}
</template>
</el-table-column>
<el-table-column prop="maritalStatusId" label="适用婚姻状况" min-width="80" align="center">
<template slot-scope="scope">
{{
dddw(
dict.forMaritalStatus,
"id",
scope.row.maritalStatusId,
"displayName"
)
}}
</template>
</el-table-column>
<el-table-column prop="creatorName" label="创建者" min-width="60" align="center" />
<el-table-column label="创建时间" min-width="150" align="center">
<template slot-scope="scope">
{{
scope.row.creationTime
? moment(scope.row.creationTime).format("yyyy-MM-DD HH:mm:ss")
: ""
}}
</template>
</el-table-column>
</el-table>
<div style="display: flex;justify-content: space-between;margin-top: 10px;">
<div></div>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" type="primary" @click="copyGroup" style="width:90px;">确定</el-button>
<el-button class="commonbutton" @click="groupVisble = false" style="width:90px;">取消</el-button>
</span>
</div>
</div>
</el-dialog>
</div> </div>
</div> </div>
</template> </template>
@ -897,6 +1021,24 @@ export default {
thirdInterfaceId: '', // thirdInterfaceId: '', //
queueParams: {}, // queueParams: {}, //
//**
//
medicalPackageVisble: false,
groupVisble: false,
customerOrgGroups: [],
//
curPackageId: '',
curGroupId: '',
packageAsbitems: [],
groupAsbitems: [],
customerOrgId: '',
customerOrgDisp: [],
customerOrgAll: [],
customerOrgRegisterList: [], //
customerOrgRegister: {}, //
}; };
}, },
@ -1357,24 +1499,25 @@ export default {
getParentCustomerOrgId(v) { getParentCustomerOrgId(v) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let customerOrgParentId = null let customerOrgParentId = null
if (Array.isArray(v) && v.length > 1) {
if (Array.isArray(v) && v.length > 0) {
customerOrgParentId = v[0] customerOrgParentId = v[0]
return resolve(customerOrgParentId) return resolve(customerOrgParentId)
} else { } else {
let customerOrgId = v
if (Array.isArray(v) && v.length == 1) customerOrgId = v[0]
if (!customerOrgId) return resolve(customerOrgParentId)
if (typeof customerOrgId == 'string') {
getapi(`/api/app/customer-org/parent/${customerOrgId}`)
if (!v) {
return resolve(customerOrgParentId)
} else {
if (v == this.dict.personOrgId) {
return resolve(v) //
} else {
getapi(`/api/app/customer-org/parent/${v}`)
.then(res => { .then(res => {
if (res.code > -1) customerOrgParentId = res.data if (res.code > -1) customerOrgParentId = res.data
}) })
.finally(() => { .finally(() => {
return resolve(customerOrgParentId) return resolve(customerOrgParentId)
}) })
} else if (customerOrgId.length > 0) {
customerOrgParentId = customerOrgId[0]
return resolve(customerOrgParentId)
}
} }
} }
}) })
@ -3026,6 +3169,279 @@ export default {
this.dialogWin.Label = true this.dialogWin.Label = true
}, },
//
setCurParentOrgId() {
//
console.log('setCurParentOrgId_this.form.customerOrgId',this.form.customerOrgId)
this.getParentCustomerOrgId(this.form.customerOrgId)
.then(res => {
if (res) {
if (res != this.dict.personOrgId) {
this.customerOrgId = res
//
getapi(`/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${res}`)
.then(res => {
if (res.code > -1) {
this.customerOrgRegisterList = res.data
if (res.data.length > 0) {
this.customerOrgRegister = res.data[res.data.length - 1]
this.getCustomerOrgGroupCopy(this.customerOrgRegister.id)
}
}
})
}
}
})
},
//
btnCopyGroup() {
console.log('this.customerOrgGroup', this.customerOrgGroup)
this.customerOrgRegisterList = [];
this.customerOrgRegister = {};
this.customerOrgGroups = [];
//
if (this.customerOrgAll.length == 0) {
getapi("/api/app/customer-org/parent-all")
.then(res => {
if (res.code > -1) {
this.customerOrgAll = res.data
this.customerOrgDisp = res.data
this.groupVisble = true
//
this.setCurParentOrgId()
}
})
} else {
//
this.setCurParentOrgId()
this.groupVisble = true
}
},
//
async groupRowClick(row) {
this.curGroupId = row.id
this.groupAsbitems = []
try {
let res = await getapi(`/api/app/customerorggroupdetail/getcustomerorggroupdetailinasbitem?CustomerOrgGroupId=${row.id}`)
if (res.code != -1) this.groupAsbitems = res.data
} catch (error) {
console.log(error)
}
},
//
async groupRowDblclick(row) {
await this.groupRowClick(row)
this.copyGroup()
},
//()
copyGroup() {
if (!this.curGroupId) {
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" })
return
}
console.log('this.packageAsbitems', this.groupAsbitems)
this.addAbs(deepCopy(this.groupAsbitems))
this.groupVisble = false
},
//
btnCopyMedicalPackage() {
this.medicalPackageVisble = true
},
//
async packageRowClick(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)
}
},
//
async rowDblclick(row) {
await this.packageRowClick(row)
this.copyMedicalPackage()
},
//()
copyMedicalPackage() {
if (!this.curPackageId) {
this.$message.warning({ showClose: true, message: "请先选择要复制的套餐!" })
return
}
console.log('this.packageAsbitems', this.packageAsbitems)
this.addAbs(deepCopy(this.packageAsbitems))
this.medicalPackageVisble = false
},
//
filterMethodOrg(keyWords) {
if (keyWords) {
this.customerOrgDisp = [];
this.customerOrgAll.forEach((item) => {
if (
item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 ||
item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > -1
// || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
) {
this.customerOrgDisp.push(item);
}
});
} else {
this.customerOrgDisp = deepCopy(this.customerOrgAll);
}
},
//
changeCustomerOrg(v) {
if (!v) {
this.customerOrgRegisterList = [];
this.customerOrgRegister = {};
this.customerOrgGroups = [];
} else {
getapi(
`/api/app/customerorgregister/getlistincustomerorgid?CustomerOrgId=${v}`
).then((res) => {
if (res.code != -1) {
this.customerOrgRegisterList = res.data;
if (res.data.length > 0) {
this.customerOrgRegister = res.data[res.data.length - 1];
this.getCustomerOrgGroupCopy(this.customerOrgRegister.id);
}
}
});
}
},
//
changeTimes(v) {
this.getCustomerOrgGroup(v.id);
},
//
getCustomerOrgGroupCopy(customerOrgRegisterId) {
// this.isDrag = false;
// objCopy(this.formInit, this.form);
// this.form.customerOrgRegisterId = customerOrgRegisterId;
this.customerOrgGroups = [];
getapi(
`/api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${customerOrgRegisterId}`
).then((res) => {
if (res.code != -1) {
this.customerOrgGroups = res.data;
this.customerOrgGroups.forEach((e) => {
e.customerOrgRegisterId = customerOrgRegisterId;
});
}
});
},
handleRowClassName({ row, rowIndex }) {
// highLightBg 'selected'
//console.log(rowIndex, row)
//return row.highLightBg == 'selected' ? 'high-light-bg' : '';
if (row.choosed) {
return 'current-row';
} else {
return '';
}
},
//
///api/app/register-asbitem/many/3fa85f64-5717-4562-b3fc-2c963f66afa6'
addAbs(asbItemChoosed) {
if (asbItemChoosed.length < 1) {
this.$message.warning({ showClose: true, message: "该套餐或分组下无可复制的组合项目" })
return
}
//
// "displayName": "",
// "shortName": "f",
// "forSexId": "F",
// "itemTypeId": "3a0b16de-75b9-c910-c61b-844709a88940",
// "price": 0,
console.log('asbItemChoosed.length', asbItemChoosed.length)
let unChecks = [] //
for (let i = 0; i < asbItemChoosed.length; i++) {
if (this.form.sexId == 'U') break //
if (asbItemChoosed[i].forSexId == 'A') continue
if (asbItemChoosed[i].forSexId != this.form.sexId) {
unChecks.push(asbItemChoosed[i].displayName)
asbItemChoosed[i].unCheck = true
}
}
if (unChecks.length > 0) {
this.$message.warning({ showClose: true, message: `所选项目:${unChecks.toString()},不适合当前人员性别` })
if (asbItemChoosed.length == unChecks.length) return
}
let payTypeFlag = '0' // 0: 12
if (this.form.customerOrgId != this.dict.personOrgId) payTypeFlag = '1'
asbItemChoosed.forEach(e => {
if (!e.unCheck) {
//
let lfind = arrayExistObj(this.dataTransOpts.tableM.register_check_asbitem, 'asbitemId', e.id)
if (lfind < 0) {
let pojo = {
asbitemId: e.id,
asbitemName: e.displayName,
patientRegisterId: this.form.id,
standardPrice: e.price,
chargePrice: e.price,
payTypeFlag,
isCharge: "N",
checkCompleteFlag: '0',
discount: 100,
amount: 1,
total: e.price,
}
this.dataTransOpts.tableM.register_check_asbitem.push(pojo)
}
}
});
//
this.changeItemType(deepCopy(this.dataTransOpts.copyGroup.itemTypeIds))
},
//
changeItemType(data) {
//console.log('getAsbItemByItemType', typeof this.itemTypeIds, this.itemTypeIds)
this.dataTransOpts.copyGroup.itemTypeIds = data
let asbItemAll = deepCopy(this.dataTransOpts.copyGroup.asbItemAll)
let lv = "";
if (typeof this.dataTransOpts.copyGroup.itemTypeIds == "object") {
if (this.dataTransOpts.copyGroup.itemTypeIds.length > 0) lv = this.dataTransOpts.copyGroup.itemTypeIds[this.dataTransOpts.copyGroup.itemTypeIds.length - 1];
}
if (lv) {
this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
} else {
this.dataTransOpts.copyGroup.asbItem = deepCopy(asbItemAll);
}
arrayReduce(this.dataTransOpts.copyGroup.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
//console.log('this.dataTransOpts.copyGroup.asbItem',this.dataTransOpts.copyGroup.asbItem,this.dataTransOpts.tableM.register_check_asbitem)
},
//tab //tab
enterToTab() { enterToTab() {
this.$nextTick(() => { this.$nextTick(() => {

58
src/components/patientRegister/PatientRegisterItem.vue

@ -3,14 +3,14 @@
<div style="width:220px;"> <div style="width:220px;">
<div> <div>
<span>项目类别</span> <span>项目类别</span>
<el-cascader :options="dict.itemTypeTree" v-model="itemTypeIds" popper-class="example"
<el-cascader :options="dict.itemTypeTree" v-model="dataTransOpts.copyGroup.itemTypeIds" popper-class="example"
style="margin-left: 3px;width:160px;" style="margin-left: 3px;width:160px;"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable :props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" clearable filterable
@change="changeItemType" size="small" :disabled="isComplete"> @change="changeItemType" size="small" :disabled="isComplete">
</el-cascader> </el-cascader>
</div> </div>
<div class="mainareaBox"> <div class="mainareaBox">
<el-table :data="asbItem" style="border-radius: 5px;" :height="tableHeight" @row-dblclick="dbClickChoosedAsb"
<el-table :data="dataTransOpts.copyGroup.asbItem" style="border-radius: 5px;" :height="tableHeight" @row-dblclick="dbClickChoosedAsb"
highlight-current-row @selection-change="handleSelectionChange" size="small" highlight-current-row @selection-change="handleSelectionChange" size="small"
:row-class-name="handleRowClassName" @row-click="chooseAsbItem"> :row-class-name="handleRowClassName" @row-click="chooseAsbItem">
<!-- <!--
@ -195,9 +195,10 @@ export default {
}, },
oldFormId: '', //使 oldFormId: '', //使
itemType: [], // itemType: [], //
itemTypeIds: '', //ID
asbItem: [], //
asbItemAll: [], //
// itemTypeIds: '', //ID
// asbItem: [], //
// asbItemAll: [], //
asbItemChoosed: [], // asbItemChoosed: [], //
startPoint: -1, startPoint: -1,
@ -257,6 +258,7 @@ export default {
console.log("window.localStorage.getItem('LocalConfig')", error) console.log("window.localStorage.getItem('LocalConfig')", error)
} }
this.dictInit() this.dictInit()
}, },
updated() { updated() {
@ -287,8 +289,8 @@ export default {
// //
postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => { postapi('/api/app/asbitem/GetBasicList', { isFilterActive: 'Y' }).then(res => {
if (res.code != -1) { if (res.code != -1) {
this.asbItem = res.data
this.asbItemAll = res.data
this.dataTransOpts.copyGroup.asbItem = res.data
this.dataTransOpts.copyGroup.asbItemAll = res.data
this.asbItemQuick = res.data this.asbItemQuick = res.data
this.quickAsb = res.data this.quickAsb = res.data
} }
@ -297,7 +299,7 @@ export default {
// //
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails') postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => { .then(res => {
if (res.code > -1) this.asbItems = res.data
if (res.code > -1) this.dataTransOpts.copyGroup.asbItems = res.data
}) })
}, },
@ -367,13 +369,13 @@ export default {
// //
refreshAsbitem() { refreshAsbitem() {
let asbItemAll = deepCopy(this.asbItemAll)
let asbItemAll = deepCopy(this.dataTransOpts.copyGroup.asbItemAll)
let choosedAsb = this.dataTransOpts.tableM.register_check_asbitem.filter(e => { let choosedAsb = this.dataTransOpts.tableM.register_check_asbitem.filter(e => {
return e.checkCompleteFlag == '0' || !(e.checkCompleteFlag) return e.checkCompleteFlag == '0' || !(e.checkCompleteFlag)
}) // }) //
arrayReduce(asbItemAll, choosedAsb, "id=asbitemId"); arrayReduce(asbItemAll, choosedAsb, "id=asbitemId");
this.changeItemType();
this.changeItemType(deepCopy(this.itemTypeIds));
this.asbItemQuick = deepCopy(asbItemAll); this.asbItemQuick = deepCopy(asbItemAll);
this.quickAsb = deepCopy(asbItemAll); this.quickAsb = deepCopy(asbItemAll);
}, },
@ -388,31 +390,31 @@ export default {
// //
chooseAsbItem(row) { chooseAsbItem(row) {
this.asbItem.forEach((e, index) => {
this.dataTransOpts.copyGroup.asbItem.forEach((e, index) => {
e.index = index; e.index = index;
return e return e
}); });
// shift // shift
if (this.window.shift) { if (this.window.shift) {
// //
this.asbItem.forEach(e => {
this.dataTransOpts.copyGroup.asbItem.forEach(e => {
e.choosed = false; e.choosed = false;
return e return e
}); });
if (this.startPoint == - 1) { if (this.startPoint == - 1) {
this.asbItem[row.index].choosed = true;
this.dataTransOpts.copyGroup.asbItem[row.index].choosed = true;
this.startPoint = row.index; this.startPoint = row.index;
return return
} }
if (this.startPoint > row.index) { if (this.startPoint > row.index) {
for (let i = row.index; i <= this.startPoint; i++) { for (let i = row.index; i <= this.startPoint; i++) {
this.asbItem[i].choosed = true
this.dataTransOpts.copyGroup.asbItem[i].choosed = true
} }
} else if (this.startPoint <= row.index) { } else if (this.startPoint <= row.index) {
for (let i = this.startPoint; i <= row.index; i++) { for (let i = this.startPoint; i <= row.index; i++) {
this.asbItem[i].choosed = true
this.dataTransOpts.copyGroup.asbItem[i].choosed = true
} }
} }
return return
@ -420,8 +422,8 @@ export default {
// ctrl // ctrl
if (this.window.ctrl) { if (this.window.ctrl) {
console.log('this.window.ctrl', this.window.ctrl, this.asbItem)
this.asbItem[row.index].choosed = true;
console.log('this.window.ctrl', this.window.ctrl, this.dataTransOpts.copyGroup.asbItem)
this.dataTransOpts.copyGroup.asbItem[row.index].choosed = true;
this.startPoint = row.index; this.startPoint = row.index;
return return
} }
@ -429,11 +431,11 @@ export default {
// ctrl shift // ctrl shift
// //
//console.log('') //console.log('')
this.asbItem.forEach(e => {
this.dataTransOpts.copyGroup.asbItem.forEach(e => {
e.choosed = false; e.choosed = false;
return e return e
}); });
this.asbItem[row.index].choosed = true;
this.dataTransOpts.copyGroup.asbItem[row.index].choosed = true;
this.startPoint = row.index; this.startPoint = row.index;
}, },
@ -540,10 +542,10 @@ export default {
// start // start
if (oprType && oprType == 'all') { if (oprType && oprType == 'all') {
asbItemChoosed = deepCopy(this.asbItem)
asbItemChoosed = deepCopy(this.dataTransOpts.copyGroup.asbItem)
} else if (oprType && oprType == 'choosed') { } else if (oprType && oprType == 'choosed') {
asbItemChoosed = [] asbItemChoosed = []
this.asbItem.forEach(e => {
this.dataTransOpts.copyGroup.asbItem.forEach(e => {
if (e.choosed) { if (e.choosed) {
asbItemChoosed.push(e) asbItemChoosed.push(e)
e.choosed = false e.choosed = false
@ -760,20 +762,22 @@ export default {
}, },
// //
changeItemType() {
changeItemType(data) {
//console.log('changeItemType.data',data)
this.itemTypeIds = data
//console.log('getAsbItemByItemType', typeof this.itemTypeIds, this.itemTypeIds) //console.log('getAsbItemByItemType', typeof this.itemTypeIds, this.itemTypeIds)
let asbItemAll = deepCopy(this.asbItemAll)
let asbItemAll = deepCopy(this.dataTransOpts.copyGroup.asbItemAll)
let lv = ""; let lv = "";
if (typeof this.itemTypeIds == "object") { if (typeof this.itemTypeIds == "object") {
if (this.itemTypeIds.length > 0) lv = this.itemTypeIds[this.itemTypeIds.length - 1]; if (this.itemTypeIds.length > 0) lv = this.itemTypeIds[this.itemTypeIds.length - 1];
} }
if (lv) { if (lv) {
this.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
this.dataTransOpts.copyGroup.asbItem = arrayFilter(asbItemAll, "itemTypeId", lv);
} else { } else {
this.asbItem = deepCopy(asbItemAll);
this.dataTransOpts.copyGroup.asbItem = deepCopy(asbItemAll);
} }
arrayReduce(this.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
arrayReduce(this.dataTransOpts.copyGroup.asbItem, this.dataTransOpts.tableM.register_check_asbitem, "id=asbitemId");
}, },
@ -1159,7 +1163,7 @@ export default {
// //
getAsbItems(row) { getAsbItems(row) {
let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let asbItems = this.dataTransOpts.copyGroup.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let content = "" let content = ""

42
src/components/patientRegister/PatientRegisterList.vue

@ -90,28 +90,15 @@
scope.row.medicalPackageId !== dict.personOrgId && scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId === dict.personOrgId scope.row.customerOrgId === dict.personOrgId
"> ">
{{
dddw(
dict.medicalPackage,
"id",
scope.row.medicalPackageId,
"displayName"
)
}}
{{ scope.row.medicalPackageName }}
</div> </div>
<div v-if=" <div v-if="
scope.row.medicalPackageId !== dict.personOrgId && scope.row.medicalPackageId !== dict.personOrgId &&
scope.row.customerOrgId !== dict.personOrgId scope.row.customerOrgId !== dict.personOrgId
"> ">
{{
dddw(
dict.customerOrgGroupAll,
"id",
scope.row.customerOrgGroupId,
"displayName"
)
}}
{{ scope.row.customerOrgGroupName }}
</div> </div>
</div> </div>
<div v-else-if="dragCol[index].prop == 'nationId'"> <div v-else-if="dragCol[index].prop == 'nationId'">
{{ {{
@ -644,7 +631,7 @@ export default {
LocalConfigInit: {}, LocalConfigInit: {},
tableName: "", // tableName: "", //
doctorType: "check", //check: audit doctorType: "check", //check: audit
merge_lis_pacs_label:"0", //0 01
merge_lis_pacs_label: "0", //0 01
qrCode: { qrCode: {
winDisplay: false, // winDisplay: false, //
url: 'https://ccjktj.cn:5081/', // url: 'https://ccjktj.cn:5081/', //
@ -683,18 +670,18 @@ export default {
this.loadOptsInit = Object.assign({}, this.loadOpts); this.loadOptsInit = Object.assign({}, this.loadOpts);
// -- // --
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId:'merge_lis_pacs_label' })
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'merge_lis_pacs_label' })
.then(res => { .then(res => {
if(res.code > -1){
this.merge_lis_pacs_label = res.data||"0"
if (res.code > -1) {
this.merge_lis_pacs_label = res.data || "0"
} }
}) })
// -- // --
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId:'pacs_cloud_url' })
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId: 'pacs_cloud_url' })
.then(res => { .then(res => {
if(res.code > -1){
this.qrCode.url = res.data||"https://ccjktj.cn:5081/"
if (res.code > -1) {
this.qrCode.url = res.data || "https://ccjktj.cn:5081/"
} }
}) })
@ -968,7 +955,7 @@ export default {
printGuideLisPacs(row) { printGuideLisPacs(row) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
// this.merge_lis_pacs_label == '1' // this.merge_lis_pacs_label == '1'
if(this.merge_lis_pacs_label == '1'){
if (this.merge_lis_pacs_label == '1') {
this.guidePrintPromise("0008", false, row) this.guidePrintPromise("0008", false, row)
.then((res) => { .then((res) => {
return this.lisPrint(row, "0002", false); return this.lisPrint(row, "0002", false);
@ -982,7 +969,7 @@ export default {
.catch((err) => { .catch((err) => {
reject(err); reject(err);
}); });
}else{
} else {
this.guidePrintPromise("0008", false, row) this.guidePrintPromise("0008", false, row)
.then((res) => { .then((res) => {
return this.lisPrint(row, "0002", false); return this.lisPrint(row, "0002", false);
@ -1193,6 +1180,7 @@ export default {
// this.getPatientRegisterAbs(); // this.getPatientRegisterAbs();
this.dataTransOpts.tableS.patient_register.id = ""; this.dataTransOpts.tableS.patient_register.id = "";
this.dataTransOpts.copyGroup.itemTypeIds = [] //
this.dialogWin.PatientRegisterEdit = true; this.dialogWin.PatientRegisterEdit = true;
this.dataTransOpts.plus.clearPatientRegisterQuery++; // this.dataTransOpts.plus.clearPatientRegisterQuery++; //
setTimeout(() => { setTimeout(() => {
@ -1269,7 +1257,7 @@ export default {
// //
this.dataTransOpts.refresh.patient_register.S++; //() this.dataTransOpts.refresh.patient_register.S++; //()
this.dataTransOpts.plus.clearPatientRegisterQuery++; // this.dataTransOpts.plus.clearPatientRegisterQuery++; //
this.dataTransOpts.copyGroup.itemTypeIds = [] //
this.dialogWin.PatientRegisterEdit = true; this.dialogWin.PatientRegisterEdit = true;
}, },
@ -1933,7 +1921,7 @@ export default {
if ( if (
checkPagePriv(this.pagePriv.privs, "批量调整体检类别") && checkPagePriv(this.pagePriv.privs, "批量调整体检类别") &&
this.multipleSelection.length > 0 this.multipleSelection.length > 0
){
) {
items.push({ items.push({
label: "批量调整体检类别", label: "批量调整体检类别",
onClick: () => { onClick: () => {

59
src/components/patientRegister/patientRegisterAsbItem.vue

@ -3,11 +3,12 @@
<el-table :data="dataTransOpts.tableM.register_check_asbitem" border <el-table :data="dataTransOpts.tableM.register_check_asbitem" border
:height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small" :height="window.pageHeight < 600 ? 124 : Math.floor((window.pageHeight - 228) / 3)" size="small"
highlight-current-row :summary-method="getSummaries" show-summary ref="patientRegister.patientRegisterAbs"> highlight-current-row :summary-method="getSummaries" show-summary ref="patientRegister.patientRegisterAbs">
<el-table-column type="index" label="序号" width="50" align="center"/>
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="asbitemName" label="已选组合项目" min-width="150"> <el-table-column prop="asbitemName" label="已选组合项目" min-width="150">
<template slot-scope="scope"> <template slot-scope="scope">
<div> <div>
<i class="el-icon-view" style="font-size: 14px;color: black;cursor: pointer;" @click="getAsbItems(scope.row)" />
<i class="el-icon-view" style="font-size: 14px;color: black;cursor: pointer;"
@click="getAsbItems(scope.row)" />
<el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left"> <el-tooltip class="item" effect="dark" content="标五角星表示属于分组或套餐的项目" placement="left">
<i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on" <i v-if="scope.row.isBelongGroupPackage == 'Y'" class="el-icon-star-on"
style="padding: 3px; font-size: 16px;color: purple;" /> style="padding: 3px; font-size: 16px;color: purple;" />
@ -89,52 +90,76 @@ export default {
// //
dictInit() { dictInit() {
//
/*
// ()
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails') postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => { .then(res => {
if (res.code > -1) this.asbItems = res.data if (res.code > -1) this.asbItems = res.data
}) })
*/
}, },
// //
getAsbItems(row) { getAsbItems(row) {
if (this.asbItems.length == 0) {
postapi('/api/app/Asbitem/GetSimpleAsbitemWithDetails')
.then(res => {
if (res.code > -1){
this.asbItems = res.data
this.getAsbItemsDetail(row)
}
})
} else {
this.getAsbItemsDetail(row)
}
},
getAsbItemsDetail(row) {
if (this.asbItems.length == 0) {
} else {
}
let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId }) let asbItems = this.asbItems.filter(e => { return e.asbitemId == row.asbitemId })
let content = "" let content = ""
let length = asbItems.length let length = asbItems.length
let modeBase = 1,count = 0,pWidth=390
let modeBase = 1, count = 0, pWidth = 390
if(length >= 39){
if (length >= 39) {
modeBase = 3 modeBase = 3
pWidth=130
}else if(length >= 20){
pWidth = 130
} else if (length >= 20) {
modeBase = 2 modeBase = 2
pWidth=195
pWidth = 195
} }
// //
asbItems.forEach((e,i) => {
if(modeBase == 1){
asbItems.forEach((e, i) => {
if (modeBase == 1) {
content += '<p>' + e.itemName + '</p>' content += '<p>' + e.itemName + '</p>'
}else{
if(i==0){
} else {
if (i == 0) {
count = 1 count = 1
content += `<div style="display: flex;"><p style="width: ${pWidth}px;">` + e.itemName + '</p>' content += `<div style="display: flex;"><p style="width: ${pWidth}px;">` + e.itemName + '</p>'
}else if((i+1)%modeBase == 0){
} else if ((i + 1) % modeBase == 0) {
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p></div><div style="display: flex;">' content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p></div><div style="display: flex;">'
count = 1 count = 1
}else{
} else {
content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p>' content += `<p style="width: ${pWidth}px;">` + e.itemName + '</p>'
count++ count++
} }
} }
}); });
if(modeBase > 1){
if (modeBase > 1) {
for (let index = 0; index < 3; index++) { for (let index = 0; index < 3; index++) {
if(modeBase == count) break
if (modeBase == count) break
content += '<p></p>' content += '<p></p>'
count++ count++
} }
@ -223,7 +248,7 @@ export default {
return prev; return prev;
} }
}, 0); }, 0);
sums[index] = Math.floor(sums[index]*100)/100;
sums[index] = Math.floor(sums[index] * 100) / 100;
sums[index] += " 元"; sums[index] += " 元";
} else { } else {
sums[index] = "N/A"; sums[index] = "N/A";

7
src/store/index.js

@ -534,6 +534,13 @@ export default new Vuex.Store({
WebBookingMzak: 0, // 人寿预约 WebBookingMzak: 0, // 人寿预约
ImportOrgData: 0, // 导入企业(青藏公司)数据 ImportOrgData: 0, // 导入企业(青藏公司)数据
queue: 0, // 排队信息 queue: 0, // 排队信息
},
// 登记时复制分组与套餐用
copyGroup:{
itemTypeIds: '', //被选中的项目类别ID
asbItem: [], //左侧显示的未选组合项目
asbItemAll: [], //所有未选组合项目
} }
}, },

3
src/views/customerOrg/patientRegister.vue

@ -108,6 +108,7 @@ export default {
} }
}); });
/*
// //
getapi("/api/app/personnel-type/in-filter").then((res) => { getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) { if (res.code == 1) {
@ -163,7 +164,7 @@ export default {
this.dict.payMode = res.data; this.dict.payMode = res.data;
} }
}); });
*/
// //
// getapi("/api/app/item-type/by-code-all").then((res) => { // getapi("/api/app/item-type/by-code-all").then((res) => {
// if (res.code != -1) { // if (res.code != -1) {

Loading…
Cancel
Save