You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

403 lines
12 KiB

<template>
<div class="examinationcategory">
<div>
<span>项目类别</span>
<el-select
v-model="value"
placeholder="请选择"
style="margin-left: 20px"
@change="getprojectgroups"
clearable
>
<el-option
v-for="item in options"
:key="item.id"
:label="item.displayName"
:value="item.id"
>
</el-option>
</el-select>
</div>
<div class="mainarea">
<div class="mainarealeftbox">
<el-table
:header-cell-style="{ background: '#eef1f6' }"
:data="tabledata"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection"></el-table-column>
<el-table-column
label="未选组合项目"
prop="displayName"
></el-table-column>
</el-table>
</div>
<div class="mainbutton">
<div>
<el-button
type="primary"
style="margin-top: 10px"
@click="addselecteditems"
>移除 <i class="el-icon-arrow-left"></i
></el-button>
</div>
<div>
<el-button type="primary" style="margin-top: 10px" @click="removedata"
>添加 <i class="el-icon-arrow-right"></i
></el-button>
</div>
<div>
<el-button
style="margin-top: 10px"
:disabled="saveornot"
@click="Onsubmit"
>保存
</el-button>
</div>
</div>
<!-- -->
<div class="mainarearightbox">
<el-table
:header-cell-style="{ background: '#eef1f6' }"
:data="personnelUnit.nogroupselected"
@selection-change="selecteditems"
>
<!-- temporaryselection personnelUnit.nogroupselected-->
<el-table-column type="selection"></el-table-column>
<el-table-column
label="已选组合项目"
width="110"
prop="displayName"
></el-table-column>
<el-table-column label="价格" prop="price">
<template slot-scope="scope">
<el-input
type="text"
v-model="scope.row.price"
@change="inputchang(scope.row, $event.target.value)"
/>
</template>
</el-table-column>
</el-table>
</div>
<div class="operatebottom">
<div>
<el-button type="primary" @click="packagerepicion"
>复制套餐</el-button
>
</div>
<div style="margin-top: 10px">
<el-button type="primary" @click="copygroup">复制分组</el-button>
</div>
</div>
</div>
<!-- 复制套餐弹框 -->
<el-dialog title="编辑" :visible.sync="dialogVisible" width="60%">
<el-table :data="packagelist">
<el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="名称" prop="displayName"></el-table-column>
<el-table-column label="创建者" prop="creatorName"></el-table-column>
<el-table-column label="创建时间" prop="creatorName">
<template slot-scope="scope">
{{ scope.row.creationTime | dateFormat }}
</template>
</el-table-column>
<el-table-column
label="修改者"
prop="lastModifierName"
></el-table-column>
<el-table-column label="修改时间" prop="lastModificationTime">
<template slot-scope="scope">
{{ scope.row.lastModificationTime | dateFormat }}
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="dialogVisible = false"
> </el-button
>
</span>
</el-dialog>
<!-- 复制分组 弹框-->
<el-dialog
title="复制分组"
:visible.sync="copyGroupdialogVisible"
width="50%"
>
<el-table>
<el-table-column label="编号"></el-table-column>
<el-table-column label="创建者"></el-table-column>
<el-table-column label="创建时间"></el-table-column>
<el-table-column label="修改者"></el-table-column>
<el-table-column label="修改时间"></el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="copyGroupdialogVisible = false"> </el-button>
<el-button type="primary" @click="copyGroupdialogVisible = false"
> </el-button
>
</span>
</el-dialog>
<!-- -->
</div>
</template>
<script>
import { getapi, postapi } from "@/api/api";
import { mapState } from "vuex";
export default {
data() {
return {
saveornot: true, //保存按钮
selecteddata: [], //已选数据
unselecteddata: [], //未选数据
unselecteddata: [], //右边勾选中
rightselctedata: [], //右侧已选
options: [],
value: "",
dialogVisible: false,
copyGroupdialogVisible: false,
packagelist: [],
tabledata: [],
temporaryselection: [], //已选组合项目table
copegroupdata: [], //复制分组
addrulst: [], //添加保存的Id
price: "", //价格
};
},
computed: {
...mapState(["personnelUnit"]),
},
created() {
this.getitemtype();
this.getportfolioitems();
},
methods: {
inputchang(row, newVal) {
console.log(row);
console.log(newVal);
// this.price = v.price;
// console.log(this.price);
},
//保存按钮
Onsubmit() {
if (!this.personnelUnit.customerOrgGroupId) {
alert("请先选择单位分组");
return;
} else {
postapi("/api/app/customer-org-group-detail/many", this.addrulst).then(
(res) => {
this.$message.success("操作成功");
console.log(this.addrulst);
}
);
}
// console.log(this.addrulst);
// // console.log(this.personnelUnit.form.id);
// if (this.addrulst[customerOrgGroupId] == undefined) {
// this.$message.warning("请先选择单位分组");
// } else {
// postapi("/api/app/customer-org-group-detail/many", this.addrulst).then(
// (res) => {
// console.log(this.personnelUnit.form.id);
// this.$message.success("操作成功");
// }
// );
// }
},
//移除按钮
addselecteditems() {
console.log(this.personnelUnit.id);
if (this.personnelUnit.form.id == "") {
alert("请先选择单位类别");
} else {
//personnelUnit.nogroupselected
if (this.rightselctedata.length == 0) {
this.$message.warning("已选数据为空无法移动");
} else {
let count = this.rightselctedata.length - 1;
for (var i = count; i >= 0; i--) {
// this.personnelUnit.nogroupselected.splice(i, 1);
// !this.rightselctedata.includes(this.rightselctedata[i].displayName)
[...new Set(this.rightselctedata)];
this.tabledata.push(this.rightselctedata[i]);
this.personnelUnit.nogroupselected.splice(i, 1);
// this.tabledata.push(this.rightselctedata[i]);
}
// this.
this.rightselctedata.forEach((item) => {
console.log(this.personnelUnit.customerOrgGroupId);
this.addrulst.push({
asbitemId: item.id,
price: item.price,
// price: this.price,
customerOrgGroupId: this.personnelUnit.customerOrgGroupId,
});
});
}
}
},
//右侧勾选按钮
selecteditems(val) {
this.rightselctedata = val;
// this.personnelUnit.nogroupselected = val;
console.log(this.rightselctedata);
},
// 添加按钮
removedata() {
if (this.personnelUnit.form.id == "") {
alert("请先选择单位分组");
} else {
if (this.unselecteddata.length == 0) {
this.$message.warning("未选数据为空无法移动");
} else {
this.saveornot = false;
let count = this.unselecteddata.length - 1;
let uniqueSet = [...new Set(this.unselecteddata, ...this.tabledata)];
const filteredArray = [];
for (var i = count; i >= 0; i--) {
// this.tabledata.splice(i, 1);
this.unselecteddata.push(this.unselecteddata[i]);
this.tabledata.splice(i, 1);
// this.personnelUnit.nogroupselected.push(this.unselecteddata[i]);
}
console.log(this.personnelUnit.customerOrgGroupId);
this.unselecteddata.forEach((item) => {
this.price = item.price;
this.addrulst.push({
asbitemId: item.id,
price: item.price,
// price: this.psrice,
customerOrgGroupId: this.personnelUnit.customerOrgGroupId,
});
});
console.log(this.addrulst, "hhhhhhh");
// this.selecteddata = this.unselecteddata;
// 复制
// let count = this.unselecteddata.length - 1;
// for (var i = count; i >= 0; i--) {
// this.tabledata.splice(i, 1);
// this.selecteddata.push(this.unselecteddata[i]);
// }
}
}
},
// 左侧未选
handleSelectionChange(val) {
// this.selecteddata = val;
this.unselecteddata = val;
console.log(this.unselecteddata);
},
//获取所有组合项目
getportfolioitems() {
getapi("/api/app/asbitem/in-filter?Filter").then((res) => {
this.tabledata = res.data.items;
});
},
//项目类别选择
getprojectgroups(v) {
if (v !== "") {
getapi(`/api/app/asbitem/in-item-type/${v}`).then((res) => {
console.log(res);
this.tabledata = res.data;
});
} else {
getapi("/api/app/asbitem/in-filter?Filter").then((res) => {
this.tabledata = res.data.items;
});
}
},
//复制分组弹框
copygroup() {
if (this.personnelUnit.form == "") {
this.$message.warning("请选择分组");
} else {
this.copyGroupdialogVisible = true;
getapi(
`/api/app/customer-org-group-detail/customer-org-group-detail-in-asbitem?CustomerOrgGroupId=${this.personnelUnit.form.id}`
).then((res) => {
console.log(res);
this.personnelUnit.form = res.data;
});
}
},
//复制套餐
packagerepicion() {
this.dialogVisible = true;
getapi("/api/app/medical-package").then((res) => {
this.packagelist = res.data.items;
console.log(res);
});
},
//
getitemtype() {
getapi("/api/app/item-type/by-code-all").then((res) => {
this.options = res.data;
});
},
//获取当前列列表数据
listeninglist() {
getapi(
`/api/app/customer-org-group/${this.personnelUnit.customerOrgGroupId}`
).then((res) => {
this.personnelUnit.form = res.data;
console.log(res);
});
getapi(
`/api/app/customer-org-group-detail/customer-org-group-detail-in-asbitem?CustomerOrgGroupId=${this.personnelUnit.form.id}`
).then((res) => {
console.log(res, "res");
this.personnelUnit.nogroupselected = res.data;
});
},
// getapi(`/api/app/customer-org-group/${row.id}`).then((res)
},
//监听事件
watch: {
//
"personnelUnit.customerOrgGroupId"(newVal, oldVal) {
//console.log('patientRegister.addTimes newVal:',newVal,' oldVal:',oldVal)
if (newVal != oldVal) {
console.log("newVal", newVal);
this.listeninglist();
//
}
},
},
};
</script>
<style scoped>
.operatebottom {
margin-left: 5%;
}
.mainarearightbox {
width: 30%;
border: 1px solid #000;
height: 300px;
margin-left: 7%;
}
.mainbutton {
margin-left: 5%;
padding: 5px 10px;
margin-top: 5%;
}
.mainarea {
display: flex;
margin-top: 20px;
}
.mainarealeftbox {
width: 20%;
border: 1px solid #000;
height: 300px;
margin-left: 7%;
}
.examinationcategory {
margin-top: 30px;
}
</style>