罗斌杰 2 years ago
parent
commit
2721430bf4
  1. 6
      src/router/index.js
  2. 400
      src/views/Home.vue
  3. 586
      src/views/basic-dictionary/FieldComparison.vue
  4. 3
      src/views/basic-dictionary/ThirdPartyInterfaces.vue
  5. 9
      src/views/workload/deskwork.vue
  6. 5
      src/views/workload/directordoctor.vue
  7. 5
      src/views/workload/doctorstaionworkload.vue
  8. 5
      src/views/workload/examinedoctor.vue
  9. 5
      src/views/workload/peisworkload.vue
  10. 5
      src/views/workload/registrar.vue

6
src/router/index.js

@ -212,6 +212,12 @@ const routes = [{
component: () =>
import ("../views/basic-dictionary/ThirdPartyInterfaces.vue"),
},
{
path: "/field-comparison",
name: '字段对照',
component: () =>
import ("../views/basic-dictionary/FieldComparison.vue"),
},
//---------------------- 收费设置 start ----------------------
{
path: "/invoice-item-type",

400
src/views/Home.vue

@ -26,47 +26,111 @@
</div>
</div>
-->
<!--动态生成菜单支持多级 add by pengj -->
<div :style="'display:flex;justify-content:center;width:' + (window.pageWidth - 300) + 'px;'">
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"
style="display: flex;" text-color="#333333" active-text-color="#409EFF">
<!--1级菜单-->
<el-menu-item v-for="menu1 in menuPriv" :key="menu1.id" v-if="menu1.menuType == '1'" :index="menu1.id">
<!--动态生成菜单支持多级 add by pengj -->
<div
:style="
'display:flex;justify-content:center;width:' +
(window.pageWidth - 200) +
'px;'
"
>
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="horizontal"
@select="handleSelect"
style="display: flex"
>
<!--1级菜单-->
<template v-for="menu1 in menuPriv">
<el-menu-item
:key="menu1.id"
v-if="menu1.menuType == '1'"
:index="menu1.id"
>
{{ menu1.displayName }}
</el-menu-item>
<el-submenu v-for="menu1 in menuPriv" :key="menu1.id" v-if="menu1.menuType == '0'" :index="menu1.id">
</template>
<template v-for="menu1 in menuPriv">
<el-submenu
:popper-append-to-body="false"
:key="menu1.id"
v-if="menu1.menuType == '0'"
:index="menu1.id"
>
<template slot="title">{{ menu1.displayName }}</template>
<!--2级菜单-->
<el-menu-item v-for="menu2 in menu1.treeChildren" :key="menu2.id" v-if="menu2.menuType == '1'"
:index="menu2.id">{{ menu2.displayName }}</el-menu-item>
<el-submenu v-for="menu2 in menu1.treeChildren" :key="menu2.id" v-if="menu2.menuType == '0'"
:index="menu2.id">
<template slot="title">{{ menu2.displayName }}</template>
<!--3级菜单-->
<el-menu-item v-for="menu3 in menu2.treeChildren" :key="menu3.id" v-if="menu3.menuType == '1'"
:index="menu3.id">{{ menu3.displayName }}</el-menu-item>
<el-submenu v-for="menu3 in menu2.treeChildren" :key="menu3.id" v-if="menu3.menuType == '0'"
:index="menu3.id">
<template slot="title">{{ menu3.displayName }}</template>
<!--4级菜单-->
<el-menu-item v-for="menu4 in menu3.treeChildren" :key="menu4.id" v-if="menu4.menuType == '1'"
:index="menu4.id">{{ menu4.displayName }}</el-menu-item>
<el-submenu v-for="menu4 in menu3.treeChildren" :key="menu4.id" v-if="menu4.menuType == '0'"
:index="menu4.id">
<template slot="title">{{ menu4.displayName }}</template>
</el-submenu>
<template v-for="menu2 in menu1.treeChildren">
<el-menu-item
:key="menu2.id"
v-if="menu2.menuType == '1'"
:index="menu2.id"
>{{ menu2.displayName }}</el-menu-item
>
</template>
<template v-for="menu2 in menu1.treeChildren">
<el-submenu
:popper-append-to-body="false"
:key="menu2.id"
v-if="menu2.menuType == '0'"
:index="menu2.id"
class="submenutitle"
>
<template slot="title"><div style="padding:0 10px;margin-right: 8px;">{{ menu2.displayName }}</div></template>
<!--3级菜单-->
<template v-for="menu3 in menu2.treeChildren">
<el-menu-item
:key="menu3.id"
v-if="menu3.menuType == '1'"
:index="menu3.id"
>{{ menu3.displayName }}</el-menu-item
>
</template>
<template v-for="menu3 in menu2.treeChildren">
<el-submenu
:popper-append-to-body="false"
:key="menu3.id"
v-if="menu3.menuType == '0'"
:index="menu3.id"
>
<template slot="title"><div style="padding:0 10px;margin-right: 8px;">{{menu3.displayName}}</div></template>
<!--4级菜单-->
<template v-for="menu4 in menu3.treeChildren">
<el-menu-item
:key="menu4.id"
v-if="menu4.menuType == '1'"
:index="menu4.id"
>{{ menu4.displayName }}</el-menu-item
>
</template>
<template v-for="menu4 in menu3.treeChildren">
<el-submenu
:popper-append-to-body="false"
:key="menu4.id"
v-if="menu4.menuType == '0'"
:index="menu4.id"
>
<template slot="title"><div style="padding:0 10px;margin-right: 8px;">{{menu4.displayName}}</div></template>
</el-submenu>
</template>
</el-submenu>
</template>
</el-submenu>
</el-submenu>
</template>
</el-submenu>
</el-menu>
</div>
<!-- -->
<div class="btn">
<img src="@/assets/images/me.png" alt="" class="currentuser" />
<!-- <i class="el-icon-arrow-down el-icon--right"></i> -->
<el-dropdown>
<span class="el-dropdown-link" style="color:#222531;font-weight: 700;">
<!-- <img
</template>
</el-menu>
</div>
<!-- -->
<div class="btn">
<img src="@/assets/images/me.png" alt="" class="currentuser" />
<!-- <i class="el-icon-arrow-down el-icon--right"></i> -->
<el-dropdown>
<span
class="el-dropdown-link"
style="color: #222531; font-weight: 700"
>
<!-- <img
src="@/assets/images/frame.png"
alt=""
style="width: 20px; height: 20px"
@ -75,16 +139,28 @@
{{ user }} <i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item @click.native="logout">退出登录</el-dropdown-item>
<el-dropdown-item @click.native="editpassword">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="logout"
>退出登录</el-dropdown-item
>
<el-dropdown-item @click.native="editpassword"
>修改密码</el-dropdown-item
>
<el-dropdown-item @click.native="localSet">本地设置</el-dropdown-item>
<el-dropdown-item v-if="LocalConfig.normal.isDevTool" @click.native="toggleDevTools">调试工具</el-dropdown-item>
<el-dropdown-item v-if="LocalConfig.normal.isDevTool" @click.native="toggleDevTools"
>调试工具</el-dropdown-item
>
<el-dropdown-item @click.native="clientConfigShow">客户端参数</el-dropdown-item>
<el-dropdown-item @click.native="windowMin">最小化</el-dropdown-item>
<el-dropdown-item @click.native="windowMin"
>最小化</el-dropdown-item
>
<!--
<el-dropdown-item @click.native="windowMax">最大化</el-dropdown-item>
<el-dropdown-item @click.native="windowClose">关闭</el-dropdown-item>
<el-dropdown-item @click.native="windowMax"
>最大化</el-dropdown-item
>
<el-dropdown-item @click.native="windowClose"
>关闭</el-dropdown-item
>
-->
</el-dropdown-menu>
</el-dropdown>
@ -92,16 +168,39 @@
</div>
</el-header>
<!-- 修改密码弹框 -->
<el-dialog title="修改密码" :visible.sync="dialogVisible" width="30%" :close-on-click-modal="false">
<el-form :model="form" :rules="rules" ref="ruleForm" label-width="100px">
<el-dialog
title="修改密码"
:visible.sync="dialogVisible"
width="30%"
:close-on-click-modal="false"
>
<el-form
:model="form"
:rules="rules"
ref="ruleForm"
label-width="100px"
>
<el-form-item label="旧密码" prop="oldPassWord">
<el-input v-model="form.oldPassWord" autocomplete="new-password" show-password></el-input>
<el-input
v-model="form.oldPassWord"
autocomplete="new-password"
show-password
></el-input>
</el-form-item>
<el-form-item label="新密码" prop="newPassWord">
<el-input v-model="form.newPassWord" autocomplete="new-password" show-password></el-input>
<el-input
v-model="form.newPassWord"
autocomplete="new-password"
show-password
></el-input>
</el-form-item>
<el-form-item label="确认密码" prop="newPassWord">
<el-input v-model="confirmpassword" type="password" autocomplete="new-password" show-password></el-input>
<el-input
v-model="confirmpassword"
type="password"
autocomplete="new-password"
show-password
></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@ -133,7 +232,7 @@ import { getapi, postapi } from "@/api/api";
import { mapState } from "vuex";
import { getTreeNode, madeTree } from "../utlis/tree";
import { deepCopy } from "@/utlis/proFunc";
import LocalConfig from "../components/common/LocalConfig.vue";
import LocalConfig from "../components/common/LocalConfig.vue";;
export default {
components: {
@ -141,9 +240,9 @@ export default {
},
data() {
return {
activeIndex: '0',
activeIndex: "0",
menuPriv: [], //
className: '',
className: "",
index: 1,
isCollapse: false,
user: "",
@ -174,7 +273,7 @@ export default {
...mapState(["window", "dialogWin"]),
},
created() {
let expires_in = parseInt(window.sessionStorage.getItem("expires_in"))
let expires_in = parseInt(window.sessionStorage.getItem("expires_in"));
//console.log("dqtime / expires_in",dqtime,expires_in)
if (!expires_in) {
router.push({ path: "/Login" });
@ -187,8 +286,8 @@ export default {
this.user = window.sessionStorage.getItem("user");
//
this.getUserAllPriv()
// this.getUserMenuPriv()
this.getUserAllPriv();
// this.getUserMenuPriv();
this.LocalConfigInit = deepCopy(this.LocalConfig)
let LocalConfig = window.localStorage.getItem("LocalConfig") || null
@ -203,13 +302,12 @@ export default {
handleSelect(key, keyPath) {
// console.log(key, keyPath);
// tree: any, childNodeName: any, idName: any, idVal: any
let node = getTreeNode(this.menuPriv, "treeChildren", "id", key)
if (node) this.$router.push({ path: node.routeUrl });
let node = getTreeNode(this.menuPriv, "treeChildren", "id", key);
if (node&&this.$route.path!=='/'+node.routeUrl) this.$router.push({ path: node.routeUrl });
},
//
getUserAllPriv() {
getapi('/api/app/menuinfo/getmymenuinfolist').then(res => {
getapi("/api/app/menuinfo/getmymenuinfolist").then((res) => {
if (res.code > -1) {
window.sessionStorage.setItem("userPriv", JSON.stringify(res.data));
@ -218,45 +316,47 @@ export default {
this.menuPriv = this.menuFilter(this.menuPriv)
}
})
});
},
//
getUserMenuPriv() {
getapi('/api/app/menuinfo/getmymenuinfotreelist').then(res => {
getapi("/api/app/menuinfo/getmymenuinfotreelist").then((res) => {
if (res.code > -1) {
this.menuPriv = res.data
this.menuPriv = this.menuFilter(this.menuPriv)
console.log('this.menuPriv', this.menuPriv)
this.menuPriv = res.data;
this.menuPriv = this.menuFilter(this.menuPriv);
console.log("this.menuPriv", this.menuPriv);
}
})
});
},
//
menuFilter(menu) {
return menu.filter(e => {
if (e.menuType == '0' || e.menuType == '1') {
return menu.filter((e) => {
if (e.menuType == "0" || e.menuType == "1") {
if (e.treeChildren && e.treeChildren.length > 0) {
let temp = e.treeChildren.filter(e1 => { return e1.menuType == '0' || e1.menuType == '1' })
let temp = e.treeChildren.filter((e1) => {
return e1.menuType == "0" || e1.menuType == "1";
});
if (temp.length > 0) {
e.menuType = '0'
e.treeChildren = this.menuFilter(e.treeChildren)
e.menuType = "0";
e.treeChildren = this.menuFilter(e.treeChildren);
} else {
e.menuType = '1'
e.menuType = "1";
}
} else {
e.menuType = '1'
} else {
e.menuType = "1";
}
return e
return e;
}
})
});
},
handleCommand(val) {
this.className = val.flag
this.className = val.flag;
if (this.router.path != val.command) {
this.router.path = val.command;
this.$router.push({ path: val.command }).catch(() => { });
this.$router.push({ path: val.command }).catch(() => {});
}
// let menuId = arguments[1].$parent.$el.id
// let menuList = document.getElementById(menuId)
@ -264,9 +364,9 @@ export default {
},
beforeHandleCommand(flag, command) {
return {
'flag': flag,
'command': command
}
flag: flag,
command: command,
};
},
//
determine() {
@ -311,10 +411,10 @@ export default {
//
toggleDevTools() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
this.$message.info("此功能,需要在壳客户端才可运行!");
return;
}
this.$peisAPI.toggleDevTools();
this.$peisAPI.clientConfigShow();
},
//
@ -328,36 +428,35 @@ export default {
//
windowMin() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
this.$message.info("此功能,需要在壳客户端才可运行!");
return;
}
this.$peisAPI.windowMin();
},
//
windowMax() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
this.$message.info("此功能,需要在壳客户端才可运行!");
return;
}
this.$peisAPI.windowMax();
},
windowClose() {
if (!this.$peisAPI) {
this.$message.info("此功能,需要在壳客户端才可运行!")
return
this.$message.info("此功能,需要在壳客户端才可运行!");
return;
}
this.$peisAPI.windowClose();
},
},
components: { router },
};
</script>
<style scoped>
@import '../assets/css/global_card.css';
@import "../assets/css/global_card.css";
:deep .el-dropdown-menu__item {
color: #52555F;
color: #52555f;
font-size: 14px;
font-weight: 400;
font-family: "NotoSansSC-Regular";
@ -366,13 +465,12 @@ export default {
.dropdownmain:hover,
.el-dropdown-menu__item:not(.is-disabled):hover {
background-color: rgba(20, 96, 243, 0.1);
color: #396FFA;
color: #396ffa;
/* color: #2BCA84; */
font-weight: 700;
font-size: 14px;
font-family: "NotoSansSC-Bold";
}
.titleimg :hover {
width: 30px;
background-color: rgb(34, 149, 98);
@ -381,7 +479,7 @@ export default {
.el-dropdown-link:hover {
/* background-color: rgb(202, 249, 203); */
color: #396FFA;
color: #396ffa;
font-weight: 700;
/* background-color: ; */
/* border-top-left-radius: 5px;
@ -389,10 +487,6 @@ export default {
font-family: "NotoSansSC-Bold";
}
::v-deep .el-menu--horizontal>.el-submenu .el-submenu__title {
font-size: 16px;
}
.dropdowncolor {
font-size: 12px;
}
@ -451,7 +545,7 @@ export default {
font-size: 14px;
margin: 0;
font-weight: 400;
color: #52555F;
color: #52555f;
font-family: "NotoSansSC-Regular";
}
@ -499,7 +593,6 @@ export default {
border-right: none;
}
.navs {
display: flex;
align-items: center;
@ -584,16 +677,16 @@ export default {
font-weight: 700;
} */
.actived .el-dropdown-link {
color: #396FFA !important;
color: #396ffa !important;
font-weight: 700;
font-family: "NotoSansSC-Bold";
}
.actived .el-dropdown-link:after {
content: '';
content: "";
width: 100%;
height: 3px;
background-color: #396FFA;
background-color: #396ffa;
position: absolute;
bottom: 4px;
left: 0;
@ -603,29 +696,114 @@ export default {
color: #FF0000;
}
::v-deep .el-menu--horizontal>.el-submenu .el-submenu__title {
::v-deep .el-menu--horizontal > .el-submenu .el-submenu__title {
font-size: 14px;
height: 47px;
line-height: 47px;
font-weight: 700;
color: #000000;
font-family: "NotoSansSC-Bold";
color: #52555f;
border-bottom: 3px solid #396ffa;
}
::v-deep .el-menu--horizontal>.el-menu-item {
/* ::v-deep .submenutitle.is-active .el-submenu__title{
border-bottom:none
} */
::v-deep .submenutitle .el-submenu__title {
height: 36px !important;
line-height: 36px !important;
}
::v-deep .el-menu--horizontal > .el-menu-item {
height: 40px;
line-height: 40px;
}
::v-deep .el-submenu__title {
padding: 0 5px 0 5px !important;
}
::v-deep .el-menu--popup {
min-width: auto !important;
/* padding: 5px 10px !important; */
}
::v-deep .el-submenu .el-menu-item {
min-width: auto !important;
}
::v-deep .el-menu--horizontal .el-menu .el-menu-item,
.el-menu--horizontal .el-menu .el-submenu__title {
font-size: 14px;
font-weight: 400;
font-family: "NotoSansSC-Regular";
color: #52555f;
}
:v-deep .el-menu-item .is-active {
background-color: #247bb4 !important;
}
::v-deep .el-menu--horizontal .el-menu-item:not(.is-disabled):focus,
.el-menu--horizontal .el-menu-item:not(.is-disabled):hover {
background-color: rgba(20, 96, 243, 0.1);
font-size: 14px;
font-weight: 700;
font-family: "NotoSansSC-Bold";
color: #396ffa;
}
/* ::v-deep .el-menu--horizontal > .el-submenu .el-submenu__icon-arrow {
display: none;
} */
::v-deep .el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{
vertical-align: middle;
margin-left: 8px;
margin-top: -3px;
position: absolute;
top: 14px;
right: 4px;
}
::v-deep .submenutitle .el-submenu__title {
font-size: 14px !important;
font-weight: 400 !important;
font-family: "NotoSansSC-Regular" !important;
color: #52555f !important;
}
::v-deep .submenutitle .el-submenu__title:hover {
background-color: rgba(20, 96, 243, 0.1) !important;
font-size: 14px !important;
font-weight: 700 !important;
font-family: "NotoSansSC-Bold" !important;
color: #396ffa !important;
}
::v-deep .submenutitle .el-submenu__title {
height: 36px !important;
line-height: 36px !important;
}
::v-deep .submenutitle .el-submenu__title .el-submenu__icon-arrow {
font-size:14px !important;
}
::v-deep .el-menu--horizontal .el-menu .el-menu-item.is-active{
background-color: rgba(20, 96, 243, 0.1) !important;
font-size: 14px !important;
font-weight: 700 !important;
font-family: "NotoSansSC-Bold" !important;
color: #396ffa !important;
}
/* ::v-deep .el-menu--horizontal .el-menu .el-submenu.is-active .el-submenu__title{
background-color: rgba(20, 96, 243, 0.1) !important;
font-size: 14px !important;
font-weight: 700 !important;
font-family: "NotoSansSC-Bold" !important;
color: #396ffa !important;
} */
::v-deep .el-menu--horizontal .el-menu .el-menu-item, .el-menu--horizontal .el-menu .el-submenu__title{
padding: 0 15px !important;
}
::v-deep .el-menu.el-menu--horizontal{
border-bottom:none;
}
/* ::v-deep .el-menu--popup-right-start{
margin-left: 15px !important;
} */
::v-deep .el-dropdown-menu__item,
.el-menu-item {
font-size: 14px;
padding: 0 5px;
}
::v-deep .el-submenu__title {
padding: 0 0 0 5px;
}
::v-deep .el-icon-arrow-down:before {
content: "";
}
@ -646,4 +824,4 @@ export default {
border-radius: 10px;
background-color: #F5F5F5;
} */
</style>
</style>

586
src/views/basic-dictionary/FieldComparison.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>

3
src/views/basic-dictionary/ThirdPartyInterfaces.vue

@ -38,12 +38,13 @@
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="">
<el-table-column prop="parmValue" label="配置参数" width="" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="creatorName" label="创建者" width="">
</el-table-column>

9
src/views/workload/deskwork.vue

@ -19,7 +19,7 @@
ref="example"
popper-class="example"
@change="ischangsItemTypeId"
style="width: 100px"
style="width: 120px"
:props="{
value: 'id',
label: 'displayName',
@ -55,7 +55,7 @@
v-model="startDate"
value-format="yyyy-MM-dd"
editable
style="width: 180px"
style="width: 150px;"
>
</el-date-picker>
</div>
@ -68,7 +68,7 @@
v-model="endDate"
value-format="yyyy-MM-dd"
editable
style="width: 180px"
style="width: 150px;"
>
</el-date-picker>
</div>
@ -1130,4 +1130,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
::v-deep .el-table__body {
width: 100% !important;
}
.query:last-child{
margin-right: 0;
}
</style>

5
src/views/workload/directordoctor.vue

@ -37,6 +37,7 @@
v-model="startDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -49,6 +50,7 @@
v-model="endDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -413,4 +415,7 @@ export default {
:deep .left-align .cell {
text-align: left !important;
}
.query:last-child{
margin-right: 0;
}
</style>

5
src/views/workload/doctorstaionworkload.vue

@ -37,6 +37,7 @@
v-model="startDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -49,6 +50,7 @@
v-model="endDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -535,4 +537,7 @@ export default {
::v-deep .el-table__body {
width: 100% !important;
}
.query:last-child{
margin-right: 0;
}
</style>

5
src/views/workload/examinedoctor.vue

@ -37,6 +37,7 @@
v-model="startDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -49,6 +50,7 @@
v-model="endDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -419,4 +421,7 @@ export default {
:deep .left-align .cell {
text-align: left !important;
}
.query:last-child{
margin-right: 0;
}
</style>

5
src/views/workload/peisworkload.vue

@ -37,6 +37,7 @@
v-model="startDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -49,6 +50,7 @@
v-model="endDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -437,4 +439,7 @@ page-break-before: avoid;}}`, // 去除页眉页脚
:deep .left-align .cell {
text-align: left !important;
}
.query:last-child{
margin-right: 0;
}
</style>

5
src/views/workload/registrar.vue

@ -37,6 +37,7 @@
v-model="startDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -49,6 +50,7 @@
v-model="endDate"
value-format="yyyy-MM-dd"
editable
style="width: 177px;"
>
</el-date-picker>
</div>
@ -420,4 +422,7 @@ export default {
:deep .left-align .cell {
text-align: left !important;
}
.query:last-child{
margin-right: 0;
}
</style>
Loading…
Cancel
Save