|
@@ -87,11 +87,15 @@
|
|
|
justify-content: space-between;
|
|
|
.right_l {
|
|
|
display: flex;
|
|
|
+ // width: calc(100% - 200px);
|
|
|
}
|
|
|
/deep/.el-input--small {
|
|
|
width: 60px;
|
|
|
}
|
|
|
}
|
|
|
+ .list_right1{
|
|
|
+ width: calc(100% );
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -170,18 +174,11 @@
|
|
|
>
|
|
|
<div class="item_title">
|
|
|
<div class="title_left">
|
|
|
- <div
|
|
|
- class="handleIcon"
|
|
|
- @click="
|
|
|
- isOpenCloseItems === i
|
|
|
- ? (isOpenCloseItems = null)
|
|
|
- : (isOpenCloseItems = i)
|
|
|
- "
|
|
|
- >
|
|
|
+ <div class="handleIcon" @click="listShow(i)">
|
|
|
<img
|
|
|
src="../../../images/multi.png"
|
|
|
:alt="group.name"
|
|
|
- :class="isOpenCloseItems === i ? 'open' : 'close'"
|
|
|
+ :class="isOpenCloseItems[i] ? 'open' : 'close'"
|
|
|
/>
|
|
|
</div>
|
|
|
<h4>{{ group.name }}</h4>
|
|
@@ -200,7 +197,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<transition name="plus-icon">
|
|
|
- <ul v-if="isOpenCloseItems === i">
|
|
|
+ <ul v-show="isOpenCloseItems[i]">
|
|
|
<li
|
|
|
v-for="(item, index) in group.planDetails"
|
|
|
:key="item.id"
|
|
@@ -297,9 +294,9 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div v-else>
|
|
|
+ <div v-else style="width:100%">
|
|
|
<div
|
|
|
- class="list_right"
|
|
|
+ class="list_right list_right1"
|
|
|
v-for="child in item.list"
|
|
|
:key="child.id"
|
|
|
>
|
|
@@ -390,7 +387,7 @@ export default {
|
|
|
planStatus: 1,
|
|
|
planDetailSub: []
|
|
|
},
|
|
|
- isOpenCloseItems: 0, // 是否展开方案配置项
|
|
|
+ isOpenCloseItems: { 0: true }, // 是否展开方案配置项
|
|
|
rules: {
|
|
|
planName: [
|
|
|
{ required: true, message: "方案名称不能为空", trigger: "change" },
|
|
@@ -413,11 +410,16 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
|
- //
|
|
|
+ //展开收起控制
|
|
|
+ listShow(i) {
|
|
|
+ // TODO Vue监听不到对象中新添加的项,所以复制一份
|
|
|
+ let obj = { ...this.isOpenCloseItems };
|
|
|
+ obj[i] === true ? (obj[i] = false) : (obj[i] = true);
|
|
|
+ this.isOpenCloseItems = obj;
|
|
|
+ },
|
|
|
onSubmit() {
|
|
|
this.$refs.form.validate((valid) => {
|
|
|
if (valid) {
|
|
|
- console.log("this.form", this.form);
|
|
|
let params = JSON.parse(JSON.stringify(this.form));
|
|
|
params.planDetailParent = params.planDetailSub;
|
|
|
delete params.planDetailSub;
|
|
@@ -524,7 +526,6 @@ export default {
|
|
|
// 排序
|
|
|
newList = this.groupSort(newList);
|
|
|
// 更新数据
|
|
|
- console.log(newList);
|
|
|
this.form.planDetailSub[groupIndex].planDetails = newList;
|
|
|
},
|
|
|
// 获取医院下拉列表
|
|
@@ -581,12 +582,13 @@ export default {
|
|
|
return arr;
|
|
|
}
|
|
|
},
|
|
|
- getPlanInfoIds(params) {
|
|
|
- api.getPlanInfoIds(params).then((res) => {
|
|
|
- console.log("???", res);
|
|
|
+ // 编辑获取默认数据
|
|
|
+ async getPlanInfoIds(params) {
|
|
|
+ try {
|
|
|
+ const res = await api.getPlanInfoIds(params);
|
|
|
if (res.data.code === "0") {
|
|
|
const obj = res.data.data[0];
|
|
|
- const { data } = this.$route.params;
|
|
|
+ const { data } = this.$route.params;
|
|
|
this.form = {
|
|
|
hospitalId: obj.hospitalId,
|
|
|
planName: obj.planName,
|
|
@@ -595,11 +597,52 @@ export default {
|
|
|
planDetailSub: obj.sysSetInfo,
|
|
|
id: data.id
|
|
|
};
|
|
|
+
|
|
|
+ const defaultRes = await api.getDefaultPlans();
|
|
|
+ if (defaultRes.data.code === "0") {
|
|
|
+ // 合并默认数据
|
|
|
+ this.mergeDefaultPlans(defaultRes.data.data.planDetailDefault);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ console.error("err", err);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 合并默认数据
|
|
|
+ mergeDefaultPlans(data) {
|
|
|
+ data.forEach((item) => {
|
|
|
+ const oneIndex = this.form.planDetailSub.findIndex(
|
|
|
+ (ite) => ite.name === item.name
|
|
|
+ );
|
|
|
+ // 第一层数据不存在的话,直接加入进去
|
|
|
+ if (oneIndex === -1) {
|
|
|
+ item.status = 0;
|
|
|
+ this.form.planDetailSub.push(item);
|
|
|
+ } else {
|
|
|
+ // 第一层数据存在,验证第二层
|
|
|
+ item.planDetails.forEach((child) => {
|
|
|
+ const childIndex = this.form.planDetailSub[
|
|
|
+ oneIndex
|
|
|
+ ].planDetails.findIndex((it) => it.name === child.name);
|
|
|
+ // 第二层数据不存在,直接添加进去
|
|
|
+ if (childIndex === -1) {
|
|
|
+ child.status = 0;
|
|
|
+ this.form.planDetailSub[oneIndex].planDetails.push(child);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- this.fomatArr();
|
|
|
});
|
|
|
+ // 排序
|
|
|
+ const newData = this.groupSort(this.form.planDetailSub);
|
|
|
+ newData.forEach((sun) => {
|
|
|
+ if (sun.planDetails) {
|
|
|
+ this.groupSort(sun.planDetails);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.fomatArr();
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
created() {
|
|
|
// this.getHospitalInfo();
|
|
|
// this.getDefaultPlans();
|