pengjun 2 years ago
parent
commit
3a5eb3d896
  1. 2
      src/components/common/MedicalPackageAsbitem.vue
  2. 487
      src/components/customerOrg/ContactPersonBak.vue
  3. 51
      src/components/customerOrg/ContactPersonEdit.vue
  4. 2
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  5. 444
      src/views/common-settings/medicalPackage.vue

2
src/components/common/MedicalPackageAsbitem.vue

@ -765,7 +765,7 @@ export default {
return postapi(`/api/app/medicalpackage/update?id=${this.formData.id}`, Package)
}
}).then(res =>{
if(res.code != -1){
if(res && res.code != -1){
console.log("操作成功");
Package.id = this.formData.id
this.refreshMoney(Package)

487
src/components/customerOrg/ContactPersonBak.vue

@ -1,487 +0,0 @@
<template>
<div>
<div style="display: flex;">
<div :style="'width:' + (window.pageWidth - 200 - 110 - 25) + 'px;'">
<el-table :data="customerOrg.contactPersonList" border :height="(window.pageHeight < 600 ? 100:window.pageHeight - 400)/2"
size="small" highlight-current-row @row-click="rowClick" ref="customerOrg.contactPersonList">
<el-table-column prop="displayName" label="姓名" min-width="70" align="center"/>
<el-table-column prop="title" label="职务" min-width="70" align="center"/>
<el-table-column prop="remark" label="备注" min-width="150" align="center"/>
<el-table-column prop="creatorName" label="创建者" min-width="70" align="center" />
<el-table-column prop="creationTime" label="创建时间" min-width="120" align="center">
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format('yyyy-MM-DD HH:mm:ss') }}
</div>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" min-width="70" align="center"/>
<el-table-column prop="lastModificationTime" label="修改时间" min-width="120" align="center">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{ moment(scope.row.lastModificationTime).format('yyyy-MM-DD HH:mm:ss') }}
</div>
</template>
</el-table-column>
</el-table>
<el-table :data="customerOrg.contactMethodList" border :height="(window.pageHeight < 600 ? 100:window.pageHeight - 400)/2"
size="small" highlight-current-row @row-click="rowClickMethod" ref="customerOrg.contactMethodList">
<el-table-column prop="contactMethodType" label="类型" width="60" align="center">
<template slot-scope="scope">
<div>
{{ scope.row.contactMethodType === "0" ? "手机" : "邮箱" }}
</div>
</template>
</el-table-column>
<el-table-column prop="contactMethodValue" label="联系方式" min-width="120" align="center"/>
<el-table-column prop="creatorName" label="创建者" min-width="70" align="center" />
<el-table-column prop="creationTime" label="创建时间" min-width="120" align="center">
<template slot-scope="scope">
<div v-if="scope.row.creationTime">
{{ moment(scope.row.creationTime).format('yyyy-MM-DD HH:mm:ss') }}
</div>
</template>
</el-table-column>
<el-table-column prop="lastModifierName" label="修改者" min-width="70" align="center"/>
<el-table-column prop="lastModificationTime" label="修改时间" min-width="120" align="center">
<template slot-scope="scope">
<div v-if="scope.row.lastModificationTime">
{{ moment(scope.row.lastModificationTime).format('yyyy-MM-DD HH:mm:ss') }}
</div>
</template>
</el-table-column>
</el-table>
</div>
<div style="margin-left: 10px; margin-top: 20px">
<div v-show="checkPagePriv(pagePriv.privs,'新增联系人')" style="margin-top: 10px">
<el-button type="primary" @click="btnAdd" class="commonbutton">新增联系人</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs,'编辑联系人')" style="margin-top: 10px">
<el-button type="success" @click="btnEdit" class="commonbutton">编辑联系人</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs,'删除联系人')" style="margin-top: 10px">
<el-button type="danger" @click="btnDel" class="commonbutton">删除联系人</el-button>
</div>
</div>
</div>
<!-- 联系人 -->
<el-dialog :title="formTitle" :visible.sync="dialogContactPerson" width="800px" @close="closeDialogPerson">
<el-form :model="form" ref="form" label-width="70px" :rules="rules" style="margin-top: -30px;">
<el-row>
<el-col :span="12">
<el-form-item prop="displayName" label="联系人">
<el-input v-model="form.displayName" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="职务">
<el-input v-model="form.title" size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注">
<el-input type="textarea" v-model="form.remark" size="small" maxlength="50" show-word-limit></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="5">
<el-form-item label="创建者">
<el-input v-model="form.creatorName" disabled size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="创建时间" label-width="80px" style="margin-left:-10px;">
<el-date-picker v-model="form.creationTime" type="datetime" size="small" style="width: 100%" disabled />
</el-form-item>
</el-col>
<el-col :span="5">
<el-form-item label="修改者" >
<el-input v-model="form.creatorName" disabled size="small"></el-input>
</el-form-item>
</el-col>
<el-col :span="7">
<el-form-item label="修改时间" label-width="80px" style="margin-left:-10px;">
<el-date-picker v-model="form.lastModificationTime" type="datetime" size="small" style="width: 100%"
disabled />
</el-form-item>
</el-col>
</el-row>
<el-table :data="contactMethodListEdit" border height="300" row-key="id" size="small"
highlight-current-row ref="contactMethod" style="margin-top: 20px;">
<el-table-column prop="contactMethodType" label="类型" width="200">
<template slot-scope="scope">
<el-select v-model="scope.row.contactMethodType" size="small">
<el-option v-for="item in Methodtypes" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="contactMethodValue" label="联系方式">
<template slot-scope="scope">
<el-input v-model="scope.row.contactMethodValue" required size="small" />
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" width="60" align="center">
<template slot-scope="scope">
<i class="el-icon-delete" @click="deleteRow(scope.$index)"
style="font-size: 24px;color: red;cursor:pointer;"></i>
</template>
</el-table-column>
</el-table>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button class="commonbutton" @click="dialogContactPerson = false"> </el-button>
<el-button type="success" class="commonbutton" @click="addMethod">新增联系方式</el-button>
<el-button type="primary" class="commonbutton" @click="submit('form')"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import moment from "moment";
import { mapState } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { getPagePriv,checkPagePriv,objCopy, deepCopy, arrayExistObj } from "../../utlis/proFunc";
export default {
components: {},
props:["customerOrgId"],
data() {
return {
pagePriv:{
routeUrlorPageName:'customerOrg', //
privs:[] //
},
personId: "",
form: {}, //
contactMethodListEdit:[], //
formTitle: "新增",
dialogContactPerson: false, //
Methodtypes: [
//{ value: '',label: '' },
{ value: "0", label: "电话" },
{ value: "1", label: "邮箱" },
],
rules: {
displayName: [
{ required: true, message: "请输入名称", trigger: "blur" },
],
},
};
},
created() {
//
let userPriv = window.sessionStorage.getItem('userPriv')
if(userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName))
},
//
mounted() {
this.getContactPersonList(this.dataTransOpts.tableS.customer_org.id)
},
computed: {
...mapState(["window", "customerOrg","dataTransOpts"]),
},
methods: {
moment,checkPagePriv,
//
getContactPersonList(customerOrgId) {
if(!customerOrgId){
this.customerOrg.contactPersonList = [];
this.customerOrg.contactMethodList = []
return
}
getapi(
`/api/app/contact-person/in-customer-org-id/${customerOrgId}`
).then((res) => {
if(res.code != -1){
this.customerOrg.contactPersonList = res.data;
if (res.data.length > 0) {
this.getContactMethodList(res.data[0].id);
} else {
this.customerOrg.contactMethodList = [];
}
}
});
},
//
//api/app/contact-method/in-contact-person-id?ContactPersonId=3a0c08ad-4304-138b-d9e6-a7338739dfc4' \
getContactMethodList(ContactPersonId) {
if(!ContactPersonId){
this.customerOrg.contactMethodList = []
return
}
getapi("/api/app/contact-method/in-contact-person-id", {
ContactPersonId,
}).then((res) => {
//console.log('res.data',res.data)
this.customerOrg.contactMethodList = res.data;
});
},
//
btnAdd() {
//console.log(" addContactPerson");
if (!this.dataTransOpts.tableS.customer_org.id) {
this.$message.warning("没有体检单位信息");
return;
}
this.form = { customerOrgId: this.dataTransOpts.tableS.customer_org.id };
this.dialogContactPerson = true;
this.formTitle = "新增";
this.personId = "";
this.customerOrg.contactMethodList = [];
this.contactMethodListEdit = [];
},
btnEdit() {
//console.log(" editContactPerson");
// console.log('this.customerOrgId',this.customerOrgId)
if (!this.dataTransOpts.tableS.customer_org.id) {
this.$message.warning("没有体检单位信息");
return;
} else if (!this.personId) {
this.$message.warning("请先选择要编辑的联系人");
return;
}
this.dialogContactPerson = true;
this.formTitle = "编辑";
},
//
btnDel() {
//console.log(" delContactPerson");
if (!this.personId) {
this.$message.warning("请先选择要编辑的联系人");
return;
}
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
//console.log('{patientRegisterIds}',{patientRegisterIds})
return deletapi(`/api/app/contact-person/${this.personId}`);
}).then((res) => {
if(res.code != -1) {
this.personId = "";
this.getContactPersonList(this.customerOrg.customerOrgId);
this.customerOrg.contactMethodList = [];
console.log("操作成功!");
}
}).catch((err) => {
if (err == "cancel") {
this.$message.info("已取消删除");
}
});
},
//
deleteRow(index) {
this.$confirm("此操作确定后将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "warning",
}).then(() => {
this.contactMethodListEdit.splice(index, 1);
//this.submit('form');
}).catch((err) => {
if(err == 'cancel'){
this.$message.info("已取消删除");
}
});
},
//
submit(formName) {
let body = {
customerOrgId: "",
displayName: "",
title: "",
remark: "",
};
this.$refs[formName].validate((valid, fields) => {
if (!valid){
this.$message.warning(fields[Object.keys(fields)[0]][0].message);
return false;
}
objCopy(this.form, body);
console.log("body", body);
if (this.formTitle == "新增") {
postapi("/api/app/contact-person", body)
.then((res) => {
//console.log('api/app/contact-person')
if(res.code != -1){
this.form.id = res.data.id;
this.personId = res.data.id;
this.formTitle = "编辑";
return deletapi(`/api/app/contact-method/many/${this.personId}`);
}
})
.then((res) => {
//console.log(`deletapi api/app/contact-method/${this.personId}`)
if(res.code != -1){
let contactMethod = []; //form
this.contactMethodListEdit.forEach( item => {
contactMethod.push({
contactMethodValue: item.contactMethodValue,
contactMethodType: item.contactMethodType,
contactPersonId: this.personId,
});
});
if(contactMethod.length > 0){
return postapi("/api/app/contact-method/many", contactMethod);
}else{
this.dialogContactPerson = false
}
}
})
.then((res) => {
//console.log('api/app/contact-method/many')
//this.getContactPersonList(this.customerOrgId); //
if(res.code != -1){
this.getContactMethodList(this.form.id)
console.log("操作成功!");
this.dialogContactPerson = false
}
});
} else {
putapi(`/api/app/contact-person/${this.personId}`, body)
.then((res) => {
//console.log(`/api/app/contact-person/${this.personId}`)
if(res.code != -1){
return deletapi(`/api/app/contact-method/many/${this.personId}`);
}
})
.then((res) => {
console.log(`deletapi api/app/contact-method/${this.personId}`);
if(res.code != -1){
let contactMethod = []; //form
this.contactMethodListEdit.forEach((item, index) => {
contactMethod.push({
contactMethodValue: item.contactMethodValue,
contactMethodType: item.contactMethodType,
contactPersonId: this.personId,
});
});
if(contactMethod.length > 0){
return postapi("/api/app/contact-method/many", contactMethod);
}else{
this.dialogContactPerson = false
}
}
})
.then((res) => {
//console.log('api/app/contact-method/many')
//this.getContactPersonList(this.customerOrgId); //
if(res.code != -1){
this.getContactMethodList(this.form.id)
console.log("操作成功!");
this.dialogContactPerson = false
}
});
}
})
},
//
closeDialogPerson(){
let currentRow = {}
let lfind = arrayExistObj(this.customerOrg.contactPersonList,'id',this.form.id)
if(lfind > -1){
objCopy(this.form,this.customerOrg.contactPersonList[lfind])
currentRow = this.customerOrg.contactPersonList[lfind]
}else if(this.form.id){
currentRow = deepCopy(this.form)
lfind = this.customerOrg.contactPersonList.length
this.customerOrg.contactPersonList.push(currentRow)
}
if(lfind > -1){
setTimeout(() => {
this.$refs['customerOrg.contactPersonList'].setCurrentRow(currentRow)
}, 100)
}
},
//
addMethod() {
this.contactMethodListEdit.push({
contactMethodValue: "",
contactMethodType: "0",
contactPersonId: this.personId,
});
},
rowClick(row) {
console.log("row", row);
// console.log("rowClick");
this.form = deepCopy(row);
this.personId = row.id; //
this.dataTransOpts.tableS.contact_person.id = row.id
this.dataTransOpts.refresh.contact_method.M++
// this.getContactMethodList(row.id);
},
rowClickMethod(row) {
//console.log("rowClickMethod");
},
},
watch: {
// id
"dataTransOpts.refresh.contact_person.M": {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 联系人 newVal:${newVal} oldVal:${oldVal} customerOrgId: ${this.dataTransOpts.tableS.customer_org.id}`);
this.getContactPersonList(this.dataTransOpts.tableS.customer_org.id)
}
},
// id
"dataTransOpts.refresh.contact_method.M": {
// immediate: true,
handler(newVal, oldVal) {
console.log(`watch 联系方式 newVal:${newVal} oldVal:${oldVal} contactPersonId: ${this.dataTransOpts.tableS.contact_person.id}`);
// this.getContactPersonList(this.dataTransOpts.tableS.contact_person.id)
this.getContactMethodList(this.dataTransOpts.tableS.contact_person.id);
}
},
// 'customerOrgId' (newVal,oldVal){
// console.log('watch customerOrgId',newVal,oldVal)
// if(newVal != oldVal){
// this.personId = ''
// }
// }
},
};
</script>
<style scoped>
@import '../../assets/css/global_table.css';
@import '../../assets/css/global_input.css';
@import '../../assets/css/global_form.css';
.btnClass {
width: 110px;
}
</style>

51
src/components/customerOrg/ContactPersonEdit.vue

@ -201,7 +201,13 @@ export default {
}
objCopy(this.form, body);
console.log("body", body);
let contactMethod = {
contactPersonId: this.form.id,
details:this.contactMethodList
}
console.log("body,contactMethod", body,contactMethod);
if (!this.form.id) {
postapi("/api/app/contact-person", body)
.then((res) => {
@ -209,25 +215,9 @@ export default {
if (res.code != -1) {
this.form = res.data
this.dataTransOpts.tableS.contact_person.id = res.data.id
this.refFunc(['curChooseRow'],res.data)
return deletapi(`/api/app/contact-method/many/${res.data.id}`);
}
})
.then((res) => {
if (res && res.code != -1) {
let contactMethod = []; //form
this.contactMethodList.forEach(item => {
contactMethod.push({
contactMethodValue: item.contactMethodValue,
contactMethodType: item.contactMethodType,
contactPersonId: this.form.id,
});
});
if (contactMethod.length > 0) {
return postapi("/api/app/contact-method/many", contactMethod);
} else {
this.dialogWin.ContactPersonEdit = false
}
this.refFunc(['curChooseRow'],res.data)
contactMethod.contactPersonId = res.data.id
return postapi('/api/app/contactmethod/createmany',contactMethod);
}
})
.then((res) => {
@ -242,27 +232,8 @@ export default {
.then((res) => {
if (res.code != -1) {
this.refFunc(['curChooseRow'],this.form)
return deletapi(`/api/app/contact-method/many/${this.form.id}`);
}
})
.then((res) => {
console.log(`deletapi api/app/contact-method/${this.form.id}`);
if (res && res.code != -1) {
let contactMethod = []; //form
this.contactMethodList.forEach((item, index) => {
contactMethod.push({
contactMethodValue: item.contactMethodValue,
contactMethodType: item.contactMethodType,
contactPersonId: this.form.id,
});
});
if (contactMethod.length > 0) {
return postapi("/api/app/contact-method/many", contactMethod);
} else {
this.dialogWin.ContactPersonEdit = false
}
return postapi('/api/app/contactmethod/createmany',contactMethod);
}
})
.then((res) => {
//console.log('api/app/contact-method/many')

2
src/components/customerOrg/customerOrgGroupAsbitem.vue

@ -937,7 +937,7 @@ export default {
return putapi(`/api/app/customer-org-group/${this.customerOrgGroup.id}`, group)
}
}).then(res =>{
if(res.code != -1){
if(res && res.code != -1){
console.log("操作成功");
group.id = this.customerOrgGroup.id
this.refreshMoney(group)

444
src/views/common-settings/medicalPackage.vue

@ -2,52 +2,27 @@
<div class="box">
<div style="position: relative;">
<div class="middlebox">
<div class="contenttitle"
>
常用设置 /
<span class="contenttitleBold"
>套餐设置</span
>
</div>
<div class="contenttitle">
常用设置 /
<span class="contenttitleBold">套餐设置</span>
</div>
</div>
<!--套餐信息-->
<div style="display: block; margin-top: 7px;margin-right: 110px;">
<div style="margin-bottom: 15px;background-color: #fff;padding: 15px;border-radius: 8px;">
<el-table
:data="medicalPackages" ref="medicalPackages"
row-key="id"
:height="
window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 220) / 2)
"
highlight-current-row :row-class-name="handleRowClassName"
@row-click="rowClick"
>
<el-table-column
type="index"
label="序号"
min-width="50"
align="center"
/>
<el-table-column prop="displayName" label="名称" min-width="150" />
<el-table-column
prop="price"
label="价格"
min-width="60"
align="center"
/>
<el-table-column
prop="forSexId"
label="适用性别"
min-width="60"
align="center"
>
<template slot-scope="scope">
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}
</template>
</el-table-column>
<!--
<div style="margin-bottom: 15px;background-color: #fff;padding: 15px;border-radius: 8px;">
<el-table :data="medicalPackages" ref="medicalPackages" row-key="id" :height="window.pageHeight < 600
? 210
: Math.floor((window.pageHeight - 220) / 2)
" highlight-current-row :row-class-name="handleRowClassName" @row-click="rowClick">
<el-table-column type="index" label="序号" min-width="50" align="center" />
<el-table-column prop="displayName" label="名称" min-width="150" />
<el-table-column prop="price" label="价格" min-width="60" align="center" />
<el-table-column prop="forSexId" label="适用性别" min-width="60" align="center">
<template slot-scope="scope">
{{ dddw(dict.forSex, "id", scope.row.forSexId, "displayName") }}
</template>
</el-table-column>
<!--
<el-table-column
prop="maritalStatusId"
label="适用婚姻状况"
@ -66,91 +41,69 @@
</template>
</el-table-column>
-->
<el-table-column
prop="isActive"
label="启用"
min-width="60"
align="center"
>
<template slot-scope="scope">
{{ scope.row.isActive == 'Y' ? '是':'否' }}
</template>
</el-table-column>
<el-table-column
prop="creatorName"
label="创建者"
min-width="60"
align="center"
/>
<el-table-column label="创建时间" min-width="150" align="center">
<template slot-scope="scope">
{{
scope.row.creationTime
? moment(scope.row.creationTime).format("yyyy-MM-DD HH:mm:ss")
: ""
}}
</template>
</el-table-column>
<el-table-column label="操作" width="40">
<template>
<el-tag
class="move"
style="
<el-table-column prop="isActive" label="启用" min-width="60" align="center">
<template slot-scope="scope">
{{ scope.row.isActive == 'Y' ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column prop="creatorName" label="创建者" min-width="60" align="center" />
<el-table-column label="创建时间" min-width="150" align="center">
<template slot-scope="scope">
{{
scope.row.creationTime
? moment(scope.row.creationTime).format("yyyy-MM-DD HH:mm:ss")
: ""
}}
</template>
</el-table-column>
<el-table-column label="操作" width="40">
<template>
<el-tag class="move" style="
cursor: move;
background-color: rgb(245, 245, 245);
border: none;
"
draggable="true"
>
<i
class="el-icon-d-caret"
style="
" draggable="true">
<i class="el-icon-d-caret" style="
width: 1rem;
height: 1rem;
color: rgb(113, 113, 113);
"
></i>
</el-tag>
</template>
</el-table-column>
"></i>
</el-tag>
</template>
</el-table-column>
</el-table>
</div>
<!--套餐项目信息-->
<!--套餐项目信息-->
<div style="background-color: #fff; border-radius: 8px; padding: 15px;position: relative;">
<MedicalPackageAsbitem :formData="form" :refreshMoney="refreshMoney"/>
<MedicalPackageAsbitem :formData="form" :refreshMoney="refreshMoney" />
</div>
</div>
<!--按钮-->
<div style="margin-left: 10px; margin-top: 40px;position: absolute;top: 0;right: 0;">
<div>
<el-button class="commonbutton" @click="btnAdd">新增</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnEdit" >编辑</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnDel" >删除</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnSetTop" >置顶</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnSetBottom" >置低</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnSort" :disabled="!isDrag" >保存排序</el-button>
</div>
<div>
<el-button class="commonbutton" @click="btnAdd">新增</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnEdit">编辑</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnDel">删除</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnSetTop">置顶</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnSetBottom">置低</el-button>
</div>
<div style="margin-top: 10px">
<el-button class="commonbutton" @click="btnSort" :disabled="!isDrag">保存排序</el-button>
</div>
</div>
</div>
</div>
<!-- 新增或者编辑弹框 -->
<el-dialog
:title="form.id ? '编辑' : '新增'"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
width="800px"
>
<el-dialog :title="form.id ? '编辑' : '新增'" :close-on-click-modal="false" :visible.sync="dialogVisible" width="800px">
<el-form :model="form" label-width="80px" :rules="rules" ref="form">
<el-row>
<el-col :span="8">
@ -158,20 +111,15 @@
<el-input v-model="form.displayName" size="small" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-col :span="8">
<el-form-item label="金额">
<el-input v-model="form.price" type="number" size="small" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="适用性别">
<el-select v-model="form.forSexId" placeholder="请选择" size="small" >
<el-option
v-for="item in dict.forSex"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
<el-select v-model="form.forSexId" placeholder="请选择" size="small">
<el-option v-for="item in dict.forSex" :key="item.id" :label="item.displayName" :value="item.id">
</el-option>
</el-select>
</el-form-item>
@ -239,16 +187,16 @@ export default {
customerOrgRegister: {}, //
isDrag: false,
form: {
form: {
id: "",
displayName: "",
price: 0,
forSexId: "A",
// maritalStatusId: "A",
isActive:'Y',
remark: "",
isActive: 'Y',
remark: "",
},
formOri:{},
formOri: {},
formInit: {},
rules: {
displayName: [
@ -256,8 +204,8 @@ export default {
],
},
dialogVisible: false,
dialogVisible: false,
};
},
computed: {
@ -273,27 +221,27 @@ export default {
},
methods: {
moment,
dddw,deepCopy,
dddw, deepCopy,
//
refreshMoney(formData){
refreshMoney(formData) {
//console.log('this is parent')
let lfind = arrayExistObj(this.medicalPackages,'id',formData.id)
if(lfind > -1) this.medicalPackages[lfind].price = formData.price
let lfind = arrayExistObj(this.medicalPackages, 'id', formData.id)
if (lfind > -1) this.medicalPackages[lfind].price = formData.price
},
//
btnSort() {
const result = [];
this.medicalPackages.forEach((item, index) => {
result.push({ id: item.id, displayOrder: index+1 });
this.medicalPackages.forEach((item, index) => {
result.push({ id: item.id, displayOrder: index + 1 });
});
putapi("/api/app/medicalpackage/updatesortmany", {
itemList: result,
}).then((res) => {
if(res.code!=-1){
if (res.code != -1) {
this.isDrag = false;
this.$message.success('操作成功')
this.$message.success('操作成功')
}
});
},
@ -308,10 +256,10 @@ export default {
handle: ".move",
animation: 300,
//
onEnd({ newIndex, oldIndex }) {
onEnd({ newIndex, oldIndex }) {
that.isDrag = true;
const currRow = that.medicalPackages.splice(oldIndex, 1)[0];
that.medicalPackages.splice(newIndex, 0, currRow);
that.medicalPackages.splice(newIndex, 0, currRow);
},
});
});
@ -323,21 +271,21 @@ export default {
if (!this.form.id) {
this.$message.warning("请选择操作的数据");
return
}
let lfind = arrayExistObj(this.medicalPackages,'id',this.form.id)
}
let lfind = arrayExistObj(this.medicalPackages, 'id', this.form.id)
let currentRow = {}
putapi(
`/api/app/medicalpackage/updatemanysort?id=${this.form.id}&SortType=2`
).then((res) => {
if(res.code!=-1){
currentRow = this.medicalPackages.splice(lfind,1)[0] //
this.medicalPackages.push(currentRow)
this.$refs['medicalPackages'].setCurrentRow(currentRow);
this.$message.success('操作成功')
if (res.code != -1) {
currentRow = this.medicalPackages.splice(lfind, 1)[0] //
this.medicalPackages.push(currentRow)
this.$refs['medicalPackages'].setCurrentRow(currentRow);
this.$message.success('操作成功')
}
});
},
//
@ -347,20 +295,20 @@ export default {
return
}
let lfind = arrayExistObj(this.medicalPackages,'id',this.form.id)
let lfind = arrayExistObj(this.medicalPackages, 'id', this.form.id)
let currentRow = {}
putapi(
`/api/app/medicalpackage/updatemanysort?id=${this.form.id}&SortType=1`
).then((res) => {
if(res.code!=-1){
currentRow = this.medicalPackages.splice(lfind,1)[0]
this.medicalPackages.unshift(currentRow)
this.$refs['medicalPackages'].setCurrentRow(currentRow);
this.$message.success('操作成功')
if (res.code != -1) {
currentRow = this.medicalPackages.splice(lfind, 1)[0]
this.medicalPackages.unshift(currentRow)
this.$refs['medicalPackages'].setCurrentRow(currentRow);
this.$message.success('操作成功')
}
});
},
//
@ -377,7 +325,7 @@ export default {
},
//
dictInit() {
dictInit() {
//
getapi("/api/app/for-sex").then((res) => {
@ -388,40 +336,40 @@ export default {
this.getPackages()
},
getPackages(){
getPackages() {
// /api/app/medicalpackage/getlist
postapi("/api/app/medicalpackage/getmedicalpackagelist",{}).then(res => {
if(res.code != -1){
this.medicalPackages = res.data
postapi("/api/app/medicalpackage/getmedicalpackagelist", {}).then(res => {
if (res.code != -1) {
this.medicalPackages = res.data
}
})
},
//
rowClick(row) {
rowClick(row) {
objCopy(row, this.form);
this.formOri = Object.assign({},row)
this.formOri = Object.assign({}, row)
},
//
btnAdd() {
if (!this.customerOrgRegister.id) {
this.$message.warning("请选择体检次数");
return;
}
if(this.customerOrgRegister.isComplete.toUpperCase() == 'Y'){
this.$message.warning("该单位体检次数已完成,不允许新增套餐");
return;
}
if (this.customerOrgRegister.isComplete.toUpperCase() == "Y") {
this.$message.warning("该单位的该次体检次数已完成,不能再添加套餐!");
return;
}
// if (!this.customerOrgRegister.id) {
// this.$message.warning("");
// return;
// }
// if (this.customerOrgRegister.isComplete.toUpperCase() == 'Y') {
// this.$message.warning("");
// return;
// }
// if (this.customerOrgRegister.isComplete.toUpperCase() == "Y") {
// this.$message.warning("");
// return;
// }
this.form = deepCopy(this.formInit);
this.form.customerOrgRegisterId = this.customerOrgRegister.id;
this.form.medicalPackageId = this.medicalPackageId;
// this.form.customerOrgRegisterId = this.customerOrgRegister.id;
// this.form.medicalPackageId = this.medicalPackageId;
this.dialogVisible = true;
},
@ -430,7 +378,7 @@ export default {
if (!this.form.id) {
this.$message.warning("请选择需要操作的数据");
return;
}
}
this.dialogVisible = true;
},
@ -440,13 +388,13 @@ export default {
this.$message.warning("请选择需要操作的数据");
return;
}
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "是",
cancelButtonText: " 否 ",
type: "warning",
cancelButtonClass:"difference",
confirmButtonClass:"commonbutton"
cancelButtonClass: "difference",
confirmButtonClass: "commonbutton"
}).then(() => {
return postapi(`/api/app/medicalpackage/delete?id=${this.form.id}`);
}).then((res) => {
@ -457,7 +405,7 @@ export default {
this.form.id
);
if (lfind > -1) this.medicalPackages.splice(lfind, 1);
objCopy(this.formInit,this.form)
objCopy(this.formInit, this.form)
this.isDrag = false
this.$message.success('删除成功')
}
@ -477,7 +425,7 @@ export default {
let body = deepCopy(this.form);
delete body.id;
if (this.form.id) {
let medicalPackageId = this.form.id
@ -485,33 +433,33 @@ export default {
//
postapi(`/api/app/medicalpackage/update?id=${this.form.id}`, body).then(res => {
if (res.code != -1) {
if (res.code != -1) {
let lfind = arrayExistObj(
this.medicalPackages,
"id",
this.form.id
);
if (lfind > -1) objCopy(this.form, this.medicalPackages[lfind]);
if(this.formOri.price != this.form.price){
return postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem',{medicalPackageId})
}
}
}).then(res =>{
if(res.code != -1){
if (lfind > -1) objCopy(this.form, this.medicalPackages[lfind]);
if (this.formOri.price != this.form.price) {
return postapi('/api/app/medicalpackagedetail/getmedicalpackageinasbitem', { medicalPackageId })
}
}
}).then(res => {
if (res.code != -1) {
medicalPackageAsbitems = res.data;
if(medicalPackageAsbitems.length < 1){
if (medicalPackageAsbitems.length < 1) {
this.dialogVisible = false;
this.$message.success('操作成功!')
}else{
} else {
let detailsBody = {
medicalPackageId,
details:this.madeNewPackageAsbitems(medicalPackageAsbitems,this.form.price)
}
return postapi('/api/app/medicalPackagedetail/createmedicalPackagedetailmany',detailsBody)
details: this.madeNewPackageAsbitems(medicalPackageAsbitems, this.form.price)
}
return postapi('/api/app/medicalPackagedetail/createmedicalPackagedetailmany', detailsBody)
}
}
}).then(res =>{
if(res.code != -1){
}).then(res => {
if (res.code != -1) {
this.$message.success('操作成功!并自动按总价同比折算组合项目价格!')
this.dialogVisible = false;
//
@ -532,7 +480,7 @@ export default {
if (res.code != -1) {
this.form.id = res.data.id;
this.medicalPackages.push(deepCopy(res.data));
this.$refs['medicalPackages'].setCurrentRow(this.medicalPackages[this.medicalPackages.length - 1]);
this.$refs['medicalPackages'].setCurrentRow(this.medicalPackages[this.medicalPackages.length - 1]);
this.dialogVisible = false;
this.$message.success('操作成功!')
}
@ -540,8 +488,8 @@ export default {
}
});
},
computePrice(){
if(!this.form.id){
computePrice() {
if (!this.form.id) {
this.$message.warning("尚未保存信息,不可执行此操作!")
return
}
@ -549,76 +497,76 @@ export default {
let medicalPackageAsbitems = [] //
postapi('/api/app/medicalPackagedetail/getmedicalPackagedetailinasbitem',{medicalPackageId})
.then(res => {
if(res.code != -1){
medicalPackageAsbitems = res.data;
postapi('/api/app/medicalPackagedetail/getmedicalPackagedetailinasbitem', { medicalPackageId })
.then(res => {
if (res.code != -1) {
medicalPackageAsbitems = res.data;
if(medicalPackageAsbitems.length < 1){
this.$message.warning("当前套餐尚未设置组合项目,不可执行此操作!")
}else{
let body = {
medicalPackageId,
details:this.madeNewPackageAsbitems(medicalPackageAsbitems,this.form.price)
if (medicalPackageAsbitems.length < 1) {
this.$message.warning("当前套餐尚未设置组合项目,不可执行此操作!")
} else {
let body = {
medicalPackageId,
details: this.madeNewPackageAsbitems(medicalPackageAsbitems, this.form.price)
}
return postapi('/api/app/medicalPackagedetail/createmedicalPackagedetailmany', body)
}
return postapi('/api/app/medicalPackagedetail/createmedicalPackagedetailmany',body)
}
}
}).then(res =>{
if(res.code != -1){
//console.log("");
//
this.form.id = ''
//
setTimeout(() => {
this.form.id = medicalPackageId;
this.onSubmit('form')
}, 100)
}
})
}).then(res => {
if (res.code != -1) {
//console.log("");
//
this.form.id = ''
//
setTimeout(() => {
this.form.id = medicalPackageId;
this.onSubmit('form')
}, 100)
}
})
},
madeNewPackageAsbitems(oldPackageAsbitems,newTotal){
newTotal = Math.round(Number(newTotal)*100)/100
madeNewPackageAsbitems(oldPackageAsbitems, newTotal) {
newTotal = Math.round(Number(newTotal) * 100) / 100
let newPackageAsbitems = []
let oldTotal = Number(0)
oldPackageAsbitems.forEach(e =>{
oldPackageAsbitems.forEach(e => {
oldTotal += Number(e.asbitemMoney) //medicalPackageDetailMoney
})
oldTotal = Math.round(Number(oldTotal)*100)/100
oldTotal = Math.round(Number(oldTotal) * 100) / 100
let discount = 0
if(oldTotal != 0) discount = Math.round(newTotal * 10000 /oldTotal)/100
if (oldTotal != 0) discount = Math.round(newTotal * 10000 / oldTotal) / 100
oldTotal = Number(0)
oldPackageAsbitems.forEach(e =>{
e.medicalPackageDetailPrice = Math.round(e.price * discount)/100
e.medicalPackageDetailMoney = Math.round(e.medicalPackageDetailPrice * e.medicalPackageDetailAmount * 100)/100
oldPackageAsbitems.forEach(e => {
e.medicalPackageDetailPrice = Math.round(e.price * discount) / 100
e.medicalPackageDetailMoney = Math.round(e.medicalPackageDetailPrice * e.medicalPackageDetailAmount * 100) / 100
oldTotal += Number(e.medicalPackageDetailMoney)
})
oldTotal = Math.round(Number(oldTotal)*100)/100
oldTotal = Math.round(Number(oldTotal) * 100) / 100
//console.log('discount,oldTotal',discount,oldTotal)
let didTotal = Math.round(Number(newTotal - oldTotal)*100)/100
if(didTotal != 0){
for(let i = 0;i<oldPackageAsbitems.length;i++){
if(oldPackageAsbitems[i].medicalPackageDetailAmount == 1){
oldPackageAsbitems[i].medicalPackageDetailPrice = Math.round((Number(oldPackageAsbitems[i].medicalPackageDetailPrice) + Number(didTotal))*100)/100
let didTotal = Math.round(Number(newTotal - oldTotal) * 100) / 100
if (didTotal != 0) {
for (let i = 0; i < oldPackageAsbitems.length; i++) {
if (oldPackageAsbitems[i].medicalPackageDetailAmount == 1) {
oldPackageAsbitems[i].medicalPackageDetailPrice = Math.round((Number(oldPackageAsbitems[i].medicalPackageDetailPrice) + Number(didTotal)) * 100) / 100
break
}
}
}
oldPackageAsbitems.forEach(e =>{
oldPackageAsbitems.forEach(e => {
newPackageAsbitems.push({
medicalPackageId:this.form.id, // e.medicalPackageId,
asbitemId:e.id, // e.asbitemId
price:e.medicalPackageDetailPrice,
amount:e.medicalPackageDetailAmount
})
medicalPackageId: this.form.id, // e.medicalPackageId,
asbitemId: e.id, // e.asbitemId
price: e.medicalPackageDetailPrice,
amount: e.medicalPackageDetailAmount
})
})
return newPackageAsbitems
@ -639,25 +587,31 @@ export default {
display: flex;
flex-direction: column;
}
:deep .el-form-item {
margin-bottom: 14px;
}
/* 去掉input textarea的手动扩张样式 */
:deep(.el-textarea__inner) {
resize: none;
}
/* el-dialog的头部样式 */
:deep .el-dialog__header {
padding: 11px 20px 11px;
}
/* el-dialog的主体样式 */
:deep .el-dialog__body {
padding: 0px 20px 0px;
}
/* el-divider样式 */
:deep .el-divider--horizontal {
margin: 0px 0 12px;
}
/* el-dialog的底部样式 */
:deep .el-dialog__footer {
padding: 0px 20px 14px;

Loading…
Cancel
Save