10 changed files with 914 additions and 115 deletions
-
6src/router/index.js
-
400src/views/Home.vue
-
586src/views/basic-dictionary/FieldComparison.vue
-
3src/views/basic-dictionary/ThirdPartyInterfaces.vue
-
9src/views/workload/deskwork.vue
-
5src/views/workload/directordoctor.vue
-
5src/views/workload/doctorstaionworkload.vue
-
5src/views/workload/examinedoctor.vue
-
5src/views/workload/peisworkload.vue
-
5src/views/workload/registrar.vue
@ -0,0 +1,586 @@ |
|||||
|
<template> |
||||
|
<div class="box"> |
||||
|
<div> |
||||
|
<div class="middlebox"> |
||||
|
<div class="contenttitle"> |
||||
|
常用设置 / |
||||
|
<span class="contenttitleBold">字段对照设置</span> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div style="display: flex; margin-top: 7px"> |
||||
|
<div |
||||
|
:style=" |
||||
|
'width: 208px;overflow: scroll;height:' + |
||||
|
(window.pageHeight < 600 ? 505 : window.pageHeight - 100) + |
||||
|
'px;background-color: #fff; border-radius: 8px' |
||||
|
" |
||||
|
> |
||||
|
<div style="margin-top: 10px"> |
||||
|
<el-tree |
||||
|
:data="itemTypeId" |
||||
|
:props="treeprops" |
||||
|
@node-click="treeclick" |
||||
|
node-key="id" |
||||
|
ref="itemType" |
||||
|
highlight-current |
||||
|
auto-expand-parent |
||||
|
> |
||||
|
<span class="custom-tree-node" slot-scope="{ node, data }"> |
||||
|
<div> |
||||
|
<span class="treeicons"> |
||||
|
<!-- <i |
||||
|
class="el-icon-document-remove" |
||||
|
v-if="data.parentId == null" |
||||
|
></i> --> |
||||
|
<img |
||||
|
style="width: 20px; height: 20px; vertical-align: sub" |
||||
|
src="@/assets/images/order.png" |
||||
|
v-if="data.parentId == null" |
||||
|
/> |
||||
|
</span> |
||||
|
<span |
||||
|
:class="data.parentId == null ? 'maxtitle' : 'mintitle'" |
||||
|
>{{ node.label }}</span |
||||
|
> |
||||
|
</div> |
||||
|
</span> |
||||
|
</el-tree> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div style="display: block"> |
||||
|
<div style="margin-left: 15px; display: flex; flex-direction: column"> |
||||
|
<div style="display: flex; margin-bottom: 15px"> |
||||
|
<div |
||||
|
:style=" |
||||
|
'width:' + |
||||
|
(window.pageWidth - 200 - 110 - 50 - 14) + |
||||
|
'px;padding: 15px;background-color: #fff;border-radius: 8px;' |
||||
|
" |
||||
|
> |
||||
|
<div class="seachinput"> |
||||
|
<span>搜索:</span> |
||||
|
<el-select |
||||
|
v-model="department" |
||||
|
placeholder="请搜索" |
||||
|
filterable |
||||
|
:filter-method="remoteMethodes" |
||||
|
default-first-option |
||||
|
@change="quckDepartments" |
||||
|
clearable |
||||
|
size="small" |
||||
|
style="width: 300px" |
||||
|
popper-class="selectCls" |
||||
|
:popper-append-to-body="false" |
||||
|
> |
||||
|
<div |
||||
|
:style="`padding: 5px 20px;display: flex;border-bottom: 1px solid #EBEEF5;position: absolute;top: 6px;`" |
||||
|
class="header" |
||||
|
> |
||||
|
<!-- <span |
||||
|
v-for="(item, index) in AppColumns" |
||||
|
:key="index" |
||||
|
style="width: 300px" |
||||
|
>{{ item.name }}</span |
||||
|
> --> |
||||
|
<div style="width: 300px;padding: 0 2px;">编码</div> |
||||
|
<div style="width: 300px;padding: 0 2px;">名称</div> |
||||
|
</div> |
||||
|
<el-option |
||||
|
v-for="item in quckDepartment" |
||||
|
:key="item.codeValue" |
||||
|
:label="item.displayName" |
||||
|
:value="item.codeValue" |
||||
|
> |
||||
|
<div |
||||
|
:style="`display:flex;zoom:1border-bottom: 1px solid #EBEEF5;padding: 6px 0;`" class="coniter" |
||||
|
> |
||||
|
<!-- <div v-for="(items, index) in AppColumns" :key="index"> --> |
||||
|
<span |
||||
|
style="width: 300px;flex-shrink: 0;display:inline-block;" |
||||
|
class="selectTd" |
||||
|
>{{ item.codeValue }}</span |
||||
|
> |
||||
|
<span |
||||
|
style="width: 300px;flex-shrink: 0;display:inline-block;" |
||||
|
class="selectTd" |
||||
|
>{{ item.displayName }}</span |
||||
|
> |
||||
|
</div> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="dataList" |
||||
|
width="100%" |
||||
|
:height=" |
||||
|
window.pageHeight < 600 |
||||
|
? 210 |
||||
|
: Math.floor((window.pageHeight - 250) / 2) |
||||
|
" |
||||
|
row-key="id" |
||||
|
highlight-current-row |
||||
|
ref="dataList" |
||||
|
@row-click="rowick" |
||||
|
> |
||||
|
<el-table-column |
||||
|
v-for="(item, index) in AppColumns" |
||||
|
:key="index" |
||||
|
:prop="item.column" |
||||
|
:label="item.name" |
||||
|
align="left" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
<!-- <div style="margin-left: 10px"> |
||||
|
<el-button type="" class="commonbutton">保存</el-button> |
||||
|
</div> --> |
||||
|
</div> |
||||
|
<div style="display: flex"> |
||||
|
<div |
||||
|
:style=" |
||||
|
'width:' + |
||||
|
(window.pageWidth - 200 - 110 - 50 - 14) + |
||||
|
'px;padding: 15px;background-color: #fff;border-radius: 8px;' |
||||
|
" |
||||
|
> |
||||
|
<div class="seachinput"> |
||||
|
<span>搜索:</span> |
||||
|
<el-select |
||||
|
v-model="flitvalues" |
||||
|
placeholder="请搜索" |
||||
|
filterable |
||||
|
default-first-option |
||||
|
clearable |
||||
|
size="small" |
||||
|
style="width: 300px" |
||||
|
popper-class="selectCls" |
||||
|
:popper-append-to-body="false" |
||||
|
@change="selectitem" |
||||
|
:filter-method="remoteMethods" |
||||
|
value-key="id" |
||||
|
> |
||||
|
<div |
||||
|
:style="`padding: 5px 20px;display: flex;border-bottom: 1px solid #EBEEF5;position: absolute;top: 6px;`" |
||||
|
class="header" |
||||
|
> |
||||
|
<!-- <span |
||||
|
v-for="(item, index) in InterfaceColumns" |
||||
|
:key="index" |
||||
|
style="width: 300px" |
||||
|
>{{ item.name }}</span |
||||
|
> --> |
||||
|
<div style="width: 300px;padding: 0 2px;">编码</div> |
||||
|
<div style="width: 300px;padding: 0 2px;">名称</div> |
||||
|
</div> |
||||
|
<el-option |
||||
|
v-for="item in filetelists" |
||||
|
:key="item.codeValue" |
||||
|
:label="item.displayName" |
||||
|
:value="item.codeValue" |
||||
|
> |
||||
|
<div |
||||
|
:style="`display:flex;zoom:1border-bottom: 1px solid #EBEEF5;padding: 6px 0;`" |
||||
|
class="coniter" |
||||
|
> |
||||
|
<span |
||||
|
style="width: 300px;flex-shrink: 0;display:inline-block;" |
||||
|
class="selectTd" |
||||
|
v-if="item.codeValue" |
||||
|
>{{ item.codeValue }}</span |
||||
|
> |
||||
|
<span |
||||
|
style="width: 300px;flex-shrink: 0;display:inline-block;" |
||||
|
class="selectTd" |
||||
|
v-if="item.displayName" |
||||
|
>{{ item.displayName }}</span |
||||
|
> |
||||
|
</div> |
||||
|
</el-option> |
||||
|
</el-select> |
||||
|
</div> |
||||
|
<el-table |
||||
|
:data="cardBillList" |
||||
|
width="100%" |
||||
|
:height=" |
||||
|
window.pageHeight < 600 |
||||
|
? 210 |
||||
|
: Math.floor((window.pageHeight - 260) / 2) |
||||
|
" |
||||
|
row-key="id" |
||||
|
highlight-current-row |
||||
|
ref="cardBillList" |
||||
|
@row-click="removeAsbItem" |
||||
|
> |
||||
|
<el-table-column |
||||
|
v-for="(item, index) in InterfaceColumns" |
||||
|
:key="index" |
||||
|
:prop="item.column" |
||||
|
:label="item.name" |
||||
|
align="left" |
||||
|
> |
||||
|
</el-table-column> |
||||
|
</el-table> |
||||
|
</div> |
||||
|
<div style="margin-left: 10px"> |
||||
|
<el-button type="" @click="save" class="commonbutton">保存</el-button> |
||||
|
<div style="margin-top: 10px"> |
||||
|
<el-button |
||||
|
type="" |
||||
|
@click="deleteid" |
||||
|
class="deleteButton" |
||||
|
>删除</el-button |
||||
|
> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
import { mapState, mapActions } from "vuex"; |
||||
|
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
||||
|
import { deepCopy, dddw, arrayExistObj } from "@/utlis/proFunc"; |
||||
|
export default { |
||||
|
data() { |
||||
|
return { |
||||
|
dataList: [], |
||||
|
initTableData: [], |
||||
|
quckDepartment: [], |
||||
|
cardBillList: [], |
||||
|
filetelists: [], |
||||
|
filetelistes: [], |
||||
|
flitvalues: "", |
||||
|
department: "", |
||||
|
itemTypeId: [], |
||||
|
treeprops: { |
||||
|
label: "displayName", |
||||
|
value: "id", |
||||
|
children: "treeChildren", |
||||
|
}, |
||||
|
initItemTypeId: "", |
||||
|
InterfaceColumns: [], |
||||
|
AppColumns: [], |
||||
|
curRow: {}, |
||||
|
curRows: {}, |
||||
|
}; |
||||
|
}, |
||||
|
created() { |
||||
|
this.getlist(); |
||||
|
}, |
||||
|
computed: { |
||||
|
...mapState(["window", "dict"]), |
||||
|
}, |
||||
|
methods: { |
||||
|
save(){ |
||||
|
if (!this.initItemTypeId) { |
||||
|
return this.$message.warning("请先选择数据接口"); |
||||
|
} |
||||
|
if (!this.curRow || !this.curRow.codeValue) { |
||||
|
return this.$message.warning("请先选择本系统数据"); |
||||
|
} |
||||
|
if (!this.cardBillList || !this.cardBillList.length>0) { |
||||
|
return this.$message.warning("请先对照第三方数据"); |
||||
|
} |
||||
|
console.log('对照成功') |
||||
|
}, |
||||
|
deleteid(){ |
||||
|
if (!this.initItemTypeId) { |
||||
|
return this.$message.warning("请先选择数据接口"); |
||||
|
} |
||||
|
if (!this.curRow || !this.curRow.codeValue) { |
||||
|
return this.$message.warning("请先选择本系统数据"); |
||||
|
} |
||||
|
if (!this.curRows || !this.curRows.codeValue) { |
||||
|
return this.$message.warning("请先选择要删除的第三方数据"); |
||||
|
} |
||||
|
this.$confirm("此操作将删除该记录, 是否继续?", "提示", { |
||||
|
confirmButtonText: "是", |
||||
|
cancelButtonText: "否", |
||||
|
type: "warning", |
||||
|
cancelButtonClass: "difference", |
||||
|
confirmButtonClass: "commonbutton", |
||||
|
}) |
||||
|
.then(() => { |
||||
|
let lfind = arrayExistObj(this.cardBillList, "codeValue", this.curRows.codeValue); |
||||
|
if (lfind > -1){ |
||||
|
this.cardBillList.splice(lfind, 1) |
||||
|
this.curRows=this.$options.data.curRows |
||||
|
this.$refs["cardBillList"].setCurrentRow(""); |
||||
|
} |
||||
|
}) |
||||
|
.catch((err) => { |
||||
|
if (err == "cancel") { |
||||
|
this.$message.info("已取消操作"); |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
removeAsbItem(row){ |
||||
|
this.curRows={...row} |
||||
|
}, |
||||
|
searchup(data, index) { |
||||
|
this.$nextTick(() => { |
||||
|
if (index > 3) { |
||||
|
const targetTop = this.$refs["dataList"].$el |
||||
|
.querySelectorAll(".el-table__body tr") |
||||
|
[index - 1].getBoundingClientRect().top; |
||||
|
const containerTop = this.$refs["dataList"].$el |
||||
|
.querySelector(".el-table__body") |
||||
|
.getBoundingClientRect().top; |
||||
|
const scrollParent = this.$refs["dataList"].$el.querySelector( |
||||
|
".el-table__body-wrapper" |
||||
|
); |
||||
|
scrollParent.scrollTop = targetTop - containerTop; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
quckDepartments(e) { |
||||
|
if (e) { |
||||
|
this.dataList.forEach((item, index) => { |
||||
|
if (e == item.codeValue) { |
||||
|
this.$refs["dataList"].setCurrentRow(item); |
||||
|
this.rowick(item); |
||||
|
this.searchup(item, index); |
||||
|
} |
||||
|
}); |
||||
|
} else { |
||||
|
this.remoteMethodes(); |
||||
|
} |
||||
|
}, |
||||
|
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]; |
||||
|
} |
||||
|
}, |
||||
|
selectitem(v) { |
||||
|
if (v) { |
||||
|
if (this.curRow.codeValue == undefined || this.curRow.codeValue == "") { |
||||
|
this.$message.warning("请先选择本系统数据"); |
||||
|
} else { |
||||
|
for (let i = 0; i < this.cardBillList.length; i++) { |
||||
|
if (v == this.cardBillList[i].codeValue) { |
||||
|
return this.$message.warning("已有该数据"); |
||||
|
} |
||||
|
} |
||||
|
this.filetelistes.forEach((item, index) => { |
||||
|
if (v == item.codeValue) { |
||||
|
this.cardBillList.push(item); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} else { |
||||
|
this.remoteMethods(); |
||||
|
} |
||||
|
}, |
||||
|
remoteMethods(keyWords) { |
||||
|
if (keyWords) { |
||||
|
this.filetelists = []; |
||||
|
this.filetelistes.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.filetelists.push(item); |
||||
|
} |
||||
|
}); |
||||
|
} else { |
||||
|
this.filetelists = [...this.filetelistes]; |
||||
|
} |
||||
|
}, |
||||
|
treeclick(data) { |
||||
|
this.initItemTypeId = data.id; |
||||
|
postapi("/api/app/ColumnReference/GetAppColumns", { id: data.id }).then( |
||||
|
(res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.AppColumns = [...res.data]; |
||||
|
} |
||||
|
} |
||||
|
); |
||||
|
postapi("/api/app/ColumnReference/GetInterfaceColumns", { |
||||
|
id: data.id, |
||||
|
}).then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.InterfaceColumns = [...res.data]; |
||||
|
} |
||||
|
}); |
||||
|
postapi("/api/app/ColumnReference/GetAppCodeValues", { |
||||
|
id: data.id, |
||||
|
}).then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.dataList = [...res.data]; |
||||
|
this.initTableData = [...res.data]; |
||||
|
this.quckDepartment = [...res.data]; |
||||
|
} |
||||
|
}); |
||||
|
postapi("/api/app/ColumnReference/GetInterfaceCodeValues", { |
||||
|
id: data.id, |
||||
|
}).then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.filetelistes = [...res.data]; |
||||
|
this.filetelists = [...res.data]; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
rowick(row) { |
||||
|
this.curRow = { ...row }; |
||||
|
postapi("/api/app/ColumnReference/GetInterfaceCodeValuesByAppCode", { |
||||
|
code: this.curRow.codeValue, |
||||
|
columnReferenceId: this.initItemTypeId, |
||||
|
}).then((res) => { |
||||
|
if (res.code != -1 && res.data!=null) { |
||||
|
this.cardBillList = [...res.data]; |
||||
|
} |
||||
|
}); |
||||
|
}, |
||||
|
getlist() { |
||||
|
postapi("/api/app/ColumnReference/GetList").then((res) => { |
||||
|
if (res.code != -1) { |
||||
|
this.itemTypeId = [...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"; |
||||
|
::v-deep .el-input__inner { |
||||
|
/*text-align: center;*/ |
||||
|
padding-left: 5px; |
||||
|
padding-right: 25px; |
||||
|
} |
||||
|
::v-deep .el-icon-date:before { |
||||
|
content: ""; |
||||
|
} |
||||
|
.query { |
||||
|
margin-right: 25px; |
||||
|
display: flex; |
||||
|
justify-content: center; |
||||
|
align-items: center; |
||||
|
font-size: 14px; |
||||
|
color: #232748; |
||||
|
font-weight: 400; |
||||
|
font-family: "NotoSansSC-Regular"; |
||||
|
} |
||||
|
.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 { |
||||
|
margin-bottom: 8px; |
||||
|
font-size: 14px; |
||||
|
color: #232748; |
||||
|
font-weight: 400; |
||||
|
font-family: "NotoSansSC-Regular"; |
||||
|
} |
||||
|
.header { |
||||
|
color: #232748; |
||||
|
font-size: 14px; |
||||
|
font-weight: 700; |
||||
|
font-family: "NotoSansSC-Bold"; |
||||
|
} |
||||
|
.header::-webkit-scrollbar { |
||||
|
display: none; |
||||
|
} |
||||
|
.coniter::-webkit-scrollbar { |
||||
|
display: none; |
||||
|
} |
||||
|
:deep .selectCls { |
||||
|
max-height: 186px; |
||||
|
} |
||||
|
|
||||
|
:deep .selectCls .el-scrollbar { |
||||
|
max-height: 178px; |
||||
|
position: relative; |
||||
|
padding-top: 32px; |
||||
|
/* overflow-x: auto; |
||||
|
width: v-bind("window.pageWidth + 'px'"); */ |
||||
|
} |
||||
|
:deep .selectCls.el-select-dropdown { |
||||
|
background-color: #fff; |
||||
|
} |
||||
|
:deep .selectCls .el-select-dropdown__wrap { |
||||
|
max-height: 165px; |
||||
|
} |
||||
|
.el-select-dropdown__item { |
||||
|
height: auto; |
||||
|
line-height: 20px; |
||||
|
white-space: nowrap; |
||||
|
width: auto; |
||||
|
display: inline-flex; |
||||
|
border-bottom: 1px solid rgb(235, 238, 245); |
||||
|
} |
||||
|
.selectTd { |
||||
|
padding: 0 2px; |
||||
|
height: 100%; |
||||
|
word-break: normal; |
||||
|
display: block; |
||||
|
white-space: pre-wrap; |
||||
|
word-wrap: break-word; |
||||
|
overflow: hidden; |
||||
|
} |
||||
|
:deep .el-table tr { |
||||
|
height: 33px; |
||||
|
} |
||||
|
:deep .el-table th.el-table__cell>.cell{ |
||||
|
text-align: left; |
||||
|
} |
||||
|
/* :deep .el-scrollbar{ |
||||
|
overflow: visible; |
||||
|
} */ |
||||
|
/* :deep .el-scrollbar__wrap{ |
||||
|
width: v-bind("window.pageWidth-50 + 'px'"); |
||||
|
overflow: auto; |
||||
|
} |
||||
|
:deep .el-scrollbar__bar.is-horizontal{ |
||||
|
height: 0; |
||||
|
left: 0; |
||||
|
} |
||||
|
:deep .el-scrollbar__bar.is-vertical{ |
||||
|
height: 0; |
||||
|
left: 0; |
||||
|
} */ |
||||
|
</style> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue