pengjun 11 months ago
parent
commit
45bbcf9ed6
  1. 26
      src/components/patientRegister/PatientRegisterEdit.vue
  2. 2
      src/main.js
  3. 6
      src/router/index.js
  4. 416
      src/views/charge/WebChargeBack.vue
  5. 478
      src/views/charge/charge.vue
  6. 308
      src/views/lis/LisTakeSample.vue

26
src/components/patientRegister/PatientRegisterEdit.vue

@ -22,7 +22,8 @@
<el-button type="primary" class="commonbutton" @click="btnWebBooking" style="width:70px;">个人预约</el-button>
</div>
<div style="margin-left: 5px;">
<el-button type="primary" class="commonbutton" @click="btnWebBookingMzak" style="width:70px;">人寿预约</el-button>
<el-button type="primary" class="commonbutton" @click="btnWebBookingMzak"
style="width:70px;">人寿预约</el-button>
</div>
<div style="margin-left: 5px;" v-show="checkPagePriv(pagePriv.privs, '同步团检预约')">
<el-button type="primary" class="commonbutton" @click="btnDownOrg"
@ -407,7 +408,7 @@
<el-input v-model="form.jobType" clearable size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="17">
<el-col :span="14">
<el-form-item label="接害因素" label-width="65px">
<el-select v-model="form.poisonIds" size="small"
:style="`width:${Math.floor((window.pageWidth - 222) / 1.41)}px;`" clearable filterable
@ -420,6 +421,11 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="申请号" prop="occupationalDiseaseNumber" label-width="50px">
<el-input v-model="form.occupationalDiseaseNumber" clearable size="small"></el-input>
</el-form-item>
</el-col>
</el-row>
<!--职业病 end -->
<el-row>
@ -814,9 +820,9 @@ export default {
jobType: '', //
poisonIds: [], // IDs
isPatientOccupationalDisease: 'Y', //
appointPatientRegisterId:"",
appointPatientRegisterId: "",
thirdBookingId: "",
occupationalDiseaseNumber:"",
}, //
@ -1836,7 +1842,8 @@ export default {
patientRegisterId: this.form.id,
ocCheckTypeId: this.form.ocCheckTypeId,
jobType: this.form.jobType,
riskFactors: `${lriskFactors}`
riskFactors: `${lriskFactors}`,
occupationalDiseaseNumber:this.form.occupationalDiseaseNumber
}
//
@ -2831,11 +2838,11 @@ export default {
this.patientRegister.query.customerOrgId = appoint_patient_register.customerOrgId
this.patientRegister.query.CustomerOrgParentId = appoint_patient_register.customerOrgId
this.form.customerOrgId = [appoint_patient_register.customerOrgId] //
let customerOrgParentId = await this.getParentCustomerOrgId(appoint_patient_register.customerOrgId)
let customerOrgParentId = await this.getParentCustomerOrgId(appoint_patient_register.customerOrgId)
this.form.customerOrgParentId = customerOrgParentId
await this.initFormData(this.dataTransOpts.tableS.patient_register.id)
this.form.customerOrgName = customerOrgParentId
// "appointPatientRegisterId": "string",
@ -3009,6 +3016,7 @@ export default {
font-weight: 700;
}
.btn {
margin-top: 5px;
}

2
src/main.js

@ -11,7 +11,7 @@ import Meta from 'vue-meta'
import Contextmenu from 'vue-contextmenujs' //'vue-contextmenu'
import "./assets/css/global_font.css";
import UmyUi from 'umy-ui'
import 'umy-ui/lib/theme-chalk/index.css'; // 引入样式
//import 'umy-ui/lib/theme-chalk/index.css'; // 引入样式

6
src/router/index.js

@ -519,6 +519,12 @@ const routes = [{
component: () =>
import ("../views/doctorCheck/tabletCalling.vue"),
},
{
path: "/LisTakeSample",
name: "样本采集",
component: () =>
import ("../views/lis/LisTakeSample.vue"),
},
//---------------------- 体 检 end ----------------------
//---------------------- 体检查询 start ----------------------
{

416
src/views/charge/WebChargeBack.vue

@ -0,0 +1,416 @@
<template>
<div style="font-size: 14px;display: flex; width: 100%;">
<div style="display: flex;">
<div :style="`display: block; width: ${window.pageWidth - 130}px;`">
<!-- 查询条件 与列表 -->
<div
:style="'display: flex;flex-wrap: wrap;height: 40px;background-color: #fff;border-radius: 8px;margin-bottom: 5px;align-items: center;padding: 10px;width:' + (window.pageWidth - 110 - 40) + 'px;'">
<div class="query">
<el-select v-model="query.dateType" placeholder="请选择" style="width: 80px" size="small">
<el-option label="登记日期" :value="'1'" />
<el-option label="体检日期" :value="'2'" />
<el-option label="缴费日期" :value="'3'" />
</el-select>
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small" style="width:90px;"
value-format="yyyy-MM-dd" />
<span style="margin: 0 3px;"></span>
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;"
value-format="yyyy-MM-dd" />
</div>
<div class="query">
<span class="spanClass">条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" clearable style="width: 120px" />
</div>
<div class="query">
<span class="spanClass">姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small" clearable style="width: 60px" />
</div>
<div class="query">
<span class="spanClass">身份证</span>
<el-input placeholder="身份证" v-model="query.idNo" size="small" clearable style="width: 150px" />
</div>
</div>
<!-- 人员列表 -->
<div style="padding: 10px 0 0 0;border-radius: 8px;background-color: #fff;">
<el-table :data="patientList" border highlight-current-row ref="patientList"
:height="Math.floor(tableListHeight / 2)" @row-click="rowClick" size="small">
<!--
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName :
scope.row.customerOrgName }}
</div>
</template>
</el-table-column>
-->
<el-table-column type="index" label="序号" width="40" align="center"/>
<el-table-column prop="chargeSumMoney" label="金额" width="80" align="center"/>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别" width="40"/>
<el-table-column prop="age" label="年龄" width="40"/>
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="isVip" label="是否VIP">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="salesman" label="介绍人" />
<!--
<el-table-column prop="invoiceNo" label="发票号" />
<el-table-column prop="invoiceOrgName" label="发票抬头" />
<el-table-column prop="chargeId" label="介绍人" />
<el-table-column prop="chargeBackId" label="介绍人" />
-->
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
</el-table>
</div>
<!-- 项目收费列表 -->
<div style="padding: 10px 0 5px 0;border-radius: 8px;background-color: #fff;">
<el-table :data="details" border highlight-current-row :height="Math.floor(tableListHeight / 2) - 10"
size="small">
<el-table-column label="序号" width="40" type="index" align="center" />
<el-table-column label="组合项目" width="240" prop="asbitemName" />
<el-table-column label="标准价格" prop="standardPrice" width="80" align="center" />
<el-table-column label="折扣" prop="discount" width="80" align="center" />
<el-table-column label="数量" prop="amount" width="50" align="center" />
<el-table-column label="实收价格" prop="chargePrice" width="80" align="center" />
<el-table-column prop="total" label="金额" width="70" v-if="false" />
<el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" />
</el-table>
</div>
</div>
<div style="margin-left:10px;" class="btnDivClass">
<div class="btnListClass">
<el-button type="primary" class="commonbutton" @click="Query">查询</el-button>
</div>
<div style="margin-top: 40px;" class="btnListClass">
<el-button type="danger" class="commonbutton" @click="btnChargeBack">退费</el-button>
</div>
</div>
</div>
</div>
</template>
<script>
import moment from 'moment';
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue";
import PatientRegisterRefuseList from "../../components/patientRegister/PatientRegisterRefuseList.vue";
export default {
components: {
PatientRegisterQuery,
PatientRegisterRefuseList,
},
props: ["patientRegisterNo"],
data() {
return {
activeName: "peis",
query: {
dateType: '1', // 1 2 3
startDate: null,
endDate: null,
patientRegisterNo: '',
patientNo: '',
invoiceNo: '', //
patientName: '',
idNo: "", //
},//
patientList: [],//
curPatient:{}, //
details: [], //
};
},
created() {
this.formInit = Object.assign({}, this.form)
this.dictInit();
},
//
mounted() {
},
computed: {
...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
tableListHeight() {
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
return tempH - 175 - 30
},
bodyWidth() {
let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth
return tempW - 110 - 25
}
},
methods: {
...mapActions(["getCustomerOrgGroup"]),
dddw, moment,
//
Query() {
let loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.query.startDate = moment(this.query.startDate).format("yyyy-MM-DD");
this.query.endDate = moment(this.query.endDate).format("yyyy-MM-DD");
postapi('/api/app/AppointPatientRegister/GerAppointPatientRegisterWithAsbitemList', this.query)
.then(res => {
if (res.code > -1) {
this.patientList = res.data
if (this.patientList.length > 0){
this.rowClick(this.patientList[0])
this.$refs['patientList'].setCurrentRow(this.patientList[0])
}
}
})
.finally(() => {
loading.close();
})
},
//
rowClick(row) {
this.curPatient = row
this.details = row.appointRegisterAsbitemDetail
},
//退
btnChargeBack() {
let appointPatientRegisterId = this.curPatient.appointPatientRegisterId
let refundMoney = Number(this.curPatient.chargeSumMoney)||0
if(!appointPatientRegisterId){
this.$message.warning({showClose:true,message:'请先选择退费记录!'})
return
}
if(refundMoney <= 0){
this.$message.warning({showClose:true,message:'退费金额需大于 0 '})
return
}
this.$confirm("是否确定执行退费操作?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
return postapi('/api/app/AppointPatientRegister/CreateWeChatOrderRefund',{appointPatientRegisterId,refundMoney})
}).then(res => {
if(res.code > -1){
this.Query()
}
}).catch((err) => {
// if (err == "cancel") {
// this.$message.info("");
// }
});
},
//
dictInit() {
this.query.startDate = new Date()
this.query.endDate = this.query.startDate
/*
//
getapi("/api/app/sex").then((res) => {
if (res.code == 1) {
this.dict.sex = res.data;
}
});
//
getapi("/api/app/for-sex").then((res) => {
if (res.code == 1) {
this.dict.forSex = res.data;
}
});
//
getapi("/api/app/customerorg/getbycodeall").then((res) => {
this.patientRegister.customerOrgTreeAll = res.data;
tcdate(this.patientRegister.customerOrgTreeAll)
});
//
getapi("/api/app/organization-units/organization-unit-by-is-peis").then(
(res) => {
if (res.code == 1) {
this.dict.organization = res.data;
}
}
);
//
getapi("/api/app/customer-org/in-filter").then((res) => {
if (res.code == 1) {
this.dict.customerOrg = res.data;
}
});
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.medicalType = res.data;
}
});
//
getapi("/api/app/personnel-type/in-filter").then((res) => {
if (res.code == 1) {
this.dict.personnelType = res.data;
}
});
//
getapi("/api/app/MaritalStatus/GetMaritalStatusList").then((res) => {
if (res.code == 1) {
this.dict.maritalStatus = res.data;
}
});
//
getapi("/api/app/sex-hormone-term/in-filter").then((res) => {
if (res.code == 1) {
this.dict.sexHormoneTerm = res.data;
}
});
//
getapi("/api/app/nation/in-filter").then((res) => {
if (res.code == 1) {
this.dict.nation = res.data;
}
});
//
getapi("/api/app/birth-place/in-filter").then((res) => {
if (res.code == 1) {
this.dict.birthPlace = res.data;
}
});
//
postapi("/api/app/medicalpackage/GetBasicList", {}).then((res) => {
if (res.code == 1) {
this.dict.medicalPackage = res.data;
}
});
//
postapi("/api/app/CustomerOrgGroup/GetBasicList").then((res) => {
if (res.code > -1) {
this.dict.customerOrgGroupAll = res.data;
}
});
// /api/app/pay-mode()
getapi("/api/app/paymode/getlistinisactive").then((res) => {
if (res.code == 1) {
this.dict.payMode = res.data;
//
this.chargePaysInit = [];
this.dict.payMode.forEach(e => {
this.chargePaysInit.push({ chargeId: null, payModeId: e.id, chargeMoney: 0, cardBillId: null })
});
this.chargePays = deepCopy(this.chargePaysInit);
}
});
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code == 1) {
this.dict.itemTypeTree = res.data;
tcdate(this.dict.itemTypeTree);
}
});
// postapi("/api/app/asbitem/getasbitemlist", {}).then((res) => {
// if (res.code == 1) {
// this.dict.asbItemAll = res.data;
// }
// });
*/
console.log("dict", this.dict);
},
},
//()
watch: {
// "dataTransOpts.refresh.charge.S": {
// immediate: true, //
// // // deep: true, //
// handler(newVal, oldVal) {
// console.log(`watch: newVal: ${newVal}, oldVal: ${oldVal}, : `, this.patientRegisterNo)
// this.query.patientRegisterNo = this.patientRegisterNo
// this.Query("patientRegisterNo")
// }
// },
},
};
</script>
<style scoped>
@import '../../assets/css/global_button.css';
@import '../../assets/css/global_card.css';
@import '../../assets/css/global_dialog.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_table.css';
@import '../../assets/css/global.css';
.query {
margin-left: 5px;
font-size: 14px;
color: #232748;
font-weight: 400;
font-family: "NotoSansSC-Regular";
}
.btnDivClass {
display: block;
width: 100px;
margin-left: 10px;
}
.btnListClass {
margin-top: 10px;
}
.btnClass {
width: 100px;
}
:deep .el-form-item--mini.el-form-item,
.el-form-item--small.el-form-item {
margin-bottom: 10px;
}
</style>

