pengjun 1 year ago
parent
commit
e1e973624b
  1. 87
      src/components/doctorCheck/CheckPicture.vue
  2. 1
      src/components/doctorCheck/CheckPictureUpload.vue
  3. 2
      src/components/patientRegister/PatientRegisterEdit.vue
  4. 1
      src/components/patientRegister/PatientRegisterList.vue
  5. 36
      src/components/patientRegister/patientRegisterQuery.vue
  6. 2
      src/components/report/PatientRegisterListNobtn.vue
  7. 1
      src/store/index.js
  8. 168
      src/views/workload/deskwork.vue

87
src/components/doctorCheck/CheckPicture.vue

@ -32,10 +32,8 @@
</el-tooltip>
</div>
<div style="margin-top: -25px">
<el-image style="width: 80px; height: 80px; border-radius: 5px" :src="item.pictureFilename.indexOf('http') > -1
? item.pictureFilename
: sysConfig.apiurl + item.pictureFilename
" :preview-src-list="previewSrcList(checkPictures, item)">
<el-image style="width: 80px; height: 80px; border-radius: 5px" :src="imageFilePlus(item.pictureFilename)"
:preview-src-list="previewSrcList(checkPictures, item)">
</el-image>
</div>
<div style="display: flex">
@ -64,11 +62,11 @@
<script>
import moment from "moment";
import { mapState } from "vuex";
import { Loading } from "element-ui";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv, checkPagePriv, deepCopy, arrayExistObj } from "../../utlis/proFunc";
import CheckPictureUpload from "./CheckPictureUpload.vue";
export default {
components: {
CheckPictureUpload,
@ -175,22 +173,27 @@ export default {
if (lfind > -1) {
for (let i = lfind + 1; i < oriList.length; i++) {
let e = oriList[i];
image = e.pictureFilename.indexOf('http') > -1
? e.pictureFilename
: this.sysConfig.apiurl + e.pictureFilename;
image = this.imageFilePlus(e.pictureFilename)
srcList.push(image)
}
for (let index = 0; index < lfind; index++) {
let e = oriList[index];
image = e.pictureFilename.indexOf('http') > -1
? e.pictureFilename
: this.sysConfig.apiurl + e.pictureFilename;
image = this.imageFilePlus(e.pictureFilename)
srcList.push(image)
}
}
return srcList
},
//
imageFilePlus(fileName) {
if (fileName.indexOf('base64') > -1 || fileName.indexOf('http') > -1) {
return fileName
} else {
return this.sysConfig.apiurl + fileName
}
},
btnGetPic() {
if (!this.doctorCheck.RegisterCheckId) {
this.$message.warning({ showClose: true, message: "未选中组合项目!" });
@ -205,19 +208,57 @@ export default {
barCode: this.doctorCheck.checkRequestNo,
patientName: this.dataTransOpts.tableS.patient_register.patientName,
sexName: this.dataTransOpts.tableS.patient_register.sexName,
age: (this.dataTransOpts.tableS.patient_register.age||'') + '',
age: (this.dataTransOpts.tableS.patient_register.age || '') + '',
asbitemName: this.doctorCheck.asbitemName
}
console.log('this.$peisAPI.imageAcquisition',JSON.stringify(toOutShell))
this.$peisAPI.imageAcquisition(JSON.stringify(toOutShell)).then(res => {
let lres = JSON.parse(res)
if (lres.code > -1) {
console.log(lres.data)
}
console.log('lres', lres)
}).catch(err => {
this.$message.error(err)
})
// console.log('this.$peisAPI.imageAcquisition', JSON.stringify(toOutShell))
let loading = Loading.service({
lock: true,
text: "正在加载中,请稍后",
spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0)",
customClass: "boxStyle"
});
this.$peisAPI.imageAcquisition(JSON.stringify(toOutShell))
.then(res => {
let lres = JSON.parse(res)
if (lres.code > -1) {
let baseHead = 'data:image/jpeg;base64,'
switch (lres.data.ImageFormat) {
case 'png':
case 'bmp':
baseHead = `data:image/${lres.data.ImageFormat};base64,`
break;
default:
break;
}
this.checkPictures.push({ pictureFilename: baseHead + lres.data.Image })
let body = {
registerCheckId: this.dataTransOpts.tableS.register_check.id,
pictureBaseStrs: [{
fileName: '接口要换掉', //lres.data.FilePath
pictureBaseStr: baseHead + lres.data.Image
}]
}
postapi('/api/app/registercheckpicture/uploadregistercheckpicturemany', body).then(res => {
if (res.code > -1) {
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id)
}
})
// FilePath:
// Image
// ImageFormat
// console.log(lres.data,this.checkPictures)
}
// console.log('lres', lres)
}).catch(err => {
this.$message.error(err)
}).finally(() => {
loading.close()
});
},
@ -336,7 +377,7 @@ export default {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 检查图片 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.register_check.id}`);
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id);
if(newVal != oldVal) this.getCheckPictures(this.dataTransOpts.tableS.register_check.id);
}
},

1
src/components/doctorCheck/CheckPictureUpload.vue

@ -105,7 +105,6 @@ export default {
return;
}
let count = 0, err = '';
console.log('this.fileList', this.fileList)
for (let i = 0; i < this.fileList.length; i++) {

2
src/components/patientRegister/PatientRegisterEdit.vue

@ -976,8 +976,6 @@ export default {
console.log('sysParmId:patient_register_occ_check_id', error)
}
//
getapi("/api/app/sex").then((res) => {
if (res.code == 1) {

1
src/components/patientRegister/PatientRegisterList.vue

@ -1077,6 +1077,7 @@ export default {
&& this.patientRegister.query.customerOrgId != this.dict.personOrgId
&& this.patientRegister.query.customerOrgRegister.id) {
body.customerOrgRegisterId = this.patientRegister.query.customerOrgRegister.id
body.customerOrgGroupIds = this.patientRegister.query.customerOrgGroupIds
}
}

36
src/components/patientRegister/patientRegisterQuery.vue

@ -61,14 +61,16 @@
style="width: 150px" />
</div>
<div class="query">
<el-checkbox v-model="patientRegister.query.customerOrgFlag">单位作为查询条件</el-checkbox>
<el-tooltip class="item" effect="dark" content="单位作为查询条件" placement="top">
<el-checkbox v-model="patientRegister.query.customerOrgFlag"></el-checkbox>
</el-tooltip>
<el-cascader v-model="patientRegister.query.customerOrgId" :options="patientRegister.customerOrgTreeAll"
:props="{ checkStrictly: true, expandTrigger: 'hover', ...customerOrg.treeprops, }" placeholder="请选择单位"
:show-all-levels="false" clearable :disabled="orgEnable == 'Y' ? false : true" size="small"
style="width:120px;">
</el-cascader>
</div>
<div class="query">
<div v-show="dispTimes" class="query">
<span class="spanClass">次数</span>
<el-select v-model="patientRegister.query.customerOrgRegister" placeholder="次数"
@change="changeCustomerOrgRegister" style="width: 50px;" size="small" value-key="id">
@ -76,6 +78,13 @@
item.medicalTimes + '次' }}</el-option>
</el-select>
</div>
<div v-show="dispTimes" class="query">
<span class="spanClass">分组</span>
<el-select v-model="patientRegister.query.customerOrgGroupIds" placeholder="请选择" clearable filterable
style="width: 150px" size="small" multiple collapse-tags>
<el-option v-for="item in dict.customerOrgGroup" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</div>
<div class="query">
<span class="spanClass">体检类别</span>
<el-select v-model="patientRegister.query.medicalTypeIds" placeholder="请选择" clearable filterable
@ -170,6 +179,11 @@ export default {
computed: {
...mapState(["window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
dispTimes(){
return this.patientRegister.query.customerOrgFlag && this.patientRegister.query.customerOrgId && this.patientRegister.query.customerOrgId != this.dict.personOrgId
}
},
methods: {
checkPagePriv,
@ -230,13 +244,29 @@ export default {
console.log("this.patientRegister.query", this.patientRegister.query);
},
//
changeCustomerOrgRegister(v) {
// console.log('changeCustomerOrgRegister')
this.patientRegister.query.startDate = new Date(v.beginTime)
if (v.isComplete == 'Y') {
this.patientRegister.query.endDate = new Date(v.endTime)
} else {
this.patientRegister.query.endDate = new Date()
}
}
if(v && v.id) this.getCustomerOrgGroup(v.id)
},
//
getCustomerOrgGroup(customerOrgRegisterId) {
// console.log('getCustomerOrgGroup')
this.patientRegister.query.customerOrgGroupIds = []
this.dict.customerOrgGroup = []
// /api/app/customerorggroup/getlistinfilter?CustomerOrgRegisterId=${customerOrgRegisterId}`
postapi('/api/app/CustomerOrgGroup/GetListForPatentRegisterByFilter', { customerOrgRegisterId }).then(res => {
if (res.code > - 1) {
this.dict.customerOrgGroup = res.data;
}
})
},
//

