pengjun 3 months ago
parent
commit
9e4be4708b
  1. 59
      package-lock.json
  2. 2
      public/sysConfig.json
  3. 5
      src/components/patientRegister/PatientRegisterEdit.vue
  4. 36
      src/components/patientRegister/PatientRegisterItem.vue
  5. 37
      src/views/charge/charge.vue
  6. 41
      src/views/fee-settings/Asbitem.vue

59
package-lock.json

@ -15,6 +15,7 @@
"exceljs": "^4.3.0",
"file-saver": "^2.0.5",
"html2canvas": "^1.4.1",
"markdown-it": "^14.1.0",
"moment": "^2.29.4",
"node-polyfill-webpack-plugin": "^2.0.1",
"print-js": "^1.6.0",
@ -7934,6 +7935,14 @@
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
"node_modules/linkify-it": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz",
"integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==",
"dependencies": {
"uc.micro": "^2.0.0"
}
},
"node_modules/listenercount": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
@ -8335,6 +8344,38 @@
"node": ">=8"
}
},
"node_modules/markdown-it": {
"version": "14.1.0",
"resolved": "https://registry.npmmirror.com/markdown-it/-/markdown-it-14.1.0.tgz",
"integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==",
"dependencies": {
"argparse": "^2.0.1",
"entities": "^4.4.0",
"linkify-it": "^5.0.0",
"mdurl": "^2.0.0",
"punycode.js": "^2.3.1",
"uc.micro": "^2.1.0"
},
"bin": {
"markdown-it": "bin/markdown-it.mjs"
}
},
"node_modules/markdown-it/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/markdown-it/node_modules/entities": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
"engines": {
"node": ">=0.12"
},
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/md5.js": {
"version": "1.3.5",
"resolved": "https://registry.npmmirror.com/md5.js/-/md5.js-1.3.5.tgz",
@ -8351,6 +8392,11 @@
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
"dev": true
},
"node_modules/mdurl": {
"version": "2.0.0",
"resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz",
"integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-0.3.0.tgz",
@ -10088,6 +10134,14 @@
"node": ">=6"
}
},
"node_modules/punycode.js": {
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/punycode.js/-/punycode.js-2.3.1.tgz",
"integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==",
"engines": {
"node": ">=6"
}
},
"node_modules/qrcode": {
"version": "1.5.4",
"resolved": "https://registry.npmmirror.com/qrcode/-/qrcode-1.5.4.tgz",
@ -11667,6 +11721,11 @@
"resolved": "https://registry.npmmirror.com/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA=="
},
"node_modules/uc.micro": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/uc.micro/-/uc.micro-2.1.0.tgz",
"integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="
},
"node_modules/umy-table": {
"version": "1.1.8",
"resolved": "https://registry.npmmirror.com/umy-table/-/umy-table-1.1.8.tgz",

2
public/sysConfig.json

@ -1,5 +1,5 @@
{
"apiurl": "http://192.168.0.188:9527",
"apiurl": "http://192.168.0.188:9530",
"softName": "神豚体检管理系统",
"pacsApi": "http://192.168.0.188:9530",
"dcmViewers": "https://app.mzaktj.com:4436",

5
src/components/patientRegister/PatientRegisterEdit.vue

@ -208,8 +208,9 @@
</el-form-item>
</el-col>
<el-col :span="3">
<!--allow-create -->
<el-form-item label="介绍人" prop="salesman">
<el-select v-model="form.salesman" placeholder="请选择" filterable clearable allow-create size="small">
<el-select v-model="form.salesman" placeholder="请选择" filterable clearable size="small">
<el-option v-for="item in dictSalesman" :key="item.id" :label="item.surname"
:value="item.surname" />
</el-select>
@ -1322,6 +1323,8 @@ export default {
// {operatorTypes:["1","3"]}
postapi('/api/identity/users/GetListByOperatorType', { operatorTypes: ["0", "1", "2", "3", "4"] })
//roleSysParmId:'sale_role_id'
//postapi('/api/identity/users/GetUserListBySaleRole',{})
.then(res => {
if (res.code > -1) {
this.dictSalesman = res.data

36
src/components/patientRegister/PatientRegisterItem.vue

@ -120,19 +120,19 @@
<el-table-column label="折扣" prop="discount" min-width="60">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.discount" size="small" @input="changeDiscount(scope.$index)"
:disabled="scope.row.isCharge == 'Y' ? true : false" />
:disabled="scope.row.isCharge == 'Y' || scope.row.isDiscount == 'N' ? true : false" />
</template>
</el-table-column>
<el-table-column label="数量" prop="amount" min-width="50">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.amount" size="small" @input="changeDiscount(scope.$index)"
:disabled="scope.row.isCharge == 'Y' ? true : false" />
:disabled="scope.row.isCharge == 'Y' || scope.row.isDiscount == 'N' ? true : false" />
</template>
</el-table-column>
<el-table-column label="应收价格" prop="chargePrice" min-width="70">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.chargePrice" size="small" @input="changePrice(scope.$index)"
:disabled="scope.row.isCharge == 'Y' ? true : false" />
:disabled="scope.row.isCharge == 'Y' || scope.row.isDiscount == 'N' ? true : false" />
<!--立即触发保存 @blur="onSubmit('')" -->
</template>
</el-table-column>
@ -601,6 +601,7 @@ export default {
discount: 100,
amount: 1,
total: asbItemChoosed[i].price,
isDiscount:asbItemChoosed[i].isDiscount
}
//
//this.dataTransOpts.tableM.register_check_asbitem.push(pojo)
@ -861,10 +862,11 @@ export default {
//
if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') {
this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag
this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.customerOrgGroupDetailAmount
this.dataTransOpts.tableM.register_check_asbitem[i].standardPrice = tempRd.price
this.dataTransOpts.tableM.register_check_asbitem[i].chargePrice = tempRd.customerOrgGroupDetailPrice
this.dataTransOpts.tableM.register_check_asbitem[i].discount = tempRd.discount
this.dataTransOpts.tableM.register_check_asbitem[i].amount = e.customerOrgGroupDetailAmount
this.dataTransOpts.tableM.register_check_asbitem[i].standardPrice = e.price
this.dataTransOpts.tableM.register_check_asbitem[i].chargePrice = e.customerOrgGroupDetailPrice
this.dataTransOpts.tableM.register_check_asbitem[i].discount = e.discount
this.dataTransOpts.tableM.register_check_asbitem[i].isDiscount = e.isDiscount
}
} else {
tempRd = {
@ -878,6 +880,7 @@ export default {
payTypeFlag,
isCharge: "N",
discount: e.discount,
isDiscount:e.isDiscount,
amount: e.customerOrgGroupDetailAmount,
total: Math.round(e.customerOrgGroupDetailAmount * e.customerOrgGroupDetailPrice * 100) / 100
}
@ -912,10 +915,11 @@ export default {
//
if (this.dataTransOpts.tableM.register_check_asbitem[i].isCharge != 'Y') {
this.dataTransOpts.tableM.register_check_asbitem[i].payTypeFlag = payTypeFlag
this.dataTransOpts.tableM.register_check_asbitem[i].amount = tempRd.customerOrgGroupDetailAmount
this.dataTransOpts.tableM.register_check_asbitem[i].standardPrice = tempRd.price
this.dataTransOpts.tableM.register_check_asbitem[i].chargePrice = tempRd.customerOrgGroupDetailPrice
this.dataTransOpts.tableM.register_check_asbitem[i].discount = tempRd.discount
this.dataTransOpts.tableM.register_check_asbitem[i].amount = e.customerOrgGroupDetailAmount
this.dataTransOpts.tableM.register_check_asbitem[i].standardPrice = e.price
this.dataTransOpts.tableM.register_check_asbitem[i].chargePrice = e.customerOrgGroupDetailPrice
this.dataTransOpts.tableM.register_check_asbitem[i].discount = e.discount
this.dataTransOpts.tableM.register_check_asbitem[i].isDiscount = e.isDiscount
}
} else {
tempRd = {
@ -929,6 +933,7 @@ export default {
payTypeFlag,
isCharge: "N",
discount: e.discount,
isDiscount: e.isDiscount,
amount: e.medicalPackageDetailAmount,
total: Math.round(e.medicalPackageDetailAmount * e.medicalPackageDetailPrice * 100) / 100
}
@ -1021,7 +1026,8 @@ export default {
let total = Number(0)
this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
if (e.isCharge == 'N') {
//
if (e.isCharge == 'N' && e.isDiscount == 'Y') {
e.discount = this.discount
e.chargePrice = Math.round(e.standardPrice * this.discount) / 100
e.total = Math.round(e.standardPrice * this.discount * e.amount) / 100
@ -1051,7 +1057,8 @@ export default {
let unChargeTotalStand = Number(this.totalStand) //
let chargeTotal = Number(0) //
this.dataTransOpts.tableM.register_check_asbitem.forEach(e => {
if (e.isCharge == 'Y') {
//
if (e.isCharge == 'Y' || e.isDiscount == 'N') {
chargeTotal = chargeTotal + Math.round(e.chargePrice * e.amount * 100) / 100
unChargeTotalStand = unChargeTotalStand - Math.round(e.standardPrice * e.amount * 100) / 100
}
@ -1061,7 +1068,8 @@ export default {
this.discount = Math.round((100 * total / unChargeTotalStand) * 100) / 100
this.dataTransOpts.tableM.register_check_asbitem.forEach((e, index) => {
if (e.isCharge == 'N') {
//
if (e.isCharge == 'N' && e.isDiscount == 'Y') {
if (e.amount == 1 && e.standardPrice != 0) qtyIsOneLast = index
e.discount = this.discount
e.chargePrice = Math.round((e.standardPrice * this.discount / 100) * 100) / 100

37
src/views/charge/charge.vue

@ -152,12 +152,12 @@
<el-row>
<el-col :span="12">
<el-form-item label="折扣" prop="discount">
<el-input v-model="form.discount" @input="discountToDetails" size="small" />
<el-input type="number" 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-input type="number" v-model="form.total" @input="totalToDetails" size="small" />
</el-form-item>
</el-col>
</el-row>
@ -231,7 +231,7 @@
<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"
:disabled="scope.row.isCharge == 'Y' || scope.row.isDiscount == 'N' ? true : false" size="small"
@input="changeDiscount(scope.row)" />
<div v-if="query.chargeFlag != 'N'">{{ scope.row.discount }}</div>
</template>
@ -240,7 +240,7 @@
<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"
:disabled="scope.row.isCharge == 'Y' || scope.row.isDiscount == 'N' ? true : false" size="small"
@input="changePrice(scope.row)" />
<div v-if="query.chargeFlag != 'N'">{{ scope.row.chargePrice }}</div>
</template>
@ -936,16 +936,19 @@ export default {
totalOri += Number(e.amount * e.chargePriceOri); //
lfind = arrayExistObj(this.asbItemsForFee, 'id', e.id)
if (lfind > -1 && e.chargePriceOri != 0) {
e.chargePrice = Math.round(e.chargePriceOri * discount) / 100;
e.discount = Math.round(10000 * e.chargePrice / e.standardPrice) / 100;
//
if(e.isDiscount == 'Y'){
e.chargePrice = Math.round(e.standardPrice * discount) / 100;
e.discount = discount;
}
totalCompute += Math.round(e.chargePrice * e.amount * 100) / 100;
}
});
totalPlan = Math.round(totalOri * discount) / 100;
totalPlan = Math.round(totalCompute * 100) / 100;
this.form.total = totalPlan;
//this.form.preTotal = totalPlan;
//
this.handleBalance(totalPlan, totalCompute);
// this.handleBalance(totalPlan, totalCompute);
this.findBalance()
},
@ -954,22 +957,29 @@ export default {
totalToDetails() {
let discount = 100;
let totalOri = 0, totalCompute = 0, totalPlan = Number(this.form.total);
let totalUnDiscount = 0 //
let lfind = -1;
this.selectedData.forEach(e => {
totalOri += Math.round(100 * e.amount * e.chargePriceOri) / 100; //
totalOri += Math.round(100 * e.amount * e.standardPrice) / 100; //
if(e.isDiscount == 'N'){
totalUnDiscount += Math.round(100 * e.amount * e.standardPrice) / 100; //
}
});
if (totalOri != 0) {
discount = Math.round(10000 * totalPlan / totalOri) / 100;
discount = Math.round(10000 * (totalPlan - totalUnDiscount) / (totalOri - totalUnDiscount)) / 100;
this.form.discount = discount;
}
//
this.selectedData.forEach(e => {
lfind = arrayExistObj(this.asbItemsForFee, 'id', e.id);
if (lfind > -1) {
e.chargePrice = Math.round(e.chargePriceOri * discount) / 100;
e.discount = Math.round(10000 * e.chargePrice / e.standardPrice) / 100;
if(e.isDiscount == 'Y'){
e.chargePrice = Math.round(e.standardPrice * discount) / 100;
e.discount = discount;
}
totalCompute += Math.round(100 * e.chargePrice * e.amount) / 100;
}
});
@ -992,7 +1002,8 @@ export default {
// break;
// }
//console.log('this.selectedData[i].amount', this.selectedData[i].amount)
if (this.selectedData[i].amount == 1) {
//
if (this.selectedData[i].amount == 1 && this.selectedData[i].isDiscount == 'Y') {
let chargePrice = this.selectedData[i].chargePrice
this.selectedData[i].chargePrice = Math.round((Number(chargePrice) + Number(totalPlan) - totalCompute)*100)/100 ;
this.selectedData[i].discount = Math.round(this.selectedData[i].chargePrice * 10000/this.selectedData[i].standardPrice)/100

41
src/views/fee-settings/Asbitem.vue

@ -89,14 +89,14 @@
@row-click="rowick"
@row-dblclick="dblClick"
highlight-current-row
:row-style="{ height: '36px' }"
ref="tableData"
:row-style="{ height: '28px' }"
ref="tableData" border
>
<el-table-column prop="id" label="编号" width="320">
<el-table-column prop="id" label="编号" width="300" align="center">
</el-table-column>
<el-table-column prop="displayName" label="名称" width="">
<el-table-column prop="displayName" label="名称" min-width="200">
</el-table-column>
<el-table-column prop="price" label="价格" width="">
<el-table-column prop="price" label="价格" width="" align="center">
</el-table-column>
<el-table-column
prop="forPregnantFlag"
@ -134,18 +134,18 @@
</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="创建者" width="">
<el-table-column prop="creatorName" label="创建者" width="" align="center">
</el-table-column>
<el-table-column
prop="lastModifierName"
label="修改者"
width=""
width="" align="center"
>
</el-table-column>
<el-table-column
prop="creationTime"
label="创建时间"
width="200"
width="160" align="center"
>
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
@ -154,7 +154,7 @@
<el-table-column
prop="lastModificationTime"
label="修改时间"
width="200"
width="160" align="center"
>
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
@ -622,7 +622,7 @@
></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="6">
<el-form-item label="适用性别" prop="">
<el-select
v-model="form.forSexId"
@ -640,7 +640,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="7">
<el-form-item label="婚姻状况">
<el-select
v-model="form.maritalStatusId"
@ -658,6 +658,15 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="允许折扣" prop="isDiscount">
<el-checkbox
v-model="form.isDiscount"
true-label="Y"
false-label="N"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
@ -733,15 +742,6 @@
</el-col>
<el-col :span="3">
<el-form-item label="餐前项目" prop="">
<!-- <el-select v-model="form.isBeforeEat" placeholder="请选择">
<el-option
v-for="item in isBeforeEat"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> -->
<el-checkbox
v-model="form.isBeforeEat"
true-label="Y"
@ -1456,6 +1456,7 @@ export default {
followUpFunction: "",
isPrivacy: "N",
isOutsend: "N",
isDiscount:"Y",
},
forSexId: [], //
forPregnantFlag: [

Loading…
Cancel
Save