478
src/views/charge/charge.vue

@ -4,236 +4,249 @@
<div class="contenttitle">
体检登记 /<span class="contenttitleBold">体检收费</span>
</div>
<div style="display: flex; width: 100%;">
<!-- 查询条件 与列表 -->
<div :style="`display: block;width: ${Math.floor(bodyWidth * 3 / 5)}px;`">
<!-- 查询条件 -->
<div style="height: 60px;padding: 10px;border-radius: 8px;background-color: #fff;margin-bottom: 10px;">
<div style="display:flex;">
<div>
<span>登记日期</span>
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small"
style="width:90px;" />
<span style="margin: 0 3px;"></span>
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small" style="width:90px;" />
</div>
<div style="margin-left:10px;">
<el-button type="primary" class="commonbutton" @click="Query" size="small"
style="width:95px;">查询</el-button>
</div>
</div>
<div style="display:flex;">
<el-radio-group v-model="query.chargeFlag" @input="Query" size="mini" style="margin-top:8px;">
<el-radio label="N">未收费</el-radio>
<el-radio label="Y">已收费</el-radio>
<el-radio label="B">已退费</el-radio>
</el-radio-group>
<div v-if="query.chargeFlag != 'N'" style="margin-left:20px;">
<span>发票号</span>
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small"
style="margin-left: 3px; width: 100px;" clearable @change="Query('invoiceNo')" />
<el-tabs v-model="activeName">
<el-tab-pane label="体检收费" name="peis">
<div style="display: flex; width: 100%;">
<!-- 查询条件 与列表 -->
<div :style="`display: block;width: ${Math.floor(bodyWidth * 3 / 5)}px;`">
<!-- 查询条件 -->
<div style="height: 60px;padding: 10px;border-radius: 8px;background-color: #fff;margin-bottom: 10px;">
<div style="display:flex;">
<div>
<span>登记日期</span>
<el-date-picker v-model="query.startDate" type="date" placeholder="起始日期" size="small"
style="width:90px;" :picker-options="pickerOptions"/>
<span style="margin: 0 3px;"></span>
<el-date-picker v-model="query.endDate" type="date" placeholder="截止日期" size="small"
style="width:90px;" :picker-options="pickerOptions"/>
</div>
<div style="margin-left:10px;">
<el-button type="primary" class="commonbutton" @click="Query" size="small"
style="width:95px;">查询</el-button>
</div>
</div>
<div style="display:flex;">
<el-radio-group v-model="query.chargeFlag" @input="Query" size="mini" style="margin-top:8px;">
<el-radio label="N">未收费</el-radio>
<el-radio label="Y">已收费</el-radio>
<el-radio label="B">已退费</el-radio>
</el-radio-group>
<div v-if="query.chargeFlag != 'N'" style="margin-left:20px;">
<span>发票号</span>
<el-input placeholder="发票/收据号" v-model="query.invoiceNo" size="small"
style="margin-left: 3px; width: 100px;" clearable @change="Query('invoiceNo')" />
</div>
</div>
</div>
</div>
</div>
<!-- 列表 -->
<div style="padding: 10px;border-radius: 8px;background-color: #fff;">
<el-table :data="patientList" border highlight-current-row ref="patientList" :height="tableListHeight"
@row-click="rowClick" size="small">
<!--
<!-- 列表 -->
<div style="padding: 10px;border-radius: 8px;background-color: #fff;">
<el-table :data="patientList" border highlight-current-row ref="patientList" :height="tableListHeight"
@row-click="rowClick" size="small">
<!--
<el-table-column prop="patientRegisterId" label="体检记录ID" />
-->
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}
</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别" />
<el-table-column prop="age" label="年龄" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="isVip" label="是否VIP">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="salesman" label="介绍人" />
<el-table-column prop="invoiceNo" label="发票号" />
<el-table-column prop="invoiceOrgName" label="发票抬头" />
<!--
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName :
scope.row.customerOrgName }}
</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别" />
<el-table-column prop="age" label="年龄" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="isVip" label="是否VIP">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="salesman" label="介绍人" />
<el-table-column prop="invoiceNo" label="发票号" />
<el-table-column prop="invoiceOrgName" label="发票抬头" />
<!--
<el-table-column prop="chargeId" label="介绍人" />
<el-table-column prop="chargeBackId" label="介绍人" />
-->
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
</el-table>
</div>
</div>
<!-- 收费操作 -->
<div :style="`display: block;margin-left:10px;width: ${Math.floor(bodyWidth * 2 / 5)}px;`">
<!-- 查询信息 -->
<div style="height: 40px; background-color: #fff;border-radius: 8px;margin-bottom: 10px;">
<div style="display: flex; flex-wrap: wrap;height:40px; width: 100%;align-items: center;">
<div class="query">
<span>条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small"
style="margin-left: 3px; width: 120px;" clearable @change="Query('patientRegisterNo')" />
</el-table>
</div>
<div class="query">
<span>档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small" style="margin-left: 3px; width: 80px;"
clearable @change="Query('patientNo')" />
</div>
<!-- 收费操作 -->
<div :style="`display: block;margin-left:10px;width: ${Math.floor(bodyWidth * 2 / 5)}px;`">
<!-- 查询信息 -->
<div style="height: 40px; background-color: #fff;border-radius: 8px;margin-bottom: 10px;">
<div style="display: flex; flex-wrap: wrap;height:40px; width: 100%;align-items: center;">
<div class="query">
<span>条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small"
style="margin-left: 3px; width: 120px;" clearable @change="Query('patientRegisterNo')" />
</div>
<div class="query">
<span>档案号</span>
<el-input placeholder="档案号" v-model="query.patientNo" size="small"
style="margin-left: 3px; width: 80px;" clearable @change="Query('patientNo')" />
</div>
<div class="query">
<span>姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small"
style="margin-left: 3px; width: 70px;" disabled @change="Query" />
</div>
</div>
</div>
<div class="query">
<span>姓名</span>
<el-input placeholder="姓名" v-model="query.patientName" size="small" style="margin-left: 3px; width: 70px;"
disabled @change="Query" />
<!-- 收费信息 -->
<div>
<!-- charge -->
<div style="padding: 10px;margin-bottom: 7px;background-color: rgb(255, 255, 255);border-radius: 8px;">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium"
:disabled="query.chargeFlag != 'N'">
<el-row>
<el-col :span="12">
<el-form-item label="发票号" prop="invoiceNo">
<el-input v-model="form.invoiceNo" size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开票抬头" prop="invoiceOrgName">
<el-input v-model="form.invoiceOrgName" size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="折扣" prop="discount">
<el-input v-model="form.discount" @input="discountToDetails" size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应收金额" prop="total">
<el-input v-model="form.total" @input="totalToDetails" size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="query.chargeFlag == 'N'">
<el-col :span="12">
<el-form-item label="预收金额" prop="preTotal">
<el-input v-model="form.preTotal" disabled size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="找零" prop="balance">
<el-input v-model="form.balance" disabled size="small" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- charge_pay -->
<div style="padding: 10px;background-color: #fff;margin-bottom: 7px;border-radius: 8px;">
<div style="font-size:10px;">{{ query.chargeFlag == 'B' ? '退' : '收' }}费方式</div>
<el-table :data="chargePays" border highlight-current-row size="small"
:height="Math.floor((tableListHeight - 155) / 2)">
<el-table-column prop="payModeId" :label="(query.chargeFlag == 'B' ? '退' : '收') + '费方式'"
width="180">
<template slot-scope="scope">
<div>{{ dddw(dict.payMode, "id", scope.row.payModeId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="chargeMoney" label="金额">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.chargeMoney" size="small" @input="inputMoney"
:disabled="query.chargeFlag == 'B'" />
</template>
</el-table-column>
<el-table-column prop="cardRegisterId" label="会员卡">
<template slot-scope="scope">
<el-select v-model="scope.row.cardRegisterId" placeholder="请选择" size="small" filterable
clearable :disabled="scope.row.payModeId == '05' && query.chargeFlag != 'B' ? false : true">
<el-option v-for="item in cardRegister" :key="item.id" :label="item.cardNo"
:value="item.id" />
</el-select>
</template>
</el-table-column>
</el-table>
</div>
<!-- asbitem -->
<div style="padding: 10px;background-color: rgb(255, 255, 255);border-radius: 8px;">
<div style="font-size:10px;">{{ query.chargeFlag == 'N' ? '待收' : (query.chargeFlag == 'Y' ?
'已收' : '已退') }}费项目</div>
<el-table :data="asbItemsForFee" border highlight-current-row
:height="Math.floor((tableListHeight - 155) / 2)" size="small"
@selection-change="handleSelectionChange" ref="asbItemsForFeeTable">
<el-table-column type="selection" align="center" v-if="query.chargeFlag == 'N'" />
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column label="标准价格" prop="standardPrice" width="80" align="center" />
<el-table-column label="折扣" prop="discount" width="60" align="center">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.discount" v-if="query.chargeFlag == 'N'"
:disabled="scope.row.isCharge == 'Y' ? true : false" size="small"
@input="changeDiscount(scope.row)" />
<div v-if="query.chargeFlag != 'N'">{{ scope.row.discount }}</div>
</template>
</el-table-column>
<el-table-column label="数量" prop="amount" width="50" align="center" />
<el-table-column label="实收价格" prop="chargePrice" width="80" align="center">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.chargePrice" v-if="query.chargeFlag == 'N'"
:disabled="scope.row.isCharge == 'Y' ? true : false" size="small"
@input="changePrice(scope.row)" />
<div v-if="query.chargeFlag != 'N'">{{ scope.row.chargePrice }}</div>
</template>
</el-table-column>
<el-table-column prop="total" label="金额" width="70" v-if="false" />
<el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" />
<el-table-column label="支付方式" prop="payTypeFlag" width="100" align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.payType, "id", scope.row.payTypeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="checkCompleteFlag" label="状态" align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.checkCompleteFlag, "id", scope.row.checkCompleteFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" align="center" />
<el-table-column prop="creationTime" label="登记日期" width="90" align="center">
<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>
</div>
</div>
</div>
</div>
<!-- 收费信息 -->
<div>
<!-- charge -->
<div style="padding: 10px;margin-bottom: 7px;background-color: rgb(255, 255, 255);border-radius: 8px;">
<el-form ref="form" :model="form" label-width="80px" :rules="rules" size="medium"
:disabled="query.chargeFlag != 'N'">
<el-row>
<el-col :span="12">
<el-form-item label="发票号" prop="invoiceNo">
<el-input v-model="form.invoiceNo" size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开票抬头" prop="invoiceOrgName">
<el-input v-model="form.invoiceOrgName" size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="折扣" prop="discount">
<el-input v-model="form.discount" @input="discountToDetails" size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="应收金额" prop="total">
<el-input v-model="form.total" @input="totalToDetails" size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="query.chargeFlag == 'N'">
<el-col :span="12">
<el-form-item label="预收金额" prop="preTotal">
<el-input v-model="form.preTotal" disabled size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="找零" prop="balance">
<el-input v-model="form.balance" disabled size="small" />
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- charge_pay -->
<div style="padding: 10px;background-color: #fff;margin-bottom: 7px;border-radius: 8px;">
<div style="font-size:10px;">{{ query.chargeFlag == 'B' ? '退' : '收' }}费方式</div>
<el-table :data="chargePays" border highlight-current-row size="small"
:height="Math.floor((tableListHeight - 155) / 2)">
<el-table-column prop="payModeId" :label="(query.chargeFlag == 'B' ? '退' : '收') + '费方式'" width="180">
<template slot-scope="scope">
<div>{{ dddw(dict.payMode, "id", scope.row.payModeId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="chargeMoney" label="金额">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.chargeMoney" size="small" @input="inputMoney"
:disabled="query.chargeFlag == 'B'" />
</template>
</el-table-column>
<el-table-column prop="cardRegisterId" label="会员卡">
<template slot-scope="scope">
<el-select v-model="scope.row.cardRegisterId" placeholder="请选择" size="small" filterable clearable
:disabled="scope.row.payModeId == '05' && query.chargeFlag != 'B' ? false : true">
<el-option v-for="item in cardRegister" :key="item.id" :label="item.cardNo" :value="item.id" />
</el-select>
</template>
</el-table-column>
</el-table>
</div>
<!-- asbitem -->
<div style="padding: 10px;background-color: rgb(255, 255, 255);border-radius: 8px;">
<div style="font-size:10px;">{{ query.chargeFlag == 'N' ? '待收' : (query.chargeFlag == 'Y' ?
'已收' : '已退') }}费项目</div>
<el-table :data="asbItemsForFee" border highlight-current-row
:height="Math.floor((tableListHeight - 155) / 2)" size="small" @selection-change="handleSelectionChange"
ref="asbItemsForFeeTable">
<el-table-column type="selection" align="center" v-if="query.chargeFlag == 'N'" />
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column label="标准价格" prop="standardPrice" width="80" align="center" />
<el-table-column label="折扣" prop="discount" width="60" align="center">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.discount" v-if="query.chargeFlag == 'N'"
:disabled="scope.row.isCharge == 'Y' ? true : false" size="small"
@input="changeDiscount(scope.row)" />
<div v-if="query.chargeFlag != 'N'">{{ scope.row.discount }}</div>
</template>
</el-table-column>
<el-table-column label="数量" prop="amount" width="50" align="center" />
<el-table-column label="实收价格" prop="chargePrice" width="80" align="center">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.chargePrice" v-if="query.chargeFlag == 'N'"
:disabled="scope.row.isCharge == 'Y' ? true : false" size="small" @input="changePrice(scope.row)" />
<div v-if="query.chargeFlag != 'N'">{{ scope.row.chargePrice }}</div>
</template>
</el-table-column>
<el-table-column prop="total" label="金额" width="70" v-if="false" />
<el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" />
<el-table-column label="支付方式" prop="payTypeFlag" width="100" align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.payType, "id", scope.row.payTypeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="checkCompleteFlag" label="状态" align="center">
<template slot-scope="scope">
<div>{{ dddw(dict.checkCompleteFlag, "id", scope.row.checkCompleteFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" align="center" />
<el-table-column prop="creationTime" label="登记日期" width="90" align="center">
<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>
<div class="btnDivClass">
<div class="btnListClass">
<el-button type="primary" class="commonbutton" @click="btnCharge"
:disabled="query.chargeFlag == 'N' ? false : true">收费</el-button>
</div>
<div class="btnListClass">
<el-button type="danger" class="commonbutton" @click="btnChargeBack"
:disabled="query.chargeFlag == 'Y' ? false : true">退费</el-button>
</div>
<div class="btnListClass">
<el-button type="success" class="commonbutton" @click="chargePrint('0007', false, form.id)"
:disabled="query.chargeFlag == 'B' ? true : false">打印</el-button>
</div>
<div class="btnListClass">
<el-button type="success" class="commonbutton" @click="chargePrint('0007', true, form.id)"
:disabled="query.chargeFlag == 'B' ? true : false">打印预览</el-button>
</div>
</div>
</div>
</div>
<div class="btnDivClass">
<div class="btnListClass">
<el-button type="primary" class="commonbutton" @click="btnCharge"
:disabled="query.chargeFlag == 'N' ? false : true">收费</el-button>
</div>
<div class="btnListClass">
<el-button type="danger" class="commonbutton" @click="btnChargeBack"
:disabled="query.chargeFlag == 'Y' ? false : true">退费</el-button>
</div>
<div class="btnListClass">
<el-button type="success" class="commonbutton" @click="chargePrint('0007', false, form.id)"
:disabled="query.chargeFlag == 'B' ? true : false">打印</el-button>
</div>
<div class="btnListClass">
<el-button type="success" class="commonbutton" @click="chargePrint('0007', true, form.id)"
:disabled="query.chargeFlag == 'B' ? true : false">打印预览</el-button>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane label="小程序退费" name="web">
<WebChargeBack />
</el-tab-pane>
</el-tabs>
</div>
</div>
</template>
@ -245,15 +258,18 @@ import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
import PatientRegisterQuery from "../../components/patientRegister/patientRegisterQuery.vue";
import PatientRegisterRefuseList from "../../components/patientRegister/PatientRegisterRefuseList.vue";
import WebChargeBack from "./WebChargeBack.vue";
export default {
components: {
PatientRegisterQuery,
PatientRegisterRefuseList,
WebChargeBack,
},
props: ["patientRegisterNo"],
data() {
return {
activeName:"peis",
query: {
chargeFlag: 'N', // N:YB退
dateRange: null,
@ -341,11 +357,11 @@ export default {
},
computed: {
...mapState(["window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
tableListHeight() {
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
return tempH - 175 - 30
return tempH - 175 - 30 - 35
},
bodyWidth() {
@ -1004,14 +1020,14 @@ export default {
let user = window.sessionStorage.getItem('user');
let toOutShell = {
ReportCode, token,
isBuildImage:'N',
IsUploadPdf:'N',
isBuildImage: 'N',
IsUploadPdf: 'N',
preViewCanPrint: 'Y',
Parameters: [
{ Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' },
],
BusinessCode:chargeId,
BusinessCode: chargeId,
};
if (isPreview) {
@ -1083,6 +1099,7 @@ export default {
this.query.startDate = new Date()
this.query.endDate = this.query.startDate
/*
//
getapi("/api/app/sex").then((res) => {
if (res.code == 1) {
@ -1175,6 +1192,15 @@ export default {
}
});
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code == 1) {
this.dict.itemTypeTree = res.data;
tcdate(this.dict.itemTypeTree);
}
});
*/
// /api/app/pay-mode()
getapi("/api/app/paymode/getlistinisactive").then((res) => {
if (res.code == 1) {
@ -1188,14 +1214,6 @@ export default {
}
});
//
getapi("/api/app/item-type/by-code-all").then((res) => {
if (res.code == 1) {
this.dict.itemTypeTree = res.data;
tcdate(this.dict.itemTypeTree);
}
});
// postapi("/api/app/asbitem/getasbitemlist", {}).then((res) => {
// if (res.code == 1) {
// this.dict.asbItemAll = res.data;

308
src/views/lis/LisTakeSample.vue

@ -0,0 +1,308 @@
<template>
<div style="font-size: 14px;display: flex; width: 100%;">
<div style="display: flex;">
<div :style="`display: block; width: ${window.pageWidth - 10}px;`">
<!-- 查询条件 与列表 -->
<div
:style="'display: flex;flex-wrap: wrap;height: 40px;background-color: #fff;border-radius: 8px;margin-bottom: 5px;align-items: center;padding: 10px;width:' + (window.pageWidth - 40) + 'px;'">
<div class="query">
<span class="spanClass">条码号</span>
<el-input placeholder="条码号" v-model="query.patientRegisterNo" size="small" clearable style="width: 120px" />
</div>
</div>
<div :style="`height: ${window.pageHeight - 130}px;`"></div>
<!-- 人员列表 -->
<div v-if="false" style="padding: 10px 0 0 0;border-radius: 8px;background-color: #fff;">
<el-table :data="patientList" border highlight-current-row ref="patientList"
:height="Math.floor(tableListHeight / 2)" @row-click="rowClick" size="small">
<el-table-column type="index" label="序号" width="40" align="center" />
<el-table-column prop="chargeSumMoney" label="金额" width="80" align="center" />
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别" width="40" />
<el-table-column prop="age" label="年龄" width="40" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数" />
<el-table-column prop="isVip" label="是否VIP">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="salesman" label="介绍人" />
<!--
<el-table-column prop="invoiceNo" label="发票号" />
<el-table-column prop="invoiceOrgName" label="发票抬头" />
<el-table-column prop="chargeId" label="介绍人" />
<el-table-column prop="chargeBackId" label="介绍人" />
-->
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
</el-table>
</div>
<!-- 项目收费列表 -->
<div v-if="false" style="padding: 10px 0 5px 0;border-radius: 8px;background-color: #fff;">
<el-table :data="details" border highlight-current-row :height="Math.floor(tableListHeight / 2) - 10"
size="small">
<el-table-column label="序号" width="40" type="index" align="center" />
<el-table-column label="组合项目" width="240" prop="asbitemName" />
<el-table-column label="标准价格" prop="standardPrice" width="80" align="center" />
<el-table-column label="折扣" prop="discount" width="80" align="center" />
<el-table-column label="数量" prop="amount" width="50" align="center" />
<el-table-column label="实收价格" prop="chargePrice" width="80" align="center" />
<el-table-column prop="total" label="金额" width="70" v-if="false" />
<el-table-column prop="standardPrice" label="标准金额" width="80" v-if="false" />
</el-table>
</div>
</div>
<!--
<div style="margin-left:10px;" class="btnDivClass">
<div class="btnListClass">
<el-button type="primary" class="commonbutton" @click="Query">查询</el-button>
</div>
</div>
-->
</div>
</div>
</template>
<script>
import moment from 'moment';
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { tcdate, dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
export default {
components: {
},
data() {
return {
activeName: "peis",
query: {
dateType: '1', // 1 2 3
startDate: null,
endDate: null,
patientRegisterNo: '',
patientNo: '',
invoiceNo: '', //
patientName: '',
idNo: "", //
},//
patientList: [],//
curPatient: {}, //
details: [], //
};
},
created() {
this.formInit = Object.assign({}, this.form)
this.dictInit();
},
//
mounted() {
this.enterToQuery()
},
computed: {
...mapState(["pickerOptions", "window", "dict", "dataTransOpts", "patientRegister", "customerOrg"]),
tableListHeight() {
let tempH = this.window.pageHeight < 600 ? 600 : this.window.pageHeight
return tempH - 175 - 30
},
bodyWidth() {
let tempW = this.window.pageWidth < 600 ? 600 : this.window.pageWidth
return tempW - 110 - 25
}
},
methods: {
...mapActions(["getCustomerOrgGroup"]),
dddw, moment,
//
Query() {
let loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.query.startDate = moment(this.query.startDate).format("yyyy-MM-DD");
this.query.endDate = moment(this.query.endDate).format("yyyy-MM-DD");
postapi('/api/app/AppointPatientRegister/GerAppointPatientRegisterWithAsbitemList', this.query)
.then(res => {
if (res.code > -1) {
this.patientList = res.data
if (this.patientList.length > 0) {
this.rowClick(this.patientList[0])
this.$refs['patientList'].setCurrentRow(this.patientList[0])
}
}
})
.finally(() => {
loading.close();
})
},
//
rowClick(row) {
this.curPatient = row
this.details = row.appointRegisterAsbitemDetail
},
//
dictInit() {
this.query.startDate = new Date()
this.query.endDate = this.query.startDate
},
//
enterToQuery() {
// console.log('enterToTab');
this.$nextTick(() => {
let inputs = document.querySelectorAll(["input"]); // //.inline-input
//
inputs.forEach((input, i) => {
// console.log('input',input);
input.addEventListener('keydown', (event) => {
if (event.keyCode === 13) {
//
event.preventDefault();
//
// console.log(input.getAttribute('placeholder'),input.value)
let placeholder = input.getAttribute('placeholder')
switch (placeholder) {
case '条码号':
//
this.takeSample([input.value])
.then(() => { })
.catch(err => {
console.log('takeSample.err', err)
})
.finally(() => {
input.select()
})
break;
case '检查条码':
if (input.value) this.onQueryByPacsNo(input.value)
input.select()
break;
case '检验条码':
if (input.value) this.onQueryByLisNo(input.value)
input.select()
break;
}
}
});
input.addEventListener('click', (event) => {
let placeholder = input.getAttribute('placeholder')
switch (placeholder) {
case '条码号':
input.select()
break;
}
});
});
});
},
//
takeSample(lisRequestNos) {
return new Promise((resolve, reject) => {
let body = {
lisRequestNos,SampleTypeIds:[]
}
postapi('/api/app/LisRequest/SetLisRequestSamplerStatus', body)
.then(res => {
if (res.code > -1) {
resolve(res.data)
} else {
reject(res.message)
}
})
.catch(err => {
reject(err)
})
})
}
},
//()
watch: {
// "dataTransOpts.refresh.charge.S": {
// immediate: true, //
// // // deep: true, //
// handler(newVal, oldVal) {
// console.log(`watch: newVal: ${newVal}, oldVal: ${oldVal}, : `, this.patientRegisterNo)
// this.query.patientRegisterNo = this.patientRegisterNo
// this.Query("patientRegisterNo")
// }
// },
},
};
</script>
<style scoped>
@import '../../assets/css/global_button.css';
@import '../../assets/css/global_card.css';
@import '../../assets/css/global_dialog.css';
@import '../../assets/css/global_form.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_table.css';
@import '../../assets/css/global.css';
.query {
margin-left: 5px;
font-size: 14px;
color: #232748;
font-weight: 400;
font-family: "NotoSansSC-Regular";
}
.btnDivClass {
display: block;
width: 100px;
margin-left: 10px;
}
.btnListClass {
margin-top: 10px;
}
.btnClass {
width: 100px;
}
:deep .el-form-item--mini.el-form-item,
.el-form-item--small.el-form-item {
margin-bottom: 10px;
}
</style>
Loading…
Cancel
Save