|
|
<template> <div class="box"> <div style="position: relative"> <div class="middlebox"> <div class="contenttitle"> 基础资料 / <span class="contenttitleBold">第三方接口</span> </div> <!-- <div class="seachinput"> <el-select v-model="department" placeholder="请搜索" filterable :filter-method="remoteMethodes" default-first-option @change="quckDepartments" clearable size="small" > <el-option v-for="item in quckDepartment" :key="item.id" :label="item.displayName" :value="item.id" > </el-option> </el-select> </div> --> </div> <div style="display: block; margin-top: 7px; margin-right: 110px"> <div style="background-color: #fff; padding: 15px; border-radius: 8px"> <div id="printTest"> <el-table :data="tableData" row-key="id" class="el-table__body-wrapper tbody" @row-click="rowick" highlight-current-row :height="window.pageHeight < 600 ? 480 : window.pageHeight - 130" ref="tableData" tooltip-effect="light" > <el-table-column prop="id" label="编号" width="300"> </el-table-column> <el-table-column prop="displayName" label="名称" width=""> </el-table-column> <el-table-column prop="parmValue" label="配置参数" width="" show-overflow-tooltip > </el-table-column> <el-table-column prop="medicalCenterId" label="体检中心"> <template slot-scope="scope"> <div> {{ getTreeName( medicalCenter, scope.row.medicalCenterId ) }} </div> </template> </el-table-column> <el-table-column prop="thirdInterfaceType" label="接口类型" width="" > <template slot-scope="scope"> <div> {{ dddw(thirdInterfaceType, "id", scope.row.thirdInterfaceType, "displayName") }} </div> </template> </el-table-column> <el-table-column prop="isActive" label="启用" width=""> <template slot-scope="scope"> <el-checkbox v-model="scope.row.isActive" true-label="Y" false-label="N" disabled ></el-checkbox> </template> </el-table-column> <el-table-column prop="creatorName" label="创建者" width=""> </el-table-column> <el-table-column prop="lastModifierName" label="修改者" width=""> </el-table-column> <!-- <el-table-column prop="simpleCode" label="简称" width="180"> </el-table-column> --> <el-table-column prop="creationTime" label="创建时间" width="200"> <template slot-scope="scope"> {{ scope.row.creationTime | dateFormat }} </template> </el-table-column> <el-table-column prop="lastModificationTime" label="修改时间" width="200" > <template slot-scope="scope"> {{ scope.row.lastModificationTime | dateFormat }} </template> </el-table-column> <el-table-column label="操作" width="" align="center"> <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=" width: 1rem; height: 1rem; color: rgb(113, 113, 113); " ></i> </el-tag> </template> </el-table-column> </el-table> </div> </div> </div> <!-- 按钮区域 --> <div style=" margin-left: 10px; margin-top: 3%; position: absolute; top: 0; right: 0; " > <el-button type="" @click="add" class="commonbutton">新增</el-button> <div style="margin-top: 10px"> <el-button type="" @click="edlits" class="commonbutton" >编辑</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="deleteid" class="deleteButton" >删除</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="topping" class="commonbutton" >置顶</el-button > </div> <div style="margin-top: 10px"> <el-button type="" @click="toppings" class="commonbutton" >置底</el-button > </div> <div style="margin-top: 10px"> <el-button type="" :disabled="isshow" @click="assertion" class="commonbutton" >排序</el-button > </div> <div style="margin-top: 10px"> <el-button type="" :disabled="isshow" @click="cancellation" class="commonbutton" >取消</el-button > </div> </div> <!-- <div class="cancelorconfirm"></div> --> <!-- 新增或者编辑弹框 -->
<el-dialog :title="title == 1 ? '新增' : '修改'" :visible.sync="dialogVisible" width="90%" :close-on-click-modal="false" fullscreen > <el-form ref="form" :model="form" label-width="80px"> <el-row> <el-col :span="6"> <el-form-item label="编号"> <el-input v-model="form.id" style="width: 100%" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="名称"> <el-input ref="refinput" v-model="form.displayName" style="width: 100%" size="small" ></el-input> </el-form-item> </el-col> <el-col :span="5"> <el-form-item label="体检中心"> <el-cascader v-model="form.medicalCenterId" :options="medicalCenter" ref="example" popper-class="example" @change="ischangs" :props="{ value: 'id', label: 'displayName', children: 'treeChildren', checkStrictly: true, expandTrigger: 'hover', }" size="small" > </el-cascader> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="接口类型"> <el-select v-model="form.thirdInterfaceType" placeholder="请选择接口类型" size="small" > <el-option v-for="item in thirdInterfaceType" :key="item.id" :label="item.displayName" :value="item.id"></el-option> </el-select> </el-form-item> </el-col> <el-col :span="2"> <el-form-item label="启用"> <el-checkbox v-model="form.isActive" true-label="Y" false-label="N" ></el-checkbox> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="24"> <el-form-item label="配置参数"> <!-- <el-input v-model="form.parmValue" size="small" ></el-input> --> <el-input type="textarea" v-model="form.parmValue" :autosize="{ minRows: 23, maxRows: 23 }" ></el-input> </el-form-item> </el-col> </el-row> <el-row> <el-divider></el-divider> <el-col :span="4" style="margin-left: 15px"> <el-form-item label="创建者"> <el-input v-model="form.creatorName" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="创建时间"> <el-input :value="form.creationTime | dateFormat" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="修改者"> <el-input v-model="form.lastModifierName" disabled size="small" ></el-input> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="修改时间"> <el-input style="width: 85%" :value="form.lastModificationTime | dateFormat" disabled size="small" ></el-input> </el-form-item> </el-col> </el-row> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false" class="difference" >取 消</el-button > <el-button type="primary" @click="addoredit" class="commonbutton" >确 定</el-button > </span> </el-dialog> </div> </div></template><script>import Sortable, { get } from "sortablejs";import { mapState } from "vuex";import { examinationlist, newphysical, listsid, Modifiers, deletecol, medicaltopbottom, examinationdragging,} from "../../request/systemapi";import { getapi, postapi, putapi } from "@/api/api";import { dddw } from "../../utlis/proFunc";export default { data() { return { isshow: true, dialogVisible: false, title: 1, form: { displayName: "", parmValue: "", thirdInterfaceType: "", medicalCenterId: "", isActive: "Y", }, tableData: [], initTableData: [], curRow: {}, department: "", quckDepartment: [], medicalCenter: [], thirdInterfaceType:[{ id:"01", displayName:"LIS申请" }, { id:"02", displayName:"收费申请" }, { id:"03", displayName:"检验结果导入" }, { id:"04", displayName:"Pacs结果导入" }, { id:"05", displayName:"人员导入" }] } }, created() { this.getmedicalCenter(); this.getlist(); }, mounted() { this.rowDrop(); }, computed: { ...mapState(["window"]), }, methods: { dddw, getTreeName(list, id) { for (let i = 0; i < list.length; i++) { if (list[i].id === id) { return list[i].displayName; } else if (list[i].treeChildren && list[i].treeChildren.length > 0) { let res = this.getTreeName(list[i].treeChildren, id); if (res) { return res; } } } }, ischangs(v) { if (v.length > 1) { this.form.medicalCenterId = this.form.medicalCenterId.slice(-1)[0]; } else { this.form.medicalCenterId = this.form.medicalCenterId[0]; } this.$refs.example.toggleDropDownVisible(); }, //点击列表通过id查询
rowick(row) { this.curRow = { ...row }; // listsid(row.id).then((res) => {
// if(res.code!=-1){
// this.curRow = { ...res.data };
// }
// // this.form = res.data;
// });
}, remoteMethodes(keyWords) { if (keyWords) { this.quckDepartment = []; this.initTableData.forEach((item) => { if ( item.displayName.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 || item.simpleCode.toLowerCase().indexOf(keyWords.toLowerCase()) > -1 // || item.shortName.toLowerCase().indexOf(keyWords.toLowerCase()) > - 1
) { this.quckDepartment.push(item); } }); } else { this.quckDepartment = [...this.initTableData]; } }, quckDepartments(e) { if (e) { this.tableData.forEach((item, index) => { if (e == item.id) { this.$refs["tableData"].setCurrentRow(item); this.rowick(item); this.searchup(item, index); } }); } else { this.remoteMethodes(); } }, searchup(data, index) { // if (index > 3) {
const targetTop = this.$refs["tableData"].$el .querySelectorAll(".el-table__body tr") [index - 1].getBoundingClientRect().top; const containerTop = this.$refs["tableData"].$el .querySelector(".el-table__body") .getBoundingClientRect().top; const scrollParent = this.$refs["tableData"].$el.querySelector( ".el-table__body-wrapper" ); scrollParent.scrollTop = targetTop - containerTop; // }
}, cancellation() { this.$message.info("取消操作"); this.isshow = true; this.getlist(); }, //确定排序
assertion() { const result = []; this.tableData.forEach((item, index) => { // index 从0开始的, 你的displayOrder从大到小排
// const currentDisplayOrder = this.tableData.length -1
// const currentDisplayOrder = this.initTableData[index].displayOrder;
// if (item.displayOrder != currentDisplayOrder) {
// 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
result.push({ id: item.id, displayOrder: index + 1 }); // }
}); putapi("/api/app/ThirdInterface/UpdateSortMany", { itemList: result, }).then((res) => { if (res.code != -1) { this.getlist(); this.isshow = true; //this.$message.success("操作成功");
} }); }, //初始化
rowDrop() { this.$nextTick(() => { const tbody = document.querySelector(".el-table__body-wrapper tbody"); const _this = this; Sortable.create(tbody, { handle: ".move", animation: 300, // 指定父元素下可被拖拽的子元素
// draggable: ".module-manager .el-table__row",
onChoose({ oldIndex }) { _this.$refs["tableData"].setCurrentRow(_this.tableData[oldIndex]); _this.rowick(_this.tableData[oldIndex]); }, onEnd({ newIndex, oldIndex }) { // console.log(arr);
_this.isshow = false; const currRow = _this.tableData.splice(oldIndex, 1)[0]; _this.tableData.splice(newIndex, 0, currRow); _this.tableData.map((item, index) => { if (index == newIndex && index == oldIndex) { // console.log(item, "新数据");
} else if (index == oldIndex) { } else if (index == newIndex) { } }); }, }); }); }, //置底置顶
topping() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择操作的数据"); } else { putapi( `/api/app/ThirdInterface/UpdateManySort?id=${this.form.id}&SortType=1` ).then((res) => { if (res.code != -1) { this.getlist(); //this.$message.success("操作成功");
} }); } }, toppings() { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择操作的数据"); } else { putapi( `/api/app/ThirdInterface/UpdateManySort?id=${this.form.id}&SortType=2` ).then((res) => { if (res.code != -1) { this.getlist(); //this.$message.success("操作成功");
} }); } }, //删除
deleteid(row) { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择删除的数据"); } else { this.$confirm("是否确认删除,是否继续", "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", cancelButtonClass: "difference", confirmButtonClass: "commonbutton", }) .then(() => { postapi("/api/app/ThirdInterface/Delete", { id: this.curRow.id, }).then((res) => { if (res.code != -1) { this.curRow = this.$options.data().curRow; this.getlist(); //this.$message.success("删除成功");
} }); }) .catch(() => {}); // deletecol(this.form.id).then((res) => {
// console.log("删除成功");
// this.getlist();
// });
} }, //edlits编辑弹框
edlits(row) { this.form = { ...this.curRow }; if (this.form.id == undefined) { this.$message.warning("请选择操作的数据"); } else { this.title = 2; this.dialogVisible = true; } }, //确定新增或者修改
addoredit() { if (this.form.displayName == undefined || this.form.displayName == "") { this.$message.warning("请输入名称"); } else if ( this.form.medicalCenterId == undefined || this.form.medicalCenterId == "" ) { this.$message.warning("请选择体检中心"); } else if ( this.form.thirdInterfaceType == undefined || this.form.thirdInterfaceType == "" ) { this.$message.warning("请选择接口类型"); } else { if (this.title == 1) { postapi("/api/app/ThirdInterface/Create", { displayName: this.form.displayName, parmValue: this.form.parmValue, thirdInterfaceType: this.form.thirdInterfaceType, medicalCenterId: this.form.medicalCenterId, isActive: this.form.isActive, }).then((res) => { if (res.code != -1) { this.getlist(); this.dialogVisible = false; //this.$message.success("新增成功");
} }); } else if (this.title == 2) { postapi("/api/app/ThirdInterface/Update", { id: this.form.id, displayName: this.form.displayName, parmValue: this.form.parmValue, thirdInterfaceType: this.form.thirdInterfaceType, medicalCenterId: this.form.medicalCenterId, isActive: this.form.isActive, }).then((res) => { if (res.code != -1) { this.curRow={...res.data} this.getlist(); this.dialogVisible = false; //this.$message.success("修改成功");
} }); } } }, //新增弹框
add() { this.dialogVisible = true; this.title = 1; this.form = this.$options.data().form; this.$nextTick(() => { this.$refs.refinput.focus(); }); }, //
getmedicalCenter() { getapi("/api/app/organization-units/by-code-all").then((res) => { this.medicalCenter = [...res.data]; }); }, getlist() { postapi("/api/app/ThirdInterface/GetList").then((res) => { if (res.code != -1) { this.initTableData = [...res.data]; this.tableData = res.data; // this.quckDepartment=[...res.data.items]
} }); }, },};</script><style scoped>@import "../../assets/css/global_button.css";@import "../../assets/css/global_dialog.css";@import "../../assets/css/global_table.css";@import "../../assets/css/global_form.css";@import "../../assets/css/global_input.css";@import "../../assets/css/global.css";.box { display: flex; flex-direction: column;}:deep .el-form-item { margin-bottom: 14px;}/* 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;}.seachinput { width: 250px; margin-right: 110px;}:deep .seachinput .el-select { width: 100%;}:deep .el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { background-color: #409eff !important; border-color: #409eff !important;}</style>
|