|
@@ -1,830 +0,0 @@
|
|
|
-<template>
|
|
|
- <el-scrollbar style="height: 100%" ref="elscrollbar">
|
|
|
- <div class="AddPlanWrapper clearfix" @click="close">
|
|
|
- <crumbs
|
|
|
- :title="isEdit ? '电子病历方案配置-修改方案' : '电子病历方案配置-添加方案'"
|
|
|
- class="topBack"
|
|
|
- :param="$route.params"
|
|
|
- linkTo="Plan"
|
|
|
- ></crumbs>
|
|
|
- <div class="AddPlanBox">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="16">
|
|
|
- <el-form ref="form" :model="form" label-width="80px" :rules="rules">
|
|
|
- <!-- <el-form-item label="医院名称" prop="hoipitalName">
|
|
|
- <el-input v-model="form.planName" placeholder="2-30位,可输入汉字、字母、数字和下划线"></el-input>
|
|
|
- </el-form-item>-->
|
|
|
- <el-form-item label="医院名称" class="selectMedicine" prop="hospitalId">
|
|
|
- <el-select
|
|
|
- v-model="form.hospitalId"
|
|
|
- placeholder="请选择"
|
|
|
- clearable
|
|
|
- style="width: 100%"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in HospitalInfoList"
|
|
|
- :label="item.name"
|
|
|
- :value="item.id"
|
|
|
- :key="item.id"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="方案名称" prop="planName">
|
|
|
- <el-input v-model="form.planName" placeholder="2-30位,可输入汉字、字母、数字和下划线"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="方案编码" prop="planCode">
|
|
|
- <el-input v-model="form.planCode" placeholder="可输入字母、数字和下划线"></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="方案配置">
|
|
|
- <ul>
|
|
|
- <li>
|
|
|
- <div class="title">
|
|
|
- <div class="handleIcon" @click="openPlanItems">
|
|
|
- <img
|
|
|
- src="../../../images/multi.png"
|
|
|
- alt="辅助信息"
|
|
|
- :class="{'open' : isOpenCloseItems}"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <h4>辅助信息</h4>
|
|
|
- <div class="titlwSwitch">
|
|
|
- <el-switch
|
|
|
- v-model="switchSubStatus"
|
|
|
- :active-value="1"
|
|
|
- :inactive-value="0"
|
|
|
- active-color="#4BC4D7"
|
|
|
- inactive-color="#BBBBBB"
|
|
|
- ></el-switch>
|
|
|
- <span class="titlwSwitchStatus">{{switchSubStatus === 1 ? '启用中' : '未启用'}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <transition name="plus-icon">
|
|
|
- <div v-if="isOpenCloseItems">
|
|
|
- <ul class="sub" v-for="(item,index) in planDefaultList" :key="item.id">
|
|
|
- <li class="planItem">
|
|
|
- <div class="sort" v-if="item.ismove">
|
|
|
- <div class="top">
|
|
|
- <img
|
|
|
- :src="isTopLight !== index ? require('../../../images/icon_default_top.png') : require('../../../images/icon_hover_top.png')"
|
|
|
- alt="上升"
|
|
|
- v-if="index !== 0"
|
|
|
- @click="sortPlan(item,index,'top')"
|
|
|
- @mouseover="handleMouseEnter1(index)"
|
|
|
- @mouseleave="handleMouseLeave1(index)"
|
|
|
- />
|
|
|
- </div>
|
|
|
- <div class="down">
|
|
|
- <img
|
|
|
- :src="isDownLight !== index ? require('../../../images/icon_default_down.png') : require('../../../images/icon_hover_down.png')"
|
|
|
- alt="下降"
|
|
|
- v-if="index !== planDefaultList.length - 1"
|
|
|
- @click="sortPlan(item,index,'down')"
|
|
|
- @mouseover="handleMouseEnter(index)"
|
|
|
- @mouseleave="handleMouseLeave(index)"
|
|
|
- />
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="sort" v-else></div>
|
|
|
- <div class="openOrClose">
|
|
|
- <span class="planInfo">{{item.name}}</span>
|
|
|
- <!-- <span class="planInfo">{{i.name}}</span> -->
|
|
|
- <div class="switch">
|
|
|
- <el-switch
|
|
|
- v-model="item.status"
|
|
|
- :active-value="1"
|
|
|
- :inactive-value="0"
|
|
|
- active-color="#4BC4D7"
|
|
|
- inactive-color="#BBBBBB"
|
|
|
- ></el-switch>
|
|
|
- </div>
|
|
|
- <span class="planStatus">{{item.status === 1 ? '启用中' : '未启用'}}</span>
|
|
|
- </div>
|
|
|
- <div class="showNum" v-if="item.number">
|
|
|
- <span style="marginRight:8px;">默认显示个数</span>
|
|
|
- <el-select
|
|
|
- v-model="item.number"
|
|
|
- placeholder="请选择"
|
|
|
- size="small"
|
|
|
- :disabled="item.status !== 1 ? true: false"
|
|
|
- >
|
|
|
- <el-option label="1" value="1"></el-option>
|
|
|
- <el-option label="2" value="2"></el-option>
|
|
|
- <el-option label="3" value="3"></el-option>
|
|
|
- <el-option label="4" value="4"></el-option>
|
|
|
- <el-option label="5" value="5"></el-option>
|
|
|
- <el-option label="6" value="6"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- <li
|
|
|
- class="planItem"
|
|
|
- v-if="item.arr.length>0"
|
|
|
- v-for="i in item.arr"
|
|
|
- :key="i.id"
|
|
|
- >
|
|
|
- <div class="sort"></div>
|
|
|
- <div class="openOrClose">
|
|
|
- <span class="planInfo">{{i.name}}</span>
|
|
|
- <div class="switch">
|
|
|
- <el-switch
|
|
|
- v-model="i.status"
|
|
|
- :active-value="1"
|
|
|
- :inactive-value="0"
|
|
|
- active-color="#4BC4D7"
|
|
|
- inactive-color="#BBBBBB"
|
|
|
- ></el-switch>
|
|
|
- </div>
|
|
|
- <span class="planStatus">{{i.status === 1 ? '启用中' : '未启用'}}</span>
|
|
|
- </div>
|
|
|
- <div class="showNum" v-if="item.number">
|
|
|
- <span style="marginRight:8px;">默认显示个数</span>
|
|
|
- <el-select
|
|
|
- v-model="item.number"
|
|
|
- placeholder="请选择"
|
|
|
- size="small"
|
|
|
- :disabled="item.status !== 1 ? true: false"
|
|
|
- >
|
|
|
- <el-option label="1" value="1"></el-option>
|
|
|
- <el-option label="2" value="2"></el-option>
|
|
|
- <el-option label="3" value="3"></el-option>
|
|
|
- <el-option label="4" value="4"></el-option>
|
|
|
- <el-option label="5" value="5"></el-option>
|
|
|
- <el-option label="6" value="6"></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </div>
|
|
|
- </transition>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <div class="title">
|
|
|
- <div class="handleIcon">
|
|
|
- <img src="../../../images/multi.png" alt="医学知识" />
|
|
|
- </div>
|
|
|
- <h4>医学知识</h4>
|
|
|
- <div class="titlwSwitch">
|
|
|
- <el-switch
|
|
|
- v-model="switchMedStatus"
|
|
|
- :active-value="1"
|
|
|
- :inactive-value="0"
|
|
|
- active-color="#4BC4D7"
|
|
|
- inactive-color="#BBBBBB"
|
|
|
- ></el-switch>
|
|
|
- <span class="titlwSwitchStatus">{{switchMedStatus === 1 ? '启用中' : '未启用'}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- <li>
|
|
|
- <div class="title">
|
|
|
- <div class="handleIcon">
|
|
|
- <img src="../../../images/multi.png" alt="医学知识" />
|
|
|
- </div>
|
|
|
- <h4>随访计划</h4>
|
|
|
- <div class="titlwSwitch">
|
|
|
- <el-switch
|
|
|
- v-model="switchFollowStatus"
|
|
|
- :active-value="1"
|
|
|
- :inactive-value="0"
|
|
|
- active-color="#4BC4D7"
|
|
|
- inactive-color="#BBBBBB"
|
|
|
- ></el-switch>
|
|
|
- <span class="titlwSwitchStatus">{{switchFollowStatus === 1 ? '启用中' : '未启用'}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </li>
|
|
|
- </ul>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item>
|
|
|
- <el-button type="primary" @click="onSubmit" :disabled="saveDisable">确定</el-button>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-scrollbar>
|
|
|
-</template>
|
|
|
-<script>
|
|
|
-import api from '@api/cdss.js';
|
|
|
-
|
|
|
-export default {
|
|
|
- name: 'AddPlan',
|
|
|
- data() {
|
|
|
- var numreg = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
|
|
|
- var numreg1 = /^[0-9a-zA-Z_]{1,}$/;
|
|
|
- var validatePass = (rule, value, callback) => {
|
|
|
- if (!numreg.test(value)) {
|
|
|
- callback(new Error('汉字、字母、数字和下划线'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- };
|
|
|
- var validatePass1 = (rule, value, callback) => {
|
|
|
- if (!numreg1.test(value)) {
|
|
|
- callback(new Error('字母、数字和下划线'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- };
|
|
|
- return {
|
|
|
- form: {
|
|
|
- hospitalId: '',
|
|
|
- planName: '',
|
|
|
- planCode: ''
|
|
|
- },
|
|
|
- saveDisable: false, //保存按钮禁止点击
|
|
|
- rules: {
|
|
|
- planName: [
|
|
|
- { required: true, message: '方案名称不能为空', trigger: 'change' },
|
|
|
- { min: 2, max: 30, message: '长度2-30位', trigger: 'blur' },
|
|
|
- { required: true, validator: validatePass, trigger: 'blur' }
|
|
|
- ],
|
|
|
- hospitalId: [
|
|
|
- { required: true, message: '医院名称不能为空', trigger: 'change' }
|
|
|
- // { min: 2, max: 30, message: '长度2-30位', trigger: 'blur' },
|
|
|
- // { required: true, validator: validatePass, trigger: 'blur' }
|
|
|
- ],
|
|
|
- planCode: [
|
|
|
- { required: true, message: '方案编码不能为空', trigger: 'change' },
|
|
|
- { required: true, validator: validatePass1, trigger: 'blur' }
|
|
|
- ]
|
|
|
- },
|
|
|
- planDefaultList: [],
|
|
|
- // hospitalId: '',
|
|
|
- isEdit: false, // 是否处于编辑页面 false--新增 true--编辑
|
|
|
- switchSubStatus: 0, // 辅助信息
|
|
|
- switchMedStatus: 0, // 医学知识
|
|
|
- switchFollowStatus: 0, //随访计划
|
|
|
- isOpenCloseItems: true, // 是否展开方案配置项
|
|
|
- isDownLight: -1,
|
|
|
- isTopLight: -1,
|
|
|
- flag: 1,
|
|
|
- editCount: -1, // 页面会否被编辑 >0被编辑 =0 未编辑
|
|
|
- isSaveSuccess: false, // 是否保存成功
|
|
|
- HospitalInfoList: []
|
|
|
- };
|
|
|
- },
|
|
|
- beforeRouteLeave(to, from, next) {
|
|
|
- console.log(this.editCount, 'this.editCount');
|
|
|
- if (
|
|
|
- (this.editCount > 3 && !this.isSaveSuccess && this.isEdit) ||
|
|
|
- (this.editCount > 1 && !this.isSaveSuccess && !this.isEdit)
|
|
|
- ) {
|
|
|
- // console.log('页面被编辑了');
|
|
|
- this.$alert('还有未保存的内容,确定要退出当前页面吗?', '提示', {
|
|
|
- confirmButtonText: '确定',
|
|
|
- // cancelButtonText: '取消',
|
|
|
- // cancelButtonClass: 'leaveBtn',
|
|
|
- // customClass: 'leaveBox',
|
|
|
- type: 'warning'
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- next();
|
|
|
- })
|
|
|
- .catch(() => {});
|
|
|
- } else {
|
|
|
- next();
|
|
|
- }
|
|
|
- },
|
|
|
- watch: {
|
|
|
- form: {
|
|
|
- handler(newName, oldName) {
|
|
|
- this.editCount++;
|
|
|
- },
|
|
|
- deep: true
|
|
|
- // immediate: true
|
|
|
- },
|
|
|
- planDefaultList: {
|
|
|
- handler(newName, oldName) {
|
|
|
- // console.log(newName,'newName');
|
|
|
- // console.log(oldName,'oldName');
|
|
|
- this.editCount++;
|
|
|
- },
|
|
|
- deep: true,
|
|
|
- immediate: true
|
|
|
- }
|
|
|
- },
|
|
|
- async created() {
|
|
|
- const { isEdit, data } = this.$route.params;
|
|
|
- console.log(data, '编辑页传递的data');
|
|
|
- this._getHospitalInfo(); // 获取医院下拉列表
|
|
|
- // let res = await api.getHospitalInfo(); // 同步获取医院信息
|
|
|
- // this.hospitalId = res.data.data.id;
|
|
|
- if (isEdit) {
|
|
|
- // 编辑页面
|
|
|
- this.isEdit = true;
|
|
|
- this.form.hospitalId = data.hospitalId;
|
|
|
- let params = {
|
|
|
- hospitalId: data.hospitalId,
|
|
|
- id: data.id
|
|
|
- };
|
|
|
- this._getPlanInfoIds(params);
|
|
|
- } else {
|
|
|
- // 新增页面
|
|
|
- this._getDefaultPlans(); // 获取默认配置信息
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- close() {},
|
|
|
- // 获取医院下拉列表
|
|
|
- _getHospitalInfo() {
|
|
|
- api.getHospitalInfo().then(res => {
|
|
|
- if (res.data.code === '0') {
|
|
|
- this.HospitalInfoList = res.data.data;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
- // 方案配置排序
|
|
|
- sortPlan(item, index, type) {
|
|
|
- console.log('排序', item, index, type);
|
|
|
- let tempList = [...this.planDefaultList];
|
|
|
- if (type === 'down') {
|
|
|
- tempList.splice(index + 2, 0, item);
|
|
|
- tempList.splice(index, 1);
|
|
|
- [tempList[index + 1].orderNo, tempList[index].orderNo] = [
|
|
|
- tempList[index].orderNo,
|
|
|
- tempList[index + 1].orderNo
|
|
|
- ];
|
|
|
- this.planDefaultList = tempList;
|
|
|
- // 降序
|
|
|
- // let plan = tempList.find(item => {
|
|
|
- // console.log(item)
|
|
|
- // return item.orderNo === index + 1;
|
|
|
- // });
|
|
|
- // console.log(item);
|
|
|
- // let tempPlan = { ...plan };
|
|
|
- // let planNext = tempList.find(item => {
|
|
|
- // return item.orderNo === index + 2;
|
|
|
- // });
|
|
|
- // let tempPlanNext = { ...planNext };
|
|
|
- // plan = tempPlanNext;
|
|
|
- // plan.orderNo -= 1;
|
|
|
- // planNext = tempPlan;
|
|
|
- // planNext.orderNo += 1;
|
|
|
- // let arr = tempList.map((i, idx) => {
|
|
|
- // if (idx === index) {
|
|
|
- // return { ...plan };
|
|
|
- // } else if (idx === index + 1) {
|
|
|
- // return { ...planNext };
|
|
|
- // } else {
|
|
|
- // return i;
|
|
|
- // }
|
|
|
- // });
|
|
|
- // this.planDefaultList = [...arr];
|
|
|
- } else {
|
|
|
- tempList.splice(index - 1, 0, item);
|
|
|
- tempList.splice(index+1, 1);
|
|
|
- [tempList[index - 1].orderNo, tempList[index].orderNo] = [
|
|
|
- tempList[index].orderNo,
|
|
|
- tempList[index - 1].orderNo
|
|
|
- ];
|
|
|
- this.planDefaultList = tempList;
|
|
|
- // 升序
|
|
|
- // let plan = tempList.find(item => {
|
|
|
- // return item.orderNo === index + 1;
|
|
|
- // });
|
|
|
- // let tempPlan = { ...plan };
|
|
|
- // let planPre = tempList.find(item => {
|
|
|
- // return item.orderNo === index;
|
|
|
- // });
|
|
|
- // let tempPlanPre = { ...planPre };
|
|
|
- // plan = tempPlanPre;
|
|
|
- // plan.orderNo += 1;
|
|
|
- // planPre = tempPlan;
|
|
|
- // planPre.orderNo -= 1;
|
|
|
- // let arr = tempList.map((i, idx) => {
|
|
|
- // if (idx === index) {
|
|
|
- // return { ...plan };
|
|
|
- // } else if (idx === index - 1) {
|
|
|
- // return { ...planPre };
|
|
|
- // } else {
|
|
|
- // return i;
|
|
|
- // }
|
|
|
- // });
|
|
|
- // this.planDefaultList = [...arr];
|
|
|
- }
|
|
|
- },
|
|
|
-
|
|
|
- // 展开列表项
|
|
|
- openPlanItems() {
|
|
|
- this.isOpenCloseItems = !this.isOpenCloseItems;
|
|
|
- },
|
|
|
-
|
|
|
- // 鼠标移入
|
|
|
- handleMouseEnter(index) {
|
|
|
- this.isDownLight = index;
|
|
|
- },
|
|
|
-
|
|
|
- // 鼠标移除
|
|
|
- handleMouseLeave(index) {
|
|
|
- this.isDownLight = -1;
|
|
|
- },
|
|
|
-
|
|
|
- // 鼠标移入
|
|
|
- handleMouseEnter1(index) {
|
|
|
- this.isTopLight = index;
|
|
|
- },
|
|
|
-
|
|
|
- // 鼠标移除
|
|
|
- handleMouseLeave1(index) {
|
|
|
- this.isTopLight = -1;
|
|
|
- },
|
|
|
-
|
|
|
- // 添加 获取默认方案配置
|
|
|
- _getDefaultPlans() {
|
|
|
- api.getDefaultPlans().then(res => {
|
|
|
- // console.log(res, '获取默认的方案配置');
|
|
|
- if (res.data.code === '0') {
|
|
|
- this.planDefaultList =
|
|
|
- res.data.data &&
|
|
|
- res.data.data.planDetailDefault.length !== 0 &&
|
|
|
- res.data.data.planDetailDefault[0].planDetails;
|
|
|
- let planDefaultList = this.planDefaultList.map((item, index) => {
|
|
|
- if (
|
|
|
- item.name == '高危' ||
|
|
|
- item.name == '危急值提醒' ||
|
|
|
- item.name == '其他提醒'
|
|
|
- ) {
|
|
|
- return {
|
|
|
- ismove: false,
|
|
|
- ...item
|
|
|
- };
|
|
|
- } else {
|
|
|
- return {
|
|
|
- arr: [],
|
|
|
- ismove: true,
|
|
|
- ...item
|
|
|
- };
|
|
|
- }
|
|
|
- });
|
|
|
- // this.planDefaultList = JSON.parse(JSON.stringify(planDefaultList)) ;
|
|
|
- planDefaultList
|
|
|
- .slice()
|
|
|
- .reverse()
|
|
|
- .forEach((item, i, arr) => {
|
|
|
- if (
|
|
|
- item.name == '高危' ||
|
|
|
- item.name == '危急值提醒' ||
|
|
|
- item.name == '其他提醒'
|
|
|
- ) {
|
|
|
- planDefaultList.splice(arr.length - 1 - i, 1);
|
|
|
- planDefaultList
|
|
|
- .find(items => {
|
|
|
- return items.name == '开单合理性';
|
|
|
- })
|
|
|
- .arr.unshift(item);
|
|
|
- }
|
|
|
- });
|
|
|
- this.planDefaultList = planDefaultList;
|
|
|
- this.switchSubStatus =
|
|
|
- res.data.data &&
|
|
|
- res.data.data.planDetailDefault.length !== 0 &&
|
|
|
- res.data.data.planDetailDefault[0].status;
|
|
|
- this.switchMedStatus =
|
|
|
- res.data.data &&
|
|
|
- res.data.data.planDetailDefault.length !== 0 &&
|
|
|
- res.data.data.planDetailDefault[1].status;
|
|
|
- this.switchFollowStatus =
|
|
|
- res.data.data &&
|
|
|
- res.data.data.planDetailDefault.length !== 0 &&
|
|
|
- res.data.data.planDetailDefault[2].status;
|
|
|
- }
|
|
|
- });
|
|
|
- },
|
|
|
-
|
|
|
- // 编辑页面 根据id获取方案配置
|
|
|
- async _getPlanInfoIds(params) {
|
|
|
- // 先获取默认的所有方案
|
|
|
- let tempArr = [];
|
|
|
- let newPlan = [];
|
|
|
- let res = await api.getDefaultPlans();
|
|
|
- if (res.data.code === '0') {
|
|
|
- tempArr =
|
|
|
- res.data.data &&
|
|
|
- res.data.data.planDetailDefault.length !== 0 &&
|
|
|
- res.data.data.planDetailDefault[0].planDetails;
|
|
|
- }
|
|
|
- let res1 = await api.getPlanInfoIds(params);
|
|
|
- if (res1.data.code === '0') {
|
|
|
- newPlan = res1.data.data[0].sysSetInfo[0].planDetails;
|
|
|
- this.form.planName = res1.data.data[0].planName;
|
|
|
- this.form.planCode = res1.data.data[0].planCode;
|
|
|
- this.switchSubStatus = res1.data.data[0].sysSetInfo[0].status;
|
|
|
- this.switchMedStatus = res1.data.data[0].sysSetInfo[1].status;
|
|
|
- this.switchFollowStatus = res1.data.data[0].sysSetInfo[2].status;
|
|
|
- // this.planDefaultList = res1.data.data[0].sysSetInfo[0].planDetails;
|
|
|
- }
|
|
|
- let arr = [];
|
|
|
- let arrTemp = [];
|
|
|
- let arrTemp1 = []; // 不同index
|
|
|
- for (var i = 0; i < tempArr.length; i++) {
|
|
|
- arrTemp.push(i);
|
|
|
- }
|
|
|
- for (var i = 0; i < tempArr.length; i++) {
|
|
|
- for (var j = 0; j < newPlan.length; j++) {
|
|
|
- if (tempArr[i].code === newPlan[j].code) {
|
|
|
- arr.push(i);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- arrTemp1 = arr
|
|
|
- .filter(x => arrTemp.indexOf(x) == -1)
|
|
|
- .concat(arrTemp.filter(x => arr.indexOf(x) == -1));
|
|
|
- let endArr = [...newPlan];
|
|
|
- for (var j = 0; j < arrTemp1.length; j++) {
|
|
|
- let temp = tempArr[arrTemp1[j]];
|
|
|
- temp.orderNo = arr.length + j + 1;
|
|
|
- temp.status = 0;
|
|
|
- endArr.push(temp);
|
|
|
- }
|
|
|
- // console.log(endArr,'-=-=-=-=-=');
|
|
|
- this.planDefaultList = endArr;
|
|
|
- let planDefaultList = this.planDefaultList.map((item, index) => {
|
|
|
- if (
|
|
|
- item.name == '高危' ||
|
|
|
- item.name == '危急值提醒' ||
|
|
|
- item.name == '其他提醒'
|
|
|
- ) {
|
|
|
- return {
|
|
|
- ismove: false,
|
|
|
- ...item
|
|
|
- };
|
|
|
- } else {
|
|
|
- return {
|
|
|
- arr: [],
|
|
|
- ismove: true,
|
|
|
- ...item
|
|
|
- };
|
|
|
- }
|
|
|
- });
|
|
|
- planDefaultList
|
|
|
- .slice()
|
|
|
- .reverse()
|
|
|
- .forEach((item, i, arr) => {
|
|
|
- if (
|
|
|
- item.name == '高危' ||
|
|
|
- item.name == '危急值提醒' ||
|
|
|
- item.name == '其他提醒'
|
|
|
- ) {
|
|
|
- planDefaultList.splice(arr.length - 1 - i, 1);
|
|
|
- planDefaultList
|
|
|
- .find(items => {
|
|
|
- return items.name == '开单合理性';
|
|
|
- })
|
|
|
- .arr.unshift(item);
|
|
|
- }
|
|
|
- });
|
|
|
- this.planDefaultList = planDefaultList;
|
|
|
- },
|
|
|
-
|
|
|
- // format处理细项数据
|
|
|
- handleSendData() {
|
|
|
- this.planDefaultList.forEach((item, i) => {
|
|
|
- if(item.name == '开单合理性'){
|
|
|
- item.arr.slice().reverse().forEach(items => {
|
|
|
- if (items.name == '高危' ||items.name == '危急值提醒' ||items.name == '其他提醒') {
|
|
|
- console.log(i)
|
|
|
- this.planDefaultList.splice(i+1, 0, items);
|
|
|
- }
|
|
|
- })
|
|
|
- item.arr = []
|
|
|
- }
|
|
|
- })
|
|
|
- console.log(this.planDefaultList)
|
|
|
- let TempPlanDetail = [];
|
|
|
- TempPlanDetail = this.planDefaultList.map((item, index) => {
|
|
|
- return {
|
|
|
- code: item.code,
|
|
|
- hospitalId: this.form.hospitalId,
|
|
|
- name: item.name,
|
|
|
- number: item.number,
|
|
|
- orderNo: item.orderNo,
|
|
|
- planId: item.planId,
|
|
|
- remark: item.remark,
|
|
|
- status: item.status,
|
|
|
- value: item.value
|
|
|
- };
|
|
|
- });
|
|
|
- return TempPlanDetail;
|
|
|
- console.log(TempPlanDetail, 'TempPlanDetail');
|
|
|
- },
|
|
|
-
|
|
|
- // 处理保存活动信息参数
|
|
|
- _getParams() {
|
|
|
- let params = {
|
|
|
- hospitalId: this.form.hospitalId,
|
|
|
- planCode: this.form.planCode,
|
|
|
- planDetailParent: [
|
|
|
- {
|
|
|
- code: 'auxiliary',
|
|
|
- hospitalId: this.form.hospitalId,
|
|
|
- name: '辅助信息',
|
|
|
- number: 0,
|
|
|
- orderNo: 1,
|
|
|
- planDetailSub: this.handleSendData(),
|
|
|
- status: this.switchSubStatus
|
|
|
- },
|
|
|
- {
|
|
|
- code: 'medical',
|
|
|
- hospitalId: this.form.hospitalId,
|
|
|
- name: '医学知识',
|
|
|
- orderNo: 3,
|
|
|
- planDetailSub: [{}],
|
|
|
- status: this.switchMedStatus
|
|
|
- },
|
|
|
- {
|
|
|
- code: 'followup',
|
|
|
- hospitalId: this.form.hospitalId,
|
|
|
- name: '随访计划',
|
|
|
- orderNo: 4,
|
|
|
- planDetailSub: [{}],
|
|
|
- status: this.switchFollowStatus
|
|
|
- }
|
|
|
- ], // 方案配置信息
|
|
|
- planName: this.form.planName,
|
|
|
- planStatus: 1 // 1 启用 默认启用
|
|
|
- };
|
|
|
- if (this.isEdit) {
|
|
|
- // 编辑状态,需要额外添加ID
|
|
|
- const { data } = this.$route.params;
|
|
|
- params = { ...params, id: data.id };
|
|
|
- }
|
|
|
- return params;
|
|
|
- },
|
|
|
-
|
|
|
- onSubmit() {
|
|
|
- this.$refs.form.validate(valid => {
|
|
|
- if (valid) {
|
|
|
- this.saveDisable = true;
|
|
|
- let params = this._getParams();
|
|
|
- // console.log(params, 'params');
|
|
|
- // return;
|
|
|
- api.savePlanInfoDatas(params).then(res => {
|
|
|
- if (res.data.code === '0') {
|
|
|
- this.$message({
|
|
|
- showClose: true,
|
|
|
- message: '保存成功',
|
|
|
- type: 'success',
|
|
|
- duration: 1000
|
|
|
- });
|
|
|
- this.isSaveSuccess = true; // 保存成功,可正常退出
|
|
|
- this.$router.push({
|
|
|
- name: 'Plan',
|
|
|
- params: Object.assign({}, this.$route.params, {
|
|
|
- currentPage: 1
|
|
|
- })
|
|
|
- });
|
|
|
- } else if (res.data.code === '00020007') {
|
|
|
- // 方案名/方案编码已存在
|
|
|
- this.$message({
|
|
|
- showClose: true,
|
|
|
- message: res.data.msg,
|
|
|
- type: 'error',
|
|
|
- duration: 1000
|
|
|
- });
|
|
|
- }
|
|
|
- this.saveDisable = false;
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.saveDisable = false;
|
|
|
- var div = this.$refs['elscrollbar'].$refs['wrap'];
|
|
|
- this.$nextTick(() => {
|
|
|
- div.scrollTop = 0;
|
|
|
- });
|
|
|
- return false;
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
-};
|
|
|
-</script>
|
|
|
-<style lang="less" scoped>
|
|
|
-.AddPlanWrapper {
|
|
|
- min-width: 940px;
|
|
|
- .AddPlanBox {
|
|
|
- padding: 20px 60px 120px 60px;
|
|
|
- margin: 70px 20px 0 20px;
|
|
|
- background: #fff;
|
|
|
- }
|
|
|
- color: #606266;
|
|
|
- .topBack {
|
|
|
- top: 0;
|
|
|
- }
|
|
|
- .title {
|
|
|
- background-color: #f2f2f2;
|
|
|
- display: flex;
|
|
|
- .handleIcon {
|
|
|
- width: 30px;
|
|
|
- cursor: pointer;
|
|
|
- height: 40px;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- img {
|
|
|
- width: 20px;
|
|
|
- height: 20px;
|
|
|
- }
|
|
|
- .open {
|
|
|
- transform: rotate(180deg);
|
|
|
- }
|
|
|
- .close {
|
|
|
- transform: rotate(0deg);
|
|
|
- }
|
|
|
- }
|
|
|
- .titlwSwitch {
|
|
|
- width: 120px;
|
|
|
- }
|
|
|
- h4 {
|
|
|
- flex: 1;
|
|
|
- }
|
|
|
- .titlwSwitchStatus {
|
|
|
- margin-left: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
- .sub {
|
|
|
- .planItem {
|
|
|
- display: flex;
|
|
|
- .sort {
|
|
|
- width: 60px;
|
|
|
- display: flex;
|
|
|
- .top {
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- width: 30px;
|
|
|
- cursor: pointer;
|
|
|
- img {
|
|
|
- width: 10px;
|
|
|
- height: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- .down {
|
|
|
- width: 30px;
|
|
|
- cursor: pointer;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- img {
|
|
|
- width: 10px;
|
|
|
- height: 14px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .openOrClose {
|
|
|
- display: flex;
|
|
|
- flex: 1;
|
|
|
- .planInfo {
|
|
|
- width: 140px;
|
|
|
- }
|
|
|
- .switch {
|
|
|
- }
|
|
|
- .planStatus {
|
|
|
- margin-left: 16px;
|
|
|
- }
|
|
|
- }
|
|
|
- .showNum {
|
|
|
- display: flex;
|
|
|
- width: 160px;
|
|
|
- /deep/.el-input--small {
|
|
|
- width: 60px;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- .el-button {
|
|
|
- float: right;
|
|
|
- }
|
|
|
- .plus-icon-enter-active {
|
|
|
- transition: all 0.8s;
|
|
|
- }
|
|
|
- .plus-icon-enter {
|
|
|
- opacity: 0;
|
|
|
- margin-top: 12px;
|
|
|
- }
|
|
|
- .plus-icon-leave-active {
|
|
|
- transition: all 0.8s;
|
|
|
- }
|
|
|
- .plus-icon-leave-active {
|
|
|
- opacity: 0;
|
|
|
- margin-top: 12px;
|
|
|
- }
|
|
|
-}
|
|
|
-.leaveBox {
|
|
|
- /deep/ .leaveBtn {
|
|
|
- // margin-right: 46px;
|
|
|
- background-color: #d7d7d7 !important;
|
|
|
- border-color: transparent;
|
|
|
- }
|
|
|
-}
|
|
|
-.selectMedicine {
|
|
|
- /deep/ .el-input__suffix-inner {
|
|
|
- position: relative;
|
|
|
- top: -1px;
|
|
|
- }
|
|
|
- /deep/ .el-icon-circle-close {
|
|
|
- position: relative;
|
|
|
- top: -2px;
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|