2
src/components/report/PatientRegisterListNobtn.vue

@ -346,7 +346,7 @@ export default {
if (this.patientRegister.query.patientRegisterNo) body.patientRegisterNo = this.patientRegister.query.patientRegisterNo
if (this.patientRegister.query.patientNo) body.patientNo = this.patientRegister.query.patientNo
if (this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName
if (this.patientRegister.query.idCardNo) body.idCardNo = this.patientRegister.query.idCardNo
if (this.patientRegister.query.idCardNo) body.idNo = this.patientRegister.query.idCardNo
if (this.patientRegister.query.phone) body.phone = this.patientRegister.query.phone
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag
if (this.patientRegister.query.isAudit) body.isAudit = this.patientRegister.query.isAudit

1
src/store/index.js

@ -135,6 +135,7 @@ export default new Vuex.Store({
CustomerOrgParentId: "", //单位父级ID
customerOrgFlag: true, //单位作为查询条件
customerOrgRegister: { id: '' }, //单位体检次数
customerOrgGroupIds:[], //体检分组
checkAsbs: null,
patientRegisterNo: '',
pacsNo: '',

168
src/views/workload/deskwork.vue

@ -38,19 +38,28 @@
</el-select> -->
</div>
<div class="query">
<span>开始日期</span>
<span>起止日期</span>
<el-date-picker type="date" placeholder="选择开始日期" size="small" v-model="startDate" value-format="yyyy-MM-dd"
editable style="width: 100px;">
</el-date-picker>
</div>
<div class="query">
<span>结束日期</span>
<span> -</span>
<el-date-picker type="date" placeholder="选择结束日期" size="small" v-model="endDate" value-format="yyyy-MM-dd"
editable style="width: 100px;">
</el-date-picker>
</div>
<div class="query">
<span class="spanClass">体检类别</span>
<span class="spanClass">体检单位</span>
<el-select v-model="customerOrgIds" placeholder="请选择体检单位" :filter-method="filterMethod" default-first-option
clearable filterable style="margin-left: 10px" size="small" multiple collapse-tags>
<el-option v-for="item in customerOrg" :key="item.id" :label="item.displayName" :value="item.id">
{{ item.displayName }}
</el-option>
</el-select>
</div>
<div class="query">
<span class="spanClass">体检类别</span>
<el-select v-model="medicalTypeIds" placeholder="请选择" clearable filterable style="width: 150px" size="small"
multiple>
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
@ -65,19 +74,19 @@
</el-select>
</div>
<div class="query">
<el-button size="small" @click="onSubmit" class="commonbutton">查询</el-button>
<el-button size="small" @click="onSubmit" class="commonbutton" style="width: 60px;">查询</el-button>
</div>
<div class="query">
<el-button size="small" @click="handleExport" class="commonbutton">导出excel</el-button>
<el-button size="small" @click="handleExport" class="commonbutton" style="width: 80px;">导出excel</el-button>
</div>
<div class="query">
<el-button size="small" @click="onPrint" class="commonbutton">打印</el-button>
<el-button size="small" @click="onPrint" class="commonbutton" style="width: 60px;">打印</el-button>
</div>
<div class="query">
<el-button size="small" @click="columnarChart" class="commonbutton">柱状图</el-button>
<el-button size="small" @click="columnarChart" class="commonbutton" style="width: 70px;">柱状图</el-button>
</div>
<div class="query">
<el-button size="small" @click="peiChart" class="commonbutton">饼图</el-button>
<el-button size="small" @click="peiChart" class="commonbutton" style="width: 60px;">饼图</el-button>
</div>
</div>
<div style="
@ -95,7 +104,7 @@
: ''
" :data="standardTableData" id="standardTableData" ref="standardTableData" style="width: 100%"
:header-cell-class-name="headerStyle" :cell-style="tableRowClassName" :summary-method="getSummaries"
show-summary>
show-summary>
<el-table-column label="科室工作量统计">
<el-table-column :label="'时间:' + startDate + '至' + endDate">
<el-table-column prop="itemTypeName" label="科室"></el-table-column>
@ -211,6 +220,7 @@ import { exportToExcel } from "../../utlis/Export2Excel";
import html2canvas from "html2canvas";
import printJs from "print-js";
import { projectlist } from "@/request/commonapi";
import { deepCopy } from "../../utlis/proFunc"
export default {
components: {
ChartBlock,
@ -221,7 +231,8 @@ export default {
username: [],
startDate: "",
endDate: "",
medicalTypeIds:[],
customerOrgIds: [],
medicalTypeIds: [],
tableData: [],
standardTableData: [],
projectTableData: [],
@ -236,6 +247,8 @@ export default {
mergedColumnes: ["itemTypeName"],
oldTableData: [],
format: "0",
customerOrg: [],
customerOrgAll: [],
};
},
created() {
@ -247,60 +260,68 @@ export default {
},
methods: {
getSummaries(param) {
const { columns, data } = param;
const sums = [];
console.log(param)
let asbitemCount=0
let checkAsbitemCount=0
let avgStandardPrice=0
let avgChargePrice=0
let sumStandardPrice=0
let sumChargePrice=0
data.forEach((column, index) => {
if(column.asbitemName==='合计'){
asbitemCount+=column.asbitemCount
checkAsbitemCount+=column.checkAsbitemCount
avgStandardPrice=(Number(avgStandardPrice) + Number(column.avgStandardPrice)).toFixed(2)
avgChargePrice=(Number(avgChargePrice) + Number(column.avgChargePrice)).toFixed(2)
sumStandardPrice=(Number(sumStandardPrice) + Number(column.sumStandardPrice)).toFixed(2)
sumChargePrice=(Number(sumChargePrice) + Number(column.sumChargePrice)).toFixed(2)
}
});
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总计';
return;
}
if (index === 2) {
sums[index] = asbitemCount+'人';
return;
}
if (index === 3) {
sums[index] = checkAsbitemCount+'人';
return;
}
if (index === 4) {
sums[index] = avgStandardPrice+'元';
return;
}
if (index === 5) {
sums[index] = avgChargePrice+'元';
return;
}
if (index === 6) {
sums[index] = sumStandardPrice+'元';
return;
}
if (index === 7) {
sums[index] = sumChargePrice+'元';
return;
}
});
getSummaries(param) {
const { columns, data } = param;
const sums = [];
console.log(param)
let asbitemCount = 0
let checkAsbitemCount = 0
let avgStandardPrice = 0
let avgChargePrice = 0
let sumStandardPrice = 0
let sumChargePrice = 0
data.forEach((column, index) => {
if (column.asbitemName === '合计') {
asbitemCount += column.asbitemCount
checkAsbitemCount += column.checkAsbitemCount
avgStandardPrice = (Number(avgStandardPrice) + Number(column.avgStandardPrice)).toFixed(2)
avgChargePrice = (Number(avgChargePrice) + Number(column.avgChargePrice)).toFixed(2)
sumStandardPrice = (Number(sumStandardPrice) + Number(column.sumStandardPrice)).toFixed(2)
sumChargePrice = (Number(sumChargePrice) + Number(column.sumChargePrice)).toFixed(2)
}
});
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '总计';
return;
}
if (index === 2) {
sums[index] = asbitemCount + '人';
return;
}
if (index === 3) {
sums[index] = checkAsbitemCount + '人';
return;
}
if (index === 4) {
sums[index] = avgStandardPrice + '元';
return;
}
if (index === 5) {
sums[index] = avgChargePrice + '元';
return;
}
if (index === 6) {
sums[index] = sumStandardPrice + '元';
return;
}
if (index === 7) {
sums[index] = sumChargePrice + '元';
return;
}
});
return sums;
},
return sums;
},
dictInit() {
//
getapi("/api/app/customer-org/parent-all").then((res) => {
if (res.code != -1) {
this.customerOrgAll = res.data;
this.customerOrg = deepCopy(this.customerOrgAll);
}
});
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code != -1) {
@ -309,6 +330,24 @@ export default {
});
},
//
filterMethod(keyWords) {
if (keyWords) {
this.customerOrg = [];
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.customerOrg.push(item);
}
});
} else {
this.customerOrg = deepCopy(this.customerOrgAll);
}
},
tableRowClassName({ row, column, rowIndex, columnIndex }) {
if (row.asbitemName == "合计") {
return { backgroundColor: "#F5F7FA" };
@ -509,7 +548,8 @@ page-break-before: avoid;}}`, // 去除页眉页脚
itemTypeId: that.username,
startDate: that.startDate,
endDate: that.endDate,
medicalTypeIds:this.medicalTypeIds
medicalTypeIds: this.medicalTypeIds,
customerOrgIds:this.customerOrgIds
}).then((res) => {
if (res.code != -1) {
this.pieData = [];
@ -932,7 +972,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
itemTypeName: "",
asbitemName: "合计",
asbitemCount: 0,
checkAsbitemCount:0,
checkAsbitemCount: 0,
avgStandardPrice: 0,
avgChargePrice: 0,
sumStandardPrice: 0,

Loading…
Cancel
Save