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