6 changed files with 517 additions and 46 deletions
-
BINpublic/pic/egSignMan.png
-
132src/components/common/AcceptTemplate.vue
-
6src/router/index.js
-
369src/views/basic-dictionary/acceptTempPlateList.vue
-
4src/views/doctorCheck/resultImport.vue
-
52src/views/fee-settings/Asbitem.vue
|
After Width: 50 | Height: 25 | Size: 4.1 KiB |
132
src/components/common/AcceptTemplate.vue
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,369 @@ |
|||||
|
<template> |
||||
|
<div class="box"> |
||||
|
<div style="position: relative"> |
||||
|
<div class="middlebox"> |
||||
|
<div class="contenttitle"> |
||||
|
基础资料 / |
||||
|
<span class="contenttitleBold">知情同意书模板</span> |
||||
|
</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" |
||||
|
@row-dblclick="dblClick" highlight-current-row |
||||
|
:height="window.pageHeight < 600 ? 480 : window.pageHeight - 130" ref="tableData"> |
||||
|
<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="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"> |
||||
|
</el-table-column> |
||||
|
<el-table-column prop="lastModificationTime" label="修改时间" width="200"> |
||||
|
</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="btnAdd" class="commonbutton">新增</el-button> |
||||
|
<div style="margin-top: 10px"> |
||||
|
<el-button type="" @click="btnEdit" class="commonbutton">编辑</el-button> |
||||
|
</div> |
||||
|
<div style="margin-top: 10px"> |
||||
|
<el-button type="" @click="btnDel" 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> |
||||
|
<!-- 模板设计 --> |
||||
|
<el-dialog title="模板设计" :visible.sync="dialogWin.acceptTemplate" :append-to-body="true" |
||||
|
:close-on-click-modal="false" fullscreen> |
||||
|
<AcceptTemplate :refParams="acceptTemplateParams" :refFun="getlist"/> |
||||
|
</el-dialog> |
||||
|
</div> |
||||
|
</template> |
||||
|
<script> |
||||
|
import Sortable from "sortablejs"; |
||||
|
import { mapState } from "vuex"; |
||||
|
import { |
||||
|
examinationlist, |
||||
|
newphysical, |
||||
|
listsid, |
||||
|
Modifiers, |
||||
|
deletecol, |
||||
|
medicaltopbottom, |
||||
|
examinationdragging, |
||||
|
} from "../../request/systemapi"; |
||||
|
import { postapi } from "@/api/api"; |
||||
|
import AcceptTemplate from "@/components/common/AcceptTemplate.vue"; |
||||
|
|
||||
|
export default { |
||||
|
components: { |
||||
|
AcceptTemplate |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
isshow: true, |
||||
|
|
||||
|
tableData: [], |
||||
|
initTableData: [], |
||||
|
curRow: {}, |
||||
|
|
||||
|
clickTime1: 0, |
||||
|
clickTime2: 0, |
||||
|
|
||||
|
// 知情同意书参数 |
||||
|
acceptTemplateParams: { |
||||
|
id: '', // 模板ID |
||||
|
brushTimes: 0, //控制刷新 |
||||
|
}, |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.getlist(); |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.rowDrop(); |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapState(["window","dialogWin"]), |
||||
|
}, |
||||
|
methods: { |
||||
|
|
||||
|
// 知情同意书模板 |
||||
|
dispAcceptTemplate() { |
||||
|
this.dialogWin.acceptTemplate = true |
||||
|
//this.acceptTemplateParams.id = this.curRow.id || '' |
||||
|
this.acceptTemplateParams.brushTimes++ |
||||
|
}, |
||||
|
|
||||
|
//点击列表通过id查询 |
||||
|
rowick(row) { |
||||
|
this.clickTime1 = new Date().getTime(); |
||||
|
setTimeout(() => { |
||||
|
if (this.clickTime1 > this.clickTime2) { |
||||
|
this.curRow = { ...row }; |
||||
|
} |
||||
|
}, 400); |
||||
|
}, |
||||
|
dblClick(row) { |
||||
|
this.clickTime2 = new Date().getTime(); |
||||
|
this.curRow = { ...row }; |
||||
|
this.btnEdit() |
||||
|
}, |
||||
|
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 }); |
||||
|
// } |
||||
|
}); |
||||
|
examinationdragging({ 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 { |
||||
|
medicaltopbottom(this.form.id, 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 { |
||||
|
medicaltopbottom(this.form.id, 2).then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.getlist(); |
||||
|
//this.$message.success('操作成功') |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
}, |
||||
|
|
||||
|
//删除 |
||||
|
btnDel() { |
||||
|
this.form = { ...this.curRow }; |
||||
|
if (this.form.id == undefined) { |
||||
|
this.$message.warning("请选择删除的数据"); |
||||
|
} else { |
||||
|
this.$confirm("是否确认删除,是否继续", "提示", { |
||||
|
confirmButtonText: "确定", |
||||
|
cancelButtonText: "取消", |
||||
|
type: "warning", |
||||
|
cancelButtonClass: "difference", |
||||
|
confirmButtonClass: "commonbutton" |
||||
|
}) |
||||
|
.then(() => { |
||||
|
deletecol(this.form.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(); |
||||
|
// }); |
||||
|
} |
||||
|
}, |
||||
|
//btnEdit编辑弹框 |
||||
|
btnEdit() { |
||||
|
if(!this.curRow?.id){ |
||||
|
this.$message.warning({showClose:true,message:'没有选择操作的模板'}) |
||||
|
return |
||||
|
} |
||||
|
this.acceptTemplateParams.id = this.curRow.id |
||||
|
this.dispAcceptTemplate() |
||||
|
}, |
||||
|
|
||||
|
//新增弹框 |
||||
|
btnAdd() { |
||||
|
this.acceptTemplateParams.id = '' |
||||
|
this.dispAcceptTemplate() |
||||
|
}, |
||||
|
|
||||
|
// |
||||
|
getlist(id) { |
||||
|
postapi('/api/app/InformedConsentTemplate/GetList') |
||||
|
.then(res => { |
||||
|
if (res.code > -1) { |
||||
|
this.tableData = res.data; |
||||
|
} |
||||
|
}) |
||||
|
}, |
||||
|
}, |
||||
|
}; |
||||
|
</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%; |
||||
|
} |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue