| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> |
| | | <!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico"> --> |
| | | <title><%= webpackConfig.name %></title> |
| | | <title> |
| | | <%= webpackConfig.name %> |
| | | </title> |
| | | <!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]--> |
| | | <style> |
| | | html, |
| | |
| | | margin: 0px; |
| | | padding: 0px; |
| | | } |
| | | |
| | | .chromeframe { |
| | | margin: 0.2em 0; |
| | | background: #ccc; |
| | |
| | | -ms-transform: rotate(0deg); |
| | | transform: rotate(0deg); |
| | | } |
| | | |
| | | 100% { |
| | | -webkit-transform: rotate(360deg); |
| | | -ms-transform: rotate(360deg); |
| | |
| | | -ms-transform: rotate(0deg); |
| | | transform: rotate(0deg); |
| | | } |
| | | |
| | | 100% { |
| | | -webkit-transform: rotate(360deg); |
| | | -ms-transform: rotate(360deg); |
| | |
| | | } |
| | | </style> |
| | | </head> |
| | | |
| | | <body> |
| | | <div id="app"> |
| | | <div id="loader-wrapper"> |
| | |
| | | </div> |
| | | </div> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | <script> |
| | | import ThemePicker from "@/components/ThemePicker"; |
| | | |
| | | import devPixelRatio from "@/utils/devicePixelRatio.js"; |
| | | export default { |
| | | name: "App", |
| | | components: { ThemePicker }, |
| | |
| | | return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | new devPixelRatio().init(); // 初始化页面比例 |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | #app .theme-picker { |
| | | display: none; |
| | | } |
| | | |
| | | body { |
| | | margin: 0; |
| | | padding: 0; |
| | | } |
| | | </style> |
| | |
| | | |
| | | // 用户密码重置 |
| | | export function updateUserPwd(oldPassword, newPassword) { |
| | | oldPassword = encrypt(oldPassword); |
| | | newPassword = encrypt(newPassword); |
| | | const data = { |
| | | oldPassword, |
| | | newPassword |
| | |
| | | //main-container全局样式 |
| | | .app-container { |
| | | padding: 20px; |
| | | width: 100%; |
| | | } |
| | | |
| | | .components-container { |
| | |
| | | <div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground }"> |
| | | <transition name="sidebarLogoFade"> |
| | | <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> |
| | | <img v-if="logo" :src="logo" class="sidebar-logo" /> |
| | | <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> |
| | | <!-- <img v-if="logo" :src="logo" class="sidebar-logo" /> --> |
| | | <!-- <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> --> |
| | | <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> |
| | | </router-link> |
| | | <router-link v-else key="expand" class="sidebar-logo-link" to="/"> |
| | | <img v-if="logo" :src="logo" class="sidebar-logo" /> |
| | | <!-- <img v-if="logo" :src="logo" class="sidebar-logo" /> --> |
| | | <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.logoTitleColor : variables.logoLightTitleColor }">{{ title }} </h1> |
| | | </router-link> |
| | | </transition> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import logoImg from '@/assets/logo/logo.png' |
| | | // import logoImg from '@/assets/logo/logo.png' |
| | | import variables from '@/assets/styles/variables.scss' |
| | | |
| | | export default { |
| | |
| | | data() { |
| | | return { |
| | | title: '智慧健康体检管理系统', |
| | | logo: logoImg |
| | | // logo: logoImg |
| | | } |
| | | } |
| | | } |
| | |
| | | <logo v-if="showLogo" :collapse="isCollapse" /> |
| | | <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper"> |
| | | <el-menu |
| | | :default-openeds="['/tijian']" |
| | | :default-active="activeMenu" |
| | | :collapse="isCollapse" |
| | | :background-color="settings.sideTheme === 'theme-dark' ? variables.menuBackground : variables.menuLightBackground" |
| | |
| | | } |
| | | */ |
| | | |
| | | |
| | | // 公共路由 |
| | | export const constantRoutes = [ |
| | | { |
| | |
| | | component: () => import('@/views/system/ssdm/index'), |
| | | name:'rmer', |
| | | meta: { title: '知识库管理 ', icon: 'dashboard', } |
| | | }, |
| | | ] |
| | | }, |
| | | { |
| | | path: '/system', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'about', |
| | | component: () => import('@/views/hosp/about/index'), |
| | | name: 'AuthRole', |
| | | meta: { title: '日结查询' } |
| | | } |
| | | ] |
| | | }, |
| | | // 导检单和体检报告页面标签栏 |
| | | { |
| | | path: '/report', |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: 'breDailyReport', |
| | | component: () => import('@/views/jmreport/jmreport/view'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'导检单',activeMenu:'/bre/DailyReport'}, |
| | | }, |
| | | { |
| | | path: 'viewReport', |
| | | component: () => import('@/views/jmreport/jmreport/view'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'体检报告',activeMenu:'/bre/viewReport'}, |
| | | }, |
| | | { |
| | | path: 'settlement', |
| | | component: () => import('@/views/jmreport/jmreport/settlement'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'个人结账单',activeMenu:'/bre/settlement'}, |
| | | }, |
| | | { |
| | | path: 'charge', |
| | | component: () => import('@/views/jmreport/jmreport/charge'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'收款小票',activeMenu:'/bre/charge'}, |
| | | }, |
| | | { |
| | | path: 'refund', |
| | | component: () => import('@/views/jmreport/jmreport/refund'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'退款小票',activeMenu:'/bre/refund'}, |
| | | }, |
| | | { |
| | | path: 'invoice', |
| | | component: () => import('@/views/jmreport/jmreport/invoice'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'发票',activeMenu:'/bre/invoice'}, |
| | | }, |
| | | { |
| | | path: 'groupReport', |
| | | component: () => import('@/views/jmreport/jmreport/groupReport'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'团队报告',activeMenu:'/bre/groupReport '}, |
| | | }, |
| | | ] |
| | | }, |
| | |
| | | ] |
| | | }, |
| | | // 导检单和体检报告页面标签栏 |
| | | { |
| | | path: '/report', |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ['bre:DailyReport:list'], |
| | | children: [ |
| | | { |
| | | path: 'breDailyReport', |
| | | component: () => import('@/views/jmreport/jmreport/view'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'导检单',activeMenu:'/bre/DailyReport'}, |
| | | }, |
| | | { |
| | | path: 'viewReport', |
| | | component: () => import('@/views/jmreport/jmreport/view'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'体检报告',activeMenu:'/bre/viewReport'}, |
| | | }, |
| | | { |
| | | path: 'settlement', |
| | | component: () => import('@/views/jmreport/jmreport/settlement'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'个人结账单',activeMenu:'/bre/settlement'}, |
| | | }, |
| | | { |
| | | path: 'charge', |
| | | component: () => import('@/views/jmreport/jmreport/charge'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'收款小票',activeMenu:'/bre/charge'}, |
| | | }, |
| | | { |
| | | path: 'refund', |
| | | component: () => import('@/views/jmreport/jmreport/refund'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'退款小票',activeMenu:'/bre/refund'}, |
| | | }, |
| | | { |
| | | path: 'invoice', |
| | | component: () => import('@/views/jmreport/jmreport/invoice'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'发票',activeMenu:'/bre/invoice'}, |
| | | }, |
| | | { |
| | | path: 'groupReport', |
| | | component: () => import('@/views/jmreport/jmreport/groupReport'), |
| | | name:'DailyReportReport', |
| | | meta:{title:'团队报告',activeMenu:'/bre/groupReport '}, |
| | | }, |
| | | ] |
| | | }, |
| | | // { |
| | | // path: '/report', |
| | | // component: Layout, |
| | | // hidden: true, |
| | | // permissions: ['tool:gen:edit'], |
| | | // // permissions: ['bre:DailyReport:list'], |
| | | // children: [ |
| | | // { |
| | | // path: 'breDailyReport', |
| | | // component: () => import('@/views/jmreport/jmreport/view'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'导检单',activeMenu:'/bre/DailyReport'}, |
| | | // }, |
| | | // { |
| | | // path: 'viewReport', |
| | | // component: () => import('@/views/jmreport/jmreport/view'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'体检报告',activeMenu:'/bre/viewReport'}, |
| | | // }, |
| | | // { |
| | | // path: 'settlement', |
| | | // component: () => import('@/views/jmreport/jmreport/settlement'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'个人结账单',activeMenu:'/bre/settlement'}, |
| | | // }, |
| | | // { |
| | | // path: 'charge', |
| | | // component: () => import('@/views/jmreport/jmreport/charge'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'收款小票',activeMenu:'/bre/charge'}, |
| | | // }, |
| | | // { |
| | | // path: 'refund', |
| | | // component: () => import('@/views/jmreport/jmreport/refund'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'退款小票',activeMenu:'/bre/refund'}, |
| | | // }, |
| | | // { |
| | | // path: 'invoice', |
| | | // component: () => import('@/views/jmreport/jmreport/invoice'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'发票',activeMenu:'/bre/invoice'}, |
| | | // }, |
| | | // { |
| | | // path: 'groupReport', |
| | | // component: () => import('@/views/jmreport/jmreport/groupReport'), |
| | | // name:'DailyReportReport', |
| | | // meta:{title:'团队报告',activeMenu:'/bre/groupReport '}, |
| | | // }, |
| | | // ] |
| | | // }, |
| | | |
| | | { |
| | | path: '/system', |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ['system:user:edit'], |
| | | children: [ |
| | | { |
| | | path: 'about', |
| | | component: () => import('@/views/hosp/about/index'), |
| | | name: 'AuthRole', |
| | | meta: { title: '日结查询' } |
| | | } |
| | | ] |
| | | }, |
| | | // { |
| | | // path: '/system', |
| | | // component: Layout, |
| | | // hidden: true, |
| | | // permissions: ['system:user:edit'], |
| | | // children: [ |
| | | // { |
| | | // path: 'about', |
| | | // component: () => import('@/views/hosp/about/index'), |
| | | // name: 'AuthRole', |
| | | // meta: { title: '日结查询' } |
| | | // } |
| | | // ] |
| | | // }, |
| | | |
| | | { |
| | | path: '/hosp', |
| | | component: Layout, |
New file |
| | |
| | | class devicePixelRatio { |
| | | /* 获取系统类型 */ |
| | | getSystem() { |
| | | const agent = navigator.userAgent.toLowerCase(); |
| | | const isMac = /macintosh|mac os x/i.test(navigator.userAgent); |
| | | if (isMac) return false; |
| | | // 目前只针对 win 处理,其它系统暂无该情况,需要则继续在此添加即可 |
| | | if (agent.indexOf("windows") >= 0) return true; |
| | | } |
| | | /* 监听方法兼容写法 */ |
| | | addHandler(element, type, handler) { |
| | | if (element.addEventListener) { |
| | | element.addEventListener(type, handler, false); |
| | | } else if (element.attachEvent) { |
| | | element.attachEvent("on" + type, handler); |
| | | } else { |
| | | element["on" + type] = handler; |
| | | } |
| | | } |
| | | /* 校正浏览器缩放比例 */ |
| | | correct() { |
| | | // 页面devicePixelRatio(设备像素比例)变化后,计算页面body标签zoom修改其大小,来抵消devicePixelRatio带来的变化 |
| | | document.getElementsByTagName("body")[0].style.zoom = |
| | | 1 / window.devicePixelRatio; |
| | | } |
| | | /* 监听页面缩放 */ |
| | | watch() { |
| | | const that = this; |
| | | // 注意: 这个方法是解决全局有两个window.resize |
| | | that.addHandler(window, "resize", function () { |
| | | that.correct(); // 重新校正浏览器缩放比例 |
| | | }); |
| | | } |
| | | /* 初始化页面比例 */ |
| | | init() { |
| | | const that = this; |
| | | // 判断设备,只在 win 系统下校正浏览器缩放比例 |
| | | if (that.getSystem()) { |
| | | that.correct(); // 校正浏览器缩放比例 |
| | | that.watch(); // 监听页面缩放 |
| | | } |
| | | } |
| | | } |
| | | export default devicePixelRatio; |
| | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" size="mini" :disabled="single" @click="handleUpdate" |
| | | v-hasPermi="['hosp:water:edit']">汇总</el-button> |
| | | >汇总</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table style="width: 80%" :data="list" border max-height="720px" @selection-change="handleSelect"> |
| | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button icon="el-icon-edit" size="mini" @click="handleDelete" |
| | | v-hasPermi="['hosp:water:edit']" :disabled="single">撤销</el-button> |
| | | :disabled="single">撤销</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button icon="el-icon-edit" size="mini" @click="handledocument" |
| | | v-hasPermi="['hosp:water:edit']" :disabled="single">补打单据</el-button> |
| | | :disabled="single">补打单据</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button icon="el-icon-edit" size="mini" @click="handleDelete" v-hasPermi="['hosp:water:edit']">撤销</el-button> |
| | | <el-button icon="el-icon-edit" size="mini" @click="handleDelete" >撤销</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button icon="el-icon-edit" size="mini" @click="handledocument" |
| | | v-hasPermi="['hosp:water:edit']">补打单据</el-button> |
| | | >补打单据</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | |
| | | } |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data; |
| | | this.Treedata = response.data.list; |
| | | }); |
| | | this.Projectopen = true; |
| | | this.title = "补录项目"; |
| | |
| | | } |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data; |
| | | this.Treedata = response.data.list; |
| | | }); |
| | | this.Projectopen1 = true; |
| | | this.title = "补录项目"; |
| | |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" @click="handleUpdate" v-hasPermi="['hosp:water:edit']">统计</el-button> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" @click="handleUpdate">统计</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-check" size="mini" @click="handlesettle" :disabled="discode === 200 ? true : false" v-hasPermi="['hosp:water:export']" >结账</el-button> |
| | | <el-button type="primary" icon="el-icon-check" size="mini" @click="handlesettle" :disabled="discode === 200 ? true : false" >结账</el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" size="mini" v-hasPermi="['hosp:water:remove']" @click="handleabout">日结查询</el-button> |
| | | <el-button type="primary" size="mini" @click="handleabout">日结查询</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | |
| | | }; |
| | | }, |
| | | created() { |
| | | console.log(this.$route.query) |
| | | //报表模板编号 |
| | | this.viewNum = this.$route.query.viewNum; |
| | | //体检号 |
| | |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"801589968083054592" |
| | | }; |
| | | }, |
| | | created() { |
| | | this.src = "https://ltpeis.xaltjdkj.cn:5011/ltkj-admin/jmreport/view/801589968083054592?token=Bearer " + getToken(); |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/801589968083054592?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"815468234724306944", |
| | | }; |
| | | }, |
| | | created() { |
| | | this.src = "https://ltpeis.xaltjdkj.cn:5011/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"803795472456839168" |
| | | }; |
| | | }, |
| | | created() { |
| | | this.src = "https://ltpeis.xaltjdkj.cn:5011/ltkj-admin/jmreport/view/803795472456839168?token=Bearer " + getToken(); |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/803795472456839168?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"801668607294271488" |
| | | }; |
| | | }, |
| | | created() { |
| | | this.src = "https://ltpeis.xaltjdkj.cn:5011/ltkj-admin/jmreport/view/801668607294271488?token=Bearer " + getToken(); |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/801668607294271488?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | |
| | | }, |
| | | |
| | | hide() { |
| | | this.loginForm.username = "10001"; |
| | | this.loginForm.password = "admin123"; |
| | | // this.loginForm.username = "10001"; |
| | | // this.loginForm.password = "admin123"; |
| | | }, |
| | | changetype() { |
| | | this.pwdtype = this.pwdtype === 'password' ? 'text' : 'password' |
| | |
| | | |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.data = response.data; |
| | | this.data = response.data.list; |
| | | this.dXData = response.data; |
| | | return; |
| | | }); |
| | |
| | | |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.data = response.data; |
| | | this.data = response.data.list; |
| | | this.dXData = response.data; |
| | | return; |
| | | }); |
| | |
| | | |
| | | /** 点击显示导检单报表*/ //lige 开始 |
| | | handleReport() { |
| | | const tjNumber = this.report; |
| | | const tjNumber = this.report[0]; |
| | | const viewNum = "792931586196398080"; |
| | | const params = { viewNum, tjNumber }; |
| | | hasReport(tjNumber).then((res) => { |
| | |
| | | } |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data; |
| | | this.Treedata = response.data.list; |
| | | }); |
| | | this.Projectopen = true; |
| | | }, |
| | |
| | | <el-form-item label="联系电话" prop="phone"> |
| | | <el-input v-model="form.phone" placeholder="请输入联系电话" /> |
| | | </el-form-item> |
| | | <el-form-item label="体检项目" prop="tjPro"> |
| | | <el-input ref="inputName" v-model="form.tjPro" placeholder="请输入体检项目" /> |
| | | <!-- @focus="hadeltjpro" --> |
| | | <el-form-item label="体检项目" prop="tjProName"> |
| | | <el-input ref="inputName" v-model="form.tjProName" placeholder="请输入体检项目" /> |
| | | </el-form-item> |
| | | <el-form-item label="数量" prop="number"> |
| | | <el-input ref="inputName" v-model="form.number" placeholder="请输入数量" /> |
| | | </el-form-item> |
| | | <el-form-item label="应收金额" prop="ys"> |
| | | <el-input v-model="form.ys" placeholder="金额" :disabled="true"></el-input> |
| | | <el-input v-model="form.ys" placeholder="金额"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="优惠折扣" prop="zk"> |
| | | <el-form-item label="优惠" prop="zk"> |
| | | <el-input-number v-model="form.zk" :precision="2" :step="0.1" :max="10" :min="1" |
| | | @change="numberChange" :disabled="isfalse"></el-input-number> |
| | | disabled></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="实收金额" prop="ss"> |
| | | <el-input v-model="form.ss" placeholder="实付"> |
| | | <el-input v-model="form.ss" placeholder="实付" @input="numberChange"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="付款类型" prop="type"> |
| | |
| | | <el-col :span="17" :xs="24" style="padding: 0 10px;"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-form :inline="true" ref="form" :model="queryParams" class="demo-form-inline" label-width="80px" |
| | | :rules="rules"> |
| | | <el-form :inline="true" ref="form" :model="queryParams" class="demo-form-inline" label-width="80px"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" /> |
| | | </el-form-item> |
| | |
| | | </el-form> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleUpdate" |
| | | v-hasPermi="['hosp:org:edit']">查询</el-button> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleUpdate">查询</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div style="margin-bottom: 10px;"> |
| | | <el-radio-group v-model="queryParams.type" @input="handleUpdate" style="margin-left: 30px"> |
| | | <el-radio-button label="1">收费记录</el-radio-button> |
| | | <el-radio-button label="2">退费记录</el-radio-button> |
| | | <!-- <el-radio-button label="2">退费记录</el-radio-button> --> |
| | | </el-radio-group> |
| | | </div> |
| | | |
| | |
| | | <el-table-column label="手机号" align="center" prop="customer.cusPhone" width="110px" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column label="订单流水号" align="center" prop="waterId" width="180px" /> |
| | | <el-table-column label="体检项目" align="center" prop="proname" width="90px"/> |
| | | <el-table-column label="体检项目" align="center" prop="tjProName" width="120px" /> |
| | | <el-table-column label="应收金额" align="center" prop="copeWith" width="90px" /> |
| | | <el-table-column label="实收金额" align="center" prop="paidIn" width="90px" /> |
| | | <el-table-column label="付款类型" align="center" prop="payType" width="90px"> |
| | | <el-table-column label="实收金额" align="center" prop="paidIn" width="80px" /> |
| | | <el-table-column label="付款类型" align="center" prop="payType" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.dict_pay_type" :value="scope.row.payType" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="收费员" align="center" prop="updateBy" width="100px" /> |
| | | <el-table-column label="收退时间" align="center" prop="updateTime" /> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding " width="120px" |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding " width="100px" |
| | | v-if="queryParams.type == '1'"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" @click="handlerefund(scope.row)" |
| | | v-hasPermi="['system:dept:edit']" v-if="scope.row.remarks != '已退费'">退费</el-button> |
| | | <el-button size="mini" type="text" v-hasPermi="['system:dept:edit']" |
| | | v-if="scope.row.remarks == '已退费'">{{ scope.row.remarks }}</el-button> |
| | | <el-button size="mini" type="text" v-hasPermi="['system:dept:edit']" |
| | | v-if="scope.row.remarks != '已退费'" @click="receipt(scope.row)">补打小票</el-button> |
| | | <!-- <el-button size="mini" type="text" @click="handlerefund(scope.row)" |
| | | v-if="scope.row.remarks != '已退费'">退费</el-button> --> |
| | | <el-button size="mini" type="text" v-if="scope.row.remarks == '已退费'">{{ scope.row.remarks |
| | | }}</el-button> |
| | | <el-button size="mini" type="text" v-if="scope.row.remarks != '已退费'" |
| | | @click="receipt(scope.row)">补打</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <!-- 添加补录项目 --> |
| | | <el-dialog :title="title" :visible.sync="Projectopen1" width="980px" style="height: 860px" append-to-body> |
| | | <el-row type="flex" class="row-bg" justify="space-around"> |
| | | <el-col :span="6"> |
| | | <div class="tab3"> |
| | | <div class="outside1"> |
| | | <el-tree ref="tree" :data="Treedata" show-checkbox node-key="proId" check-strictly |
| | | :props="defaultProps" @check-change="handleCurrentChecked"> |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-dialog> |
| | | <div style=" |
| | | position: absolute; |
| | | bottom: 100px; |
| | |
| | | <script> |
| | | import { getTjPrice, addOrderAndDetail, tjRefund, getFlowingWaterList, getPrintSetUp } from "@/api/system/examcharge"; |
| | | import { getInfo } from "@/api/login"; |
| | | import { projectGetList } from "@/api/system/tijian"; |
| | | import printJS from "print-js"; |
| | | export default { |
| | | dicts: ["dict_pay_type"], |
| | |
| | | tjNumbers:"", |
| | | // 遮罩层 |
| | | loading: false, |
| | | Projectopen1: false, |
| | | // 弹出层标题 |
| | | title: "", |
| | | disabled: "", |
| | | iconData: "el-icon-arrow-down", |
| | | DataList: [], |
| | | tableList: [], |
| | | list: [], |
| | | Treedata: [], |
| | | defaultProps: { |
| | | children: "tjProjectList", |
| | | label: "proName", |
| | | disabled: function (data, node) { |
| | | if (data.tjProjectList && data.tjProjectList.length > 0) { |
| | | |
| | | return false |
| | | } |
| | | else { |
| | | return true |
| | | } |
| | | } |
| | | |
| | | }, |
| | | // 选中数组 |
| | | ids: [], |
| | | getInfodis: "", |
| | | waterId: "", |
| | | isfalse: false, |
| | | toggleSearchStatus: "0", |
| | | queryParams: { |
| | | name: "", |
| | |
| | | }, |
| | | formIn: { |
| | | name: "", |
| | | tjPro: "体检费", |
| | | tjPro: "", |
| | | phone: "", |
| | | number: 1, |
| | | ys: "0", |
| | |
| | | // 表单参数 |
| | | form: { |
| | | name: "", |
| | | tjPro: "体检费", |
| | | tjPro: "", |
| | | tjProName: "体检费", |
| | | phone: "", |
| | | number: 1, |
| | | ys: "0", |
| | | ss: "0", |
| | | ys: 0, |
| | | ss: 0, |
| | | type: "0", |
| | | zk: 10, |
| | | |
| | |
| | | resetQuery() { |
| | | this.form = { |
| | | name: null, |
| | | tjPro: "体检费", |
| | | tjPro: null, |
| | | phone: null, |
| | | tjProName: "体检费", |
| | | number: 1, |
| | | ys: "0", |
| | | ss: "0", |
| | | ys: 0.00, |
| | | ss: 0.00, |
| | | type: "0", |
| | | zk: 10, |
| | | }; |
| | |
| | | handleUpdate() { |
| | | getFlowingWaterList(this.queryParams).then(res => { |
| | | this.tableList = res.data |
| | | this.tableList.forEach(element => { |
| | | element.proname = "体检费" |
| | | }); |
| | | |
| | | }) |
| | | }, |
| | | hadeltjpro() { |
| | | |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data.list; |
| | | |
| | | }); |
| | | this.Projectopen1 = true; |
| | | this.title = "项目列表"; |
| | | }, |
| | | // 点击获取每个树节点 |
| | | handleCurrentChecked(data, checked, checkedNodes) { |
| | | console.log(data, checked) |
| | | // this.form.tjPro = "", |
| | | // this.form.ys = 0 |
| | | if (checked) { |
| | | // this.menuOptions.id = data.id |
| | | this.$refs.tree.setCheckedKeys([data.proId], true) |
| | | } else { |
| | | // this.menuOptions.id = null |
| | | } |
| | | if (checked == true) { |
| | | this.form.tjPro = data.proId |
| | | this.form.tjProName = data.proName |
| | | const r = /^\+?[0-9][0-9]*$/; //正整数(可以0打头) |
| | | if (r.test(data.proPrice)) { |
| | | this.form.ys = data.proPrice + ".00"; |
| | | } else { |
| | | this.form.ys = data.proPrice |
| | | } |
| | | } |
| | | |
| | | this.Projectopen1 = false; |
| | | }, |
| | | |
| | | // 折扣 |
| | | numberChange(currentValue, oldValue) { |
| | | this.form.zk = currentValue; |
| | | this.form.ss = ( |
| | | this.form.ys * |
| | | (this.form.zk / 10) |
| | | ).toFixed(2); |
| | | const r = /^\+?[0-9][0-9]*$/; //正整数(可以以打头) |
| | | //const r=/^\+?[1-9][0-9]*$/;//正整数 |
| | | if (r.test(this.form.ss)) { |
| | | this.form.ss = this.form.ss + ".00"; |
| | | } |
| | | numberChange() { |
| | | let price = (this.form.ss / this.form.ys) * 10 |
| | | this.form.zk = price.toFixed(2) |
| | | }, |
| | | receipt(row) { |
| | | getPrintSetUp().then(res => { |
| | | if (res.msg == "0") { |
| | | this.formIn = { |
| | | name: row.customer.cusName, |
| | | tjPro: "体检费", |
| | | tjPro: row.tjProName, |
| | | phone: row.customer.cusPhone, |
| | | ys: row.copeWith, |
| | | ss: row.paidIn, |
| | |
| | | style, |
| | | }); |
| | | }); |
| | | } else { |
| | | const tjnumber = row.tjNumber; |
| | | const viewNum = "809623418249637888"; |
| | | const params = { viewNum, tjnumber }; |
| | | this.$tab.openPage("个人发票", "/report/charge", params); |
| | | } |
| | | this.resetQuery() |
| | | this.handleUpdate() |
| | | this.getList() |
| | | }) |
| | | |
| | | }, |
| | | |
| | | // 收费 |
| | |
| | | } |
| | | }) |
| | | } else { |
| | | this.$modal.msgError("请填写带星号信息"); |
| | | this.$modal.msgError("请填写姓名"); |
| | | } |
| | | |
| | | }, |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-form :inline="true" ref="form" :model="queryParams" class="demo-form-inline" label-width="80px"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请输入姓名" /> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="phone"> |
| | | <el-input v-model="queryParams.phone" placeholder="请输入联系电话" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleUpdate">查询</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <div style="margin-bottom: 10px;"> |
| | | <el-radio-group v-model="type" @input="handleUpdate"> |
| | | <el-radio-button label="1">收费记录</el-radio-button> |
| | | <el-radio-button label="2">退费记录</el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | |
| | | <template> |
| | | <el-table v-loading="loading" :data="tableList" @selection-change="handleSelect" border max-height="720px" |
| | | :row-style="changRed"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="姓名" align="center" prop="customer.cusName" width="90px" /> |
| | | <el-table-column label="手机号" align="center" prop="customer.cusPhone" width="110px" |
| | | :show-overflow-tooltip="true"></el-table-column> |
| | | <el-table-column label="订单流水号" align="center" prop="waterId" width="180px" /> |
| | | <el-table-column label="体检项目" align="center" prop="tjProName" width="120px" /> |
| | | <el-table-column label="应收金额" align="center" prop="copeWith" width="90px" /> |
| | | <el-table-column label="实收金额" align="center" prop="paidIn" width="80px" /> |
| | | <el-table-column label="付款类型" align="center" prop="payType" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.dict_pay_type" :value="scope.row.payType" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="收费员" align="center" prop="updateBy" width="100px" /> |
| | | <el-table-column label="收退时间" align="center" prop="updateTime" /> |
| | | <el-table-column fixed="right" label="操作" align="center" class-name="small-padding " width="100px" |
| | | v-if="queryParams.type == '1'"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" @click="handlerefund(scope.row)" |
| | | v-if="scope.row.remarks != '已退费'">退费</el-button> |
| | | <el-button size="mini" type="text" v-if="scope.row.remarks == '已退费'">{{ scope.row.remarks |
| | | }}</el-button> |
| | | <el-button size="mini" type="text" v-if="scope.row.remarks != '已退费'" |
| | | @click="receipt(scope.row)">补打</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | <div style=" |
| | | position: absolute; |
| | | bottom: 100px; |
| | | width: 360px; |
| | | display: none; |
| | | "> |
| | | <div id="printBill" style="width: 280px;font-size: 1px;" ref="printContent"> |
| | | <div style="font-size: 1px;"> |
| | | <div style="text-align: center;"> |
| | | <h3>{{ hospName }}小票</h3> |
| | | </div> |
| | | |
| | | <div style="margin-top: 4px;"> |
| | | <div> |
| | | 姓名:{{ formIn.name }} |
| | | </div> |
| | | <div> |
| | | 电话:{{ formIn.phone }} |
| | | </div> |
| | | <div> |
| | | 体检项目:{{ formIn.tjPro }} |
| | | </div> |
| | | <div> |
| | | 折扣:{{ formIn.zk + "%" }} |
| | | </div> |
| | | <div> |
| | | 实收金额:{{ formIn.ss }}元 |
| | | </div> |
| | | <div> |
| | | 收费时间:{{ currentDate + " " + currentTime }} |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getTjPrice, addOrderAndDetail, tjRefund, getFlowingWaterList, getPrintSetUp } from "@/api/system/examcharge"; |
| | | import { getInfo } from "@/api/login"; |
| | | import { projectGetList } from "@/api/system/tijian"; |
| | | import printJS from "print-js"; |
| | | export default { |
| | | dicts: ["dict_pay_type"], |
| | | name: "Examcharge", |
| | | |
| | | data() { |
| | | return { |
| | | tjNumbers: "", |
| | | // 遮罩层 |
| | | loading: false, |
| | | Projectopen1: false, |
| | | // 弹出层标题 |
| | | title: "", |
| | | disabled: "", |
| | | iconData: "el-icon-arrow-down", |
| | | DataList: [], |
| | | tableList: [], |
| | | list: [], |
| | | Treedata: [], |
| | | defaultProps: { |
| | | children: "tjProjectList", |
| | | label: "proName", |
| | | disabled: function (data, node) { |
| | | if (data.tjProjectList && data.tjProjectList.length > 0) { |
| | | |
| | | return false |
| | | } |
| | | else { |
| | | return true |
| | | } |
| | | } |
| | | |
| | | }, |
| | | // 选中数组 |
| | | ids: [], |
| | | getInfodis: "", |
| | | waterId: "", |
| | | type: "1", |
| | | toggleSearchStatus: "0", |
| | | queryParams: { |
| | | name: "", |
| | | phone: "", |
| | | type: "" |
| | | }, |
| | | formIn: { |
| | | name: "", |
| | | tjPro: "", |
| | | phone: "", |
| | | number: 1, |
| | | ys: "0", |
| | | ss: "0", |
| | | type: "0", |
| | | zk: 10, |
| | | |
| | | }, |
| | | hospName: "", |
| | | currentDate: "", |
| | | currentTime: "", |
| | | // 表单参数 |
| | | form: { |
| | | name: "", |
| | | tjPro: "", |
| | | tjProName: "体检费", |
| | | phone: "", |
| | | number: 1, |
| | | ys: 0, |
| | | ss: 0, |
| | | type: "0", |
| | | zk: 10, |
| | | |
| | | }, |
| | | // 表单校验 |
| | | rules: { |
| | | name: [{ required: true, message: "姓名不能为空", trigger: "change" }], |
| | | tjPro: [ |
| | | { required: true, message: "体检项目不能为空", trigger: "change" }, |
| | | ], |
| | | type: [ |
| | | { required: true, message: "付款类型不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.handleUpdate(); |
| | | this.getCurrentDateTime() |
| | | |
| | | this.startTimer() |
| | | }, |
| | | methods: { |
| | | getCurrentDateTime() { |
| | | |
| | | const currentDate = new Date() |
| | | |
| | | // 格式化日期:YYYY-MM-DD |
| | | |
| | | const year = currentDate.getFullYear() |
| | | |
| | | const month = String(currentDate.getMonth() + 1).padStart(2, '0') |
| | | |
| | | const day = String(currentDate.getDate()).padStart(2, '0') |
| | | |
| | | this.currentDate = `${year}-${month}-${day}` |
| | | |
| | | // 格式化时间:HH:mm:ss |
| | | |
| | | const hours = String(currentDate.getHours()).padStart(2, '0') |
| | | |
| | | const minutes = String(currentDate.getMinutes()).padStart(2, '0') |
| | | |
| | | const seconds = String(currentDate.getSeconds()).padStart(2, '0') |
| | | |
| | | this.currentTime = `${hours}:${minutes}:${seconds}` |
| | | |
| | | }, |
| | | |
| | | startTimer() { |
| | | |
| | | this.timer = setInterval(() => { |
| | | |
| | | this.getCurrentDateTime() |
| | | |
| | | }, 1000) //每秒钟更新一次 |
| | | |
| | | }, |
| | | |
| | | beforeDestroy() { |
| | | |
| | | clearInterval(this.timer) |
| | | |
| | | },//清除定时器,以避免内存泄露。 |
| | | |
| | | getList() { |
| | | getTjPrice().then(res => { |
| | | if (res.data) { |
| | | const r = /^\+?[0-9][0-9]*$/; //正整数(可以0打头) |
| | | if (r.test(res.data)) { |
| | | this.form.ys = res.data + ".00"; |
| | | } else { |
| | | this.form.ys = res.data |
| | | } |
| | | |
| | | this.form.ss = this.form.ys |
| | | } |
| | | }) |
| | | getInfo(this.queryParams).then((response) => { |
| | | this.hospName = response.hospName; |
| | | }); |
| | | |
| | | }, |
| | | changRed({ row }) { |
| | | if (row.remarks == '已退费') { // 变颜色的条件 |
| | | return { |
| | | backgroundColor: "#9cdcfe" // 这个return的就是样式 可以是color 也可以是backgroundColor |
| | | } |
| | | } |
| | | }, |
| | | handleToggleSearch() { |
| | | if (this.toggleSearchStatus == "0") { |
| | | this.toggleSearchStatus = "1" |
| | | this.iconData = "el-icon-arrow-up" |
| | | } else { |
| | | this.toggleSearchStatus = "0" |
| | | this.iconData = "el-icon-arrow-down" |
| | | } |
| | | |
| | | }, |
| | | //重置按钮 |
| | | resetQuery() { |
| | | this.form = { |
| | | name: null, |
| | | tjPro: null, |
| | | phone: null, |
| | | tjProName: "体检费", |
| | | number: 1, |
| | | ys: 0.00, |
| | | ss: 0.00, |
| | | type: "0", |
| | | zk: 10, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | |
| | | // 表格单选 |
| | | handleSelect(selection, val) { |
| | | this.DataList = this.$refs.multipleTable.selection; |
| | | }, |
| | | handleUpdate() { |
| | | if (this.type == 1) { |
| | | this.queryParams.type = 4 |
| | | getFlowingWaterList(this.queryParams).then(res => { |
| | | this.tableList = res.data |
| | | |
| | | }) |
| | | }else{ |
| | | this.queryParams.type = this.type |
| | | getFlowingWaterList(this.queryParams).then(res => { |
| | | this.tableList = res.data |
| | | |
| | | }) |
| | | } |
| | | |
| | | }, |
| | | hadeltjpro() { |
| | | |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data.list; |
| | | |
| | | }); |
| | | this.Projectopen1 = true; |
| | | this.title = "项目列表"; |
| | | }, |
| | | // 点击获取每个树节点 |
| | | handleCurrentChecked(data, checked, checkedNodes) { |
| | | console.log(data, checked) |
| | | // this.form.tjPro = "", |
| | | // this.form.ys = 0 |
| | | if (checked) { |
| | | // this.menuOptions.id = data.id |
| | | this.$refs.tree.setCheckedKeys([data.proId], true) |
| | | } else { |
| | | // this.menuOptions.id = null |
| | | } |
| | | if (checked == true) { |
| | | this.form.tjPro = data.proId |
| | | this.form.tjProName = data.proName |
| | | const r = /^\+?[0-9][0-9]*$/; //正整数(可以0打头) |
| | | if (r.test(data.proPrice)) { |
| | | this.form.ys = data.proPrice + ".00"; |
| | | } else { |
| | | this.form.ys = data.proPrice |
| | | } |
| | | } |
| | | |
| | | this.Projectopen1 = false; |
| | | }, |
| | | |
| | | // 折扣 |
| | | numberChange() { |
| | | let price = (this.form.ss / this.form.ys) * 10 |
| | | this.form.zk = price.toFixed(2) |
| | | }, |
| | | receipt(row) { |
| | | getPrintSetUp().then(res => { |
| | | if (res.msg == "0") { |
| | | this.formIn = { |
| | | name: row.customer.cusName, |
| | | tjPro: row.tjProName, |
| | | phone: row.customer.cusPhone, |
| | | ys: row.copeWith, |
| | | ss: row.paidIn, |
| | | zk: row.discount, |
| | | } |
| | | this.$nextTick(() => { |
| | | const style = |
| | | "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾 |
| | | printJS({ |
| | | printable: "printBill", // 标签元素id |
| | | noPrint: ".noPrint", |
| | | type: 'html', |
| | | header: "", |
| | | targetStyles: ["*"], |
| | | maxWidth: "800", |
| | | scanStyles: true, //打印必须加上,不然页面上的css样式无效 |
| | | style, |
| | | }); |
| | | }); |
| | | } else { |
| | | const tjnumber = row.tjNumber; |
| | | const viewNum = "809623418249637888"; |
| | | const params = { viewNum, tjnumber }; |
| | | this.$tab.openPage("个人发票", "/report/charge", params); |
| | | } |
| | | this.resetQuery() |
| | | this.handleUpdate() |
| | | this.getList() |
| | | }) |
| | | |
| | | }, |
| | | |
| | | // 收费 |
| | | SubmitEvent() { |
| | | if (this.form.name) { |
| | | this.formIn = this.form |
| | | addOrderAndDetail(this.form).then(res => { |
| | | if (res.code == 200) { |
| | | this.tjNumbers = res.msg |
| | | this.$modal.msgSuccess("收费成功"); |
| | | getPrintSetUp().then(res => { |
| | | if (res.msg == "0") { |
| | | this.$nextTick(() => { |
| | | const style = |
| | | "@media print { @page{margin:0 10mm,size:4mm 6mm;}};"; //打印时去掉眉页眉尾 |
| | | printJS({ |
| | | printable: "printBill", // 标签元素id |
| | | noPrint: ".noPrint", |
| | | type: 'html', |
| | | header: "", |
| | | targetStyles: ["*"], |
| | | maxWidth: "800", |
| | | scanStyles: true, //打印必须加上,不然页面上的css样式无效 |
| | | style, |
| | | }); |
| | | }); |
| | | |
| | | } else { |
| | | const tjnumber = this.tjNumbers; |
| | | const viewNum = "809623418249637888"; |
| | | const params = { viewNum, tjnumber }; |
| | | this.$tab.openPage("个人发票", "/report/charge", params); |
| | | } |
| | | this.resetQuery() |
| | | this.handleUpdate() |
| | | this.getList() |
| | | }) |
| | | |
| | | } |
| | | }) |
| | | } else { |
| | | this.$modal.msgError("请填写姓名"); |
| | | } |
| | | |
| | | }, |
| | | handlerefund(row) { |
| | | this.$confirm('您确定要退费吗?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning' |
| | | }).then(() => { |
| | | let data = { |
| | | waterId: row.waterId |
| | | } |
| | | tjRefund(data).then(res => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("退费成功"); |
| | | this.handleUpdate() |
| | | } |
| | | |
| | | }) |
| | | }).catch(() => { |
| | | this.$message({ |
| | | type: 'info', |
| | | message: '已取消退费' |
| | | }); |
| | | }); |
| | | |
| | | |
| | | } |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | #sig .el-table__header-wrapper .el-checkbox { |
| | | display: none; |
| | | } |
| | | </style> |
| | |
| | | const tjnumber = this.tjNumbers; |
| | | const viewNum = this.mobanId; |
| | | const params = { viewNum, tjnumber }; |
| | | // this.$router.push({path:'/report/charge',query: params}) |
| | | this.$tab.openPage("个人发票", "/report/charge", params); |
| | | let data = { |
| | | tjNum: this.tjNumbers, |
| | |
| | | } |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data; |
| | | this.Treedata = response.data.list; |
| | | }); |
| | | this.Projectopen = true; |
| | | }, |
| | |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="所在医院" prop="hospId"> |
| | | <el-select v-model="form.hospId" placeholder="请选择所在医院" clearable style="width: 200px" filterable @change="sendhospName"> |
| | | <el-select v-model="form.hospId" placeholder="请选择所在医院" clearable style="width: 200px" filterable |
| | | @change="sendhospName"> |
| | | <el-option v-for="dict in hospList" :key="dict.hospAreaName" :label="dict.hospAreaName" |
| | | :value="dict.hospAreaId" /> |
| | | </el-select> |
| | |
| | | <el-input v-model="form.medicalId" placeholder="请输入医保编码" style="width: 200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="优惠折扣"> |
| | | <el-input-number ref="inputNumber" style="width: 200px" v-model="form.discount" :precision="2" |
| | | :step="0.1" :max="10" :min="1" @change="numberChange"></el-input-number> |
| | | <el-input-number ref="inputNumber" style="width: 200px" v-model="form.discount" :precision="2" :step="0.1" |
| | | :max="10" :min="1" @change="numberChange"></el-input-number> |
| | | </el-form-item> |
| | | <el-form-item label="现住址" prop="liveAddr"> |
| | | <el-input v-model="form.userInfo.liveAddr" placeholder="请输入现居住地址" style="width: 440px" /> |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- 重置密码对话框 --> |
| | | <el-dialog |
| | | title="提示" |
| | | :visible.sync="dialogVisible1" |
| | | width="30%" |
| | | :before-close="handleClose"> |
| | | <el-dialog title="提示" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose"> |
| | | <el-form :rules="rules1"> |
| | | <span>请输入“{{row.userName}}”的新密码</span> |
| | | <el-form-item prop="password"> |
| | |
| | | </el-form> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">取 消</el-button> |
| | | <el-button @click="dialogVisible1 = false">取 消</el-button> |
| | | <el-button type="primary" @click="tijiao">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | ], |
| | | }, |
| | | rules1: { |
| | | password: [ |
| | | { required: true, message: "用户密码不能为空", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "用户密码长度必须介于 5 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | // password: [ |
| | | // { required: true, message: "用户密码不能为空", trigger: "blur" }, |
| | | // { |
| | | // min: 5, |
| | | // max: 20, |
| | | // message: "用户密码长度必须介于 5 和 20 之间", |
| | | // trigger: "blur", |
| | | // }, |
| | | // ], |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | // .catch(() => { }); |
| | | }, |
| | | tijiao(){ |
| | | if (this.password) { |
| | | let data = { |
| | | password:this.password, |
| | | userId:this.row.userId, |
| | |
| | | this.dialogVisible1 = false; |
| | | } |
| | | }) |
| | | }else{ |
| | | this.$modal.msgError("用户名密码不能为空"); |
| | | } |
| | | |
| | | }, |
| | | /** 分配角色操作 */ |
| | | handleAuthRole: function (row) { |
| | |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target: `http://192.168.0.101:5011`, |
| | | // target: `http://192.168.0.99:8080/ltkj-admin`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |