|
@@ -202,7 +202,7 @@
|
|
|
<ul v-show="isOpenCloseItems[i]">
|
|
|
<li
|
|
|
v-for="(item, index) in group.planDetails"
|
|
|
- :key="item.id"
|
|
|
+ :key="index"
|
|
|
>
|
|
|
<div class="move_btn">
|
|
|
<div class="move_top">
|
|
@@ -213,6 +213,8 @@
|
|
|
@mouseout="upActive = null"
|
|
|
@click="
|
|
|
handleMove('up', {
|
|
|
+ code:item.code,
|
|
|
+ id:item.id,
|
|
|
name: item.name,
|
|
|
orderNo: item.orderNo,
|
|
|
groupIndex: i,
|
|
@@ -241,6 +243,8 @@
|
|
|
@mouseout="downActive = null"
|
|
|
@click="
|
|
|
handleMove('down', {
|
|
|
+ code:item.code,
|
|
|
+ id:item.id,
|
|
|
name: item.name,
|
|
|
orderNo: item.orderNo,
|
|
|
groupIndex: i,
|
|
@@ -259,6 +263,7 @@
|
|
|
<div class="img_box" v-else></div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div class="list_right" v-if="!item.list">
|
|
|
<div class="list_right">
|
|
|
<div class="right_l">
|
|
@@ -296,6 +301,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div v-else style="width: 100%">
|
|
|
<div
|
|
|
class="list_right list_right1"
|
|
@@ -336,6 +342,12 @@
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <div class="list_right" style="width: 100%;">
|
|
|
+ <div v-for="(items,index) in item.planDetails" :key="items.id">
|
|
|
+ <p>{{items.name}}</p>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</li>
|
|
|
</ul>
|
|
@@ -378,6 +390,7 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
return {
|
|
|
+ saveId:'',
|
|
|
hvaeId:'',
|
|
|
codeId:'',
|
|
|
objOne:{},
|
|
@@ -468,11 +481,12 @@ export default {
|
|
|
status: item.status
|
|
|
};
|
|
|
});
|
|
|
+ let arrCopy=params.planDetailParent[0].planDetailSub
|
|
|
//将可能诊断和已有诊断的子集放回树里面
|
|
|
if(this.isEdit){
|
|
|
- params.planDetailParent[0].planDetailSub=this.buildTree(params.planDetailParent[0].planDetailSub,'id','parentId','9715')
|
|
|
+ params.planDetailParent[0].planDetailSub=this.buildTree(arrCopy,'id','parentId',arrCopy[0].parentId,'save')
|
|
|
}else{
|
|
|
- params.planDetailParent[0].planDetailSub=this.buildTree(params.planDetailParent[0].planDetailSub,'id','parentId','1')
|
|
|
+ params.planDetailParent[0].planDetailSub=this.buildTree(arrCopy,'id','parentId',arrCopy[0].parentId,'save')
|
|
|
}
|
|
|
api.savePlanInfoDatas(params).then((res) => {
|
|
|
if (res.data.code === "0") {
|
|
@@ -520,9 +534,32 @@ export default {
|
|
|
* groupIndex:当前组的index
|
|
|
* }
|
|
|
*/
|
|
|
- const { name, orderNo, itemIndex, groupIndex } = obj;
|
|
|
+
|
|
|
+
|
|
|
+ const { name, orderNo, itemIndex, groupIndex,id } = obj;
|
|
|
+ let arrCopy
|
|
|
+ // 移动之前先合成树
|
|
|
+ if(groupIndex===0){
|
|
|
+ arrCopy=this.form.planDetailSub[0].planDetails
|
|
|
+ arrCopy=this.buildTree(arrCopy,'id','parentId',arrCopy[0].parentId)
|
|
|
+ arrCopy.forEach((item)=>{
|
|
|
+ if (item.name === "开单合理性") {
|
|
|
+ item.id = item.id + "d";
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.form.planDetailSub[0].planDetails=arrCopy;
|
|
|
+ console.log(arrCopy)
|
|
|
+ //重新找itemIndex,通过id找itemIndex;
|
|
|
+ let itemIndexs;
|
|
|
+ this.form.planDetailSub[0].planDetails.forEach((item,index)=>{
|
|
|
+ if(item.id==id){
|
|
|
+ itemIndexs=index
|
|
|
+ }
|
|
|
+ })
|
|
|
+ console.log(itemIndexs)
|
|
|
// exIndex获取到要交换的Index值
|
|
|
- let exIndex = type === "up" ? itemIndex - 1 : itemIndex + 1;
|
|
|
+ let exIndex = type === "up" ? itemIndexs - 1 : itemIndexs + 1;
|
|
|
// exOrderNo获取到要交换的orderNo
|
|
|
const exOrder = this.form.planDetailSub[groupIndex].planDetails[exIndex];
|
|
|
// 赋值一份新的数据
|
|
@@ -531,15 +568,26 @@ export default {
|
|
|
);
|
|
|
// 交换orderNo
|
|
|
newList[exIndex].orderNo = orderNo;
|
|
|
- newList[itemIndex].orderNo = exOrder.orderNo;
|
|
|
- if (newList[itemIndex].list) {
|
|
|
- newList[itemIndex].list[0].orderNo = exOrder.orderNo;
|
|
|
+ newList[itemIndexs].orderNo = exOrder.orderNo;
|
|
|
+ if (newList[itemIndexs].list) {
|
|
|
+ newList[itemIndexs].list[0].orderNo = exOrder.orderNo;
|
|
|
}
|
|
|
-
|
|
|
// 排序
|
|
|
newList = this.groupSort(newList);
|
|
|
// 更新数据
|
|
|
this.form.planDetailSub[groupIndex].planDetails = newList;
|
|
|
+ // 移动完成之后再展开
|
|
|
+ if(groupIndex===0){
|
|
|
+ this.$nextTick(()=>{
|
|
|
+ // 改数组里面的可能诊断和已有诊断
|
|
|
+ this.form.planDetailSub[0].planDetails=this.tree2Array(this.form.planDetailSub[0],this.form.planDetailSub[0].parentId)
|
|
|
+ this.form.planDetailSub[0].planDetails.shift()
|
|
|
+ this.$forceUpdate()
|
|
|
+
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
},
|
|
|
// 获取医院下拉列表
|
|
|
getHospitalInfo() {
|
|
@@ -624,6 +672,7 @@ export default {
|
|
|
// 改数组里面的可能诊断和已有诊断
|
|
|
this.form.planDetailSub[0].planDetails=this.tree2Array(this.form.planDetailSub[0],this.form.planDetailSub[0].parentId)
|
|
|
this.form.planDetailSub[0].planDetails.shift()
|
|
|
+ this.$forceUpdate()
|
|
|
})
|
|
|
}
|
|
|
}
|
|
@@ -679,25 +728,27 @@ export default {
|
|
|
// 将treeObj中的所有对象,放入一个数组中,要求某个对象在另一个对象的children时,其parent_id是对应的另一个对象的id
|
|
|
// 其原理实际上是数据结构中的广度优先遍历
|
|
|
tree2Array(treeObj, rootid) {
|
|
|
- const temp = []; // 设置临时数组,用来存放队列
|
|
|
- const out = []; // 设置输出数组,用来存放要输出的一维数组
|
|
|
+ let temp = []; // 设置临时数组,用来存放队列
|
|
|
+ let out = []; // 设置输出数组,用来存放要输出的一维数组
|
|
|
+ console.log(out)
|
|
|
+
|
|
|
temp.push(treeObj);
|
|
|
// 首先把根元素存放入out中
|
|
|
let parentId = rootid;
|
|
|
- const obj = this.deepCopy(treeObj);
|
|
|
+ let obj = this.deepCopy(treeObj);
|
|
|
obj.parentId = parentId;
|
|
|
delete obj['planDetails'];
|
|
|
out.push(obj)
|
|
|
// 对树对象进行广度优先的遍历
|
|
|
while(temp.length > 0) {
|
|
|
- const first = temp.shift();
|
|
|
- const planDetails = first.planDetails;
|
|
|
+ let first = temp.shift();
|
|
|
+ let planDetails = first.planDetails;
|
|
|
if(planDetails && planDetails.length > 0) {
|
|
|
parentId = first.id;
|
|
|
- const len = first.planDetails.length;
|
|
|
+ let len = first.planDetails.length;
|
|
|
for(let i=0;i<len;i++) {
|
|
|
temp.push(planDetails[i]);
|
|
|
- const obj = this.deepCopy(planDetails[i]);
|
|
|
+ let obj = this.deepCopy(planDetails[i]);
|
|
|
obj.parentId = parentId;
|
|
|
delete obj['planDetails'];
|
|
|
out.push(obj)
|
|
@@ -709,22 +760,10 @@ export default {
|
|
|
let arrs=[];
|
|
|
let flag;
|
|
|
let haveFlag;
|
|
|
- //修改
|
|
|
- if(this.isEdit){
|
|
|
- // //可能诊断
|
|
|
- flag=null;
|
|
|
- //可能诊断
|
|
|
- arr = this.someFor(arr,out,'maydiagnose',flag);
|
|
|
- //已诊断
|
|
|
- arrs = this.someFor(arrs,arr,'hasdiagnose',haveFlag);
|
|
|
- }
|
|
|
- else{
|
|
|
- //新增
|
|
|
//可能诊断
|
|
|
arr = this.someFor(arr,out,'maydiagnose',flag);
|
|
|
//已诊断
|
|
|
arrs = this.someFor(arrs,arr,'hasdiagnose',haveFlag);
|
|
|
- }
|
|
|
return arrs
|
|
|
},
|
|
|
// 将可能诊断和已诊断的子集放在各自的下面
|
|
@@ -742,6 +781,7 @@ export default {
|
|
|
flag=flag+1
|
|
|
arr.splice(flag,0,item)
|
|
|
oldArr.splice(index,item)
|
|
|
+
|
|
|
}else{
|
|
|
arr.push(item)
|
|
|
}
|
|
@@ -768,14 +808,19 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
// 将一个数组,变成能够以树形展示的对象
|
|
|
- buildTree(array,id,parent_id,num) {
|
|
|
+ buildTree(array,id,parent_id,num,save) {
|
|
|
// 创建临时对象
|
|
|
let temp = {};
|
|
|
// 创建需要返回的树形对象
|
|
|
let tree = {};
|
|
|
// 先遍历数组,将数组的每一项添加到temp对象中
|
|
|
for(let i in array) {
|
|
|
+ if(array[i].name==="开单合理性" && !save){
|
|
|
+ array[i].id.toString()
|
|
|
+ array[i].id=array[i].id.replace("d","");
|
|
|
+ }
|
|
|
temp[array[i][id]] = array[i];
|
|
|
+ delete temp[array[i][id]].planDetailSub
|
|
|
}
|
|
|
// 遍历temp对象,将当前子节点与父节点建立连接
|
|
|
for(let i in temp) {
|
|
@@ -792,7 +837,8 @@ export default {
|
|
|
temp[temp[i][parent_id]].planDetailSub = new Array();
|
|
|
}
|
|
|
}
|
|
|
- // temp[temp[i][parent_id]].planDetails.push(temp[i]);
|
|
|
+
|
|
|
+ temp[temp[i][parent_id]].planDetails.push(temp[i]);
|
|
|
temp[temp[i][parent_id]].planDetailSub.push(temp[i])
|
|
|
|
|
|
} else {
|
|
@@ -807,9 +853,11 @@ export default {
|
|
|
},
|
|
|
//判断可能诊断下面的文字没有图片
|
|
|
isCode(item){
|
|
|
+
|
|
|
if(item.code=='maydiagnose'){
|
|
|
this.codeId=item.id
|
|
|
}
|
|
|
+
|
|
|
if(item.parentId==this.codeId){
|
|
|
return false
|
|
|
}else{
|