Browse Source

cctj

master
pengjun 1 month ago
parent
commit
19c1626df4
  1. 13
      src/components/doctorCheck/CheckItemList.vue
  2. 3
      src/components/doctorCheck/CheckPicture.vue
  3. 24
      src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue
  4. 162
      src/components/patientRegister/PatientRegisterEditPersonnelTypeBatch.vue
  5. 153
      src/components/patientRegister/PatientRegisterEditRemarkBatch.vue
  6. 89
      src/components/patientRegister/PatientRegisterList.vue
  7. 27
      src/components/patientRegister/customerOrgTreeAll.vue
  8. 4
      src/components/patientRegister/patientRegisterQuery.vue
  9. 4
      src/store/index.js
  10. 1007
      src/views/fee-settings/Asbitem.vue

13
src/components/doctorCheck/CheckItemList.vue

@ -305,7 +305,7 @@ export default {
}
},
hisResultDetailDialogVisible: true,
hisResultDetailDialogVisible: false,
};
},
@ -352,6 +352,17 @@ export default {
methods: {
dddw,
dictInit() {
// ()
postapi('/api/app/SysParmValue/GetSysParmValueBySysParmId', { sysParmId:'doctor_check_disp_hisdetail' })
.then(res => {
if(res.code > -1){
let hisResultDetailDialogVisible = res.data||"N"
if(hisResultDetailDialogVisible == 'Y'){
this.hisResultDetailDialogVisible = true
}
}
})
//
getapi("/api/app/result-status").then((res) => {
if (res.code != -1) {

3
src/components/doctorCheck/CheckPicture.vue

@ -462,7 +462,8 @@ export default {
pictureBaseStrs: [{
fileName,
localPathName: item.FilePath,
pictureBaseStr: baseHead + item.Image
pictureBaseStr: baseHead + item.Image,
isPrint:'N'
}],
pictureFileType: '0' //01 this.pictureFileType
}

24
src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue

@ -56,7 +56,7 @@ export default {
//
created() {
this.asbitemBatchInit = deepCopy(this.asbitemBatch)
//this.asbitemBatchInit = deepCopy(this.asbitemBatch)
},
//
@ -83,15 +83,25 @@ export default {
//()
btnOk() {
this.$message.warning({showClose:true,message:'开发中.....'})
return
//this.$message.warning({showClose:true,message:'.....'})
//return
let url = '/api/app/RegisterCheck/UpdateBatchCheckDoctor'
let url = '/api/app/PatientRegister/BatchUpdatePatientRegisterInfoByPatientRegisterId'
//if(this.doctorType == 'audit') url = '/api/app/RegisterCheck/UpdateBatchAuditDoctor'
postapi(url, { patientRegisterIds: this.patientRegisterIds, medicalTypeId })
/*
{
"patientRegisterIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"medicalTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"personnelTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"remark": "string"
}
*/
postapi(url, { patientRegisterIds: this.patientRegisterIds, medicalTypeId:this.medicalTypeId })
.then(res => {
if (res.code > -1) {
this.$message.success({showClose:true,message:'操作成功!'})
this.dialogWin.PatientRegisterEditMedicalTypeBatch = false;
}
})
@ -113,7 +123,7 @@ export default {
this.dict.medicalType = res.data;
}
});
},
},

162
src/components/patientRegister/PatientRegisterEditPersonnelTypeBatch.vue

@ -0,0 +1,162 @@
<template>
<div>
<div>
<div style="margin-top: 2px">
<el-select v-model="personnelTypeId" placeholder="请选择" filterable clearable style="width:300px;" size="small">
<el-option v-for="item in dict.personnelType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
<div style="margin: 10px; display: flex;justify-content: space-between;">
<div></div>
<div>
<el-button class="commonbutton" type="primary" @click="btnOk"> </el-button>
<el-button class="commonbutton" @click="dialogWin.PatientRegisterEditPersonnelTypeTypeBatch = false"> </el-button>
</div>
</div>
</div>
</div>
<div>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<ElProgressOCX />
</el-dialog>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import {
dddw,
arrayReduce,
arrayExistObj,
deepCopy,
} from "../../utlis/proFunc";
import ElProgressOCX from "../report/ElProgressOCX.vue";
export default {
components: {
ElProgressOCX,
},
props: ["multipleSelection", "doctorType"],
data() {
return {
tableData: [],
users: [],
patientRegisterIds: [],
personnelTypeId:'',
};
},
//
created() {
//this.asbitemBatchInit = deepCopy(this.asbitemBatch)
},
//
mounted() {
//
this.dictInit()
},
computed: {
...mapState([
"window",
"dataTransOpts",
"dialogWin",
"dict",
"elProgress",
"patientRegister",
"customerOrg",
]),
},
methods: {
moment, dddw, deepCopy,
//()
btnOk() {
//this.$message.warning({showClose:true,message:'.....'})
//return
let url = '/api/app/PatientRegister/BatchUpdatePatientRegisterInfoByPatientRegisterId'
//if(this.doctorType == 'audit') url = '/api/app/RegisterCheck/UpdateBatchAuditDoctor'
/*
{
"patientRegisterIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"medicalTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"personnelTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"remark": "string"
}
*/
postapi(url, { patientRegisterIds: this.patientRegisterIds, personnelTypeId:this.personnelTypeId })
.then(res => {
if (res.code > -1) {
this.$message.success({showClose:true,message:'操作成功!'})
this.dialogWin.PatientRegisterEditPersonnelTypeBatch = false;
}
})
},
//
dictInit() {
this.patientRegisterIds = []
this.multipleSelection.forEach(e => {
this.patientRegisterIds.push(e.id)
});
//
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code > -1) {
this.dict.personnelType = res.data;
}
});
},
},
//
watch: {
"dataTransOpts.plus.PatientRegisterEditPersonnelTypeBatch": {
// immediate: true, //
// deep: true, //
handler(newVal, oldVal) {
//console.log(`watch: newVal: ${newVal} oldVal:${oldVal}`)
if (newVal != oldVal) this.dictInit()
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
.box {
display: flex;
}
.listBtn {
margin-top: 5px;
text-align: center;
}
.btnClass {
width: 100px;
}
</style>

153
src/components/patientRegister/PatientRegisterEditRemarkBatch.vue

@ -0,0 +1,153 @@
<template>
<div>
<div>
<div style="margin-top: 2px">
<el-input v-model="remark" type="textarea" :rows="2" placeholder="请输入备注" size="small"></el-input>
<div style="margin: 10px; display: flex;justify-content: space-between;">
<div></div>
<div>
<el-button class="commonbutton" type="primary" @click="btnOk"> </el-button>
<el-button class="commonbutton" @click="dialogWin.PatientRegisterEditRemarkBatch = false"> </el-button>
</div>
</div>
</div>
</div>
<div>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<ElProgressOCX />
</el-dialog>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import {
dddw,
arrayReduce,
arrayExistObj,
deepCopy,
} from "../../utlis/proFunc";
import ElProgressOCX from "../report/ElProgressOCX.vue";
export default {
components: {
ElProgressOCX,
},
props: ["multipleSelection", "doctorType"],
data() {
return {
tableData: [],
users: [],
patientRegisterIds: [],
remark:'',
};
},
//
created() {
//this.asbitemBatchInit = deepCopy(this.asbitemBatch)
},
//
mounted() {
//
this.dictInit()
},
computed: {
...mapState([
"window",
"dataTransOpts",
"dialogWin",
"dict",
"elProgress",
"patientRegister",
"customerOrg",
]),
},
methods: {
moment, dddw, deepCopy,
//()
btnOk() {
//this.$message.warning({showClose:true,message:'.....'})
//return
let url = '/api/app/PatientRegister/BatchUpdatePatientRegisterInfoByPatientRegisterId'
//if(this.doctorType == 'audit') url = '/api/app/RegisterCheck/UpdateBatchAuditDoctor'
/*
{
"patientRegisterIds": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"medicalTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"personnelTypeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"remark": "string"
}
*/
postapi(url, { patientRegisterIds: this.patientRegisterIds, remark:this.remark })
.then(res => {
if (res.code > -1) {
this.$message.success({showClose:true,message:'操作成功!'})
this.dialogWin.PatientRegisterEditRemarkBatch = false;
}
})
},
//
dictInit() {
this.patientRegisterIds = []
this.multipleSelection.forEach(e => {
this.patientRegisterIds.push(e.id)
});
},
},
//
watch: {
"dataTransOpts.plus.PatientRegisterEditRemarkBatch": {
// immediate: true, //
// deep: true, //
handler(newVal, oldVal) {
//console.log(`watch: newVal: ${newVal} oldVal:${oldVal}`)
if (newVal != oldVal) this.dictInit()
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
.box {
display: flex;
}
.listBtn {
margin-top: 5px;
text-align: center;
}
.btnClass {
width: 100px;
}
</style>

89
src/components/patientRegister/PatientRegisterList.vue

@ -98,8 +98,8 @@
">
{{ scope.row.customerOrgGroupName }}
</div>
</div>
<!--
<div v-else-if="dragCol[index].prop == 'nationId'">
{{
dddw(
@ -110,6 +110,7 @@
)
}}
</div>
-->
<div v-else-if="dragCol[index].prop == 'birthDate'">
{{
scope.row[dragCol[index].prop]
@ -119,6 +120,7 @@
: ""
}}
</div>
<!--
<div v-else-if="dragCol[index].prop == 'maritalStatusId'">
{{
dddw(
@ -129,6 +131,7 @@
)
}}
</div>
-->
<div v-else-if="dragCol[index].prop == 'medicalTypeId'">
{{
dddw(
@ -139,6 +142,7 @@
)
}}
</div>
<!--
<div v-else-if="dragCol[index].prop == 'personnelTypeId'">
{{
dddw(
@ -149,6 +153,7 @@
)
}}
</div>
-->
<div v-else-if="dragCol[index].prop == 'idNo'">
{{ scope.row[dragCol[index].prop] }}&#031;
</div>
@ -391,6 +396,18 @@
<PatientRegisterEditMedicalTypeBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 批量调整人员类别 -->
<el-dialog title="批量调整人员类别" :visible.sync="dialogWin.PatientRegisterEditPersonnelTypeBatch" width="610px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditPersonnelTypeBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 批量调整备注 -->
<el-dialog title="批量调整备注" :visible.sync="dialogWin.PatientRegisterEditRemarkBatch" width="610px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditRemarkBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
@ -443,6 +460,8 @@ import PatientRegisterEditGroupBatch from "./PatientRegisterEditGroupBatch.vue";
import PatientRegisterEditItemBatch from "./PatientRegisterEditItemBatch.vue";
import PatientRegisterEditDoctorBatch from "./PatientRegisterEditDoctorBatch.vue";
import PatientRegisterEditMedicalTypeBatch from "./PatientRegisterEditMedicalTypeBatch.vue";
import PatientRegisterEditPersonnelTypeBatch from "./PatientRegisterEditPersonnelTypeBatch.vue";
import PatientRegisterEditRemarkBatch from "./PatientRegisterEditRemarkBatch.vue";
import ImportOrgData from "./ImportOrgData.vue";
import LocalConfig from "../../components/common/LocalConfig.vue";
import Queue from "../../components/queue/Queue.vue";
@ -456,6 +475,8 @@ export default {
PatientRegisterEditItemBatch, //
PatientRegisterEditDoctorBatch, //
PatientRegisterEditMedicalTypeBatch, //
PatientRegisterEditPersonnelTypeBatch, //
PatientRegisterEditRemarkBatch, //
ElProgressOCX,
LocalConfig,
ImportOrgData,
@ -538,7 +559,7 @@ export default {
minWidth: 150,
align: "center",
},
{ label: "民族", prop: "nationId", minWidth: 55, align: "center" },
{ label: "民族", prop: "nationName", minWidth: 55, align: "center" }, //nationId
{ label: "身份证", prop: "idNo", minWidth: 160, align: "center" },
{ label: "出生日期", prop: "birthDate", minWidth: 80, align: "center" },
{ label: "邮箱", prop: "email", minWidth: 150, align: "center" },
@ -560,7 +581,7 @@ export default {
{ label: "工卡号", prop: "jobCardNo", minWidth: 80, align: "center" },
{
label: "婚姻状况",
prop: "maritalStatusId",
prop: "maritalStatusName", //maritalStatusId
minWidth: 80,
align: "center",
},
@ -572,7 +593,7 @@ export default {
},
{
label: "人员类别",
prop: "personnelTypeId",
prop: "personnelTypeName", //personnelTypeId
minWidth: 80,
align: "center",
},
@ -1860,7 +1881,8 @@ export default {
});
if (subMenuPrint.length > 0)
items.push({ label: "打印条码", children: subMenuPrint });
// ============ start
let subMenuImp = [];
if (
checkPagePriv(this.pagePriv.privs, "导入检查结果") &&
@ -1892,14 +1914,18 @@ export default {
this.importResult("diAn", row);
},
});
if (subMenuImp.length > 0)
if (subMenuImp.length > 0){
items.push({ label: "导入结果", children: subMenuImp });
}
// ============ end
// ============ start
let batchMenus = []
if (
checkPagePriv(this.pagePriv.privs, "批量更新组合项目明细") &&
this.multipleSelection.length > 0
)
items.push({
batchMenus.push({
label: "批量更新组合项目明细",
onClick: () => {
this.btnItemBatch();
@ -1909,7 +1935,7 @@ export default {
checkPagePriv(this.pagePriv.privs, "调整检查项目医生") &&
this.multipleSelection.length > 0
)
items.push({
batchMenus.push({
label: "调整检查项目医生",
onClick: () => {
// this.doctorType = 'check'
@ -1922,7 +1948,7 @@ export default {
checkPagePriv(this.pagePriv.privs, "批量调整体检类别") &&
this.multipleSelection.length > 0
) {
items.push({
batchMenus.push({
label: "批量调整体检类别",
onClick: () => {
// this.doctorType = 'check'
@ -1931,6 +1957,39 @@ export default {
},
});
}
if (
checkPagePriv(this.pagePriv.privs, "批量调整人员类别") &&
this.multipleSelection.length > 0
) {
batchMenus.push({
label: "批量调整人员类别",
onClick: () => {
// this.doctorType = 'check'
this.dataTransOpts.plus.PatientRegisterEditPersonnelTypeBatch++; //
this.dialogWin.PatientRegisterEditPersonnelTypeBatch = true;
},
});
}
if (
checkPagePriv(this.pagePriv.privs, "批量调整备注") &&
this.multipleSelection.length > 0
) {
batchMenus.push({
label: "批量调整备注",
onClick: () => {
// this.doctorType = 'check'
this.dataTransOpts.plus.PatientRegisterEditRemarkBatch++; //
this.dialogWin.PatientRegisterEditRemarkBatch = true;
},
});
}
if (batchMenus.length > 0){
items.push({ label: "批量操作", children: batchMenus });
}
// ============ end
if (
checkPagePriv(this.pagePriv.privs, "查看云胶片二维码")
)
@ -2313,16 +2372,16 @@ export default {
if (e.patientRegisterNo) e.patientRegisterNo = '&' + e.patientRegisterNo
if (e.patientNo) e.patientNo = '&' + e.patientNo
if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId === this.dict.personOrgId) {
e.groupPack = dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName")
e.groupPack = e.medicalPackageName // dddw(this.dict.medicalPackage, "id", e.medicalPackageId, "displayName")
} else if (e.medicalPackageId !== this.dict.personOrgId && e.customerOrgId !== this.dict.personOrgId) {
e.groupPack = dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName")
e.groupPack = e.customerOrgGroupName // dddw(this.dict.customerOrgGroupAll, "id", e.customerOrgGroupId, "displayName")
}
if (e.nationId) e.nationId = dddw(this.dict.nation, "id", e.nationId, "displayName")
//if (e.nationId) e.nationId = dddw(this.dict.nation, "id", e.nationId, "displayName")
if (e.idNo) e.idNo = e.idNo + '&'
if (e.birthDate) e.birthDate = moment(e.birthDate).format("yyyy-MM-DD")
if (e.maritalStatusId) e.maritalStatusId = dddw(this.dict.maritalStatus, "id", e.maritalStatusId, "displayName")
//if (e.maritalStatusId) e.maritalStatusId = dddw(this.dict.maritalStatus, "id", e.maritalStatusId, "displayName")
if (e.medicalTypeId) e.medicalTypeId = dddw(this.dict.medicalType, "id", e.medicalTypeId, "displayName")
if (e.personnelTypeId) e.personnelTypeId = dddw(this.dict.personnelType, "id", e.personnelTypeId, "displayName")
//if (e.personnelTypeId) e.personnelTypeId = dddw(this.dict.personnelType, "id", e.personnelTypeId, "displayName")
if (e.isVip) e.isVip = e.isVip == "Y" ? "是" : "否"
if (e.isUpload) e.isUpload = e.isUpload == "Y" ? "是" : "否"
if (e.qztlType) e.qztlType = dddw(this.dict.qztlType, "id", e.qztlType, "displayName")

27
src/components/patientRegister/customerOrgTreeAll.vue

@ -89,7 +89,6 @@ export default {
// (Y:N)
//
if (this.cusQuery.haveSunCus == 'Y') {
this.getCustomerOrgAll()
.then(res => {
@ -117,8 +116,24 @@ export default {
let url = '/api/app/CustomerOrg/GetSimpleByCodeAll'
if(this.LocalConfig.patientRegister.dispCustomerOrgCode == 'Y'){
url = "/api/app/customerorg/getbycodeall"
}
getapi(url)
getapi(url)
.then((res) => {
if (res.code > -1) {
let treeData = reMadeOrgTree(deepCopy(res.data), this.LocalConfig.patientRegister.dispCustomerOrgCode);
this.cusQuery.times += 1
//console.log('getCustomerOrgAll.treeData', treeData)
//console.log('getTreeNode', getTreeNode(treeData, "treeChildren", 'id', '3a1d3736-d7c6-a9fb-c165-675335dc0e9b').treeChildren)
this.cusQuery.treeDataAll = treeData
resolve(treeData)
} else {
reject(res.message)
}
})
.catch(err => {
reject(err)
})
}else{
postapi(url)
.then((res) => {
if (res.code > -1) {
let treeData = reMadeOrgTree(deepCopy(res.data), this.LocalConfig.patientRegister.dispCustomerOrgCode);
@ -134,6 +149,8 @@ export default {
.catch(err => {
reject(err)
})
}
})
},
@ -256,8 +273,8 @@ export default {
console.log('filterParentNode', value)
// if (!value) return true;
// return data['displayName'].indexOf(value) > -1 || data['simpleCode'].indexOf(value.toUpperCase()) > -1 || data['shortName'].indexOf(value) > -1 || data['customerOrgCode'].indexOf(value) > -1;
this.customerOrgTreeAll = this.cusQuery.treeDataTop1.filter(e => {
return e.label.indexOf(value) > -1 || e.simpleCode.indexOf(value.toUpperCase()) > -1 || e.shortName.indexOf(value) > -1
this.customerOrgTreeAll = this.cusQuery.treeDataTop1.filter(e => {
return e.label.indexOf(value) > -1 || e.simpleCode.indexOf(value.toUpperCase()) > -1
})
},

4
src/components/patientRegister/patientRegisterQuery.vue

@ -49,8 +49,8 @@
</div>
<div class="query">
<span class="spanClass">性别</span>
<el-select v-model="patientRegister.query.sex" placeholder="性别" style="width: 50px" size="small">
<el-option v-for="item in dict.forSex" :key="item.id" :label="item.displayName" :value="item.id">
<el-select v-model="patientRegister.query.sex" placeholder="性别" style="width: 50px" size="small" clearable>
<el-option v-for="item in dict.sex" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</div>

4
src/store/index.js

@ -528,6 +528,8 @@ export default new Vuex.Store({
PatientRegisterEditItemBatch: 0, // 刷新批量调整项目窗口
PatientRegisterEditDoctorBatch: 0, // 刷新批量调整项目检查医生窗口
PatientRegisterEditMedicalTypeBatch:0, // 刷新批量调整体检类别窗口
PatientRegisterEditPersonnelTypeBatch:0, // 刷新批量调整人员类别窗口
PatientRegisterEditRemarkBatch:0, // 刷新批量调整备注窗口
PatientRegisterForChoose: 0, // 体检人员查询窗口
OccDisease: 0, // 职业病
WebBooking: 0, // 网上预约
@ -557,6 +559,8 @@ export default new Vuex.Store({
PatientRegisterEditGroupBatch: false, //批量调整分组
PatientRegisterEditDoctorBatch: false, // 批量调整检查项目医生
PatientRegisterEditMedicalTypeBatch: false, // 批量调整体检类别
PatientRegisterEditPersonnelTypeBatch:false, // 刷新批量调整人员类别窗口
PatientRegisterEditRemarkBatch:false, // 刷新批量调整备注窗口
MenuPageSet: false, // 设置角色菜单权限
LocalConfig: false, // 设置窗口
AsbChargeRequest: false, // 收费申请

1007
src/views/fee-settings/Asbitem.vue
File diff suppressed because it is too large
View File

Loading…
Cancel
Save